12013-04-24  Arvid Nilsson  <anilsson@rim.com>
2
3        [BlackBerry] Remove the setContentsToColor flavor of LayerTiler::TextureJob
4        https://bugs.webkit.org/show_bug.cgi?id=115092
5
6        Reviewed by Carlos Garcia Campos.
7
8        With the Skia backend, we had an optimization to detect solid color
9        layers. The Skia code has been purged, but these bits remained. With
10        BlackBerry::Platform::Graphics::PlatformGraphicsContext, only the solid
11        color will be drawn anyway, so we don't need to detect such layers at
12        the WebCore level. Fixed by removing the setContentsToColor flavor of
13        LayerTiler::TextureJob.
14
15        BlackBerry::WebKit::WebOverlay still uses
16        TextureCacheCompositingThread::textureForColor() so that one can stay
17        for now.
18
19        This was dead code so no new tests.
20
21        * platform/graphics/blackberry/LayerTile.cpp:
22        * platform/graphics/blackberry/LayerTile.h:
23        (LayerTile):
24        * platform/graphics/blackberry/LayerTiler.cpp:
25        (WebCore::LayerTiler::processTextureJob):
26        (WebCore::LayerTiler::performTileJob):
27        * platform/graphics/blackberry/LayerTiler.h:
28        (WebCore::LayerTiler::TextureJob::setContents):
29        (TextureJob):
30
312013-04-24  Zan Dobersek  <zdobersek@igalia.com>
32
33        [GTK] Move image decoders, some other GStreamer, Cairo and Soup sources to libPlatform
34        https://bugs.webkit.org/show_bug.cgi?id=115050
35
36        Reviewed by Martin Robinson.
37
38        No new tests - no new functionality.
39
40        * GNUmakefile.list.am: Move the image decoders source files and a couple of GStreamer, Cairo and Libsoup source
41        files under the libPlatform's list of files to build. All of these are already free of platform layer violations.
42
432013-04-23  Kent Tamura  <tkent@chromium.org>
44
45        Remove TextFieldDecoration feature
46        https://bugs.webkit.org/show_bug.cgi?id=115068
47
48        Reviewed by Andreas Kling.
49
50        Only Chromium port used this feature.
51
52        * dom/Element.h: Remove isTextFieldDecoration.
53        * html/InputType.cpp:
54        (WebCore::InputType::destroyShadowSubtree):
55        Update a comment.
56        * html/TextFieldInputType.cpp:
57        (WebCore::TextFieldInputType::createShadowSubtree):
58        Remove call sites of willAddTextFieldDecorationsTo and addTextFieldDecorationsTo.
59        * html/shadow/TextFieldDecorationElement.cpp: Removed.
60        * html/shadow/TextFieldDecorationElement.h: Removed.
61        * page/ChromeClient.h:
62        (ChromeClient): Remove willAddTextFieldDecorationsTo and
63        addTextFieldDecorationsTo
64
652013-04-23  Andreas Kling  <akling@apple.com>
66
67        Micro-optimize Length::initFromLength().
68        <http://webkit.org/b/115073>
69
70        From Blink r148621 by <timloh@chromium.org>:
71
72        This appears to improve html5-full-render by 1-2% on my system (gcc 4.6.3) by using memcpy
73        instead of copying members (and branching to copy the union).
74
75        * platform/Length.h:
76        (WebCore::Length::initFromLength):
77
782013-04-23  Kent Tamura  <tkent@chromium.org>
79
80        Add missing copyright header to ColorChooserClient.h
81        https://bugs.webkit.org/show_bug.cgi?id=115067
82
83        Reviewed by Andreas Kling.
84
85        * platform/ColorChooserClient.h:
86        This was added in 2011 by a Google employee.
87        http://trac.webkit.org/changeset/103168
88
892013-04-23  Andreas Kling  <akling@apple.com>
90
91        Call the correct superclass in RenderSlider::layout().
92        <http://webkit.org/b/115071>
93
94        From Blink r147850 by <cbiesinger@chromium.org>:
95
96        The superclass is RenderFlexibleBox, not RenderBlock.
97
98        * rendering/RenderSlider.cpp:
99        (WebCore::RenderSlider::layout):
100
1012013-04-23  Mihai Tica  <mitica@adobe.com>
102
103        Add platform support for -webkit-background-blend-mode to CG context with background color
104        https://bugs.webkit.org/show_bug.cgi?id=114412
105
106        Reviewed by Darin Adler.
107
108        Tests: css3/compositing/effect-background-blend-mode-color.html, css3/compositing/effect-background-blend-mode-color2.html
109
110        This patch adds support for blending on background colors to the Core Graphics port of WebKit.
111
112        * platform/graphics/GraphicsContext.cpp:
113        (WebCore::GraphicsContext::fillRect):
114        (WebCore::GraphicsContext::fillRoundedRect):
115        * platform/graphics/GraphicsContext.h:
116        * rendering/RenderBoxModelObject.cpp:
117        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
118
1192013-04-23  Ryosuke Niwa  <rniwa@webkit.org>
120
121        Remove an unused member variable erroneously added in r149007.
122
123        * rendering/LogicalSelectionOffsetCaches.h:
124        (WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
125        (LogicalSelectionOffsetCaches):
126
1272013-04-22  Ryosuke Niwa  <rniwa@webkit.org>
128
129        logicalLeftSelectionGap and logicalRightSelectionGap call availableLogicalWidth() multiple times
130        https://bugs.webkit.org/show_bug.cgi?id=113479
131
132        Reviewed by David Hyatt.
133
134        Introduced LogicalSelectionOffsetCaches to cache the containing blocks and their logical left and right
135        selection offsets in computing selection gaps. An instance of this class stores the containing block for
136        each position type and caches their logical selection offsets when none of their block ancestors up until
137        its nearest selection root do no have any floating objects or regions and exclusions.
138
139        When blockSelectionGaps recurses to another level, it creates a new cache instance by "inheriting"
140        (like RenderStyle) from the old cache, overriding those containing blocks that are replaced by "this".
141
142        This eliminates the need to traverse containing block ancestors in RenderBlock::logicalLeftSelectionOffset
143        and RenderBlock::logicalRightSelectionOffset, and improves WebKit's performance by roughly 20%.
144
145        Performance Tests: Interactive/SelectAll.html
146
147        * GNUmakefile.list.am:
148        * Target.pri:
149        * WebCore.xcodeproj/project.pbxproj:
150
151        * rendering/LogicalSelectionOffsetCaches.h: Added.
152        (WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject): Moved from RenderObject.h.
153        (WebCore::isNonRenderBlockInline): Ditto.
154        (WebCore::containingBlockForFixedPosition): Extracted from RenderObject::containingBlock.
155        (WebCore::containingBlockForAbsolutePosition): Ditto.
156        (WebCore::containingBlockForObjectInFlow): Ditto.
157
158        (WebCore::LogicalSelectionOffsetCaches): Added.
159        (WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::ContainingBlockInfo): Added.
160        (WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock): Added. m_hasFloatsOrRegions is
161        or'ed with itself when ContainingBlockInfo is copy constructed since m_hasFloatsOrRegions needs be true
162        for a block when any of its containing block ancestors have floats or regions.
163        (WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::block): Added.
164        (WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::cache): Added.
165        (WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalLeftSelectionOffset): Added. Caches
166        the logical selection offset if it hasn't.
167        (WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalRightSelectionOffset): Ditto.
168
169        (WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches): The first constructor is used
170        for a selection root. The second one is used for inheriting from another cache. In the latter case,
171        copy all containing block information except ones that need to be overridden by this block.
172        (WebCore::LogicalSelectionOffsetCaches::containingBlockInfo): Returns a ContainingBlockInfo based on
173        object's position value.
174
175        * rendering/RenderBlock.cpp:
176        (WebCore::RenderBlock::selectionGapRectsForRepaint):
177        (WebCore::RenderBlock::paintSelection):
178        (WebCore::RenderBlock::selectionGaps):
179        (WebCore::RenderBlock::inlineSelectionGaps):
180        (WebCore::RenderBlock::blockSelectionGaps): Exit before instantiating a new LogicalSelectionOffsetCaches
181        if there is no child to recurse.
182        (WebCore::RenderBlock::blockSelectionGap):
183        (WebCore::RenderBlock::logicalLeftSelectionGap):
184        (WebCore::RenderBlock::logicalRightSelectionGap):
185        (WebCore::RenderBlock::logicalLeftSelectionOffset): Use LogicalSelectionOffsetCaches to get its containing
186        block and its logical selection offset.
187        (WebCore::RenderBlock::logicalRightSelectionOffset): Ditto.
188
189        * rendering/RenderBlock.h:
190        (WebCore::RenderBlock):
191
192        * rendering/RenderObject.cpp:
193        (WebCore::RenderObject::containingBlock): Extracted code into LogicalSelectionOffsetCaches.h.
194
195        * rendering/RootInlineBox.cpp:
196        (WebCore::RootInlineBox::lineSelectionGap):
197
198        * rendering/RootInlineBox.h:
199        (WebCore::RootInlineBox):
200
2012013-04-23  Eric Carlson  <eric.carlson@apple.com>
202
203        [Mac] forced subtitle track should change when audio track language changes
204        https://bugs.webkit.org/show_bug.cgi?id=115043
205
206        Reviewed by Jer Noble.
207
208        No new tests, it isn't possible to test this automatically because there is currently no way
209        to enable/disable audio tracks.
210
211        * html/HTMLMediaElement.cpp:
212        (WebCore::HTMLMediaElement::configureTextTrackGroup): Set m_forcedOrAutomaticSubtitleTrackLanguage.
213        (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):  Call markCaptionAndSubtitleTracksAsUnconfigured
214            after a delay if the language of the primary audio track changes.
215        (WebCore::HTMLMediaElement::setClosedCaptionsVisible): markCaptionAndSubtitleTracksAsUnconfigured API change.
216        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Take parameter to allow
217            the reconfiguration to happen after a delay to avoid doing it during a callback from the
218            media engine. Clear the ConfigureTextTracks bit in m_pendingActionFlags to cancel any pending 
219            asynch configuration.
220        * html/HTMLMediaElement.h:
221
222        * page/CaptionUserPreferencesMac.mm:
223        (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Clean up logic.
224
225        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
226        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call characteristicChanged when
227            the primary audio track language changes.
228
2292013-04-23  Hans Muller  <hmuller@adobe.com>
230
231        [CSS Exclusions] Improve ExclusionPolygon smart pointer safety
232        https://bugs.webkit.org/show_bug.cgi?id=114984
233
234        Reviewed by Dirk Schulze.
235
236        Assign newly allocated objects to PassOwnPtrs as early as possible to reduce the
237        chances of future leaks. No new tests were added, this change adds no new functionality.
238
239        * rendering/ExclusionPolygon.cpp:
240        (WebCore::computeShapePaddingBounds):
241        (WebCore::computeShapeMarginBounds):
242        (WebCore::ExclusionPolygon::shapePaddingBounds):
243        (WebCore::ExclusionPolygon::shapeMarginBounds):
244        * rendering/ExclusionShape.cpp:
245        (WebCore::ExclusionShape::createExclusionShape):
246
2472013-04-23  Andreas Kling  <akling@apple.com>
248
249        Revert "Throttle resize events during live window resize."
250        <http://webkit.org/b/114292>
251        <rdar://problem/13411454>
252        <rdar://problem/13694839>
253
254        Reviewed by Geoffrey Garen.
255
256        It appears that this caused more glitches than it helped resize performance.
257
258        * page/FrameView.h:
259        * page/FrameView.cpp:
260        (WebCore::FrameView::FrameView):
261        (WebCore::FrameView::performPostLayoutTasks):
262        (WebCore::FrameView::sendResizeEvent):
263
264            Turn the null-check of m_frame into an assertion since this method is
265            no longer called asynchronously.
266
267        (WebCore::FrameView::willEndLiveResize):
268
269            Ninja fix: call up to the closest superclass implementation.
270
2712013-04-23  Christophe Dumez  <ch.dumez@sisa.samsung.com>
272
273        Global constructors should be configurable and not enumerable
274        https://bugs.webkit.org/show_bug.cgi?id=110573
275
276        Reviewed by Geoffrey Garen.
277
278        Update JSC Code generator so that global constructors now have the following
279        attributes:
280        { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }
281        instead of previously:
282        { [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: false }
283
284        The new behavior is according to the Web IDL specification (section 4.4):
285        http://dev.w3.org/cvsweb/~checkout~/2006/webapi/WebIDL/Overview.html?rev=1.617;content-type=text%2Fhtml#es-interfaces
286
287        This also matches the behavior of Firefox.
288
289        Tests: fast/js/global-constructors-attributes.html
290               fast/js/global-constructors-deletable.html
291
292        * bindings/scripts/CodeGeneratorJS.pm:
293        (GenerateAttributesHashTable):
294
2952013-04-23  Simon Fraser  <simon.fraser@apple.com>
296
297        Don't create compositing layers for sticky position unless using the ScrollingCoordinator
298        https://bugs.webkit.org/show_bug.cgi?id=115060
299
300        Reviewed by Tim Horton.
301        
302        Creating compositing layers for sticky position elements is only useful
303        when we're using a ScrollingCoordinator, so don't create them if
304        we're not in a frame that uses a scrolling coordinator.
305
306        Tests: compositing/layer-creation/no-compositing-for-sticky.html
307               platform/mac-wk2/tiled-drawing/sticky/sticky-layers.html
308
309        * rendering/RenderLayerCompositor.cpp:
310        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
311
3122013-04-23  Christophe Dumez  <ch.dumez@sisa.samsung.com>
313
314        'length' property of DOM bindings functions returns wrong value
315        https://bugs.webkit.org/show_bug.cgi?id=110569
316
317        Reviewed by Geoffrey Garen.
318
319        Make the 'length' property of Function objects and Interface
320        objects behave according to the latest Web IDL specification
321        editor draft:
322        http://dev.w3.org/2006/webapi/WebIDL/#es-interface-call
323        http://dev.w3.org/2006/webapi/WebIDL/#es-operations
324
325        As a result, only mandatory arguments are taken into account
326        when computing the value for the 'length' property. This
327        behavior is consistent with Firefox and Blink.
328
329        Tests: fast/js/constructor-length.html
330               fast/js/function-length.html
331
332        * bindings/scripts/CodeGeneratorJS.pm:
333        (GenerateImplementation):
334        (GenerateConstructorHelperMethods):
335        Update the JSC code generator to only account for mandatory parameters
336        when computing the value for the 'length' property of Function objects
337        and constructors.
338
339        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
340        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
341        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
342        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
343        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
344        (WebCore::JSTestEventConstructorConstructor::finishCreation):
345        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
346        (WebCore::JSTestEventTargetConstructor::finishCreation):
347        (WebCore):
348        * bindings/scripts/test/JS/JSTestException.cpp:
349        (WebCore::JSTestExceptionConstructor::finishCreation):
350        * bindings/scripts/test/JS/JSTestInterface.cpp:
351        (WebCore::JSTestInterfaceConstructor::finishCreation):
352        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
353        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
354        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
355        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
356        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
357        * bindings/scripts/test/JS/JSTestObj.cpp:
358        (WebCore):
359        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
360        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
361        (WebCore):
362        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
363        (WebCore):
364        Rebaseline bindings tests results.
365
366        * fileapi/Blob.idl:
367        Remove 'ConstructorParameters=2' extended attribute as the correct value
368        is 0, given that a Blob can be constructed without parameter.
369
370        * html/canvas/DataView.idl:
371        Update ConstructorParameters extended attribute value from 3 to 1 as only
372        one of the 3 parameters is mandatory.
373
374        * html/canvas/Float32Array.idl:
375        * html/canvas/Float64Array.idl:
376        * html/canvas/Int16Array.idl:
377        * html/canvas/Int32Array.idl:
378        * html/canvas/Int8Array.idl:
379        * html/canvas/Uint16Array.idl:
380        * html/canvas/Uint32Array.idl:
381        * html/canvas/Uint8Array.idl:
382        * html/canvas/Uint8ClampedArray.idl:
383        Remove 'ConstructorParameters=1' extended attribute from interfaces using
384        'ConstructorTemplate=TypedArray' as the bindings generator now properly
385        compute the number of constructor parameters for such interfaces.
386
387        * page/WebKitPoint.idl:
388        Remove 'ConstructorParameters=2' extended attribute as the correct value
389        should be 0, given that a WebKitPoint can be constructed without parameters.
390
3912013-04-23  Benjamin Poulain  <benjamin@webkit.org>
392
393        Minor String usage fixes in WebCore/platform
394        https://bugs.webkit.org/show_bug.cgi?id=115021
395
396        Reviewed by Andreas Kling.
397
398        Use ASCIILiteral when possible + minor fixes.
399
400        * platform/ContentType.cpp:
401        (WebCore::ContentType::codecs):
402        * platform/ContentType.h:
403        (ContentType):
404        * platform/Decimal.cpp:
405        (WebCore::Decimal::toString):
406        * platform/KURL.cpp:
407        (WebCore::KURL::setProtocol):
408
4092013-04-23  Dirk Schulze  <krit@webkit.org>
410
411        Pick up color and mat values in custom shaders
412        https://bugs.webkit.org/show_bug.cgi?id=115046
413
414        Reviewed by Dean Jackson.
415
416        The custom filter functions accept color values and mat2-4 functions
417        as parameter types. These were implemented in CSS already.
418        This patch picks up the values and applies them as uniforms to the
419        custom shader program. 
420
421        Tests: css3/filters/custom/custom-filter-color.html
422               css3/filters/custom/custom-filter-matN.html
423
424        * platform/graphics/filters/CustomFilterRenderer.cpp:
425        (WebCore::CustomFilterRenderer::bindProgramColorParameters): Set uniform for color values.
426        (WebCore):
427        (WebCore::CustomFilterRenderer::bindProgramMatrixParameters): Set uniform for mat2-4 values.
428        (WebCore::CustomFilterRenderer::bindProgramParameters): Call color and matrix functions.
429        * platform/graphics/filters/CustomFilterRenderer.h:
430        (WebCore):
431        (CustomFilterRenderer):
432
4332013-04-23  Jacky Jiang  <zhajiang@blackberry.com>
434
435        Remove redundant code in ViewportArguments::resolve
436        https://bugs.webkit.org/show_bug.cgi?id=115054
437
438        Reviewed by Kenneth Rohde Christiansen.
439
440        Remove redundant code "result.orientation = orientation;".
441
442        * dom/ViewportArguments.cpp:
443        (WebCore::ViewportArguments::resolve):
444
4452013-04-23  Simon Fraser  <simon.fraser@apple.com>
446
447        Tiled layers clipped inside nested transform/preserve-3d hierarchies
448        https://bugs.webkit.org/show_bug.cgi?id=115044
449
450        Reviewed by Dean Jackson.
451        
452        The optimization added in r139479 to call move() for integral translation
453        transforms hit a bug in TransformState::move(). If m_accumulatedTransform is
454        not null, we have to apply it.
455
456        Test: compositing/visible-rect/flipped-preserve-3d.html
457
458        * platform/graphics/transforms/TransformState.cpp:
459        (WebCore::TransformState::move):
460
4612013-04-23  Claudio Saavedra  <csaavedra@igalia.com>
462
463        Ctrl+Shift+Right in Windows should select the spacing after the word
464        https://bugs.webkit.org/show_bug.cgi?id=110487
465
466        Reviewed by Ryosuke Niwa.
467
468        Tests: editing/deleting/smart-editing-disabled-win.html
469               editing/execCommand/remove-format-multiple-elements-win.html
470               editing/execCommand/toggle-link-win.html
471               editing/execCommand/toggle-unlink-win.html
472               editing/selection/extend-selection-enclosing-block-win.html
473               editing/style/make-text-writing-direction-inline-win.html
474               editing/style/push-down-font-styles-win.html
475               editing/style/push-down-implicit-styles-around-list-win.html
476
477        * editing/FrameSelection.cpp:
478        (WebCore::FrameSelection::nextWordPositionForPlatform): New method
479        that takes platform-specific editing behaviour in order to decide
480        what the next word position is, that is, for Windows, skip
481        spacing, for all other platforms, behave as currently.
482        (WebCore::FrameSelection::modifyExtendingRight):
483        (WebCore::FrameSelection::modifyExtendingForward):
484        (WebCore::FrameSelection::modifyMovingForward):
485        (WebCore::FrameSelection::modifyExtendingLeft): Use the new method
486        in all of the above.
487        * editing/FrameSelection.h: Declare the new method.
488
4892013-04-23  Benjamin Poulain  <bpoulain@apple.com>
490
491        Inline SelectorQuery::matches, SelectorQuery::queryAll, SelectorQuery::queryFirst
492        https://bugs.webkit.org/show_bug.cgi?id=115012
493
494        Reviewed by Andreas Kling.
495
496        Each of these function has a single call site:
497        -SelectorQuery::matches from Element::webkitMatchesSelector.
498        -SelectorQuery::queryAll from Node::querySelectorAll.
499        -SelectorQuery::queryFirst from Node::querySelector.
500
501        Having a dedicated method to jump to was a little overkill.
502
503        * dom/SelectorQuery.cpp:
504        * dom/SelectorQuery.h:
505        (WebCore::SelectorQuery::matches):
506        (WebCore::SelectorQuery::queryAll):
507        (WebCore::SelectorQuery::queryFirst):
508
5092013-04-23  Benjamin Poulain  <bpoulain@apple.com>
510
511        Remove wxWebKit's folders from WebCore
512        https://bugs.webkit.org/show_bug.cgi?id=115007
513
514        Reviewed by Andreas Kling.
515
516        The wxWebKit port is no longer actively maintained by Kevin
517        on webkit.org. Remove the code until new maintainers resume the work.
518
519        * accessibility/wx/AccessibilityObjectWx.cpp: Removed.
520        * editing/wx/EditorWx.cpp: Removed.
521        * page/wx/DragControllerWx.cpp: Removed.
522        * page/wx/EventHandlerWx.cpp: Removed.
523        * platform/graphics/wx/ColorWx.cpp: Removed.
524        * platform/graphics/wx/FloatRectWx.cpp: Removed.
525        * platform/graphics/wx/FontCacheWx.cpp: Removed.
526        * platform/graphics/wx/FontCustomPlatformData.cpp: Removed.
527        * platform/graphics/wx/FontCustomPlatformData.h: Removed.
528        * platform/graphics/wx/FontPlatformData.h: Removed.
529        * platform/graphics/wx/FontPlatformDataWx.cpp: Removed.
530        * platform/graphics/wx/FontPlatformDataWxMac.mm: Removed.
531        * platform/graphics/wx/FontWx.cpp: Removed.
532        * platform/graphics/wx/GlyphMapWx.cpp: Removed.
533        * platform/graphics/wx/GradientWx.cpp: Removed.
534        * platform/graphics/wx/GraphicsContextWx.cpp: Removed.
535        * platform/graphics/wx/IconWx.cpp: Removed.
536        * platform/graphics/wx/ImageBufferDataWx.h: Removed.
537        * platform/graphics/wx/ImageBufferWx.cpp: Removed.
538        * platform/graphics/wx/ImageWx.cpp: Removed.
539        * platform/graphics/wx/IntPointWx.cpp: Removed.
540        * platform/graphics/wx/IntRectWx.cpp: Removed.
541        * platform/graphics/wx/IntSizeWx.cpp: Removed.
542        * platform/graphics/wx/PathWx.cpp: Removed.
543        * platform/graphics/wx/SimpleFontDataWx.cpp: Removed.
544        * platform/graphics/wx/TransformationMatrixWx.cpp: Removed.
545        * platform/image-decoders/wx/ImageDecoderWx.cpp: Removed.
546        * platform/wx/ClipboardWx.cpp: Removed.
547        * platform/wx/ClipboardWx.h: Removed.
548        * platform/wx/ContextMenuItemWx.cpp: Removed.
549        * platform/wx/ContextMenuWx.cpp: Removed.
550        * platform/wx/CursorWx.cpp: Removed.
551        * platform/wx/DragDataWx.cpp: Removed.
552        * platform/wx/DragImageWx.cpp: Removed.
553        * platform/wx/EventLoopWx.cpp: Removed.
554        * platform/wx/FileSystemWx.cpp: Removed.
555        * platform/wx/KeyEventWin.cpp: Removed.
556        * platform/wx/KeyboardEventWx.cpp: Removed.
557        * platform/wx/LanguageWx.cpp: Removed.
558        * platform/wx/LocalDC.h: Removed.
559        * platform/wx/LocalizedStringsWx.cpp: Removed.
560        * platform/wx/LoggingWx.cpp: Removed.
561        * platform/wx/MimeTypeRegistryWx.cpp: Removed.
562        * platform/wx/MouseEventWx.cpp: Removed.
563        * platform/wx/MouseWheelEventWx.cpp: Removed.
564        * platform/wx/PasteboardWx.cpp: Removed.
565        * platform/wx/PopupMenuWx.cpp: Removed.
566        * platform/wx/PopupMenuWx.h: Removed.
567        * platform/wx/RenderThemeWx.cpp: Removed.
568        * platform/wx/RunLoopWx.cpp: Removed.
569        * platform/wx/SSLKeyGeneratorWx.cpp: Removed.
570        * platform/wx/ScreenWx.cpp: Removed.
571        * platform/wx/ScrollViewWx.cpp: Removed.
572        * platform/wx/ScrollbarThemeWx.cpp: Removed.
573        * platform/wx/ScrollbarThemeWx.h: Removed.
574        * platform/wx/SearchPopupMenuWx.cpp: Removed.
575        * platform/wx/SearchPopupMenuWx.h: Removed.
576        * platform/wx/SharedBufferWx.cpp: Removed.
577        * platform/wx/SharedTimerWx.cpp: Removed.
578        * platform/wx/SoundWx.cpp: Removed.
579        * platform/wx/SystemTimeWx.cpp: Removed.
580        * platform/wx/TemporaryLinkStubs.cpp: Removed.
581        * platform/wx/TextBreakIteratorInternalICUWx.cpp: Removed.
582        * platform/wx/WidgetWx.cpp: Removed.
583        * platform/wx/wxcode/cairo/non-kerned-drawing.cpp: Removed.
584        * platform/wx/wxcode/fontprops.cpp: Removed.
585        * platform/wx/wxcode/fontprops.h: Removed.
586        * platform/wx/wxcode/gdiplus/non-kerned-drawing.cpp: Removed.
587        * platform/wx/wxcode/gtk/fontprops.cpp: Removed.
588        * platform/wx/wxcode/gtk/non-kerned-drawing.cpp: Removed.
589        * platform/wx/wxcode/gtk/scrollbar_render.cpp: Removed.
590        * platform/wx/wxcode/mac/carbon/fontprops.mm: Removed.
591        * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp: Removed.
592        * platform/wx/wxcode/mac/carbon/scrollbar_render.cpp: Removed.
593        * platform/wx/wxcode/non-kerned-drawing.h: Removed.
594        * platform/wx/wxcode/scrollbar_render.h: Removed.
595        * platform/wx/wxcode/win/fontprops.cpp: Removed.
596        * platform/wx/wxcode/win/non-kerned-drawing.cpp: Removed.
597        * platform/wx/wxcode/win/scrollbar_render.cpp: Removed.
598        * plugins/wx/PluginDataWx.cpp: Removed.
599
6002013-04-23  Roger Fong  <roger_fong@apple.com>
601
602        AppleWin build fix.
603
604        * WebCore.vcxproj/WebCore.vcxproj:
605        * WebCore.vcxproj/WebCore.vcxproj.filters:
606
6072013-04-23  Roger Fong  <roger_fong@apple.com>
608
609        AppleWin build fix.
610
611        * inspector/InspectorAllInOne.cpp:
612        * inspector/InspectorMemoryAgent.cpp:
613        (WebCore::InspectorMemoryAgent::create):
614        (WebCore):
615        * inspector/InspectorMemoryAgent.h:
616        (InspectorMemoryAgent):
617
6182013-04-23  Zoltan Horvath  <zoltan@webkit.org>
619
620        [CSS Exclusions] shape-inside overflow should be pushed to the outside of the content box
621        https://bugs.webkit.org/show_bug.cgi?id=114526
622
623        Reviewed by David Hyatt.
624
625        The specification has changed to define shape-outside as the inverse of an exclusion. Overflowing content
626        should not overlap the shape, and it should be pushed outside the content box. This change affects several
627        tests, but only one new has been added. In this change I'm not intended to include the behavior change for
628        shape-inside on CSS Regions, I'm going to fix that in a follow up patch.
629
630        Tests: fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Modified.
631               fast/exclusions/shape-inside/shape-inside-bottom-edge.html: Modified.
632               fast/exclusions/shape-inside/shape-inside-empty.html: Modified.
633               fast/exclusions/shape-inside/shape-inside-overflow-fixed-dimensions.html: Added.
634               fast/exclusions/shape-inside/shape-inside-overflow.html: Modified.
635               fast/exclusions/shape-inside/shape-inside-percentage.html: Modified.
636               fast/exclusions/shape-inside/shape-inside-rounded-rectangle-004.html: Modified.
637
638        * rendering/ExclusionShapeInfo.h:
639        (WebCore::ExclusionShapeInfo::clearSegments): Shape-outside's code uses shape-inside codepaths, when that happens we need to provide a
640        way to reset the m_segments member.
641        (WebCore::ExclusionShapeInfo::shapeContainingBlockHeight): The containing block's height is stored in m_shapeLogicalHeight, I added a
642        function to get this value when we need it to calculate the content box's bottom position.
643        (ExclusionShapeInfo):
644        (WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds):
645        (WebCore::ExclusionShapeInfo::lineWithinShapeBounds):  Add function to test whether a whole line is within a shape or not.
646        * rendering/RenderBlockLineLayout.cpp:
647        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Overflowing content should start under the content box.
648        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Since we use shape-inside codepaths for shape-outside in layoutRunsAndFloatsInRange function
649        and for shape-outside is not a requirement to check the line's bottom position is within the shape we might end up with some extra segments here.
650        In this case we should clear segments, since we don't want to apply any horizontal offsets on the overflowing content.
651
6522013-04-23  Antti Koivisto  <antti@apple.com>
653
654        Avoid computing style twice when element has no existing style
655        https://bugs.webkit.org/show_bug.cgi?id=115042
656
657        Reviewed by Andreas Kling.
658        
659        We currently compute element style twice if we end up having to reattach, first in recalcStyle and then
660        again during attach(). We can easily avoid this in common case where the element has no existing style
661        (usually because it is display:none). 
662
663        * dom/Element.cpp:
664        (WebCore::Element::recalcStyle):
665        
666            Don't compute the style and diff if there is no existing style. There is nothing to diff against.
667            Instead just call reattach() directly, we ended up doing that anyway with the existing code.
668        
6692013-04-23  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
670
671        WebSocket: Return type of send() should be void if hybi-10 protocol is chosen
672        https://bugs.webkit.org/show_bug.cgi?id=65850
673
674        Reviewed by Alexey Proskuryakov.
675
676        WebSocket API draft changed the return type of send() from boolean to void based on Simon
677        Pieters' post to WHATWG. Firefox 8 and IE 10 already follow the specification, hence it should
678        make sense for us to do the same when hybi protocol is used.
679
680        Original patch by Yuta Kitamura  <yutak@chromium.org>
681
682        Tests: http/tests/websocket/tests/hybi/bufferedAmount-after-close.html (updated)
683               http/tests/websocket/tests/hybi/send-after-close-on-unload.html (updated)
684
685        * Modules/websockets/WebSocket.cpp:
686        (WebCore::WebSocket::send):
687        * Modules/websockets/WebSocket.h:
688        * Modules/websockets/WebSocket.idl:
689
6902013-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>
691
692        ScrollbarThemeComposite depends on Page/FrameView/ChromeClient
693        https://bugs.webkit.org/show_bug.cgi?id=21361
694
695        Reviewed by Andreas Kling.
696
697        Remove unused header includes.
698
699        * platform/ScrollbarThemeComposite.cpp:
700
7012013-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>
702
703        [GTK] Add webkit_uri_request_get_http_headers to WebKit2 GTK+ API
704        https://bugs.webkit.org/show_bug.cgi?id=112160
705
706        Reviewed by Andreas Kling.
707
708        * platform/network/soup/GOwnPtrSoup.cpp:
709        (WTF::SoupMessageHeaders): Add freeOwnedGPtr implementation for
710        SoupMessageHeaders.
711        (WTF):
712        * platform/network/soup/GOwnPtrSoup.h:
713        (WTF):
714        * platform/network/soup/ResourceRequest.h:
715        (ResourceRequest):
716        * platform/network/soup/ResourceRequestSoup.cpp:
717        (WebCore::ResourceRequest::updateSoupMessageHeaders): New function
718        to update the given SoupMessageHeaders with the ResourceRequest
719        headers.
720        (WebCore::ResourceRequest::updateFromSoupMessageHeaders): New
721        function to update the ResourceRequest headers with the given
722        SoupMessageHeaders.
723        (WebCore::ResourceRequest::updateSoupMessage): Use
724        updateSoupMessageHeaders() to update the headers.
725        (WebCore::ResourceRequest::toSoupMessage): Ditto.
726        (WebCore::ResourceRequest::updateFromSoupMessage): Use
727        updateFromSoupMessageHeaders to update the headers.
728
7292013-04-23  Andreas Kling  <akling@apple.com>
730
731        Clear StyleResolver state before returning from styleForElement().
732        <http://webkit.org/b/115035>
733
734        Reviewed by Antti Koivisto.
735
736        From Blink r148687 by <inferno@chromium.org>.
737
738        A cached element pointer in the resolver state was causing confusion because
739        in some cases a subsequent call to styleForElement() would use a pointer to
740        a different object that is at the same memory address as the previous one.
741
742        Test: fast/css/reload-non-styled-element-crash.html
743
744        * css/StyleResolver.cpp:
745        (WebCore::StyleResolver::styleForElement):
746
7472013-04-23  Andreas Kling  <akling@apple.com>
748
749        XSSAuditor performance regression due to threaded parser changes.
750        <http://webkit.org/b/115037>
751        <rdar://problem/13716069>
752
753        Reviewed by Anders Carlsson.
754
755        From Blink r148792 by <abarth@chromium.org>:
756
757        The refactoring we did for the threaded parser introduced a performance
758        regression in innerHTML because we'd boot up the XSSAuditor for fragment
759        parsing. This CL returns to our earlier behavior of not booting up the
760        XSSAuditor when parsing fragments.
761
762        * html/parser/HTMLDocumentParser.cpp:
763        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
764        * html/parser/XSSAuditor.cpp:
765        (WebCore::XSSAuditor::initForFragment):
766        * html/parser/XSSAuditor.h:
767        (XSSAuditor):
768
7692013-04-23  Andreas Kling  <akling@apple.com>
770
771        Speed up ElementData::getAttributeItem(), which is hot.
772        <http://webkit.org/b/115031>
773
774        Reviewed by Antti Koivisto.
775
776        From Blink r148622 by <cevans@chromium.org>.
777
778        The previous version had a couple of issues:
779        - Incurred new WTF::Vector::operator[] checks.
780        - Had a branch in _every_ loop iteration that checked whether the storage was Vector or array[] backed.
781
782        Both these issues are fixed, and CloneNodes.html seems reliably at +2%.
783        I also believe GetElement.html is maybe +1%.
784
785        For WebKit, also applied the same optimization to getAttributeItemIndex().
786
787        * dom/Element.h:
788        (WebCore::ElementData::attributeBase):
789        (WebCore::ElementData::getAttributeItemIndex):
790        (WebCore::ElementData::getAttributeItem):
791        (WebCore::ElementData::attributeItem):
792
7932013-04-23  Antoine Quint  <graouts@apple.com>
794
795        Initial advance of text runs should be taken into account
796        https://bugs.webkit.org/show_bug.cgi?id=114949
797
798        Reviewed by Darin Adler.
799
800        Keep track of complex text runs' initial advance by adding a new
801        member to GlyphBuffer and adding the initial advance of any non-first
802        text run to the advance of the last glyph added for the previous text run.
803        Additionally, we now correctly handle advance values in the y-axis.
804
805        Test: fast/text/complex-initial-advance.html
806
807        * WebCore.exp.in:
808        Add support for new WebKitSystemInterface API.
809        * platform/graphics/FontFastPath.cpp:
810        (WebCore::Font::drawGlyphBuffer):
811        Take into account the buffer's initial advance in the y-axis to adjust
812        the point at which to draw the buffers. Additionally, keep track of advances
813        on the y-axis as well as the x-axis (which we already were doing) as we iterate
814        through glyphs and adjust the start point.
815        (WebCore::Font::drawEmphasisMarks):
816        Adopt change of GlyphBuffer::advanceAt() return type.
817        * platform/graphics/GlyphBuffer.h:
818        Removing the WINCE-specific GlyphBufferAdvance struct since heights are now necessary.
819        (WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
820        New default constructor for GlyphBufferAdvance to support the m_initialAdvance member.
821        (WebCore::GlyphBuffer::setInitialAdvance):
822        (WebCore::GlyphBuffer::initialAdvance):
823        New APIs to get and set the initial advance for a glyph buffer.
824        (WebCore::GlyphBuffer::advanceAt):
825        Return a GlyphBufferAdvance rather than a float which used to be only
826        the glyph buffer's x-axis advance. This is necessary to handle deltas
827        on the y-axis as well (see WebCore::Font::drawGlyphBuffer).
828        * platform/graphics/GlyphBuffer.h:
829        (GlyphBuffer):
830        (WebCore::GlyphBuffer::setInitialAdvance):
831        * platform/graphics/WidthIterator.cpp:
832        (WebCore::WidthIterator::advanceInternal):
833        (WebCore::WidthIterator::advanceOneCharacter):
834        Adopt change of GlyphBuffer::advanceAt() return type.
835        * platform/graphics/cairo/FontCairo.cpp:
836        (WebCore::Font::drawGlyphs):
837        Adopt change of GlyphBuffer::advanceAt() return type.
838        * platform/graphics/mac/ComplexTextController.cpp:
839        (WebCore::ComplexTextController::advance):
840        When processing the first text run, set that run's initial advance as
841        the glyph buffer's initial advance.
842        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
843        Represent the initial advance for a text run by adjusting the advance
844        of the last glyph of the previous text run in the glyph buffer.
845        * platform/graphics/mac/ComplexTextController.h:
846        (WebCore::ComplexTextController::ComplexTextRun::initialAdvance):
847        (ComplexTextRun):
848        New API to read the inital advance of a complex text run.
849        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
850        (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
851        Obtain the text run's initial advance via the new wkCTRunGetInitialAdvance
852        WebKitSystemInterface API.
853        * platform/graphics/qt/FontQt.cpp:
854        (WebCore::Font::drawGlyphs):
855        Adopt change of GlyphBuffer::advanceAt() return type.
856        * platform/mac/WebCoreSystemInterface.h:
857        * platform/mac/WebCoreSystemInterface.mm:
858        Add support for the new wkCTRunGetInitialAdvance WebKitSystemInterface API.
859        * platform/wx/wxcode/cairo/non-kerned-drawing.cpp:
860        (WebCore::drawTextWithSpacing):
861        Adopt change of GlyphBuffer::advanceAt() return type.
862        * rendering/svg/SVGTextRunRenderingContext.cpp:
863        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
864        Adopt change of GlyphBuffer::advanceAt() return type.
865
8662013-04-23  Noam Rosenthal  <noam@webkit.org>
867
868        [Texmap] Don't paint to an intermediate surface when the result is going to be clipped out completely.
869        https://bugs.webkit.org/show_bug.cgi?id=115015
870
871        Reviewed by Allan Sandfeld Jensen.
872
873        Maintain a clipBounds rectangle in TextureMapper, and test it against the bounds of an intermediate
874        surface before it is painted.
875        This allows us to opt out completely of painting into the surface if the result is going to be optimized
876        out by the GPU clipping.
877
878        Covered by tests in compositing/overlap-blending.
879
880        * platform/graphics/texmap/TextureMapper.h:
881        (TextureMapper):
882        * platform/graphics/texmap/TextureMapperGL.cpp:
883        (WebCore::TextureMapperGL::clipBounds):
884        (WebCore):
885        * platform/graphics/texmap/TextureMapperGL.h:
886        * platform/graphics/texmap/TextureMapperImageBuffer.h:
887        * platform/graphics/texmap/TextureMapperLayer.cpp:
888        (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
889
8902013-04-23  Noam Rosenthal  <noam@webkit.org>
891
892        [Coordinated Graphics] Remove the lockAnimations code path
893        https://bugs.webkit.org/show_bug.cgi?id=114899
894
895        Reviewed by Benjamin Poulain.
896
897        Remove locking/unlocking animations and checks for the lock state.
898        The animation locking has been tested to create not-so-smooth animations,
899        while the use case where the composited animations run out of sync from
900        the non-composited animations is very rare and unnoticeable.
901
902        No new tests, removing functionality that wasn't tested in the first place.
903
904        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
905        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
906        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
907        (WebCore::CoordinatedGraphicsScene::commitSceneState):
908        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
909        (CoordinatedGraphicsScene):
910
9112013-04-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
912
913        Respect image-rendering setting for determing image-rendering quality
914        https://bugs.webkit.org/show_bug.cgi?id=113405
915
916        Reviewed by Benjamin Poulain.
917
918        Remove the CSS4 values as they are not ready for implementation yet.
919        We still parse the -webkit-crisp-edges and SVG compatibility values to
920        be closer to the the partial support in Gecko and Presto.
921
922        Tests: fast/css/image-rendering-canvas.html
923               fast/css/image-rendering-parsing.html
924               fast/css/image-rendering.html
925               fast/css/optimize-contrast-image.html
926
927        * css/CSSParser.cpp:
928        (WebCore::isValidKeywordPropertyAndValue):
929        * css/CSSPrimitiveValueMappings.h:
930        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
931        (WebCore::CSSPrimitiveValue::operator EImageRendering):
932        * css/CSSValueKeywords.in:
933        * css/SVGCSSParser.cpp:
934        (WebCore::CSSParser::parseSVGValue):
935        * rendering/RenderBoxModelObject.cpp:
936        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
937        * rendering/RenderHTMLCanvas.cpp:
938        (WebCore::RenderHTMLCanvas::paintReplaced):
939        * rendering/style/RenderStyleConstants.h:
940
9412013-04-23  Commit Queue  <rniwa@webkit.org>
942
943        Unreviewed, rolling out r148923.
944        http://trac.webkit.org/changeset/148923
945        https://bugs.webkit.org/show_bug.cgi?id=115020
946
947        The patch causes multiple failures in CSS, canvas tests
948        (Requested by zdobersek on #webkit).
949
950        * platform/graphics/cairo/PlatformContextCairo.cpp:
951        (WebCore::PlatformContextCairo::drawSurfaceToContext):
952
9532013-04-22  Noam Rosenthal  <noam@webkit.org>
954
955        [EFL] Assertion Failures in Coordinated Graphics after r148433
956        https://bugs.webkit.org/show_bug.cgi?id=114731
957
958        Reviewed by Gyuyoung Kim.
959
960        The assert is incorrect. In some cases in coordinated graphics we may have a backing store
961        and drawsContent would be set to false.
962
963        No new tests.
964
965        * platform/graphics/texmap/TextureMapperLayer.cpp:
966        (WebCore::TextureMapperLayer::paintSelf):
967
9682013-04-22  Suchit Agrawal  <a.suchit@samsung.com>
969
970        table's text aligned on top instead of center because of rowspan
971        https://bugs.webkit.org/show_bug.cgi?id=18092
972
973        Reviewed by Beth Dakin.
974
975        Last row in the rowspan is not getting the height of rowspan cell because there is not
976        enough rows present below rowspan cell and we are strictly applying height of rowspan
977        to the row which should lay last in the rowspan based of rowspan value.
978
979        When row contains rowspan cell and it is last row of the table then
980        rowspan height is adding to last row of the table.
981
982        Test: fast/table/Rowspan-value-more-than-number-of-rows-present.html
983
984        It calculates logical height of the rows in the table.
985        * rendering/RenderTableSection.cpp:
986        (WebCore::RenderTableSection::calcRowLogicalHeight):
987
9882013-04-22  Mihnea Ovidenie  <mihnea@adobe.com>
989
990        [CSS Regions] Region's float parent doesn't size according to region size but to content node size
991        https://bugs.webkit.org/show_bug.cgi?id=111332
992
993        Reviewed by David Hyatt.
994
995        Tests: fast/regions/intrinsic-sized-regions.html
996               fast/regions/region-with-float-parent.html
997
998        The patch ensures that the computation of region's preferred widths
999        takes into account the region width/min-width if these values are specified.
1000        Also implemented the computation of intrinsic widths for a region,
1001        based on the min/max preferred widths of the associated flow thread.
1002
1003        * rendering/RenderRegion.cpp:
1004        (WebCore::RenderRegion::computeIntrinsicLogicalWidths):
1005        (WebCore):
1006        (WebCore::RenderRegion::computePreferredLogicalWidths):
1007        * rendering/RenderRegion.h:
1008        (RenderRegion):
1009
10102013-04-22  Jessie Berlin  <jberlin@apple.com>
1011
1012        Debug build fix.
1013
1014        Rubber-stamped by Ryosuke Niwa.
1015
1016        * inspector/InspectorController.cpp:
1017        (WebCore::InspectorController::InspectorController):
1018        * inspector/InspectorMemoryAgent.cpp:
1019        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
1020        * inspector/InspectorMemoryAgent.h:
1021        (WebCore):
1022        (WebCore::InspectorMemoryAgent::create):
1023        (InspectorMemoryAgent):
1024
10252013-04-22  Brady Eidson  <beidson@apple.com>
1026
1027        Address review feedback I forgot to address in r148929
1028        https://bugs.webkit.org/show_bug.cgi?id=114480
1029
1030        * loader/SubresourceLoader.cpp:
1031        (WebCore::SubresourceLoader::willSendRequest): Rework the "what" comment into a more useful "why" comment.
1032
10332013-04-22  Benjamin Poulain  <bpoulain@apple.com>
1034
1035        Second Mac debug build fix after r148921
1036
1037        Unreviewed.
1038
1039        * inspector/InspectorMemoryAgent.cpp:
1040        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
1041        * inspector/InspectorMemoryAgent.h:
1042        (InspectorMemoryAgent):
1043
10442013-04-22  Brady Eidson  <beidson@apple.com>
1045
1046        REGRESSION (r141136): Wiki "Random article" function very broken.
1047        <rdar://problem/13229985> and https://bugs.webkit.org/show_bug.cgi?id=114480
1048
1049        Reviewed by Alexey Proskuryakov.
1050
1051        Test: http/tests/navigation/redirect-to-random-url-versus-memory-cache.html
1052
1053        If we are performing a conditional GET to revalidate a resource and there's a redirect,
1054        check to see if the redirect is to a different URL than the final URL of the resource.
1055
1056        If the URLs differ then we should make the redirect-request unconditional and do a normal load.
1057
1058        * loader/SubresourceLoader.cpp:
1059        (WebCore::SubresourceLoader::willSendRequest):
1060
1061        * platform/network/ResourceRequestBase.cpp:
1062        (WebCore::ResourceRequestBase::makeUnconditional):
1063
1064        * platform/network/ResourceRequestBase.h:
1065        (ResourceRequestBase):
1066
10672013-04-22  Benjamin Poulain  <bpoulain@apple.com>
1068
1069        Mac debug build fix after r148921
1070
1071        Unreviewed.
1072
1073        * page/animation/CompositeAnimation.cpp:
1074
10752013-04-22  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
1076
1077        [Cairo] Canvas-shadow behavior is not being as expected
1078        https://bugs.webkit.org/show_bug.cgi?id=108897
1079
1080        Reviewed by Martin Robinson.
1081
1082        Use the pattern-extend-mode "CAIRO_EXTEND_NONE" instead of "CAIRO_EXTEND_PAD" in
1083        PlatformContextCairo::drawSurfaceToContext().
1084
1085        In the function PlatformContextCairo::drawSurfaceToContext(), a pattern is being
1086        created from the source surface and this pattern is drawn onto the destination
1087        context. There is no gradient involved. Hence the extend mode for filling the
1088        pattern should be "CAIRO_EXTEND_NONE". If we use the extend mode
1089        "CAIRO_EXTEND_PAD" in PlatformContextCairo::drawSurfaceToContext(), the original
1090        image area is also filled with the shadow color which is not the expected behavior.
1091
1092        Test: fast/canvas/canvas-image-shadow.html
1093
1094        * platform/graphics/cairo/PlatformContextCairo.cpp:
1095        (WebCore::PlatformContextCairo::drawSurfaceToContext):
1096
10972013-04-22  Benjamin Poulain  <benjamin@webkit.org>
1098
1099        Remove the memory instrumentation code
1100        https://bugs.webkit.org/show_bug.cgi?id=114931
1101
1102        Reviewed by Andreas Kling.
1103
1104        The Memory Instrumentation code is unfinished and has already
1105        become out of sync the objects it is supposed to represent.
1106
1107        The current approach does not seem maintainable, it is better to
1108        remove it before someone gets hurt.
1109
1110        By removing the code, the binary become 1240976 bytes smaller.
1111        Yep, almost 1 Mb, bringing WebCore to the size it has 5 months ago :)
1112
1113        * MostWebCoreFiles: remove the support for memory instrumentation.
1114
11152013-04-22  Bear Travis  <betravis@adobe.com>
1116
1117        Do not reuse ExclusionShapeInsideInfo in a recursive region layout
1118        https://bugs.webkit.org/show_bug.cgi?id=114467
1119
1120        Reviewed by David Hyatt.
1121
1122        Elements that respect shape-inside that have inline children should not reuse an
1123        ExclusionShapeInsideInfo for their children's layout. This patch adds the test
1124        for regions. See the details for non-region layout in bug 104582.
1125        https://bugs.webkit.org/show_bug.cgi?id=104582
1126
1127        Test: fast/regions/shape-inside/shape-inside-recursive-layout.html
1128
1129        * rendering/RenderBlockLineLayout.cpp:
1130        (WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Do not look up a region's
1131        ExclusionShapeInsideInfo if a block is already respecting shape-inside.
1132
11332013-04-22  Martin Robinson  <mrobinson@igalia.com>
1134
1135        [GTK] Fix remaining introspection warnings
1136        https://bugs.webkit.org/show_bug.cgi?id=114980
1137
1138        Reviewed by Gustavo Noronha Silva.
1139
1140        * bindings/gobject/WebKitDOMCustom.h: Add scope and transfer annotations and flesh
1141        out gtkdoc for completeness.
1142        * bindings/gobject/WebKitDOMEventTarget.h:
1143        (_WebKitDOMEventTargetIface): Ditto and also align virtual method names with those used
1144        for the concrete ones.
1145
11462013-04-22  Tim Horton  <timothy_horton@apple.com>
1147
1148        PDFPlugin: Support unlocking encrypted PDFs
1149        https://bugs.webkit.org/show_bug.cgi?id=114938
1150        <rdar://problem/12872888>
1151
1152        Reviewed by Alexey Proskuryakov.
1153
1154        Export HTMLNames::typeAttr.
1155
1156        * WebCore.exp.in:
1157
11582013-04-22  Ryosuke Niwa  <rniwa@webkit.org>
1159
1160        Use-after-free in CompositeEditCommand::cloneParagraphUnderNewElement
1161        https://bugs.webkit.org/show_bug.cgi?id=114911
1162
1163        Reviewed by Oliver Hunt.
1164
1165        Back ported https://src.chromium.org/viewvc/blink?revision=148680&view=revision.
1166
1167        * editing/CompositeEditCommand.cpp:
1168        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
1169
11702013-04-22  Eric Carlson  <eric.carlson@apple.com>
1171
1172        [Mac] "automatic" track selection should only select a track that matches user language
1173        https://bugs.webkit.org/show_bug.cgi?id=114976
1174
1175        Reviewed by Jer Noble.
1176
1177        Test: media/track/track-automatic-subtitles.html
1178
1179        * page/CaptionUserPreferencesMac.mm:
1180        (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): When in "automatic" mode, only
1181            consider text tracks that match the user's preferred language when the primary audio track
1182            does not.
1183
11842013-04-22  Jer Noble  <jer.noble@apple.com>
1185
1186        Cancelling load may cause deadlock in -[AVPlayerItem release]
1187        https://bugs.webkit.org/show_bug.cgi?id=114962
1188
1189        Reviewed by Eric Carlson.
1190
1191        Work around a bug in AVAssetResourceLoader by using a generic, non-main dispatch queue
1192        to recieve AVAssetResourceLoaderDelegate callbacks, and then marshalling those
1193        callbacks to the main thread asynchronously.
1194
1195        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1196        (WebCore::globalLoaderDelegateQueue): Added.
1197        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Use the new global queue.
1198        (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
1199            Marshall the request to the main queue, and return YES (wait) immediately.
1200
12012013-04-22  Zan Dobersek  <zdobersek@igalia.com>
1202
1203        [GTK] Set up libPlatform.la
1204        https://bugs.webkit.org/show_bug.cgi?id=114168
1205
1206        Reviewed by Martin Robinson.
1207
1208        No new tests - no new functionality.
1209
1210        * GNUmakefile.am: Also add the LevelDB-specific cppflags to the platform_cppflags if required as the LevelDB
1211        code is now built into the new libPlatform.la library.
1212        * GNUmakefile.list.am: Build a small set of non-GTK-specific platform source files that are already free of
1213        platform violations into the new libPlatform.la library.
1214
12152013-04-22  Andy Estes  <aestes@apple.com>
1216
1217        Range.getClientRects() should not include rects for partially selected elements
1218        https://bugs.webkit.org/show_bug.cgi?id=76839
1219
1220        Reviewed by Sam Weinig.
1221
1222        CSSOM says that Range.getClientRects() should include the border boxes
1223        of each element selected by the range. However, we were also
1224        incorrectly including border boxes for partially selected elements.
1225        For instance, consider the following selection:
1226
1227            <div>line one<br>line two</div>
1228            -------------
1229
1230        The <div> is two lines tall, but only the first line is selected.
1231        Despite this, we'd include the <div>'s border box since its start tag
1232        was included in the selection.
1233
1234        Fix this by excluding partially selected elements. This is accomplished
1235        by skipping over elements that come after the start boundary point of
1236        the range but are ancestors of the end boundary point.
1237
1238        Added test cases to LayoutTests/fast/dom/Range/getClientRects.html.
1239
1240        * dom/Range.cpp:
1241        (WebCore::Range::getBorderAndTextQuads):
1242
12432013-04-22  Yi Shen  <max.hong.shen@gmail.com>
1244
1245        Crash on OS X when shift clicking outside of input
1246        https://bugs.webkit.org/show_bug.cgi?id=104058
1247
1248        Reviewed by Chang Shu.
1249
1250        Shift clicking outside of a focused div while removing the focused div from
1251        the dom tree at the same time may hit a null visible position, which should
1252        not be used to calculate the text distance with the new selection's start and
1253        end position. Otherwise, the browser may crash.
1254
1255        Test: editing/selection/crash-on-shift-click.html
1256
1257        * page/EventHandler.cpp:
1258        (WebCore::EventHandler::handleMousePressEventSingleClick):
1259
12602013-04-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1261
1262        Scrollbar should not depend on EventHandler, Frame and FrameView
1263        https://bugs.webkit.org/show_bug.cgi?id=114941
1264
1265        Reviewed by Darin Adler.
1266
1267        It's a layering violation that Scrollbar uses EventHandler, Frame
1268        and FrameView. Frame is used to get the EventHandler that is used
1269        to set mousePressed to false after a Scrollbar::mouseUp(). This is
1270        not really needed, since EventHandler already sets m_mousePressed
1271        to false when calling Scrollbar::mouseUp(). The PopupMenu windows
1272        implementation also calls Scrollbar::mouseUp(), but that scrollbar
1273        is not inside a FrameView.
1274
1275        * platform/Scrollbar.cpp:
1276        (WebCore::Scrollbar::isScrollViewScrollbar):
1277        isScrollViewScrollbar() is a method of ScrollView so we don't need
1278        to cast to FrameView.
1279        (WebCore::Scrollbar::mouseUp): Remove EventHandler ussage.
1280
12812013-04-22  Andreas Kling  <akling@apple.com>
1282
1283        Shrink baseline size of WTF::Vector on 64-bit by switching to unsigned capacity and size.
1284        <http://webkit.org/b/97268>
1285        <rdar://problem/12376519>
1286
1287        Reviewed by Sam Weinig.
1288
1289        * CMakeLists.txt: Add a workaround for GCC 4.6.x in Release mode so it
1290        does not crash.
1291
12922013-04-22  John Griggs  <jgriggs@blackberry.com>
1293
1294        [BlackBerry] URL decode data: URLs before passing to the platform media player.
1295        https://bugs.webkit.org/show_bug.cgi?id=114887
1296
1297        Reviewed by Rob Buis.
1298
1299        Pass data URL through URL decoding before passing to platform media player.  PR 313635.
1300
1301        Reviewed internally by Liam Quinn
1302
1303        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1304        (WebCore::MediaPlayerPrivate::load):
1305
13062013-04-22  Xuefei Ren  <xren@blackberry.com>
1307
1308
1309        fix build warning(unused parameter)
1310        https://bugs.webkit.org/show_bug.cgi?id=114855
1311
1312        Reviewed by Rob Buis.
1313
1314        remove warning(unused parameter) in
1315        Source/WebCore/platform/graphics/blackberry
1316
1317        * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
1318        (WebCore::CanvasLayerCompositingThreadClient::drawTextures):
1319        (WebCore::CanvasLayerCompositingThreadClient::deleteTextures):
1320        (WebCore::CanvasLayerCompositingThreadClient::commitPendingTextureUploads):
1321        * platform/graphics/blackberry/FontBlackBerry.cpp:
1322        (WebCore::Font::offsetForPositionForComplexText):
1323        * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
1324        (WebCore::FontCache::getSimilarFontPlatformData):
1325        (WebCore::FontCache::getTraitsInFamily):
1326        * platform/graphics/blackberry/GlyphPageTreeNodeBlackBerry.cpp:
1327        (WebCore::GlyphPage::fill):
1328        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
1329        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
1330        * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
1331        (WebCore::GraphicsContext::drawConvexPolygon):
1332        (WebCore::GraphicsContext::fillRect):
1333        (WebCore::GraphicsContext::fillRoundedRect):
1334        (WebCore::GraphicsContext::roundToDevicePixels):
1335        (WebCore::GraphicsContext::setPlatformShadow):
1336        (WebCore::GraphicsContext::clipConvexPolygon):
1337        (WebCore::GraphicsContext::setURLForRect):
1338        (WebCore::GraphicsContext::setPlatformStrokeColor):
1339        (WebCore::GraphicsContext::setPlatformFillColor):
1340        (WebCore::GraphicsContext::setPlatformCompositeOperation):
1341        * platform/graphics/blackberry/ImageBlackBerry.cpp:
1342        (WebCore::BitmapImage::draw):
1343        (WebCore::Image::drawPattern):
1344        * platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
1345        (WebCore::flushAndDraw):
1346        (WebCore::ImageBuffer::ImageBuffer):
1347        (WebCore::ImageBuffer::copyImage):
1348        (WebCore::ImageBuffer::draw):
1349        (WebCore::ImageBuffer::platformTransformColorSpace):
1350        * platform/graphics/blackberry/LayerTiler.cpp:
1351        (WebCore::LayerTiler::drawTile):
1352        * platform/graphics/blackberry/PathBlackBerry.cpp:
1353        (WebCore::GraphicsContext::drawFocusRing):
1354        (WebCore::GraphicsContext::clipPath):
1355        * platform/graphics/blackberry/PatternBlackBerry.cpp:
1356        (WebCore::Pattern::platformPattern):
1357
13582013-04-22  Mike Fenton  <mifenton@rim.com>
1359
1360        [BlackBerry] Add additional datalist support.
1361        https://bugs.webkit.org/show_bug.cgi?id=114883
1362
1363        Reviewed by Rob Buis.
1364
1365        PR 210083.
1366
1367        Extend support for datalist to include all non-popup input types.
1368
1369        Re-enabling fast/forms/datalist/input-list
1370
1371        Internally Reviewed by Otto Cheung.
1372
1373        * platform/blackberry/RenderThemeBlackBerry.cpp:
1374        (WebCore::RenderThemeBlackBerry::supportsDataListUI):
1375
13762013-04-22  Alberto Garcia  <agarcia@igalia.com>
1377
1378        [BlackBerry] Add dummy implementations of DragData::droppedFileSystemId()
1379        https://bugs.webkit.org/show_bug.cgi?id=114861
1380
1381        Reviewed by Carlos Garcia Campos.
1382
1383        * platform/blackberry/DragDataBlackBerry.cpp:
1384        (WebCore):
1385        (WebCore::DragData::droppedFileSystemId):
1386
13872013-04-22  Mihai Maerean  <mmaerean@adobe.com>
1388
1389        [CSS Regions] Elements in a region should be assignable to a named flow
1390        https://bugs.webkit.org/show_bug.cgi?id=74144
1391
1392        Reviewed by David Hyatt.
1393
1394        DOM children of a region must not be rendered as children of the region, but can be collected in flow threads.
1395
1396        NodeRenderingContext::parentRenderer now creates the parent render flow thread if it doesn't exist.
1397
1398        Element::moveToFlowThreadIsNeeded is a virtual method that is overriden in PseudoElement to return false and
1399        in SVGElement so only svg root elements can directly be collected by a render flow thread.
1400
1401        RenderObject::canDOMChildrenHaveRenderParent exists to optimize the code so nodes inside regions (and maybe
1402        other types of renderers in the future) can still have renderers if they need to be in a flow thread while the
1403        rest of renderers that can't have children skip the new instructions.
1404
1405        Tests: fast/regions/flow-body-in-html.html . To test the duplicate bug #103685.
1406               fast/regions/region-content-flown-into-region.html
1407               fast/regions/universal-selector-children-to-the-same-region.html . To test the duplicate bug #103685.
1408
1409        * dom/Element.cpp:
1410        (WebCore::Element::moveToFlowThreadIsNeeded):
1411        * dom/Element.h:
1412        * dom/NodeRenderingContext.cpp:
1413        (WebCore::NodeRenderingContext::parentRenderer): the renderer that will be the parent for this node's renderer.
1414        In the case of RenderFlowThreads, it may need to create it.
1415        (WebCore::NodeRenderingContext::shouldCreateRenderer): In a region, only the children that need to be in a flow
1416        thread should have a renderer.
1417        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
1418        (WebCore::NodeRenderingContext::moveToFlowThread):
1419        * dom/NodeRenderingContext.h:
1420        (NodeRenderingContext):
1421        * dom/PseudoElement.h: pseudo-elements cannot be directly collected into a named flow.
1422        * dom/Text.cpp:
1423        (WebCore::Text::textRendererIsNeeded):
1424        (WebCore::Text::updateTextRenderer): Because calling textRendererIsNeeded(NodeRenderingContext(...)) on a
1425        non-const l-value NodeRenderingContext cannot be done on a temporary object on the stack.
1426        * dom/Text.h:
1427        * rendering/FlowThreadController.cpp:
1428        (WebCore::FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow):
1429        * rendering/FlowThreadController.h:
1430        * rendering/RenderObject.h:
1431        (WebCore::RenderObject::canDOMChildrenHaveRenderParent): Even if this render object can't have render children,
1432        the children in the DOM tree may have a render parent (that is different from this render object).
1433        * rendering/RenderRegion.h:
1434        * svg/SVGElement.cpp:
1435        (WebCore::SVGElement::moveToFlowThreadIsNeeded): Allow only svg root elements to be directly collected by a
1436        render flow thread.
1437        * svg/SVGElement.h:
1438
14392013-04-22  Alberto Garcia  <agarcia@igalia.com>
1440
1441        Gradient: add PlatformGradient definition for BlackBerry
1442        https://bugs.webkit.org/show_bug.cgi?id=114727
1443
1444        Reviewed by Carlos Garcia Campos.
1445
1446        * platform/graphics/Gradient.h:
1447        (Graphics):
1448
14492013-04-22  Andrei Bucur  <abucur@adobe.com>
1450
1451        Use DOM ordering for list counts
1452        https://bugs.webkit.org/show_bug.cgi?id=110352
1453
1454        Reviewed by Elliott Sprehn.
1455
1456        Currently the list items ordering is made by traversing the render tree. This gives bad results for:
1457        - list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
1458        - list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
1459        list so the numbering gets broken.
1460
1461        To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
1462        so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
1463        namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
1464        for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
1465        pre-order traversal methods aware of the pseudo-elements.
1466        An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
1467        no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
1468        first parent of the <li> or the shadow root if there is no ancestor.
1469        The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
1470        To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
1471        of this method. The CSS counters and the list items now have the same traversal algorithm.
1472
1473        In later patches I'll add tests that should cover the regions and shadow DOM use cases.
1474        Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
1475        Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
1476
1477        Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
1478        and fast/dom/shadow/shadow-and-list-elements.html
1479
1480        * dom/Node.cpp:
1481        (WebCore::Node::pseudoAwarePreviousSibling):
1482        (WebCore):
1483        (WebCore::Node::pseudoAwareNextSibling):
1484        (WebCore::Node::pseudoAwareFirstChild):
1485        (WebCore::Node::pseudoAwareLastChild):
1486        * dom/Node.h:
1487        (Node):
1488        * dom/NodeTraversal.cpp:
1489        (WebCore):
1490        (WebCore::NodeTraversal::previousIncludingPseudo):
1491        (NodeTraversal):
1492        (WebCore::NodeTraversal::nextIncludingPseudo):
1493        (WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
1494        * dom/NodeTraversal.h:
1495        (ElementTraversal):
1496        (NodeTraversal):
1497        (WebCore::ElementTraversal::previousIncludingPseudo):
1498        (WebCore::ElementTraversal::nextIncludingPseudo):
1499        (WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
1500        (WebCore::ElementTraversal::pseudoAwarePreviousSibling):
1501        * html/HTMLLIElement.cpp:
1502        (WebCore::HTMLLIElement::attach):
1503        * html/HTMLOListElement.cpp:
1504        (WebCore::HTMLOListElement::updateItemValues):
1505        (WebCore::HTMLOListElement::recalculateItemCount):
1506        * rendering/RenderCounter.cpp:
1507        (WebCore::previousInPreOrder):
1508        (WebCore::previousSiblingOrParent):
1509        (WebCore::parentElement):
1510        (WebCore::nextInPreOrder):
1511        * rendering/RenderListItem.cpp:
1512        (WebCore):
1513        (WebCore::enclosingList):
1514        (WebCore::RenderListItem::nextListItem):
1515        (WebCore::previousListItem):
1516        (WebCore::RenderListItem::calcValue):
1517        (WebCore::RenderListItem::explicitValueChanged):
1518        (WebCore::previousOrNextItem):
1519        (WebCore::RenderListItem::updateListMarkerNumbers):
1520        * rendering/RenderListItem.h:
1521        (RenderListItem):
1522
15232013-04-22  Alberto Garcia  <agarcia@igalia.com>
1524
1525        Fix multiple definition of ImageBuffer::platformLayer() in the BlackBerry port
1526        https://bugs.webkit.org/show_bug.cgi?id=114936
1527
1528        Reviewed by Carlos Garcia Campos.
1529
1530        We already have a definition in ImageBufferBlackBerry.cpp.
1531
1532        * platform/graphics/ImageBuffer.cpp:
1533        (WebCore):
1534
15352013-04-21  Carlos Garcia Campos  <cgarcia@igalia.com>
1536
1537        Division by zero in CSSGradientValue::addStops()
1538        https://bugs.webkit.org/show_bug.cgi?id=114807
1539
1540        Reviewed by Dean Jackson.
1541
1542        The normalization of the color stop positions of a linear gradient
1543        doesn't take into account that the first and last position can be
1544        the same. In such case the positions are computed dividing by 0.
1545        Clamp the positions to 1 without moving the end points in such
1546        case to match what other browsers do. This ensures that positions
1547        passed to the platform gradient are in the 0-1 range which fixes a
1548        crash due to an assert in BlackBerry port running test
1549        fast/forms/type-after-focus-rule-shrink-width.html.
1550
1551        Test: fast/gradients/css3-color-stop-invalid.html
1552
1553        * css/CSSGradientValue.cpp:
1554        (WebCore::CSSGradientValue::addStops):
1555
15562013-04-21  Benjamin Poulain  <benjamin@webkit.org>
1557
1558        Fix some minor bad use of strings in WebCore
1559        https://bugs.webkit.org/show_bug.cgi?id=114907
1560
1561        Reviewed by Darin Adler.
1562
1563        * editing/Editor.cpp:
1564        (WebCore::Editor::selectedText): This was implicitly getting the emptyString()
1565        for the argument "".
1566        * editing/markup.cpp:
1567        (WebCore::StyledMarkupAccumulator::takeResults): ditto.
1568
15692013-04-21  Dirk Schulze  <krit@webkit.org>
1570
1571        [Part 4] Parse the custom() function in -webkit-filter: parse the matN() functions
1572        https://bugs.webkit.org/show_bug.cgi?id=71444
1573
1574        Reviewed by Dean Jackson.
1575
1576        Custom filter parameters should support mat2 to mat4 value functions. Added parsing
1577        and style resolving bits to support the matrix function values. A later patch will
1578        add the matrices to the shader program.
1579
1580        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
1581
1582        Modified existing tests to cover changes.
1583
1584        * GNUmakefile.list.am: Added WebKitCSSMatFunctionValue to individual build systems.
1585        * Target.pri:
1586        * WebCore.vcproj/WebCore.vcproj:
1587        * WebCore.vcxproj/WebCore.vcxproj:
1588        * WebCore.vcxproj/WebCore.vcxproj.filters:
1589        * WebCore.xcodeproj/project.pbxproj:
1590        * css/CSSComputedStyleDeclaration.cpp:
1591        (WebCore::valueForCustomFilterMatParameter):
1592        (WebCore):
1593        (WebCore::valueForCustomFilterParameter):
1594        * css/CSSParser.cpp:
1595        (WebCore::CSSParser::parseTransform):
1596        (WebCore::CSSParser::parseMatValue):
1597        (WebCore):
1598        (WebCore::CSSParser::parseCustomFilterParameters):
1599        * css/CSSParser.h:
1600        (WebCore):
1601        * css/CSSValue.cpp:
1602        (WebCore::CSSValue::reportMemoryUsage):
1603        (WebCore::CSSValue::equals):
1604        (WebCore::CSSValue::cssText):
1605        (WebCore::CSSValue::destroy):
1606        (WebCore::CSSValue::cloneForCSSOM):
1607        * css/CSSValue.h:
1608        (WebCore::CSSValue::isWebKitCSSMatFunctionValue):
1609        * css/StyleResolver.cpp:
1610        (WebCore::StyleResolver::parseCustomFilterArrayParameter):
1611        (WebCore::StyleResolver::parseCustomFilterParameter):
1612        * css/StyleResolver.h:
1613        (StyleResolver):
1614        * css/WebKitCSSMatFunctionValue.cpp:
1615        (WebCore::WebKitCSSMatFunctionValue::WebKitCSSMatFunctionValue):
1616        (WebCore::WebKitCSSMatFunctionValue::customCssText):
1617        (WebCore::WebKitCSSMatFunctionValue::cloneForCSSOM):
1618        (WebCore::WebKitCSSMatFunctionValue::equals):
1619        (WebCore::WebKitCSSMatFunctionValue::reportDescendantMemoryUsage):
1620        * css/WebKitCSSMatFunctionValue.h:
1621        (WebKitCSSMatFunctionValue):
1622        (WebCore::WebKitCSSMatFunctionValue::create):
1623        * platform/graphics/filters/CustomFilterArrayParameter.h:
1624        (WebCore::CustomFilterArrayParameter::create):
1625        (WebCore::CustomFilterArrayParameter::CustomFilterArrayParameter):
1626        * platform/graphics/filters/CustomFilterParameter.h:
1627        (CustomFilterParameter):
1628        * platform/graphics/filters/CustomFilterRenderer.cpp:
1629        (WebCore::CustomFilterRenderer::bindProgramParameters):
1630
16312013-04-12  Balazs Kelemen  <kbalazs@webkit.org>
1632
1633        [GStreamer] Media attribute preload="none" is not honored
1634        https://bugs.webkit.org/show_bug.cgi?id=114357
1635
1636        Reviewed by Philippe Normand.
1637
1638        Fix the logic that prevents live streams from being buffered to not make preload="none" ignored.
1639
1640        Test: http/tests/media/video-preload.html
1641        We need a http test because the bug does not triggered with local files.
1642
1643        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1644        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1645        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1646        (MediaPlayerPrivateGStreamer):
1647        Remove m_originalPreloadWasAutoAndWasOverridden because it is not necessary and it is causing this bug.
1648        Currently if the tag has preload="none" attribute we set m_preload to Auto in the constructor. After that
1649        MedaPlayer calls setPreload(None), so we set m_originalPreloadWasAutoAndWasOverridden to true and later
1650        reset m_preload to Auto. The error prone factor here is that the m_preload member is repeated in the
1651        private class and setPreload is also used there. This seems to be necessary because we need to be able
1652        to ignore preloading if this is a live stream. Fortunately the original parsed value is available in the
1653        constructor, so we can use that. This will give the correct value that we should override only in the case
1654        of a live stream and that's it, we don't need to reset it later to Auto.
1655        Furthermore, we should ignore setting preload to auto from js if it is a live stream. This patch also handles
1656        this with an early return in setPreload.
1657
16582013-04-21  Carlos Garcia Campos  <cgarcia@igalia.com>
1659
1660        Widget should not depend on AXObjectCache
1661        https://bugs.webkit.org/show_bug.cgi?id=114514
1662
1663        Reviewed by Chris Fleizach.
1664
1665        Move AXObjectCache usage from platform files to FrameView.
1666
1667        * WebCore.exp.in: Update symbols.
1668        * page/FrameView.cpp:
1669        (WebCore::FrameView::didAddScrollbar): Handle scrollbar updates in
1670        AXObjectCache.
1671        (WebCore::FrameView::willRemoveScrollbar): Handle scrollbar
1672        updates in AXObjectCache and remove the scrollbar from the cache.
1673        * page/FrameView.h:
1674        * platform/ScrollView.cpp:
1675        (WebCore::ScrollView::setHasHorizontalScrollbar): Use
1676        didAddScrollbar/willRemoveScrollbar
1677        (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
1678        * platform/ScrollableArea.cpp:
1679        (WebCore::ScrollableArea::didAddScrollbar): This is the old
1680        didAddVerticalScrollbar and didAddHorizontalScrollbar joined in a
1681        single method that receives a ScrollbarOrientation parameter.
1682        (WebCore::ScrollableArea::willRemoveScrollbar): This is the old
1683        willRemoveVerticalScrollbar and
1684        willRemoveHorizontalScrollbarScrollbar joined in a single method
1685        that receives a ScrollbarOrientation parameter.
1686        * platform/ScrollableArea.h:
1687        (ScrollableArea):
1688        * platform/Scrollbar.cpp:
1689        (WebCore::Scrollbar::~Scrollbar): Remove AXObjectCache usage.
1690        * platform/Scrollbar.h:
1691        * platform/Widget.h:
1692        (Widget): Remove axObjectCache() method.
1693        * platform/mac/ScrollAnimatorMac.h:
1694        (ScrollAnimatorMac):
1695        * rendering/RenderLayer.cpp:
1696        (WebCore::RenderLayer::createScrollbar): Use didAddScrollbar.
1697        (WebCore::RenderLayer::destroyScrollbar): Use willRemoveScrollbar.
1698        * rendering/RenderListBox.cpp:
1699        (WebCore::RenderListBox::createScrollbar): Use didAddScrollbar.
1700        (WebCore::RenderListBox::destroyScrollbar): Use willRemoveScrollbar.
1701
17022013-04-20  Dirk Schulze  <krit@webkit.org>
1703
1704        [Part 5] Parse color value for custom() function parameters
1705        https://bugs.webkit.org/show_bug.cgi?id=114902
1706
1707        Reviewed by Dean Jackson.
1708
1709        Custom filter parameters should support color values. Added parsing
1710        and style resolving bits to support color values. A later patch will
1711        add the color values to the shader program.
1712
1713        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
1714
1715        Modified existing tests to cover changes.
1716
1717        * GNUmakefile.list.am: Added CustomFilterColorParameter to support color values
1718            as custom filter parameters.
1719        * Target.pri:
1720        * WebCore.vcproj/WebCore.vcproj:
1721        * WebCore.vcxproj/WebCore.vcxproj:
1722        * WebCore.vcxproj/WebCore.vcxproj.filters:
1723        * WebCore.xcodeproj/project.pbxproj:
1724        * css/CSSComputedStyleDeclaration.cpp:
1725        (WebCore::valueForCustomFilterColorParameter):
1726        (WebCore):
1727        (WebCore::valueForCustomFilterParameter):
1728        * css/CSSParser.cpp:
1729        (WebCore::CSSParser::parseCustomFilterParameters):
1730        * css/StyleResolver.cpp:
1731        (WebCore::StyleResolver::parseCustomFilterColorParameter):
1732        (WebCore):
1733        (WebCore::StyleResolver::parseCustomFilterParameter):
1734        * css/StyleResolver.h:
1735        (StyleResolver):
1736        * platform/graphics/filters/CustomFilterColorParameter.h: Added.
1737        (WebCore):
1738        (WebCore::blendFunc):
1739        (CustomFilterColorParameter):
1740        (WebCore::CustomFilterColorParameter::create):
1741        (WebCore::CustomFilterColorParameter::blend):
1742        (WebCore::CustomFilterColorParameter::color):
1743        (WebCore::CustomFilterColorParameter::setColor):
1744        (WebCore::CustomFilterColorParameter::operator==):
1745        (WebCore::CustomFilterColorParameter::CustomFilterColorParameter):
1746        (WebCore::CustomFilterColorParameter::~CustomFilterColorParameter):
1747        * platform/graphics/filters/CustomFilterParameter.h:
1748        (CustomFilterParameter):
1749        * platform/graphics/filters/CustomFilterRenderer.cpp:
1750        (WebCore::CustomFilterRenderer::bindProgramParameters):
1751
17522013-04-20  Glenn Adams  <glenn@skynav.com>
1753
1754        REGRESSION (r147588): Line breaks occur in the middle of Hebrew words at haaertz.co.il and other websites
1755        https://bugs.webkit.org/show_bug.cgi?id=114721
1756
1757        Reviewed by Dean Jackson.
1758
1759        Tests: fast/text/line-break-after-empty-inline-hebrew.html
1760               fast/text/line-break-after-inline-latin1.html
1761
1762        If prior context changes content or length after creating line break iterator, then need to
1763        create new iterator with new prior context instead of using cached iterator with old prior context.
1764
1765        * platform/text/TextBreakIterator.h:
1766        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator): Initialize members to cache reference to initialized prior context.
1767        (WebCore::LazyLineBreakIterator::get): Create new iterator if prior context content reference changes.
1768        (WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator): Reset cached prior context references.
1769        (LazyLineBreakIterator): Add members to cache reference to initialized prior context.
1770
17712013-04-19  Ryuan Choi  <ryuan.choi@samsung.com>
1772
1773        [EFL] Arrow of combo box are drawn twice
1774        https://bugs.webkit.org/show_bug.cgi?id=113917
1775
1776        Reviewed by Gyuyoung Kim.
1777
1778        combo_button_icon part is for arrow so that images of combo_button part should
1779        not contain arrow.
1780
1781        No new tests required due to no behavioral change.
1782
1783        * platform/efl/DefaultTheme/widget/combo/combo_focus_button.png:
1784        * platform/efl/DefaultTheme/widget/combo/combo_hover_button.png:
1785        * platform/efl/DefaultTheme/widget/combo/combo_press_button.png:
1786
17872013-04-19  Brendan Long  <b.long@cablelabs.com>
1788
1789        Add interfaces and stubs for audio and video tracks
1790        https://bugs.webkit.org/show_bug.cgi?id=113965
1791
1792        Reviewed by Jer Noble.
1793
1794        No new tests because there's no implementations, so there's nothing
1795        interesting to test.
1796
1797        * CMakeLists.txt: Add AudioTrack, VideoTrack, AudioTrackList and VideoTrackList.
1798        * DerivedSources.cpp: Same.
1799        * DerivedSources.make: Same.
1800        * DerivedSources.pri: Same.
1801        * GNUmakefile.list.am: Same.
1802        * Target.pri: Same.
1803        * UseJSC.cmake: Same.
1804        * WebCore.vcproj/WebCore.vcproj: Same.
1805        * WebCore.xcodeproj/project.pbxproj: Same.
1806        * bindings/gobject/GNUmakefile.am: Same.
1807        * bindings/js/JSAudioTrackCustom.cpp: Added, based on JSTestTrackCustom
1808        * bindings/js/JSAudioTrackListCustom.cpp: Same.
1809        * bindings/js/JSBindingsAllInOne.cpp: Add AudioTrack, VideoTrack, AudioTrackList and VideoTrackList.
1810        * bindings/js/JSVideoTrackCustom.cpp: Added, based on JSTestTrackCustom
1811        * bindings/js/JSVideoTrackListCustom.cpp: Same.
1812        * dom/EventTarget.h: Make AudioTrackList and VideoTrackList event targets.
1813        * dom/EventTargetFactory.in: Same.
1814        * html/HTMLMediaElement.cpp:
1815        (WebCore::HTMLMediaElement::HTMLMediaElement): Add m_audioTracks and m_videoTracks
1816        (WebCore::HTMLMediaElement::~HTMLMediaElement): Clear clients for audio and video tracks
1817        (WebCore::HTMLMediaElement::audioTrackEnabledChanged): Added.
1818        (WebCore::HTMLMediaElement::videoTrackSelectedChanged): Added.
1819        (WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Added, based on mediaPlayerDidAddTextTrack
1820        (WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Same.
1821        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveAudioTrack): Added, based on mediaPlayerDidRemoveTextTrack
1822        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack): Same.
1823        (WebCore::HTMLMediaElement::addAudioTrack): Added, based on addTextTrack
1824        (WebCore::HTMLMediaElement::addVideoTrack): Same.
1825        (WebCore::HTMLMediaElement::removeAudioTrack): Added, based on removeTextTrack
1826        (WebCore::HTMLMediaElement::removeVideoTrack): Added, based on removeTextTrack
1827        (WebCore::HTMLMediaElement::removeAllInbandTracks): Remove audio and video tracks too
1828        (WebCore::HTMLMediaElement::audioTracks): Added, based on textTracks
1829        (WebCore::HTMLMediaElement::videoTracks): Added, based on textTracks
1830        (WebCore::HTMLMediaElement::reportMemoryUsage): Add audio and video tracks
1831        * html/HTMLMediaElement.h: Add audioTracks and videoTracks and related functions
1832        * html/HTMLMediaElement.idl: Add audioTracks and videoTracks
1833        * html/track/AudioTrack.cpp: Added, based on TextTrack and InbandTextTrack.
1834        * html/track/AudioTrack.h: Same.
1835        * html/track/AudioTrack.idl: Added.
1836        * html/track/AudioTrackList.cpp: Added, based on TextTrackList
1837        * html/track/AudioTrackList.h: Same.
1838        * html/track/AudioTrackList.idl: Added.
1839        * html/track/TextTrackList.h: Add missing OVERRIDE on interfaceName()
1840        * html/track/VideoTrack.cpp: Added, based on TextTrack and InbandTextTrack.
1841        * html/track/VideoTrack.h: Same.
1842        * html/track/VideoTrack.idl: Added.
1843        * html/track/VideoTrackList.cpp: Added, based on TextTrackList
1844        * html/track/VideoTrackList.h: Same.
1845        * html/track/VideoTrackList.idl: Added.
1846        * platform/graphics/AudioTrackPrivate.h: Added, based on InbandTextTrackPrivate.h
1847        * platform/graphics/MediaPlayer.cpp:
1848        (WebCore::MediaPlayer::addAudioTrack): Added, based on addTextTrack
1849        (WebCore::MediaPlayer::removeAudioTrack): Added, based on removeTextTrack
1850        (WebCore::MediaPlayer::addVideoTrack): Added, based on addTextTrack
1851        (WebCore::MediaPlayer::removeVideoTrack): Added, based on removeTextTrack
1852        * platform/graphics/MediaPlayer.h:
1853        (WebCore::MediaPlayerClient::mediaPlayerDidAddAudioTrack): Added, based on mediaPlayerDidAddTextTrack
1854        (WebCore::MediaPlayerClient::mediaPlayerDidAddVideoTrack): Same
1855        (WebCore::MediaPlayerClient::mediaPlayerDidRemoveAudioTrack): Added, based on mediaPlayerDidRemoveTextTrack
1856        (WebCore::MediaPlayerClient::mediaPlayerDidRemoveVideoTrack): Same
1857        * platform/graphics/VideoTrackPrivate.h: Added, based on InbandTextTrackPrivate.h
1858
18592013-04-19  Bear Travis  <betravis@adobe.com>
1860
1861        [CSS Exclusions] Implement empty segments for multiple-segment shape-insides
1862        https://bugs.webkit.org/show_bug.cgi?id=100049
1863
1864        Reviewed by David Hyatt.
1865
1866        Content should not overflow a shape-inside segment, even if that means no content
1867        will be placed in that segment. Overflow may be pushed to outside the shape. This
1868        patch removes the restriction that every line must consume at least some text
1869        input while inside a shape-inside. Content that does not fit is pushed down until
1870        it does, either inside the shape or just below it.
1871
1872        Test: fast/exclusions/shape-inside/shape-inside-empty-segments.html
1873
1874        * rendering/RenderBlockLineLayout.cpp:
1875        (WebCore::constructBidiRunsForSegment): Do not include empty segments for
1876        consideration, as the actual BidiRuns construction expects to consume at
1877        least one character.
1878        (WebCore::constructBidiRunsForLine): Ditto.
1879        (WebCore::firstPositiveWidth): Find the first positive word measurement width,
1880        as there may be some empty word break measurements inserted.
1881        (WebCore::adjustLogicalLineTop): Move the current line down, if necessary, to
1882        fit it within the shape inside.
1883        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): If nothing fit in the
1884        current segment, find the first available position for the smallest item
1885        at the beginning of the text.
1886        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Return an empty segment
1887        for a line that is inside the shape, but has no segments.
1888        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Do not consume
1889        input to meet minimum size requirements if you are inside a shape.
1890
18912013-04-19  Ryosuke Niwa  <rniwa@webkit.org>
1892
1893        Add a missing null pointer check after r148759.
1894
1895        * rendering/RenderObject.cpp:
1896        (WebCore::RenderObject::containingBlock):
1897
18982013-04-19  Benjamin Poulain  <benjamin@webkit.org>
1899
1900        Use Vector instead of StringBuilder for CSSPreloadScanner's buffers
1901        https://bugs.webkit.org/show_bug.cgi?id=114794
1902
1903        Reviewed by Ryosuke Niwa.
1904
1905        Cleanup for other String changes.
1906
1907        CSSPreloadScanner only handles UChar, StringBuilder was a little
1908        overkill.
1909
1910        * html/parser/CSSPreloadScanner.cpp:
1911        (WebCore):
1912        (WebCore::ruleEqualIgnoringCase):
1913        (WebCore::CSSPreloadScanner::emitRule):
1914        * html/parser/CSSPreloadScanner.h:
1915
19162013-04-19  Benjamin Poulain  <benjamin@webkit.org>
1917
1918        StyledMarkupAccumulator::appendText() should not allocate an intermediary StringBuilder
1919        https://bugs.webkit.org/show_bug.cgi?id=114847
1920
1921        Reviewed by Geoffrey Garen.
1922
1923        For some reason StyledMarkupAccumulator::appendText() was allocating a separate buffer
1924        for invoking appendStyleNodeOpenTag. This is a bad idea.
1925
1926        * editing/markup.cpp:
1927        (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
1928        (WebCore::StyledMarkupAccumulator::appendText):
1929
19302013-04-19  Joseph Pecoraro  <pecoraro@apple.com>
1931
1932        Web Inspector: Support the SourceMap header, X-SourceMap was deprecated
1933        https://bugs.webkit.org/show_bug.cgi?id=114888
1934
1935        Check first for SourceMap, then fallback to X-SourceMap. Leaving in
1936        support for the deprecated header because most tools and articles
1937        online mention that version and have not yet updated.
1938
1939        Reviewed by Timothy Hatcher.
1940
1941        * inspector/InspectorDebuggerAgent.cpp:
1942        (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
1943        * inspector/InspectorPageAgent.cpp:
1944        (WebCore::InspectorPageAgent::sourceMapURLForResource):
1945
19462013-04-19  Joseph Pecoraro  <pecoraro@apple.com>
1947
1948        Web Inspector: Backend should detect sourceMappingURLs in CSS Resources
1949        https://bugs.webkit.org/show_bug.cgi?id=114854
1950
1951        Reviewed by Timothy Hatcher.
1952
1953        Test: http/tests/inspector/network/css-source-mapping-url.html
1954
1955        * inspector/Inspector.json:
1956        - Page.getResourceTree - add sourceMapURL to resource payloads
1957        - Network.loadingFinished and Network.requestServedFromMemoryCache,
1958          include the sourceMapURL in the results.
1959
1960        * inspector/ContentSearchUtils.h:
1961        * inspector/ContentSearchUtils.cpp:
1962        (WebCore::ContentSearchUtils::scriptCommentPattern):
1963        (WebCore::ContentSearchUtils::stylesheetCommentPattern):
1964        (WebCore::ContentSearchUtils::findMagicComment):
1965        (WebCore::ContentSearchUtils::findScriptSourceURL):
1966        (WebCore::ContentSearchUtils::findScriptSourceMapURL):
1967        (WebCore::ContentSearchUtils::findStylesheetSourceMapURL):
1968        Separate Script and Stylesheet regex pattern creation, but
1969        share the search function using the pattern.
1970
1971        * inspector/InspectorDebuggerAgent.cpp:
1972        (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
1973        (WebCore::InspectorDebuggerAgent::didParseSource):
1974        Update function names. Check for the SourceMap header before
1975        checking for a sourceMappingURL comment.
1976
1977        * inspector/InspectorPageAgent.h:
1978        * inspector/InspectorPageAgent.cpp:
1979        (WebCore::InspectorPageAgent::sourceMapURLForResource):
1980        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
1981        Provide the sourceMapURL for Page.getResourceTree.
1982
1983        * inspector/InspectorResourceAgent.cpp:
1984        (WebCore::buildObjectForCachedResource):
1985        (WebCore::InspectorResourceAgent::didFinishLoading):
1986        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
1987        Include sourceMapURLs in finish loading and request served from cache.
1988
19892013-04-19  Shawn Singh  <shawnsingh@chromium.org>
1990
1991        Remove non-overlap testing code in RenderLayerCompositor
1992        https://bugs.webkit.org/show_bug.cgi?id=85521
1993
1994        Reviewed by Simon Fraser.
1995
1996        m_compositingConsultsOverlap is always true in the current
1997        code. This patch removes this flag, and removes dead code that is
1998        never executed because it was never false.
1999
2000        No new tests, no change in behavior.  The cleanup is covered by
2001        existing tests.
2002
2003        * rendering/RenderLayer.cpp:
2004        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
2005        removed if-statement that is always true.
2006        
2007        * rendering/RenderLayerBacking.cpp:
2008        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
2009        removed if-statement that would never get triggered.
2010
2011        * rendering/RenderLayerCompositor.cpp:
2012        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
2013        (WebCore::RenderLayerCompositor::updateCompositingLayers):
2014        removed m_compositingConsultsOverlap, and retained the code as if the flag were "true".
2015        
2016        * rendering/RenderLayerCompositor.h:
2017        (RenderLayerCompositor):
2018
20192013-04-19  Roger Fong  <roger_fong@apple.com>
2020
2021        Unreviewed. WebKit_Source is incorrectly set.
2022
2023        * WebCore.vcxproj/WebCore.make:
2024
20252013-04-18  Ryosuke Niwa  <rniwa@webkit.org>
2026
2027        Make loops in RenderObject::containingBlock homogeneous in their forms to simplify
2028        https://bugs.webkit.org/show_bug.cgi?id=114853
2029
2030        Reviewed by David Hyatt.
2031
2032        This patch prepares us to avoid computing containing blocks during a depth-first traversal of the render tree.
2033
2034        Extracted inline functions out of RenderBlock::containingBlock to make the code simpler. Also moved the code
2035        to obtain the nearest containing block out of the loop for a relatively positioned inline.
2036
2037        * rendering/RenderObject.cpp:
2038        (WebCore::isNonReplacedInlineInFlowPosition): Extracted.
2039        (WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject): Extracted.
2040        (WebCore::isNonRenderBlockInline): Extracted.
2041        (WebCore::RenderObject::containingBlock): Refactored as stated above.
2042
20432013-04-19  Tim Horton  <timothy_horton@apple.com>
2044
2045        WebKit should not decode or support PDF favicons
2046        https://bugs.webkit.org/show_bug.cgi?id=114650
2047        <rdar://problem/10133914>
2048
2049        Reviewed by Dan Bernstein.
2050
2051        Drop the image data on the floor if it begins with the PDF magic number.
2052        No other browser I can find on OS X supports PDF favicons (by experimentation),
2053        and we do not properly display them.
2054
2055        * loader/icon/IconLoader.cpp:
2056        (WebCore::IconLoader::notifyFinished):
2057
20582013-04-19  Martin Robinson  <mrobinson@igalia.com>
2059
2060        Remove the OpenVG backend
2061        https://bugs.webkit.org/show_bug.cgi?id=114881
2062
2063        Reviewed by Tim Horton.
2064
2065        * platform/graphics/FloatRect.h:
2066        (FloatRect): Remove #ifdefs for OpenVG backend.
2067        * platform/graphics/GraphicsContext.cpp:
2068        (WebCore): Ditto.
2069        * platform/graphics/GraphicsContext.h:
2070        * platform/graphics/NativeImagePtr.h:
2071        (WebCore): Ditto.
2072        * platform/graphics/Path.cpp:
2073        (WebCore): Ditto.
2074        * platform/graphics/Path.h:
2075        * platform/graphics/openvg/EGLDisplayOpenVG.cpp: Removed.
2076        * platform/graphics/openvg/EGLDisplayOpenVG.h: Removed.
2077        * platform/graphics/openvg/EGLUtils.h: Removed.
2078        * platform/graphics/openvg/GraphicsContextOpenVG.cpp: Removed.
2079        * platform/graphics/openvg/ImageOpenVG.cpp: Removed.
2080        * platform/graphics/openvg/PainterOpenVG.cpp: Removed.
2081        * platform/graphics/openvg/PainterOpenVG.h: Removed.
2082        * platform/graphics/openvg/PathOpenVG.cpp: Removed.
2083        * platform/graphics/openvg/PlatformPathOpenVG.h: Removed.
2084        * platform/graphics/openvg/SharedResourceOpenVG.cpp: Removed.
2085        * platform/graphics/openvg/SharedResourceOpenVG.h: Removed.
2086        * platform/graphics/openvg/SurfaceOpenVG.cpp: Removed.
2087        * platform/graphics/openvg/SurfaceOpenVG.h: Removed.
2088        * platform/graphics/openvg/TiledImageOpenVG.cpp: Removed.
2089        * platform/graphics/openvg/TiledImageOpenVG.h: Removed.
2090        * platform/graphics/openvg/VGUtils.cpp: Removed.
2091        * platform/graphics/openvg/VGUtils.h: Removed.
2092        * platform/graphics/transforms/AffineTransform.h:
2093        (AffineTransform): Ditto.
2094        * platform/graphics/transforms/TransformationMatrix.h:
2095        (TransformationMatrix): Ditto.
2096        * platform/image-decoders/openvg/ImageDecoderOpenVG.cpp: Removed.
2097
20982013-04-19  Andrei Bucur  <abucur@adobe.com>
2099
2100        ContainerNode::removeChildren should first detach the children then remove them
2101        https://bugs.webkit.org/show_bug.cgi?id=113433
2102
2103        Reviewed by Ryosuke Niwa.
2104
2105        Currently, ContainerNode::removeChildren initially removes the nodes from the DOM tree and then
2106        calls detach() on each of them. This is anti-intuitive and can lead to subtle bugs because the
2107        detached renderers are not backed by a valid DOM tree any more. With the patch, the nodes are first
2108        detached and then removed from the DOM.
2109        The patch also lets the tree in a consistent state after each node removal by clearing the previous
2110        sibling pointer of the node following the one removed.
2111        I haven't found any proof the performance will get worse if the detachment happens when the children
2112        are still in the DOM tree.
2113
2114        Tests: No changed visible functionality.
2115
2116        * dom/ContainerNode.cpp:
2117        (WebCore::ContainerNode::removeChildren):
2118
21192013-04-19  Dirk Schulze  <krit@webkit.org>
2120
2121        Refactor transform code in StyleResolver
2122        https://bugs.webkit.org/show_bug.cgi?id=114874
2123
2124        Reviewed by Andreas Kling.
2125
2126        Move transform code frome StyleResolver into own files.
2127
2128        Refactoring, no changes in functionality.
2129
2130        * CMakeLists.txt:
2131        * GNUmakefile.list.am:
2132        * Target.pri:
2133        * WebCore.vcproj/WebCore.vcproj:
2134        * WebCore.vcxproj/WebCore.vcxproj:
2135        * WebCore.vcxproj/WebCore.vcxproj.filters:
2136        * WebCore.xcodeproj/project.pbxproj:
2137        * css/StyleResolver.cpp:
2138        (WebCore::StyleResolver::applyProperty):
2139        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
2140        * css/StyleResolver.h:
2141        * css/TransformFunctions.cpp: Added.
2142        (WebCore):
2143        (WebCore::transformOperationType):
2144        (WebCore::convertToFloatLength):
2145        (WebCore::transformsForValue):
2146        * css/TransformFunctions.h: Added.
2147        (WebCore):
2148        * css/WebKitCSSMatrix.cpp:
2149        (WebCore::WebKitCSSMatrix::setMatrixValue):
2150
21512013-04-19  Erik Arvidsson  <arv@chromium.org>
2152
2153        Rename TextTrackList owner to element for consistency
2154        https://bugs.webkit.org/show_bug.cgi?id=79822
2155
2156        Reviewed by Eric Carlson.
2157
2158        No new tests. Covered by existing tests.
2159
2160        * bindings/js/JSTextTrackListCustom.cpp:
2161        (WebCore::JSTextTrackListOwner::isReachableFromOpaqueRoots):
2162        (WebCore::JSTextTrackList::visitChildren):
2163        * html/HTMLMediaElement.cpp:
2164        (WebCore::HTMLMediaElement::~HTMLMediaElement):
2165        * html/track/TextTrackList.cpp:
2166        (TextTrackList::append):
2167        (TextTrackList::remove):
2168        * html/track/TextTrackList.h:
2169        (WebCore::TextTrackList::create):
2170        * html/track/TrackListBase.cpp:
2171        (TrackListBase::TrackListBase):
2172        (TrackListBase::remove):
2173        * html/track/TrackListBase.h:
2174        (WebCore::TrackListBase::clearElement):
2175        (WebCore::TrackListBase::element):
2176        (TrackListBase):
2177
21782013-04-19  Andreas Kling  <akling@apple.com>
2179
2180        [Mac] ComplexTextController is slow with large numbers of text runs.
2181        <http://webkit.org/b/114875>
2182        <rdar://problem/13337036>
2183
2184        Reviewed by Dan Bernstein.
2185
2186        Instead of iterating over the text runs in indexOfCurrentRun() to figure out the leftmost glyph,
2187        create a lookup table of [run# -> distance in glyphs] at ComplexTextController construction time.
2188
2189        This avoids O(n^2) behavior in indexOfCurrentRun().
2190
2191        * platform/graphics/mac/ComplexTextController.cpp:
2192        (WebCore::ComplexTextController::ComplexTextController):
2193        (WebCore::ComplexTextController::indexOfCurrentRun):
2194        * platform/graphics/mac/ComplexTextController.h:
2195        (ComplexTextController):
2196
21972013-04-19  Mario Sanchez Prada  <mario.prada@samsung.com>
2198
2199        [GTK] Minimize calls to GailTextUtil in AtkText implementation
2200        https://bugs.webkit.org/show_bug.cgi?id=114868
2201
2202        Reviewed by Martin Robinson.
2203
2204        Create a new helper function to concentrate inside of it the calls to
2205        gail_text_util_get_text(), so we can get rid of it later more easily.
2206
2207        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
2208        (webkitAccessibleTextGetTextForOffset): New helper function.
2209        (webkitAccessibleTextGetTextAfterOffset): Rely on the new function.
2210        (webkitAccessibleTextGetTextAtOffset): Ditto.
2211        (webkitAccessibleTextGetTextBeforeOffset): Ditto.
2212
22132013-04-19  Noam Rosenthal  <noam@webkit.org>
2214
2215        [Texmap] Implementation for pattern compositing
2216        https://bugs.webkit.org/show_bug.cgi?id=109588
2217
2218        Reviewed by Allan Sandfeld Jensen.
2219
2220        Enable pattern compositing (background images) for CoordinatedGraphics/TextureMapperGL.
2221        Use the existing patternTransform shader uniform, multiplying it by a matrix calculated
2222        using the contentsRect, tileSize and tilePhase.
2223
2224        Covered by existing tests in compositing/patterns.
2225
2226        * platform/graphics/GraphicsLayer.h:
2227        (GraphicsLayer):
2228            Conditionally enable pattern compositing for coordinated graphics.
2229
2230        * platform/graphics/texmap/TextureMapper.cpp:
2231        (WebCore::TextureMapper::TextureMapper):
2232        * platform/graphics/texmap/TextureMapper.h:
2233        (WebCore::TextureMapper::setPatternTransform):
2234        (WebCore::TextureMapper::setWrapMode):
2235        (WebCore::TextureMapper::wrapMode):
2236        (WebCore::TextureMapper::patternTransform):
2237            Add wrapMode and patternTransform properties to the TextureMapper state.
2238
2239        * platform/graphics/texmap/TextureMapperGL.cpp:
2240        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
2241            Paint with GL_REPEAT and a pattern transform when needed.
2242
2243        * platform/graphics/texmap/TextureMapperLayer.cpp:
2244        (WebCore::TextureMapperLayer::computePatternTransformIfNeeded):
2245        (WebCore):
2246        (WebCore::TextureMapperLayer::paintSelf):
2247        (WebCore::TextureMapperLayer::setContentsRect):
2248        (WebCore::TextureMapperLayer::setContentsTileSize):
2249        (WebCore::TextureMapperLayer::setContentsTilePhase):
2250            Apply the patternTransform from the tile size/phase.
2251
2252        * platform/graphics/texmap/TextureMapperLayer.h:
2253        (WebCore::TextureMapperLayer::TextureMapperLayer):
2254        (TextureMapperLayer):
2255        (WebCore::TextureMapperLayer::setShouldMapBackingStoreToContentsRect):
2256        (State):
2257        (WebCore::TextureMapperLayer::State::State):
2258            Allow the client to configure whether a layer uses its bounds or its
2259            contents rect to paint the backing store.
2260            This is needed now since layers with background images, unlike layers
2261            with regular images, may have bounds that are greater than the contents
2262            rect.
2263
2264        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
2265        (WebCore::CoordinatedGraphicsLayer::setContentsTileSize):
2266        (WebCore):
2267        (WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
2268        (WebCore::CoordinatedGraphicsLayer::setShouldSupportContentsTiling):
2269        (WebCore::GraphicsLayer::supportsContentsTiling):
2270        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
2271        (CoordinatedGraphicsLayer):
2272        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
2273        (WebCore::CoordinatedGraphicsScene::setLayerState):
2274        (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
2275        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
2276        (CoordinatedGraphicsLayerState):
2277            Logic to pass the tileSize/tilePhase from CoordinatedGraphicsLayer
2278            to TextureMapperLayer.
2279
2280        * rendering/RenderLayerBacking.cpp:
2281        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
2282            Don't reset the layer's image contents when this is a directly composited image.
2283
22842013-04-19  ChangSeok Oh  <changseok.oh@collabora.com>
2285
2286        [GTK][AC] Manage actor's children by using clutter's own way.
2287        https://bugs.webkit.org/show_bug.cgi?id=114257
2288
2289        Reviewed by Gustavo Noronha Silva.
2290
2291        I believe we don't need to maintain a children list of GList. We can do it
2292        by using clutter APIs like clutter_actor_get_children, clutter_actor_get_first_child, etc.
2293
2294        No new tests since no functionality changed.
2295
2296        * platform/graphics/clutter/GraphicsLayerActor.cpp:
2297        (graphics_layer_actor_init):
2298        (graphicsLayerActorAllocate):
2299        (graphicsLayerActorPaint):
2300        (graphicsLayerActorRemoveAll):
2301        (graphicsLayerActorGetnChildren):
2302        (graphicsLayerActorReplaceSublayer):
2303        (graphicsLayerActorInsertSublayer):
2304        * platform/graphics/clutter/GraphicsLayerActor.h:
2305        (_GraphicsLayerActor):
2306
23072013-04-19  ChangSeok Oh  <changseok.oh@collabora.com>
2308
2309        [GTK][AC] Support masksToBounds for clutter AC backend.
2310        https://bugs.webkit.org/show_bug.cgi?id=114113
2311
2312        Reviewed by Gustavo Noronha Silva.
2313
2314        We can support the masksToBounds property by using clutter_actor_set_clip simply.
2315
2316        Covered by existing AC tests.
2317
2318        * platform/graphics/clutter/GraphicsLayerActor.cpp:
2319        (graphicsLayerActorSetMasksToBounds):
2320        * platform/graphics/clutter/GraphicsLayerActor.h:
2321        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2322        (WebCore::GraphicsLayerClutter::setMasksToBounds):
2323        (WebCore):
2324        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
2325        (WebCore::GraphicsLayerClutter::setupContentsLayer):
2326        (WebCore::GraphicsLayerClutter::updateMasksToBounds):
2327        * platform/graphics/clutter/GraphicsLayerClutter.h:
2328        (GraphicsLayerClutter):
2329
23302013-04-19  Dan Beam  <dbeam@chromium.org>
2331
2332        Remove unmaintained feature REQUEST_AUTOCOMPLETE
2333        https://bugs.webkit.org/show_bug.cgi?id=114846
2334
2335        Reviewed by Kent Tamura.
2336
2337        * GNUmakefile.list.am: Remove AutocompleteErrorEvent.h include.
2338        * bindings/generic/RuntimeEnabledFeatures.cpp:
2339        (WebCore): Remove requestAutocomplete() runtime feature.
2340        * bindings/generic/RuntimeEnabledFeatures.h:
2341        (RuntimeEnabledFeatures): Remove requestAutocomplete() runtime feature.
2342        * dom/AutocompleteErrorEvent.h: Removed.
2343        * dom/AutocompleteErrorEvent.idl: Removed.
2344        * dom/EventNames.h: Remove `autocomplete` and `autocompleteerror` event names.
2345        (WebCore):
2346        * dom/EventNames.in: Remove `autocomplete` and `autocompleteerror` event names.
2347        * html/HTMLAttributeNames.in: Remove `onautocomplete` and `onautocompleteerror` form attributes.
2348        * html/HTMLFormElement.cpp: Remove requestAutocomplete() related code.
2349        (WebCore::HTMLFormElement::HTMLFormElement): Remove timer and event queue for requestAutocomplete() related events.
2350        (WebCore::HTMLFormElement::parseAttribute): Remove parsing of `onautocomplete` and `onautocompleterror`.
2351        * html/HTMLFormElement.h: Remove requestAutocomplete() related members.
2352        (HTMLFormElement):
2353        * html/HTMLFormElement.idl: Remove public requestAutocomplete() API method.
2354        * loader/EmptyClients.cpp: Remove stub implementation.
2355        (WebCore):
2356        * loader/EmptyClients.h: Remove stub interface.
2357        (EmptyFrameLoaderClient):
2358        * loader/FrameLoaderClient.h: Remove didRequestAutocomplete() from interface.
2359        (FrameLoaderClient):
2360        * page/DOMWindow.idl: Remove `AutocompleteErrorEvent` from window DOM interface.
2361
23622013-04-18  Timothy Hatcher  <timothy@apple.com>
2363
2364        Add CSS.setStyleText to the Web Inspector protocol.
2365
2366        This provides a direct path for the Safari Web Inspector to live edit whole style rules.
2367
2368        https://webkit.org/b/109340
2369        rdar://problem/13337211
2370
2371        Reviewed by Joseph Pecoraro.
2372
2373        * inspector/Inspector.json:
2374        (CSS.setStyleText): Added.
2375        * inspector/InspectorCSSAgent.cpp:
2376        (InspectorCSSAgent::SetStyleTextAction):
2377        (WebCore::InspectorCSSAgent::SetStyleTextAction::SetStyleTextAction): Added.
2378        (WebCore::InspectorCSSAgent::SetStyleTextAction::perform): Added.
2379        (WebCore::InspectorCSSAgent::SetStyleTextAction::undo): Added.
2380        (WebCore::InspectorCSSAgent::SetStyleTextAction::redo): Added.
2381        (WebCore::InspectorCSSAgent::SetStyleTextAction::mergeId): Added.
2382        (WebCore::InspectorCSSAgent::SetStyleTextAction::merge): Added.
2383        (WebCore::InspectorCSSAgent::SetPropertyTextAction::redo):
2384        (WebCore::InspectorCSSAgent::setStyleText): Added.
2385        * inspector/InspectorCSSAgent.h:
2386        * inspector/InspectorStyleSheet.cpp:
2387        (WebCore::InspectorStyle::getText): Added.
2388        (WebCore::InspectorStyle::setText): Added.
2389        (WebCore::InspectorStyleSheet::setStyleText):
2390        (WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
2391        * inspector/InspectorStyleSheet.h:
2392        (WebCore::InspectorStyle::styleText): Added as an alias to getText.
2393        (WebCore::InspectorStyle::applyStyleText): Added as an alias to setText.
2394
23952013-04-18  Jer Noble  <jer.noble@apple.com>
2396
2397        Unreviewed gardening; fix bindings tests after r148700.
2398
2399        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2400        (WebCore::JSTestEventTargetOwner::isReachableFromOpaqueRoots):
2401
24022013-04-18  Andy Estes  <aestes@apple.com>
2403
2404        REGRESSION (r116645): Versions app's UI is munged in HiDPI due to background-size being reset to 'auto' when background short-hand is also specified
2405        https://bugs.webkit.org/show_bug.cgi?id=114833
2406
2407        Reviewed by David Kilzer.
2408
2409        Added applicationIsVersions() to RuntimeApplicationChecks.
2410
2411        * WebCore.exp.in:
2412        * platform/RuntimeApplicationChecks.cpp:
2413        (WebCore::applicationIsVersions):
2414        (WebCore):
2415        * platform/RuntimeApplicationChecks.h:
2416        (WebCore):
2417
24182013-04-18  Sam Weinig  <sam@webkit.org>
2419
2420        Network Process crashing trying to read in IDNScriptWhiteList.txt
2421        https://bugs.webkit.org/show_bug.cgi?id=114827
2422
2423        Reviewed by Anders Carlsson.
2424
2425        Move IDNScriptWhiteList.txt from WebKit to WebCore, so that the NetworkProcess does not have to link against
2426        WebKit. It was a layering violation for WebCore to be trying to access WebKit resources anyway.
2427
2428        * Resources/IDNScriptWhiteList.txt: Copied from Source/WebKit/mac/Resources/IDNScriptWhiteList.txt.
2429        * WebCore.xcodeproj/project.pbxproj:
2430        * platform/mac/WebCoreNSURLExtras.mm:
2431        (WebCore::readIDNScriptWhiteList):
2432
24332013-04-18  Simon Fraser  <simon.fraser@apple.com>
2434
2435        Remove GraphicsLayerCA::constrainedSize() now that we can manage large layer memory use ourselves in TileController
2436        https://bugs.webkit.org/show_bug.cgi?id=114834
2437
2438        Reviewed by Tim Horton.
2439
2440        GraphicsLayerCA::constrainedSize() was added to handle poor CATiledLayer behavior when layer sizes
2441        got extremely large. Now that we no longer use CATiledLayer, remove this code. We can later add
2442        tile memory bounding to TileController if that becomes necessary.
2443
2444        * platform/graphics/ca/GraphicsLayerCA.cpp:
2445        (WebCore::GraphicsLayerCA::updateGeometry):
2446        * platform/graphics/ca/GraphicsLayerCA.h:
2447        (GraphicsLayerCA):
2448
24492013-04-18  Alberto Garcia  <agarcia@igalia.com>
2450
2451        Remove obsolete macros from libpng
2452        https://bugs.webkit.org/show_bug.cgi?id=114817
2453
2454        Reviewed by Benjamin Poulain.
2455
2456        libpng 1.4 removes the png_voidp_NULL and png_error_ptr_NULL
2457        macros. Null pointers must be used directly instead.
2458
2459        * platform/image-encoders/PNGImageEncoder.cpp:
2460        (WebCore::compressRGBABigEndianToPNG):
2461
24622013-04-18  Jer Noble  <jer.noble@apple.com>
2463
2464        CodeGeneratorJS.pm should generate "isFiringEventListeners()" check in isReachableFromOpaqueRoots()
2465        https://bugs.webkit.org/show_bug.cgi?id=114784
2466
2467        Reviewed by Geoffrey Garen.
2468
2469        EventTarget subclasses shouldn't have to use CustomIsReachable directives
2470        in order to keep their wrappers alive while firing event listeners.
2471
2472        * bindings/scripts/CodeGeneratorJS.pm:
2473        (GenerateImplementation):
2474
24752013-04-17  Geoffrey Garen  <ggaren@apple.com>
2476
2477        Renamed JSGlobalData to VM
2478        https://bugs.webkit.org/show_bug.cgi?id=114777
2479
2480        Reviewed by Phil Pizlo.
2481
2482        * ForwardingHeaders/runtime/JSGlobalData.h: Removed.
2483        * ForwardingHeaders/runtime/VM.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSGlobalData.h.
2484        * WebCore.exp.in:
2485        * WebCore.order:
2486        * WebCore.vcxproj/WebCore.vcxproj:
2487        * WebCore.vcxproj/WebCore.vcxproj.filters:
2488        * bindings/js/DOMObjectHashTableMap.cpp:
2489        (WebCore::DOMObjectHashTableMap::mapFor):
2490        * bindings/js/DOMObjectHashTableMap.h:
2491        (JSC):
2492        (DOMObjectHashTableMap):
2493        * bindings/js/DOMWrapperWorld.cpp:
2494        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
2495        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
2496        (WebCore::normalWorld):
2497        (WebCore::mainThreadNormalWorld):
2498        * bindings/js/DOMWrapperWorld.h:
2499        (WebCore::DOMWrapperWorld::create):
2500        (WebCore::DOMWrapperWorld::vm):
2501        (DOMWrapperWorld):
2502        (WebCore):
2503        * bindings/js/GCController.cpp:
2504        (WebCore::collect):
2505        (WebCore::GCController::garbageCollectSoon):
2506        (WebCore::GCController::garbageCollectNow):
2507        (WebCore::GCController::setJavaScriptGarbageCollectorTimerEnabled):
2508        (WebCore::GCController::discardAllCompiledCode):
2509        * bindings/js/IDBBindingUtilities.cpp:
2510        (WebCore::get):
2511        (WebCore::set):
2512        (WebCore::deserializeIDBValue):
2513        (WebCore::deserializeIDBValueBuffer):
2514        (WebCore::idbKeyToScriptValue):
2515        * bindings/js/JSCallbackData.h:
2516        (WebCore::JSCallbackData::JSCallbackData):
2517        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
2518        (WebCore::JSSQLStatementErrorCallback::handleEvent):
2519        * bindings/js/JSCustomXPathNSResolver.cpp:
2520        (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
2521        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2522        * bindings/js/JSDOMBinding.cpp:
2523        (WebCore::getHashTableForGlobalData):
2524        (WebCore::reportException):
2525        (WebCore::cacheDOMStructure):
2526        * bindings/js/JSDOMBinding.h:
2527        (WebCore::DOMConstructorObject::createStructure):
2528        (WebCore::DOMConstructorWithDocument::finishCreation):
2529        (WebCore::getDOMStructure):
2530        (WebCore::setInlineCachedWrapper):
2531        (WebCore):
2532        (WebCore::jsStringWithCache):
2533        * bindings/js/JSDOMGlobalObject.cpp:
2534        (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
2535        (WebCore::JSDOMGlobalObject::finishCreation):
2536        * bindings/js/JSDOMGlobalObject.h:
2537        (JSDOMGlobalObject):
2538        (WebCore::JSDOMGlobalObject::createStructure):
2539        (WebCore::getDOMConstructor):
2540        * bindings/js/JSDOMWindowBase.cpp:
2541        (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2542        (WebCore::JSDOMWindowBase::finishCreation):
2543        (WebCore::JSDOMWindowBase::updateDocument):
2544        (WebCore::JSDOMWindowBase::commonVM):
2545        * bindings/js/JSDOMWindowBase.h:
2546        (JSDOMWindowBase):
2547        (WebCore::JSDOMWindowBase::createStructure):
2548        * bindings/js/JSDOMWindowCustom.cpp:
2549        (WebCore::JSDOMWindow::setLocation):
2550        (WebCore::DialogHandler::dialogCreated):
2551        (WebCore::DialogHandler::returnValue):
2552        * bindings/js/JSDOMWindowShell.cpp:
2553        (WebCore::JSDOMWindowShell::JSDOMWindowShell):
2554        (WebCore::JSDOMWindowShell::finishCreation):
2555        (WebCore::JSDOMWindowShell::setWindow):
2556        * bindings/js/JSDOMWindowShell.h:
2557        (JSDOMWindowShell):
2558        (WebCore::JSDOMWindowShell::create):
2559        (WebCore::JSDOMWindowShell::createStructure):
2560        * bindings/js/JSDOMWrapper.h:
2561        (WebCore::JSDOMWrapper::JSDOMWrapper):
2562        * bindings/js/JSDeviceMotionEventCustom.cpp:
2563        (WebCore::createAccelerationObject):
2564        (WebCore::createRotationRateObject):
2565        * bindings/js/JSDictionary.cpp:
2566        (WebCore::JSDictionary::convertValue):
2567        * bindings/js/JSDictionary.h:
2568        (WebCore::JSDictionary::JSDictionary):
2569        * bindings/js/JSErrorHandler.cpp:
2570        (WebCore::JSErrorHandler::handleEvent):
2571        * bindings/js/JSEventListener.cpp:
2572        (WebCore::JSEventListener::handleEvent):
2573        * bindings/js/JSEventListener.h:
2574        (WebCore::JSEventListener::setWrapper):
2575        (WebCore::JSEventListener::jsFunction):
2576        * bindings/js/JSHTMLDocumentCustom.cpp:
2577        (WebCore::JSHTMLDocument::all):
2578        (WebCore::JSHTMLDocument::setAll):
2579        * bindings/js/JSHTMLTemplateElementCustom.cpp:
2580        (WebCore::JSHTMLTemplateElement::content):
2581        * bindings/js/JSHistoryCustom.cpp:
2582        (WebCore::JSHistory::state):
2583        * bindings/js/JSImageConstructor.cpp:
2584        (WebCore::JSImageConstructor::finishCreation):
2585        * bindings/js/JSImageConstructor.h:
2586        (WebCore::JSImageConstructor::createStructure):
2587        * bindings/js/JSImageDataCustom.cpp:
2588        (WebCore::toJS):
2589        * bindings/js/JSInjectedScriptHostCustom.cpp:
2590        (WebCore::InjectedScriptHost::nodeAsScriptValue):
2591        (WebCore::JSInjectedScriptHost::functionDetails):
2592        (WebCore::getJSListenerFunctions):
2593        (WebCore::JSInjectedScriptHost::getEventListeners):
2594        (WebCore::JSInjectedScriptHost::inspect):
2595        * bindings/js/JSLazyEventListener.cpp:
2596        (WebCore::JSLazyEventListener::initializeJSFunction):
2597        * bindings/js/JSMessageEventCustom.cpp:
2598        (WebCore::JSMessageEvent::data):
2599        (WebCore::handleInitMessageEvent):
2600        * bindings/js/JSMutationCallback.cpp:
2601        (WebCore::JSMutationCallback::call):
2602        * bindings/js/JSMutationObserverCustom.cpp:
2603        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
2604        * bindings/js/JSNodeFilterCondition.cpp:
2605        (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
2606        * bindings/js/JSNodeFilterCondition.h:
2607        (WebCore::JSNodeFilterCondition::create):
2608        (JSNodeFilterCondition):
2609        * bindings/js/JSNodeFilterCustom.cpp:
2610        (WebCore::toNodeFilter):
2611        * bindings/js/JSPopStateEventCustom.cpp:
2612        (WebCore::cacheState):
2613        * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
2614        (WebCore::JSRequestAnimationFrameCallback::handleEvent):
2615        * bindings/js/JSSQLResultSetRowListCustom.cpp:
2616        (WebCore::JSSQLResultSetRowList::item):
2617        * bindings/js/JSWorkerContextBase.cpp:
2618        (WebCore::JSWorkerContextBase::JSWorkerContextBase):
2619        (WebCore::JSWorkerContextBase::finishCreation):
2620        * bindings/js/JSWorkerContextBase.h:
2621        (WebCore::JSWorkerContextBase::createStructure):
2622        (JSWorkerContextBase):
2623        * bindings/js/PageScriptDebugServer.cpp:
2624        (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
2625        * bindings/js/ScheduledAction.cpp:
2626        (WebCore::ScheduledAction::ScheduledAction):
2627        (WebCore::ScheduledAction::executeFunctionInContext):
2628        * bindings/js/ScheduledAction.h:
2629        (WebCore::ScheduledAction::ScheduledAction):
2630        * bindings/js/ScriptCachedFrameData.cpp:
2631        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
2632        (WebCore::ScriptCachedFrameData::restore):
2633        (WebCore::ScriptCachedFrameData::clear):
2634        * bindings/js/ScriptCallStackFactory.cpp:
2635        (WebCore::createScriptCallStack):
2636        (WebCore::createScriptArguments):
2637        * bindings/js/ScriptController.cpp:
2638        (WebCore::ScriptController::createWindowShell):
2639        (WebCore::ScriptController::evaluateInWorld):
2640        (WebCore::ScriptController::createWorld):
2641        (WebCore::ScriptController::getAllWorlds):
2642        (WebCore::ScriptController::clearWindowShell):
2643        (WebCore::ScriptController::initScript):
2644        (WebCore::ScriptController::updateDocument):
2645        (WebCore::ScriptController::cacheableBindingRootObject):
2646        (WebCore::ScriptController::bindingRootObject):
2647        (WebCore::ScriptController::clearScriptObjects):
2648        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
2649        * bindings/js/ScriptControllerMac.mm:
2650        (WebCore::ScriptController::windowScriptObject):
2651        * bindings/js/ScriptDebugServer.cpp:
2652        (WebCore::ScriptDebugServer::dispatchDidPause):
2653        * bindings/js/ScriptEventListener.cpp:
2654        (WebCore::eventListenerHandlerBody):
2655        (WebCore::eventListenerHandler):
2656        (WebCore::eventListenerHandlerLocation):
2657        * bindings/js/ScriptFunctionCall.cpp:
2658        (WebCore::ScriptFunctionCall::call):
2659        (WebCore::ScriptCallback::call):
2660        * bindings/js/ScriptGCEvent.cpp:
2661        (WebCore::ScriptGCEvent::getHeapSize):
2662        * bindings/js/ScriptObject.cpp:
2663        (WebCore::ScriptObject::ScriptObject):
2664        (WebCore::ScriptGlobalObject::set):
2665        * bindings/js/ScriptState.h:
2666        (WebCore):
2667        * bindings/js/ScriptValue.cpp:
2668        (WebCore::ScriptValue::deserialize):
2669        * bindings/js/ScriptValue.h:
2670        (WebCore::ScriptValue::ScriptValue):
2671        * bindings/js/ScriptWrappable.h:
2672        (JSC):
2673        (ScriptWrappable):
2674        * bindings/js/ScriptWrappableInlines.h:
2675        (WebCore::ScriptWrappable::setWrapper):
2676        * bindings/js/SerializedScriptValue.cpp:
2677        (WebCore::CloneDeserializer::readTerminal):
2678        (WebCore::SerializedScriptValue::deserializeForInspector):
2679        (WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
2680        * bindings/js/WebCoreJSClientData.h:
2681        (WebCoreJSClientData):
2682        (WebCore::initNormalWorldClientData):
2683        * bindings/js/WorkerScriptController.cpp:
2684        (WebCore::WorkerScriptController::WorkerScriptController):
2685        (WebCore::WorkerScriptController::~WorkerScriptController):
2686        (WebCore::WorkerScriptController::initScript):
2687        (WebCore::WorkerScriptController::evaluate):
2688        (WebCore::WorkerScriptController::scheduleExecutionTermination):
2689        (WebCore::WorkerScriptController::isExecutionTerminating):
2690        (WebCore::WorkerScriptController::disableEval):
2691        * bindings/js/WorkerScriptController.h:
2692        (JSC):
2693        (WebCore::WorkerScriptController::vm):
2694        (WorkerScriptController):
2695        * bindings/js/WorkerScriptDebugServer.cpp:
2696        (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
2697        * bindings/objc/WebScriptObject.mm:
2698        (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
2699        * bindings/scripts/CodeGeneratorJS.pm:
2700        (GenerateHeader):
2701        (GenerateImplementation):
2702        (GenerateCallbackImplementation):
2703        (JSValueToNative):
2704        (GenerateConstructorDeclaration):
2705        (GenerateConstructorHelperMethods):
2706        * bindings/scripts/test/JS/JSFloat64Array.cpp:
2707        (WebCore::getJSFloat64ArrayConstructorTable):
2708        (WebCore::JSFloat64ArrayConstructor::finishCreation):
2709        (WebCore::getJSFloat64ArrayPrototypeTable):
2710        (WebCore::getJSFloat64ArrayTable):
2711        (WebCore::JSFloat64Array::finishCreation):
2712        (WebCore::JSFloat64Array::createPrototype):
2713        * bindings/scripts/test/JS/JSFloat64Array.h:
2714        (WebCore::JSFloat64Array::create):
2715        (WebCore::JSFloat64Array::createStructure):
2716        (JSFloat64Array):
2717        (WebCore::JSFloat64ArrayPrototype::create):
2718        (WebCore::JSFloat64ArrayPrototype::createStructure):
2719        (WebCore::JSFloat64ArrayPrototype::JSFloat64ArrayPrototype):
2720        (WebCore::JSFloat64ArrayConstructor::createStructure):
2721        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2722        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
2723        (WebCore::JSTestActiveDOMObject::finishCreation):
2724        (WebCore::JSTestActiveDOMObject::createPrototype):
2725        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
2726        (WebCore::JSTestActiveDOMObject::create):
2727        (WebCore::JSTestActiveDOMObject::createStructure):
2728        (JSTestActiveDOMObject):
2729        (WebCore::JSTestActiveDOMObjectPrototype::create):
2730        (WebCore::JSTestActiveDOMObjectPrototype::createStructure):
2731        (WebCore::JSTestActiveDOMObjectPrototype::JSTestActiveDOMObjectPrototype):
2732        (WebCore::JSTestActiveDOMObjectConstructor::createStructure):
2733        * bindings/scripts/test/JS/JSTestCallback.cpp:
2734        (WebCore::JSTestCallback::callbackWithNoParam):
2735        (WebCore::JSTestCallback::callbackWithClass1Param):
2736        (WebCore::JSTestCallback::callbackWithClass2Param):
2737        (WebCore::JSTestCallback::callbackWithStringList):
2738        (WebCore::JSTestCallback::callbackWithBoolean):
2739        (WebCore::JSTestCallback::callbackRequiresThisToPass):
2740        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2741        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
2742        (WebCore::JSTestCustomNamedGetter::finishCreation):
2743        (WebCore::JSTestCustomNamedGetter::createPrototype):
2744        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
2745        (WebCore::JSTestCustomNamedGetter::create):
2746        (WebCore::JSTestCustomNamedGetter::createStructure):
2747        (JSTestCustomNamedGetter):
2748        (WebCore::JSTestCustomNamedGetterPrototype::create):
2749        (WebCore::JSTestCustomNamedGetterPrototype::createStructure):
2750        (WebCore::JSTestCustomNamedGetterPrototype::JSTestCustomNamedGetterPrototype):
2751        (WebCore::JSTestCustomNamedGetterConstructor::createStructure):
2752        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2753        (WebCore::JSTestEventConstructorConstructor::finishCreation):
2754        (WebCore::JSTestEventConstructor::finishCreation):
2755        (WebCore::JSTestEventConstructor::createPrototype):
2756        * bindings/scripts/test/JS/JSTestEventConstructor.h:
2757        (WebCore::JSTestEventConstructor::create):
2758        (WebCore::JSTestEventConstructor::createStructure):
2759        (JSTestEventConstructor):
2760        (WebCore::JSTestEventConstructorPrototype::create):
2761        (WebCore::JSTestEventConstructorPrototype::createStructure):
2762        (WebCore::JSTestEventConstructorPrototype::JSTestEventConstructorPrototype):
2763        (WebCore::JSTestEventConstructorConstructor::createStructure):
2764        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2765        (WebCore::JSTestEventTargetConstructor::finishCreation):
2766        (WebCore::JSTestEventTarget::finishCreation):
2767        (WebCore::JSTestEventTarget::createPrototype):
2768        * bindings/scripts/test/JS/JSTestEventTarget.h:
2769        (WebCore::JSTestEventTarget::create):
2770        (WebCore::JSTestEventTarget::createStructure):
2771        (JSTestEventTarget):
2772        (WebCore::JSTestEventTargetPrototype::create):
2773        (WebCore::JSTestEventTargetPrototype::createStructure):
2774        (WebCore::JSTestEventTargetPrototype::JSTestEventTargetPrototype):
2775        (WebCore::JSTestEventTargetConstructor::createStructure):
2776        * bindings/scripts/test/JS/JSTestException.cpp:
2777        (WebCore::JSTestExceptionConstructor::finishCreation):
2778        (WebCore::JSTestException::finishCreation):
2779        (WebCore::JSTestException::createPrototype):
2780        * bindings/scripts/test/JS/JSTestException.h:
2781        (WebCore::JSTestException::create):
2782        (WebCore::JSTestException::createStructure):
2783        (JSTestException):
2784        (WebCore::JSTestExceptionPrototype::create):
2785        (WebCore::JSTestExceptionPrototype::createStructure):
2786        (WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
2787        (WebCore::JSTestExceptionConstructor::createStructure):
2788        * bindings/scripts/test/JS/JSTestInterface.cpp:
2789        (WebCore::JSTestInterfaceConstructor::finishCreation):
2790        (WebCore::JSTestInterface::finishCreation):
2791        (WebCore::JSTestInterface::createPrototype):
2792        * bindings/scripts/test/JS/JSTestInterface.h:
2793        (WebCore::JSTestInterface::create):
2794        (WebCore::JSTestInterface::createStructure):
2795        (JSTestInterface):
2796        (WebCore::JSTestInterfacePrototype::create):
2797        (WebCore::JSTestInterfacePrototype::createStructure):
2798        (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
2799        (WebCore::JSTestInterfaceConstructor::createStructure):
2800        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2801        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
2802        (WebCore::JSTestMediaQueryListListener::finishCreation):
2803        (WebCore::JSTestMediaQueryListListener::createPrototype):
2804        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
2805        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
2806        (WebCore::JSTestMediaQueryListListener::create):
2807        (WebCore::JSTestMediaQueryListListener::createStructure):
2808        (JSTestMediaQueryListListener):
2809        (WebCore::JSTestMediaQueryListListenerPrototype::create):
2810        (WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
2811        (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
2812        (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
2813        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2814        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
2815        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
2816        (WebCore::JSTestNamedConstructor::finishCreation):
2817        (WebCore::JSTestNamedConstructor::createPrototype):
2818        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
2819        (WebCore::JSTestNamedConstructor::create):
2820        (WebCore::JSTestNamedConstructor::createStructure):
2821        (JSTestNamedConstructor):
2822        (WebCore::JSTestNamedConstructorPrototype::create):
2823        (WebCore::JSTestNamedConstructorPrototype::createStructure):
2824        (WebCore::JSTestNamedConstructorPrototype::JSTestNamedConstructorPrototype):
2825        (WebCore::JSTestNamedConstructorConstructor::createStructure):
2826        (WebCore::JSTestNamedConstructorNamedConstructor::createStructure):
2827        * bindings/scripts/test/JS/JSTestNode.cpp:
2828        (WebCore::JSTestNodeConstructor::finishCreation):
2829        (WebCore::JSTestNode::finishCreation):
2830        (WebCore::JSTestNode::createPrototype):
2831        * bindings/scripts/test/JS/JSTestNode.h:
2832        (WebCore::JSTestNode::create):
2833        (WebCore::JSTestNode::createStructure):
2834        (JSTestNode):
2835        (WebCore::JSTestNodePrototype::create):
2836        (WebCore::JSTestNodePrototype::createStructure):
2837        (WebCore::JSTestNodePrototype::JSTestNodePrototype):
2838        (WebCore::JSTestNodeConstructor::createStructure):
2839        * bindings/scripts/test/JS/JSTestObj.cpp:
2840        (WebCore::JSTestObjConstructor::finishCreation):
2841        (WebCore::JSTestObj::finishCreation):
2842        (WebCore::JSTestObj::createPrototype):
2843        (WebCore::jsTestObjCachedAttribute1):
2844        (WebCore::jsTestObjCachedAttribute2):
2845        (WebCore::setJSTestObjConditionalAttr4Constructor):
2846        (WebCore::setJSTestObjConditionalAttr5Constructor):
2847        (WebCore::setJSTestObjConditionalAttr6Constructor):
2848        (WebCore::setJSTestObjAnyAttribute):
2849        (WebCore::setJSTestObjReplaceableAttribute):
2850        * bindings/scripts/test/JS/JSTestObj.h:
2851        (WebCore::JSTestObj::create):
2852        (WebCore::JSTestObj::createStructure):
2853        (JSTestObj):
2854        (WebCore::JSTestObjPrototype::create):
2855        (WebCore::JSTestObjPrototype::createStructure):
2856        (WebCore::JSTestObjPrototype::JSTestObjPrototype):
2857        (WebCore::JSTestObjConstructor::createStructure):
2858        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
2859        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
2860        (WebCore::JSTestOverloadedConstructors::finishCreation):
2861        (WebCore::JSTestOverloadedConstructors::createPrototype):
2862        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
2863        (WebCore::JSTestOverloadedConstructors::create):
2864        (WebCore::JSTestOverloadedConstructors::createStructure):
2865        (JSTestOverloadedConstructors):
2866        (WebCore::JSTestOverloadedConstructorsPrototype::create):
2867        (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
2868        (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
2869        (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
2870        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2871        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
2872        (WebCore::JSTestSerializedScriptValueInterface::finishCreation):
2873        (WebCore::JSTestSerializedScriptValueInterface::createPrototype):
2874        (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
2875        (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
2876        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2877        (WebCore::JSTestSerializedScriptValueInterface::create):
2878        (WebCore::JSTestSerializedScriptValueInterface::createStructure):
2879        (JSTestSerializedScriptValueInterface):
2880        (WebCore::JSTestSerializedScriptValueInterfacePrototype::create):
2881        (WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
2882        (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
2883        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
2884        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
2885        (WebCore::JSTestTypedefsConstructor::finishCreation):
2886        (WebCore::JSTestTypedefs::finishCreation):
2887        (WebCore::JSTestTypedefs::createPrototype):
2888        * bindings/scripts/test/JS/JSTestTypedefs.h:
2889        (WebCore::JSTestTypedefs::create):
2890        (WebCore::JSTestTypedefs::createStructure):
2891        (JSTestTypedefs):
2892        (WebCore::JSTestTypedefsPrototype::create):
2893        (WebCore::JSTestTypedefsPrototype::createStructure):
2894        (WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
2895        (WebCore::JSTestTypedefsConstructor::createStructure):
2896        * bridge/c/CRuntimeObject.h:
2897        (JSC::Bindings::CRuntimeObject::createStructure):
2898        * bridge/c/c_instance.cpp:
2899        (JSC::Bindings::CRuntimeMethod::create):
2900        (JSC::Bindings::CRuntimeMethod::createStructure):
2901        (JSC::Bindings::CRuntimeMethod::finishCreation):
2902        * bridge/jsc/BridgeJSC.cpp:
2903        (JSC::Bindings::Instance::createRuntimeObject):
2904        * bridge/objc/ObjCRuntimeObject.h:
2905        (JSC::Bindings::ObjCRuntimeObject::createStructure):
2906        * bridge/objc/objc_instance.mm:
2907        (ObjCRuntimeMethod::create):
2908        (ObjCRuntimeMethod::createStructure):
2909        (ObjCRuntimeMethod::finishCreation):
2910        * bridge/objc/objc_runtime.h:
2911        (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
2912        * bridge/objc/objc_runtime.mm:
2913        (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2914        (JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
2915        * bridge/qt/qt_instance.cpp:
2916        (JSC::Bindings::QtRuntimeObject::createStructure):
2917        (JSC::Bindings::QtInstance::~QtInstance):
2918        (JSC::Bindings::QtInstance::getQtInstance):
2919        * bridge/runtime_array.cpp:
2920        (JSC::RuntimeArray::RuntimeArray):
2921        (JSC::RuntimeArray::finishCreation):
2922        * bridge/runtime_array.h:
2923        (JSC::RuntimeArray::create):
2924        (JSC::RuntimeArray::createStructure):
2925        (RuntimeArray):
2926        * bridge/runtime_method.cpp:
2927        (JSC::RuntimeMethod::finishCreation):
2928        * bridge/runtime_method.h:
2929        (JSC::RuntimeMethod::create):
2930        (JSC::RuntimeMethod::createStructure):
2931        (RuntimeMethod):
2932        * bridge/runtime_object.cpp:
2933        (JSC::Bindings::RuntimeObject::RuntimeObject):
2934        (JSC::Bindings::RuntimeObject::finishCreation):
2935        * bridge/runtime_object.h:
2936        (JSC::Bindings::RuntimeObject::createStructure):
2937        * bridge/runtime_root.cpp:
2938        (JSC::Bindings::RootObject::RootObject):
2939        (JSC::Bindings::RootObject::gcProtect):
2940        (JSC::Bindings::RootObject::gcUnprotect):
2941        (JSC::Bindings::RootObject::updateGlobalObject):
2942        (JSC::Bindings::RootObject::addRuntimeObject):
2943        * bridge/runtime_root.h:
2944        (RootObject):
2945        * dom/Node.cpp:
2946        * dom/Node.h:
2947        (JSC):
2948        * dom/ScriptExecutionContext.cpp:
2949        (WebCore::ScriptExecutionContext::vm):
2950        * dom/ScriptExecutionContext.h:
2951        (JSC):
2952        (ScriptExecutionContext):
2953        * html/HTMLCanvasElement.cpp:
2954        (WebCore::HTMLCanvasElement::createImageBuffer):
2955        * html/HTMLImageLoader.cpp:
2956        (WebCore::HTMLImageLoader::notifyFinished):
2957        * inspector/ScriptArguments.cpp:
2958        (WebCore::ScriptArguments::ScriptArguments):
2959        * loader/icon/IconDatabaseBase.cpp:
2960        (WebCore):
2961        (WebCore::iconDatabase):
2962        (WebCore::setGlobalIconDatabase):
2963        * platform/qt/MemoryUsageSupportQt.cpp:
2964        (WebCore::memoryUsageKB):
2965        (WebCore::actualMemoryUsageKB):
2966        * platform/win/ClipboardUtilitiesWin.cpp:
2967        (WebCore::createGlobalData):
2968        * plugins/PluginView.cpp:
2969        (WebCore::PluginView::start):
2970        (WebCore::PluginView::stop):
2971        (WebCore::PluginView::performRequest):
2972        (WebCore::PluginView::npObject):
2973        (WebCore::PluginView::privateBrowsingStateChanged):
2974        * plugins/blackberry/PluginViewBlackBerry.cpp:
2975        (WebCore::PluginView::dispatchNPEvent):
2976        (WebCore::PluginView::setNPWindowIfNeeded):
2977        (WebCore::PluginView::platformStart):
2978        (WebCore::PluginView::getWindowInfo):
2979        * plugins/efl/PluginViewEfl.cpp:
2980        (WebCore::PluginView::dispatchNPEvent):
2981        * plugins/gtk/PluginViewGtk.cpp:
2982        (WebCore::PluginView::dispatchNPEvent):
2983        (WebCore::PluginView::handleKeyboardEvent):
2984        (WebCore::PluginView::handleMouseEvent):
2985        (WebCore::PluginView::setNPWindowIfNeeded):
2986        (WebCore::PluginView::platformStart):
2987        * plugins/mac/PluginViewMac.mm:
2988        (WebCore::PluginView::platformStart):
2989        * plugins/qt/PluginViewQt.cpp:
2990        (WebCore::PluginView::dispatchNPEvent):
2991        (WebCore::PluginView::setNPWindowIfNeeded):
2992        * plugins/win/PluginViewWin.cpp:
2993        (WebCore::PluginView::dispatchNPEvent):
2994        (WebCore::PluginView::handleKeyboardEvent):
2995        (WebCore::PluginView::handleMouseEvent):
2996        (WebCore::PluginView::setNPWindowRect):
2997        * testing/js/WebCoreTestSupport.cpp:
2998        (WebCoreTestSupport::injectInternalsObject):
2999        * xml/XMLHttpRequest.cpp:
3000        (WebCore::XMLHttpRequest::dropProtection):
3001
30022013-04-18  Oliver Hunt  <oliver@apple.com>
3003
3004        Fix windows build by moving template definition to JSDOMBinding.h
3005
3006        * bindings/js/JSDOMBinding.h:
3007        (WebCore):
3008        * bindings/scripts/CodeGeneratorJS.pm:
3009        (GenerateImplementation):
3010        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3011        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3012        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
3013        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3014        * bindings/scripts/test/JS/JSTestException.cpp:
3015        * bindings/scripts/test/JS/JSTestInterface.cpp:
3016        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3017        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
3018        * bindings/scripts/test/JS/JSTestObj.cpp:
3019        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
3020        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3021        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3022
30232013-04-18  Eric Carlson  <eric.carlson@apple.com>
3024
3025        Forced subtitles never rendered
3026        https://bugs.webkit.org/show_bug.cgi?id=114818
3027
3028        Reviewed by Jer Noble.
3029
3030        No new tests, media/track/track-forced-subtitles-in-band.html was updated to test this change.
3031
3032        * html/track/TextTrack.cpp:
3033        (WebCore::TextTrack::isRendered): "forced" tracks are rendered.
3034
30352013-04-17  Anders Carlsson  <andersca@apple.com>
3036
3037        Change storage factory functions to take a PageGroup and Page respectively
3038        https://bugs.webkit.org/show_bug.cgi?id=114776
3039
3040        Reviewed by Beth Dakin.
3041
3042        Change StorageNamespace::localStorageNamespace to take a PageGroup since WebKit2 needs
3043        to know which local storage namespace belongs to which page group. Also remove the quota parameter from
3044        the sessionStorageNamespace function since that's trivial to get from the Page.
3045
3046        * WebCore.exp.in:
3047        * page/Page.cpp:
3048        (WebCore::Page::sessionStorage):
3049        * page/PageGroup.cpp:
3050        (WebCore::PageGroup::localStorage):
3051        * storage/StorageNamespace.cpp:
3052        (WebCore::StorageNamespace::localStorageNamespace):
3053        (WebCore::StorageNamespace::sessionStorageNamespace):
3054        * storage/StorageNamespace.h:
3055        * storage/StorageNamespaceImpl.cpp:
3056        (WebCore::StorageNamespaceImpl::localStorageNamespace):
3057        (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
3058        * storage/StorageNamespaceImpl.h:
3059        * storage/StorageStrategy.cpp:
3060        (WebCore::StorageStrategy::localStorageNamespace):
3061        (WebCore::StorageStrategy::sessionStorageNamespace):
3062        * storage/StorageStrategy.h:
3063
30642013-04-18  Martin Robinson  <mrobinson@igalia.com>
3065
3066        [GTK] fast/canvas/DrawImageSinglePixelStretch.html fails
3067        https://bugs.webkit.org/show_bug.cgi?id=58309
3068
3069        Reviewed by Alejandro G. Castro.
3070
3071        No new tests. This patch unskips a test.
3072
3073        Prevent sampling outside source boundaries, by creating subsurfaces from source surfaces.
3074        This also requires careful handling of negative and floating source rectangles.
3075
3076        * platform/graphics/cairo/PlatformContextCairo.cpp:
3077        (WebCore::PlatformContextCairo::drawSurfaceToContext): Use a subsurface to prevent sampling
3078        outside rectangle boundaries.
3079
30802013-04-18  Jonathan Feldstein  <jfeldstein@blackberry.com>
3081
3082        [BlackBerry] Improper initialization of ANGLEResources (resubmission)
3083        https://bugs.webkit.org/show_bug.cgi?id=114814
3084
3085        Reviewed by Yong Li, Rob Buis
3086        Internally reviewed by Maxim Mogilnitsky
3087
3088        MaxDrawBuffers, OES_standard_derivatives, OES_EGL_image_external and ARB_texture_rectangle
3089        are initialized through the ShBuiltInResources function so these fields do not need to be
3090        set again in GraphicsContext3DBlackBerry.cpp. In addition, the extension flags should not
3091        be set to true without getExtension being called (Khronos WebGL specs, section 5.14.14.).
3092        In fact, as a direct result of these extensions being enabled prior to calling
3093        getExtension, a WebGL conformance suite test for GL_OES_standard_derivatives was failing.
3094
3095        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
3096        (WebCore::GraphicsContext3D::GraphicsContext3D):
3097
30982013-04-18  Xuefei Ren  <xren@blackberry.com>
3099
3100        remove build warning(unused parameter)
3101        https://bugs.webkit.org/show_bug.cgi?id=114670
3102
3103        Reviewed by Rob Buis.
3104
3105        remove warning(unused parameter) in
3106        Source/WebCore/html/shadow/MediaControlsBlackBerry.cpp
3107        Source/WebCore/loader/blackberry/CookieJarBlackBerry.cpp
3108        Source/WebCore/platform/blackberry/AuthenticationChallengeManager.cpp
3109        Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp
3110        Source/WebCore/platform/network/blackberry/ResourceResponseBlackBerry.cpp
3111        Source/WebCore/platform/network/blackberry/SocketStreamHandleBlackBerry.cpp
3112        Source/WebCore/plugins/blackberry/PluginViewBlackBerry.cpp
3113
3114
3115        * html/shadow/MediaControlsBlackBerry.cpp:
3116        (WebCore::MediaControlFullscreenFullscreenButtonElement::setIsFullscreen):
3117        * loader/blackberry/CookieJarBlackBerry.cpp:
3118        (WebCore::getRawCookies):
3119        (WebCore::deleteCookie):
3120        * platform/blackberry/AuthenticationChallengeManager.cpp:
3121        (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
3122        * platform/blackberry/RenderThemeBlackBerry.cpp:
3123        (WebCore::RenderTheme::themeForPage):
3124        * platform/network/blackberry/ResourceResponseBlackBerry.cpp:
3125        (WebCore::ResourceResponse::doPlatformAdopt):
3126        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
3127        (WebCore::SocketStreamHandle::notifyStatusReceived):
3128        * plugins/blackberry/PluginViewBlackBerry.cpp:
3129        (WebCore::PluginView::invalidateRegion):
3130
31312013-04-18  Xuefei Ren  <xren@blackberry.com>
3132
3133
3134        remove build warning(unused parameter)
3135        https://bugs.webkit.org/show_bug.cgi?id=114670
3136
3137        Reviewed by Rob Buis.
3138
3139        remove builde warning (unused parameter) in
3140        Source/WebCore/platform/blackberry/CursorBlackBerry.cpp
3141
3142        * platform/blackberry/CursorBlackBerry.cpp:
3143        (WebCore::Cursor::Cursor):
3144
31452013-04-18  Andreas Kling  <akling@apple.com>
3146
3147        EditingStyle: Avoid some unnecessary CSSStyleDeclaration wrappers.
3148        <http://webkit.org/b/114763>
3149
3150        Reviewed by Antti Koivisto.
3151
3152        removeEquivalentProperties(CSSStyleDeclaration) and removeEquivalentProperties(StylePropertySet)
3153        only have different behavior if the CSSStyleDeclaration is computed style (they differ in handling
3154        of the 'font-size' property.)
3155
3156        Avoid creating a CSSStyleDeclaration for StylePropertySets where we can just pass them in directly.
3157
3158        * editing/EditingStyle.cpp:
3159        (WebCore::EditingStyle::removeStyleAddedByNode):
3160        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
3161
31622013-04-18  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3163
3164        Unset :hover in inner documents
3165        https://bugs.webkit.org/show_bug.cgi?id=114446
3166
3167        Reviewed by Antonio Gomes.
3168
3169        Fixes a regression from r145126 where hover nodes in inner documents was sometimes
3170        not unset. Additionally it uses the new api from r145126 to avoid an unnecessary
3171        hit test in touch-event handling.
3172
3173        Test: fast/events/touch/frame-hover-update.html
3174
3175        * dom/Document.cpp:
3176        (WebCore::Document::updateHoverActiveState):
3177        * page/EventHandler.cpp:
3178        (WebCore::shouldGesturesTriggerActive):
3179        (WebCore::EventHandler::handleTouchEvent):
3180
31812013-04-18  Seokju Kwon  <seokju.kwon@gmail.com>
3182
3183        Web Inspector: Toolbar icons are displayed incorrectly
3184        https://bugs.webkit.org/show_bug.cgi?id=114792
3185
3186        Reviewed by Timothy Hatcher.
3187
3188        Inspector uses small toolbar icons when docking the inspector.
3189        So icons should have different x position.
3190
3191        No tests because no behavior change is expected.
3192
3193        * inspector/front-end/inspector.css: Add missing 'background-position-x' values.
3194        (body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
3195        (body.dock-to-bottom .toolbar-item.cpu-profiler .toolbar-icon):
3196        (body.dock-to-bottom .toolbar-item.css-profiler .toolbar-icon):
3197        (body.dock-to-bottom .toolbar-item.heap-profiler .toolbar-icon):
3198        (body.dock-to-bottom .toolbar-item.canvas-profiler .toolbar-icon):
3199        (body.dock-to-bottom .toolbar-item.memory-chart-profiler .toolbar-icon):
3200        (body.dock-to-bottom .toolbar-item.memory-snapshot-profiler .toolbar-icon):
3201
32022013-04-17  Jaehun Lim  <ljaehun.lim@samsung.com>
3203
3204        [css3-text] Rendering -webkit-hanging value for text-indent from css3-text
3205        https://bugs.webkit.org/show_bug.cgi?id=114663
3206
3207        Reviewed by Beth Dakin.
3208
3209        This patch is the rendering part to support hanging value for text-indent.
3210        "hanging" means "Inverts which lines are affected."
3211        It's prefixed and guarded by CSS3_TEXT flag.
3212
3213        Spec: http://dev.w3.org/csswg/css-text/#text-indent
3214
3215        Test: fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html
3216
3217        * rendering/RenderBlockLineLayout.cpp:
3218        (WebCore::requiresIndent): Inverted the return value when "-webkit-hanging" is applied.
3219
32202013-04-17  James Craig  <james@cookiecrook.com>
3221
3222        AX: aria-level does not override implicit level on h1, h2, etc
3223        https://bugs.webkit.org/show_bug.cgi?id=114692
3224
3225        Reviewed by Chris Fleizach.
3226
3227        aria-level now works on headings without an explicit role="heading" defined. Updated existing test coverage.
3228
3229        * accessibility/AccessibilityNodeObject.cpp:
3230        (WebCore::AccessibilityNodeObject::headingLevel):
3231
32322013-04-17  Chris Fleizach  <cfleizach@apple.com>
3233
3234        AX: VoiceOver says everything that isn't a link is a "clickable" in Safari reader?
3235        https://bugs.webkit.org/show_bug.cgi?id=114687
3236
3237        Reviewed by Tim Horton.
3238
3239        VoiceOver is saying all text is clickable, because AXPress is exposed as an action on static text.
3240        That is happening, because there's a click handler on the body element in this case.
3241
3242        I think the best plan to keep existing functionality, but fix this case is not to expose
3243        the press action for static text when the handler is on the body element.
3244
3245        Test: platform/mac/accessibility/press-action-not-exposed-when-body-is-click-handler.html
3246
3247        * accessibility/AccessibilityNodeObject.cpp:
3248        (WebCore::AccessibilityNodeObject::mouseButtonListener):
3249           Change from checking getAttributeEventListener to hasEventListeners. The former only
3250           checks if "onclick" is installed on the element and does not work with addEventListener!
3251
3252        * accessibility/AccessibilityObject.cpp:
3253        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
3254        * accessibility/AccessibilityObject.h:
3255        (WebCore::AccessibilityObject::isStaticText):
3256
32572013-04-17  Simon Fraser  <simon.fraser@apple.com>
3258
3259        Fix GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush() to do predictive visible rect expansion
3260        https://bugs.webkit.org/show_bug.cgi?id=114775
3261
3262        Reviewed by Tim Horton.
3263
3264        GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush() is intended to answer the question
3265        "if your visible rect is changed to X, would any tiles be created or destroyed?".
3266        
3267        However, for compositing layer tiled layers, we do some predictive visible rect expansion based on how
3268        the visible rect is changing when we actually commit visible rect changes. recursiveVisibleRectChangeRequiresFlush()
3269        was not doing that, causing it to give confusing answers, so fix it to do so.
3270        
3271        Both now call adjustTiledLayerVisibleRect(), and it's cleaner to make this a static function.
3272        
3273        A somewhat unrelated change is to take the layer bounds origin into account
3274        in GraphicsLayerCA::computeVisibleRect(). Desktop WebKit never sets this, but it's used
3275        on other platforms for composited scrolling, so needs to be taken into account
3276        when computing visible rects.
3277
3278        * platform/graphics/ca/GraphicsLayerCA.cpp:
3279        (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush):
3280        (WebCore::GraphicsLayerCA::computeVisibleRect):
3281        (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
3282        (WebCore::GraphicsLayerCA::updateVisibleRect):
3283        * platform/graphics/ca/GraphicsLayerCA.h:
3284        (GraphicsLayerCA):
3285
32862013-04-17  Oliver Hunt  <oliver@apple.com>
3287
3288        Automate generation of toJS function for classes that need to report extra memory usage
3289        https://bugs.webkit.org/show_bug.cgi?id=114768
3290
3291        Reviewed by Geoff Garen.
3292
3293        Only really used by AudioBuffer for now.  The other classes that need it can be
3294        trivially refactored at a later date.
3295
3296        * Modules/webaudio/AudioBuffer.idl:
3297        * bindings/js/JSAudioBufferCustom.cpp:
3298        * bindings/js/JSDOMBinding.h:
3299        (WebCore):
3300        (HasMemoryCost):
3301        (NoType):
3302        (BaseMixin):
3303        * bindings/scripts/CodeGeneratorJS.pm:
3304        (GenerateImplementation):
3305
33062013-04-17  Dirk Schulze  <krit@webkit.org>
3307
3308        BasicShapeFunctions should use RenderStyle instead of StyleResolver
3309        https://bugs.webkit.org/show_bug.cgi?id=114743
3310
3311        Reviewed by Antti Koivisto.
3312
3313        BasicShapeFunctions does include RenderStyle instead of StyleResolver now.
3314        This is a simple refactoring patch, no new tests.
3315
3316        * css/BasicShapeFunctions.cpp:
3317        (WebCore::convertToLength): Use style and rootElementStyle directly.
3318        (WebCore::basicShapeForValue): Ditto.
3319        * css/BasicShapeFunctions.h:
3320        (WebCore):
3321        * css/DeprecatedStyleBuilder.cpp:
3322        (WebCore::ApplyPropertyClipPath::applyValue):
3323        (WebCore::ApplyPropertyExclusionShape::applyValue):
3324
33252013-04-17  Beth Dakin  <bdakin@apple.com>
3326
3327        Content inside frames and scrollbars in overflow areas hit-tests incorrectly when 
3328        the WKView has a header
3329        https://bugs.webkit.org/show_bug.cgi?id=114769
3330
3331        Reviewed by Simon Fraser.
3332
3333        convertToRenderer() and convertFromRenderer() need to factor in the headerHeight, 
3334        much like all of the conversion functions on ScrollView. 
3335        * page/FrameView.cpp:
3336        (WebCore::FrameView::convertFromRenderer):
3337        (WebCore::FrameView::convertToRenderer):
3338
3339        The scrollPosition equivalent of the existing scrollOffsetRelativeToDocument() 
3340        function. 
3341        * platform/ScrollView.cpp:
3342        (WebCore::ScrollView::scrollPositionRelativeToDocument):
3343        * platform/ScrollView.h:
3344        (ScrollView):
3345
33462013-04-17  Andreas Kling  <akling@apple.com>
3347
3348        Remove FragmentScriptingPermission.h include from Element.h.
3349        <http://webkit.org/b/114757>
3350
3351        Rubber-stamped by Anders Carlsson.
3352
3353        * dom/Element.h:
3354
33552013-04-17  Mark Lam  <mark.lam@apple.com>
3356
3357        Add LLINT and baseline JIT support for timing out scripts.
3358        https://bugs.webkit.org/show_bug.cgi?id=114577.
3359
3360        Reviewed by Geoffrey Garen.
3361
3362        Replaced use of the obsolete JSGlobalData.terminator methods with the
3363        JSGlobalData.watchdog equivalents.
3364
3365        * bindings/js/JSEventListener.cpp:
3366        (WebCore::JSEventListener::handleEvent):
3367        * bindings/js/SerializedScriptValue.cpp:
3368        (WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):
3369        * bindings/js/WorkerScriptController.cpp:
3370        (WebCore::WorkerScriptController::evaluate):
3371        (WebCore::WorkerScriptController::scheduleExecutionTermination):
3372        (WebCore::WorkerScriptController::isExecutionTerminating):
3373
33742013-04-16  Jer Noble <jer.noble@apple.com>
3375
3376        Crash in WebCore::HTMLMediaElement::~HTMLMediaElement.
3377        https://bugs.webkit.org/show_bug.cgi?id=113531
3378
3379        Reviewed by Eric Carlson.
3380
3381        No new tests, though this is intermittently reproducible with
3382        http/tests/misc/delete-frame-during-readystatechange.html under ASAN.
3383
3384        * html/HTMLMediaElement.cpp:
3385        (WebCore::HTMLMediaElement::~HTMLMediaElement): Clear the media player manually
3386            before the destructor exits. Clearing the media player may cancel a resource load,
3387            which can trigger a readystatechange event. It's possible for the HTMLMediaElement
3388            to attempt to fire an abort event within the readystatechange event, even though it is
3389            now in an inconsistent state. Clearling the media player before finishing the destructor
3390            ensures that the HTMLMediaElement will at least still be alive if this case is triggered.
3391            Set m_completelyLoaded to true to ensure that if userCancelledLoad() is called, it doesn't
3392            attempt to fire events while destructing.
3393
33942013-04-17  Sergio Correia  <sergio.correia@openbossa.org>
3395
3396        Web Inspector: make generate-inspector-protocol-version work with python3 
3397        https://bugs.webkit.org/show_bug.cgi?id=114717
3398
3399        Revision r146765 added print() calls that made the script complain about 
3400        invalid syntax when using python3.
3401
3402        This commit replaces such calls with calls to sys.stdout.write(), analogous
3403        to the sys.stderr.write() ones already used throughout the file.
3404
3405        Reviewed by Timothy Hatcher.
3406
3407        No new tests. No user visible behavior changed.
3408
3409        * inspector/generate-inspector-protocol-version:
3410        (main):
3411
34122013-04-17  Seokju Kwon  <seokju.kwon@gmail.com>
3413
3414        Web Inspector: Fix Localized string warngs
3415        https://bugs.webkit.org/show_bug.cgi?id=114718
3416
3417        Reviewed by Timothy Hatcher.
3418
3419        No tests because no behavior change is expected.
3420
3421        * English.lproj/localizedStrings.js:
3422
34232013-04-17  Csaba Osztrogonác  <ossy@webkit.org>
3424
3425        [Qt] Unreviewed Windows buildfix.
3426
3427        * platform/qt/DragDataQt.cpp: Add a missing include.
3428
34292013-04-17  ChangSeok Oh  <shivamidow@gmail.com>
3430
3431        Breaking Float: floated block level element following inline element in floated container breaks to next line
3432        https://bugs.webkit.org/show_bug.cgi?id=45274
3433
3434        Reviewed by David Hyatt.
3435
3436        Fix position issue of floating element in floating element.
3437        Inner floating element has placed at next line when outer floating element has text,
3438        even though previous line has spaces enough to fit it.
3439        To solve this, the width of a space added temporarily for prohibiting duplication more than 2 empty spaces
3440        is subtracted when floating element is checked whether it fits on a line.
3441
3442        Tests: css2.1/20110323/floats-001.html
3443               css2.1/20110323/floats-102.html
3444               fast/inline-block/float-both-whitespace.html
3445               fast/inline-block/float-leading-whitespace.html
3446               fast/inline-block/float-no-whitespace.html
3447               fast/inline-block/float-trailing-whitespace.html
3448               fast/inline-block/multiple-floats-with-whitespace.html
3449
3450        * rendering/RenderBlockLineLayout.cpp:
3451        (WebCore::LineWidth::LineWidth):
3452        (WebCore::LineWidth::fitsOnLine):
3453        (WebCore::LineWidth::trailingWhitespaceWidth):
3454        (WebCore::LineWidth::setTrailingWhitespaceWidth):
3455        (LineWidth):
3456        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
3457
34582013-04-17  Leo Yang  <leoyang@rim.com>
3459
3460        Lots of unused parameter warnings in filesystem code
3461        https://bugs.webkit.org/show_bug.cgi?id=114747
3462
3463        Reviewed by Carlos Garcia Campos.
3464
3465        Comment out or remove unused parameter identifiers.
3466
3467        No functionalities changed, no new tests.
3468
3469        * Modules/filesystem/DOMFileSystem.cpp: Comment out |snapshot| because
3470        it is referred in the comments inside the function.
3471        (WebCore):
3472        * Modules/filesystem/DOMFileSystemSync.cpp: Ditto.
3473        (WebCore):
3474        * Modules/filesystem/FileWriter.cpp: Remove unused |ec|.
3475        (WebCore::FileWriter::abort):
3476        * Modules/filesystem/FileWriterSync.cpp:
3477        (WebCore::FileWriterSync::didWrite): Remove unused |bytes|.
3478        * platform/AsyncFileSystemCallbacks.h:
3479        (WebCore::AsyncFileSystemCallbacks::didOpenFileSystem): Comment out unused parameters
3480        because the function is inlined.
3481        (WebCore::AsyncFileSystemCallbacks::didCreateSnapshotFile): Ditto.
3482        (WebCore::AsyncFileSystemCallbacks::didReadDirectoryEntry): Ditto.
3483        (WebCore::AsyncFileSystemCallbacks::didReadDirectoryEntries): Ditto.
3484        (WebCore::AsyncFileSystemCallbacks::didCreateFileWriter): Ditto.
3485        * platform/blackberry/WorkerAsyncFileSystemBlackBerry.cpp:
3486        (WebCore::WorkerAsyncFileSystemBlackBerry::createWriterOnMainThread): Remove unused |client|.
3487
34882013-04-17  Brent Fulgham  <bfulgham@webkit.org>
3489
3490        [Windows, WinCairo] Stop individually building WTF files in WebCore
3491        https://bugs.webkit.org/show_bug.cgi?id=114705
3492
3493        Reviewed by Anders Carlsson.
3494
3495        * WebCore.vcproj/WebCore.vcproj: Remove references to WTF objects.
3496        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
3497        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
3498
34992013-04-17  Dirk Schulze  <krit@webkit.org>
3500
3501        Make lengthConversion methods and arguments const
3502        https://bugs.webkit.org/show_bug.cgi?id=114749
3503
3504        Reviewed by Andreas Kling.
3505
3506        Refactoring, no new tests.
3507
3508        * css/CSSCalculationValue.cpp:
3509        (WebCore::CSSCalcValue::computeLengthPx):
3510        (WebCore::CSSCalcPrimitiveValue::toCalcValue):
3511        (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
3512        (WebCore::CSSCalcBinaryOperation::toCalcValue):
3513        (WebCore::CSSCalcBinaryOperation::computeLengthPx):
3514        * css/CSSCalculationValue.h:
3515        (WebCore::CSSCalcValue::toCalcValue):
3516        (CSSCalcValue):
3517        * css/CSSPrimitiveValue.cpp:
3518        (WebCore::CSSPrimitiveValue::computeLength):
3519        (WebCore::CSSPrimitiveValue::computeLengthDouble):
3520        (WebCore::CSSPrimitiveValue::viewportPercentageLength):
3521        * css/CSSPrimitiveValue.h:
3522        (CSSPrimitiveValue):
3523        * css/CSSPrimitiveValueMappings.h:
3524        (WebCore::CSSPrimitiveValue::convertToLength):
3525        * css/StyleResolver.cpp:
3526        (WebCore::StyleResolver::convertToIntLength):
3527        (WebCore::StyleResolver::convertToFloatLength):
3528        * css/StyleResolver.h:
3529        (StyleResolver):
3530
35312013-04-17  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
3532
3533        [refactor] Moved ScriptedAnimationController common code to inline function
3534        https://bugs.webkit.org/show_bug.cgi?id=114681
3535
3536        Reviewed by Daniel Bates.
3537
3538        Avoided duplicated code by moving ScriptedAnimationController clearance
3539        code to a common function used by both Document::dispose() and
3540        Document::detach().
3541
3542        No new tests, no behavior changes.
3543
3544        * dom/Document.cpp:
3545        (WebCore::Document::dispose):
3546        (WebCore::Document::detach):
3547        (WebCore::Document::clearScriptedAnimationController): Added.
3548        * dom/Document.h:
3549        (Document):
3550
35512013-04-17  Chris Fleizach  <cfleizach@apple.com>
3552
3553        AX: When img@alt is undefined, WebKit should use @title as accessibility label if available
3554        https://bugs.webkit.org/show_bug.cgi?id=114535
3555
3556        Reviewed by Tim Horton.
3557
3558        Don't hide images from Accessibility that have the title attribute on them.
3559
3560        Test: accessibility/empty-image-with-title.html
3561
3562        * accessibility/AccessibilityRenderObject.cpp:
3563        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
3564
35652013-04-17  Arpita Bahuguna  <a.bah@samsung.com>
3566
3567        getAttribute does not behave correctly for mixed-case attributes on HTML elements
3568        https://bugs.webkit.org/show_bug.cgi?id=105713
3569
3570        Reviewed by Andreas Kling.
3571
3572        getAttribute() and getAttributeNode() APIs do not convert the
3573        passed attribute name to lowercase before comparing against the
3574        existing attributes.
3575        The specification however states that the passed name should
3576        be converted to ASCII lowercase before checking for the existence
3577        of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
3578
3579        Test: fast/dom/Element/getAttribute-case-insensitivity.html
3580
3581        * dom/Element.h:
3582        (WebCore::ElementData::getAttributeItemIndex):
3583        getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
3584        which specifies whether or not the attribute's case should be ignored
3585        before comparison but we don't really convert the passed name to lowercase
3586        before carrying out the comparison.
3587
3588        Thus, when called from APIs such as getAttribute() and getAttributeNode()
3589        which do not explicitally convert the attribute name to lowercase
3590        before calling on this method, it fails to carry out a case-insensitive
3591        search.
3592
3593        Have thus made changes to convert the passed attribute's name to
3594        lowercase if 'shouldIgnoreAttributeCase' is true.
3595
35962013-04-17  John Griggs  <jgriggs@blackberry.com>
3597
3598        [BlackBerry] Add support for filesystem: URLs to BlackBerry Media Player.
3599        https://bugs.webkit.org/show_bug.cgi?id=114686
3600        https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=314865
3601
3602        Reviewed by Rob Buis.
3603
3604        Translate filesystem: URLs to file:// URLs for use by the media player, but only after the filesystem: URL has been checked for security, etc.
3605
3606        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
3607        (WebCore::MediaPlayerPrivate::load):
3608        (WebCore::MediaPlayerPrivate::onError):
3609        (WebCore::MediaPlayerPrivate::onDurationChanged):
3610        (WebCore::MediaPlayerPrivate::notifyChallengeResult):
3611
36122013-04-17  Brendan Long  <b.long@cablelabs.com>
3613
3614        [GStreamer] Eclipse warnings in MediaPlayerPrivateGStreamer
3615        https://bugs.webkit.org/show_bug.cgi?id=114654
3616
3617        Reviewed by Philippe Normand.
3618
3619        No new tests (nothing added).
3620
3621        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
3622        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
3623        Initialize m_volumeAndMuteInitialized
3624        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
3625        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
3626        Initialize signal handlers to 0.
3627
36282013-04-17  Andrei Bucur  <abucur@adobe.com>
3629
3630        [CSS Regions] Remove m_flowThread from NodeRenderingContext
3631        https://bugs.webkit.org/show_bug.cgi?id=114732
3632
3633        Reviewed by Antti Koivisto.
3634
3635        Cleanup NodeRenderingContext. Remove unused member m_flowThread.
3636
3637        Tests: None needed.
3638
3639        * dom/NodeRenderingContext.cpp:
3640        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
3641        * dom/NodeRenderingContext.h: Removed m_flowThread.
3642
36432013-04-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3644
3645        [Qt] MediaPlayerPrivateQt.cpp doesn't build in debug
3646
3647        Unreviewed build fix.
3648
3649        We need to include Logging.h to get the LOG definitions.
3650
3651        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
3652
36532013-04-17  Claudio Saavedra  <csaavedra@igalia.com>
3654
3655        execCommand("RemoveFormat") might remove format after the selection
3656        https://bugs.webkit.org/show_bug.cgi?id=112240
3657
3658        Reviewed by Ryosuke Niwa.
3659
3660        Tests: editing/execCommand/remove-format-multiple-elements-mac.html
3661
3662        This bug is hit when ApplyStyleCommand is used to change the
3663        style and the current selection ends in the beginning of a new node.
3664        The bug is actually a two-fold thing:
3665
3666        1. There was no check as to whether the end node is really
3667        selected or not, and format was always removed from it with
3668        pushDownInlineStyleAroundNode(). An equivalent check for the start
3669        node was already in place, so fix it analogously.
3670
3671        2. Previous stage might change the dom tree, resulting in a render
3672        tree that is not up-to-date. Position::upstream() is later used
3673        and, in order to be able to find a visually equivalent position in
3674        a text node, this method needs the render tree to be up-to-date,
3675        therefore, a call to updateLayoutIgnorePendingStylesheets() is
3676        necessary.
3677
3678        * editing/ApplyStyleCommand.cpp:
3679        (WebCore::ApplyStyleCommand::removeInlineStyle): Make sure that no
3680        format is removed from the end node if it's not fully selected.
3681        (WebCore::ApplyStyleCommand::nodeFullySelected): Call updateLayoutIgnorePendingStylesheets()
3682
36832013-04-17  Alberto Garcia  <agarcia@igalia.com>
3684
3685        [BlackBerry] GraphicsContext3D: don't initialize m_extensions in the constructor
3686        https://bugs.webkit.org/show_bug.cgi?id=114726
3687
3688        Reviewed by Carlos Garcia Campos.
3689
3690        m_extensions is now initialized on demand by
3691        GraphicsContext3D::getExtensions().
3692
3693        Doing it in the constructor produces a crash, because
3694        Extensions3DOpenGLES() calls glGetString before the WebGL context
3695        is current.
3696
3697        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
3698        (WebCore::GraphicsContext3D::GraphicsContext3D):
3699
37002013-04-16  Maciej Stachowiak  <mjs@apple.com>
3701
3702        Replace JSC-specific IDL extended attributes with generic (JSC+V8) ones, now that the distinction no longer matters
3703        https://bugs.webkit.org/show_bug.cgi?id=114712
3704
3705        Reviewed by Dan Bernstein.
3706
3707        No behavior change expected.
3708
3709        * bindings/scripts/IDLAttributes.txt: Remove the JSFoo attributes
3710        that have bare Foo equivalents.
3711        * bindings/scripts/CodeGeneratorJS.pm: Remove support for JSFoo
3712        aliases.
3713        (GetGenerateIsReachable):
3714        (GetCustomIsReachable):
3715        (ShouldGenerateToJSDeclaration):
3716        (ShouldGenerateToJSImplementation):
3717        (HasCustomConstructor):
3718        (HasCustomGetter):
3719        (HasCustomSetter):
3720        (HasCustomMethod):
3721
3722        Replace JSFoo attributes with equivalen Foo attributs in all files
3723        below:
3724        
3725        * Modules/geolocation/Geolocation.idl:
3726        * Modules/indexeddb/IDBDatabase.idl:
3727        * Modules/indexeddb/IDBObjectStore.idl:
3728        * Modules/webaudio/DOMWindowWebAudio.idl:
3729        * Modules/websockets/DOMWindowWebSocket.idl:
3730        * Modules/websockets/WorkerContextWebSocket.idl:
3731        * css/CSSRule.idl:
3732        * css/CSSRuleList.idl:
3733        * css/CSSStyleDeclaration.idl:
3734        * css/CSSValue.idl:
3735        * css/MediaList.idl:
3736        * css/StyleMedia.idl:
3737        * css/StyleSheet.idl:
3738        * dom/MessagePort.idl:
3739        * dom/MutationObserver.idl:
3740        * dom/Node.idl:
3741        * fileapi/Blob.idl:
3742        * html/HTMLDocument.idl:
3743        * html/HTMLTemplateElement.idl:
3744        * html/canvas/ArrayBuffer.idl:
3745        * html/canvas/CanvasRenderingContext.idl:
3746        * html/canvas/DataView.idl:
3747        * html/canvas/EXTDrawBuffers.idl:
3748        * html/canvas/EXTTextureFilterAnisotropic.idl:
3749        * html/canvas/OESElementIndexUint.idl:
3750        * html/canvas/OESStandardDerivatives.idl:
3751        * html/canvas/OESTextureFloat.idl:
3752        * html/canvas/OESTextureHalfFloat.idl:
3753        * html/canvas/OESVertexArrayObject.idl:
3754        * html/canvas/WebGLCompressedTextureATC.idl:
3755        * html/canvas/WebGLCompressedTexturePVRTC.idl:
3756        * html/canvas/WebGLCompressedTextureS3TC.idl:
3757        * html/canvas/WebGLDebugRendererInfo.idl:
3758        * html/canvas/WebGLDebugShaders.idl:
3759        * html/canvas/WebGLDepthTexture.idl:
3760        * html/canvas/WebGLLoseContext.idl:
3761        * html/track/TextTrack.idl:
3762        * html/track/TextTrackCue.idl:
3763        * html/track/TextTrackList.idl:
3764        * loader/appcache/DOMApplicationCache.idl:
3765        * page/BarInfo.idl:
3766        * page/Console.idl:
3767        * page/DOMSelection.idl:
3768        * page/DOMWindow.idl:
3769        * page/History.idl:
3770        * page/Location.idl:
3771        * page/MemoryInfo.idl:
3772        * page/Navigator.idl:
3773        * page/Screen.idl:
3774        * page/WorkerNavigator.idl:
3775        * plugins/DOMMimeTypeArray.idl:
3776        * plugins/DOMPluginArray.idl:
3777        * storage/Storage.idl:
3778        * workers/AbstractWorker.idl:
3779        * workers/SharedWorker.idl:
3780        * workers/Worker.idl:
3781        * workers/WorkerContext.idl:
3782        * workers/WorkerLocation.idl:
3783        * xml/XMLHttpRequestUpload.idl:
3784
37852013-04-16  Beth Dakin  <bdakin@apple.com>
3786
3787        Re-name Page::layoutMilestones() to Page::requestedLayoutMilestones()
3788        https://bugs.webkit.org/show_bug.cgi?id=114713
3789
3790        Reviewed by Simon Fraser.
3791
3792        * page/FrameView.cpp:
3793        (WebCore::FrameView::performPostLayoutTasks):
3794        * page/Page.cpp:
3795        (WebCore::Page::Page):
3796        (WebCore::Page::addLayoutMilestones):
3797        (WebCore::Page::removeLayoutMilestones):
3798        (WebCore::Page::isCountingRelevantRepaintedObjects):
3799        * page/Page.h:
3800        (WebCore::Page::requestedLayoutMilestones):
3801        (Page):
3802        * rendering/RenderLayerCompositor.cpp:
3803        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
3804
38052013-04-16  Patrick Gansterer  <paroga@webkit.org>
3806
3807        [CMake] Fix dependecy calculation for generated inspector files
3808        https://bugs.webkit.org/show_bug.cgi?id=114092
3809
3810        Reviewed by Brent Fulgham.
3811
3812        At least in a generated Visual Studio solution the files generated via
3813        CodeGeneratorInspector.py are considered outdated all the time because
3814        the code generator only touches the file when the content changed.
3815        Add an --write_always parameter to the script to touch the file always.
3816
3817        * CMakeLists.txt:
3818        * inspector/CodeGeneratorInspector.py:
3819
38202013-04-16  Anders Carlsson  <andersca@apple.com>
3821
3822        Clone storage namespaces for window.open
3823        https://bugs.webkit.org/show_bug.cgi?id=114703
3824
3825        Reviewed by Sam Weinig.
3826
3827        Pass the new page to StorageNamespace::copy.
3828
3829        * page/Chrome.cpp:
3830        (WebCore::Chrome::createWindow):
3831        * storage/StorageNamespace.h:
3832        (StorageNamespace):
3833        * storage/StorageNamespaceImpl.cpp:
3834        (WebCore::StorageNamespaceImpl::copy):
3835        * storage/StorageNamespaceImpl.h:
3836        (WebCore):
3837        (StorageNamespaceImpl):
3838
38392013-04-16  Sam Weinig  <sam@webkit.org>
3840
3841        Fix fallout after r148545.
3842
3843        * platform/text/TextChecking.h:
3844        Move Platform defines that were incorrectly in WebCore, into Platform.h
3845
38462013-04-16  Hans Muller  <hmuller@adobe.com>
3847
3848        [CSS Exclusions] polygon shape-inside layout fails
3849        https://bugs.webkit.org/show_bug.cgi?id=114402
3850
3851        Reviewed by Dirk Schulze.
3852
3853        The firstIncludedIntervalLogicalTop() method's implementation relied on optimistic
3854        assumptions about floating point accuracy which, in rare cases, caused it to discard
3855        first-fit locations based on the intersection of the minLogicalIntervalTop offset edge
3856        and a polygon offset edge. Now: we do not verify that first-fit locations based on the
3857        intersection of an offset edge and the minLogicalIntervalTop offset edge are below
3858        the horizontal minLogicalIntervalTop line. They're essentially below the line "by definition".
3859
3860        Test: fast/exclusions/shape-inside/shape-inside-polygon-layout.html
3861
3862        * rendering/ExclusionPolygon.cpp:
3863        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Avoid floating point problems
3864            when checking intersections with the offset edge based on minLogicalIntervalTop.
3865        * rendering/ExclusionPolygon.h:
3866        (WebCore::OffsetPolygonEdge::OffsetPolygonEdge): Initialize the basis field.
3867        (WebCore::OffsetPolygonEdge::basis): Report what the offset edge is "based on": a polygon
3868            edge, the top of the line, or a (reflex) vertex.
3869        (OffsetPolygonEdge): Added the Basis enum to enable tracking what the geometry of
3870            an offset edge is based on.
3871
38722013-04-16  Jer Noble  <jer.noble@apple.com>
3873
3874        Further unreviewed build fix: protect JSAudioBufferCustom with a ENABLE(WEB_AUDIO) check.
3875
3876        * bindings/js/JSAudioBufferCustom.cpp:
3877
38782013-04-16  Jer Noble  <jer.noble@apple.com>
3879
3880        Unreviewed build fix; add new JSAudioBuffer.cpp file to more build systems.
3881
3882        * GNUmakefile.list.am:
3883        * Target.pri:
3884        * UseJSC.cmake:
3885
38862013-04-16  Jer Noble  <jer.noble@apple.com>
3887
3888        Repeated use of decodeAudioData() causes leak
3889        https://bugs.webkit.org/show_bug.cgi?id=114709
3890
3891        Reviewed by Geoffrey Garen.
3892
3893        Report the correct size of the AudioBuffer to the garbage collector so that creating
3894        these large buffers will trigger garbage collection.
3895
3896        * Modules/webaudio/AudioBuffer.cpp:
3897        (WebCore::AudioBuffer::memoryCost): Added; simple sum of the buffer sizes in m_channels;
3898        * Modules/webaudio/AudioBuffer.h:
3899        * Modules/webaudio/AudioBuffer.idl: Add the CustomToJSObject flag.
3900        * WebCore.xcodeproj/project.pbxproj:
3901        * bindings/js/JSAudioBufferCustom.cpp: Added.
3902        (WebCore::toJS): Added; report the extra size of an AudioBuffer when the wrapper
3903            is created.
3904
39052013-04-16  Beth Dakin  <bdakin@apple.com>
3906
3907        Need a new layout milestone to notify bundle clients when the header has been 
3908        flushed
3909        https://bugs.webkit.org/show_bug.cgi?id=114706
3910        -and corresponding-
3911        <rdar://problem/13657284>
3912
3913        Reviewed by Simon Fraser.
3914
3915        New LayoutMilestone is DidFirstFlushForHeaderLayer.
3916        * page/LayoutMilestones.h:
3917        
3918        New API to allow removing a LayoutMilestone.
3919        * WebCore.exp.in:
3920        * page/Page.cpp:
3921        (WebCore::Page::removeLayoutMilestones):
3922        * page/Page.h:
3923        (Page):
3924
3925        New boolean member variable m_headerLayerAwaitingFirstFlush keeps track of whether 
3926        we need to send the DidFirstFlushForHeaderLayer milestone.
3927        * rendering/RenderLayerCompositor.h:
3928        (RenderLayerCompositor):
3929        * rendering/RenderLayerCompositor.cpp:
3930        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
3931
3932        Send the milestone if appropriate.
3933        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
3934
3935         Set m_headerLayerAwaitingFirstFlush to true for a newly created layer.
3936        (WebCore::RenderLayerCompositor::updateLayerForHeader):
3937
39382013-04-16  Tim Horton  <timothy_horton@apple.com>
3939
3940        PlugIn Snapshotting: Crashes refreshing non-main-frame PDFPlugins
3941        https://bugs.webkit.org/show_bug.cgi?id=114702
3942        <rdar://problem/13542020>
3943
3944        Reviewed by Dean Jackson.
3945
3946        If:
3947
3948            a) a plugin fails all the tests in willCreatePlugIn, so it is WaitingForSnapshot there
3949            b) primary plugin detection attempts to restart a plugin between the
3950               time that willCreatePlugIn and didCreatePlugIn fire
3951            c) when didCreatePlugIn fires, shouldAlwaysAutoStart() returns true,
3952               because the plug-in is whitelisted,
3953
3954        we end up reattach()ing and going to Restarted state, and then going straight
3955        to Playing state in didCreatePlugIn.
3956
3957        Instead, primary plugin promotion should be deferred until after the plugin is created,
3958        so that we can take that one last bit of information (shouldAlwaysAutoStart) into account
3959        before restarting and reattaching the plug-in.
3960
3961        * html/HTMLPlugInImageElement.cpp:
3962        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
3963        (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn):
3964        (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
3965        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
3966        (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn):
3967        * html/HTMLPlugInImageElement.h:
3968
39692013-04-16  Wei James  <james.wei@intel.com>
3970
3971        ASSERTION FAILED: i < size(), UNKNOWN in WebCore::ChannelMergerNode::process
3972        https://bugs.webkit.org/show_bug.cgi?id=112657
3973
3974        Avoid to access input bus in checkNumberOfChannelsForInput() before the
3975        bus is updated with AudioNode::checkNumberOfChannelsForInput().
3976
3977        Reviewed by Chris Rogers.
3978
3979        * Modules/webaudio/ChannelMergerNode.cpp:
3980        (WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
3981
39822013-04-16  Ryosuke Niwa  <rniwa@webkit.org>
3983
3984        Even more Windows build fix and a Qt minimal build fix attempt.
3985
3986        * html/parser/XSSAuditorDelegate.cpp:
3987        * page/win/FrameCGWin.cpp:
3988
39892013-04-16  Ryosuke Niwa  <rniwa@webkit.org>
3990
3991        More Windows build fixes.
3992
3993        * platform/win/DragDataWin.cpp:
3994        * platform/win/PasteboardWin.cpp:
3995
39962013-04-16  Sam Weinig  <sam@webkit.org>
3997
3998        Windows build fix.
3999
4000        * page/win/FrameWin.cpp:
4001
40022013-04-16  Dean Jackson  <dino@apple.com>
4003
4004        PlugIns that resize in user gestures should be immune to snapshotting
4005        https://bugs.webkit.org/show_bug.cgi?id=114697
4006        <rdar://problem/13666258>
4007
4008        Reviewed by Tim Horton.
4009
4010        Now that we snapshot plugins if they resize above the snapshotting threshold,
4011        we need to make sure that we don't do it in response to a user gesture
4012        such as a click.
4013
4014        Due to the complexities of real-world content and the way they often do
4015        things using timeout, I copied the code from the generic user gesture
4016        timeout, which gives a 5 second grace period after clicks.
4017
4018        * html/HTMLPlugInImageElement.cpp:
4019        (WebCore::documentHadRecentUserGesture): New static function to share the code for
4020            checking the time since the last click (or whatever).
4021        (WebCore::HTMLPlugInImageElement::checkSizeChangeForSnapshotting): Make sure
4022            to test for a user gesture.
4023        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Move the
4024            code into the new function.
4025
40262013-04-15  Sam Weinig  <sam@webkit.org>
4027
4028        Remove more #includes from Frame.h
4029        https://bugs.webkit.org/show_bug.cgi?id=114642
4030
4031        Reviewed by Anders Carlsson.
4032
4033        Convert Editor, FrameSelection, EventHandler and AnimationController into
4034        OwnPtrs, to avoid inclusion.
4035
4036        * accessibility/AXObjectCache.cpp:
4037        * accessibility/AccessibilityObject.cpp:
4038        * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
4039        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
4040        * bindings/objc/DOM.mm:
4041        * dom/CharacterData.cpp:
4042        * dom/ContainerNode.cpp:
4043        * dom/Element.cpp:
4044        * editing/AlternativeTextController.cpp:
4045        * editing/CompositeEditCommand.cpp:
4046        * editing/DeleteButtonController.h:
4047        * editing/EditingStyle.cpp:
4048        * editing/InsertLineBreakCommand.cpp:
4049        * editing/SpellChecker.cpp:
4050        * editing/SpellingCorrectionCommand.cpp:
4051        * editing/TextInsertionBaseCommand.cpp:
4052        * history/CachedFrame.cpp:
4053        * html/HTMLAnchorElement.cpp:
4054        * html/HTMLInputElement.cpp:
4055        * html/HTMLPlugInElement.cpp:
4056        * html/HTMLSelectElement.cpp:
4057        * html/HTMLTextAreaElement.cpp:
4058        * html/HTMLTextFormControlElement.cpp:
4059        * html/TextFieldInputType.cpp:
4060        * html/shadow/ClearButtonElement.cpp:
4061        * html/shadow/MediaControlElements.cpp:
4062        * html/shadow/SliderThumbElement.cpp:
4063        * inspector/InspectorPageAgent.h:
4064        * loader/FrameLoader.cpp:
4065        * page/DOMWindow.cpp:
4066        * page/Frame.cpp:
4067        * page/Frame.h:
4068        * page/FrameView.cpp:
4069        * page/FrameView.h:
4070        * page/Page.cpp:
4071        * page/TouchAdjustment.cpp:
4072        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
4073        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
4074        * platform/gtk/PasteboardGtk.cpp:
4075        * platform/qt/ClipboardQt.cpp:
4076        * rendering/HitTestResult.cpp:
4077        * rendering/RenderBlock.cpp:
4078        * rendering/RenderEmbeddedObject.cpp:
4079        * rendering/RenderLayer.cpp:
4080        * rendering/RenderNamedFlowThread.cpp:
4081        * rendering/RenderObject.cpp:
4082        * rendering/RenderSnapshottedPlugIn.cpp:
4083        * svg/graphics/SVGImage.cpp:
4084        * testing/Internals.cpp:
4085
40862013-04-16  Jessie Berlin  <jberlin@apple.com>
4087
4088        Speculative Windows build fix.
4089
4090        * platform/win/ContextMenuWin.cpp:
4091
40922013-04-16  Eric Carlson  <eric.carlson@apple.com>
4093
4094        [Mac] in-band cues sometimes displayed late
4095        https://bugs.webkit.org/show_bug.cgi?id=114629
4096
4097        Reviewed by Jer Noble.
4098
4099        No new tests, this deals with a platform-specific issue that is extremely timing dependent.
4100
4101        * html/track/InbandTextTrack.cpp:
4102        (WebCore::TextTrackCueMap::add): New, two way cue data <-> cue map.
4103        (WebCore::TextTrackCueMap::find): 
4104        (WebCore::TextTrackCueMap::remove):
4105        (WebCore::InbandTextTrack::updateCueFromCueData): New, update an existing cue. Set cue end time
4106            to video duration if it is unknown.
4107        (WebCore::InbandTextTrack::addGenericCue): Look for existing cues without considering duration
4108            so we can match incomplete cues.
4109        (WebCore::InbandTextTrack::updateGenericCue): New, update an existing cue. This allows us to 
4110            add in-band cues as soon as we get them from the media engine and update them as more
4111            information becomes available.
4112        (WebCore::InbandTextTrack::removeGenericCue): New, remove an existing cue. This is necessary
4113            because we never want to keep an incomplete cue when a seek happens.
4114        (WebCore::InbandTextTrack::removeCue): New, base class override so we can keep the two way
4115            map up to date.
4116        * html/track/InbandTextTrack.h:
4117
4118        * html/track/TextTrack.cpp:
4119        (WebCore::TextTrack::addCue): TextTrack::removeCue takes a RefPtr.
4120        (WebCore::TextTrack::removeCue): Take a RefPtr.
4121        (WebCore::TextTrack::hasCue): Allow caller to request match without considering end time.
4122        * html/track/TextTrack.h:
4123
4124        * html/track/TextTrackCue.cpp:
4125        (WebCore::TextTrackCue::TextTrackCue): Initialize m_processingCueChanges.
4126        (WebCore::TextTrackCue::willChange): Renamed from cueWillChange. Use m_processingCueChanges
4127            to avoid thrashing the track when many cue properties will change.
4128        (WebCore::TextTrackCue::didChange): Renamed from cueDidChange. Use m_processingCueChanges
4129            to avoid thrashing the track when many cue properties will change.
4130        (WebCore::TextTrackCue::setId): cueWillChange -> willChange. cueDidChange -> didChange. 
4131        (WebCore::TextTrackCue::setStartTime): Ditto.
4132        (WebCore::TextTrackCue::setEndTime): Ditto.
4133        (WebCore::TextTrackCue::setPauseOnExit): Ditto.
4134        (WebCore::TextTrackCue::setVertical): Ditto.
4135        (WebCore::TextTrackCue::setSnapToLines): Ditto.
4136        (WebCore::TextTrackCue::setLine): Ditto.
4137        (WebCore::TextTrackCue::setPosition): Ditto.
4138        (WebCore::TextTrackCue::setSize): Ditto.
4139        (WebCore::TextTrackCue::setAlign): Ditto.
4140        (WebCore::TextTrackCue::setText): Ditto.
4141        (WebCore::TextTrackCue::setRegionId): Ditto.
4142        (WebCore::TextTrackCue::isEqual): Renamed from operator==, take match rules param.
4143        * html/track/TextTrackCue.h:
4144
4145        * html/track/TextTrackCueGeneric.cpp:
4146        (WebCore::TextTrackCueGeneric::isEqual): Renamed from operator==, take match rules param.
4147        * html/track/TextTrackCueGeneric.h:
4148
4149        * platform/graphics/InbandTextTrackPrivateClient.h: Make GenericCueData refcounted.
4150        (WebCore::GenericCueData::create): New.
4151        (WebCore::GenericCueData::status): Ditto.
4152        (WebCore::GenericCueData::setStatus): Ditto.
4153        (WebCore::GenericCueData::GenericCueData):
4154
4155        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
4156        (WebCore::InbandTextTrackPrivateAVF::processCue): Add cues as soon as we get them from the media
4157            engine, update duration once we know it.
4158        (WebCore::InbandTextTrackPrivateAVF::resetCueValues): Tell the client to remove all incomplete
4159            cues we have delivered.
4160        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
4161
4162        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
4163        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Do not flush cues when seek completes,
4164            we did that when the seek started and cues can be delivered before we get the the 
4165            seek completed  notification.
4166
41672013-04-16  James Craig  <james@cookiecrook.com>
4168
4169        dfn element should be exposed as AXGroup:AXDefinition
4170        https://bugs.webkit.org/show_bug.cgi?id=108980
4171
4172        Reviewed by Chris Fleizach.
4173
4174        dfn element now exposed as AXGroup:AXDefinition. Updated existing tests.
4175
4176        * accessibility/AccessibilityRenderObject.cpp:
4177        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
4178        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
4179
41802013-04-16  Anders Carlsson  <andersca@apple.com>
4181
4182        Begin chipping away at ScriptState
4183        https://bugs.webkit.org/show_bug.cgi?id=114695
4184
4185        Reviewed by Geoffrey Garen.
4186
4187        Remove ScriptStateProtectedPtr as well as evalEnabled and setEvalEnabled.
4188
4189        * bindings/js/ScriptState.cpp:
4190        * bindings/js/ScriptState.h:
4191        * inspector/InjectedScriptBase.cpp:
4192        (WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):
4193        * inspector/ScriptArguments.cpp:
4194        (WebCore::ScriptArguments::ScriptArguments):
4195        (WebCore::ScriptArguments::globalState):
4196        * inspector/ScriptArguments.h:
4197
41982013-04-15  Anders Carlsson  <andersca@apple.com>
4199
4200        Remove unneeded headers from ScriptExecutionContext.h
4201        https://bugs.webkit.org/show_bug.cgi?id=114631
4202
4203        Reviewed by Alexey Proskuryakov.
4204
4205        This shaves another minute off WebCore build time on my MacBook Pro.
4206
4207        * dom/ScriptExecutionContext.cpp:
4208        * dom/ScriptExecutionContext.h:
4209        * fileapi/Blob.cpp:
4210        * rendering/RenderBlock.cpp:
4211        * rendering/RenderBox.cpp:
4212        * rendering/RenderFlowThread.cpp:
4213        * rendering/RenderFrameSet.cpp:
4214        * rendering/RenderIFrame.cpp:
4215        * rendering/RenderImage.cpp:
4216        * rendering/RenderListBox.cpp:
4217        * rendering/RenderListItem.cpp:
4218        * rendering/RenderListMarker.cpp:
4219        * rendering/RenderMedia.cpp:
4220        * rendering/RenderObject.cpp:
4221        * rendering/RenderRegion.cpp:
4222        * rendering/RenderReplaced.cpp:
4223        * rendering/RenderReplica.cpp:
4224        * rendering/RenderRubyRun.cpp:
4225        * rendering/RenderScrollbarPart.cpp:
4226        * rendering/RenderSlider.cpp:
4227        * rendering/RenderTable.cpp:
4228        * rendering/RenderTableCell.cpp:
4229        * rendering/RenderTableRow.cpp:
4230        * rendering/RenderTableSection.cpp:
4231        * rendering/RenderTextControlSingleLine.cpp:
4232        * rendering/RenderTextTrackCue.cpp:
4233        * rendering/RenderVideo.cpp:
4234        * rendering/RenderView.cpp:
4235        * rendering/RenderWidget.cpp:
4236        * rendering/svg/RenderSVGContainer.cpp:
4237        * rendering/svg/RenderSVGForeignObject.cpp:
4238        * rendering/svg/RenderSVGGradientStop.cpp:
4239        * rendering/svg/RenderSVGHiddenContainer.cpp:
4240        * rendering/svg/RenderSVGImage.cpp:
4241        * rendering/svg/RenderSVGResourceContainer.cpp:
4242        * rendering/svg/RenderSVGResourceMarker.cpp:
4243        * rendering/svg/RenderSVGRoot.cpp:
4244        * rendering/svg/RenderSVGShape.cpp:
4245        * rendering/svg/RenderSVGText.cpp:
4246
42472013-04-16  Maciej Stachowiak  <mjs@apple.com>
4248
4249        Remove even yet still more traces of v8
4250        https://bugs.webkit.org/show_bug.cgi?id=114693
4251
4252        Reviewed by Anders Carlsson.
4253
4254        No behavior change.
4255
4256        * bindings/generic/ActiveDOMCallback.h:
4257        (WebCore::ActiveDOMCallback::isScriptControllerTerminating): Remove a V8-specific
4258        method and the comment referencing it.
4259        * bindings/generic/ActiveDOMCallback.cpp:
4260        (WebCore::ActiveDOMCallback::isScriptControllerTerminating): ditto
4261        * fileapi/File.cpp:
4262        (WebCore::File::File): Remove a comment referencing v8
4263        * inspector/InjectedScriptExterns.js: ditto
4264
42652013-04-16  Alexey Proskuryakov  <ap@apple.com>
4266
4267        Remove unused AlternativeTextClient::dismissDictationAlternativeUI
4268        https://bugs.webkit.org/show_bug.cgi?id=114598
4269
4270        Reviewed by Ryosuke Niwa.
4271
4272        Removing dead code.
4273
4274        * WebCore.exp.in:
4275        * editing/mac/AlternativeTextUIController.h: Made dismissAlternatives() private.
4276        * page/AlternativeTextClient.h:
4277
42782013-04-16  Robert Hogan  <robert@webkit.org>
4279
4280        Float at exact multiple of line-height affects too many lines
4281        https://bugs.webkit.org/show_bug.cgi?id=112744
4282
4283        Reviewed by David Hyatt.
4284
4285        Tests: fast/block/float/float-with-fractional-height-vertical-lr.html
4286               fast/block/float/float-with-fractional-height.html
4287
4288        When adding floats to the interval tree used for testing floats' overlap with lineboxes
4289        truncate the dimensions of the float rather than rounding them. This matches the
4290        treatment of linebox dimensions so ensures the test for overlap is comparing like
4291        with like.
4292
4293        * rendering/RenderBlock.cpp:
4294        (WebCore::::collectIfNeeded):
4295        (WebCore::RenderBlock::FloatingObjects::intervalForFloatingObject):
4296        (WebCore::::string):
4297
42982013-04-16  Chris Fleizach  <cfleizach@apple.com>
4299
4300        AX: aria-valuetext is not exposed on OS X.
4301        https://bugs.webkit.org/show_bug.cgi?id=114628
4302
4303        Reviewed by Tim Horton.
4304
4305        aria-valuetext is only being exposed on ARIA controls. That's because there were
4306        checks in place so that ONLY ARIA defined controls would return anything related to valuetext.
4307        We should allow this to work on native controls as well.
4308
4309        Test: platform/mac/accessibility/aria-valuetext-on-native-slider.html
4310
4311        * accessibility/AccessibilityNodeObject.cpp:
4312        (WebCore::AccessibilityNodeObject::valueDescription):
4313        (WebCore):
4314        (WebCore::AccessibilityNodeObject::valueForRange):
4315        (WebCore::AccessibilityNodeObject::maxValueForRange):
4316        (WebCore::AccessibilityNodeObject::minValueForRange):
4317        * accessibility/AccessibilityNodeObject.h:
4318        (AccessibilityNodeObject):
4319        * accessibility/AccessibilityObject.cpp:
4320        (WebCore::AccessibilityObject::isRangeControl):
4321             Rename isARIAControl to isRangeControl and make it apply to all elements.
4322        * accessibility/AccessibilityObject.h:
4323
43242013-04-15  Jon Lee  <jonlee@apple.com>
4325
4326        RenderView should bail out of paintBoxDecorations() when painting with a different renderer
4327        https://bugs.webkit.org/show_bug.cgi?id=114665
4328        <rdar://problem/13434884>
4329
4330        Reviewed by Simon Fraser.
4331
4332        * rendering/RenderView.cpp:
4333        (WebCore::RenderView::paintBoxDecorations): Add a check to see if we should paint within the renderer.
4334        This check exists in all other implementations of paintBoxDecorations(), and correctly avoids painting the
4335        decorations if the root provided is not the RenderView.
4336
43372013-04-16  Max Vujovic  <mvujovic@adobe.com>
4338
4339        [CSS Shaders] Remove the cache of validated programs
4340        https://bugs.webkit.org/show_bug.cgi?id=112844
4341
4342        Reviewed by Dean Jackson.
4343
4344        Since we're caching CustomFilterProgram(s) now, we don't need another cache for
4345        CustomFilterValidatedProgram(s). With this patch, CustomFilterProgram stores a reference
4346        to a lazily created CustomFilterValidatedProgram, and CustomFilterGlobalContext no longer
4347        has a validated program cache.
4348
4349        Also, this patch removes the CustomFilterValidatedProgram's stored reference to
4350        CustomFilterGlobalContext. The removal of the validated program cache would cause
4351        this reference to become weak. Validated programs only needed to keep the global context
4352        reference in order to create a CustomFilterCompiledProgram. In this patch, we create
4353        CustomFilterCompiledProgram(s) in FECustomFilter instead of in CustomFilterValidatedProgram,
4354        so validated programs don't need to store the global context reference anymore.
4355
4356        No new tests. Just Refactoring.
4357
4358        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
4359        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
4360        * platform/graphics/filters/CustomFilterGlobalContext.cpp:
4361        (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
4362        * platform/graphics/filters/CustomFilterGlobalContext.h:
4363        (CustomFilterGlobalContext):
4364        * platform/graphics/filters/CustomFilterProgram.cpp:
4365        (WebCore::CustomFilterProgram::validatedProgram):
4366        (WebCore::CustomFilterProgram::setValidatedProgram):
4367        * platform/graphics/filters/CustomFilterProgram.h:
4368        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4369        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
4370        (WebCore::CustomFilterValidatedProgram::compiledProgram):
4371        (WebCore::CustomFilterValidatedProgram::setCompiledProgram):
4372        (WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
4373        * platform/graphics/filters/CustomFilterValidatedProgram.h:
4374        (CustomFilterValidatedProgram):
4375        * platform/graphics/filters/FECustomFilter.cpp:
4376        (WebCore::FECustomFilter::prepareForDrawing):
4377        * rendering/FilterEffectRenderer.cpp:
4378        * rendering/RenderLayer.cpp:
4379        (WebCore::RenderLayer::computeFilterOperations):
4380
43812013-04-16  Anthony Scian  <ascian@blackberry.com>
4382
4383        [BlackBerry] LayerTexture: check if the graphics context is NULL
4384        https://bugs.webkit.org/show_bug.cgi?id=114674
4385
4386        Reviewed by Rob Buis.
4387
4388        Internal PR: 256522
4389
4390        * platform/graphics/blackberry/LayerTexture.cpp:
4391        (WebCore::LayerTexture::setContentsToColor):
4392
43932013-04-13  Andreas Kling  <akling@apple.com>
4394
4395        REGRESSION(r148128): window.resizeTo doesn't work from Safari address bar.
4396        <rdar://problem/13635894>
4397        <http://webkit.org/b/114561>
4398
4399        Reviewed by Sam Weinig.
4400
4401        Suppressing window geometry changes while any user gesture is active was a bit too restrictive,
4402        and broke legitimate use-cases. Narrow it down to checking EventHandler::mousePressed().
4403
4404        No test yet, adding one is tracked by <http://webkit.org/b/114561>.
4405
4406        * page/DOMWindow.cpp:
4407        (WebCore::DOMWindow::allowedToChangeWindowGeometry):
4408
4409            Added to share code between all DOMWindow functions that alter window geometry.
4410
4411        (WebCore::DOMWindow::moveBy):
4412        (WebCore::DOMWindow::moveTo):
4413        (WebCore::DOMWindow::resizeBy):
4414        (WebCore::DOMWindow::resizeTo):
4415
44162013-04-16  Manuel Rego Casasnovas  <rego@igalia.com>
4417
4418        [GTK][EFL] Remove deprecated libsoup API usage
4419        https://bugs.webkit.org/show_bug.cgi?id=104894
4420
4421        Reviewed by Philippe Normand.
4422
4423        Based on a patch by Claudio Saavedra <csaavedra@igalia.com>.
4424        Remove LIBSOUP_USE_UNSTABLE_REQUEST_API and only include
4425        libsoup/soup.h.
4426
4427        * platform/network/ResourceHandleInternal.h:
4428        * platform/network/soup/GOwnPtrSoup.cpp:
4429        * platform/network/soup/ProxyResolverSoup.h:
4430        * platform/network/soup/ResourceErrorSoup.cpp:
4431        * platform/network/soup/ResourceHandleSoup.cpp:
4432        (WebCore::ensureSessionIsInitialized): No need to add the requester
4433        feature.
4434        (WebCore::createSoupRequestAndMessageForHandle): SoupSession has a
4435        requester API, use it.
4436
44372013-04-15  Maciej Stachowiak  <mjs@apple.com>
4438
4439        Remove more traces of the now-obsolete support for V8
4440        https://bugs.webkit.org/show_bug.cgi?id=114657
4441
4442        Reviewed by Ryosuke Niwa.
4443
4444        In addition to passing existing tests, I verified that the ElementFactory
4445        and ElementWrapperFactory files were all textually identical before and after.
4446
4447        * dom/CustomEvent.cpp:
4448        (WebCore): Remove Use(V8) bock.
4449        * dom/CustomEvent.h:
4450        (CustomEvent): ditto
4451        * dom/MessageEvent.cpp:
4452        (WebCore::MessageEvent::MessageEvent): ditto
4453        (WebCore::MessageEvent::initMessageEvent): ditto
4454        * dom/Node.h:
4455        (Node): ditto
4456        * dom/make_event_factory.pl:
4457        (generateImplementation): Remove V8 support.
4458        * dom/make_names.pl: Remove gobs of V8 support and simplify.
4459        (printJSElementIncludes): 
4460        (printConditionalElementIncludes):
4461        (printFactoryCppFile):
4462        (printWrapperFunctions):
4463        (printWrapperFactoryCppFile):
4464        (printWrapperFactoryHeaderFile):
4465        * inspector/InjectedScriptCanvasModuleSource.js: Remove V8 stack
4466        trace code.
4467        * platform/qt/PlatformSupport.h: Remove a macro only used for V8 
4468        bindings.
4469        * svg/SVGZoomAndPan.h:
4470        (SVGZoomAndPan): Remove mention of V8 from comment.
4471
44722013-04-15  Ryosuke Niwa  <rniwa@webkit.org>
4473
4474        Potential use after free in ApplyStyleCommand::splitAncestorsWithUnicodeBidi
4475        https://bugs.webkit.org/show_bug.cgi?id=114664
4476
4477        Reviewed by Oliver Hunt.
4478
4479        Use RefPtr as needed.
4480
4481        No new tests since this bug was discovered by code inspection.
4482
4483        * editing/ApplyStyleCommand.cpp:
4484        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
4485
44862013-04-15  Timothy Hatcher  <timothy@apple.com>
4487
4488        Web Inspector: Make var and function declarations work again in the Console.
4489
4490        https://webkit.org/b/114534
4491        rdar://problem/13614477
4492
4493        Reviewed by Oliver Hunt.
4494
4495        * inspector/InjectedScriptSource.js:
4496        (InjectedScript.prototype._evaluateOn): Use 'with' when not evaluating
4497        on a call frame.
4498
44992013-04-15  Seokju Kwon  <seokju.kwon@gmail.com>
4500
4501        Web Inspector: Add missing Localized strings
4502        https://bugs.webkit.org/show_bug.cgi?id=114656
4503
4504        Reviewed by Timothy Hatcher.
4505
4506        No tests because no behavior change is expected.
4507
4508        * English.lproj/localizedStrings.js:
4509
45102013-04-15  Dean Jackson  <dino@apple.com>
4511
4512        Rename restartedPlugin to isRestartedPlugin. This was
4513        review feedback from r148038 that I thought I fixed
4514        everywhere but failed.
4515        https://bugs.webkit.org/show_bug.cgi?id=114233
4516
4517        * html/HTMLPlugInElement.h:
4518        (WebCore::HTMLPlugInElement::isRestartedPlugin): Prefix with "is".
4519        * html/HTMLPlugInImageElement.cpp:
4520        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
4521        (WebCore::HTMLPlugInImageElement::setDisplayState):
4522        (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired):
4523        * html/HTMLPlugInImageElement.h:
4524        * rendering/RenderEmbeddedObject.cpp:
4525        (WebCore::RenderEmbeddedObject::paintContents):
4526        * rendering/RenderLayerBacking.cpp:
4527        (WebCore::isRestartedPlugin):
4528
45292013-04-15  Maciej Stachowiak  <mjs@apple.com>
4530
4531        Remove V8 attribtues from IDLAttributes.txt
4532        https://bugs.webkit.org/show_bug.cgi?id=114651
4533
4534        Reviewed by Sam Weinig.
4535
4536        No tests because no behavior change is expected.
4537
4538        * bindings/scripts/IDLAttributes.txt: Remove V8 attribtues.
4539        * html/track/TextTrackList.idl: Remove a stray V8-specific attribute
4540        (so I guess this change is not useless)
4541
45422013-04-15  James Craig  <james@cookiecrook.com>
4543
4544        WebKit should not expose AXSubrole:AXDescriptionList on Mountain Lion as it causes a regression in VoiceOver behavior
4545        https://bugs.webkit.org/show_bug.cgi?id=113975
4546
4547        Reviewed by Chris Fleizach.
4548
4549        Serve NSAccessibilityDescriptionListSubrole or NSAccessibilityDefinitionListSubrole
4550        depending on platform. Updated existing test coverage.
4551
4552        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
4553        (-[WebAccessibilityObjectWrapper subrole]):
4554
45552013-04-15  Dean Jackson  <dino@apple.com>
4556
4557        Plugins that resize might need to be snapshotted.
4558        https://bugs.webkit.org/show_bug.cgi?id=102157
4559        <rdar://problem/12696259>
4560
4561        Reviewed by Tim Horton.
4562
4563        A plugin could avoid snapshotting if it started very
4564        small (below the threshold where we autostart), and then
4565        resized to be large (above the threshold). Detect this
4566        case and tell the plugin to snapshot.
4567
4568        There unfortunately is a bit of state to track when doing
4569        this. We have to start the snapshotting in a post-layout
4570        task, so we carry a flag to say we're checking size but
4571        not wanting the plugin to update (which would restart it).
4572        We also might be a plugin that would have already restarted
4573        due to a similar plugin being clicked or detected as dominant.
4574        So this patch introduces a member variable that tracks what
4575        decision has been made on snapshotting.
4576
4577        I also added some more logging to be more clear about what is
4578        happening to plugins going through the snapshot process, and
4579        changed the order of the tests in the algorithm so that domain
4580        detection comes before examining the size.
4581
4582        * html/HTMLPlugInImageElement.cpp:
4583        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialise
4584            the two new member variables.
4585        (WebCore::HTMLPlugInImageElement::setDisplayState): Mark a restarted
4586            plugin as NeverSnapshot. This means that if it later resizes above the
4587            threshold, it won't trigger the snapshot detection.
4588        (WebCore::HTMLPlugInImageElement::checkSnapshotStatus): Renamed from
4589            updateSnapshotInfo. This now updates the snapshot, but also runs
4590            the check for size changes.
4591        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin): Gather all plugins
4592            that look like a restarting plugin, not just those snapshotted. That
4593            way they can all be marked as NeverSnapshot.
4594        (WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): Bless every
4595            plugin that looks similar, whether or not it is snapshotted.
4596        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): More logging.
4597        (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Ditto.
4598        (WebCore::HTMLPlugInImageElement::checkSizeChangeForSnapshotting): New
4599            method. If the plugin was below the threshold and is now above it,
4600            begin the snapshotting process.
4601        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Plugins
4602            that were marked as NeverSnapshot should start immediately. Move the origin
4603            test earlier in the method. If a plugin avoided snapshotting due to size,
4604            remember the size.
4605        (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Mark the
4606            plugin as NeverSnapshot.
4607
4608        * html/HTMLPlugInImageElement.h:
4609        (HTMLPlugInImageElement): Four new member variables:
4610            - the decision we made regarding snapshotting (or not), uses the SnapshotDecision enum
4611            - the size when it avoided snapshotting
4612            - a flag to indicate the post layout update was triggered due to
4613              a size change
4614        (WebCore::HTMLPlugInImageElement::needsCheckForSizeChange): New method.
4615        (WebCore::HTMLPlugInImageElement::setNeedsCheckForSizeChange): New method.
4616        (WebCore::HTMLPlugInImageElement::snapshotDecision): Return the decision
4617            regarding snapshotting or not snapshotting.
4618
4619        * page/FrameView.cpp:
4620        (WebCore::FrameView::addWidgetToUpdate): Guard updating the widget. We don't
4621            want to do it when we're checking for a size change in the plugin.
4622        (WebCore::FrameView::updateWidget): Call new name.
4623
4624        * plugins/PluginViewBase.h:
4625        (WebCore::PluginViewBase::beginSnapshottingRunningPlugin): Empty virtual
4626            method to snapshot a running plugin.
4627
4628        * rendering/RenderEmbeddedObject.cpp:
4629        (WebCore::RenderEmbeddedObject::layout): If the plugin has increased in
4630            size add it to the post layout list so that it will be checked.
4631
46322013-04-15  Chris Fleizach  <cfleizach@apple.com>
4633
4634        activating a focused link to an in-page fragment ID should transfer focus to the target of the link when possible
4635        https://bugs.webkit.org/show_bug.cgi?id=17450
4636
4637        Reviewed by Maciej Stachowiak.
4638
4639        When a fragment is scrolled to due to an activation event or on load, focus should attempt to 
4640        move to the fragment if possible.
4641
4642        Test: fast/dom/fragment-activation-focuses-target.html
4643
4644        * page/FrameView.cpp:
4645        (WebCore::FrameView::scrollToAnchor):
4646
46472013-04-12  Maciej Stachowiak  <mjs@apple.com>
4648
4649        Remove V8-specific extended attributes from IDL files
4650        https://bugs.webkit.org/show_bug.cgi?id=114523
4651
4652        Reviewed by Geoffrey Garen.
4653
4654        No tests because no behavior change is expected.
4655
4656        * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
4657        * Modules/encryptedmedia/MediaKeyNeededEvent.idl:
4658        * Modules/encryptedmedia/MediaKeySession.idl:
4659        * Modules/encryptedmedia/MediaKeys.idl:
4660        * Modules/filesystem/HTMLInputElementFileSystem.idl:
4661        * Modules/indexeddb/IDBAny.idl:
4662        * Modules/mediasource/MediaSource.idl:
4663        * Modules/mediasource/SourceBuffer.idl:
4664        * Modules/mediasource/SourceBufferList.idl:
4665        * Modules/mediastream/MediaStream.idl:
4666        * Modules/webaudio/AudioDestinationNode.idl:
4667        * html/track/TextTrackCue.idl:
4668        * html/track/TextTrackCueList.idl:
4669        * html/track/TextTrackList.idl:
4670        * html/track/TextTrackRegion.idl:
4671        * html/track/TextTrackRegionList.idl:
4672        * html/track/TrackEvent.idl:
4673        * storage/Storage.idl:
4674        * svg/SVGDocument.idl:
4675        * svg/SVGElement.idl:
4676        * workers/WorkerContext.idl:
4677        * xml/XMLHttpRequest.idl:
4678        * xml/XPathNSResolver.idl:
4679
46802013-04-15  Anders Carlsson  <andersca@apple.com>
4681
4682        ScriptWrappable subclasses shouldn't have to include WeakInlines.h
4683        https://bugs.webkit.org/show_bug.cgi?id=114641
4684
4685        Reviewed by Alexey Proskuryakov.
4686
4687        Remove ScriptWrappableInlines.h includes, they're not needed anymore.
4688
4689        * css/WebKitCSSMatrix.cpp:
4690        * dom/ClientRect.cpp:
4691        * dom/ClientRectList.cpp:
4692        * dom/Clipboard.cpp:
4693        * dom/DOMStringMap.cpp:
4694        * dom/Event.cpp:
4695        * dom/MutationRecord.cpp:
4696        * fileapi/FileList.cpp:
4697        * page/BarInfo.cpp:
4698        * plugins/DOMMimeTypeArray.cpp:
4699        * plugins/DOMPlugin.cpp:
4700        * plugins/DOMPluginArray.cpp:
4701        * storage/Storage.cpp:
4702
47032013-04-15  Igor Oliveira  <igor.o@sisa.samsung.com>
4704
4705        Call directly RenderBlock::deleteLineBoxTree
4706        https://bugs.webkit.org/show_bug.cgi?id=102761
4707
4708        Reviewed by Darin Adler.
4709
4710        Instead of implementing RenderLineBoxList::deleteLineBoxTree logic inside 
4711        RenderBlock::determineStartPosition, we can reuse the code. The commentaries added
4712        in the changeset #86628 are not valid anymore, nextRootBox is casting m_nextLineBox 
4713        and nextLineBox is returning m_nextLineBox.
4714
4715        * rendering/RenderBlockLineLayout.cpp:
4716        (WebCore::RenderBlock::determineStartPosition):
4717
47182013-04-15  Anders Carlsson  <andersca@apple.com>
4719
4720        Remove files related to quota and proximity events from the Xcode project
4721        https://bugs.webkit.org/show_bug.cgi?id=114635
4722
4723        Reviewed by Benjamin Poulain.
4724
4725        * WebCore.xcodeproj/project.pbxproj:
4726        * history/PageCache.cpp:
4727        * page/DOMWindow.cpp:
4728
47292013-04-15  Patrick Gansterer  <paroga@webkit.org>
4730
4731        [CMake] Add WTF_USE_*_UNICODE variables
4732        https://bugs.webkit.org/show_bug.cgi?id=114556
4733
4734        Reviewed by Brent Fulgham.
4735
4736        WTF_USE_ICU_UNICODE and WTF_USE_WCHAR_UNICODE are used to
4737        reduce duplication in the platform specific CMake files.
4738
4739        * CMakeLists.txt:
4740        * PlatformBlackBerry.cmake:
4741        * PlatformEfl.cmake:
4742        * PlatformWinCE.cmake:
4743
47442013-04-15  Eric Carlson  <eric.carlson@apple.com>
4745
4746        HTMLMediaElement::removeTextTrack should clear track client
4747        https://bugs.webkit.org/show_bug.cgi?id=114630
4748
4749        Reviewed by Jer Noble.
4750
4751        No new tests, this is clean-up that prevents a potential crash.
4752
4753        * html/HTMLMediaElement.cpp:
4754        (WebCore::HTMLMediaElement::removeTextTrack): Clear the track client.
4755
47562013-04-15  Robert Hogan  <robert@webkit.org>
4757
4758        An inline element with an absolutely positioned child does not correctly calculate/render padding and margin
4759        https://bugs.webkit.org/show_bug.cgi?id=47554
4760
4761        Reviewed by David Hyatt.
4762
4763        When looking for padding/margin to add from the start of a child's parent skip past any leading positioned siblings as 
4764        we don't add the padding/margin of the common parent when skipping past them in |skipLeadingWhitespace|. We
4765        don't need to worry about the case of trailing positioned objects as we will account for their parent's
4766        border/margin/padding when we encounter them in |nextSegmentBreak|.
4767
4768        Test: fast/inline/padding-before-leading-positioned-element-contributes-width.html
4769
4770        * rendering/RenderBlockLineLayout.cpp:
4771        (WebCore::previousInFlowSibling):
4772        (WebCore):
4773        (WebCore::inlineLogicalWidth):
4774
47752013-04-15  peavo@outlook.com  <peavo@outlook.com>
4776
4777        [WinCairo] Compile fix.
4778        https://bugs.webkit.org/show_bug.cgi?id=114623
4779
4780        Reviewed by Brent Fulgham.
4781
4782        * platform/network/curl/CookieJarCurl.cpp: Added required header files.
4783
47842013-04-15  Rob Buis  <rbuis@rim.com>
4785
4786        Fix some compiler warnings (miscellaneous)
4787        https://bugs.webkit.org/show_bug.cgi?id=80790
4788
4789        Reviewed by Darin Adler.
4790
4791        It does not seem needed to initialize jpeg_create_compress struct to zero,
4792        all that is needed is set the err field. See for instance SkImageDecoder_libjpeg.cpp.
4793
4794        * platform/image-encoders/JPEGImageEncoder.cpp:
4795        (WebCore::compressRGBABigEndianToJPEG):
4796
47972013-04-15  Patrick Gansterer  <paroga@webkit.org>
4798
4799        [GTK] Remove platform specific implementation of KURL::fileSystemPath()
4800        https://bugs.webkit.org/show_bug.cgi?id=114133
4801
4802        Reviewed by Martin Robinson.
4803
4804        r147883 added a generic implementation of this function,
4805        which can be used by all ports to share the code.
4806
4807        * GNUmakefile.list.am:
4808        * platform/KURL.cpp:
4809        (WebCore):
4810        * platform/gtk/KURLGtk.cpp: Removed.
4811
48122013-04-15  Csaba Osztrogonác  <ossy@webkit.org>
4813
4814        Debug buildfix after r148433.
4815        https://bugs.webkit.org/show_bug.cgi?id=108295
4816
4817        Reviewed by Allan Sandfeld Jensen.
4818
4819        * platform/graphics/texmap/TextureMapperLayer.h:
4820        (WebCore::TextureMapperLayer::children): Added.
4821
48222013-04-15  Noam Rosenthal  <noam@webkit.org>
4823
4824        Coordinated Graphics: Remove GraphicsLayerTextureMapper dependency from CoordinatedGraphicsScene.
4825        https://bugs.webkit.org/show_bug.cgi?id=108295
4826
4827        Since all the changes to the TextureMapperLayer tree now come in a single IPC message via
4828        CoordinatedGraphicsState, we don't need the additional buffering done in GraphicsLayerTextureMapper.
4829
4830        This reduces unnecessary function calls, and also streamlines GraphicsLayerTextureMapper to be used
4831        only in WebKit1 (without CoordinatedGraphics).
4832
4833        Reviewed by Allan Sandfeld Jensen.
4834
4835        No new tests, refactor only.
4836
4837        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
4838        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
4839        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
4840        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
4841        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
4842        (WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
4843        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
4844        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
4845        (WebCore):
4846        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
4847        (GraphicsLayerTextureMapper):
4848            Removed references to m_hasOwnBackingStore, which was done to separate the CoordinatedGraphics
4849            path from the WK1 path.
4850
4851        * platform/graphics/texmap/TextureMapperLayer.h:
4852        (WebCore::TextureMapperLayer::drawsContent):
4853        (WebCore::TextureMapperLayer::contentsAreVisible):
4854        (WebCore::TextureMapperLayer::size):
4855        (WebCore::TextureMapperLayer::opacity):
4856        (WebCore::TextureMapperLayer::transform):
4857        (WebCore::TextureMapperLayer::isShowingRepaintCounter):
4858        (WebCore::TextureMapperLayer::fixedToViewport):
4859        (TextureMapperLayer):
4860            Added a few public functions needed by CoordinatedGraphicsScene.
4861
4862        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
4863        (WebCore::layerShouldHaveBackingStore):
4864        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
4865        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
4866        (WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
4867        (WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
4868        (WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
4869        (WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
4870        (WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
4871        (WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
4872        (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
4873        (WebCore::CoordinatedGraphicsScene::setLayerState):
4874        (WebCore::CoordinatedGraphicsScene::getLayerByIDIfExists):
4875        (WebCore::CoordinatedGraphicsScene::createLayer):
4876        (WebCore::CoordinatedGraphicsScene::deleteLayer):
4877        (WebCore::CoordinatedGraphicsScene::setRootLayerID):
4878        (WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
4879        (WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
4880        (WebCore::CoordinatedGraphicsScene::removeBackingStoreIfNeeded):
4881        (WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
4882        (WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
4883        (WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
4884        (WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
4885        (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
4886        (WebCore::CoordinatedGraphicsScene::commitSceneState):
4887        (WebCore::CoordinatedGraphicsScene::ensureRootLayer):
4888        (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
4889        (WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
4890        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
4891        (CoordinatedGraphicsScene):
4892        (WebCore::CoordinatedGraphicsScene::layerByID):
4893        (WebCore::CoordinatedGraphicsScene::rootLayer):
4894            Use TextureMapperLayer instead of GraphicsLayer and GraphicsLayerTextureMapper.
4895
48962013-04-15  Antti Koivisto  <antti@apple.com>
4897
4898        Dynamically triggered subframe loads are causing tile churn
4899        https://bugs.webkit.org/show_bug.cgi?id=114440
4900        
4901        Reviewed by Andreas Kling.
4902        
4903        In some cases we switch in and out of minimal tiles multiple times during page loading. This
4904        creates tile churn where we create speculative tiles and then throw them out. This can be
4905        caused by various reasons including dynamically created subframes.
4906
4907        * page/FrameView.cpp:
4908        (WebCore::FrameView::setIsVisuallyNonEmpty):
4909        
4910            Stay in minimal tiles modes until there is some visual contents. This avoids switching out from minimal
4911            tiles while awaiting response for the initial requests.
4912
4913        * page/FrameView.h:
4914        * rendering/RenderLayerBacking.cpp:
4915        (WebCore::RenderLayerBacking::RenderLayerBacking):
4916        (WebCore::computeTileCoverage):
4917        * rendering/RenderLayerBacking.h:
4918        (WebCore::RenderLayerBacking::didSwitchToFullTileCoverageDuringLoading):
4919        (WebCore::RenderLayerBacking::setDidSwitchToFullTileCoverageDuringLoading):
4920        
4921            Only switch into minimal coverage mode once per page load.
4922
4923        (RenderLayerBacking):
4924
49252013-04-15  Rune Lillesveen  <rune@opera.com>
4926
4927        color-index media feature not supported
4928        https://bugs.webkit.org/show_bug.cgi?id=114468
4929
4930        Reviewed by Kenneth Rohde Christiansen.
4931
4932        Support the color-index media feature. Currently assumes that no WebKit
4933        browser will have an output device that uses a color lookup table.
4934
4935        Tests: fast/media/mq-color-index-01.html
4936               fast/media/mq-color-index-02.html
4937
4938        * css/MediaFeatureNames.h:
4939        (MediaFeatureNames):
4940        * css/MediaQueryEvaluator.cpp:
4941        (WebCore::color_indexMediaFeatureEval):
4942        (WebCore):
4943        (WebCore::min_color_indexMediaFeatureEval):
4944        (WebCore::max_color_indexMediaFeatureEval):
4945        * css/MediaQueryExp.cpp:
4946        (WebCore::featureWithPositiveInteger):
4947        (WebCore::featureWithoutValue):
4948
49492013-04-15  Balazs Kelemen  <kbalazs@webkit.org>
4950
4951        [CoordGfx] Background color should not be part of GraphicsLayerState
4952        https://bugs.webkit.org/show_bug.cgi?id=113785
4953
4954        Page background is independent from layer state, send it to the UI
4955        as soon as possible.
4956
4957        Should not cause observable change in behavior so no new tests.
4958
4959        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
4960        (WebCore::CoordinatedGraphicsScene::commitSceneState):
4961        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
4962
49632013-04-15  Carlos Garcia Campos  <cgarcia@igalia.com>
4964
4965        [BlackBerry] Filesystem callback notifyCreateSnapshotFileAndReadMetadata can be called on the wring thread
4966        https://bugs.webkit.org/show_bug.cgi?id=114610
4967
4968        Reviewed by Xan Lopez.
4969
4970        Override notifyCreateSnapshotFileAndReadMetadata to make sure the
4971        callback is called on the right thread.
4972
4973        Fixes a crash in several fast/filesystem test in debug builds.
4974
4975        * platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.cpp:
4976        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadata):
4977        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadataOnWorkerThread):
4978        * platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.h:
4979
49802013-04-15  Arvid Nilsson  <anilsson@rim.com>
4981
4982        [BlackBerry][CSS Filters] Non-image content disappears when filter applied
4983        https://bugs.webkit.org/show_bug.cgi?id=114498
4984
4985        Reviewed by Carlos Garcia Campos.
4986
4987        Applying a filter to a div with simple text content caused the div to
4988        disappear.
4989
4990        In https://bugs.webkit.org/show_bug.cgi?id=114276, we added some GL
4991        state save/restore code for vertex attributes to make sure the state
4992        changes done by BlackBerry::Platform::Graphics don't interfere with
4993        GL code executing in WebKit. However, saving and restoring vertex
4994        attribute state won't do much good if those attributes were never
4995        enabled to begin with. Fixed by enabling vertex attributes
4996        appropriately when setting them, so that state can be saved and
4997        restored.
4998
4999        All the CSS Filters layout tests apply the filters to simple rectangles
5000        or images, there's nothing sufficiently complex that we manage to
5001        trigger this GL state conflict in the BlackBerry port. This suggests
5002        adding a new platform-specific layout test would be appropriate, but
5003        since we don't use pixel tests yet, such a test would not help detect
5004        regressions. Ultimately we decided against adding a layout test for
5005        this bug at this time.
5006
5007        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
5008        (WebCore::LayerFilterRenderer::applyActions):
5009
50102013-04-14  Jaehun Lim  <ljaehun.lim@samsung.com>
5011
5012        [css3-text] Parsing -webkit-hanging value for text-indent from css3-text
5013        https://bugs.webkit.org/show_bug.cgi?id=113680
5014
5015        Reviewed by Andreas Kling.
5016
5017        This patch is the parsing part to support hanging value for text-indent.
5018        "hanging" means "Inverts which lines are affected."
5019        It's prefixed and guarded by CSS3_TEXT flag.
5020
5021        No new tests, this patch updates existing tests.
5022
5023        * css/CSSComputedStyleDeclaration.cpp:
5024        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
5025        * css/CSSParser.cpp:
5026        (WebCore::CSSParser::parseTextIndent): Parsed "-webkit-hanging" with "-webkit-each-line".
5027        * css/CSSValueKeywords.in: Added "-webkit-hanging" keyword.
5028        * css/DeprecatedStyleBuilder.cpp:
5029        (WebCore::ApplyPropertyTextIndent::applyInheritValue):
5030        (WebCore::ApplyPropertyTextIndent::applyInitialValue):
5031        (WebCore::ApplyPropertyTextIndent::applyValue):
5032        * rendering/style/RenderStyle.h:
5033        * rendering/style/RenderStyleConstants.h: Added enum TextIndentType.
5034        * rendering/style/StyleRareInheritedData.cpp:
5035        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
5036        (WebCore::StyleRareInheritedData::operator==):
5037        * rendering/style/StyleRareInheritedData.h: Added m_textIndentType.
5038        (StyleRareInheritedData):
5039            Added the usual getter / setter / initial methods for m_textIndentType.
5040
50412013-04-14  Sam Weinig  <sam@webkit.org>
5042
5043        Move Mac specific snapshotting code into its own file
5044        https://bugs.webkit.org/show_bug.cgi?id=114597
5045
5046        Reviewed by Andreas Kling.
5047
5048        * WebCore.exp.in:
5049        * WebCore.xcodeproj/project.pbxproj:
5050        * bindings/objc/DOM.mm:
5051        (-[DOMRange renderedImageForcingBlackText:]):
5052        * page/Frame.h:
5053        * page/mac/FrameMac.mm:
5054        (WebCore::Frame::nodeImage):
5055        (WebCore::Frame::dragImageForSelection):
5056        * page/mac/FrameSnapshottingMac.h: Added.
5057        * page/mac/FrameSnapshottingMac.mm: Added.
5058        (WebCore::imageFromRect):
5059        (WebCore::selectionImage):
5060        (WebCore::rangeImage):
5061        (WebCore::snapshotDragImage):
5062        * platform/mac/ClipboardMac.mm:
5063        (WebCore::ClipboardMac::dragNSImage):
5064        Move the four Mac specific snapshotting functions in Frame.h into FrameSnapshottingMac.h/mm and turn
5065        them into free standing functions.
5066
50672013-04-14  Andreas Kling  <akling@apple.com>
5068
5069        Hawtfix Mac build.
5070
5071        * WebCore.exp.in:
5072
50732013-04-14  Andreas Kling  <akling@apple.com>
5074
5075        Only MutableStylePropertySets should be able to have CSSOM wrappers.
5076        <http://webkit.org/b/114595>
5077
5078        Reviewed by Antti Koivisto.
5079
5080        Tighten typing so that only MutableStylePropertySets can have CSSOM wrappers associated.
5081        This allows us to get rid of the out-of-line base class destructor.
5082
5083        * WebCore.exp.in:
5084        * css/StylePropertySet.cpp:
5085        (WebCore::MutableStylePropertySet::~MutableStylePropertySet):
5086        (WebCore::MutableStylePropertySet::cssStyleDeclaration):
5087        (WebCore::MutableStylePropertySet::ensureInlineCSSStyleDeclaration):
5088        * css/StylePropertySet.h:
5089        (StylePropertySet):
5090        (MutableStylePropertySet):
5091        * dom/StyledElement.cpp:
5092        (WebCore::StyledElement::inlineStyleCSSOMWrapper):
5093
50942013-04-14  Andreas Kling  <akling@apple.com>
5095
5096        Remove unused function declaration StylePropertySet::setNeedsStyleRecalc().
5097
5098        Rubber-stamped by Antti Koivisto.
5099
5100        * css/StylePropertySet.h:
5101        (StylePropertySet):
5102
51032013-04-14  Andreas Kling  <akling@apple.com>
5104
5105        Move StylePropertySet internal storage access helpers to subclass.
5106        <http://webkit.org/b/114592>
5107
5108        Reviewed by Antti Koivisto.
5109
5110        Removed mutablePropertyVector() since most call sites are inside MutableStylePropertySet
5111        and can access m_propertyVector directly. The few ones that aren't can just cast.
5112
5113        For ImmutableStylePropertySet, moved value/metadata array accessors to the subclass
5114        and remove "immutable" from their names.
5115
5116        * css/StylePropertySet.cpp:
5117        (WebCore::StylePropertySet::immutableCopyIfNeeded):
5118        (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
5119        (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
5120        (WebCore::MutableStylePropertySet::MutableStylePropertySet):
5121        (WebCore::MutableStylePropertySet::removeProperty):
5122        (WebCore::MutableStylePropertySet::removePrefixedOrUnprefixedProperty):
5123        (WebCore::MutableStylePropertySet::setProperty):
5124        (WebCore::MutableStylePropertySet::appendPrefixingVariantProperty):
5125        (WebCore::MutableStylePropertySet::parseDeclaration):
5126        (WebCore::MutableStylePropertySet::addParsedProperties):
5127        (WebCore::MutableStylePropertySet::clear):
5128        (WebCore::MutableStylePropertySet::removePropertiesInSet):
5129        (WebCore::MutableStylePropertySet::findCSSPropertyWithID):
5130        (WebCore::MutableStylePropertySet::removeEquivalentProperties):
5131        (WebCore::StylePropertySet::reportMemoryUsage):
5132        * css/StylePropertySet.h:
5133        (PropertyReference):
5134        (StylePropertySet):
5135        (ImmutableStylePropertySet):
5136        (WebCore::ImmutableStylePropertySet::valueArray):
5137        (WebCore::ImmutableStylePropertySet::metadataArray):
5138        (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
5139        (WebCore::StylePropertySet::PropertyReference::propertyValue):
5140        (WebCore::StylePropertySet::propertyCount):
5141
51422013-04-14  Andreas Kling  <akling@apple.com>
5143
5144        Specialize propertyCount() in StylePropertySet subclasses.
5145        <http://webkit.org/b/114590>
5146
5147        Reviewed by Antti Koivisto.
5148
5149        Avoid branching on m_isMutable in code that already knows which type of set it is.
5150
5151        * css/StylePropertySet.h:
5152        (WebCore::ImmutableStylePropertySet::propertyCount):
5153        (ImmutableStylePropertySet):
5154        (WebCore::MutableStylePropertySet::propertyCount):
5155        (MutableStylePropertySet):
5156
51572013-04-14  Andreas Kling  <akling@apple.com>
5158
5159        Move property setting/removing functions to MutableStylePropertySet.
5160        <http://webkit.org/b/114589>
5161
5162        Reviewed by Antti Koivisto.
5163
5164        Move all functions for setting/removing properties from StylePropertySet to MutableStylePropertySet.
5165        Had to change SVGElement::animatedSMILStyleProperties() & friends to hand out MutableStylePropertySet*
5166        which was always the internal type anyway.
5167
5168        * css/StylePropertySet.cpp:
5169        (WebCore::MutableStylePropertySet::removeShorthandProperty):
5170        (WebCore::MutableStylePropertySet::removeProperty):
5171        (WebCore::MutableStylePropertySet::removePrefixedOrUnprefixedProperty):
5172        (WebCore::MutableStylePropertySet::setProperty):
5173        (WebCore::MutableStylePropertySet::appendPrefixingVariantProperty):
5174        (WebCore::MutableStylePropertySet::setPrefixingVariantProperty):
5175        (WebCore::MutableStylePropertySet::mergeAndOverrideOnConflict):
5176        (WebCore::MutableStylePropertySet::removeBlockProperties):
5177        (WebCore::MutableStylePropertySet::removePropertiesInSet):
5178        (WebCore::MutableStylePropertySet::findCSSPropertyWithID):
5179        (WebCore::MutableStylePropertySet::removeEquivalentProperties):
5180        * css/StylePropertySet.h:
5181        (StylePropertySet):
5182        (MutableStylePropertySet):
5183        * editing/ApplyStyleCommand.cpp:
5184        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
5185        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
5186        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
5187        * editing/EditingStyle.cpp:
5188        (WebCore::EditingStyle::triStateOfStyle):
5189        (WebCore::removePropertiesInStyle):
5190        (WebCore::reconcileTextDecorationProperties):
5191        * svg/SVGAnimateElement.cpp:
5192        (WebCore::applyCSSPropertyToTarget):
5193        * svg/SVGElement.cpp:
5194        (WebCore::SVGElement::animatedSMILStyleProperties):
5195        (WebCore::SVGElement::ensureAnimatedSMILStyleProperties):
5196        * svg/SVGElement.h:
5197        (SVGElement):
5198        * svg/SVGElementRareData.h:
5199        (WebCore::SVGElementRareData::animatedSMILStyleProperties):
5200        (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
5201        (SVGElementRareData):
5202
52032013-04-14  Andreas Kling  <akling@apple.com>
5204
5205        EditingStyle should have a MutableStylePropertySet internally.
5206        <http://webkit.org/b/114588>
5207
5208        Reviewed by Anders Carlsson.
5209
5210        Switch EditingStyle::m_mutableStyle to a RefPtr<MutableStylePropertySet>.
5211
5212        * css/StylePropertySet.cpp:
5213        (WebCore::StylePropertySet::copyBlockProperties):
5214        * css/StylePropertySet.h:
5215        (StylePropertySet):
5216        * editing/EditingStyle.cpp:
5217        (WebCore::EditingStyle::setStyle):
5218        (WebCore::EditingStyle::mergeStyleFromRules):
5219        (WebCore::StyleChange::StyleChange):
5220        (WebCore::setTextDecorationProperty):
5221        (WebCore::StyleChange::extractTextStyles):
5222        (WebCore::diffTextDecorations):
5223        (WebCore::getPropertiesNotIn):
5224        * editing/EditingStyle.h:
5225        (WebCore::EditingStyle::style):
5226        (EditingStyle):
5227        (StyleChange):
5228
52292013-04-14  Andreas Kling  <akling@apple.com>
5230
5231        Move addParsedProperty/addParsedProperties to MutableStylePropertySet.
5232        <http://webkit.org/b/114587>
5233
5234        Reviewed by Antti Koivisto.
5235
5236        All CSSParser methods that mutate an existing StylePropertySet now take a MutableStylePropertySet*
5237        instead of a StylePropertySet*.
5238
5239        * css/CSSParser.cpp:
5240        (WebCore::parseColorValue):
5241        (WebCore::parseSimpleLengthValue):
5242        (WebCore::parseKeywordValue):
5243        (WebCore::parseTranslateTransformValue):
5244        (WebCore::CSSParser::parseValue):
5245        (WebCore::CSSParser::parseDeclaration):
5246        * css/CSSParser.h:
5247        (CSSParser):
5248        * css/StylePropertySet.cpp:
5249        (WebCore::StylePropertySet::setProperty):
5250        (WebCore::MutableStylePropertySet::addParsedProperties):
5251        (WebCore::MutableStylePropertySet::addParsedProperty):
5252        * css/StylePropertySet.h:
5253        (StylePropertySet):
5254        (MutableStylePropertySet):
5255        * css/ViewportStyleResolver.h:
5256        (ViewportStyleResolver):
5257
52582013-04-14  Andreas Kling  <akling@apple.com>
5259
5260        CSSParser should return ImmutableStylePropertySets.
5261        <http://webkit.org/b/114585>
5262
5263        Reviewed by Anders Carlsson.
5264
5265        The StylePropertySets created by CSSParser were already immutable.
5266        Let this be reflected in the pointer types returned.
5267
5268        * css/CSSParser.cpp:
5269        (WebCore::CSSParser::parseInlineStyleDeclaration):
5270        (WebCore::CSSParser::parseDeclaration):
5271        (WebCore::CSSParser::createStylePropertySet):
5272        * css/CSSParser.h:
5273        (CSSParser):
5274
52752013-04-14  Andreas Kling  <akling@apple.com>
5276
5277        Move StylePropertySet::createImmutable() to ImmutableStylePropertySet.
5278        <http://webkit.org/b/114584>
5279
5280        Reviewed by Anders Carlsson.
5281
5282        StylePropertySet::createImmutable() -> ImmutableStylePropertySet::create()
5283        Also, immutableCopyIfNeeded() now returns a PassRefPtr<ImmutableStylePropertySet>.
5284
5285        * css/CSSParser.cpp:
5286        (WebCore::CSSParser::createStylePropertySet):
5287        * css/StylePropertySet.cpp:
5288        (WebCore::ImmutableStylePropertySet::create):
5289        (WebCore::StylePropertySet::immutableCopyIfNeeded):
5290        * css/StylePropertySet.h:
5291        (StylePropertySet):
5292        (ImmutableStylePropertySet):
5293
52942013-04-14  Andreas Kling  <akling@apple.com>
5295
5296        Move parseDeclaration() and clear() to MutableStylePropertySet.
5297        <http://webkit.org/b/114583>
5298
5299        Reviewed by Anders Carlsson.
5300
5301        ...and remove ASSERT(isMutable()) from the function bodies.
5302
5303        * svg/SVGFontFaceElement.cpp:
5304        (WebCore::SVGFontFaceElement::removedFrom):
5305
5306            Use clear() directly instead of taking an empty string through the CSS parser.
5307
5308        * css/StylePropertySet.cpp:
5309        (WebCore::MutableStylePropertySet::parseDeclaration):
5310        (WebCore::MutableStylePropertySet::clear):
5311        * css/StylePropertySet.h:
5312        (StylePropertySet):
5313        (MutableStylePropertySet):
5314        * dom/StyledElement.cpp:
5315        (WebCore::StyledElement::setInlineStyleFromString):
5316
53172013-04-14  Andreas Kling  <akling@apple.com>
5318
5319        Move CSSOM classes to using MutableStylePropertySet over StylePropertySet.
5320        <http://webkit.org/b/114581>
5321
5322        Reviewed by Anders Carlsson.
5323
5324        Moved ensureCSSStyleDeclaration() and ensureInlineCSSStyleDeclaration() from StylePropertySet
5325        to MutableStylePropertySet.
5326
5327        StyleRule & co now return a MutableStylePropertySet* from mutableProperties() to aid with...
5328
5329        CSSStyleDeclaration now only deals with MutableStylePropertySets. This was already the case
5330        in practice, we just didn't have any compile-time foot-shooting protection.
5331        In other words, if there's a CSSOM wrapper for a given StylePropertySet, it's guaranteed to
5332        be mutable, and the pointer types now reflect this.
5333
5334        * WebCore.exp.in:
5335        * css/PropertySetCSSStyleDeclaration.cpp:
5336        (WebCore::StyleRuleCSSStyleDeclaration::StyleRuleCSSStyleDeclaration):
5337        (WebCore::StyleRuleCSSStyleDeclaration::reattach):
5338        * css/PropertySetCSSStyleDeclaration.h:
5339        (WebCore::PropertySetCSSStyleDeclaration::PropertySetCSSStyleDeclaration):
5340        (PropertySetCSSStyleDeclaration):
5341        (WebCore::StyleRuleCSSStyleDeclaration::create):
5342        (StyleRuleCSSStyleDeclaration):
5343        (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
5344        * css/StylePropertySet.cpp:
5345        (WebCore::MutableStylePropertySet::ensureCSSStyleDeclaration):
5346        (WebCore::MutableStylePropertySet::ensureInlineCSSStyleDeclaration):
5347        * css/StylePropertySet.h:
5348        (StylePropertySet):
5349        (MutableStylePropertySet):
5350        * css/StyleRule.cpp:
5351        (WebCore::StyleRule::mutableProperties):
5352        (WebCore::StyleRulePage::mutableProperties):
5353        (WebCore::StyleRuleFontFace::mutableProperties):
5354        (WebCore::StyleRuleViewport::mutableProperties):
5355        (WebCore::StyleRuleFilter::mutableProperties):
5356        * css/StyleRule.h:
5357        (StyleRule):
5358        (StyleRuleFontFace):
5359        (StyleRulePage):
5360        (StyleRuleViewport):
5361        (StyleRuleFilter):
5362        * css/WebKitCSSKeyframeRule.cpp:
5363        (WebCore::StyleKeyframe::mutableProperties):
5364        * css/WebKitCSSKeyframeRule.h:
5365        (StyleKeyframe):
5366        * dom/Attr.cpp:
5367        (WebCore::Attr::style):
5368        * dom/Attr.h:
5369        (Attr):
5370        * editing/EditingStyle.cpp:
5371        (WebCore::EditingStyle::removeStyleAddedByNode):
5372        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
5373        (WebCore::EditingStyle::triStateOfStyle):
5374        (WebCore::styleFromMatchedRulesForElement):
5375        (WebCore::EditingStyle::removeStyleFromRulesAndContext):
5376        * editing/FrameSelection.cpp:
5377        (WebCore::FrameSelection::copyTypingStyle):
5378        * editing/FrameSelection.h:
5379        * inspector/InspectorCSSAgent.cpp:
5380        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
5381
53822013-04-14  Andreas Kling  <akling@apple.com>
5383
5384        Move create() methods from StylePropertySet to MutableStylePropertySet.
5385        <http://webkit.org/b/114574>
5386
5387        Reviewed by Antti Koivisto.
5388
5389        Move the two create() methods that create MutableStylePropertySets from StylePropertySet
5390        to MutableStylePropertySet, and make them actually return MutableStylePropertySets.
5391        Switch to using {Pass,}RefPtr<MutableStylePropertySet> where appropriate to keep things building.
5392
5393        * css/CSSComputedStyleDeclaration.cpp:
5394        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
5395        * css/CSSParser.cpp:
5396        (WebCore::CSSParser::parseFontFaceValue):
5397        * css/DOMWindowCSS.cpp:
5398        (WebCore::DOMWindowCSS::supports):
5399        * css/ElementRuleCollector.cpp:
5400        (WebCore::leftToRightDeclaration):
5401        (WebCore::rightToLeftDeclaration):
5402        * css/FontLoader.cpp:
5403        (WebCore::FontLoader::resolveFontStyle):
5404        * css/StylePropertySet.cpp:
5405        (WebCore::StylePropertySet::copyPropertiesInSet):
5406        (WebCore::MutableStylePropertySet::create):
5407        * css/StylePropertySet.h:
5408        (StylePropertySet):
5409        (MutableStylePropertySet):
5410        * css/StyleResolver.cpp:
5411        (WebCore::StyleResolver::resolveVariables):
5412        * css/WebKitCSSMatrix.cpp:
5413        (WebCore::WebKitCSSMatrix::setMatrixValue):
5414        * dom/Attr.cpp:
5415        (WebCore::Attr::style):
5416        * dom/Document.cpp:
5417        (WebCore::Document::createCSSStyleDeclaration):
5418        * dom/StyledElement.cpp:
5419        (WebCore::StyledElement::ensureMutableInlineStyle):
5420        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
5421        * editing/ApplyStyleCommand.cpp:
5422        (WebCore::copyStyleOrCreateEmpty):
5423        * editing/EditingStyle.cpp:
5424        (WebCore::editingStyleFromComputedStyle):
5425        (WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
5426        (WebCore::EditingStyle::setProperty):
5427        (WebCore::EditingStyle::extractAndRemoveTextDirection):
5428        (WebCore::styleFromMatchedRulesForElement):
5429        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
5430        (WebCore::EditingStyle::forceInline):
5431        * editing/Editor.cpp:
5432        (WebCore::Editor::setBaseWritingDirection):
5433        * editing/EditorCommand.cpp:
5434        (WebCore::executeApplyStyle):
5435        (WebCore::executeToggleStyleInList):
5436        (WebCore::executeApplyParagraphStyle):
5437        (WebCore::executeMakeTextWritingDirectionLeftToRight):
5438        (WebCore::executeMakeTextWritingDirectionNatural):
5439        (WebCore::executeMakeTextWritingDirectionRightToLeft):
5440        * html/HTMLTableElement.cpp:
5441        (WebCore::leakBorderStyle):
5442        (WebCore::HTMLTableElement::createSharedCellStyle):
5443        (WebCore::leakGroupBorderStyle):
5444        * html/canvas/CanvasRenderingContext2D.cpp:
5445        (WebCore::CanvasRenderingContext2D::setFont):
5446        * inspector/InspectorStyleSheet.cpp:
5447        (WebCore::InspectorStyle::setPropertyText):
5448        (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
5449        * page/DragController.cpp:
5450        (WebCore::DragController::concludeEditDrag):
5451        * svg/SVGElementRareData.h:
5452        (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
5453        * svg/SVGFontFaceElement.cpp:
5454        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
5455        * svg/SVGStyledElement.cpp:
5456        (WebCore::SVGStyledElement::getPresentationAttribute):
5457
54582013-04-13  Sam Weinig  <sam@webkit.org>
5459
5460        Fix three crashes seen on the bots after "Make Frame's ScriptController an OwnPtr and remove the #include"
5461
5462        * xml/XMLHttpRequest.cpp:
5463        (WebCore::XMLHttpRequest::open):
5464        Check that the frame is not null (as it can be in cases like http/tests/xmlhttprequest/detaching-frame-2.html).
5465        We used to be getting lucky, in that shouldBypassMainWorldContentSecurityPolicy(), the function that is ultimately
5466        called, only operates on global state. Now that we need to actually dereference the Frame to get the ScriptController,
5467        we see this crash.
5468
54692013-04-13  Sukolsak Sakshuwong  <sukolsak@gmail.com>
5470
5471        Selection direction is not preserved when applying styles
5472        https://bugs.webkit.org/show_bug.cgi?id=110979
5473
5474        Reviewed by Ryosuke Niwa.
5475
5476        The patch is based on the one submitted by Shezan Baig.
5477
5478        If the starting selection was directional and its base was not first,
5479        switch newStart and newEnd when setting the ending direction. Otherwise,
5480        leave the order unchanged.
5481
5482        Test: editing/style/preserve-selection-direction.html
5483
5484        * editing/ApplyStyleCommand.cpp:
5485        (WebCore::ApplyStyleCommand::updateStartEnd):
5486
54872013-04-13  Alexey Proskuryakov  <ap@apple.com>
5488
5489        Added svn:ignore for inspector/CodeGeneratorInspectorStrings.pyc
5490
5491        * inspector: Added property svn:ignore.
5492
54932013-04-13  Sam Weinig  <sam@webkit.org>
5494
5495        Make Frame's ScriptController an OwnPtr and remove the #include
5496        https://bugs.webkit.org/show_bug.cgi?id=114105
5497
5498        Reviewed by Dean Jackson.
5499
5500        * Modules/websockets/WebSocket.cpp:
5501        * bindings/generic/BindingSecurity.cpp:
5502        * bindings/js/JSEventListener.cpp:
5503        * bindings/js/JSLazyEventListener.cpp:
5504        * bindings/js/PageScriptDebugServer.cpp:
5505        * bindings/js/ScriptEventListener.cpp:
5506        * bindings/js/ScriptState.cpp:
5507        * bindings/objc/DOM.mm:
5508        * bindings/objc/DOMAbstractView.mm:
5509        * bindings/objc/DOMInternal.mm:
5510        * dom/DocumentStyleSheetCollection.cpp:
5511        * dom/EventTarget.cpp:
5512        * dom/ScriptElement.cpp:
5513        * history/CachedFrame.cpp:
5514        * html/HTMLCanvasElement.cpp:
5515        * html/HTMLDocument.cpp:
5516        * html/HTMLElement.cpp:
5517        * html/HTMLFormElement.cpp:
5518        * html/HTMLPlugInElement.cpp:
5519        * html/HTMLPlugInImageElement.cpp:
5520        * html/parser/HTMLParserOptions.cpp:
5521        * inspector/InspectorAgent.cpp:
5522        * inspector/InspectorController.cpp:
5523        * inspector/InspectorFrontendClientLocal.cpp:
5524        * inspector/InspectorFrontendHost.cpp:
5525        * inspector/InspectorInstrumentation.cpp:
5526        * inspector/InspectorOverlay.cpp:
5527        * inspector/InspectorPageAgent.cpp:
5528        * inspector/PageRuntimeAgent.cpp:
5529        * loader/DocumentWriter.cpp:
5530        * loader/NavigationScheduler.cpp:
5531        * loader/SubframeLoader.cpp:
5532        * loader/cache/CachedResourceLoader.cpp:
5533        * page/DOMWindow.cpp:
5534        * page/EventSource.cpp:
5535        * page/Frame.cpp:
5536        * page/Frame.h:
5537        * page/Navigator.cpp:
5538        * page/Page.cpp:
5539        * page/PageGroup.cpp:
5540        * xml/XMLHttpRequest.cpp:
5541        * xml/XMLTreeViewer.cpp:
5542
55432013-04-13  Anders Carlsson  <andersca@apple.com>
5544
5545        Add form delegate method that's invoked right before sending a submit event to a form element
5546        https://bugs.webkit.org/show_bug.cgi?id=114575
5547
5548        Reviewed by Dan Bernstein.
5549
5550        * WebCore.exp.in:
5551        Export a symbol.
5552
5553        * WebCore.xcodeproj/project.pbxproj:
5554        Make DOMHTMLFormElementInternal.h a private header.
5555
55562013-03-13  Robert Hogan  <robert@webkit.org>
5557
5558        Whitespace between nowrap elements ignored after collapsed trailing space in a text run
5559        https://bugs.webkit.org/show_bug.cgi?id=17705
5560
5561        Reviewed by Ryosuke Niwa.
5562
5563        Bug 93448 and r138654 fixed the treatment of line-breaks between nowrap elements. This augments
5564        that fix by recognizing that we have a potential break not only in situations where the next character is a 
5565        space and the current character is not, but also where the next character is a space and the current character 
5566        *is* a space *and* we are ignoring spaces. This is so because any spaces we have ignored up to this point 
5567        after the actual word end will get collapsed away even if we don't end up taking the line break. 
5568
5569        In a nutshell, if we allow whitespace collapsing 'word  ' and 'word' are equivalent when before a whitespace
5570        character, so treat the first as well as the second as a potential linebreak.
5571
5572        Test: fast/text/whitespace/inline-whitespace-wrapping-5.html
5573
5574        * rendering/RenderBlockLineLayout.cpp:
5575        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
5576
55772013-04-13  Andreas Kling  <akling@apple.com>
5578
5579        Rename/tweak some StylePropertySet/CSSStyleDeclaration copying functions.
5580        <http://webkit.org/b/114569>
5581
5582        Reviewed by Anders Carlsson.
5583
5584        - StylePropertySet::copy() -> mutableCopy()
5585
5586            This function now returns a MutableStylePropertySet, and this is also reflected in the name.
5587
5588        - CSSStyleDeclaration::copy() -> copyProperties()
5589
5590            Renamed to reflect that it's the properties being copied, not the CSSStyleDeclaration.
5591            They also now return MutableStylePropertySets.
5592
5593        - StylePropertySet::copyPropertiesInSet()
5594        - CSSStyleDeclaration::copyPropertiesInSet()
5595
5596            These functions now return MutableStylePropertySets.
5597
5598        * css/CSSComputedStyleDeclaration.cpp:
5599        (WebCore::CSSComputedStyleDeclaration::copyProperties):
5600        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
5601        * css/CSSComputedStyleDeclaration.h:
5602        (CSSComputedStyleDeclaration):
5603        * css/CSSStyleDeclaration.h:
5604        (CSSStyleDeclaration):
5605        * css/PropertySetCSSStyleDeclaration.cpp:
5606        (WebCore::PropertySetCSSStyleDeclaration::copyProperties):
5607        * css/PropertySetCSSStyleDeclaration.h:
5608        * css/StylePropertySet.cpp:
5609        (WebCore::StylePropertySet::mutableCopy):
5610        (WebCore::StylePropertySet::copyPropertiesInSet):
5611        * css/StylePropertySet.h:
5612        (StylePropertySet):
5613        * css/StyleRule.cpp:
5614        (WebCore::StyleRule::StyleRule):
5615        (WebCore::StyleRule::mutableProperties):
5616        (WebCore::StyleRulePage::StyleRulePage):
5617        (WebCore::StyleRulePage::mutableProperties):
5618        (WebCore::StyleRuleFontFace::StyleRuleFontFace):
5619        (WebCore::StyleRuleFontFace::mutableProperties):
5620        (WebCore::StyleRuleViewport::StyleRuleViewport):
5621        (WebCore::StyleRuleViewport::mutableProperties):
5622        (WebCore::StyleRuleFilter::StyleRuleFilter):
5623        (WebCore::StyleRuleFilter::mutableProperties):
5624        * css/ViewportStyleResolver.cpp:
5625        (WebCore::ViewportStyleResolver::addViewportRule):
5626        * css/WebKitCSSKeyframeRule.cpp:
5627        (WebCore::StyleKeyframe::mutableProperties):
5628        * dom/Element.cpp:
5629        (WebCore::UniqueElementData::UniqueElementData):
5630        * dom/StyledElement.cpp:
5631        (WebCore::StyledElement::ensureMutableInlineStyle):
5632        * editing/ApplyStyleCommand.cpp:
5633        (WebCore::copyStyleOrCreateEmpty):
5634        * editing/EditingStyle.cpp:
5635        (WebCore::copyEditingProperties):
5636        (WebCore::editingStyleFromComputedStyle):
5637        (WebCore::EditingStyle::EditingStyle):
5638        (WebCore::EditingStyle::init):
5639        (WebCore::EditingStyle::copy):
5640        (WebCore::EditingStyle::mergeStyle):
5641        (WebCore::getPropertiesNotIn):
5642        * editing/FrameSelection.cpp:
5643        (WebCore::FrameSelection::copyTypingStyle):
5644
56452013-04-13  Dirk Schulze  <krit@webkit.org>
5646
5647        Rename StyleBuilder to DeprecatedStyleBuilder
5648        https://bugs.webkit.org/show_bug.cgi?id=114532
5649
5650        Reviewed by Benjamin Poulain.
5651
5652        The StyleBuilder code is hard to read and maintain. People should
5653        not add new properties to this class. To make this clear, this
5654        patch renames the class to DeprecatedStyleBuilder.
5655
5656        Pure refactoring, no change in functionality.
5657
5658        * CMakeLists.txt:
5659        * GNUmakefile.list.am:
5660        * Target.pri:
5661        * WebCore.vcproj/WebCore.vcproj:
5662        * WebCore.vcxproj/WebCore.vcxproj.filters:
5663        * WebCore.xcodeproj/project.pbxproj:
5664        * css/CSSAllInOne.cpp:
5665        * css/DeprecatedStyleBuilder.cpp: Renamed from Source/WebCore/css/StyleBuilder.cpp.
5666        * css/DeprecatedStyleBuilder.h: Renamed from Source/WebCore/css/StyleBuilder.h.
5667        * css/StyleResolver.cpp:
5668        (WebCore::StyleResolver::StyleResolver):
5669        (WebCore::StyleResolver::applyProperty):
5670        (WebCore::StyleResolver::reportMemoryUsage):
5671        * css/StyleResolver.h:
5672        (StyleResolver):
5673        * rendering/style/RenderStyle.h:
5674
56752013-04-13  Andreas Kling  <akling@apple.com>
5676
5677        Remove unused method CSSStyleDeclaration::makeMutable().
5678        <http://webkit.org/b/114567>
5679
5680        Reviewed by Anders Carlsson.
5681
5682        * css/CSSComputedStyleDeclaration.cpp:
5683        * css/CSSComputedStyleDeclaration.h:
5684        (CSSComputedStyleDeclaration):
5685        * css/CSSStyleDeclaration.h:
5686        (CSSStyleDeclaration):
5687        * css/PropertySetCSSStyleDeclaration.cpp:
5688        * css/PropertySetCSSStyleDeclaration.h:
5689
56902013-04-13  Antoine Quint  <graouts@apple.com>
5691
5692        Width of last of consecutive tabs may be incorrect with "white-space: pre-wrap"
5693        https://bugs.webkit.org/show_bug.cgi?id=114562
5694
5695        Reviewed by Dan Bernstein.
5696
5697        When we measure the last word of a RenderText, make sure we use the correct x
5698        position taking into account the current accumulated word measurements up to
5699        this character. This is of particular importance in the case of tabs where the
5700        measured width would differ based on the x position.
5701
5702        Test: fast/text/tab-last-word-in-renderer-pre-wrap.html
5703
5704        * rendering/RenderBlockLineLayout.cpp:
5705        (WebCore::setLogicalWidthForTextRun):
5706
57072013-04-13  Mark Salisbury  <mark.salisbury@hp.com>
5708
5709        [Windows, WinCairo] ImageBufferCairo.cpp fails to compile after 148247, 148264.
5710        https://bugs.webkit.org/show_bug.cgi?id=114540
5711        
5712        Reviewed by Brent Fulgham.
5713
5714        * platform/graphics/cairo/ImageBufferCairo.cpp:
5715
57162013-04-13  Zan Dobersek  <zdobersek@igalia.com>
5717
5718        Unreviewed GTK build fix after r148305.
5719
5720        * GNUmakefile.list.am: Adding the TrackListBase build targets to the build.
5721
57222013-04-09  Roger Fong  <roger_fong@apple.com>
5723
5724        Update AVFoundationCF code following http://trac.webkit.org/changeset/148291.
5725        https://bugs.webkit.org/show_bug.cgi?id=114548.
5726
5727        Reviewed by Eric Carlson.
5728
5729        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
5730        (WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
5731        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMinTimeSeekable):
5732        (WebCore):
5733        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMaxTimeSeekable):
5734        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
5735        (MediaPlayerPrivateAVFoundationCF):
5736
57372013-04-12  Simon Fraser  <simon.fraser@apple.com>
5738
5739        Demystify some code in RenderLayer::updateScrollableAreaSet()
5740        https://bugs.webkit.org/show_bug.cgi?id=114543
5741
5742        Reviewed by Tim Horton.
5743
5744        Clean up some code that called functions with important side effects
5745        inside a ternary operator, and clean up the #ifdefs.
5746
5747        * rendering/RenderLayer.cpp:
5748        (WebCore::RenderLayer::updateScrollableAreaSet):
5749
57502013-04-12  Alexey Proskuryakov  <ap@apple.com>
5751
5752        <rdar://problem/13277362> REGRESSION (r141981): Crash when closing a Google Docs document
5753        https://bugs.webkit.org/show_bug.cgi?id=114541
5754
5755        Reviewed by Brady Eidson.
5756
5757        Test: http/tests/ssl/ping-with-unsafe-redirect.html
5758
5759        * loader/FrameNetworkingContext.h:
5760        (WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect):
5761        Added a null check. All NetworkingContext functions except for this one had it already.
5762
57632013-04-12  Ryosuke Niwa  <rniwa@webkit.org>
5764
5765        [Mac] REGRESSION: Auto substitution strips new lines
5766        https://bugs.webkit.org/show_bug.cgi?id=114537
5767
5768        Reviewed by Enrica Casucci.
5769
5770        The bug was caused by SpellingCorrectionCommand's use of InsertTextCommand. This command can't insert
5771        new lines and there's even an assertion for it. Use TypingCommand::insertText instead.
5772
5773        Since TypingCommand::insertText calls appliedEditing on its own, we need to avoid calling that again in
5774        CompositeEditCommand::apply after SpellingCorrectionCommand::doApply. Replaced the check in apply to use
5775        callsAppliedEditingInDoApply instead of isTypingCommand, and added callsAppliedEditingInDoApply to both
5776        TypingCommand and SpellingCorrectionCommand to return true (it returns false by default).
5777
5778        Test: platform/mac/editing/spelling/autocorrection-with-multi-line-text.html
5779
5780        * editing/CompositeEditCommand.cpp:
5781        (WebCore::CompositeEditCommand::apply): Use TypingCommand::insertText instead of InsertTextCommand
5782        (WebCore::CompositeEditCommand::callsAppliedEditingInDoApply): Added. Returns false.
5783        * editing/CompositeEditCommand.h:
5784        (CompositeEditCommand):
5785        * editing/SpellingCorrectionCommand.cpp:
5786        (WebCore::SpellingCorrectionCommand::doApply):
5787        (WebCore::SpellingCorrectionCommand::callsAppliedEditingInDoApply): Added. Returns true.
5788        * editing/SpellingCorrectionCommand.h:
5789        (SpellingCorrectionCommand):
5790        * editing/TypingCommand.cpp:
5791        (WebCore::TypingCommand::callsAppliedEditingInDoApply): Added. Returns true.
5792        * editing/TypingCommand.h:
5793        (TypingCommand):
5794
57952013-04-12  Brendan Long  <b.long@cablelabs.com>
5796
5797        Refactor TextTrack and TextTrackList to make it easier to add audio and video tracks
5798        https://bugs.webkit.org/show_bug.cgi?id=114330
5799
5800        Reviewed by Jer Noble.
5801
5802        No new tests because this doesn't add new functionality.
5803
5804        * CMakeLists.txt: Only compile text track files if ENABLE(VIDEO_TRACK), and add TrackListBase
5805        * Target.pri: Add TrackListBase
5806        * WebCore.vcproj/WebCore.vcproj: Correct InbandTextTrackPrivate.h's location and add TrackListBase
5807        * WebCore.xcodeproj/project.pbxproj: Add TrackListBase
5808        * html/HTMLMediaElement.cpp: Renamed "track" functions to "textTrack"
5809        (WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Renamed.
5810        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTextTrack): Renamed.
5811        (WebCore::HTMLMediaElement::addTextTrack): Renamed.
5812        (WebCore::HTMLMediaElement::removeTextTrack): Renamed.
5813        (WebCore::HTMLMediaElement::removeAllInbandTracks): Use renamed functions.
5814        (WebCore::HTMLMediaElement::didAddTextTrack): Renamed.
5815        (WebCore::HTMLMediaElement::didRemoveTextTrack): Renamed.
5816        * html/HTMLMediaElement.h:
5817        Renamed "track" functions to "textTrack" and only forward-declare TextTrackList if ENABLE(VIDEO_TRACK)
5818        * html/HTMLTrackElement.cpp: Renamed "track" functions to "textTrack"
5819        (WebCore::HTMLTrackElement::insertedInto):
5820        (WebCore::HTMLTrackElement::removedFrom):
5821        * html/track/TextTrack.cpp:
5822        Move media element, label, language and kind into TrackBase and move EventTarget functions into TextTrack.
5823        (WebCore::TextTrack::TextTrack): Added.
5824        (WebCore::TextTrack::interfaceName): Added.
5825        (WebCore::TextTrack::scriptExecutionContext): Added.
5826        (WebCore::TextTrack::eventTargetData): Added.
5827        (WebCore::TextTrack::ensureEventTargetData): Added.
5828        (WebCore::TextTrack::isValidKind): Added to support TrackBase::setKind()
5829        (WebCore::TextTrack::setKind): Override to support textTrackKindChanged()
5830        (WebCore::TextTrack::isRendered): Use kind(), label() and language() instead of m_kind, etc.
5831        (WebCore::TextTrack::platformTextTrack): Ditto.
5832        (WebCore::TextTrack::isMainProgramContent): Ditto.
5833        * html/track/TextTrack.h:
5834        Same as TextTrack.cpp, plus added defaultKindKeyword() so TrackBase::setKind() will work and added
5835        toTextTrack().
5836        * html/track/TextTrackList.cpp:
5837        Move functionality into TrackListBase, add toTextTrack() casts, use
5838        TrackBase where necesssary and use owner() instead of m_owner.
5839
5840        Moved EventTarget functions into TrackListBase.
5841        (TextTrackList::TextTrackList):
5842        (TextTrackList::getTrackIndexRelativeToRenderedTracks):
5843        (TextTrackList::item):
5844        (TextTrackList::invalidateTrackIndexesAfterTrack):
5845        (TextTrackList::append):
5846        (TextTrackList::remove):
5847        (TextTrackList::contains):
5848        * html/track/TextTrackList.h:
5849        Move EventTarget, RefCounted and m_inbandTracks into TrackListBase.
5850        Override length(), contains() and remove().
5851        * html/track/TrackBase.cpp: Remove EventTarget functions.
5852        (WebCore::TrackBase::TrackBase):
5853        Remove EventTarget, add label and language
5854        (WebCore::TrackBase::setKind): Added
5855        * html/track/TrackBase.h:
5856        Don't extend EventTarget (AudioTrack and VideoTrack aren't). Handle
5857        kind, label, language and media element.
5858        (WebCore::TrackBase::setMediaElement): Added.
5859        (WebCore::TrackBase::mediaElement): Added.
5860        (WebCore::TrackBase::kind): Added.
5861        (WebCore::TrackBase::label): Added.
5862        (WebCore::TrackBase::setLabel): Added.
5863        (WebCore::TrackBase::language): Added.
5864        (WebCore::TrackBase::setLanguage): Added.
5865        * html/track/TrackListBase.cpp:
5866        Added. Handles functionality common to TextTrackList, AudioTrackList and
5867        VideoTrackList.
5868        (TrackListBase::TrackListBase): Added.
5869        (TrackListBase::~TrackListBase): Added.
5870        (TrackListBase::length): Added.
5871        (TrackListBase::remove): Added.
5872        (TrackListBase::contains): Added.
5873        (TrackListBase::scheduleAddTrackEvent): Added.
5874        (TrackListBase::scheduleRemoveTrackEvent): Added.
5875        (TrackListBase::scheduleChangeEvent): Added.
5876        (TrackListBase::asyncEventTimerFired): Added.
5877        * html/track/TrackListBase.h:
5878        Copied from Source/WebCore/html/track/TextTrackList.h. Handles
5879        functionality common to TextTrackList, AudioTrackList and VideoTrackList.
5880        (WebCore::TrackListBase::scriptExecutionContext): Added.
5881        (WebCore::TrackListBase::clearOwner): Added.
5882        (WebCore::TrackListBase::owner): Added.
5883        (WebCore::TrackListBase::isFiringEventListeners): Added.
5884        * platform/graphics/MediaPlayer.cpp:
5885        (WebCore::MediaPlayer::addTextTrack): Renamed (was addTrack)
5886        (WebCore::MediaPlayer::removeTextTrack): Renamed (was removeTrack)
5887        * platform/graphics/MediaPlayer.h:
5888        (WebCore::MediaPlayerClient::mediaPlayerDidAddTextTrack): Renamed (was mediaPlayerDidAddTrack)
5889        (WebCore::MediaPlayerClient::mediaPlayerDidRemoveTextTrack): Renamed (was mediaPlayerDidRemoveTrack)
5890
58912013-04-12  Oliver Hunt  <oliver@apple.com>
5892
5893        make the codegenerator actually emit polymorphism check in the "no vtable" path
5894        https://bugs.webkit.org/show_bug.cgi?id=114533
5895
5896        Reviewed by David Kilzer.
5897
5898        Make the "no vtable" check correct so that we actually plant a polymorphism
5899        check.  Update a few interfaces to have the correct validation attributes.        
5900
5901        * Modules/webdatabase/SQLTransaction.idl:
5902        * bindings/scripts/CodeGeneratorJS.pm:
5903        (GenerateImplementation):
5904        * bindings/scripts/test/JS/JSTestInterface.cpp:
5905        (WebCore::toJS):
5906        * bindings/scripts/test/TestInterface.idl:
5907        * html/track/TextTrackCue.idl:
5908        * svg/SVGAnimatedAngle.idl:
5909        * svg/SVGAnimatedBoolean.idl:
5910        * svg/SVGAnimatedEnumeration.idl:
5911        * svg/SVGAnimatedInteger.idl:
5912        * svg/SVGAnimatedLength.idl:
5913        * svg/SVGAnimatedLengthList.idl:
5914        * svg/SVGAnimatedNumber.idl:
5915        * svg/SVGAnimatedNumberList.idl:
5916        * svg/SVGAnimatedPreserveAspectRatio.idl:
5917        * svg/SVGAnimatedRect.idl:
5918        * svg/SVGAnimatedString.idl:
5919        * svg/SVGAnimatedTransformList.idl:
5920
59212013-04-12  Oliver Hunt  <oliver@apple.com>
5922
5923        Make CodeGeneratorJS plant comments to explain failures in the binding validation
5924        https://bugs.webkit.org/show_bug.cgi?id=114528
5925
5926        Reviewed by Sam Weinig.
5927
5928        No change in behaviour, just make the generated bindings include comments
5929        to aid diagnosing issues that may be non-obvious.
5930
5931        * bindings/scripts/CodeGeneratorJS.pm:
5932        (GenerateImplementation):
5933        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
5934        (WebCore::toJS):
5935        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
5936        (WebCore::toJS):
5937        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
5938        (WebCore::toJS):
5939        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
5940        (WebCore::toJS):
5941        * bindings/scripts/test/JS/JSTestException.cpp:
5942        (WebCore::toJS):
5943        * bindings/scripts/test/JS/JSTestInterface.cpp:
5944        (WebCore::toJS):
5945        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
5946        (WebCore::toJS):
5947        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
5948        (WebCore::toJS):
5949        * bindings/scripts/test/JS/JSTestObj.cpp:
5950        (WebCore::toJS):
5951        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
5952        (WebCore::toJS):
5953        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
5954        (WebCore::toJS):
5955        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
5956        (WebCore::toJS):
5957
59582013-04-12  Tim Horton  <timothy_horton@apple.com>
5959
5960        REGRESSION (r138858): GIFs don't start playing when they come out of background tabs
5961        https://bugs.webkit.org/show_bug.cgi?id=108864
5962        <rdar://problem/13140489>
5963
5964        Reviewed by Antti Koivisto.
5965
5966        * loader/cache/CachedImage.cpp:
5967        (WebCore::CachedImage::resumeAnimatingImagesForLoader): Added.
5968        Iterate through all of the loader's cached resources. If they are bitmap images
5969        which claim to be animatable, notify the image's observers that the animation advanced
5970        by one frame. In reality, the image is still on the same frame, but will now be repainted,
5971        restarting the animation loop.
5972        * loader/cache/CachedImage.h:
5973        * page/FrameView.cpp:
5974        (WebCore::FrameView::setIsInWindow):
5975        When the FrameView is brought into a window, repaint all animated images.
5976        * platform/graphics/BitmapImage.cpp:
5977        (WebCore::BitmapImage::canAnimate): Added. 
5978        Return whether or not the image should animate (claims to animate, has not already
5979        finished its animation, and has an ImageObserver) *and* has more than one frame.
5980        * platform/graphics/BitmapImage.h:
5981        (BitmapImage): Add canAnimate.
5982
59832013-04-12  Martin Robinson  <mrobinson@igalia.com>
5984
5985        r148197 broke the GTK+ build
5986        https://bugs.webkit.org/show_bug.cgi?id=114525
5987
5988        Reviewed by Anders Carlsson.
5989
5990        Re-add the ENABLE(SCROLLING_THREAD) guards to scrolling thread files
5991        and extend them with USE(COORDINATED_GRAPHICS). This code is unused
5992        by other configurations currently.
5993
5994        * page/scrolling/ScrollingStateFixedNode.cpp: Re-add guards.
5995        * page/scrolling/ScrollingStateFixedNode.h: Ditto.
5996        * page/scrolling/ScrollingStateNode.cpp: Ditto.
5997        * page/scrolling/ScrollingStateNode.h: Ditto.
5998        * page/scrolling/ScrollingStateScrollingNode.cpp: Ditto.
5999        * page/scrolling/ScrollingStateScrollingNode.h: Ditto.
6000        * page/scrolling/ScrollingStateStickyNode.cpp: Ditto.
6001        * page/scrolling/ScrollingStateStickyNode.h: Ditto.
6002        * page/scrolling/ScrollingStateTree.cpp: Ditto.
6003        * page/scrolling/ScrollingStateTree.h: Ditto.
6004        * page/scrolling/mac/ScrollingStateNodeMac.mm: Ditto.
6005        * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: Ditto.
6006
60072013-04-12  Jer Noble  <jer.noble@apple.com>
6008
6009        (AVFoundation) WebKit fails to detect live stream.
6010        https://bugs.webkit.org/show_bug.cgi?id=114474
6011
6012        Reviewed by Eric Carlson.
6013
6014        Remove a workaround (added by r88944) for an error in an Apple.com javascript
6015        media controller. The error has been fixed, and the workaround is causing problems
6016        with other media streams.
6017
6018        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
6019        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
6020
60212013-04-12  Carlos Garcia Campos  <cgarcia@igalia.com>
6022
6023        [GTK] Split GtkAuthenticationDialog in two widgets
6024        https://bugs.webkit.org/show_bug.cgi?id=103644
6025
6026        Reviewed by Xan Lopez.
6027
6028        The current GtkAuthenticationDialog implements both the common
6029        logic and widgets to implement a real GtkDialog and a widget to be
6030        embedded in any container. WebKit1 uses a GtkDialog while WebKit2
6031        embeds the dialog in the WebView. This patch splits the code to
6032        leave in Platform only the code that is actually common, leaving
6033        the widget implementation to the WebKit layer, using a dialog in
6034        WebKit1 and embedding auth widget in the WebView in WebKit2.
6035
6036        * GNUmakefile.list.am: Add new files to compilation.
6037        * platform/gtk/GtkAuthenticationDialog.cpp: Removed.
6038        * platform/gtk/GtkAuthenticationDialog.h: Removed.
6039        * platform/gtk/WebKitAuthenticationWidget.cpp: Added.
6040        (_WebKitAuthenticationWidgetPrivate):
6041        (packTwoColumnLayoutInBox):
6042        (createLabel):
6043        (createEntry):
6044        (webkitAuthenticationWidgetInitialize):
6045        (webkitAuthenticationWidgetFinalize):
6046        (webkit_authentication_widget_init):
6047        (webkit_authentication_widget_class_init):
6048        (webkitAuthenticationWidgetNew):
6049        (webkitAuthenticationWidgetCreateCredential):
6050        (webkitAuthenticationWidgetGetChallenge):
6051        * platform/gtk/WebKitAuthenticationWidget.h: Added.
6052        (_WebKitAuthenticationWidget):
6053        (_WebKitAuthenticationWidgetClass):
6054
60552013-04-11  Jer Noble  <jer.noble@apple.com>
6056
6057        Add support for MediaPlayer::minTimeSeekable()
6058        https://bugs.webkit.org/show_bug.cgi?id=114484
6059
6060        Reviewed by Eric Carlson.
6061
6062        Plumb a new minTimeSeekable() method through MediaPlayer and
6063        MediaPlayerPrivate and use this new method in the existing
6064        HTMLMediaElement::minTimeSeekable() method.
6065
6066        * html/HTMLMediaElement.cpp:
6067        (WebCore::HTMLMediaElement::minTimeSeekable): Pass to MediaPlayer.
6068        * platform/graphics/MediaPlayer.cpp:
6069        (WebCore::NullMediaPlayerPrivate::minTimeSeekable): Return 0.
6070        (WebCore::MediaPlayer::minTimeSeekable): Pass to MediaPlayerPrivate.
6071        * platform/graphics/MediaPlayer.h:
6072        * platform/graphics/MediaPlayerPrivate.h:
6073        (WebCore::MediaPlayerPrivateInterface::seekable): Define in terms of 
6074            minTimeSeekable()
6075        (WebCore::MediaPlayerPrivateInterface::minTimeSeekable): Default to 0.
6076        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
6077        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
6078            Initialize new m_cachedMinTimeSeekable ivar.
6079        (WebCore::MediaPlayerPrivateAVFoundation::maxTimeSeekableDouble):
6080            Renamed from maxTimeSeekable().
6081        (WebCore::MediaPlayerPrivateAVFoundation::minTimeSeekable): Added.
6082            Cache value of platformMinTimeSeekable().
6083        (WebCore::MediaPlayerPrivateAVFoundation::seekableTimeRangesChanged):
6084            Reset m_cachedMinTimeSeekable.
6085        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
6086        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
6087        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
6088        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): float -> double.
6089        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable):
6090            Added. Retrieve the lowest value from -[m_playerItem seekableTimeRanges].
6091        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable):
6092            float -> double.
6093
60942013-04-12  Commit Queue  <rniwa@webkit.org>
6095
6096        Unreviewed, rolling out r147942, r148026, and r148092.
6097        http://trac.webkit.org/changeset/147942
6098        http://trac.webkit.org/changeset/148026
6099        http://trac.webkit.org/changeset/148092
6100        https://bugs.webkit.org/show_bug.cgi?id=114521
6101
6102        "r147942 is buggy. Rollback all the patches depending on it."
6103        (Requested by abucur on #webkit).
6104
6105        * dom/ContainerNode.cpp:
6106        (WebCore::willRemoveChildren):
6107        (WebCore):
6108        (WebCore::ContainerNode::removeChildren):
6109        * dom/Document.cpp:
6110        (WebCore::Document::nodeChildrenWillBeRemoved):
6111        (WebCore):
6112        * dom/Document.h:
6113        (Document):
6114        * dom/Node.cpp:
6115        * dom/Node.h:
6116        (Node):
6117        * dom/NodeTraversal.cpp:
6118        * dom/NodeTraversal.h:
6119        (ElementTraversal):
6120        (NodeTraversal):
6121        * dom/Range.cpp:
6122        (WebCore::boundaryNodeChildrenWillBeRemoved):
6123        (WebCore):
6124        (WebCore::Range::nodeChildrenWillBeRemoved):
6125        * dom/Range.h:
6126        * html/HTMLLIElement.cpp:
6127        (WebCore::HTMLLIElement::attach):
6128        * html/HTMLOListElement.cpp:
6129        (WebCore::HTMLOListElement::updateItemValues):
6130        (WebCore::HTMLOListElement::recalculateItemCount):
6131        * rendering/RenderCounter.cpp:
6132        (WebCore::previousInPreOrder):
6133        (WebCore::previousSiblingOrParent):
6134        (WebCore::parentElement):
6135        (WebCore::nextInPreOrder):
6136        * rendering/RenderListItem.cpp:
6137        (WebCore::enclosingList):
6138        (WebCore::RenderListItem::nextListItem):
6139        (WebCore::previousListItem):
6140        (WebCore::RenderListItem::calcValue):
6141        (WebCore::RenderListItem::explicitValueChanged):
6142        (WebCore::previousOrNextItem):
6143        (WebCore::RenderListItem::updateListMarkerNumbers):
6144        * rendering/RenderListItem.h:
6145        (RenderListItem):
6146
61472013-04-12  Jer Noble  <jer.noble@apple.com>
6148
6149        TimeRanges::nearest() returns incorrect results.
6150        https://bugs.webkit.org/show_bug.cgi?id=114483
6151
6152        Reviewed by Eric Carlson.
6153
6154        Test: media/timeranges-nearest.html
6155
6156        TimeRanges::nearest() has had an incorrect algorithm since its
6157        addition, which has gone unnoticed because no media engine supports
6158        seekable ranges with greater than one entry, and no media engine
6159        seekable ranges with startTime values > 0.
6160
6161        Fix the algorithm used to walk a TimeRanges object; return the closest
6162        time, not the smallest delta between range and target time.
6163        * html/TimeRanges.cpp:
6164        (TimeRanges::nearest):
6165
6166        Add some internal functions to allow us to write LayoutTests for
6167        TimeRanges objects:
6168        * WebCore.exp.in:
6169        * testing/Internals.cpp:
6170        (WebCore::Internals::createTimeRanges):
6171        (WebCore::Internals::closestTimeToTimeRanges):
6172        * testing/Internals.h:
6173        * testing/Internals.idl:
6174
61752013-04-12  Eric Carlson  <eric.carlson@apple.com>
6176
6177        Support "forced" subtitles
6178        https://bugs.webkit.org/show_bug.cgi?id=114460
6179
6180        Reviewed by Jer Noble.
6181
6182        Test: media/track/track-forced-subtitles.html
6183
6184        * html/HTMLMediaElement.cpp:
6185        (WebCore::HTMLMediaElement::configureTextTrackGroup): Enable a forced track if nothing else is enabled.
6186        (WebCore::HTMLMediaElement::configureTextTracks): Include forced tracks with captions+subtitles.
6187
6188        * html/track/InbandTextTrack.cpp:
6189        (WebCore::InbandTextTrack::InbandTextTrack): Deal with kind=forced.
6190
6191        * html/track/TextTrack.cpp:
6192        (WebCore::TextTrack::forcedKeyword): New keyword.
6193        (WebCore::TextTrack::isValidKindKeyword): Include forced.
6194        (WebCore::TextTrack::platformTextTrack): Ditto.
6195        * html/track/TextTrack.h:
6196
6197        * page/CaptionUserPreferences.cpp:
6198        (WebCore::CaptionUserPreferences::primaryAudioTrackLanguageOverride): New override to support testing.
6199        * page/CaptionUserPreferences.h:
6200
6201        * page/CaptionUserPreferencesMac.mm:
6202        (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Support forced tracks.
6203        * platform/graphics/InbandTextTrackPrivate.h:
6204
6205        * platform/graphics/PlatformTextTrack.h: Add Forced, minor cleanup.
6206
6207        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
6208        (WebCore::InbandTextTrackPrivateAVF::processCue): Drive-by enhancement: log cue position.
6209
6210        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
6211        (WebCore::InbandTextTrackPrivateAVFObjC::kind): Support forced.
6212        (WebCore::InbandTextTrackPrivateAVFObjC::label): Drive-by cleanup.
6213
6214        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
6215        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Don't filter out forced tracks.
6216        (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Log the language returned.
6217
6218        * testing/Internals.cpp:
6219        (WebCore::Internals::setPrimaryAudioTrackLanguageOverride): New.
6220        (WebCore::Internals::setCaptionDisplayMode): New.
6221        * testing/Internals.h:
6222        * testing/Internals.idl:
6223
62242013-04-12  Ryosuke Niwa  <rniwa@webkit.org>
6225
6226        [Mac] Some ligatures are applied across different fronts
6227        https://bugs.webkit.org/show_bug.cgi?id=113604
6228
6229        Reviewed by Darin Adler.
6230
6231        The bug was caused by applyFontTransforms applying ligatures without updating the font data in the glyph buffer.
6232
6233        Suppose we have characters AB and A uses font X and B uses font Y. Further suppose that we have ligatures for AB
6234        in Y. The problem was that WithIterator::advanceInternal calls applyFontTransforms on AB to apply this ligature
6235        even though A and B use different fonts. Since X doesn't contain the same ligature for A to be paired with that
6236        of B in X, we get a blank A.
6237
6238        Fixed the bug by resetting lastGlyphCount after calling applyFontTransforms. This ensures that we don't call
6239        applyFontTransforms across different fonts.
6240
6241        No new tests since this requires a variant of Osaka font that doesn't come with OS X.
6242
6243        The bug 114482 tracks the effort to add a test for this bug fix. I've already asked someone to create a custom
6244        font for us so that we can test this bug fix but that's going to a while.
6245
6246        * platform/graphics/WidthIterator.cpp:
6247        (WebCore::WidthIterator::advanceInternal):
6248
62492013-04-12  Ryosuke Niwa  <rniwa@webkit.org>
6250
6251        [Mac] Enable spellchecking tests added in r141471
6252        https://bugs.webkit.org/show_bug.cgi?id=108525
6253
6254        Reviewed by Darin Adler.
6255
6256        Made automatic quote substitution, dash substitution, text replacement, and spelling correction
6257        togglable via internals object. These functions are no-op when text replacement is not used.
6258
6259        This allows us to disable automatic spelling correction in spellcheck tests.
6260
6261        Enabled several tests added in r141471.
6262
6263        * WebCore.exp.in:
6264        * testing/Internals.cpp:
6265        (WebCore::Internals::setContinuousSpellCheckingEnabled): Don't null check editor() since it's not
6266        null whenever frame() is not null.
6267        (WebCore::Internals::setAutomaticQuoteSubstitutionEnabled): Added.
6268        (WebCore::Internals::setAutomaticLinkDetectionEnabled): Added.
6269        (WebCore::Internals::setAutomaticDashSubstitutionEnabled): Added.
6270        (WebCore::Internals::setAutomaticTextReplacementEnabled): Added.
6271        (WebCore::Internals::setAutomaticSpellingCorrectionEnabled): Added.
6272        * testing/Internals.h:
6273        * testing/Internals.idl:
6274
62752013-04-12  Alberto Garcia  <agarcia@igalia.com>
6276
6277        [BlackBerry] Upstream the filesystem code
6278        https://bugs.webkit.org/show_bug.cgi?id=114437
6279
6280        Reviewed by Rob Buis.
6281
6282        These are the changes for AsyncFileSystemBlackBerry.
6283
6284        This patch contains contributions from many members of the
6285        BlackBerry WebKit team.
6286
6287        * platform/blackberry/AsyncFileSystemBlackBerry.cpp:
6288        (WebCore::AsyncFileSystem::isAvailable):
6289        (WebCore):
6290        (WebCore::AsyncFileSystem::create):
6291        (WebCore::AsyncFileSystem::openFileSystem):
6292        (WebCore::AsyncFileSystemBlackBerry::openFileSystem):
6293        (WebCore::AsyncFileSystem::deleteFileSystem):
6294        (WebCore::AsyncFileSystemBlackBerry::AsyncFileSystemBlackBerry):
6295        (WebCore::AsyncFileSystemBlackBerry::~AsyncFileSystemBlackBerry):
6296        (WebCore::AsyncFileSystemBlackBerry::move):
6297        (WebCore::AsyncFileSystemBlackBerry::copy):
6298        (WebCore::AsyncFileSystemBlackBerry::remove):
6299        (WebCore::AsyncFileSystemBlackBerry::removeRecursively):
6300        (WebCore::AsyncFileSystemBlackBerry::readMetadata):
6301        (WebCore::AsyncFileSystemBlackBerry::createFile):
6302        (WebCore::AsyncFileSystemBlackBerry::createDirectory):
6303        (WebCore::AsyncFileSystemBlackBerry::fileExists):
6304        (WebCore::AsyncFileSystemBlackBerry::directoryExists):
6305        (WebCore::AsyncFileSystemBlackBerry::readDirectory):
6306        (WebCore::AsyncFileSystemBlackBerry::createWriter):
6307        (WebCore::AsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
6308        (WebCore::AsyncFileSystemBlackBerry::fileSystemURLToPath):
6309        * platform/blackberry/AsyncFileSystemBlackBerry.h:
6310        (WTF):
6311        (WTF::BlackBerry::Platform::WebFileSystem):
6312        (WebCore::AsyncFileSystemBlackBerry::create):
6313        (AsyncFileSystemBlackBerry):
6314
63152013-04-12  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
6316
6317        Apply our MSVC 2012 optimizer bug workaround to all minor releases
6318        https://bugs.webkit.org/show_bug.cgi?id=114436
6319
6320        Reviewed by Alexey Proskuryakov.
6321
6322        The bug has only been partially fixed in Update 2 but our Update 1 workaround
6323        still avoids the crash.
6324
6325        * platform/text/TextEncodingRegistry.cpp:
6326        (WebCore::TextEncodingNameHash::equal):
6327
63282013-04-12  Mark Rowe  <mrowe@apple.com>
6329
6330        And again, with the correct case this time.
6331
6332        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
6333
63342013-04-12  Mark Rowe  <mrowe@apple.com>
6335
6336        Build fix.
6337
6338        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
6339        Add missing #include and forward declaration.
6340
63412013-04-12  Zan Dobersek  <zdobersek@igalia.com>
6342
6343        Unreviewed functionality fix for ports enabling the MicroData feature.
6344
6345        * html/DOMSettableTokenList.idl: Add the SkipVTableValidation IDL attribute to the DOMSettableTokenList interface.
6346        This removes crashes in the MicroData layout tests that are occurring on EFL and GTK builders, the two ports being
6347        the only ports that enable this feature.
6348
63492013-04-11  Alexey Proskuryakov  <ap@apple.com>
6350
6351        Move CachedRawResourceClient into a separate file
6352        https://bugs.webkit.org/show_bug.cgi?id=114491
6353
6354        Reviewed by Mark Rowe.
6355
6356        * GNUmakefile.list.am:
6357        * Target.pri:
6358        * WebCore.vcproj/WebCore.vcproj:
6359        * WebCore.vcxproj/WebCore.vcxproj:
6360        * WebCore.vcxproj/WebCore.vcxproj.filters:
6361        * WebCore.xcodeproj/project.pbxproj:
6362        * loader/DocumentLoader.cpp:
6363        * loader/DocumentLoader.h:
6364        * loader/DocumentThreadableLoader.h:
6365        * loader/archive/cf/LegacyWebArchive.cpp:
6366        * loader/cache/CachedRawResource.cpp:
6367        * loader/cache/CachedRawResource.h:
6368        * loader/cache/CachedRawResourceClient.h: Added.
6369        * loader/icon/IconLoader.h:
6370        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
6371
63722013-04-12  Commit Queue  <rniwa@webkit.org>
6373
6374        Unreviewed, rolling out r148262.
6375        http://trac.webkit.org/changeset/148262
6376        https://bugs.webkit.org/show_bug.cgi?id=114493
6377
6378        Cairo dep should now build, rolling r148247 back in (Requested
6379        by zdobersek on #webkit).
6380
6381        * platform/graphics/GraphicsContext.cpp:
6382        (WebCore):
6383        * platform/graphics/ImageBuffer.cpp:
6384        (WebCore):
6385        * platform/graphics/cairo/GLContext.h:
6386        (GLContext):
6387        * platform/graphics/cairo/GraphicsContextCairo.cpp:
6388        (WebCore::GraphicsContext::isAcceleratedContext):
6389        (WebCore):
6390        * platform/graphics/cairo/ImageBufferCairo.cpp:
6391        (WebCore::ImageBufferData::ImageBufferData):
6392        (WebCore):
6393        (WebCore::createCairoGLSurface):
6394        (WebCore::ImageBuffer::ImageBuffer):
6395        (WebCore::ImageBuffer::platformTransformColorSpace):
6396        (WebCore::mapSurfaceToImage):
6397        (WebCore::unmapSurfaceFromImage):
6398        (WebCore::getImageData):
6399        (WebCore::ImageBuffer::putByteArray):
6400        (WebCore::ImageBufferData::paintToTextureMapper):
6401        (WebCore::ImageBuffer::platformLayer):
6402        * platform/graphics/cairo/ImageBufferDataCairo.h:
6403        (ImageBufferData):
6404        * platform/graphics/egl/GLContextEGL.cpp:
6405        (WebCore::GLContextEGL::GLContextEGL):
6406        (WebCore::GLContextEGL::~GLContextEGL):
6407        (WebCore::GLContextEGL::cairoDevice):
6408        (WebCore):
6409        * platform/graphics/egl/GLContextEGL.h:
6410        * platform/graphics/glx/GLContextGLX.cpp:
6411        (WebCore::GLContextGLX::GLContextGLX):
6412        (WebCore::GLContextGLX::~GLContextGLX):
6413        (WebCore::GLContextGLX::cairoDevice):
6414        (WebCore):
6415        * platform/graphics/glx/GLContextGLX.h:
6416        (GLContextGLX):
6417
64182013-04-11  Alexey Proskuryakov  <ap@apple.com>
6419
6420        Reduce includes of CachedSVGDocument.h
6421        https://bugs.webkit.org/show_bug.cgi?id=114489
6422
6423        Reviewed by Jon Honeycutt.
6424
6425        * loader/cache/CachedSVGDocumentReference.cpp: Added.
6426        * loader/cache/CachedSVGDocumentReference.h:
6427        Moved function implementations to newly added .cpp file, and removed an include
6428        of CachedSVGDocument.h.
6429
6430        * css/WebKitCSSSVGDocumentValue.h: Just removed an unnecessary include.
6431
6432        * CMakeLists.txt:
6433        * GNUmakefile.list.am:
6434        * Target.pri:
6435        * WebCore.vcproj/WebCore.vcproj:
6436        * WebCore.vcxproj/WebCore.vcxproj:
6437        * WebCore.vcxproj/WebCore.vcxproj.filters:
6438        * WebCore.xcodeproj/project.pbxproj:
6439
64402013-04-11  Commit Queue  <rniwa@webkit.org>
6441
6442        Unreviewed, rolling out r148247.
6443        http://trac.webkit.org/changeset/148247
6444        https://bugs.webkit.org/show_bug.cgi?id=114490
6445
6446        Cairo dep fails to build on builders due to missing EGL
6447        headers (Requested by zdobersek on #webkit).
6448
6449        * platform/graphics/GraphicsContext.cpp:
6450        (WebCore):
6451        * platform/graphics/ImageBuffer.cpp:
6452        (WebCore):
6453        * platform/graphics/cairo/GLContext.h:
6454        (GLContext):
6455        * platform/graphics/cairo/GraphicsContextCairo.cpp:
6456        * platform/graphics/cairo/ImageBufferCairo.cpp:
6457        (WebCore::ImageBufferData::ImageBufferData):
6458        (WebCore::ImageBuffer::ImageBuffer):
6459        (WebCore::ImageBuffer::platformTransformColorSpace):
6460        (WebCore::getImageData):
6461        (WebCore::ImageBuffer::putByteArray):
6462        (WebCore):
6463        * platform/graphics/cairo/ImageBufferDataCairo.h:
6464        (ImageBufferData):
6465        * platform/graphics/egl/GLContextEGL.cpp:
6466        (WebCore::GLContextEGL::GLContextEGL):
6467        (WebCore::GLContextEGL::~GLContextEGL):
6468        * platform/graphics/egl/GLContextEGL.h:
6469        * platform/graphics/glx/GLContextGLX.cpp:
6470        (WebCore::GLContextGLX::GLContextGLX):
6471        (WebCore::GLContextGLX::~GLContextGLX):
6472        * platform/graphics/glx/GLContextGLX.h:
6473        (GLContextGLX):
6474
64752013-04-11  Nico Weber  <thakis@chromium.org>
6476
6477        Remove debugging code that is no longer used with current mac sdks.
6478        https://bugs.webkit.org/show_bug.cgi?id=114486
6479
6480        Reviewed by Dan Bernstein.
6481
6482        This code compared __MAC_OS_X_VERSION_MAX_ALLOWED and friends to
6483        107 and 106 instead of the correct 1070 and 1060. Instead of fixing
6484        this, rip the code out completely: Since WebKit now only targets
6485        current systems, the ifdef is always false anyways.
6486
6487        No tests, as this only removes debugging code.
6488
6489        * platform/graphics/mac/SimpleFontDataMac.mm:
6490        (WebCore::SimpleFontData::platformInit):
6491
64922013-04-11  Oliver Hunt  <oliver@apple.com>
6493
6494        Fix windows build and land new binding test results
6495
6496        * bindings/scripts/CodeGeneratorJS.pm:
6497        (GenerateImplementation):
6498        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
6499        (WebCore):
6500        (WebCore::toJS):
6501        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
6502        (WebCore):
6503        (WebCore::toJS):
6504        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
6505        (WebCore):
6506        (WebCore::toJS):
6507        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
6508        (WebCore):
6509        (WebCore::toJS):
6510        * bindings/scripts/test/JS/JSTestException.cpp:
6511        (WebCore):
6512        (WebCore::toJS):
6513        * bindings/scripts/test/JS/JSTestInterface.cpp:
6514        (WebCore):
6515        (WebCore::toJS):
6516        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
6517        (WebCore):
6518        (WebCore::toJS):
6519        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
6520        (WebCore):
6521        (WebCore::toJS):
6522        * bindings/scripts/test/JS/JSTestObj.cpp:
6523        (WebCore):
6524        (WebCore::toJS):
6525        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
6526        (WebCore):
6527        (WebCore::toJS):
6528        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
6529        (WebCore):
6530        (WebCore::toJS):
6531        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
6532        (WebCore):
6533        (WebCore::toJS):
6534
65352013-04-11  Shezan Baig  <sbaig1@bloomberg.net>
6536
6537        Selection gaps don't repaint correctly with transforms
6538        https://bugs.webkit.org/show_bug.cgi?id=111000
6539
6540        Reviewed by Simon Fraser.
6541
6542        When computing offsetFromRepaintContainer, we need to add UseTransforms
6543        to the MapCoordinateFlags argument. Note that ApplyContainerFlip is
6544        the default value for the flag, so this change effectively only adds
6545        the UseTransforms flag.
6546
6547        Tests: fast/repaint/selection-gap-absolute-child.html
6548               fast/repaint/selection-gap-fixed-child.html
6549               fast/repaint/selection-gap-flipped-absolute-child.html
6550               fast/repaint/selection-gap-flipped-fixed-child.html
6551               fast/repaint/selection-gap-transformed-absolute-child.html
6552               fast/repaint/selection-gap-transformed-fixed-child.html
6553
6554        * rendering/RenderBlock.cpp:
6555        (WebCore::RenderBlock::selectionGapRectsForRepaint):
6556
65572013-04-11  Oliver Hunt  <oliver@apple.com>
6558
6559        Add more type validation to debug builds
6560        https://bugs.webkit.org/show_bug.cgi?id=114478
6561
6562        Reviewed by Mark Hahnenberg.
6563
6564        Add a bunch more type checks to the JS DOM bindings.
6565
6566        * Modules/mediastream/MediaStream.idl:
6567        * Modules/webaudio/AudioDestinationNode.idl:
6568        * WebCore.xcodeproj/project.pbxproj:
6569        * bindings/js/JSDOMBinding.h:
6570        (WebCore::getExistingWrapper):
6571        (WebCore):
6572        (WebCore::createNewWrapper):
6573        * bindings/scripts/CodeGeneratorJS.pm:
6574        (GetNativeTypeForConversions):
6575        (GetGnuVTableRefForInterface):
6576        (GetGnuVTableNameForInterface):
6577        (GetGnuMangledNameForInterface):
6578        (GetGnuVTableOffsetForType):
6579        (GetWinVTableRefForInterface):
6580        (GetWinVTableNameForInterface):
6581        (GetWinMangledNameForInterface):
6582        (GetNamespaceForInterface):
6583        (GetImplementationLacksVTableForInterface):
6584        (GetSkipVTableValidationForInterface):
6585        (GenerateImplementation):
6586        * bindings/scripts/IDLAttributes.txt:
6587        * css/CSSRuleList.idl:
6588        * css/CSSStyleDeclaration.idl:
6589        * dom/Clipboard.idl:
6590        * dom/DOMStringMap.idl:
6591        * dom/MutationRecord.idl:
6592        * dom/NodeList.idl:
6593        * html/DOMTokenList.idl:
6594        * html/track/TextTrack.idl:
6595        * inspector/ScriptProfileNode.idl:
6596        * storage/Storage.idl:
6597        * xml/XPathNSResolver.idl:
6598
65992013-04-11  Ryosuke Niwa  <rniwa@webkit.org>
6600
6601        Remove ResourceLoadInfo
6602        https://bugs.webkit.org/show_bug.cgi?id=113302
6603
6604        Reviewed by Benjamin Poulain.
6605
6606        Co-authored by Christophe Dumez.
6607
6608        Removed ResourceLoadInfo since it had been only used by Chromium port.
6609
6610        * GNUmakefile.list.am:
6611        * Target.pri:
6612        * WebCore.order:
6613        * WebCore.vcproj/WebCore.vcproj:
6614        * WebCore.vcxproj/WebCore.vcxproj:
6615        * WebCore.vcxproj/WebCore.vcxproj.filters:
6616        * WebCore.xcodeproj/project.pbxproj:
6617        * inspector/InspectorResourceAgent.cpp:
6618        (WebCore::buildObjectForResourceResponse):
6619        * loader/FrameLoader.cpp:
6620        (WebCore::FrameLoader::loadResourceSynchronously):
6621        * platform/network/ResourceLoadInfo.h: Removed.
6622        * platform/network/ResourceResponseBase.cpp:
6623        (WebCore):
6624        (WebCore::ResourceResponseBase::reportMemoryUsage):
6625        * platform/network/ResourceResponseBase.h:
6626        (ResourceResponseBase):
6627
66282013-04-11  Ryosuke Niwa  <rniwa@webkit.org>
6629
6630        Another Mac Lion build fix attempt after r148197.
6631
6632        * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
6633
66342013-04-11  Sukolsak Sakshuwong  <sukolsak@gmail.com>
6635
6636        Unable to paste twice in input field when specific CSS present
6637        https://bugs.webkit.org/show_bug.cgi?id=108675
6638
6639        Reviewed by Ryosuke Niwa.
6640
6641        When we are pre-rendering text in ReplaceSelectionCommand, we shouldn't care
6642        whether the content is clipped by its ancestors or not. This bug was caused
6643        by the fact the plainText() method returned an empty string because the text
6644        was fully clipped by its ancestors. Make plainText ignore style visibility.
6645
6646        Test: editing/inserting/insert-text-into-text-field.html
6647
6648        * editing/ReplaceSelectionCommand.cpp:
6649        (WebCore::ReplacementFragment::ReplacementFragment):
6650
66512013-04-11  Martin Robinson  <mrobinson@igalia.com>
6652
6653        [GTK] Add accelerated 2D canvas support using cairo-gl
6654        https://bugs.webkit.org/show_bug.cgi?id=104672
6655
6656        Reviewed by Alejandro G. Castro.
6657
6658        No new tests. We do not yet have the ability to run tests against
6659        accelerated content.
6660
6661        * platform/graphics/GraphicsContext.cpp:
6662        (WebCore): We don't use the stub implementation of isAcceleratedContext any longer.
6663        * platform/graphics/ImageBuffer.cpp:
6664        (WebCore): Ditto for ImageBuffer::platformLayer.
6665        * platform/graphics/cairo/GLContext.h:
6666        (GLContext): Added method to get a cairo_device_t from the context.
6667        * platform/graphics/cairo/GraphicsContextCairo.cpp:
6668        (WebCore::GraphicsContext::isAcceleratedContext): Return true when we are a CairoGL surface.
6669        * platform/graphics/cairo/ImageBufferCairo.cpp:
6670        (WebCore::ImageBufferData::ImageBufferData): Initialize the size and the texture to 0.
6671        (WebCore::createCairoGLSurface): Added this helper.
6672        (WebCore::ImageBuffer::ImageBuffer): When we are in accelerated rendering mode, create
6673        a CairoGL surface.
6674        (WebCore::ImageBuffer::platformTransformColorSpace): Do not implement this for accelerated
6675        contexts yet.
6676        (WebCore::mapSurfaceToImage): Added this helper, since we don't require Cairo 1.12 yet,
6677        which provides an builtin implementation.
6678        (WebCore::unmapSurfaceFromImage): Ditto.
6679        (WebCore::getImageData): Map the surface to an image surface first.
6680        (WebCore::ImageBuffer::putByteArray): Ditto.
6681        (WebCore::ImageBufferData::paintToTextureMapper): Connect the accelerated canvas into the
6682        TextureMapper infrastructure.
6683        (WebCore::ImageBuffer::platformLayer): This lets the TextureMapper at the ImageBufferData.
6684        * platform/graphics/cairo/ImageBufferDataCairo.h:
6685        (ImageBufferData): Subclass TexturMapperPlatformLayer where appropriate.
6686        * platform/graphics/egl/GLContextEGL.cpp: Added implementation of cairoDevice.
6687        * platform/graphics/egl/GLContextEGL.h: Ditto.
6688        * platform/graphics/glx/GLContextGLX.cpp: Ditto
6689        * platform/graphics/glx/GLContextGLX.h: Ditto.
6690
66912013-04-11  Anders Carlsson  <andersca@apple.com>
6692
6693        Implement removing storage area items
6694        https://bugs.webkit.org/show_bug.cgi?id=114472
6695
6696        Reviewed by Beth Dakin.
6697
6698        Export StorageMap::removeItem.
6699
6700        * WebCore.exp.in:
6701
67022013-04-11  Brendan Long  <b.long@cablelabs.com>
6703
6704        TextTrackList's .onremovetrack is missing from IDL
6705        https://bugs.webkit.org/show_bug.cgi?id=103421
6706
6707        Reviewed by Eric Carlson.
6708
6709        Fixed test media/track/opera/interfaces/TextTrackList/onremovetrack.html
6710
6711        * html/track/TextTrackList.cpp:
6712        (TextTrackList::remove):
6713        (TextTrackList::scheduleRemoveTrackEvent):
6714        * html/track/TextTrackList.h:
6715        (TextTrackList):
6716        * html/track/TextTrackList.idl:
6717
67182013-04-11  Alberto Garcia  <agarcia@igalia.com>
6719
6720        [BlackBerry] Upstream the filesystem code
6721        https://bugs.webkit.org/show_bug.cgi?id=114437
6722
6723        Reviewed by Rob Buis.
6724
6725        This patch contains contributions from many members of the
6726        BlackBerry WebKit team.
6727
6728        * platform/blackberry/AsyncFileWriterBlackBerry.cpp: Added.
6729        (WebCore):
6730        (WebCore::AsyncFileWriterBlackBerry::write):
6731        * platform/blackberry/AsyncFileWriterBlackBerry.h: Added.
6732        (WTF):
6733        (WTF::BlackBerry::Platform::WebFileWriter):
6734        (WebCore):
6735        * platform/blackberry/DOMFileSystemBlackBerry.cpp: Added.
6736        (WebCore):
6737        (WebCore::DOMFileSystemBase::createFileSystemURL):
6738        (WebCore::DOMFileSystemBase::crackFileSystemURL):
6739        (WebCore::DOMFileSystemBase::supportsToURL):
6740        (WebCore::DOMFileSystemBase::isValidType):
6741        * platform/blackberry/LocalFileSystemBlackBerry.cpp: Added.
6742        (WebCore):
6743        (WebCore::fileSystemTypeString):
6744        (WebCore::openFileSystem):
6745        (WebCore::LocalFileSystem::deleteFileSystem):
6746        (WebCore::LocalFileSystem::readFileSystem):
6747        (WebCore::LocalFileSystem::requestFileSystem):
6748        * platform/blackberry/PlatformAsyncFileSystemCallbacks.cpp: Added.
6749        (WebCore):
6750        (WebCore::PlatformAsyncFileSystemCallbacks::notifyOpenFileSystem):
6751        (WebCore::PlatformAsyncFileSystemCallbacks::notifySucceed):
6752        (WebCore::PlatformAsyncFileSystemCallbacks::notifyFail):
6753        (WebCore::getFileMetadata):
6754        (WebCore::PlatformAsyncFileSystemCallbacks::notifyReadMetadata):
6755        (WebCore::PlatformAsyncFileSystemCallbacks::notifyCreateSnapshotFileAndReadMetadata):
6756        (WebCore::PlatformAsyncFileSystemCallbacks::notifyReadDirectory):
6757        (WebCore::PlatformAsyncFileSystemCallbacks::notifyCreateFileWriter):
6758        (WebCore::PlatformAsyncFileSystemCallbacks::createAsyncFileSystem):
6759        (WebCore::PlatformAsyncFileSystemCallbacks::createAsyncFileWriter):
6760        (WebCore::PlatformAsyncFileSystemCallbacks::deleteMe):
6761        * platform/blackberry/PlatformAsyncFileSystemCallbacks.h: Added.
6762        (WebCore):
6763        * platform/blackberry/PlatformBlob.cpp: Added.
6764        (WebCore):
6765        (WebCore::PlatformBlob::nextDataItem):
6766        * platform/blackberry/PlatformBlob.h: Added.
6767        (WebCore):
6768        * platform/blackberry/PlatformFileWriterClient.cpp: Added.
6769        (WebCore):
6770        (WebCore::PlatformFileWriterClient::notifyWrite):
6771        (WebCore::PlatformFileWriterClient::notifyTruncate):
6772        (WebCore::PlatformFileWriterClient::notifyFail):
6773        * platform/blackberry/PlatformFileWriterClient.h: Added.
6774        (WebCore):
6775        (WTF):
6776        (WTF::WebCore::PlatformFileWriterClient):
6777        * platform/blackberry/WorkerAsyncFileSystemBlackBerry.cpp: Added.
6778        (WebCore):
6779        (WebCore::WorkerAsyncFileSystemBlackBerry::WorkerAsyncFileSystemBlackBerry):
6780        (WebCore::WorkerAsyncFileSystemBlackBerry::~WorkerAsyncFileSystemBlackBerry):
6781        (WebCore::WorkerAsyncFileSystemBlackBerry::waitForOperationToComplete):
6782        (WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystemOnMainThread):
6783        (WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystemOnMainThread):
6784        (WebCore::WorkerAsyncFileSystemBlackBerry::moveOnMainThread):
6785        (WebCore::WorkerAsyncFileSystemBlackBerry::copyOnMainThread):
6786        (WebCore::WorkerAsyncFileSystemBlackBerry::removeOnMainThread):
6787        (WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursivelyOnMainThread):
6788        (WebCore::WorkerAsyncFileSystemBlackBerry::readMetadataOnMainThread):
6789        (WebCore::WorkerAsyncFileSystemBlackBerry::createFileOnMainThread):
6790        (WebCore::WorkerAsyncFileSystemBlackBerry::createDirectoryOnMainThread):
6791        (WebCore::WorkerAsyncFileSystemBlackBerry::fileExistsOnMainThread):
6792        (WebCore::WorkerAsyncFileSystemBlackBerry::directoryExistsOnMainThread):
6793        (WebCore::WorkerAsyncFileSystemBlackBerry::readDirectoryOnMainThread):
6794        (WebCore::WorkerAsyncFileSystemBlackBerry::createWriterOnMainThread):
6795        (WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadataOnMainThread):
6796        (WebCore::WorkerAsyncFileSystemBlackBerry::openFileSystem):
6797        (WebCore::WorkerAsyncFileSystemBlackBerry::deleteFileSystem):
6798        (WebCore::WorkerAsyncFileSystemBlackBerry::move):
6799        (WebCore::WorkerAsyncFileSystemBlackBerry::copy):
6800        (WebCore::WorkerAsyncFileSystemBlackBerry::remove):
6801        (WebCore::WorkerAsyncFileSystemBlackBerry::removeRecursively):
6802        (WebCore::WorkerAsyncFileSystemBlackBerry::readMetadata):
6803        (WebCore::WorkerAsyncFileSystemBlackBerry::createFile):
6804        (WebCore::WorkerAsyncFileSystemBlackBerry::createDirectory):
6805        (WebCore::WorkerAsyncFileSystemBlackBerry::fileExists):
6806        (WebCore::WorkerAsyncFileSystemBlackBerry::directoryExists):
6807        (WebCore::WorkerAsyncFileSystemBlackBerry::readDirectory):
6808        (WebCore::WorkerAsyncFileSystemBlackBerry::createWriter):
6809        (WebCore::WorkerAsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
6810        * platform/blackberry/WorkerAsyncFileSystemBlackBerry.h: Added.
6811        (WebCore):
6812        (WorkerAsyncFileSystemBlackBerry):
6813        (WebCore::WorkerAsyncFileSystemBlackBerry::create):
6814        * platform/blackberry/WorkerAsyncFileWriterBlackBerry.cpp: Added.
6815        (WebCore):
6816        (WebCore::WorkerAsyncFileWriterBlackBerry::writeOnMainThread):
6817        (WebCore::WorkerAsyncFileWriterBlackBerry::truncateOnMainThread):
6818        (WebCore::WorkerAsyncFileWriterBlackBerry::abortOnMainThread):
6819        (WebCore::WorkerAsyncFileWriterBlackBerry::write):
6820        (WebCore::WorkerAsyncFileWriterBlackBerry::truncate):
6821        (WebCore::WorkerAsyncFileWriterBlackBerry::abort):
6822        (WebCore::WorkerAsyncFileWriterBlackBerry::waitForOperationToComplete):
6823        (WebCore::WorkerAsyncFileWriterBlackBerry::platformWriterClient):
6824        * platform/blackberry/WorkerAsyncFileWriterBlackBerry.h: Added.
6825        (WebCore):
6826        * platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.cpp: Added.
6827        (WebCore):
6828        (WebCore::performTaskOnMainThread):
6829        (WebCore::postTaskToMainThread):
6830        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyStop):
6831        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyOpenFileSystem):
6832        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifySucceed):
6833        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyFail):
6834        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadMetadata):
6835        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadDirectory):
6836        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateFileWriter):
6837        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::createAsyncFileSystem):
6838        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::createAsyncFileWriter):
6839        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::deleteMe):
6840        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::postTaskToWorkerThread):
6841        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyOpenFileSystemOnWorkerThread):
6842        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifySucceedOnWorkerThread):
6843        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyFailOnWorkerThread):
6844        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadMetadataOnWorkerThread):
6845        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyReadDirectoryEntryOnWorkerThread):
6846        (WebCore::WorkerPlatformAsyncFileSystemCallbacks::notifyCreateFileWriterOnWorkerThread):
6847        * platform/blackberry/WorkerPlatformAsyncFileSystemCallbacks.h: Added.
6848        (WebCore):
6849        * platform/blackberry/WorkerPlatformFileWriterClient.cpp: Added.
6850        (WebCore):
6851        (WebCore::WorkerPlatformFileWriterClient::notifyWriteOnWorkerThread):
6852        (WebCore::WorkerPlatformFileWriterClient::notifyFailOnWorkerThread):
6853        (WebCore::WorkerPlatformFileWriterClient::notifyTruncateOnWorkerThread):
6854        (WebCore::WorkerPlatformFileWriterClient::notifyWrite):
6855        (WebCore::WorkerPlatformFileWriterClient::notifyTruncate):
6856        (WebCore::WorkerPlatformFileWriterClient::notifyFail):
6857        (WebCore::WorkerPlatformFileWriterClient::postTaskToWorkerThreadIfNeeded):
6858        * platform/blackberry/WorkerPlatformFileWriterClient.h: Added.
6859        (WebCore):
6860        (WTF):
6861        (WTF::WebCore::WorkerPlatformFileWriterClient):
6862
68632013-04-11  Ryosuke Niwa  <rniwa@webkit.org>
6864
6865        Mac Lion build fix attempt after r148197.
6866
6867        * page/scrolling/mac/ScrollingStateNodeMac.mm:
6868
68692013-04-11  Alexey Proskuryakov  <ap@apple.com>
6870
6871        <rdar://problem/10416316> [Mac] WebSocket doesn't work with authenticating proxies
6872        https://bugs.webkit.org/show_bug.cgi?id=114464
6873
6874        Reviewed by Brady Eidson.
6875
6876        * platform/mac/WebCoreSystemInterface.h:
6877        * platform/mac/WebCoreSystemInterface.mm:
6878        Updated for new wkCopyCONNECTProxyResponse signature.
6879
6880        * platform/network/cf/SocketStreamHandleCFNet.cpp:
6881        (WebCore::SocketStreamHandle::executePACFileURL): Fixed a typo in a comment.
6882        (WebCore::SocketStreamHandle::addCONNECTCredentials): Don't crash even if the rest
6883        of the fix didn't work (which would be the case on some OS versions).
6884        (WebCore::SocketStreamHandle::readStreamCallback): Replaced most breaks with returns,
6885        because breaks were confusing in such a huge switch. Changed null proxyResponse
6886        to not be treated as authentication success, because it's not. Merged two parts
6887        of WaitingForConnect state handling for clarity.
6888        (WebCore::SocketStreamHandle::writeStreamCallback): Don't blindly assume that we
6889        can start WebSocket handshake after kCFStreamEventCanAcceptBytes. Perhaps it's
6890        nothing but a failed CONNECT, and a read callback still needs to send authentication.
6891        Without this, establishing connections was flaky. Added a check for Closed state,
6892        matching read callback.
6893
68942013-04-11  Sukolsak Sakshuwong  <sukolsak@gmail.com>
6895
6896        MutationRecord is not exposed
6897        https://bugs.webkit.org/show_bug.cgi?id=114288
6898
6899        Reviewed by Darin Adler.
6900
6901        Expose MutationRecord on DOMWindow. This patch is copied from a patch
6902        by Adam Klein. https://codereview.chromium.org/13861028
6903
6904        Test: fast/dom/MutationObserver/mutation-record-constructor.html
6905
6906        * page/DOMWindow.idl:
6907
69082013-04-11  Beth Dakin  <bdakin@apple.com>
6909
6910        Cannot scroll to footer on a page with overflow:hidden on the body
6911        https://bugs.webkit.org/show_bug.cgi?id=114462
6912        -and corresponding-
6913        <rdar://problem/13530042>
6914
6915        Reviewed by Simon Fraser.
6916
6917        Add a new scenario in which we want to overrideHidden -- whenever we are the 
6918        mainFrame and there is a header or footer.
6919
6920        * page/FrameView.cpp:
6921        (WebCore::FrameView::applyOverflowToViewport):
6922
69232013-04-11  Commit Queue  <rniwa@webkit.org>
6924
6925        Unreviewed, rolling out r148034, r148052, r148097, and
6926        r148194.
6927        http://trac.webkit.org/changeset/148034
6928        http://trac.webkit.org/changeset/148052
6929        http://trac.webkit.org/changeset/148097
6930        http://trac.webkit.org/changeset/148194
6931        https://bugs.webkit.org/show_bug.cgi?id=114463
6932
6933        broke mutiresolution favicons, among other things (Requested
6934        by thorton on #webkit).
6935
6936        * loader/icon/IconDatabase.cpp:
6937        (WebCore::IconDatabase::setIconDataForIconURL):
6938        * loader/icon/IconDatabase.h:
6939        (IconDatabase):
6940        * loader/icon/IconDatabaseBase.h:
6941        * loader/icon/IconRecord.cpp:
6942        * loader/icon/IconRecord.h:
6943        (IconRecord):
6944
69452013-04-11  ChangSeok Oh  <changseok.oh@collabora.com>
6946
6947        [GTK][AC] Implement GraphicsLayerClutter::moveOrCopyAnimations
6948        https://bugs.webkit.org/show_bug.cgi?id=114019
6949
6950        Reviewed by Gustavo Noronha Silva.
6951
6952        Fill moveOrCopyAnimations that is based on Mac port implementation.
6953
6954        Tests: animations/3d/change-transform-in-end-event.html
6955               animations/3d/transform-origin-vs-functions.html
6956               compositing/animation/state-at-end-event-transform-layer.html
6957
6958        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
6959        (WebCore::GraphicsLayerClutter::moveOrCopyLayerAnimation):
6960        (WebCore):
6961        (WebCore::GraphicsLayerClutter::moveOrCopyAnimations):
6962        * platform/graphics/clutter/GraphicsLayerClutter.h:
6963
69642013-04-11  Anders Carlsson  <andersca@apple.com>
6965
6966        Implement StorageManager::getValues
6967        https://bugs.webkit.org/show_bug.cgi?id=114461
6968
6969        Reviewed by Beth Dakin.
6970
6971        Expose the item hash map.
6972
6973        * storage/StorageMap.h:
6974        (WebCore::StorageMap::items):
6975
69762013-04-11  Eli Fidler  <efidler@blackberry.com>
6977
6978        [BlackBerry] Use the platform list of languages with fonts instead of hardcoding
6979        https://bugs.webkit.org/show_bug.cgi?id=114452
6980
6981        Reviewed by Rob Buis.
6982
6983        BlackBerry PR 325244
6984        Internally reviewed by Jeff Rogers
6985
6986        No functional change, but platform font changes won't need a WebKit change
6987        going forward.
6988
6989        * page/blackberry/SettingsBlackBerry.cpp:
6990        (WebCore::Settings::initializeDefaultFontFamilies):
6991
69922013-04-11  Dirk Schulze  <krit@webkit.org>
6993
6994        [CSS Shaders] Parse parameters descriptor
6995        https://bugs.webkit.org/show_bug.cgi?id=114455
6996
6997        Reviewed by Dean Jackson.
6998
6999        Add support for the 'parameters' descriptor in the filter at-rule to support
7000        parameterization of CSS Shaders.
7001
7002        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-parameters
7003
7004        Tests: css3/filters/custom-with-at-rule-syntax/parsing-parameters-property-invalid.html
7005               css3/filters/custom-with-at-rule-syntax/parsing-parameters-property-valid.html
7006
7007        * css/CSSComputedStyleDeclaration.cpp:
7008        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
7009        * css/CSSParser.cpp: Added 'parameters' property and fail parsing if not inside
7010            of an @filter rule.
7011        (WebCore::CSSParser::parseValue):
7012        (WebCore::CSSParser::parseFilterRuleParameters): New helper function to verify
7013            values.
7014        (WebCore):
7015        * css/CSSParser.h:
7016        * css/CSSProperty.cpp:
7017        (WebCore::CSSProperty::isInheritedProperty):
7018        * css/CSSPropertyNames.in: Added new property name 'parameters'.
7019        * css/StyleResolver.cpp:
7020        (WebCore::StyleResolver::applyProperty):
7021
70222013-04-11  Arunprasad Rajkumar  <arunprasadr@nds.com>
7023
7024        Default Implementation of toString for NPObject shouldn't return NPClass & NPObject address as String
7025        https://bugs.webkit.org/show_bug.cgi?id=114450
7026
7027        Reviewed by Anders Carlsson.
7028
7029        * bridge/c/c_instance.cpp:
7030        (JSC::Bindings::CInstance::stringValue):
7031
70322013-04-11  Robert Hogan  <robert@webkit.org>
7033
7034        REGRESSION (142152): ensure we skip past out-of-flow objects when detecting whitespace to ignore after leading empty inlines
7035        https://bugs.webkit.org/show_bug.cgi?id=114311
7036
7037        Reviewed by Emil A Eklund.
7038
7039        When we hit an empty inline in line layout and try to detect whether it has any whitespace after it that we ought to ignore, then
7040        we need to skip past out-of-flow and floating objects when looking for that whitespace. Failure to do so will result in us
7041        adding the width from the first space we encounter to our line width and over-estimating the real width of the line.
7042
7043        We're hitting this bug now because we have broadened the category of empty inlines that get lineboxes so we go into line layout 
7044        and have to deal with them and their subsequent whitespace there. Previously this sort of whitespace would have been simply
7045        consumed by |skipLeadingWhitespace|.
7046
7047        Test: fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline.html
7048
7049        * rendering/RenderBlockLineLayout.cpp:
7050        (WebCore::shouldSkipWhitespaceAfterStartObject):
7051
70522013-04-11  Ryosuke Niwa  <rniwa@webkit.org>
7053
7054        Autocorrected text doesn't have a marker of type autocorrected
7055        https://bugs.webkit.org/show_bug.cgi?id=114337
7056
7057        Reviewed by Darin Adler.
7058
7059        The bug was caused by markAndReplaceFor's text replacement errornously assuming that there are
7060        no other text checking result starting at the same offset. That resulted in us adjusting location
7061        offsets of the subsequent results pointing at the replaced text, hit an assertion, and blow up.
7062
7063        Fixed the bug by skipping all remaining results for the replaced text since they're no longer
7064        applicable.
7065
7066        Tests: Existing autocorection tests have been updated to assert new behavior.
7067
7068        * editing/Editor.cpp:
7069        (WebCore::Editor::markAndReplaceFor):
7070
70712013-04-11  Michelangelo De Simone  <michelangelo@webkit.org>
7072
7073        [CSS Shaders] Parse the geometry descriptor
7074        https://bugs.webkit.org/show_bug.cgi?id=110815
7075
7076        Added initial parsing for the "geometry" descriptor, as per specification:
7077        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#geometry
7078        This descriptor allows to specify the mesh geometry for custom filters.
7079
7080        Reviewed by Dirk Schulze.
7081
7082        Tests: css3/filters/custom-with-at-rule-syntax/parsing-geometry-property-invalid.html
7083               css3/filters/custom-with-at-rule-syntax/parsing-geometry-property-valid.html
7084
7085        * css/CSSComputedStyleDeclaration.cpp:
7086        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
7087        * css/CSSParser.cpp:
7088        (WebCore::CSSParser::parseValue):
7089        (WebCore::CSSParser::parseGeometry): New method that parses the geometry
7090        descriptor (grid()).
7091        (WebCore):
7092        * css/CSSParser.h:
7093        * css/CSSProperty.cpp:
7094        (WebCore::CSSProperty::isInheritedProperty):
7095        * css/CSSPropertyNames.in: Added conditional "geometry" property.
7096        * css/CSSValueKeywords.in: Added conditional "attached" value keyword; detached
7097        was already there.
7098
70992013-04-11  Anders Carlsson  <andersca@apple.com>
7100
7101        Make StorageAreaMap dispatch session storage events
7102        https://bugs.webkit.org/show_bug.cgi?id=114454
7103
7104        Reviewed by Beth Dakin.
7105
7106        Export storage symbols and headers needed by WebKit2.
7107
7108        * WebCore.exp.in:
7109        * WebCore.xcodeproj/project.pbxproj:
7110
71112013-04-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
7112
7113        handleMouseMoveEvent should let hit-testing hit-test scrollbars
7114        https://bugs.webkit.org/show_bug.cgi?id=114430
7115
7116        Reviewed by Antonio Gomes.
7117
7118        Allow hit-testing to hit-test frame scrollbars so handleMouseMoveEvent
7119        does not have to do it itself.
7120
7121        * page/EventHandler.cpp:
7122        (WebCore::EventHandler::handleMouseMoveEvent):
7123
71242013-04-11  Brian Holt  <brian.holt@samsung.com>
7125
7126        [Gtk] Combo boxes should be arrow-out-of-able similar to list boxes when caret-browsing is enabled.
7127        https://bugs.webkit.org/show_bug.cgi?id=76796
7128
7129        Reviewed by Chris Fleizach.
7130
7131        When using caret-browsing with the right and left arrows, the
7132        behaviour of menuLists should be the same as listBoxes. This means
7133        not default-handling the event and passing it up the stack instead.
7134
7135        * html/HTMLSelectElement.cpp:
7136        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
7137
71382013-04-11  Alexey Proskuryakov  <ap@apple.com>
7139
7140        Remove some ResourceHandle.h includes
7141        https://bugs.webkit.org/show_bug.cgi?id=114416
7142
7143        Reviewed by Ryosuke Niwa.
7144
7145        * loader/CrossOriginAccessControl.h:
7146        * loader/CrossOriginPreflightResultCache.h:
7147        These files don't need ResourceHandle.h, just ResourceHandleTypes.h.
7148
7149        * loader/TextTrackLoader.cpp:
7150        * loader/ThreadableLoader.h:
7151        * loader/appcache/ApplicationCacheGroup.h:
7152        * loader/cache/MemoryCache.h:
7153        * loader/mac/ResourceLoaderMac.mm:
7154        * page/Settings.cpp:
7155        * platform/network/AuthenticationChallengeBase.cpp:
7156        * platform/network/cf/CookieJarCFNet.cpp:
7157        * platform/network/cf/ResourceRequestCFNet.cpp:
7158        * xml/XSLTProcessorLibxslt.cpp:
7159        * xml/parser/XMLDocumentParser.cpp:
7160        * xml/parser/XMLDocumentParserLibxml2.cpp:
7161        Just straightforward removal of includes.
7162
71632013-04-04  Allan Sandfeld Jensen  <allan.jensen@digia.com>
7164
7165        Use CSS4 image-rendering to determing image scaling quality
7166        https://bugs.webkit.org/show_bug.cgi?id=113405
7167
7168        Reviewed by Simon Fraser.
7169
7170        Implement the new CSS4 image-rendering property values.
7171
7172        Image scaling now uses low-quality (pixelated) scaling for
7173        crisp-edges, pixelated and optimizeSpeed values, and always
7174        use high quality (smooth) scaling for -webkit-smooth and
7175        optimizeQuality. The latter can be used to disable low quality
7176        scaling during CSS animations or live resizing.
7177
7178        The new values are protected with a new CSS4_IMAGES feature, but
7179        the crisp-edge value has been introduced before to displace the
7180        deprecated -webkit-optimize-contrast value, and optimizeSpeed
7181        and optimizeQuality values are supported for SVG compatibility.
7182
7183        * css/CSSParser.cpp:
7184        (WebCore::isValidKeywordPropertyAndValue):
7185        * css/CSSPrimitiveValueMappings.h:
7186        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
7187        (WebCore::CSSPrimitiveValue::operator EImageRendering):
7188        * css/CSSValueKeywords.in:
7189        * rendering/RenderBoxModelObject.cpp:
7190        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
7191        * rendering/RenderHTMLCanvas.cpp:
7192        (WebCore::RenderHTMLCanvas::paintReplaced):
7193        * rendering/style/RenderStyleConstants.h:
7194
71952013-04-11  Adenilson Cavalcanti  <cavalcantii@gmail.com>
7196
7197        Build fix: use of uninitialized variable in ScrollingStateTree
7198        https://bugs.webkit.org/show_bug.cgi?id=114443
7199
7200        Reviewed by Anders Carlsson.
7201
7202        Initialize pointer to zero before use, fixes build.
7203        No new tests, no changes on behavior.
7204
7205        * page/scrolling/ScrollingStateTree.cpp:
7206        (WebCore::ScrollingStateTree::attachNode):
7207
72082013-04-11  Dirk Schulze  <krit@webkit.org>
7209
7210        [CSS Shaders] Parse mix descriptor
7211        https://bugs.webkit.org/show_bug.cgi?id=114414
7212
7213        Reviewed by Antti Koivisto.
7214
7215        Add support for the 'mix' descriptor in the filter at-rule to support blend modes
7216        and composite operators in CSS Shaders.
7217        Each pixel in the fragment shader will be blended and composited with the
7218        backdrop by taking these values into account.
7219
7220        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-mix
7221
7222        Tests: css3/filters/custom-with-at-rule-syntax/parsing-mix-property-invalid.html
7223               css3/filters/custom-with-at-rule-syntax/parsing-mix-property-valid.html
7224
7225        * css/CSSComputedStyleDeclaration.cpp:
7226        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
7227        * css/CSSParser.cpp: Added 'mix' property and fail parsing if not inside
7228            of an @filter rule.
7229        (WebCore::CSSParser::parseValue):
7230        (WebCore::CSSParser::parseFilterRuleMix): New helper function to verify
7231            values.
7232        (WebCore):
7233        * css/CSSParser.h:
7234        * css/CSSProperty.cpp:
7235        (WebCore::CSSProperty::isInheritedProperty):
7236        * css/CSSPropertyNames.in: Added new property name 'mix'.
7237        * css/StyleResolver.cpp:
7238        (WebCore::StyleResolver::applyProperty):
7239
72402013-04-11  Zalan Bujtas  <zalan@apple.com>
7241
7242        Parent box with background-size auto and gradient image does not get properly repainted when child box is resized. 
7243        https://bugs.webkit.org/show_bug.cgi?id=114424
7244
7245        Reviewed by Antti Koivisto.
7246        
7247        Initiate full repaint on fill layer, when the image is generated and the background
7248        property defines auto size.
7249        http://www.w3.org/TR/css3-background/#background-size
7250        'If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for 'contain'.'
7251
7252        Extended fast/repaint/background-shorthand-with-gradient-and-height-changes.html
7253        to cover this case too.
7254
7255        * rendering/RenderObject.cpp:
7256        (WebCore::mustRepaintFillLayers):
7257
72582013-04-11  ChangSeok Oh  <changseok.oh@collabora.com>
7259
7260        [GTK][AC] use a smart pointer for GList and ClutterCanvas
7261        https://bugs.webkit.org/show_bug.cgi?id=114057
7262
7263        Reviewed by Gustavo Noronha Silva.
7264
7265        We can make simple code & prevent possible memory leak by using a proper smart pointer.
7266        Especially if we get children by clutter_actor_get_children, we should free it after using.
7267
7268        No functionality changed.
7269
7270        * platform/graphics/clutter/GraphicsLayerActor.cpp:
7271        (graphicsLayerActorUpdateTexture):
7272        (graphicsLayerActorRemoveAll):
7273
72742013-04-11  Arvid Nilsson  <anilsson@rim.com>
7275
7276        [BlackBerry][CSS Filters] Blur filter fails to recompute blur size when layer size changes
7277        https://bugs.webkit.org/show_bug.cgi?id=114272
7278
7279        Reviewed by Rob Buis.
7280
7281        Blur appeared blocky or pixelated when surface changed size after
7282        creating the filter actions. The initial image size was used to
7283        determine the blur size (expressed in texture coordinate system).
7284        Fixed by recomputing the blur size when the surface size changes, using
7285        a new Uniform1f subclass that can use a functor to compute the uniform
7286        value per-frame.
7287
7288        This fixes css3/filters/effect-blur-hw.html. This can only be verified
7289        by manual inspection because the BlackBerry port is not currently using
7290        pixel tests.
7291
7292        PR 323730
7293
7294        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
7295        (WebCore):
7296        (SurfaceFunctor):
7297        (WebCore::SurfaceFunctor::SurfaceFunctor):
7298        (InverseSurfaceWidth):
7299        (WebCore::InverseSurfaceWidth::InverseSurfaceWidth):
7300        (WebCore::InverseSurfaceWidth::operator()):
7301        (InverseSurfaceHeight):
7302        (WebCore::InverseSurfaceHeight::InverseSurfaceHeight):
7303        (WebCore::LayerFilterRenderer::actionsForOperations):
7304        * platform/graphics/blackberry/LayerFilterRenderer.h:
7305        (Uniform1f):
7306        (WebCore):
7307        (Uniform1fWithFunctor):
7308        (WebCore::Uniform1fWithFunctor::create):
7309        (WebCore::Uniform1fWithFunctor::Uniform1fWithFunctor):
7310        (WebCore::Uniform1fWithFunctor::apply):
7311        (WebCore::Uniform1f::createWithFunctor):
7312
73132013-04-11  Arvid Nilsson  <anilsson@rim.com>
7314
7315        [BlackBerry] Accelerated compositing debug rectangle incorrectly drawn for layers with surfaces
7316        https://bugs.webkit.org/show_bug.cgi?id=114275
7317
7318        Reviewed by Carlos Garcia Campos.
7319
7320        The drawDebugBorder method was updated to mirror the logic in
7321        compositeLayersRecursive, i.e. if we're compositing a surface to the
7322        screen, use the transformed bounds stored in the surface. The bounds
7323        stored in the layer should only be used when drawing the layer to the
7324        surface.
7325
7326        Speaking of which, also update the code to skip border drawing when
7327        drawing a layer to a surface. Drawing the borders inside the surface
7328        would only result in messing up the surface contents, especially when
7329        CSS filters like blur were the reason for having a surface in the first
7330        place - the border would be blurred and hard to discern.
7331
7332        Only manually testable, the debug border is disabled during layout
7333        tests.
7334
7335        PR 323746
7336
7337        * platform/graphics/blackberry/LayerRenderer.cpp:
7338        (WebCore::LayerRenderer::drawDebugBorder):
7339        * platform/graphics/blackberry/LayerRendererSurface.cpp:
7340        (WebCore::LayerRendererSurface::drawRect):
7341        (WebCore::LayerRendererSurface::transformedBounds): Added.
7342        (WebCore):
7343        * platform/graphics/blackberry/LayerRendererSurface.h:
7344        (LayerRendererSurface):
7345
73462013-04-11  Arvid Nilsson  <anilsson@rim.com>
7347
7348        [BlackBerry] Compiler warning in LayerWebKitThread.cpp
7349        https://bugs.webkit.org/show_bug.cgi?id=114277
7350
7351        Reviewed by Carlos Garcia Campos.
7352
7353        All the relevant WTF::Vector APIs use size_t, storing the position in
7354        an int resulted in a compiler warning. Fixed by switching to size_t.
7355
7356        No change in behavior, no new tests.
7357
7358        PR 323753
7359
7360        * platform/graphics/blackberry/LayerWebKitThread.cpp:
7361        (WebCore::LayerWebKitThread::remove):
7362        (WebCore::LayerWebKitThread::replaceSublayer):
7363
73642013-04-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
7365
7366        [CoordinatedGraphics] Use ScrollingStateTree to handle fixed elements positioning while scrolling
7367        https://bugs.webkit.org/show_bug.cgi?id=114353
7368
7369        Reviewed by Noam Rosenthal.
7370        
7371        ScrollingCoordinatorCoordinatedGraphics should implement threaded scrolling interface and
7372        re-use threaded scrolling approach (ScrollingStateTree and ViewportConstraints) to handle
7373        fixed/sticky elements positioning while scrolling. The rationals are below.
7374
7375        Before the change ScrollingCoordinatorCoordinatedGraphics was implementing Chromium-specific
7376        interface which is going to be removed eventually as there is no ScrollingCoordinatorChromium
7377        existing.
7378
7379        Tested by existing manual tests (fixed-position.html for example.
7380
7381        * CMakeLists.txt:
7382        * Target.pri:
7383            Included ScrollingStateTree files.
7384
7385        * page/scrolling/ScrollingStateFixedNode.cpp:
7386        * page/scrolling/ScrollingStateFixedNode.h:
7387        * page/scrolling/ScrollingStateNode.cpp:
7388        * page/scrolling/ScrollingStateNode.h:
7389        * page/scrolling/ScrollingStateScrollingNode.cpp:
7390        * page/scrolling/ScrollingStateScrollingNode.h:
7391        * page/scrolling/ScrollingStateStickyNode.cpp:
7392        * page/scrolling/ScrollingStateStickyNode.h:
7393        * page/scrolling/ScrollingStateTree.cpp:
7394        * page/scrolling/ScrollingStateTree.h:
7395            Removed ENABLE(THREADED_SCROLLING) code guards.
7396
7397        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
7398        (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
7399        (WebCore::ScrollingCoordinatorCoordinatedGraphics::~ScrollingCoordinatorCoordinatedGraphics):
7400        (WebCore):
7401        (WebCore::ScrollingCoordinatorCoordinatedGraphics::attachToStateTree):
7402        (WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
7403        (WebCore::ScrollingCoordinatorCoordinatedGraphics::clearStateTree):
7404        (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
7405        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
7406            ScrollingCoordinatorCoordinatedGraphics is using threaded scrolling approach to handle fixed
7407            elements positioning while scrolling.
7408
7409        (WebCore):
7410        (ScrollingCoordinatorCoordinatedGraphics):
7411        * page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp: Added.
7412        (WebCore):
7413        (WebCore::ScrollingStateNode::platformScrollLayer):
7414        (WebCore::ScrollingStateNode::setScrollPlatformLayer):
7415        (WebCore::ScrollingStateNode::setScrollLayer):
7416        * page/scrolling/coordinatedgraphics/ScrollingStateScrollingNodeCoordinatedGraphics.cpp: Added.
7417        (WebCore):
7418        (WebCore::ScrollingStateScrollingNode::counterScrollingPlatformLayer):
7419        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
7420
74212013-04-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
7422
7423        [Qt] EventHandler should handle Space and BackSpace 
7424        https://bugs.webkit.org/show_bug.cgi?id=114428
7425
7426        Reviewed by Jocelyn Turcotte.
7427
7428        Enable default space-handling for Qt.
7429
7430        * page/EventHandler.cpp:
7431
74322013-04-11  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
7433
7434        IconDatabase: Simplify boolean logic in assertion.
7435        https://bugs.webkit.org/show_bug.cgi?id=114425
7436
7437        Reviewed by Andreas Kling.
7438
7439        Follow-up to r148097; drop the overzealous use of !! to turn a
7440        PassRefPtr into a boolean.
7441
7442        * loader/icon/IconDatabase.cpp:
7443        (WebCore::IconDatabase::updateIconRecord):
7444
74452013-04-11  Arvid Nilsson  <anilsson@rim.com>
7446
7447        [BlackBerry] LayerTexture refactoring
7448        https://bugs.webkit.org/show_bug.cgi?id=114276
7449
7450        Reviewed by Carlos Garcia Campos.
7451
7452        Remove the GpuHandle and HostType typedefs from LayerTexture, they
7453        don't make any sense now that we removed the Skia code paths. With Skia
7454        they used to be an OpenGL texture ID and an SkBitmap respectively, but
7455        now it's just BlackBerry::Platform::Graphics::Buffer all around.
7456
7457        This allows us to rename textureId() into buffer() which is more to the
7458        point. The texture ID concept is now up for grabs and can be used to
7459        consolidate all the various code for extracting an OpenGL texture from
7460        a BlackBerry::Platform::Graphics::Buffer. This opportunity is seized in
7461        LayerTexture::platformTexture(), a name which makes more sense than
7462        textureId() for anyone familiar with the GraphicsContext3D code. We can
7463        also leverage the Platform3DObject typedef to avoid including gl2.h.
7464
7465        The vertex attribute state was getting trampled when interacting with
7466        BlackBerry::Platform::Graphics in the LayerFilterRenderer. Some
7467        additional GL state save/restore incantations when accessing the OpenGL
7468        texture for a LayerTexture in the new LayerTexture::platformTexture()
7469        method fixes various CSS Filters test cases.
7470
7471        Since we removed the Skia integration from LayerTiler, nobody cares
7472        about the dirty rect, tile rect or opaqueness of the tile contents. So
7473        remove those parameters from the updateContents code path.
7474
7475        No change in behavior except for fixing CSS Filters tests like
7476        css3/filters/effect-blur-hw.html. This can only be verified by manually
7477        looking at the tests, we don't have pixel test support to catch this
7478        kind of regression.
7479
7480        PR 322882
7481
7482        * platform/graphics/blackberry/LayerCompositingThread.cpp:
7483        (WebCore::LayerCompositingThread::drawSurface):
7484        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
7485        (WebCore::LayerFilterRenderer::ping):
7486        (WebCore::LayerFilterRenderer::pong):
7487        (WebCore::LayerFilterRenderer::pushSnapshot):
7488        (WebCore::LayerFilterRenderer::popSnapshot):
7489        (WebCore::LayerFilterRenderer::applyActions):
7490        * platform/graphics/blackberry/LayerRenderer.cpp:
7491        (WebCore::LayerRenderer::useSurface):
7492        * platform/graphics/blackberry/LayerTexture.cpp:
7493        (WebCore::LayerTexture::LayerTexture):
7494        (WebCore::LayerTexture::updateContents):
7495        (WebCore::LayerTexture::setContentsToColor):
7496        (WebCore::LayerTexture::protect):
7497        (WebCore::LayerTexture::platformTexture):
7498        (WebCore):
7499        * platform/graphics/blackberry/LayerTexture.h:
7500        (WebCore::LayerTexture::isDirty):
7501        (WebCore::LayerTexture::buffer):
7502        (LayerTexture):
7503        (WebCore::LayerTexture::setBuffer):
7504        * platform/graphics/blackberry/LayerTile.cpp:
7505        (WebCore::LayerTile::setContents):
7506        (WebCore::LayerTile::updateContents):
7507        * platform/graphics/blackberry/LayerTile.h:
7508        (WebCore::LayerTile::hasTexture):
7509        (LayerTile):
7510        * platform/graphics/blackberry/LayerTiler.cpp:
7511        (WebCore::LayerTiler::updateTextureContentsIfNeeded):
7512        (WebCore::LayerTiler::uploadTexturesIfNeeded):
7513        (WebCore::LayerTiler::performTileJob):
7514        (WebCore::LayerTiler::drawTile):
7515        * platform/graphics/blackberry/LayerTiler.h:
7516        (WebCore::LayerTiler::TextureJob::TextureJob):
7517        (WebCore::LayerTiler::TextureJob::setContents):
7518        (WebCore::LayerTiler::TextureJob::updateContents):
7519        (TextureJob):
7520        (LayerTiler):
7521        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
7522        (WebCore::TextureCacheCompositingThread::createBuffer):
7523        (WebCore::TextureCacheCompositingThread::collectGarbage):
7524        (WebCore::TextureCacheCompositingThread::install):
7525        (WebCore::TextureCacheCompositingThread::resizeTexture):
7526        (WebCore::TextureCacheCompositingThread::evict):
7527        (WebCore::TextureCacheCompositingThread::textureForContents):
7528        (WebCore::TextureCacheCompositingThread::updateContents):
7529        * platform/graphics/blackberry/TextureCacheCompositingThread.h:
7530        (TextureCacheCompositingThread):
7531        (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
7532        (ZombieTexture):
7533
75342013-04-11  Alberto Garcia  <agarcia@igalia.com>
7535
7536        [BlackBerry] RenderThemeBlackBerry: upstream missing code
7537        https://bugs.webkit.org/show_bug.cgi?id=114343
7538
7539        Reviewed by Xan Lopez.
7540
7541        Add implementations of sliderTickSize() and
7542        sliderTickOffsetFromTrackCenter(), as well as a missing header.
7543
7544        * platform/blackberry/RenderThemeBlackBerry.cpp:
7545        (WebCore):
7546        (WebCore::RenderThemeBlackBerry::sliderTickSize):
7547        (WebCore::RenderThemeBlackBerry::sliderTickOffsetFromTrackCenter):
7548        * platform/blackberry/RenderThemeBlackBerry.h:
7549        (RenderThemeBlackBerry):
7550
75512013-04-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
7552
7553        HitTestRequest::AllowFrameScrollbars does not test main frame scrollbar
7554        https://bugs.webkit.org/show_bug.cgi?id=112563
7555
7556        Reviewed by Antonio Gomes.
7557
7558        Move the frame scrollbar testing from RenderPart to RenderView, so that it is
7559        tested by all frame and not just child frames. At the same time remove the 
7560        main frame test from the one current callsite using the option.
7561
7562        Tested by fast/events/touch/gesture/gesture-scrollbar.html.
7563
7564        * page/EventHandler.cpp:
7565        (WebCore::EventHandler::handleGestureEvent):
7566        * rendering/RenderPart.cpp:
7567        (WebCore::RenderPart::nodeAtPoint):
7568        * rendering/RenderView.cpp:
7569        (WebCore::RenderView::hitTest):
7570
75712013-04-11  Rune Lillesveen  <rune@opera.com>
7572
7573        Incorrect evaluation of resolution media queries
7574        https://bugs.webkit.org/show_bug.cgi?id=114029
7575
7576        Reviewed by Kenneth Rohde Christiansen.
7577
7578        The implementation used the physical resolution to evaluate the
7579        resolution media features. Changed to use the actual CSS resolution,
7580        also known as the device-pixel-ratio, instead. Unified the code for
7581        evaluating the resolution and device-pixel-ratio media features.
7582
7583        No new tests, covered by existing tests.
7584
7585        * WebCore.exp.in:
7586        * css/CSSPrimitiveValue.h:
7587        (WebCore::CSSPrimitiveValue::isResolution):
7588        * css/MediaQueryEvaluator.cpp:
7589        (WebCore::evalResolution):
7590        (WebCore::device_pixel_ratioMediaFeatureEval):
7591        (WebCore::resolutionMediaFeatureEval):
7592        * page/Screen.cpp:
7593        * page/Screen.h:
7594        * page/Settings.cpp:
7595        (WebCore):
7596        * page/Settings.h:
7597        (Settings):
7598        * testing/InternalSettings.cpp:
7599        (WebCore::InternalSettings::Backup::Backup):
7600        (WebCore::InternalSettings::Backup::restoreTo):
7601        * testing/InternalSettings.h:
7602        (Backup):
7603        (InternalSettings):
7604        * testing/InternalSettings.idl:
7605
76062013-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>
7607
7608        FrameLoaderClient::assignIdentifierToInitialRequest() not called for the main resource when loaded from the memory cache
7609        https://bugs.webkit.org/show_bug.cgi?id=112418
7610
7611        Reviewed by Darin Adler.
7612
7613        When the main resource is loaded from the memory cache the
7614        response is not added to the ResponseVector of the document
7615        loader, so that when committing the provisional load the remaining
7616        delegate messages are not called because the ResponseVector of the
7617        document loader is empty. When the main resource is loaded from
7618        the memory cache, there's no resource loader, and the client is
7619        notified about the response received using
7620        ResourceLoadNotifier::dispatchDidReceiveResponse() directly
7621        instead of ResourceLoadNotifier::didReceiveResponse() which is the
7622        one adding the response to the ResponseVector of the document
7623        loader. So, the problem can be fixed by adding the response to the
7624        ResponseVector before calling dispatchDidReceiveResponse() when
7625        loading the main resource without a resource loade
7626
7627        Test: loader/go-back-cached-main-resource.html
7628
7629        * loader/DocumentLoader.cpp:
7630        (WebCore::DocumentLoader::responseReceived):
7631
76322013-04-10  Alexey Proskuryakov  <ap@apple.com>
7633
7634        Remove some includes of CachedImage.h
7635        https://bugs.webkit.org/show_bug.cgi?id=114411
7636
7637        Reviewed by Dan Bernstein.
7638
7639        * css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
7640        definition of a class it holds, but default construction does not.
7641
7642        * rendering/RenderImageResource.cpp:
7643        * rendering/RenderImageResource.h:
7644        Moved definitions of virtual functions to a .cpp file. There is no win from having
7645        them inline, and now we don't need CachedImage.h in the header.
7646
7647        * bindings/js/JSNodeCustom.cpp:
7648        * dom/Clipboard.cpp:
7649        (WebCore::Clipboard::Clipboard):
7650        * platform/mac/ClipboardMac.h:
7651        * rendering/InlineFlowBox.cpp:
7652        * rendering/RenderBox.cpp:
7653        * rendering/RenderListItem.cpp:
7654        * rendering/RenderListMarker.cpp:
7655        * rendering/RenderTableCol.cpp:
7656        * rendering/RenderTableRow.cpp:
7657        * rendering/RenderTableSection.cpp:
7658        * svg/graphics/SVGImageCache.cpp:
7659        Removed unnecessary includes.
7660
7661        * platform/mac/PasteboardMac.mm:
7662        * rendering/RenderSnapshottedPlugIn.cpp:
7663        Added ones where they are now necessary.
7664
76652013-04-10  No'am Rosenthal  <noam@webkit.org>
7666
7667        Allow direct compositing of background images
7668        https://bugs.webkit.org/show_bug.cgi?id=108203
7669
7670        Reviewed by Simon Fraser.
7671
7672        Use setContentsToImage for background images, if the GraphicsLayer has only a background
7673        bitmap image and nothing else. Compute the contentsRect/contentsTileRect from the box model.
7674        Added new properties to GraphicsLayer, contentsTilePhase and contentsTileSize, which controls the "single tile rect",
7675        which allows us to compute the pattern-space transform of a tile, thus allowing background-size
7676        and other characteristics of background images.
7677
7678        This feature is explicitly disabled when there is any composition with a background color or if
7679        there are several background images, as in that case having a single backing store has some
7680        advantages over directly compositing in hardware.
7681
7682        Currently, this feature is disabled for all ports, allowing ports to implement their backend
7683        and decide when to enable it.
7684
7685        Note that RenderBoxModelObject::getGeometryForBackgroundImage crops the contents rect to the 
7686        area that contains the tiles, which allows us to assume full tiling in GraphicsLayer.
7687        In this way contentsTileSize/Phase is equivalent to GraphicsContext::drawTiledImage.
7688
7689        Tests: compositing/patterns/direct-pattern-compositing-add-text.html
7690               compositing/patterns/direct-pattern-compositing-change.html
7691               compositing/patterns/direct-pattern-compositing-contain.html
7692               compositing/patterns/direct-pattern-compositing-cover.html
7693               compositing/patterns/direct-pattern-compositing-load.html
7694               compositing/patterns/direct-pattern-compositing-padding.html
7695               compositing/patterns/direct-pattern-compositing-position.html
7696               compositing/patterns/direct-pattern-compositing-rotation.html
7697               compositing/patterns/direct-pattern-compositing-size.html
7698               compositing/patterns/direct-pattern-compositing.html
7699
7700        * platform/graphics/GraphicsLayer.h:
7701        (GraphicsLayer):
7702        (WebCore::GraphicsLayer::setContentsTileSize):
7703        (WebCore::GraphicsLayer::setContentsTilePhase):
7704        (WebCore::GraphicsLayer::contentsTileSize):
7705        (WebCore::GraphicsLayer::contentsTilePhase):
7706        (WebCore::GraphicsLayer::supportsContentsTiling):
7707                Add a contentsTileRect property that enables tile-repeat of background images.
7708
7709        * rendering/RenderBox.cpp:
7710        (WebCore::RenderBox::imageChanged):
7711                Pass background image changes to the layer backing.
7712
7713        * rendering/RenderBoxModelObject.cpp:
7714        * rendering/RenderBoxModelObject.h:
7715        (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
7716                Expose a function that performs the geometry calculations needed to determine 
7717                the tileRect for a background image. This function is also responsible
7718                for cropping the contentsRect to fit the area that is drawn into.
7719
7720        * rendering/RenderLayerBacking.h:
7721        * rendering/RenderLayerBacking.cpp:
7722        (WebCore::RenderLayerBacking::contentChanged):
7723        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
7724        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
7725        (WebCore::RenderLayerBacking::updateDirectlyCompositedContents):
7726        (WebCore::RenderLayerBacking::resetContentsRect):
7727        (WebCore::hasBoxDecorationsOrBackgroundImage):
7728        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
7729        (WebCore::canCreateTiledImage):
7730        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
7731        (WebCore::backgroundRectForBox):
7732                Allow background images to be directly composited if conditions allow (see bug description).
7733
77342013-04-10  Patrick Gansterer  <paroga@webkit.org>
7735
7736        Replace ENABLE_LEGACY_WEB_AUDIO preprocessor statements in IDL files with Conditional attribute
7737        https://bugs.webkit.org/show_bug.cgi?id=114351
7738
7739        Reviewed by Ryosuke Niwa.
7740
7741        The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
7742
7743        * Modules/webaudio/AudioBufferSourceNode.idl:
7744        * Modules/webaudio/AudioContext.idl:
7745        * Modules/webaudio/AudioParam.idl:
7746        * Modules/webaudio/OscillatorNode.idl:
7747
77482013-04-10  Patrick Gansterer  <paroga@webkit.org>
7749
7750        Replace ENABLE_DIRECTORY_UPLOAD preprocessor statements in IDL files with Conditional attribute
7751        https://bugs.webkit.org/show_bug.cgi?id=114350
7752
7753        Reviewed by Ryosuke Niwa.
7754
7755        The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
7756
7757        * fileapi/File.idl:
7758
77592013-04-10  Ryosuke Niwa  <rniwa@webkit.org>
7760
7761        Cleanup local variables in Editor::markAndReplaceFor
7762        https://bugs.webkit.org/show_bug.cgi?id=114383
7763
7764        Reviewed by Enrica Casucci.
7765
7766        Added resultEndLocation, which is the sum of resultLocation and resultLength.
7767
7768        Also replaced ambiguousBoundaryOffset by useAmbiguousBoundaryOffset since the ambiguous offset is always
7769        selectionOffset -1 to avoid the extra house keeping and obnoxious -1 check.
7770
7771        * editing/Editor.cpp:
7772        (WebCore::Editor::markAndReplaceFor):
7773
77742013-04-10  Benjamin Poulain  <bpoulain@apple.com>
7775
7776        Mass remove all the empty directories
7777
7778        Rubberstamped by Ryosuke Niwa.
7779
7780        * Modules/intents: Removed.
7781        * Modules/protocolhandler: Removed.
7782        * Modules/speech/mac: Removed.
7783        * accessibility/efl: Removed.
7784        * accessibility/gtk: Removed.
7785        * bridge/jni/jsc: Removed.
7786        * editing/android: Removed.
7787        * editing/gtk: Removed.
7788        * history/android: Removed.
7789        * page/android: Removed.
7790        * platform/android: Removed.
7791        * platform/clutter: Removed.
7792        * platform/graphics/blackberry/skia: Removed.
7793        * platform/graphics/harfbuzz/ng: Removed.
7794        * platform/graphics/pango: Removed.
7795        * platform/image-decoders/cg: Removed.
7796        * platform/image-decoders/qt: Removed.
7797        * platform/network/android: Removed.
7798        * platform/network/soup/cache/webkit: Removed.
7799        * platform/text/android: Removed.
7800        * platform/text/wince: Removed.
7801        * platform/track: Removed.
7802
78032013-04-10  Simon Fraser  <simon.fraser@apple.com>
7804
7805        Log when the animation timer fires
7806        https://bugs.webkit.org/show_bug.cgi?id=114393
7807
7808        Reviewed by Dean Jackson.
7809
7810        Logging to the Animations log channel when the updateAnimationTimer
7811        fires is useful, because it indicates whether we're running
7812        software animations.
7813
7814        * page/animation/AnimationController.cpp:
7815        (WebCore::AnimationControllerPrivate::updateAnimationTimer):
7816
78172013-04-10  Beth Dakin  <bdakin@apple.com>
7818
7819        Inspector highlights are offset when the WKView has a header
7820        https://bugs.webkit.org/show_bug.cgi?id=114389
7821        -and corresponding-
7822        <rdar://problem/13522434>
7823
7824        Reviewed by Sam Weinig.
7825
7826        rootViewToContents() and contentsToRootView() need to factor in the 
7827        headerHeight(), much like windowToContents() and contentsToWindow() do already. 
7828        * platform/ScrollView.cpp:
7829        (WebCore::ScrollView::rootViewToContents):
7830        (WebCore::ScrollView::contentsToRootView):
7831
78322013-04-10  Simon Fraser  <simon.fraser@apple.com>
7833
7834        Flesh out the Animations logging
7835        https://bugs.webkit.org/show_bug.cgi?id=114388
7836
7837        Reviewed by Dean Jackson.
7838
7839        Log state changes and transition/animation creation and destruction
7840        to the Animations log channel.
7841
7842        * page/animation/AnimationBase.cpp:
7843        (WebCore::nameForState):
7844        (WebCore::AnimationBase::updateStateMachine):
7845        (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
7846        (WebCore::AnimationBase::goIntoEndingOrLoopingState):
7847        (WebCore::AnimationBase::freezeAtTime):
7848        * page/animation/CompositeAnimation.cpp:
7849        (WebCore::CompositeAnimation::updateTransitions):
7850        (WebCore::CompositeAnimation::updateKeyframeAnimations):
7851        * page/animation/KeyframeAnimation.h:
7852        (WebCore::KeyframeAnimation::keyframes):
7853        (KeyframeAnimation):
7854
78552013-04-10  Alexey Proskuryakov  <ap@apple.com>
7856
7857        <rdar://problem/13047266> External XML entities are not loaded with modern libxml2
7858        https://bugs.webkit.org/show_bug.cgi?id=114377
7859
7860        Reviewed by Darin Adler.
7861
7862        Covered by http/tests/security/xss-DENIED-xml-external-entity.xhtml when using
7863        new enough libxml2.
7864
7865        * xml/parser/XMLDocumentParserLibxml2.cpp:
7866        (WebCore::switchToUTF16): Added a FIXME with an idea for improvement.
7867        (WebCore::XMLParserContext::createStringParser): Apply XML_PARSE_NOENT in a non-hacky
7868        way, so that the new libxml2 check doesn't fail.
7869        (WebCore::XMLParserContext::createMemoryParser): Updated an unhelpful and incorrect
7870        comment (XML_PARSE_NODICT actually means "Do not reuse the context dictionary").
7871
78722013-04-10  Eric Carlson  <eric.carlson@apple.com>
7873
7874        [Mac] in-band tracks sometimes not recognized
7875        https://bugs.webkit.org/show_bug.cgi?id=114380
7876
7877        Reviewed by Jer Noble.
7878
7879        No new tests, covered by existing in-band tests.
7880
7881        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7882        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't call selectMediaOption,
7883            availableMediaCharacteristicsWithMediaSelectionOptions is unlikely to be loaded at this time.
7884        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Disable automatic text track
7885            selection.
7886        (WebCore::assetMetadataKeyNames): Watch for the status of availableMediaCharacteristicsWithMediaSelectionOptions
7887            to change.
7888
78892013-04-10  Hans Muller  <hmuller@adobe.com>
7890
7891        [CSS Exclusions] Zoom causes shape-inside to fail when shape-padding is specified
7892        https://bugs.webkit.org/show_bug.cgi?id=113730
7893
7894        Reviewed by Dirk Schulze.
7895
7896        Snap computed margin and polygon boundaries to the LayoutUnit grid to ensure
7897        that they fall within the shape's LayoutUnit bounding box.
7898
7899        Test: fast/exclusions/shape-inside/shape-inside-polygon-zoom.html
7900
7901        * rendering/ExclusionPolygon.cpp:
7902        (WebCore::snapVerticesToLayoutUnitGrid): Convert the FloatPoint coordinates to LayoutUnits and then back to floats.
7903        (WebCore::computeShapePaddingBounds): Now calls snapVerticesToLayoutUnitGrid() before creating a FloatPolygon.
7904        (WebCore::computeShapeMarginBounds): Ditto.
7905
79062013-04-10  Csaba Osztrogonác  <ossy@webkit.org>
7907
7908        One more unreviewed buildfix after r148123.
7909
7910        * platform/graphics/filters/CustomFilterMeshGenerator.h:
7911
79122013-04-10  Beth Dakin  <bdakin@apple.com>
7913
7914        FindBanner matches are offset when the WKView has a header or footer
7915        https://bugs.webkit.org/show_bug.cgi?id=114314
7916        -and corresponding-
7917        <rdar://problem/13522434>
7918
7919        Reviewed by Simon Fraser.
7920
7921        There were already a few places in the code where we needed to adjust the 
7922        scrollOffset() to pretend that (0,0) is that the top of the Document rather than 
7923        the top of the header. To fix the FindBanner issues, we need to know that version 
7924        of the offset in a few more places, so I added a function on ScrollView to fetch 
7925        it called scrollOffsetRelativeToDocument().
7926
7927        New function subtracts out the headerHeight() to treat the top of 
7928        the document as (0,0).
7929        * WebCore.exp.in:
7930        * platform/ScrollView.cpp:
7931        (WebCore::ScrollView::scrollOffsetRelativeToDocument):
7932
7933        Use scrollOffsetRelativeToDocument() where we were previously making this 
7934        calculation. Also re-name an inaccurately named variable where we are actually 
7935        converting FROM a document offset to a ScrollableArea offset.
7936        (WebCore::ScrollView::windowToContents):
7937        * platform/ScrollView.h:
7938        (ScrollView):
7939
7940        getRectToExpose needs to know about the actual visibleContentRect and the 
7941        visibleContentRect that is relative to the Document. So this 
7942        patch adds a new parameter to getRectToExpose for that purpose.
7943        * rendering/RenderLayer.cpp:
7944        (WebCore::RenderLayer::scrollRectToVisible):
7945        (WebCore::RenderLayer::getRectToExpose):
7946        * rendering/RenderLayer.h:
7947
79482013-04-10  Chris Fleizach  <cfleizach@apple.com>
7949
7950        when ARIA button contains a link, label text is ignored (affects main buttons on m.facebook.com)
7951        https://bugs.webkit.org/show_bug.cgi?id=113906
7952
7953        Reviewed by Tim Horton.
7954
7955        If an element does not expose any children, then it's safe to include all of its sub children when determining
7956        the visible text.
7957        The bug is that all elements were ignoring focusable elements (like <a>) when determining visible children text
7958
7959        Test: accessibility/link-inside-button-accessible-text.html
7960
7961        * accessibility/AccessibilityNodeObject.cpp:
7962        (WebCore::shouldUseAccessiblityObjectInnerText):
7963        * accessibility/AccessibilityNodeObject.h:
7964        (AccessibilityNodeObject):
7965        * accessibility/AccessibilityObject.h:
7966        (WebCore::AccessibilityObject::isDescendantOfBarrenParent):
7967        (AccessibilityObject):
7968
79692013-04-10  Chris Fleizach  <cfleizach@apple.com>
7970
7971        AX: Make sure all AX methods called from outside call prepareAccessibility
7972        https://bugs.webkit.org/show_bug.cgi?id=113818
7973
7974        Reviewed by Darin Adler.
7975
7976        Make sure any calls that can be made from outside WebCore are protected with the
7977        prepareAccessibility method.
7978
7979        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
7980        (-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
7981        (-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
7982        (-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
7983        (-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
7984        (-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
7985        (-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
7986        (-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
7987        (-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
7988        (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
7989        (-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
7990        (-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
7991        (-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
7992        (-[WebAccessibilityObjectWrapper accessibilityMathType]):
7993
79942013-04-10  Csaba Osztrogonác  <ossy@webkit.org>
7995
7996        Unreviewed buildfix after r148123.
7997
7998        * inspector/InspectorInstrumentation.h:
7999        (WebCore):
8000
80012013-04-10  Xabier Rodriguez Calvar  <calvaris@igalia.com>
8002
8003        Clicking on the volume slider of HTML5 elements is pausing sometimes
8004        https://bugs.webkit.org/show_bug.cgi?id=112548
8005
8006        Reviewed by Eric Carlson.
8007
8008        Test: media/click-volume-bar-not-pausing.html
8009
8010        * html/shadow/MediaControlElementTypes.cpp:
8011        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
8012        Calling the setDefaultHandled() method on the event prevents it
8013        from being incorrectly propagated from the volume button up to the
8014        MediaDocument.
8015
80162013-04-10  Arvid Nilsson  <anilsson@rim.com>
8017
8018        [BlackBerry] Rename BlackBerry specific Texture class
8019        https://bugs.webkit.org/show_bug.cgi?id=95781
8020
8021        Reviewed by Rob Buis.
8022
8023        Texture was a bit too generic and prone to name conflicts. Renamed it
8024        to LayerTexture.
8025
8026        No change in behavior, no new tests.
8027
8028        PR 322882
8029
8030        * PlatformBlackBerry.cmake:
8031        * platform/graphics/blackberry/LayerCompositingThread.cpp:
8032        (WebCore::LayerCompositingThread::drawSurface):
8033        (WebCore::LayerCompositingThread::contentsTexture):
8034        * platform/graphics/blackberry/LayerCompositingThread.h:
8035        (LayerCompositingThread):
8036        * platform/graphics/blackberry/LayerCompositingThreadClient.h:
8037        (WebCore):
8038        (WebCore::LayerCompositingThreadClient::contentsTexture):
8039        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
8040        (WebCore::LayerFilterRenderer::applyActions):
8041        * platform/graphics/blackberry/LayerFilterRenderer.h:
8042        (LayerFilterRenderer):
8043        * platform/graphics/blackberry/LayerRendererSurface.h:
8044        (WebCore::LayerRendererSurface::texture):
8045        (LayerRendererSurface):
8046        * platform/graphics/blackberry/LayerTexture.cpp: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.cpp.
8047        (WebCore):
8048        (WebCore::LayerTexture::LayerTexture):
8049        (WebCore::LayerTexture::~LayerTexture):
8050        (WebCore::LayerTexture::updateContents):
8051        (WebCore::LayerTexture::setContentsToColor):
8052        (WebCore::LayerTexture::protect):
8053        * platform/graphics/blackberry/LayerTexture.h: Renamed from Source/WebCore/platform/graphics/blackberry/Texture.h.
8054        (WebCore):
8055        (LayerTexture):
8056        (WebCore::LayerTexture::create):
8057        (WebCore::LayerTexture::textureId):
8058        (WebCore::LayerTexture::isDirty):
8059        (WebCore::LayerTexture::hasTexture):
8060        (WebCore::LayerTexture::isColor):
8061        (WebCore::LayerTexture::isOpaque):
8062        (WebCore::LayerTexture::isProtected):
8063        (WebCore::LayerTexture::protect):
8064        (WebCore::LayerTexture::unprotect):
8065        (WebCore::LayerTexture::size):
8066        (WebCore::LayerTexture::width):
8067        (WebCore::LayerTexture::height):
8068        (WebCore::LayerTexture::bytesPerPixel):
8069        (WebCore::LayerTexture::sizeInBytes):
8070        (WebCore::LayerTexture::setTextureId):
8071        (WebCore::LayerTexture::setSize):
8072        * platform/graphics/blackberry/LayerTile.cpp:
8073        (WebCore::LayerTile::setContents):
8074        (WebCore::LayerTile::updateContents):
8075        (WebCore::LayerTile::setTexture):
8076        * platform/graphics/blackberry/LayerTile.h:
8077        (WebCore::LayerTile::texture):
8078        (LayerTile):
8079        * platform/graphics/blackberry/LayerTiler.cpp:
8080        (WebCore::LayerTiler::drawTile):
8081        (WebCore::LayerTiler::contentsTexture):
8082        * platform/graphics/blackberry/LayerTiler.h:
8083        (LayerTiler):
8084        (WebCore::LayerTiler::TextureJob::TextureJob):
8085        (WebCore::LayerTiler::TextureJob::setContents):
8086        (WebCore::LayerTiler::TextureJob::updateContents):
8087        (TextureJob):
8088        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
8089        (WebCore::TextureProtector::TextureProtector):
8090        (TextureProtector):
8091        (WebCore::TextureCacheCompositingThread::allocateTextureId):
8092        (WebCore::freeTextureId):
8093        (WebCore::TextureCacheCompositingThread::textureResized):
8094        (WebCore::TextureCacheCompositingThread::textureSizeInBytesChanged):
8095        (WebCore::TextureCacheCompositingThread::textureDestroyed):
8096        (WebCore::TextureCacheCompositingThread::install):
8097        (WebCore::TextureCacheCompositingThread::resizeTexture):
8098        (WebCore::TextureCacheCompositingThread::evict):
8099        (WebCore::TextureCacheCompositingThread::textureAccessed):
8100        (WebCore::TextureCacheCompositingThread::prune):
8101        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
8102        (WebCore::TextureCacheCompositingThread::textureForColor):
8103        (WebCore::TextureCacheCompositingThread::updateContents):
8104        * platform/graphics/blackberry/TextureCacheCompositingThread.h:
8105        (WebCore::TextureCacheCompositingThread::createTexture):
8106        (TextureCacheCompositingThread):
8107        (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
8108        (ZombieTexture):
8109
81102013-04-10  Andreas Kling  <akling@apple.com>
8111
8112        Disallow programmatic movement of the browser window while user gestures are in progress.
8113        <http://webkit.org/b/114271>
8114        <rdar://problem/13226530>
8115
8116        Reviewed by Oliver Hunt.
8117
8118        * page/DOMWindow.cpp:
8119        (WebCore::DOMWindow::moveBy):
8120        (WebCore::DOMWindow::moveTo):
8121        (WebCore::DOMWindow::resizeBy):
8122        (WebCore::DOMWindow::resizeTo):
8123
81242013-04-10  Ryosuke Niwa  <rniwa@webkit.org>
8125
8126        Refactor Editor::markAndReplaceFor before fixing autocorrection bugs
8127        https://bugs.webkit.org/show_bug.cgi?id=114344
8128
8129        Reviewed by Enrica Casucci.
8130
8131        This patch refactors Editor::markAndReplaceFor so that we can start fixing bugs in a sane state.
8132        Extracted isAutomaticTextReplacementType and correctSpellcheckingPreservingTextCheckingParagraph,
8133        and made convenience local variables const.
8134
8135        In particular, shouldMarkSpelling used to be assigned of false when shouldShowCorrectionPanel was true
8136        in a middle of a function but this was removed in favor of explicitly checking this condition later
8137        since shouldMarkSpelling was only referenced once after the assignment.
8138
8139        * editing/Editor.cpp:
8140        (WebCore::isAutomaticTextReplacementType): Extracted.
8141
8142        (WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Extracted.  Used highestAncestor
8143        and rangeFromLocationAndLength to match the rest of the up-to-date editing code.
8144
8145        (WebCore::Editor::markAndReplaceFor): See above.
8146
81472013-04-08  Anders Carlsson  <andersca@apple.com>
8148
8149        Remove unneeded headers from FrameLoader.h
8150        https://bugs.webkit.org/show_bug.cgi?id=114223
8151
8152        Reviewed by Geoffrey Garen.
8153
8154        Remove unneeded headers from FrameLoader.h and add them back into the respective .cpp files where needed.
8155
8156        * dom/Document.cpp:
8157        * history/CachedFrame.cpp:
8158        * history/PageCache.cpp:
8159        * inspector/InspectorResourceAgent.cpp:
8160        * loader/DocumentLoader.cpp:
8161        * loader/FrameLoader.cpp:
8162        (WebCore::FrameLoader::FrameLoader):
8163        (WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
8164        * loader/FrameLoader.h:
8165        (WebCore):
8166        (WebCore::FrameLoader::policyChecker):
8167        (WebCore::FrameLoader::history):
8168        (WebCore::FrameLoader::icon):
8169        * loader/MixedContentChecker.h:
8170        * loader/icon/IconLoader.cpp:
8171        * page/History.cpp:
8172        * page/Page.cpp:
8173        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
8174        * testing/Internals.cpp:
8175
81762013-04-10  Simon Fraser  <simon.fraser@apple.com>
8177
8178        Minor code cleanup in AnimationBase::progress
8179        https://bugs.webkit.org/show_bug.cgi?id=114371
8180
8181        Reviewed by Dean Jackson.
8182
8183        Convert some "return; else if" to just "return; if".
8184
8185        * page/animation/AnimationBase.cpp:
8186        (WebCore::AnimationBase::progress):
8187
81882013-04-10  Robert Hogan  <robert@webkit.org>
8189
8190        Empty inline continuations should only get lineboxes if the padding applies to their side of the inline
8191        https://bugs.webkit.org/show_bug.cgi?id=113896
8192
8193        Reviewed by David Hyatt.
8194
8195        Test: fast/inline/inline-with-empty-inline-continuations.html
8196
8197        Where an empty inline is split across anonymous blocks we should only give lineboxes to the 'sides' of the
8198        inline that have borders, padding or margin.
8199
8200        * rendering/RenderBlockLineLayout.cpp:
8201        (WebCore::shouldApplyStartBorderPaddingOrMargin):
8202        (WebCore):
8203        (WebCore::shouldApplyEndBorderPaddingOrMargin):
8204        (WebCore::hasInlineDirectionBordersPaddingOrMargin):
8205        (WebCore::alwaysRequiresLineBox):
8206
82072013-04-10  Zoltan Horvath  <zoltan@webkit.org>
8208
8209        [CSS Exclusions] Increasing padding does not correctly layout child blocks
8210        https://bugs.webkit.org/show_bug.cgi?id=112929
8211
8212        Reviewed by David Hyatt.
8213
8214        If a child block has changed dimension inside a shape and it has affected the block siblings
8215        we need to relayout the content inside the shape.
8216
8217        Test: fast/exclusions/shape-inside/shape-inside-sibling-block-dimension-change-needs-relayout.html
8218
8219        * rendering/RenderBlock.cpp:
8220        (WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout): Add condition for dimension change.
8221        (WebCore::RenderBlock::layoutBlock): Call updateRegionsAndExclusionsAfterChildLayout with the new parameter.
8222        * rendering/RenderBlock.h:
8223        (RenderBlock): Add extra parameter to updateRegionsAndExclusionsAfterChildLayout(...)
8224
82252013-04-10  Geoffrey Garen  <ggaren@apple.com>
8226
8227        Removed bitrotted TimeoutChecker code
8228        https://bugs.webkit.org/show_bug.cgi?id=114336
8229
8230        Reviewed by Alexey Proskuryakov.
8231
8232        This mechanism hasn't worked for a while.
8233
8234        MarkL is working on a new version of this feature with a distinct
8235        implementation.
8236
8237        * bindings/js/JSCallbackData.cpp:
8238        (WebCore::JSCallbackData::invokeCallback):
8239        * bindings/js/JSCustomXPathNSResolver.cpp:
8240        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
8241        * bindings/js/JSDOMWindowBase.cpp:
8242        (WebCore::JSDOMWindowBase::commonJSGlobalData):
8243        * bindings/js/JSErrorHandler.cpp:
8244        (WebCore::JSErrorHandler::handleEvent):
8245        * bindings/js/JSEventListener.cpp:
8246        (WebCore::JSEventListener::handleEvent):
8247        * bindings/js/JSMutationCallback.cpp:
8248        (WebCore::JSMutationCallback::call):
8249        * bindings/js/ScheduledAction.cpp:
8250        (WebCore::ScheduledAction::executeFunctionInContext):
8251        * bindings/js/ScriptController.cpp:
8252        (WebCore::ScriptController::evaluateInWorld):
8253        * bindings/js/SerializedScriptValue.cpp:
8254        (WebCore::CloneBase::CloneBase):
8255        (WebCore::CloneSerializer::serialize):
8256        (WebCore::CloneDeserializer::deserialize):
8257        * bindings/js/WorkerScriptController.cpp:
8258        (WebCore::WorkerScriptController::evaluate):
8259        * bindings/objc/WebScriptObject.mm:
8260        (-[WebScriptObject callWebScriptMethod:withArguments:]):
8261        (-[WebScriptObject evaluateWebScript:]):
8262
82632013-04-10  Patrick Gansterer  <paroga@webkit.org>
8264
8265        Replace ENABLE_JAVASCRIPT_DEBUGGER preprocessor statements in IDL files with Conditional attribute
8266        https://bugs.webkit.org/show_bug.cgi?id=114352
8267
8268        Reviewed by Timothy Hatcher.
8269
8270        The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
8271
8272        * page/Console.idl:
8273
82742013-04-10  Alexandru Chiculita  <achicu@adobe.com>
8275
8276        Layers with opacity and blur filters are reported as opaque to the compositor
8277        https://bugs.webkit.org/show_bug.cgi?id=114295
8278
8279        Reviewed by Simon Fraser.
8280
8281        Test: compositing/contents-opaque/filter.html
8282
8283        Some filters like opacity and blur might still trigger transparency in the layer, even though the
8284        background is opaque. I've added the special case in RenderLayer::backgroundIsKnownToBeOpaqueInRect to check
8285        for filters that might have transparency. Note that this special case is required only for software drawn
8286        filters, as the transparency is going to be backed in the GraphicsLayer content. Composited filters can
8287        figure it out in the compositor.
8288
8289        * rendering/RenderLayer.cpp:
8290        (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
8291
82922013-04-10  Noam Rosenthal  <noam@webkit.org>
8293
8294        [Texmap] In certain situations nested blending with overflow:hidden displays clipped results
8295        https://bugs.webkit.org/show_bug.cgi?id=114290
8296
8297        Reviewed by Allan Sandfeld Jensen.
8298
8299        Always apply the clip when binding a surface, even if it hasn't changed.
8300        Otherwise when binding a nested surface and rebinding its container surface,
8301        the clip wouldn't apply.
8302
8303        Test: compositing/overlap-blending/nested-overlap-overflow.html
8304
8305        * platform/graphics/texmap/TextureMapperGL.cpp:
8306        (WebCore::BitmapTextureGL::bind):
8307
83082013-04-10  Antti Koivisto  <antti@apple.com>
8309
8310        Use minimal tiles during live resize
8311        https://bugs.webkit.org/show_bug.cgi?id=114364
8312
8313        Reviewed by Darin Adler.
8314
8315        We currently update non-visible speculative tiles during resizing. We should just drop them.
8316
8317        * page/FrameView.cpp:
8318        (WebCore::FrameView::willStartLiveResize):
8319        (WebCore::FrameView::willEndLiveResize):
8320        * page/FrameView.h:
8321        * rendering/RenderLayerBacking.cpp:
8322        (WebCore::computeTileCoverage):
8323        
8324            Use minimal coverage in live resize state.
8325
83262013-04-10  Victor Costan  <costan@gmail.com>
8327
8328        Blob content type normalization.
8329        https://bugs.webkit.org/show_bug.cgi?id=111380
8330
8331        Reviewed by Alexey Proskuryakov.
8332
8333        Tests: http/tests/fast/files/blob-constructor.js
8334               http/tests/fileapi/xhr-send-form-data-filename-escaping.html
8335               http/tests/fileapi/xhr-send-form-data-mimetype-normalization.html
8336
8337        * WebCore.exp.in: exported Blob::isNormalizedContentType()
8338        * bindings/js/JSBlobCustom.cpp:
8339        (WebCore::JSBlobConstructor::constructJSBlob): remove checks on Blob type, BlobBuilder will normalize it
8340        * fileapi/Blob.cpp:
8341        (BlobType): utilities for normalizing a Blob's type according to the File API spec
8342        (WebCore::BlobType::isValid): content type validity checks in the File API spec
8343        (WebCore::BlobType::normalize): implements the normalization rules in the File API spec
8344        (WebCore::BlobType::isNormalized): useful for ASSERTing that a Blob type has been normalized
8345        (WebCore): implement Blob type normalization according to the File API spec
8346        (WebCore::Blob::Blob): normalize the Blob type in the data URL
8347        (WebCore::Blob::slice): normalize the Blob type argument
8348        * fileapi/Blob.h:
8349        (BlobType): utilities for normalizing a Blob's type according to the File API spec
8350        (WebCore::Blob::create): assert that the deserialized Blob's type was normalized
8351        * fileapi/File.cpp:
8352        (WebCore::createBlobDataForFileWithType): assert that the File's MIME type is a normalized Blob type
8353        * fileapi/WebKitBlobBuilder.cpp:
8354        (WebCore::BlobBuilder::getBlob): normalize the Blob's type before building it
8355        * platform/network/BlobData.h:
8356        (WebCore::BlobData::setContentType): assert that the Blob type has been normalized
8357        * platform/network/FormData.cpp:
8358        (WebCore::FormData::appendKeyValuePairItems): assert that Blob's type has been normalized
8359        * platform/network/FormDataBuilder.cpp:
8360        (WebCore::FormDataBuilder::addContentTypeToMultiPartHeader): assert that the Content-Type field is normalized
8361        * xml/XMLHttpRequest.cpp: when responseType is blob, normalize Content-Type before passing to Blob constructor
8362
83632013-04-10  Tim Horton  <timothy_horton@apple.com>
8364
8365        TileController doesn't remove tiles when the view is resized, leading to stale content
8366        https://bugs.webkit.org/show_bug.cgi?id=114323
8367        <rdar://problem/13520671>
8368
8369        Reviewed by Simon Fraser.
8370
8371        Ensure that tiles are removed if the view shrinks, so that they are not displayed
8372        with stale content if the view later grows again (they will not be repainted by WebCore
8373        while out-of-view).
8374
8375        * platform/graphics/ca/mac/TileController.h:
8376        * platform/graphics/ca/mac/TileController.mm:
8377        (WebCore::TileController::revalidateTiles):
8378
83792013-04-10  Jessie Berlin  <jberlin@apple.com>
8380
8381        Update the localizable strings file.
8382
8383        Rubber-stamped by Dan Bernstein.
8384
8385        * English.lproj/Localizable.strings:
8386
83872013-04-10  Patrick Gansterer  <paroga@webkit.org>
8388
8389        Replace ENABLE_CHANNEL_MESSAGING preprocessor statements in IDL files with Conditional attribute
8390        https://bugs.webkit.org/show_bug.cgi?id=114346
8391
8392        Reviewed by Geoffrey Garen.
8393
8394        The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
8395
8396        * page/DOMWindow.idl:
8397        * workers/WorkerContext.idl:
8398
83992013-04-10  Eric Carlson  <eric.carlson@apple.com>
8400
8401        Update all float attributes in HTMLMediaElement to double
8402        https://bugs.webkit.org/show_bug.cgi?id=113615
8403
8404        Reviewed by Geoffrey Garen
8405        Patch by Aaron Colwell
8406
8407        No new tests. Primary behavior doesn't change. Just time, playbackRate, and volume precision.
8408        All existing LayoutTests/media tests still pass.
8409
8410        * WebCore.exp.in: Remove function that no longer need to be exported.
8411
8412        * html/HTMLMediaElement.cpp: Change all float attributes to double.
8413        * html/HTMLMediaElement.h: Ditto.
8414        * html/HTMLMediaElement.idl: Ditto.
8415        * html/MediaController.cpp: Ditto.
8416        * html/MediaController.h: Ditto.
8417        * html/MediaControllerInterface.h: Ditto.
8418        * html/TimeRanges.cpp: Ditto.
8419        * html/TimeRanges.idl: Ditto.
8420        * html/shadow/MediaControlElementTypes.cpp: Ditto.
8421        * html/shadow/MediaControlElementTypes.h: Ditto.
8422        * html/shadow/MediaControlElements.cpp: Ditto.
8423        * html/shadow/MediaControlElements.h: Ditto.
8424        * html/shadow/MediaControls.cpp: Ditto.
8425        * html/shadow/MediaControlsApple.cpp: Ditto.
8426        * html/shadow/MediaControlsBlackBerry.cpp: Ditto.
8427        * html/shadow/MediaControlsBlackBerry.h: Ditto.
8428        * html/shadow/MediaControlsGtk.cpp: Ditto.
8429        * html/track/TextTrackCue.cpp: Ditto.
8430        * html/track/TextTrackCue.h: Ditto.
8431        * platform/Clock.h: Ditto.
8432        * platform/ClockGeneric.cpp: Ditto.
8433        * platform/ClockGeneric.h: Ditto.
8434        * platform/graphics/MediaPlayer.cpp: Ditto.
8435        * platform/graphics/MediaPlayer.h: Ditto.
8436        * platform/graphics/MediaPlayerPrivate.h: Ditto.
8437        * platform/mac/PlatformClockCA.cpp: Ditto.
8438        * platform/mac/PlatformClockCA.h: Ditto.
8439        * platform/mac/PlatformClockCM.h: Ditto.
8440        * platform/mac/PlatformClockCM.mm: Ditto.
8441
84422013-04-10  Patrick Gansterer  <paroga@webkit.org>
8443
8444        Replace ENABLE_MICRODATA preprocessor statements in IDL files with Conditional attribute
8445        https://bugs.webkit.org/show_bug.cgi?id=114349
8446
8447        Reviewed by Geoffrey Garen.
8448
8449        The Conditional attribute does not need a preprocessor, which is source of much pain on native windows.
8450
8451        * dom/Document.idl:
8452        * html/HTMLElement.idl:
8453
84542013-04-10  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
8455
8456        REGRESSION(r148034): IconDatabase::updateIconRecord crashes with null iconData and iconBitmap.
8457        https://bugs.webkit.org/show_bug.cgi?id=114356
8458
8459        Reviewed by Tim Horton.
8460
8461        When loading an icon fails (for example, when a non-existent URI is
8462        passed to the loader), updateIconRecord can be called with both
8463        iconData and iconBitmap having no data.
8464
8465        This used to be fine before r148034, but causes an assertion now.
8466
8467        No new tests, existing tests such as fast/encoding/mispositioned-meta.html
8468        were crashing.
8469
8470        * loader/icon/IconDatabase.cpp:
8471        (WebCore::IconDatabase::updateIconRecord): Change the ASSERT() to check
8472        for a NAND condition that only fails if both iconData and iconBitmap
8473        are not 0.
8474
84752013-04-10  JungJik Lee  <jungjik.lee@samsung.com>
8476
8477        [Texmap] Update a dirty region which is not covered with keepRect.
8478        https://bugs.webkit.org/show_bug.cgi?id=113752
8479
8480        Reviewed by Jocelyn Turcotte.
8481
8482        There can be a dirty region which is not covered with keepRect. 
8483        However the dirty could be inside the tile area. In this case, 
8484        currently we ignore the dirty by intersecting with keepRect 
8485        and the dirty region will not be invalidated until the tile is 
8486        recreated. We must expand the keep rect to its intersecting tiles 
8487        to make sure that the dirty region is applied to existing tiles. 
8488
8489        No tests needed, change is unobservable.
8490
8491        * platform/graphics/TiledBackingStore.cpp:
8492        (WebCore::TiledBackingStore::invalidate):
8493
84942013-04-10  Laszlo Gombos  <l.gombos@samsung.com>
8495
8496        Remove ENABLE_3D_PLUGIN
8497        https://bugs.webkit.org/show_bug.cgi?id=108002
8498
8499        Remove ENABLE_3D_PLUGIN, it was only used by Chromium.
8500
8501        Reviewed by Antti Koivisto.
8502
8503        No new tests, removing dead code.
8504
8505        * loader/SubframeLoader.cpp:
8506        (WebCore::SubframeLoader::loadPlugin):
8507
85082013-04-10  Noam Rosenthal  <noam@webkit.org>
8509
8510        [Texmap] Hierarchy of layers with opacity may result in wrong blending.
8511        https://bugs.webkit.org/show_bug.cgi?id=113732
8512
8513        Reviewed by Allan Sandfeld Jensen.
8514
8515        This is a combination of three issues with nested intermediate surfaces:
8516        - glScissor inside an intermediate surface should not be mirrored.
8517        - The current surface should be passed to the next surface in paintOptions.
8518        - When clipping for the non-overlap region, the containing surface offset 
8519        should be applied.
8520
8521        Though the changes are separate, they cannot be tested separately as neither
8522        fixes a testable case on its own. 
8523
8524        Tests: compositing/overlap-blending/nested-non-overlap-clipping.html
8525               compositing/overlap-blending/nested-overlap.html
8526
8527        * platform/graphics/texmap/TextureMapperGL.cpp:
8528        (WebCore::TextureMapperGL::ClipStack::reset):
8529        (WebCore::TextureMapperGL::ClipStack::apply):
8530        (WebCore::TextureMapperGL::beginPainting):
8531        (WebCore::BitmapTextureGL::clearIfNeeded):
8532        * platform/graphics/texmap/TextureMapperGL.h:
8533        (ClipStack):
8534            Do not mirror the scissor clip when painting to an FBO.
8535            Also a minor refactor to avoid reading the viewport values from the driver.
8536
8537        * platform/graphics/texmap/TextureMapperLayer.cpp:
8538        (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
8539            Apply the offset when clipping for a non-overlap region.
8540        (WebCore::TextureMapperLayer::paintIntoSurface):
8541            Make sure the current surface is passed to the next one.
8542
85432013-04-10  Antti Koivisto  <antti@apple.com>
8544
8545        Create fewer tiles when page is loading
8546        https://bugs.webkit.org/show_bug.cgi?id=114294
8547
8548        Reviewed by Anders Carlsson.
8549
8550        We currently create speculative tiles immediately. Page is often changing rapidly during loading and
8551        keeping the speculative tiles up to date creates extra work.
8552        
8553        Tests: platform/mac-wk2/tiled-drawing/tile-coverage-after-scroll-speculative.html
8554               platform/mac-wk2/tiled-drawing/tile-coverage-speculative.html
8555        
8556       * loader/FrameLoader.cpp:
8557        (WebCore::FrameLoader::loadProgressingStatusChanged):
8558        * page/FrameView.cpp:
8559        (WebCore::FrameView::adjustTiledBackingCoverage):
8560        (WebCore::FrameView::setWasScrolledByUser):
8561        
8562            User scrolling enables speculative tiling no matter what the load status.
8563
8564        * page/FrameView.h:
8565        * rendering/RenderLayerBacking.cpp:
8566        (WebCore::computeTileCoverage):
8567        (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
8568        
8569            Cover only the viewport during loading.
8570
85712013-04-10  Alberto Garcia  <agarcia@igalia.com>
8572
8573        [BlackBerry] RenderThemeBlackBerry: get rid of all the SKIA code
8574        https://bugs.webkit.org/show_bug.cgi?id=114339
8575
8576        Reviewed by Carlos Garcia Campos.
8577
8578        * platform/blackberry/RenderThemeBlackBerry.cpp:
8579        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
8580        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
8581        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
8582        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
8583
85842013-04-10  Zan Dobersek  <zdobersek@igalia.com>
8585
8586        REGRESSION (r147719): Failures in two a11y tests on GTK
8587        https://bugs.webkit.org/show_bug.cgi?id=114259
8588
8589        Reviewed by Ryosuke Niwa.
8590
8591        No new tests - covered by existing tests.
8592
8593        Partially revert r147719, restoring the possible creation of the AXObject cache 
8594        and the subsequent call to its handleFocusedUIElementChanged method. Removing this
8595        code caused regressions in accessibility tests on the GTK port, so the comment about
8596        the AXObject cache is adjusted accordingly.
8597
8598        * dom/Document.cpp:
8599        (WebCore::Document::setFocusedNode):
8600
86012013-04-09  Philippe Normand  <pnormand@igalia.com>
8602
8603        [GStreamer] playbin uri getter is invalid
8604        https://bugs.webkit.org/show_bug.cgi?id=113884
8605
8606        Reviewed by Martin Robinson.
8607
8608        When loading a new media location use the url stored as a member
8609        variable instead of the one stored as a playbin property. The uri
8610        property semantic changed in playbin since 0.10.36+. One should
8611        now use current-uri but to avoid ifdefs depending on GStreamer
8612        version we simply use the url already known as member variable.
8613
8614        Test: http/tests/media/video-redirect.html
8615
8616        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
8617
86182013-04-09  Geoffrey Garen  <ggaren@apple.com>
8619
8620        [JSC] Script run from an isolated world should bypass a page's CSP
8621        https://bugs.webkit.org/show_bug.cgi?id=100815
8622
8623        Reviewed by Oliver Hunt.
8624
8625        * bindings/js/ScriptController.cpp:
8626        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
8627        * bindings/js/ScriptController.h: Test the current caller's DOM wrapper
8628        world to decide whether CSP should be enforced.
8629
8630        Like most of CSP, this is a stupid policy because it doesn't address
8631        second-order effects like <script> parsing or event handler execution,
8632        which might be triggered indirectly by privileged scripts. These indirect
8633        effects are still broken. Oh well.
8634
86352013-04-09  Benjamin Poulain  <bpoulain@apple.com>
8636
8637        Remove chromium exceptions from WebCore's gitattributes
8638        https://bugs.webkit.org/show_bug.cgi?id=114327
8639
8640        Reviewed by Darin Adler.
8641
8642        * .gitattributes:
8643
86442013-04-09  Adam Klein  <adamk@chromium.org>
8645
8646        Update Document's event listener type bitfield when adopting a Node
8647        https://bugs.webkit.org/show_bug.cgi?id=114322
8648
8649        Reviewed by Darin Adler.
8650
8651        Without this, moving a Node between documents can silently deactivate
8652        an event listener, if it's one of the types that whose creation is
8653        optimized away by Document::hasListenerType.
8654
8655        An alternate approach would be to simply copy the old document's
8656        bitfield over. It's a tradeoff between making adoption fast and making
8657        the operation of any operation depending on these event types fast.
8658        The latter seems like the right optimization given that adoption
8659        doesn't happen very often.
8660
8661        Test: fast/events/event-listener-moving-documents.html
8662
8663        * dom/Node.cpp:
8664        (WebCore::Node::didMoveToNewDocument): For each event listener type on the adopted node, update the new document's list of listener types.
8665
86662013-04-09  Dean Jackson  <dino@apple.com>
8667
8668        Add logging channel for animations
8669        https://bugs.webkit.org/show_bug.cgi?id=114325
8670
8671        Reviewed by Simon Fraser.
8672
8673        * platform/Logging.cpp: Add LogAnimations.
8674        (WebCore::getChannelFromName): Return LogAnimations for "Animations".
8675        * platform/Logging.h: Add LogAnimations.
8676        * platform/mac/LoggingMac.mm:
8677        (WebCore::initializeLoggingChannelsIfNecessary): Copy preference.
8678        * platform/win/LoggingWin.cpp:
8679        (WebCore::initializeLoggingChannelsIfNecessary): Copy preference.
8680
86812013-04-09  Dongwoo Joshua Im  <dw.im@samsung.com>
8682
8683        [CSS3] Parsing the property, text-justify.
8684        https://bugs.webkit.org/show_bug.cgi?id=100058
8685
8686        Reviewed by Andreas Kling.
8687
8688        This patch implements the parsing side of the "text-justify" property specified
8689        in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
8690        Specification link : http://www.w3.org/TR/css3-text/#text-justify
8691
8692        Tests: fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited.html
8693               fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify.html
8694
8695        * css/CSSComputedStyleDeclaration.cpp:
8696        (WebCore):
8697        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
8698        * css/CSSParser.cpp:
8699        (WebCore::isValidKeywordPropertyAndValue):
8700        (WebCore::isKeywordPropertyID):
8701        (WebCore::CSSParser::parseValue):
8702        * css/CSSPrimitiveValueMappings.h:
8703        (WebCore):
8704        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
8705        (WebCore::CSSPrimitiveValue::operator TextJustify):
8706        * css/CSSProperty.cpp:
8707        (WebCore::CSSProperty::isInheritedProperty):
8708        * css/CSSPropertyNames.in:
8709        * css/CSSValueKeywords.in:
8710        * css/StyleBuilder.cpp:
8711        (WebCore::StyleBuilder::StyleBuilder):
8712        * css/StylePropertySet.cpp:
8713        (WebCore):
8714        * css/StyleResolver.cpp:
8715        (WebCore::StyleResolver::applyProperty):
8716        * rendering/style/RenderStyle.h:
8717        * rendering/style/RenderStyleConstants.h:
8718        * rendering/style/StyleRareInheritedData.cpp:
8719        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
8720        (WebCore::StyleRareInheritedData::operator==):
8721        * rendering/style/StyleRareInheritedData.h:
8722        (StyleRareInheritedData):
8723
87242013-04-09  Joone Hur  <joone.hur@intel.com>
8725
8726        [GTK][AC] Adding contentsLayer for image and video
8727        https://bugs.webkit.org/show_bug.cgi?id=113912
8728
8729        Reviewed by Gustavo Noronha Silva.
8730
8731        contentsLayer is a ClutterActor, which is added to the main layer 
8732        as a child when GraphicsLayer needs to render an image or video. 
8733
8734        No new tests, already covered by existing AC tests.
8735
8736        * platform/graphics/clutter/GraphicsLayerActor.cpp:
8737        (graphicsLayerActorUpdateTexture):
8738        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
8739        (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
8740        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
8741        (WebCore):
8742        (WebCore::GraphicsLayerClutter::setContentsToImage): Pass a Cairo surface to GraphicsLayer.
8743        (WebCore::GraphicsLayerClutter::setContentsNeedsDisplay):
8744        (WebCore::GraphicsLayerClutter::setContentsRect):
8745        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
8746        (WebCore::GraphicsLayerClutter::setupContentsLayer):
8747        (WebCore::GraphicsLayerClutter::updateContentsImage): Set the Cairo surface for contentsLayer 
8748        to upload it as a texture.
8749        (WebCore::GraphicsLayerClutter::updateContentsNeedsDisplay):
8750        (WebCore::GraphicsLayerClutter::updateContentsRect):
8751        (WebCore::GraphicsLayerClutter::updateSublayerList):
8752        * platform/graphics/clutter/GraphicsLayerClutter.h:
8753        (WebCore::GraphicsLayerClutter::hasContentsLayer):
8754        (GraphicsLayerClutter):
8755        (WebCore::GraphicsLayerClutter::contentsLayer):
8756
87572013-04-09  Alexey Proskuryakov  <ap@apple.com>
8758
8759        REGRESSION: Blob URLs broken with NetworkProcess
8760        https://bugs.webkit.org/show_bug.cgi?id=114320
8761
8762        Reviewed by Brady Eidson.
8763
8764        Update BlobResourceHandle to use modern resource client calls.
8765
8766        * platform/network/BlobResourceHandle.cpp:
8767        (WebCore::BlobResourceHandle::readSync): Don't call notifyReceiveData if there is
8768        no data (it's especially egregious when length is -1, signaling an error).
8769        (WebCore::BlobResourceHandle::notifyResponseOnSuccess): Use didReceiveResponseAsync
8770        when a client wants async callbacks. This is not very clean, as we don't wait
8771        for response, but should be workable for blobs.
8772        (WebCore::BlobResourceHandle::notifyResponseOnError): Ditto.
8773        (WebCore::BlobResourceHandle::notifyReceiveData): Use didReceiveBuffer (clients
8774        that only implement didReceiveData will have it automatically unwrapped).
8775
87762013-04-09  Jer Noble  <jer.noble@apple.com>
8777
8778        REGRESSION (r123837): Full screen transition is broken at apple.com
8779        https://bugs.webkit.org/show_bug.cgi?id=95650
8780
8781        Reviewed by Simon Fraser.
8782
8783        Cancel any outstanding animations on <video> elements as they enter full screen, so as to
8784        not confuse the WebKit/WebKit2 full screen window animation about the starting and destination
8785        screen rects.
8786
8787        * css/fullscreen.css:
8788        (video:-webkit-full-screen, audio:-webkit-full-screen):
8789
87902013-04-09  Jer Noble  <jer.noble@apple.com>
8791
8792        hang in mediaSelectionGroupForMediaCharacteristic
8793        https://bugs.webkit.org/show_bug.cgi?id=114054
8794
8795        Reviewed by Eric Carlson.
8796
8797        No new tests; Fixes sporadic hangs in media/ tests.
8798
8799        -[AVURLAsset mediaSelectionGroupForMediaCharacteristic:] can deadlock in certain situations: When AVURLAsset
8800        posts a synchronous AVAssetResourceLoader notification to the main thread, calling -mediaSelectionGroupForMediaCharacteristic:
8801        on the main thread requires IO to occur if the media characteristics are not yet loaded. Instead of blocking,
8802        bail out early if the media characteristics are not yet known.
8803        
8804        Add a new method, safeMediaSelectionGroupForLegibleMedia(), which first checks selection group availability
8805        before calling mediaSelectionGroupForMediaCharacteristic:.
8806
8807        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
8808        (MediaPlayerPrivateAVFoundationObjC):
8809        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
8810        (WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Added.
8811        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Use new safe method.
8812        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Ditto.
8813        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Ditto.
8814        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Ditto.
8815
88162013-04-09  Chris Fleizach  <cfleizach@apple.com>
8817
8818        AX: Bounding paths should be made available through accessibility
8819        https://bugs.webkit.org/show_bug.cgi?id=113817
8820
8821        Unreviewed build fix for iOS.
8822
8823        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
8824        (-[WebAccessibilityObjectWrapper _accessibilityPath]):
8825        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
8826
88272013-04-09  Eric Carlson  <eric.carlson@apple.com>
8828
8829        Unreviewed correctness fix: use lroundf instead of lround for a float to int conversion.
8830
8831        * html/shadow/MediaControlElements.cpp:
8832        (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
8833
88342013-04-06  Roger Fong  <roger_fong@apple.com>
8835
8836        Change requisite hardware checks for enabling antialiasing.
8837        https://bugs.webkit.org/show_bug.cgi?id=114101
8838        <rdar://problem/12342776>.
8839
8840        m_maySupportMultisampling should be true by default for all platforms/hardware now except older versions of AMD.
8841
8842        Reviewed by Dean Jackson.
8843
8844        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
8845        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
8846
88472013-04-09  Commit Queue  <rniwa@webkit.org>
8848
8849        Unreviewed, rolling out r148010.
8850        http://trac.webkit.org/changeset/148010
8851        https://bugs.webkit.org/show_bug.cgi?id=114310
8852
8853        Causes problems with focus rings (Requested by anttik on
8854        #webkit).
8855
8856        * css/StyleBuilder.cpp:
8857        (WebCore::ApplyPropertyComputeLength::applyValue):
8858        (WebCore::ApplyPropertyComputeLength::createHandler):
8859        (WebCore::StyleBuilder::StyleBuilder):
8860
88612013-04-09  Eric Carlson  <eric.carlson@apple.com>
8862
8863        Unreviewed, another fix for the Windows build after r148050.
8864
8865        * html/track/TextTrackCueGeneric.cpp:
8866        (WebCore::TextTrackCueGeneric::setFontSize): Use lround().
8867
88682013-04-09  Bem Jones-Bey  <bjonesbe@adobe.com>
8869
8870        [CSS Exclusions] Properly position multiple stacked floats with non rectangular shape outside
8871        https://bugs.webkit.org/show_bug.cgi?id=110372
8872
8873        Reviewed by Dean Jackson.
8874
8875        Stacked floats get positioned based on the bounding box of the shape,
8876        not on the shape contours itself. This patch causes that to happen.
8877
8878        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-stacked.html
8879
8880        * rendering/RenderBlock.cpp:
8881        (WebCore::RenderBlock::computeLogicalLocationForFloat): Use the
8882            "BoundingBoxOffset" mode so that we compute offsets based on the shape
8883            bounding boxes of previous floats, not the shape contour.
8884        (WebCore::RenderBlock::logicalLeftOffsetForLine): Check the
8885            ShapeOutsideFloatOffsetMode to determine if the offset should be
8886            adjusted for the shape contour or not.
8887        (WebCore::RenderBlock::logicalRightOffsetForLine): Ditto.
8888        * rendering/RenderBlock.h:
8889        (WebCore::RenderBlock::logicalRightOffsetForLine): Add parameter for offset mode.
8890        (WebCore::RenderBlock::logicalLeftOffsetForLine): Ditto.
8891        (RenderBlock):
8892        * rendering/RenderBlockLineLayout.cpp:
8893        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): If the
8894            new float is being added on top of a previous float on the same line,
8895            undo the offset for the previous float's shape contour so that we
8896            position the new float based on the bounding box.
8897
88982013-04-09  Eric Carlson  <eric.carlson@apple.com>
8899
8900        Unreviewed, fix the Windows build after r148050.
8901
8902        * html/shadow/MediaControlElements.cpp:
8903        (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Use lround().
8904
89052013-04-09  Tim Horton  <timothy_horton@apple.com>
8906
8907        [wk2] IconDatabase images should be decoded in the WebProcess
8908https://bugs.webkit.org/show_bug.cgi?id=112524
8909        <rdar://problem/10133914>
8910
8911        Reviewed by Simon Fraser.
8912
8913        Move an ASSERT that dereferenced a pointer inside the null-check for that pointer.
8914
8915        * loader/icon/IconDatabase.cpp:
8916        (WebCore::IconDatabase::setIconBitmapForIconURL):
8917
89182013-04-09  Eric Carlson  <eric.carlson@apple.com>
8919
8920        [Mac] user caption styles not applied to correct element
8921        https://bugs.webkit.org/show_bug.cgi?id=114230
8922
8923        Reviewed by Jer Noble.
8924
8925        Test: media/track/track-css-user-override.html
8926
8927        * html/HTMLMediaElement.cpp:
8928        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive by clean-up so we don't log excessively.
8929
8930        * html/shadow/MediaControlElements.cpp:
8931        (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Initialize
8932            new member variables.
8933        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Set cue font size when it is
8934            inserted into the tree.
8935        (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Update the font size of 
8936            all active cues.
8937        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Set size-relative CSS properties
8938            after a time because this can be called during layout.
8939        * html/shadow/MediaControlElements.h:
8940
8941        * html/shadow/MediaControls.cpp:
8942        (WebCore::MediaControls::textTrackPreferencesChanged): Call closedCaptionTracksChanged before updateSizes.
8943
8944        * html/track/TextTrackCue.cpp:
8945        (WebCore::TextTrackCue::setFontSize): New, set the cue's font size.
8946        * html/track/TextTrackCue.h:
8947
8948        * html/track/TextTrackCueGeneric.cpp:
8949        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set cue properties on the cue element
8950            instead of on the cue box to match what we do for the "cue" pseudo element.
8951        (WebCore::TextTrackCueGeneric::setFontSize): New, set the cue's font size.
8952        * html/track/TextTrackCueGeneric.h:
8953
8954        * html/track/TextTrackList.cpp:
8955        (TextTrackList::remove): Drive-by cleanup, don't ASSERT when the media element is NULL.
8956
8957        * page/CaptionUserPreferences.cpp:
8958        (WebCore::CaptionUserPreferences::setCaptionsStyleSheetOverride): New, allow user CSS overrides
8959            to be tested in DRT.
8960        (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): New, generate a user style
8961            sheet override. Moved here from CaptionUserPreferencesMac.
8962        * page/CaptionUserPreferences.h:
8963
8964        * page/CaptionUserPreferencesMac.h:
8965        * page/CaptionUserPreferencesMac.mm:
8966        (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Don't ignore background color importance.
8967        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Implement even when we don't 
8968            have the media accessibility framework so this can be tested in DRT. Apply all cue properties
8969            to the element used for the "cue" pseudo element.
8970
8971        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
8972        (WebCore::MediaPlayerPrivateAVFoundation::didLoadingProgress): Drive-by cleanup, remove logging
8973            because this method is called so frequently and the logging is not especially useful.
8974        (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Only log when the ready/network
8975            state changes because this method is called so frequently.
8976
8977        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
8978        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): Drive-by cleanup, remove logging
8979            because this method is called so frequently and the logging is not especially useful.
8980        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Make the logging more useful.
8981
8982        * testing/Internals.cpp:
8983        (WebCore::Internals::resetToConsistentState): Reset captions style sheet override.
8984        (WebCore::Internals::captionsStyleSheetOverride): New, return the captions style sheet override.
8985        (WebCore::Internals::setCaptionsStyleSheetOverride): New, override the captions style sheet override.
8986        * testing/Internals.h:
8987        * testing/Internals.idl:
8988
89892013-04-08  Simon Fraser  <simon.fraser@apple.com>
8990
8991        Repaint rect too small on elements with shadows
8992        https://bugs.webkit.org/show_bug.cgi?id=114225
8993
8994        Reviewed by Dain Adler.
8995        
8996        We assumed that shadows (box-shadow, text-shadow, svg shadows)
8997        only required inflating the repaint rect by the blur radius of
8998        the shadow. However, this is incorrect; the shadow can extend
8999        further, which resulted in clipped or incorrectly invalidated
9000        shadows.
9001        
9002        Fix by disambiguating the blur radius (which is 2x the standard
9003        deviation of the Gaussian distribution used to generate the blur),
9004        from the painting extent, which is how far the shadow visually
9005        projects. Using a 1.4 multiplier of the blur radius is a good
9006        approximation for the painting extent.
9007        
9008        Renamed ShadowData::blur() to ShadowData::radius(), and added
9009        ShadowData::paintingExtent(). Use the latter in all places
9010        which relate to invalidation.
9011
9012        Test: fast/box-shadow/shadow-repaint.html
9013
9014        * css/CSSComputedStyleDeclaration.cpp:
9015        (WebCore::CSSComputedStyleDeclaration::valueForShadow):
9016        * editing/mac/EditorMac.mm:
9017        (WebCore::Editor::fontAttributesForSelectionStart):
9018        * page/animation/CSSPropertyAnimation.cpp:
9019        (WebCore::blendFunc):
9020        * rendering/EllipsisBox.cpp:
9021        (WebCore::EllipsisBox::paint):
9022        * rendering/InlineTextBox.cpp:
9023        (WebCore::InlineTextBox::applyShadowToGraphicsContext):
9024        (WebCore::InlineTextBox::paintDecoration):
9025        * rendering/RenderBoxModelObject.cpp:
9026        (WebCore::applyBoxShadowForBackground):
9027        (WebCore::areaCastingShadowInHole):
9028        (WebCore::RenderBoxModelObject::paintBoxShadow):
9029        * rendering/style/RenderStyle.cpp:
9030        (WebCore::RenderStyle::getShadowExtent):
9031        (WebCore::RenderStyle::getShadowInsetExtent):
9032        (WebCore::RenderStyle::getShadowHorizontalExtent):
9033        (WebCore::RenderStyle::getShadowVerticalExtent):
9034        * rendering/style/ShadowData.cpp:
9035        (WebCore::ShadowData::ShadowData):
9036        (WebCore::ShadowData::operator==):
9037        (WebCore::calculateShadowExtent):
9038        * rendering/style/ShadowData.h:
9039        (WebCore::ShadowData::ShadowData):
9040        (WebCore::ShadowData::radius):
9041        (WebCore::ShadowData::paintingExtent):
9042        * rendering/svg/SVGRenderingContext.cpp:
9043        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
9044
90452013-04-08  Simon Fraser  <simon.fraser@apple.com>
9046
9047        window.internals.repaintRectsAsText() is hard to use because it doesn't force layout
9048        https://bugs.webkit.org/show_bug.cgi?id=114219
9049
9050        Reviewed by Beth Dakin.
9051
9052        Force layout when setTracksRepaints() is set to true, to flush out any pending
9053        repaints from a layout that hasn't happened yet. Also force layout in
9054        trackedRepaintRectsAsText(), so that any pending layout happpens and thus
9055        repaints.
9056
9057        * page/FrameView.cpp:
9058        (WebCore::FrameView::setTracksRepaints):
9059        (WebCore::FrameView::trackedRepaintRectsAsText):
9060
90612013-04-09  Chris Fleizach  <cfleizach@apple.com>
9062
9063        AX: Bounding paths should be made available through accessibility
9064        https://bugs.webkit.org/show_bug.cgi?id=113817
9065
9066        Unreviewed build fix (again).
9067
9068        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
9069        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
9070
90712013-04-09  Chris Fleizach  <cfleizach@apple.com>
9072
9073        AX: Bounding paths should be made available through accessibility
9074        https://bugs.webkit.org/show_bug.cgi?id=113817
9075
9076        Unreviewed build fix.
9077
9078        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
9079        (WebTransformCGPathToNSBezierPath):
9080
90812013-04-09  Chris Fleizach  <cfleizach@apple.com>
9082
9083        AX: Bounding paths should be made available through accessibility
9084        https://bugs.webkit.org/show_bug.cgi?id=113817
9085
9086        Reviewed by Tim Horton.
9087
9088        Minor fix from review feedback.
9089
9090        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
9091        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
9092
90932013-04-09  Tim Horton  <timothy_horton@apple.com>
9094
9095        [wk2] IconDatabase images should be decoded in the WebProcess
9096        https://bugs.webkit.org/show_bug.cgi?id=112524
9097        <rdar://problem/10133914>
9098
9099        Reviewed by Oliver Hunt.
9100
9101        No testable behavior change.
9102
9103        * loader/icon/IconDatabase.cpp:
9104        (WebCore::IconDatabase::updateIconRecord):
9105        Added updateIconRecord, which factors most of setIconDataForIconURL out so it can
9106        be shared with setIconBitmapForIconURL. This function will set either a bitmap or
9107        raw image data for the given icon URL.
9108
9109        (WebCore::IconDatabase::setIconBitmapForIconURL):
9110        Added; make a copy of the bitmap for thread-safety purposes, and call updateIconRecord.
9111
9112        (WebCore::IconDatabase::setIconDataForIconURL):
9113        Factored out of what is now updateIconRecord.
9114
9115        * loader/icon/IconDatabase.h:
9116        (IconDatabase): Add setIconBitmapForIconURL and updateIconRecord.
9117
9118        * loader/icon/IconDatabaseBase.h:
9119        (WebCore::IconDatabaseBase::setIconBitmapForIconURL): Added.
9120        * loader/icon/IconRecord.cpp:
9121        (WebCore::IconRecord::setImage): Set the image for an icon record directly (as opposed
9122        to setting the image data, which causes the image to be decoded in the WebProcess).
9123        * loader/icon/IconRecord.h:
9124        (IconRecord): Add setImage.
9125
91262013-04-09  Chris Fleizach  <cfleizach@apple.com>
9127
9128        AX: The bounding paths should be made available through accessibility
9129        https://bugs.webkit.org/show_bug.cgi?id=113817
9130
9131        Reviewed by David Kilzer.
9132
9133        This allows bounding paths to be returned for some web elements (image map areas and SVG shapes).
9134        This provides more accuracy when assistive technologies highlight elements.
9135        The Mac and iOS platforms share some code to help transform paths to their screen coordinates.
9136
9137        Tests: platform/iphone-simulator/accessibility/element-paths.html
9138               platform/mac/accessibility/element-paths.html
9139
9140        * accessibility/AccessibilityImageMapLink.cpp:
9141        (WebCore::AccessibilityImageMapLink::imageMapLinkRenderer):
9142        (WebCore):
9143        (WebCore::AccessibilityImageMapLink::elementPath):
9144        (WebCore::AccessibilityImageMapLink::elementRect):
9145        * accessibility/AccessibilityImageMapLink.h:
9146        (AccessibilityImageMapLink):
9147        (WebCore::AccessibilityImageMapLink::supportsPath):
9148        * accessibility/AccessibilityObject.h:
9149        (WebCore::AccessibilityObject::elementPath):
9150        (WebCore::AccessibilityObject::supportsPath):
9151        * accessibility/AccessibilityRenderObject.cpp:
9152        (WebCore):
9153        (WebCore::AccessibilityRenderObject::supportsPath):
9154        (WebCore::AccessibilityRenderObject::elementPath):
9155        * accessibility/AccessibilityRenderObject.h:
9156        (AccessibilityRenderObject):
9157        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
9158        (-[WebAccessibilityObjectWrapper _accessibilityPath]):
9159        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
9160        (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
9161        (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
9162        (-[WebAccessibilityObjectWrapper accessibilityFrame]):
9163        (-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
9164        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
9165        (WebCore):
9166        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
9167        (PathConversionInfo):
9168        (ConvertPathToScreenSpaceFunction):
9169        (-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]):
9170        (-[WebAccessibilityObjectWrapperBase convertPointToScreenSpace:]):
9171        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
9172        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
9173        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
9174        (WebTransformCGPathToNSBezierPath):
9175        (-[WebAccessibilityObjectWrapper bezierPathFromPath:]):
9176        (-[WebAccessibilityObjectWrapper path]):
9177        (-[WebAccessibilityObjectWrapper position]):
9178        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
9179
91802013-04-09  Benjamin Poulain  <bpoulain@apple.com>
9181
9182        Remove the WebKit copy of GLU and the file using it
9183        https://bugs.webkit.org/show_bug.cgi?id=114249
9184
9185        Reviewed by Darin Adler.
9186
9187        * platform/graphics/gpu/LoopBlinnPathProcessor.cpp: Removed.
9188
91892013-04-09  Andreas Kling  <akling@apple.com>
9190
9191        Throttle resize events during live window resize.
9192        <http://webkit.org/b/114292>
9193        <rdar://problem/13411454>
9194
9195        Reviewed by Geoffrey Garen.
9196
9197        Limit resize events to one at max every 0.2 seconds during live window resize.
9198        This mitigates heavy CPU usage during resize on pages with complex onresize handlers.
9199        If there's a pending resize event when the live resize ends, it fires immediately.
9200
9201        * page/FrameView.cpp:
9202        (WebCore::FrameView::sendResizeEvent):
9203
9204            Factored out dispatch of the resize event after layout so we can call it on a timer
9205            instead of immediately while live window resize is active.
9206
9207        (WebCore::FrameView::FrameView):
9208        (WebCore::FrameView::performPostLayoutTasks):
9209        (WebCore::FrameView::delayedResizeEventTimerFired):
9210        (WebCore::FrameView::willEndLiveResize):
9211        (WebCore::FrameView::scheduleResizeEvent):
9212        * page/FrameView.h:
9213        * platform/ScrollableArea.h:
9214
9215            Made willStartLiveResize() and willEndLiveResize() virtual so we can override
9216            them on FrameView.
9217
92182013-04-09  Jeff Rogers  <jrogers@rim.com>
9219
9220        Add webp to supported image mime types if WEBP feature is enabled/used
9221        https://bugs.webkit.org/show_bug.cgi?id=112819
9222
9223        Reviewed by Darin Adler.
9224
9225        Add WebP to list of supported image types in MIMETypeRegistry if enabled.
9226
9227        No new tests: WebP image decoding already covered by exisiting tests.
9228
9229        * platform/MIMETypeRegistry.cpp:
9230        (WebCore::initializeSupportedImageMIMETypes):
9231
92322013-04-09  Arnaud Renevier  <a.renevier@sisa.samsung.com>
9233
9234        Whitespace in particular source code changes rendering; does not in Firefox
9235        https://bugs.webkit.org/show_bug.cgi?id=100943
9236
9237        Reviewed by Darin Adler.
9238
9239        A render inline which requires a line box is considered a possible
9240        trailing object. So, ensureLineBoxInsideIgnoredSpaces will be called
9241        for it, even if it is placed after a text render ending with a single
9242        space.
9243
9244        Tests: fast/text/whitespace/trailing-space-before-empty-span-1.html
9245               fast/text/whitespace/trailing-space-before-empty-span-2.html
9246
9247        * rendering/RenderBlockLineLayout.cpp:
9248        (TrailingObjects):
9249        (WebCore::TrailingObjects::appendBoxIfNeeded):
9250        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
9251
92522013-04-09  Andrei Bucur  <abucur@adobe.com>
9253
9254        Use DOM ordering for list counts
9255        https://bugs.webkit.org/show_bug.cgi?id=110352
9256
9257        Reviewed by Elliott Sprehn.
9258
9259        Currently the list items ordering is made by traversing the render tree. This gives bad results for:
9260        - list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
9261        - list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
9262        list so the numbering gets broken.
9263
9264        To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
9265        so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
9266        namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
9267        for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
9268        pre-order traversal methods aware of the pseudo-elements.
9269        An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
9270        no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
9271        first parent of the <li> or the shadow root if there is no ancestor.
9272        The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
9273        To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
9274        of this method. The CSS counters and the list items now have the same traversal algorithm.
9275
9276        In later patches I'll add tests that should cover the regions and shadow DOM use cases.
9277        Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
9278        Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
9279
9280        Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
9281        and fast/dom/shadow/shadow-and-list-elements.html
9282
9283        * dom/Node.cpp:
9284        (WebCore::Node::pseudoAwarePreviousSibling):
9285        (WebCore):
9286        (WebCore::Node::pseudoAwareNextSibling):
9287        (WebCore::Node::pseudoAwareFirstChild):
9288        (WebCore::Node::pseudoAwareLastChild):
9289        * dom/Node.h:
9290        (Node):
9291        * dom/NodeTraversal.cpp:
9292        (WebCore):
9293        (WebCore::NodeTraversal::previousIncludingPseudo):
9294        (NodeTraversal):
9295        (WebCore::NodeTraversal::nextIncludingPseudo):
9296        (WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
9297        * dom/NodeTraversal.h:
9298        (ElementTraversal):
9299        (NodeTraversal):
9300        (WebCore::ElementTraversal::previousIncludingPseudo):
9301        (WebCore::ElementTraversal::nextIncludingPseudo):
9302        (WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
9303        (WebCore::ElementTraversal::pseudoAwarePreviousSibling):
9304        * html/HTMLLIElement.cpp:
9305        (WebCore::HTMLLIElement::attach):
9306        * html/HTMLOListElement.cpp:
9307        (WebCore::HTMLOListElement::updateItemValues):
9308        (WebCore::HTMLOListElement::recalculateItemCount):
9309        * rendering/RenderCounter.cpp:
9310        (WebCore::previousInPreOrder):
9311        (WebCore::previousSiblingOrParent):
9312        (WebCore::parentElement):
9313        (WebCore::nextInPreOrder):
9314        * rendering/RenderListItem.cpp:
9315        (WebCore):
9316        (WebCore::enclosingList):
9317        (WebCore::RenderListItem::nextListItem):
9318        (WebCore::previousListItem):
9319        (WebCore::RenderListItem::calcValue):
9320        (WebCore::RenderListItem::explicitValueChanged):
9321        (WebCore::previousOrNextItem):
9322        (WebCore::RenderListItem::updateListMarkerNumbers):
9323        * rendering/RenderListItem.h:
9324        (RenderListItem):
9325
93262013-04-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
9327
9328        [Texmap] TextureMapperLayer refactor for readiblity
9329        https://bugs.webkit.org/show_bug.cgi?id=114278
9330
9331        Reviewed by Noam Rosenthal.
9332
9333        Removes non-needed return values, function parameters and changes
9334        boolean values with enums for readibility.
9335
9336        No behavioral changes, thus no tests.
9337
9338        * platform/graphics/texmap/TextureMapperLayer.cpp:
9339        (WebCore::TextureMapperLayer::computeTransformsRecursive):
9340        (WebCore::TextureMapperLayer::paintSelf):
9341        (WebCore::TextureMapperLayer::sortByZOrder):
9342        (WebCore::TextureMapperLayer::computeOverlapRegions):
9343        (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
9344        (WebCore::commitSurface):
9345        (WebCore::TextureMapperLayer::paintWithIntermediateSurface):
9346        (WebCore::TextureMapperLayer::paintRecursive):
9347        * platform/graphics/texmap/TextureMapperLayer.h:
9348        (TextureMapperLayer):
9349
93502013-04-09  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
9351
9352        [WebSocket] Ignore incoming message in CLOSING state
9353        https://bugs.webkit.org/show_bug.cgi?id=85934
9354
9355        Reviewed by Kent Tamura.
9356
9357        Change WebSocket implementation to suit the new WebSocket API, which
9358        states that we should ignore messages in CLOSING state.
9359
9360        No new tests, updating existing tests.
9361
9362        * Modules/websockets/WebSocket.cpp:
9363        (WebCore::WebSocket::didReceiveMessage):
9364
93652013-04-09  Seokju Kwon  <seokju.kwon@gmail.com>
9366
9367        Web Inspector: Add Localized strings after r144154 and r135127
9368        https://bugs.webkit.org/show_bug.cgi?id=114269
9369
9370        Reviewed by Timothy Hatcher.
9371
9372        No new tests, no behavior change.
9373
9374        * English.lproj/localizedStrings.js:
9375
93762013-04-09  Antti Koivisto  <antti@apple.com>
9377
9378        Throttle compositing layer flushes in subframes
9379        https://bugs.webkit.org/show_bug.cgi?id=114267
9380
9381        Reviewed by Andreas Kling.
9382
9383        Throttle compositing layer flushes in all frames, not just the main one.
9384        
9385        This especially reduces flushes/repaints generated by ads in iframes.
9386
9387        * loader/FrameLoader.cpp:
9388        (WebCore::FrameLoader::loadProgressingStatusChanged):
9389        * page/FrameView.cpp:
9390        (WebCore::FrameView::updateLayerFlushThrottlingInAllFrames):
9391        * page/FrameView.h:
9392
93932013-04-09  Suchit Agrawal  <a.suchit@samsung.com>
9394
9395        Table border doesn't show up
9396        https://bugs.webkit.org/show_bug.cgi?id=13709
9397
9398        Reviewed by Antti Koivisto.
9399
9400        Border issue is fixed when border width is less than 0.8pt
9401
9402        Border width is stored as unsigned. Border width (specified by
9403        author) is converted into pixels and some times this pixel value
9404        goes less than 1px. In this case, border width becomes 0px when
9405        pixel value (double type) assigned to unsigned type.
9406        Border width should not fall to 0px unless it is specified by
9407        author.
9408
9409        Test: fast/borders/border-width-less-then-a-unit-of-pt.html
9410
9411        * css/StyleBuilder.cpp:
9412        ApplyPropetyComputeLength class is replaced with 3 classes :
9413        ApplyPropertyComputeBorderWidth, ApplyPropertyComputeTextSpacing
9414        and ApplyPropertyComputeTransformOriginZ.
9415
9416        (WebCore::ApplyPropertyComputeBorderWidth::applyValue):
9417        (WebCore::ApplyPropertyComputeBorderWidth::createHandler):
9418        This class handles all width properties like border, outline,
9419        etc. These all properties stores value in integer types.
9420        Pixel value rounded of to 1px if value less than 1px and greater
9421        than 0px.
9422
9423        (WebCore):
9424        (ApplyPropertyComputeTextSpacing):
9425        (WebCore::ApplyPropertyComputeTextSpacing::setValue):
9426        (WebCore::ApplyPropertyComputeTextSpacing::applyValue):
9427        (WebCore::ApplyPropertyComputeTextSpacing::createHandler):
9428        This class handles all spacing properties like word-spacing,
9429        letter-spacing etc.
9430
9431        (ApplyPropertyComputeTransformOriginZ):
9432        (WebCore::ApplyPropertyComputeTransformOriginZ::setValue):
9433        (WebCore::ApplyPropertyComputeTransformOriginZ::applyValue):
9434        (WebCore::ApplyPropertyComputeTransformOriginZ::createHandler):
9435        This class handles TransformOriginZ Property.
9436
9437        (WebCore::StyleBuilder::StyleBuilder):
9438        ApplyProprtyComputeLength class usage changed with defined new
9439        classes as per class definition.
9440
94412013-04-09  Gabor Loki  <loki@webkit.org>
9442
9443        Initialization skipped error on WinCario after r147643
9444        https://bugs.webkit.org/show_bug.cgi?id=114258
9445
9446        Reviewed by Csaba Osztrogonác.
9447
9448        Build fix. Adding extra block statement to avoid error C2362 on WinCario
9449
9450        * platform/win/DragImageCairoWin.cpp:
9451        (WebCore::createDragImageFromImage):
9452
94532013-04-09  Jinwoo Song  <jinwoo7.song@samsung.com>
9454
9455        [WK2] Remove build warnings for unused parameters
9456        https://bugs.webkit.org/show_bug.cgi?id=114234
9457
9458        Reviewed by Andreas Kling.
9459
9460        Fix build warnings -Wunused-parameter.
9461
9462        * Modules/indexeddb/IDBBackingStore.cpp:
9463        (WebCore::IDBBackingStore::openInMemory):
9464        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
9465        (WebCore::CreateIndexAbortOperation::perform):
9466        (WebCore::DeleteIndexAbortOperation::perform):
9467        (WebCore::CreateObjectStoreAbortOperation::perform):
9468        (WebCore::DeleteObjectStoreAbortOperation::perform):
9469        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
9470        * Modules/indexeddb/IDBLevelDBCoding.cpp:
9471        (WebCore::IDBLevelDBCoding::decodeBool):
9472        (WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
9473        * Modules/indexeddb/IDBLevelDBCoding.h:
9474        (WebCore::IDBLevelDBCoding::encodeIntSafely):
9475        * bindings/js/IDBBindingUtilities.cpp:
9476        (WebCore::canSet):
9477        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
9478        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
9479        * platform/leveldb/LevelDBDatabase.cpp:
9480        (WebCore::ComparatorAdapter::FindShortestSeparator):
9481        (WebCore::ComparatorAdapter::FindShortSuccessor):
9482
94832013-04-09  Thiago Marcos P. Santos  <thiago.santos@intel.com>
9484
9485        [WK2] Drop WebProcess capabilities on Linux using seccomp filters
9486        https://bugs.webkit.org/show_bug.cgi?id=89875
9487
9488        Reviewed by Maciej Stachowiak.
9489
9490        Make the DATA_DIR global since it is now needed for WebCore and WebKit2.
9491        It is now used to set a sandbox policy for the EFL port.
9492
9493        * PlatformEfl.cmake:
9494
94952013-04-08  Ryosuke Niwa  <rniwa@webkit.org>
9496
9497        Remove WebCore.gyp/gypi
9498        https://bugs.webkit.org/show_bug.cgi?id=114239
9499
9500        Reviewed by Benjamin Poulain.
9501
9502        * WebCore.gyp: Removed.
9503        * WebCore.gyp/.gitignore: Removed.
9504        * WebCore.gyp/ConvertFileToHeaderWithCharacterArray.gypi: Removed.
9505        * WebCore.gyp/MakeNames.gypi: Removed.
9506        * WebCore.gyp/WebCore.gyp: Removed.
9507        * WebCore.gyp/mac: Removed.
9508        * WebCore.gyp/mac/adjust_visibility.sh: Removed.
9509        * WebCore.gyp/mac/check_objc_rename.sh: Removed.
9510        * WebCore.gyp/scripts: Removed.
9511        * WebCore.gyp/scripts/action_csspropertynames.py: Removed.
9512        * WebCore.gyp/scripts/action_cssvaluekeywords.py: Removed.
9513        * WebCore.gyp/scripts/action_derivedsourcesallinone.py: Removed.
9514        * WebCore.gyp/scripts/action_makenames.py: Removed.
9515        * WebCore.gyp/scripts/action_useragentstylesheets.py: Removed.
9516        * WebCore.gyp/scripts/rule_bison.py: Removed.
9517        * WebCore.gyp/scripts/supplemental_idl_files.py: Removed.
9518        * WebCore.gypi: Removed.
9519
95202013-04-08  Mihai Maerean  <mmaerean@adobe.com>
9521
9522        Rollout r147756: performance regression
9523        https://bugs.webkit.org/show_bug.cgi?id=114176
9524
9525        Reviewed by Alexis Menard.
9526
9527        Rolling out the patch for https://bugs.webkit.org/show_bug.cgi?id=74144 "[CSS Regions] Elements in a region
9528        should be assignable to a named flow" because of the performance regression in Parser/html5-full-render.html .
9529
9530        No new tests (because this is a rollout patch).
9531
9532        * dom/Element.cpp:
9533        * dom/Element.h:
9534        * dom/NodeRenderingContext.cpp:
9535        (WebCore::NodeRenderingContext::parentRenderer):
9536        (WebCore::NodeRenderingContext::shouldCreateRenderer):
9537        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
9538        * dom/NodeRenderingContext.h:
9539        * dom/PseudoElement.h:
9540        * dom/Text.cpp:
9541        (WebCore::Text::textRendererIsNeeded):
9542        (WebCore::Text::updateTextRenderer):
9543        * dom/Text.h:
9544        * rendering/FlowThreadController.cpp:
9545        * rendering/FlowThreadController.h:
9546        * rendering/RenderObject.h:
9547        * rendering/RenderRegion.h:
9548        * svg/SVGElement.cpp:
9549        * svg/SVGElement.h:
9550        
95512013-04-08  Benjamin Poulain  <benjamin@webkit.org>
9552
9553        Remove HTML Notification
9554        https://bugs.webkit.org/show_bug.cgi?id=114231
9555
9556        Reviewed by Ryosuke Niwa.
9557
9558        The feature is dead. It was only kept in the tree because of chromium.
9559
9560        * Configurations/FeatureDefines.xcconfig:
9561        * Modules/notifications/Notification.cpp:
9562        (WebCore):
9563        (WebCore::Notification::Notification):
9564        * Modules/notifications/Notification.h:
9565        (Notification):
9566        * Modules/notifications/NotificationCenter.h:
9567        (NotificationCenter):
9568        * Modules/notifications/NotificationCenter.idl:
9569        * page/FeatureObserver.h:
9570
95712013-04-08  Dean Jackson  <dino@apple.com>
9572
9573        Don't try to remove a non-existent snapshot
9574        https://bugs.webkit.org/show_bug.cgi?id=114226
9575        <rdar://problem/13604480>
9576
9577        Reviewed by Darin Adler.
9578
9579        We don't need to trigger the timer to remove a snapshot
9580        if there was never a snapshot displayed.
9581
9582        * html/HTMLPlugInImageElement.cpp:
9583        (WebCore::HTMLPlugInImageElement::setDisplayState): Detect if we're moving from the DisplayingSnapshot state.
9584        (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Guard against a missing renderer.
9585
95862013-04-08  Patrick Gansterer  <paroga@webkit.org>
9587
9588        Do not define CAN_THEME_URL_ICON for PLATFORM(WIN_CAIRO)
9589        https://bugs.webkit.org/show_bug.cgi?id=108444
9590
9591        Reviewed by Darin Adler.
9592
9593        Image::loadPlatformResource("urlIcon") returns nothing
9594        since r30961 on Windows which makes the code useless.
9595
9596        * loader/icon/IconDatabase.cpp:
9597
95982013-04-05  Roger Fong  <roger_fong@apple.com>
9599
9600        Build fix.
9601
9602        * platform/win/DragImageWin.cpp:
9603        (WebCore::createDragImageIconForCachedImageFilename):
9604
96052013-04-08  Geoffrey Garen  <ggaren@apple.com>
9606
9607        Stop #include-ing all of JavaScriptCore in every DOM-related file
9608        https://bugs.webkit.org/show_bug.cgi?id=114220
9609
9610        Reviewed by Sam Weinig.
9611
9612        I separated ScriptWrappableInlines.h from ScriptWrappable.h so
9613        WebCore data types that inherit from ScriptWrappable don't
9614        have to #include all of the infrastructure for accessing that data member.
9615
9616        * ForwardingHeaders/heap/PassWeak.h: Added.
9617        * ForwardingHeaders/heap/WeakInlines.h: Added.
9618        * WebCore.xcodeproj/project.pbxproj:
9619        * bindings/js/DOMWrapperWorld.h:
9620        * bindings/js/JSDOMBinding.h:
9621        (JSC):
9622        * bindings/js/JSEventListener.h:
9623        * bindings/js/JSMutationCallback.cpp:
9624        * bindings/js/JSNodeFilterCondition.h:
9625        * bindings/js/ScriptWrappable.h:
9626        (JSC):
9627        (WebCore):
9628        (ScriptWrappable):
9629        * bindings/js/ScriptWrappableInlines.h: Added.
9630        (WebCore):
9631        (WebCore::ScriptWrappable::wrapper):
9632        (WebCore::ScriptWrappable::setWrapper):
9633        (WebCore::ScriptWrappable::clearWrapper):
9634        * bridge/qt/qt_instance.h:
9635        * bridge/qt/qt_runtime.h:
9636        * bridge/runtime_root.cpp:
9637        * bridge/runtime_root.h:
9638        * css/StylePropertySet.cpp:
9639        * dom/LiveNodeList.cpp:
9640        (WebCore::LiveNodeListBase::reportMemoryUsage):
9641        * dom/Node.cpp:
9642        (WebCore::Node::reportMemoryUsage):
9643        * inspector/InspectorDebuggerAgent.cpp:
9644        * inspector/NetworkResourcesData.cpp:
9645        * loader/cache/CachedSVGDocument.cpp:
9646        * xml/XMLHttpRequest.cpp:
9647        (WebCore::XMLHttpRequest::reportMemoryUsage):
9648
96492013-04-08  Tiancheng Jiang  <tijiang@rim.com>
9650
9651        [BlackBerry] Clean up render theme code. 
9652        https://bugs.webkit.org/show_bug.cgi?id=114216
9653
9654        Reviewed by Rob Buis.
9655
9656        BlackBerry PR 323062
9657
9658        Clean up redundant code.
9659
9660        * platform/blackberry/RenderThemeBlackBerry.cpp:
9661        (WebCore):
9662        (WebCore::RenderThemeBlackBerry::paintSliderTrack):
9663        * platform/blackberry/RenderThemeBlackBerry.h:
9664        (RenderThemeBlackBerry):
9665
96662013-04-08  Arunprasad Rajkumar  <arunprasadr@nds.com>
9667
9668        Call Netscape Plugin's toString() and valueOf() instead of providing default implementation
9669        https://bugs.webkit.org/show_bug.cgi?id=113139
9670
9671        Reviewed by Anders Carlsson.
9672
9673        Tests: plugins/npruntime/tostring.html
9674               plugins/npruntime/valueof.html
9675
9676        * bridge/c/c_instance.cpp:
9677        (JSC::Bindings::CInstance::~CInstance):
9678        (JSC::Bindings::CInstance::invokeMethod):
9679        (JSC::Bindings::CInstance::invokeDefaultMethod):
9680        (Bindings):
9681        (JSC::Bindings::CInstance::invokeConstruct):
9682        (JSC::Bindings::CInstance::stringValue):
9683        (JSC::Bindings::CInstance::booleanValue):
9684        (JSC::Bindings::CInstance::valueOf):
9685        (JSC::Bindings::CInstance::toJSPrimitive):
9686        * bridge/c/c_instance.h:
9687        (CInstance):
9688
96892013-04-08  Tim Horton  <timothy_horton@apple.com>
9690
9691        REGRESSION (r138858): Crash in WebCore::FrameLoader::~FrameLoader() when opening page in a background tab
9692        https://bugs.webkit.org/show_bug.cgi?id=109935
9693        <rdar://problem/13225963>
9694
9695        Reviewed by Brady Eidson.
9696
9697        Previously, we were deciding if a Page could go into
9698        the PageCache by blacklisting certain load types. Instead,
9699        whitelist the load types that we know can go into the cache,
9700        so that newly-added load types are not cached unless
9701        that is explicitly desired.
9702
9703        The crash occurs when a page which is actively loading
9704        is put into the page cache while doing a redirect with
9705        FrameLoadTypeRedirectWithLockedBackForwardList (note that
9706        this is a redirect that was not covered in the blacklist),
9707        and then promptly removed from the page cache, resulting
9708        in resources from the redirect target (the now-active page)
9709        being incorrectly destroyed.
9710
9711        No new tests, only known crash repro case is extremely
9712        timing dependent (and only happens in WebKit2, with tiled
9713        drawing, in background tabs).
9714
9715        * history/PageCache.cpp:
9716        (WebCore::PageCache::canCache):
9717
97182013-04-08  Anders Carlsson  <andersca@apple.com>
9719
9720        Fix build.
9721
9722        * platform/network/ResourceHandle.cpp:
9723        (WebCore::ResourceHandle::continueDidReceiveResponse):
9724
97252013-04-08  Anders Carlsson  <andersca@apple.com>
9726
9727        Add an async version of ResourceHandle::didReceiveResponse
9728        https://bugs.webkit.org/show_bug.cgi?id=114215
9729
9730        Reviewed by Sam Weinig.
9731
9732        In order to support converting NSURLConnections to NSURLDownloads when using the network process
9733        we need an async version of didReceiveResponse.
9734
9735        * WebCore.exp.in:
9736        * platform/network/ResourceHandleClient.cpp:
9737        (WebCore::ResourceHandleClient::didReceiveResponseAsync):
9738        Just call continueDidReceiveResponse().
9739
9740        * platform/network/mac/ResourceHandleMac.mm:
9741        (WebCore::ResourceHandle::continueWillSendRequest):
9742        Split up a single condition in two, making it easier to see which assertion fails.
9743
9744        (WebCore::ResourceHandle::continueDidReceiveResponse):
9745        Call -[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse].
9746
9747        (WebCore::ResourceHandle::continueShouldUseCredentialStorage):
9748        (WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
9749        (WebCore::ResourceHandle::continueWillCacheResponse):
9750        Split up a single condition in two, making it easier to see which assertion fails.
9751
9752        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
9753        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
9754        (-[WebCoreResourceHandleAsOperationQueueDelegate continueDidReceiveResponse]):
9755        Signal the semaphore.
9756
9757        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
9758        Call didReceiveResponseAsync on the main thread and wait on the semaphore.
9759
97602013-04-08  Beth Dakin  <bdakin@apple.com>
9761
9762        Crash in ScrollingCoordinator::mainThreadScrollingReasons() when going back
9763        https://bugs.webkit.org/show_bug.cgi?id=114214
9764        -and corresponding-
9765        <rdar://problem/13208616>
9766
9767        Reviewed by Anders Carlsson.
9768
9769        When a page is restoring from the page cache, the mainFrame can have a null 
9770        Document. So we should null-check the Document here. 
9771
9772        * page/scrolling/ScrollingCoordinator.cpp:
9773        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
9774
97752013-04-08  Andrei Bucur  <abucur@adobe.com>
9776
9777        Simplify ContainerNode::removeChildren
9778        https://bugs.webkit.org/show_bug.cgi?id=113517
9779
9780        Reviewed by Darin Adler.
9781
9782        The patch is based on the work made by Elliott Sprehn. He kindly agreed
9783        for me to finalize the last bits and pieces of the fix.
9784
9785        Simplify ContainerNode::removeChildren by merging the loops and removing
9786        willRemoveChildren. This removes two traversals of the children, avoids
9787        refing and derefing all the children once, avoids allocating a second
9788        NodeVector of children, and means we detach() in the same order as
9789        normal removal.
9790
9791        This does mean you can get into an infinite loop with DOMNodeRemoved
9792        listeners by continously adding nodes but this is true in all other browsers
9793        and the current behavior is bad because it means you don't get notified
9794        of nodes added during removal (which other browsers do notify of). This
9795        patch removes the containerNode.html test that originally tested for this
9796        infinite loop and adds a new one that tests that all nodes get notified.
9797
9798        This makes PerformanceTests/Parser/innerHTML-setter.html 2-6% faster.
9799
9800        There's also a new test verifying ranges remain consistent if modified
9801        inside an mutation event handler. Without the patch it's possible to create
9802        a range with boundaries outside of the DOM tree.
9803
9804        Tests: fast/dom/Range/range-remove-children-event.html
9805               fast/events/mutation-during-innerHTML.html
9806
9807        * dom/ContainerNode.cpp:
9808        (WebCore::ContainerNode::removeChildren):
9809        * dom/Document.cpp:
9810        * dom/Document.h: nodeChildrenWillBeRemoved is not needed any more.
9811        * dom/Range.cpp:
9812        * dom/Range.h: nodeChildrenWillBeRemoved is not needed any more.
9813
98142013-04-06  Simon Fraser  <simon.fraser@apple.com>
9815
9816        Remove some #includes in headers in rendering code
9817        https://bugs.webkit.org/show_bug.cgi?id=114079
9818
9819        Reviewed by Sam Weinig.
9820
9821        Clean up #includes in RenderObject, RenderLayer etc.
9822        Moved makeMatrixRenderable() into RenderLayer.app, allowing
9823        the removal of a TransformationMatrix.h include.
9824        
9825        Make some RenderLayer functions that deal with filters not inline,
9826        to avoid including RenderLayerFilterInfo.h.
9827
9828        * platform/graphics/GraphicsLayer.h:
9829        * platform/graphics/ImageOrientation.cpp:
9830        * platform/graphics/cairo/GraphicsContextCairo.cpp:
9831        * platform/graphics/qt/GraphicsContextQt.cpp:
9832        * platform/graphics/transforms/AffineTransform.cpp:
9833        * platform/graphics/transforms/AffineTransform.h:
9834        * rendering/RenderBoxModelObject.h:
9835        * rendering/RenderLayer.cpp:
9836        (WebCore::makeMatrixRenderable):
9837        (WebCore::RenderLayer::filterRenderer):
9838        (WebCore::RenderLayer::filterInfo):
9839        (WebCore::RenderLayer::ensureFilterInfo):
9840        (WebCore::RenderLayer::removeFilterInfoIfNeeded):
9841        * rendering/RenderLayer.h:
9842        * rendering/RenderLayerBacking.h:
9843        * rendering/RenderLineBoxList.h:
9844        * rendering/RenderObject.h:
9845
98462013-04-08  Robert Hogan  <robert@webkit.org>
9847
9848        Unreviewed, rolling out r147850.
9849        http://trac.webkit.org/changeset/147850
9850        https://bugs.webkit.org/show_bug.cgi?id=113706
9851
9852        Changeset crossed paths with 147505, which is the same fix.
9853
9854        * rendering/RenderBlockLineLayout.cpp:
9855        (WebCore::inlineLogicalWidth):
9856
98572013-04-08  Alexey Proskuryakov  <ap@apple.com>
9858
9859        <rdar://problem/12834449> Crashes in WebSocketChannel::processFrame when processing a ping
9860        https://bugs.webkit.org/show_bug.cgi?id=114178
9861
9862        Reviewed by Brady Eidson.
9863
9864        No test, I could never reproduce even manually.
9865
9866        Calling enqueueRawFrame() could change incoming buffer, so a subsequent skipBuffer()
9867        would operate on wrong assumptions. This happened because enqueueRawFrame() actually
9868        tried to process the queue, and send failure sometimed clears m_buffer.
9869
9870        Fixing this by decoupling enqueuing from sending, and making sure that skipBuffer()
9871        in ping frame processing case is performed at a safe time.
9872
9873        * Modules/websockets/WebSocketChannel.cpp:
9874        (WebCore::WebSocketChannel::send):
9875        (WebCore::WebSocketChannel::startClosingHandshake):
9876        (WebCore::WebSocketChannel::processFrame):
9877        (WebCore::WebSocketChannel::enqueueTextFrame):
9878        (WebCore::WebSocketChannel::enqueueRawFrame):
9879        (WebCore::WebSocketChannel::enqueueBlobFrame):
9880
98812013-04-08  Max Vujovic  <mvujovic@adobe.com>
9882
9883        REGRESSION (r147502): Animations of CA filters broken
9884        https://bugs.webkit.org/show_bug.cgi?id=114067
9885
9886        Reviewed by Dean Jackson.
9887
9888        Revert r147502 [1] because it broke CA filter animations.
9889        
9890        [1]: http://trac.webkit.org/changeset/147502
9891
9892        * platform/graphics/IntRectExtent.h:
9893        (WebCore::IntRectExtent::isZero):
9894        (IntRectExtent):
9895        * rendering/RenderLayer.cpp:
9896        (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
9897        (WebCore):
9898        (WebCore::RenderLayer::styleChanged):
9899        * rendering/RenderLayer.h:
9900        (RenderLayer):
9901        * rendering/RenderLayerBacking.cpp:
9902        (WebCore::RenderLayerBacking::updateFilters):
9903        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9904        * rendering/RenderLayerBacking.h:
9905        (RenderLayerBacking):
9906        * rendering/RenderLayerCompositor.cpp:
9907        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
9908
99092013-04-08  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
9910
9911        [Qt] Avoid "QFont::setPixelSize: Pixel size <= 0 (0)"
9912        https://bugs.webkit.org/show_bug.cgi?id=114175
9913
9914        Reviewed by Allan Sandfeld Jensen.
9915
9916        QFont doesn't support a 0-size but WebCore does.
9917        Leave our QFont in its default state in this case to avoid the warning.
9918
9919        * platform/graphics/qt/FontPlatformDataQt.cpp:
9920        (WebCore::FontPlatformData::FontPlatformData):
9921
99222013-04-08  Yi Shen  <max.hong.shen@gmail.com>
9923
9924        Counter still gets incremented when counter-increment is set to none
9925        https://bugs.webkit.org/show_bug.cgi?id=84985
9926
9927        Reviewed by Darin Adler.
9928
9929        When the counter-increment is set to none, no counters are incremented.
9930
9931        Tests: New test cases added in fast/css/counters/counter-increment-tests.htm
9932
9933        * css/StyleBuilder.cpp:
9934        (WebCore::ApplyPropertyCounter::applyValue):
9935
99362013-04-08  Douglas Stockwell  <dstockwell@chromium.org>
9937
9938        Crash in WebCore::ElementRuleCollector::collectMatchingRulesForList
9939        https://bugs.webkit.org/show_bug.cgi?id=113458
9940
9941        Reviewed by Darin Adler.
9942
9943        A stylesheet which has been invalidated (type changed from "" or
9944        "text/css") was not correctly removed from the list of active
9945        style sheets when its children are changed.
9946
9947        This change releases StyleElement::m_sheet in advance of calling
9948        DocumentStyleSheetCollection::updateActiveStyleSheets.
9949
9950        (StyleElement::clearSheet calls CSSStyleSheet::clearOwnerNode calls
9951        CSSStyleSheet::didMutate calls Document::styleResolverChanged calls
9952        DocumentStyleSheetCollection::updateActiveStyleSheets)
9953
9954        Test: fast/css/style-element-invalidation-crash.html
9955
9956        * dom/StyleElement.cpp:
9957        (WebCore::StyleElement::clearSheet): Release m_sheet before we
9958          trigger an update of the active style sheets.
9959
99602013-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
9961
9962        [GTK] DOM objects created wrapping a base class have incorrect GObject type
9963        https://bugs.webkit.org/show_bug.cgi?id=113132
9964
9965        Reviewed by Gustavo Noronha Silva.
9966
9967        Some of the DOM methods can create a concrete instance of another
9968        object, but return a base class. GObject bindings provide custom
9969        kit implementations for Node, Element, Event and EvenTarget, so
9970        any concrete HTMLElement wrapped as an HTMLElement ends up
9971        wrapping the right WebCore object but in the wrong GObject type.
9972        This affects not only HTMLElements, but any polymorphic object
9973        wrapped using a base class.
9974        This patch changes the way objects are created, so that all
9975        classes have their own kit implementation, but for polymorphic
9976        objects the kit implementation of the base class is always
9977        used. The kit method of polymorphic base classes use a generic
9978        wrap method instead of the wrapFoo method like all other
9979        classes. In the static code we provide the implementation of the
9980        generic wrap method for every polimorphic base class, falling back
9981        to their wrapFoo method if the concrete object can't be used to
9982        wrap the object.
9983        Both WebKitDOMBinding and WebKitHTMLElementWrapperFactory now provide
9984        implementations of wrap and have been renamed to WebKitDOMPrivate
9985        and WebKitDOMHTMLPrivate.
9986
9987        * bindings/gobject/GNUmakefile.am:
9988        * bindings/gobject/WebKitDOMBinding.cpp: Removed.
9989        * bindings/gobject/WebKitDOMEventTarget.cpp:
9990        (WebKit::kit): Moved kit implementation from WebKitDOMBinding for
9991        consistency with all other objects that have their own kit.
9992        (WebKit::core): Updated to match the core implementation fo all
9993        other objects.
9994        * bindings/gobject/WebKitDOMEventTargetPrivate.h:
9995        (WebCore):
9996        (WebKit):
9997        * bindings/gobject/WebKitDOMHTMLPrivate.cpp: Added.
9998        (WebKit): Use preprocessor macros to define and set the wrap
9999        functions of all HTML elements, removing a lot of boilerplate code
10000        and making it easier to add new wrap functions in the future.
10001        (WebKit::wrap):
10002        * bindings/gobject/WebKitDOMHTMLPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitHTMLElementWrapperFactory.h.
10003        (WebCore):
10004        (WebKit):
10005        * bindings/gobject/WebKitDOMObject.cpp:
10006        * bindings/gobject/WebKitDOMPrivate.cpp: Added.
10007        (WebKit):
10008        (WebKit::wrap):
10009        * bindings/gobject/WebKitDOMPrivate.h: Renamed from Source/WebCore/bindings/gobject/WebKitDOMBinding.h.
10010        (WebCore):
10011        (WebKit):
10012        * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp: Removed.
10013        * bindings/scripts/CodeGeneratorGObject.pm:
10014        (IsBaseType): Helper function to check if a type is a base class.
10015        (GetBaseClass): Helper function to get the base class for a given
10016        parent type.
10017        (GenerateFunction): Remove special case for EventTarget since the
10018        kit prototype of EventTarget is in its private header like all
10019        other objects.
10020        (GenerateCFile): Add a kit implementation for all objects.
10021        (IsPolymorphic): Helper function to check if the given type is the
10022        base class of a polymorphic object.
10023        (Generate): Include the private header of the base class for
10024        polymorphic objects.
10025        (WriteData): Remove the special case for WebKitDOMNode since now
10026        all objects has a kit method.
10027        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
10028        (WebKit::kit):
10029        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
10030        (WebKit):
10031        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
10032        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
10033        (WebKit):
10034        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
10035        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
10036        (WebKit):
10037        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
10038        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
10039        (WebKit):
10040        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
10041        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
10042        (WebKit):
10043        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
10044        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
10045        (WebKit):
10046        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
10047        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
10048        (WebKit):
10049        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
10050        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
10051        (WebKit):
10052        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
10053        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
10054        (WebKit):
10055        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
10056        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
10057        (WebKit):
10058        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
10059        (WebKit::kit):
10060        * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
10061        (WebKit):
10062        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
10063        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
10064        (WebKit):
10065        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
10066        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
10067        (WebKit):
10068        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
10069        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
10070        (WebKit):
10071        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
10072        * bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h:
10073        (WebKit):
10074
100752013-04-08  Andras Becsi  <andras.becsi@digia.com>
10076
10077        Fix the build with strict GCC 4.8
10078
10079        Unreviewed build fix.
10080
10081        Initialize dragImage to suppress GCC's warning about it being possibly used uninitialized,
10082        which results is a build failure with GCC 4.8 that sets -Werror=maybe-uninitialized.
10083
10084        No new tests needed.
10085
10086        * page/DragController.cpp:
10087        (WebCore::DragController::doImageDrag):
10088
100892013-04-08  Zan Dobersek  <zdobersek@igalia.com>
10090
10091        Remove the unused LayoutTestSupport class
10092        https://bugs.webkit.org/show_bug.cgi?id=114170
10093
10094        Reviewed by Alexey Proskuryakov.
10095
10096        The LayoutTestSupport class is not used by any port anywhere in the code and should be removed.
10097
10098        No new tests - no changes in functionality.
10099
10100        * CMakeLists.txt:
10101        * GNUmakefile.list.am:
10102        * Target.pri:
10103        * WebCore.vcproj/WebCore.vcproj:
10104        * WebCore.vcxproj/WebCore.vcxproj:
10105        * WebCore.vcxproj/WebCore.vcxproj.filters:
10106        * WebCore.xcodeproj/project.pbxproj:
10107        * platform/LayoutTestSupport.cpp: Removed.
10108        * platform/LayoutTestSupport.h: Removed.
10109
101102013-04-08  Zan Dobersek  <zdobersek@igalia.com>
10111
10112        Remove WebCore::(enable|disable)SecureTextInput methods
10113        https://bugs.webkit.org/show_bug.cgi?id=114126
10114
10115        Reviewed by Alexey Proskuryakov.
10116
10117        Remove the enableSecureTextInput and disableSecureTextInput methods and all the codepaths leading to them.
10118        These were used only by the Chromium port and are as such not required anymore.
10119
10120        No new tests - no changes in functionality.
10121
10122        * GNUmakefile.list.am:
10123        * WebCore.order:
10124        * WebCore.xcodeproj/project.pbxproj:
10125        * dom/Document.cpp:
10126        (WebCore::Document::Document):
10127        * dom/Document.h:
10128        (Document):
10129        * editing/FrameSelection.cpp:
10130        (WebCore::FrameSelection::focusedOrActiveStateChanged):
10131        * editing/FrameSelection.h:
10132        (FrameSelection):
10133        * html/PasswordInputType.cpp:
10134        * html/PasswordInputType.h:
10135        (PasswordInputType):
10136        * page/Frame.cpp:
10137        (WebCore::Frame::setDocument):
10138        * platform/SecureTextInput.h: Removed.
10139
101402013-04-08  Jer Noble  <jer.noble@apple.com>
10141
10142        Unreviewed build fix; r147892 moved an export definition out of
10143        a protective #ifdef, causing a link error on platforms which do
10144        not define that method.
10145
10146        * WebCore.exp.in:
10147
101482013-04-08  Brendan Long  <b.long@cablelabs.com>
10149
10150        [Qt] Enable text tracks from track elements
10151        https://bugs.webkit.org/show_bug.cgi?id=113522
10152
10153        Reviewed by Jocelyn Turcotte.
10154
10155        No new tests because they're already there. This just enables the feature.
10156
10157        * Target.pri:
10158        * bindings/generic/RuntimeEnabledFeatures.cpp:
10159        (WebCore):
10160        * platform/qt/LocalizedStringsQt.cpp:
10161        (WebCore):
10162        (WebCore::textTrackSubtitlesText):
10163        (WebCore::textTrackOffText):
10164        (WebCore::textTrackNoLabelText):
10165
101662013-04-08  Sergio Villar Senin  <svillar@igalia.com>
10167
10168        [GTK] Toggle OverWrite mode when pressing the Insert key
10169        https://bugs.webkit.org/show_bug.cgi?id=113384
10170
10171        Reviewed by Martin Robinson.
10172
10173        Perform an OverWrite command as a response to the emission of the
10174        toggle-overwrite signal. Due to the nature of the command it will
10175        only do that when being on a richly editable web content.
10176
10177        * platform/gtk/KeyBindingTranslator.cpp:
10178        (WebCore::toggleOverwriteCallback):
10179
101802013-04-08  Seokju Kwon  <seokju.kwon@gmail.com>
10181
10182        [BlackBerry] Provide more specific error description for SocketStreamError
10183        https://bugs.webkit.org/show_bug.cgi?id=114134
10184
10185        Reviewed by Rob Buis.
10186
10187        Pass the reason of a failure to SocketStreamError instance
10188        and notify it via SocketStreamHandleClient::didFailSocketStream().
10189
10190        * platform/network/blackberry/SocketStreamError.h:
10191        (WebCore::SocketStreamError::SocketStreamError):
10192        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
10193        (WebCore::SocketStreamHandle::notifyStatusReceived):
10194
101952013-04-08  Youenn Fablet  <youennf@gmail.com>
10196
10197        [GTK][EFL] HEAD requests changed to GET after 303 redirection
10198        https://bugs.webkit.org/show_bug.cgi?id=110127
10199
10200        Reviewed by Martin Robinson.
10201
10202        Made shouldRedirectAsGET always return false for HEAD requests.
10203
10204        * platform/network/soup/ResourceHandleSoup.cpp:
10205        (WebCore::shouldRedirectAsGET):
10206
102072013-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
10208
10209        DragImage should not depend on Frame and CachedImage
10210        https://bugs.webkit.org/show_bug.cgi?id=21357
10211
10212        Reviewed by Sam Weinig.
10213
10214        Remove Frame and CachedImage dependencies from DragImage.
10215
10216        * dom/Clipboard.h:
10217        (WebCore): Add forward delcaration for CacheImage since it's not
10218        included anymore in DragImage.h.
10219        * page/DragController.cpp:
10220        (WebCore::DragController::startDrag): Use
10221        Frame::dragImageForSelection() and call
10222        dissolveDragImageToFraction() for the returned DragImage. Pass the
10223        font rendering mode to createDragImageForLink, instead of a Frame
10224        that is only used to get the font rendering mode.
10225        (WebCore::DragController::doImageDrag): Get the suggested filename
10226        for the cached image and pass it to
10227        createDragImageIconForCachedImageFilename().
10228        * platform/DragImage.cpp:
10229        (WebCore::createDragImageForLink): Receive a FontRenderingMode
10230        instead of a Frame.
10231        * platform/DragImage.h:
10232        (WebCore): Remove createDragImageForSelection, change
10233        createDragImageForLink to receive a FontRenderingMode instead of a
10234        frame, and rename createDragImageIconForCachedImage as
10235        createDragImageIconForCachedImageFilename since it nows received
10236        the suggested filename of the cached image.
10237        * platform/blackberry/DragImageBlackBerry.cpp:
10238        (WebCore::createDragImageIconForCachedImageFilename): Adapt to API
10239        changes.
10240        * platform/efl/DragImageEfl.cpp:
10241        (WebCore::createDragImageIconForCachedImageFilename): Ditto.
10242        * platform/gtk/DragImageGtk.cpp:
10243        (WebCore::createDragImageIconForCachedImageFilename): Ditto.
10244        * platform/mac/DragImageMac.mm:
10245        (WebCore::dissolveDragImageToFraction): Return early if the passed
10246        image is NULL.
10247        (WebCore::createDragImageIconForCachedImageFilename): Adapt to API
10248        changes.
10249        (WebCore::createDragImageForLink): Ditto.
10250        * platform/qt/DragImageQt.cpp:
10251        (WebCore::createDragImageIconForCachedImageFilename): Ditto.
10252        * platform/win/DragImageWin.cpp:
10253        (WebCore::createDragImageIconForCachedImageFilename): Ditto.
10254        (WebCore::createDragImageForLink): Ditto.
10255        * platform/wx/DragImageWx.cpp:
10256        (WebCore::createDragImageIconForCachedImageFilename): Ditto.
10257
102582013-04-08  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
10259
10260        [EFL] REGRESSION(r147743): Use the correct `operator new' override in RenderThemeEfl.
10261        https://bugs.webkit.org/show_bug.cgi?id=114166
10262
10263        Reviewed by Alexis Menard.
10264
10265        r147743 disabled GLOBAL_FAST_MALLOC_NEW on the EFL port, but this has
10266        caused some pixel tests in WK1 to crash.
10267
10268        The problem stems from RenderThemeEfl::applyEdjeRTLState() directly
10269        calling `operator new(size_t)' for some allocations.
10270        RefCounted<RenderTheme>, on its turn, has a WTF_MAKE_FAST_ALLOCATED
10271        call which adds some `operator new' overrides to the class. Our direct
10272        calls in applyEdjeRTLState() made the scope resolution rules choose the
10273        WTF_MAKE_FAST_ALLOCATED version (which uses FastMalloc's allocator),
10274        while WTF::deleteOwnedPtr() calls the global `operator delete' (which
10275        uses the system's free() implementation).
10276
10277        * platform/efl/RenderThemeEfl.cpp:
10278        (WebCore::RenderThemeEfl::applyEdjeRTLState): Explicitly choose the
10279        global `operator new' when calling it.
10280
102812013-04-07  Benjamin Poulain  <benjamin@webkit.org>
10282
10283        Remove the android code from WebCore
10284        https://bugs.webkit.org/show_bug.cgi?id=114136
10285
10286        Reviewed by Anders Carlsson.
10287
10288        * WebCore.exp.in:
10289        * dom/ViewportArguments.cpp:
10290        (WebCore):
10291        (WebCore::setViewportFeature):
10292        (WebCore::viewportErrorMessageTemplate):
10293        (WebCore::viewportErrorMessageLevel):
10294        * dom/ViewportArguments.h:
10295        (WebCore::ViewportArguments::ViewportArguments):
10296        (ViewportArguments):
10297        (WebCore::ViewportArguments::operator==):
10298        * editing/EditingBehavior.h:
10299        (WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom):
10300        (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
10301        (WebCore::EditingBehavior::shouldNavigateBackOnBackspace):
10302        * editing/EditingBehaviorTypes.h:
10303        * page/EventHandler.cpp:
10304        (WebCore::EventHandler::handleGestureLongTap):
10305        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
10306        * page/Settings.cpp:
10307        (WebCore):
10308        (WebCore::editingBehaviorTypeForPlatform):
10309        * platform/graphics/FontCache.h:
10310        (FontCache):
10311        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
10312        (WebCore::FontPlatformData::getRenderStyleForStrike):
10313        * testing/InternalSettings.cpp:
10314        (WebCore::InternalSettings::setEditingBehavior):
10315
103162013-04-07  Oliver Hunt  <oliver@apple.com>
10317
10318        Add bounds checking for WTF::Vector::operator[]
10319        https://bugs.webkit.org/show_bug.cgi?id=89600
10320
10321        Reviewed by Filip Pizlo.
10322
10323        Fix exports
10324
10325        * WebCore.exp.in:
10326
103272013-04-07  Benjamin Poulain  <benjamin@webkit.org>
10328
10329        Do not allocate static AtomicStrings when searching for alternate font names
10330        https://bugs.webkit.org/show_bug.cgi?id=114110
10331
10332        Reviewed by Geoffrey Garen.
10333
10334        FontCache's alternateFamilyName does some font name substitutions
10335        when a font is not found for a given name.
10336
10337        In the vast majority of cases, no substitutions are made and
10338        alternateFamilyName returns the null atom.
10339        Given the usage the function had a couple of problems:
10340        -It created 6 static AtomicString.
10341        -It did a case insensitive comparison with 6 differents strings
10342         before failing.
10343
10344        This patch aims at solving both issues.
10345
10346        Instead of creating all AtomicString statically, the alternate name
10347        are simply created on the fly as needed. Because the operation is so
10348        unfrequent, and it uses the fast constructor, doing so should not slow
10349        down the function.
10350
10351        To avoid comparing the input to every string, every time, the length of
10352        the input is first evaluated, and we only do the necessary string comparisons.
10353
10354        On x86_64, this reduces the binary size by 2128 bytes.
10355
10356        * platform/graphics/FontCache.cpp:
10357        (WebCore::familyNameEqualIgnoringCase):
10358        When comparing strings, we know:
10359        -The family name is non null.
10360        -The length of both strings is equal.
10361        -The length is not null.
10362        Make the comparison accordingly.
10363
10364        (WebCore::alternateFamilyName):
10365        (WebCore::FontCache::getCachedFontPlatformData):
10366
103672013-04-07  Zan Dobersek  <zdobersek@igalia.com>
10368
10369        Remove remaining PLATFORM(CHROMIUM)-guarded code in WebCore
10370        https://bugs.webkit.org/show_bug.cgi?id=114081
10371
10372        Remove the remaining PLATFORM(CHROMIUM) build guards. There are still a couple of guards
10373        that most likely apply only to Chromium, like OS(ANDROID) or USE(SKIA_ON_MAC_CHROMIUM),
10374        but removal of these should go into separate patches.
10375
10376        * bindings/generic/RuntimeEnabledFeatures.cpp:
10377        (WebCore):
10378        * config.h:
10379        * history/PageCache.cpp:
10380        (WebCore):
10381        (WebCore::logCanCacheFrameDecision):
10382        (WebCore::logCanCachePageDecision):
10383        (WebCore::PageCache::canCache):
10384        * html/HTMLCanvasElement.cpp:
10385        (WebCore::HTMLCanvasElement::getContext):
10386        (WebCore::HTMLCanvasElement::shouldAccelerate):
10387        * html/HTMLCanvasElement.h:
10388        * html/HTMLMediaElement.cpp:
10389        (WebCore::createFileURLForApplicationCacheResource):
10390        (WebCore::HTMLMediaElement::loadResource):
10391        * html/HTMLSelectElement.cpp:
10392        (WebCore):
10393        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
10394        * html/MediaDocument.cpp:
10395        (WebCore::MediaDocument::defaultEventHandler):
10396        * html/canvas/EXTDrawBuffers.cpp:
10397        (WebCore::EXTDrawBuffers::satisfiesWebGLRequirements):
10398        * html/canvas/WebGLRenderingContext.cpp:
10399        (WebCore):
10400        (WebCore::WebGLRenderingContext::create):
10401        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
10402        (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
10403        (WebCore::WebGLRenderingContext::platformLayer):
10404        * inspector/InspectorInstrumentation.cpp:
10405        (WebCore):
10406        (WebCore::InspectorInstrumentation::willPaintImpl):
10407        * inspector/InspectorTimelineAgent.cpp:
10408        (WebCore::InspectorTimelineAgent::didBeginFrame):
10409        * loader/DocumentLoader.cpp:
10410        (WebCore::DocumentLoader::notifyFinished):
10411        * page/FeatureObserver.cpp:
10412        (WebCore::FeatureObserver::~FeatureObserver):
10413        * platform/AsyncFileSystem.cpp:
10414        (WebCore):
10415        * platform/ContextMenu.h:
10416        (ContextMenu):
10417        * platform/ContextMenuItem.h:
10418        * platform/Cursor.h:
10419        * platform/DragData.cpp:
10420        (WebCore):
10421        * platform/DragData.h:
10422        * platform/DragImage.h:
10423        * platform/LocalizedStrings.h:
10424        (WebCore):
10425        * platform/Pasteboard.h:
10426        (Pasteboard):
10427        * platform/PlatformExportMacros.h:
10428        * platform/PlatformInstrumentation.h:
10429        (WebCore::PlatformInstrumentation::willDecodeImage):
10430        (WebCore::PlatformInstrumentation::didDecodeImage):
10431        (WebCore::PlatformInstrumentation::willResizeImage):
10432        (WebCore::PlatformInstrumentation::didResizeImage):
10433        * platform/PlatformMenuDescription.h:
10434        (WebCore):
10435        * platform/PlatformSpeechSynthesizer.h:
10436        (PlatformSpeechSynthesizer):
10437        * platform/PlatformWheelEvent.h:
10438        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
10439        (PlatformWheelEvent):
10440        * platform/ScrollAnimator.cpp:
10441        (WebCore):
10442        (WebCore::ScrollAnimator::handleWheelEvent):
10443        * platform/ScrollAnimator.h:
10444        (ScrollAnimator):
10445        * platform/ScrollAnimatorNone.cpp:
10446        (WebCore::ScrollAnimatorNone::scroll):
10447        (WebCore::ScrollAnimatorNone::animationTimerFired):
10448        * platform/ScrollView.cpp:
10449        (WebCore::ScrollView::updateOverhangAreas):
10450        * platform/ScrollableArea.cpp:
10451        (WebCore::ScrollableArea::scrollPositionChanged):
10452        * platform/Scrollbar.cpp:
10453        * platform/SecureTextInput.cpp: Removed.
10454        * platform/SecureTextInput.h:
10455        (WebCore):
10456        * platform/SuddenTermination.h:
10457        (WebCore):
10458        * platform/Widget.h:
10459        (Widget):
10460        * platform/graphics/ANGLEWebKitBridge.h:
10461        * platform/graphics/BitmapImage.h:
10462        * platform/graphics/FloatPoint.h:
10463        (FloatPoint):
10464        * platform/graphics/FloatRect.h:
10465        (FloatRect):
10466        * platform/graphics/FloatSize.h:
10467        (FloatSize):
10468        * platform/graphics/Font.cpp:
10469        (WebCore):
10470        (WebCore::Font::width):
10471        * platform/graphics/Font.h:
10472        (Font):
10473        * platform/graphics/FontCache.cpp:
10474        (WebCore):
10475        * platform/graphics/FontCache.h:
10476        (FontCache):
10477        * platform/graphics/FontDescription.h:
10478        * platform/graphics/FontPlatformData.cpp:
10479        * platform/graphics/GlyphBuffer.h:
10480        (WebCore):
10481        (WebCore::GlyphBuffer::add):
10482        * platform/graphics/GraphicsContext.cpp:
10483        (WebCore::GraphicsContext::drawImage):
10484        (WebCore::GraphicsContext::drawImageBuffer):
10485        * platform/graphics/GraphicsContext3D.h:
10486        (GraphicsContext3D):
10487        * platform/graphics/GraphicsLayer.h:
10488        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
10489        * platform/graphics/Icon.h:
10490        (Icon):
10491        * platform/graphics/ImageSource.cpp:
10492        * platform/graphics/ImageSource.h:
10493        (WebCore):
10494        * platform/graphics/IntRect.h:
10495        (IntRect):
10496        (WebCore):
10497        * platform/graphics/MediaPlayer.cpp:
10498        * platform/graphics/PlatformLayer.h:
10499        * platform/graphics/SimpleFontData.h:
10500        (SimpleFontData):
10501        (DerivedFontData):
10502        * platform/graphics/filters/FECustomFilter.cpp:
10503        (WebCore::FECustomFilter::resizeContext):
10504        * platform/graphics/gpu/DrawingBuffer.h:
10505        (WebCore):
10506        (DrawingBuffer):
10507        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
10508        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
10509        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
10510        * platform/image-decoders/ImageDecoder.h:
10511        * platform/leveldb/LevelDBDatabase.cpp:
10512        (WebCore::LevelDBDatabase::open):
10513        * platform/network/BlobRegistry.cpp:
10514        (WebCore::blobRegistry):
10515        * platform/network/BlobRegistryImpl.cpp:
10516        * platform/network/NetworkStateNotifier.cpp:
10517        * platform/network/NetworkStateNotifier.h:
10518        (NetworkStateNotifier):
10519        * platform/network/NetworkingContext.h:
10520        (NetworkingContext):
10521        * platform/network/ResourceHandleClient.h:
10522        * platform/network/ResourceRequestBase.cpp:
10523        (WebCore):
10524        * platform/text/cf/HyphenationCF.cpp:
10525        * plugins/PluginViewNone.cpp:
10526        (WebCore):
10527        * testing/Internals.cpp:
10528        * xml/XMLHttpRequest.cpp:
10529        (WebCore::XMLHttpRequest::createRequest):
10530
105312013-04-07  Ed Bartosh  <bartosh@gmail.com>
10532
10533        [EFL] --minimal build fails because of incorrect usage of GENERATE_THEME in CMakeLists.txt
10534        https://bugs.webkit.org/show_bug.cgi?id=113902
10535
10536        Unreviewed.
10537
10538        * platform/efl/DefaultTheme/CMakeLists.txt:
10539        Put possibly empty variable after non-empty to avoid space
10540        at the beginning of string parameter
10541
105422013-04-07  Patrick Gansterer  <paroga@webkit.org>
10543
10544        Add default implementation for KURL::fileSystemPath()
10545        https://bugs.webkit.org/show_bug.cgi?id=108326
10546
10547        Reviewed by Benjamin Poulain.
10548
10549        The code for KURL::fileSystemPath() has been duplicated in different ports.
10550        Add an implementation of this function to KURL.cpp for this ports and
10551        get rid of the very similar port specific implementation files.
10552
10553        * PlatformBlackBerry.cmake:
10554        * PlatformEfl.cmake:
10555        * PlatformWinCE.cmake:
10556        * platform/KURL.cpp:
10557        (WebCore):
10558        (WebCore::KURL::fileSystemPath):
10559        * platform/blackberry/KURLBlackBerry.cpp: Removed.
10560        * platform/efl/KURLEfl.cpp: Removed.
10561        * platform/wince/KURLWinCE.cpp: Removed.
10562        * platform/wx/KURLWx.cpp: Removed.
10563
105642013-04-07  Patrick Gansterer  <paroga@webkit.org>
10565
10566        Remove references to Skia and V8 from CMake files
10567        https://bugs.webkit.org/show_bug.cgi?id=114130
10568
10569        Reviewed by Geoffrey Garen.
10570
10571        * PlatformBlackBerry.cmake:
10572
105732013-04-07  David Kilzer  <ddkilzer@apple.com>
10574
10575        Remove the rest of SVG_DOM_OBJC_BINDINGS
10576        <http://webkit.org/b/114112>
10577
10578        Reviewed by Geoffrey Garen.
10579
10580        * Configurations/WebCore.xcconfig:
10581        - Remove EXCLUDED_SOURCE_FILE_NAMES_SVG_DOM_OBJC_BINDINGS.  Note
10582          that DOMHTMLIFrameElementPrivate.h should not have been in
10583          this list because the class contained methods other than just
10584          -getSVGDocument.
10585
10586        * WebCore.xcodeproj/project.pbxproj:
10587        - Remove DOMHTMLFrameElementPrivate.h since the only method it
10588          contained was -[DOMHTMLFrameElement getSVGDocument], which was
10589          part of the SVG DOM Objective-C bindings.
10590
10591        * bindings/objc/DOM.mm:
10592        (kitClass):
10593        * bindings/objc/DOMEvents.mm:
10594        (kitClass):
10595        * bindings/objc/ExceptionHandlers.mm:
10596        (WebCore::raiseDOMException):
10597        - Remove code in ENABLE(SVG_DOM_OBJC_BINDINGS).
10598
105992013-04-07  Oliver Hunt  <oliver@apple.com>
10600
10601        Inspector should display information about non-object exceptions
10602        https://bugs.webkit.org/show_bug.cgi?id=114123
10603
10604        Reviewed by Adele Peterson.
10605
10606        Make use of the stack trace for line information when we're reporting
10607        an exception
10608
10609        * bindings/js/JSDOMBinding.cpp:
10610        (WebCore::reportException):
10611
106122013-04-07  Robert Hogan  <robert@webkit.org>
10613
10614        table element may get larger when its contents are recreated
10615        https://bugs.webkit.org/show_bug.cgi?id=111342
10616
10617        Reviewed by Darin Adler.
10618
10619        Remove anonymous table section wrappers when destroying their children.
10620
10621        Test: fast/table/anonymous-table-section-removed.html
10622
10623        * rendering/RenderObject.cpp:
10624        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
10625
106262013-04-07  Patrick Gansterer  <paroga@webkit.org>
10627
10628        [WIN] Fix build without precompiled header after r145827.
10629
10630        * platform/ContextMenuItem.h:
10631        * platform/PlatformMenuDescription.h:
10632
106332013-04-07  Patrick Gansterer  <paroga@webkit.org>
10634
10635        Fix compilation of LocaleWin with !ENABLE(CALENDAR_PICKER) && !ENABLE(DATE_AND_TIME_INPUT_TYPES)
10636
10637        * platform/text/win/LocaleWin.cpp:
10638        (WebCore::LocaleWin::ensureShortMonthLabels):
10639        (WebCore):
10640        (WebCore::LocaleWin::ensureMonthLabels):
10641
106422013-04-07  Patrick Gansterer  <paroga@webkit.org>
10643
10644        [WIN] Fix build without precompiled header after r144216.
10645
10646        * platform/network/cf/FormDataStreamCFNet.h:
10647        * platform/network/mac/FormDataStreamMac.h:
10648
106492013-04-07  Ed Bartosh  <bartosh@gmail.com>
10650
10651        [EFL] --minimal build fails with error: WebCore::FrameSelection::notifyAccessibilityForSelectionChange()
10652        https://bugs.webkit.org/show_bug.cgi?id=114089
10653
10654        Reviewed by Chris Fleizach.
10655
10656        Wrapped accessibility related code in #if HAVE(ACCESSIBILITY)
10657        * editing/FrameSelection.cpp:
10658        (WebCore::FrameSelection::setSelection):
10659        * editing/FrameSelection.h:
10660        (WebCore):
10661
106622013-04-06  Benjamin Poulain  <benjamin@webkit.org>
10663
10664        Get rid of skia
10665        https://bugs.webkit.org/show_bug.cgi?id=114108
10666
10667        Reviewed by Anders Carlsson.
10668
10669        * platform/graphics/filters/skia/*: Removed.
10670        * platform/graphics/skia/*: Removed.
10671        * platform/image-decoders/skia/*: Removed.
10672        * platform/image-encoders/skia/*: Removed.
10673
106742013-04-06  Benjamin Poulain  <benjamin@webkit.org>
10675
10676        Remove the chromium code from platform/graphics/mac
10677        https://bugs.webkit.org/show_bug.cgi?id=114107
10678
10679        Reviewed by Anders Carlsson.
10680
10681        * platform/graphics/mac/FontCacheMac.mm:
10682        (WebCore::FontCache::getFontDataForCharacters):
10683        (WebCore::FontCache::createFontPlatformData):
10684        * platform/graphics/mac/FontComplexTextMac.cpp:
10685        (WebCore::Font::selectionRectForComplexText):
10686        (WebCore::Font::drawComplexText):
10687        (WebCore::Font::floatWidthForComplexText):
10688        (WebCore::Font::offsetForPositionForComplexText):
10689        * platform/graphics/mac/FontMac.mm:
10690        (WebCore::hasBrokenCTFontGetVerticalTranslationsForGlyphs):
10691
106922013-04-06  Benjamin Poulain  <benjamin@webkit.org>
10693
10694        Clean platform/graphics/cg of the chromium bits
10695        https://bugs.webkit.org/show_bug.cgi?id=114106
10696
10697        Reviewed by Anders Carlsson.
10698
10699        * platform/graphics/cg/BitmapImageCG.cpp:
10700        * platform/graphics/cg/GraphicsContextCG.cpp:
10701        (WebCore::GraphicsContext::roundToDevicePixels):
10702        * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
10703        (GraphicsContextPlatformPrivate):
10704        * platform/graphics/cg/ImageBufferCG.cpp:
10705        * platform/graphics/cg/ImageCG.cpp:
10706        * platform/graphics/cg/PathCG.cpp:
10707        * platform/graphics/cg/PatternCG.cpp:
10708
107092013-04-06  Timothy Hatcher  <timothy@apple.com>
10710
10711        Remove InjectedScriptHost.evaluateReturnsEvalFunction.
10712
10713        https://webkit.org/b/114099
10714
10715        * inspector/InjectedScriptHost.h:
10716        (InjectedScriptHost):
10717        * inspector/InjectedScriptHost.idl:
10718        * inspector/InjectedScriptSource.js:
10719        (InjectedScript.prototype._evaluateOn):
10720
107212013-04-06  Benjamin Poulain  <bpoulain@apple.com>
10722
10723        Remove the chromium code from WebCore/platform/mac
10724        https://bugs.webkit.org/show_bug.cgi?id=114104
10725
10726        Reviewed by Sam Weinig.
10727
10728        * platform/mac/NSScrollerImpDetails.h:
10729        (WebCore::isScrollbarOverlayAPIAvailable):
10730        * platform/mac/NSScrollerImpDetails.mm:
10731        * platform/mac/ScrollAnimatorMac.mm:
10732        (-[WebScrollbarPainterDelegate layer]):
10733        (WebCore::scrollAnimationEnabledForSystem):
10734        * platform/mac/ScrollElasticityController.mm:
10735        (WebCore):
10736        * platform/mac/ScrollbarThemeMac.h:
10737        (ScrollbarThemeMac):
10738        * platform/mac/ScrollbarThemeMac.mm:
10739        (WebCore::ScrollbarTheme::nativeTheme):
10740        (WebCore::ScrollbarThemeMac::paint):
10741        (WebCore):
10742        * platform/mac/ThemeMac.mm:
10743        (WebCore::ThemeMac::ensuredView):
10744        * platform/mac/WebCoreNSCellExtras.h:
10745
107462013-04-06  Benjamin Poulain  <benjamin@webkit.org>
10747
10748        Remove the Chromium code from Mac's FontPlatformData
10749        https://bugs.webkit.org/show_bug.cgi?id=114103
10750
10751        Reviewed by Sam Weinig.
10752
10753        * platform/graphics/FontPlatformData.h:
10754        (WebCore):
10755        (FontPlatformData):
10756        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
10757        (WebCore::FontPlatformData::FontPlatformData):
10758        (WebCore::FontPlatformData::platformDataInit):
10759        (WebCore::FontPlatformData::platformDataAssign):
10760        (WebCore::FontPlatformData::setFont):
10761        (WebCore::FontPlatformData::ctFont):
10762
107632013-04-06  Oliver Hunt  <oliver@apple.com>
10764
10765        Unify the many and varied stack trace mechanisms, and make the result sane.
10766        https://bugs.webkit.org/show_bug.cgi?id=114072
10767
10768        Reviewed by Filip Pizlo.
10769
10770        Now that we've fleshed out the StackFrames from Interpreter::getStackTrace
10771        WebCore can just ask us for a stack trace rather than implementing its own
10772        stack walking.
10773
10774        * bindings/js/ScriptCallStackFactory.cpp:
10775        (WebCore::createScriptCallStack):
10776        * inspector/ScriptCallFrame.cpp:
10777        (WebCore::ScriptCallFrame::isEqual):
10778        * inspector/ScriptCallFrame.h:
10779        (ScriptCallFrame):
10780        (WebCore::ScriptCallFrame::columnNumber):
10781
107822013-04-06  Geoffrey Garen  <ggaren@apple.com>
10783
10784        Removed v8 bindings hooks from IDL files
10785        https://bugs.webkit.org/show_bug.cgi?id=114091
10786
10787        Reviewed by Anders Carlsson and Sam Weinig.
10788
10789        * Modules/encryptedmedia/MediaKeySession.idl:
10790        * Modules/filesystem/DOMWindowFileSystem.idl:
10791        * Modules/filesystem/WorkerContextFileSystem.idl:
10792        * Modules/gamepad/NavigatorGamepad.idl:
10793        * Modules/geolocation/NavigatorGeolocation.idl:
10794        * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
10795        * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
10796        * Modules/mediastream/DOMWindowMediaStream.idl:
10797        * Modules/mediastream/NavigatorMediaStream.idl:
10798        * Modules/notifications/DOMWindowNotifications.idl:
10799        * Modules/notifications/NotificationCenter.idl:
10800        * Modules/notifications/WorkerContextNotifications.idl:
10801        * Modules/quota/DOMWindowQuota.idl:
10802        * Modules/speech/DOMWindowSpeech.idl:
10803        * Modules/webaudio/AudioBufferSourceNode.idl:
10804        * Modules/webaudio/AudioContext.idl:
10805        * Modules/webaudio/AudioParam.idl:
10806        * Modules/webaudio/DOMWindowWebAudio.idl:
10807        * Modules/webdatabase/DOMWindowWebDatabase.idl:
10808        * Modules/webdatabase/WorkerContextWebDatabase.idl:
10809        * Modules/websockets/DOMWindowWebSocket.idl:
10810        * Modules/websockets/WorkerContextWebSocket.idl:
10811        * bindings/js/JSDOMBinding.cpp:
10812        * bindings/js/ScriptController.h:
10813        (ScriptController):
10814        * bindings/scripts/test/TestNode.idl:
10815        * bindings/scripts/test/TestObj.idl:
10816        * css/CSSFontFaceLoadEvent.idl:
10817        * css/CSSHostRule.idl:
10818        * css/CSSRule.idl:
10819        * css/CSSRuleList.idl:
10820        * css/CSSStyleDeclaration.idl:
10821        * css/CSSStyleSheet.idl:
10822        * css/CSSValue.idl:
10823        * css/FontLoader.idl:
10824        * css/StyleSheet.idl:
10825        * css/WebKitCSSRegionRule.idl:
10826        * dom/Clipboard.idl:
10827        * dom/CustomElementConstructor.idl:
10828        * dom/CustomEvent.idl:
10829        * dom/DOMNamedFlowCollection.idl:
10830        * dom/DOMStringMap.idl:
10831        * dom/DataTransferItemList.idl:
10832        * dom/Document.idl:
10833        * dom/DocumentFragment.idl:
10834        * dom/Element.idl:
10835        * dom/Event.idl:
10836        * dom/EventTarget.idl:
10837        * dom/MessageChannel.idl:
10838        * dom/MouseEvent.idl:
10839        * dom/MutationRecord.idl:
10840        * dom/NamedNodeMap.idl:
10841        * dom/Node.idl:
10842        * dom/NodeList.idl:
10843        * dom/RequestAnimationFrameCallback.idl:
10844        * dom/ShadowRoot.idl:
10845        * dom/Text.idl:
10846        * history/HistoryItem.cpp:
10847        (WebCore::HistoryItem::encodeBackForwardTreeNode):
10848        (WebCore::HistoryItem::decodeBackForwardTree):
10849        * html/DOMSettableTokenList.idl:
10850        * html/DOMTokenList.idl:
10851        * html/HTMLAllCollection.idl:
10852        * html/HTMLAppletElement.idl:
10853        * html/HTMLCollection.idl:
10854        * html/HTMLDialogElement.idl:
10855        * html/HTMLDivElement.idl:
10856        * html/HTMLDocument.idl:
10857        * html/HTMLElement.idl:
10858        * html/HTMLEmbedElement.idl:
10859        * html/HTMLFormControlsCollection.idl:
10860        * html/HTMLFormElement.idl:
10861        * html/HTMLImageElement.idl:
10862        * html/HTMLInputElement.idl:
10863        * html/HTMLMediaElement.idl:
10864        * html/HTMLObjectElement.idl:
10865        * html/HTMLOptionsCollection.idl:
10866        * html/HTMLSelectElement.idl:
10867        * html/HTMLSpanElement.idl:
10868        * html/HTMLStyleElement.idl:
10869        * html/HTMLTemplateElement.idl:
10870        * html/HTMLTrackElement.idl:
10871        * html/HTMLUnknownElement.idl:
10872        * html/MediaKeyError.idl:
10873        * html/MediaKeyEvent.idl:
10874        * html/MicroDataItemValue.idl:
10875        * html/canvas/CanvasRenderingContext2D.idl:
10876        * html/canvas/DOMPath.idl:
10877        * html/shadow/HTMLContentElement.idl:
10878        * html/shadow/HTMLShadowElement.idl:
10879        * html/track/TextTrack.idl:
10880        * inspector/InjectedScriptHost.idl:
10881        * inspector/InspectorIndexedDBAgent.cpp:
10882        (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
10883        (WebCore::InspectorIndexedDBAgent::requestDatabase):
10884        (WebCore::InspectorIndexedDBAgent::requestData):
10885        (WebCore::InspectorIndexedDBAgent::clearObjectStore):
10886        (WebCore):
10887        * loader/EmptyClients.h:
10888        (EmptyFrameLoaderClient):
10889        * loader/FrameLoaderClient.h:
10890        (FrameLoaderClient):
10891        * page/Console.idl:
10892        * page/DOMWindow.idl:
10893        * page/DOMWindowPagePopup.idl:
10894        * page/History.idl:
10895        * page/Location.idl:
10896        * platform/graphics/skia/PatternSkia.cpp:
10897        (WebCore::Pattern::platformDestroy):
10898        (WebCore::Pattern::platformPattern):
10899        * testing/Internals.cpp:
10900        (WebCore::Internals::serializeObject):
10901        (WebCore::Internals::deserializeBuffer):
10902
109032013-04-06  Zan Dobersek  <zdobersek@igalia.com>
10904
10905        Remove the USE(SKIA_ON_MAC_CHROMIUM) guards
10906        https://bugs.webkit.org/show_bug.cgi?id=114084
10907
10908        Reviewed by Ryosuke Niwa.
10909
10910        Remove the USE(SKIA_ON_MAC_CHROMIUM) guards. The guards were enabled only
10911        for the Chromium port via the features.gypi file that was removed in r147714.
10912
10913        * platform/graphics/FloatPoint.h:
10914        (FloatPoint):
10915        * platform/graphics/FloatRect.h:
10916        (FloatRect):
10917        * platform/graphics/FloatSize.h:
10918        (FloatSize):
10919        * platform/graphics/FontPlatformData.cpp:
10920        (WebCore):
10921        * platform/graphics/FontPlatformData.h:
10922        (FontPlatformData):
10923        (WebCore::FontPlatformData::hash):
10924        * platform/graphics/IntPoint.h:
10925        (IntPoint):
10926        * platform/graphics/IntRect.h:
10927        (IntRect):
10928        (WebCore):
10929        * platform/graphics/IntSize.h:
10930        (IntSize):
10931        * platform/graphics/SimpleFontData.h:
10932        (SimpleFontData):
10933        (WebCore::SimpleFontData::widthForGlyph):
10934        * platform/graphics/cg/FloatPointCG.cpp:
10935        * platform/graphics/cg/FloatRectCG.cpp:
10936        * platform/graphics/cg/FloatSizeCG.cpp:
10937        * platform/graphics/cg/IntPointCG.cpp:
10938        * platform/graphics/cg/IntRectCG.cpp:
10939        * platform/graphics/cg/IntSizeCG.cpp:
10940        * platform/graphics/mac/FontCustomPlatformData.cpp:
10941        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
10942        (WebCore::createFontCustomPlatformData):
10943        * platform/graphics/mac/FontCustomPlatformData.h:
10944        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
10945        (FontCustomPlatformData):
10946
109472013-04-06  Robert Hogan  <robert@webkit.org>
10948
10949        REGRESSION(r142152): Text wraps in menu
10950        https://bugs.webkit.org/show_bug.cgi?id=113706
10951
10952        Reviewed by David Hyatt.
10953
10954        * rendering/RenderBlockLineLayout.cpp:
10955        (WebCore::inlineLogicalWidth): Empty inline elements add their inline border/padding/margin to the width of the
10956        line when we iterate through them in nextLineBreak(), so no need to add them again here when climbing back up
10957        from their first child looking for border/padding/margin to add. (An empty inline element can have floating children.)
10958
109592013-04-06  Geoffrey Garen  <ggaren@apple.com>
10960
10961        Rolled out 147820 and 147818 because they caused plugins tests to ASSERT
10962        https://bugs.webkit.org/show_bug.cgi?id=114094
10963
10964        Reviewed by Anders Carlsson.
10965
10966        * bindings/js/ScriptCallStackFactory.cpp:
10967        (WebCore::createScriptCallStack):
10968        * inspector/ScriptCallFrame.cpp:
10969        (WebCore::ScriptCallFrame::isEqual):
10970        * inspector/ScriptCallFrame.h:
10971        (ScriptCallFrame):
10972        (WebCore::ScriptCallFrame::lineNumber):
10973
109742013-04-06  Anders Carlsson  <andersca@apple.com>
10975
10976        Remove VisitedLinks.{cpp|h}
10977        https://bugs.webkit.org/show_bug.cgi?id=114095
10978
10979        Reviewed by Geoffrey Garen.
10980
10981        * CMakeLists.txt:
10982        * GNUmakefile.list.am:
10983        * Target.pri:
10984        * WebCore.vcproj/WebCore.vcproj:
10985        * WebCore.vcxproj/WebCore.vcxproj:
10986        * WebCore.vcxproj/WebCore.vcxproj.filters:
10987        * WebCore.xcodeproj/project.pbxproj:
10988        * platform/VisitedLinks.cpp: Removed.
10989        * platform/VisitedLinks.h: Removed.
10990
109912013-04-06  Anders Carlsson  <andersca@apple.com>
10992
10993        Another build fix.
10994
10995        Actually remove the right files from WebCore.vcxproj.
10996
10997        * WebCore.vcxproj/WebCore.vcxproj:
10998        * WebCore.vcxproj/WebCore.vcxproj.filters:
10999
110002013-04-06  Anders Carlsson  <andersca@apple.com>
11001
11002        Fix build.
11003
11004        ThreadableLoaderClientWrapper was still calling didReceiveCachedMetadata; I didn't notice it
11005        because the file was not in the Xcode project so I went ahead and added it.
11006
11007        * WebCore.xcodeproj/project.pbxproj:
11008        * loader/ThreadableLoaderClientWrapper.h:
11009
110102013-04-06  Anders Carlsson  <andersca@apple.com>
11011
11012        Remove dead CachedMetadata code
11013        https://bugs.webkit.org/show_bug.cgi?id=114093
11014
11015        Reviewed by Geoffrey Garen.
11016
11017        * CMakeLists.txt:
11018        * GNUmakefile.list.am:
11019        * Target.pri:
11020        * WebCore.vcproj/WebCore.vcproj:
11021        * WebCore.vcxproj/WebCore.vcxproj:
11022        * WebCore.vcxproj/WebCore.vcxproj.filters:
11023        * WebCore.xcodeproj/project.pbxproj:
11024        * loader/CachedMetadata.cpp: Removed.
11025        * loader/CachedMetadata.h: Removed.
11026        * loader/ResourceLoader.h:
11027        (ResourceLoader):
11028        * loader/SubresourceLoader.cpp:
11029        * loader/SubresourceLoader.h:
11030        (SubresourceLoader):
11031        * loader/ThreadableLoaderClient.h:
11032        * loader/WorkerThreadableLoader.cpp:
11033        * loader/WorkerThreadableLoader.h:
11034        (MainThreadBridge):
11035        * loader/cache/CachedResource.cpp:
11036        (WebCore::CachedResource::reportMemoryUsage):
11037        * loader/cache/CachedResource.h:
11038        (WebCore):
11039        (CachedResource):
11040        * platform/network/ResourceHandle.cpp:
11041        * platform/network/ResourceHandle.h:
11042        (ResourceHandle):
11043        * platform/network/ResourceHandleClient.h:
11044        (ResourceHandleClient):
11045
110462013-04-06  Anders Carlsson  <andersca@apple.com>
11047
11048        Remove more dead Chromium code
11049        https://bugs.webkit.org/show_bug.cgi?id=114090
11050
11051        Reviewed by Alp Toker.
11052
11053        * CMakeLists.txt:
11054        * GNUmakefile.list.am:
11055        * Target.pri:
11056        * WebCore.vcproj/WebCore.vcproj:
11057        * WebCore.vcxproj/WebCore.vcxproj:
11058        * WebCore.xcodeproj/project.pbxproj:
11059        * platform/StatsCounter.cpp: Removed.
11060        * platform/StatsCounter.h: Removed.
11061
110622013-04-06  Patrick Gansterer  <paroga@webkit.org>
11063
11064        Build fix for WinCE after r143046.
11065
11066        * platform/graphics/wince/ImageWinCE.cpp:
11067        (WebCore::Image::drawPattern):
11068
110692013-04-06  Mark Salisbury  <mark.salisbury@hp.com>
11070
11071        [WinCE] Do not call missing method createDragImageFromImage()
11072        https://bugs.webkit.org/show_bug.cgi?id=110421
11073
11074        * platform/win/ClipboardWin.cpp:
11075
110762013-04-05  Mark Salisbury  <mark.salisbury@hp.com>
11077
11078        [WinCE] Compile missing NetworkStorageSession methods
11079        https://bugs.webkit.org/show_bug.cgi?id=110419
11080
11081        * PlatformWinCE.cmake:
11082
110832013-04-05  Kangil Han  <kangil.han@samsung.com>
11084
11085        Prefer prefix ++/-- operators for non-primitive types
11086        https://bugs.webkit.org/show_bug.cgi?id=114033
11087
11088        Reviewed by Alexey Proskuryakov.
11089
11090        Post ++/-- creates a copy of current value and it is not necessary, so use prefix instead.
11091
11092        * bindings/js/Dictionary.cpp:
11093        (WebCore::Dictionary::getOwnPropertiesAsStringHashMap):
11094        (WebCore::Dictionary::getOwnPropertyNames):
11095        * bindings/js/ScriptCallStackFactory.cpp:
11096        (WebCore::createScriptCallStack):
11097        * dom/ContainerNode.cpp:
11098        (WebCore::willRemoveChildren):
11099        * dom/Range.cpp:
11100        (WebCore::Range::processAncestorsAndTheirSiblings):
11101        * loader/FrameLoader.cpp:
11102        (WebCore::FrameLoader::detachChildren):
11103        * platform/graphics/gpu/LoopBlinnPathProcessor.cpp:
11104        (WebCore):
11105        (WebCore::LoopBlinnPathProcessor::subdivideCurvesSlow):
11106        * rendering/InlineTextBox.cpp:
11107        (WebCore::InlineTextBox::paintDocumentMarkers):
11108        * xml/XPathFunctions.cpp:
11109        (WebCore::XPath::Function::setArguments):
11110
111112013-04-05  Hans Muller  <hmuller@adobe.com>
11112
11113        [CSS Exclusions] Add support for the simple case of shape-margin polygonal shape-outside
11114        https://bugs.webkit.org/show_bug.cgi?id=113726
11115
11116        Reviewed by Dirk Schulze.
11117
11118        Add support for computing the shape-outside shape-margin boundary for a polygon.
11119        This change is similar to the one added for padding polygons, see bug 112592.
11120        The algorithm used for computing the margin boundary is is provisional. It works
11121        correctly for convex polygons and will work correctly for non self-intersecting
11122        polygons whose margin boundary is the same shape as the original polygon.
11123
11124        Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-diamond-margin-polygon.html
11125               fast/exclusions/shape-outside-floats/shape-outside-floats-left-margin-polygon.html
11126               fast/exclusions/shape-outside-floats/shape-outside-floats-right-margin-polygon.html
11127
11128        * rendering/ExclusionPolygon.cpp:
11129        (WebCore::appendArc): Generalized this method a little, to deal with margin and padding connecting arcs.
11130        (WebCore::computeShapePaddingBounds): Pass the new appendArc() parameter.
11131        (WebCore::computeShapeMarginBounds): Compute the margin boundary for a polygon, per the constraints summarized above.
11132        (WebCore::ExclusionPolygon::getExcludedIntervals): Use the margin polygon for this computation.
11133
111342013-04-05  Andy Estes  <aestes@apple.com>
11135
11136        Returning NULL from willSendRequest should cancel a load from the memory cache
11137        https://bugs.webkit.org/show_bug.cgi?id=114075
11138
11139        Reviewed by Darin Adler.
11140
11141        When a resource is loaded from the memory cache and the client does not
11142        implement the didLoadResourceFromMemoryCache delegate method, WebKit
11143        synthesizes the typical sequence of resource load callbacks. One of
11144        these is willSendRequest, which gives the client the opportunity to
11145        modify the request. We should respect these modifications.
11146
11147        Handling any arbitrary modification is difficult given where in the
11148        loading process we check the memory cache (see <http://webkit.org/b/113251>),
11149        but we can handle the common case where the client cancels the load by
11150        returning a NULL request.
11151
11152        Test: fast/loader/willsendrequest-returns-null-for-memory-cache-load.html
11153
11154        * loader/FrameLoader.cpp:
11155        (WebCore::FrameLoader::willLoadMediaElementURL): Passed request to sendRemainingDelegateMessages.
11156        (WebCore::FrameLoader::commitProvisionalLoad): Ditto.
11157        (WebCore::FrameLoader::loadResourceSynchronously): Ditto.
11158        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Added an out
11159        parameter to pass back a request potentially modified by
11160        requestFromDelegate, which is also passed to sendRemainingDelegateMessages.
11161        * loader/FrameLoader.h:
11162        * loader/ResourceLoadNotifier.cpp:
11163        (WebCore::ResourceLoadNotifier::dispatchDidFailLoading): Added a
11164        function to dispatch didFailLoading and to call the correct InspectorInstrumentation.
11165        (WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages): If the
11166        request is NULL, call dispatchDidFailLoading and return. This matches
11167        the delegate callback sequence of a non memory cache load that is
11168        cancelled by willSendRequest.
11169        * loader/ResourceLoadNotifier.h:
11170        * loader/cache/CachedResourceLoader.cpp:
11171        (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
11172        Return false if the memory cache load is cancelled by the client.
11173        (WebCore::CachedResourceLoader::requestResource): Return early if
11174        shouldContinueAfterNotifyingLoadedFromMemoryCache is false.
11175
111762013-04-05  Chris Fleizach  <cfleizach@apple.com>
11177
11178        AX: VoiceOver can't press on items
11179        https://bugs.webkit.org/show_bug.cgi?id=114071
11180
11181        Reviewed by Tim Horton.
11182
11183        The AXScrollToVisibleAction should not be used on earlier Mac versions because
11184        it confuses VoiceOver.
11185
11186        Updated existing tests.
11187
11188        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
11189        (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
11190
111912013-04-05  Anders Carlsson  <andersca@apple.com>
11192
11193        Stop building Objective-C bindings for the SVG DOM
11194        https://bugs.webkit.org/show_bug.cgi?id=114076
11195
11196        Reviewed by Geoffrey Garen.
11197
11198        The DOM SVG Objective-C bindings have never been exposed as API, and not building them cuts WebCore build by 10%.
11199
11200        * Configurations/FeatureDefines.xcconfig:
11201        * Configurations/WebCore.xcconfig:
11202        * WebCore.exp.in:
11203        * WebCore.xcodeproj/project.pbxproj:
11204        * bindings/objc/DOM.mm:
11205        (WebCore::createElementClassMap):
11206        (kitClass):
11207        * bindings/objc/DOMCSS.mm:
11208        (kitClass):
11209        * bindings/objc/DOMEvents.mm:
11210        * bindings/objc/DOMSVG.h: Removed.
11211        * bindings/objc/DOMSVGException.h: Removed.
11212        * bindings/objc/DOMSVGPathSegInternal.mm: Removed.
11213        * bindings/objc/ExceptionHandlers.mm:
11214        * html/HTMLEmbedElement.idl:
11215        * html/HTMLFrameElement.idl:
11216        * html/HTMLIFrameElement.idl:
11217        * html/HTMLObjectElement.idl:
11218
112192013-04-05  Oliver Hunt  <oliver@apple.com>
11220
11221        Unify the many and varied stack trace mechanisms, and make the result sane.
11222        https://bugs.webkit.org/show_bug.cgi?id=114072
11223
11224        Reviewed by Filip Pizlo.
11225
11226        Now that we've fleshed out the StackFrames from Interpreter::getStackTrace
11227        WebCore can just ask us for a stack trace rather than implementing its own
11228        stack walking.
11229
11230        * bindings/js/ScriptCallStackFactory.cpp:
11231        (WebCore::createScriptCallStack):
11232        * inspector/ScriptCallFrame.cpp:
11233        (WebCore::ScriptCallFrame::isEqual):
11234        * inspector/ScriptCallFrame.h:
11235        (ScriptCallFrame):
11236        (WebCore::ScriptCallFrame::columnNumber):
11237
112382013-04-05  Beth Dakin  <bdakin@apple.com>
11239
11240        Setting a header or footer should cause a relayout
11241        https://bugs.webkit.org/show_bug.cgi?id=114070
11242
11243        Reviewed by Sam Weinig.
11244
11245        Mark the RenderView as needing layout in order to adjust everything for the new 
11246        header/footer.
11247
11248        * page/FrameView.cpp:
11249        (WebCore::FrameView::setHeaderHeight):
11250        (WebCore::FrameView::setFooterHeight):
11251
112522013-04-05  Chris Fleizach  <cfleizach@apple.com>
11253
11254        AX: Make SVG Group containers accessible elements
11255        https://bugs.webkit.org/show_bug.cgi?id=113939
11256
11257        Reviewed by Simon Fraser.
11258
11259        SVG group containers are currently not exposed in the AX tree. 
11260        When an SVG element has a <title> child, that is not being used for the AX label.
11261        When hit-testing, from Accessibility, SVG groups are never returned.
11262
11263        All these issues are fixed for Mac and iOS.
11264        There are two tests because right now iOS skips all the top-level accessibility tests
11265        due to fundamental architectural differences.
11266
11267        Tests: accessibility/svg-group-element-with-title.html
11268               platform/iphone-simulator/accessibility/svg-group-element-with-title.html
11269
11270        * accessibility/AccessibilityNodeObject.cpp:
11271        (WebCore::AccessibilityNodeObject::alternativeText):
11272        (WebCore::AccessibilityNodeObject::accessibilityDescription):
11273        * accessibility/AccessibilityRenderObject.cpp:
11274        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
11275        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
11276        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
11277        (-[WebAccessibilityObjectWrapper isSVGGroupElement]):
11278        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
11279        (-[WebAccessibilityObjectWrapper accessibilityClickPoint]):
11280        * rendering/HitTestRequest.h:
11281            Add a new option, AccessibilityHitTest, that will allow us to override normal behavior.
11282        * rendering/svg/RenderSVGContainer.cpp:
11283        (WebCore::RenderSVGContainer::nodeAtFloatPoint):
11284           Allow a SVG group to be the node at a point, for accessibility hit tests.
11285
112862013-04-05  Chris Fleizach  <cfleizach@apple.com>
11287
11288        WebSpeech: event.elapsedTime is always 1364484608
11289        https://bugs.webkit.org/show_bug.cgi?id=114045
11290
11291        Reviewed by Tim Horton.
11292
11293        We were calculating elapsed time incorrectly.
11294
11295        Test: platform/mac/fast/speechsynthesis/speech-synthesis-elapsed-time.html
11296
11297        * Modules/speech/SpeechSynthesis.cpp:
11298        (WebCore::SpeechSynthesis::fireEvent):
11299
113002013-04-05  Chris Fleizach  <cfleizach@apple.com>
11301
11302        WebSpeech: crash at WebCore::SpeechSynthesis::speak
11303        https://bugs.webkit.org/show_bug.cgi?id=113937
11304
11305        Reviewed by Tim Horton.
11306
11307        Protect against the case when invalid data is passed in.
11308
11309        Test: platform/mac/fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html
11310
11311        * Modules/speech/SpeechSynthesis.cpp:
11312        (WebCore::SpeechSynthesis::speak):
11313        * Modules/speech/SpeechSynthesisUtterance.cpp:
11314        (WebCore::SpeechSynthesisUtterance::setVoice):
11315
113162013-04-05  Antti Koivisto  <antti@apple.com>
11317
11318        Throttle compositing layer flushes during page loading
11319        https://bugs.webkit.org/show_bug.cgi?id=113786
11320
11321        Reviewed by Simon Fraser.
11322        
11323        Page content can change rapidly during page loading triggering excessive layer flushes and repainting. We should avoid this unnecessary work.
11324        
11325        This patch reduces layer flushes (and painting) during loading by 50-70% on many popular pages.
11326
11327        * loader/FrameLoader.cpp:
11328        (WebCore::FrameLoader::loadProgressingStatusChanged):        
11329        * loader/FrameLoader.h:
11330        * loader/ProgressTracker.cpp:
11331        (WebCore::ProgressTracker::ProgressTracker):
11332        (WebCore::ProgressTracker::reset):
11333        (WebCore::ProgressTracker::progressStarted):
11334        (WebCore::ProgressTracker::finalProgressComplete):
11335        (WebCore::ProgressTracker::isLoadProgressing):
11336        (WebCore::ProgressTracker::progressHeartbeatTimerFired):
11337        * loader/ProgressTracker.h:
11338        
11339            Track if the document load is progressing. This is done with a heartbeat timer that checks every 100ms if we have received more than 1k of data.
11340            If four heartbeats pass without progress then we consider the load stalled.
11341
11342        * page/FrameView.cpp:
11343        (WebCore::FrameView::resetDeferredRepaintDelay):
11344        
11345            Disable throttling temporary on user interaction so the page stays as responsive as possible even during loading.
11346
11347        (WebCore::FrameView::updateLayerFlushThrottling):
11348        
11349            Enable throttling when the load is progressing, disable otherwise.
11350
11351        * page/FrameView.h:
11352        * platform/graphics/GraphicsLayer.h:
11353        (WebCore::GraphicsLayer::canThrottleLayerFlush):
11354        * platform/graphics/ca/GraphicsLayerCA.cpp:
11355        (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
11356        (WebCore::GraphicsLayerCA::canThrottleLayerFlush):
11357        
11358            Don't throttle if new tiles have been added by the tile controller. They may have stale content and need to be flushed immediately.
11359
11360        (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
11361        
11362            Set the new TilesAdded change flag.
11363
11364        * platform/graphics/ca/GraphicsLayerCA.h:
11365        * rendering/RenderLayerBacking.cpp:
11366        (WebCore::RenderLayerBacking::notifyFlushRequired):
11367        * rendering/RenderLayerCompositor.cpp:
11368        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
11369        (WebCore::RenderLayerCompositor::notifyFlushRequired):
11370        (WebCore::RenderLayerCompositor::scheduleLayerFlushNow):
11371        
11372            Factor the actual flush scheduling to private function.
11373
11374        (WebCore::RenderLayerCompositor::scheduleLayerFlush):
11375        
11376            Mark the compositor for flush and return without flushing if the flushes are currently being throttled.
11377
11378        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
11379        
11380            After a flush, start the throtting timer (currently 0.5s) coalescing the subsequent flushes.
11381
11382        (WebCore::RenderLayerCompositor::didChangeVisibleRect):
11383        
11384            Do immediately flush if needed.
11385
11386        (WebCore::RenderLayerCompositor::setLayerFlushThrottlingEnabled):
11387        
11388            Flush immediately if disabled.
11389
11390        (WebCore::RenderLayerCompositor::disableLayerFlushThrottlingTemporarilyForInteraction):
11391        (WebCore::RenderLayerCompositor::isThrottlingLayerFlushes):
11392        (WebCore::RenderLayerCompositor::startLayerFlushTimerIfNeeded):
11393        (WebCore::RenderLayerCompositor::layerFlushTimerFired):
11394        
11395            Flush when the timer fires timer.
11396
11397        * rendering/RenderLayerCompositor.h:
11398
113992013-04-05  Benjamin Poulain  <benjamin@webkit.org>
11400
11401        Clean the chromium bits of WebCore's WebDatabase
11402        https://bugs.webkit.org/show_bug.cgi?id=114010
11403
11404        Reviewed by Ryosuke Niwa.
11405
11406        * Modules/webdatabase/AbstractDatabaseServer.h:
11407        * Modules/webdatabase/ChangeVersionWrapper.cpp:
11408        (WebCore::ChangeVersionWrapper::performPreflight):
11409        (WebCore::ChangeVersionWrapper::performPostflight):
11410        * Modules/webdatabase/Database.cpp:
11411        * Modules/webdatabase/Database.h:
11412        (Database):
11413        * Modules/webdatabase/DatabaseBackend.cpp:
11414        (WebCore::DatabaseBackend::openAndVerifyVersion):
11415        * Modules/webdatabase/DatabaseBackendBase.cpp:
11416        (WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
11417        (WebCore::DatabaseBackendBase::performOpenAndVerify):
11418        (WebCore::DatabaseBackendBase::getActualVersionForTransaction):
11419        (WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
11420        * Modules/webdatabase/DatabaseBackendBase.h:
11421        (DatabaseBackendBase):
11422        * Modules/webdatabase/DatabaseBackendSync.cpp:
11423        (WebCore::DatabaseBackendSync::openAndVerifyVersion):
11424        * Modules/webdatabase/DatabaseContext.cpp:
11425        (WebCore::DatabaseContext::databaseExceededQuota):
11426        * Modules/webdatabase/DatabaseManager.cpp:
11427        * Modules/webdatabase/DatabaseManager.h:
11428        (DatabaseManager):
11429        * Modules/webdatabase/DatabaseServer.cpp:
11430        (WebCore::DatabaseServer::initialize):
11431        (WebCore::DatabaseServer::setClient):
11432        (WebCore::DatabaseServer::databaseDirectoryPath):
11433        (WebCore::DatabaseServer::setDatabaseDirectoryPath):
11434        (WebCore::DatabaseServer::openDatabase):
11435        * Modules/webdatabase/DatabaseServer.h:
11436        * Modules/webdatabase/DatabaseSync.cpp:
11437        (WebCore::DatabaseSync::changeVersion):
11438        * Modules/webdatabase/DatabaseTracker.cpp:
11439        (WebCore::DatabaseTracker::canEstablishDatabase):
11440        (WebCore::DatabaseTracker::retryCanEstablishDatabase):
11441        * Modules/webdatabase/DatabaseTracker.h:
11442        (WebCore):
11443        (DatabaseTracker):
11444        * Modules/webdatabase/SQLStatementBackend.cpp:
11445        (WebCore::SQLStatementBackend::execute):
11446        (WebCore::SQLStatementBackend::setDatabaseDeletedError):
11447        (WebCore::SQLStatementBackend::setVersionMismatchedError):
11448        (WebCore::SQLStatementBackend::setFailureDueToQuota):
11449        * Modules/webdatabase/SQLStatementBackend.h:
11450        (SQLStatementBackend):
11451        * Modules/webdatabase/SQLTransaction.cpp:
11452        (WebCore::SQLTransaction::deliverTransactionCallback):
11453        (WebCore::SQLTransaction::deliverStatementCallback):
11454        * Modules/webdatabase/SQLTransactionBackend.cpp:
11455        (WebCore::SQLTransactionBackend::executeSQL):
11456        (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
11457        (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
11458        (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
11459        (WebCore::SQLTransactionBackend::postflightAndCommit):
11460        (WebCore::SQLTransactionBackend::acquireOriginLock):
11461        (WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
11462        * Modules/webdatabase/SQLTransactionBackend.h:
11463        (SQLTransactionBackend):
11464        * Modules/webdatabase/SQLTransactionBackendSync.cpp:
11465        (WebCore::SQLTransactionBackendSync::begin):
11466        (WebCore::SQLTransactionBackendSync::commit):
11467
114682013-04-05  Geoffrey Garen  <ggaren@apple.com>
11469
11470        Made USE(JSC) unconditional
11471        https://bugs.webkit.org/show_bug.cgi?id=114058
11472
11473        Reviewed by Anders Carlsson.
11474
11475        * Modules/webdatabase/Database.cpp:
11476        * bindings/ScriptControllerBase.cpp:
11477        (WebCore::ScriptController::executeIfJavaScriptURL):
11478        * bindings/js/JavaScriptCallFrame.cpp:
11479        * bindings/js/JavaScriptCallFrame.h:
11480        * bindings/scripts/InFilesCompiler.pm:
11481        (generateHeadersHeader):
11482        * css/MediaQueryListListener.cpp:
11483        (WebCore::MediaQueryListListener::queryChanged):
11484        * dom/ContainerNode.cpp:
11485        (WebCore::dispatchChildRemovalEvents):
11486        * dom/EventListener.h:
11487        (EventListener):
11488        (WebCore::EventListener::visitJSFunction):
11489        * dom/EventTarget.h:
11490        (EventTarget):
11491        (WebCore):
11492        (WebCore::EventTarget::visitJSEventListeners):
11493        * dom/Node.cpp:
11494        * dom/Node.h:
11495        * dom/ScriptExecutionContext.cpp:
11496        (WebCore):
11497        (WebCore::ScriptExecutionContext::globalData):
11498        * dom/ScriptExecutionContext.h:
11499        (ScriptExecutionContext):
11500        * html/HTMLCanvasElement.cpp:
11501        (WebCore::HTMLCanvasElement::createImageBuffer):
11502        * html/HTMLImageLoader.cpp:
11503        (WebCore::HTMLImageLoader::notifyFinished):
11504        * inspector/InjectedScriptHost.h:
11505        (InjectedScriptHost):
11506        (WebCore::InjectedScriptHost::evaluateReturnsEvalFunction):
11507        * inspector/InspectorInstrumentation.cpp:
11508        (WebCore):
11509        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
11510        * page/Frame.cpp:
11511        * page/Settings.cpp:
11512        (WebCore):
11513        (WebCore::Settings::shouldRespectPriorityInCSSAttributeSetters):
11514        * page/Settings.h:
11515        (Settings):
11516        * plugins/PluginView.cpp:
11517        (WebCore::PluginView::start):
11518        (WebCore::PluginView::stop):
11519        (WebCore::PluginView::performRequest):
11520        (WebCore::PluginView::npObject):
11521        (WebCore):
11522        (WebCore::PluginView::bindingInstance):
11523        (WebCore::PluginView::privateBrowsingStateChanged):
11524        * plugins/PluginView.h:
11525        (PluginView):
11526        * plugins/PluginViewBase.h:
11527        (PluginViewBase):
11528        (WebCore::PluginViewBase::scriptObject):
11529        * plugins/PluginViewNone.cpp:
11530        (WebCore):
11531        (WebCore::PluginView::bindingInstance):
11532        * plugins/qt/PluginViewQt.cpp:
11533        (WebCore::PluginView::dispatchNPEvent):
11534        (WebCore::PluginView::setNPWindowIfNeeded):
11535        * xml/XMLHttpRequest.cpp:
11536        (WebCore::XMLHttpRequest::dropProtection):
11537
115382013-04-05  Roger Fong  <roger_fong@apple.com>
11539
11540        More VS2010 solution makefile fixes.
11541        <rdar://problem/13588964>
11542
11543        * WebCore.vcxproj/WebCore.make:
11544
115452013-04-05  Ed Bartosh  <bartosh@gmail.com>
11546
11547        [EFL] --no-tiled-backing-store build fails because of not used #if USE(ACCELERATED_COMPOSITING)
11548        https://bugs.webkit.org/show_bug.cgi?id=113627
11549
11550        Reviewed by Simon Fraser.
11551
11552       Wrapped code with #if USE(ACCELERATED_COMPOSITING) to make it compilable
11553       with --no-tiled-backing-store build option:
11554        * page/animation/ImplicitAnimation.cpp:
11555        (WebCore::ImplicitAnimation::animate):
11556        * page/animation/KeyframeAnimation.cpp:
11557        (WebCore::KeyframeAnimation::animate):
11558        * platform/graphics/TextTrackRepresentation.cpp:
11559        (NullTextTrackRepresentation):
11560        * platform/graphics/TextTrackRepresentation.h:
11561        (TextTrackRepresentation):
11562        * testing/Internals.cpp:
11563        (WebCore::Internals::resetToConsistentState):
11564        (WebCore::Internals::setHeaderHeight):
11565        (WebCore::Internals::setFooterHeight):
11566
115672013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11568
11569        Remove the remaining Chromium files from WebCore
11570        https://bugs.webkit.org/show_bug.cgi?id=114055
11571
11572        Reviewed by Benjamin Poulain.
11573
11574        Removed.
11575
11576        * Resources/pagepopups/chromium: Removed.
11577        * Resources/pagepopups/chromium/calendarPickerChromium.css: Removed.
11578        * Resources/pagepopups/chromium/pickerCommonChromium.css: Removed.
11579        * html/shadow/MediaControlsChromium.cpp: Removed.
11580        * html/shadow/MediaControlsChromium.h: Removed.
11581        * html/shadow/MediaControlsChromiumAndroid.cpp: Removed.
11582        * html/shadow/MediaControlsChromiumAndroid.h: Removed.
11583
115842013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11585
11586        Remove Chromium code from WebCore/css
11587        https://bugs.webkit.org/show_bug.cgi?id=114052
11588
11589        Reviewed by Benjamin Poulain.
11590
11591        Removed.
11592
11593        * css/mediaControlsChromium.css: Removed.
11594        * css/mediaControlsChromiumAndroid.css: Removed.
11595        * css/themeChromium.css: Removed.
11596        * css/themeChromiumAndroid.css: Removed.
11597        * css/themeChromiumLinux.css: Removed.
11598        * css/themeChromiumSkia.css: Removed.
11599
116002013-04-05  Brendan Long  <self@brendanlong.com>
11601
11602        [GStreamer] Segfault when attempting to install missing plugins
11603        https://bugs.webkit.org/show_bug.cgi?id=114046
11604        
11605        gst_install_plugins_async expects a null terminated list, but we weren't
11606        adding a null terminator.
11607
11608        Reviewed by Philippe Normand.
11609
11610        No new tests since this just fixes a segfault.
11611
11612        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
11613        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
11614
116152013-04-05  Benjamin Poulain  <benjamin@webkit.org>
11616
11617        Remove the chromium code for WebCore's indexeddb module
11618        https://bugs.webkit.org/show_bug.cgi?id=114004
11619
11620        Reviewed by Ryosuke Niwa.
11621
11622        * Modules/indexeddb/IDBBackingStore.cpp:
11623        (WebCore::IDBBackingStore::IDBBackingStore):
11624        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
11625        (WebCore::IDBDatabaseBackendImpl::openConnection):
11626        (WebCore::IDBDatabaseBackendImpl::close):
11627        * Modules/indexeddb/IDBFactoryBackendInterface.cpp:
11628        * Modules/indexeddb/IDBTracing.h:
11629
116302013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11631
11632        Cleanup after git svn left empty directories.
11633
11634        * loader/chromium: Removed.
11635        * page/chromium: Removed.
11636        * page/scrolling/chromium: Removed.
11637        * plugins/chromium: Removed.
11638
116392013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11640
11641        Actually delete platform/chromium.
11642
11643        * platform/chromium: Removed.
11644
116452013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11646
11647        Remove Chromium code from WebCore/platform
11648        https://bugs.webkit.org/show_bug.cgi?id=114014
11649
11650        Reviewed by Anders Carlsson.
11651
11652        Removed.
11653
11654        * platform/audio/chromium: Removed.
11655        * platform/audio/chromium/AudioBusChromium.cpp: Removed.
11656        * platform/audio/chromium/AudioDestinationChromium.cpp: Removed.
11657        * platform/audio/chromium/AudioDestinationChromium.h: Removed.
11658        * platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp: Removed.
11659        * platform/graphics/FontPlatformData.h:
11660        * platform/graphics/chromium: Removed.
11661        * platform/graphics/chromium/AnimationTranslationUtil.cpp: Removed.
11662        * platform/graphics/chromium/AnimationTranslationUtil.h: Removed.
11663        * platform/graphics/chromium/Canvas2DLayerBridge.cpp: Removed.
11664        * platform/graphics/chromium/Canvas2DLayerBridge.h: Removed.
11665        * platform/graphics/chromium/Canvas2DLayerManager.cpp: Removed.
11666        * platform/graphics/chromium/Canvas2DLayerManager.h: Removed.
11667        * platform/graphics/chromium/CrossProcessFontLoading.h: Removed.
11668        * platform/graphics/chromium/CrossProcessFontLoading.mm: Removed.
11669        * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
11670        * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
11671        * platform/graphics/chromium/DiscardablePixelRef.cpp: Removed.
11672        * platform/graphics/chromium/DiscardablePixelRef.h: Removed.
11673        * platform/graphics/chromium/DrawingBufferChromium.cpp: Removed.
11674        * platform/graphics/chromium/Extensions3DChromium.h: Removed.
11675        * platform/graphics/chromium/FontCacheAndroid.cpp: Removed.
11676        * platform/graphics/chromium/FontCacheChromiumLinux.cpp: Removed.
11677        * platform/graphics/chromium/FontCacheChromiumWin.cpp: Removed.
11678        * platform/graphics/chromium/FontChromiumWin.cpp: Removed.
11679        * platform/graphics/chromium/FontPlatformData.h: Removed.
11680        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp: Removed.
11681        * platform/graphics/chromium/FontPlatformDataChromiumWin.h: Removed.
11682        * platform/graphics/chromium/FontRenderStyle.h: Removed.
11683        * platform/graphics/chromium/FontUtilsChromiumWin.cpp: Removed.
11684        * platform/graphics/chromium/FontUtilsChromiumWin.h: Removed.
11685        * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp: Removed.
11686        * platform/graphics/chromium/GraphicsLayerChromium.cpp: Removed.
11687        * platform/graphics/chromium/GraphicsLayerChromium.h: Removed.
11688        * platform/graphics/chromium/IconChromium.cpp: Removed.
11689        * platform/graphics/chromium/IconChromiumAndroid.cpp: Removed.
11690        * platform/graphics/chromium/ImageBufferDataSkia.h: Removed.
11691        * platform/graphics/chromium/ImageChromium.cpp: Removed.
11692        * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
11693        * platform/graphics/chromium/ImageDecodingStore.h: Removed.
11694        * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
11695        * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
11696        * platform/graphics/chromium/LayerPainterChromium.h: Removed.
11697        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
11698        * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
11699        * platform/graphics/chromium/MediaPlayerPrivateChromium.cpp: Removed.
11700        * platform/graphics/chromium/MediaPlayerPrivateChromium.h: Removed.
11701        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp: Removed.
11702        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h: Removed.
11703        * platform/graphics/chromium/PlatformIcon.h: Removed.
11704        * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
11705        * platform/graphics/chromium/ScaledImageFragment.h: Removed.
11706        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Removed.
11707        * platform/graphics/chromium/SkSizeHash.h: Removed.
11708        * platform/graphics/chromium/TextureUploader.h: Removed.
11709        * platform/graphics/chromium/ThreadSafeDataTransport.cpp: Removed.
11710        * platform/graphics/chromium/ThreadSafeDataTransport.h: Removed.
11711        * platform/graphics/chromium/TransformSkMatrix44Conversions.cpp: Removed.
11712        * platform/graphics/chromium/TransformSkMatrix44Conversions.h: Removed.
11713        * platform/graphics/chromium/TransparencyWin.cpp: Removed.
11714        * platform/graphics/chromium/TransparencyWin.h: Removed.
11715        * platform/graphics/chromium/UniscribeHelper.cpp: Removed.
11716        * platform/graphics/chromium/UniscribeHelper.h: Removed.
11717        * platform/graphics/chromium/UniscribeHelperTextRun.cpp: Removed.
11718        * platform/graphics/chromium/UniscribeHelperTextRun.h: Removed.
11719        * platform/graphics/chromium/VDMXParser.cpp: Removed.
11720        * platform/graphics/chromium/VDMXParser.h: Removed.
11721        * platform/graphics/gpu/DrawingBuffer.cpp:
11722        (WebCore):
11723        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
11724        (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
11725        * platform/mediastream/chromium: Removed.
11726        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp: Removed.
11727        * platform/mediastream/chromium/MediaStreamCenterChromium.h: Removed.
11728        * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.cpp: Removed.
11729        * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.h: Removed.
11730        * platform/mediastream/chromium/RTCDataChannelHandlerChromium.cpp: Removed.
11731        * platform/mediastream/chromium/RTCDataChannelHandlerChromium.h: Removed.
11732        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Removed.
11733        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Removed.
11734        * platform/network/chromium: Removed.
11735        * platform/network/chromium/AuthenticationChallenge.h: Removed.
11736        * platform/network/chromium/AuthenticationChallengeChromium.cpp: Removed.
11737        * platform/network/chromium/BlobRegistryProxy.cpp: Removed.
11738        * platform/network/chromium/BlobRegistryProxy.h: Removed.
11739        * platform/network/chromium/CookieJarChromium.cpp: Removed.
11740        * platform/network/chromium/DNSChromium.cpp: Removed.
11741        * platform/network/chromium/ResourceError.h: Removed.
11742        * platform/network/chromium/ResourceHandle.cpp: Removed.
11743        * platform/network/chromium/ResourceHandleInternal.h: Removed.
11744        * platform/network/chromium/ResourceRequest.cpp: Removed.
11745        * platform/network/chromium/ResourceRequest.h: Removed.
11746        * platform/network/chromium/ResourceResponse.cpp: Removed.
11747        * platform/network/chromium/ResourceResponse.h: Removed.
11748        * platform/network/chromium/SocketStreamError.h: Removed.
11749        * platform/network/chromium/SocketStreamHandle.cpp: Removed.
11750        * platform/network/chromium/SocketStreamHandle.h: Removed.
11751        * platform/network/chromium/SocketStreamHandleInternal.h: Removed.
11752        * platform/sql/chromium: Removed.
11753        * platform/sql/chromium/SQLiteFileSystemChromium.cpp: Removed.
11754        * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp: Removed.
11755        * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp: Removed.
11756        * platform/text/chromium: Removed.
11757        * platform/text/chromium/Hyphenation.cpp: Removed.
11758        * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp: Removed.
11759
117602013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11761
11762        Remove Chromium code from WebCore/workers
11763        https://bugs.webkit.org/show_bug.cgi?id=114050
11764
11765        Reviewed by Anders Carlsson.
11766
11767        Removed.
11768
11769        * workers/WorkerLoaderProxy.h:
11770        (WorkerLoaderProxy):
11771        * workers/chromium: Removed.
11772
117732013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11774
11775        Remove Chromium code from WebCore/storage
11776        https://bugs.webkit.org/show_bug.cgi?id=114049
11777
11778        Reviewed by Anders Carlsson.
11779
11780        Removed.
11781
11782        * storage/StorageNamespace.cpp:
11783        * storage/chromium: Removed.
11784
117852013-04-05  Seokju Kwon  <seokju.kwon@gmail.com>
11786
11787        [SOUP] Remove unnecessary explicit keyword in SocketStreamError.h
11788        https://bugs.webkit.org/show_bug.cgi?id=113913
11789
11790        Reviewed by Martin Robinson.
11791
11792        No new tests, just removing an unnecessary code.
11793
11794        * platform/network/soup/SocketStreamError.h:
11795        (WebCore::SocketStreamError::SocketStreamError):
11796
117972013-04-05  Zan Dobersek  <zdobersek@igalia.com>
11798
11799        Remove WTF_USE_GOOGLEURL-guarded code
11800        https://bugs.webkit.org/show_bug.cgi?id=114028
11801
11802        Reviewed by Ryosuke Niwa.
11803
11804        The only remaining usage of the USE(GOOGLEURL) guards is in LinkHashChromium.cpp that will
11805        get removed when purging the Source/WebCore/platform/chromium directory.
11806
11807        * config.h: Remove the define that was Chromium-specific.
11808        * platform/KURL.cpp:
11809        (WebCore):
11810        (WebCore::KURL::reportMemoryUsage):
11811        (WebCore::KURL::isSafeToSendToAnotherThread):
11812        * platform/KURL.h:
11813        (KURL):
11814        * platform/KURLGoogle.cpp: Removed.
11815        * platform/KURLGooglePrivate.h: Removed.
11816
118172013-04-05  Bem Jones-Bey  <bjonesbe@adobe.com>
11818
11819        [regression] Security: Heap-use-after-free in WebCore::RenderBlock::logicalRightOffsetForLine
11820        https://bugs.webkit.org/show_bug.cgi?id=111594
11821
11822        Reviewed by David Hyatt.
11823
11824        Swapping the bases was causing any floats in the right base to be
11825        lost, so change the code so that it no longer swaps the bases.
11826
11827        Test: fast/ruby/float-object-doesnt-crash.html
11828
11829        * rendering/RenderRubyRun.cpp:
11830        (WebCore::RenderRubyRun::removeChild): Don't swap the bases anymore.
11831
118322013-04-05  Anders Carlsson  <andersca@apple.com>
11833
11834        Remove dead code
11835        https://bugs.webkit.org/show_bug.cgi?id=114043
11836
11837        Reviewed by Beth Dakin.
11838
11839        * platform/PublicSuffix.h:
11840
118412013-04-05  Anders Carlsson  <andersca@apple.com>
11842
11843        Remove dead Chromium code from WebCore/workers
11844        https://bugs.webkit.org/show_bug.cgi?id=114039
11845
11846        Reviewed by Antti Koivisto.
11847
11848        * workers/WorkerContext.cpp:
11849        (WebCore::WorkerContext::importScripts):
11850        * workers/WorkerLoaderProxy.h:
11851        * workers/WorkerMessagingProxy.cpp:
11852        (WebCore::WorkerContextProxy::create):
11853        * workers/WorkerScriptLoader.cpp:
11854        (WebCore::WorkerScriptLoader::WorkerScriptLoader):
11855        (WebCore::WorkerScriptLoader::createResourceRequest):
11856        * workers/WorkerScriptLoader.h:
11857        * workers/WorkerThread.cpp:
11858        (WebCore::WorkerThread::workerThread):
11859        * workers/chromium/WorkerContextProxyChromium.cpp: Removed.
11860        * workers/chromium/WorkerContextProxyChromium.h: Removed.
11861
118622013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
11863
11864        Remove Chromium code from WebCore/plugins
11865        https://bugs.webkit.org/show_bug.cgi?id=114015
11866
11867        Reviewed by Andreas Kling.
11868
11869        Removed.
11870
11871        * plugins/chromium: Removed.
11872        * plugins/chromium/PluginDataChromium.cpp: Removed.
11873        * plugins/chromium/PluginDataChromium.h: Removed.
11874        * plugins/chromium/PluginListBuilder.cpp: Removed.
11875        * plugins/chromium/PluginListBuilder.h: Removed.
11876
118772013-04-05  Simon Fraser  <simon.fraser@apple.com>
11878
11879        ASSERTION FAILED: m_repaintRect == renderer()->clippedOverflowRectForRepaint(renderer()->containerForRepaint()) after r135816
11880        https://bugs.webkit.org/show_bug.cgi?id=103432
11881
11882        Reviewed by Allan Sandfeld Jensen.
11883        
11884        Remove optimization added in r99752 that attempted to avoid clip rect
11885        updates for table cells. As the assertions show, this optimization
11886        is not always correct, so remove it. Bug 108272 tracks adding it back in.
11887
11888        * rendering/RenderLayer.cpp:
11889        (WebCore::RenderLayer::RenderLayer):
11890        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Remove m_canSkipRepaintRectsUpdateOnScroll
11891        check when updating clip rects.
11892        * rendering/RenderLayer.h: Remove the m_canSkipRepaintRectsUpdateOnScroll bit.
11893
118942013-04-05  Bear Travis  <betravis@adobe.com>
11895
11896        [css exclusions] Dynamically removing shape-inside should cause relayout of child blocks' inline content
11897        https://bugs.webkit.org/show_bug.cgi?id=111029
11898
11899        Reviewed by David Hyatt.
11900
11901        Preserve a removed ExclusionShapeInsideInfo for one additional layout pass
11902        so that it can notify descendant inline content to relayout. This patch adds
11903        a new 'needsRemoval' boolean to ExclusionShapeInsideInfo, which is set when
11904        a style change removes but does not replace a shape-inside. When determining
11905        whether a block needs to relayout inline children, ExclusionShapeInsideInfos with
11906        the needsRemoval boolean set are included, but at other times (such as during
11907        inline layout), they are ignored.
11908
11909        Added tests to the existing dynamic shape testfile
11910        fast/exclusions/shape-inside/shape-inside-dynamic-nested.html
11911
11912        * rendering/ExclusionShapeInsideInfo.h:
11913        (WebCore::ExclusionShapeInsideInfo::setNeedsRemoval): Get/Set the
11914        needsRemoval boolean.
11915        (WebCore::ExclusionShapeInsideInfo::needsRemoval): Ditto.
11916        (ExclusionShapeInsideInfo):
11917        (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo):
11918        Initialize the needsRemoval boolean.
11919        * rendering/LayoutState.cpp:
11920        (WebCore::LayoutState::LayoutState): Propagate removed shape insides
11921        for layout correctly. You only need to track one at a time, and a
11922        removed shape inside should not take precedence over a set shape-inside.
11923        * rendering/RenderBlock.cpp:
11924        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
11925        Set the ExclusionShapeInsideInfo needsRemoval boolean, rather than immediately
11926        removing the info.
11927        (WebCore::exclusionInfoRequiresRelayout): Account for the needsRemoval
11928        boolean as another way of requiring relayout.
11929        (WebCore::RenderBlock::updateRegionsAndExclusionsBeforeChildLayout):
11930        Look up whether an ExclusionShapeInsideInfo has been removed.
11931        (WebCore::RenderBlock::updateRegionsAndExclusionsAfterChildLayout):
11932        Remove any ExclusionShapeInsides marked for removal after a layout pass.
11933        (WebCore):
11934        (WebCore::RenderBlock::layoutBlock): Call the new updateRegionsAndExclusions
11935        Before/After methods.
11936        * rendering/RenderBlock.h:
11937        (WebCore::RenderBlock::exclusionShapeInsideInfo): Filter the result based
11938        on whether it should include removed infos.
11939        (RenderBlock):
11940        * rendering/RenderBlockLineLayout.cpp:
11941        (WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Ditto.
11942        * rendering/RenderDeprecatedFlexibleBox.cpp:
11943        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock): 
11944        Same as RenderBlock::layoutBlock.
11945        * rendering/RenderFlexibleBox.cpp:
11946        (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
11947        * rendering/RenderGrid.cpp:
11948        (WebCore::RenderGrid::layoutBlock): Ditto.
11949
119502013-04-05  Mihai Maerean  <mmaerean@adobe.com>
11951
11952        [CSS Regions] Elements in a region should be assignable to a named flow
11953        https://bugs.webkit.org/show_bug.cgi?id=74144
11954
11955        Reviewed by David Hyatt.
11956
11957        DOM children of a region must not be rendered as children of the region, but can be collected in flow threads.
11958
11959        NodeRenderingContext::parentRenderer now creates the parent render flow thread if it doesn't exist.
11960
11961        Element::moveToFlowThreadIsNeeded is a virtual method that is overriden in PseudoElement to return false and
11962        in SVGElement so only svg root elements can directly be collected by a render flow thread.
11963
11964        RenderObject::canDOMChildrenHaveRenderParent exists to optimize the code so nodes inside regions (and maybe
11965        other types of renderers in the future) can still have renderers if they need to be in a flow thread while the
11966        rest of renderers that can't have children skip the new instructions.
11967
11968        Tests: fast/regions/flow-body-in-html.html . To test the duplicate bug #103685.
11969               fast/regions/region-content-flown-into-region.html
11970               fast/regions/universal-selector-children-to-the-same-region.html . To test the duplicate bug #103685.
11971
11972        * dom/Element.cpp:
11973        (WebCore::Element::moveToFlowThreadIsNeeded):
11974        * dom/Element.h:
11975        * dom/NodeRenderingContext.cpp:
11976        (WebCore::NodeRenderingContext::parentRenderer): the renderer that will be the parent for this node's renderer.
11977        In the case of RenderFlowThreads, it may need to create it.
11978        (WebCore::NodeRenderingContext::shouldCreateRenderer): In a region, only the children that need to be in a flow
11979        thread should have a renderer.
11980        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
11981        (WebCore::NodeRenderingContext::moveToFlowThread):
11982        * dom/NodeRenderingContext.h:
11983        (NodeRenderingContext):
11984        * dom/PseudoElement.h: pseudo-elements cannot be directly collected into a named flow.
11985        * dom/Text.cpp:
11986        (WebCore::Text::textRendererIsNeeded):
11987        (WebCore::Text::updateTextRenderer): Because calling textRendererIsNeeded(NodeRenderingContext(...)) on a
11988        non-const l-value NodeRenderingContext cannot be done on a temporary object on the stack.
11989        * dom/Text.h:
11990        * rendering/FlowThreadController.cpp:
11991        (WebCore::FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow):
11992        * rendering/FlowThreadController.h:
11993        * rendering/RenderObject.h:
11994        (WebCore::RenderObject::canDOMChildrenHaveRenderParent): Even if this render object can't have render children,
11995        the children in the DOM tree may have a render parent (that is different from this render object).
11996        * rendering/RenderRegion.h:
11997        * svg/SVGElement.cpp:
11998        (WebCore::SVGElement::moveToFlowThreadIsNeeded): Allow only svg root elements to be directly collected by a
11999        render flow thread.
12000        * svg/SVGElement.h:
12001        (SVGElement):
12002
120032013-04-05  Allan Sandfeld Jensen  <allan.jensen@digia.com>
12004
12005        Fix GCC with C++11 build
12006        https://bugs.webkit.org/show_bug.cgi?id=111579
12007
12008        Reviewed by Anders Carlsson.
12009
12010        If the destructor is private, MemoryInstrumentation can not create an inherited class.
12011
12012        * css/PropertySetCSSStyleDeclaration.h:
12013        (StyleRuleCSSStyleDeclaration):
12014        * dom/ShadowRoot.h:
12015        (ShadowRoot):
12016        * loader/SubresourceLoader.h:
12017        (SubresourceLoader):
12018        * platform/Timer.h:
12019
120202013-03-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>
12021
12022        [Qt] Create ShadowBlur on demand.
12023        https://bugs.webkit.org/show_bug.cgi?id=113506
12024
12025        Reviewed by Noam Rosenthal.
12026
12027        This patch creates ShadowBlur objects on demand instead of keeping a single one alive for
12028        each GraphicsContext. This matches what other platforms does and fixes the problem with 
12029        an active shadowblur being affected by changing shadow settings on the GraphicsContext.
12030
12031        The method mustUseShadowBlur is moved from ShadowBlur to GraphcisContext, so that it can
12032        be used to determine if a ShadowBlur object should even be generated.
12033
12034        * platform/graphics/GraphicsContext.cpp:
12035        (WebCore::GraphicsContext::hasBlurredShadow):
12036        (WebCore::GraphicsContext::mustUseShadowBlur):
12037        * platform/graphics/GraphicsContext.h:
12038        (GraphicsContext):
12039        * platform/graphics/ShadowBlur.cpp:
12040        (WebCore::ShadowBlur::ShadowBlur):
12041        * platform/graphics/ShadowBlur.h:
12042        * platform/graphics/cairo/FontCairo.cpp:
12043        (WebCore::drawGlyphsShadow):
12044        * platform/graphics/cg/GraphicsContextCG.cpp:
12045        (WebCore::GraphicsContext::fillRect):
12046        (WebCore::GraphicsContext::fillRoundedRect):
12047        (WebCore::GraphicsContext::fillRectWithRoundedHole):
12048        * platform/graphics/qt/FontQt.cpp:
12049        (WebCore::drawQtGlyphRun):
12050        * platform/graphics/qt/GraphicsContextQt.cpp:
12051        (GraphicsContextPlatformPrivate):
12052        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
12053        (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
12054        (WebCore::GraphicsContext::restorePlatformState):
12055        (WebCore::GraphicsContext::fillPath):
12056        (WebCore::GraphicsContext::strokePath):
12057        (WebCore::GraphicsContext::fillRect):
12058        (WebCore::GraphicsContext::fillRoundedRect):
12059        (WebCore::GraphicsContext::fillRectWithRoundedHole):
12060        (WebCore::GraphicsContext::setPlatformShadow):
12061        (WebCore::GraphicsContext::clearPlatformShadow):
12062        * platform/graphics/qt/ImageQt.cpp:
12063        (WebCore::BitmapImage::draw):
12064        * platform/graphics/qt/StillImageQt.cpp:
12065        (WebCore::StillImage::draw):
12066
120672013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
12068
12069        Remove Chromium code from WebCore/page
12070        https://bugs.webkit.org/show_bug.cgi?id=114013
12071
12072        Reviewed by Anders Carlsson.
12073
12074        Removed.
12075
12076        * page/Console.cpp:
12077        (WebCore::Console::time):
12078        (WebCore::Console::timeEnd):
12079        * page/EventHandler.cpp:
12080        (WebCore::shouldGesturesTriggerActive):
12081        (WebCore::EventHandler::handleMouseReleaseEvent):
12082        (WebCore):
12083        (WebCore::EventHandler::sendScrollEventToView):
12084        * page/FeatureObserver.cpp:
12085        (WebCore::FeatureObserver::updateMeasurements):
12086        * page/FrameView.cpp:
12087        (WebCore::FrameView::layout):
12088        (WebCore::FrameView::useSlowRepaints):
12089        * page/PageConsole.cpp:
12090        * page/PageGroup.cpp:
12091        (WebCore::PageGroup::isLinkVisited):
12092        (WebCore::PageGroup::addVisitedLink):
12093        * page/Settings.cpp:
12094        (WebCore):
12095        * page/android: Removed.
12096        * page/chromium: Removed.
12097        * page/chromium/ChromeClientChromium.h: Removed.
12098        * page/chromium/DragControllerChromium.cpp: Removed.
12099        * page/chromium/EventHandlerChromium.cpp: Removed.
12100        * page/scrolling/ScrollingCoordinator.cpp:
12101        (WebCore::ScrollingCoordinator::create):
12102        (WebCore):
12103        * page/scrolling/ScrollingCoordinator.h:
12104        (ScrollingCoordinator):
12105        * page/scrolling/ScrollingTree.cpp:
12106        (WebCore):
12107        * page/scrolling/ScrollingTree.h:
12108        (ScrollingTree):
12109        * page/scrolling/chromium: Removed.
12110        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp: Removed.
12111        * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Removed.
12112
121132013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
12114
12115        Remove Chromium code from WebCore/rendering
12116        https://bugs.webkit.org/show_bug.cgi?id=114017
12117
12118        Reviewed by Simon Fraser.
12119
12120        Removed.
12121
12122        * rendering/RenderBlockLineLayout.cpp:
12123        (WebCore::setLogicalWidthForTextRun):
12124        * rendering/RenderLayerBacking.cpp:
12125        (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
12126        (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
12127        (WebCore::RenderLayerBacking::requiresScrollCornerLayer):
12128        * rendering/RenderLayerCompositor.cpp:
12129        (WebCore::RenderLayerCompositor::paintContents):
12130        (WebCore::shouldCompositeOverflowControls):
12131        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
12132        * rendering/RenderMediaControlsChromium.cpp: Removed.
12133        * rendering/RenderMediaControlsChromium.h: Removed.
12134        * rendering/RenderObject.cpp:
12135        (WebCore::RenderObject::shouldRespectImageOrientation):
12136        * rendering/RenderText.cpp:
12137        (WebCore):
12138        (WebCore::RenderText::previousOffsetForBackwardDeletion):
12139        * rendering/RenderThemeChromiumAndroid.cpp: Removed.
12140        * rendering/RenderThemeChromiumAndroid.h: Removed.
12141        * rendering/RenderThemeChromiumCommon.cpp: Removed.
12142        * rendering/RenderThemeChromiumCommon.h: Removed.
12143        * rendering/RenderThemeChromiumDefault.cpp: Removed.
12144        * rendering/RenderThemeChromiumDefault.h: Removed.
12145        * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
12146        * rendering/RenderThemeChromiumFontProvider.h: Removed.
12147        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
12148        * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
12149        * rendering/RenderThemeChromiumMac.h: Removed.
12150        * rendering/RenderThemeChromiumMac.mm: Removed.
12151        * rendering/RenderThemeChromiumSkia.cpp: Removed.
12152        * rendering/RenderThemeChromiumSkia.h: Removed.
12153        * rendering/RenderThemeChromiumWin.cpp: Removed.
12154        * rendering/RenderThemeChromiumWin.h: Removed.
12155        * rendering/RenderThemeMacShared.mm:
12156        (WebCore::RenderThemeMacShared::paintSliderThumb):
12157
121582013-04-05  Noam Rosenthal  <noam@webkit.org>
12159
12160        [Texmap] css3/filters/filter-animation-from-none-hw.html does not animate
12161        https://bugs.webkit.org/show_bug.cgi?id=114026
12162
12163        Reviewed by Allan Sandfeld Jensen.
12164
12165        Allow the filter's blending function to take place when animating from/to none.
12166
12167        * platform/graphics/GraphicsLayerAnimation.cpp:
12168        (WebCore::applyFilterAnimation):
12169
121702013-04-05  Noam Rosenthal  <noam@webkit.org>
12171
12172        [CoordGfx] Enable filter animations
12173        https://bugs.webkit.org/show_bug.cgi?id=114027
12174
12175        Reviewed by Allan Sandfeld Jensen.
12176
12177        Allow CoordinatedGraphicsLayer to serialize filter animations to the UI process.
12178
12179        Covered by animation tests in css3/filters.
12180
12181        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
12182        (WebCore::CoordinatedGraphicsLayer::addAnimation):
12183
121842013-04-05  Christophe Dumez  <ch.dumez@sisa.samsung.com>
12185
12186        Avoid double hash table lookups in TextureMapperGL
12187        https://bugs.webkit.org/show_bug.cgi?id=114030
12188
12189        Reviewed by Noam Rosenthal.
12190
12191        Use Vector::add() and leverage its returned AddResult value instead of
12192        calling Vector::find() then Vector::set() if the key does not already
12193        exist in the map. This results in a single hash lookup instead of two
12194        in this case.
12195
12196        No new tests, no behavior change.
12197
12198        * platform/graphics/texmap/TextureMapperGL.cpp:
12199        (WebCore::TextureMapperGLData::SharedGLData::getShaderProgram):
12200        (WebCore::TextureMapperGLData::getStaticVBO):
12201        (WebCore::TextureMapperGL::drawUsingCustomFilter):
12202
122032013-04-05  Aivo Paas  <aivopaas@gmail.com>
12204
12205        Updating mouse cursor on style changes without emitting fake mousemove event
12206        https://bugs.webkit.org/show_bug.cgi?id=101857
12207
12208        Reviewed by Allan Sandfeld Jensen.
12209
12210        Mouse cursor changes in styles used to be reflected in UI through dispatching a fake
12211        mousemove event. The old approach has some flaws: it emits a mousemove event in
12212        javascript when there is no mouse movement involved (bug 85343); the fake mousemove
12213        event is cancelled while there is a mouse button held down - cursor won't change
12214        until mouse is moved or the button released (bug 53341).
12215
12216        The new approach does not use the fake mousemove event. Instead, it uses only the logic
12217        needed for the actual cursor change to happen.
12218
12219        EventHandler::selectCursor was refactored to not take a whole mouse event but instead work with
12220        HitTestResult so that EventHandler::updateCursor must not create a useless PlatformEvent.
12221
12222        Fixes: https://bugs.webkit.org/show_bug.cgi?id=85343 (mousemove event on cursor change)
12223               https://bugs.webkit.org/show_bug.cgi?id=53341 (no cursor change when mouse button down)
12224
12225        Tests: fast/events/mouse-cursor-change.html
12226               fast/events/mouse-cursor-no-mousemove.html
12227
12228        * page/EventHandler.cpp:
12229        (WebCore::EventHandler::EventHandler):
12230        (WebCore::EventHandler::clear):
12231        (WebCore::EventHandler::cursorUpdateTimerFired):
12232        (WebCore::EventHandler::updateCursor):
12233        (WebCore::EventHandler::selectCursor):
12234        (WebCore::EventHandler::handleMouseMoveEvent):
12235        (WebCore::EventHandler::scheduleCursorUpdate):
12236        * page/EventHandler.h:
12237        * page/FrameView.cpp:
12238        (WebCore::FrameView::shouldSetCursor):
12239        * page/FrameView.h:
12240        * page/MouseEventWithHitTestResults.cpp:
12241        (WebCore::MouseEventWithHitTestResults::isOverLink):
12242        * rendering/HitTestResult.cpp:
12243        (WebCore::HitTestResult::isOverLink):
12244        * rendering/HitTestResult.h:
12245        * rendering/RenderObject.cpp:
12246        (WebCore::RenderObject::styleDidChange):
12247
122482013-04-05  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
12249
12250        [Qt] PluginsX11: exposedRect offset is applied twice when painting windowless
12251        https://bugs.webkit.org/show_bug.cgi?id=114020
12252
12253        Reviewed by Simon Hausmann.
12254
12255        Both XGetImage and QPainter::drawImage would apply the offset.
12256        Since the XImage will only contain the exposed rect, no need to specify
12257        the source rect to drawImage.
12258
12259        * plugins/qt/PluginViewQt.cpp:
12260        (WebCore::PluginView::paintUsingXPixmap):
12261
122622013-04-05  Seokju Kwon  <seokju.kwon@gmail.com>
12263
12264        Web Inspector: crash in InspectorDOMAgent::innerHighlightQuad after r147566
12265        https://bugs.webkit.org/show_bug.cgi?id=113991
12266
12267        Reviewed by Joseph Pecoraro.
12268
12269        * inspector/InspectorDOMAgent.cpp:
12270        (WebCore::InspectorDOMAgent::innerHighlightQuad):
12271
122722013-04-05  Carlos Garcia Campos  <cgarcia@igalia.com>
12273
12274        REGRESSION(r145279): Build fails while linking when MEDIA_STREAM is enabled
12275        https://bugs.webkit.org/show_bug.cgi?id=113294
12276
12277        Reviewed by Xan Lopez.
12278
12279        In r145279 NamedGetter extended attribute is added to
12280        RTCStatsResponse.idl which makes the code generator to add
12281        prototypes for JSRTCStatsResponse::nameGetter and
12282        JSRTCStatsResponse::canGetItemsForName to the generated
12283        JSRTCStatsResponse header, but they are not implemented
12284        anywhere. We need to provide a JSRTCStatsResponseCustom file with
12285        the implementation of both functions.
12286
12287        * GNUmakefile.list.am: Add JSRTCStatsResponseCustom.cpp to
12288        compilation.
12289        * Target.pri: Ditto.
12290        * UseJSC.cmake: Ditto.
12291        * WebCore.vcproj/WebCore.vcproj: Ditto.
12292        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
12293        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
12294        * bindings/js/JSRTCStatsResponseCustom.cpp: Added.
12295        (WebCore):
12296        (WebCore::JSRTCStatsResponse::canGetItemsForName):
12297        (WebCore::JSRTCStatsResponse::nameGetter):
12298
122992013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
12300
12301        Remove Chromium code from WebCore/loader
12302        https://bugs.webkit.org/show_bug.cgi?id=114011
12303
12304        Reviewed by Benjamin Poulain.
12305
12306        Removed.
12307
12308        * loader/DocumentLoader.cpp:
12309        (WebCore::DocumentLoader::responseReceived):
12310        * loader/DocumentThreadableLoader.h:
12311        * loader/FrameLoader.cpp:
12312        (WebCore::FrameLoader::FrameLoader):
12313        (WebCore::FrameLoader::defaultObjectContentType):
12314        (WebCore):
12315        * loader/FrameLoader.h:
12316        (FrameLoader):
12317        * loader/FrameLoaderClient.h:
12318        (FrameLoaderClient):
12319        * loader/PingLoader.cpp:
12320        (WebCore::PingLoader::loadImage):
12321        (WebCore::PingLoader::sendPing):
12322        (WebCore::PingLoader::sendViolationReport):
12323        * loader/ResourceLoadScheduler.cpp:
12324        (WebCore):
12325        (WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
12326        (WebCore::ResourceLoadScheduler::scheduleLoad):
12327        * loader/ResourceLoader.h:
12328        * loader/SubresourceLoader.h:
12329        * loader/ThreadableLoaderClient.h:
12330        (ThreadableLoaderClient):
12331        * loader/ThreadableLoaderClientWrapper.h:
12332        (ThreadableLoaderClientWrapper):
12333        * loader/appcache/ApplicationCacheHost.h:
12334        (WebCore):
12335        (ApplicationCacheHost):
12336        * loader/cache/CachedRawResource.h:
12337        (CachedRawResource):
12338        (WebCore::CachedRawResourceClient::redirectReceived):
12339        * loader/cache/CachedResource.cpp:
12340        (WebCore):
12341        (WebCore::CachedResource::load):
12342        * loader/cache/CachedResource.h:
12343        (WebCore::CachedResource::didSendData):
12344        * loader/cache/CachedResourceLoader.cpp:
12345        (WebCore::CachedResourceLoader::requestResource):
12346        (WebCore::CachedResourceLoader::preload):
12347        * loader/chromium: Removed.
12348        * loader/chromium/CachedRawResourceChromium.cpp: Removed.
12349        * loader/chromium/DocumentThreadableLoaderChromium.cpp: Removed.
12350        * loader/chromium/ResourceLoaderChromium.cpp: Removed.
12351        * loader/chromium/SubresourceLoaderChromium.cpp: Removed.
12352
123532013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
12354
12355        Remove Chromium code from WebCore/editing
12356        https://bugs.webkit.org/show_bug.cgi?id=114008
12357
12358        Reviewed by Benjamin Poulain.
12359
12360        Removed.
12361
12362        * editing/EditingBehavior.h:
12363        (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
12364        * editing/FrameSelection.h:
12365        (WebCore):
12366        * editing/chromium: Removed.
12367        * editing/chromium/EditorChromium.cpp: Removed.
12368        * editing/chromium/FrameSelectionChromium.cpp: Removed.
12369
123702013-04-05  Benjamin Poulain  <benjamin@webkit.org>
12371
12372        Remove the chromium code from the filesystem module
12373        https://bugs.webkit.org/show_bug.cgi?id=114002
12374
12375        Reviewed by Ryosuke Niwa.
12376
12377        * Modules/filesystem/DOMFileSystemBase.cpp:
12378        (WebCore::DOMFileSystemBase::createFileSystemURL):
12379        * Modules/filesystem/FileSystemType.h:
12380        * Modules/filesystem/LocalFileSystem.cpp:
12381        * Modules/filesystem/LocalFileSystem.h:
12382        (LocalFileSystem):
12383
123842013-04-05  Ryosuke Niwa  <rniwa@webkit.org>
12385
12386        Remove Chromium code from Source/WebCore/dom
12387        https://bugs.webkit.org/show_bug.cgi?id=114007
12388
12389        Reviewed by Benjamin Poulain.
12390
12391        Removed.
12392
12393        * dom/Document.cpp:
12394        (WebCore::Document::recalcStyle):
12395        (WebCore::Document::implicitClose):
12396        (WebCore::Document::setFocusedNode):
12397        * dom/MessagePortChannel.h:
12398        (MessagePortChannel):
12399        * dom/ShadowRoot.cpp:
12400        (WebCore::ShadowRoot::ShadowRoot):
12401        * dom/default/chromium: Removed.
12402        * dom/default/chromium/PlatformMessagePortChannelChromium.cpp: Removed.
12403        * dom/default/chromium/PlatformMessagePortChannelChromium.h: Removed.
12404
124052013-04-05  Benjamin Poulain  <benjamin@webkit.org>
12406
12407        Remove the chromium directories from WebCore/Modules
12408        https://bugs.webkit.org/show_bug.cgi?id=114000
12409
12410        Reviewed by Ryosuke Niwa.
12411
12412        First step in cleaning the code: remove the chromium-specific files.
12413
12414        * Modules/filesystem/chromium/DOMFileSystemChromium.cpp: Removed.
12415        * Modules/filesystem/chromium/DataTransferItemFileSystemChromium.cpp: Removed.
12416        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp: Removed.
12417        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.h: Removed.
12418        * Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.cpp: Removed.
12419        * Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.h: Removed.
12420        * Modules/speech/chromium/SpeechSynthesisChromium.cpp: Removed.
12421        * Modules/webdatabase/chromium/DatabaseObserver.h: Removed.
12422        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp: Removed.
12423        * Modules/webdatabase/chromium/QuotaTracker.cpp: Removed.
12424        * Modules/webdatabase/chromium/QuotaTracker.h: Removed.
12425        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp: Removed.
12426
124272013-04-04  Ryosuke Niwa  <rniwa@webkit.org>
12428
12429        Remove Chromium code from WebCore/accessibility
12430        https://bugs.webkit.org/show_bug.cgi?id=114001
12431
12432        Reviewed by Benjamin Poulain.
12433
12434        Removed.
12435
12436        * accessibility/AccessibilityObject.cpp:
12437        (WebCore::AccessibilityObject::AccessibilityObject):
12438        (WebCore::AccessibilityObject::detach):
12439        (WebCore::AccessibilityObject::isDetached):
12440        * accessibility/AccessibilityObject.h:
12441        (AccessibilityObject):
12442        * accessibility/chromium: Removed.
12443        * accessibility/chromium/AXObjectCacheChromium.cpp: Removed.
12444        * accessibility/chromium/AccessibilityObjectChromium.cpp: Removed.
12445
124462013-04-05  Benjamin Poulain  <bpoulain@apple.com>
12447
12448        Remove WTFURL from WebKit
12449        https://bugs.webkit.org/show_bug.cgi?id=113994
12450
12451        Reviewed by Ryosuke Niwa.
12452
12453        * GNUmakefile.list.am:
12454        * WebCore.exp.in:
12455        * WebCore.xcodeproj/project.pbxproj:
12456        * platform/KURL.cpp:
12457        (WebCore):
12458        (WebCore::KURL::reportMemoryUsage):
12459        (WebCore::KURL::isSafeToSendToAnotherThread):
12460        * platform/KURL.h:
12461        (KURL):
12462        (WebCore):
12463        * platform/KURLWTFURL.cpp: Removed.
12464        * platform/KURLWTFURLImpl.h: Removed.
12465        * platform/cf/KURLCFNet.cpp:
12466        (WebCore::KURL::KURL):
12467        (WebCore::KURL::createCFURL):
12468        (WebCore):
12469        * platform/mac/KURLMac.mm:
12470        (WebCore::KURL::KURL):
12471        (WebCore::KURL::createCFURL):
12472
124732013-04-04  peavo@outlook.com  <peavo@outlook.com>
12474
12475        WinCairo build fails to link.
12476        https://bugs.webkit.org/show_bug.cgi?id=113873
12477
12478        Reviewed by Brent Fulgham.
12479
12480        Removed double guards for USE(ACCELERATED_COMPOSITING),
12481        and moved methods out of USE(ACCELERATED_COMPOSITING) guard to fix linker errors. 
12482
12483        * page/FrameView.cpp:
12484        (WebCore::FrameView::setWantsLayerForTopOverHangArea):
12485        (WebCore::FrameView::setWantsLayerForBottomOverHangArea):
12486        (WebCore::FrameView::setWantsLayerForHeader):
12487        (WebCore::FrameView::setWantsLayerForFooter):
12488        (WebCore::FrameView::setHeaderHeight):
12489        (WebCore::FrameView::setFooterHeight):
12490
124912013-04-04  Ryosuke Niwa  <rniwa@webkit.org>
12492
12493        Remove code for 10.5 and earlier from Source/WebCore
12494        https://bugs.webkit.org/show_bug.cgi?id=113754
12495
12496        Reviewed by Benjamin Poulain.
12497
12498        Removed the code for 10.5 and removed if-def for 10.6.
12499
12500        * WebCore.xcodeproj/project.pbxproj:
12501        * page/ContextMenuController.cpp:
12502        (WebCore::ContextMenuController::populate):
12503        * platform/LocalizedStrings.cpp:
12504        (WebCore::imageTitle):
12505        * platform/graphics/cg/GraphicsContextCG.cpp:
12506        (WebCore::GraphicsContext::setAllowsFontSmoothing):
12507        * platform/graphics/cg/ImageCG.cpp:
12508        (WebCore::Image::drawPattern):
12509        * platform/graphics/cg/ImageSourceCG.cpp:
12510        (WebCore::ImageSource::clear):
12511        * platform/graphics/cg/PathCG.cpp:
12512        (WebCore::Path::boundingRect):
12513        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
12514        (WebCore):
12515        (WebCore::FontPlatformData::ctFont):
12516        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
12517        (WebCore::MediaPlayerPrivateGStreamerBase::supportsFullscreen):
12518        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
12519        * platform/graphics/mac/FontCacheMac.mm:
12520        (WebCore):
12521        (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
12522        (WebCore::FontCache::platformInit):
12523        * platform/graphics/mac/FontCustomPlatformData.cpp:
12524        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
12525        (WebCore::createFontCustomPlatformData):
12526        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
12527        (WebCore::MediaPlayerPrivateQTKit::createQTMovie):
12528        (WebCore::MediaPlayerPrivateQTKit::supportsFullscreen):
12529        (WebCore::MediaPlayerPrivateQTKit::setClosedCaptionsVisible):
12530        (WebCore::MediaPlayerPrivateQTKit::cacheMovieScale):
12531        * platform/graphics/mac/SimpleFontDataMac.mm:
12532        (WebCore::SimpleFontData::platformInit):
12533        * platform/graphics/mac/WebLayer.h:
12534        * platform/mac/CursorMac.mm:
12535        (WebCore::Cursor::ensurePlatformCursor):
12536        * platform/mac/DisplaySleepDisabler.cpp:
12537        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
12538        (WebCore):
12539        * platform/mac/DisplaySleepDisabler.h:
12540        (DisplaySleepDisabler):
12541        * platform/mac/EmptyProtocolDefinitions.h:
12542        * platform/mac/HTMLConverter.h:
12543        * platform/mac/HTMLConverter.mm:
12544        * platform/mac/PopupMenuMac.mm:
12545        (WebCore::PopupMenuMac::populate):
12546        * platform/mac/ScrollElasticityController.mm:
12547        (systemUptime):
12548        * platform/mac/SharedTimerMac.mm:
12549        (PowerObserver):
12550        (WebCore::PowerObserver::PowerObserver):
12551        (WebCore::PowerObserver::~PowerObserver):
12552        (WebCore::PowerObserver::didReceiveSystemPowerNotification):
12553        * platform/mac/SuddenTermination.mm:
12554        * platform/mac/WebCoreFullScreenWindow.mm:
12555        (-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):
12556        * platform/mac/WebFontCache.mm:
12557        (+[WebFontCache getTraits:inFamily:]):
12558        (+[WebFontCache internalFontWithFamily:traits:weight:size:]):
12559        * platform/mac/WebVideoFullscreenController.mm:
12560        (SOFT_LINK_POINTER):
12561        (-[WebVideoFullscreenController updateMenuAndDockForFullscreen]):
12562        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
12563        (createControlWithMediaUIControlType):
12564        (-[WebVideoFullscreenHUDWindowController windowDidLoad]):
12565        * platform/network/Credential.h:
12566        * platform/network/cf/DNSCFNet.cpp:
12567        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
12568        * platform/network/cf/ProxyServerCFNet.cpp:
12569        (WebCore):
12570        (WebCore::proxyServersForURL):
12571        * platform/network/cf/SocketStreamHandleCFNet.cpp:
12572        (WebCore::SocketStreamHandle::chooseProxy):
12573        * platform/network/mac/AuthenticationMac.mm:
12574        (WebCore):
12575        * platform/network/mac/WebCoreURLResponse.mm:
12576        (WebCore::adjustMIMETypeIfNecessary):
12577        * platform/text/TextChecking.h:
12578        (WebCore):
12579
125802013-04-04  Ryosuke Niwa  <rniwa@webkit.org>
12581
12582        Qt build fix attempt after r147684.
12583
12584        * html/canvas/CanvasRenderingContext.cpp:
12585
125862013-04-04  Benjamin Poulain  <bpoulain@apple.com>
12587
12588        alternateFamilyName should return a null, not an empty value
12589        https://bugs.webkit.org/show_bug.cgi?id=113987
12590
12591        Reviewed by Anders Carlsson.
12592
12593        The string object corresponding semantically to "no-value" is
12594        a null string, not an empty string.
12595
12596        Fix alternateFamilyName() accordingly.
12597
12598        * platform/graphics/FontCache.cpp:
12599        (WebCore::alternateFamilyName):
12600        (WebCore::FontCache::getCachedFontPlatformData):
12601
126022013-04-04  Anders Carlsson  <andersca@apple.com>
12603
12604        Work around a bug in the bindings generation script.
12605
12606        * WebCore.xcodeproj/project.pbxproj:
12607
126082013-04-04  Dean Jackson  <dino@apple.com>
12609
12610        Don't dispatch delayed click if snapshotted plugin was triggered by a click on the label
12611        https://bugs.webkit.org/show_bug.cgi?id=113982
12612
12613        Reviewed by Tim Horton.
12614
12615        We regressed the way clicks were sent on to restarted plugins when we moved to a
12616        Shadow Root - we were always sending the click. We should only send the click
12617        on if the user clicked on the main plugin content, and not send it when you
12618        click directly on the label.
12619
12620        * html/HTMLPlugInImageElement.cpp:
12621        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Keep a reference to the container and label.
12622        (WebCore::HTMLPlugInImageElement::partOfSnapshotLabel): New method that detects if a Node was part
12623            of the snapshot label.
12624        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Only record the event if you should forward it on.
12625        * html/HTMLPlugInImageElement.h:
12626        (HTMLPlugInImageElement): New parameter to userDidClickSnapshot and member variables for shadow content.
12627        * rendering/RenderSnapshottedPlugIn.cpp:
12628        (WebCore::RenderSnapshottedPlugIn::handleEvent): Ask the plugin if the clicked target was the snapshot label.
12629
126302013-04-04  Christophe Dumez  <ch.dumez@sisa.samsung.com>
12631
12632        Unreviewed EFL build fix.
12633
12634        Add missing include for FloatRect.h.
12635
12636        * platform/efl/PlatformScreenEfl.cpp:
12637
126382013-04-04  Tim Horton  <timothy_horton@apple.com>
12639
12640        Unreviewed build fix.
12641
12642        * platform/graphics/GlyphPageTreeNode.cpp:
12643
126442013-04-04  Anders Carlsson  <andersca@apple.com>
12645
12646        Another build fix.
12647
12648        * platform/graphics/FontCache.cpp:
12649        * platform/graphics/SimpleFontData.cpp:
12650
126512013-04-04  Anders Carlsson  <andersca@apple.com>
12652
12653        Fix build.
12654
12655        * WebCore.xcodeproj/project.pbxproj:
12656
126572013-04-04  Geoffrey Garen  <ggaren@apple.com>
12658
12659        Removed empty files from the build
12660        https://bugs.webkit.org/show_bug.cgi?id=113978
12661
12662        Reviewed by Anders Carlsson.
12663
12664        Anders made a list of all the empty files that are slowing down the Mac
12665        build, and I grepped them away.
12666
12667        * WebCore.xcodeproj/project.pbxproj:
12668
126692013-04-04  Anders Carlsson  <andersca@apple.com>
12670
12671        Prune unneeded header #includes
12672        https://bugs.webkit.org/show_bug.cgi?id=113973
12673
12674        Reviewed by Geoffrey Garen.
12675
12676        Reduce the amount of headers included by other headers by:
12677        - Moving implicit and explicit constructors and destructors into .cpp files so member variable constructors/destructors
12678          don't have to be declared.
12679        - Move CachedResourceClient subclasses out into separate headers so that their respective CachedResource subclasses don't
12680          have to be included by the classes that derive from those subclasses.
12681        - Remove headers that were never needed in the first place.
12682
12683        * Modules/webaudio/AudioContext.h:
12684        * WebCore.xcodeproj/project.pbxproj:
12685        * bindings/js/JSDOMWindowCustom.cpp:
12686        * css/CSSFontFaceSource.h:
12687        * html/canvas/CanvasPattern.cpp:
12688        (WebCore::CanvasPattern::create):
12689        (WebCore::CanvasPattern::CanvasPattern):
12690        (WebCore::CanvasPattern::~CanvasPattern):
12691        * html/canvas/CanvasPattern.h:
12692        (WebCore::CanvasPattern::pattern):
12693        (WebCore::CanvasPattern::originClean):
12694        * html/parser/HTMLScriptRunner.h:
12695        * loader/ImageLoader.h:
12696        * loader/LinkLoader.h:
12697        * loader/TextTrackLoader.h:
12698        * loader/cache/CachedFont.cpp:
12699        * loader/cache/CachedFont.h:
12700        * loader/cache/CachedFontClient.h: Added.
12701        (WebCore::CachedFontClient::~CachedFontClient):
12702        (WebCore::CachedFontClient::expectedType):
12703        (WebCore::CachedFontClient::resourceClientType):
12704        (WebCore::CachedFontClient::fontLoaded):
12705        * loader/cache/CachedResourceHandle.cpp:
12706        (WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
12707        (WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
12708        (WebCore::CachedResourceHandleBase::setResource):
12709        * loader/cache/CachedResourceHandle.h:
12710        (WebCore::CachedResourceHandleBase::get):
12711        (WebCore::CachedResourceHandleBase::operator!):
12712        (WebCore::CachedResourceHandleBase::operator UnspecifiedBoolType):
12713        (WebCore::CachedResourceHandleBase::operator=):
12714        (WebCore::CachedResourceHandle::CachedResourceHandle):
12715        (WebCore::CachedResourceHandle::get):
12716        (WebCore::CachedResourceHandle::operator->):
12717        (WebCore::CachedResourceHandle::operator=):
12718        (WebCore::CachedResourceHandle::operator==):
12719        (WebCore::CachedResourceHandle::operator!=):
12720        (WebCore::operator==):
12721        (WebCore::operator!=):
12722        * loader/cache/CachedSVGDocument.h:
12723        * loader/cache/CachedSVGDocumentReference.h:
12724        * loader/cache/CachedSVGDocumentClient.h: Added.
12725        (WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
12726        (WebCore::CachedSVGDocumentClient::expectedType):
12727        (WebCore::CachedSVGDocumentClient::resourceClientType):
12728        * loader/cache/CachedStyleSheetClient.h:
12729        * platform/PlatformScreen.h:
12730        * platform/audio/HRTFElevation.cpp:
12731        * platform/audio/HRTFKernel.cpp:
12732        (WebCore::HRTFKernel::fftSize):
12733        * platform/audio/HRTFKernel.h:
12734        * platform/audio/ReverbConvolverStage.cpp:
12735        (WebCore::ReverbConvolverStage::~ReverbConvolverStage):
12736        * platform/audio/ReverbConvolverStage.h:
12737        * platform/graphics/FontPlatformData.h:
12738        * platform/graphics/GraphicsContext3D.h:
12739        * platform/graphics/Path.cpp:
12740        * platform/graphics/Path.h:
12741        * platform/graphics/Pattern.cpp:
12742        * platform/graphics/Pattern.h:
12743        * platform/graphics/filters/FilterOperation.cpp:
12744        (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
12745        (WebCore::ReferenceFilterOperation::~ReferenceFilterOperation):
12746        (WebCore::ReferenceFilterOperation::setCachedSVGDocumentReference):
12747        * platform/graphics/filters/FilterOperation.h:
12748        * platform/graphics/transforms/AffineTransform.h:
12749        * plugins/DOMMimeType.h:
12750        * rendering/RenderLayerFilterInfo.h:
12751        * rendering/style/StyleCachedShader.h:
12752        * svg/SVGFEImageElement.h:
12753        * svg/SVGFontFaceUriElement.h:
12754        * svg/SVGUseElement.h:
12755        * xml/parser/XMLDocumentParser.h:
12756
127572013-04-04  Christophe Dumez  <ch.dumez@sisa.samsung.com>
12758
12759        [Cairo] Stop passing raw pointers to BitmapImage::create()
12760        https://bugs.webkit.org/show_bug.cgi?id=113945
12761
12762        Reviewed by Martin Robinson.
12763
12764        BitmapImage::create() was updated in r147643 to take a PassRefPtr<cairo_surface_t>
12765        in argument instead of a cairo_surface_t*. This patch updates several call sites
12766        so that they now pass in a smart pointer instead of a raw one to avoid silent
12767        converting from cairo_surface_t* to PassRefPtr<cairo_surface_t>.
12768
12769        No new tests, no behavior change.
12770
12771        * platform/graphics/cairo/ImageBufferCairo.cpp:
12772        (WebCore::ImageBufferData::ImageBufferData): Use RefPtr to m_surface to avoid manual
12773        memory handling.
12774        (WebCore::ImageBuffer::ImageBuffer):
12775        (WebCore::ImageBuffer::~ImageBuffer):
12776        (WebCore::ImageBuffer::copyImage):
12777        (WebCore::ImageBuffer::clip):
12778        (WebCore::ImageBuffer::platformTransformColorSpace):
12779        (WebCore::getImageData):
12780        (WebCore::ImageBuffer::putByteArray):
12781        * platform/graphics/cairo/ImageBufferDataCairo.h:
12782        (ImageBufferData):
12783        * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
12784        (ImageGStreamer::ImageGStreamer):
12785        * platform/graphics/gtk/ImageBufferGtk.cpp:
12786        (WebCore::ImageBuffer::toDataURL):
12787
127882013-04-04  Simon Fraser  <simon.fraser@apple.com>
12789
12790        Page content missing when flipping from an empty layer to a tiled layer
12791        https://bugs.webkit.org/show_bug.cgi?id=113977
12792        <rdar://problem/13444219>
12793
12794        Reviewed by Tim Horton.
12795        
12796        Some articles on USA Today were missing content on load, when a large GraphicsLayer
12797        which did not draw content needed to draw content (and become tiled in the process).
12798        
12799        The bug was an ordering dependency in GraphicsLayerCA::commitLayerChangesBeforeSublayers().
12800        swapFromOrToTiledLayer() sets some dirty flags, but for some properties which have
12801        already been committed in the current flush cycle.
12802        
12803        Fix by moving the swapFromOrToTiledLayer() to the top of the commit, which is
12804        safe since it only consults GraphicsLayer properties, not CALayer properties.
12805
12806        Test: compositing/tiling/empty-to-tiled.html
12807
12808        * platform/graphics/ca/GraphicsLayerCA.cpp:
12809        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
12810        (WebCore::GraphicsLayerCA::updateGeometry):
12811        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
12812        (WebCore::GraphicsLayerCA::updateContentsScale):
12813        * platform/graphics/ca/GraphicsLayerCA.h:
12814        (GraphicsLayerCA):
12815
128162013-04-04  Christophe Dumez  <ch.dumez@sisa.samsung.com>
12817
12818        Regression(r147639) Causes assertion hit in HashTable
12819        https://bugs.webkit.org/show_bug.cgi?id=113954
12820
12821        Reviewed by Benjamin Poulain.
12822
12823        Lookup the key in the hash table again after the recursive call to
12824        getCachedFontPlatformData() as it may have altered the hash map and
12825        invalidated the previous iterator we had.
12826
12827        No new tests, covered by existing tests.
12828
12829        * platform/graphics/FontCache.cpp:
12830        (WebCore::FontCache::getCachedFontPlatformData):
12831
128322013-04-04  Eric Carlson  <eric.carlson@apple.com>
12833
12834        [Mac] add "automatic" text track menu item
12835        https://bugs.webkit.org/show_bug.cgi?id=113822
12836
12837        Reviewed by Jer Noble.
12838
12839        No new tests, existing tests updated.
12840
12841        * English.lproj/Localizable.strings: Add new track menu item.
12842
12843        * html/HTMLMediaElement.cpp: 
12844        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_captionDisplayMode.
12845        (WebCore::HTMLMediaElement::finishParsingChildren): LoadTextTrackResource -> ConfigureTextTracks.
12846        (WebCore::HTMLMediaElement::scheduleDelayedAction): Ditto.
12847        (WebCore::HTMLMediaElement::loadTimerFired): Ditto.
12848        (WebCore::HTMLMediaElement::loadInternal): Ditto. Flag the caption menu as invalid so it will
12849            be rebuilt again.
12850        (WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): LoadTextTrackResource -> ConfigureTextTracks.
12851        (WebCore::HTMLMediaElement::didAddTrack): Ditto.
12852        (WebCore::HTMLMediaElement::configureTextTrackGroup): Deal with new track display modes.
12853        (WebCore::HTMLMediaElement::HTMLMediaElement::hasClosedCaptions): Minor cleanup.
12854        (WebCore::HTMLMediaElement::configureTextTrackGroup): Add some logging.
12855        (WebCore::HTMLMediaElement::configureTextTracks): Call updateActiveTextTrackCues so cue display
12856            is updated.
12857        (WebCore::HTMLMediaElement::captionPreferencesChanged): Deal with new track display modes.
12858        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Add some logging.
12859        * html/HTMLMediaElement.h: Ditto.
12860
12861        * html/shadow/MediaControlElementTypes.cpp: Remove trackIndexAttributeName and trackListIndexForElement.
12862        * html/shadow/MediaControlElementTypes.h: Ditto.
12863
12864        * html/shadow/MediaControlElements.cpp:
12865        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Don't use track index,
12866            everything we need is in the track<->element map now.
12867        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Ditto. Always rebuild the 
12868            track list because clear the map each time the menu goes away because it refs every track.
12869        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Don't set the track
12870            index attribute on the menu items, just use the map.
12871        * html/shadow/MediaControlElements.h:
12872
12873        * html/shadow/MediaControlsApple.cpp:
12874        (WebCore::MediaControlsApple::changedClosedCaptionsVisibility): resetTrackListMenu is gone.
12875        (WebCore::MediaControlsApple::reset): Ditto.
12876        (WebCore::MediaControlsApple::closedCaptionTracksChanged): Ditto.
12877
12878        * html/track/TextTrack.cpp:
12879        (WebCore::TextTrack::captionMenuOffItem): New, static TextTrack used for the menu "Off" item.
12880        (WebCore::TextTrack::captionMenuAutomaticItem): New, static TextTrack used for the menu "Automatic" item.
12881        * html/track/TextTrack.h:
12882
12883        * page/CaptionUserPreferences.cpp:
12884        (WebCore::CaptionUserPreferences::shouldShowCaptions): Removed, we use captionDisplayMode instead.
12885        (WebCore::CaptionUserPreferences::captionDisplayMode): New.
12886        (WebCore::CaptionUserPreferences::setCaptionDisplayMode): New.
12887        (WebCore::CaptionUserPreferences::setPreferredLanguage): Make the parameter a const reference.
12888        (WebCore::CaptionUserPreferences::textTrackSelectionScore): Return 0 if the user doesn't want
12889            captions or subtitles.
12890        (WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Take language as a parameter
12891            instead of assuming that it is always the entire language list.
12892        * page/CaptionUserPreferences.h:
12893
12894        * page/CaptionUserPreferencesMac.h:
12895        * page/CaptionUserPreferencesMac.mm:
12896        (WebCore::CaptionUserPreferencesMac::shouldShowCaptions): Removed, we use captionDisplayMode instead.
12897        (WebCore::CaptionUserPreferencesMac::captionDisplayMode): New.
12898        (WebCore::CaptionUserPreferencesMac::setCaptionDisplayMode): New.
12899        (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Make the parameter a const reference.
12900        (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Deal with "Automatic" mode.
12901            captions or subtitles.
12902        (WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Take language as a parameter
12903            instead of assuming that it is always the entire language list.
12904        (WebCore::CaptionUserPreferencesMac::sortedTrackListForMenu): Insert "Off" and "Automatic" items.
12905
12906        * platform/LocalizedStrings.cpp:
12907        (WebCore::textTrackAutomaticMenuItemText): New.
12908        * platform/LocalizedStrings.h:
12909
12910        * platform/graphics/MediaPlayer.cpp:
12911        (WebCore::MediaPlayer::languageOfPrimaryAudioTrack): New.
12912        * platform/graphics/MediaPlayer.h:
12913        * platform/graphics/MediaPlayerPrivate.h:
12914
12915        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
12916        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
12917        (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Return the language
12918            of the main audio track.
12919
129202013-04-04  Alexey Proskuryakov  <ap@apple.com>
12921
12922        REGRESSION (r146580): Assertion using SecurityOrigin::create, URL string is not valid
12923        https://bugs.webkit.org/show_bug.cgi?id=113961
12924
12925        Reviewed by Geoff Garen.
12926
12927        * page/SecurityOrigin.cpp:
12928        (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
12929        (WebCore::SecurityOrigin::create):
12930        Don't use ParsedURLString, because http://host:80/ is normalized to http://host/,
12931        so it's not a parsed URL string.
12932
129332013-04-04  Sheriff Bot  <webkit.review.bot@gmail.com>
12934
12935        Unreviewed, rolling out r147662.
12936        http://trac.webkit.org/changeset/147662
12937        https://bugs.webkit.org/show_bug.cgi?id=113955
12938
12939        The change r147662  breaks fast/regions/fixed-pos-elem-in-
12940        region.html (Requested by benjaminp on #webkit).
12941
12942        * rendering/RenderBlockLineLayout.cpp:
12943        (WebCore::inlineLogicalWidth):
12944
129452013-04-04  Tim Horton  <timothy_horton@apple.com>
12946
12947        REGRESSION (r147373): Auto-sizing doesn't always respect minimum width changes
12948        https://bugs.webkit.org/show_bug.cgi?id=113947
12949        <rdar://problem/13579024>
12950
12951        Reviewed by Anders Carlsson.
12952
12953        Reset the FrameView size to the minimum auto-sizing size
12954        before performing auto-sizing. We were already resetting the height,
12955        but not the width, instead using the FrameView's current width.
12956
12957        This means that changing the minimum width without also manually
12958        resizing the FrameView will never see the width change.
12959
12960        Auto-sizing tests are not working on Mac yet.
12961
12962        * page/FrameView.cpp:
12963        (WebCore::FrameView::autoSizeIfEnabled):
12964
129652013-04-04  Martin Robinson  <mrobinson@igalia.com>
12966
12967        [GTK] Remove the gyp build
12968        https://bugs.webkit.org/show_bug.cgi?id=113942
12969
12970        Reviewed by Gustavo Noronha Silva.
12971
12972        * WebCore.gyp/WebCoreGTK.gyp: Removed.
12973
129742013-04-04  Robert Hogan  <robert@webkit.org>
12975
12976        REGRESSION(r142152): Text wraps in menu
12977        https://bugs.webkit.org/show_bug.cgi?id=113706
12978
12979        Reviewed by David Hyatt.
12980
12981        * rendering/RenderBlockLineLayout.cpp:
12982        (WebCore::inlineLogicalWidth): Empty inline elements add their inline border/padding/margin to the width of the
12983        line when we iterate through them in nextLineBreak(), so no need to add them again here when climbing back up
12984        from their first child looking for border/padding/margin to add. (An empty inline element can have floating children.)
12985
129862013-04-04  Ryosuke Niwa  <rniwa@webkit.org>
12987
12988        Changing typing style with font size delta overrides the previous font size delta
12989        https://bugs.webkit.org/show_bug.cgi?id=113923
12990
12991        Reviewed by Andreas Kling.
12992
12993        The bug was caused by a new font size delta value overriding the old one as
12994        opposed to being added to the old value. Fixed that in overrideWithStyle.
12995
12996        Also made overrideWithStyle share code with mergeStyle since there is already
12997        code to merge text-decorations there.
12998
12999        Unfortunately, adding a test for this fix proved to be hard because we don't
13000        expose any API to directly set typing style.
13001
13002        * editing/EditingStyle.cpp:
13003        (WebCore::EditingStyle::overrideWithStyle): Use mergeStyle.
13004        (WebCore::EditingStyle::mergeStyle): Add font size deltas as opposed to simply
13005        using the new value.
13006
130072013-04-04  Chris Fleizach  <cfleizach@apple.com>
13008
13009        AX:File upload button has wrong label
13010        https://bugs.webkit.org/show_bug.cgi?id=113924
13011
13012        Reviewed by David Kilzer.
13013
13014        Allow the label and value to be returned for file upload controls on iOS.
13015        Due to the different AX APIs, we can expose a bit more information on iOS.
13016
13017        Test: platform/iphone-simulator/accessibility/file-upload-button.html
13018
13019        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
13020        (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
13021        (-[WebAccessibilityObjectWrapper fileUploadButtonReturnsValueInTitle]):
13022        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
13023        (-[WebAccessibilityObjectWrapperBase fileUploadButtonReturnsValueInTitle]):
13024        (-[WebAccessibilityObjectWrapperBase accessibilityTitle]):
13025
130262013-04-03  Dean Jackson  <dino@apple.com>
13027
13028        Expose settings to disable plugin snapshotting autostart and primary detection
13029        https://bugs.webkit.org/show_bug.cgi?id=113918
13030
13031        Reviewed by Tim Horton.
13032
13033        Three new settings:
13034        - snapshotAllPlugIns: Do not apply any heuristics - immediately snapshot a plugin.
13035        - primaryPlugInSnapshotDetectionEnabled: Toggle snapshotting the "main" plugin in the page.
13036        - autostartOriginPlugInSnapshottingEnabled: Toggle snapshotting based on URL origins.
13037
13038        * html/HTMLPlugInImageElement.cpp:
13039        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Don't tell the host that we've started
13040            if the autostartOriginPlugInSnapshottingEnabled is false.
13041        (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Don't restart a primary
13042            plugin if primaryPlugInSnapshotDetectionEnabled is false.
13043        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Snapshot immediately if
13044            snapshotAllPlugIns is true. Also, don't test for autostart if
13045            autostartOriginPlugInSnapshottingEnabled is false.
13046        * page/Settings.in: Three new settings values.
13047
130482013-04-04  Carlos Garcia Campos  <cgarcia@igalia.com>
13049
13050        [BlackBerry] Remove skia code from PluginViewBlackBerry
13051        https://bugs.webkit.org/show_bug.cgi?id=113936
13052
13053        Reviewed by Rob Buis.
13054
13055        Skia is not used anymore by the BlackBerry port.
13056
13057        * plugins/blackberry/PluginViewBlackBerry.cpp:
13058        (WebCore::PluginView::paint):
13059
130602013-04-04  Emil A Eklund  <eae@chromium.org>
13061
13062        Change RenderFrameSet::computeEdgeInfo to use m-rows/m_cols directly
13063        https://bugs.webkit.org/show_bug.cgi?id=113825
13064
13065        Reviewed by Eric Seidel.
13066
13067        Tests: fast/frames/invalid-frameset-compute-edge.html
13068
13069        * rendering/RenderFrameSet.cpp:
13070        (WebCore::RenderFrameSet::computeEdgeInfo):
13071
130722013-04-04  ChangSeok Oh  <changseok.oh@collabora.com>
13073
13074        [GTK][AC] Invalid clear ClutterContent of ClutterActor
13075        https://bugs.webkit.org/show_bug.cgi?id=113758
13076
13077        Reviewed by Gustavo Noronha Silva.
13078
13079        Using clutter_actor_set_content(actor, 0) is better to clear ClutterContent of ClutterActor.
13080        Actually the ClutterContent referece is cleared in the API if we set 0.
13081
13082        No new tests since no functionality changed.
13083
13084        * platform/graphics/clutter/GraphicsLayerActor.cpp:
13085        (graphicsLayerActorUpdateTexture):
13086
130872013-04-04  Christophe Dumez  <ch.dumez@sisa.samsung.com>
13088
13089        [Cairo] Fix canvas drawing of SVG-based patterns and remove NativeImageCairo
13090        https://bugs.webkit.org/show_bug.cgi?id=113929
13091
13092        Reviewed by Martin Robinson.
13093
13094        Make (Pass)NativeImagePtr typedefs to (Pass)RefPtr<cairo_surface_t> instead
13095        of NativeImageCairo*. Now that we switch to using smart pointers,
13096        NativeImageCairo is removed as it made no sense to make it ref counted when
13097        it merely held a single ref counted member.
13098
13099        Now that Cairo is using smart pointers for (Pass)NativeImagePtr, this patch
13100        also enables the implementation of SVGImage::nativeImageForCurrentFrame()
13101        for USE(CAIRO) as well. This effectively fixes canvas drawing of SVG-based
13102        patterns for Cairo-based ports.
13103
13104        No new tests, covered by svg/canvas/canvas-pattern-svg.html.
13105
13106        * GNUmakefile.list.am: Remove NativeImageCairo.* for GTK.
13107
13108        * PlatformEfl.cmake: Remove NativeImageCairo.* for EFL.
13109
13110        * WebCore.vcproj/WebCore.vcproj:
13111        * WebCore.vcxproj/WebCore.vcxproj:
13112        * WebCore.vcxproj/WebCore.vcxproj.filters:
13113        Remove NativeImageCairo.* for Win.
13114
13115        * platform/graphics/BitmapImage.cpp:
13116        (WebCore::FrameData::reportMemoryUsage):
13117        Update MemoryClassInfo::addRawBuffer() call now that m_frame is a RefPtr
13118        for USE(CAIRO).
13119
13120        * platform/graphics/BitmapImage.h:
13121        (BitmapImage):
13122        Remove factory method taking a cairo_surface_t* in argument. This is useless
13123        now that PassNativeImagePtr is a typedef to PassRefPtr<cairo_surface_t> and
13124        there is already a factory method taking a PassNativeImagePtr in argument.
13125
13126        * platform/graphics/NativeImagePtr.h:
13127        (WebCore):
13128        Make PassNativeImagePtr a typedef to PassRefPtr<cairo_surface_t> and
13129        NativeImagePtr a typedef to RefPtr<cairo_surface_t>, instead of
13130        NativeImageCairo*. Moving to smart pointers is needed to enable implementation
13131        of SVGImage::nativeImageForCurrentFrame() for Cairo.
13132
13133        * platform/graphics/cairo/BitmapImageCairo.cpp:
13134        (WebCore::BitmapImage::BitmapImage):
13135        (WebCore::BitmapImage::draw):
13136        (WebCore::BitmapImage::checkForSolidColor):
13137        (WebCore::FrameData::clear):
13138        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
13139        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
13140        * platform/graphics/cairo/ImageCairo.cpp:
13141        (WebCore::Image::drawPattern):
13142        Update Cairo graphics code to reflect the (Pass)NativeImagePtr type changes.
13143
13144        * platform/graphics/cairo/NativeImageCairo.cpp: Removed.
13145        * platform/graphics/cairo/NativeImageCairo.h: Removed.
13146
13147        * platform/graphics/cairo/PatternCairo.cpp:
13148        (WebCore::Pattern::createPlatformPattern):
13149        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
13150        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
13151        * platform/graphics/efl/ImageEfl.cpp:
13152        (WebCore::BitmapImage::getEvasObject):
13153        * platform/graphics/gtk/ImageGtk.cpp:
13154        (WebCore::BitmapImage::getGdkPixbuf):
13155        * platform/graphics/texmap/TextureMapperGL.cpp:
13156        (WebCore::BitmapTextureGL::updateContents):
13157        * platform/graphics/win/ImageCairoWin.cpp:
13158        (WebCore::BitmapImage::create):
13159        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
13160        * platform/gtk/DragImageGtk.cpp:
13161        (WebCore::createDragImageFromImage):
13162        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
13163        (WebCore::ImageFrame::asNewNativeImage):
13164        * platform/win/DragImageCairoWin.cpp:
13165        (WebCore::createDragImageFromImage):
13166        Update code to reflect the (Pass)NativeImagePtr type changes.
13167
13168        * svg/graphics/SVGImage.cpp:
13169        (WebCore):
13170        * svg/graphics/SVGImage.h:
13171        Enable SVGImage::nativeImageForCurrentFrame() for USE(CAIRO).
13172
131732013-04-04  Ed Bartosh  <bartosh@gmail.com>
13174
13175        [EFL] --minimal build fails with 'error: unused variable'
13176        https://bugs.webkit.org/show_bug.cgi?id=113903
13177
13178        Reviewed by Gustavo Noronha Silva.
13179
13180        Moved variable definition under #if where it's used
13181        * platform/network/soup/ResourceHandleSoup.cpp:
13182        (WebCore::restartedCallback):
13183
131842013-04-04  Andreas Kling  <akling@apple.com>
13185
13186        Global FontPlatformData cache should use OwnPtr.
13187        <http://webkit.org/b/111939>
13188
13189        Reviewed by Anders Carlsson.
13190
13191        Let the global FontPlatformData use OwnPtr instead of raw pointers + deleteAllValues().
13192
13193        * platform/graphics/FontCache.cpp:
13194        (WebCore::FontCache::getCachedFontPlatformData):
13195        (WebCore::FontCache::purgeInactiveFontData):
13196        (WebCore::FontCache::invalidate):
13197
13198            Tweaked code for OwnPtr. Also made getCachedFontPlatformData() do one hash lookup
13199            instead of two.
13200
13201        * platform/graphics/FontCache.h:
13202        * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
13203        (WebCore::FontCache::createFontPlatformData):
13204        * platform/graphics/chromium/FontCacheAndroid.cpp:
13205        (WebCore::FontCache::createFontPlatformData):
13206        * platform/graphics/freetype/FontCacheFreeType.cpp:
13207        (WebCore::FontCache::createFontPlatformData):
13208        * platform/graphics/mac/FontCacheMac.mm:
13209        (WebCore::FontCache::createFontPlatformData):
13210        * platform/graphics/qt/FontCacheQt.cpp:
13211        (WebCore::FontCache::createFontPlatformData):
13212        * platform/graphics/skia/FontCacheSkia.cpp:
13213        (WebCore::FontCache::createFontPlatformData):
13214        * platform/graphics/win/FontCacheWin.cpp:
13215        (WebCore::FontCache::createFontPlatformData):
13216        * platform/graphics/wince/FontCacheWinCE.cpp:
13217        (WebCore::FontCache::createFontPlatformData):
13218        * platform/graphics/wx/FontCacheWx.cpp:
13219        (WebCore::FontCache::createFontPlatformData):
13220
13221            FontCache::createFontPlatformData() now returns a PassOwnPtr.
13222
132232013-04-04  Andreas Kling  <akling@apple.com>
13224
13225        Render images with low-quality scaling while FrameView is being resized.
13226        <http://webkit.org/b/113764>
13227        <rdar://problem/13555154>
13228
13229        Reviewed by Antti Koivisto.
13230
13231        Have ImageQualityController ask the renderer's containing FrameView if it's currently in live
13232        resize, and if so, paint all images with low-quality scaling. A high-quality repaint will happen
13233        ~0.5 sec after live resizing ends, piggybacking on the same mechanism we use to do JS-animated
13234        resizing with low-quality scaling.
13235
13236        This reduces CPU time spent generating new tiles during live window resize, especially on Retina
13237        systems where a lot of upscaling happens on legacy web content.
13238
13239        * rendering/RenderBoxModelObject.cpp:
13240        (ImageQualityController):
13241
13242            Added an m_liveResizeOptimizationIsActive flag that tracks whether the ImageQualityController
13243            is painting everything in low quality due to live window resize. It gets unset when the HQ
13244            repaint timer fires and everything has been repainted properly.
13245
13246        (WebCore::ImageQualityController::highQualityRepaintTimerFired):
13247
13248            When the HQ repaint timer fires, check if the renderer's containing FrameView is still in
13249            live resize, and if so, abort HQ repaint for now and reschedule the timer.
13250
13251        (WebCore::ImageQualityController::ImageQualityController):
13252        (WebCore::ImageQualityController::objectDestroyed):
13253        (WebCore::ImageQualityController::shouldPaintAtLowQuality):
13254
132552013-04-04  Seokju Kwon  <seokju.kwon@gmail.com>
13256
13257        Web Inspector: fix closure compiler warnings in IndexedDBModel.js
13258        https://bugs.webkit.org/show_bug.cgi?id=113926
13259
13260        Reviewed by Alexander Pavlov.
13261
13262        No new tests: no change in behaviour.
13263
13264        * inspector/front-end/IndexedDBModel.js:
13265
132662013-04-04  Xidorn Quan  <quanxunzhen@gmail.com>
13267
13268        REGRESSION (r145870): Can't get insertion point to appear in some input and textareas on wordpress
13269        https://bugs.webkit.org/show_bug.cgi?id=113591
13270
13271        Reviewed by Simon Fraser.
13272
13273        Since a child node could overflow its ancestor, it is not wise to check
13274        one's radii boundary before checking whether the given point intersects
13275        its children. This patch moves the related code down to fix the bug.
13276
13277        Test: fast/borders/border-radius-child.html
13278
13279        * rendering/RenderBlock.cpp:
13280        (WebCore::RenderBlock::nodeAtPoint):
13281
132822013-04-04  Xabier Rodriguez Calvar  <calvaris@igalia.com>
13283
13284        [GStreamer] Virtual modifier for MediaPlayer::simulateAudioInterruption must go
13285        https://bugs.webkit.org/show_bug.cgi?id=113851
13286
13287        Reviewed by Eric Carlson.
13288
13289        * platform/graphics/MediaPlayer.h:
13290        (MediaPlayer): Removed virtual modifier to
13291        simulateAudioInterruption.
13292
132932013-04-04  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13294
13295        [Qt] Support -webkit-font-smoothing
13296        https://bugs.webkit.org/show_bug.cgi?id=106009
13297
13298        Reviewed by Jocelyn Turcotte.
13299
13300        Remove false dependency on Qt 5.1 for the -webkit-font-smoothing property.
13301        For now we are still keeping the dependency on Font::shouldUseSmoothing().
13302
13303        * platform/graphics/qt/FontPlatformDataQt.cpp:
13304        (WebCore::FontPlatformData::FontPlatformData):
13305
133062013-04-04  Christophe Dumez  <ch.dumez@sisa.samsung.com>
13307
13308        Regression(r142765) Broke Custom SVG cursors and SVG canvas drawing for Chromium
13309        https://bugs.webkit.org/show_bug.cgi?id=113420
13310
13311        Reviewed by Stephen White.
13312
13313        Introduce a PassNativeImagePtr typedef that is used in place of NativeImagePtr
13314        for method arguments and return values. This is needed as Skia now maps
13315        NativeImagePtr to RefPtr<NativeImageSkia> and PassNativeImagePtr to
13316        PassRefPtr<NativeImageSkia>. We move towards ref counted smart pointers so that
13317        SVGImage::nativeImageForCurrentFrame() can transfer ownership of the native
13318        image to the caller if needed (e.g. for SVGImage).
13319
13320        Provide nativeImageForCurrentFrame() implementation for SVGImage. SVGImage no
13321        longer holds the native image internally, to save memory. It is therefore created
13322        when nativeImageForCurrentFrame() is called and ownership is passed to the
13323        caller. For now, this implementation is only enabled for Skia as others are using
13324        raw pointers for PassNativeImagePtr.
13325
13326        Test: svg/canvas/canvas-pattern-svg.html
13327
13328        * loader/icon/IconDatabase.cpp:
13329        (WebCore::IconDatabase::synchronousNativeIconForPageURL):
13330        Return a PassNativeImagePtr instead of NativeImagePtr.
13331
13332        * loader/icon/IconDatabase.h:
13333        (IconDatabase):
13334        * loader/icon/IconDatabaseBase.h:
13335        (WebCore::IconDatabaseBase::synchronousNativeIconForPageURL):
13336        Return a PassNativeImagePtr instead of NativeImagePtr.
13337
13338        * platform/chromium/DragImageChromiumSkia.cpp:
13339        (WebCore::createDragImageFromImage):
13340        Store return value of nativeImageForCurrentFrame() in a RefPtr instead of a raw
13341        one.
13342
13343        * platform/chromium/PasteboardChromium.cpp:
13344        (WebCore::Pasteboard::writeImage):
13345        Store return value of nativeImageForCurrentFrame() in a RefPtr<NativeImageSkia>
13346        instead of a NativeImagePtr. While these are equivalent, the former is more
13347        readable in Skia-specific code.
13348
13349        * platform/graphics/BitmapImage.cpp:
13350        (WebCore::BitmapImage::frameAtIndex):
13351        Return a PassNativeImagePtr instead of a NativeImagePtr.
13352
13353        (WebCore::BitmapImage::nativeImageForCurrentFrame):
13354        Return a PassNativeImagePtr instead of a NativeImagePtr.
13355
13356        * platform/graphics/BitmapImage.h:
13357        (WebCore::BitmapImage::create):
13358        Take a PassNativeImagePtr in argument instead of a NativeImagePtr.
13359
13360        (BitmapImage): Ditto.
13361
13362        * platform/graphics/GraphicsContext.h:
13363        (GraphicsContext): Ditto.
13364
13365        * platform/graphics/GraphicsContext3D.h:
13366        (ImageExtractor):
13367        Keep NativeImageSkia in a RefPtr instead of OwnPtr, now that it is refcounted.
13368
13369        * platform/graphics/Image.h:
13370        (WebCore::Image::nativeImageForCurrentFrame):
13371        Return a PassNativeImagePtr instead of a NativeImagePtr.
13372
13373        * platform/graphics/ImageBuffer.h:
13374        (ImageBuffer):
13375        Have copyNativeImage() return a PassNativeImagePtr instead of a NativeImagePtr.
13376
13377        * platform/graphics/ImageSource.cpp:
13378        (WebCore::ImageSource::createFrameAtIndex):
13379        Return a PassNativeImagePtr instead of a NativeImagePtr.
13380
13381        * platform/graphics/ImageSource.h:
13382        Have createFrameAtIndex() return a PassNativeImagePtr instead of a NativeImagePtr.
13383
13384        * platform/graphics/NativeImagePtr.h:
13385        Map NativeImagePtr to a RefPtr<NativeImageSkia> instead of NativeImageSkia* for Skia.
13386        Introduce new PassNativeImagePtr that maps to PassRefPtr<NativeImageSkia> for Skia
13387        and is equivalent to NativeImagePtr for other ports. We now use smart pointers for
13388        the native image so that SVGImage::nativeImageForCurrentFrame() can pass ownership
13389        of the native image to the caller, unlike BitmapImage::nativeImageForCurrentFrame().
13390
13391        * platform/graphics/blackberry/ImageBlackBerry.cpp:
13392        (WebCore::ImageFrame::asNewNativeImage):
13393        Return a PassNativeImagePtr instead of a NativeImagePtr.
13394
13395        (WebCore::BitmapImage::BitmapImage):
13396        Take a PassNativeImagePtr instead of a NativeImagePtr in argument.
13397
13398        * platform/graphics/cg/GraphicsContextCG.cpp:
13399        (WebCore::GraphicsContext::drawNativeImage): Ditto.
13400
13401        * platform/graphics/cg/ImageBufferCG.cpp:
13402        (WebCore::ImageBuffer::copyNativeImage):
13403        Take a PassNativeImagePtr instead of a NativeImagePtr in argument.
13404
13405        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
13406        (WebCore::GraphicsLayerChromium::setContentsToImage):
13407        Store return value of nativeImageForCurrentFrame() in a RefPtr instead of a raw one.
13408
13409        * platform/graphics/filters/skia/FEBlendSkia.cpp:
13410        (WebCore::FEBlend::platformApplySkia): Ditto.
13411
13412        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
13413        (WebCore::FEColorMatrix::platformApplySkia): Ditto.
13414
13415        * platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
13416        (WebCore::FEComponentTransfer::platformApplySkia): Ditto.
13417
13418        * platform/graphics/filters/skia/FEDisplacementMapSkia.cpp:
13419        (WebCore::FEDisplacementMap::platformApplySkia): Ditto.
13420
13421        * platform/graphics/filters/skia/FELightingSkia.cpp:
13422        (WebCore::FELighting::platformApplySkia): Ditto.
13423
13424        * platform/graphics/qt/ImageDecoderQt.cpp:
13425        (WebCore::ImageFrame::asNewNativeImage):
13426        Return a PassNativeImagePtr instead of a NativeImagePtr.
13427
13428        * platform/graphics/qt/StillImageQt.cpp:
13429        (WebCore::StillImage::nativeImageForCurrentFrame):
13430        Return a PassNativeImagePtr instead of a NativeImagePtr.
13431
13432        * platform/graphics/qt/StillImageQt.h:
13433        (StillImage): Ditto.
13434
13435        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
13436        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
13437        No longer need to adopt the return value of asNewNativeImage() now
13438        that it returns a PassRefPtr instead of a raw one.
13439
13440        * platform/graphics/skia/ImageBufferSkia.cpp:
13441        (WebCore::ImageBuffer::copyImage):
13442        (WebCore::ImageBuffer::draw):
13443        (WebCore::ImageBuffer::drawPattern):
13444        Call NativeImageSkia::create() factory method now that the constructor
13445        is private.
13446
13447        * platform/graphics/skia/ImageSkia.cpp:
13448        (WebCore::FrameData::clear):
13449        Just call clear() on m_frame instead of explicitely deleting it now
13450        that it is a RefPtr.
13451
13452        (WebCore::Image::drawPattern):
13453        Store return value of nativeImageForCurrentFrame() in a RefPtr instead
13454        of a raw one.
13455
13456        (WebCore::BitmapImage::BitmapImage):
13457        (WebCore::BitmapImage::checkForSolidColor):
13458        Store return value of frameAtIndex() in a RefPtr instead of a raw one.
13459
13460        (WebCore::BitmapImage::draw):
13461        Store return value of nativeImageForCurrentFrame() in a RefPtr instead
13462        of a raw one.
13463
13464        * platform/graphics/skia/NativeImageSkia.cpp:
13465        Add new constructor taking all members in argument. This is used for
13466        cloning a NativeImageSkia object.
13467
13468        (WebCore::NativeImageSkia::NativeImageSkia):
13469        (WebCore::NativeImageSkia::deepSkBitmapCopy):
13470        Add convenience function to make a deep copy of a SkBitmap.
13471
13472        * platform/graphics/skia/NativeImageSkia.h:
13473        (WebCore):
13474        (WebCore::NativeImageSkia::create):
13475        (NativeImageSkia):
13476        Make NativeImageSkia subclass RefCounted. Make the constructor private
13477        and add a factory method instead that returns a PassRefPtr.
13478
13479        (WebCore::NativeImageSkia::clone):
13480        Add a clone() method now that NativeImageSkia is refcounted and is no
13481        longer copyable.
13482
13483        * platform/graphics/skia/PatternSkia.cpp:
13484        (WebCore::Pattern::platformPattern):
13485        Store return value of nativeImageForCurrentFrame() in a RefPtr instead
13486        of a raw one.
13487
13488        * platform/graphics/wince/ImageWinCE.cpp:
13489        (WebCore::ImageFrame::asNewNativeImage):
13490        Return a PassNativeImagePtr instead of a NativeImagePtr.
13491
13492        * platform/image-decoders/ImageDecoder.h:
13493        (ImageFrame):
13494        Have asNewNativeImage() return a PassNativeImagePtr instead of a
13495        NativeImagePtr.
13496
13497        (WebCore::ImageFrame::getAddr):
13498        (WebCore::ImageFrame::setSkBitmap):
13499        (WebCore::ImageFrame::getSkBitmap):
13500        (WebCore::ImageFrame::width):
13501        (WebCore::ImageFrame::height):
13502        Update use of m_bitmap now that it is a pointer type and call
13503        NativeImageSkia::create() to construct a NativeImageSkia object now
13504        that the constructor is private.
13505
13506        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
13507        (WebCore::ImageFrame::asNewNativeImage):
13508        Return a PassNativeImagePtr instead of a NativeImagePtr.
13509
13510        * platform/image-decoders/openvg/ImageDecoderOpenVG.cpp:
13511        (WebCore::ImageFrame::asNewNativeImage): Ditto.
13512
13513        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
13514        (WebCore::ImageFrame::ImageFrame):
13515        Initialize m_bitmap in the constructor now that it is a pointer
13516        type and we need NativeImageSkia's default constructor to be
13517        called.
13518
13519        (WebCore::ImageFrame::operator=):
13520        Call NativeImageSkia's new clone() method to copy m_bitmap as
13521        NativeImageSkia is now RefCounted and no longer copyable.
13522
13523        (WebCore::ImageFrame::clearPixelData):
13524        (WebCore::ImageFrame::zeroFillPixelData):
13525        (WebCore::ImageFrame::copyBitmapData):
13526        (WebCore::ImageFrame::setSize):
13527        Update use of m_bitmap now that it is a pointer type.
13528
13529        (WebCore::ImageFrame::asNewNativeImage):
13530        Return a PassNativeImagePtr instead of a NativeImagePtr.
13531        Call NativeImageSkia's clone method now that it is no longer
13532        copyable.
13533
13534        (WebCore::ImageFrame::setHasAlpha):
13535        (WebCore::ImageFrame::setStatus):
13536        Update use of m_bitmap now that it is a pointer type.
13537
13538        * platform/image-decoders/wx/ImageDecoderWx.cpp:
13539        (WebCore::ImageFrame::asNewNativeImage):
13540        Return a PassNativeImagePtr instead of a NativeImagePtr.
13541
13542        * svg/graphics/SVGImage.cpp:
13543        (WebCore):
13544        (WebCore::SVGImage::nativeImageForCurrentFrame):
13545        Add implementation of nativeImageForCurrentFrame() for SVGImage as
13546        it is needed for SVG custom cursor support and Canvas drawing of
13547        patterns containing SVG images. As SVGImage no longer keep the
13548        native image internally to save memory, the implementation creates
13549        the native image when nativeImageForCurrentFrame() and passes
13550        its ownership to the caller.
13551
13552        * svg/graphics/SVGImage.h:
13553        Override Image::nativeImageForCurrentFrame() and remove dummy
13554        implementation of frameAtIndex() as it is not needed / used.
13555
13556        * svg/graphics/SVGImageForContainer.cpp:
13557        (WebCore::SVGImageForContainer::nativeImageForCurrentFrame):
13558        Add implementation of nativeImageForCurrentFrame() which merely
13559        forwards the call to the Image being contained.
13560
13561        * svg/graphics/SVGImageForContainer.h:
13562        Override Image::nativeImageForCurrentFrame().
13563
135642013-04-04  Andrei Bucur  <abucur@adobe.com>
13565
13566        [CSSRegions] RenderFlowThread::renderRegionForLine should use a faster search method
13567        https://bugs.webkit.org/show_bug.cgi?id=66921
13568
13569        Reviewed by David Hyatt.
13570
13571        The RenderFlowThread::regionAtBlockOffset() function is a hot path for the code using
13572        flow threads because it translates from block coordinates to regions.
13573        Currently the method is O(n), using a linear search through the regions chain to find the
13574        region where a block offset lands.
13575        The patch improves this search by using an interval tree (PODIntervalTree). Before a flow
13576        thread is laid out, each region is updated to hold the size of the portion of the flow it
13577        will receive. This information is gathered inside the interval tree and used to speedup the
13578        search in RenderFlowThread::regionAtBlockOffset(). The algorithm uses a custom adapter
13579        simplified for looking up offsets inside the interval tree.
13580        For now, the interval tree is cleared every time the flow thread portions list is updated.
13581        The implementation can be improved but induces some cmplexity as we'd have to manually manage
13582        the life cycle of the tree's nodes. The performance gains are good enough as is to make this
13583        only optional.
13584        Another important change is now the flow thread portion rectangles will not overflow when
13585        using auto-height regions (or very large regions). The maximum size of the flow is set to
13586        LayoutUnit::max()/2. Any region forcing a greater size will be capped so the thread
13587        won't overflow.
13588
13589        Performance test results:
13590        /Layout/RegionsAuto:Time            ms 699.95   181.20  74.11% Better
13591        /Layout/RegionsAutoMaxHeight:Time   ms 2083.00  308.55  85.19% Better
13592        /Layout/RegionsFixed:Time           ms 726.10   223.65  69.20% Better
13593        /Layout/RegionsFixedShort:Time      ms 869.60   288.25  66.85% Better
13594
13595        Tests: See PerformanceTests/Layout/Regions*
13596
13597        * rendering/RenderFlowThread.cpp:
13598        (WebCore::RenderFlowThread::regionAtBlockOffset):
13599        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
13600        (WebCore::RenderFlowThread::RegionSearchAdapter::collectIfNeeded):
13601        (WebCore):
13602        * rendering/RenderFlowThread.h:
13603        (WebCore):
13604
136052013-04-04  Seokju Kwon  <seokju.kwon@gmail.com>
13606
13607        [Qt] WebSocket errors should be logged to console
13608        https://bugs.webkit.org/show_bug.cgi?id=113842
13609
13610        Reviewed by Jocelyn Turcotte.
13611
13612        Pass the reason of a failure to SocketStreamError instance
13613        and notify it via SocketStreamHandleClient::didFailSocketStream().
13614
13615        Test : http/tests/inspector/console-websocket-error.html
13616
13617        * platform/network/qt/SocketStreamError.h:
13618        (WebCore::SocketStreamError::SocketStreamError):
13619        * platform/network/qt/SocketStreamHandleQt.cpp:
13620        (WebCore::SocketStreamHandlePrivate::SocketStreamHandlePrivate):
13621        (WebCore::SocketStreamHandlePrivate::socketErrorCallback):
13622
136232013-04-04  Ed Bartosh  <bartosh@gmail.com>
13624
13625        [ATK] build fails when accessibility is turned off
13626        https://bugs.webkit.org/show_bug.cgi?id=113699
13627
13628        Reviewed by Gyuyoung Kim.
13629
13630        * editing/atk/FrameSelectionAtk.cpp: Wrapped accessibility code in #if HAVE(ACCESSIBILITY)
13631
136322013-04-04  Seokju Kwon  <seokju.kwon@gmail.com>
13633
13634        Web Inspector: fix closure compiler warnings in the profiler code HeapSnapshotDataGrids.js
13635        https://bugs.webkit.org/show_bug.cgi?id=113922
13636
13637        Reviewed by Yury Semikhatsky.
13638
13639        No new tests: no change in behaviour.
13640
13641        * inspector/front-end/HeapSnapshotDataGrids.js:
13642
136432013-04-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
13644
13645        [EFL] Add a decoration image to search input field
13646        https://bugs.webkit.org/show_bug.cgi?id=113552
13647
13648        Reviewed by Laszlo Gombos.
13649
13650        Though EFL port has a decoration image for search input field, we didn't use it.
13651        Start to show it.
13652
13653        Tests: fast/forms/search-cancel-button-style-sharing.html
13654               fast/forms/search-rtl.html
13655               fast/css/input-search-padding.html
13656               fast/css/text-input-with-webkit-border-radius.html
13657               fast/css/text-overflow-input.html
13658               fast/forms/box-shadow-override.html
13659               fast/forms/control-restrict-line-height.html
13660               fast/forms/input-appearance-height.html
13661               fast/forms/placeholder-position.html
13662               fast/forms/placeholder-pseudo-style.html
13663               fast/forms/search-styled.html
13664               fast/forms/search-vertical-alignment.html
13665               fast/forms/searchfield-heights.html
13666               fast/repaint/search-field-cancel.html 
13667               fast/replaced/width100percent-searchfield.html
13668
13669        * platform/efl/RenderThemeEfl.cpp:
13670        (WebCore):
13671        (WebCore::RenderThemeEfl::supportsDataListUI):
13672        (WebCore::RenderThemeEfl::adjustSearchFieldDecorationStyle):
13673
136742013-04-03  Kent Tamura  <tkent@chromium.org>
13675
13676        Input value/placeholder is not redrawn when the input height grows
13677        https://bugs.webkit.org/show_bug.cgi?id=113845
13678
13679        Reviewed by Ojan Vafai.
13680
13681        Test: fast/forms/text/text-height-grow.html
13682
13683        * rendering/RenderTextControlSingleLine.cpp:
13684        (WebCore::RenderTextControlSingleLine::styleDidChange):
13685        We need relayout of the inner text element.
13686
136872013-04-03  Shawn Singh  <shawnsingh@chromium.org>
13688
13689        Add comment to clarify isStackingContext() in RenderLayer.h
13690        https://bugs.webkit.org/show_bug.cgi?id=113909
13691
13692        Reviewed by Simon Fraser.
13693
13694        It was not obvious how the implementation of isStackingContext()
13695        was correct, a comment is appropriate here for anyone who reads
13696        this code in the future.
13697
13698        Just a change in comment, no test needed.
13699
13700        * rendering/RenderLayer.h:
13701
137022013-04-03  Hans Muller  <hmuller@adobe.com>
13703
13704        [CSS Exclusions] Removed ExclusionShape dead code
13705        https://bugs.webkit.org/show_bug.cgi?id=113904
13706
13707        Reviewed by Dirk Schulze.
13708
13709        No new tests, just removing dead code.
13710
13711        * rendering/ExclusionShape.cpp:
13712        (WebCore::ExclusionShape::createExclusionShape):
13713        * rendering/ExclusionShape.h:
13714        (ExclusionShape):
13715
137162013-04-03  Otto Derek Cheung  <otcheung@rim.com>
13717
13718        [BlackBerry] Switch MediaPlayerPrivateBlackBerry.cpp's timer to use CLOCK_MONOTONIC
13719        https://bugs.webkit.org/show_bug.cgi?id=113900
13720
13721        Reviewed by Rob Buis.
13722        Internally Reviewed by Jeff Rogers.
13723
13724        Timers should use CLOCK_MONOTONIC to avoid undesirable effects when
13725        the user switches the system time.
13726
13727        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
13728        (WebCore::MediaPlayerPrivate::drawBufferingAnimation):
13729
137302013-04-03  Dave Michael  <dmichael@chromium.org>
13731
13732        Unable to focus on embedded plugins such as Flash via javascript focus()
13733        https://bugs.webkit.org/show_bug.cgi?id=32292
13734
13735        Reviewed by Ryosuke Niwa.
13736
13737        Make embed, object, and applet elements support focus() when
13738        appropriate. Prior to this patch, javascript focus() had no effect on
13739        embed, object, or applet elements unless tabindex or contenteditable is
13740        set. With this patch, focus() will focus the element unless the plugin
13741        content has failed to load (i.e., we are showing either fallback content
13742        or an unavailable plugin indicator).
13743
13744        Test: plugins/focus.html
13745              java/focus.html
13746
13747        * html/HTMLPlugInElement.cpp:
13748        (WebCore::HTMLPlugInElement::supportsFocus):
13749        Overridden to return true except when the plugin content has failed to load.
13750        * html/HTMLPlugInElement.h:
13751        (WebCore::HTMLPlugInElement::useFallbackContent):
13752        Moved up from HTMLPlugInImageElement.
13753        (WebCore::HTMLPlugInElement::supportsFocus):
13754        * html/HTMLPlugInElement.h:
13755        (WebCore::HTMLPlugInImageElement::useFallbackContent):
13756        Removed. Now the implementation is inherited from HTMLPlugInElement.
13757
137582013-04-03  Glenn Adams  <glenn@skynav.com>
13759
13760        Element boundaries prevent Japanese line break opportunities
13761        https://bugs.webkit.org/show_bug.cgi?id=105692
13762
13763        Reviewed by Darin Adler.
13764
13765        Introduce use of prior context when using text break iterators
13766        in non-ASCII path through nextBreakablePosition(). This enables
13767        the use of line break context across an element boundary for
13768        the non-ASCII path. Use of this context with the ASCII path was
13769        enabled by https://bugs.webkit.org/show_bug.cgi?id=17427.
13770
13771        Performance tests of line layout and html5 parsing show that this
13772        patch provides an approximately 4% improvement with Japanese and
13773        no statistically significant regression with ASCII path. Parsing
13774        (html5-full-render) performance is not significantly affected.
13775
13776        Tests: fast/text/line-break-between-text-nodes-cjk.html
13777               fast/text/line-break-between-text-nodes-latin1.html
13778
13779        Expect rebaselines will be needed due to different line breaks:
13780               fast/text/international/003.html
13781               fast/text/international/text-combine-image-test-expected.html
13782               fast/text/writing-mode/Kusa-Makura-background-canvas.html
13783
13784        * platform/text/TextBreakIterator.cpp:
13785        (WebCore::acquireLineBreakIterator): Pass prior context to non-ICU path.
13786        * platform/text/TextBreakIterator.h:
13787        (WebCore::LazyLineBreakIterator::priorContextLength): Added.
13788        (WebCore::LazyLineBreakIterator::get): Pass prior context to ICU path.
13789        (WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator): Editorial.
13790        * platform/text/TextBreakIteratorICU.cpp:
13791        Use prior context from line break iterators. Requires
13792        adding new UTF16 (UChar*) text provider and reimplementing
13793        Latin1 (LChar*) text provider. Implementation is optimized
13794        by using generic functionality that applies to both string
13795        sources.
13796        (WebCore::textPinIndex): Added.
13797        (WebCore::textNativeLength): Added.
13798        (WebCore::textFixPointer): Added.
13799        (WebCore::textClone): Added.
13800        (WebCore::textExtract): Added.
13801        (WebCore::textClose): Added.
13802        (WebCore::textGetContext): Added.
13803        (WebCore::textLatin1GetCurrentContext): Added.
13804        (WebCore::textLatin1MoveInPrimaryContext): Added.
13805        (WebCore::textLatin1SwitchToPrimaryContext): Added.
13806        (WebCore::textLatin1MoveInPriorContext): Added.
13807        (WebCore::textLatin1SwitchToPriorContext): Added.
13808        (WebCore::textInChunkOrOutOfRange): Added.
13809        (WebCore::textLatin1Access): Added.
13810        (WebCore::textInit): Added.
13811        (WebCore::textOpenLatin1): Added.
13812        (WebCore::textUTF16GetCurrentContext): Added.
13813        (WebCore::textUTF16MoveInPrimaryContext): Added.
13814        (WebCore::textUTF16SwitchToPrimaryContext): Added.
13815        (WebCore::textUTF16MoveInPriorContext): Added.
13816        (WebCore::textUTF16SwitchToPriorContext): Added.
13817        (WebCore::textUTF16Access): Added.
13818        (WebCore::textOpenUTF16): Added.
13819        (WebCore::acquireLineBreakIterator): Use new text providers with prior context.
13820        * platform/text/wchar/TextBreakIteratorWchar.cpp:
13821        (WebCore::acquireLineBreakIterator): Pass prior context to non-ICU path.
13822        * rendering/break_lines.cpp:
13823        (WebCore::nextBreakablePosition): Use prior context in ICU path.
13824
138252013-04-03  Christophe Dumez  <ch.dumez@sisa.samsung.com>
13826
13827        [Chromium] Bad cast from BitmapImageSingleFrameSkia to BitmapImage
13828        https://bugs.webkit.org/show_bug.cgi?id=113492
13829
13830        Reviewed by Stephen White.
13831
13832        Remove BitmapImageSingleFrameSkia and have ImageBufferSkia construct
13833        BitmapImage objects instead via an intermediate NativeImageSkia.
13834
13835        No new tests, covered by existing tests.
13836
13837        * WebCore.gypi:
13838        * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp: Remove
13839        include for BitmapImageSingleFrameSkia.h header.
13840        * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Removed.
13841        * platform/graphics/skia/BitmapImageSingleFrameSkia.h: Removed.
13842        * platform/graphics/skia/ImageBufferSkia.cpp: Construct BitmapImage
13843        objects instead of BitmapImageSingleFrameSkia ones.
13844        (WebCore::ImageBuffer::copyImage):
13845        (WebCore::drawNeedsCopy):
13846        (WebCore::ImageBuffer::draw):
13847        (WebCore::ImageBuffer::drawPattern):
13848        * platform/graphics/skia/ImageSkia.cpp:
13849        (WebCore::BitmapImage::BitmapImage): Implement BitmapImage constructor
13850        that takes an NativeImageSkia* in argument.
13851        (WebCore):
13852        (WebCore::BitmapImage::draw): Remove m_source.initialized() check as
13853        this will return false for BitmapImage objects constructed from a
13854        NativeImageSkia, due to the lack of decoder.
13855        * platform/graphics/skia/NativeImageSkia.cpp:
13856        (WebCore::NativeImageSkia::NativeImageSkia): Add parameter to the
13857        NativeImageSkia constructor so that the caller can request a deep copy
13858        instead of a shallow one. This is needed by the ImageBuffer.
13859        * platform/graphics/skia/NativeImageSkia.h:
13860        * platform/image-decoders/ImageDecoder.h:
13861        (WebCore::ImageFrame::setSkBitmap):
13862
138632013-04-03  David Vest  <davve@opera.com>
13864
13865        ASSERTION FAILED: resultAnimationElement->m_animatedType
13866        https://bugs.webkit.org/show_bug.cgi?id=93528
13867
13868        Reviewed by Philip Rogers.
13869
13870        When the order of animation elements change within an animation
13871        group, we can't assume that the resultElement is the same as it
13872        was when the animation was frozen. Make sure to reset the
13873        animation type for the resultElement before updating the
13874        animation.
13875
13876        Test: svg/animations/animation-dependency-crash.html
13877
13878        * svg/animation/SVGSMILElement.cpp:
13879        (WebCore::SVGSMILElement::progress):
13880
138812013-04-03  Timothy Hatcher  <timothy@apple.com>
13882
13883        Stop unconditionally enabling JavaScript execution when closing the Web Inspector.
13884
13885        https://webkit.org/b/113889
13886        rdar://problem/12281794
13887
13888        Reviewed by Joseph Pecoraro.
13889
13890        * inspector/InspectorPageAgent.cpp:
13891        (WebCore::InspectorPageAgent::InspectorPageAgent): Initialize m_originalScriptExecutionDisabled.
13892        (WebCore::InspectorPageAgent::enable): Populate m_originalScriptExecutionDisabled based on current setting.
13893        (WebCore::InspectorPageAgent::disable): Restore previous setting.
13894        * inspector/InspectorPageAgent.h:
13895        (InspectorPageAgent): Added m_originalScriptExecutionDisabled.
13896
138972013-04-03  Dean Jackson  <dino@apple.com>
13898
13899        Cross fade into restarted plugin
13900        https://bugs.webkit.org/show_bug.cgi?id=113868
13901
13902        Reviewed by Tim Horton.
13903
13904        Allow a restarted plugin to fade in over its snapshot, avoiding the abrupt
13905        flash of empty content. The WebCore part of this patch marks the plugin
13906        element as restarted, and draws the snapshot for a short amount of time
13907        as the plugin is restarting. After the plugin has reappeared, we stop drawing
13908        the snapshot.
13909
13910        There is a little bit of drive-by whitespace removal in HTMLPlugInImageElement.
13911
13912        * html/HTMLPlugInElement.h:
13913        (WebCore::HTMLPlugInElement::restartedPlugin): New method indicating if the plugin has been restarted.
13914        * html/HTMLPlugInImageElement.cpp:
13915        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialise new timer and member variable.
13916        (WebCore::HTMLPlugInImageElement::setDisplayState): If we are moving into a restarting state, make sure
13917            to remember this and also start a timer so that we show the snapshot for while.
13918        (WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): No need to draw the snapshot from here on.
13919        * html/HTMLPlugInImageElement.h:
13920        (HTMLPlugInImageElement): Member variable to remember if we've restarted.
13921        * rendering/RenderEmbeddedObject.cpp:
13922        (WebCore::RenderEmbeddedObject::paintContents): Only exit early from the paint if we're not a restarting
13923            plugin, otherwise we do want to draw the snapshot if there is one.
13924        * rendering/RenderLayerBacking.cpp:
13925        (WebCore::isRestartedPlugin): Detects a restarted plugin.
13926        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Don't become a simple container
13927            compositing layer if you're a restarted plugin.
13928
139292013-04-03  John Griggs  <jgriggs@blackberry.com>
13930
13931        [BlackBerry] Adjustments to media controls appearance.
13932        https://bugs.webkit.org/show_bug.cgi?id=113816
13933        https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=316398
13934        https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=316438
13935
13936        Updates to the BlackBerry media controls:
13937         - extend the timeline slider.
13938         - move the volume slider for audio elements up so it does not overlap the main panel.
13939         - upstream some other cosmetic changes to media controls that were not previously upstreamed.
13940
13941        Reviewed by Rob Buis.
13942
13943        BlackBerry-specific, cosmetic change; No new tests required.
13944
13945        * platform/blackberry/RenderThemeBlackBerry.cpp:
13946        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
13947        (WebCore::RenderThemeBlackBerry::paintMediaPlayButton):
13948        (WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
13949        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13950        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13951        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
13952
139532013-04-03  Christophe Dumez  <ch.dumez@sisa.samsung.com>
13954
13955        [Gstreamer] Use gst_buffer_extract() in copyGstreamerBuffersToAudioChannel()
13956        https://bugs.webkit.org/show_bug.cgi?id=113880
13957
13958        Reviewed by Philippe Normand.
13959
13960        copyGstreamerBuffersToAudioChannel() was mapping the GstBuffer content to memcpy
13961        it to the AudioChannel buffer. This patch leverages gst_buffer_extract() to
13962        simplify the code as it does exactly what we need: gst_buffer_map, memcpy,
13963        gst_buffer_unmap and error handling.
13964
13965        Also replace GstBuffer NULL check by an assertion as we already make sure they
13966        are not NULL before adding them to the list. Additionally, we now call
13967        audioChannel->mutableData() only once instead of once per iteration. It is
13968        a bit better as the getter does some work internally.
13969
13970        No new tests, no behavior change.
13971
13972        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
13973        (WebCore::copyGstreamerBuffersToAudioChannel):
13974
139752013-04-03  Antoine Quint  <graouts@apple.com>
13976
13977        Web Inspector: DOM.highlightRect() and DOM.highlightQuad() should allow for page coordinates
13978        https://bugs.webkit.org/show_bug.cgi?id=113869
13979
13980        Add a new "usePageCoordinates" parameter to DOM.highlightRect() and DOM.highlightQuad()
13981        allowing to specify that the rect or quad to highlight should be converted to page
13982        coordinates instead of using the default viewport coordinates.
13983
13984        Reviewed by Timothy Hatcher.
13985
13986        * inspector/Inspector.json:
13987        * inspector/InspectorDOMAgent.cpp:
13988        (WebCore::InspectorDOMAgent::highlightRect):
13989        (WebCore::InspectorDOMAgent::highlightQuad):
13990        (WebCore::InspectorDOMAgent::innerHighlightQuad):
13991        Store the "usePageCoordinates" parameter obtained from the protocol calls onto the
13992        highlight configuration object so that it may be used within the InspectorOverlay.
13993
13994        * inspector/InspectorDOMAgent.h:
13995        (InspectorDOMAgent):
13996        * inspector/InspectorOverlay.cpp:
13997        (WebCore::InspectorOverlay::highlightQuad):
13998        Check the highlight configuration for the "usePageCoordinates" parameter and
13999        apply the inverse of the page's scroll offset to the quad if it's true.
14000
14001        * inspector/InspectorOverlay.h:
14002        (HighlightConfig):
14003        (WebCore::Highlight::setDataFromConfig):
14004        (Highlight):
14005
140062013-04-03  Kangil Han  <kangil.han@samsung.com>
14007
14008        Add omitted reference operator of VisiblePosition in AccessibilityObject
14009        https://bugs.webkit.org/show_bug.cgi?id=113879
14010
14011        Reviewed by Darin Adler.
14012
14013        Seems reference operator has been omitted in startOfStyleRange function, so add it.
14014
14015        * accessibility/AccessibilityObject.cpp:
14016        (WebCore::startOfStyleRange):
14017
140182013-04-03  Jessie Berlin  <jberlin@apple.com>
14019
14020        Update the localizable strings file.
14021
14022        Rubber-stamped by Michael Saboff.
14023
14024        * English.lproj/Localizable.strings:
14025
140262013-04-03  David Kilzer  <ddkilzer@apple.com>
14027
14028        BUILD FIX (r147493): Fix number of arguments to AudioDestinationIOS constructor
14029
14030        Fixes the following build failures:
14031
14032            Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:84:25: error: no matching constructor for initialization of 'WebCore::AudioDestinationIOS'
14033                return adoptPtr(new AudioDestinationIOS(callback, sampleRate));
14034                                    ^                   ~~~~~~~~~~~~~~~~~~~~
14035            In file included from Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:36:
14036            Source/WebCore/platform/audio/ios/AudioDestinationIOS.h:44:5: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
14037                AudioDestinationIOS(AudioIOCallback&, unsigned numberOfOutputChannels, double sampleRate);
14038                ^
14039            Source/WebCore/platform/audio/ios/AudioDestinationIOS.h:42:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
14040            class AudioDestinationIOS : public AudioDestination, public AudioSessionListener {
14041                  ^
14042            Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp:101:22: error: out-of-line definition of 'AudioDestinationIOS' does not match any declaration in 'WebCore::AudioDestinationIOS'
14043            AudioDestinationIOS::AudioDestinationIOS(AudioIOCallback& callback, double sampleRate)
14044                                 ^~~~~~~~~~~~~~~~~~~
14045            2 errors generated.
14046
14047        * platform/audio/ios/AudioDestinationIOS.h:
14048        (AudioDestinationIOS): Remove numberOfOutputChannels argument.
14049
140502013-04-03  David Kilzer  <ddkilzer@apple.com>
14051
14052        BUILD FIX (r147494): -[AVAudioSession setCategory:error:] takes NSError**
14053
14054        Fixes the following build failure:
14055
14056            Source/WebCore/platform/audio/ios/AudioSessionIOS.mm:151:71: error: cannot initialize a parameter of type 'NSError **' with an lvalue of type 'NSError *'
14057                [[AVAudioSession sharedInstance] setCategory:categoryString error:error];
14058                                                                                  ^~~~~
14059
14060        * platform/audio/ios/AudioSessionIOS.mm:
14061        (WebCore::AudioSession::setCategory): Add '&' operator.
14062
140632013-04-03  Felipe Zimmerle  <felipe@zimmerle.org>
14064
14065        CSP blocks inline style when cloning a node
14066        https://bugs.webkit.org/show_bug.cgi?id=112270
14067
14068        Reviewed by Adam Barth.
14069
14070        Checks if the Element is being cloned, if so, the application of the
14071        style is allowed otherwise it relies on default permission mechanism.
14072
14073        Test: http/tests/security/contentSecurityPolicy/inline-style-allowed-while-cloning-objects.html
14074
14075        * dom/Element.cpp:
14076        (WebCore::Element::attributeChanged): Added parameter
14077        AttributeModificationReason to the method signature.
14078        (WebCore::Element::cloneAttributesFromElement): It is now calling 
14079        attributeChanged with AttributeModificationReason parameter. In this scope
14080        it is always set to ModifiedByCloning.
14081        (WebCode::Element::attributeChangedFromParserOrByCloning):
14082        Added parameter AttributeModificationReason.
14083        * dom/Element.h: Added AttributeModificationReason enum. Used to specify
14084        whenever an attribute was set by a cloned oject or directly.
14085        AttributeModificationReason added to attributeChanged with the default
14086        value set to ModifiedDirectly. 
14087        * dom/StyledElement.cpp: 
14088        (WebCore::StyledElement::attributeChanged): Added
14089        AttributeModificationReason to the method signature.
14090        (WebCore::StyledElement::styleAttributeChanged): Now it is checking the
14091        reason of the update, if the reason is ModifiedDirectly check CSP
14092        before set. If ModifiedByCloning set the attribute ignoring the CSP
14093        policy.
14094        * dom/StyledElement.h:
14095        (StyledElement): Added AttributeModificationReason parameter to the methods:
14096        attributeChanged and styleAttributeChanged, attributeChanged has
14097        ModifiedDirectly as default value.
14098        * svg/SVGElement.cpp: 
14099        (WebCore::SVGElement::attributeChanged): Added AttributeModificationReason
14100        parameter to the method signature.
14101        * svg/SVGElement.h: 
14102        (SVGElement): Added AttributeModificationReason parameter to the
14103        attributeChanged signature with the default value set to:
14104        ModifiedDirectly.
14105
141062013-04-03  Csaba Osztrogonác  <ossy@webkit.org>
14107
14108        Unreviewed 32bit buildfix after r147542.
14109
14110        * Modules/websockets/WebSocket.cpp:
14111        (WebCore::WebSocket::didReceiveBinaryData):
14112
141132013-04-03  Christophe Dumez  <ch.dumez@sisa.samsung.com>
14114
14115        [Gstreamer] Avoid calls to g_slist_nth_data in webKitWebAudioSrcLoop()
14116        https://bugs.webkit.org/show_bug.cgi?id=113875
14117
14118        Reviewed by Philippe Normand.
14119
14120        webKitWebAudioSrcLoop() was iterating over 2 GSLists by using a counter and then
14121        calling g_slist_nth_data() to get the element of each GSList. This is inefficient
14122        because calling g_slist_nth_data() will iterate the GSList up until index 'n'.
14123
14124        This patch improves this by keeping pointers to the current element of each list
14125        while iterating, so that we can simply use g_slist_next() to iterate instead
14126        of g_slist_nth_data().
14127
14128        No new tests, no behavior change.
14129
14130        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
14131        (webKitWebAudioSrcLoop):
14132
141332013-04-03  Keishi Hattori  <keishi@webkit.org>
14134
14135        Actions that require user gesture don't work in window.showModalDialog in Chromium
14136        https://bugs.webkit.org/show_bug.cgi?id=113777
14137
14138        Reviewed by Jochen Eisinger.
14139
14140        In Chromium the window for showModalDialog is not modal which causes the
14141        UserGestureIndicator to block actions in the sub window. We introduce a
14142        RAII that saves the UserGestureIndicator and state, then resets it before
14143        runModalDialog, and restore it when it's done.
14144
14145        No new tests. Can't cause user gesture inside modal dialog.
14146
14147        * dom/UserGestureIndicator.cpp:
14148        (WebCore::UserGestureIndicatorDisabler::UserGestureIndicatorDisabler): Saves and resets the topmost indicator and state.
14149        (WebCore):
14150        (WebCore::UserGestureIndicatorDisabler::~UserGestureIndicatorDisabler): Restores topmost indicator and state.
14151        * dom/UserGestureIndicator.h:
14152        (WebCore):
14153        (UserGestureIndicatorDisabler): RAII to temporarily disable UserGestureIndicator.
14154        (UserGestureIndicator): Allow access to UserGestureIndicatorDisabler.
14155        * page/DOMWindow.cpp:
14156        (WebCore::DOMWindow::showModalDialog): Disable UserGestureIndicator while runModalDialog.
14157
141582013-04-03  Zeno Albisser  <zeno@webkit.org>
14159
14160        [Qt] Fail gracefully if an OpenGL context could not be created.
14161        https://bugs.webkit.org/show_bug.cgi?id=113784
14162
14163        In case we fail to create or adopt a valid platform OpenGL context
14164        we do not want to provide a GraphicsContext3D instance.
14165        Otherwise we would crash as soon as the instance is being used.
14166
14167        Reviewed by Jocelyn Turcotte.
14168
14169        * platform/graphics/qt/GraphicsContext3DQt.cpp:
14170        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
14171        (WebCore::GraphicsContext3D::GraphicsContext3D):
14172
141732013-04-03  ChangSeok Oh  <changseok.oh@collabora.com>
14174
14175        [GTK][AC] Implement matrix keyframe animations with clutter ac backend
14176        https://bugs.webkit.org/show_bug.cgi?id=110314
14177
14178        Reviewed by Gustavo Noronha Silva.
14179
14180        Clutter 1.12 doesn't support additive transform animations yet, So clutter ac backend
14181        uses matrix animations for the case. This patch follows changeset 143369, 143343
14182        to support matrix keyframe animations. I believe this change is easy if you understand
14183        above two changesets.
14184
14185        Covered by existing animation tests.
14186
14187        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
14188        (WebCore::PlatformClutterAnimation::setValues):
14189        (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
14190        (WebCore):
14191        (WebCore::PlatformClutterAnimation::addTransformTransition):
14192        * platform/graphics/clutter/PlatformClutterAnimation.h:
14193        (PlatformClutterAnimation):
14194
141952013-04-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
14196
14197        Should close select popup when the element loses focus
14198        https://bugs.webkit.org/show_bug.cgi?id=113220
14199
14200        Reviewed by Kent Tamura.
14201
14202        Test: fast/forms/select-popup-closes-on-blur.html
14203
14204        * html/HTMLSelectElement.cpp:
14205        (WebCore::HTMLSelectElement::menuListDefaultEventHandler): handle the blur event, closing
14206        the popup menu if any.
14207        * testing/Internals.cpp:
14208        (WebCore::Internals::isSelectPopupVisible): utility to query the select node renderer to
14209        find out whether the popup is open or closed.
14210        (WebCore):
14211        * testing/Internals.h: add the new method definition.
14212        * testing/Internals.idl: ditto.
14213
142142013-03-28  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
14215
14216        [Qt] Switch ContextMenu implementation to CROSS_PLATFORM_CONTEXT_MENU
14217        https://bugs.webkit.org/show_bug.cgi?id=113535
14218
14219        Reviewed by Simon Hausmann.
14220
14221        Now Qt uses the CROSS_PLATFORM_CONTEXT_MENUS
14222        USE flag. This flag provides a full cross-platform
14223        representation of a ContextMenu and a ContextMenuItem.
14224        The embedder can then decide how to show this, so neither
14225        WebCore nor WebCore/platform need to know any platform
14226        specifics about menus.
14227
14228        No new tests, no behavior changes.
14229
14230        * Target.pri:
14231        * platform/ContextMenu.h:
14232        (ContextMenu):
14233        * platform/ContextMenuItem.h:
14234        * platform/qt/ContextMenuItemQt.cpp:
14235        (WebCore::ContextMenuItem::platformContextMenuItem):
14236        * platform/qt/ContextMenuQt.cpp:
14237        (WebCore::ContextMenu::ContextMenu):
14238        (WebCore::ContextMenu::getContextMenuItems):
14239        (WebCore::ContextMenu::createPlatformContextMenuFromItems):
14240        (WebCore::ContextMenu::platformContextMenu):
14241
142422013-04-03  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14243
14244        [Qt] Monospace font does not render in proper sizes
14245        https://bugs.webkit.org/show_bug.cgi?id=93263
14246
14247        Reviewed by Jocelyn Turcotte.
14248
14249        Remove this patch's artificial dependency on Qt 5.1.
14250
14251        * platform/graphics/qt/FontPlatformDataQt.cpp:
14252        (WebCore::FontPlatformData::FontPlatformData):
14253
142542013-04-03  Takeshi Yoshino  <tyoshino@chromium.org>
14255
14256        Refine LOG messages in WebSocket related components
14257        https://bugs.webkit.org/show_bug.cgi?id=113852
14258
14259        Reviewed by Kent Tamura.
14260
14261        Refine LOG messages by
14262        - Make them contain method names to ease identifying where the event occurred.
14263        - For consistency, make all messages print the pointer of the origin instance.
14264        - Quote UTF8 data in LOG messages.
14265        - For overloaded methods, add the type to clarify which one is run
14266
14267        * Modules/websockets/WebSocket.cpp:
14268        (WebCore::WebSocket::connect):
14269        (WebCore::WebSocket::send):
14270        (WebCore::WebSocket::close):
14271        (WebCore::WebSocket::contextDestroyed):
14272        (WebCore::WebSocket::didConnect):
14273        (WebCore::WebSocket::didReceiveMessage):
14274        (WebCore::WebSocket::didReceiveBinaryData):
14275        (WebCore::WebSocket::didReceiveMessageError):
14276        (WebCore::WebSocket::didUpdateBufferedAmount):
14277        (WebCore::WebSocket::didStartClosingHandshake):
14278        (WebCore::WebSocket::didClose):
14279        * Modules/websockets/WebSocketChannel.cpp:
14280        (WebCore::WebSocketChannel::connect):
14281        (WebCore::WebSocketChannel::subprotocol):
14282        (WebCore::WebSocketChannel::extensions):
14283        (WebCore::WebSocketChannel::send):
14284        (WebCore::WebSocketChannel::bufferedAmount):
14285        (WebCore::WebSocketChannel::close):
14286        (WebCore::WebSocketChannel::fail):
14287        (WebCore::WebSocketChannel::disconnect):
14288        (WebCore::WebSocketChannel::willOpenSocketStream):
14289        (WebCore::WebSocketChannel::didOpenSocketStream):
14290        (WebCore::WebSocketChannel::didCloseSocketStream):
14291        (WebCore::WebSocketChannel::didReceiveSocketStreamData):
14292        (WebCore::WebSocketChannel::didFailSocketStream):
14293        (WebCore::WebSocketChannel::didStartLoading):
14294        (WebCore::WebSocketChannel::didReceiveData):
14295        (WebCore::WebSocketChannel::didFinishLoading):
14296        (WebCore::WebSocketChannel::didFail):
14297        (WebCore::WebSocketChannel::appendToBuffer):
14298        (WebCore::WebSocketChannel::processBuffer):
14299        (WebCore::WebSocketChannel::startClosingHandshake):
14300        (WebCore::WebSocketChannel::closingTimerFired):
14301        * Modules/websockets/WebSocketDeflater.cpp:
14302        (WebCore::WebSocketDeflater::~WebSocketDeflater):
14303        (WebCore::WebSocketInflater::~WebSocketInflater):
14304        * Modules/websockets/WebSocketHandshake.cpp:
14305        (WebCore::WebSocketHandshake::readServerHandshake):
14306        * platform/network/chromium/SocketStreamHandle.cpp:
14307        (WebCore::SocketStreamHandleInternal::connect):
14308        (WebCore::SocketStreamHandleInternal::send):
14309        (WebCore::SocketStreamHandleInternal::close):
14310        (WebCore::SocketStreamHandleInternal::didOpenStream):
14311        (WebCore::SocketStreamHandleInternal::didSendData):
14312        (WebCore::SocketStreamHandleInternal::didReceiveData):
14313        (WebCore::SocketStreamHandleInternal::didClose):
14314        (WebCore::SocketStreamHandleInternal::didFail):
14315
143162013-04-03  Tor Arne Vestbø  <tor.arne.vestbo@digia.com>
14317
14318        [Qt] Update QMAKE_MAC_SDK check for Qt 5.1
14319
14320        Relies on QMAKE_MAC_SDK_VERSION set in features.prf
14321
14322        Reviewed by Simon Hausmann.
14323
14324        * WebCore.pri:
14325
143262013-04-03  Kristof Provost  <kristof@codepro.be>
14327
14328        [Qt] assignToHTMLImageElement no longer exists in Qt5
14329        https://bugs.webkit.org/show_bug.cgi?id=113639
14330
14331        Reviewed by Simon Hausmann.
14332
14333        No new tests: covered by ./Source/WebKit/qt/tests/hybridPixmap/test.html
14334
14335        * bridge/qt/qt_pixmapruntime.cpp:
14336        (JSC::Bindings::QtPixmapRuntime::getClassRef):
14337
143382013-04-03  Antoine Quint  <graouts@apple.com>
14339
14340        Web Inspector: crash in WebCore::InspectorLayerTreeAgent::buildObjectForLayer if a layer is created for an anonymous RenderObject (:first-letter)
14341        https://bugs.webkit.org/show_bug.cgi?id=113768
14342
14343        The InspectorLayerTreeAgent now knows how to deal with anonymous RenderObjects
14344        for the :first-letter and :first-line pseudo-elements.
14345
14346        Reviewed by Timothy Hatcher.
14347
14348        Test: inspector-protocol/layers/layers-anonymous.html
14349
14350        * inspector/Inspector.json:
14351        Change the Layer type in the LayerTree domain to have more accurate terminology
14352        (pseudo-element vs. pseudo-class) and a new optional isAnonymous flag for layers
14353        associated to anonymous RenderObjects.
14354
14355        * inspector/InspectorLayerTreeAgent.cpp:
14356        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
14357        Check for anonymous RenderObjects and set the parent renderer's node as the node
14358        for this layer since anonymous renderers have the Document as their node and this
14359        would not be satisfactory to show in a front-end. We also check for anonymous
14360        RenderObjects for the :first-letter and :first-line pseudo-elements and set them
14361        in the pseudoElement property of the Layer object created such that a front-end
14362        could correctly identify what type of pseudo-element for the associated node
14363        yielded this layer.
14364
14365        (WebCore::InspectorLayerTreeAgent::idForNode):
14366        Here we fix the actual crash by first checking if the node provided is null and
14367        returning 0 if there's no such node. This ensures that any scenario where there
14368        is no node associated with the RenderObject simply informs of the front-end that
14369        no such node exists and we do not crash.
14370
143712013-04-03  Alexander Pavlov  <apavlov@chromium.org>
14372
14373        Web Inspector: [REGRESSION(r147117)][Elements] Copy/paste keyboard shortcuts broken in "Edit as HTML"
14374        https://bugs.webkit.org/show_bug.cgi?id=113798
14375
14376        Reviewed by Yury Semikhatsky.
14377
14378        Stop propagation of "copy" event from the multiline editor's
14379        CodeMirror host element so that it is not handled by
14380        WebInspector.documentCopy().
14381
14382        * inspector/front-end/UIUtils.js:
14383        (.consumeCopy):
14384        (.cleanUpAfterEditing):
14385        * inspector/front-end/inspector.js:
14386        (WebInspector.addMainEventListeners):
14387
143882013-04-03  Takashi Sakamoto  <tasak@google.com>
14389
14390        With borders of differing alpha, the corners become squared off
14391        https://bugs.webkit.org/show_bug.cgi?id=113744
14392
14393        Reviewed by Simon Fraser.
14394
14395        paintTranslucentBorderSides should pick up borders with common color
14396        in order: top, bottom, left and right (not top, right, bottom and
14397        left), because willBeOverdrawn depends on the assumption, borders are
14398        drawn in order: top, bottom, left and right.
14399
14400        Test: fast/borders/border-left-right-same-bottom-different-color.html
14401
14402        * rendering/RenderBoxModelObject.cpp:
14403        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
14404
144052013-04-03  Mihnea Ovidenie  <mihnea@adobe.com>
14406
14407        [New Multicolumn]Remove assert in RenderMultiColumnFlowThread::createAnonymous
14408        https://bugs.webkit.org/show_bug.cgi?id=113855
14409
14410        Reviewed by Antti Koivisto.
14411
14412        Remove CSSRegions specific assert from new multicolumn implementation.
14413        No change in functionality, no new tests.
14414
14415        * rendering/RenderMultiColumnFlowThread.cpp:
14416        (WebCore::RenderMultiColumnFlowThread::createAnonymous):
14417
144182013-04-03  Mike West  <mkwst@chromium.org>
14419
14420        X-Frame-Options: Blocked frames should not inherit their parent's SecurityOrigin.
14421        https://bugs.webkit.org/show_bug.cgi?id=112903
14422
14423        Reviewed by Adam Barth.
14424
14425        This change brings WebKit in line with IE and Gecko's behavior, both of
14426        which treat the blocked frame as being cross-origin for the purposes of
14427        access checks ('[frame].contentWindow.location.href' is inaccessible,
14428        for example).
14429
14430        * dom/Document.cpp:
14431        (WebCore::Document::processHttpEquiv):
14432            Rather than redirecting to 'about:blank', redirect to a URL which
14433            does not inherit the SecurityOrigin of the parent.
14434        * loader/DocumentLoader.cpp:
14435        (WebCore::DocumentLoader::responseReceived):
14436            Before calling cancelMainResourceLoad, ensure that the frame's
14437            document is sandboxed into a unique origin so that it doesn't inherit
14438            the parent's SecurityOrigin.
14439
144402013-04-03  Mikhail Naganov  <mnaganov@chromium.org>
14441
14442        [Chromium] Implement target-densityDpi viewport property emulation
14443        https://bugs.webkit.org/show_bug.cgi?id=110835
14444
14445        The value is only used in the Chromium port, when the corresponding
14446        setting is enabled.
14447
14448        This is needed for supporting existing WebView-based applications
14449        that rely on this property.
14450
14451        Reviewed by Adam Barth.
14452
14453        * dom/ViewportArguments.cpp:
14454        (WebCore::findTargetDensityDPIValue):
14455        (WebCore):
14456        (WebCore::setViewportFeature):
14457        * dom/ViewportArguments.h:
14458        (WebCore::ViewportArguments::ViewportArguments):
14459        (ViewportArguments):
14460        (WebCore::ViewportArguments::operator==):
14461
144622013-04-03  Mike West  <mkwst@chromium.org>
14463
14464        Extract URL that doesn't inherit a parent's SecurityOrigin out into a constant.
14465        https://bugs.webkit.org/show_bug.cgi?id=113780
14466
14467        Reviewed by Jochen Eisinger.
14468
14469        We're scheduling navigations to 'data:text/html,' in XSSAuditor in
14470        order to end up on a page that doesn't inherit its parent's
14471        SecurityOrigin. We'll be reusing this mechainsm to solve
14472        http://wkbug.com/112903
14473
14474        This patch makes us more explicit about what we're doing and why.
14475        It doesn't change any behavior: XSSAuditor tests should still pass.
14476
14477        * html/parser/XSSAuditorDelegate.cpp:
14478        (WebCore::XSSAuditorDelegate::didBlockScript):
14479            Use SecurityOrigin::urlWithUniqueSecurityOrigin rather than a
14480            literal string to make our intentions clear.
14481        * page/SecurityOrigin.cpp:
14482        (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin):
14483        * page/SecurityOrigin.h:
14484            Add the new static method.
14485
144862013-04-02  Chris Fleizach  <cfleizach@apple.com>
14487
14488        clean up static casts in WebAccessibilityObjectWrapperMac.mm to methods like toAccessibilityList()
14489        https://bugs.webkit.org/show_bug.cgi?id=113828
14490
14491        Reviewed by Tim Horton.
14492
14493        static_cast changed to toAccessibilityList().
14494
14495        * accessibility/AccessibilityList.h:
14496        (WebCore::toAccessibilityList):
14497        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
14498        (-[WebAccessibilityObjectWrapper subrole]):
14499        (-[WebAccessibilityObjectWrapper roleDescription]):
14500
145012013-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
14502
14503        Unreviewed, rolling out r147370.
14504        http://trac.webkit.org/changeset/147370
14505        https://bugs.webkit.org/show_bug.cgi?id=113850
14506
14507        This patch is causing crashes in video tests on all Mac bots.
14508        (Requested by jernoble_ on #webkit).
14509
14510        * html/HTMLMediaElement.cpp:
14511        (WebCore::HTMLMediaElement::~HTMLMediaElement):
14512
145132013-04-02  James Craig  <james@cookiecrook.com>
14514
14515        AXRoleDescripton for DL is "list"; should be "description list"
14516        https://bugs.webkit.org/show_bug.cgi?id=111665
14517
14518        Reviewed by Chris Fleizach.
14519
14520        Defining the role and description strings, and accessors for DL.
14521        This previously relied on getting the role and description from the platform API.
14522
14523        Updated existing test coverage.
14524
14525        * English.lproj/Localizable.strings:
14526        * accessibility/AccessibilityObject.h:
14527        * accessibility/AccessibilityRenderObject.cpp:
14528        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
14529        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
14530        (createAccessibilityRoleMap):
14531        (-[WebAccessibilityObjectWrapper subrole]):
14532        (-[WebAccessibilityObjectWrapper roleDescription]):
14533        * platform/LocalizedStrings.cpp:
14534        (WebCore::AXDescriptionListText):
14535        (WebCore):
14536        * platform/LocalizedStrings.h:
14537        (WebCore):
14538        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
14539        (WebCore::AXDescriptionListText):
14540        (WebCore):
14541        * platform/chromium/LocalizedStringsChromium.cpp:
14542        (WebCore::AXDescriptionListText):
14543        (WebCore):
14544        * platform/efl/LocalizedStringsEfl.cpp:
14545        (WebCore::AXDescriptionListText):
14546        (WebCore):
14547        * platform/gtk/LocalizedStringsGtk.cpp:
14548        (WebCore::AXDescriptionListText):
14549        (WebCore):
14550        * platform/qt/LocalizedStringsQt.cpp:
14551        (WebCore::AXDescriptionListText):
14552        (WebCore):
14553
145542013-04-02  Eugene Klyuchnikov  <eustas@chromium.org>
14555
14556        Web Inspector: [Network] Split business logic and presentation for initiator column.
14557        https://bugs.webkit.org/show_bug.cgi?id=113486
14558
14559        Reviewed by Pavel Feldman.
14560
14561        Currently business logic and presentation are mixed.
14562        This prevents making cell renderer static and applying
14563        viewport rendering, because initiator sorting function
14564        depends on data written when cell is rendered.
14565
14566        * inspector/front-end/NetworkPanel.js:
14567        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
14568        Removed business logic. Use "initiatorInfo".
14569        (WebInspector.NetworkDataGridNode.InitiatorComparator):
14570        Use "initiatorInfo".
14571        * inspector/front-end/NetworkRequest.js:
14572        (WebInspector.NetworkRequest.prototype.initiatorInfo):
14573        Extracted business logic from "refreshInitiatorCell".
14574
145752013-04-02  Ryosuke Niwa  <rniwa@webkit.org>
14576
14577        needsLeopardMailQuirks should be removed
14578        https://bugs.webkit.org/show_bug.cgi?id=113749
14579
14580        Reviewed by Benjamin Poulain.
14581
14582        Removed needsLeopardMailQuirks from settings.in after r147447.
14583
14584        * page/Settings.in:
14585
145862013-04-02  Jaehun Lim  <ljaehun.lim@samsung.com>
14587
14588        [css3-text] Rendering -webkit-each-line value for text-indent from css3-text
14589        https://bugs.webkit.org/show_bug.cgi?id=113259
14590
14591        Reviewed by Levi Weintraub.
14592
14593        CSS3 TEXT introduces new value, "each-line" for text-indent.
14594        Indentation affects the first line of the block container as well as each line
14595        after a forced line break, but does not affect lines after a soft wrap break.
14596
14597        This patch is the rendering part to support each-line value for text-indent.
14598        It's prefixed and guarded by CSS3_TEXT flag.
14599
14600        Test: fast/css3-text/css3-text-indent/text-indent-each-line.html
14601
14602        * rendering/RenderBlock.h:
14603        (WebCore::RenderBlock::availableLogicalWidthForLine):
14604        (WebCore::RenderBlock::logicalRightOffsetForLine):
14605        (WebCore::RenderBlock::logicalLeftOffsetForLine):
14606        (WebCore::RenderBlock::startOffsetForLine):
14607        (WebCore::RenderBlock::endOffsetForLine):
14608        (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine):
14609        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
14610            Rename a parameter from firstLine to shouldIndentText.
14611
14612        * rendering/RenderBlockLineLayout.cpp:
14613        (WebCore::LineWidth::LineWidth):
14614        (WebCore::LineWidth::shouldIndentText): Return boolean according to m_shouldIndentText.
14615        (WebCore::LineWidth::updateAvailableWidth):
14616        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
14617        (WebCore::LineWidth::fitBelowFloats):
14618            Add enum IndentTextOrNot and m_shouldIndentText.
14619            Use m_shouldIndentText instead of m_isFirstLine.
14620
14621        (WebCore::requiresIndent): Decide whether text indentation is required.
14622        (WebCore::updateLogicalInlinePositions):
14623        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
14624        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
14625
146262013-04-02  Glenn Adams  <glenn@skynav.com>
14627
14628        Generalize prior line break context state and names.
14629        https://bugs.webkit.org/show_bug.cgi?id=113823
14630
14631        Reviewed by Darin Adler.
14632
14633        No new tests required due to no behavioral change.
14634
14635        * platform/text/TextBreakIterator.h:
14636        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
14637        (WebCore::LazyLineBreakIterator::lastCharacter):
14638        (WebCore::LazyLineBreakIterator::secondToLastCharacter):
14639        (WebCore::LazyLineBreakIterator::setPriorContext):
14640        (WebCore::LazyLineBreakIterator::updatePriorContext):
14641        (WebCore::LazyLineBreakIterator::resetPriorContext):
14642        (WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator):
14643        Store previous characters as prior context buffer used directly
14644        by line break iterator implementation. Rename members to reflect
14645        somewhat more general usage. Also fix bad indentations.
14646        * rendering/RenderBlockLineLayout.cpp:
14647        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
14648        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
14649        Use renamed line break iterator methods.
14650
146512013-04-02  Emil A Eklund  <eae@chromium.org>
14652
14653        Padding applied twice for empty generated RenderInlines
14654        https://bugs.webkit.org/show_bug.cgi?id=113800
14655
14656        Reviewed by Levi Weintraub.
14657        
14658        The padding for empty generated content render objects is
14659        incorrectly applied twice. Regression from r140693.
14660
14661        Test: fast/css-generated-content/margin-empty-content.html
14662
14663        * rendering/RenderBlockLineLayout.cpp:
14664        (WebCore::inlineLogicalWidth):
14665
146662013-04-02  Levi Weintraub  <leviw@chromium.org>
14667
14668        InlineIterator needs to be updated when RenderCombineText shrinks at a line break
14669        https://bugs.webkit.org/show_bug.cgi?id=113733
14670
14671        Reviewed by Emil A Eklund.
14672
14673        Update stale InlineIterators that point beyond the end of a RenderCombineText that's
14674        shrunk when RenderCombineText::combineText() is called.
14675
14676        Test: fast/text/international/combine-at-line-break-crash.html
14677
14678        * rendering/BidiRun.h:
14679        (WebCore::BidiRun::BidiRun): Adding an assertion that runs are created within
14680        the bounds of their associated RenderText.
14681        * rendering/RenderBlockLineLayout.cpp:
14682        (WebCore::iteratorIsBeyondEndOfRenderCombineText): Added.
14683        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Update stale iterators.
14684
146852013-04-02  Max Vujovic  <mvujovic@adobe.com>
14686
14687        [CSS Filters] Filter outsets clipped on composited layers when filter is applied after first layout
14688        https://bugs.webkit.org/show_bug.cgi?id=109098
14689
14690        Reviewed by Dean Jackson.
14691
14692        This patch addresses the following issues:
14693        (1) Compositors who can compute their own filter outsets don't need WebKit to inflate the
14694            composited layer bounds. Eventually, all platforms' compositors should be able to
14695            compute their own filter outsets.
14696        (2) When filter outsets change, we need to update composited layer bounds if the filters are
14697            painted in software.
14698        (3) When filter outsets change, we need to recompute the overlap map to promote the correct
14699            layers to composited layers on all platforms.
14700
14701        Tests: css3/filters/composited-layer-bounds-after-sw-blur-animation.html
14702               css3/filters/composited-layer-bounds-with-composited-blur.html
14703               css3/filters/composited-layer-child-bounds-after-composited-to-sw-shadow-change.html
14704               css3/filters/composited-layer-promotion-after-outset-overlap-change-using-composited-shadow.html
14705               css3/filters/composited-layer-promotion-after-outset-overlap-change-using-sw-shadow.html
14706
14707        * platform/graphics/IntRectExtent.h:
14708        (WebCore::IntRectExtent::isZero):
14709        (IntRectExtent):
14710
14711            Make isZero public on IntRectExtent.
14712
14713        * rendering/RenderLayer.cpp:
14714        (WebCore::hasOrHadFilters):
14715
14716            Helper function used to exit early from filters related code.
14717
14718        (WebCore::RenderLayer::updateFilters):
14719
14720            Move filter updating code from RenderLayer::styleChanged into this new method.
14721
14722            This method calls RenderLayerBacking::updateFilters instead of
14723            RenderLayerBacking::updateGraphicsLayerGeometry. RenderLayerBacking::updateFilters lets
14724            us know whether there was a filter paint mode change (i.e. the filters were painted in
14725            software and are now painted in the compositor, or vice-versa). We need to know this
14726            earlier, in RenderLayer::styleChanged, because we may need to rebuild the compositing
14727            layers due to a filter paint mode change.
14728
14729        (WebCore::RenderLayer::styleChanged):
14730
14731            Add a condition for filters for setCompositingLayersNeedRebuild. If the filter outsets
14732            on a layer changed, we need to rebuild the compositing layers because there could be new
14733            overlap. Likewise, if there are or were filter outsets and the filter paint mode changed
14734            the layer bounds (and child positions) may have changed. In either case, we don't
14735            rebuild the compositing layers if there is an accelerated filter animation running.
14736
14737            Remove old code to detect a filter paint mode change from the end of
14738            RenderLayer::styleChanged because it could never be executed. The old code counted on
14739            RenderLayerBacking::canCompositeFilters to change on its own, but it doesn't change
14740            unless updateFilters gets called. Thus, we could never enter the if statement that
14741            calls setBackingNeedsRepaint.
14742
14743        * rendering/RenderLayerBacking.cpp:
14744        (WebCore::RenderLayerBacking::updateFilters):
14745
14746            Now return true if there was a filter paint mode change, so RenderLayer::styleChanged
14747            can decide if it should rebuild the compositing layers.
14748
14749            Call updateOrRemoveFilterEffectRenderer and setContentsNeedDisplay if there was a
14750            render mode change. We need to either destroy or create the software renderer and we
14751            need to repaint the layer contents if there was a render mode change.
14752
14753        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
14754
14755            Don't call updateFilters here. Call it earlier in RenderLayer::styleChanged, for reasons
14756            explained above.
14757
14758        * rendering/RenderLayerBacking.h:
14759        (RenderLayerBacking):
14760
14761            Make updateFilters public so RenderLayer::styleChanged can call it.
14762
14763        * rendering/RenderLayerCompositor.cpp:
14764        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
14765
14766            If the platform's compositor computes filter outsets for its layers internally, do not
14767            inflate WebKit's composited bounds for filter outsets. This results in smaller layers
14768            on Safari. Note that we still need to include filter outsets in layer bounds for other
14769            situations like overlap testing in WebKit and when we're painting filters in software.
14770
147712013-04-02  Martin Robinson  <mrobinson@igalia.com>
14772
14773        [GTK] Make libsecret optional
14774        https://bugs.webkit.org/show_bug.cgi?id=113821
14775
14776        Reviewed by Gustavo Noronha Silva.
14777
14778        Don't try to use libsecret if credential storage is disabled.
14779
14780        * platform/gtk/GRefPtrGtk.cpp: Protect libsecret sections.
14781        * platform/gtk/GRefPtrGtk.h: Ditto.
14782        * platform/network/gtk/CredentialBackingStore.cpp: Ditto.
14783
147842013-04-02  Bem Jones-Bey  <bjonesbe@adobe.com>
14785
14786        [CSS Exclusions] refactor shape-outside code to use isFloatingWithShapeOutside() helper method
14787        https://bugs.webkit.org/show_bug.cgi?id=113799
14788
14789        Reviewed by Dirk Schulze.
14790
14791        When reviewing my patch for bug 110349, Julien mentioned that the
14792        common test for floating with shape outside should be factored out.
14793        This patch does that.
14794
14795        No new functionality, so no new tests.
14796
14797        * rendering/ExclusionShapeOutsideInfo.cpp:
14798        (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Use helper method.
14799        * rendering/RenderBox.h:
14800        (WebCore::RenderBox::exclusionShapeOutsideInfo): Ditto.
14801        * rendering/RenderLayer.cpp:
14802        (WebCore::RenderLayer::shouldBeNormalFlowOnly): Ditto.
14803        * rendering/RenderObject.h:
14804        (WebCore::RenderObject::hasPaintOffset):  Ditto.
14805        (WebCore::RenderObject::isFloatingWithShapeOutside): Add method to
14806            encapsulate the common test.
14807
148082013-04-02  Jer Noble  <jer.noble@apple.com>
14809
14810        Add platform AudioSession and iOS platform-specific code.
14811        https://bugs.webkit.org/show_bug.cgi?id=113813
14812        <rdar://problem/11701792>
14813
14814        Reviewed by Eric Carlson.
14815
14816        Replace the deprecated AudioToolbox AudioSession APIs with the new AVAudioSession API.
14817        To protect against exposing platform specific intrinsics to cross-platform code, add a
14818        platform generic class AudioSession, with port-specific implementations. A default
14819        implementation is provided.
14820
14821        Add a new listener interface to receive interruption notifications:
14822        * platform/audio/AudioSessionListener.h: Added.
14823        (WebCore::AudioSessionListener::AudioSessionListener):
14824        (WebCore::AudioSessionListener::~AudioSessionListener):
14825
14826        Add a platform generic AudioSession class:
14827        * platform/audio/AudioSession.cpp: Added.
14828        (AudioSession::sharedSession): AudioSession is a singleton object, and this is its accessor.
14829        (AudioSession::addListener): Add the parameter to the listeners set.
14830        (AudioSession::removeListener): Remove the parameter from the listers set.
14831        (AudioSession::beganAudioInterruption): Iterate over the parameters.
14832        (AudioSession::endedAudioInterruption): Ditto.
14833        (AudioSession::AudioSession): Empty stub.
14834        (AudioSession::~AudioSession): Ditto.
14835        (AudioSession::setCategory): Ditto.
14836        (AudioSession::category): Ditto.
14837        (AudioSession::sampleRate): Ditto.
14838        (AudioSession::numberOfOutputChannels): Ditto.
14839        (AudioSession::setActive): Ditto.
14840        (AudioSession::preferredBufferDuration): Ditto.
14841        (AudioSession::setPreferredBufferDuration): Ditto.
14842        * platform/audio/AudioSession.h: Added.
14843
14844        Add IOS-specific AudioSession implementation:
14845        * platform/audio/ios/AudioSessionIOS.mm: Added.
14846        (-[WebAudioSessionHelper initWithCallback:WebCore::]): Register for interruption notifications.
14847        (-[WebAudioSessionHelper dealloc]): Unregister for interruption notifications.
14848        (-[WebAudioSessionHelper interruption:]): Pass to AudioSession.
14849        (WebCore::AudioSessionPrivate::AudioSessionPrivate): Private storage for AudioSessionIOS.
14850        (WebCore::AudioSession::AudioSession): Create AudioSessionPrivate and WebAudioSessionHelper.
14851        (WebCore::AudioSession::~AudioSession): Simple destructor.
14852        (WebCore::AudioSession::setCategory): Check the current categoryOverride, and refuse to overwrite
14853            "MediaPlayback" with "AmbientSound".
14854        (WebCore::AudioSession::setCategoryOverride): Simple setter.
14855        (WebCore::AudioSession::categoryOverride): Simple getter.
14856        (WebCore::AudioSession::category): Pass to AVAudioSession.
14857        (WebCore::AudioSession::sampleRate): Ditto.
14858        (WebCore::AudioSession::numberOfOutputChannels): Ditto.
14859        (WebCore::AudioSession::setActive): Ditto.
14860        (WebCore::AudioSession::preferredBufferDuration): Ditto.
14861        (WebCore::AudioSession::setPreferredBufferDuration): Ditto.
14862
14863        Use the new AudioSession class in place of explicit AudioToolbox or AVAudioSession calls:
14864        * platform/audio/ios/AudioDestinationIOS.cpp:
14865        (WebCore::AudioDestination::hardwareSampleRate): Pass to AudioSession.
14866        (WebCore::AudioDestination::maxChannelCount): Ditto.
14867        (WebCore::AudioDestinationIOS::AudioDestinationIOS): Register for listeners and activate.
14868        (WebCore::AudioDestinationIOS::~AudioDestinationIOS): Unregister and deactivate.
14869        (WebCore::AudioDestinationIOS::configure): Use AudioSession to set the buffer length.
14870        * platform/audio/ios/AudioDestinationIOS.h:
14871
14872        Add the new files to the project:
14873        * WebCore.xcodeproj/project.pbxproj:
14874
148752013-04-02  Jer Noble  <jer.noble@apple.com>
14876
14877        Upstream AudioDestinationIOS.
14878        https://bugs.webkit.org/show_bug.cgi?id=113806
14879
14880        Reviewed by Eric Carlson.
14881
14882        Upstream AudioDestinationIOS from the iOS repository.
14883
14884        * WebCore.xcodeproj/project.pbxproj:
14885        * platform/audio/ios/AudioDestinationIOS.cpp: Added.
14886        (WebCore::audioDestinations):
14887        (WebCore::AudioDestination::create):
14888        (WebCore::AudioDestination::hardwareSampleRate):
14889        (WebCore::AudioDestination::maxChannelCount):
14890        (WebCore::AudioDestinationIOS::AudioDestinationIOS):
14891        (WebCore::AudioDestinationIOS::~AudioDestinationIOS):
14892        (WebCore::AudioDestinationIOS::configure):
14893        (WebCore::AudioDestinationIOS::audioDestinationInterruptionListener):
14894        (WebCore::AudioDestinationIOS::initializeAudioSession):
14895        (WebCore::AudioDestinationIOS::start):
14896        (WebCore::AudioDestinationIOS::stop):
14897        (WebCore::AudioDestinationIOS::beganAudioInterruption):
14898        (WebCore::AudioDestinationIOS::endedAudioInterruption):
14899        (WebCore::AudioDestinationIOS::render):
14900        (WebCore::AudioDestinationIOS::inputProc):
14901        (WebCore::AudioDestinationIOS::frameSizeChangedProc):
14902        * platform/audio/ios/AudioDestinationIOS.h: Added.
14903        (AudioDestinationIOS):
14904        (WebCore::AudioDestinationIOS::isPlaying):
14905        (WebCore::AudioDestinationIOS::sampleRate):
14906
149072013-04-02  Christophe Dumez  <ch.dumez@sisa.samsung.com>
14908
14909        fast/dom/HTMLImageElement/image-alt-text.html and fast/dom/HTMLInputElement/input-image-alt-text.html are failing
14910        https://bugs.webkit.org/show_bug.cgi?id=94198
14911
14912        Reviewed by Darin Adler.
14913
14914        Fix alt text not being displayed for img elements or input of type
14915        "image" due to insufficient size. imageSizeForError() was adding
14916        padding for the alt text but setImageSizeForAltText() was not. The
14917        issue was occurring in paintReplaced() because the contentWidth() /
14918        contentHeight() would be exactly the same size as the alt text.
14919        However, paintReplaced() first draws an outline rect where the
14920        image should be and then reduces the usable width / height for the
14921        alt text by 2 so that the text does not get printed over the rect
14922        borders. However, after decreasing the usable width / height, there
14923        is no longer enough space to draw the text.
14924
14925        No new tests, already covered by existing tests.
14926
14927        * rendering/RenderImage.cpp:
14928        (WebCore::RenderImage::setImageSizeForAltText): Add padding to the text size
14929        so that the alt text can still be drawn, despite the outline rect
14930        borders. Such padding was already used in imageSizeForError(). Also use
14931        ceilf() for the value returned by Font::width() instead of truncating it.
14932        This is needed because we need to fit the whole text in the image and this
14933        may not be the case if we truncate.
14934        (WebCore::RenderImage::paintReplaced):
14935
149362013-04-02  Raymond Toy  <rtoy@google.com>
14937
14938        Add support for using ARM FFT in WebAudio
14939        https://bugs.webkit.org/show_bug.cgi?id=109755
14940
14941        Reviewed by Chris Rogers.
14942
14943        No new tests.
14944
14945        * WebCore.gyp/WebCore.gyp: Add dependency on openmax_dl when use_openmax_dl_fft is enabled.
14946        * WebCore.gypi: Add source FFTFrameOpenMAXDLAndroid.cpp
14947        * platform/audio/AudioArray.h:
14948        (WebCore::AudioArray::allocate): Need 32-byte aligntment with the
14949        OpenMAX DL FFT.
14950        * platform/audio/FFTFrame.h:
14951        (FFTFrame): Support OpenMAX DL FFT
14952        * platform/audio/FFTFrameStub.cpp: Support OpenMAX DL FFT
14953        * platform/audio/chromium/FFTFrameOpenMAXDLAndroid.cpp: Added.  Implements the
14954        necessary interface using the OpenMAX DL FFT routines.
14955        (WebCore):
14956        (WebCore::FFTFrame::FFTFrame):
14957        (WebCore::FFTFrame::initialize):
14958        (WebCore::FFTFrame::cleanup):
14959        (WebCore::FFTFrame::~FFTFrame):
14960        (WebCore::FFTFrame::multiply):
14961        (WebCore::FFTFrame::doFFT):
14962        (WebCore::FFTFrame::doInverseFFT):
14963        (WebCore::FFTFrame::realData):
14964        (WebCore::FFTFrame::imagData):
14965        (WebCore::FFTFrame::contextForSize):
14966
149672013-04-02  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
14968
14969        [GStreamer] Memory leaks in MediaPlayerPrivateGStreamer
14970        https://bugs.webkit.org/show_bug.cgi?id=113762
14971
14972        Reviewed by Philippe Normand.
14973
14974        Don't leak strings returned by gst_element_get_name() and
14975        gst_missing_plugin_message_get_installer_detail().
14976
14977        No new tests. No change in behavior.
14978
14979        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
14980        (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
14981        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
14982
149832013-04-02  Min Qin  <qinmin@chromium.org>
14984
14985        Fix css style for CC button on android
14986        https://bugs.webkit.org/show_bug.cgi?id=113815
14987
14988        Reviewed by Adam Barth.
14989
14990        The default CC button size is 16px as defined in mediaControls.css. Android should use 35px.
14991        This change fixed that problem.
14992        Also fixed a problem that r142947 does not change the display of fullscreen button to -webkit-flex
14993        Android does not run media layout tests currently. Will fix the test expectations when layout tests are run in content shell.
14994
14995        * css/mediaControlsChromiumAndroid.css:
14996        (video::-webkit-media-controls-fullscreen-button):
14997        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14998
149992013-04-02  Alexey Proskuryakov  <ap@apple.com>
15000
15001        [Mac] Remove WKCreateNSURLConnectionDelegateProxy
15002        https://bugs.webkit.org/show_bug.cgi?id=113810
15003
15004        Reviewed by Anders Carlsson.
15005
15006        This WKSI function is not used any more.
15007
15008        * WebCore.exp.in:
15009        * platform/mac/WebCoreSystemInterface.h:
15010        * platform/mac/WebCoreSystemInterface.mm:
15011
150122013-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
15013
15014        Unreviewed, rolling out r147464.
15015        http://trac.webkit.org/changeset/147464
15016        https://bugs.webkit.org/show_bug.cgi?id=113812
15017
15018        JSSQLResultSet.cpp:131:24: error: implicit conversion loses
15019        integer precision: 'int64_t' (aka 'long long') to 'int'
15020        [-Werror,-Wshorten-64-to-32] (Requested by xenon on #webkit).
15021
15022        * bindings/scripts/CodeGeneratorJS.pm:
15023        (GenerateImplementation):
15024        * bindings/scripts/test/JS/JSTestObj.cpp:
15025        (WebCore::jsTestObjAttrWithGetterException):
15026        (WebCore::jsTestObjStringAttrWithGetterException):
15027        (WebCore::jsTestObjWithScriptStateAttributeRaises):
15028        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
15029        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
15030        (WebCore::jsTestObjNullableDoubleAttribute):
15031        (WebCore::jsTestObjNullableLongAttribute):
15032        (WebCore::jsTestObjNullableBooleanAttribute):
15033        (WebCore::jsTestObjNullableStringAttribute):
15034        (WebCore::jsTestObjNullableLongSettableAttribute):
15035        (WebCore::jsTestObjNullableStringValue):
15036        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
15037        (WebCore::jsTestTypedefsAttrWithGetterException):
15038        (WebCore::jsTestTypedefsStringAttrWithGetterException):
15039
150402013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15041
15042        Web Inspector: Make Source Frame & status bar a layout boundary
15043        https://bugs.webkit.org/show_bug.cgi?id=112353
15044
15045        Reviewed by Pavel Feldman.
15046
15047        No new tests: no change in behaviour.
15048
15049        - Add View.markAsLayoutBoundary method to mark a view as a layout
15050        boundary. This will force this view to autoupdate its height to actual
15051        pixel value.
15052        - Mark both CodeMirrorTextEditor and DefaultTextEditor as a layout
15053        boundary.
15054        - Mark main-status-bar element with a layout-boundary class.
15055
15056        * inspector/front-end/CodeMirrorTextEditor.js:
15057        (WebInspector.CodeMirrorTextEditor):
15058        * inspector/front-end/DefaultTextEditor.js:
15059        * inspector/front-end/View.js:
15060        (WebInspector.View.prototype.markAsLayoutBoundary):
15061        (WebInspector.View.prototype._processWillShow):
15062        (WebInspector.View.prototype._processWasShown):
15063        (WebInspector.View.prototype._processOnResize):
15064        * inspector/front-end/inspector.css:
15065        (.layout-boundary):
15066        * inspector/front-end/inspector.html:
15067
150682013-04-02  Alexey Proskuryakov  <ap@apple.com>
15069
15070        <rdar://problem/13551119> [WK2] Crashes in NetworkProcess when canceling loads
15071        https://bugs.webkit.org/show_bug.cgi?id=113803
15072
15073        Reviewed by Darin Adler.
15074
15075        Stop using a delegate proxy. It hasn't been needed in years, and the extra layer
15076        just adds bugs.
15077
15078        This specific issue gets fixed because connection retains its delegate is retained,
15079        but a proxy does not.
15080
15081        * WebCore.exp.in:
15082        * platform/network/ResourceHandle.h:
15083        * platform/network/ResourceHandleInternal.h:
15084        * platform/network/mac/ResourceHandleMac.mm:
15085        (WebCore::ResourceHandle::start):
15086        (WebCore::ResourceHandle::releaseDelegate):
15087        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
15088        Removed code that was dealing with delegate proxy.
15089
150902013-04-02  John J. Barton  <johnjbarton@chromium.org>
15091
15092        Web Inspector: Encapsulate SetEmbedderData/GetEmbedderData
15093        https://bugs.webkit.org/show_bug.cgi?id=113331
15094
15095        Reviewed by Pavel Feldman.
15096
15097        Refactor to encapsulate uses of V8 Set/GetEmbedderData together
15098        with uses of V8 Set/GetAlignedPointerInEmbedderData since these
15099        functions operate on the same underyling array in V8.
15100
15101        * bindings/v8/ScriptController.cpp:
15102        (WebCore::ScriptController::setContextDebugId):
15103        (WebCore::ScriptController::contextDebugId):
15104        * bindings/v8/V8DOMWindowShell.cpp:
15105        (WebCore::setInjectedScriptContextDebugId):
15106        * bindings/v8/V8PerContextData.cpp:
15107        (WebCore::V8PerContextDebugData::setContextDebugData):
15108        (WebCore):
15109        (WebCore::V8PerContextDebugData::contextDebugId):
15110        (WebCore::V8PerContextDebugData::createDebugData):
15111        (WebCore::V8PerContextDebugData::getDebugData):
15112        (WebCore::V8PerContextDebugData::setDebugData):
15113        * bindings/v8/V8PerContextData.h:
15114        (V8PerContextDebugData):
15115        (WebCore):
15116
151172013-04-02  Alexei Filippov  <alph@chromium.org>
15118
15119        Web Inspector: Adjust toolbar labels position
15120        https://bugs.webkit.org/show_bug.cgi?id=113805
15121
15122        Reviewed by Pavel Feldman.
15123
15124        Move the labels 1px up to make them centered.
15125        Also fix font centering in native memory distribution snapshot.
15126
15127        * inspector/front-end/inspector.css:
15128        (.toolbar-label):
15129        * inspector/front-end/nativeMemoryProfiler.css:
15130        (.native-snapshot-view .data-grid td):
15131
151322013-04-02  Beth Dakin  <bdakin@apple.com>
15133
15134        Viewport constrained elements should work properly with headers and footers
15135        https://bugs.webkit.org/show_bug.cgi?id=113743
15136
15137        Reviewed by Simon Fraser.
15138
15139        ScrollableArea::constrainScrollPositionForOverhang() needs to take headerHeight 
15140        and footerHeight into account. It also needs to use totalContentsSize() instead of 
15141        contentsSize().
15142
15143        Send totalContentsSize() instead of contentsSize() and also send headerHeight() 
15144        and footerHeight().
15145        * page/FrameView.cpp:
15146        (WebCore::FrameView::scrollOffsetForFixedPosition):
15147        * page/FrameView.h:
15148        (FrameView):
15149
15150        The scrolling tree will also need to know about header and footer heights since it 
15151        will need these values to call 
15152        ScrollableArea::constrainScrollPositionForOverhang().
15153        * page/scrolling/ScrollingStateScrollingNode.cpp:
15154        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
15155        (WebCore::ScrollingStateScrollingNode::setHeaderHeight):
15156        (WebCore::ScrollingStateScrollingNode::setFooterHeight):
15157        * page/scrolling/ScrollingStateScrollingNode.h:
15158        (WebCore::ScrollingStateScrollingNode::headerHeight):
15159        (ScrollingStateScrollingNode):
15160        (WebCore::ScrollingStateScrollingNode::footerHeight):
15161        * page/scrolling/ScrollingTreeScrollingNode.cpp:
15162        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
15163        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
15164        * page/scrolling/ScrollingTreeScrollingNode.h:
15165        (WebCore::ScrollingTreeScrollingNode::headerHeight):
15166        (WebCore::ScrollingTreeScrollingNode::footerHeight):
15167        (ScrollingTreeScrollingNode):
15168        * page/scrolling/mac/ScrollingCoordinatorMac.h:
15169        (ScrollParameters):
15170        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
15171        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
15172        (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
15173        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
15174        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
15175
15176        Use footerHeight when calculating the maxValue and use headerHeight in determining 
15177        what the minimum value is. 
15178        * platform/ScrollableArea.cpp:
15179        (WebCore::constrainedScrollPosition):
15180        (WebCore::ScrollableArea::constrainScrollPositionForOverhang):
15181        * platform/ScrollableArea.h:
15182        (ScrollableArea):
15183
151842013-04-02  Stephen White  <senorblanco@chromium.org>
15185
15186        [Skia] Enable GPU-accelerated Skia path for FEComposite filter.
15187        https://bugs.webkit.org/show_bug.cgi?id=113797
15188
15189        Reviewed by Adrienne Walker.
15190
15191        Tests: css3/filters/effect-reference-composite-hw.html
15192               css3/filters/effect-reference-composite.html
15193
15194        * WebCore.gypi:
15195        * platform/graphics/filters/FEComposite.h:
15196        Enable Skia DAG hook for FEComposite.
15197        * platform/graphics/filters/skia/FECompositeSkia.cpp: Added.
15198        (WebCore::FEComposite::createImageFilter):
15199        Implement skia DAG builder for FEComposite, and implement generic
15200        skia version of composite filter.
15201
152022013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15203
15204        Web Inspector: Avoid using style.display="inline-block"
15205        https://bugs.webkit.org/show_bug.cgi?id=113802
15206
15207        Reviewed by Pavel Feldman.
15208
15209        No new tests.
15210
15211        - Create class "inline-block" which will set "display: inline-block"
15212        style.
15213        - Use this class with DIV elements to get "inline-block" element.
15214
15215        * inspector/front-end/ObjectPopoverHelper.js:
15216        (WebInspector.ObjectPopoverHelper.prototype.):
15217        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
15218        * inspector/front-end/ScriptsPanel.js:
15219        (WebInspector.ScriptsPanel):
15220        * inspector/front-end/inspector.css:
15221        (.inline-block):
15222
152232013-04-02  Andrey Kosyakov  <caseq@chromium.org>
15224
15225        Web Inspector: [Timeline] warning markers are not propagated to coalesced records
15226        https://bugs.webkit.org/show_bug.cgi?id=113789
15227
15228        Reviewed by Pavel Feldman.
15229
15230        Test: inspector/timeline/timeline-coalescing.html
15231
15232        * inspector/front-end/TimelinePresentationModel.js: set childHasWarning on coalescing record if the record it replaces had warnings.
15233        (WebInspector.TimelinePresentationModel.prototype._replaceWithCoalescedRecord):
15234
152352013-04-02  Yury Semikhatsky  <yurys@chromium.org>
15236
15237        Web Inspector: memory instrumentation for external strings is broken
15238        https://bugs.webkit.org/show_bug.cgi?id=113788
15239
15240        Reviewed by Pavel Feldman.
15241
15242        Native memory snapshot now provides information about JS external strings.
15243
15244        Test: inspector/profiler/memory-instrumentation-external-string.html
15245
15246        * inspector/InspectorMemoryAgent.cpp:
15247
152482013-04-02  Yury Semikhatsky  <yurys@chromium.org>
15249
15250        Web Inspector: memory instrumentation for external arrays is broken
15251        https://bugs.webkit.org/show_bug.cgi?id=113790
15252
15253        Report pointers to external arrays as retaining ones to make sure their
15254        size is counted correctly.
15255
15256        Reviewed by Pavel Feldman.
15257
15258        Test: inspector/profiler/memory-instrumentation-external-array.html
15259
15260        * inspector/InspectorMemoryAgent.cpp:
15261
152622013-04-02  Peter Beverloo  <peter@chromium.org>
15263
15264        [JSC] Don't create a JSValue if it's not going to be used for nullable attributes
15265        https://bugs.webkit.org/show_bug.cgi?id=112711
15266
15267        Reviewed by Sam Weinig.
15268
15269        When nullable attributes are used, it's possible that we disregard the JSValue
15270        when null should be returned instead. This is a waste, and we should cast the
15271        native type to a JSValue as late as possible.
15272
15273        * bindings/scripts/CodeGeneratorJS.pm:
15274        (GenerateImplementation):
15275        (NativeValueToLocal):
15276        * bindings/scripts/test/JS/JSTestObj.cpp:
15277        (WebCore::jsTestObjAttrWithGetterException):
15278        (WebCore::jsTestObjStringAttrWithGetterException):
15279        (WebCore::jsTestObjWithScriptStateAttributeRaises):
15280        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
15281        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
15282        (WebCore::jsTestObjNullableDoubleAttribute):
15283        (WebCore::jsTestObjNullableLongAttribute):
15284        (WebCore::jsTestObjNullableBooleanAttribute):
15285        (WebCore::jsTestObjNullableStringAttribute):
15286        (WebCore::jsTestObjNullableLongSettableAttribute):
15287        (WebCore::jsTestObjNullableStringValue):
15288        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
15289        (WebCore::jsTestTypedefsAttrWithGetterException):
15290        (WebCore::jsTestTypedefsStringAttrWithGetterException):
15291
152922013-04-02  Bem Jones-Bey  <bjonesbe@adobe.com>
15293
15294        [css exclusions] overflow:hidden undoes shape-outside offsets
15295        https://bugs.webkit.org/show_bug.cgi?id=110349
15296
15297        Reviewed by Julien Chaffraix.
15298
15299        When overflow: hidden was set on a float with shape-outside, the
15300        offset from the shape-outside was being ignored. This was because the
15301        float was being placed in the normal flow, causing the offsets to be
15302        calculated differently. Since floats with shape outside behave like
15303        positioned objects in many places, I have caused them to take the same
15304        behavior as positioned objects in this case as well: the floats with
15305        shape-outside do not get placed in the normal flow when overflow:
15306        hidden is set.
15307
15308        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-overflow-hidden.html
15309
15310        * rendering/RenderLayer.cpp:
15311        (WebCore::RenderLayer::shouldBeNormalFlowOnly): Floats that have
15312            shape-outside should not be in the normal flow.
15313
153142013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15315
15316        Web Inspector: resource preview of html/js/css types should be on a grey background
15317        https://bugs.webkit.org/show_bug.cgi?id=113791
15318
15319        Reviewed by Pavel Feldman.
15320
15321        No new tests.
15322
15323        - Add a css rule to set grey background for SourceFrame in resource view.
15324        - Add "fill" style to SourceFrame element to setup its height.
15325
15326        * inspector/front-end/SourceFrame.js:
15327        (WebInspector.SourceFrame):
15328        * inspector/front-end/resourceView.css:
15329        (.resource-view .script-view):
15330
153312013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15332
15333        Web Inspector: [CodeMirror] Editor doesn't have yellow background in DivergedFromVM state
15334        https://bugs.webkit.org/show_bug.cgi?id=113783
15335
15336        Reviewed by Pavel Feldman.
15337
15338        No new tests.
15339
15340        Force CodeMirrorTextEditor to have transparent background to inherit
15341        background color from source frame.
15342
15343        * inspector/front-end/cm/cmdevtools.css:
15344        (.CodeMirror):
15345
153462013-04-02  Jochen Eisinger  <jochen@chromium.org>
15347
15348        Check whether popups are allowed before creating a new window
15349        https://bugs.webkit.org/show_bug.cgi?id=113782
15350
15351        Reviewed by Adam Barth.
15352
15353        Otherwise, firing a generated mouse event at an anchor is enough to
15354        work around the popup blocker.
15355
15356        Test: fast/loader/url-selected-user-gesture.html
15357
15358        * loader/PolicyChecker.cpp:
15359        (WebCore::PolicyChecker::checkNewWindowPolicy):
15360
153612013-04-02  Jochen Eisinger  <jochen@chromium.org>
15362
15363        When computing the percentage of the logical height, use the logical top and bottom
15364        https://bugs.webkit.org/show_bug.cgi?id=113761
15365
15366        Reviewed by Ojan Vafai.
15367
15368        Test: fast/writing-mode/percentage-height-orthogonal-writing-modes.html
15369
15370        * rendering/RenderBox.cpp:
15371        (WebCore::RenderBox::computePercentageLogicalHeight):
15372
153732013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15374
15375        Web Inspector: [CodeMirror] do not show cursor in read-only mode
15376        https://bugs.webkit.org/show_bug.cgi?id=113793
15377
15378        Reviewed by Alexander Pavlov.
15379
15380        No new tests.
15381
15382        Pass "nocursor" option to CodeMirror's "readonly" setting.
15383
15384        * inspector/front-end/CodeMirrorTextEditor.js:
15385        (WebInspector.CodeMirrorTextEditor.prototype.setReadOnly):
15386
153872013-04-02  Nate Chapin  <japhet@chromium.org>
15388
15389        Unreviewed, rolling out r147402.
15390        http://trac.webkit.org/changeset/147402
15391        https://bugs.webkit.org/show_bug.cgi?id=112903
15392
15393        * dom/Document.cpp:
15394        (WebCore::Document::processHttpEquiv):
15395        * loader/DocumentLoader.cpp:
15396        (WebCore::DocumentLoader::responseReceived):
15397
153982013-04-02  ChangSeok Oh  <changseok.oh@collabora.com>
15399
15400        [GTK][AC] Support preserves3D css property for clutter ac backend.
15401        https://bugs.webkit.org/show_bug.cgi?id=113318
15402
15403        Reviewed by Gustavo Noronha Silva.
15404
15405        This patch brings preserve-3D css property support to WebKitGtk+ with clutter ac backed.
15406        Most of the code is based on Mac port's implementation. The core concept is that
15407        if a layer has preserve-3d property false, we mark itself and its immediate children
15408        to make them flatten. And then we remove 3D factor in a modelView matrix
15409        when applying it to each actor.
15410
15411        No new tests as this is covered with existing AC tests.
15412
15413        * platform/graphics/clutter/GraphicsLayerActor.cpp:
15414        (_GraphicsLayerActorPrivate):
15415        (graphics_layer_actor_init):
15416        (graphicsLayerActorApplyTransform):
15417        (graphicsLayerActorNew):
15418        (graphicsLayerActorRemoveFromSuperLayer):
15419        (graphicsLayerActorSetDrawsContent):
15420        (graphicsLayerActorSetFlatten):
15421        * platform/graphics/clutter/GraphicsLayerActor.h:
15422        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
15423        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
15424        (WebCore::GraphicsLayerClutter::platformLayer):
15425        (WebCore::GraphicsLayerClutter::moveOrCopyAnimations):
15426        (WebCore):
15427        (WebCore::GraphicsLayerClutter::setPreserves3D):
15428        (WebCore::GraphicsLayerClutter::flushCompositingState):
15429        (WebCore::GraphicsLayerClutter::recursiveCommitChanges):
15430        (WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers):
15431        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
15432        (WebCore::GraphicsLayerClutter::updateGeometry):
15433        (WebCore::GraphicsLayerClutter::updateSublayerList):
15434        (WebCore::GraphicsLayerClutter::updateStructuralLayer):
15435        (WebCore::GraphicsLayerClutter::ensureStructuralLayer):
15436        (WebCore::GraphicsLayerClutter::structuralLayerPurpose):
15437        (WebCore::GraphicsLayerClutter::layerForSuperlayer):
15438        * platform/graphics/clutter/GraphicsLayerClutter.h:
15439        (CommitState):
15440        (WebCore::GraphicsLayerClutter::CommitState::CommitState):
15441        (GraphicsLayerClutter):
15442        (WebCore::GraphicsLayerClutter::primaryLayer):
15443
154442013-04-02  Adam Klein  <adamk@chromium.org>
15445
15446        HTML parser should consistently inspect the namespace of elements on the stack of open elements
15447        https://bugs.webkit.org/show_bug.cgi?id=113723
15448
15449        Reviewed by Adam Barth.
15450
15451        Added HTMLStackItem::matchesHTMLTag method and use that nearly
15452        everywhere instead of HTMLStackItem::hasLocalName. The most important
15453        of these changes is in HTMLElementStack's inScopeCommon() function,
15454        where the use of matchesHTMLTag means that any of the inXXXScope()
15455        calls now only match HTML tags.
15456
15457        Tests: html5lib/generated/run-namespace-sensitivity-data.html
15458               html5lib/generated/run-namespace-sensitivity-write.html
15459
15460        * html/parser/HTMLConstructionSite.cpp:
15461        (WebCore::HTMLConstructionSite::generateImpliedEndTagsWithExclusion):
15462        * html/parser/HTMLElementStack.cpp:
15463        (WebCore::HTMLElementStack::popUntil):
15464        (WebCore::HTMLElementStack::topmost):
15465        (WebCore::inScopeCommon):
15466        (WebCore::HTMLElementStack::inScope):
15467        (WebCore::HTMLElementStack::inListItemScope):
15468        (WebCore::HTMLElementStack::inTableScope):
15469        (WebCore::HTMLElementStack::inButtonScope):
15470        (WebCore::HTMLElementStack::inSelectScope):
15471        * html/parser/HTMLElementStack.h:
15472        (WebCore::HTMLElementStack::popUntilPopped):
15473        * html/parser/HTMLFormattingElementList.cpp:
15474        (WebCore::HTMLFormattingElementList::closestElementInScopeWithName):
15475        * html/parser/HTMLStackItem.h:
15476        (WebCore::HTMLStackItem::matchesHTMLTag):
15477        (HTMLStackItem):
15478        * html/parser/HTMLTreeBuilder.cpp:
15479        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
15480        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
15481        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
15482        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
15483
154842013-04-02  Hayato Ito  <hayato@chromium.org>
15485
15486        Report memory usage for ShadowDistributedRules.
15487        https://bugs.webkit.org/show_bug.cgi?id=109882
15488
15489        Reviewed by Dimitri Glazkov.
15490
15491        This is a follow-up patch for r142855.
15492
15493        No new tests, no behavior change for layout tests.
15494
15495        * css/DocumentRuleSets.cpp:
15496        (WebCore):
15497        (WebCore::ShadowDistributedRules::reportMemoryUsage):
15498        (WebCore::DocumentRuleSets::reportMemoryUsage):
15499        * css/DocumentRuleSets.h:
15500        (ShadowDistributedRules):
15501
155022013-04-02  Chris Fleizach  <cfleizach@apple.com>
15503
15504        AX: Need to get line thickness from fraction on web
15505        https://bugs.webkit.org/show_bug.cgi?id=113720
15506
15507        Reviewed by David Kilzer.
15508
15509        Expose the line thickness property for fractions, which is needed to
15510        help determine the type of equation.
15511
15512        Test: platform/mac/accessibility/mathml-line-fraction.html
15513
15514        * accessibility/AccessibilityObject.h:
15515        (WebCore::AccessibilityObject::mathLineThickness):
15516        * accessibility/AccessibilityRenderObject.cpp:
15517        (WebCore::AccessibilityRenderObject::mathLineThickness):
15518        (WebCore):
15519        * accessibility/AccessibilityRenderObject.h:
15520        (AccessibilityRenderObject):
15521        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
15522        (-[WebAccessibilityObjectWrapper accessibilityMathLineThickness]):
15523        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
15524        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
15525        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
15526
155272013-04-02  Alexandre Elias  <aelias@chromium.org>
15528
15529        Unreviewed, rolling out r147389.
15530        http://trac.webkit.org/changeset/147389
15531        https://bugs.webkit.org/show_bug.cgi?id=113738
15532
15533        r147389 was temporary patch for Chromium branch management, needs
15534        revert.
15535
15536        * platform/ScrollView.cpp:
15537        (WebCore::positionScrollbarLayer):
15538        * rendering/RenderLayerBacking.cpp:
15539        (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
15540
155412013-04-02  David Vest  <davve@opera.com>
15542
15543        Hang when calling setCurrentTime on SVG with cyclic animation dependency chain
15544        https://bugs.webkit.org/show_bug.cgi?id=113485
15545
15546        Reviewed by Stephen Chenney.
15547
15548        If no exact match can be found, approximateBinarySearch may return
15549        either adjacent value to the key. Selecting the lesser value when
15550        there is a greater one may cause interval creation to fail in a
15551        way that causes infinite loops during seeking. Detect and amend
15552        this condition by selecting the greater value when possible.
15553
15554        Test: svg/animations/animation-dependency-hang.html
15555
15556        * svg/animation/SVGSMILElement.cpp:
15557        (WebCore::SVGSMILElement::findInstanceTime):
15558
155592013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15560
15561        Web Inspector: source location gets frozen after inspector reload
15562        https://bugs.webkit.org/show_bug.cgi?id=113776
15563
15564        Reviewed by Pavel Feldman.
15565
15566        Put statusBarText item in its own container and update its contents in
15567        ScriptsPanel._updateScriptViewStatusBarItems in similar way it's done
15568        for statusBarItems.
15569
15570        No new tests.
15571
15572        * inspector/front-end/ScriptsPanel.js:
15573        (WebInspector.ScriptsPanel):
15574        (WebInspector.ScriptsPanel.prototype.statusBarText):
15575        (WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
15576
155772013-04-02  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
15578
15579        Remove unneeded cpp file from CMake build. Rubber-stamp by Alexis Menard.
15580
15581        * CMakeLists.txt: Remove FFTFrameStub.cpp, since adding this file or not
15582        to your build is a platform decision.
15583
155842013-04-01  Andrey Kosyakov  <caseq@chromium.org>
15585
15586        Web Inspector: [Timeline] unify logic for 3 overview modes in Timeline
15587        https://bugs.webkit.org/show_bug.cgi?id=113708
15588
15589        Reviewed by Yury Semikhatsky.
15590
15591        - make TimelineOverviewPane logic independent on overview mode;
15592        - show only one of 3 controls at one time;
15593        - attach overview controls to the same parent.
15594
15595        * inspector/front-end/OverviewGrid.js: remove gridElement() and itemsGraphsElement(), no longer needed.
15596        (WebInspector.OverviewGrid):
15597        * inspector/front-end/TimelineOverviewPane.js:
15598        (WebInspector.TimelineOverviewPane):
15599        (WebInspector.TimelineOverviewPane.prototype.setMode):
15600        (WebInspector.TimelineOverviewPane.prototype._innerSetMode):
15601        (WebInspector.TimelineOverviewPane.prototype._createOverviewControl): 
15602        (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
15603        (WebInspector.TimelineOverviewPane.prototype._update):
15604        (WebInspector.TimelineOverviewPane.prototype.addFrame):
15605        (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
15606        (WebInspector.TimelineOverviewPane.prototype._reset):
15607        (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
15608        (WebInspector.TimelineOverviewBase.prototype.update):
15609        (WebInspector.TimelineOverviewBase.prototype.reset):
15610        (WebInspector.TimelineOverviewBase.prototype.categoryVisibilityChanged):
15611        (WebInspector.TimelineOverviewBase.prototype.addFrame):
15612        (WebInspector.TimelineOverviewBase.prototype.getWindowTimes):
15613        (WebInspector.TimelineEventOverview):
15614        (WebInspector.TimelineEventOverview.prototype.categoryVisibilityChanged):
15615        * inspector/front-end/timelinePanel.css:
15616
156172013-04-02  Julien Chaffraix  <jchaffraix@webkit.org>
15618
15619        webkit fails IETC grid-column-002
15620        https://bugs.webkit.org/show_bug.cgi?id=83907
15621
15622        Reviewed by Ojan Vafai.
15623
15624        Tests: fast/css-grid-layout/grid-item-column-row-get-set.html
15625               ietestcenter/css3/grid/grid-column-002.htm
15626
15627        * css/CSSParser.cpp:
15628        (WebCore::CSSParser::parseValue):
15629        Don't accept 0 as a valid <integer> position.
15630
156312013-04-02  Dmitry Gozman  <dgozman@chromium.org>
15632
15633        Web Inspector: allow referencing of nodes that have not been pushed to the front-end
15634        https://bugs.webkit.org/show_bug.cgi?id=110921
15635
15636        Reviewed by Pavel Feldman.
15637
15638        Nodes not yet pushed to front-end are referenced by BackendNodeId and retained.
15639        One can group nodes when generating BackendNodeIds to release them all together later.
15640
15641        To resolve node references by BackendNodeId, frontend should use new pushNodeByBackendIdToFrontend method.
15642        This will invalidate the generated BackendNodeId.
15643
15644        * inspector/Inspector.json:
15645        * inspector/InspectorDOMAgent.cpp:
15646        (WebCore::InspectorDOMAgent::discardBindings):
15647        (WebCore::InspectorDOMAgent::backendNodeIdForNode):
15648        (WebCore::InspectorDOMAgent::releaseBackendNodeIds):
15649        (WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend):
15650        * inspector/InspectorDOMAgent.h:
15651        (WebCore):
15652        (InspectorDOMAgent):
15653
156542013-04-02  Andrei Bucur  <abucur@adobe.com>
15655
15656        [CSS Regions] Nested auto-height regions don't layout correctly
15657        https://bugs.webkit.org/show_bug.cgi?id=111969
15658
15659        Reviewed by David Hyatt.
15660
15661        The patch fixes the auto-height regions processing model to work with nested named flows. Currently
15662        this use case doesn't work correctly because the order in which the computed height value is propagated
15663        to the regions is incorrect. For example, in the case of two flows (f1 and f2) and two auto-height
15664        regions (r1 and r2) with r2 a member of f1:
15665        1. the normal layout phase starts
15666        2. r1 is laid out with height = 0
15667        3. f1 is laid out including r2 with height = 0; overrideLogicalHeight for r1 is computed
15668        4. f2 is laid out; overrideLogicalHeight for r2 is computed
15669        5. the constrained layout phase starts
15670        6. r1 is laid out using the overrideLogicalHeight computed in the normal phase
15671        7. f1 is laid out including r2 with its overrideLogicalHeight
15672        8. f2 is laid out
15673
15674        The problem appears at step 6 because the overrideLogicalheight computed during step 3 assumes r2
15675        has a height of 0. The patch changes the algorithm to update the auto-height regions in the reverse
15676        order of their flow threads dependecies. Here is a high level overview of the new algorithm,
15677        considering the named flows are sorted in the order of their dependencies:
15678        1. The flows are laid out from the outer flow to the inner flow. This successfully computes the outer
15679        non-auto-height regions size so the inner flows have the necessary information to correctly fragment
15680        the content.
15681        2. The flows are laid out from the inner flow to the outer flow. After an inner flow is laid out it
15682        goes into the constrained layout phase and marks the auto-height regions they need layout. This
15683        means the outer flows will relayout if they depend on regions with auto-height regions belonging to
15684        inner flows. This step will correctly compute the overrideLogicalHeights for the auto-height regions.
15685        It's possible for non-auto-height regions to relayout if they depend on auto-height regions. This
15686        will invalidate the inner flow threads and mark them as needing layout.
15687        3. The last step is to do one last layout if there are pahtological dependencies between non-auto-height
15688        regions and auto-height regions as detected in the previous step.
15689
15690        The patch also removes the layout phase flag from RenderView and moves it to the flow threads. This
15691        happens because a flow needs to update its auto-height regions overrideLogicalHeight while updating
15692        the logical height of the regions belonging to the inner flows that are laid out by the flow (i.e. the
15693        outer flow is in the normal phase while the inner flows are in the constrained layout phase).
15694
15695        There's also a new flag on the RenderFlowThread that is set when the flow needs the constrained layout
15696        phase. This could have been placed on the flow thread controller but I think it will be useful when doing
15697        content balancing for the new multi-column implementation.
15698
15699        Another change is the moment we clear the overrideLogicalHeight value on empty auto-height regions because
15700        we don't have to relayout a flow thread once it's in the constrained phase. We need to have the correct
15701        flow thread portions correctly computed after the artificial forced break is applied at the end of the content.
15702
15703        Tests: fast/regions/autoheight-mixed-nested-complex-regions.html
15704               fast/regions/autoheight-mixed-nested-regions.html
15705               fast/regions/autoheight-mixed-parallel-regions.html
15706               fast/regions/autoheight-nested-regions.html
15707
15708        * rendering/FlowThreadController.cpp:
15709        (WebCore::FlowThreadController::FlowThreadController):
15710        (WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
15711        (WebCore):
15712        (WebCore::FlowThreadController::registerNamedFlowContentNode):
15713        (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
15714        (WebCore::FlowThreadController::updateFlowThreadsChainIfNecessary):
15715        (WebCore::FlowThreadController::updateFlowThreadsNeedingLayout):
15716        (WebCore::FlowThreadController::updateFlowThreadsNeedingTwoStepLayout):
15717        (WebCore::FlowThreadController::resetFlowThreadsWithAutoHeightRegions):
15718        (WebCore::FlowThreadController::updateFlowThreadsIntoConstrainedPhase):
15719        * rendering/FlowThreadController.h:
15720        (FlowThreadController):
15721        * rendering/RenderBlock.cpp:
15722        (WebCore::RenderBlock::layoutBlock):
15723        * rendering/RenderFlowThread.cpp:
15724        (WebCore::RenderFlowThread::RenderFlowThread):
15725        (WebCore::RenderFlowThread::validateRegions):
15726        (WebCore::RenderFlowThread::layout):
15727        (WebCore::RenderFlowThread::regionAtBlockOffset):
15728        (WebCore::RenderFlowThread::applyBreakAfterContent): Apply an artificial break at the end of the content.
15729        This way we can detect when the content ends and clear the overrideLogicalHeight on the empty auto-height regions.
15730        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
15731        (WebCore):
15732        (WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight):
15733        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
15734        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
15735        (WebCore::RenderFlowThread::addForcedRegionBreak):
15736        * rendering/RenderFlowThread.h:
15737        * rendering/RenderRegion.cpp:
15738        (WebCore::RenderRegion::pageLogicalWidth):
15739        (WebCore::RenderRegion::pageLogicalHeight):
15740        (WebCore::RenderRegion::maxPageLogicalHeight):
15741        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
15742        (WebCore::RenderRegion::layoutBlock):
15743        (WebCore::RenderRegion::updateLogicalHeight):
15744        * rendering/RenderView.cpp:
15745        (WebCore::RenderView::RenderView):
15746        (WebCore):
15747        (WebCore::RenderView::layoutContentInAutoLogicalHeightRegions):
15748        (WebCore::RenderView::layout):
15749        * rendering/RenderView.h:
15750        (WebCore):
15751        (RenderView):
15752
157532013-04-02  Andrey Kosyakov  <caseq@chromium.org>
15754
15755        Web Inspector: ignore minimum record duration filter in Timeline overview
15756        https://bugs.webkit.org/show_bug.cgi?id=113705
15757
15758        Reviewed by Pavel Feldman.
15759
15760        * inspector/front-end/TimelineOverviewPane.js:
15761        * inspector/front-end/TimelinePanel.js:
15762        (WebInspector.TimelinePanel.prototype._durationFilterChanged):
15763
157642013-03-29  Andrey Kosyakov  <caseq@chromium.org>
15765
15766        Web Inspector: display the number of dirty render objects in Layout timeline event
15767        https://bugs.webkit.org/show_bug.cgi?id=95331
15768
15769        Reviewed by Pavel Feldman.
15770
15771        Count the render objects that need layout in InspectorTimelineAgent::willLayout()
15772        and display the number in popover over Layout record in Timeline panel.
15773
15774        * English.lproj/localizedStrings.js:
15775        * inspector/InspectorTimelineAgent.cpp:
15776        (WebCore::InspectorTimelineAgent::willLayout):
15777        (WebCore::InspectorTimelineAgent::didLayout):
15778        * inspector/TimelineRecordFactory.cpp:
15779        (WebCore):
15780        (WebCore::TimelineRecordFactory::createLayoutData):
15781        (WebCore::TimelineRecordFactory::appendLayoutRoot):
15782        * inspector/TimelineRecordFactory.h:
15783        (TimelineRecordFactory):
15784        * inspector/front-end/TimelinePresentationModel.js:
15785        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
15786
157872013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15788
15789        Web Inspector: [CodeMirror] Popover for codemirror
15790        https://bugs.webkit.org/show_bug.cgi?id=113771
15791
15792        Reviewed by Pavel Feldman.
15793
15794        Implement methods TextEditor.cursorPositionToCoordinates, TextEditor.coordinatesToCursorPosition and
15795        TextEditor.tokenAtTextPosition in CodeMirrorTextEditor to support popover
15796        functionality. Add css classes to highlight popover anchoring text.
15797
15798        No new tests.
15799
15800        * inspector/front-end/CodeMirrorTextEditor.js:
15801        (WebInspector.CodeMirrorTextEditor.prototype.cursorPositionToCoordinates):
15802        (WebInspector.CodeMirrorTextEditor.prototype.coordinatesToCursorPosition):
15803        (WebInspector.CodeMirrorTextEditor.prototype.tokenAtTextPosition):
15804        * inspector/front-end/cm/cmdevtools.css:
15805        (.CodeMirror .source-frame-eval-expression):
15806        (.CodeMirror .source-frame-eval-expression-end):
15807        (.CodeMirror .source-frame-eval-expression-start):
15808
158092013-04-02  Carlos Garcia Campos  <cgarcia@igalia.com>
15810
15811        [BlackBerry] Implement ScrollingCoordinator::frameViewLayoutUpdated()
15812        https://bugs.webkit.org/show_bug.cgi?id=113763
15813
15814        Reviewed by Rob Buis.
15815
15816        PR 318945
15817        Internally reviewed by Jakob Petsovits.
15818
15819        And remove the BlackBerry specific methods
15820        frameViewFrameRectDidChange and frameViewContentsSizeDidChange.
15821
15822        * page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.cpp:
15823        (WebCore::ScrollingCoordinatorBlackBerry::frameViewLayoutUpdated):
15824        Called when the frame view has been laid out. Update the contents
15825        rectangle and visible area of the scroll layer for the given frame
15826        view.
15827        * page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.h:
15828        (ScrollingCoordinatorBlackBerry):
15829        * platform/graphics/blackberry/LayerWebKitThread.h:
15830        (WebCore::LayerWebKitThread::setFrameVisibleRect): Return early if
15831        value hasn't changed.
15832        (WebCore::LayerWebKitThread::setFrameContentsSize): Ditto.
15833
158342013-04-02  Andrey Lushnikov  <lushnikov@chromium.org>
15835
15836        Web Inspector: Separate JavaScriptSourceFrame popover from knowledge of editor's DOM
15837        https://bugs.webkit.org/show_bug.cgi?id=113412
15838
15839        Reviewed by Pavel Feldman.
15840
15841        - Use TextEditor.coordinatesToCursorPosition,
15842        TextEditor.cursorPositionToCoordinates and TextEditor.tokenAtTextPosition to figure out
15843        hovering area and create popover anchor.
15844        - Use TextEditor.highlightRange/TextEditor.removeHighlight methods to
15845        highlight hovering text in editor.
15846
15847        No new tests: no change in behaviour.
15848
15849        * inspector/front-end/DefaultTextEditor.js:
15850        * inspector/front-end/JavaScriptSourceFrame.js:
15851        (WebInspector.JavaScriptSourceFrame):
15852        (WebInspector.JavaScriptSourceFrame.prototype.willHide):
15853        (WebInspector.JavaScriptSourceFrame.prototype._getPopoverAnchor):
15854        (WebInspector.JavaScriptSourceFrame.prototype.):
15855        (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
15856        (WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
15857        * inspector/front-end/inspector.css:
15858        (.popover-anchor):
15859        (.source-frame-eval-expression):
15860
158612013-04-02  Mihnea Ovidenie  <mihnea@adobe.com>
15862
15863        [CSSRegions] RenderFlowThread should not be created as a Document renderer
15864        https://bugs.webkit.org/show_bug.cgi?id=113658
15865
15866        Reviewed by Julien Chaffraix.
15867
15868        After https://bugs.webkit.org/show_bug.cgi?id=107138, RenderFlowThread should not be constructed as a renderer for Document.
15869        Since it does not have an element associated, it will be constructed using the pattern for anonymous blocks.
15870        However, since I do not want the flow thread to be collapsed as anonymous blocks are, i changed RenderObject::isAnonymousBlock
15871        to return false for a RenderFlowThread (the alternative would have been to patch more call sites to prevent RenderFlowThread
15872        collapsing as anonymous block).
15873
15874        Covered by existing tests.
15875
15876        * rendering/FlowThreadController.cpp:
15877        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
15878        * rendering/RenderFlowThread.cpp:
15879        (WebCore::RenderFlowThread::RenderFlowThread):
15880        * rendering/RenderFlowThread.h:
15881        * rendering/RenderMultiColumnBlock.cpp:
15882        (WebCore::RenderMultiColumnBlock::addChild):
15883        * rendering/RenderMultiColumnFlowThread.cpp:
15884        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
15885        (WebCore::RenderMultiColumnFlowThread::createAnonymous):
15886        * rendering/RenderMultiColumnFlowThread.h:
15887        (RenderMultiColumnFlowThread):
15888        * rendering/RenderNamedFlowThread.cpp:
15889        (WebCore::RenderNamedFlowThread::createAnonymous):
15890        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
15891        * rendering/RenderNamedFlowThread.h:
15892        (RenderNamedFlowThread):
15893        * rendering/RenderObject.h:
15894        (WebCore::RenderObject::isAnonymousBlock):
15895
158962013-04-02  Shinya Kawanaka  <shinyak@chromium.org>
15897
15898        Unreviewed, rolling out r147383.
15899        http://trac.webkit.org/changeset/147383
15900        https://bugs.webkit.org/show_bug.cgi?id=112369
15901
15902        Speculative rollout because of lots of layout test failure
15903
15904        * html/parser/HTMLDocumentParser.cpp:
15905        (WebCore::HTMLDocumentParser::~HTMLDocumentParser):
15906        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
15907        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
15908        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
15909        (WebCore::HTMLDocumentParser::insert):
15910        * html/parser/HTMLParserScheduler.cpp:
15911        (WebCore::PumpSession::PumpSession):
15912        * html/parser/HTMLParserScheduler.h:
15913
159142013-04-02  Eugene Klyuchnikov  <eustas@chromium.org>
15915
15916        Web Inspector: [HeapProfiler] Table rows do not appear when resizing.
15917        https://bugs.webkit.org/show_bug.cgi?id=113760
15918
15919        Reviewed by Yury Semikhatsky.
15920
15921        Analysis: custom-made split-view doesn't notify content panes about
15922        resizing.
15923
15924        * inspector/front-end/HeapSnapshotView.js:
15925        (WebInspector.HeapSnapshotView.prototype._updateRetainmentViewHeight):
15926        Notify content pane about resize.
15927
159282013-04-02  Mihnea Ovidenie  <mihnea@adobe.com>
15929
15930        [CSSRegions] Clean-up RenderFlowThread::updateRegionsFlowThreadPortionRect
15931        https://bugs.webkit.org/show_bug.cgi?id=113659
15932
15933        Reviewed by Julien Chaffraix.
15934
15935        RenderRegion::logicalHeightOfAllFlowThreadContent already contains the
15936        override logical content height for auto-height regions in normal layout phase.
15937        Therefore, there is no need to explicitly override region's rect height with
15938        the region's overrideLogicalContentHeight as the region rect already contains
15939        the right value.
15940
15941        No change in functionality, covered by existing tests.
15942
15943        * rendering/RenderFlowThread.cpp:
15944        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
15945        * rendering/RenderRegion.cpp:
15946        (WebCore::RenderRegion::pageLogicalHeight):
15947        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
15948
159492013-04-02  Mike West  <mkwst@chromium.org>
15950
15951        X-Frame-Options: Blocked frames should not inherit their parent's SecurityOrigin.
15952        https://bugs.webkit.org/show_bug.cgi?id=112903
15953
15954        Reviewed by Adam Barth.
15955
15956        This change brings WebKit in line with IE and Gecko's behavior, both of
15957        which treat the blocked frame as being cross-origin for the purposes of
15958        access checks ('[frame].contentWindow.location.href' is inaccessible,
15959        for example).
15960
15961        * dom/Document.cpp:
15962        (WebCore::Document::processHttpEquiv):
15963            Rather than redirecting to 'about:blank', redirect to
15964            'data:text/html,<p></p>' which does not inherit the SecurityOrigin
15965            of the parent.
15966        * loader/DocumentLoader.cpp:
15967        (WebCore::DocumentLoader::responseReceived):
15968            Before calling cancelMainResourceLoad, ensure that the frame's
15969            document is sandboxed into a unique origin so that it doesn't
15970            inherit the parent's SecurityOrigin.
15971
159722013-04-01  Elliott Sprehn  <esprehn@chromium.org>
15973
15974        RenderObject::offsetParent should return Element*
15975        https://bugs.webkit.org/show_bug.cgi?id=113739
15976
15977        Reviewed by Abhishek Arya.
15978
15979        The offsetParent of a node should always be an Element, ensure this
15980        by fixing RenderObject::offsetParent to return an Element* and clean up
15981        the method to match the algorithm in the spec which lets us remove the
15982        comments that were trying to explain what was going on.
15983
15984        This also hardens against badness where RenderObject::offsetParent
15985        could have returned a renderer with a non-Element node which would result
15986        in a bad cast in Element::offsetParent. We fixed all cases of this, but
15987        this patch makes sure such things never happen again.
15988
15989        No new tests, no change in behavior.
15990
15991        * dom/Element.cpp:
15992        (WebCore::Element::offsetParent):
15993        * rendering/RenderBoxModelObject.cpp:
15994        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
15995        * rendering/RenderObject.cpp:
15996        (WebCore::RenderObject::offsetParent): Now returns Element*.
15997        * rendering/RenderObject.h:
15998        (RenderObject):
15999
160002013-04-01  Alpha Lam  <hclam@chromium.org>
16001
16002        Simply GIFImageReader error handling
16003        https://bugs.webkit.org/show_bug.cgi?id=113718
16004
16005        Reviewed by Adam Barth.
16006
16007        When GIFImageReader encounters a parsing error it should just return
16008        without doing any more work. Current code saves a boolean before return,
16009        this is not necessary.
16010
16011        Tested with existing unit tests.
16012        Tested locally with ASAN build with 60k GIF images.
16013
16014        * platform/image-decoders/gif/GIFImageDecoder.cpp:
16015        (WebCore::GIFImageDecoder::repetitionCount):
16016        * platform/image-decoders/gif/GIFImageReader.cpp:
16017        (GIFImageReader::decode):
16018        * platform/image-decoders/gif/GIFImageReader.h:
16019        (GIFImageReader::GIFImageReader):
16020        (GIFImageReader):
16021
160222013-04-01  Elliott Sprehn  <esprehn@chromium.org>
16023
16024        Make all v8 weak callbacks type safe
16025        https://bugs.webkit.org/show_bug.cgi?id=111802
16026
16027        Reviewed by Adam Barth.
16028
16029        Make all v8 handle weak callbacks typesafe by adding a new class WeakHandleListner
16030        that uses templates to generate the callback proxies that have the correct type
16031        arguments. Now getting the arguments wrong will fail compilation.
16032
16033        No new tests, no change in behavior.
16034
16035        * bindings/v8/DOMDataStore.h:
16036        (WebCore::::callback):
16037        * bindings/v8/DOMWrapperMap.h:
16038        (WebCore::DOMWrapperMap::DOMWrapperMap):
16039        (WebCore::DOMWrapperMap::set):
16040        (WebCore::DOMWrapperMap::reportMemoryUsage):
16041        (DOMWrapperMap):
16042        * bindings/v8/DOMWrapperWorld.cpp:
16043        (WebCore::::callback):
16044        (WebCore::DOMWrapperWorld::makeContextWeak):
16045        * bindings/v8/ScriptState.cpp:
16046        (WebCore::::callback):
16047        (WebCore::ScriptState::ScriptState):
16048        * bindings/v8/ScriptState.h:
16049        (ScriptState):
16050        * bindings/v8/ScriptWrappable.h:
16051        (ScriptWrappable):
16052        (WebCore::ScriptWrappable::setWrapper):
16053        (WebCore::::callback):
16054        * bindings/v8/V8AbstractEventListener.cpp:
16055        (WebCore::::callback):
16056        (WebCore::V8AbstractEventListener::setListenerObject):
16057        * bindings/v8/V8AbstractEventListener.h:
16058        (V8AbstractEventListener):
16059        * bindings/v8/V8MutationCallback.cpp:
16060        (WebCore::::callback):
16061        (WebCore::V8MutationCallback::V8MutationCallback):
16062        * bindings/v8/V8MutationCallback.h:
16063        (V8MutationCallback):
16064        * bindings/v8/V8NPObject.cpp:
16065        (V8NPTemplateMap):
16066        (WebCore::V8NPTemplateMap::set):
16067        (WebCore::::callback):
16068        (WebCore::staticNPObjectMap):
16069        * bindings/v8/V8Utilities.h:
16070        (WeakHandleListener):
16071        (WebCore::WeakHandleListener::makeWeak):
16072        (WebCore::WeakHandleListener::WeakHandleListener):
16073        (WebCore::WeakHandleListener::invokeWeakCallback):
16074        * bindings/v8/V8ValueCache.cpp:
16075        (WebCore::::callback):
16076        (WebCore::StringCache::v8ExternalStringSlow):
16077        * bindings/v8/custom/V8InjectedScriptManager.cpp:
16078        (WebCore::::callback):
16079        (WebCore::createInjectedScriptHostV8Wrapper):
16080
160812013-04-01  Tien-Ren Chen  <trchen@chromium.org>
16082
16083        Hide non-coordinated scrollbars for Android M26
16084        https://bugs.webkit.org/show_bug.cgi?id=113738
16085
16086        Reviewed by Simon Fraser.
16087
16088        This patch will hide any non-coordinated scrollbars on Android.
16089        Coordinated scrollbars won't be affected.
16090
16091        Currently all scrollbars are coordinated on Android. The sole purpose
16092        of this patch is to be cherry-picked to the M26 branch.
16093
16094        No new tests. Please revert immediately after landed.
16095
16096        * platform/ScrollView.cpp:
16097        (WebCore::positionScrollbarLayer):
16098        * rendering/RenderLayerBacking.cpp:
16099        (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
16100
161012013-04-01  Chris Evans  <cevans@google.com>
16102
16103        Crash in Node::enclosingBlockFlowElement()
16104        https://bugs.webkit.org/show_bug.cgi?id=113712
16105
16106        Reviewed by Abhishek Arya.
16107
16108        Fix a bad Node assumption if we walk up to the document root.
16109
16110        Test: editing/execCommand/format-block-at-root.html
16111
16112        * dom/Node.cpp:
16113        (WebCore::Node::isBlockFlowElement): Check we found an Element Node and rename from isBlockFlow().
16114        (WebCore::Node::enclosingBlockFlowElement): Use the new toElement().
16115        * editing/FormatBlockCommand.cpp:
16116        (WebCore::FormatBlockCommand::formatRange): Check for NULL.
16117        * editing/InsertListCommand.cpp:
16118        (WebCore::InsertListCommand::doApplyForSingleParagraph):
16119        * editing/ReplaceSelectionCommand.cpp:
16120        (WebCore::enclosingInline): Impact from method rename.
16121
161222013-04-01  James Simonsen  <simonjam@chromium.org>
16123
16124        [Resource Timing] Expose timing information for iframes
16125        https://bugs.webkit.org/show_bug.cgi?id=103927
16126
16127        Reviewed by Nate Chapin.
16128
16129        The only catch with main documents is that we only want to record the load that was initiated by
16130        adding the <iframe> to a document. We don't want any subsequent navigations within the iframe to
16131        be reported.
16132
16133        Test: http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html
16134
16135        * loader/cache/CachedResourceLoader.cpp:
16136        (WebCore::CachedResourceLoader::revalidateResource):
16137        (WebCore::CachedResourceLoader::loadResource):
16138        (WebCore::CachedResourceLoader::loadDone): Make sure iframes are reported in the parent.
16139
161402013-04-01  Konrad Piascik  <kpiascik@blackberry.com>
16141
16142        [BlackBerry] Move Path into it's own header
16143        https://bugs.webkit.org/show_bug.cgi?id=113724
16144
16145        Reviewed by Rob Buis.
16146
16147        No behavioural change.
16148
16149        * platform/graphics/blackberry/PathBlackBerry.cpp:
16150
161512013-04-01  Konrad Piascik  <kpiascik@blackberry.com>
16152
16153        [BlackBerry] canvas is not rendering correctly for www.html5-benchmark.com
16154        https://bugs.webkit.org/show_bug.cgi?id=113716
16155
16156        Reviewed by Rob Buis.
16157
16158        PR 317205
16159        Internally reivewed by: Mike Lattanzio, Jacky Jiang
16160
16161        This is a site issue where they detect physical pixels by multiplying
16162        availWidth * devicePixelRatio.  This gives us an invalid result since
16163        we don't round the CSS pixels that are reported to availWidth and availHeight.
16164
16165        * platform/blackberry/PlatformScreenBlackBerry.cpp:
16166        (WebCore::toUserSpace):
16167
161682013-04-01  Hans Muller  <hmuller@adobe.com>
16169
16170        [CSS Exclusions] shape-outside on floats fails to respect shape-margin's vertical extent
16171        https://bugs.webkit.org/show_bug.cgi?id=113600
16172
16173        Reviewed by Dirk Schulze.
16174
16175        ExclusionShapeInsideInfo classes need to depend on the ExclusionShape's padded boundary and
16176        ExclusionShapeOutsideInfo classes should depend on the ExclusionShape's margin boundary. Added
16177        a virtual method to the ExclusionShapeInfo that returns the ExclusionShape's logical bounding box -
16178        computedShapeLogicalBoundingBox() - and overrode that method in the subclasses to return the
16179        value of the appropriate ExclusionShape method. Added shapeMarginLogicalBoundingBox() and
16180        shapePaddingLogicalBoundingBox() methods to ExclusionShape and removed the shapeLogicalBoundingBox()
16181        method, which did not take shape-margin or shape-padding into account.
16182
16183        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-bottom.html
16184
16185        * rendering/ExclusionPolygon.h: Defined the padding and margin bounding box virtual methods.
16186        * rendering/ExclusionRectangle.h: Defined the padding and margin bounding box virtual methods.
16187        * rendering/ExclusionShape.h: Added the padding and margin bounding box virtual abstract methods. Removed shapeLogicalBoundingBox().
16188        (ExclusionShape):
16189        * rendering/ExclusionShapeInfo.h:
16190        (WebCore::ExclusionShapeInfo::shapeLogicalTop): Now calls computedShapeLogicalBoundingBox().
16191        (WebCore::ExclusionShapeInfo::shapeLogicalBottom): Ditto.
16192        (WebCore::ExclusionShapeInfo::shapeLogicalLeft): Ditto.
16193        (WebCore::ExclusionShapeInfo::shapeLogicalRight): Ditto.
16194        (WebCore::ExclusionShapeInfo::shapeLogicalWidth): Ditto.
16195        (WebCore::ExclusionShapeInfo::shapeLogicalHeight): Ditto.
16196        (ExclusionShapeInfo): Added computedShapeLogicalBoundingBox().
16197        * rendering/ExclusionShapeInsideInfo.h:
16198        (ExclusionShapeInsideInfo):
16199        (WebCore::ExclusionShapeInsideInfo::computedShapeLogicalBoundingBox): Gets the padded shape's bounding box.
16200        * rendering/ExclusionShapeOutsideInfo.h:
16201        (ExclusionShapeOutsideInfo):
16202        (WebCore::ExclusionShapeOutsideInfo::computedShapeLogicalBoundingBox): Gets the margin shape's bounding box.
16203
162042013-04-01  Adam Barth  <abarth@webkit.org>
16205
16206        Assertion failure !m_lastChunkBeforeScript in HTMLDocumentParser during inspector/debugger/pause-in-inline-script.html
16207        https://bugs.webkit.org/show_bug.cgi?id=112369
16208
16209        Reviewed by Eric Seidel.
16210
16211        The threaded HTML parser wasn't correctly handling the nested event
16212        loops that can arise from the JavaScript debugger and from
16213        showModalDialog. When the parser received a chunk from the background
16214        parser, it was always processing it immediately, which lead to
16215        re-entrancy. Now, we'll queue the chunk in the speculation buffer and
16216        process it once the stack unwinds.
16217
16218        * html/parser/HTMLDocumentParser.cpp:
16219        (WebCore::HTMLDocumentParser::~HTMLDocumentParser):
16220        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
16221        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
16222        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
16223        (WebCore::HTMLDocumentParser::insert):
16224        * html/parser/HTMLParserScheduler.cpp:
16225        (WebCore::PumpSession::PumpSession):
16226        * html/parser/HTMLParserScheduler.h:
16227
162282013-04-01  Michael Pruett  <michael@68k.org>
16229
16230        [JSC] IndexedDB: Exceptions not thrown for non-cloneable values
16231        https://bugs.webkit.org/show_bug.cgi?id=113689
16232
16233        Reviewed by Kentaro Hara.
16234
16235        ScriptValue::serialize() should not clear exceptions thrown during
16236        serialization. This change is needed to match behavior in V8.
16237
16238        Tests: storage/indexeddb/clone-exception.html
16239               storage/indexeddb/exceptions.html
16240               storage/indexeddb/structured-clone.html
16241
16242        * bindings/js/ScriptValue.cpp:
16243        (WebCore::ScriptValue::serialize):
16244
162452013-04-01  Joshua Bell  <jsbell@chromium.org>
16246
16247        [Chromium] IndexedDB: Turn "should only be true in unit tests" comments into ASSERTs
16248        https://bugs.webkit.org/show_bug.cgi?id=113597
16249
16250        Reviewed by Adam Barth.
16251
16252        In the vein of wkbug.com/111233 and wkbug.com/110820 don't just comment that
16253        some condition is true only in unit tests - ASSERT that Chromium's unitTestSupport()
16254        is non-null to catch errors during development.
16255
16256        Exercised by Chromium's webkit_unit_tests.
16257
16258        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16259        (WebCore::IDBDatabaseBackendImpl::openConnection):
16260        (WebCore::IDBDatabaseBackendImpl::close):
16261
162622013-04-01  Roger Fong  <roger_fong@apple.com>
16263
16264        VS2010 WebCoreGenerated build scripts should use new feature-defines script.
16265        https://bugs.webkit.org/show_bug.cgi?id=113737.
16266
16267        Reviewed by Timothy Horton.
16268
16269        * WebCore.vcxproj/build-generated-files.sh:
16270
162712013-04-01  Tim Horton  <timothy_horton@apple.com>
16272
16273        Autosize should use documentRect height instead of scrollHeight
16274        https://bugs.webkit.org/show_bug.cgi?id=112770
16275
16276        Reviewed by David Levin.
16277
16278        Autosizing fails to compute the correct height if the root element is very
16279        small but the document has significant overflow.
16280
16281        Also, unconditionally start laying out from the minimum height, so that the
16282        documentRect can shrink below its previous height if needed.
16283
16284        No new tests; autosizing is not currently exposed in a testable way on Mac.
16285
16286        * page/FrameView.cpp:
16287        (WebCore::FrameView::autoSizeIfEnabled):
16288
162892013-04-01  Hayato Ito  <hayato@chromium.org>
16290
16291        [Shadow DOM] Change the order of event dispatching at AT_TARGET phase.
16292        https://bugs.webkit.org/show_bug.cgi?id=113676
16293
16294        Reviewed by Dimitri Glazkov.
16295
16296        Change the order of event dispatching at AT_TARGET phase so that it mimics bubbling events.
16297
16298        The spec side bug is:
16299        https://www.w3.org/Bugs/Public/show_bug.cgi?id=21404
16300
16301        Example:
16302
16303        Given the event path, from Node A (top-most) to Node G (target,
16304        inner-most), where C and D are shadow hosts and G is the target,
16305        the event dispatching order in the current WebKit implementation is:
16306        (T: AT_TARGET, C: CAPTURING, B: BUBBLING)
16307
16308        For bubbling events:
16309
16310          A          1 (C)  11 (B)
16311          B          2 (C)  10 (B)
16312          C (SH)     3 (T)
16313          D          4 (C)   9 (B)
16314          E (SH)     5 (T)
16315          F          6 (C)   8 (B)
16316          G (Target) 7 (T)
16317
16318        For non-bubbling events:
16319
16320          A          1 (C)
16321          B          2 (C)
16322          C (SH)     3 (T)
16323          D          4 (C)
16324          E (SH)     5 (T)
16325          F          6 (C)
16326          G (Target) 7 (T)
16327
16328        This patch has changed the order of event dispatching as follows:
16329
16330        For bubbling events:
16331
16332          A          1 (C)  11 (B)
16333          B          2 (C)  10 (B)
16334          C (SH)             9 (T)
16335          D          3 (C)   8 (B)
16336          E (SH)             7 (T)
16337          F          4 (C)   6 (B)
16338          G (Target)         5 (T)
16339
16340        For non-bubbling events:
16341
16342          A          1 (C)
16343          B          2 (C)
16344          C (SH)            7 (T)
16345          D          3 (C)
16346          E (SH)            6 (T)
16347          F          4 (C)
16348          G (Target)        5 (T)
16349
16350        No new tests, updating existing layouts.
16351
16352        * dom/EventDispatcher.cpp:
16353        (WebCore::EventDispatcher::dispatchEventAtCapturing):
16354        (WebCore::EventDispatcher::dispatchEventAtBubbling):
16355        * dom/EventDispatcher.h:
16356        (EventDispatcher):
16357
163582013-04-01  Nate Chapin  <japhet@chromium.org>
16359
16360        Crash in WebCore::HTMLMediaElement::~HTMLMediaElement.
16361        https://bugs.webkit.org/show_bug.cgi?id=113531
16362
16363        Reviewed by Adam Barth.
16364
16365        No new tests, though this is intermittently reproducible with
16366        http/tests/misc/delete-frame-during-readystatechange.html under ASAN.
16367
16368        * html/HTMLMediaElement.cpp:
16369        (WebCore::HTMLMediaElement::~HTMLMediaElement): Clear the media player manually
16370            before the destructor exits. Clearing the media player may cancel a resource load,
16371            which can trigger a readystatechange event. It's possible for the HTMLMediaElement
16372            to attempt to fire an abort event within the readystatechange event, even though it is
16373            now in an inconsistent state. Clearling the media player before finishing the destructor
16374            ensures that the HTMLMediaElement will at least still be alive if this case is triggered.
16375            Set m_completelyLoaded to true to ensure that if userCancelledLoad() is called, it doesn't
16376            attempt to fire events while destructing.
16377
163782013-04-01  Sheriff Bot  <webkit.review.bot@gmail.com>
16379
16380        Unreviewed, rolling out r146373.
16381        http://trac.webkit.org/changeset/146373
16382        https://bugs.webkit.org/show_bug.cgi?id=113731
16383
16384        broke autosizing shrinking past previous size (Requested by
16385        thorton on #webkit).
16386
16387        * page/FrameView.cpp:
16388        (WebCore::FrameView::autoSizeIfEnabled):
16389
163902013-04-01  Timothy Hatcher  <timothy@apple.com>
16391
16392        Allow changing Web Inspector dock sides without undocking first.
16393
16394        https://webkit.org/b/113661
16395        rdar://problem/13543127
16396
16397        Reviewed by Joseph Pecoraro.
16398
16399        * inspector/InspectorFrontendClientLocal.cpp:
16400        (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal): Initialize m_dockSide.
16401
16402        (WebCore::InspectorFrontendClientLocal::canAttachWindow): If we are already attached, allow
16403        attaching again to allow switching sides.
16404
16405        (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Set m_dockSide.
16406
16407        * inspector/InspectorFrontendClientLocal.h:
16408        (InspectorFrontendClientLocal): Added m_dockSide.
16409
164102013-04-01  Alexey Proskuryakov  <ap@apple.com>
16411
16412        https://bugs.webkit.org/show_bug.cgi?id=113721
16413        <rdar://problem/13549181> REGRESSION (r146929): HTTP auth credentials not reused during session
16414
16415        Reviewed by Brady Eidson.
16416
16417        * platform/network/mac/ResourceHandleMac.mm:
16418        (WebCore::ResourceHandle::start):
16419        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
16420        Added FIXMEs.
16421
164222013-04-01  Timothy Hatcher  <timothy@apple.com>
16423
16424        Make 'this' evaluate to the correct object when paused in the Debugger.
16425
16426        https://webkit.org/b/113607
16427        rdar://problem/13538351
16428
16429        Reviewed by Joseph Pecoraro.
16430
16431        * inspector/InjectedScriptSource.js:
16432        (InjectedScript.prototype._evaluateOn): Bind 'this' to the expression function.
16433
164342013-04-01  Victor Carbune  <vcarbune@chromium.org>
16435
16436        TextTrackCue Extension for WebVTT Regions
16437        https://bugs.webkit.org/show_bug.cgi?id=109821
16438
16439        Reviewed by Eric Carlson.
16440
16441        The TextTrackCue gets a new attribute and setting, regionId, which specifies
16442        to which region the cue belongs to. The attribute is guarded by WEBVTT_REGIONS
16443        and is by default disabled in ports.
16444
16445        Test: media/track/regions-webvtt/text-track-cue-region-attribute.html
16446
16447        * html/track/TextTrackCue.cpp:
16448        (WebCore::TextTrackCue::TextTrackCue): Added member variable for the regionId attribute.
16449        (WebCore):
16450        (WebCore::TextTrackCue::setRegionId): Setter for the regionId attribute.
16451        (WebCore::TextTrackCue::settingName): Added RegionId setting name.
16452        (WebCore::TextTrackCue::setCueSettings): Parsed the "region:" cue setting.
16453        * html/track/TextTrackCue.h:
16454        (TextTrackCue):
16455        (WebCore::TextTrackCue::regionId): Getter for the regionId attribute.
16456        * html/track/TextTrackCue.idl: Updated to match the WebVTT Regions Extension.
16457
164582013-03-05  Anders Carlsson  <andersca@apple.com>
16459
16460        Apply changes from storage events locally
16461        https://bugs.webkit.org/show_bug.cgi?id=111502
16462
16463        Reviewed by Sam Weinig.
16464
16465        Add and export a helper function for setting an item without taking
16466        into account the quota for the map. Also, reindent StorageMap.h
16467
16468        * WebCore.exp.in:
16469        * storage/StorageMap.cpp:
16470        (WebCore::StorageMap::setItemIgnoringQuota):
16471        (WebCore):
16472        * storage/StorageMap.h:
16473        (StorageMap):
16474        (WebCore::StorageMap::quota):
16475
164762013-04-01  Benjamin Poulain  <benjamin@webkit.org>
16477
16478        Remove a couple of malloc from ExceptionBase construction
16479        https://bugs.webkit.org/show_bug.cgi?id=113681
16480
16481        Reviewed by Darin Adler.
16482
16483        * dom/ExceptionBase.cpp:
16484        (WebCore::ExceptionBase::ExceptionBase):
16485        When the condition is true, we were creating a new String for
16486        description.name. The constructor had already allocated a string for
16487        that: m_name. Use that string instead of creating a new one.
16488
16489        When the condition is false, we were creating a String for typeName
16490        just to use the string operators. This is a waste of time, we can use
16491        makeString() to invoke the string concatenation functions directly.
16492
164932013-04-01  Emil A Eklund  <eae@chromium.org>
16494
16495        Move remaining marquee applying code to StyleBuilder
16496        https://bugs.webkit.org/show_bug.cgi?id=113298
16497
16498        Reviewed by Allan Sandfeld Jensen.
16499
16500        Move applying logic for CSSPropertyWebkitMarqueeIncrement,
16501        CSSPropertyWebkitMarqueeRepetition and CSSPropertyWebkitMarqueeSpeed
16502        from StyleResolver::applyProperty.
16503
16504        No new tests, no change in functionality.
16505
16506        * css/StyleBuilder.cpp:
16507        (ApplyPropertyMarqueeIncrement):
16508        (WebCore::ApplyPropertyMarqueeIncrement::applyValue):
16509        (WebCore::ApplyPropertyMarqueeIncrement::createHandler):
16510        (WebCore):
16511        (ApplyPropertyMarqueeRepetition):
16512        (WebCore::ApplyPropertyMarqueeRepetition::applyValue):
16513        (WebCore::ApplyPropertyMarqueeRepetition::createHandler):
16514        (ApplyPropertyMarqueeSpeed):
16515        (WebCore::ApplyPropertyMarqueeSpeed::applyValue):
16516        (WebCore::ApplyPropertyMarqueeSpeed::createHandler):
16517        (WebCore::StyleBuilder::StyleBuilder):
16518        * css/StyleResolver.cpp:
16519        (WebCore::StyleResolver::applyProperty):
16520        Move marquee applying logic from StyleResolver to StyleBuilder.
16521        
16522        * rendering/style/RenderStyle.h:
16523        Change setMarqueeIncrement to pass Length by value instead of const
16524        reference. This is consistent with other length setters and works with
16525        the ApplyPropertyLength template.
16526
165272013-04-01  Philip Rogers  <pdr@google.com>
16528
16529        [SVG2] Add support for the buffered-rendering hint
16530        https://bugs.webkit.org/show_bug.cgi?id=104207
16531
16532        Reviewed by Stephen Chenney.
16533
16534        This patch adds the SVG2 buffered-rendering property and implements it for the image
16535        element. For reference, the spec can be found at:
16536            https://svgwg.org/svg2-draft/single-page.html#painting-BufferedRendering
16537
16538        The buffered-rendering hint causes our implementation to create a temporary image buffer
16539        for caching an element's foreground rendering. This behavior has been designed to support
16540        other graphical and container elements in followup patches (such as the use and g elements).
16541        This patch should not affect rendering, and a test has been added showing the image
16542        results are unchanged. 
16543
16544        The performance aspects of this patch can be tested using the following test:
16545            http://philbit.com/bouncingTigers.html
16546        Without the patch, rendering is below 1fps. With the patch, rendering is fluid.
16547
16548        Tests: svg/css/buffered-rendering.html
16549               svg/repaint/buffered-rendering-dynamic-image.html
16550               svg/repaint/buffered-rendering-static-image.html
16551
16552        Other than the changes to RenderSVGImage and SVGRenderingContext, the changes below are to
16553        support the new buffered-rendering property:
16554
16555        * css/CSSComputedStyleDeclaration.cpp:
16556        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
16557        * css/CSSPrimitiveValueMappings.h:
16558        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
16559        (WebCore):
16560        (WebCore::CSSPrimitiveValue::operator EBufferedRendering):
16561        * css/CSSProperty.cpp:
16562        (WebCore::CSSProperty::isInheritedProperty):
16563        * css/SVGCSSComputedStyleDeclaration.cpp:
16564        (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
16565        * css/SVGCSSParser.cpp:
16566        (WebCore::CSSParser::parseSVGValue):
16567        * css/SVGCSSPropertyNames.in:
16568        * css/SVGCSSStyleSelector.cpp:
16569        (WebCore::StyleResolver::applySVGProperty):
16570        * css/SVGCSSValueKeywords.in:
16571        * rendering/style/SVGRenderStyle.cpp:
16572        (WebCore::SVGRenderStyle::diff):
16573        * rendering/style/SVGRenderStyle.h:
16574        (WebCore::SVGRenderStyle::initialBufferedRendering):
16575        (WebCore::SVGRenderStyle::setBufferedRendering):
16576        (WebCore::SVGRenderStyle::bufferedRendering):
16577        (WebCore::SVGRenderStyle::setBitDefaults):
16578        * rendering/style/SVGRenderStyleDefs.h:
16579        * rendering/svg/RenderSVGImage.cpp:
16580        (WebCore::RenderSVGImage::paint):
16581
16582            The foreground painting has been extracted out into a separate function. This has also
16583            been changed so that if the buffered-rendering hint is present, bufferForeground
16584            is used.
16585
16586        (WebCore::RenderSVGImage::paintForeground):
16587        (WebCore):
16588        (WebCore::RenderSVGImage::invalidateBufferedForeground):
16589
16590            This function could be replaced with "m_bufferedForeground.clear()" but other renderers
16591            (such as container elements) will require more complex invalidation logic. To
16592            maintain consistency with this future code, invalidateBufferedForeground has been used.
16593
16594        (WebCore::RenderSVGImage::imageChanged):
16595        * rendering/svg/RenderSVGImage.h:
16596        (RenderSVGImage):
16597        * rendering/svg/SVGRenderingContext.cpp:
16598        (WebCore::SVGRenderingContext::bufferForeground):
16599        (WebCore):
16600        * rendering/svg/SVGRenderingContext.h:
16601        (SVGRenderingContext):
16602        * svg/SVGStyledElement.cpp:
16603        (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
16604        (WebCore::cssPropertyToTypeMap):
16605        * svg/svgattrs.in:
16606
166072013-04-01  Mike West  <mkwst@chromium.org>
16608
16609        CSP 1.1: Remove 'type' parameter from CSPDirectiveList::checkSourceAndReportViolation.
16610        https://bugs.webkit.org/show_bug.cgi?id=113502
16611
16612        Reviewed by Adam Barth.
16613
16614        Now that we're passing in 'effectiveDirective', we don't need the 'type'
16615        parameter to generate the proper error message prefix when reporting
16616        violations.
16617
16618        While I'm here, I'll slightly tweak the grammar for the error messages.
16619        Changes are covered via rebaselines of existing tests.
16620
16621        * page/ContentSecurityPolicy.cpp:
16622        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
16623            Drop the 'type' parameter. We don't need to pass in a type since
16624            we're now passing in the 'effectiveDirective'; we can use the latter
16625            to generate the correct error message prefix.
16626        (WebCore::CSPDirectiveList::allowScriptFromSource):
16627        (WebCore::CSPDirectiveList::allowObjectFromSource):
16628        (WebCore::CSPDirectiveList::allowChildFrameFromSource):
16629        (WebCore::CSPDirectiveList::allowImageFromSource):
16630        (WebCore::CSPDirectiveList::allowStyleFromSource):
16631        (WebCore::CSPDirectiveList::allowFontFromSource):
16632        (WebCore::CSPDirectiveList::allowMediaFromSource):
16633        (WebCore::CSPDirectiveList::allowConnectToSource):
16634        (WebCore::CSPDirectiveList::allowFormAction):
16635        (WebCore::CSPDirectiveList::allowBaseURI):
16636            Drop the 'type' parameter from the callsites, which has the lovely
16637            property of allowing us to throw away a bunch of statically allocated
16638            strings that we don't need anymore.
16639
166402013-04-01  James Craig  <james@cookiecrook.com>
16641
16642        AX: "video element controller" is an overly verbose default description for the playback controls; how about just "playback"
16643        https://bugs.webkit.org/show_bug.cgi?id=113549
16644
16645        Reviewed by Chris Fleizach.
16646
16647        Existing test coverage. 
16648
16649        Updating the video/audio element's default accessibility labels to be less verbose.
16650        Also cleaned up some erroneous comments related to the sub-level controls on these elements.
16651
16652        * English.lproj/Localizable.strings:
16653        * platform/LocalizedStrings.cpp:
16654        (WebCore::localizedMediaControlElementString):
16655        (WebCore::localizedMediaControlElementHelpText):
16656        * platform/gtk/LocalizedStringsGtk.cpp:
16657        (WebCore::localizedMediaControlElementString):
16658
166592013-04-01  Nate Chapin  <japhet@chromium.org>
16660
16661        Make a bunch of DocumentLoader functions private
16662        https://bugs.webkit.org/show_bug.cgi?id=113601
16663
16664        Reviewed by Alexey Proskuryakov.
16665
16666        No new tests, cleanup only.
16667
16668        * loader/DocumentLoader.cpp:
16669        * loader/DocumentLoader.h:
16670
166712013-04-01  Kangil Han  <kangil.han@samsung.com>
16672
16673        Minor code cleanup by removing duplicated null checks
16674        https://bugs.webkit.org/show_bug.cgi?id=113701
16675
16676        Reviewed by Darin Adler.
16677
16678        Duplicated null check is code redundancy, so delete those.
16679
16680        * editing/FrameSelection.cpp:
16681        (WebCore::FrameSelection::setFocusedNodeIfNeeded):
16682        * platform/Arena.cpp:
16683        (WebCore::FreeArenaList):
16684
166852013-04-01  Pavel Feldman  <pfeldman@chromium.org>
16686
16687        Web Inspector: follow up to r147323, popover is empty on network panel.
16688        Not reviewed.
16689
16690        * inspector/front-end/DOMExtension.js:
16691        (Element.prototype.measurePreferredSize):
16692        * inspector/front-end/Popover.js:
16693        (WebInspector.Popover.prototype._innerShow):
16694
166952013-04-01  Dmitry Zvorygin  <zvorygin@chromium.org>
16696
16697        Web Inspector: Exception in console on attempt to filter javascript messages.
16698        https://bugs.webkit.org/show_bug.cgi?id=113327
16699
16700        Fixed non-css filtration if console message groups are present. Message groups elements are always shown and are
16701        never filtered out.
16702
16703        Reviewed by Pavel Feldman.
16704
16705        * inspector/front-end/ConsoleMessage.js:
16706        (WebInspector.ConsoleMessageImpl.prototype.updateRepeatCount):
16707        * inspector/front-end/ConsoleView.js:
16708        (WebInspector.ConsoleView.get this):
16709        (WebInspector.ConsoleView.prototype._consoleMessageAdded):
16710        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
16711        (WebInspector.ConsoleView.prototype._consoleCleared):
16712        (WebInspector.ConsoleView.prototype._shouldBeVisible):
16713        (WebInspector.ConsoleView.prototype._updateMessageList):
16714        (WebInspector.ConsoleView.prototype._printResult):
16715
167162013-04-01  Victor Carbune  <vcarbune@chromium.org>
16717
16718        Parsing WebVTT Region Header Metadata
16719        https://bugs.webkit.org/show_bug.cgi?id=109818
16720
16721        Reviewed by Eric Carlson.
16722
16723        This patch enables reading regions from the metadata section of
16724        a WebVTT file. The work for defining generic metadata within the
16725        WebVTT file header is still work in progress in the TextTrack CG.
16726
16727        As previous patches, everything is guarded by WEBVTT_REGIONS and
16728        is by default disabled in all ports.
16729
16730        Test: media/track/regions-webvtt/text-track-region-parser.html
16731
16732        * html/track/LoadableTextTrack.cpp:
16733        (WebCore):
16734        (WebCore::LoadableTextTrack::newRegionsAvailable): Added method
16735        to be called as soon as regions have finished parsing.
16736        * html/track/LoadableTextTrack.h:
16737        (LoadableTextTrack):
16738        * html/track/TextTrack.h: Changed the access modifiers.
16739        (TextTrack):
16740        * html/track/TextTrackRegion.cpp:
16741        (WebCore::TextTrackRegion::setRegionSettings): Entry point for
16742        parsing the region settings from a string.
16743        (WebCore):
16744        (WebCore::TextTrackRegion::getSettingFromString): Maps a string
16745        to a RegionSetting value.
16746        (WebCore::TextTrackRegion::parseSettingValue): Parses the value
16747        of a specific setting.
16748        (WebCore::TextTrackRegion::parseSetting): Parses a setting string.
16749        * html/track/TextTrackRegion.h:
16750        * html/track/WebVTTParser.cpp:
16751        (WebCore):
16752        (WebCore::WebVTTParser::parseFloatPercentageValue): Helper method
16753        to parse a float percentage value (e.g. "50.1%")
16754        (WebCore::WebVTTParser::parseFloatPercentageValuePair): Helper method
16755        to parse a float percentage value pair (e.g. "50.1%, 30.5%")
16756        (WebCore::WebVTTParser::getNewRegions): Retrieves the new regions
16757        available for processing.
16758        (WebCore::WebVTTParser::parseBytes):
16759        (WebCore::WebVTTParser::collectHeader): Generic function to collect
16760        header in the metadata region.
16761        (WebCore::WebVTTParser::createNewRegion): Creates new region using
16762        the existing metadata header name and value.
16763        * html/track/WebVTTParser.h:
16764        (WebVTTParserClient):
16765        (WebVTTParser):
16766        * loader/TextTrackLoader.cpp:
16767        (WebCore):
16768        (WebCore::TextTrackLoader::newRegionsParsed): Called when the
16769        regions have been succesfully parsed.
16770        (WebCore::TextTrackLoader::getNewRegions): Gets the new regions.
16771        * loader/TextTrackLoader.h:
16772        (TextTrackLoaderClient): Added methods that need to be implemented.
16773        (TextTrackLoader):
16774
167752013-04-01  Pavel Feldman  <pfeldman@chromium.org>
16776
16777        Web Inspector: Go to line dialog has 0 height, viewport dialogs have empty gaps.
16778        https://bugs.webkit.org/show_bug.cgi?id=113702
16779
16780        Reviewed by Yury Semikhatsky.
16781
16782        * inspector/front-end/DOMExtension.js:
16783        (Element.prototype.measurePreferredSize):
16784        * inspector/front-end/Popover.js:
16785        (WebInspector.Popover.prototype._innerShow):
16786        * inspector/front-end/ViewportControl.js:
16787        (WebInspector.ViewportControl.prototype.refresh):
16788        * inspector/front-end/dialog.css:
16789        (.dialog-contents):
16790
167912013-04-01  Andrey Lushnikov  <lushnikov@chromium.org>
16792
16793        Web Inspector: [DTE] Convertion between text and coordinates
16794        https://bugs.webkit.org/show_bug.cgi?id=113389
16795
16796        Reviewed by Pavel Feldman.
16797
16798        Test: inspector/editor/text-editor-char-to-coordinates.html
16799
16800        Implement cursorPositionToCoordinates and coordinatesToCursorPosition
16801        methods pair in DefaultTextEditor.
16802
16803        * inspector/front-end/DefaultTextEditor.js:
16804        (WebInspector.DefaultTextEditor.prototype.cursorPositionToCoordinates):
16805        (WebInspector.DefaultTextEditor.prototype.coordinatesToCursorPosition):
16806        (WebInspector.TextEditorMainPanel.prototype.cursorPositionToCoordinates):
16807        (WebInspector.TextEditorMainPanel.prototype.coordinatesToCursorPosition):
16808        * inspector/front-end/TextEditor.js:
16809        (WebInspector.TextEditor.prototype.cursorPositionToCoordinates):
16810        (WebInspector.TextEditor.prototype.coordinatesToCursorPosition):
16811
168122013-04-01  Sergey Ryazanov  <serya@chromium.org>
16813
16814        Web Inspector: Rename "Copy to Curl" menu item command to "Copy to cURL"
16815        https://bugs.webkit.org/show_bug.cgi?id=113575
16816
16817        Reviewed by Pavel Feldman.
16818
16819        Fix the name to the offical way of capitalization.
16820
16821        * English.lproj/localizedStrings.js:
16822        * inspector/front-end/NetworkPanel.js:
16823        (WebInspector.NetworkLogView.prototype._contextMenu):
16824
168252013-04-01  Koji Ishii  <kojiishi@gmail.com>
16826
16827        ASSERTION FAILED: m_purgePreventCount when clicking text with emphasis marks
16828        https://bugs.webkit.org/show_bug.cgi?id=85266
16829
16830        Reviewed by Darin Adler.
16831
16832        Font::glyphDataAndPageForCharacter may call FontCache::getFontDataForCharacters
16833        if system fallback occurs, which may return SimpleFontData with DoNotRetain,
16834        so callers must prevent possible font cache purging.
16835
16836        Test: fast/text/emphasis-height-crash.html
16837
16838        * platform/graphics/FontFastPath.cpp:
16839        (WebCore::Font::emphasisMarkAscent): Add FontCachePurgePreventer.
16840        (WebCore::Font::emphasisMarkDescent): ditto.
16841        (WebCore::Font::emphasisMarkHeight): ditto.
16842        (WebCore::Font::drawEmphasisMarks): ditto.
16843
168442013-04-01  Vladislav Kaznacheev  <kaznacheev@chromium.org>
16845
16846        Web Inspector: Fixed DOM Breakpoint pane styles.
16847        https://bugs.webkit.org/show_bug.cgi?id=113688
16848
16849        Reviewed by Pavel Feldman.
16850
16851        The required stylesheet (breakpointsList.css) was not loaded because of
16852        the peculiar way DOMBreakpointsSidebarPane is included in two panels
16853        (Sources and Elements) via a proxy pane. Since DOMBreakpointsSidebarPane
16854        was never shown directly the registerRequiredCSS call in its base class
16855        NativeBreakpointsSidebarPane constructor had no effect.
16856        Addin a registerRequiredCSS call to the proxy pane constructor fixes the
16857        problem.
16858
16859
16860        * inspector/front-end/DOMBreakpointsSidebarPane.js:
16861        (WebInspector.DOMBreakpointsSidebarPane.Proxy):
16862
168632013-04-01  Ilya Tikhonovsky  <loislo@chromium.org>
16864
16865        Web Inspector: Flame Chart. Extract item to coordinates conversion into a separate function.
16866        https://bugs.webkit.org/show_bug.cgi?id=113682
16867
16868        Reviewed by Yury Semikhatsky.
16869
16870        The calculation was extracted into entryToAnchorBox.
16871
16872        Drive by fixes: unnecessary members were removed.
16873
16874        * inspector/front-end/FlameChart.js:
16875        (WebInspector.FlameChart):
16876        (WebInspector.FlameChart.Entry):
16877        (WebInspector.FlameChart.prototype._calculateTimelineData):
16878        (WebInspector.FlameChart.prototype._calculateTimelineDataForSamples):
16879        (WebInspector.FlameChart.prototype._getPopoverAnchor):
16880        (WebInspector.FlameChart.prototype._entryToAnchorBox):
16881        (WebInspector.FlameChart.prototype.draw):
16882
168832013-03-31  Zalan Bujtas  <zalan@apple.com>
16884
16885        Gradient background does not get repainted when child box is expanded.
16886        https://bugs.webkit.org/show_bug.cgi?id=113644
16887
16888        Reviewed by Antti Koivisto.
16889        
16890        The initial value for background-size is SizeNone and remains, unless it is
16891        set explicitly. However, when the background shorthand is used,
16892        the size property defaults to SizeLength. The repaint
16893        logic in mustRepaintFillLayers expects to have this value set correctly.
16894
16895        Test: fast/repaint/background-shorthand-with-gradient-and-height-changes.html
16896
16897        * rendering/RenderObject.cpp:
16898        (WebCore::mustRepaintFillLayers): code cleanup. no functionality change.
16899        * rendering/style/FillLayer.cpp:
16900        (WebCore::FillLayer::FillLayer):
16901        * rendering/style/FillLayer.h:    use SizeNone as initial value.
16902        (WebCore::FillLayer::initialFillSizeType):
16903        (WebCore::FillLayer::initialFillSize):
16904
169052013-03-31  Hayato Ito  <hayato@chromium.org>
16906
16907        Text representation of pseudo elements, '::-webkit-distributed', is wrong in CSSSelector::selectorText().
16908        https://bugs.webkit.org/show_bug.cgi?id=113560
16909
16910        Reviewed by Dimitri Glazkov.
16911
16912        Fix the text representation of distributed functional pseudo elements in CSSSelector::selectorText().
16913
16914        Test: fast/dom/shadow/distributed-pseudo-element-css-text.html
16915
16916        * css/CSSSelector.cpp:
16917        (WebCore::CSSSelector::selectorText):
16918        * css/CSSSelector.h:
16919        (CSSSelector):
16920
169212013-03-31  Adam Barth  <abarth@webkit.org>
16922
16923        [Chromium] Yarr should build using a separate GYP file from JavaScriptCore
16924        https://bugs.webkit.org/show_bug.cgi?id=113652
16925
16926        Reviewed by Nico Weber.
16927
16928        * WebCore.gyp/WebCore.gyp:
16929            - Update references to yarr.gyp.
16930
169312013-03-31  Kangil Han  <kangil.han@samsung.com>
16932
16933        [EFL] Remove unused stdio.h includes
16934        https://bugs.webkit.org/show_bug.cgi?id=113655
16935
16936        Reviewed by Andreas Kling.
16937
16938        We do not have to include unused header file.
16939
16940        * platform/efl/CursorEfl.cpp:
16941        * platform/efl/FileSystemEfl.cpp:
16942        * platform/efl/PlatformKeyboardEventEfl.cpp:
16943        * platform/efl/ScrollbarThemeEfl.cpp:
16944
169452013-03-31  Rafael Weinstein  <rafaelw@chromium.org>
16946
16947        HTMLLinkElement should resolve resource URLs when resources will be fetched
16948        https://bugs.webkit.org/show_bug.cgi?id=113630
16949
16950        HTMLLinkElement was resolving its URL when the href attribute was processed and caching it without ever
16951        invalidating the cached URL. This patch removes the cached URL and adds getURL() which resolve the
16952        URL dynamically.
16953
16954        Reviewed by Eric Seidel.
16955
16956        Test: fast/dom/HTMLLinkElement/resolve-url-on-insertion.html
16957
16958        * html/HTMLLinkElement.cpp:
16959        (WebCore::HTMLLinkElement::getURL):
16960        (WebCore):
16961        (WebCore::HTMLLinkElement::parseAttribute):
16962        (WebCore::HTMLLinkElement::shouldLoadLink):
16963        (WebCore::HTMLLinkElement::process):
16964        * html/HTMLLinkElement.h:
16965        (HTMLLinkElement):
16966
169672013-03-31  Brady Eidson  <beidson@apple.com>
16968
16969        NetworkProcess crashes in WebCoreResourceHandleAsOperationQueueDelegate callbacks.
16970        <rdar://problem/13541868> and https://bugs.webkit.org/show_bug.cgi?id=113664
16971
16972        Reviewed by Dan Bernstein.
16973
16974        In the "two-part" callbacks that involve waiting on a semaphore for the async block to finish,
16975        the delegate might have been destroyed by the time the wait completes.
16976
16977        A RetainPtr<> protector will fix that up nicely.
16978
16979        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
16980        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
16981        (-[WebCoreResourceHandleAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
16982        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
16983        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
16984
169852013-03-30  Adam Barth  <abarth@webkit.org>
16986
16987        Remove unused include of RegularExpression.h
16988        https://bugs.webkit.org/show_bug.cgi?id=113649
16989
16990        Reviewed by Dimitri Glazkov.
16991
16992        * Modules/filesystem/DOMFilePath.cpp:
16993            - This include isn't used.
16994
169952013-03-30  Tom Sepez  <tsepez@chromium.org>
16996
16997        Cross-Origin copy&paste / drag&drop allowing XSS via srcdoc attribute.
16998        https://bugs.webkit.org/show_bug.cgi?id=113443
16999
17000        Reviewed by Adam Barth.
17001
17002        Tested by LayoutTests/editing/pasteboard/paste-noscript.html
17003
17004        * dom/Element.h:
17005        (Element):
17006        (WebCore::Element::isHTMLContentAttribute):
17007        Adds an isHTMLContentAttribute() method to determine whether an attribute can contain
17008        (potentially unsafe) HTML content. Currently, the iframe's srcdoc attribute is the only
17009        such attribute, but clever folks might add more in the future.
17010        Rename stripJavaScriptAttributes() method to stripScriptingAttributes(), to better reflect
17011        the reality that scripting content may appear as above.
17012        Adds missing consts and consolidate isJavaScriptAttribute() method.
17013
17014        * dom/Element.cpp:
17015        (WebCore::Element::isJavaScriptURLAttribute):
17016        (WebCore::Element::stripScriptingAttributes):
17017        Consolidated methods.
17018        
17019        * html/HTMLFrameElementBase.cpp:
17020        (WebCore::HTMLFrameElementBase::isHTMLContentAttribute):
17021        (WebCore):
17022        * html/HTMLFrameElementBase.h:
17023        (HTMLFrameElementBase):
17024        Indicate that for frames, the srcdoc attribute contains HTML content.
17025        
17026        * html/parser/HTMLConstructionSite.cpp:
17027        (WebCore::setAttributes):
17028        * xml/parser/XMLDocumentParserLibxml2.cpp:
17029        (WebCore::setAttributes):
17030        * xml/parser/XMLDocumentParserQt.cpp:
17031        (WebCore::setAttributes):
17032        Rename stripJavaScriptAttribute calls to match Element.h
17033
170342013-03-30  Tom Sepez  <tsepez@chromium.org>
17035
17036        View-source iframes are dangerous (and not very useful).
17037        https://bugs.webkit.org/show_bug.cgi?id=113345
17038
17039        Reviewed by Adam Barth.
17040
17041        * html/HTMLFrameElementBase.cpp:
17042        (WebCore::HTMLFrameElementBase::parseAttribute):
17043        Conditionalize viewsource attribute on ENABLE(VIEWSOURCE_ATTRIBUTE).
17044
170452013-03-30  Philippe Normand  <pnormand@igalia.com>
17046
17047        [GTK] Should use GStreamer codec installation infrastructure
17048        https://bugs.webkit.org/show_bug.cgi?id=34085
17049
17050        Reviewed by Martin Robinson.
17051
17052        Initial support for the GStreamer codec installer. The player will
17053        handle missing-plugins messages and use the pbutils codec
17054        installer facilities to install the missing GStreamer
17055        plugins. Once the plugins are installed reset the pipeline state.
17056
17057        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
17058        (WebCore::mediaPlayerPrivatePluginInstallerResultFunction): This
17059        method is used to notify the player that the missing plugins were installed.
17060        (WebCore):
17061        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
17062        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Ignore
17063        errors while installing plugins and handle the missing-plugin message.
17064        (WebCore::MediaPlayerPrivateGStreamer::handlePluginInstallerResult):
17065        This method is invoked after the installer finished its task.
17066        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
17067        (MediaPlayerPrivateGStreamer):
17068
170692013-03-30  Praveen R Jadhav  <praveen.j@samsung.com>
17070
17071        g_slist_reverse() may not be required in webKitWebAudioSrcLoop
17072        https://bugs.webkit.org/show_bug.cgi?id=113568
17073
17074        Reviewed by Philippe Normand.
17075
17076        Decremental 'for' loop logic implemented to avoid using g_slist_reverse().
17077
17078        Original code            - 2.025230 micro seconds per loop
17079        Original code + patch    - 1.964759 micro seconds per loop
17080
17081        This patch is covered by existing webaudio tests.
17082
17083        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
17084        (webKitWebAudioSrcLoop):
17085
170862013-03-30  Alexei Filippov  <alph@chromium.org>
17087
17088        Web Inspector: Fonts refactoring
17089        https://bugs.webkit.org/show_bug.cgi?id=113047
17090
17091        Reviewed by Pavel Feldman.
17092
17093        Unify fonts usage across inspector.
17094        Make inspector default font depend on platform.
17095
17096        * inspector/front-end/breakpointsList.css:
17097        * inspector/front-end/dataGrid.css:
17098        (.data-grid):
17099        (.data-grid table):
17100        (.data-grid td):
17101        (.data-grid th.sort-ascending > div::after):
17102        (.data-grid th.sort-descending > div::after):
17103        (.data-grid button):
17104        * inspector/front-end/heapProfiler.css:
17105        (.heap-snapshot-view .class-view-toolbar input.class-name-filter):
17106        (.heap-snapshot-view .retainers-view-header):
17107        * inspector/front-end/inspector.css:
17108        (.toolbar-item):
17109        (.toolbar-label):
17110        (.console-message .bubble):
17111        (.outline-disclosure > ol):
17112        (.source-code):
17113        (.scope-bar li):
17114        (.sidebar-tree, .sidebar-tree .children):
17115        (.sidebar-tree-section):
17116        (li .status .bubble):
17117        (.sidebar-tree-item.selected):
17118        (.sidebar-tree-item .titles):
17119        (.sidebar-tree-item .subtitle):
17120        (.sidebar-tree-item.selected .subtitle):
17121        (.source-frame-breakpoint-message):
17122        (.soft-context-menu):
17123        * inspector/front-end/inspectorCommon.css:
17124        (body):
17125        (.resources-divider-label):
17126        * inspector/front-end/navigatorView.css:
17127        (.navigator li):
17128        (.navigator li.selected .selection):
17129        (.navigator .base-navigator-tree-element-title):
17130        * inspector/front-end/networkLogView.css:
17131        (.network-log-grid.data-grid td):
17132        (.network-log-grid.data-grid.small td):
17133        (.network-log-grid.data-grid th):
17134        (.network-log-grid.data-grid select):
17135        (.network-graph-label):
17136        (.network-timeline-grid .resources-divider-label):
17137        (.network-log-grid.data-grid .network-summary-bar td):
17138        * inspector/front-end/resourcesPanel.css:
17139        (.resources.panel .sidebar li):
17140        (.resources.panel .sidebar li.selected):
17141        (.resources.panel .sidebar li.selected .selection):
17142        * inspector/front-end/sidebarPane.css:
17143        (.sidebar-pane > .body .info):
17144        (.sidebar-pane-title):
17145        (.sidebar-pane-toolbar):
17146        (.sidebar-pane-subtitle):
17147        * inspector/front-end/tabbedPane.css:
17148        (.tabbed-pane-header-tab):
17149        (.tabbed-pane-header-tab-close-button):
17150        (select.tabbed-pane-header-tabs-drop-down-select):
17151        * inspector/front-end/timelinePanel.css:
17152        (.memory-counter-value):
17153
171542013-03-29  Sheriff Bot  <webkit.review.bot@gmail.com>
17155
17156        Unreviewed, rolling out r147263.
17157        http://trac.webkit.org/changeset/147263
17158        https://bugs.webkit.org/show_bug.cgi?id=113632
17159
17160        Breaks test fast/loader/display-image-unset-allows-cached-
17161        image-load.html (Requested by mlam on #webkit).
17162
17163        * loader/cache/CachedResource.cpp:
17164        (WebCore::CachedResource::freshnessLifetime):
17165
171662013-03-29  Roger Fong  <roger_fong@apple.com>
17167
17168        Unreviewed. AppleWin VS2010 build fix.
17169
17170        * WebCore.vcxproj/WebCore.vcxproj:
17171        * WebCore.vcxproj/WebCore.vcxproj.filters:
17172
171732013-03-29  Yongjun Zhang  <yongjun_zhang@apple.com>
17174
17175        When releasing a CGImage, we should also remove it from the subimage cache.
17176        https://bugs.webkit.org/show_bug.cgi?id=102453
17177
17178        Reviewed by Simon Fraser.
17179
17180        When we release an image(CGImageRef) from BitmapImage's cachedFrames, if the image was already
17181        cached in subimage cache, it's ref count won't drop to 0 and the image won't be deleted.  Usually,
17182        the subimage cache will clear the whole cache in a timer with 1 sec delay.  However, if WebCore has
17183        to paint another subimage (not necessarily from the same CGImageRef) before this timer fires, we
17184        will restart the timer and images inside the cache will stay longer than they should.
17185
17186        This patch does two things:
17187            - move SubimageCacheWithTimer and related helper struct into a separate file.
17188            - remove the image from subimage cache when we releasing the CGImageRef, this prevent subimage
17189        cache holding the image after we released it.
17190
17191        No new tests, manually verified the CGImageRef is also removed from subimage cache
17192        when we releasing the image from FrameData::clear.
17193
17194        * WebCore.vcproj/WebCore.vcproj:
17195        * WebCore.xcodeproj/project.pbxproj:
17196        * platform/graphics/cg/BitmapImageCG.cpp:
17197        (WebCore::FrameData::clear): remove the image from subimage cache before we releasing it.
17198        * platform/graphics/cg/GraphicsContextCG.cpp:
17199        (WebCore):
17200        (WebCore::GraphicsContext::drawNativeImage):
17201        * platform/graphics/cg/SubimageCacheWithTimer.cpp: Added.
17202        (WebCore):
17203        (SubimageRequest):
17204        (WebCore::SubimageRequest::SubimageRequest):
17205        (WebCore::SubimageCacheAdder::hash):
17206        (SubimageCacheAdder):
17207        (WebCore::SubimageCacheAdder::equal):
17208        (WebCore::SubimageCacheAdder::translate):
17209        (WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer):
17210        (WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
17211        (WebCore::SubimageCacheWithTimer::getSubimage):
17212        (WebCore::SubimageCacheWithTimer::clearImage):
17213        (WebCore::subimageCache):
17214        * platform/graphics/cg/SubimageCacheWithTimer.h: Added.
17215        (WebCore):
17216        (SubimageCacheWithTimer): Added a data member m_images to record which image and its subimages are cached.
17217        (SubimageCacheEntry):
17218        (SubimageCacheEntryTraits):
17219        (WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits::isEmptyValue):
17220        (WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits::constructDeletedValue):
17221        (WebCore::SubimageCacheWithTimer::SubimageCacheEntryTraits::isDeletedValue):
17222        (WebCore::SubimageCacheWithTimer::SubimageCacheHash::hash):
17223        (WebCore::SubimageCacheWithTimer::SubimageCacheHash::equal):
17224        (SubimageCacheHash):
17225
172262013-03-29  Andy Estes  <aestes@apple.com>
17227
17228        Let cached resources from file: schemes expire immediately
17229        https://bugs.webkit.org/show_bug.cgi?id=113626
17230
17231        Reviewed by Brady Eidson
17232
17233        When a CachedResource was loaded from a file: URL, we would give it an
17234        indefinite freshness lifetime. This means that we would continue to
17235        serve a stale resource from the memory cache even if the file was
17236        changed on disk. With the introduction of main resource caching, this
17237        behavior broke at least one third-party WebKit app (see <rdar://problem/13313769>).
17238
17239        We should instead let file resources expire immediately. Modern
17240        filesystems implement their own caching, so we should get good
17241        performance for multiple reads of unmodified files without doing our
17242        own caching.
17243
17244        * loader/cache/CachedResource.cpp:
17245        (WebCore::CachedResource::freshnessLifetime): file: URLs should have a
17246        0 freshness lifetime.
17247
172482013-03-29  Ojan Vafai  <ojan@chromium.org>
17249
17250        Flexitems no longer default min-width to min-content
17251        https://bugs.webkit.org/show_bug.cgi?id=111790
17252
17253        Reviewed by Tony Chang.
17254
17255        * css/CSSParser.cpp:
17256        (WebCore::CSSParser::parseValue):
17257        Disallow auto as a valid min-size value.
17258
17259        * css/html.css:
17260        (input::-webkit-datetime-edit):
17261        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
17262        (input[type="range"]::-webkit-slider-runnable-track):
17263        Remove now unnecessary min-width: 0's.
17264
17265        * css/mediaControlsChromium.css:
17266        (audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
17267        (video::-webkit-media-controls-enclosure):
17268        Set a flex-shrink: 0 to avoid shrinking these items below the designated height.
17269
17270        * rendering/RenderBox.cpp:
17271        (WebCore::RenderBox::constrainLogicalHeightByMinMax):
17272        (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
17273        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
17274        (WebCore::RenderBox::computeLogicalHeight):
17275        (WebCore::RenderBox::computeLogicalHeightUsing):
17276        (WebCore::RenderBox::computeContentLogicalHeight):
17277        (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
17278        (WebCore::RenderBox::computeReplacedLogicalWidth):
17279        (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
17280        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
17281        (WebCore::RenderBox::computeReplacedLogicalHeight):
17282        (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
17283        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
17284        (WebCore::RenderBox::availableLogicalHeightUsing):
17285        (WebCore::RenderBox::computePositionedLogicalWidth):
17286        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
17287        (WebCore::RenderBox::computePositionedLogicalHeight):
17288        (WebCore::RenderBox::computePositionedLogicalHeightUsing):
17289        Remove all the unneeded SizeType arguments now that we don't need to
17290        specially handle MinSize in all these functions.
17291
17292        * rendering/RenderBox.h:
17293        * rendering/RenderButton.cpp:
17294        (WebCore::RenderButton::styleWillChange):
17295        (WebCore::RenderButton::setupInnerStyle):
17296        No longer need to explicitly set min-width:0.
17297
17298        * rendering/RenderFlexibleBox.cpp:
17299        (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
17300        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
17301        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
17302        Remove the code for specially handling auto.
17303
17304        * rendering/RenderGrid.cpp:
17305        (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
17306        * rendering/RenderRegion.cpp:
17307        (WebCore::RenderRegion::maxPageLogicalHeight):
17308        * rendering/RenderReplaced.cpp:
17309        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
17310        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
17311        Remove all the now unneeded SizeType arguments.
17312
17313        * rendering/style/RenderStyle.h:
17314        Change the default min-size back to 0.
17315
173162013-03-29  Alexey Proskuryakov  <ap@apple.com>
17317
17318        Expose FeatureObserver data to WebKit clients
17319        https://bugs.webkit.org/show_bug.cgi?id=113613
17320
17321        Reviewed by Sam Weinig.
17322
17323        FeatureObserver used to depend on chromium-only HistogramSupport, which is not
17324        really usable on Mac at least.
17325
17326        Instead of adding parallel feature reporting machinery, I'm adding a way to
17327        generically relay the data from FeatureObserver to port code.
17328
17329        * loader/FrameLoader.cpp:
17330        (WebCore::FrameLoader::loadWithDocumentLoader):
17331        (WebCore::FrameLoader::commitProvisionalLoad):
17332        (WebCore::FrameLoader::reportMemoryUsage):
17333        * loader/FrameLoader.h:
17334        (WebCore::FrameLoader::previousURL):
17335        Exposed m_previousURL, renaming it to follow WebKit style.
17336
17337        * page/FeatureObserver.cpp:
17338        (WebCore::FeatureObserver::~FeatureObserver):
17339        (WebCore::FeatureObserver::updateMeasurements):
17340        * page/FeatureObserver.h:
17341        (WebCore::FeatureObserver::accumulatedFeatureBits):
17342        Exposed the data to clients, and made reporting through HistogramSupport
17343        chromium only for clarity.
17344
173452013-03-29  Bem Jones-Bey  <bjonesbe@adobe.com>
17346
17347        [CSS Exclusions] shape outside segments not properly calculated for ellipses
17348        https://bugs.webkit.org/show_bug.cgi?id=112587
17349
17350        Reviewed by Julien Chaffraix.
17351
17352        When converting the line top coordinates from the parent's coordinate
17353        space to the coordinate space of the float, the offset given by the
17354        shape was not being accounted for. This patch accounts for that
17355        offset.
17356
17357        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-non-zero-y.html
17358
17359        * rendering/RenderBlock.cpp:
17360        (WebCore::RenderBlock::logicalLeftOffsetForLine): Fix the coordinate conversion.
17361        (WebCore::RenderBlock::logicalRightOffsetForLine): Ditto.
17362        * rendering/RenderBlockLineLayout.cpp:
17363        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Ditto.
17364
173652013-03-29  Hans Muller  <hmuller@adobe.com>
17366
17367        [CSS Exclusions] Incorrect margin corner radii formula
17368        https://bugs.webkit.org/show_bug.cgi?id=111186
17369
17370        Reviewed by Dirk Schulze.
17371
17372        Corrected an error in the forumla for the margin ellipse's radii.
17373
17374        Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-left.html
17375               fast/exclusions/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html
17376
17377        * rendering/ExclusionRectangle.cpp:
17378        (WebCore::FloatRoundedRect::marginBounds):
17379
173802013-03-19  Ojan Vafai  <ojan@chromium.org>
17381
17382        min-width/max-width of min-content/max-content don't work correctly if width is specified
17383        https://bugs.webkit.org/show_bug.cgi?id=106143
17384
17385        Reviewed by Tony Chang.
17386
17387        Test: fast/css-intrinsic-dimensions/intrinsic-sized-blocks.html
17388
17389        * rendering/RenderBlock.cpp:
17390        (WebCore::RenderBlock::computeIntrinsicLogicalWidths):
17391        Expose this so that we don't use the preferred widths when calculating intrinsic width
17392        values since the preferred width will be the regular width value if it is set.
17393        Also, simplified the logic around table cells and scrollbar widths. The old code was
17394        wrong and unnecessarily complicated.
17395
17396        (WebCore::RenderBlock::computePreferredLogicalWidths):
17397        Use the new computeIntrinsicLogicalWidths method.
17398
17399        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
17400        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
17401        Pass in the min/max values as out params so they can be called from computeIntrinsicLogicalWidths.
17402        Also, make computeBlockPreferredLogicalWidths const.
17403
17404        * rendering/RenderBlock.h:
17405
174062013-03-29  Joshua Bell  <jsbell@chromium.org>
17407
17408        IndexedDB: Use WTF::TemporaryChange rather than manually resetting a flag
17409        https://bugs.webkit.org/show_bug.cgi?id=113594
17410
17411        Reviewed by Tony Chang.
17412
17413        Split out from another patch: rather than m_foo = true; ... m_foo = false; use
17414        the handy WTF::TemporaryChange scoped variable change doohickey.
17415
17416        Test: http/tests/inspector/indexeddb/database-structure.html
17417
17418        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17419        (WebCore::IDBDatabaseBackendImpl::close):
17420
174212013-03-29  Joshua Bell  <jsbell@chromium.org>
17422
17423        [V8] IndexedDB: Exceptions thrown inconsistently for non-cloneable values
17424        https://bugs.webkit.org/show_bug.cgi?id=113091
17425
17426        Reviewed by Kentaro Hara.
17427
17428        The exception thrown by SerializedScriptValue into the JS engine is not
17429        observable by ScriptState. (We should fix that, but it appears non-trivial.)
17430        Ask the SerializedScriptValue directly if it failed to clone. If so, don't
17431        set an exception - one was already set so let that be processed normally.
17432
17433        Test: storage/indexeddb/clone-exception.html
17434
17435        * Modules/indexeddb/IDBObjectStore.cpp:
17436        (WebCore::IDBObjectStore::put):
17437
174382013-03-29  Dean Jackson  <dino@apple.com>
17439
17440        Snapshotted plugins must be able to restart on appropriate mouseup events
17441        https://bugs.webkit.org/show_bug.cgi?id=113577
17442
17443        Reviewed by Tim Horton.
17444
17445        If the page content prevents the default behaviour of a mousedown event, then a snapshotted
17446        plugin would never receive a click event, and thus be unable to restart. We have to also
17447        look for a mouseup that happens with an associated mousedown, and trigger restart. This
17448        won't call any page code - it's just behind the scenes.
17449
17450        * rendering/RenderSnapshottedPlugIn.cpp:
17451        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize new member variable.
17452        (WebCore::RenderSnapshottedPlugIn::handleEvent): Track the state of mousedown and up pairs, and restart
17453            if you see an appropriate mouseup.
17454        * rendering/RenderSnapshottedPlugIn.h: New member variable to track mouse state.
17455
174562013-03-29  Simon Fraser  <simon.fraser@apple.com>
17457
17458        removeViewportConstrainedLayer() should remove the layer from m_viewportConstrainedLayersNeedingUpdate too
17459        https://bugs.webkit.org/show_bug.cgi?id=113596
17460
17461        Reviewed by Tim Horton.
17462        
17463        It's possible, with some combination of position:fixed and opacity transitions
17464        in iframes, to end up with a RenderLayer in m_viewportConstrainedLayersNeedingUpdate
17465        that has been removed from m_viewportConstrainedLayers, which leads to later assertions
17466        and/or crashes.
17467        
17468        Fix by removing a layer from m_viewportConstrainedLayersNeedingUpdate when we
17469        remove it from m_viewportConstrainedLayers.
17470
17471        I was not able to come up with a testcase that reliably reproduces this.
17472
17473        * rendering/RenderLayerCompositor.cpp:
17474        (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
17475
174762013-03-29  Greg Hughes  <ghughes@apple.com>
17477
17478        Allow multiple searchKeys to be passed to AXUIElementCopyParameterizedAttributeValue
17479        https://bugs.webkit.org/show_bug.cgi?id=112276
17480
17481        Reviewed by Chris Fleizach.
17482
17483        Added support for accessibility search predicates to accept multiple search keys. The search will return the first item that matches any one of the provided search keys.
17484
17485        * accessibility/AccessibilityObject.cpp:
17486        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
17487        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
17488        (WebCore):
17489        * accessibility/AccessibilityObject.h:
17490        (AccessibilitySearchCriteria):
17491        (WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria):
17492        (AccessibilityObject):
17493        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
17494        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
17495
174962013-03-29  Joshua Bell  <jsbell@chromium.org>
17497
17498        IndexedDB: Bind lifetime of in-memory backing stores to IDBFactory backend
17499        https://bugs.webkit.org/show_bug.cgi?id=110820
17500
17501        Reviewed by Tony Chang.
17502
17503        Backing stores are dropped as soon as all connections are closed. That makes sense for
17504        disk-backed stores to free up memory (although there's a performance trade-off...). But
17505        for memory-backed stores, the expected lifetime should match the lifetime of the factory
17506        so that an open/write/close/re-open/read yields the written data.
17507
17508        Test: Chromium's webkit_unit_tests, IDBFactoryBackendTest.MemoryBackingStoreLifetime
17509
17510        * Modules/indexeddb/IDBBackingStore.cpp:
17511        (WebCore::IDBBackingStore::IDBBackingStore): Pass comparator into constructor since it was always
17512        assigned immediately afterwards anyway.
17513        (WebCore::IDBBackingStore::open): Split into three parts - open() which is disk-backed...
17514        (WebCore::IDBBackingStore::openInMemory): ...explit in-memory creation (previously: specified by empty path)
17515        (WebCore::IDBBackingStore::create): ... and the common logic which calls the constructor.
17516        * Modules/indexeddb/IDBBackingStore.h: Headers for the above.
17517        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
17518        (WebCore::IDBFactoryBackendImpl::openBackingStore): Add in-memory backing stores to dependent set.
17519        * Modules/indexeddb/IDBFactoryBackendImpl.h: Add member to track dependent backing stores.
17520
175212013-03-29  Nate Chapin  <japhet@chromium.org>
17522
17523        ASSERT d->m_defersLoading != defers on detik.com and drive.google.com
17524        https://bugs.webkit.org/show_bug.cgi?id=111902
17525
17526        Reviewed by Alexey Proskuryakov.
17527
17528        Test: http/tests/navigation/same-url-iframes-defer-crash.html
17529
17530        * loader/DocumentLoader.cpp:
17531        (WebCore::DocumentLoader::setDefersLoading): If multiple DocumentLoaders are
17532           using loading the same main resource, ensure only one of them can call
17533           ResourceLoader::setDefersLoading.
17534
175352013-03-29  Vsevolod Vlasov  <vsevik@chromium.org>
17536
17537        Web Inspector: Content should not be lost when uiSourceCode's file was removed externally on file system.
17538        https://bugs.webkit.org/show_bug.cgi?id=113581
17539
17540        Reviewed by Pavel Feldman.
17541
17542        * inspector/front-end/IsolatedFileSystem.js:
17543        (WebInspector.IsolatedFileSystem.prototype.errorHandler):
17544        (WebInspector.IsolatedFileSystem.prototype.requestFileContent):
17545        (WebInspector.IsolatedFileSystem.prototype.fileSystemLoaded):
17546        * inspector/front-end/UISourceCode.js:
17547        (WebInspector.UISourceCode.prototype.checkContentUpdated.contentLoaded):
17548        (WebInspector.UISourceCode.prototype.checkContentUpdated):
17549        (WebInspector.UISourceCode.prototype._commitContent):
17550
175512013-03-29  Vsevolod Vlasov  <vsevik@chromium.org>
17552
17553        Web Inspector: Prompt before closing dirty tab.
17554        https://bugs.webkit.org/show_bug.cgi?id=113576
17555
17556        Reviewed by Pavel Feldman.
17557
17558        * inspector/front-end/TabbedEditorContainer.js:
17559        (WebInspector.TabbedEditorContainer):
17560        (WebInspector.TabbedEditorContainer.prototype._maybeCloseTab):
17561        (WebInspector.TabbedEditorContainer.prototype._closeTabs):
17562        (WebInspector.EditorContainerTabDelegate):
17563        (WebInspector.EditorContainerTabDelegate.prototype.closeTabs):
17564        * inspector/front-end/TabbedPane.js:
17565        (WebInspector.TabbedPane.prototype.setTabDelegate):
17566        (WebInspector.TabbedPane.prototype.appendTab):
17567        (WebInspector.TabbedPane.prototype.allTabs):
17568        (WebInspector.TabbedPane.prototype.otherTabs):
17569        (WebInspector.TabbedPaneTab.prototype.setDelegate):
17570        (WebInspector.TabbedPaneTab.prototype._tabClicked):
17571        (WebInspector.TabbedPaneTab.prototype._closeTabs):
17572        (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
17573        (WebInspector.TabbedPaneTab.prototype._tabContextMenu.closeOthers):
17574        (WebInspector.TabbedPaneTab.prototype._tabContextMenu.closeAll):
17575        (WebInspector.TabbedPaneTabDelegate):
17576        (WebInspector.TabbedPaneTabDelegate.prototype.closeTabs):
17577        * inspector/front-end/UISourceCode.js:
17578        (WebInspector.UISourceCode.prototype.resetWorkingCopy):
17579
175802013-03-29  Ilya Tikhonovsky  <loislo@chromium.org>
17581
17582        Web Inspector: Flame Chart. Remove hopping ancorElement and use anchorBox instead.
17583        https://bugs.webkit.org/show_bug.cgi?id=113579
17584
17585        Reviewed by Pavel Feldman.
17586
17587        Initially I made a fake anchor element and moved it according to the highlighted element position.
17588        It was a hack and after http://trac.webkit.org/changeset/147209 I'm able to remove it.
17589
17590        Drive by fix: the code was moved from onMouseMove to getPopoverAnchor.
17591
17592        * inspector/front-end/FlameChart.js:
17593        (WebInspector.FlameChart):
17594        (WebInspector.FlameChart.prototype._getPopoverAnchor):
17595        -(WebInspector.FlameChart.prototype._onMouseMove)
17596        * inspector/front-end/flameChart.css:
17597
175982013-03-29  Kondapally Kalyan  <kalyan.kondapally@intel.com>
17599
17600        [EFL][EGL] Add support for creating offscreen surface.
17601        https://bugs.webkit.org/show_bug.cgi?id=113359
17602
17603        Reviewed by Noam Rosenthal.
17604
17605        This is in preparation for enabling EGL and GLES2
17606        support for EFL port. This patch adds support for using
17607        EGLPixmapSurface as an offscreensurface.
17608
17609        * PlatformEfl.cmake:
17610        * platform/graphics/opengl/GLPlatformSurface.cpp:
17611        (WebCore::GLPlatformSurface::createOffScreenSurface):
17612        * platform/graphics/surfaces/efl/GLTransportSurface.cpp:
17613        (WebCore::GLTransportSurface::createTransportSurface):
17614        * platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
17615        (WebCore::EGLConfigSelector::EGLConfigSelector):
17616        (WebCore::EGLConfigSelector::pixmapContextConfig):
17617        (WebCore::EGLConfigSelector::surfaceContextConfig):
17618        (WebCore::EGLConfigSelector::nativeVisualId):
17619        (WebCore::EGLConfigSelector::reset):
17620        (WebCore::EGLConfigSelector::createConfig):
17621        * platform/graphics/surfaces/egl/EGLConfigSelector.h:
17622        (EGLConfigSelector):
17623
17624         Added logic to select EGLConfig supporting alpha and
17625         opaque as needed. Moved Code related to display to
17626         EGLHelper class.
17627
17628        * platform/graphics/surfaces/egl/EGLHelper.cpp: Added.
17629        (WebCore):
17630        (EGLDisplayConnection):
17631        (WebCore::EGLDisplayConnection::EGLDisplayConnection):
17632        (WebCore::EGLDisplayConnection::~EGLDisplayConnection):
17633        (WebCore::EGLDisplayConnection::display):
17634        (WebCore::EGLDisplayConnection::terminate):
17635        (WebCore::EGLHelper::eglDisplay):
17636        * platform/graphics/surfaces/egl/EGLHelper.h: Copied from Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h.
17637        (WebCore):
17638        (EGLHelper):
17639        * platform/graphics/surfaces/egl/EGLSurface.cpp:
17640        (WebCore::EGLTransportSurface::createTransportSurface):
17641        (WebCore::EGLTransportSurface::EGLTransportSurface):
17642        (WebCore::EGLTransportSurface::attributes):
17643        (WebCore::EGLTransportSurface::~EGLTransportSurface):
17644        (WebCore::EGLTransportSurface::destroy):
17645        (WebCore::EGLTransportSurface::configuration):
17646        (WebCore::EGLOffScreenSurface::createOffScreenSurface):
17647        (WebCore::EGLOffScreenSurface::EGLOffScreenSurface):
17648        (WebCore::EGLOffScreenSurface::~EGLOffScreenSurface):
17649        (WebCore::EGLOffScreenSurface::attributes):
17650        (WebCore::EGLOffScreenSurface::configuration):
17651        (WebCore::EGLOffScreenSurface::destroy):
17652        * platform/graphics/surfaces/egl/EGLSurface.h:
17653        (WebCore):
17654        (EGLTransportSurface):
17655        (EGLOffScreenSurface):
17656        * platform/graphics/surfaces/egl/EGLXSurface.cpp: Copied from Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.cpp.
17657        (WebCore):
17658        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
17659        (WebCore::EGLWindowTransportSurface::~EGLWindowTransportSurface):
17660        (WebCore::EGLWindowTransportSurface::swapBuffers):
17661        (WebCore::EGLWindowTransportSurface::destroy):
17662        (WebCore::EGLPixmapSurface::EGLPixmapSurface):
17663        (WebCore::EGLPixmapSurface::~EGLPixmapSurface):
17664        (WebCore::EGLPixmapSurface::destroy):
17665        * platform/graphics/surfaces/egl/EGLXSurface.h: Copied from Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h.
17666        (WebCore):
17667        (EGLWindowTransportSurface):
17668        (EGLPixmapSurface):
17669
17670        EGLPixmapSurface implementation.
17671
176722013-03-29  Sheriff Bot  <webkit.review.bot@gmail.com>
17673
17674        Unreviewed, rolling out r147218.
17675        http://trac.webkit.org/changeset/147218
17676        https://bugs.webkit.org/show_bug.cgi?id=113585
17677
17678        We should rethink UI of this feature. (Requested by vsevik on
17679        #webkit).
17680
17681        * inspector/InjectedScriptSource.js:
17682        (.):
17683        * inspector/front-end/ObjectPropertiesSection.js:
17684        (WebInspector.ObjectPropertyTreeElement.populateWithProperties):
17685        * inspector/front-end/RemoteObject.js:
17686        (WebInspector.RemoteObject.prototype.set else):
17687        (WebInspector.RemoteObjectProperty):
17688        * inspector/front-end/inspector.css:
17689
176902013-03-29  Andrey Kosyakov  <caseq@chromium.org>
17691
17692        Web Inspector: extract common base for 3 timeline overview controls (Events/Frames/Memory)
17693        https://bugs.webkit.org/show_bug.cgi?id=113572
17694
17695        Reviewed by Yury Semikhatsky.
17696
17697        Refactoring, covered by existing tests.
17698
17699        - introduce TimelineOverviewBase as a common base for 3 overview controls;
17700        - make every overview control a view.
17701
17702        This does not yet take advantage of common base (subject of the next patch).
17703
17704        * inspector/front-end/OverviewGrid.js:
17705        (WebInspector.OverviewGrid.prototype.gridElement):
17706        (WebInspector.OverviewGrid.prototype.itemsGraphsElement):
17707        * inspector/front-end/TimelineOverviewPane.js:
17708        (WebInspector.TimelineOverviewPane):
17709        (WebInspector.TimelineOverviewPane.prototype.setMode):
17710        (WebInspector.TimelineOverviewPane.prototype._update):
17711        (WebInspector.TimelineOverviewBase):
17712        (WebInspector.TimelineOverviewBase.prototype.update):
17713        (WebInspector.TimelineMemoryOverview):
17714        (WebInspector.TimelineEventOverview):
17715        (WebInspector.TimelineEventOverview.prototype._renderBar):
17716        (WebInspector.TimelineFrameOverview):
17717        (WebInspector.TimelineFrameOverview.prototype.update):
17718        (WebInspector.TimelineFrameOverview.prototype._renderBars):
17719        (WebInspector.TimelineFrameOverview.prototype._drawFPSMarks):
17720        (WebInspector.TimelineFrameOverview.prototype._renderBar):
17721
177222013-03-29  Peter Rybin  <prybin@chromium.org>
17723
17724        Web Inspector: gather accessor property getter and setter under a single tree node
17725        https://bugs.webkit.org/show_bug.cgi?id=113357
17726
17727        Reviewed by Yury Semikhatsky.
17728
17729        A new tree element class AccessorPropertyTreeElemenet is added.
17730        RemoteObjectProperty can now represent accessor property (if value is null).
17731        New tree element is supported in CSS stylesheet.
17732
17733        Testing code is slightly modified for exploring new tree elements.
17734
17735        * inspector/InjectedScriptSource.js:
17736        (.):
17737        * inspector/front-end/ObjectPropertiesSection.js:
17738        (WebInspector.ObjectPropertyTreeElement.populateWithProperties):
17739        (WebInspector.AccessorPropertyTreeElement):
17740        (WebInspector.AccessorPropertyTreeElement.prototype.onattach):
17741        (WebInspector.AccessorPropertyTreeElement.prototype.update):
17742        (WebInspector.AccessorPropertyTreeElement.prototype.onpopulate):
17743        * inspector/front-end/RemoteObject.js:
17744        * inspector/front-end/inspector.css:
17745        (.accessor-property-name):
17746
177472013-03-29  Ilya Tikhonovsky  <loislo@chromium.org>
17748
17749        Web Inspector: Flame Chart. Developers will have more clue
17750        if two different profiles will have same colors for same functions.
17751        https://bugs.webkit.org/show_bug.cgi?id=113410
17752
17753        Reviewed by Pavel Feldman.
17754
17755        The code related to color generator was extracted into a separate class.
17756        The instance of the class was stored as static private member of the FlameChart class,
17757        so all the profiles will share the same instance and will use same colors.
17758        The colors itself were slightly adjusted.
17759
17760        Drive by fix: coordinatesToNodeIndex was fixed. The error was introduced in the patch about left padding.
17761
17762        * inspector/front-end/FlameChart.js:
17763        (WebInspector.FlameChart):
17764        (WebInspector.FlameChart.ColorGenerator):
17765        (WebInspector.FlameChart.ColorGenerator.prototype._colorPairForID):
17766        (WebInspector.FlameChart.prototype._calculateTimelineData):
17767        (WebInspector.FlameChart.prototype._calculateTimelineDataForSamples):
17768        (WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
17769
177702013-03-29  Charles Wei  <charles.wei@torchmobile.com.cn>
17771
17772        [BlackBerry] Cleanup the CONTEXT_MENUS in BlackBerry porting
17773        https://bugs.webkit.org/show_bug.cgi?id=113562
17774
17775        Reviewed by George Staikos.
17776        Internally reviewed by Mike Fenton and Gen Mak.
17777
17778        No new tests, just disable CONTEXT_MENUS for blackberry porting. 
17779
17780        * platform/blackberry/ContextMenuBlackBerry.cpp:
17781        * platform/blackberry/ContextMenuItemBlackBerry.cpp:
17782
177832013-03-29  KwangYong Choi  <ky0.choi@samsung.com>
17784
17785        Fix build warning after r147022
17786        https://bugs.webkit.org/show_bug.cgi?id=113567
17787
17788        Reviewed by Kentaro Hara.
17789
17790        Use UNUSED_PARAM macro to fix -Wunused-parameter build warning.
17791        No new tests, no change on behavior.
17792
17793        * page/EventHandler.cpp:
17794        (WebCore::expandSelectionToRespectUserSelectAll):
17795
177962013-03-29  Andrey Lushnikov  <lushnikov@chromium.org>
17797
17798        Web Inspector: ability to use AnchorBox as an anchor for Popover
17799        https://bugs.webkit.org/show_bug.cgi?id=113563
17800
17801        Reviewed by Pavel Feldman.
17802
17803        No new test: no change in behaviour.
17804
17805        - Ability to pass AnchorBox instead of Element for popover anchor.
17806
17807        * inspector/front-end/Popover.js:
17808        (WebInspector.Popover.prototype._positionElement):
17809        (WebInspector.PopoverHelper.prototype._eventInHoverElement):
17810
178112013-03-29  Andrey Kosyakov  <caseq@chromium.org>
17812
17813        Web Inspector: assign Scroll events to rendering category (was painting)
17814        https://bugs.webkit.org/show_bug.cgi?id=113564
17815
17816        Reviewed by Pavel Feldman.
17817
17818        * inspector/front-end/TimelinePresentationModel.js: /ScrollLayer.*category/s/painting/rendering/
17819        (WebInspector.TimelinePresentationModel._initRecordStyles):
17820
178212013-03-28  Philippe Normand  <pnormand@igalia.com>
17822
17823        [GStreamer] playback gets bumpy sometimes when on-disk buffering is slow
17824        https://bugs.webkit.org/show_bug.cgi?id=113512
17825
17826        Reviewed by Martin Robinson.
17827
17828        When the HTTP source element is slow downloading data for on-disk
17829        buffering the playback position might reach an unbuffered region
17830        and have bad consequences, pausing the pipeline beforehand
17831        prevents this case to happen.
17832
17833        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
17834        (WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
17835
178362013-03-29  Keishi Hattori  <keishi@webkit.org>
17837
17838        Add the event handler content attributes that are defined in the spec to HTMLElement
17839        https://bugs.webkit.org/show_bug.cgi?id=86363
17840
17841        Reviewed by Ryosuke Niwa.
17842
17843        Test: fast/events/event-attribute.html
17844
17845        We are missing some event handler content attributes from HTMLElement that are defined in the spec.
17846        http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#event-handlers-on-elements,-document-objects,-and-window-objects
17847
17848        * html/HTMLElement.cpp:
17849        (WebCore::HTMLElement::eventNameForAttributeName): Returns event name for a given attribute name by looking it up on a HashMap.
17850        (WebCore::HTMLElement::parseAttribute): Sets up event listeners for content attributes.
17851        * html/HTMLFormElement.cpp:
17852        (WebCore::HTMLFormElement::parseAttribute): Removed event listener content attributes that was added to HTMLElement.
17853        * html/HTMLFrameElementBase.cpp:
17854        (WebCore::HTMLFrameElementBase::parseAttribute): Ditto.
17855        * html/HTMLImageElement.cpp:
17856        (WebCore::HTMLImageElement::parseAttribute): Ditto.
17857        * html/HTMLLinkElement.cpp:
17858        (WebCore::HTMLLinkElement::parseAttribute): Ditto.
17859        * html/HTMLObjectElement.cpp:
17860        (WebCore::HTMLObjectElement::parseAttribute): Ditto.
17861        * html/HTMLScriptElement.cpp:
17862        (WebCore::HTMLScriptElement::parseAttribute): Ditto.
17863        * html/HTMLSelectElement.cpp:
17864        (WebCore::HTMLSelectElement::parseAttribute): Ditto.
17865        * html/HTMLStyleElement.cpp:
17866        (WebCore::HTMLStyleElement::parseAttribute): Ditto.
17867        * html/HTMLTextFormControlElement.cpp:
17868        (WebCore::HTMLTextFormControlElement::parseAttribute): Ditto.
17869        * html/HTMLTrackElement.cpp:
17870        (WebCore::HTMLTrackElement::parseAttribute): Ditto.
17871
178722013-03-22  Andrey Kosyakov  <caseq@chromium.org>
17873
17874        Web Inspector: timeline paint rectangles are off for transformed layers
17875        https://bugs.webkit.org/show_bug.cgi?id=112919
17876
17877        Reviewed by Pavel Feldman.
17878
17879        - pass RenderObject instead of Frame to InspectorInstrumentation::didPaint;
17880        - take transforms into account and convert paint clip rect into quad;
17881        - emit quads, not rects as Paint and Layout record data;
17882        - adjust client to using quads, compute width/height from quad coords.
17883
17884        * inspector/InspectorInstrumentation.cpp: Pass RenderObject, not frame to {will,did}Paint.
17885        (WebCore):
17886        (WebCore::InspectorInstrumentation::willPaintImpl):
17887        (WebCore::InspectorInstrumentation::didPaintImpl):
17888        (WebCore::InspectorInstrumentation::instrumentingAgentsForRenderer): Added.
17889        * inspector/InspectorInstrumentation.h:
17890        (WebCore):
17891        (InspectorInstrumentation):
17892        (WebCore::InspectorInstrumentation::willPaint):
17893        (WebCore::InspectorInstrumentation::didPaint):
17894        * inspector/InspectorTimelineAgent.cpp:
17895        (WebCore::InspectorTimelineAgent::didLayout):
17896        (WebCore::InspectorTimelineAgent::didPaint):
17897        (WebCore::InspectorTimelineAgent::localToPageQuad): Convert local clip rect to transformed quad.
17898        (WebCore):
17899        * inspector/InspectorTimelineAgent.h:
17900        (WebCore):
17901        (InspectorTimelineAgent):
17902        * inspector/TimelineRecordFactory.cpp: Emit quads as Paint and Layout records data.
17903        (WebCore::createQuad):
17904        (WebCore):
17905        (WebCore::TimelineRecordFactory::createPaintData):
17906        (WebCore::TimelineRecordFactory::createLayoutData):
17907        * inspector/TimelineRecordFactory.h:
17908        (WebCore):
17909        (TimelineRecordFactory):
17910        * inspector/front-end/TimelinePanel.js: Highlight a quad iff formatted record has highlightQuad field.
17911        (WebInspector.TimelinePanel.prototype._mouseOut):
17912        (WebInspector.TimelinePanel.prototype._mouseMove):
17913        (WebInspector.TimelinePanel.prototype._highlightQuad):
17914        (WebInspector.TimelinePanel.prototype._hideQuadHighlight):
17915        * inspector/front-end/TimelinePresentationModel.js:
17916        (WebInspector.TimelinePresentationModel.Record): Set highlightQuad for Paint and Layout
17917        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
17918        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
17919        (WebInspector.TimelinePresentationModel.quadWidth):
17920        (WebInspector.TimelinePresentationModel.quadHeight):
17921        * page/FrameView.cpp:
17922        (WebCore::FrameView::paintContents):
17923        * rendering/RenderLayerBacking.cpp:
17924        (WebCore::RenderLayerBacking::paintContents):
17925
179262013-03-21  Andrey Kosyakov  <caseq@chromium.org>
17927
17928        Web Inspector: generalize InspectorDOMAgent::highlightRect() to highlightQuad()
17929        https://bugs.webkit.org/show_bug.cgi?id=112911
17930
17931        Reviewed by Pavel Feldman.
17932
17933        - added Quad type and DOMAgent.highlightQuad() to protocol;
17934        - retained DOMAgent.highlightRect(), but implement it via highlightQuad.
17935
17936        * inspector/Inspector.json:
17937        * inspector/InspectorDOMAgent.cpp:
17938        (WebCore::parseQuad):
17939        (WebCore):
17940        (WebCore::InspectorDOMAgent::highlightRect):
17941        (WebCore::InspectorDOMAgent::highlightQuad):
17942        (WebCore::InspectorDOMAgent::innerHighlightQuad):
17943        * inspector/InspectorDOMAgent.h:
17944        (InspectorDOMAgent):
17945        * inspector/InspectorOverlay.cpp: Mostly just renames of rect to quad.
17946        (WebCore::InspectorOverlay::paint):
17947        (WebCore::InspectorOverlay::getHighlight):
17948        (WebCore::InspectorOverlay::hideHighlight):
17949        (WebCore::InspectorOverlay::highlightQuad):
17950        (WebCore::InspectorOverlay::update):
17951        (WebCore::InspectorOverlay::drawQuadHighlight):
17952        (WebCore::InspectorOverlay::reportMemoryUsage):
17953        * inspector/InspectorOverlay.h:
17954        (InspectorOverlay):
17955        * inspector/InspectorOverlayPage.html: Ditto.
17956
179572013-03-29  Zalan Bujtas  <zalan@apple.com>
17958
17959        REGRESSION(r143102): Ignore table cell's height attribute when checking if containing block has auto height.
17960        https://bugs.webkit.org/show_bug.cgi?id=113526
17961
17962        It matches shipping Safari and Firefox behaviour.
17963        
17964        Reviewed by Antti Koivisto.
17965
17966        Test: fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height.html
17967
17968        * rendering/RenderBoxModelObject.cpp:
17969        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
17970
179712013-03-28  Eugene Klyuchnikov  <eustas@chromium.org>
17972
17973        Web Inspector: [Cookies] CookiesTable should integrate with DataGrid context menu.
17974        https://bugs.webkit.org/show_bug.cgi?id=113496
17975
17976        Reviewed by Pavel Feldman.
17977
17978        Integrate CookiesTable with DataGrid context menu
17979        instead of overriding it.
17980
17981        * inspector/front-end/CookiesTable.js:
17982        Pass context menu callback to DataGrid constructor.
17983        * inspector/front-end/DataGrid.js:
17984        Added context menu callback constructor parameter. Fixed JSDoc.
17985
179862013-03-28  Philip Rogers  <pdr@google.com>
17987
17988        Fix compiler warning in IDBTransaction::modeToString
17989        https://bugs.webkit.org/show_bug.cgi?id=113547
17990
17991        Reviewed by Darin Adler.
17992
17993        Not all compilers are smart enough to handle this switch. This patch refactors
17994        modeToString to not return from the default case.
17995
17996        No new tests as this is just a compiler fix.
17997
17998        * Modules/indexeddb/IDBTransaction.cpp:
17999        (WebCore::IDBTransaction::modeToString):
18000
180012013-03-28  Simon Fraser  <simon.fraser@apple.com>
18002
18003        GraphicsLayerCA::recomputeVisibleRects() shouldn't actually set the visible rect
18004        https://bugs.webkit.org/show_bug.cgi?id=113544
18005
18006        Reviewed by Tim Horton.
18007        
18008        The functions added in r147058 to update the visible rects of GraphicsLayerCAs
18009        should not have actually set the m_visibleRect on the layer, because this
18010        caused a later call to adjustTiledLayerVisibleRect() to think that the visible
18011        rect had not changed, so it did no expansion.
18012        
18013        Clarify the logic to ask the GraphicsLayer whether, given a new visible
18014        rect, it would need to make new tiles (which happens later during a flush).
18015        
18016        Add a function to RenderLayerCompositor to call this code (but which has
18017        no callers yet).
18018
18019        * platform/graphics/GraphicsLayer.h:
18020        (WebCore::GraphicsLayer::visibleRectChangeRequiresFlush): Make private.
18021        * platform/graphics/ca/GraphicsLayerCA.cpp:
18022        (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush):
18023        (WebCore::GraphicsLayerCA::visibleRectChangeRequiresFlush):
18024        * platform/graphics/ca/GraphicsLayerCA.h:
18025        * rendering/RenderLayerCompositor.cpp:
18026        (WebCore::RenderLayerCompositor::noteVisibleRectChanged):
18027        * rendering/RenderLayerCompositor.h:
18028        (RenderLayerCompositor):
18029
180302013-03-28  Rafael Weinstein  <rafaelw@chromium.org>
18031
18032        [HTMLTemplateElement] <template> should be able to be a foster parent
18033        https://bugs.webkit.org/show_bug.cgi?id=113541
18034
18035        Reviewed by Eric Seidel
18036
18037        This adds to the check in findFosterSite to include whether the parent is a DocumentFragment which is a template contents.
18038
18039        Tests added to html5lib suite.
18040
18041        * html/parser/HTMLConstructionSite.cpp:
18042        (WebCore::HTMLConstructionSite::findFosterSite):
18043
180442013-03-28  Xianzhu Wang  <wangxianzhu@chromium.org>
18045
18046        [Chromium] Don't create SolidColorLayer for full transparent background
18047        https://bugs.webkit.org/show_bug.cgi?id=113524
18048
18049        Reviewed by James Robinson.
18050
18051        Test: GraphicsLayerChromiumTest.setContentsToSolidColor
18052
18053        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
18054        (WebCore::GraphicsLayerChromium::setContentsToSolidColor):
18055
180562013-03-28  Arnaud Renevier  <a.renevier@sisa.samsung.com>
18057
18058        use XMLHttpRequestResponseType enumeration in XMLHttpRequest.idl
18059        https://bugs.webkit.org/show_bug.cgi?id=113518
18060
18061        Reviewed by Kentaro Hara.
18062
18063        Use enum XMLHttpRequestResponseType type instead of DOMString for
18064        XMLHttpRequest responseType.
18065
18066        Argument validation now happens in the bindings. 
18067        XMLHttpRequest::setResponseType should then never receive invalid
18068        arguments. So, replace console message with ASSERT_NOT_REACHED();
18069
18070        Test: fast/xmlhttprequest/xmlhttprequest-set-responsetype.html
18071
18072        * xml/XMLHttpRequest.cpp:
18073        (WebCore::XMLHttpRequest::setResponseType):
18074        * xml/XMLHttpRequest.idl:
18075
180762013-03-28  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
18077
18078        [css3-text] Add platform support for "wavy" text decoration style
18079        https://bugs.webkit.org/show_bug.cgi?id=92868
18080
18081        Reviewed by Benjamin Poulain.
18082
18083        This patch uses GraphicsContext::strokePath() to implement
18084        wavy decoration for the CSS3 property "text-decoration-style".
18085
18086        No new tests as this is covered with existing tests.
18087
18088        * rendering/InlineTextBox.cpp:
18089        (WebCore::textDecorationStyleToStrokeStyle): Remove obsolete comment.
18090        (WebCore::adjustStepToDecorationLength): Add function to adjust
18091        variables used to calculate the lenght of Bezier curves.
18092        (WebCore::strokeWavyTextDecoration): Add function to stroke wavy
18093        decoration based on cubic Bezier curve.
18094        (WebCore::InlineTextBox::paintDecoration): Call
18095        strokeWavyTextDecoration when necessary.
18096
180972013-03-28  Arnaud Renevier  <a.renevier@sisa.samsung.com>
18098
18099        REGRESSION(r147149): breaks binding test on Mac. (Requested by mlam_ on #webkit).
18100        https://bugs.webkit.org/show_bug.cgi?id=113538
18101
18102        Reviewed by Simon Fraser.
18103
18104        Run run-bindings-tests --reset-results to fix broken tests after
18105        r147149.
18106
18107        * bindings/scripts/test/V8/V8TestInterface.cpp:
18108        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
18109        * bindings/scripts/test/V8/V8TestObj.cpp:
18110        (WebCore::TestObjV8Internal::shortAttrAttrSetter):
18111        (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetter):
18112        (WebCore::TestObjV8Internal::longAttrAttrSetter):
18113        (WebCore::TestObjV8Internal::longLongAttrAttrSetter):
18114        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetter):
18115        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
18116        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
18117        (WebCore::TestObjV8Internal::createAttrSetter):
18118        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetter):
18119        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetter):
18120        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetter):
18121        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetter):
18122        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetter):
18123        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
18124        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetter):
18125        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetter):
18126        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetter):
18127        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
18128        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
18129        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
18130        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
18131        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
18132        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
18133        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
18134        (WebCore::TestObjV8Internal::conditionalAttr1AttrSetter):
18135        (WebCore::TestObjV8Internal::conditionalAttr2AttrSetter):
18136        (WebCore::TestObjV8Internal::conditionalAttr3AttrSetter):
18137        (WebCore::TestObjV8Internal::anyAttributeAttrSetter):
18138        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetter):
18139        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetter):
18140        (WebCore::TestObjV8Internal::enabledPerContextAttr1AttrSetter):
18141        (WebCore::TestObjV8Internal::enabledPerContextAttr2AttrSetter):
18142        (WebCore::TestObjV8Internal::floatArrayAttrSetter):
18143        (WebCore::TestObjV8Internal::doubleArrayAttrSetter):
18144        (WebCore::TestObjV8Internal::mutablePointAttrSetter):
18145        (WebCore::TestObjV8Internal::immutablePointAttrSetter):
18146        (WebCore::TestObjV8Internal::strawberryAttrSetter):
18147        (WebCore::TestObjV8Internal::strictFloatAttrSetter):
18148        (WebCore::TestObjV8Internal::idAttrSetter):
18149        (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetter):
18150        (WebCore::TestObjV8Internal::nullableStringValueAttrSetter):
18151        (WebCore::TestObjV8Internal::perWorldAttributeAttrSetter):
18152        (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterForMainWorld):
18153        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
18154        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetter):
18155        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
18156        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
18157        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
18158        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
18159        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetter):
18160        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetter):
18161
181622013-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
18163
18164        Unreviewed, rolling out r147130.
18165        http://trac.webkit.org/changeset/147130
18166        https://bugs.webkit.org/show_bug.cgi?id=113539
18167
18168        Not needed now that we do not sleep in preprocessor.pm
18169        (Requested by jamesr on #webkit).
18170
18171        * WebCore.gyp/WebCore.gyp:
18172        * bindings/scripts/CodeGenerator.pm:
18173        (ParseInterface):
18174        * bindings/scripts/IDLParser.pm:
18175        (Parse):
18176        * bindings/scripts/generate-bindings.pl:
18177        * bindings/scripts/generate-preprocessed-idls.pl: Removed.
18178        * bindings/scripts/preprocessor.pm:
18179        (applyPreprocessor):
18180
181812013-03-28  Nate Chapin  <japhet@chromium.org>
18182
18183        Don't grant local content permissions for appcache loads.
18184        https://bugs.webkit.org/show_bug.cgi?id=112542
18185
18186        Reviewed by Antti Koivisto.
18187
18188        No new tests, fixing http/tests/appcache/local-content.html
18189
18190        * loader/DocumentLoader.cpp:
18191        (WebCore::DocumentLoader::DocumentLoader):
18192        (WebCore::DocumentLoader::commitData): Don't grant local load permissions
18193            to all SubstituteData loads, only give them to loads that were SubstituteData
18194            loads at the time of DocumentLoader construction. This constitutes all
18195            SubstituteData loads except those triggered by appcache.
18196        * loader/DocumentLoader.h:
18197        * loader/FrameLoader.cpp:
18198        (WebCore::FrameLoader::didBeginDocument): Move granting local load
18199            permissions for SubstituteData loads to DocumentLoader::commitData().
18200
182012013-03-28  Mike West  <mkwst@chromium.org>
18202
18203        X-Frame-Options: Blocked resources should fire load events.
18204        https://bugs.webkit.org/show_bug.cgi?id=113192
18205
18206        Reviewed by Nate Chapin.
18207
18208        * loader/DocumentLoader.cpp:
18209        (WebCore::DocumentLoader::responseReceived):
18210            Fire a load event on the frame's owner element when denying access
18211            due to X-Frame-Options header content. This brings us in-line with
18212            Gecko and IE, which both trigger load events currently.
18213
182142013-03-28  Tien-Ren Chen  <trchen@chromium.org>
18215
18216        Support bottom-right anchored fixed-position elements during a pinch gesture
18217        https://bugs.webkit.org/show_bug.cgi?id=111670
18218
18219        Reviewed by James Robinson.
18220
18221        This patch adds support to bottom-right fixed-position elements by
18222        introducing WebLayerPositionConstraint to WebLayer.
18223
18224        No new tests. Can't test until chromium patch landed.
18225
18226        * page/scrolling/ScrollingCoordinator.h:
18227        (WebCore::ScrollingCoordinator::updateLayerPositionConstraint):
18228        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
18229        (WebCore::clearPositionConstraintExceptForLayer):
18230        (WebCore):
18231        (WebCore::computePositionConstraint):
18232        (WebCore::ScrollingCoordinatorChromium::updateLayerPositionConstraint):
18233        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
18234        (ScrollingCoordinatorChromium):
18235        * rendering/RenderLayerBacking.cpp:
18236        (WebCore::RenderLayerBacking::registerScrollingLayers):
18237        * rendering/RenderLayerBacking.h:
18238        (WebCore::RenderLayerBacking::contentsContainmentLayer):
18239        (RenderLayerBacking):
18240        * rendering/RenderLayerCompositor.cpp:
18241        * rendering/RenderLayerCompositor.h:
18242
182432013-03-28  James Robinson  <jamesr@chromium.org>
18244
18245        Remove unnecessary 1 second sleep on windows from preprocessor.pm
18246        https://bugs.webkit.org/show_bug.cgi?id=113536
18247
18248        Unreviewed, partial rollout of r146661.
18249
18250        This rolls out one line of 146661 that slows down the windows build significantly.
18251
18252        * bindings/scripts/preprocessor.pm:
18253        (applyPreprocessor):
18254
182552013-03-28  Levi Weintraub  <leviw@chromium.org>
18256
18257        Enable font measurement optimization for Chromium-mac when there are no font-feature-settings.
18258
18259        Enable measure-once optimization on Chromium-Mac
18260        https://bugs.webkit.org/show_bug.cgi?id=113243
18261
18262        Reviewed by Eric Seidel.
18263
18264        Bugs in Chromium-mac's -webkit-font-feature-settings support prevented us from enabling the
18265        optimization when it was enabled for all other platforms. This was believed to be related to
18266        kerning, but the bug shows up when there are any font-feature-settings specified. For now,
18267        optimizing the common case and only turning off the optimization when there are font-feature-
18268        settings in play.
18269
18270        Updated test fast/text/shaping/shaping-selection-rect.html to avoid breaking due to
18271        https://bugs.webkit.org/show_bug.cgi?id=113418
18272
18273        * rendering/RenderBlockLineLayout.cpp:
18274        (WebCore::setLogicalWidthForTextRun):
18275
182762013-03-28  Zoltan Horvath  <zoltan@webkit.org>
18277
18278        [CSS Exclusions][CSS Regions] Block children do not layout inline content correctly in a region with shape-inside set
18279        https://bugs.webkit.org/show_bug.cgi?id=112177
18280
18281        Reviewed by David Hyatt.
18282
18283        When we had two multiple regions and a shape-inside was applied on the second region, but not on the first region and the content contained
18284        paragraphs, the content was pushed down almost to the bottom in the second region. In a flow thread this behavior caused by the lack of the 
18285        proper updating of absoluteLogicalTop in RenderBlock::layoutRunsAndFloatsInRange function.
18286
18287        Tests: fast/regions/shape-inside/shape-inside-on-additional-regions.html
18288               fast/regions/shape-inside/shape-inside-on-regions.html
18289
18290        * rendering/RenderBlockLineLayout.cpp:
18291        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Update the value of absoluteLogicalTop in every run when we are in a flow thread.
18292
182932013-03-28  Arnaud Renevier  <a.renevier@sisa.samsung.com>
18294
18295        exceptions are not checked after toInt32 calls in bindings.
18296        https://bugs.webkit.org/show_bug.cgi?id=113218
18297
18298        Reviewed by Kentaro Hara.
18299
18300        In attribute setter, wrap JSValue to native value conversion in a try
18301        catch block.
18302
18303        Define a new macro binding: V8TRYCATCH_VOID
18304
18305        No new tests: covered by fast/dom/exception-in-binding.html
18306
18307        * bindings/scripts/CodeGeneratorV8.pm:
18308        (GenerateNormalAttrSetter):
18309        * bindings/v8/V8BindingMacros.h:
18310        (WebCore):
18311
183122013-03-28  ChangSeok Oh  <changseok.oh@collabora.com>
18313
18314        [GTK][AC] Use transform property of ClutterActor
18315        https://bugs.webkit.org/show_bug.cgi?id=113317
18316
18317        Reviewed by Gustavo Noronha Silva.
18318
18319        ClutterActor has a transform property to set transformation matrix directly
18320        since version 1.12. So we don't need to keep and use the matrix property of GraphicsLayerActor.
18321
18322        No new tests because of no functionality change.
18323
18324        * platform/graphics/clutter/GraphicsLayerActor.cpp:
18325        (_GraphicsLayerActorPrivate):
18326        (graphicsLayerActorDispose):
18327        (graphicsLayerActorApplyTransform):
18328        * platform/graphics/clutter/GraphicsLayerActor.h:
18329        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
18330        (WebCore::GraphicsLayerClutter::updateTransform):
18331        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
18332        (WebCore::PlatformClutterAnimation::addTransformTransition):
18333
183342013-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
18335
18336        Unreviewed, rolling out r143834.
18337        http://trac.webkit.org/changeset/143834
18338        https://bugs.webkit.org/show_bug.cgi?id=113530
18339
18340        Multiple use-after-free regressions on ClusterFuzz (Requested
18341        by inferno-sec on #webkit).
18342
18343        * dom/Attr.cpp:
18344        (WebCore::Attr::Attr):
18345        (WebCore::Attr::setValue):
18346        (WebCore::Attr::childrenChanged):
18347        * dom/Attr.h:
18348        (Attr):
18349        * dom/Element.cpp:
18350        (WebCore::Element::setAttributeInternal):
18351        * dom/Element.h:
18352        (Element):
18353
183542013-03-28  Julien Chaffraix  <jchaffraix@webkit.org>
18355
18356        [CSS Grid Layout] Before / start paddings and borders are not accounted for when placing the grid items
18357        https://bugs.webkit.org/show_bug.cgi?id=113351
18358
18359        Reviewed by Tony Chang.
18360
18361        Tests: fast/css-grid-layout/grid-element-border-grid-item.html
18362               fast/css-grid-layout/grid-element-border-padding-grid-item.html
18363               fast/css-grid-layout/grid-element-padding-grid-item.html
18364
18365        * rendering/RenderBoxModelObject.h:
18366        (WebCore::RenderBoxModelObject::borderAndPaddingBefore):
18367        Added this helper function (we do have borderAndPaddingStart but didn't have this
18368        one for some reason).
18369
18370        * rendering/RenderGrid.cpp:
18371        (WebCore::RenderGrid::findChildLogicalPosition):
18372        Shifted |offset| by the paddings and borders before / start.
18373
183742013-03-28  Zan Dobersek  <zdobersek@igalia.com>
18375
18376        [GTK] Build GTK-specific, non-layer-violating source code into WebCore-independent libPlatformGtk.la
18377        https://bugs.webkit.org/show_bug.cgi?id=112546
18378
18379        Reviewed by Martin Robinson.
18380
18381        No new tests - no new functionality.
18382
18383        * GNUmakefile.am: Passing the DATA_DIR value through the cppflags is not required anymore as the affected source is now
18384        built into libPlatformGtk.la.
18385        * GNUmakefile.list.am: Build the GTK-specific source files that are already independent of WebCore into the
18386        libPlatformGtk.la by assigning the build targets listing to the platformgtk_sources variable.
18387        * platform/gtk/GtkVersioning.c: Renamed from Source/Platform/gtk/GtkVersioning.c.
18388        * platform/gtk/GtkVersioning.h: Renamed from Source/Platform/gtk/GtkVersioning.h.
18389
183902013-03-28  Matt Falkenhagen  <falken@chromium.org>
18391
18392        Refactoring: Replace Element::disabled and isEnabledFormControl with isDisabledFormControl
18393        https://bugs.webkit.org/show_bug.cgi?id=113273
18394
18395        Reviewed by Kent Tamura.
18396
18397        Element::disabled is about form controls and Element::isEnabledFormControl
18398        is redundant with it, so replace them with a single function
18399        Element::isDisabledFormControl.
18400
18401        No new tests, there should be no behavior change.
18402
18403        * accessibility/AccessibilityListBox.cpp:
18404        (WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
18405        * accessibility/AccessibilityListBoxOption.cpp:
18406        (WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
18407        * accessibility/AccessibilityMenuList.cpp:
18408        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
18409        * accessibility/AccessibilityMenuListOption.cpp:
18410        (WebCore::AccessibilityMenuListOption::isEnabled):
18411        * accessibility/AccessibilityNodeObject.cpp:
18412        (WebCore::AccessibilityNodeObject::isEnabled):
18413        (WebCore::AccessibilityNodeObject::actionElement):
18414        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
18415        * css/SelectorChecker.cpp:
18416        (WebCore::SelectorChecker::checkOne):
18417        * css/StyleResolver.cpp:
18418        (WebCore::StyleResolver::canShareStyleWithControl):
18419        * dom/Element.cpp:
18420        (WebCore::Element::isDisabledFormControl):
18421        * dom/Element.h:
18422        (Element):
18423        (WebCore::isDisabledFormControl): Add helper function for convenience.
18424        (WebCore):
18425        * dom/EventDispatcher.cpp:
18426        (WebCore::EventDispatcher::dispatchSimulatedClick):
18427        * dom/GestureEvent.cpp:
18428        (WebCore::GestureEventDispatchMediator::dispatchEvent):
18429        * dom/MouseEvent.cpp:
18430        (WebCore::MouseEventDispatchMediator::dispatchEvent):
18431        * dom/Node.cpp:
18432        (WebCore::Node::handleLocalEvents):
18433        (WebCore::Node::willRespondToMouseMoveEvents):
18434        (WebCore::Node::willRespondToMouseClickEvents):
18435        (WebCore::Node::willRespondToTouchEvents):
18436        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
18437        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
18438        * html/DOMFormData.cpp:
18439        (WebCore::DOMFormData::DOMFormData):
18440        * html/FileInputType.cpp:
18441        (WebCore::FileInputType::handleDOMActivateEvent):
18442        (WebCore::FileInputType::disabledAttributeChanged):
18443        * html/HTMLButtonElement.cpp:
18444        (WebCore::HTMLButtonElement::defaultEventHandler):
18445        (WebCore::HTMLButtonElement::willRespondToMouseClickEvents):
18446        (WebCore::HTMLButtonElement::isSuccessfulSubmitButton):
18447        * html/HTMLCollection.cpp:
18448        (WebCore::isMatchingElement):
18449        * html/HTMLFormControlElement.cpp:
18450        (WebCore::HTMLFormControlElement::updateAncestorDisabledState):
18451        (WebCore::HTMLFormControlElement::isDisabledFormControl):
18452        (WebCore::HTMLFormControlElement::supportsFocus):
18453        * html/HTMLFormControlElement.h:
18454        (HTMLFormControlElement):
18455        (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
18456        * html/HTMLInputElement.cpp:
18457        (WebCore::HTMLInputElement::isSuccessfulSubmitButton):
18458        (WebCore::HTMLInputElement::willRespondToMouseClickEvents):
18459        * html/HTMLOptGroupElement.cpp:
18460        (WebCore::HTMLOptGroupElement::isDisabledFormControl):
18461        * html/HTMLOptGroupElement.h:
18462        (HTMLOptGroupElement):
18463        * html/HTMLOptionElement.cpp:
18464        (WebCore::HTMLOptionElement::isDisabledFormControl):
18465        * html/HTMLOptionElement.h:
18466        (HTMLOptionElement):
18467        * html/HTMLPlugInElement.cpp:
18468        (WebCore::HTMLPlugInElement::willRespondToMouseClickEvents):
18469        * html/HTMLSelectElement.cpp:
18470        (WebCore::HTMLSelectElement::nextValidIndex):
18471        (WebCore::HTMLSelectElement::updateListBoxSelection):
18472        (WebCore::HTMLSelectElement::recalcListItems):
18473        (WebCore::HTMLSelectElement::appendFormData):
18474        (WebCore::HTMLSelectElement::updateSelectedState):
18475        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
18476        (WebCore::HTMLSelectElement::defaultEventHandler):
18477        (WebCore::HTMLSelectElement::optionAtIndex):
18478        * html/ImageInputType.cpp:
18479        (WebCore::ImageInputType::handleDOMActivateEvent):
18480        * html/ResetInputType.cpp:
18481        (WebCore::ResetInputType::handleDOMActivateEvent):
18482        * html/SubmitInputType.cpp:
18483        (WebCore::SubmitInputType::handleDOMActivateEvent):
18484        * html/shadow/SliderThumbElement.cpp:
18485        (WebCore::SliderThumbElement::isDisabledFormControl):
18486        (WebCore::SliderThumbElement::defaultEventHandler):
18487        (WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
18488        (WebCore::SliderThumbElement::willRespondToMouseClickEvents):
18489        * html/shadow/SliderThumbElement.h:
18490        (SliderThumbElement):
18491        * html/shadow/SpinButtonElement.h:
18492        * html/shadow/TextFieldDecorationElement.cpp:
18493        (WebCore::TextFieldDecorationElement::updateImage):
18494        * loader/FormSubmission.cpp:
18495        (WebCore::FormSubmission::create):
18496        * page/DragController.cpp:
18497        (WebCore::DragController::tryDocumentDrag):
18498        (WebCore::DragController::concludeEditDrag):
18499        * rendering/RenderListBox.cpp:
18500        (WebCore::RenderListBox::addFocusRingRects):
18501        (WebCore::RenderListBox::paintItemForeground):
18502        * rendering/RenderMenuList.cpp:
18503        (WebCore::RenderMenuList::itemIsEnabled):
18504        * rendering/RenderTextControl.cpp:
18505        (WebCore::updateUserModifyProperty):
18506        * rendering/RenderTheme.cpp:
18507        (WebCore::RenderTheme::isEnabled):
18508        * rendering/RenderThemeMac.mm:
18509        (WebCore::getMediaUIPartStateFlags):
18510        * rendering/RenderThemeMacShared.mm:
18511        (WebCore::RenderThemeMacShared::adjustMenuListStyle):
18512        (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
18513        * rendering/RenderThemeSafari.cpp:
18514        (WebCore::RenderThemeSafari::adjustMenuListStyle):
18515
185162013-03-28  Brady Eidson  <beidson@apple.com>
18517
18518        Remove workaround for <rdar://problem/5321972>.
18519        <rdar://problem/12022862> and https://bugs.webkit.org/show_bug.cgi?id=113516
18520
18521        Reviewed by Sam Weinig.
18522
18523        No new tests (No point in testing the removal of bizarre behavior).
18524
18525        * platform/network/mac/WebCoreURLResponse.mm:
18526        (WebCore::adjustMIMETypeIfNecessary): This workaround isn't needed on Lion+
18527
185282013-03-28  Arnaud Renevier  <a.renevier@sisa.samsung.com>
18529
18530        use CanvasWindingRule enumeration in CanvasRenderingContext2D.idl
18531        https://bugs.webkit.org/show_bug.cgi?id=113456
18532
18533        Reviewed by Kentaro Hara.
18534
18535        Use enum CanvasWindingRule type instead of DOMString for winding
18536        arguments when needed. Changed methods are: fill, stroke and isPointInPath.
18537
18538        Test: fast/canvas/winding-enumeration.html
18539
18540        * html/canvas/CanvasRenderingContext2D.idl:
18541
185422013-03-28  Scott Graham  <scottmg@chromium.org>
18543
18544        Move preprocessing of idl to pre-pass for gyp
18545        https://bugs.webkit.org/show_bug.cgi?id=113448
18546
18547        Reviewed by Tony Chang.
18548
18549        Moves the preprocessor invocations when parsing IDL files to a
18550        pre-pass to avoid reinvocations when IDLs are referenced from others.
18551        This reduces the number of invocations of the preprocessor from 20071
18552        to 633, which reduces the runtime from 12m30 to 1m (on a Windows box).
18553
18554        No new tests, this is a build time improvement, and shouldn't have any
18555        visible effect.
18556
18557        * WebCore.gyp/WebCore.gyp:
18558        * bindings/scripts/CodeGenerator.pm:
18559        (ParseInterface):
18560        * bindings/scripts/IDLParser.pm:
18561        (Parse):
18562        * bindings/scripts/generate-bindings.pl:
18563        * bindings/scripts/generate-preprocessed-idls.pl: Added.
18564        * bindings/scripts/preprocessor.pm:
18565        (applyPreprocessor):
18566
185672013-03-28  Alok Priyadarshi  <alokp@chromium.org>
18568
18569        RenderBox::backgroundIsKnownToBeOpaqueInRect may be wrong for theme-painted elements
18570        https://bugs.webkit.org/show_bug.cgi?id=113419
18571
18572        Reviewed by Simon Fraser.
18573
18574        Do not consider control elements as opaque. They are typically theme painted, and we cannot assume opaqueness on the behalf of theme. It can be improved by asking the theme if it paints opaque.
18575
18576        Test: compositing/contents-opaque/control-layer.html
18577
18578        * rendering/RenderBox.cpp:
18579        (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
18580
185812013-03-28  ChangSeok Oh  <changseok.oh@collabora.com>
18582
18583        [GTK][AC] Animating layer disappears while running with clutter backend
18584        https://bugs.webkit.org/show_bug.cgi?id=110470
18585
18586        Reviewed by Gustavo Noronha Silva.
18587
18588        The reason of this issue is that clutter_actor_remove_child leads to stopping animations
18589        of child actor. ClutterActor's animation could be defined only when it has a parent actor.
18590        So we should avoid the case calling the api as much as we can. At least we don't
18591        need to reset a actor's parent at all if the current parent is same with new one.
18592        If we can't avoid invoking clutter_actor_remove_child for an animating actor, we may apply
18593        a more complicated way to keep the animation. But I haven't faced such a case yet.
18594
18595        Covered by existing animation tests.
18596
18597        * platform/graphics/clutter/GraphicsLayerActor.cpp:
18598        (graphicsLayerActorSetSublayers):
18599        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
18600        (WebCore::GraphicsLayerClutter::recursiveCommitChanges):
18601        (WebCore::GraphicsLayerClutter::updateSublayerList):
18602
186032013-03-28  Xianzhu Wang  <wangxianzhu@chromium.org>
18604
18605        Non-painting fixed elements should not cause repaints on scroll
18606        https://bugs.webkit.org/show_bug.cgi?id=110430
18607
18608        Reviewed by Simon Fraser.
18609
18610        Test: compositing/repaint/scroll-fixed-layer-no-content.html
18611        Test: compositing/repaint/scroll-fixed-layer-out-of-view.html
18612
18613        * page/FrameView.cpp:
18614        (WebCore::FrameView::scrollContentsFastPath): Check for no-content and out-of-view flag set by RLC.
18615        * rendering/RenderLayerCompositor.cpp:
18616        (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Moved the check for no-content above out-of-view because it's faster.
18617
186182013-03-28  Alexander Pavlov  <apavlov@chromium.org>
18619
18620        Unreviewed, revert accidentally added line committed in r147117.
18621
18622        * inspector/front-end/ElementsTreeOutline.js:
18623
186242013-03-28  Alexander Pavlov  <apavlov@chromium.org>
18625
18626        Web Inspector: [Elements] Syntax-highlight the "Edit as HTML" editor
18627        https://bugs.webkit.org/show_bug.cgi?id=113306
18628
18629        Reviewed by Vsevolod Vlasov.
18630
18631        Use CodeMirror as the raw HTML editor for the "Edit as HTML" menu item
18632        (and all multiline editors for WebInspector.startEditing()).
18633        Drive-by fix for handling the editing when the editor has been invoked on the closing tag.
18634
18635        * inspector/front-end/ElementsTreeOutline.js:
18636        (WebInspector.ElementsTreeElement.prototype.commit):
18637        (WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
18638        * inspector/front-end/UIUtils.js:
18639        (WebInspector.EditingConfig.prototype.setMultiline):
18640        (WebInspector.startEditing):
18641        (WebInspector.CodeMirrorCSSLoadView): A bogus view to load-unload CodeMirror-related CSS on demand.
18642        * inspector/front-end/elementsPanel.css:
18643        (#elements-content .CodeMirror):
18644        (#elements-content .CodeMirror pre):
18645        (#elements-content .CodeMirror-lines):
18646        * inspector/front-end/elementsPanel.css: CodeMirror styles for the "Edit as HTML" editor.
18647        * inspector/front-end/externs.js: Declare CodeMirror type with some members, as it is third-party code.
18648        * inspector/front-end/inspector.html: Fix script order (UIUtils.js requires View.js).
18649
186502013-03-28  Hajime Morrita  <morrita@google.com>
18651
18652        Custom Elements: should support non-HTML namespaces.
18653        https://bugs.webkit.org/show_bug.cgi?id=111693
18654
18655        Reviewed by Dimitri Glazkov.
18656
18657        Some existing code assumes that the element extends HTMLElements.
18658        This change allow it to extend from Element. Note that the
18659        namespace URI of a custom element is determined by given element
18660        prototype: An element will have XHTML namespace if its prototype
18661        chain includes HTMLElements, SVGElement leads SVG namespace and
18662        null otherwise, respectively.
18663
18664        Test: fast/dom/custom/document-register-namespace.html
18665
18666        * bindings/v8/CustomElementHelpers.cpp:
18667        (WebCore::hasValidPrototypeChainFor): Factored out from isValidPrototypeParameter()
18668        (WebCore::CustomElementHelpers::isValidPrototypeParameter): Extend to support non HTMLElement prototype
18669        (WebCore::CustomElementHelpers::findLocalName): Support non-HTML element names.
18670        * bindings/v8/CustomElementHelpers.h:
18671        (CustomElementHelpers):
18672        * dom/CustomElementConstructor.cpp:
18673        (WebCore::CustomElementConstructor::createElementInternal):
18674        * dom/CustomElementRegistry.cpp:
18675        (WebCore::CustomElementRegistry::registerElement): No longer hard-codes namespace and picks one based on the prototype value.
18676        * dom/CustomElementRegistry.h:
18677        (CustomElementRegistry):
18678
186792013-03-28  Hans Muller  <hmuller@adobe.com>
18680
18681        [CSS Exclusions] Add support for the simple case of padding a polygonal shape-inside
18682        https://bugs.webkit.org/show_bug.cgi?id=112592
18683
18684        Reviewed by Dirk Schulze.
18685
18686        First pass at computing the padded or inset boundary of a polygon.  This version does not handle
18687        self-intersecting polygons, or values of shape-padding large enough to change the shape of the
18688        original polygon. The implementation computes an offset edge for each polgon edge, where the offset
18689        edge is parallel to the original edge and separated by shape-padding. The padded polygon's vertices
18690        are the intersections of each pair of adjacent offset edges. When adjacent offset edges do not intersect,
18691        because they share a reflex vertex in the original polygon, an approximation to a circular arc
18692        connects the offset edges.
18693
18694        Tests: fast/exclusions/shape-inside/shape-inside-polygon-padding-001.html
18695               fast/exclusions/shape-inside/shape-inside-polygon-padding-002.html
18696               fast/exclusions/shape-inside/shape-inside-polygon-padding-003.html
18697
18698        * rendering/ExclusionPolygon.cpp:
18699        (WebCore::isReflexVertex): Just moved this function earlier in the file.
18700        (WebCore::inwardEdgeNormal): Unit vector that's perpindicular to the edge and that points inwards.
18701        (WebCore::outwardEdgeNormal): Unit vector that's perpindicular to the edge and that points outwards.
18702        (WebCore::appendArc): Append a linear approximation to a circular arc to a vector of vertices.
18703        (WebCore::computeShapePaddingBounds): Return a polygon whose edges are all inset by shape-padding from m_polygon.
18704        (WebCore::computeShapeMarginBounds): Just a stub, see bug 112917.
18705        (WebCore::ExclusionPolygon::shapePaddingBounds): Lazily use computeShapePaddingBounds() to initialize m_paddingBounds.
18706        (WebCore::ExclusionPolygon::shapeMarginBounds): Lazily use computeShapeMarginBounds() to initialize m_marginBounds.
18707        (WebCore::ExclusionPolygon::getIncludedIntervals): Now based on the value of shapePaddingBounds().
18708        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Now based on the value of shapePaddingBounds().
18709        * rendering/ExclusionPolygon.h:
18710        (WebCore::ExclusionPolygon::ExclusionPolygon):
18711
187122013-03-28  Chris Hutten-Czapski  <chutten@blackberry.com>
18713
18714        [BlackBerry] Handle EXIF orientation for ImageDocuments
18715        https://bugs.webkit.org/show_bug.cgi?id=113423
18716
18717        Internal Bug: PR 293648
18718        Informally Reviewed by Jeff Rogers
18719        Reviewed by Rob Buis.
18720
18721        Support image orientation in our image draw calls, and advertise
18722        the capability to the calling code. This allows us to respect EXIF
18723        orientation data.
18724
18725        * platform/graphics/BitmapImage.h:
18726        * platform/graphics/blackberry/ImageBlackBerry.cpp:
18727        (WebCore::BitmapImage::draw):
18728        (WebCore):
18729        * rendering/RenderObject.cpp:
18730        (WebCore::RenderObject::shouldRespectImageOrientation):
18731
187322013-03-28  Andrey Kosyakov  <caseq@chromium.org>
18733
18734        Web Inspector: name timeline overview controls consistently
18735        https://bugs.webkit.org/show_bug.cgi?id=113503
18736
18737        Reviewed by Yury Semikhatsky.
18738
18739        Refactoring, covered by existing tests.
18740
18741        - rename HeapGraph to TimelineMemoryOverview;
18742        - rename TimelineCategoryStrips to TimelineEventOvrview.
18743
18744        * inspector/front-end/TimelineOverviewPane.js:
18745        (WebInspector.TimelineOverviewPane):
18746        (WebInspector.TimelineOverviewPane.prototype.setMode):
18747        (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
18748        (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
18749        (WebInspector.TimelineOverviewPane.prototype._update):
18750        (WebInspector.TimelineOverviewPane.prototype.setMinimumRecordDuration):
18751        (WebInspector.TimelineMemoryOverview):
18752        (WebInspector.TimelineEventOverview):
18753        (WebInspector.TimelineEventOverview.prototype._renderBar):
18754
187552013-03-28  Eli Fidler  <efidler@blackberry.com>
18756
18757        [BlackBerry] Correct glyph contour winding direction when fake-bolding
18758        https://bugs.webkit.org/show_bug.cgi?id=113411
18759
18760        Reviewed by Rob Buis.
18761
18762        * platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp:
18763        (WebCore::FontPlatformData::applyState):
18764
187652013-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
18766
18767        Web Inspector: Make JavaScriptSourceFrame work correctly with breakpoints when uiSourceCode does not have a scriptFile.
18768        https://bugs.webkit.org/show_bug.cgi?id=113500
18769
18770        Reviewed by Pavel Feldman.
18771
18772        JavaScriptSourceFrame now listens for uiSourceCode working copy related events and supports muting breakpoints without script file.
18773
18774        * inspector/front-end/JavaScriptSourceFrame.js:
18775        (WebInspector.JavaScriptSourceFrame):
18776        (WebInspector.JavaScriptSourceFrame.prototype._workingCopyChanged):
18777        (WebInspector.JavaScriptSourceFrame.prototype._workingCopyCommitted):
18778        (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
18779        (WebInspector.JavaScriptSourceFrame.prototype.dispose):
18780
187812013-03-22  Andrey Kosyakov  <caseq@chromium.org>
18782
18783        Web Inspector: factor out node search controller from inspector.js
18784        https://bugs.webkit.org/show_bug.cgi?id=112689
18785
18786        Reviewed by Pavel Feldman.
18787
18788        This just extracts the existing logic of toggling node search
18789        from inspector.js into a class of its own, InspectElementModeController.
18790        Drive-by: add CtrlOrMeta+Shift+C to help screen.
18791
18792        * English.lproj/localizedStrings.js:
18793        * WebCore.gypi:
18794        * WebCore.vcproj/WebCore.vcproj:
18795        * WebCore.vcxproj/WebCore.vcxproj:
18796        * WebCore.vcxproj/WebCore.vcxproj.filters:
18797        * inspector/compile-front-end.py:
18798        * inspector/front-end/InspectElementModeController.js: Added.
18799        (WebInspector.InspectElementModeController):
18800        (WebInspector.InspectElementModeController.createShortcut):
18801        (WebInspector.InspectElementModeController.prototype.enabled):
18802        (WebInspector.InspectElementModeController.prototype.disable):
18803        (WebInspector.InspectElementModeController.prototype.toggleSearch.callback):
18804        (WebInspector.InspectElementModeController.prototype.toggleSearch):
18805        (WebInspector.InspectElementModeController.prototype.handleShortcut):
18806        * inspector/front-end/InspectorFrontendAPI.js:
18807        (InspectorFrontendAPI.enterInspectElementMode):
18808        * inspector/front-end/WebKit.qrc:
18809        * inspector/front-end/inspector.html:
18810        * inspector/front-end/inspector.js:
18811        (WebInspector._createGlobalStatusBarItems):
18812        (WebInspector._registerShortcuts):
18813        (WebInspector.documentKeyDown):
18814        (WebInspector._updateFocusedNode):
18815
188162013-03-28  Eugene Klyuchnikov  <eustas@chromium.org>
18817
18818        Web Inspector: [Settings] "previouslyViewedFiles" exceeds local storage quota.
18819        https://bugs.webkit.org/show_bug.cgi?id=113375
18820
18821        Reviewed by Pavel Feldman.
18822
18823        Serialized "previouslyViewedFiles" may make local storage overflow.
18824        Two fixed applied:
18825        - limit number of history log items
18826        - limit length of URIs that get serialized;
18827          this would affect only data-url URIs.
18828
18829        * inspector/front-end/TabbedEditorContainer.js:
18830        (WebInspector.TabbedEditorContainer.HistoryItem.prototype.serializeToObject):
18831        Added length check.
18832        (WebInspector.TabbedEditorContainer.History.prototype.set _serializeToObject):
18833        Added output array length limit.
18834
188352013-03-28  Alexei Filippov  <alph@chromium.org>
18836
18837        Web Inspector: Heap snapshots retained size falls out of the grid if column is too narrow
18838        https://bugs.webkit.org/show_bug.cgi?id=113497
18839
18840        Reviewed by Pavel Feldman.
18841
18842        * inspector/front-end/HeapSnapshotGridNodes.js:
18843        (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
18844        * inspector/front-end/heapProfiler.css:
18845        (.heap-snapshot-view .data-grid div.heap-snapshot-multiple-values):
18846
188472013-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
18848
18849        Web Inspector: ResourceScriptFile should check if resource content really matches VM script when determining hasDiverged state.
18850        https://bugs.webkit.org/show_bug.cgi?id=113488
18851
18852        Reviewed by Pavel Feldman.
18853
18854        Enabled support for checking that file content matches VM script in ResourceScriptFile (For script resources only).
18855        This check is never done before content is loaded in corresponding editor to avoid regressing performance.
18856        File - script content matching is done bearing in mind sourceURLs. 
18857        Live edit keeps sourceURL in script content now even if it is not present in file's content.
18858
18859        * inspector/front-end/JavaScriptSourceFrame.js:
18860        (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
18861        (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
18862        * inspector/front-end/LiveEditSupport.js:
18863        (WebInspector.LiveEditScriptFile.prototype.checkMapping):
18864        * inspector/front-end/ResourceScriptMapping.js:
18865        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
18866        (WebInspector.ScriptFile.prototype.checkMapping):
18867        (WebInspector.ResourceScriptFile):
18868        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
18869        (WebInspector.ResourceScriptFile.prototype._isDiverged):
18870        (WebInspector.ResourceScriptFile.prototype._sourceMatchesScriptSource):
18871        (WebInspector.ResourceScriptFile.prototype._sourceEndsWithSourceURL):
18872        (WebInspector.ResourceScriptFile.prototype.checkMapping.callback):
18873        (WebInspector.ResourceScriptFile.prototype.checkMapping):
18874        * inspector/front-end/ScriptSnippetModel.js:
18875        (WebInspector.SnippetScriptFile.prototype.checkMapping):
18876
188772013-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
18878
18879        Web Inspector: Simplify ResourceScriptFile so that it stores hasDiverged state in it.
18880        https://bugs.webkit.org/show_bug.cgi?id=113489
18881
18882        Reviewed by Pavel Feldman.
18883
18884        ResourceScriptFile._hasDiverged is the one flag that shows whether we have diverged from VM.
18885        It's values is based both on dirty flag on uiSourceCode and information about live edit failures stored in _lastLiveEditFailed field.
18886        Removed willMerge/Diverge events from ScriptFile.
18887        JavaScriptSourceFrame now uses isMergingToVM/DivergingFromVM methods on ScriptFile.
18888        to determine whether breakpointAdded/Removed events should be ignored.
18889        Introduced muted state on JavaScriptSourceFrame to determine whether it should ignore user attempts to set/remove breakpoints.
18890
18891        * inspector/front-end/JavaScriptSourceFrame.js:
18892        (WebInspector.JavaScriptSourceFrame):
18893        (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
18894        (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
18895        (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
18896        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
18897        (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
18898        (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
18899        (WebInspector.JavaScriptSourceFrame.prototype._shouldIgnoreExternalBreakpointEvents):
18900        (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
18901        (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
18902        (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
18903        (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
18904        * inspector/front-end/LiveEditSupport.js:
18905        (WebInspector.LiveEditScriptFile.prototype.isMergingToVM):
18906        * inspector/front-end/ResourceScriptMapping.js:
18907        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
18908        (WebInspector.ScriptFile.prototype.isMergingToVM):
18909        (WebInspector.ResourceScriptFile):
18910        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
18911        (WebInspector.ResourceScriptFile.prototype._isDiverged):
18912        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
18913        (WebInspector.ResourceScriptFile.prototype._update):
18914        (WebInspector.ResourceScriptFile.prototype._divergeFromVM):
18915        (WebInspector.ResourceScriptFile.prototype._mergeToVM):
18916        (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
18917        (WebInspector.ResourceScriptFile.prototype.isMergingToVM):
18918        * inspector/front-end/ScriptSnippetModel.js:
18919        (WebInspector.SnippetScriptFile.prototype.isMergingToVM):
18920
189212013-03-25  Andrey Kosyakov  <caseq@chromium.org>
18922
18923        Web Inspector: DOMContentLoaded event divider is not shown on Timeline's main view
18924        https://bugs.webkit.org/show_bug.cgi?id=113196
18925
18926        Reviewed by Pavel Feldman.
18927
18928        - keep event divider records in TimelinePresentationModel, not in TimelinePanel;
18929        - process event divider records on every level, not just on top.
18930
18931        * inspector/front-end/TimelinePanel.js:
18932        (WebInspector.TimelinePanel.prototype._updateEventDividers):
18933        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.checkVisible):
18934        (WebInspector.TimelinePanel.prototype._resetPanel):
18935        * inspector/front-end/TimelinePresentationModel.js:
18936        (WebInspector.TimelinePresentationModel.prototype.reset):
18937        (WebInspector.TimelinePresentationModel.prototype._innerAddRecord):
18938        (WebInspector.TimelinePresentationModel.prototype.eventDividerRecords):
18939
189402013-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
18941
18942        Unreviewed inspector front-end closure compilation fix.
18943
18944        * inspector/front-end/CookiesTable.js:
18945
189462013-03-28  Andrey Lushnikov  <lushnikov@chromium.org>
18947
18948        Web Inspector: [DTE] Paint overlay highlight over line background color
18949        https://bugs.webkit.org/show_bug.cgi?id=113346
18950
18951        Reviewed by Pavel Feldman.
18952
18953        No new tests: no change in behaviour.
18954
18955        - Append spans instead of text nodes to lineRows.
18956        - Set positioning of all spans inside of webkit-line-content as
18957        relative
18958        - Set z-index property so that overlay highlight is above line
18959        background but under text.
18960
18961        * inspector/front-end/DefaultTextEditor.js:
18962        (WebInspector.TextEditorMainPanel.prototype._measureHighlightDescriptor):
18963        (WebInspector.TextEditorMainPanel.prototype._measureSpans):
18964        (WebInspector.TextEditorMainPanel.prototype._renderRanges):
18965        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
18966        * inspector/front-end/textEditor.css:
18967        (.webkit-line-content > .text-editor-overlay-highlight):
18968        (.webkit-line-content > *):
18969
189702013-03-28  Alexander Pavlov  <apavlov@chromium.org>
18971
18972        Web Inspector: [REGRESSION] [Styles] Pasting a property in the "name" field is broken
18973        https://bugs.webkit.org/show_bug.cgi?id=113491
18974
18975        Reviewed by Pavel Feldman.
18976
18977        Update the CSSProperty name and value upon pasting properties into the Styles pane.
18978        Drive-by: start editing the next/new property name after pasting.
18979
18980        Test: inspector/styles/paste-property.html
18981
18982        * inspector/front-end/StylesSidebarPane.js:
18983        (.selectElement):
18984        (.moveDirection.alreadyNew):
18985
189862013-03-28  Alexei Filippov  <alph@chromium.org>
18987
18988        Web Inspector: Auto expand retaining path until there are more than one retainer.
18989        https://bugs.webkit.org/show_bug.cgi?id=112596
18990
18991        Reviewed by Yury Semikhatsky.
18992
18993        When retainers view gets opened automatically expand retaining path
18994        for objects having just a single retainer.
18995
18996        Test: inspector/profiler/heap-snapshot-summary-retainers.html
18997
18998        * inspector/front-end/HeapSnapshotDataGrids.js:
18999        (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.populateComplete):
19000        (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.setDataSource):
19001        * inspector/front-end/HeapSnapshotGridNodes.js:
19002        (WebInspector.HeapSnapshotGridNode.prototype.childrenRetrieved):
19003        (WebInspector.HeapSnapshotGridNode.prototype._populateChildren):
19004
190052013-03-28  Vladislav Kaznacheev  <kaznacheev@chromium.org>
19006
19007        Web Inspector: Fixed property text indentation in Styles sidebar.
19008        https://bugs.webkit.org/show_bug.cgi?id=113409
19009
19010        Reviewed by Alexander Pavlov.
19011
19012        When the sidebar is too narrow and the property text wraps around it breaks the indentation.
19013        This was introduced in r143207 which spuriously modified DOM elements order.
19014
19015        * inspector/front-end/StylesSidebarPane.js:
19016
190172013-03-28  Arpita Bahuguna  <a.bah@samsung.com>
19018
19019        Regression: Crash when selecting Hebrew and numbers in a list
19020        https://bugs.webkit.org/show_bug.cgi?id=111894
19021
19022        Reviewed by Ryosuke Niwa.
19023
19024        There is a crash when trying to click/select an anonymous
19025        renderer.
19026
19027        This is a regression due to r143313 which tries to add border/padding
19028        to the computed caret rect in RenderBox::localCaretRect().
19029        The patch calls on the node() method for the corresponding
19030        renderer. For an anonymous renderer though, node() returns
19031        null. Since no check had been added for this, a crash occurs when
19032        caret rect for an anonymous renderer is being computed.
19033
19034        Test: editing/selection/click-on-anonymous-content-crash.html
19035
19036        * rendering/RenderBox.cpp:
19037        (WebCore::RenderBox::localCaretRect):
19038        Added a check for validating the return from the node() call.
19039
190402013-03-28  Mike West  <mkwst@chromium.org>
19041
19042        X-Frame-Options: Multiple headers are ignored completely.
19043        https://bugs.webkit.org/show_bug.cgi?id=113387
19044
19045        Reviewed by Nate Chapin.
19046
19047        If a server sends multiple 'X-Frame-Options' headers, we end up with a
19048        value like 'SAMEORIGIN, SAMEORIGIN'. Currently, we're treating that as
19049        invalid, and ignoring the header. It would be safer to follow Gecko's
19050        lead[1] by:
19051
19052        - Folding duplicated entries into their common value (that is:
19053          'sameorigin, sameorigin' -> 'sameorigin').
19054
19055        - Failing closed in the case of conflicts (that is:
19056          'sameorigin, allowall' -> 'deny').
19057
19058        [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=761655
19059
19060        Tests: http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict.html
19061               http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow.html
19062               http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny.html
19063
19064        * loader/FrameLoader.cpp:
19065        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
19066            Call out to parseXFrameOptionsHeader to get the header's disposition
19067            and deal with each case in a switch statement for clarity. Add a new
19068            console warning for the conflict case described above.
19069        * platform/network/HTTPParsers.cpp:
19070        (WebCore::parseXFrameOptionsHeader):
19071        * platform/network/HTTPParsers.h:
19072            Move X-Frame-Options parsing out into HTTPParsers, as it's getting
19073            more and more complicated. To do this, the patch defines a new enum
19074            to pass around the header's disposition.
19075
190762013-03-28  Mihnea Ovidenie  <mihnea@adobe.com>
19077
19078        [CSSRegions] Consolidate use of RenderRegion::isValid
19079        https://bugs.webkit.org/show_bug.cgi?id=113154
19080
19081        Reviewed by David Hyatt.
19082
19083        After https://bugs.webkit.org/show_bug.cgi?id=98752, the list of invalid regions is kept separately than the list of valid regions.
19084        A valid region has always a valid flow thread attached. We can use isValid() throughout the RenderRegion code
19085        instead of testing for both isValid() and m_flowThread.
19086
19087        No new tests since there is no change is functionality, just code refactoring.
19088
19089        * rendering/RenderNamedFlowThread.cpp:
19090        (WebCore::RenderNamedFlowThread::addRegionToNamedFlowThread): Added a new function to keep the code
19091        used in addRegionToThread and checkInvalidRegions.
19092        (WebCore::RenderNamedFlowThread::addRegionToThread):
19093        (WebCore::RenderNamedFlowThread::checkInvalidRegions):
19094        * rendering/RenderNamedFlowThread.h:
19095        * rendering/RenderRegion.cpp:
19096        (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
19097        (WebCore::RenderRegion::isFirstRegion):
19098        (WebCore::RenderRegion::isLastRegion):
19099        (WebCore::RenderRegion::paintObject):
19100        (WebCore::RenderRegion::nodeAtPoint):
19101        (WebCore::RenderRegion::incrementAutoLogicalHeightCount):
19102        (WebCore::RenderRegion::decrementAutoLogicalHeightCount):
19103        (WebCore::RenderRegion::layoutBlock):
19104        (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
19105        (WebCore::RenderRegion::attachRegion):
19106        (WebCore::RenderRegion::renderBoxRegionInfo):
19107        (WebCore::RenderRegion::setRenderBoxRegionInfo):
19108        (WebCore::RenderRegion::logicalTopOfFlowThreadContentRect):
19109        (WebCore::RenderRegion::logicalBottomOfFlowThreadContentRect):
19110        (WebCore::RenderRegion::computePreferredLogicalWidths):
19111
191122013-03-27  Ilya Tikhonovsky  <loislo@chromium.org>
19113
19114        Web Inspector: Timeline. Refresh is slow when user drags the overview window.
19115        https://bugs.webkit.org/show_bug.cgi?id=113371
19116
19117        Reviewed by Pavel Feldman.
19118
19119        The root of problem is the 300ms delay in scheduleRefresh method.
19120        It was introduced for the case when we add a huge number of records per second.
19121        The scheduleRefresh was written such a way that refresh happened immediately
19122        only for the scrolling operations. Actually we would like to see fast
19123        refresh every time when it is forced by an user action.
19124
19125        In this patch additional flag newRecordWasAdded was added to the
19126        _invalidateAndScheduleRefresh. I made it mandatory because the function
19127        is also used as a callback for an event and it is easy to make a mistake and
19128        interpret the event as the flag.
19129
19130        * inspector/front-end/TimelinePanel.js:
19131        (WebInspector.TimelinePanel.prototype._onCategoryCheckboxClicked):
19132        (WebInspector.TimelinePanel.prototype._durationFilterChanged):
19133        (WebInspector.TimelinePanel.prototype._repopulateRecords):
19134        (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
19135        (WebInspector.TimelinePanel.prototype._onRecordsCleared):
19136        (WebInspector.TimelinePanel.prototype._invalidateAndScheduleRefresh):
19137        (WebInspector.TimelinePanel.prototype._scheduleRefresh):
19138        (WebInspector.TimelinePanel.prototype._revealRecord):
19139        (WebInspector.TimelinePanel.prototype._refreshRecords):
19140        (WebInspector.TimelinePanel.prototype.performFilter):
19141
191422013-03-27  Keishi Hattori  <keishi@webkit.org>
19143
19144        Dragging to edge should always snap to min/max.
19145        https://bugs.webkit.org/show_bug.cgi?id=113477
19146
19147        Reviewed by Kent Tamura.
19148
19149        Dragging to the edge of a slider should always snap to the min/max.
19150
19151        Test: fast/forms/range/range-slow-drag-to-edge.html
19152
19153        * html/shadow/SliderThumbElement.cpp:
19154        (WebCore::SliderThumbElement::setPositionFromPoint):
19155
191562013-03-27  Simon Fraser  <simon.fraser@apple.com>
19157
19158        Add a way to update GraphicsLayerCA visibleRects without having to do a flush
19159        https://bugs.webkit.org/show_bug.cgi?id=113459
19160
19161        Reviewed by Tim Horton.
19162        
19163        Some platforms need to update TiledBacking visible rects from
19164        outside of WebKit, for example if they use delegated scrolling.
19165        They want to avoid forcing layout to be up-to-date when doing this.
19166        
19167        Currently, updating the visibleRect happens when the GraphicsLayerCA
19168        layer are being flushed, but that makes some assumptions about
19169        layout being up-to-date.
19170        
19171        To fix this, add a light-weight pass over the layer tree that
19172        uses TransformState to compute the visibleRect for each
19173        layer, and only if the visibleRect would cause a change in the
19174        tiles in a TiledBacking trigger a layer flush.
19175
19176        * platform/graphics/GraphicsLayer.h:
19177        (WebCore::GraphicsLayer::recomputeVisibleRects):
19178        * platform/graphics/TiledBacking.h:
19179        * platform/graphics/ca/GraphicsLayerCA.cpp:
19180        (WebCore::GraphicsLayerCA::recursiveComputeVisibleRect):
19181        (WebCore::GraphicsLayerCA::recomputeVisibleRects):
19182        (WebCore::GraphicsLayerCA::computeVisibleRect):
19183        * platform/graphics/ca/GraphicsLayerCA.h:
19184        * platform/graphics/ca/mac/TileController.h:
19185        * platform/graphics/ca/mac/TileController.mm:
19186        (WebCore::TileController::tilesWouldChangeForVisibleRect):
19187        (WebCore::TileController::computeTileCoverageRect):
19188        (WebCore::TileController::revalidateTiles):
19189
191902013-03-27  Philip Rogers  <pdr@google.com>
19191
19192        Rename toScriptElement -> toScriptElementIfPossible
19193        https://bugs.webkit.org/show_bug.cgi?id=113473
19194
19195        Reviewed by Ryosuke Niwa.
19196
19197        Rename ScriptElement::toScriptElement to ScriptElement::toScriptElementIfPossible to
19198        differentiate this function from other to*Element functions, and to better describe the
19199        function's behavior. Other to*Element functions do not return null if the cast fails,
19200        whereas toScriptElementIfPossible does.
19201
19202        No new tests as this is just a refactoring.
19203
19204        * dom/ScriptElement.cpp:
19205        (WebCore::toScriptElementIfPossible):
19206        * dom/ScriptElement.h:
19207        (WebCore):
19208        * dom/ScriptRunner.cpp:
19209        (WebCore::ScriptRunner::timerFired):
19210
19211            This is the only unchecked return value but there isn't a security issue here.
19212
19213        * html/HTMLOptionElement.cpp:
19214        (WebCore::HTMLOptionElement::collectOptionInnerText):
19215        * html/parser/HTMLConstructionSite.cpp:
19216        (WebCore::HTMLConstructionSite::attachLater):
19217        (WebCore::HTMLConstructionSite::insertForeignElement):
19218        * html/parser/HTMLScriptRunner.cpp:
19219        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
19220        (WebCore::HTMLScriptRunner::requestPendingScript):
19221        (WebCore::HTMLScriptRunner::runScript):
19222        * xml/parser/XMLDocumentParser.cpp:
19223        (WebCore::XMLDocumentParser::notifyFinished):
19224        * xml/parser/XMLDocumentParserLibxml2.cpp:
19225        (WebCore::XMLDocumentParser::startElementNs):
19226        (WebCore::XMLDocumentParser::endElementNs):
19227        * xml/parser/XMLDocumentParserQt.cpp:
19228        (WebCore::XMLDocumentParser::parseStartElement):
19229        (WebCore::XMLDocumentParser::parseEndElement):
19230
192312013-03-27  Ryosuke Niwa  <rniwa@webkit.org>
19232
19233        Debug test fix after r147018.
19234
19235        toElement() asserts. What we want here is isElementNode().
19236
19237        * html/parser/HTMLConstructionSite.cpp:
19238        (WebCore::HTMLConstructionSite::attachLater):
19239
192402013-03-27  Noel Gordon  <noel.gordon@gmail.com>
19241
19242        Add webp image color profile support
19243        https://bugs.webkit.org/show_bug.cgi?id=113184
19244
19245        Reviewed by Eric Seidel.
19246
19247        Requires libwebp version 0.3.0 (decoder ABI version 0x201). For images
19248        with an ICC color profile chunk, poll the incremental decoder for the
19249        current decoded height with the WebPIDecGetRGB() API and color correct
19250        any newly decoded rows in-situ in the frame buffer.
19251
19252        Note: the ICC chunk appears before the encoded image frame in the webp
19253        encoding (RIFF container) format. When the incremental decoder outputs
19254        decoded pixels, enough encoded data has arrived to read the entire ICC
19255        color profile data chunk.
19256
19257        Tests: fast/images/webp-color-profile-lossless.html
19258               fast/images/webp-color-profile-lossy-alpha.html
19259               fast/images/webp-color-profile-lossy.html
19260
19261        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
19262        (WebCore::WEBPImageDecoder::WEBPImageDecoder):
19263        (WebCore::WEBPImageDecoder::~WEBPImageDecoder): Call clear().
19264        (WebCore):
19265        (WebCore::WEBPImageDecoder::clear):
19266        Added. Helper to clean up the webp decoder and color transform members.
19267        (WebCore::WEBPImageDecoder::createColorTransform):
19268        Create m_transform using the supplied profile memory data. Note that
19269        the |deviceProfile| is not owned, but the |inputProfile| temporary is
19270        so release it here with qcms_release_profile().
19271        (WebCore::WEBPImageDecoder::readColorProfile):
19272        Called once only when the decoder begins to output decoded rows of an
19273        image containing an ICC chunk, to read the ICC color profile data from
19274        the encoded data stream, verify it, and use it to create m_transform.
19275        (WebCore::WEBPImageDecoder::applyColorProfile):
19276        Since there is no row callback in libwebp, poll for the decoded height
19277        of the image so far. If new rows are decoded, color correct the pixels
19278        of those new rows and re-write them back into the frame buffer using
19279        buffer.setRGBA() to 1) alpha pre-multiply the pixels if needed, and 2)
19280        shuffle the pixel bytes into the platform's RGBA pixel endian-ness.
19281        (WebCore::WEBPImageDecoder::decode):
19282        If the container format indicates the image has an ICC color profile,
19283        decode the image to RGBA format for subsequent input to the QCMS color
19284        correction library in applyColorProfile().
19285        * platform/image-decoders/webp/WEBPImageDecoder.h:
19286        (WEBPImageDecoder):
19287        (WebCore::WEBPImageDecoder::colorTransform): m_transform getter.
19288
192892013-03-27  Jun Jiang  <jun.a.jiang@intel.com>
19290
19291        Refactor validation checks for texture uploads
19292        https://bugs.webkit.org/show_bug.cgi?id=111012
19293
19294        Reviewed by Kenneth Russell.
19295
19296        Move the validation checks to the entry level of tex{Sub}Image2D, return early for invalid parameters and avoid duplicated checks.
19297        Moreover, turn all the validation checks at the bottom level - tex{Sub}Image2DBase into assertions.
19298
19299        Already covered by current tests.
19300
19301        * html/canvas/WebGLRenderingContext.cpp:
19302        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
19303        (WebCore::WebGLRenderingContext::texImage2DBase):
19304        (WebCore::WebGLRenderingContext::texImage2DImpl):
19305        (WebCore::WebGLRenderingContext::validateTexFunc): A helper function for tex{Sub}Image2D to check input parameters.
19306        (WebCore::WebGLRenderingContext::texImage2D):
19307        (WebCore::WebGLRenderingContext::texSubImage2DBase):
19308        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
19309        (WebCore::WebGLRenderingContext::texSubImage2D):
19310        (WebCore::WebGLRenderingContext::validateHTMLImageElement):
19311        (WebCore::WebGLRenderingContext::validateHTMLCanvasElement):
19312        (WebCore::WebGLRenderingContext::validateHTMLVideoElement):
19313        * html/canvas/WebGLRenderingContext.h:
19314
193152013-03-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
19316
19317        remove parentsOnly variable in codeGenerator.pm
19318        https://bugs.webkit.org/show_bug.cgi?id=113457
19319
19320        Reviewed by Kentaro Hara.
19321
19322        Remove unused variable parentsOnly.
19323
19324        No new tests: no change in behaviour.
19325
19326        * bindings/scripts/CodeGenerator.pm:
19327        (ForAllParents):
19328        (AddMethodsConstantsAndAttributesFromParentInterfaces):
19329        (ParseInterface):
19330        (InheritsInterface):
19331        (InheritsExtendedAttribute):
19332        * bindings/scripts/CodeGeneratorV8.pm:
19333        (BaseInterfaceName):
19334
193352013-03-27  Beth Dakin  <bdakin@apple.com>
19336
19337        Need WK2 API to give a WebView a header and footer
19338        https://bugs.webkit.org/show_bug.cgi?id=113352
19339        -and corresponding-
19340        <rdar://problem/13383835>
19341
19342        Reviewed by Simon Fraser.
19343
19344        This API will require RenderLayerCompositor to keep layers for the header and 
19345        footer when the exist. It also requires the scrolling machinery to know that the 
19346        size of the scrollable area will differ from the contentsSize when there is a 
19347        header or footer.
19348
19349        setWantsLayerForHeader() and setWantsLayerForFooter() return GraphicsLayers to 
19350        WK2. setHeaderHeight() and setFooterHeight() set the header and footer heights
19351        respectively.
19352        * WebCore.exp.in:
19353        * page/FrameView.h:
19354        (FrameView):
19355        * page/FrameView.cpp:
19356        (WebCore::FrameView::FrameView):
19357        (WebCore::FrameView::setWantsLayerForHeader):
19358        (WebCore::FrameView::setWantsLayerForFooter):
19359        (WebCore::FrameView::setHeaderHeight):
19360        (WebCore::FrameView::setFooterHeight):
19361
19362        Should use totalContentsSize() instead of contentsSize().
19363        (WebCore::FrameView::windowClipRect):
19364        (WebCore::FrameView::isScrollable):
19365        * page/SpatialNavigation.cpp:
19366        (WebCore::canScrollInDirection):
19367
19368        This should also use totalContentsSize() instead of contentsSize(), and while 
19369        we're at it, re-name the variable and function names in the scrolling tree code 
19370        from contentsSize to totalContentsSize.
19371        * page/scrolling/ScrollingStateScrollingNode.cpp:
19372        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
19373        (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
19374        (WebCore::ScrollingStateScrollingNode::dumpProperties):
19375        * page/scrolling/ScrollingStateScrollingNode.h:
19376        (WebCore::ScrollingStateScrollingNode::totalContentsSize):
19377        (ScrollingStateScrollingNode):
19378        * page/scrolling/ScrollingTreeScrollingNode.cpp:
19379        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
19380        * page/scrolling/ScrollingTreeScrollingNode.h:
19381        (WebCore::ScrollingTreeScrollingNode::totalContentsSize):
19382        (ScrollingTreeScrollingNode):
19383        * page/scrolling/mac/ScrollingCoordinatorMac.h:
19384        (ScrollParameters):
19385        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
19386        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
19387        (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
19388        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
19389        (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
19390        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
19391        (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
19392
19393        Use totalContentsSize() instead of contentsSize().
19394        * platform/ScrollView.cpp:
19395        (WebCore::ScrollView::maximumScrollPosition):
19396        (WebCore::ScrollView::setScrollOffset):
19397        (WebCore::ScrollView::overhangAmount):
19398        (WebCore::ScrollView::updateScrollbars):
19399        (WebCore::ScrollView::calculateOverhangAreasForPainting):
19400
19401        scrollOffset() represents the offset within the totalContentsSize, but that is 
19402        not what we need here. So subtract out the headerHeight() for the appropriate 
19403        value.
19404        (WebCore::ScrollView::windowToContents):
19405        (WebCore::ScrollView::contentsToWindow):
19406
19407        Use totalContentsSize() instead of contentsSize().
19408        * platform/ScrollableArea.cpp:
19409        (WebCore::ScrollableArea::maximumScrollPosition):
19410        (WebCore):
19411        (WebCore::ScrollableArea::totalContentsSize):
19412        * platform/ScrollableArea.h:
19413        (WebCore::ScrollableArea::headerHeight):
19414        (WebCore::ScrollableArea::footerHeight):
19415        (ScrollableArea):
19416        * platform/mac/ScrollAnimatorMac.mm:
19417        (WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary):
19418        (WebCore::ScrollAnimatorMac::pinnedInDirection):
19419        * platform/mac/ThemeMac.mm:
19420        (WebCore::ThemeMac::ensuredView):
19421
19422        The rootContentLayer needs to be offset by the headerHeight().
19423        * rendering/RenderLayerCompositor.cpp:
19424        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
19425
19426        New member variables m_layerForHeader and m_layerForFooter. This code properly 
19427        creates and manages them.
19428        (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
19429        (WebCore::RenderLayerCompositor::updateLayerForHeader):
19430        (WebCore):
19431        (WebCore::RenderLayerCompositor::updateLayerForFooter):
19432        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
19433        (WebCore::RenderLayerCompositor::reportMemoryUsage):
19434        * rendering/RenderLayerCompositor.h:
19435        (RenderLayerCompositor):
19436
19437        Test infrastructure. 
19438        * testing/Internals.cpp:
19439        (WebCore::Internals::resetToConsistentState):
19440        (WebCore::Internals::setHeaderHeight):
19441        (WebCore):
19442        (WebCore::Internals::setFooterHeight):
19443        * testing/Internals.h:
19444        * testing/Internals.idl:
19445
194462013-03-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
19447
19448        javascriptcore bindings do not check exception after calling valueToStringWithNullCheck
19449        https://bugs.webkit.org/show_bug.cgi?id=113219
19450
19451        Reviewed by Kentaro Hara.
19452
19453        When converting JSValue to native value in attribute setter, store the
19454        native value in a temporary variable. After this variable assignment,
19455        always check if an exception has been raised.
19456
19457        Update binding tests.
19458
19459        Test: fast/dom/exception-in-binding.html
19460
19461        * bindings/scripts/CodeGeneratorJS.pm:
19462        (GenerateImplementation):
19463        (GetNativeType):
19464        (JSValueToNative):
19465        * bindings/scripts/test/JS/JSTestInterface.cpp:
19466        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
19467        (WebCore::setJSTestInterfaceSupplementalStr2):
19468        (WebCore::setJSTestInterfaceSupplementalNode):
19469        * bindings/scripts/test/JS/JSTestObj.cpp:
19470        (WebCore::setJSTestObjConstructorStaticStringAttr):
19471        (WebCore::setJSTestObjEnumAttr):
19472        (WebCore::setJSTestObjShortAttr):
19473        (WebCore::setJSTestObjUnsignedShortAttr):
19474        (WebCore::setJSTestObjLongAttr):
19475        (WebCore::setJSTestObjLongLongAttr):
19476        (WebCore::setJSTestObjUnsignedLongLongAttr):
19477        (WebCore::setJSTestObjStringAttr):
19478        (WebCore::setJSTestObjTestObjAttr):
19479        (WebCore::setJSTestObjXMLObjAttr):
19480        (WebCore::setJSTestObjCreate):
19481        (WebCore::setJSTestObjReflectedStringAttr):
19482        (WebCore::setJSTestObjReflectedIntegralAttr):
19483        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
19484        (WebCore::setJSTestObjReflectedBooleanAttr):
19485        (WebCore::setJSTestObjReflectedURLAttr):
19486        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
19487        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
19488        (WebCore::setJSTestObjReflectedCustomURLAttr):
19489        (WebCore::setJSTestObjTypedArrayAttr):
19490        (WebCore::setJSTestObjAttrWithGetterException):
19491        (WebCore::setJSTestObjAttrWithSetterException):
19492        (WebCore::setJSTestObjStringAttrWithGetterException):
19493        (WebCore::setJSTestObjStringAttrWithSetterException):
19494        (WebCore::setJSTestObjWithScriptStateAttribute):
19495        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
19496        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
19497        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
19498        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
19499        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
19500        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
19501        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
19502        (WebCore::setJSTestObjConditionalAttr1):
19503        (WebCore::setJSTestObjConditionalAttr2):
19504        (WebCore::setJSTestObjConditionalAttr3):
19505        (WebCore::setJSTestObjAnyAttribute):
19506        (WebCore::setJSTestObjMutablePoint):
19507        (WebCore::setJSTestObjImmutablePoint):
19508        (WebCore::setJSTestObjStrawberry):
19509        (WebCore::setJSTestObjStrictFloat):
19510        (WebCore::setJSTestObjId):
19511        (WebCore::setJSTestObjNullableLongSettableAttribute):
19512        (WebCore::setJSTestObjNullableStringValue):
19513        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
19514        (WebCore::setJSTestSerializedScriptValueInterfaceValue):
19515        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
19516        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
19517        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
19518        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
19519        (WebCore::setJSTestTypedefsAttrWithGetterException):
19520        (WebCore::setJSTestTypedefsAttrWithSetterException):
19521        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
19522        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
19523
195242013-03-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
19525
19526        cache parsed interfaces in CodeGenerator.pm
19527        https://bugs.webkit.org/show_bug.cgi?id=113446
19528
19529        Reviewed by Kentaro Hara.
19530
19531        When generating binding for an interface, informations about parent
19532        interfaces are sometimes needed several times. This patch caches
19533        those the parsed interface. When generating all WebCore bindings, this
19534        results in a speedup of about 40% for JavaScriptCore and about 80% for
19535        V8.
19536
19537        No new tests: no change in behaviour.
19538
19539        * bindings/scripts/CodeGenerator.pm:
19540        (ParseInterface):
19541
195422013-03-27  KyungTae Kim <ktf.kim@samsung.com> and Yongjun Zhang  <yongjun_zhang@apple.com>
19543
19544        Add a settings to disallow initializing background-size if background shorthand doesn't include it.
19545        https://bugs.webkit.org/show_bug.cgi?id=113363
19546
19547        Reviewed by David Kilzer.
19548
19549        This is based on KyungTae Kim's patch in https://bugs.webkit.org/show_bug.cgi?id=97761.  Many legacy sites set
19550        background-size first and then set background for setting background-image.  For backward-compatibility
19551        in some WebKit based clients, if 'background' shorthand have no 'background-size' attribute, we could add
19552        a settings to let the css parser not initialize 'background-size'.
19553
19554        Test: fast/backgrounds/background-shorthand-after-set-backgroundSize.html
19555
19556        * css/CSSParser.cpp:
19557        (WebCore::CSSParserContext::CSSParserContext): initialize useLegacyBackgroundSizeShorthandBehavior.
19558        (WebCore::operator==):
19559        (WebCore::CSSParser::useLegacyBackgroundSizeShorthandBehavior): add a method to return if we want background-size
19560            to be initialized by background shorthand.
19561        (WebCore):
19562        (WebCore::CSSParser::parseFillShorthand): don't initialize background-size in background shorthand if we have
19563            useLegacyBackgroundSizeShorthandBehavior set to true.
19564        * css/CSSParser.h:
19565        (CSSParser):
19566        * css/CSSParserMode.h: add member useLegacyBackgroundSizeShorthandBehavior to CSSParserContext.
19567        (CSSParserContext):
19568        * page/Settings.in: initialize useLegacyBackgroundSizeShorthandBehavior to false.
19569        * testing/InternalSettings.cpp:
19570        (WebCore::InternalSettings::Backup::Backup): add the new settings useLegacyBackgroundSizeShorthandBehavior to Backup.
19571        (WebCore::InternalSettings::Backup::restoreTo): restore useLegacyBackgroundSizeShorthandBehavior from Backup.
19572        (WebCore::InternalSettings::setUseLegacyBackgroundSizeShorthandBehavior):
19573        (WebCore):
19574        * testing/InternalSettings.h:
19575        (Backup):
19576        (InternalSettings):
19577        * testing/InternalSettings.idl: add a JS testing API setUseLegacyBackgroundSizeShorthandBehavior to turn on/off
19578            the new settings.
19579
195802013-03-27  Florin Malita  <fmalita@chromium.org>
19581
19582        Remove unused RenderLayer::renderBox{X,Y} methods
19583        https://bugs.webkit.org/show_bug.cgi?id=113408
19584
19585        Reviewed by Simon Fraser.
19586
19587        Minor cleanup - renderBoxX() and renderBox() are no longer used.
19588
19589        No new tests: no functional changes.
19590
19591        * rendering/RenderLayer.h:
19592
195932013-03-27  PhistucK  <phistuck@chromium.org>
19594
19595        Web Inspector: Plumb and expose cookie clearing options throughout the Resources Cookies tree and views
19596        https://bugs.webkit.org/show_bug.cgi?id=87140
19597
19598        Reviewed by Vsevolod Vlasov.
19599
19600        Added cookie clearing buttons and context menu options
19601        throughout the tree and views.
19602        Drive by -
19603        - Made sure the delete button is only visible
19604        when a cookie is selected.
19605        - Fixed a wrong JSDoc comment.
19606
19607        * inspector/front-end/CookieItemsView.js:
19608        (WebInspector.CookieItemsView):
19609        (WebInspector.CookieItemsView.prototype.statusBarItems):
19610        (WebInspector.CookieItemsView.prototype._updateWithCookies):
19611        (WebInspector.CookieItemsView.prototype.clear):
19612        Added. Clears the entire cookie view.
19613        (WebInspector.CookieItemsView.prototype._clearButtonClicked):
19614        Added. Ditto (when clicking on the button).
19615        (WebInspector.CookieItemsView.prototype._showDeleteButton):
19616        Added. Shows the delete button when selecting a cookie row.
19617        * inspector/CookiesTable.js:
19618        (WebInspector.CookiesTable):
19619        (WebInspector.CookiesTable.prototype._clearAndRefresh):
19620        Added. Clears the cookies of the current table and updates it.
19621        (WebInspector.CookiesTable.prototype._handleContextMenuEvent):
19622        Added. Manages the context menu within the table.
19623        (WebInspector.CookiesTable.prototype.clear):
19624        Added. Clears the cookies of the current table.
19625        (WebInspector.CookiesTable.prototype.setCookies):
19626         Fixed a wrong JSDoc comment structure.
19627        * inspector/front-end/ResourcesPanel.js:
19628        (WebInspector.ResourcesPanel.prototype.clearCookies):
19629        Added. Clears the cookies of the given domain view.
19630        (WebInspector.CookieTreeElement.prototype.onattach):
19631        Added. Adds a contextmenu handler.
19632        (WebInspector.CookieTreeElement.prototype._handleContextMenuEvent):
19633        Added. Manages the context menu within cookie tree.
19634        (WebInspector.CookieTreeElement.prototype._clearCookies):
19635        Added. Clears the cookies of the view of the tree item.
19636        * inspector/front-end/treeoutline.js:
19637        (TreeOutline): Fixed a wrong JSDoc comment.
19638
19639        * English.lproj/localizedStrings.js:
19640        Added strings for the context menu options.
19641
196422013-03-27  Andrey Lushnikov  <lushnikov@chromium.org>
19643
19644        Web Inspector: [DTE] implement "tokenAtTextPosition" method
19645        https://bugs.webkit.org/show_bug.cgi?id=113390
19646
19647        Reviewed by Pavel Feldman.
19648
19649        Test: inspector/editor/text-editor-token-at-position.html
19650
19651        - Add TextEditor.tokenAtTextPosition method
19652        - Implement tokenAtTextPosition method in DefaultTextEditor
19653
19654        * inspector/front-end/DefaultTextEditor.js:
19655        (WebInspector.DefaultTextEditor.prototype.tokenAtTextPosition):
19656        (WebInspector.TextEditorMainPanel.prototype.compare):
19657        (WebInspector.TextEditorMainPanel.prototype.tokenAtTextPosition):
19658        (WebInspector.TextEditorMainPanel.prototype._tokenAtUnhighlightedLine):
19659        (WebInspector.TextEditorMainPanel.prototype.set mimeType):
19660        (WebInspector.TextEditorMainPanel.prototype.get mimeType):
19661        * inspector/front-end/TextEditor.js:
19662        (WebInspector.TextEditor.prototype.tokenAtTextPosition):
19663        * inspector/front-end/TextEditorHighlighter.js:
19664        (WebInspector.TextEditorHighlighter):
19665        (WebInspector.TextEditorHighlighter.prototype.get mimeType):
19666        (WebInspector.TextEditorHighlighter.prototype.set mimeType):
19667
196682013-03-27  Charles Wei  <charles.wei@torchmobile.com.cn>
19669
19670        Remove build warning for unused function parameters in indexeddb.
19671        https://bugs.webkit.org/show_bug.cgi?id=113043
19672
19673        Reviewed by Tony Chang.
19674
19675        No new tests, just remove build warning.
19676
19677        * Modules/indexeddb/IDBCallbacks.h:
19678        (WebCore::IDBCallbacks::onBlocked):
19679        (WebCore::IDBCallbacks::onUpgradeNeeded):
19680        * Modules/indexeddb/IDBCursor.cpp:
19681        (WebCore::IDBCursor::stringToDirection):
19682        * Modules/indexeddb/IDBCursor.h:
19683        (IDBCursor):
19684        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
19685        (WebCore::IDBCursorBackendImpl::prefetchReset):
19686        * Modules/indexeddb/IDBDatabase.cpp:
19687        (WebCore::IDBDatabase::transaction):
19688        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
19689        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
19690        * Modules/indexeddb/IDBIndex.cpp:
19691        (WebCore::IDBIndex::openCursor):
19692        (WebCore::IDBIndex::openKeyCursor):
19693        * Modules/indexeddb/IDBLevelDBCoding.cpp:
19694        (IDBLevelDBCoding):
19695        * Modules/indexeddb/IDBObjectStore.cpp:
19696        (WebCore):
19697        (WebCore::IDBObjectStore::openCursor):
19698        * Modules/indexeddb/IDBTransaction.cpp:
19699        (WebCore::IDBTransaction::stringToMode):
19700        * Modules/indexeddb/IDBTransaction.h:
19701        (IDBTransaction):
19702        * inspector/InspectorIndexedDBAgent.cpp:
19703        (WebCore):
19704
197052013-03-27  Sergey Ryazanov  <serya@chromium.org>
19706
19707        REGRESSION (r146588): Cannot correctly display Chinese SNS Renren
19708        https://bugs.webkit.org/show_bug.cgi?id=113142
19709
19710        Reviewed by Pavel Feldman.
19711
19712        Changed CSS grammar to be equivalent to pre-r146588.
19713        CSS error reporting disabled to prevent message overflow.
19714
19715        * css/CSSGrammar.y.in:
19716        * css/CSSParser.cpp:
19717        (WebCore::CSSParser::isLoggingErrors):
19718
197192013-03-27  Andrey Lushnikov  <lushnikov@chromium.org>
19720
19721        Web Inspector: enhance Popover.js to rely on hover element coordinates
19722        https://bugs.webkit.org/show_bug.cgi?id=113340
19723
19724        Reviewed by Pavel Feldman.
19725
19726        No new tests: no change in behaviour.
19727
19728        Introduce a coordinates-based method that checks if mouse is inside hover
19729        element and use it in PopoverHelper instead of DOM hierarchy.
19730
19731        * inspector/front-end/Popover.js:
19732        (WebInspector.PopoverHelper.prototype._eventInHoverElement): Added.
19733        (WebInspector.PopoverHelper.prototype._mouseDown):
19734        (WebInspector.PopoverHelper.prototype._mouseMove):
19735        (WebInspector.PopoverHelper.prototype._mouseOut):
19736
197372013-03-27  Andrey Lushnikov  <lushnikov@chromium.org>
19738
19739        Web Inspector: [CodeMirror] fix webinspector-css theme for CodeMirror
19740        https://bugs.webkit.org/show_bug.cgi?id=113399
19741
19742        Reviewed by Alexander Pavlov.
19743
19744        Add style rule to highlight css properties for CodeMirror
19745        webinspector-css theme.
19746
19747        No new tests: no change in behaviour.
19748
19749        * inspector/front-end/cm/cmdevtools.css:
19750        (.cm-s-web-inspector-css span.cm-property):
19751
197522013-03-27  Andrey Lushnikov  <lushnikov@chromium.org>
19753
19754        Web Inspector: [DTE] paint overlay highlight for unhighlighted lines
19755        https://bugs.webkit.org/show_bug.cgi?id=113344
19756
19757        Reviewed by Pavel Feldman.
19758
19759        No new tests.
19760
19761        Remove fast-return condition from paintLine method that checked for
19762        highlight existence.
19763
19764        * inspector/front-end/DefaultTextEditor.js:
19765        (WebInspector.TextEditorMainPanel.prototype._paintLine):
19766
197672013-03-27  Ryosuke Niwa  <rniwa@webkit.org>
19768
19769        Shift clicking on an element with -webkit-user-select: all doesn't extend selection
19770        https://bugs.webkit.org/show_bug.cgi?id=113270
19771
19772        Reviewed by Enrica Casucci.
19773
19774        The bug was caused by updateSelectionForMouseDownDispatchingSelectStart always replacing selection whenever
19775        the target node was inside an element with -webkit-suer-select even when we were attemping to extend selection
19776        in handleMousePressEventSingleClick.
19777
19778        Fixed the bug by extracting this logic as a separate function (expandSelectionToRespectUserSelectAll) and deploying
19779        it in handleMousePressEventSingleClick to extend selection as needed.
19780
19781        Test: editing/selection/user-select-all-with-shift.html
19782
19783        * page/EventHandler.cpp:
19784        (WebCore::expandSelectionToRespectUserSelectAll): Extracted from updateSelectionForMouseDownDispatchingSelectStart.
19785        (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
19786        (WebCore::EventHandler::selectClosestWordFromHitTestResult):
19787        (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
19788        (WebCore::EventHandler::handleMousePressEventTripleClick):
19789        (WebCore::EventHandler::handleMousePressEventSingleClick): Adjust "pos" as needed when extending selection.
19790        Also use shouldConsiderSelectionAsDirectional() instead of manually peeking editingBehaviorType while we're at it.
19791
197922013-03-27  Zalan Bujtas  <zalan@apple.com>
19793
19794        REGRESSION(r143102): iframe with percentage height within table with anonymous cell fails.
19795        https://bugs.webkit.org/show_bug.cgi?id=113077
19796
19797        Reviewed by Antti Koivisto.
19798        
19799        http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level
19800        "Anonymous block boxes are ignored when resolving percentage values that would refer to it:
19801        the closest non-anonymous ancestor box is used instead."
19802        When figuring out whether auto height needs to be applied on the current box, ignore anonymous
19803        ancestors until the first non-anonymous containing block is found. This matches both
19804        Firefox and Opera behaviour.
19805        
19806        Test: fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell.html
19807
19808        * rendering/RenderBoxModelObject.cpp:
19809        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight): Switch from
19810        isAnonymousBlock() to isAnonymous() to make sure all anonymous boxes are ignored.
19811        Remove isTableCell() check which is a noop as table cell isn't an anonymous block.
19812        
198132013-03-27  Pierre Rossi  <pierre.rossi@gmail.com>
19814
19815        [Qt] Add WOFF support when using zlib
19816        https://bugs.webkit.org/show_bug.cgi?id=112805
19817
19818        Reviewed by Allan Sandfeld Jensen.
19819
19820        Covered by existing test:
19821        fast/css/font-face-woff.html
19822
19823        * Target.pri: Conditional inclusion of WOFFFileFormat
19824        * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
19825        (WebCore::createFontCustomPlatformData): Try to unpack WOFF data, otherwise spit out a warning and bail.
19826        (WebCore::FontCustomPlatformData::supportsFormat): accept WOFF webfonts if USE(ZLIB).
19827
198282013-03-27  Robert Hogan  <robert@webkit.org>
19829
19830        Growing a position:absolute element in a position:relative one in a table does not update scrollHeight
19831        https://bugs.webkit.org/show_bug.cgi?id=111977
19832
19833        Reviewed by David Hyatt.
19834
19835        During simplified layout tables still need to know about overflow from positioned objects in any of
19836        their cells.
19837
19838        Test: fast/table/cell-overflow-simplified-layout.html
19839
19840        * rendering/RenderBlock.h:
19841        (RenderBlock):
19842        * rendering/RenderTable.cpp:
19843        (WebCore::RenderTable::simplifiedNormalFlowLayout):
19844        (WebCore):
19845        * rendering/RenderTable.h:
19846        * rendering/RenderTableSection.cpp:
19847        (WebCore::RenderTableSection::layoutRows):
19848        (WebCore):
19849        (WebCore::RenderTableSection::computeOverflowFromCells):
19850        * rendering/RenderTableSection.h:
19851        (RenderTableSection):
19852
198532013-03-22  Geoffrey Garen  <ggaren@apple.com>
19854
19855        Honor the setting for whether JavaScript markup is enabled
19856        https://bugs.webkit.org/show_bug.cgi?id=113122
19857
19858        Reviewed by Ryosuke Niwa.
19859
19860        * dom/ScriptableDocumentParser.cpp:
19861        (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): Applied the
19862        setting here, so all document parsing would be covered. This is similar
19863        to what we do for plug-in stripping.
19864
19865        * html/parser/HTMLConstructionSite.cpp:
19866        (WebCore::HTMLConstructionSite::insertForeignElement): Fixed a bug where
19867        we would insert an SVG script element into the document even in script
19868        markup disabled mode.
19869
19870        (This bug has existed for copy/paste for a long time, but other bugs and
19871        quirks in SVG copy/paste papered over it. It's a serious issue now
19872        that non-paste clients will rely on this mode.)
19873
19874        * html/parser/HTMLTreeBuilder.cpp:
19875        (WebCore::HTMLTreeBuilder::processTokenInForeignContent): Fixed the same
19876        bug -- this time in the part of the parser that executes scripts as they
19877        parse.
19878
19879        I adopted the toScriptElement() convention for testing for a script
19880        element to match the XML parser.
19881
198822013-03-27  Dean Jackson  <dino@apple.com>
19883
19884        Chromium Mac fails to build after r146995 because the new NSFont category
19885        may conflict with the system. Add the WebCoreTheme category to the whitelist.
19886
19887        Unreviewed.
19888
19889        * WebCore.gyp/WebCore.gyp:
19890
198912013-03-27  Ryosuke Niwa  <rniwa@webkit.org>
19892
19893        Selection code spends a lot of time in InlineTextBox::localSelectionRect
19894        https://bugs.webkit.org/show_bug.cgi?id=113364
19895
19896        Reviewed by Enrica Casucci.
19897
19898        Avoid computing the font width when we're selecting the entire line box.
19899
19900        This appears to be 25-26% improvement on Interactive/SelectAll:Time.
19901
19902        * rendering/InlineTextBox.cpp:
19903        (WebCore::InlineTextBox::localSelectionRect):
19904
199052013-03-26  Timothy Hatcher  <timothy@apple.com>
19906
19907        Add support for dock-to-right of the Web Inspector in the Mac port.
19908
19909        Unfortunately this requires Safari changes, so it is disabled in the nightly builds.
19910
19911        https://webkit.org/b/113341
19912        rdar://problem/10368152
19913
19914        Reviewed by Joseph Pecoraro.
19915
19916        * WebCore.exp.in:
19917        * inspector/InspectorFrontendClient.h:
19918        (InspectorFrontendClient):
19919        * inspector/InspectorFrontendClientLocal.cpp:
19920        (WebCore):
19921        (WebCore::InspectorFrontendClientLocal::frontendLoaded):
19922        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
19923        (WebCore::InspectorFrontendClientLocal::canAttachWindow):
19924        (WebCore::InspectorFrontendClientLocal::changeAttachedWindowWidth):
19925        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
19926        (WebCore::InspectorFrontendClientLocal::constrainedAttachedWindowWidth):
19927        * inspector/InspectorFrontendClientLocal.h:
19928        (InspectorFrontendClientLocal):
19929        * inspector/InspectorFrontendHost.cpp:
19930        (WebCore::InspectorFrontendHost::setAttachedWindowWidth):
19931        (WebCore):
19932        * inspector/InspectorFrontendHost.h:
19933        (InspectorFrontendHost):
19934        * inspector/InspectorFrontendHost.idl:
19935        * inspector/front-end/InspectorFrontendHostStub.js:
19936        (.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowWidth):
19937        * inspector/front-end/externs.js:
19938        (InspectorFrontendHostAPI.prototype.setAttachedWindowWidth):
19939        * testing/Internals.cpp:
19940
199412013-03-27  Eric Carlson  <eric.carlson@apple.com>
19942
19943        [Mac] webkitClosedCaptionsVisible doesn't work
19944        https://bugs.webkit.org/show_bug.cgi?id=113417
19945
19946        Reviewed by Jer Noble.
19947
19948        Test: media/track/track-in-band-legacy-api.html
19949
19950        * html/HTMLMediaElement.cpp:
19951        (WebCore::HTMLMediaElement::HTMLMediaElement): Delete m_disableCaptions, it is no longer used.
19952        (WebCore::HTMLMediaElement::configureTextTrackGroup): Pass this to textTrackSelectionScore.
19953        (WebCore::HTMLMediaElement::setClosedCaptionsVisible):  Delete m_disableCaptions, it is no longer used.
19954        * html/HTMLMediaElement.h: Ditto.
19955
19956        * page/CaptionUserPreferences.cpp:
19957        (WebCore::CaptionUserPreferences::textTrackSelectionScore): Add an HTMLMediaElement parameter.
19958        * page/CaptionUserPreferences.h:
19959
19960        * page/CaptionUserPreferencesMac.h:
19961        * page/CaptionUserPreferencesMac.mm:
19962        (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Return a score if the media element
19963            is showing captions, even if the preference says captions are disabled.
19964
199652013-03-27  Eric Carlson  <eric.carlson@apple.com>
19966
19967        [Mac] Text track menu items sometimes labeled incorrectly
19968        https://bugs.webkit.org/show_bug.cgi?id=113406
19969
19970        Reviewed by Jer Noble.
19971
19972        media/video-controls-captions-trackmenu-localized.html was updated to test this.
19973
19974        * page/CaptionUserPreferencesMac.mm:
19975        (WebCore::trackDisplayName): Use the 'label' attribute for the menu text when necessary.
19976
199772013-03-27  Sergio Villar Senin  <svillar@igalia.com>
19978
19979        Inserting a blank (" ") at the end of a line does not insert anything in Overtype mode
19980        https://bugs.webkit.org/show_bug.cgi?id=113413
19981
19982        Reviewed by Ryosuke Niwa.
19983
19984        Perform a "normal" insert instead of a replace when there is
19985        nothing to replace (like at the end of a line) as this case is not
19986        supported by the replacing code path. This will allow us to
19987        properly rebalance whitespaces in those cases.
19988
19989        Updated the editing/execCommand/overtype.html test to check also
19990        this use case.
19991
19992        * editing/InsertTextCommand.cpp:
19993        (WebCore::InsertTextCommand::setEndingSelectionWithoutValidation):
19994        (WebCore::InsertTextCommand::performTrivialReplace):
19995        (WebCore::InsertTextCommand::performOverwrite):
19996        (WebCore::InsertTextCommand::doApply): use the recently added
19997        setEndingSelectionWithoutValidation() to avoid code duplication.
19998        * editing/InsertTextCommand.h:
19999        (InsertTextCommand):
20000
200012013-03-27  Dean Jackson  <dino@apple.com>
20002
20003        [Mac] Use fontName rather than familyName for internal fonts
20004        https://bugs.webkit.org/show_bug.cgi?id=113392
20005        <rdar://problem/13474743>
20006
20007        Reviewed by Enrica Casucci.
20008
20009        Some internal fonts on OS X have a family name that
20010        isn't listed in availableFontFamilies. In this case
20011        we should use the font name rather than the family
20012        name when looking for a match.
20013
20014        * platform/mac/ThemeMac.h: NSFont category to provide a web-friendly family name.
20015        * platform/mac/ThemeMac.mm:
20016        (-[NSFont webCoreFamilyName]): Returns the font name for internal fonts, otherwise the family name.
20017        (WebCore::ThemeMac::controlFont):
20018        * rendering/RenderThemeMacShared.mm: Use the webCoreFamilyName.
20019        (WebCore::RenderThemeMacShared::systemFont): Ditto.
20020        (WebCore::RenderThemeMacShared::setFontFromControlSize): Ditto.
20021
200222013-03-26  Jer Noble  <jer.noble@apple.com>
20023
20024        Mac: Media Controls always hide time display elements
20025        https://bugs.webkit.org/show_bug.cgi?id=113355
20026
20027        Reviewed by Eric Carlson.
20028
20029        No new tests; rebaselined existing tests against correct behavior.
20030
20031        A prior commit set the "min-width:0" property on the time display elements, which, combined
20032        with the "-webkit-flex-box:0 0" setting, caused the flex-box container to collapse the width
20033        of the elements to zero. To achieve the desired effect of hiding the time display elements,
20034        first set the elements' min-width to the desired width, as the new flex-box spec treats the
20035        default value of "min-width:auto" as the intrinsic width, and will collapse the text display
20036        elements to the intrinsic width of its contained text node.
20037
20038        The above allows the timeline container to collapse beyond the sum of its childrens'
20039        intrinsic width. Create a custom renderer that detects when this happens, and hide the time
20040        display controls.
20041
20042        * css/mediaControls.css:
20043        * css/mediaControlsQuickTime.css:
20044        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
20045            Set the "min-width:" property to equal the "width:" property.
20046        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
20047            Ditto.
20048        * css/mediaControlsChromium.css:
20049        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
20050            Chromium assumes the time display controls are flex-boxes, so make that explicit.
20051        * html/shadow/MediaControlElementTypes.cpp: Removed MediaControlTimeDisplayElement::createRenderer().
20052        * html/shadow/MediaControlElementTypes.h:
20053        (MediaControlTimeDisplayElement): Ditto.
20054        * html/shadow/MediaControlElements.cpp:
20055        (WebCore::MediaControlTimelineContainerElement::setTimeDisplaysHidden): Added, walks through the 
20056            container's children and shows or hides time display elements.
20057        (WebCore::MediaControlTimelineContainerElement::createRenderer): Added, creates a RenderMediaControlTimelineContainer.
20058        (WebCore::getMediaControlTimeRemainingDisplayElementShadowPseudoId): Added, allow setTimeDisplaysHidden to
20059            query against children's shadowPseudoId().
20060        (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Moved contents to getMediaControlTimeRemainingDisplayElementShadowPseudoId.
20061        (WebCore::getMediaControlCurrentTimeDisplayElementShadowPseudoId): Added, allow setTimeDisplaysHidden to
20062            query against children's shadowPseudoId().
20063        (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Moved contents to getMediaControlCurrentTimeDisplayElementShadowPseudoId.
20064        * html/shadow/MediaControlElements.h:
20065        (MediaControlTimelineContainerElement):
20066        * rendering/RenderMediaControlElements.cpp:
20067        (WebCore::RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer): Added, simple constructor.
20068        (WebCore::RenderMediaControlTimelineContainer::layout): Detect when the controller's width is greater than
20069            a certain value, and show or hide the time display elements in response.
20070        * rendering/RenderMediaControlElements.h:
20071        (RenderMediaControlTimelineContainer):
20072
200732013-03-27  Ilya Tikhonovsky  <loislo@chromium.org>
20074
20075        Web Inspector: CPU profiler. Swap FlameChart with Data Grid.
20076        https://bugs.webkit.org/show_bug.cgi?id=113395
20077
20078        Reviewed by Pavel Feldman.
20079
20080        Looks like FlameChart is more powerful and flexible instrument
20081        than plain old ProfileTree in DataGrid. The same action like
20082        'look for the most expensive function in a frame' could be easily
20083        done with FlameChart and need number of clicks in DataGrid.
20084        So in an offline discussion we decided to place FlameChart on top of DataGrid.
20085
20086        * inspector/front-end/CPUProfileView.js:
20087
200882013-03-27  Chris Fleizach  <cfleizach@apple.com>
20089
20090        Regression in tests due to https://bugs.webkit.org/show_bug.cgi?id=113339
20091        https://bugs.webkit.org/show_bug.cgi?id=113361
20092
20093        Fix the red bots. No review.
20094
20095        Ensure only pop-up buttons get the AXRequired attribute instead of all buttons.        
20096
20097        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
20098        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
20099        (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
20100
201012013-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
20102
20103        Web Inspector: Breakpoint manager should restore breakpoints when uiSourceCode is added.
20104        https://bugs.webkit.org/show_bug.cgi?id=113381
20105
20106        Reviewed by Pavel Feldman.
20107
20108        Breakpoint manager now restores breakpoints on UISourceCodeAdded event.
20109        Breakpoint manager now only resets breakpoints in debugger when source mapping is changed to/from non identity one.
20110
20111        * inspector/front-end/BreakpointManager.js:
20112        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
20113        (WebInspector.BreakpointManager.prototype._resetBreakpoints):
20114        (WebInspector.BreakpointManager.prototype._uiSourceCodeMappingChanged):
20115        * inspector/front-end/CompilerScriptMapping.js:
20116        (WebInspector.CompilerScriptMapping.prototype.get isIdentity):
20117        * inspector/front-end/DefaultScriptMapping.js:
20118        (WebInspector.DefaultScriptMapping.prototype.isIdentity):
20119        * inspector/front-end/ResourceScriptMapping.js:
20120        (WebInspector.ResourceScriptMapping.prototype.isIdentity):
20121        * inspector/front-end/SASSSourceMapping.js:
20122        (WebInspector.SASSSourceMapping.prototype.isIdentity):
20123        * inspector/front-end/ScriptSnippetModel.js:
20124        (WebInspector.SnippetScriptMapping.prototype.isIdentity):
20125        * inspector/front-end/SourceMapping.js:
20126        (WebInspector.SourceMapping.prototype.isIdentity):
20127        * inspector/front-end/StylesSourceMapping.js:
20128        (WebInspector.StylesSourceMapping.prototype.isIdentity):
20129        * inspector/front-end/UISourceCode.js:
20130        (WebInspector.UISourceCode.prototype.setSourceMapping):
20131
201322013-03-27  Yury Semikhatsky  <yurys@chromium.org>
20133
20134        Web Inspector: update Timeline.TimelineEvent definition to include DOM counters and native memory stats
20135        https://bugs.webkit.org/show_bug.cgi?id=113376
20136
20137        Reviewed by Vsevolod Vlasov.
20138
20139        Fixed assertion failure in debug mode after r146975.
20140
20141        * inspector/InspectorTimelineAgent.cpp:
20142        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
20143
201442013-03-27  Ilya Tikhonovsky  <loislo@chromium.org>
20145
20146        Web Inspector: FlameChart. Provide 15px padding left for the chart so developers will see the first divider with '0' title.
20147        https://bugs.webkit.org/show_bug.cgi?id=113404
20148
20149        Reviewed by Pavel Feldman.
20150
20151        15px paddingLeft was added to the code for the chart.
20152
20153        * inspector/front-end/FlameChart.js:
20154        (WebInspector.FlameChart):
20155        (WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
20156        (WebInspector.FlameChart.Calculator.prototype.computePosition):
20157        (WebInspector.FlameChart.prototype.draw):
20158
201592013-03-27  Kent Tamura  <tkent@chromium.org>
20160
20161        Rename HTMLFormControlElement::readOnly to isReadOnly
20162        https://bugs.webkit.org/show_bug.cgi?id=113297
20163
20164        Reviewed by Alexey Proskuryakov.
20165
20166        HTMLFormControlElement::readOnly is not an implementation of
20167        'readOnly' IDL attribute. It's confusing and we don't need to
20168        violate our naming convention.
20169
20170        No new tests. Just a refactoring.
20171
20172        * accessibility/AccessibilityNodeObject.cpp:
20173        (WebCore::AccessibilityNodeObject::isReadOnly):
20174        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20175        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
20176        * html/HTMLFormControlElement.cpp:
20177        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
20178        (WebCore::HTMLFormControlElement::parseAttribute):
20179        * html/HTMLFormControlElement.h:
20180        (WebCore::HTMLFormControlElement::isReadOnly):
20181        (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
20182        * html/HTMLInputElement.cpp:
20183        (WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
20184        (WebCore::HTMLInputElement::matchesReadWritePseudoClass):
20185        * html/HTMLTextAreaElement.cpp:
20186        (WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
20187        (WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
20188        * html/shadow/SliderThumbElement.cpp:
20189        (WebCore::SliderThumbElement::defaultEventHandler):
20190        (WebCore::SliderThumbElement::willRespondToMouseMoveEvents):
20191        (WebCore::SliderThumbElement::willRespondToMouseClickEvents):
20192        * html/shadow/TextControlInnerElements.cpp:
20193        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
20194        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
20195        * html/shadow/TextFieldDecorationElement.cpp:
20196        (WebCore::TextFieldDecorationElement::updateImage):
20197        * rendering/RenderTextControl.cpp:
20198        (WebCore::updateUserModifyProperty):
20199        * rendering/RenderThemeMacShared.mm:
20200        (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
20201
202022013-03-27  Yury Semikhatsky  <yurys@chromium.org>
20203
20204        Web Inspector: update Timeline.TimelineEvent definition to include DOM counters and native memory stats
20205        https://bugs.webkit.org/show_bug.cgi?id=113376
20206
20207        Reviewed by Vsevolod Vlasov.
20208
20209        Added missing fields to Timeline.TimelineEvent type definition in Inspector.json
20210
20211        * inspector/Inspector.json:
20212        * inspector/InspectorTimelineAgent.cpp:
20213        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
20214        (WebCore::InspectorTimelineAgent::setDOMCounters):
20215        Switched InspectorTimelineAgent to the new typed event builders.
20216        (WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
20217        * inspector/InspectorTimelineAgent.h:
20218        (InspectorTimelineAgent):
20219
202202013-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
20221
20222        Web Inspector: Follow-up to r146898: test that uiSourceCodes are not leaking in breakpoint manager.
20223        https://bugs.webkit.org/show_bug.cgi?id=113368
20224
20225        Reviewed by Pavel Feldman.
20226
20227        Added a missed line and a test.
20228
20229        * inspector/front-end/BreakpointManager.js:
20230        (WebInspector.BreakpointManager.prototype._projectWillReset):
20231
202322013-03-27  Andrey Lushnikov  <lushnikov@chromium.org>
20233
20234        Web Inspector: [CodeMirror] CodeMirrorTextEditor.highlightRange has bugs
20235        https://bugs.webkit.org/show_bug.cgi?id=113348
20236
20237        Reviewed by Vsevolod Vlasov.
20238
20239        No new tests.
20240
20241        - Append additional "<class>-start" class to the first highlighted span
20242        and "<class>-end" class to the last highlighted span to provide a way
20243        to set up a css classes with borders.
20244        - Increment end column of the markup range to simulate inclusive range.
20245
20246        * inspector/front-end/CodeMirrorTextEditor.js:
20247        (WebInspector.CodeMirrorTextEditor.prototype.highlightRange):
20248
202492013-03-27  Andrey Lushnikov  <lushnikov@chromium.org>
20250
20251        Web Inspector: Add isClean/markClean method pair to textEditor.js
20252        https://bugs.webkit.org/show_bug.cgi?id=112815
20253
20254        Reviewed by Vsevolod Vlasov.
20255
20256        No new tests: no change in behaviour.
20257
20258        - Add TextEditor.isClean and TextEditor.markClean methods
20259        - Implement these methods in DefaultTextEditor
20260        - Implement these methods in CodeMirrorTextEditor
20261
20262        * inspector/front-end/CodeMirrorTextEditor.js:
20263        (WebInspector.CodeMirrorTextEditor.prototype.isClean):
20264        (WebInspector.CodeMirrorTextEditor.prototype.markClean):
20265        * inspector/front-end/DefaultTextEditor.js:
20266        (WebInspector.DefaultTextEditor.prototype.isClean):
20267        (WebInspector.DefaultTextEditor.prototype.markClean):
20268        * inspector/front-end/TextEditor.js:
20269        (WebInspector.TextEditor.prototype.isClean):
20270        (WebInspector.TextEditor.prototype.markClean):
20271        * inspector/front-end/TextEditorModel.js:
20272        (WebInspector.TextEditorModel.endsWithBracketRegex.):
20273
202742013-03-27  Ilya Tikhonovsky  <loislo@chromium.org>
20275
20276        Unreviewed. Web Inspector. rename method Timeline.Calculator.grandMinimumBoundary to Timeline.Calculator.zeroTime
20277
20278        No changes in behaviour.
20279
20280        * inspector/front-end/FlameChart.js:
20281        (WebInspector.FlameChart.Calculator.prototype.zeroTime):
20282        (WebInspector.FlameChart.OverviewCalculator.prototype.zeroTime):
20283        * inspector/front-end/NetworkPanel.js:
20284        (WebInspector.NetworkBaseCalculator.prototype.zeroTime):
20285        * inspector/front-end/TimelineGrid.js:
20286        (WebInspector.TimelineGrid.prototype.updateDividers):
20287        (WebInspector.TimelineGrid.Calculator.prototype.zeroTime):
20288        * inspector/front-end/TimelineOverviewPane.js:
20289        (WebInspector.TimelineOverviewCalculator.prototype.zeroTime):
20290        * inspector/front-end/TimelinePanel.js:
20291        (WebInspector.TimelineCalculator.prototype.zeroTime):
20292
202932013-03-26  Ilya Tikhonovsky  <loislo@chromium.org>
20294
20295        Web Inspector: Timeline. Scroll dividers with the underlying events.
20296        https://bugs.webkit.org/show_bug.cgi?id=113315
20297
20298        Reviewed by Pavel Feldman.
20299
20300        Now when TimelineGrid is able to draw dividers with any offset
20301        we could cut away paddingLeft member of Timeline.Calculator
20302        and clear the code of TimelineGrid.
20303
20304        * inspector/front-end/TimelineGrid.js:
20305        (WebInspector.TimelineGrid.prototype.updateDividers):
20306        * inspector/front-end/TimelinePanel.js:
20307        (WebInspector.TimelinePanel.prototype._refresh):
20308        (WebInspector.TimelineCalculator.prototype.computePosition):
20309        (WebInspector.TimelineCalculator.prototype.setDisplayWindow):
20310        (WebInspector.TimelineCalculator.prototype.grandMinimumBoundary):
20311        * inspector/front-end/inspectorCommon.css:
20312        (.resources-dividers-label-bar):
20313
203142013-03-27  Kondapally Kalyan  <kalyan.kondapally@intel.com>
20315
20316        [CoordGfx] Support to share GraphicsSurface flags with client.
20317        https://bugs.webkit.org/show_bug.cgi?id=112982
20318
20319        Reviewed by Noam Rosenthal.
20320
20321        Covered by existing WebGL tests.
20322
20323        This patch adds support to pass GraphicsSurface flags during it's client creation.
20324        This would be helpful to determine cases when blending can be disabled on client
20325        side i.e When AlphaSupport is disabled during Graphics Surface creation.
20326        With GLX, we rely on Window to provide us with necessary information on client side.
20327        This might not be the case on other platforms or when not using Window on X.
20328        This patch doesn't change original behaviour of creating GraphicsSurface client
20329        with default flags GraphicsSurface::SupportsTextureTarget and GraphicsSurface::SupportsSharing.
20330
20331        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
20332        (WebCore::TextureMapperPlatformLayer::graphicsSurfaceFlags):
20333        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
20334        (WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
20335        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
20336        (WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
20337        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
20338        (CoordinatedGraphicsLayerState):
20339        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
20340        (WebCore):
20341        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceFlags):
20342        * platform/graphics/efl/GraphicsContext3DPrivate.h:
20343        (GraphicsContext3DPrivate):
20344        * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
20345        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
20346        (WebCore::GraphicsSurfacePrivate::initializeClient):
20347
203482013-03-26  Takashi Sakamoto  <tasak@google.com>
20349
20350        [shadow] styleForText should consider the case where parent node has no style
20351        https://bugs.webkit.org/show_bug.cgi?id=113275
20352
20353        If a text node is distributed, its parent node for rendering and
20354        styling might have no style. In the case, styleForText should return
20355        default style.
20356
20357        Reviewed by Hajime Morrita.
20358
20359        Test: fast/dom/shadow/text-node-distributed-crash.html
20360
20361        * css/StyleResolver.cpp:
20362        (WebCore::StyleResolver::styleForText):
20363        Check whether a parent node has any style or not. If not, return
20364        default style. This is the same behavior as styleForElement.
20365
203662013-03-26  Takeshi Yoshino  <tyoshino@chromium.org>
20367
20368        Make SocketStreamHandle (Chromium port) fully use IPC window in send()
20369        https://bugs.webkit.org/show_bug.cgi?id=113304
20370
20371        Reviewed by Kent Tamura.
20372
20373        socket_stream of Chromium buffers send data up to 32KiB (exact) bytes.
20374
20375        However, SocketStreamHandleInternal::send() method now keeps in-flight
20376        send data not greater than m_maxPendingSendAllowed - 1 that is
20377        32KiB - 1. This means that SocketStreamHandleInternal consumes the
20378        buffered data in SocketStreamHandleBase by 32KiB - 1. It makes memory
20379        copy operations unaligned unnecessarily. It should just use the
20380        allowed size fully.
20381
20382        * platform/network/chromium/SocketStreamHandle.cpp:
20383        (WebCore::SocketStreamHandleInternal::send):
20384        (WebCore):
20385
203862013-03-26  Hayato Ito  <hayato@chromium.org>
20387
20388        Allow ShadowContents in HitTests by default.
20389        https://bugs.webkit.org/show_bug.cgi?id=113171
20390
20391        Reviewed by Dimitri Glazkov.
20392
20393        HitTestRequest is widely used in WebCore, but AllowShadowContents
20394        flag is not turned on by default.  In most places, we can set the
20395        flag on.
20396
20397        This change makes HitTests allow shadow contents by default.
20398
20399        To track all existing HitTests which do not allow shadow contents,
20400        and discourage such a HitTest in the future, I've introduced
20401        disallowShadowContenet flag so that callers must turn on this flag
20402        explicitly if they want to disallow shadow contents in their HitTests.
20403
20404        This change should be refactoring and should not include any
20405        behavior changes.  After this change, we'll investigate each place
20406        where disallowShadowContents is used step by step and get rid of
20407        the flag if it is okay to remove.
20408
20409        No new tests, no behavior change.
20410
20411        * dom/Document.h:
20412        (Document):
20413        * dom/TreeScope.cpp:
20414        (WebCore::nodeFromPoint):
20415        * editing/FrameSelection.cpp:
20416        (WebCore::FrameSelection::contains):
20417        * page/DragController.cpp:
20418        (WebCore::elementUnderMouse):
20419        (WebCore::DragController::canProcessDrag):
20420        (WebCore::DragController::startDrag):
20421        * page/EventHandler.cpp:
20422        (WebCore::EventHandler::handleMouseDraggedEvent):
20423        (WebCore::EventHandler::eventMayStartDrag):
20424        (WebCore::EventHandler::updateSelectionForMouseDrag):
20425        (WebCore::EventHandler::hitTestResultAtPoint):
20426        (WebCore::EventHandler::handleMousePressEvent):
20427        (WebCore::EventHandler::handleMouseDoubleClickEvent):
20428        (WebCore::EventHandler::handleMouseMoveEvent):
20429        (WebCore::EventHandler::handleMouseReleaseEvent):
20430        (WebCore::EventHandler::updateDragAndDrop):
20431        (WebCore::EventHandler::isInsideScrollbar):
20432        (WebCore::EventHandler::handleWheelEvent):
20433        (WebCore::EventHandler::handleGestureEvent):
20434        (WebCore::EventHandler::handleGestureLongPress):
20435        (WebCore::EventHandler::handleGestureScrollBegin):
20436        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
20437        (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
20438        (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
20439        (WebCore::EventHandler::sendContextMenuEvent):
20440        (WebCore::EventHandler::sendContextMenuEventForKey):
20441        (WebCore::EventHandler::hoverTimerFired):
20442        (WebCore::EventHandler::dragSourceEndedAt):
20443        (WebCore::EventHandler::handleDrag):
20444        (WebCore::EventHandler::handleTouchEvent):
20445        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
20446        * page/EventHandler.h:
20447        (EventHandler):
20448        * page/FocusController.cpp:
20449        (WebCore::updateFocusCandidateIfNeeded):
20450        * page/Frame.cpp:
20451        (WebCore::Frame::visiblePositionForPoint):
20452        * page/TouchDisambiguation.cpp:
20453        (WebCore::findGoodTouchTargets):
20454        * rendering/HitTestRequest.h:
20455        (WebCore::HitTestRequest::disallowsShadowContent):
20456        * rendering/HitTestResult.cpp:
20457        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
20458        * rendering/RenderFlowThread.cpp:
20459        (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
20460        * rendering/svg/RenderSVGResourceClipper.cpp:
20461        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
20462        * testing/Internals.cpp:
20463        (WebCore::Internals::nodesFromRect):
20464
204652013-03-26  Tim Horton  <timothy_horton@apple.com>
20466
20467        [ca] Tell CA to clean up unused resources if a given WebProcess won't be drawing
20468        https://bugs.webkit.org/show_bug.cgi?id=107539
20469        <rdar://problem/13032692>
20470
20471        Reviewed by Simon Fraser.
20472
20473        Update WebCoreSystemInterface.
20474
20475        * platform/mac/WebCoreSystemInterface.h:
20476        * platform/mac/WebCoreSystemInterface.mm:
20477
204782013-03-26  Antti Koivisto  <antti@apple.com>
20479
20480        Test if non-immediate descendants obscure background
20481        https://bugs.webkit.org/show_bug.cgi?id=113137
20482
20483        Reviewed by Simon Fraser.
20484
20485        The current obscuration test only covers immediate children. We can find more cases by looking deeper into descendants.
20486        
20487        The patch makes the test sufficiently smart to stop a heavy fully obscured gif animation on micrsoft.com.
20488
20489        * loader/cache/CachedImage.cpp:
20490        (WebCore::CachedImage::animationAdvanced):
20491        * rendering/RenderBox.cpp:
20492        (WebCore::RenderBox::styleDidChange):
20493        
20494            Invalidate parents to max test depth.
20495
20496        (WebCore::RenderBox::backgroundPaintedExtent):
20497        
20498            Background painting is pixel snapped.
20499
20500        (WebCore::isCandidateForOpaquenessTest):
20501        (WebCore::RenderBox::foregroundIsKnownToBeOpaqueInRect):
20502        
20503            Separate foreground testing and make it recursive.
20504            Add fast bailout for common static positioned case.
20505            Remove maximum child count, the fast bailouts should prevent long tests.
20506            Add maximum depth so we know how deep we need to invalidate in styleDidChange.
20507
20508        (WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
20509        (WebCore):
20510        * rendering/RenderBox.h:
20511        (RenderBox):
20512        * rendering/RenderImage.cpp:
20513        (WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
20514        (WebCore):
20515        (WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
20516        
20517        * rendering/RenderImage.h:
20518        (RenderImage):
20519
205202013-03-26  Benjamin Poulain  <bpoulain@apple.com>
20521
20522        Regression (r145601): out-of-bounds read in line breaking / new width cache
20523        https://bugs.webkit.org/show_bug.cgi?id=113347
20524
20525        Reviewed by Geoffrey Garen.
20526
20527        The values zero and 0xffff have special values with the default HashTraits. Those values
20528        are also valid values for UChar.
20529
20530        To avoid any table inconsitency, switch from UChar to uint32_t as the key type for
20531        the WidthCache's single char map. The traits is also changed to allow zero as a normal
20532        value.
20533
20534        This makes no space or time change over the previous code because:
20535        -The struct KeyValuePair was already 64bits due to the ABI alignment restrictions on floats.
20536        -The two hashes take the same number of instructions.
20537
20538        * platform/graphics/WidthCache.h:
20539        (WidthCache):
20540
205412013-03-26  Kent Tamura  <tkent@chromium.org>
20542
20543        Make HTMLProgressElement::isDeterminate private
20544        https://bugs.webkit.org/show_bug.cgi?id=113299
20545
20546        Reviewed by Kentaro Hara.
20547
20548        The only callsite of isDeterminate outside of HTMLProgressElement
20549        is in StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes,
20550        and we can replace it with Element::shouldAppearIndeterminate.
20551
20552        No new tests. Just a refactoring.
20553
20554        * css/StyleResolver.cpp:
20555        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
20556        Use Element::shouldAppearIndeterminate.
20557        * html/HTMLProgressElement.h:
20558        (HTMLProgressElement): Make isDeterminate private.
20559
205602013-03-26  David Grogan  <dgrogan@chromium.org>
20561
20562        IndexedDB: Histogram cause of LevelDB write errors
20563        https://bugs.webkit.org/show_bug.cgi?id=113350
20564
20565        Reviewed by Tony Chang.
20566
20567        Add histogram for source of LevelDB errors on Write in addition to
20568        Open.
20569
20570        No new tests - no good way to test histogram code.
20571
20572        * platform/leveldb/LevelDBDatabase.cpp:
20573        (WebCore::histogramLevelDBError):
20574        (WebCore):
20575        (WebCore::LevelDBDatabase::open):
20576        (WebCore::LevelDBDatabase::write):
20577
205782013-03-26  Chris Fleizach  <cfleizach@apple.com>
20579
20580        WebKit does not expose @required or @aria-required as AXRequired on select elements
20581        https://bugs.webkit.org/show_bug.cgi?id=113339
20582
20583        Reviewed by Tim Horton.
20584
20585        Make sure button types can return the AXRequired attribute.
20586
20587        Tests: platform/mac/accessibility/aria-required-popup-button.html
20588
20589        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
20590        (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
20591
205922013-03-26  Dean Jackson  <dino@apple.com>
20593
20594        When a primary plugin is restarted, also start similar plugins
20595        https://bugs.webkit.org/show_bug.cgi?id=113265
20596
20597        Reviewed by Tim Horton.
20598
20599        If we detect a primary plugin that is snapshotted, we immediately restart it.
20600        When this happens, we should also restart any other plugins that
20601        match the same origin and type. This allows sites with a lot of
20602        (geometrically) nearby plugins to behave as if they are a single big plugin.
20603
20604        Tests: plugins/snapshotting/autoplay-similar-to-dominant-after-delay.html
20605               plugins/snapshotting/autoplay-similar-to-dominant.html
20606
20607        * WebCore.exp.in: Export mimeTypeFromURL.
20608        * html/HTMLPlugInImageElement.cpp:
20609        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin): Use loadedMimeType helper.
20610        (WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): New method, which copied the
20611            existing code from userDidClickSnapshot.
20612        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Move the similar plugin detection
20613            out into another function and call it.
20614        (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Call restartSimilarPlugIns.
20615        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use loadedMimeType helper.
20616        * html/HTMLPlugInImageElement.h: Declaration of restartSimilarPlugIns.
20617        (WebCore::HTMLPlugInImageElement::loadedMimeType): New helper method since this
20618            code was being often duplicated.
20619
206202013-03-26  Brent Fulgham  <bfulgham@webkit.org>
20621
20622        [Windows, WinCairo] Scroll offset being applied to plugins during print operations.
20623        https://bugs.webkit.org/show_bug.cgi?id=39889
20624
20625        Reviewed by Anders Carlsson.
20626
20627        This must be tested manually. See the issue for details.
20628
20629        * plugins/win/PluginViewWin.cpp:
20630        (WebCore::PluginView::paintWindowedPluginIntoContext):
20631        Revise the Windows implementation of the PluginView class
20632        paintWindowedPluginIntoContext to use the containing window
20633        position when computing the plugin's position for printing.
20634
206352013-03-26  Xianzhu Wang  <wangxianzhu@chromium.org>
20636
20637        Non-paintsContent fixed position layer should not cause slow scrolling
20638        https://bugs.webkit.org/show_bug.cgi?id=113238
20639
20640        Reviewed by James Robinson.
20641
20642        Added NotCompositedForNoVisibleContent in ViewportConstrainedNotCompositedReason and set it in RLC.
20643
20644        Test: compositing/layer-creation/fixed-position-no-content-scroll-reason.html
20645
20646        * rendering/RenderLayer.h: Add NotCompositedForNoVisibleContent.
20647        * rendering/RenderLayerCompositor.cpp:
20648        (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Set NotCompositedForNoVisibleContent reason when the fixed position layer has no visible content.
20649
206502013-03-26  Zoltan Horvath  <zoltan@webkit.org>
20651
20652        [CSS Exclusions] The radius of a circle should be computed based on the shorter available dimension
20653        https://bugs.webkit.org/show_bug.cgi?id=113255
20654
20655        Reviewed by Julien Chaffraix.
20656
20657        When we decide what should be the radius of a circle, we should choose the smallest available space. For instance when the
20658        width or height is not resolvable for the circle we should not have a radius for it. This change modifies the behavior to
20659        use the smaller available space, so we won't render unnecessary circle shapes.
20660
20661        Test: fast/exclusions/shape-inside/shape-inside-on-nested-container-with-unresolved-height.html
20662
20663        * rendering/ExclusionShape.cpp:
20664        (WebCore::ExclusionShape::createExclusionShape):
20665
206662013-03-26  Timothy Hatcher  <timothy@apple.com>
20667
20668        Make the Web Inspector console work in strict mode with JavaScriptCore.
20669
20670        https://webkit.org/b/65829
20671        rdar://problem/11271238
20672
20673        Reviewed by Joseph Pecoraro.
20674
20675        * inspector/InjectedScriptSource.js:
20676        (InjectedScript.prototype._evaluateOn): Don't use 'eval' parameter (it isn't
20677        allowed in strict mode). Swap window.eval with our known eval instead.
20678
206792013-03-26  Ryosuke Niwa  <rniwa@webkit.org>
20680
20681        Heap-use-after-free regression
20682        https://bugs.webkit.org/show_bug.cgi?id=113337
20683
20684        Reviewed by Abhishek Arya and Alexey Proskuryakov.
20685
20686        Use RefPtr instead of raw pointer in m_associatedFormControls.
20687
20688        * dom/Document.cpp:
20689        (WebCore::Document::didAssociateFormControlsTimerFired):
20690        * dom/Document.h:
20691        (Document):
20692        * loader/EmptyClients.h:
20693        (WebCore::EmptyChromeClient::didAssociateFormControls):
20694        * page/ChromeClient.h:
20695        (WebCore::ChromeClient::didAssociateFormControls):
20696
206972013-03-26  Alexey Proskuryakov  <ap@apple.com>
20698
20699        <rdar://problem/13194263> Crashes in NetworkProcess due to threading issues
20700        https://bugs.webkit.org/show_bug.cgi?id=113256
20701
20702        Reviewed by Brady Eidson.
20703
20704        Added a new code path in ResourceHandle/ResourceHandleClient that doesn't need
20705        blocking calls. Implemented it for NSURLConnection by changing NSOperationQueue
20706        version to forward calls to main thread.
20707
20708        * WebCore.exp.in: Export new methods.
20709        * WebCore.xcodeproj/project.pbxproj: Added WebCoreResourceHandleAsOperationQueueDelegate.
20710
20711        * platform/network/CredentialStorage.cpp: Assert that unprotected global map operations
20712        happen on main thread.
20713
20714        * platform/network/ResourceHandle.cpp: Added default implementations of functions
20715        that handle async responses.
20716
20717        * platform/network/chromium/ResourceHandle.cpp: Ditto.
20718
20719        * platform/network/ResourceHandle.h: Added functions that are called in response
20720        to new async functions in ResourceHandleClient. Changed Mac delegate type to id,
20721        ast can now be either WebCoreResourceHandleAsDelegate or WebCoreResourceHandleAsOperationQueueDelegate.
20722
20723        * platform/network/ResourceHandleClient.cpp:
20724        (WebCore::ResourceHandleClient::willSendRequestAsync):
20725        (WebCore::ResourceHandleClient::shouldUseCredentialStorageAsync):
20726        (WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync):
20727        (WebCore::ResourceHandleClient::willCacheResponseAsync):
20728        Default implementations of async client functions. These match default behavior of
20729        sync versions.
20730
20731        * platform/network/ResourceHandleClient.h: Added async functions. A ResourceHandle
20732        should use these when the client returns true from usesAsyncCallbacks().
20733
20734        * platform/network/ResourceHandleInternal.h: Changed to use id for delegate type
20735        here, too.
20736
20737        * platform/network/mac/ResourceHandleMac.mm:
20738        (WebCore::ResourceHandle::delegate): Create an appropriate delegate for the client.
20739        (WebCore::ResourceHandle::willSendRequest): Since this function has a lot of common
20740        behavior in sync and async cases, implement the new code path as a branch inside
20741        it, not as a new function.
20742        (WebCore::ResourceHandle::continueWillSendRequest): Unblock the connection when
20743        response is known.
20744        (WebCore::ResourceHandle::shouldUseCredentialStorage): Branched here too, for consistency.
20745        Perhaps we'll want to break this into separate functions though.
20746        (WebCore::ResourceHandle::continueShouldUseCredentialStorage): Unblock the connection.
20747        (WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace): Same change as above.
20748        (WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace): Ditto.
20749        (WebCore::ResourceHandle::continueWillCacheResponse): Ditto. Currently, delegate
20750        calls the client directly, so we only have a "continue" function, and no "willCacheResponse".
20751
20752        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
20753        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed some
20754        nonsense code.
20755
20756        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h: Copied from Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.h.
20757        This delegate is responsible for forwarding calls to main thread. Unfortunately,
20758        this adds some code duplication, which I tried to rectify somewhat in previous patches
20759        by moving more logic to ResourceHandle.
20760
20761        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: Copied from Source/WebCore/platform/network/mac/WebCoreResourceHandleAsDelegate.mm.
20762        (-[WebCoreResourceHandleAsOperationQueueDelegate detachHandle]): Unblock waiting
20763        threads if we don't expect a response any more.
20764        (-[WebCoreResourceHandleAsOperationQueueDelegate dealloc]): Release the semaphore.
20765        (-[WebCoreResourceHandleAsOperationQueueDelegate continueWillSendRequest:]): Unblock
20766        a waiting thread with a response.
20767        (-[WebCoreResourceHandleAsOperationQueueDelegate continueShouldUseCredentialStorage:]): Ditto.
20768        (-[WebCoreResourceHandleAsOperationQueueDelegate continueCanAuthenticateAgainstProtectionSpace:]): Ditto.
20769        (-[WebCoreResourceHandleAsOperationQueueDelegate continueWillCacheResponse:]): Ditto.
20770        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
20771        Run code that uses WebCore objects on main thread.
20772        (-[WebCoreResourceHandleAsOperationQueueDelegate connectionShouldUseCredentialStorage:]): Ditto.
20773        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
20774        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
20775        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]): Ditto.
20776        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]): Ditto.
20777        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveDataArray:]): Ditto.
20778        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]): Ditto.
20779        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willStopBufferingData:]): Ditto.
20780        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]): Ditto.
20781        (-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]): Ditto.
20782        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didFailWithError:]): Ditto.
20783        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]): Ditto.
20784
207852013-03-26  Tony Chang  <tony@chromium.org>
20786
20787        Autogenerate the scrollAnimatorEnabled setting in Settings.in
20788        https://bugs.webkit.org/show_bug.cgi?id=113253
20789
20790        Reviewed by James Robinson.
20791
20792        Convert scrollAnimatorEnabled into an autogenerated setting. This involves renaming
20793        the setter from setEnableScrollAnimator(bool) to setScrollAnimatorEnabled(bool) and
20794        updating the callers. I didn't change any WebKit API methods.
20795
20796        Also remove the code in InternalSettings since it's never used and will now be
20797        autogenerated with proper resetting code.
20798
20799        No new tests, this is a refactor and should compile.
20800
20801        * page/Settings.cpp:
20802        (WebCore::Settings::Settings): Remove code that is now autogenerated.
20803        * page/Settings.h:
20804        (Settings): Remove code that is now autogenerated.
20805        * page/Settings.in: Add entry for scrollAnimatorEnabled.
20806        * testing/InternalSettings.cpp: Remove unused code.
20807        * testing/InternalSettings.h: Remove unused code.
20808        * testing/InternalSettings.idl: Remove unused code.
20809
208102013-03-26  Joe Mason  <jmason@blackberry.com>
20811
20812        [BlackBerry] In RSSFilterStream, don't swallow headers when there's no body
20813        https://bugs.webkit.org/show_bug.cgi?id=113334
20814
20815        Reviewed by Rob Buis.
20816
20817        RIM PR 316345
20818
20819        When receiving an HTTP response that has a Content-Type header such as text/xml, but no
20820        body, RSSFilterStream::notifyHeadersReceived reads the Content-Type as "potential RSS", and
20821        calls saveHeaders. It expects to sniff the body in notifyDataReceived to see if it's RSS,
20822        and then call sendSavedHeaders to pass on the headers. But since there is no body,
20823        notifyDataReceived is never called. So call sendSavedHeaders in notifyClose too (it will not
20824        send them again if they were already sent.)
20825
20826        * platform/network/blackberry/rss/RSSFilterStream.cpp:
20827        (WebCore::RSSFilterStream::notifyClose):
20828
208292013-03-26  Dmitry Zvorygin  <zvorygin@chromium.org>
20830
20831        Web Inspector: Faster drawer animation.
20832        https://bugs.webkit.org/show_bug.cgi?id=113330
20833
20834        250ms -> 100ms
20835
20836        Reviewed by Pavel Feldman.
20837
20838        * inspector/front-end/inspector.css:
20839        (.animate #main):
20840        (.animate #floating-status-bar-container):
20841        (.animate #drawer):
20842        (.animate #bottom-status-bar-container > *):
20843
208442013-03-26  Brent Fulgham  <bfulgham@webkit.org>
20845
20846        [WinCairo] Unreviewed Build fix.
20847
20848        * platform/graphics/win/FontCustomPlatformDataCairo.h:
20849        (FontCustomPlatformData): Correct signature in header to match
20850        required implementation.
20851
208522013-03-26  Arvid Nilsson  <anilsson@rim.com>
20853
20854        [BlackBerry] Scrolling up and down can cause the screen to flash black
20855        https://bugs.webkit.org/show_bug.cgi?id=113269
20856
20857        Reviewed by Rob Buis.
20858
20859        PR 296106
20860
20861        The LayerRenderer should never clear before drawing the layers, from
20862        now on that's the responsibility of the caller.
20863
20864        Only manually testable.
20865
20866        * platform/graphics/blackberry/LayerRenderer.cpp:
20867        (WebCore::LayerRenderer::setViewport):
20868        * platform/graphics/blackberry/LayerRendererClient.h:
20869        (LayerRendererClient):
20870
208712013-03-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
20872
20873        [Qt] editing/pasteboard/can-read-in-dragstart-event.html and /can-read-in-copy-and-cut-events.html are crashing
20874        https://bugs.webkit.org/show_bug.cgi?id=113126
20875
20876        Reviewed by Jocelyn Turcotte.
20877
20878        Make it possible to read from a writable Clipboard.
20879
20880        Test: editing/pasteboard/can-read-in-copy-and-cut-events.html
20881
20882        * platform/qt/ClipboardQt.cpp:
20883        (WebCore::ClipboardQt::getData):
20884        (WebCore::ClipboardQt::types):
20885        (WebCore::ClipboardQt::files):
20886        (WebCore::ClipboardQt::readClipboardData):
20887        (WebCore::ClipboardQt::hasData):
20888        (WebCore::ClipboardQt::items):
20889        * platform/qt/ClipboardQt.h:
20890        (ClipboardQt):
20891
208922013-03-26  Brent Fulgham  <bfulgham@webkit.org>
20893
20894        [WinCairo] Unreviewed build correction.
20895
20896        * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
20897        (WebCore::FontCustomPlatformData::fontPlatformData): Update
20898        method signature to match CG variant.
20899
209002013-03-26  Christophe Dumez  <ch.dumez@sisa.samsung.com>
20901
20902        Code duplication between HTTPParsers and HTTPValidation
20903        https://bugs.webkit.org/show_bug.cgi?id=113283
20904
20905        Reviewed by Alexey Proskuryakov.
20906
20907        Merged isValidHTTPToken() from HTTPValidation.h and isRFC2616Token() from
20908        HTTPParsers.h. They were doing exactly the same thing and their
20909        implementation was almost the same.
20910
20911        Removed HTTPValidation.* and moved remaining code to HTTPParsers.* as this
20912        seems like the proper place and it seems odd to keep HTTPValidation for
20913        just one function.
20914
20915        No new tests, no behavior change for layout tests.
20916
20917        * CMakeLists.txt:
20918        * GNUmakefile.list.am:
20919        * Target.pri:
20920        * WebCore.gypi:
20921        * WebCore.vcproj/WebCore.vcproj:
20922        * WebCore.vcxproj/WebCore.vcxproj:
20923        * WebCore.vcxproj/WebCore.vcxproj.filters:
20924        * WebCore.xcodeproj/project.pbxproj:
20925        * platform/network/HTTPParsers.cpp:
20926        (WebCore::isValidHTTPHeaderValue):
20927        (WebCore):
20928        (WebCore::isValidHTTPToken): Implementation is slightly simplified based on
20929        isValidHTTPToken() from HTTPValidation.cpp. (c >= 0x80 || c == 0x7F) is
20930        replaced by (c >= 0x7F). (c <= 0x1F ||  c == ' ' || c == '\t') is replaced
20931        by (c <= 0x20). Those expressions are shorter but equivalent.
20932        (WebCore::contentDispositionType):
20933        * platform/network/HTTPParsers.h:
20934        * platform/network/HTTPValidation.cpp: Removed.
20935        * platform/network/HTTPValidation.h: Removed.
20936        * xml/XMLHttpRequest.cpp: Stop including HTTPValidation.h.
20937
209382013-03-26  Sergio Villar Senin  <svillar@igalia.com>
20939
20940        Implement overtype mode for editable content
20941        https://bugs.webkit.org/show_bug.cgi?id=112126
20942
20943        Reviewed by Ryosuke Niwa.
20944
20945        Tests: editing/execCommand/overtype-support.html
20946               editing/execCommand/overtype.html
20947
20948        Add a new Overwrite command to the editor. This command will
20949        perform overtype operations when enabled instead of "normal" text
20950        insertions. As IE does, we maintain a single toggle state in the
20951        editor (enabled/disabled) for all the editable content in the
20952        page.
20953
20954        This new command will be only available for richly editable
20955        content via keybindings or the context menu. For testing purposes
20956        it is also accessible via internals.
20957
20958        * editing/CompositeEditCommand.cpp:
20959        (WebCore::CompositeEditCommand::replaceTextInNode): Use RefPtr for
20960        local variables.
20961        * editing/Editor.cpp:
20962        (WebCore::Editor::Editor):
20963        * editing/Editor.h:
20964        (WebCore::Editor::isOverwriteModeEnabled):
20965        (WebCore::Editor::toggleOverwriteModeEnabled):
20966        (Editor): Added two new functions and a new attribute.
20967        * editing/EditorCommand.cpp:
20968        (WebCore::executeToggleOverwrite): Enables/disables overwrite mode.
20969        (WebCore):
20970        (WebCore::createCommandMap): New OverWrite command.
20971        * editing/InsertTextCommand.cpp:
20972        (WebCore::InsertTextCommand::setEndingSelectionWithoutValidation):
20973        Refactored from performTrivialReplace(), shared by
20974        performOverwrite().
20975        (WebCore):
20976        (WebCore::InsertTextCommand::performTrivialReplace):
20977        (WebCore::InsertTextCommand::performOverwrite):
20978        (WebCore::InsertTextCommand::doApply): Perform overwrite if enabled.
20979        * editing/InsertTextCommand.h:
20980        (InsertTextCommand):
20981        * testing/Internals.cpp:
20982        (WebCore::Internals::resetToConsistentState): Reset OverWrite mode
20983        to false.
20984        (WebCore::Internals::isOverwriteModeEnabled):
20985        (WebCore):
20986        (WebCore::Internals::toggleOverwriteModeEnabled): Provide access
20987        to overwrite functionality in Editor for testing purposes.
20988        * testing/Internals.h:
20989        (Internals):
20990        * testing/Internals.idl:
20991
209922013-03-26  Arvid Nilsson  <anilsson@rim.com>
20993
20994        [BlackBerry] WebOverlay::pixelViewportRect() should return pixel viewport coordinates
20995        https://bugs.webkit.org/show_bug.cgi?id=113263
20996
20997        Reviewed by Rob Buis.
20998
20999        PR 312404
21000
21001        Fix WebOverlay::pixelViewportRect() to return the pixel viewport rect
21002        instead of the window rect. These are different if the web page is
21003        rendered starting at a window coordinate other than 0,0. The clip rect
21004        encodes the position we're rendered at, and can be used to translate
21005        the rect expressed in window coordinates to the pixel viewport
21006        coordinate system.
21007
21008        Also perform some cleanup of related code.
21009
21010        Only manually testable.
21011
21012        * platform/graphics/blackberry/LayerCompositingThread.cpp:
21013        (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
21014        (WebCore::LayerCompositingThread::drawTextures):
21015        * platform/graphics/blackberry/LayerRenderer.cpp:
21016        (WebCore::toPixelCoordinates):
21017        (WebCore):
21018        (WebCore::LayerRenderer::toWindowCoordinates):
21019        (WebCore::LayerRenderer::toPixelViewportCoordinates):
21020        (WebCore::LayerRenderer::toDocumentViewportCoordinates):
21021        (WebCore::LayerRenderer::updateLayersRecursive):
21022        * platform/graphics/blackberry/LayerRenderer.h:
21023        (LayerRenderer):
21024
210252013-03-26  Sheriff Bot  <webkit.review.bot@gmail.com>
21026
21027        Unreviewed, rolling out r146901.
21028        http://trac.webkit.org/changeset/146901
21029        https://bugs.webkit.org/show_bug.cgi?id=113321
21030
21031        Was landed to soon (Requested by pfeldman on #webkit).
21032
21033        * inspector/front-end/ConsoleView.js:
21034        (WebInspector.ConsoleView.prototype.):
21035        (WebInspector.ConsoleView.prototype.filter):
21036        (WebInspector.ConsoleView.prototype._scheduleScrollIntoView.scrollIntoView):
21037        (WebInspector.ConsoleView.prototype._scheduleScrollIntoView):
21038        (WebInspector.ConsoleView.prototype._consoleMessageAdded):
21039        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
21040        (WebInspector.ConsoleView.prototype._consoleCleared):
21041        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.monitoringXHRItemAction):
21042        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get preserveLogItemAction):
21043        (WebInspector.ConsoleView.prototype._shouldBeVisible):
21044        (WebInspector.ConsoleView.prototype._updateMessageList):
21045        (WebInspector.ConsoleView.prototype._promptKeyDown):
21046        (WebInspector.ConsoleView.prototype._printResult):
21047        (WebInspector.ConsoleCommand.prototype.highlightSearchResults):
21048        * inspector/front-end/inspector.css:
21049        (.console-warning-level, .console-error-level, .console-log-level, .console-debug-level):
21050        (.filter-all .console-debug-level, .filter-debug .console-debug-level):
21051        (.filter-all .console-debug-level.repeated-message, .filter-debug .console-debug-level.repeated-message):
21052
210532013-03-26  Rafael Weinstein  <rafaelw@chromium.org>
21054
21055        HTMLStackItem should include <template> as a special tag
21056        https://bugs.webkit.org/show_bug.cgi?id=113016
21057
21058        Reviewed by Eric Seidel.
21059
21060        New test added to html5lib suite.
21061
21062        * html/parser/HTMLStackItem.h:
21063        (WebCore::HTMLStackItem::isSpecialNode):
21064
210652013-03-26  Vsevolod Vlasov  <vsevik@chromium.org>
21066
21067        Web Inspector: Distinguish breakpoints and breakpoint locations in BreakpointManager API
21068        https://bugs.webkit.org/show_bug.cgi?id=113311
21069
21070        Reviewed by Pavel Feldman.
21071
21072        Made independent handling of breakpoints and breakpoint location in breakpoint manager consistent.
21073        JavaScriptSourceFrame now removes breakpoints originally set in it based on primary UI location.
21074
21075        * inspector/front-end/BreakpointManager.js:
21076        (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
21077        (WebInspector.BreakpointManager.prototype.allBreakpoints):
21078        (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21079        (WebInspector.BreakpointManager.prototype.allBreakpointLocations):
21080        (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
21081        (WebInspector.BreakpointManager.prototype._projectWillReset):
21082        * inspector/front-end/JavaScriptSourceFrame.js:
21083        (WebInspector.JavaScriptSourceFrame.prototype.onUISourceCodeContentChanged):
21084        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
21085        (WebInspector.JavaScriptSourceFrame.prototype._removeAllBreakpoints):
21086
210872013-03-26  Dmitry Zvorygin  <zvorygin@chromium.org>
21088
21089        Web Inspector: Remove remainings of CSS-based console message filtering.
21090        https://bugs.webkit.org/show_bug.cgi?id=112710
21091
21092        Reviewed by Pavel Feldman.
21093
21094        * inspector/front-end/ConsoleView.js:
21095        (WebInspector.ConsoleView.get this):
21096        (WebInspector.ConsoleView.prototype.):
21097        (WebInspector.ConsoleView.prototype.filter):
21098        (WebInspector.ConsoleView.prototype._consoleMessageAdded):
21099        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
21100        (WebInspector.ConsoleView.prototype._consoleCleared):
21101        (WebInspector.ConsoleView.prototype._shouldBeVisible):
21102        (WebInspector.ConsoleView.prototype._updateMessageList):
21103        (WebInspector.ConsoleView.prototype._promptKeyDown):
21104        (WebInspector.ConsoleView.prototype._printResult):
21105        (WebInspector.ConsoleCommand.prototype.highlightSearchResults):
21106        * inspector/front-end/inspector.css:
21107        (.console-debug-level.repeated-message):
21108
211092013-03-26  Peter Rybin  <prybin@chromium.org>
21110
21111        Web Inspector: refactor code duplication: WebInspector.ObjectPropertyTreeElement.wrapPropertyAsElements
21112        https://bugs.webkit.org/show_bug.cgi?id=113211
21113
21114        Reviewed by Yury Semikhatsky.
21115
21116        A new method WebInspector.ObjectPropertyTreeElement.wrapPropertyAsElements is added and used
21117        from 2 sites.
21118
21119        * inspector/front-end/ObjectPropertiesSection.js:
21120        (WebInspector.ObjectPropertiesSection.prototype.update.callback):
21121        (WebInspector.ObjectPropertiesSection.prototype.update):
21122        (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
21123        (.callback):
21124        (WebInspector.ObjectPropertyTreeElement.populate):
21125        (WebInspector.ObjectPropertyTreeElement.wrapPropertyAsElements):
21126        * inspector/front-end/WatchExpressionsSidebarPane.js:
21127        (WebInspector.WatchExpressionsSection.prototype.update.appendResult):
21128        (WebInspector.WatchExpressionsSection.prototype.update):
21129
211302013-03-26  Christophe Dumez  <ch.dumez@sisa.samsung.com>
21131
21132        HTTPHeaderMap::copyData() could call uncheckedAppend()
21133        https://bugs.webkit.org/show_bug.cgi?id=113279
21134
21135        Reviewed by Alexey Proskuryakov.
21136
21137        HTTPHeaderMap::copyData() calls reserveInitialCapacity() on the Vector
21138        but then appends items using append() function. Since we already know
21139        the capacity is sufficient, it is more efficient to call uncheckedAppend()
21140        instead to bypass capacity checks.
21141
21142        No new tests, no behavior change for layout tests.
21143
21144        * platform/network/HTTPHeaderMap.cpp:
21145        (WebCore::HTTPHeaderMap::copyData):
21146
211472013-03-26  Vsevolod Vlasov  <vsevik@chromium.org>
21148
21149        Web Inspector: UISourceCodes are leaking on reload sometimes.
21150        https://bugs.webkit.org/show_bug.cgi?id=113310
21151
21152        Reviewed by Pavel Feldman.
21153
21154        * inspector/front-end/BreakpointManager.js:
21155        (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
21156        (WebInspector.BreakpointManager.prototype._projectWillReset):
21157        * inspector/front-end/ConsoleModel.js:
21158        (WebInspector.ConsoleModel.prototype.clearMessages):
21159
211602013-03-26  Alexander Pavlov  <apavlov@chromium.org>
21161
21162        Web Inspector: [Elements] Unable to "Edit as HTML" XHTML/SVG documents.
21163        https://bugs.webkit.org/show_bug.cgi?id=113290
21164
21165        Reviewed by Pavel Feldman.
21166
21167        DOMPatchSupport has been slightly augmented to handle XML (XHTML and SVG) documents.
21168
21169        Test: inspector/elements/set-outer-html-for-xhtml.xhtml
21170
21171        * inspector/DOMPatchSupport.cpp:
21172        (WebCore::DOMPatchSupport::patchDocument):
21173        (WebCore::DOMPatchSupport::patchNode):
21174        * inspector/InspectorDOMAgent.cpp:
21175        (WebCore::InspectorDOMAgent::setOuterHTML): Let HTML, XHTML, and SVG documents through.
21176
211772013-03-26  Hajime Morrita  <morrita@google.com>
21178
21179        https://bugs.webkit.org/show_bug.cgi?id=113164
21180        Custom Elements: readyCallback should be called for outerHTML and insertAdjecentHTML
21181
21182        These APIs also create new elements thus should have V8DeliverCustomElementCallbacks attribute.
21183
21184        Reviewed by Dimitri Glazkov.
21185
21186        Test: Updated lifecycle-ready-creation-api.html.
21187
21188        * html/HTMLElement.idl:
21189
211902013-03-26  Ilya Tikhonovsky  <loislo@chromium.org>
21191
21192        Unreviewed. WebInspector: remove unnecessary method.
21193
21194        * inspector/front-end/OverviewGrid.js:
21195        (WebInspector.OverviewGrid.Window):
21196
211972013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
21198
21199        Web Inspector: Flame Chart. Scroll dividers together with underlying chart.
21200        http://bugs.webkit.org/show_bug.cgi?id=113080
21201
21202        Reviewed by Pavel Feldman.
21203
21204        * inspector/front-end/FlameChart.js:
21205        (WebInspector.FlameChart.Calculator.prototype.grandMinimumBoundary):
21206        (WebInspector.FlameChart.prototype._canvasDragging):
21207        * inspector/front-end/TimelineGrid.js:
21208        (WebInspector.TimelineGrid.prototype.updateDividers):
21209
212102013-03-26  Ilya Tikhonovsky  <loislo@chromium.org>
21211
21212        Web Inspector: Flame Chart. Scroll dividers together with underlying chart.
21213        http://bugs.webkit.org/show_bug.cgi?id=113080
21214
21215        Reviewed by Pavel Feldman.
21216
21217        The only thing we need to do for this feature is to automatically adjust
21218        the initial offset for the dividers. I measured the speed of scrolling and found
21219        no difference. The speed is about 16ms so we have 60fps on dragging.
21220
21221        * inspector/front-end/FlameChart.js:
21222        (WebInspector.FlameChart.Calculator.prototype.grandMinimumBoundary):
21223        (WebInspector.FlameChart.OverviewCalculator.prototype.grandMinimumBoundary):
21224        (WebInspector.FlameChart.prototype._canvasDragging):
21225        * inspector/front-end/NetworkPanel.js:
21226        (WebInspector.NetworkBaseCalculator.prototype.grandMinimumBoundary):
21227        * inspector/front-end/TimelineGrid.js:
21228        (WebInspector.TimelineGrid.prototype.updateDividers):
21229        (WebInspector.TimelineGrid.Calculator.prototype.grandMinimumBoundary):
21230        * inspector/front-end/TimelineOverviewPane.js:
21231        (WebInspector.TimelineOverviewCalculator.prototype.grandMinimumBoundary):
21232        * inspector/front-end/TimelinePanel.js:
21233        (WebInspector.TimelineCalculator.prototype.grandMinimumBoundary):
21234
212352013-03-26  Mike West  <mkwst@chromium.org>
21236
21237        CSP 1.1: Experiment with 'base-uri' directive.
21238        https://bugs.webkit.org/show_bug.cgi?id=113307
21239
21240        Reviewed by Jochen Eisinger.
21241
21242        The 'base-uri' directive was introduced[1] as an experimental directive
21243        in CSP 1.1 after a bit of discussion[2][3]. The exact semantics will
21244        likely change, but it would be good for us to get some implementation
21245        experience with the API as currently specified, and to allow folks to
21246        play with the implementation to determine whether it meets the
21247        requirements the way we think it might.
21248
21249        This patch is a first pass at that implementation: it will have no
21250        effect on ports that haven't enabled the CSP_NEXT flag.
21251
21252        [1]: https://dvcs.w3.org/hg/content-security-policy/rev/4b89c246ea16
21253        [2]: http://lists.w3.org/Archives/Public/public-webappsec/2012Oct/0022.html
21254        [3]: http://lists.w3.org/Archives/Public/public-webappsec/2013Feb/0074.html
21255
21256        Tests: http/tests/security/contentSecurityPolicy/1.1/base-uri-allow.html
21257               http/tests/security/contentSecurityPolicy/1.1/base-uri-deny.html
21258
21259        * dom/Document.cpp:
21260        (WebCore::Document::processBaseElement):
21261            Check that the new base URI is allowed by CSP before using it as
21262            the document's base URI.
21263        * page/ContentSecurityPolicy.cpp:
21264            Add a constant for the new directive name (and, as a drive-by, split
21265            the list into CSP 1.0 and CSP 1.1 for clarity).
21266        (CSPDirectiveList):
21267            Add a property to hold the base URI policy directive value.
21268        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
21269            Customize the error message iff we're dealing with 'base-uri'.
21270        (WebCore::CSPDirectiveList::allowBaseURI):
21271            Check the given URI against the 'base-uri' directive's value,
21272            exactly as we do for every other source-list type of directive.
21273        (WebCore::CSPDirectiveList::addDirective):
21274            Accept 'base-uri' as a valid directive iff CSP_NEXT is set, and
21275            the embedder has opted-in via the runtime flag.
21276        (WebCore::ContentSecurityPolicy::allowBaseURI):
21277            Expose an API method on ContentSecurityPolicy to check URIs against
21278            the 'base-uri' directive's value.
21279
212802013-03-26  Arvid Nilsson  <anilsson@rim.com>
21281
21282        [BlackBerry] Main frame fixed divs not positioned correctly
21283        https://bugs.webkit.org/show_bug.cgi?id=112889
21284
21285        Reviewed by Carlos Garcia Campos.
21286
21287        PR 283363
21288
21289        This was a regression from bug #112806. It caused main frame fixed
21290        handling to enter the iframe/scrollable div code path in LayerRenderer.
21291
21292        Fixed by not setting the container for fixed flag on the main frame,
21293        the LayerRenderer expects this flag to be set only on non-mainframe
21294        containers.
21295
21296        Only manually testable.
21297
21298        * page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.cpp:
21299        (WebCore::scrollLayerForFrame):
21300        (WebCore):
21301        (WebCore::ScrollingCoordinatorBlackBerry::setLayerIsContainerForFixedPositionLayers):
21302        (WebCore::ScrollingCoordinatorBlackBerry::setLayerIsFixedToContainerLayer):
21303
213042013-03-26  Christophe Dumez  <ch.dumez@sisa.samsung.com>
21305
21306        FormData::deepCopy() could use Vector::uncheckedAppend()
21307        https://bugs.webkit.org/show_bug.cgi?id=113309
21308
21309        Reviewed by Kenneth Rohde Christiansen.
21310
21311        FormData::deepCopy() calls reserveInitialCapacity() on the Vector but then uses the
21312        regular append() method. This patch switches to using uncheckedAppend() method
21313        instead to bypass capacity checks as we already know it is sufficient.
21314
21315        No new tests, no behavior change.
21316
21317        * platform/network/FormData.cpp:
21318        (WebCore::FormData::deepCopy):
21319
213202013-03-26  Sheriff Bot  <webkit.review.bot@gmail.com>
21321
21322        Unreviewed, rolling out r146879.
21323        http://trac.webkit.org/changeset/146879
21324        https://bugs.webkit.org/show_bug.cgi?id=113312
21325
21326        Multiple layout test crashes in
21327        WebCore::RenderListItem::updateListMarkerNumbers (Requested by
21328        yurys on #webkit).
21329
21330        * dom/Node.cpp:
21331        * dom/Node.h:
21332        (Node):
21333        * dom/NodeTraversal.cpp:
21334        * dom/NodeTraversal.h:
21335        (ElementTraversal):
21336        (NodeTraversal):
21337        * html/HTMLLIElement.cpp:
21338        (WebCore::HTMLLIElement::attach):
21339        * html/HTMLOListElement.cpp:
21340        (WebCore::HTMLOListElement::updateItemValues):
21341        (WebCore::HTMLOListElement::recalculateItemCount):
21342        * rendering/RenderCounter.cpp:
21343        (WebCore::previousInPreOrder):
21344        (WebCore::previousSiblingOrParent):
21345        (WebCore::parentElement):
21346        (WebCore::nextInPreOrder):
21347        * rendering/RenderListItem.cpp:
21348        (WebCore::enclosingList):
21349        (WebCore::RenderListItem::nextListItem):
21350        (WebCore::previousListItem):
21351        (WebCore::RenderListItem::calcValue):
21352        (WebCore::RenderListItem::explicitValueChanged):
21353        (WebCore::previousOrNextItem):
21354        (WebCore::RenderListItem::updateListMarkerNumbers):
21355        * rendering/RenderListItem.h:
21356        (RenderListItem):
21357
213582013-03-26  Hajime Morrita  <morrita@google.com>
21359
21360        remoeveAllEventListeners() should be called to shadow trees
21361        https://bugs.webkit.org/show_bug.cgi?id=113037
21362
21363        Reviewed by Dimitri Glazkov.
21364
21365        Document::removeAllEventListeners() doesn't traverse shadow tree, but we should.
21366        This change override Element::removeAllEventListeners() so that it cleans its shadow trees up.
21367
21368        Test: fast/dom/shadow/shadow-tree-listener-clearance.html
21369
21370        * dom/Element.cpp:
21371        (WebCore::Element::removeAllEventListeners):
21372        (WebCore):
21373        * dom/Element.h:
21374        (Element):
21375        * dom/ElementShadow.cpp:
21376        (WebCore::ElementShadow::removeAllEventListeners): Added.
21377        (WebCore):
21378        * dom/ElementShadow.h:
21379        (ElementShadow):
21380
213812013-03-26  Andrei Bucur  <abucur@adobe.com>
21382
21383        Use DOM ordering for list counts
21384        https://bugs.webkit.org/show_bug.cgi?id=110352
21385
21386        Reviewed by Elliott Sprehn.
21387
21388        Currently the list items ordering is made by traversing the render tree. This gives bad results for:
21389        - list items flown inside regions because they are not rendered as descendants of their DOM list ancestors.
21390        - list items matched to insertion points inside a shadow tree. The insertion point may be a child of a
21391        list so the numbering gets broken.
21392
21393        To implement correct DOM ordering I've taken into account the fact that pseudo-elements can have display: list-item
21394        so they should be included when traversing the DOM tree. I've added helper methods on the NodeTraversal
21395        namespace that should allow easily traversing the tree including the pseudo-elements (e.g. firstChildWithPseudo
21396        for an element with pseudo-before will return the before PseudoElement). Using these helper methods I've implemented
21397        pre-order traversal methods aware of the pseudo-elements.
21398        An effect of this change is how the list items inside shadow tree update their counting. With the patch, if there's
21399        no <ol> or <ul> element on the ancestor chain of a <li> element to the shadow root, the list node will be considered the
21400        first parent of the <li> or the shadow root if there is no ancestor.
21401        The RenderListItem class now makes use of this new method of traversal, replacing the one based on the render tree.
21402        To simplify the CSS counters implementation, I've changed the traversal functions inside RenderCounter to also make use
21403        of this method. The CSS counters and the list items now have the same traversal algorithm.
21404
21405        In later patches I'll add tests that should cover the regions and shadow DOM use cases.
21406        Tests bug for shadow DOM: https://bugs.webkit.org/show_bug.cgi?id=113193
21407        Tests bug for regions: https://bugs.webkit.org/show_bug.cgi?id=103975
21408
21409        Tests: no new tests is this patch; added the correct expectations for fast/lists/positioned-count-crash.html
21410        and fast/dom/shadow/shadow-and-list-elements.html
21411
21412        * dom/Node.cpp:
21413        (WebCore::Node::pseudoAwarePreviousSibling):
21414        (WebCore):
21415        (WebCore::Node::pseudoAwareNextSibling):
21416        (WebCore::Node::pseudoAwareFirstChild):
21417        (WebCore::Node::pseudoAwareLastChild):
21418        * dom/Node.h:
21419        (Node):
21420        * dom/NodeTraversal.cpp:
21421        (WebCore):
21422        (WebCore::NodeTraversal::previousIncludingPseudo):
21423        (NodeTraversal):
21424        (WebCore::NodeTraversal::nextIncludingPseudo):
21425        (WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
21426        * dom/NodeTraversal.h:
21427        (ElementTraversal):
21428        (NodeTraversal):
21429        (WebCore::ElementTraversal::previousIncludingPseudo):
21430        (WebCore::ElementTraversal::nextIncludingPseudo):
21431        (WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
21432        (WebCore::ElementTraversal::pseudoAwarePreviousSibling):
21433        * html/HTMLLIElement.cpp:
21434        (WebCore::HTMLLIElement::attach):
21435        * html/HTMLOListElement.cpp:
21436        (WebCore::HTMLOListElement::updateItemValues):
21437        (WebCore::HTMLOListElement::recalculateItemCount):
21438        * rendering/RenderCounter.cpp:
21439        (WebCore::previousInPreOrder):
21440        (WebCore::previousSiblingOrParent):
21441        (WebCore::parentElement):
21442        (WebCore::nextInPreOrder):
21443        * rendering/RenderListItem.cpp:
21444        (WebCore):
21445        (WebCore::enclosingList):
21446        (WebCore::RenderListItem::nextListItem):
21447        (WebCore::previousListItem):
21448        (WebCore::RenderListItem::calcValue):
21449        (WebCore::RenderListItem::explicitValueChanged):
21450        (WebCore::previousOrNextItem):
21451        (WebCore::RenderListItem::updateListMarkerNumbers):
21452        * rendering/RenderListItem.h:
21453        (RenderListItem):
21454
214552013-03-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
21456
21457        [Qt] Poor rounding in GraphicsContext::drawLineForText
21458        https://bugs.webkit.org/show_bug.cgi?id=113301
21459
21460        Reviewed by Jocelyn Turcotte.
21461
21462        Round the position of the line decoration, so lines on subpixel
21463        coordinates are not always rounded up.
21464
21465        * platform/graphics/qt/GraphicsContextQt.cpp:
21466        (WebCore::GraphicsContext::drawLineForText):
21467
214682013-03-26  Vsevolod Vlasov  <vsevik@chromium.org>
21469
21470        Web Inspector: Decorations in several consecutive lines are not moved correctly in DTE.
21471        https://bugs.webkit.org/show_bug.cgi?id=113296
21472
21473        Reviewed by Pavel Feldman.
21474
21475        Separated removing and adding decorations so that moved decorations are not removed when next line is processed.
21476
21477        * inspector/front-end/DefaultTextEditor.js:
21478        (WebInspector.TextEditorGutterPanel.prototype.textChanged):
21479
214802013-03-26  Yury Semikhatsky  <yurys@chromium.org>
21481
21482        Remove references to non-chromium entries from WebCore.gypi (part 2)
21483        https://bugs.webkit.org/show_bug.cgi?id=103124
21484
21485        Reviewed by Pavel Feldman.
21486
21487        * WebCore.gypi: removed unused references to gtk, cf, win and mac
21488
214892013-03-26  Sheriff Bot  <webkit.review.bot@gmail.com>
21490
21491        Unreviewed, rolling out r146767.
21492        http://trac.webkit.org/changeset/146767
21493        https://bugs.webkit.org/show_bug.cgi?id=113295
21494
21495        Rolling out until nicer fonts / sizes are chosen (Requested by
21496        pfeldman on #webkit).
21497
21498        * inspector/front-end/dataGrid.css:
21499        (.data-grid table):
21500        (.data-grid td):
21501        * inspector/front-end/inspector.css:
21502        (.toolbar-label):
21503        (body.show-toolbar-icons .toolbar-label):
21504        (.console-message .bubble):
21505        (li .status .bubble):
21506        (.source-frame-breakpoint-message):
21507        (.soft-context-menu):
21508        (.drawer-header-close-button):
21509        * inspector/front-end/inspectorCommon.css:
21510        (body):
21511        * inspector/front-end/networkLogView.css:
21512        (.network-log-grid.data-grid td):
21513        (.network-log-grid.data-grid.small td):
21514        * inspector/front-end/tabbedPane.css:
21515        (.tabbed-pane-header-tab):
21516        (.tabbed-pane-header-tab-close-button):
21517        * inspector/front-end/timelinePanel.css:
21518        (.timeline-tree-item .count):
21519        (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
21520        (.memory-counter-sidebar-info):
21521        (.memory-counter-value):
21522
215232013-03-26  Arpita Bahuguna  <a.bah@samsung.com>
21524
21525        Unable to insert a paragraph in between some text whose previous sibling is a non-editable block.
21526        https://bugs.webkit.org/show_bug.cgi?id=113007
21527
21528        Reviewed by Ryosuke Niwa.
21529
21530        Unable to insert a line break in between a text that follows a
21531        non-editable block but is itself contained within an editable
21532        block.
21533
21534        While comparing the positions from the start block till the
21535        insertion position, we should ignore the nodes that do not
21536        generate a visiblePosition for the position before the node.
21537        This ultimately results in an assert within comparePositions().
21538
21539        For this case, the firstChild of the start block is a text
21540        node with no renderer which would thus not generate a candidate
21541        position for itself.
21542        There is also no candidate previous to it, and since
21543        the position after it lies within a different editable element (root),
21544        no candidate after it as well.
21545        Such a point will thus return a null visiblePosition.
21546
21547        Test: editing/inserting/insert-paragraph-between-text.html
21548
21549        * editing/InsertParagraphSeparatorCommand.cpp:
21550        (WebCore::InsertParagraphSeparatorCommand::doApply):
21551        Added a check to verify the generated visiblePosition (for the
21552        position before the node) prior to carrying out a comparison with
21553        the insertion point.
21554
215552013-03-26  Ilya Tikhonovsky  <loislo@chromium.org>
21556
21557        Web Inspector: OverviewGrid. Dragged window may change its width due to accumulating rounding error.
21558        https://bugs.webkit.org/show_bug.cgi?id=113138
21559
21560        Reviewed by Pavel Feldman.
21561
21562        The old version had problem with rounding because it recalculates the window size on each event.
21563        The new version just calculates the dragging delta and moves the window
21564        to the new position based on the initial values and the delta.
21565
21566        * inspector/front-end/OverviewGrid.js:
21567        (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
21568        (WebInspector.OverviewGrid.Window.prototype._windowDragging):
21569        (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
21570
215712013-03-26  Kent Tamura  <tkent@chromium.org>
21572
21573        Rename HTMLInputElement::isIndeterminate to Element::shouldAppearIndeterminate
21574        https://bugs.webkit.org/show_bug.cgi?id=113264
21575
21576        Reviewed by Kentaro Hara.
21577
21578        HTMLInputElement had indeterminate() and isIndeterminate(). It's very
21579        confusing.
21580
21581        Because indeterminate is a public DOM function and isIndeterminate is
21582        for CSS and rendering, we rename isIndetermiante to
21583        shouldAppearIndeterminate. Also, HTMLProgressElement, which support
21584        :indeterminate pseudo class, should follow it. We add
21585        shouldAppearIndeterminate to Element.
21586
21587        No new tests. Just a refactoring.
21588
21589        * dom/Element.cpp:
21590        (WebCore::Element::shouldAppearIndeterminate): Added. Returns false.
21591        * dom/Element.h:
21592        (Element): Declare shouldAppearIndeterminate.
21593        * html/HTMLInputElement.cpp:
21594        (WebCore::HTMLInputElement::shouldAppearIndeterminate):
21595        Renamed from isIndeterminate.
21596        * html/HTMLInputElement.h:
21597        (HTMLInputElement): Rename isIndeterminate to shouldAppearIndeterminate,
21598        and overrides Element::shouldAppearIndeterminate.
21599        * html/HTMLProgressElement.cpp:
21600        (WebCore::HTMLProgressElement::shouldAppearIndeterminate): Added.
21601        * html/HTMLProgressElement.h: Add shouldAppearIndeterminate.
21602
21603        * accessibility/AccessibilityNodeObject.cpp:
21604        (WebCore::AccessibilityNodeObject::isIndeterminate):
21605        Use shouldAppearIndeterminate.
21606        * css/SelectorChecker.cpp:
21607        (WebCore::SelectorChecker::checkOne): Ditto.
21608        * css/StyleResolver.cpp:
21609        (WebCore::StyleResolver::canShareStyleWithControl): Ditto.
21610        * rendering/RenderTheme.cpp:
21611        (WebCore::RenderTheme::isIndeterminate): Ditto.
21612
216132013-03-26  Pan Deng  <pan.deng@intel.com>
21614
21615        Web Inspector: [FlameChart] Make function bar highlighted consistent with cursor.
21616        https://bugs.webkit.org/show_bug.cgi?id=113266.
21617
21618        Reviewed by Vsevolod Vlasov.
21619
21620        In Flamechart, the highlighted function bar is not consistent with cursor sometimes, 
21621        reason is that time range that converted from cursor position is truncated by floor. 
21622        Actually float value is expected to compare with function startTime and duration.
21623
21624        No new tests.
21625
21626        * inspector/front-end/FlameChart.js:
21627        (WebInspector.FlameChart.prototype._coordinatesToNodeIndex): Remove floor
21628
216292013-03-26  Mihnea Ovidenie  <mihnea@adobe.com>
21630
21631        [CSSRegions]: Crash accessing offsetParent for contentNodes inside a flow thread
21632        https://bugs.webkit.org/show_bug.cgi?id=112730
21633
21634        Reviewed by Levi Weintraub.
21635
21636        When computing the offsetParent for an element inside a flow thread, do not
21637        let the algorithm process past the flow thread boundaries, until we figure out
21638        the proper behavior. When reaching the flow thread, offsetParent will return 0,
21639        thus preventing the assert while calling toElement inside Element::offsetParent.
21640
21641        The attached test sets the ground work and will be changed to match the right behavior.
21642        For now, it makes sure we do not crash or return HTMLDocument as offsetParent for
21643        elements inside the flow thread.
21644
21645        Test: fast/regions/offsetParent-in-flow-thread.html
21646
21647        * rendering/RenderObject.cpp:
21648        (WebCore::RenderObject::offsetParent):
21649
216502013-03-26  Dominik Röttsches  <dominik.rottsches@intel.com>
21651
21652        Remove HarfBuzzShaperBase
21653        https://bugs.webkit.org/show_bug.cgi?id=112087
21654
21655        Reviewed by Martin Robinson.
21656
21657        Folding HarfBuzzShaperBase into HarfBuzzShaper since
21658        there is no harfbuzz-old vs. harfbuzz-ng distinction anymore.
21659
21660        No new tests, no change in behavior.
21661
21662        * GNUmakefile.list.am: Removing HarfBuzzShaperBase.*
21663        * PlatformEfl.cmake: Removing HarfBuzzShaperBase.*
21664        * WebCore.gypi: Removing HarfBuzzShaperBase.*
21665        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Folding base class members and methods into HarfBuzzShaper.
21666        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
21667        (WebCore::normalizeSpacesAndMirrorChars):
21668        (WebCore):
21669        (WebCore::HarfBuzzShaper::setNormalizedBuffer):
21670        (WebCore::HarfBuzzShaper::isWordEnd):
21671        (WebCore::HarfBuzzShaper::determineWordBreakSpacing):
21672        (WebCore::HarfBuzzShaper::setPadding):
21673        * platform/graphics/harfbuzz/HarfBuzzShaper.h: Folding base class members and methods into HarfBuzzShaper.
21674        (HarfBuzzShaper):
21675        (WebCore::HarfBuzzShaper::isCodepointSpace):
21676        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp: Removed.
21677        * platform/graphics/harfbuzz/HarfBuzzShaperBase.h: Removed.
21678
216792013-03-22  Hajime Morrita  <morrita@google.com>
21680
21681        Listening touch events on ShadowRoot can crash.
21682        https://bugs.webkit.org/show_bug.cgi?id=113035
21683
21684        Reviewed by Kentaro Hara.
21685
21686        TreeScope destructor clears a document reference on ShadowRoot but
21687        destructors of ContainerNode and Node assumed it being available
21688        and tried to access it for some cleanup purposes.
21689
21690        This change extracts such cleanup to Node::willBeDeletedFrom() and
21691        calls it from ShadowRoot dtor before the document reference gets cleared.
21692
21693        Test: fast/dom/shadow/shadow-root-touch-listener-crash.html
21694
21695        * dom/ContainerNode.cpp:
21696        (WebCore::ContainerNode::~ContainerNode): Adopted willBeDeletedFrom()
21697        * dom/Node.cpp:
21698        (WebCore::Node::~Node): Adopted willBeDeletedFrom()
21699        (WebCore::Node::willBeDeletedFrom): Extracted from Node and ContainerNode
21700        (WebCore):
21701        * dom/Node.h:
21702        * dom/ShadowRoot.cpp:
21703        (WebCore::ShadowRoot::~ShadowRoot): Adopted willBeDeletedFrom()
21704
217052013-03-25  Hajime Morrita  <morrita@google.com>
21706
21707        Custom Elements Refactoring: The name V8CustomElement is confusing.
21708        https://bugs.webkit.org/show_bug.cgi?id=113165
21709
21710        Reviewed by Kent Tamura.
21711
21712        This change moves functions from V8CustomElement to CustomElementHelpers and
21713        removes V8CustomElement. V8CustomElement is just a heritage of old design
21714        and no longer makes sense.
21715
21716        No new tests. No behavior change.
21717
21718        * WebCore.gypi:
21719        * bindings/v8/CustomElementHelpers.cpp:
21720        (WebCore::CustomElementHelpers::createWrapper):
21721        (WebCore):
21722        * bindings/v8/CustomElementHelpers.h:
21723        (CustomElementHelpers):
21724        (WebCore::CustomElementHelpers::wrap):
21725        (WebCore):
21726        (WebCore::CustomElementHelpers::constructorOf):
21727        * bindings/v8/V8CustomElement.cpp: Removed.
21728        * bindings/v8/V8CustomElement.h: Removed.
21729        * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
21730        (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
21731        * dom/make_names.pl:
21732        (printWrapperFactoryCppFile):
21733
217342013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
21735
21736        Web Inspector: [Timeline] Records sidebar is clipped.
21737        https://bugs.webkit.org/show_bug.cgi?id=113177
21738
21739        Reviewed by Pavel Feldman.
21740
21741        Analysis: depending on CSS injection order sidebar rule that overwrites
21742        "bottom" property may win.
21743
21744        Fix: make timeline-specific rule "important".
21745
21746        * inspector/front-end/timelinePanel.css:
21747        (.timeline .sidebar): Make "bottom" value "important".
21748
217492013-03-25  Kent Tamura  <tkent@chromium.org>
21750
21751        Rename ENABLE_INPUT_TYPE_DATETIME
21752        https://bugs.webkit.org/show_bug.cgi?id=113254
21753
21754        Reviewed by Kentaro Hara.
21755
21756        Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
21757        Actually I'd like to remove the code, but we shouldn't remove it yet
21758        because we shipped products with it on some platforms.
21759
21760        * Configurations/FeatureDefines.xcconfig:
21761        * bindings/generic/RuntimeEnabledFeatures.cpp:
21762        (WebCore):
21763        * bindings/generic/RuntimeEnabledFeatures.h:
21764        (RuntimeEnabledFeatures):
21765        * css/html.css:
21766        * html/DateTimeInputType.cpp:
21767        * html/DateTimeInputType.h:
21768        * html/InputType.cpp:
21769        (WebCore::createInputTypeFactoryMap):
21770
217712013-03-25  Timothy Hatcher  <timothy@apple.com>
21772
21773        Make the Web Inspector console work in strict mode with JavaScriptCore.
21774
21775        https://webkit.org/b/65829
21776        rdar://problem/11271238
21777
21778        Reviewed by Oliver Hunt.
21779
21780        * bindings/js/JSInjectedScriptHostCustom.cpp:
21781        (WebCore::JSInjectedScriptHost::evaluate):
21782        Return the evalFunction directly.
21783
21784        * inspector/InjectedScriptHost.h:
21785        (WebCore::InjectedScriptHost::evaluateReturnsEvalFunction):
21786        Added. Return true on JSC and false on V8.
21787
21788        * inspector/InjectedScriptHost.idl:
21789        Added evaluateReturnsEvalFunction and change evaluate to an attribute on JSC.
21790
21791        * inspector/InjectedScriptSource.js:
21792        (InjectedScript.prototype._evaluateOn): Change from using 'with' statements to creating
21793        a closure that evaluates the expression. The command line APIs are passed as parameters
21794        to the closure so they are in scope but not injected. This allows the code evaluated in
21795        the console to stay in strict mode (if is was already set), or to get strict mode by
21796        prefixing expressions with 'use strict';.
21797
217982013-03-25  Tony Chang  <tony@chromium.org>
21799
21800        Image alt text not included in plain-text version when copying
21801        https://bugs.webkit.org/show_bug.cgi?id=11200
21802
21803        Reviewed by Ryosuke Niwa.
21804
21805        Add a setting to enable copying image alt text to the clipboard and drag and drop pasteboard.
21806        This setting is disabled by default, so each port can enable if they want to match IE10 and
21807        Firefox's behavior.
21808
21809        Test: editing/pasteboard/copy-image-with-alt-text.html
21810
21811        * editing/Editor.cpp:
21812        (WebCore::Editor::cut): Explicitly ask that the selection on the pasteboard as being for the clipboard.
21813        (WebCore::Editor::copy): Explicitly ask that the selection on the pasteboard as being for the clipboard.
21814        (WebCore::Editor::selectedText): Add a private version of selectedText() that can choose between having image alt text or not.
21815        (WebCore::Editor::selectedTextForClipboard): Ask for image alt text if the setting is enabled.
21816        * editing/Editor.h:
21817        * editing/TextIterator.cpp:
21818        (WebCore::TextIterator::TextIterator): Add a bool to keep track of whether or not to emit image alt text.
21819        (WebCore::TextIterator::handleReplacedElement): If there's alt text, point the iterator to it.
21820        * editing/TextIterator.h:
21821        (TextIterator):
21822        * editing/mac/EditorMac.mm:
21823        (WebCore::Editor::takeFindStringFromSelection): Use the same text as on the clipboard.
21824        (WebCore::Editor::writeSelectionToPasteboard): Don't include image alt text since this is
21825        used by Services.
21826        (WebCore::Editor::stringSelectionForPasteboard): Don't include image alt text since this is
21827        used by Services.
21828        * page/DragController.cpp:
21829        (WebCore::DragController::startDrag): Use image alt text (matches Firefox).
21830        * page/Settings.in: Add a setting that disables image alt text by default.
21831        * platform/Pasteboard.h:
21832        * platform/blackberry/PasteboardBlackBerry.cpp:
21833        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21834        * platform/chromium/ClipboardChromium.cpp:
21835        (WebCore::ClipboardChromium::writeRange): Use clipboard text when writing ranges (used by d&d).
21836        * platform/chromium/PasteboardChromium.cpp:
21837        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21838        * platform/efl/PasteboardEfl.cpp:
21839        (WebCore::Pasteboard::writeSelection): Update function param.
21840        * platform/gtk/ClipboardGtk.cpp:
21841        (WebCore::ClipboardGtk::writeRange): Use clipboard text when writing ranges (used by d&d).
21842        * platform/gtk/PasteboardGtk.cpp:
21843        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21844        * platform/mac/ClipboardMac.mm:
21845        (WebCore::ClipboardMac::writeRange): Use clipboard text when writing ranges (used by d&d).
21846        * platform/mac/PasteboardMac.mm:
21847        (WebCore::Pasteboard::getStringSelection): Use ShouldSerializeSelectedTextForClipboard to determine whether the selected
21848        text is for the clipboard or not.
21849        (WebCore::Pasteboard::writeSelectionForTypes): Pass ShouldSerializeSelectedTextForClipboard through.
21850        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21851        * platform/qt/ClipboardQt.cpp:
21852        (WebCore::ClipboardQt::writeRange): Use clipboard text when writing ranges (used by d&d).
21853        * platform/qt/PasteboardQt.cpp:
21854        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21855        * platform/win/ClipboardWin.cpp:
21856        (WebCore::ClipboardWin::writeRange): Use clipboard text when writing ranges (used by d&d).
21857        * platform/win/PasteboardWin.cpp:
21858        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21859        * platform/wince/PasteboardWinCE.cpp:
21860        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21861        * platform/wx/PasteboardWx.cpp:
21862        (WebCore::Pasteboard::writeSelection): Add ShouldSerializeSelectedTextForClipboard parameter.
21863        * rendering/RenderImage.h:
21864        (WebCore::RenderImage::altText): Add a getter for the alt text.
21865
218662013-03-25  Dean Jackson  <dino@apple.com>
21867
21868        Remove autostart hashing code from WebCore
21869        https://bugs.webkit.org/show_bug.cgi?id=113242
21870
21871        Reviewed by Tim Horton.
21872
21873        Remove PlugInOriginHash and all the related build entries.
21874
21875        * CMakeLists.txt:
21876        * GNUmakefile.list.am:
21877        * Target.pri:
21878        * WebCore.gypi:
21879        * WebCore.vcproj/WebCore.vcproj:
21880        * WebCore.vcxproj/WebCore.vcxproj:
21881        * WebCore.vcxproj/WebCore.vcxproj.filters:
21882        * WebCore.xcodeproj/project.pbxproj:
21883        * html/HTMLPlugInImageElement.cpp:
21884        * plugins/PlugInOriginHash.cpp: Removed.
21885        * plugins/PlugInOriginHash.h: Removed.
21886
218872013-03-25  Roger Fong  <roger_fong@apple.com>
21888
21889        Unreviewed. Wrong place to enable RuntimeEnabledFeature for Windows.
21890
21891        * bindings/generic/RuntimeEnabledFeatures.cpp:
21892        (WebCore):
21893
218942013-03-25  James Robinson  <jamesr@chromium.org>
21895
21896        [chromium] Support GraphicsLayer::setContentsToSolidColor
21897        https://bugs.webkit.org/show_bug.cgi?id=104396
21898
21899        Reviewed by Adrienne Walker.
21900
21901        This enables and implements the GraphicsLayer::setContentsToSolidColor
21902        path for Chromium.
21903
21904        Tested by reftests in compositing/background-color/ and several other
21905        compositing/ tests.
21906
21907        * platform/graphics/GraphicsLayer.h:
21908        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
21909        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21910        (WebCore::GraphicsLayerChromium::setContentsToSolidColor):
21911        (WebCore):
21912        * platform/graphics/chromium/GraphicsLayerChromium.h:
21913        (WebKit):
21914        (GraphicsLayerChromium):
21915
219162013-03-25  Victor Carbune  <vcarbune@chromium.org>
21917
21918        TextTrack Extension for WebVTT Regions
21919        https://bugs.webkit.org/show_bug.cgi?id=109820
21920
21921        Reviewed by Eric Carlson.
21922
21923        Implemented the TextTrackRegionList and extended TextTrack with
21924        methods required for proper interaction with TextTrackRegion objects.
21925
21926        Test: media/track/regions-webvtt/text-track-region-list.html
21927
21928        * WebCore.gypi: Added files for proper building of TextTrackRegionList.
21929        * html/track/TextTrack.cpp:
21930        (WebCore::TextTrack::TextTrack):
21931        (WebCore):
21932        (WebCore::TextTrack::ensureTextTrackRegionList): Method for creating a
21933        TextTrackRegionList associated with the current track, if it does exist
21934        already.
21935        (WebCore::TextTrack::regions): Getter for the regions object.
21936        (WebCore::TextTrack::addRegion): Method for adding a region.
21937        (WebCore::TextTrack::removeRegion): Method for removing a region.
21938        * html/track/TextTrack.h:
21939        (WebCore):
21940        (TextTrack):
21941        * html/track/TextTrack.idl: Added methods specific for region handling.
21942        * html/track/TextTrackRegion.cpp:
21943        (WebCore::TextTrackRegion::TextTrackRegion): Initialized the track member variable.
21944        (WebCore::TextTrackRegion::setTrack): Added internal setter for the track attribute.
21945        (WebCore):
21946        (WebCore::TextTrackRegion::updateParametersFromRegion): Method to copy the parameters
21947        from a different region object.
21948        * html/track/TextTrackRegion.h: Added track member variable and copy method.
21949        (WebCore::TextTrackRegion::track): Getter retrieves now the member variable.
21950        (TextTrackRegion):
21951        * html/track/TextTrackRegionList.cpp: Implemented methods required by the IDL.
21952        (WebCore):
21953        (WebCore::TextTrackRegionList::TextTrackRegionList):
21954        (WebCore::TextTrackRegionList::length):
21955        (WebCore::TextTrackRegionList::item):
21956        (WebCore::TextTrackRegionList::getRegionById):
21957        (WebCore::TextTrackRegionList::add):
21958        (WebCore::TextTrackRegionList::remove):
21959        (WebCore::TextTrackRegionList::clear):
21960        * html/track/TextTrackRegionList.h:
21961        (WebCore):
21962        (TextTrackRegionList):
21963        (WebCore::TextTrackRegionList::create):
21964        (WebCore::TextTrackRegionList::~TextTrackRegionList):
21965        * html/track/TextTrackRegionList.idl: IDL defined by the specification.
21966
219672013-03-25  Dean Jackson  <dino@apple.com>
21968
21969        Cleanup plugin snapshotting autostart decision making
21970        https://bugs.webkit.org/show_bug.cgi?id=113231
21971
21972        Reviewed by Tim Horton.
21973
21974        Move the code that creates a hash of plugin origin info
21975        out of WebCore. All WebCore needs to do now is simply ask its
21976        host layer whether or not a tuple of (pluginOrigin, pageOrigin, mimeType)
21977        should autostart or not.
21978
21979        As a drive-by, the code in subframeLoaderWillCreatePlugIn was not quite
21980        restarting properly when the displayState was Restarting or
21981        RestartingWithPendingMouseClick. It still worked most of the time, but usually
21982        because the code ran soon after a mouse click. Now it should be explicit and
21983        also allowed us to be more clear about snapshotting at the end of the method.
21984
21985        * html/HTMLPlugInElement.h: No more pluginOriginHash().
21986        * html/HTMLPlugInImageElement.cpp:
21987        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin): Change signature to accept the tuple
21988            described above, and compare strings rather than hashes.
21989        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Tell host layer the origin
21990            info rather than hash info.
21991        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Remember the url that
21992            the plugin was loaded from. Make some of the logging messages more clear. Test for
21993            plugin and page origin rather than hash.
21994        * html/HTMLPlugInImageElement.h:
21995        (WebCore::HTMLPlugInImageElement::loadedUrl): New loadedURL member function.
21996        * page/PlugInClient.h:
21997        (PlugInClient): Change signature of virtual class to accept origin and mimeType info
21998            rather than hash.
21999
220002013-03-25  Sheriff Bot  <webkit.review.bot@gmail.com>
22001
22002        Unreviewed, rolling out r146793.
22003        http://trac.webkit.org/changeset/146793
22004        https://bugs.webkit.org/show_bug.cgi?id=113248
22005
22006        Fix did not work (Requested by rfong on #webkit).
22007
22008        * bindings/scripts/preprocessor.pm:
22009        (applyPreprocessor):
22010
220112013-03-25  Brandon Jones  <bajones@google.com>
22012
22013        WEBGL_compressed_texture_pvrtc needs implementation
22014        https://bugs.webkit.org/show_bug.cgi?id=110497
22015
22016        Reviewed by Kenneth Russell.
22017
22018        Test: webgl/conformance/extensions/webgl-compressed-texture-pvrtc.html
22019
22020        Exposes the WEBGL_compressed_texture_pvrtc extension, but is unverified since no desktop hardware supports
22021        the format that I am aware of. Should enable mobile ports to expose the format, however.
22022
22023        * CMakeLists.txt:
22024        * DerivedSources.make:
22025        * DerivedSources.pri:
22026        * GNUmakefile.list.am:
22027        * Target.pri:
22028        * WebCore.gypi:
22029        * WebCore.xcodeproj/project.pbxproj:
22030        * bindings/js/JSWebGLRenderingContextCustom.cpp:
22031        (WebCore::toJS):
22032        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
22033        (WebCore::toV8Object):
22034        * html/canvas/WebGLCompressedTexturePVRTC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
22035        (WebCore):
22036        (WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):
22037        (WebCore::WebGLCompressedTexturePVRTC::~WebGLCompressedTexturePVRTC):
22038        (WebCore::WebGLCompressedTexturePVRTC::getName):
22039        (WebCore::WebGLCompressedTexturePVRTC::create):
22040        (WebCore::WebGLCompressedTexturePVRTC::supported):
22041        * html/canvas/WebGLCompressedTexturePVRTC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
22042        (WebCore):
22043        (WebGLCompressedTexturePVRTC):
22044        * html/canvas/WebGLCompressedTexturePVRTC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
22045        * html/canvas/WebGLExtension.h:
22046        * html/canvas/WebGLRenderingContext.cpp:
22047        (WebCore):
22048        (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
22049        (WebCore::WebGLRenderingContext::getExtension):
22050        (WebCore::WebGLRenderingContext::getSupportedExtensions):
22051        (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
22052        * html/canvas/WebGLRenderingContext.h:
22053        (WebCore):
22054        (WebGLRenderingContext):
22055
220562013-03-25  Roger Fong  <roger_fong@apple.com>
22057
22058        Enable CSS_REGIONS and CSS_EXCLUSIONS.
22059        https://bugs.webkit.org/show_bug.cgi?id=87519
22060
22061        Reviewed by Timothy Horton.
22062
22063        * bindings/generic/RuntimeEnabledFeatures.cpp:
22064        (WebCore):
22065
220662013-03-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
22067
22068        Remove unused code from Frame class destructor
22069        https://bugs.webkit.org/show_bug.cgi?id=113181
22070
22071        Reviewed by Alexey Proskuryakov.
22072
22073        No new tests. No new functionality.
22074
22075        * page/Frame.cpp:
22076        (WebCore::Frame::~Frame):
22077
22078            Removed the code which could never have been executed
22079            as m_view had been set to '0'.
22080
220812013-03-25  Eric Seidel  <eric@webkit.org>
22082
22083        Incorrect parsing due to hash collision
22084        https://bugs.webkit.org/show_bug.cgi?id=113235
22085
22086        Reviewed by Adam Barth.
22087
22088        Test: fast/parser/tag-hash-collision.html
22089
22090        * html/parser/HTMLIdentifier.cpp:
22091        (WebCore::HTMLIdentifier::findIndex):
22092
220932013-03-25  Adenilson Cavalcanti  <cavalcantii@gmail.com>
22094
22095        Compile without SVG will fail
22096        https://bugs.webkit.org/show_bug.cgi?id=113234
22097
22098        Reviewed by Timothy Hatcher.
22099
22100        Only make the cast to SVGStyleElement if we have SVG support built.
22101
22102        * inspector/InspectorCSSAgent.cpp:
22103        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
22104
221052013-03-25  Patrick Gansterer  <paroga@webkit.org>
22106
22107        Enable STORE_FONT_CUSTOM_PLATFORM_DATA for all platforms
22108        https://bugs.webkit.org/show_bug.cgi?id=108438
22109
22110        Reviewed by Andreas Kling.
22111
22112        Remove the conditional code so it is turned on for all platforms.
22113
22114        * loader/cache/CachedFont.cpp:
22115        (WebCore::CachedFont::~CachedFont):
22116        (WebCore::CachedFont::ensureCustomFontData):
22117        (WebCore::CachedFont::platformDataFromCustomData):
22118        (WebCore::CachedFont::allClientsRemoved):
22119        (WebCore::CachedFont::reportMemoryUsage):
22120
221212013-03-25  Eric Carlson  <eric.carlson@apple.com>
22122
22123        REGRESSION(r146380): media/track/track-user-preferences.html
22124        https://bugs.webkit.org/show_bug.cgi?id=113083
22125
22126        Reviewed by Jer Noble.
22127
22128        Ignore track change notifications triggered by automatic track selection so the 
22129        configuration is not changed.
22130
22131        No new tests, this fixes an existing test.
22132
22133        * html/HTMLMediaElement.cpp:
22134        (WebCore::HTMLMediaElement::configureTextTrackGroup): Clear m_processingPreferenceChange after all
22135            track configuration is finished.
22136        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Do nothing if m_processingPreferenceChange
22137            is true.
22138
221392013-03-25  Martin Robinson  <mrobinson@igalia.com>
22140
22141        [GTK] [gyp] Build the final piece of WebCore
22142        https://bugs.webkit.org/show_bug.cgi?id=113216
22143
22144        Reviewed by Nico Weber.
22145
22146        * WebCore.gyp/WebCoreGTK.gyp: Add the rest of the WebCore source files to the WebCore build target.
22147
221482013-03-25  Martin Robinson  <mrobinson@igalia.com>
22149
22150        [GTK] [gyp] Adding support for building WebCore rendering
22151        https://bugs.webkit.org/show_bug.cgi?id=113213
22152
22153        Reviewed by Gustavo Noronha Silva.
22154
22155        * WebCore.gyp/WebCoreGTK.gyp: Build the rendering directory into a shared library.
22156
221572013-03-25  Tony Chang  <tony@chromium.org>
22158
22159        Remove TextIterator argumentless constructor
22160        https://bugs.webkit.org/show_bug.cgi?id=113226
22161
22162        Reviewed by Ryosuke Niwa.
22163
22164        The TextIterator argumentless constructors are never used and wouldn't be useful
22165        since you can't specify a range.
22166
22167        No new tests, removing dead code. There should be no behavior change.
22168
22169        * editing/TextIterator.cpp: Remove constructors.
22170        * editing/TextIterator.h:
22171        (TextIterator):
22172        (SimplifiedBackwardsTextIterator):
22173        (CharacterIterator):
22174        (BackwardsCharacterIterator):
22175        (WordAwareIterator):
22176
221772013-03-25  Brandon Jones  <bajones@chromium.org>
22178
22179        Enabled canvas.getContext("webgl") on Desktop Chrome
22180        https://bugs.webkit.org/show_bug.cgi?id=113079
22181
22182        Reviewed by Dean Jackson.
22183
22184        Test: fast/canvas/webgl/webgl-unprefixed-context-id.html
22185
22186        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
22187        (WebCore::V8HTMLCanvasElement::getContextMethodCustom):
22188        * html/HTMLCanvasElement.cpp:
22189        (WebCore::HTMLCanvasElement::getContext):
22190
221912013-03-25  Roger Fong  <roger_fong@apple.com>
22192
22193        Unreviewed. Remove some suspicious looking code in an attempt to fix EWS bots.
22194
22195        * bindings/scripts/preprocessor.pm:
22196        (applyPreprocessor):
22197
221982013-03-25  Martin Robinson  <mrobinson@igalia.com>
22199
22200        [GTK] [gyp] Add support for building the platform directory
22201        https://bugs.webkit.org/show_bug.cgi?id=113212
22202
22203        Reviewed by Nico Weber.
22204
22205        * WebCore.gyp/WebCoreGTK.gyp: Add support for building the platform directory including
22206        two libraries, one for platform and one for geometry files. This follows the approach
22207        of Chromium.
22208
222092013-03-25  Jochen Eisinger  <jochen@chromium.org>
22210
22211        Swap both the error and change event queue before processing fullscreen events
22212        https://bugs.webkit.org/show_bug.cgi?id=113194
22213
22214        Reviewed by Jer Noble.
22215
22216        While processing the change events, not only new change events but
22217        also new error events might get generated. However, for the timer, we
22218        should only process preexisting events.
22219
22220        This is covered by fullscreen/full-screen-restrictions.html which times
22221        out depending on the delay between requesting fullscreen and granting
22222        fullscreen.
22223
22224        * dom/Document.cpp:
22225        (WebCore::Document::fullScreenChangeDelayTimerFired):
22226
222272013-03-25  Marja Hölttä  <marja@chromium.org>
22228
22229        [V8] Generate specialized callbacks for the main world
22230        https://bugs.webkit.org/show_bug.cgi?id=112430
22231
22232        Reviewed by Kentaro Hara.
22233
22234        The new specialized bindings will be faster, because they don't need to
22235        do the "main world, isolated world or a worker" check, but can right
22236        away assume that we're in the main world.
22237
22238        This patch generates main world bindings for getters and setters for a
22239        small amount of frequently used functions / functions used by Dromaeo.
22240
22241        Added tests to TestObj.idl and updated bindings tests.
22242
22243        * bindings/scripts/CodeGeneratorV8.pm:
22244        (GenerateOverloadedFunction):
22245        (GenerateFunctionCallback):
22246        (GenerateFunction):
22247        (GenerateParametersCheck):
22248        (GenerateSingleConstructorCallback):
22249        (GenerateNonStandardFunction):
22250        (GenerateImplementation):
22251        (GenerateFunctionCallString):
22252        * bindings/scripts/test/TestObj.idl:
22253        * bindings/scripts/test/V8/V8Float64Array.cpp:
22254        (WebCore):
22255        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
22256        (WebCore):
22257        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
22258        (WebCore):
22259        * bindings/scripts/test/V8/V8TestInterface.cpp:
22260        (WebCore):
22261        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
22262        (WebCore):
22263        * bindings/scripts/test/V8/V8TestObj.cpp:
22264        (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetter):
22265        (TestObjV8Internal):
22266        (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterCallback):
22267        (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterForMainWorld):
22268        (WebCore::TestObjV8Internal::perWorldReadOnlyAttributeAttrGetterCallbackForMainWorld):
22269        (WebCore::TestObjV8Internal::perWorldAttributeAttrGetter):
22270        (WebCore::TestObjV8Internal::perWorldAttributeAttrGetterCallback):
22271        (WebCore::TestObjV8Internal::perWorldAttributeAttrGetterForMainWorld):
22272        (WebCore::TestObjV8Internal::perWorldAttributeAttrGetterCallbackForMainWorld):
22273        (WebCore::TestObjV8Internal::perWorldAttributeAttrSetter):
22274        (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterCallback):
22275        (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterForMainWorld):
22276        (WebCore::TestObjV8Internal::perWorldAttributeAttrSetterCallbackForMainWorld):
22277        (WebCore::TestObjV8Internal::perWorldMethodMethod):
22278        (WebCore::TestObjV8Internal::perWorldMethodMethodForMainWorld):
22279        (WebCore::TestObjV8Internal::perWorldMethodMethodCallback):
22280        (WebCore::TestObjV8Internal::perWorldMethodMethodCallbackForMainWorld):
22281        (WebCore::TestObjV8Internal::overloadedPerWorldMethod1Method):
22282        (WebCore::TestObjV8Internal::overloadedPerWorldMethod1MethodForMainWorld):
22283        (WebCore::TestObjV8Internal::overloadedPerWorldMethod2Method):
22284        (WebCore::TestObjV8Internal::overloadedPerWorldMethod2MethodForMainWorld):
22285        (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethod):
22286        (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodForMainWorld):
22287        (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodCallback):
22288        (WebCore::TestObjV8Internal::overloadedPerWorldMethodMethodCallbackForMainWorld):
22289        (WebCore):
22290        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
22291        (WebCore):
22292        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
22293        (WebCore):
22294        * bindings/v8/V8DOMConfiguration.cpp:
22295        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
22296        (WebCore::V8DOMConfiguration::configureTemplate):
22297        * bindings/v8/V8DOMConfiguration.h:
22298        (BatchedMethod):
22299        (V8DOMConfiguration):
22300        * dom/Document.idl:
22301        * dom/Element.idl:
22302        * dom/Node.idl:
22303        * page/DOMWindow.idl:
22304
223052013-03-25  Daniel Cheng  <dcheng@chromium.org>
22306
22307        Don't allow drags to start after a mouse press that creates a context menu
22308        https://bugs.webkit.org/show_bug.cgi?id=112079
22309
22310        Reviewed by Tony Chang.
22311
22312        This appears to be the intent of the original code anyway (the comments in the corresponding
22313        context menu handlers indicate that they set m_mousePressed to false in order to suppress
22314        drags from starting). Since exact platform behavior differs quite a bit in this area, this
22315        will also make the behavior more consistent across different WebKit implementations.
22316
22317        Manually testable using context-menu-during-drag-selection.html.
22318
22319        * page/EventHandler.cpp:
22320        (WebCore::EventHandler::handleMouseDraggedEvent):
22321
223222013-03-25  Vsevolod Vlasov  <vsevik@chromium.org>
22323
22324        Web Inspector: [Regression] Provisional breakpoints are not shown on reload.
22325        https://bugs.webkit.org/show_bug.cgi?id=113210
22326
22327        Reviewed by Pavel Feldman.
22328
22329        * inspector/front-end/BreakpointManager.js:
22330        (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
22331        (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
22332        (WebInspector.BreakpointManager.prototype._projectWillReset):
22333        (WebInspector.BreakpointManager.prototype._breakpointResolved):
22334        * inspector/front-end/utilities.js:
22335
223362013-03-25  Sergey Ryazanov  <serya@chromium.org>
22337
22338        Web Inspector: Remove console warnings for *_ prefixed CSS styles
22339        https://bugs.webkit.org/show_bug.cgi?id=113175
22340
22341        Reviewed by Pavel Feldman.
22342
22343        Added separate error message for syntax CSS error in declaration list when no property detected.
22344        Added filter for messages starting with '*'.
22345
22346        * css/CSSGrammar.y.in:
22347
223482013-03-25  Alexis Hetu  <sugoi@chromium.org>
22349
22350        Integration of the Skia displacement mapping into WebKit
22351        https://bugs.webkit.org/show_bug.cgi?id=112927
22352
22353        Reviewed by Stephen White.
22354
22355        Added displacement mapping to effect-reference.html and
22356        effect-reference-hw.html
22357
22358        * WebCore.gypi:
22359        * platform/graphics/filters/FEDisplacementMap.h:
22360        (FEDisplacementMap):
22361        Adding Skia specific declarations
22362        * platform/graphics/filters/skia/FEDisplacementMapSkia.cpp: Added.
22363        (WebCore):
22364        (WebCore::toSkiaMode):
22365        Provides conversion between the WebKit displacement mapping mode and
22366        the Skia displacement mapping mode
22367        (WebCore::FEDisplacementMap::platformApplySkia):
22368        Displacement through the Skia API. (Accelerated only for now)
22369        (WebCore::FEDisplacementMap::createImageFilter):
22370        Displacement image filter creation through the Skia API.
22371
223722013-03-25  Vladislav Kaznacheev  <kaznacheev@chromium.org>
22373
22374        Web Inspector: Graduate some new Inspector APIs to public
22375        https://bugs.webkit.org/show_bug.cgi?id=113176
22376
22377        Reviewed by Pavel Feldman.
22378
22379        Summary of changes:
22380            DOM.highlightNode.nodeId: required parameter is now optional
22381            Input: domain has been added
22382            Runtime.enable: command has been added
22383            Runtime.executionContextCreated: event has been added
22384            Page.clearGeolocationOverride: command has been added
22385            Page.setGeolocationOverride: command has been added
22386            Page.captureScreenshot: command has been added
22387            Debugger.setBreakpointByUrl.locations: optional response parameter is now required
22388
22389
22390        * inspector/Inspector.json:
22391
223922013-03-25  Andrey Kosyakov  <caseq@chromium.org>
22393
22394        Web Inspector: [Timeline] set glue records mode off by default
22395        https://bugs.webkit.org/show_bug.cgi?id=113189
22396
22397        Reviewed by Pavel Feldman.
22398
22399        * inspector/front-end/TimelinePanel.js: /glueRecordsSetting/s/true/false/
22400
224012013-03-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
22402
22403        [EFL] Fix build break when media source is enabled
22404        https://bugs.webkit.org/show_bug.cgi?id=113143
22405
22406        Unreviewed. Build error needs to be fixed in order to start to implement
22407        media source functionality.
22408
22409        * CMakeLists.txt:
22410        * platform/efl/MIMETypeRegistryEfl.cpp:
22411        (WebCore):
22412        (WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType):
22413        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
22414        (WebCore):
22415        (WebCore::MediaPlayerPrivateGStreamer::load):
22416        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
22417        (MediaPlayerPrivateGStreamer):
22418
224192013-03-25  Vsevolod Vlasov  <vsevik@chromium.org>
22420
22421        Web Inspector: Toggling breakpoint with shortcut should be freezed as well while editing.
22422        https://bugs.webkit.org/show_bug.cgi?id=113188
22423
22424        Reviewed by Pavel Feldman.
22425
22426        * inspector/front-end/JavaScriptSourceFrame.js:
22427        (WebInspector.JavaScriptSourceFrame.prototype.toggleBreakpointOnCurrentLine):
22428
224292013-03-25  Vsevolod Vlasov  <vsevik@chromium.org>
22430
22431        Web Inspector: Remove unneeded code from JavaScriptSourceFrame.
22432        https://bugs.webkit.org/show_bug.cgi?id=113182
22433
22434        Reviewed by Pavel Feldman.
22435
22436        * inspector/front-end/JavaScriptSourceFrame.js:
22437        (WebInspector.JavaScriptSourceFrame):
22438
224392013-03-25  Alexei Filippov  <alph@chromium.org>
22440
22441        Web Inspector: Fonts refactoring
22442        https://bugs.webkit.org/show_bug.cgi?id=113047
22443
22444        Reviewed by Pavel Feldman.
22445
22446        Unify fonts usage across inspector.
22447        Make inspector default font depend on platform.
22448
22449        * inspector/front-end/dataGrid.css:
22450        (.data-grid table):
22451        (.data-grid td):
22452        * inspector/front-end/inspector.css:
22453        (.toolbar-label):
22454        (body.show-toolbar-icons .toolbar-label):
22455        (.console-message .bubble):
22456        (li .status .bubble):
22457        (.source-frame-breakpoint-message):
22458        (.soft-context-menu):
22459        * inspector/front-end/inspectorCommon.css:
22460        (body):
22461        * inspector/front-end/networkLogView.css:
22462        (.network-log-grid.data-grid td):
22463        (.network-log-grid.data-grid.small td):
22464        * inspector/front-end/tabbedPane.css:
22465        (.tabbed-pane-header-tab):
22466        (select.tabbed-pane-header-tabs-drop-down-select):
22467        * inspector/front-end/timelinePanel.css:
22468        (.memory-counter-value):
22469
224702013-03-25  Vladislav Kaznacheev  <kaznacheev@chromium.org>
22471
22472        Web Inspector: Use generate-inspector-protocol-version to list valid public API changes
22473        https://bugs.webkit.org/show_bug.cgi?id=113148
22474
22475        Added --show-changes command line option.
22476        Used existing compare_schemas method to do a reverse compare.
22477        Fixed a number of small problems (missing domain name in the message,
22478        incorrect error messages for command parameters).
22479
22480        Reviewed by Pavel Feldman.
22481
22482        * inspector/generate-inspector-protocol-version:
22483        (named_list_to_map):
22484        (removed):
22485        (required):
22486        (compare_schemas):
22487        (compare_domains):
22488        (compare_commands):
22489        (compare_events):
22490        (compare_params_list):
22491        (compare_types):
22492        (self_test):
22493        (self_test.create_test_schema_1):
22494        (self_test.create_test_schema_2):
22495        (self_test.is_subset):
22496        (self_test.errors_match):
22497        (main):
22498
224992013-03-25  Alec Flett  <alecflett@chromium.org>
22500
22501        Support Quota API in Workers
22502        https://bugs.webkit.org/show_bug.cgi?id=112972
22503
22504        Reviewed by Adam Barth.
22505
22506        Tests: fast/workers/shared-worker-storagequota-query-usage.html
22507               fast/workers/worker-storagequota-query-usage.html
22508
22509        * Modules/quota/WorkerNavigatorStorageQuota.cpp: Added.
22510        * Modules/quota/WorkerNavigatorStorageQuota.h: Added.
22511        * Modules/quota/WorkerNavigatorStorageQuota.idl: Added.
22512        * WebCore.gypi: Add entries for WorkerNavigatorStorageQuota.
22513        * page/WorkerNavigator.h: Add a Navigator supplement that extends the worker navigator.
22514
225152013-03-25  Mike West  <mkwst@chromium.org>
22516
22517        CSP 1.1: Rename SecurityPolicyViolationEvent::sourceURL to ::sourceFile.
22518        https://bugs.webkit.org/show_bug.cgi?id=113033
22519
22520        Reviewed by Jochen Eisinger.
22521
22522        Bringing our experimental implementation into line with the spec, which
22523        has landed on the de facto standard name Gecko has been sending out for
22524        years and years.
22525
22526        Spec: https://dvcs.w3.org/hg/content-security-policy/rev/e44f4003e158
22527        Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0087.html
22528
22529        * dom/SecurityPolicyViolationEvent.h:
22530        (SecurityPolicyViolationEventInit):
22531        (WebCore::SecurityPolicyViolationEvent::sourceFile):
22532        (WebCore::SecurityPolicyViolationEvent::SecurityPolicyViolationEvent):
22533        (SecurityPolicyViolationEvent):
22534        * dom/SecurityPolicyViolationEvent.idl:
22535        * page/ContentSecurityPolicy.cpp:
22536        (WebCore::gatherSecurityPolicyViolationEventData):
22537            s/sourceURL/sourceFile/
22538
225392013-03-25  Michelangelo De Simone  <michelangelo@webkit.org>
22540
22541        [CSS Filters] Using negative drop-shadow radius values has slow performance
22542        https://bugs.webkit.org/show_bug.cgi?id=107848
22543
22544        Setting negative blur radius values in drop-shadow() and box-shadow() led to
22545        significant rendering performance loss. The invalid value overflowed and the
22546        embedder became unresponsive for few seconds.
22547        This impacted SVG too (SVGFEDropShadow and SVGFEGaussianBlur).
22548
22549        Reviewed by Dirk Schulze.
22550
22551        Tests: css3/filters/effect-drop-shadow-negative-radius.html
22552               fast/box-shadow/box-shadow-parsing-invalid.html
22553               svg/filters/feDropShadow-negative-deviation-expected.svg
22554               svg/filters/feDropShadow-negative-deviation.svg
22555               svg/filters/feDropShadow-zero-deviation.svg
22556               svg/filters/feGaussianBlur-negative-deviation-expected.svg
22557               svg/filters/feGaussianBlur-negative-deviation.svg
22558               svg/filters/feGaussianBlur-zero-deviation.svg
22559
22560        * css/CSSParser.cpp:
22561        (WebCore::CSSParser::parseShadow): Negative values are skipped during parsing: as per
22562        CSS Background and Borders specs, negative values shall not be allowed.
22563        * platform/graphics/filters/FEGaussianBlur.cpp:
22564        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): Added "non-negative" assertion for
22565        negative deviations.
22566        * svg/SVGFEDropShadowElement.cpp:
22567        (WebCore::SVGFEDropShadowElement::build): If a negative standard deviation is encountered, don't
22568        build the filter and returns earlier, this avoids unnecessary calls: FEGaussianBlur is not being
22569        created with wrong and potentially overflowing values.
22570        * svg/SVGFEGaussianBlurElement.cpp:
22571        (WebCore::SVGFEGaussianBlurElement::build): Ditto.
22572
225732013-03-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>
22574
22575        [Qt] REGRESSION(r146630): 8 text related test asserts on debug builds
22576        https://bugs.webkit.org/show_bug.cgi?id=113179
22577
22578        Reviewed by Jocelyn Turcotte.
22579
22580        Test if range.start is within the valid range before testing the value at that point.
22581
22582        * platform/graphics/qt/FontQt.cpp:
22583        (WebCore::Font::initFormatForTextLayout):
22584
225852013-03-25  Alexander Pavlov  <apavlov@chromium.org>
22586
22587        Web Inspector: Properly handle the rule addition to an XML or SVG document.
22588        https://bugs.webkit.org/show_bug.cgi?id=113185
22589
22590        Reviewed by Pavel Feldman.
22591
22592        * inspector/InspectorCSSAgent.cpp:
22593        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
22594
225952013-03-25  Peter Rybin  <prybin@chromium.org>
22596
22597        Web Inspector: support changing local variables in frontend
22598        https://bugs.webkit.org/show_bug.cgi?id=112470
22599
22600        Reviewed by Yury Semikhatsky.
22601
22602        ScopeRef type is added to RemoteObject and setPropertyValue is patched accordingly.
22603
22604        Test: inspector/debugger/debugger-change-variable.html
22605
22606        * inspector/front-end/DebuggerModel.js:
22607        (WebInspector.DebuggerModel.CallFrame.prototype.get id):
22608        * inspector/front-end/ObjectPropertiesSection.js:
22609        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
22610        (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
22611        * inspector/front-end/RemoteObject.js:
22612        (WebInspector.RemoteObject):
22613        (WebInspector.RemoteObject.fromScopePayload):
22614        (WebInspector.RemoteObject.prototype.):
22615        (WebInspector.RemoteObject.prototype.setPropertyValue):
22616        (WebInspector.RemoteObject.prototype.setVariableValueCallback):
22617        (WebInspector.RemoteObject.prototype._setDeclarativeVariableValue):
22618        (WebInspector.ScopeRef):
22619        * inspector/front-end/ScopeChainSidebarPane.js:
22620        (WebInspector.ScopeChainSidebarPane.prototype.update):
22621
226222013-03-25  Mike West  <mkwst@chromium.org>
22623
22624        CSP 1.1: Strip URLs in SecurityPolicyViolationEvents, just as we do for POSTed violation reports.
22625        https://bugs.webkit.org/show_bug.cgi?id=113039
22626
22627        Reviewed by Jochen Eisinger.
22628
22629        I'd originally assumed that we didn't need to be quite so careful when
22630        handing URLs to JavaScript via SecurityPolicyViolationEvents. This was
22631        a mistake. Cross-origin URLs aren't accessible to JavaScript currently
22632        and there's no reason that we should begin exposing them via an event.
22633
22634        This patch extracts the stripping logic from the existing reports into
22635        stripURLForUseInReport(), and uses that new method when populating the
22636        event and report objects.
22637
22638        Relatedly, we were doing the wrong thing with 'file:' URLs, which this
22639        patch made clear. Now they're treated the same as 'data:' et al.
22640
22641        Spec: https://dvcs.w3.org/hg/content-security-policy/rev/45f6ccaba0ef
22642
22643        Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script.html
22644               http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image.html
22645               http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-from-script.html
22646               http/tests/security/contentSecurityPolicy/report-blocked-file-uri.html
22647
22648        * page/ContentSecurityPolicy.cpp:
22649        (WebCore::stripURLForUseInReport):
22650            Extract the logic from blockedURI out into a reusable method:
22651            cross-origin URLs are stripped down to the ASCII serialization of
22652            their origin, and non-heirarchical (and 'file:') URLs are stripped
22653            down to the ASCII serialization of their protocol.
22654        (WebCore::gatherSecurityPolicyViolationEventData):
22655        (WebCore::ContentSecurityPolicy::reportViolation):
22656            Use ::stripURLForUseInReport for blockedURL and sourceFile
22657            attributes in these two methods.
22658
226592013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
22660
22661        Web Inspector: Fix JSDocs.
22662        https://bugs.webkit.org/show_bug.cgi?id=113025
22663
22664        Reviewed by Pavel Feldman.
22665
22666        Next version of JS compiler finds more inconsistencies
22667        and ambiguous declarations.
22668        Some of them are resolved in this patch.
22669
22670        * inspector/InjectedScriptSource.js: Fix JSDocs.
22671        * inspector/front-end/ConsoleModel.js: Ditto.
22672        * inspector/front-end/CookieParser.js: Ditto.
22673        * inspector/front-end/FileContentView.js: Ditto.
22674        * inspector/front-end/HeapSnapshotView.js: Ditto.
22675        * inspector/front-end/IndexedDBModel.js: Ditto.
22676        * inspector/front-end/ProfilesPanelDescriptor.js: Ditto.
22677        * inspector/front-end/utilities.js: Ditto.
22678
226792013-03-25  Mike West  <mkwst@chromium.org>
22680
22681        Cleanup: Tiny nits in ContentSecurityPolicy::reportViolation.
22682        https://bugs.webkit.org/show_bug.cgi?id=112784
22683
22684        Reviewed by Jochen Eisinger.
22685
22686        Just cleanup of three tiny nits I ran across in
22687        ContentSecurityPolicy::reportViolation while doing other work.
22688
22689        - 'directiveText' and 'effectiveDirective' can't be empty; we pass in
22690          values at every callsite. We can safely remove the 'isEmpty()' checks.
22691          Moreover, even if they could possibly somehow be empty, we should
22692          still include those empty strings in the report, rather than
22693          dropping the values entirely.
22694
22695        - We don't need to hold 'document->referrer()' in a temp variable.
22696
22697        * page/ContentSecurityPolicy.cpp:
22698        (WebCore::ContentSecurityPolicy::reportViolation):
22699
227002013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
22701
22702        Web Inspector: [Overview] Make "drag-to-move" feature more discoverable.
22703        https://bugs.webkit.org/show_bug.cgi?id=113032
22704
22705        Reviewed by Pavel Feldman.
22706
22707        To move overview window user could drag-n-drop over
22708        time "ribbon" on OverviewGrid.
22709
22710        This feature is hard to discover.
22711
22712        Setting "move" cursor will make this feature more discoverable.
22713
22714        * inspector/front-end/inspectorCommon.css:
22715        Set "move" cursor to draggable area.
22716        * inspector/front-end/OverviewGrid.js: Ditto.
22717
227182013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
22719
22720        Web Inspector: [Profiles] Remove unused private member.
22721        https://bugs.webkit.org/show_bug.cgi?id=113015
22722
22723        Reviewed by Pavel Feldman.
22724
22725        _profileGroupsForLinks is not used anymore.
22726
22727        * inspector/front-end/ProfilesPanel.js:
22728        (WebInspector.ProfilesPanel.prototype._reset): Removed unused member.
22729
227302013-03-25  PhistucK  <phistuck@chromium.org>
22731
22732        Web Inspector: Exception when turning on pretty print without any displayed source in the editor
22733        https://bugs.webkit.org/show_bug.cgi?id=113136
22734
22735        Reviewed by Vsevolod Vlasov.
22736
22737        No new tests.
22738        Added a check for the existence of currently edited document.
22739
22740        * inspector/ScriptsPanel.js:
22741        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
22742
227432013-03-25  Mihnea Ovidenie  <mihnea@adobe.com>
22744
22745        [CSSRegions] Remove RenderRegion::printRegionObjectsStyles
22746        https://bugs.webkit.org/show_bug.cgi?id=113081
22747
22748        Reviewed by Tony Chang.
22749
22750        No change in functionality, remove unused function..
22751
22752        * rendering/RenderRegion.h:
22753
227542013-03-25  Hurnjoo Lee  <hurnjoo.lee@samsung.com>
22755
22756        [Texmap] Memory leak when closing a tab
22757        https://bugs.webkit.org/show_bug.cgi?id=112127
22758
22759        Reviewed by Noam Rosenthal.
22760
22761        When closing a tab, if there are any updates pending in CoordinatedGraphicsScene's
22762        render queue, the scene is not freed because reference count of m_scene is not zero.
22763
22764        No new tests.
22765
22766        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
22767        (WebCore::CoordinatedGraphicsScene::detach): When bind updates in CoordinatedGraphicsScene,
22768        the reference count of m_scene is increasing, if m_renderQueue is not empty
22769        before closing tab, then m_scene is never freed.
22770        Hence, when closing tab, need to clear m_renderQueue explicitly in order to
22771        destroy m_scene.
22772
227732013-03-25  Keishi Hattori  <keishi@webkit.org>
22774
22775        Clear button visibility is not updated when restoring form state
22776        https://bugs.webkit.org/show_bug.cgi?id=113172
22777
22778        Clear button wasn't showing up when restoring form state.
22779
22780        Reviewed by Kent Tamura.
22781
22782        Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-visibility-after-restore.html
22783               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-visibility-after-restore.html
22784               fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-visibility-after-restore.html
22785               fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-visibility-after-restore.html
22786               fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-visibility-after-restore.html
22787
22788        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
22789        (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
22790
227912013-03-25  Eugene Klyuchnikov  <eustas@chromium.org>
22792
22793        Web Inspector: [Settings] Use registry to track settings objects.
22794        https://bugs.webkit.org/show_bug.cgi?id=113008
22795
22796        Reviewed by Pavel Feldman.
22797
22798        Currently .createSetting creates new instance any time it is invoked.
22799        When one instance saves value, the other instance do not know about it.
22800
22801        To resolve this issue we can use registry to make .createSetting return
22802        same object for specific key.
22803
22804        * inspector/front-end/Settings.js:
22805        (WebInspector.Settings.prototype.createSetting): Use registry.
22806
228072013-03-24  Matt Falkenhagen  <falken@chromium.org>
22808
22809        Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
22810        https://bugs.webkit.org/show_bug.cgi?id=112085
22811
22812        Reviewed by Hajime Morrita.
22813
22814        Node is too low a level for these methods. The plan is to rename
22815        Element::disabled to isDisabledFormControl and to remove
22816        Element::isEnabledFormControl.
22817
22818        No new tests, just refactoring.
22819
22820        * dom/Element.cpp:
22821        (WebCore::Element::disabled):
22822        (WebCore):
22823        (WebCore::Element::isInert):
22824        * dom/Element.h:
22825        (Element):
22826        * dom/EventDispatcher.cpp:
22827        (WebCore::EventDispatcher::dispatchSimulatedClick):
22828        * dom/GestureEvent.cpp:
22829        (WebCore::GestureEventDispatchMediator::dispatchEvent):
22830        * dom/MouseEvent.cpp:
22831        (WebCore::MouseEventDispatchMediator::dispatchEvent):
22832        * dom/Node.cpp:
22833        (WebCore::Node::handleLocalEvents):
22834        (WebCore::Node::willRespondToMouseMoveEvents):
22835        (WebCore::Node::willRespondToMouseClickEvents):
22836        (WebCore::Node::willRespondToTouchEvents):
22837        * dom/Node.h:
22838        (Node):
22839
228402013-03-24  Alpha Lam  <hclam@chromium.org>
22841
22842        GIFImageReader should reports parsing error to client
22843        https://bugs.webkit.org/show_bug.cgi?id=113141
22844
22845        Reviewed by Stephen White.
22846
22847        GIFImageReader nows reports parsing error to client (GIFImageDecoder) such that errors can be handled.
22848        In the case of corrupted GIF images GIFImageReader will be deleted and decoding will fail.
22849
22850        Unit test is updated to reflect change in behavior.
22851        Tested with a local corpus which showed better handling of corrupted GIF images.
22852
22853        * platform/image-decoders/gif/GIFImageReader.cpp:
22854        (GIFImageReader::decode):
22855
228562013-03-24  KondapallyKalyan  <kalyan.kondapally@intel.com>
22857
22858        [EFL] Add support to check for current Drawable.
22859        https://bugs.webkit.org/show_bug.cgi?id=113103
22860
22861        Reviewed by Kenneth Rohde Christiansen.
22862
22863        Covered by existing WebGL tests.
22864
22865        In MakeCurrent we do an early return if it is
22866        the current GL context but ignore Surface. This
22867        patch fixes the issue, we now check for both
22868        context and surface before doing an early return
22869        in MakeCurrent.
22870
22871        * platform/graphics/opengl/GLPlatformContext.cpp:
22872        (WebCore::GLPlatformContext::makeCurrent):
22873        (WebCore::GLPlatformContext::releaseCurrent):
22874        (WebCore::GLPlatformContext::destroy):
22875        * platform/graphics/opengl/GLPlatformSurface.cpp:
22876        (WebCore):
22877        (WebCore::GLPlatformSurface::isCurrentDrawable):
22878        (WebCore::GLPlatformSurface::onMakeCurrent):
22879        * platform/graphics/opengl/GLPlatformSurface.h:
22880
228812013-03-24  David Kilzer  <ddkilzer@apple.com>
22882
22883        BUILD FIX (r146704): Settings::setHiddenPageDOMTimerThrottlingEnabled() isn't always built
22884        <http://webkit.org/b/112308>
22885
22886        * WebCore.exp.in: Export
22887        Settings::setHiddenPageDOMTimerThrottlingEnabled()
22888        conditionally based on ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING).
22889
228902013-03-24  Christophe Dumez  <ch.dumez@sisa.samsung.com>
22891
22892        [EFL] NetworkStateNotifier::updateState() is called too often
22893        https://bugs.webkit.org/show_bug.cgi?id=113152
22894
22895        Reviewed by Kenneth Rohde Christiansen.
22896
22897        Wait until we have read all the data on the Netlink socket before
22898        reporting a possible network interface change. This way, we make
22899        sure we don't call NetworkStateNotifier::updateState() several
22900        times in a row for no reason.
22901
22902        We also call NetworkStateNotifier::updateState() only if we get a
22903        RTM_NEWADDR event and we are currently offline, or if we get a
22904        RTM_DELADDR and we are currently online. This avoids calling
22905        NetworkStateNotifier::updateState() uselessly as there is no way
22906        the online state can change otherwise.
22907
22908        No new tests, no behavior change for layout tests.
22909
22910        * platform/network/efl/NetworkStateNotifierEfl.cpp:
22911        (WebCore::NetworkStateNotifier::readSocketCallback):
22912
229132013-03-24  Chris Fleizach  <cfleizach@apple.com>
22914
22915        AX: Crash in WebCore::AccessibilitySpinButton::incrementButton()
22916        https://bugs.webkit.org/show_bug.cgi?id=111582
22917
22918        Reviewed by Tim Horton.
22919
22920        There are two ways to create a spin button: from a textfield counter or from ARIA.
22921        If an ARIA spin button is created, it was returning true for isSpinButton, so we were 
22922        casting to the other kind of spin button, leading to a crash.
22923
22924        We need to be more specific about our class types.
22925
22926        Test: platform/mac/accessibility/aria-spinbutton-crash.html
22927
22928        * accessibility/AccessibilityObject.h:
22929        (WebCore::AccessibilityObject::isNativeSpinButton):
22930        * accessibility/AccessibilitySpinButton.h:
22931        (WebCore::AccessibilitySpinButton::isNativeSpinButton):
22932        (WebCore::toAccessibilitySpinButton):
22933        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
22934        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
22935
229362013-03-24  Chris Fleizach  <cfleizach@apple.com>
22937
22938        AXObjectCache gets recreated during document tear-down.
22939        https://bugs.webkit.org/show_bug.cgi?id=112525
22940
22941        Reviewed by Simon Fraser.
22942
22943        In many cases, a document's AXObjectCache was being created after the
22944        document had detached, which is wasteful and could potentially lead to
22945        crashes because the AXObjectCache has a timer and relies on its document
22946        to exist.
22947
22948        This patch provides a way to get the existing AX object cache, instead of
22949        always creating a new one.
22950        It moves the accessibilityEnabled() checks into the axObjectCache retrieval
22951        for easier readability.
22952        It adds a number of ASSERTs to vieryf that only the correct (top) document is used
22953        for cache manipulation.
22954
22955        * accessibility/AXObjectCache.cpp:
22956        (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
22957        * dom/ContainerNode.cpp:
22958        (WebCore::ContainerNode::~ContainerNode):
22959        * dom/Document.cpp:
22960        (WebCore::Document::~Document):
22961        (WebCore::Document::clearAXObjectCache):
22962        (WebCore::Document::existingAXObjectCache):
22963        (WebCore::Document::axObjectCache):
22964        (WebCore::Document::setFocusedNode):
22965        * dom/Document.h:
22966        (Document):
22967        * dom/Element.cpp:
22968        (WebCore::Element::attributeChanged):
22969        * dom/Node.cpp:
22970        (WebCore::Node::~Node):
22971        (WebCore::Node::isEditableToAccessibility):
22972        (WebCore::Node::attach):
22973        (WebCore::Node::rootEditableElement):
22974        (WebCore::Node::didMoveToNewDocument):
22975        * editing/AppendNodeCommand.cpp:
22976        (WebCore::sendAXTextChangedIgnoringLineBreaks):
22977        * editing/DeleteFromTextNodeCommand.cpp:
22978        (WebCore::DeleteFromTextNodeCommand::doApply):
22979        (WebCore::DeleteFromTextNodeCommand::doUnapply):
22980        * editing/Editor.cpp:
22981        (WebCore::Editor::respondToChangedContents):
22982        (WebCore::Editor::markAndReplaceFor):
22983        * editing/InsertIntoTextNodeCommand.cpp:
22984        (WebCore::InsertIntoTextNodeCommand::doApply):
22985        (WebCore::InsertIntoTextNodeCommand::doUnapply):
22986        * editing/InsertNodeBeforeCommand.cpp:
22987        (WebCore::InsertNodeBeforeCommand::doApply):
22988        (WebCore::InsertNodeBeforeCommand::doUnapply):
22989        * editing/atk/FrameSelectionAtk.cpp:
22990        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
22991        * editing/chromium/FrameSelectionChromium.cpp:
22992        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
22993        * editing/mac/FrameSelectionMac.mm:
22994        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
22995        * html/HTMLInputElement.cpp:
22996        (WebCore::HTMLInputElement::setChecked):
22997        * html/HTMLSelectElement.cpp:
22998        (WebCore::HTMLSelectElement::optionElementChildrenChanged):
22999        (WebCore::HTMLSelectElement::setRecalcListItems):
23000        * html/HTMLTextFormControlElement.cpp:
23001        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
23002        * html/InputType.cpp:
23003        (WebCore::InputType::applyStep):
23004        * html/RangeInputType.cpp:
23005        (WebCore::RangeInputType::handleKeydownEvent):
23006        * loader/FrameLoader.cpp:
23007        (WebCore::FrameLoader::prepareForLoadStart):
23008        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
23009        * page/FocusController.cpp:
23010        (WebCore::FocusController::setInitialFocus):
23011        * page/Frame.cpp:
23012        (WebCore::Frame::disconnectOwnerElement):
23013        * page/FrameView.cpp:
23014        (WebCore::FrameView::removeFromAXObjectCache):
23015        (WebCore::FrameView::layout):
23016        (WebCore::FrameView::scrollToAnchor):
23017        (WebCore::FrameView::axObjectCache):
23018        * platform/ScrollView.cpp:
23019        (WebCore::ScrollView::setHasHorizontalScrollbar):
23020        (WebCore::ScrollView::setHasVerticalScrollbar):
23021        * platform/Scrollbar.cpp:
23022        (WebCore::Scrollbar::~Scrollbar):
23023        (WebCore):
23024        (WebCore::Scrollbar::existingAXObjectCache):
23025        * platform/Scrollbar.h:
23026        (Scrollbar):
23027        * rendering/RenderBlock.cpp:
23028        (WebCore::RenderBlock::deleteLineBoxTree):
23029        (WebCore::RenderBlock::createRootInlineBox):
23030        (WebCore::RenderBlock::createAndAppendRootInlineBox):
23031        * rendering/RenderListBox.cpp:
23032        (WebCore::RenderListBox::selectionChanged):
23033        * rendering/RenderMenuList.cpp:
23034        (WebCore::RenderMenuList::addChild):
23035        (WebCore::RenderMenuList::didUpdateActiveOption):
23036        * rendering/RenderObject.cpp:
23037        (WebCore::RenderObject::styleWillChange):
23038        (WebCore::RenderObject::willBeDestroyed):
23039        * rendering/RenderObjectChildList.cpp:
23040        (WebCore::RenderObjectChildList::removeChildNode):
23041        (WebCore::RenderObjectChildList::insertChildNode):
23042        * rendering/RenderText.cpp:
23043        (WebCore::RenderText::setText):
23044        * rendering/RenderWidget.cpp:
23045        (WebCore::RenderWidget::willBeDestroyed):
23046
230472013-03-23  Mike West  <mkwst@chromium.org>
23048
23049        Drop full URLs from cross-origin access errors caused by sandboxing.
23050        https://bugs.webkit.org/show_bug.cgi?id=113029
23051
23052        Reviewed by Timothy Hatcher.
23053
23054        Following up on http://wkbug.com/112042, this patch brings cross-origin
23055        access error messages into line with the newly origin-only default
23056        message, and changes the error message text to explicitly refer to the
23057        missing 'allow-same-origin' sandbox flag that's the root cause of the
23058        error.
23059
23060        * page/DOMWindow.cpp:
23061        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
23062            Note that we're using the origin of the frames' URLs rather than
23063            their actual origin in these messages. This seems like a reasonable
23064            thing to do, since we know that at least one of the two origins will
23065            be "null" in this scenario.
23066
230672013-03-23  Dominic Mazzoni  <dmazzoni@google.com>
23068
23069        Implement Web Speech Synthesis for Chromium
23070        https://bugs.webkit.org/show_bug.cgi?id=111695
23071
23072        Reviewed by Adam Barth.
23073
23074        Straightforward implementation of speech synthesis
23075        for Chromium by exposing interfaces for the platform
23076        to implement.
23077
23078        * Modules/speech/SpeechSynthesis.cpp:
23079        (WebCore::SpeechSynthesis::boundaryEventOccurred):
23080        (WebCore::SpeechSynthesis::didStartSpeaking):
23081        (WebCore::SpeechSynthesis::didPauseSpeaking):
23082        (WebCore::SpeechSynthesis::didResumeSpeaking):
23083        (WebCore::SpeechSynthesis::didFinishSpeaking):
23084        (WebCore::SpeechSynthesis::speakingErrorOccurred):
23085        (WebCore):
23086        * Modules/speech/SpeechSynthesis.h:
23087        (SpeechSynthesis):
23088        * Modules/speech/SpeechSynthesisUtterance.cpp:
23089        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
23090        (WebCore):
23091        (WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
23092        (WebCore::SpeechSynthesisUtterance::setVoice):
23093        * Modules/speech/SpeechSynthesisUtterance.h:
23094        (SpeechSynthesisUtterance):
23095        (WebCore::SpeechSynthesisUtterance::text):
23096        (WebCore::SpeechSynthesisUtterance::setText):
23097        (WebCore::SpeechSynthesisUtterance::lang):
23098        (WebCore::SpeechSynthesisUtterance::setLang):
23099        (WebCore::SpeechSynthesisUtterance::volume):
23100        (WebCore::SpeechSynthesisUtterance::setVolume):
23101        (WebCore::SpeechSynthesisUtterance::rate):
23102        (WebCore::SpeechSynthesisUtterance::setRate):
23103        (WebCore::SpeechSynthesisUtterance::pitch):
23104        (WebCore::SpeechSynthesisUtterance::setPitch):
23105        (WebCore::SpeechSynthesisUtterance::startTime):
23106        (WebCore::SpeechSynthesisUtterance::setStartTime):
23107        (WebCore::SpeechSynthesisUtterance::platformUtterance):
23108        * Modules/speech/SpeechSynthesisVoice.h:
23109        (WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
23110        * WebCore.exp.in:
23111        * WebCore.gypi:
23112        * platform/PlatformSpeechSynthesis.h:
23113        (PlatformSpeechSynthesis):
23114        * platform/PlatformSpeechSynthesisUtterance.cpp:
23115        (WebCore):
23116        (WebCore::PlatformSpeechSynthesisUtterance::create):
23117        * platform/PlatformSpeechSynthesisUtterance.h:
23118        (PlatformSpeechSynthesisUtterance):
23119        (WebCore::PlatformSpeechSynthesisUtterance::setClient):
23120        * platform/PlatformSpeechSynthesisVoice.cpp:
23121        (WebCore):
23122        (WebCore::PlatformSpeechSynthesisVoice::create):
23123        (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
23124        * platform/PlatformSpeechSynthesisVoice.h:
23125        (PlatformSpeechSynthesisVoice):
23126        (WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
23127        (WebCore::PlatformSpeechSynthesisVoice::setName):
23128        (WebCore::PlatformSpeechSynthesisVoice::setLang):
23129        (WebCore::PlatformSpeechSynthesisVoice::setLocalService):
23130        (WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
23131        * platform/PlatformSpeechSynthesizer.cpp:
23132        (WebCore::PlatformSpeechSynthesizer::create):
23133        (WebCore::PlatformSpeechSynthesizer::setVoiceList):
23134        (WebCore):
23135        * platform/PlatformSpeechSynthesizer.h:
23136        (WebKit):
23137        (PlatformSpeechSynthesizerClient):
23138        (PlatformSpeechSynthesizer):
23139        * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
23140        (WebCore):
23141        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
23142        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
23143        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
23144        (WebCore::PlatformSpeechSynthesizer::speak):
23145        (WebCore::PlatformSpeechSynthesizer::pause):
23146        (WebCore::PlatformSpeechSynthesizer::resume):
23147        (WebCore::PlatformSpeechSynthesizer::cancel):
23148        * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
23149        (WebKit):
23150        (WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
23151        (WebKit::WebSpeechSynthesisUtterance::operator=):
23152        (WebKit::WebSpeechSynthesisUtterance::assign):
23153        (WebKit::WebSpeechSynthesisUtterance::reset):
23154        (WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
23155        (WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
23156        (WebKit::WebSpeechSynthesisUtterance::text):
23157        (WebKit::WebSpeechSynthesisUtterance::lang):
23158        (WebKit::WebSpeechSynthesisUtterance::voice):
23159        (WebKit::WebSpeechSynthesisUtterance::volume):
23160        (WebKit::WebSpeechSynthesisUtterance::rate):
23161        (WebKit::WebSpeechSynthesisUtterance::pitch):
23162        (WebKit::WebSpeechSynthesisUtterance::startTime):
23163        * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
23164        (WebKit):
23165        (WebKit::WebSpeechSynthesisVoice::assign):
23166        (WebKit::WebSpeechSynthesisVoice::reset):
23167        (WebKit::WebSpeechSynthesisVoice::setVoiceURI):
23168        (WebKit::WebSpeechSynthesisVoice::setName):
23169        (WebKit::WebSpeechSynthesisVoice::setLanguage):
23170        (WebKit::WebSpeechSynthesisVoice::setIsLocalService):
23171        (WebKit::WebSpeechSynthesisVoice::setIsDefault):
23172        (WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
23173        * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
23174        (WebCore):
23175        (WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
23176        (WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
23177        (WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
23178        (WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
23179        (WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
23180        (WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
23181        (WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
23182        (WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
23183        (WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
23184        (WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
23185        * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
23186        (WebCore):
23187        (WebSpeechSynthesizerClientImpl):
23188        * platform/mac/PlatformSpeechSynthesizerMac.mm:
23189        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
23190        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
23191        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
23192        (WebCore):
23193        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
23194        (WebCore::PlatformSpeechSynthesizer::speak):
23195        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
23196        (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
23197        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
23198        (WebCore::PlatformSpeechSynthesizerMock::speak):
23199        * platform/mock/PlatformSpeechSynthesizerMock.h:
23200        (PlatformSpeechSynthesizerMock):
23201
232022013-03-23  Daniel Cheng  <dcheng@chromium.org>
23203
23204        [Qt] editing/pasteboard/can-read-in-dragstart-event.html and /can-read-in-copy-and-cut-events.html are crashing
23205        https://bugs.webkit.org/show_bug.cgi?id=113126
23206
23207        Reviewed by Ryosuke Niwa.
23208
23209        The ClipboardQt implementation only allows reading or writing, not both. Attempting to read
23210        when the clipboard is only writable will lead to a crash since the corresponding member will
23211        be null. To prevent crashes, change the asserts to early returns. In the long term, the
23212        correct fix is to unify the m_readableData and m_writableData members.
23213
23214        No new tests since no functionality in Qt port should change.
23215
23216        * platform/qt/ClipboardQt.cpp:
23217        (WebCore::ClipboardQt::getData):
23218        (WebCore::ClipboardQt::types):
23219        (WebCore::ClipboardQt::files):
23220
232212013-03-23  Carlos Garcia Campos  <cgarcia@igalia.com>
23222
23223        [GTK][Regression] webkit_dom_html_table_element_insert_row returns value that doesn't pass WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT macro
23224        https://bugs.webkit.org/show_bug.cgi?id=111714
23225
23226        Reviewed by Martin Robinson.
23227
23228        Add custom kit implementation for HTMLElements so that the HTML
23229        wrappers are used in that case instead of wrapHTMLElement.
23230
23231        * bindings/gobject/WebKitDOMBinding.cpp:
23232        (WebKit::kit):
23233        (WebKit):
23234        * bindings/gobject/WebKitDOMBinding.h:
23235        (WebCore):
23236        (WebKit):
23237        * bindings/scripts/CodeGeneratorGObject.pm:
23238        (UsesManualKitImplementation):
23239
232402013-03-23  David Kilzer  <ddkilzer@apple.com>
23241
23242        Revert "BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS"
23243
23244        This is platform-agnositic code, so the previous solution won't work.
23245
23246        * platform/network/SynchronousLoaderClient.cpp:
23247        (WebCore::SynchronousLoaderClient::willSendRequest):
23248
232492013-03-23  David Kilzer  <ddkilzer@apple.com>
23250
23251        BUILD FIX (r146667): ResourceRequest constructor in SynchronousLoaderClient.cpp is ambiguous on iOS
23252
23253        Fixes the following build failure:
23254
23255            Source/WebCore/platform/network/SynchronousLoaderClient.cpp:52:15: error: conversion from 'int' to 'const WebCore::ResourceRequest' is ambiguous
23256                request = 0;
23257                          ^
23258            In file included from Source/WebCore/platform/network/SynchronousLoaderClient.cpp:30:
23259            In file included from Source/WebCore/platform/network/ResourceHandle.h:37:
23260            In file included from Source/WebCore/platform/network/ios/QuickLook.h:13:
23261            Source/WebCore/platform/network/cf/ResourceRequest.h:79:9: note: candidate constructor
23262                    ResourceRequest(NSURLRequest *);
23263                    ^
23264            Source/WebCore/platform/network/cf/ResourceRequest.h:83:9: note: candidate constructor
23265                    ResourceRequest(CFURLRequestRef cfRequest)
23266                    ^
23267            1 error generated.
23268
23269        * platform/network/SynchronousLoaderClient.cpp:
23270        (WebCore::SynchronousLoaderClient::willSendRequest): If
23271        USE(CFNETWORK) is defined, use static_cast<CFURLRequestRef>(0),
23272        otherwise use static_cast<NSURLRequest *>(0).
23273
232742013-03-23  David Kilzer  <ddkilzer@apple.com>
23275
23276        BUILD FIX (r146687): setDefaultMIMEType() is unused in ResourceHandleCFNet.cpp on iOS
23277
23278        Fixes the following build failure:
23279
23280            Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:98:13: error: unused function 'setDefaultMIMEType' [-Werror,-Wunused-function]
23281            static void setDefaultMIMEType(CFURLResponseRef response)
23282                        ^
23283            1 error generated.
23284
23285        * platform/network/cf/ResourceHandleCFNet.cpp:
23286        (WebCore::setDefaultMIMEType): Add #if !PLATFORM(MAC)/#endif
23287        guard.
23288
232892013-03-21  Kiran Muppala  <cmuppala@apple.com>
23290
23291        Add runtime setting for hidden page DOM timer throttling and CSS animation suspension
23292        https://bugs.webkit.org/show_bug.cgi?id=112308
23293
23294        Reviewed by Gavin Barraclough.
23295
23296        No new tests.  Only adding settings to enable/disable existing features
23297        and hence existing tests suffice.
23298
23299        * WebCore.exp.in:
23300        * page/Page.cpp:
23301        (WebCore::Page::setVisibilityState): Check if DOM timer throttling
23302        and CSS animation suspension are enabled before turning them on.
23303        (WebCore::Page::hiddenPageDOMTimerThrottlingStateChanged): Start or stop
23304        DOM timer throttling based on page visibility and the new setting state.
23305        (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged): Ditto
23306        for CSS animation suspension.
23307        * page/Page.h:
23308        * page/Settings.cpp:
23309        (WebCore::Settings::Settings): Initialize the flags for enabling hidden
23310        page DOM timer throttling and CSS animation suspension to false.
23311        (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled): Update flag
23312        and notify page that the state of the setting has changed.
23313        (WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled): Ditto.
23314        * page/Settings.h:
23315        (WebCore::Settings::hiddenPageDOMTimerThrottlingEnabled):
23316        (WebCore::Settings::hiddenPageCSSAnimationSuspensionEnabled):
23317
233182013-03-22  Benjamin Poulain  <bpoulain@apple.com>
23319
23320        Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
23321        https://bugs.webkit.org/show_bug.cgi?id=113003
23322
23323        Reviewed by Eric Seidel.
23324
23325        Fix two unfortunate use of StringHash and use the correct StringImpl function.
23326
23327        * html/parser/HTMLParserIdioms.cpp:
23328        (WebCore::threadSafeEqual):
23329        * html/parser/HTMLTreeBuilderSimulator.cpp:
23330        (WebCore::tokenExitsSVG):
23331
233322013-03-22  Andy Estes  <aestes@apple.com>
23333
23334        Set the cache partition property on CFURLRequests
23335        https://bugs.webkit.org/show_bug.cgi?id=113116
23336
23337        Patch by Jeffrey Pfau
23338        Reviewed by David Kilzer.
23339
23340        * platform/network/cf/ResourceRequestCFNet.cpp:
23341        (WebCore::ResourceRequest::doUpdatePlatformRequest):
23342        (WebCore::ResourceRequest::doUpdateResourceRequest):
23343
233442013-03-22  Julien Chaffraix  <jchaffraix@webkit.org>
23345
23346        [CSS Grid Layout] content-sized row tracks with percentage logical height grid items don't resolve properly
23347        https://bugs.webkit.org/show_bug.cgi?id=113085
23348
23349        Reviewed by Tony Chang.
23350
23351        The core issue is that because overrideContainingBlockLogicalHeight() is unset in
23352        logicalContentHeightForChild, RenderBox::computePercentageLogicalHeight would try to
23353        resolve percentage logical height against the grid element (wrong containing block
23354        as a grid item's containing block is the grid area).
23355
23356        Tests: fast/css-grid-layout/grid-item-multiple-minmax-content-resolution.html
23357               fast/css-grid-layout/grid-item-with-percent-height-in-auto-height-grid-resolution.html
23358
23359        * rendering/RenderGrid.cpp:
23360        (WebCore::RenderGrid::logicalContentHeightForChild):
23361        Set our override logical height to -1, so that we don't try to constrain a grid item's logical height
23362        based on resolving (badly) its percentage.
23363
233642013-03-19  Zhenyao Mo  <zmo@google.com>
23365
23366        Check WEBGL_draw_buffers requirements before exposing the extension
23367        https://bugs.webkit.org/show_bug.cgi?id=112359
23368
23369        Reviewed by Kenneth Russell.
23370
23371        * html/canvas/EXTDrawBuffers.cpp:
23372        (WebCore::EXTDrawBuffers::supported): call satisfies*().
23373        (WebCore::EXTDrawBuffers::drawBuffersEXT):
23374        (WebCore):
23375        (WebCore::EXTDrawBuffers::satisfiesWebGLRequirements): check WebGL requirements.
23376        * html/canvas/EXTDrawBuffers.h:
23377        (EXTDrawBuffers):
23378        * html/canvas/WebGLFramebuffer.cpp:
23379        (WebCore::WebGLFramebuffer::getDrawBuffer):
23380        (WebCore):
23381        * html/canvas/WebGLFramebuffer.h:
23382        (WebGLFramebuffer):
23383        * html/canvas/WebGLRenderingContext.cpp:
23384        (WebCore):
23385        (WebCore::WebGLRenderingContext::initializeNewContext):
23386        (WebCore::WebGLRenderingContext::getExtension):
23387        (WebCore::WebGLRenderingContext::getParameter):
23388        (WebCore::WebGLRenderingContext::getSupportedExtensions):
23389        (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
23390        (WebCore::WebGLRenderingContext::getMaxDrawBuffers):
23391        (WebCore::WebGLRenderingContext::getMaxColorAttachments):
23392        (WebCore::WebGLRenderingContext::setBackDrawBuffer):
23393        (WebCore::WebGLRenderingContext::restoreCurrentFramebuffer):
23394        (WebCore::WebGLRenderingContext::restoreCurrentTexture2D):
23395        (WebCore::WebGLRenderingContext::supportsDrawBuffers): a cached version of EXTDrawBuffers::supports()
23396        * html/canvas/WebGLRenderingContext.h:
23397        (WebGLRenderingContext):
23398
233992013-03-22  Roger Fong  <roger_fong@apple.com>
23400
23401        Unreviewed. Fix AppleWin port following https://bugs.webkit.org/show_bug.cgi?id=113100.
23402        Patch by Alexey Proskuryakov.
23403
23404        * platform/network/cf/ResourceHandleCFNet.cpp:
23405        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
23406
234072013-03-22  Tony Chang  <tony@chromium.org>
23408
23409        REGRESSION (r146272): layout issues for flex boxes that have -webkit-flex-wrap: wrap
23410        https://bugs.webkit.org/show_bug.cgi?id=113071
23411
23412        Reviewed by Ojan Vafai.
23413
23414        The refactor in r139535 introduced this bug, where a variable name wasn't updated properly.
23415        In combination with r146272, this bug became more visible when nesting multiline flexboxen.
23416
23417        Test: css3/flexbox/multiline-min-preferred-width.html
23418
23419        * rendering/RenderFlexibleBox.cpp:
23420        (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths): We want the width of the widest
23421        flexitem, the value in m_minPreferredWidth isn't relevant. Also update the comment for max
23422        preferred width.
23423
234242013-03-22  Max Vujovic  <mvujovic@adobe.com>
23425
23426        [CSS Shaders] Clamp css_MixColor before the blending and compositing steps
23427        https://bugs.webkit.org/show_bug.cgi?id=113088
23428
23429        Reviewed by Dean Jackson.
23430
23431        The blending and compositing operations from the spec [1] expect that they are operating on
23432        valid color inputs, in the range [0.0, 1.0]. Thus, we should clamp the css_MixColor input to
23433        this range to avoid implementation-dependent behavior for invalid color inputs.
23434
23435        [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blending
23436
23437        Tests: css3/filters/custom/custom-filter-clamp-css-mix-color-negative.html
23438               css3/filters/custom/custom-filter-clamp-css-mix-color.html
23439
23440        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
23441        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
23442            Clamp css_MixColor as clampedMixColor before using it in the blending and compositing
23443            steps.
23444
234452013-03-19  Martin Robinson  <mrobinson@igalia.com>
23446
23447        [GTK] Add WebCoreDOM to the gyp build
23448        https://bugs.webkit.org/show_bug.cgi?id=112737
23449
23450        Reviewed by Nico Weber.
23451
23452        * WebCore.gyp/WebCoreGTK.gyp: Add WebCoreDOM to the gyp build.
23453
234542013-03-19  Martin Robinson  <mrobinson@igalia.com>
23455
23456        [GTK] Add WebCoreHTML to the gyp build
23457        https://bugs.webkit.org/show_bug.cgi?id=112727
23458
23459        Reviewed by Nico Weber.
23460
23461        * WebCore.gyp/WebCoreGTK.gyp: Add support for building all files under
23462        the HTML directory. This includes splitting off common WebCore dependencies
23463        into an aggregate target and adding a top-level WebCore target.
23464
234652013-03-22  Tim Horton  <timothy_horton@apple.com>
23466
23467        Plugin Snapshotting: Auto-start dominant plugins
23468        https://bugs.webkit.org/show_bug.cgi?id=113111
23469        <rdar://problem/13475726>
23470
23471        Reviewed by Dean Jackson.
23472
23473        * html/HTMLPlugInElement.cpp:
23474        (WebCore::HTMLPlugInElement::defaultEventHandler):
23475        Acknowledge the new "Restarting" DisplayState.
23476        * html/HTMLPlugInElement.h:
23477        Rename PlayingWithPendingMouseClick to RestartingWithPendingMouseClick for accuracy.
23478        Add "Restarting" DisplayState, so we can be aware that the plugin is intentionally restarting and not re-snapshot it.
23479        * html/HTMLPlugInImageElement.cpp:
23480        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Remove m_isPrimarySnapshottedPlugIn.
23481        (WebCore::classNameForShadowRoot): Remove m_isPrimarySnapshottedPlugIn.
23482        (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Restart the plugin when it becomes primary.
23483        (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Remove m_isPrimarySnapshottedPlugIn.
23484        (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
23485        Move the plugin to Restarting unless it's already marked as PendingMouseClick.
23486        (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): Match the PlayingWithPendingMouseClick rename.
23487        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Don't snapshot if we're restarting.
23488        * html/HTMLPlugInImageElement.h: Remove m_isPrimarySnapshottedPlugIn.
23489        * rendering/RenderSnapshottedPlugIn.cpp:
23490        (WebCore::RenderSnapshottedPlugIn::paint): Acknowledge the new "Restarting" DisplayState.
23491        (WebCore::RenderSnapshottedPlugIn::getCursor): Acknowledge the new "Restarting" DisplayState.
23492        (WebCore::RenderSnapshottedPlugIn::handleEvent): Match the PlayingWithPendingMouseClick rename.
23493
234942013-03-19  Martin Robinson  <mrobinson@igalia.com>
23495
23496        [GTK] Add support for building the WebCore bindings to the gyp build
23497        https://bugs.webkit.org/show_bug.cgi?id=112638
23498
23499        Reviewed by Nico Weber.
23500
23501        Add targets, actions, and rules for building the WebCore bindings. This is
23502        the first part of the WebCoreGTK build.
23503
23504        * WebCore.gyp/ConvertFileToHeaderWithCharacterArray.gypi: Added.
23505        * WebCore.gyp/MakeNames.gypi: Added.
23506        * WebCore.gyp/WebCoreGTK.gyp: Added WebCore bindings build. This has been adapted
23507        from the Chromium build.
23508        * WebCore.gypi: Updated list of derived sources files and added a parameter
23509        for adjusting the location of the built files. We don't want to force the
23510        Mac build to change, but we'd still like to reuse the scripts that the
23511        Chromium build uses.
23512
235132013-03-22  Dane Wallinga  <dgwallinga@chromium.org>
23514
23515        Add client callbacks to notify of changes of associated from controls
23516        https://bugs.webkit.org/show_bug.cgi?id=110375
23517
23518        Reviewed by Ryosuke Niwa.
23519
23520        Hook FormAssociatedElement, HTMLFormElement to notify EditorClient of form changes after a page has loaded.
23521        Will be used to add autofill support for ajax-y webpages. e.g if while filling out a form, new fields
23522        are dynamically created, autofill can know to re-query the autofill server and keep going.
23523        https://bugs.webkit.org/show_bug.cgi?id=110375
23524
23525        * dom/Document.cpp:
23526        (WebCore::Document::Document):
23527        (WebCore::Document::didAssociateFormControl):
23528        (WebCore):
23529        (WebCore::Document::didAssociateFormControlsTimerFired):
23530        * dom/Document.h:
23531        (Document):
23532        added method didAssociateFormControl, which batches form changes
23533        and calls out to ChromeClient on a timer.
23534        * html/FormAssociatedElement.cpp:
23535        (WebCore::FormAssociatedElement::resetFormOwner):
23536        (WebCore::FormAssociatedElement::formAttributeChanged):
23537        (WebCore):
23538        * html/FormAssociatedElement.h:
23539        (FormAssociatedElement):
23540        add calls to Document::didAssociateFormControl when form changes
23541        * html/HTMLFormElement.cpp:
23542        (WebCore::HTMLFormElement::insertedInto):
23543        (WebCore):
23544        * html/HTMLFormElement.h:
23545        add call to Document::didAssociateFormControl
23546        * loader/EmptyClients.h:
23547        (EmptyChromeClient):
23548        (WebCore::EmptyChromeClient::didAssociateFormControls):
23549        (WebCore::EmptyChromeClient::shouldNotifyOnFormChanges):
23550        * page/ChromeClient.h:
23551        (ChromeClient):
23552        add new method didAssociateFormControls
23553
235542013-03-22  Alexey Proskuryakov  <ap@apple.com>
23555
23556        Split ResourceHandleMac into multiple files
23557        https://bugs.webkit.org/show_bug.cgi?id=113100
23558
23559        Reviewed by Geoff Garen.
23560
23561        It's grown too big to navigate, and I'm going to make WebCoreResourceHandleAsDelegate
23562        substantially more complicated yet.
23563
23564        1. Mechanically moved WebCoreResourceHandleAsDelegate into separate files.
23565        2. Refactored WebCoreSynchronousLoaderClient to be cross-platform, and moved it into
23566        separate files.
23567
23568        * WebCore.vcproj/WebCore.vcproj:
23569        * WebCore.vcxproj/WebCore.vcxproj:
23570        * WebCore.vcxproj/WebCore.vcxproj.filters:
23571        * WebCore.xcodeproj/project.pbxproj:
23572        * platform/network/SynchronousLoaderClient.cpp: Added.
23573        * platform/network/SynchronousLoaderClient.h: Added.
23574        * platform/network/cf/ResourceHandleCFNet.cpp:
23575        * platform/network/mac/SynchronousLoaderClient.mm: Added.
23576        * platform/network/mac/WebCoreResourceHandleAsDelegate.h: Added.
23577        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Added.
23578
235792013-03-21  Geoffrey Garen  <ggaren@apple.com>
23580
23581        Added a setting for whether JavaScript markup is enabled
23582        https://bugs.webkit.org/show_bug.cgi?id=112999
23583
23584        Reviewed by Maciej Stachowiak.
23585
23586        This setting is useful for clients that want protection from script
23587        injection attacks.
23588
23589        * page/Settings.h:
23590        (Settings): Clarified which clients should call canExecuteScripts().
23591
23592        * page/Settings.in: Added the new setting.
23593
235942013-03-22  Roger Fong  <roger_fong@apple.com>
23595
23596        Unreviewed build fix.
23597
23598        * bindings/scripts/preprocessor.pm:
23599        (applyPreprocessor):
23600
236012013-03-22  Roger Fong  <roger_fong@apple.com>
23602
23603        Unreviewed. Force kill gcc-3.exe during bindings generation tests to avoid process hangs.
23604
23605        This problem is occuring on the WinEWS bots where there are somehow multiple gcc-3 processes existing at the same time.
23606        This is a speculative fix. There should only be 1 gcc-3.exe process running at a time ever.
23607
23608        * bindings/scripts/preprocessor.pm:
23609        (applyPreprocessor):
23610
236112013-03-22  Eric Carlson  <eric.carlson@apple.com>
23612
23613        Cleanup text track selection logic
23614        https://bugs.webkit.org/show_bug.cgi?id=113062
23615
23616        Reviewed by Jer Noble.
23617
23618        No new tests, covered by existing tests.
23619
23620        * html/HTMLMediaElement.cpp:
23621        (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Remove.
23622        (WebCore::HTMLMediaElement::configureTextTrackGroup): Don't look at track attributes directly,
23623            use captionPreferences->textTrackSelectionScore to calculate track rank.
23624        (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Set m_processingPreferenceChange here
23625            instead of in captionPreferencesChanged.
23626        (WebCore::HTMLMediaElement::captionPreferencesChanged): Don't suppress calls to setClosedCaptionsVisible,
23627            existing code already makes sure we don't do unnecessary work.
23628        * html/HTMLMediaElement.h:
23629
23630        * html/shadow/MediaControlElements.cpp:
23631        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Drive by cleanup, don't
23632            process inactive cues.
23633
23634        * html/shadow/MediaControlsApple.cpp:
23635        (WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Call resetTrackListMenu instead
23636            of updateDisplay so we only mark the menu as needing a recalculation and do the work when
23637            it is displayed.
23638
23639        * page/CaptionUserPreferences.cpp:
23640        (WebCore::CaptionUserPreferences::shouldShowCaptions): When in testing mode, return true if
23641            the caption or subtitle preference has been set.
23642        (WebCore::CaptionUserPreferences::setShouldShowCaptions): In testing mode, clear the caption
23643            and subtitle preference when passed false.
23644        (WebCore::CaptionUserPreferences::textTrackSelectionScore): Calculate the track score based on
23645            track type preference and preferred language.
23646        (WebCore::CaptionUserPreferences::textTrackLanguageSelectionScore): Score a track according to
23647            the language presence and position in the preferred languages list.
23648        * page/CaptionUserPreferences.h:
23649
23650        * page/CaptionUserPreferencesMac.h:
23651        * page/CaptionUserPreferencesMac.mm:
23652        (WebCore::CaptionUserPreferencesMac::textTrackSelectionScore): Calculate track language score 
23653            according to user preferences.
23654
23655        * platform/Language.cpp:
23656        (WebCore::indexOfBestMatchingLanguageInList): Repurposed the static bestMatchingLanguage
23657            function to return the location of a language in a Vector.
23658        (WebCore::preferredLanguageFromList): Removed.
23659        * platform/Language.h:
23660
236612013-03-22  ChangSeok Oh  <changseok.oh@collabora.com>
23662
23663        Build fix for TransformationMatrix
23664        https://bugs.webkit.org/show_bug.cgi?id=113087
23665
23666        Reviewed by Martin Robinson.
23667
23668        This is a trivial build fix for clutter ac backend. Clutter AC backend doesn't use
23669        TextureMapper so there is nowhere including TransformationMatrix.h.
23670        For the reason, we include it explicitly.
23671
23672        No new tests because of no functionality change.
23673
23674        * platform/graphics/clutter/GraphicsContext3DPrivate.cpp:
23675        * platform/graphics/clutter/GraphicsContext3DPrivate.h:
23676        (WebCore):
23677
236782013-03-22  Steve Block  <steveblock@chromium.org>
23679
23680        Coordinates.idl lacks Conditional=GEOLOCATION
23681        https://bugs.webkit.org/show_bug.cgi?id=112949
23682
23683        Reviewed by Steve Block.
23684
23685        No new tests, build optimization only.
23686
23687        * page/Coordinates.idl: Added GEOLOCATION conditional guard.
23688
236892013-03-22  Daniel Cheng  <dcheng@chromium.org>
23690
23691        Data store should be readable in dragstart/copy/cut events
23692        https://bugs.webkit.org/show_bug.cgi?id=23695
23693
23694        Reviewed by Tony Chang.
23695
23696        There were several events where data could be written but not read back due to the fact that
23697        different Clipboard method implementations checked permissions inconsistently. This patch
23698        adds helper methods to check if an operation is permitted on a Clipboard and refactors all
23699        direct comparisons against Clipboard::m_policy to use the new helpers instead. This fixes
23700        several bugs where Clipboard::types and Clipboard::getData are not usable inside the
23701        aforementioned events.
23702
23703        Tests: editing/pasteboard/can-read-in-copy-and-cut-events.html
23704               editing/pasteboard/can-read-in-dragstart-event.html
23705
23706        * dom/Clipboard.cpp:
23707        (WebCore::Clipboard::canReadTypes): Formerly restricted to ClipboardReadable and
23708                                            ClipboardTypesReadable; now allows ClipboardWritable as
23709                                            well.
23710        (WebCore::Clipboard::canReadData): Formerly restricted to ClipboardReadable; now allows
23711                                           ClipboardWritable as well.
23712        (WebCore::Clipboard::canWriteData):
23713        (WebCore::Clipboard::canSetDragImage):
23714        (WebCore::Clipboard::hasFileOfType):
23715        (WebCore::Clipboard::hasStringOfType):
23716        (WebCore::Clipboard::setDropEffect):
23717        (WebCore::Clipboard::setEffectAllowed):
23718        * dom/Clipboard.h:
23719        (Clipboard):
23720        * platform/blackberry/ClipboardBlackBerry.cpp:
23721        (WebCore::ClipboardBlackBerry::clearData):
23722        (WebCore::ClipboardBlackBerry::clearAllData):
23723        (WebCore::ClipboardBlackBerry::getData):
23724        (WebCore::ClipboardBlackBerry::setData):
23725        (WebCore::ClipboardBlackBerry::types):
23726        * platform/chromium/ClipboardChromium.cpp:
23727        (WebCore::DataTransferItemPolicyWrapper::kind):
23728        (WebCore::DataTransferItemPolicyWrapper::type):
23729        (WebCore::DataTransferItemPolicyWrapper::getAsString):
23730        (WebCore::DataTransferItemPolicyWrapper::getAsFile):
23731        (WebCore::ClipboardChromium::clearData):
23732        (WebCore::ClipboardChromium::clearAllData):
23733        (WebCore::ClipboardChromium::getData):
23734        (WebCore::ClipboardChromium::setData):
23735        (WebCore::ClipboardChromium::types):
23736        (WebCore::ClipboardChromium::files):
23737        (WebCore::ClipboardChromium::setDragImage):
23738        * platform/gtk/ClipboardGtk.cpp:
23739        (WebCore::ClipboardGtk::clearData):
23740        (WebCore::ClipboardGtk::clearAllData):
23741        (WebCore::ClipboardGtk::getData):
23742        (WebCore::ClipboardGtk::setData):
23743        (WebCore::ClipboardGtk::types):
23744        (WebCore::ClipboardGtk::files):
23745        (WebCore::ClipboardGtk::setDragImage):
23746        * platform/mac/ClipboardMac.mm:
23747        (WebCore::ClipboardMac::clearData):
23748        (WebCore::ClipboardMac::clearAllData):
23749        (WebCore::ClipboardMac::getData):
23750        (WebCore::ClipboardMac::setData):
23751        (WebCore::ClipboardMac::types):
23752        (WebCore::ClipboardMac::files):
23753        (WebCore::ClipboardMac::setDragImage):
23754        * platform/qt/ClipboardQt.cpp:
23755        (WebCore::ClipboardQt::clearData):
23756        (WebCore::ClipboardQt::clearAllData):
23757        (WebCore::ClipboardQt::getData):
23758        (WebCore::ClipboardQt::setData):
23759        (WebCore::ClipboardQt::types):
23760        (WebCore::ClipboardQt::files):
23761        (WebCore::ClipboardQt::setDragImage):
23762        (WebCore::ClipboardQt::items):
23763        * platform/qt/DataTransferItemListQt.cpp:
23764        (WebCore::DataTransferItemListQt::length):
23765        (WebCore::DataTransferItemListQt::item):
23766        (WebCore::DataTransferItemListQt::deleteItem):
23767        (WebCore::DataTransferItemListQt::clear):
23768        (WebCore::DataTransferItemListQt::add):
23769        * platform/qt/DataTransferItemQt.cpp:
23770        (WebCore::DataTransferItemQt::getAsString):
23771        * platform/win/ClipboardWin.cpp:
23772        (WebCore::ClipboardWin::clearData):
23773        (WebCore::ClipboardWin::clearAllData):
23774        (WebCore::ClipboardWin::getData):
23775        (WebCore::ClipboardWin::setData):
23776        (WebCore::ClipboardWin::types):
23777        (WebCore::ClipboardWin::files):
23778        (WebCore::ClipboardWin::setDragImage):
23779
237802013-03-22  Andrei Bucur  <abucur@adobe.com>
23781
23782        [CSS Regions] Remove pushLayoutState(RenderFlowThread*) from RenderView
23783        https://bugs.webkit.org/show_bug.cgi?id=113084
23784
23785        Reviewed by Dirk Schulze.
23786
23787        Remove void pushLayoutState(RenderFlowThread*, bool regionsChanged) from RenderView.h because it's not used.
23788
23789        Tests: Code cleanup. No tests needed.
23790
23791        * rendering/RenderView.h:
23792        (RenderView):
23793
237942013-03-22  Kondapally Kalyan  <kalyan.kondapally@intel.com>
23795
23796        [EFL] Fix build issues to enable CSS Filter and Shaders support.
23797        https://bugs.webkit.org/show_bug.cgi?id=111274
23798
23799        Reviewed by Noam Rosenthal.
23800
23801        This is in preperation to enable CSS Filter and Shaders support.
23802        This patch fixes related build issues to enable the support.
23803
23804        * platform/graphics/surfaces/efl/GLTransportSurface.cpp:
23805        * platform/graphics/texmap/TextureMapper.cpp:
23806        * platform/graphics/texmap/TextureMapper.h:
23807        (WebCore):
23808        * platform/graphics/texmap/TextureMapperGL.cpp:
23809        * platform/graphics/texmap/TextureMapperGL.h:
23810        (WebCore):
23811        * platform/graphics/texmap/TextureMapperShaderProgram.h:
23812
238132013-03-22  Matt Falkenhagen  <falken@chromium.org>
23814
23815        Implement isEnabledFormControl() for SliderThumbElement and SpinButtonElement in terms of disabled()
23816        https://bugs.webkit.org/show_bug.cgi?id=112993
23817
23818        Reviewed by Kent Tamura.
23819
23820        This is an intermediate step for refactoring Node::disabled and
23821        Element::isEnabledFormControl. All classes that override
23822        isEnabledFormControl just return !disabled(), except for
23823        SliderThumbElement and SpinButtonElement. This patch changes those two
23824        classes to do so, which shows that the two functions are redundant and
23825        easy to refactor into a single function in a subsequent patch.
23826
23827        No new tests, there should be no behavior change.
23828
23829        * html/shadow/SliderThumbElement.cpp:
23830        (WebCore::SliderThumbElement::disabled):
23831        (WebCore):
23832        (WebCore::SliderThumbElement::isEnabledFormControl):
23833        * html/shadow/SliderThumbElement.h:
23834        (SliderThumbElement):
23835        * html/shadow/SpinButtonElement.h: The check of shadowHost() is
23836        necessary because it can be detached by JavaScript that runs during
23837        event handling (see r76566)
23838
238392013-03-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
23840
23841        [Qt] New fast/text/word-space-with-kerning-3.html fails on Qt.
23842        https://bugs.webkit.org/show_bug.cgi?id=112668
23843
23844        Reviewed by Jocelyn Turcotte.
23845
23846        Qt adds word-spacing to leading spaces, but WebCore only expects
23847        us to add for trailing spaces. We only corrected for this in width
23848        calculation but do need to also do it for drawing.
23849
23850        Instead of subtracting the extra word-spacing we now configure the
23851        FormatRange not to apply to leading spaces. This means this behavior
23852        will be applied everywhere reliably.
23853
23854        * platform/graphics/Font.h:
23855        (Font):
23856        * platform/graphics/qt/FontQt.cpp:
23857        (WebCore::Font::drawComplexText):
23858        (WebCore::Font::floatWidthForComplexText):
23859        (WebCore::Font::offsetForPositionForComplexText):
23860        (WebCore::Font::selectionRectForComplexText):
23861        (WebCore::Font::initFormatForTextLayout):
23862
238632013-03-22  Joshua Bell  <jsbell@chromium.org>
23864
23865        REGRESSION (r146540?): Crashes in storage/indexeddb/factory-basics-workers.html, storage/indexeddb/transaction-error.html
23866        https://bugs.webkit.org/show_bug.cgi?id=113019
23867
23868        Reviewed by Tony Chang.
23869
23870        Also manifesting flakily under Chromium's content_shell. It's an ASSERT being hit in
23871        the IDBTransaction destructor. The cause was r146540 which allows a stopped context
23872        to reclaim script wrappers. This allows the IDBTransaction to be deref'd at times where
23873        it previously would have just leaked. Modulate the destructor assertions to account
23874        for this case.
23875
23876        No new tests; failures already manifest as flaky crashes in some ports.
23877
23878        * Modules/indexeddb/IDBTransaction.cpp:
23879        (WebCore::IDBTransaction::~IDBTransaction): If context is stopped, expected state
23880        transitions/cleanup may not have occurred before destructor runs.
23881
238822013-03-22  David Grogan  <dgrogan@chromium.org>
23883
23884        IndexedDB: Histogram available disk space on attempt to open database
23885        https://bugs.webkit.org/show_bug.cgi?id=112862
23886
23887        Reviewed by Tony Chang.
23888
23889        ChromeOS suspects they might be hitting disk corruption when the disks
23890        are nearly full. This patch logs the available space to either the
23891        "success" or the "fail" histogram as appropriate so that the
23892        distributions can be compared.
23893
23894        No new tests - I don't know of a good way to test histograms. Local
23895        printf testing didn't turn up any bugs.
23896
23897        * platform/leveldb/LevelDBDatabase.cpp:
23898        (WebCore::HistogramFreeSpace):
23899        (WebCore):
23900        (WebCore::LevelDBDatabase::open):
23901
239022013-03-22  Nate Chapin  <japhet@chromium.org>
23903
23904        REGRESSION (r146239): Reproducible crash in WebCore::DocumentLoader::responseReceived.
23905        https://bugs.webkit.org/show_bug.cgi?id=112811
23906
23907        Reviewed by Brady Eidson.
23908
23909        Test: http/tests/cache/x-frame-options-304.html
23910
23911        * loader/DocumentLoader.cpp:
23912        (WebCore::DocumentLoader::responseReceived):
23913        * loader/cache/CachedRawResource.cpp:
23914        (WebCore::CachedRawResource::switchClientsToRevalidatedResource):
23915        * loader/cache/CachedRawResource.h:
23916
239172013-03-22  Jer Noble  <jer.noble@apple.com>
23918
23919        REGRESSION: -webkit-box-reflect does not show on video elements
23920        https://bugs.webkit.org/show_bug.cgi?id=112397
23921
23922        Reviewed by Eric Carlson.
23923
23924        Work around the ASSERTs generated when setting an AVPlayerLayer's player property
23925        during a CA flush by setting the player property during the next runloop, outside
23926        of a CA flush.
23927
23928        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
23929        (PlatformCALayer::clone):
23930
239312013-03-22  peavo@outlook.com  <peavo@outlook.com>
23932
23933        [Curl] Performance fix, avoid loading cookie file on every request.
23934        https://bugs.webkit.org/show_bug.cgi?id=113023
23935
23936        Reviewed by Brent Fulgham.
23937
23938        We currently load the cookie file on every request, and when setting cookies from JavaScript, by using the option CURLOPT_COOKIEFILE.
23939        This is very inefficient as the cookie file can get quite large, and file I/O is slow.
23940        It is sufficient to load the cookie file on startup, as we use a shared cookie database between the requests.
23941
23942        * platform/network/curl/CookieJarCurl.cpp:
23943        (WebCore::setCookiesFromDOM): Avoid loading cookie file when setting cookies from JavaScript.
23944        * platform/network/curl/ResourceHandleManager.cpp:
23945        (WebCore::ResourceHandleManager::initializeHandle): Avoid loading cookie file on every request.
23946        (WebCore::ResourceHandleManager::initCookieSession): Load the cookie file to shared database on startup.
23947
239482013-03-22  Tiancheng Jiang  <tijiang@rim.com>
23949
23950        [BlackBerry] Update Input field Background Color
23951        https://bugs.webkit.org/show_bug.cgi?id=113063
23952
23953        Reviewed by George Staikos.
23954
23955        RIM PR 307463.
23956        Internally reviewed by Ed Baker.
23957
23958        * platform/blackberry/RenderThemeBlackBerry.cpp:
23959        (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField):
23960
239612013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
23962
23963        Web Inspector: FlameChart. Draw function names over flame chart bar if they fit into the bar.
23964        https://bugs.webkit.org/show_bug.cgi?id=113052
23965
23966        Reviewed by Vsevolod Vlasov.
23967
23968        The draw function will draw the bar title if the text is less than bar width.
23969        Unfortunately almost all the projects which need to be profiled
23970        use long function names with dots. So if the function name has dots and
23971        doesn't fit into the space then prepareTitle will try to drop the prefix before dot.
23972        If the title has no dots then the function will strip the tail of the title.
23973
23974        * inspector/front-end/FlameChart.js:
23975        (WebInspector.FlameChart):
23976        (WebInspector.FlameChart.prototype.draw):
23977        (WebInspector.FlameChart.prototype._prepareTitle):
23978
239792013-03-22  Vladislav Kaznacheev  <kaznacheev@chromium.org>
23980
23981        Web Inspector: Add "hidden" attribute to the recently added APIs in Inspector.json
23982        https://bugs.webkit.org/show_bug.cgi?id=113061
23983
23984        Added "hidden": true to the APIs introduced since version 1.0.
23985
23986        Reviewed by Pavel Feldman.
23987
23988        * inspector/Inspector.json:
23989
239902013-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
23991
23992        Web Inspector: Correctly implement scrollToLine, revealLine and setSelection on CodeMirror  editor.
23993        https://bugs.webkit.org/show_bug.cgi?id=113028
23994
23995        Reviewed by Pavel Feldman.
23996
23997        Added focus event handler to CodeMirror editor view elememnt to support inspector's focus model.
23998        Added selection and scroll listeners to correctly save editor scroll and selection in history.
23999        Implemented revealLine, scrollToLine and setSelection.
24000        Note: CodeMirror's coordsChar method does not work correctly in "local" mode, implemented as binary search
24001        as a temporary workaround.
24002
24003        * inspector/front-end/CodeMirrorTextEditor.js:
24004        (WebInspector.CodeMirrorTextEditor):
24005        (WebInspector.CodeMirrorTextEditor.prototype.defaultFocusedElement):
24006        (WebInspector.CodeMirrorTextEditor.prototype._handleElementFocus):
24007        (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
24008        (WebInspector.CodeMirrorTextEditor.prototype._coordsChar):
24009        (WebInspector.CodeMirrorTextEditor.prototype._topScrolledLine):
24010        (WebInspector.CodeMirrorTextEditor.prototype._bottomScrolledLine):
24011        (WebInspector.CodeMirrorTextEditor.prototype._scroll):
24012        (WebInspector.CodeMirrorTextEditor.prototype._selectionChange):
24013        (WebInspector.CodeMirrorTextEditor.prototype.scrollToLine):
24014        (WebInspector.CodeMirrorTextEditor.prototype.setSelection):
24015        (WebInspector.CodeMirrorTextEditor.prototype.copyRange):
24016        * inspector/front-end/TextEditor.js:
24017        (WebInspector.TextEditor.prototype.copyRange):
24018
240192013-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
24020
24021        Web Inspector: [Regression] Editor scroll is not restored after inspector reload.
24022        https://bugs.webkit.org/show_bug.cgi?id=113027
24023
24024        Reviewed by Pavel Feldman.
24025
24026        * inspector/front-end/SourceFrame.js:
24027        (WebInspector.SourceFrame.prototype.wasShown):
24028        (WebInspector.SourceFrame.prototype._isEditorShowing):
24029        (WebInspector.SourceFrame.prototype._innerHighlightLineIfNeeded):
24030        (WebInspector.SourceFrame.prototype._innerRevealLineIfNeeded):
24031        (WebInspector.SourceFrame.prototype._innerScrollToLineIfNeeded):
24032        (WebInspector.SourceFrame.prototype._innerSetSelectionIfNeeded):
24033
240342013-03-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
24035
24036        [Qt] Fix build with OPENCL 1.2
24037        https://bugs.webkit.org/show_bug.cgi?id=113056
24038
24039        Reviewed by Kenneth Rohde Christiansen.
24040
24041        Switch qmake checks to the modern style which means we can enable OpenCL with
24042        WEBKIT_CONFIG+=opencl. 
24043
24044        Upgrade OpenCL 1.1 clCreateImage2D to OpenCL 1.2 clCreateImage calls.
24045
24046        * Target.pri:
24047        * WebCore.pri:
24048        * platform/graphics/filters/FilterEffect.cpp:
24049        (WebCore::FilterEffect::createOpenCLImageResult):
24050        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
24051        (WebCore::FilterContextOpenCL::createOpenCLImage):
24052
240532013-03-22  ChangSeok Oh  <changseok.oh@collabora.com>
24054
24055        [GTK][AC] Opacity animation doesn't work with clutter backend
24056        https://bugs.webkit.org/show_bug.cgi?id=110347
24057
24058        Reviewed by Gustavo Noronha Silva.
24059
24060        The static casting in ternary operator doesn't change actual inputted argument type.
24061        So I replaced it with if-else statement.
24062
24063        Covered by existing animation tests.
24064
24065        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
24066        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
24067        (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
24068
240692013-03-22  ChangSeok Oh  <changseok.oh@collabora.com>
24070
24071        [GTK][AC] Add removing animations procedure with clutter ac backend
24072        https://bugs.webkit.org/show_bug.cgi?id=110607
24073
24074        Reviewed by Gustavo Noronha Silva.
24075
24076        This changes is based on mac port implementation. The only different thing is
24077        that updateAnimations is called explicitly in destructor of GraphicsLayerClutter
24078        to remove uncommitted animations. Because even though we call notifyFlushRequired
24079        to remove existing animations in removeAnimation(), removeClutterAnimationFromLayer
24080        has been never reached since the root layer is destroyed before. It means
24081        that we haven't lost a change to remove actual animations from clutterActor.
24082
24083        Covered by existing animation tests.
24084
24085        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24086        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
24087        (WebCore::GraphicsLayerClutter::removeAnimation):
24088        (WebCore):
24089        (WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
24090        * platform/graphics/clutter/GraphicsLayerClutter.h:
24091        (WebCore::GraphicsLayerClutter::animationIsRunning):
24092        (GraphicsLayerClutter):
24093
240942013-03-22  Kondapally Kalyan  <kalyan.kondapally@intel.com>
24095
24096        [EFL][WebGL] Optimize AlphaOp for HTMLVideoElement input.
24097        https://bugs.webkit.org/show_bug.cgi?id=113049
24098
24099        Reviewed by Kenneth Rohde Christiansen.
24100
24101        Covered by existing tests.
24102
24103        Changeset 137397 implemented optimisation to avoid any
24104        unnecessary Unmultiply or Premultiply operation in unpack/pack
24105        provided the Image source is from HTMLVideoElement. This patch
24106        enables the same for EFL port.
24107
24108        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
24109        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
24110
241112013-03-22  Tommy Widenflycht  <tommyw@google.com>
24112
24113        Clean up the speech recognintion API
24114        https://bugs.webkit.org/show_bug.cgi?id=112916
24115
24116        Reviewed by Adam Barth.
24117
24118        This patch cleans away deprecated parts, fixes so that stop() can be called more than once and adds
24119        the missing emma attribute on SpeechRecognitionEvent (which is always null).
24120
24121        Patch covered by existing tests.
24122
24123        * Modules/speech/SpeechRecognition.cpp:
24124        (WebCore::SpeechRecognition::stopFunction):
24125        (WebCore::SpeechRecognition::abort):
24126        (WebCore::SpeechRecognition::didEnd):
24127        (WebCore::SpeechRecognition::SpeechRecognition):
24128        * Modules/speech/SpeechRecognition.h:
24129        (SpeechRecognition):
24130        * Modules/speech/SpeechRecognitionEvent.cpp:
24131        (WebCore::SpeechRecognitionEvent::createResult):
24132        (WebCore::SpeechRecognitionEvent::createNoMatch):
24133        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
24134        * Modules/speech/SpeechRecognitionEvent.h:
24135        (WebCore):
24136        (SpeechRecognitionEventInit):
24137        (SpeechRecognitionEvent):
24138        (WebCore::SpeechRecognitionEvent::emma):
24139        * Modules/speech/SpeechRecognitionEvent.idl:
24140
241412013-03-22  Emil A Eklund  <eae@chromium.org>
24142
24143        Floor cell widths in AutoTableLayout::recalcColumn
24144        https://bugs.webkit.org/show_bug.cgi?id=112922
24145
24146        Reviewed by Levi Weintraub.
24147
24148        Table cells widths are floored to ensure even distribution of available
24149        space across columns. The code path that computes the width of the
24150        _table_ failed to take this into account and thus can over report the
24151        total width of the table.
24152
24153        Test: fast/sub-pixel/table-with-subpixel-cell-size.html
24154
24155        * rendering/AutoTableLayout.cpp:
24156        (WebCore::AutoTableLayout::recalcColumn): Floor width to match column sizing logic.
24157
241582013-03-22  David Kilzer  <ddkilzer@apple.com>
24159
24160        BUILD FIX (r146208): Export shouldPrintExceptions methods for iOS
24161
24162        Fixes the following build failure:
24163
24164            Undefined symbols for architecture i386:
24165              "__ZN7WebCore11PageConsole24setShouldPrintExceptionsEb", referenced from:
24166                    +[WebCoreStatistics setShouldPrintExceptions:] in WebCoreStatistics.o
24167              "__ZN7WebCore11PageConsole21shouldPrintExceptionsEv", referenced from:
24168                    +[WebCoreStatistics shouldPrintExceptions] in WebCoreStatistics.o
24169            ld: symbol(s) not found for architecture i386
24170            clang: error: linker command failed with exit code 1 (use -v to see invocation)
24171
24172        * WebCore.exp.in: Move symbols so they're exported for iOS as
24173        well.
24174
241752013-03-22  Yury Semikhatsky  <yurys@chromium.org>
24176
24177        Unreviewed. Fix Chromium Win compilation after r146583.
24178
24179        * bindings/v8/CustomElementHelpers.cpp:
24180        (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
24181
241822013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
24183
24184        Web Inspector: Flame Chart. Chart has to be zoomed around the mouse pointer.
24185        https://bugs.webkit.org/show_bug.cgi?id=113031
24186
24187        Reviewed by Yury Semikhatsky.
24188
24189        Overview grid is able to zoom around the mouse pointer.
24190        So the simplest way is to translate x coordinate of the mouse pointer hovered over the chart
24191        to x coordinate in term of overview window and pass it to the zoom function.
24192
24193        Minor unrelated fix: draw small border at bottom of the overview grid.
24194
24195        * inspector/front-end/FlameChart.js:
24196        (WebInspector.FlameChart.prototype._onMouseWheel):
24197        * inspector/front-end/OverviewGrid.js:
24198        (WebInspector.OverviewGrid.prototype.zoom):
24199        * inspector/front-end/flameChart.css:
24200        (#flame-chart-overview-container):
24201
242022013-03-22  No'am Rosenthal  <noam@webkit.org>
24203
24204        [Texmap] TextureMapperImageBuffer should not use rendering code for filters.
24205        https://bugs.webkit.org/show_bug.cgi?id=113040
24206
24207        Reviewed by Kenneth Rohde Christiansen.
24208
24209        Disable TextureMapperImageBuffer filters, until they can be done the right way.
24210        This should only disrupt accelerated filters in fallback mode, which is a very rare
24211        use case.
24212
24213        No new testable functionality.
24214
24215        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
24216        (WebCore::BitmapTextureImageBuffer::applyFilters):
24217
242182013-03-22  Sergey Ryazanov  <serya@chromium.org>
24219
24220        Web Inspector: Report more CSS errors
24221        https://bugs.webkit.org/show_bug.cgi?id=113022
24222
24223        Reviewed by Pavel Feldman.
24224
24225        Reporting next few CSS syntax errors in declaration_list.
24226
24227        * css/CSSGrammar.y.in:
24228
242292013-03-18  Yury Semikhatsky  <yurys@chromium.org>
24230
24231        Web Inspector: use individual samples to construct CPU profile flame chart
24232        https://bugs.webkit.org/show_bug.cgi?id=112569
24233
24234        Reviewed by Pavel Feldman.
24235
24236        Added an optional array of samples to the CPU profile returned over the
24237        protocol. Each sample is id of the profile node corresponding to the top frame
24238        of the sample's stack trace. The array of samples if present is used to draw
24239        the flame chart on the CPU profile panel, otherwise flame chart is drawn based
24240        on the aggregated profile data.
24241
24242        * bindings/js/ScriptProfile.cpp:
24243        (WebCore::ScriptProfile::buildInspectorObjectForSamples):
24244        * bindings/js/ScriptProfile.h:
24245        (ScriptProfile):
24246        * bindings/v8/ScriptProfile.cpp:
24247        (WebCore::buildInspectorObjectFor):
24248        (WebCore):
24249        (WebCore::ScriptProfile::buildInspectorObjectForSamples):
24250        * bindings/v8/ScriptProfile.h:
24251        (ScriptProfile):
24252        * bindings/v8/ScriptProfiler.cpp:
24253        (WebCore::ScriptProfiler::start):
24254        * inspector/Inspector.json:
24255        * inspector/InspectorProfilerAgent.cpp:
24256        (WebCore::InspectorProfilerAgent::getCPUProfile):
24257        * inspector/front-end/CPUProfileView.js:
24258        (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
24259        (WebInspector.CPUProfileView.prototype._buildIdToNodeMap):
24260        * inspector/front-end/FlameChart.js:
24261        (WebInspector.FlameChart.prototype._calculateTimelineData):
24262
242632013-03-22  Steve Block  <steveblock@chromium.org>
24264
24265        Use generated bindings for the Coordinates type used by Geolocation
24266        https://bugs.webkit.org/show_bug.cgi?id=112975
24267
24268        Reviewed by Kentaro Hara.
24269
24270        No new tests, refactoring only.
24271
24272        * CMakeLists.txt:
24273        * GNUmakefile.list.am:
24274        * Modules/geolocation/Coordinates.cpp: Renamed from Source/WebCore/bindings/js/JSCoordinatesCustom.cpp.
24275        (WebCore):
24276        (WebCore::Coordinates::altitude):
24277        (WebCore::Coordinates::altitudeAccuracy):
24278        (WebCore::Coordinates::heading):
24279        (WebCore::Coordinates::speed):
24280        * Modules/geolocation/Coordinates.h:
24281        (Coordinates):
24282        * Modules/geolocation/Coordinates.idl:
24283        * Target.pri:
24284        * UseJSC.cmake:
24285        * UseV8.cmake:
24286        * WebCore.gypi:
24287        * WebCore.vcproj/WebCore.vcproj:
24288        * WebCore.vcxproj/WebCore.vcxproj:
24289        * WebCore.vcxproj/WebCore.vcxproj.filters:
24290        * WebCore.xcodeproj/project.pbxproj:
24291        * bindings/js/JSBindingsAllInOne.cpp:
24292        * bindings/v8/custom/V8CoordinatesCustom.cpp: Removed.
24293
242942013-03-22  Kunihiko Sakamoto  <ksakamoto@chromium.org>
24295
24296        INPUT_MULTIPLE_FIELDS_UI: Incomplete datetime format should fallback to default
24297        https://bugs.webkit.org/show_bug.cgi?id=113005
24298
24299        Reviewed by Kent Tamura.
24300
24301        Use fallback format when datetime format from locale is not complete.
24302
24303        Tests: fast/forms/date-multiple-fields/date-multiple-fields-fallback-format.html
24304               fast/forms/datetime-multiple-fields/datetime-multiple-fields-fallback-format.html
24305               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format.html
24306               fast/forms/month-multiple-fields/month-multiple-fields-fallback-format.html
24307               fast/forms/time-multiple-fields/time-multiple-fields-fallback-format.html
24308               fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html
24309
24310        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
24311        (DateTimeFormatValidator): A helper class that parses datetime format and tests existence of fields.
24312        (WebCore::DateTimeFormatValidator::DateTimeFormatValidator):
24313        (WebCore::DateTimeFormatValidator::visitField):
24314        (WebCore::DateTimeFormatValidator::validateFormat): Parses datetime format and validates by calling BaseMultipleFieldsDateAndTimeInputType::isValidFormat.
24315        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Checks if dateTimeFormat is valid, and uses fallback format if not.
24316        * html/BaseMultipleFieldsDateAndTimeInputType.h:
24317        (BaseMultipleFieldsDateAndTimeInputType): Declare isValidFormat.
24318        * html/DateInputType.cpp:
24319        (WebCore::DateInputType::isValidFormat): Added.
24320        * html/DateInputType.h:
24321        (DateInputType):
24322        * html/DateTimeInputType.cpp:
24323        (WebCore::DateTimeInputType::isValidFormat): Added.
24324        * html/DateTimeInputType.h:
24325        (DateTimeInputType):
24326        * html/DateTimeLocalInputType.cpp:
24327        (WebCore::DateTimeLocalInputType::isValidFormat): Added.
24328        * html/DateTimeLocalInputType.h:
24329        (DateTimeLocalInputType):
24330        * html/MonthInputType.cpp:
24331        (WebCore::MonthInputType::isValidFormat): Added.
24332        * html/MonthInputType.h:
24333        (MonthInputType):
24334        * html/TimeInputType.cpp:
24335        (WebCore::TimeInputType::isValidFormat): Added.
24336        * html/TimeInputType.h:
24337        (TimeInputType):
24338        * html/WeekInputType.cpp:
24339        (WebCore::WeekInputType::isValidFormat): Added.
24340        * html/WeekInputType.h:
24341        (WeekInputType):
24342
243432013-03-22  Hajime Morrita  <morrita@google.com>
24344
24345        Custom Elements: "readyCallback" lifecycle callback should be called.
24346        https://bugs.webkit.org/show_bug.cgi?id=112538
24347
24348        Reviewed by Elliott Sprehn.
24349
24350        This change allows each custom element definition to hook up its instantiation,
24351        namely "readyCallback" lifecycle callback.
24352
24353        The change has two parts:
24354        - 1. Tracking which Element objects to be created.
24355        - 2. Invoking appropriate JavaScript functions, which are readyCallback(),
24356          before the Element object is visible from page script.
24357
24358        For 1, CustomElementRegistry maintains list of "callback
24359        invocaions".  Each list item ("invocation") tracks the element
24360        which has a lifecycle callback to be invoked. Each invocation is
24361        registered when - Any custom element C++ object is instantiated.
24362        See changes on CustomElementConstructor.cpp.
24363
24364        This also happens when @is attribute is set by the parser or node
24365        cloning routine, which can turn a non-custom element into a
24366        type-extended custom element. See changes on Element.cpp.
24367
24368        For 2, CustomElementRegistry basically follows what
24369        MutationObserver is doing, and introduces a method called
24370        deliverLifecycleCallbacks(). This function flushes all pending
24371        callback invocations. You can think it as a dual of
24372        MutationObserver::deliverAllMutations().
24373
24374        The delivery function is called places where MutationObserver's
24375        deliverAllMutations() is called. In addition, it is also called
24376        just before returning from a set of DOM APIs. For example, it is
24377        called just before createElement() returns, so that possibly
24378        created custom element becomes ready through its readyCallback().
24379        Such APIs get "V8DeliverCustomElementCallbacks" IDL attribute. In
24380        principle, APIs which can create new custom element instnaces are
24381        marked. See CustomElementRegistry::CallbackDeliveryScope and
24382        changes on CodeGeneratorV8.pm.
24383
24384        We need this extra work because the readyCallback() needs to give
24385        an illusion so that JavaScript programmers feel like the
24386        readyCallback() callback being called just after it is created,
24387        instead of called on arbitrary late timing like MutationObserver
24388        notifications.
24389
24390        Tests: fast/dom/custom/lifecycle-ready-createElement-recursion.html
24391               fast/dom/custom/lifecycle-ready-createElement-reentrancy.html
24392               fast/dom/custom/lifecycle-ready-creation-api.html
24393               fast/dom/custom/lifecycle-ready-innerHTML.html
24394               fast/dom/custom/lifecycle-ready-parser-only.html
24395               fast/dom/custom/lifecycle-ready-parser-script.html
24396               fast/dom/custom/lifecycle-ready-paste.html
24397
24398        * bindings/scripts/CodeGeneratorV8.pm:
24399        - Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
24400        (GenerateCustomElementInvocationScopeIfNeeded):
24401        (GenerateNormalAttrSetter):
24402        (GenerateFunction):
24403        * bindings/scripts/IDLAttributes.txt:
24404        * bindings/v8/CustomElementHelpers.cpp:
24405        (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
24406        (WebCore::CustomElementHelpers::invokeReadyCallbacksIfNeeded):
24407        * bindings/v8/CustomElementHelpers.h:
24408        (CustomElementHelpers):
24409        * bindings/v8/V8RecursionScope.cpp: Added deliverAllLifecycleCallbacks()
24410        (WebCore::V8RecursionScope::didLeaveScriptContext):
24411        * dom/CustomElementConstructor.cpp:
24412        (WebCore::CustomElementConstructor::createElement):
24413        (WebCore::CustomElementConstructor::createElementInternal):
24414        * dom/CustomElementConstructor.h:
24415        (WebCore::CustomElementConstructor::isExtended):
24416        (CustomElementConstructor):
24417        * dom/CustomElementRegistry.cpp: Adding element tracking and invocation execution.
24418        (WebCore::CustomElementInvocation::CustomElementInvocation):
24419        (WebCore::CustomElementInvocation::~CustomElementInvocation):
24420        (WebCore::activeCustomElementRegistries):
24421        (WebCore::CustomElementRegistry::~CustomElementRegistry):
24422        (WebCore::CustomElementRegistry::didGiveTypeExtension):
24423        (WebCore::CustomElementRegistry::didCreateElement):
24424        (WebCore::CustomElementRegistry::activate):
24425        (WebCore::CustomElementRegistry::deactivate):
24426        (WebCore::CustomElementRegistry::deliverLifecycleCallbacks):
24427        (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacks):
24428        * dom/CustomElementRegistry.h:
24429        (CustomElementInvocation):
24430        (WebCore::CustomElementInvocation::element):
24431        (CallbackDeliveryScope):
24432        (WebCore::CustomElementRegistry::CallbackDeliveryScope::CallbackDeliveryScope):
24433        (WebCore::CustomElementRegistry::CallbackDeliveryScope::~CallbackDeliveryScope):
24434        (CustomElementRegistry):
24435        (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacksIfNeeded):
24436        * dom/Document.cpp:
24437        (WebCore::Document::createElement):
24438        (WebCore::Document::didCreateCustomElement):
24439        * dom/Document.h:
24440        (Document):
24441        * dom/Document.idl:
24442        * dom/Element.cpp:
24443        (WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
24444        (WebCore::Element::parserSetAttributes):
24445        (WebCore::Element::cloneAttributesFromElement):
24446        * dom/Element.h:
24447        * dom/Node.idl:
24448        * dom/ShadowRoot.idl:
24449        * html/HTMLElement.idl:
24450        * html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
24451        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
24452        (WebCore::HTMLScriptRunner::runScript):
24453
244542013-03-22  Tommy Widenflycht  <tommyw@google.com>
24455
24456        MediaStream API: Finalize the RTCPeerConnection states
24457        https://bugs.webkit.org/show_bug.cgi?id=112792
24458
24459        Reviewed by Adam Barth.
24460
24461        This patch finalized the RTCPeerConnection state and events. These changes
24462        have not yet pushed out to the editors draft; but they are uncontroversial
24463        and agreed upon.
24464
24465        readyState will be deleted; please use the replacement signalingState which is already available.
24466        onstatechange -> onsignalingstatechange
24467        onicechange -> oniceconnectionstatechange
24468        ongatheringchange will be deleted since oniceconnectionstatechange can be used for the same purpose.
24469        RTCIceConnectionState::"starting" -> RTCIceConnectionState::"new"
24470
24471        Patch covered by modified tests.
24472
24473        * Modules/mediastream/RTCPeerConnection.cpp:
24474        (WebCore::RTCPeerConnection::RTCPeerConnection):
24475        (WebCore::RTCPeerConnection::iceConnectionState):
24476        (WebCore::RTCPeerConnection::changeSignalingState):
24477        (WebCore::RTCPeerConnection::changeIceGatheringState):
24478        (WebCore::RTCPeerConnection::changeIceConnectionState):
24479        * Modules/mediastream/RTCPeerConnection.h:
24480        (RTCPeerConnection):
24481        * Modules/mediastream/RTCPeerConnection.idl:
24482        * dom/EventNames.h:
24483        (WebCore):
24484        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
24485
244862013-03-22  Mike West  <mkwst@chromium.org>
24487
24488        Prefer 'KURL(ParsedURLString, String)' when dealing with known-good data.
24489        https://bugs.webkit.org/show_bug.cgi?id=112965
24490
24491        Reviewed by Alexey Proskuryakov.
24492
24493        In https://bugs.webkit.org/show_bug.cgi?id=112783#c6, Adam noted that
24494        it would be possible to use 'KURL(ParsedURLString, [url])' rather than
24495        'KURL(KURL(), [url])', since we knew that the URL in question is a
24496        value and absolute URL. This patch fixes the obvious instances of this
24497        pattern; there are several more 'KURL(KURL(), String)' calls in
24498        WebCore but these were the only places I was reasonably sure that bad
24499        data couldn't creep in.
24500
24501        * dom/Document.cpp:
24502        (WebCore::Document::updateBaseURL):
24503            'documentURI' is pulled from 'url()->string()'. It's safe.
24504        * page/ContentSecurityPolicy.cpp:
24505        (WebCore::gatherSecurityPolicyViolationEventData):
24506        (WebCore::ContentSecurityPolicy::reportViolation):
24507            'CallFrame::sourceURL()' is a known valid/absolute URL.
24508        * page/SecurityOrigin.cpp:
24509        (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
24510        (WebCore::SecurityOrigin::create):
24511            The strings constructed here are certainly valid.
24512
245132013-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
24514
24515        Web Inspector: Flame Chart. move overview window when user scrolls the chart.
24516        https://bugs.webkit.org/show_bug.cgi?id=113014
24517
24518        Reviewed by Yury Semikhatsky.
24519
24520        I found that I could use scaling mechanics in OverviewGrid for scaling the chart.
24521        But the dragging part was not so simple due to the different approaches in
24522        OverviewGrid and FlameChart. OverviewGrid used _windowLeft and _windowRight
24523        when FlameChart used _xOffset and _xScaleFactor and width.
24524        It was not practical and I rewrote the FlameChart mechanics
24525        and now it also uses _windowLeft _windowRight.
24526
24527        * inspector/front-end/FlameChart.js:
24528        (WebInspector.FlameChart):
24529        (WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
24530        (WebInspector.FlameChart.Calculator.prototype.computePosition):
24531        (WebInspector.FlameChart.prototype._onWindowChanged):
24532        (WebInspector.FlameChart.prototype._startCanvasDragging):
24533        (WebInspector.FlameChart.prototype._canvasDragging):
24534        (WebInspector.FlameChart.prototype._onMouseMove):
24535        (WebInspector.FlameChart.prototype._onMouseWheel):
24536        (WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
24537        (WebInspector.FlameChart.prototype._drawOverviewCanvas):
24538        (WebInspector.FlameChart.prototype.draw):
24539        (WebInspector.FlameChart.prototype._updateBoundaries):
24540        (WebInspector.FlameChart.prototype.update):
24541        * inspector/front-end/OverviewGrid.js:
24542        (WebInspector.OverviewGrid.prototype.setWindowPosition):
24543        (WebInspector.OverviewGrid.prototype.setWindow):
24544        (WebInspector.OverviewGrid.prototype.addEventListener):
24545        (WebInspector.OverviewGrid.prototype.zoom):
24546        (WebInspector.OverviewGrid.Window.prototype._zoom):
24547        * inspector/front-end/inspectorCommon.css:
24548        (.overview-grid-window-rulers):
24549
245502013-03-22  Steve Block  <steveblock@chromium.org>
24551
24552        Move GeolocationClient.h to Modules/geolocation/
24553        https://bugs.webkit.org/show_bug.cgi?id=112997
24554
24555        Reviewed by Kentaro Hara.
24556
24557        No new tests, no functional change.
24558
24559        * GNUmakefile.list.am:
24560        * Modules/geolocation/GeolocationClient.h: Renamed from Source/WebCore/page/GeolocationClient.h.
24561        (WebCore):
24562        (GeolocationClient):
24563        (WebCore::GeolocationClient::~GeolocationClient):
24564        * WebCore.vcproj/WebCore.vcproj:
24565        * WebCore.vcxproj/WebCore.vcxproj:
24566        * WebCore.vcxproj/WebCore.vcxproj.filters:
24567        * WebCore.xcodeproj/project.pbxproj:
24568
245692013-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
24570
24571        Unreviewed, rolling out r146534 and r146565.
24572        http://trac.webkit.org/changeset/146534
24573        http://trac.webkit.org/changeset/146565
24574        https://bugs.webkit.org/show_bug.cgi?id=113017
24575
24576        "r146534 caused perf regression on Chromium Linux x64"
24577        (Requested by yurys on #webkit).
24578
24579        * bindings/scripts/CodeGeneratorV8.pm:
24580        (GenerateNormalAttrSetter):
24581        (GenerateOverloadedFunction):
24582        (GenerateFunctionCallback):
24583        (GenerateFunction):
24584        (GenerateParametersCheck):
24585        (GenerateSingleConstructorCallback):
24586        (GenerateNonStandardFunction):
24587        (GenerateImplementation):
24588        (GenerateFunctionCallString):
24589        * bindings/scripts/IDLAttributes.txt:
24590        * bindings/scripts/test/V8/V8Float64Array.cpp:
24591        (WebCore):
24592        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
24593        (WebCore):
24594        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
24595        (WebCore):
24596        * bindings/scripts/test/V8/V8TestInterface.cpp:
24597        (WebCore):
24598        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
24599        (WebCore):
24600        * bindings/scripts/test/V8/V8TestObj.cpp:
24601        (WebCore):
24602        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
24603        (WebCore):
24604        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
24605        (WebCore):
24606        * bindings/v8/CustomElementHelpers.cpp:
24607        * bindings/v8/CustomElementHelpers.h:
24608        (WebCore):
24609        (CustomElementHelpers):
24610        * bindings/v8/V8DOMConfiguration.cpp:
24611        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
24612        (WebCore::V8DOMConfiguration::configureTemplate):
24613        * bindings/v8/V8DOMConfiguration.h:
24614        (BatchedMethod):
24615        (V8DOMConfiguration):
24616        * bindings/v8/V8RecursionScope.cpp:
24617        (WebCore::V8RecursionScope::didLeaveScriptContext):
24618        * dom/CustomElementConstructor.cpp:
24619        (WebCore::CustomElementConstructor::createElement):
24620        * dom/CustomElementConstructor.h:
24621        (CustomElementConstructor):
24622        * dom/CustomElementRegistry.cpp:
24623        (WebCore::CustomElementRegistry::~CustomElementRegistry):
24624        * dom/CustomElementRegistry.h:
24625        (WebCore):
24626        (CustomElementRegistry):
24627        * dom/Document.cpp:
24628        (WebCore::Document::createElement):
24629        (WebCore::Document::registerElement):
24630        * dom/Document.h:
24631        * dom/Document.idl:
24632        * dom/Element.cpp:
24633        (WebCore::Element::parserSetAttributes):
24634        (WebCore::Element::cloneAttributesFromElement):
24635        * dom/Element.h:
24636        * dom/Element.idl:
24637        * dom/Node.idl:
24638        * dom/ShadowRoot.idl:
24639        * html/HTMLElement.idl:
24640        * html/parser/HTMLScriptRunner.cpp:
24641        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
24642        (WebCore::HTMLScriptRunner::runScript):
24643
246442013-03-22  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
24645
24646        [GStreamer] Memory leak in AudioFileReader::createBus()
24647        https://bugs.webkit.org/show_bug.cgi?id=112925
24648
24649        Reviewed by Martin Robinson.
24650
24651        Adopt the reference returned by g_timeout_source_new()
24652        to fix a memory leak.
24653
24654        No new tests. No change in behavior.
24655
24656        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
24657        (WebCore::AudioFileReader::createBus):
24658
246592013-03-22  Steve Block  <steveblock@chromium.org>
24660
24661        Move page/Coordinates.[h|idl] to Modules/geolocation/
24662        https://bugs.webkit.org/show_bug.cgi?id=112945
24663
24664        Reviewed by Kentaro Hara.
24665
24666        No new tests, no functional change.
24667
24668        * CMakeLists.txt:
24669        * DerivedSources.make:
24670        * DerivedSources.pri:
24671        * GNUmakefile.list.am:
24672        * Modules/geolocation/Coordinates.h: Renamed from Source/WebCore/page/Coordinates.h.
24673        (WebCore):
24674        (Coordinates):
24675        (WebCore::Coordinates::create):
24676        (WebCore::Coordinates::isolatedCopy):
24677        (WebCore::Coordinates::latitude):
24678        (WebCore::Coordinates::longitude):
24679        (WebCore::Coordinates::altitude):
24680        (WebCore::Coordinates::accuracy):
24681        (WebCore::Coordinates::altitudeAccuracy):
24682        (WebCore::Coordinates::heading):
24683        (WebCore::Coordinates::speed):
24684        (WebCore::Coordinates::canProvideAltitude):
24685        (WebCore::Coordinates::canProvideAltitudeAccuracy):
24686        (WebCore::Coordinates::canProvideHeading):
24687        (WebCore::Coordinates::canProvideSpeed):
24688        (WebCore::Coordinates::Coordinates):
24689        * Modules/geolocation/Coordinates.idl: Renamed from Source/WebCore/page/Coordinates.idl.
24690        * Target.pri:
24691        * WebCore.gypi:
24692        * WebCore.vcproj/WebCore.vcproj:
24693        * WebCore.vcxproj/WebCore.vcxproj:
24694        * WebCore.vcxproj/WebCore.vcxproj.filters:
24695        * WebCore.xcodeproj/project.pbxproj:
24696
246972013-03-21  Hajime Morrita  <morrita@google.com>
24698
24699        Custom Elements: "readyCallback" lifecycle callback should be called.
24700        https://bugs.webkit.org/show_bug.cgi?id=112538
24701
24702        Reviewed by Elliott Sprehn.
24703
24704        This change allows each custom element definition to hook up its instantiation,
24705        namely "readyCallback" lifecycle callback.
24706
24707        The change has two parts:
24708        - 1. Tracking which Element objects to be created.
24709        - 2. Invoking appropriate JavaScript functions, which are readyCallback(),
24710          before the Element object is visible from page script.
24711
24712        For 1, CustomElementRegistry maintains list of "callback
24713        invocaions".  Each list item ("invocation") tracks the element
24714        which has a lifecycle callback to be invoked. Each invocation is
24715        registered when - Any custom element C++ object is instantiated.
24716        See changes on CustomElementConstructor.cpp.
24717
24718        This also happens when @is attribute is set by the parser or node
24719        cloning routine, which can turn a non-custom element into a
24720        type-extended custom element. See changes on Element.cpp.
24721
24722        For 2, CustomElementRegistry basically follows what
24723        MutationObserver is doing, and introduces a method called
24724        deliverLifecycleCallbacks(). This function flushes all pending
24725        callback invocations. You can think it as a dual of
24726        MutationObserver::deliverAllMutations().
24727
24728        The delivery function is called places where MutationObserver's
24729        deliverAllMutations() is called. In addition, it is also called
24730        just before returning from a set of DOM APIs. For example, it is
24731        called just before createElement() returns, so that possibly
24732        created custom element becomes ready through its readyCallback().
24733        Such APIs get "V8DeliverCustomElementCallbacks" IDL attribute. In
24734        principle, APIs which can create new custom element instnaces are
24735        marked. See CustomElementRegistry::CallbackDeliveryScope and
24736        changes on CodeGeneratorV8.pm.
24737
24738        We need this extra work because the readyCallback() needs to give
24739        an illusion so that JavaScript programmers feel like the
24740        readyCallback() callback being called just after it is created,
24741        instead of called on arbitrary late timing like MutationObserver
24742        notifications.
24743
24744        Tests: fast/dom/custom/lifecycle-ready-createElement-recursion.html
24745               fast/dom/custom/lifecycle-ready-createElement-reentrancy.html
24746               fast/dom/custom/lifecycle-ready-creation-api.html
24747               fast/dom/custom/lifecycle-ready-innerHTML.html
24748               fast/dom/custom/lifecycle-ready-parser-only.html
24749               fast/dom/custom/lifecycle-ready-parser-script.html
24750               fast/dom/custom/lifecycle-ready-paste.html
24751
24752        * bindings/scripts/CodeGeneratorV8.pm:
24753        - Hooked up CallbackDeliveryScope through V8DeliverCustomElementCallbacks attriute.
24754        (GenerateCustomElementInvocationScopeIfNeeded):
24755        (GenerateNormalAttrSetter):
24756        (GenerateFunction):
24757        * bindings/scripts/IDLAttributes.txt:
24758        * bindings/v8/CustomElementHelpers.cpp:
24759        (WebCore::CustomElementHelpers::invokeReadyCallbackIfNeeded):
24760        (WebCore::CustomElementHelpers::invokeReadyCallbacksIfNeeded):
24761        * bindings/v8/CustomElementHelpers.h:
24762        (CustomElementHelpers):
24763        * bindings/v8/V8RecursionScope.cpp: Added deliverAllLifecycleCallbacks()
24764        (WebCore::V8RecursionScope::didLeaveScriptContext):
24765        * dom/CustomElementConstructor.cpp:
24766        (WebCore::CustomElementConstructor::createElement):
24767        (WebCore::CustomElementConstructor::createElementInternal):
24768        * dom/CustomElementConstructor.h:
24769        (WebCore::CustomElementConstructor::isExtended):
24770        (CustomElementConstructor):
24771        * dom/CustomElementRegistry.cpp: Adding element tracking and invocation execution.
24772        (WebCore::CustomElementInvocation::CustomElementInvocation):
24773        (WebCore::CustomElementInvocation::~CustomElementInvocation):
24774        (WebCore::activeCustomElementRegistries):
24775        (WebCore::CustomElementRegistry::~CustomElementRegistry):
24776        (WebCore::CustomElementRegistry::didGiveTypeExtension):
24777        (WebCore::CustomElementRegistry::didCreateElement):
24778        (WebCore::CustomElementRegistry::activate):
24779        (WebCore::CustomElementRegistry::deactivate):
24780        (WebCore::CustomElementRegistry::deliverLifecycleCallbacks):
24781        (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacks):
24782        * dom/CustomElementRegistry.h:
24783        (CustomElementInvocation):
24784        (WebCore::CustomElementInvocation::element):
24785        (CallbackDeliveryScope):
24786        (WebCore::CustomElementRegistry::CallbackDeliveryScope::CallbackDeliveryScope):
24787        (WebCore::CustomElementRegistry::CallbackDeliveryScope::~CallbackDeliveryScope):
24788        (CustomElementRegistry):
24789        (WebCore::CustomElementRegistry::deliverAllLifecycleCallbacksIfNeeded):
24790        * dom/Document.cpp:
24791        (WebCore::Document::createElement):
24792        (WebCore::Document::didCreateCustomElement):
24793        * dom/Document.h:
24794        (Document):
24795        * dom/Document.idl:
24796        * dom/Element.cpp:
24797        (WebCore::Element::attributeChangedFromParserOrByCloning): Added to catch @is attribute
24798        (WebCore::Element::parserSetAttributes):
24799        (WebCore::Element::cloneAttributesFromElement):
24800        * dom/Element.h:
24801        * dom/Node.idl:
24802        * dom/ShadowRoot.idl:
24803        * html/HTMLElement.idl:
24804        * html/parser/HTMLScriptRunner.cpp: Added deliverAllLifecycleCallbacks()
24805        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
24806        (WebCore::HTMLScriptRunner::runScript):
24807
248082013-03-21  Jer Noble  <jer.noble@apple.com>
24809
24810        Crash in WebCore::MediaPlayer::cachedResourceLoader + 4
24811        https://bugs.webkit.org/show_bug.cgi?id=112977
24812
24813        Reviewed by Geoffrey Garen.
24814
24815        Speculative fix for a NULL-dereference crash. MediaPlayerPrivateAVFoundationObjC is the
24816        sole owner of a WebCoreAVFLoaderDelegate instance. It releases this instance in its destructor,
24817        but it is possible that, on another thread, the AVAssetResourceLoader has already begun
24818        using the delegate and in so doing has retained it. By the time the delegate method is fired
24819        on the main thread, the MediaPlayerPrivateAVFoundationObjC owner of the delegate has already
24820        been deleted, and the delegate's m_callback pointer is now pointing at freed memory.
24821
24822        In addition to calling -[AVAssetResourceLoader setDelegate:queue:] to avoid any not-yet-started
24823        delegate callbacks, MediaPlayerPrivateAVFoundationObjC should clear the WebCoreAVFLoaderDelegate
24824        m_callback ivar, to avoid calling into freed memory for already queued delegate callbacks.
24825
24826        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
24827        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Clear the m_loaderDelegate's callback pointer.
24828        (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Check the value of m_callback before continuing.
24829        (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]): Ditto.
24830        (-[WebCoreAVFLoaderDelegate setCallback:]): Added simple setter.
24831
248322013-03-21  Takashi Sakamoto  <tasak@google.com>
24833
24834        XMLDocumentParser doesn't parse <template> correctly.
24835        https://bugs.webkit.org/show_bug.cgi?id=112328
24836
24837        Reviewed by Hajime Morrita.
24838
24839        XMLDocumentParser should check whether a parent node is attached or not
24840        when a new element is appended.
24841
24842        Test: fast/dom/HTMLTemplateElement/xhtml-with-titleElement-parsing-crash.xhtml
24843
24844        * xml/parser/XMLDocumentParserLibxml2.cpp:
24845        (WebCore::XMLDocumentParser::startElementNs):
24846        m_currentNode is a parent node of newElement, but it is updated by
24847        pushCurrentNode. So firstly stored copied m_curretNode's value into
24848        local currentNode and used the currentNode to check whether
24849        newElement's parent is attached or not.
24850
248512013-03-21  David Grogan  <dgrogan@chromium.org>
24852
24853        Unreviewed, rolling out r146560.
24854        http://trac.webkit.org/changeset/146560
24855        https://bugs.webkit.org/show_bug.cgi?id=112862
24856
24857        invalid parameter to histogram
24858
24859        * platform/leveldb/LevelDBDatabase.cpp:
24860        (WebCore::LevelDBDatabase::open):
24861
248622013-03-21  David Grogan  <dgrogan@chromium.org>
24863
24864        IndexedDB: Histogram available disk space on attempt to open database
24865        https://bugs.webkit.org/show_bug.cgi?id=112862
24866
24867        Reviewed by Adam Barth.
24868
24869        ChromeOS suspects they might be hitting disk corruption when the disks
24870        are nearly full. This patch logs the available space to either the
24871        "success" or the "fail" histogram as appropriate so that the
24872        distributions can be compared.
24873
24874        No new tests - I don't know of a good way to test histograms. Local
24875        printf testing didn't turn up any bugs.
24876
24877        * platform/leveldb/LevelDBDatabase.cpp:
24878        (WebCore::HistogramFreeSpace):
24879        (WebCore):
24880        (WebCore::LevelDBDatabase::open):
24881
248822013-03-21  Li Yin  <li.yin@intel.com>
24883
24884        FileAPI: Remove deprecation warning when ArrayBuffer is in Blob constructor.
24885        https://bugs.webkit.org/show_bug.cgi?id=88389
24886
24887        Reviewed by Kenneth Russell.
24888
24889        Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
24890        Both ArrayBuffer and ArrayBufferView should be supported for Blob constructor.
24891
24892        Test: fast/files/blob-constructor.html.
24893
24894        * bindings/js/JSBlobCustom.cpp:
24895        (WebCore::JSBlobConstructor::constructJSBlob):
24896        * bindings/v8/custom/V8BlobCustom.cpp:
24897        (WebCore::V8Blob::constructorCustom):
24898        * fileapi/WebKitBlobBuilder.cpp:
24899        (WebCore::BlobBuilder::append): Remove the deprecated warning.
24900        * fileapi/WebKitBlobBuilder.h:
24901        (WebCore):
24902        (BlobBuilder):
24903
249042013-03-21  Takashi Sakamoto  <tasak@google.com>
24905
24906        [Shadow]: @host styles are not applied dynamically
24907        https://bugs.webkit.org/show_bug.cgi?id=112869
24908
24909        Reviewed by Elliott Sprehn.
24910
24911        Need to add features of @host @-rules to rule feature set.
24912
24913        Test: fast/dom/shadow/athost-apply-dynamically.html
24914
24915        * css/StyleScopeResolver.cpp:
24916        (WebCore::StyleScopeResolver::collectFeaturesTo):
24917
249182013-03-21  Hayato Ito  <hayato@chromium.org>
24919
24920        [Shadow] Provide an api of insertionParent().
24921        https://bugs.webkit.org/show_bug.cgi?id=112866
24922
24923        Add insertinParent binding to Element and Text.
24924        It's prefixed (webkitInsertionParent) and guarded by SHADOW_DOM flag.
24925
24926        The bug in the Shadow DOM spec is here:
24927        https://www.w3.org/Bugs/Public/show_bug.cgi?id=21067
24928
24929        Reviewed by Dimitri Glazkov.
24930
24931        Test: fast/dom/shadow/insertion-parent.html
24932
24933        * dom/Element.idl:
24934        * dom/Node.cpp:
24935        (WebCore::Node::insertionParentForBinding):
24936        (WebCore):
24937        * dom/Node.h:
24938        (Node):
24939        * dom/Text.idl:
24940
249412013-03-21  Tom Sepez  <tsepez@chromium.org>
24942
24943        Bypass XSSAuditor for asp.net servers.
24944        https://bugs.webkit.org/show_bug.cgi?id=112235
24945
24946        Reviewed by Adam Barth.
24947
24948        Similar to https://bugs.webkit.org/show_bug.cgi?id=81283, but the 
24949        fix to that bug failed to cover this particular comma-splicing case.
24950        
24951        Test: http/tests/security/xssAuditor/img-tag-with-comma.html
24952
24953        * html/parser/XSSAuditor.cpp:
24954        (WebCore::isTerminatingCharacter):
24955        Beware of comma-splicing tricks by stopping at commas.
24956
249572013-03-21  Brady Eidson  <beidson@apple.com>
24958
24959        If a previously loaded resource is later stored to the disk cache, replace the buffer with MMAP'ed memory.
24960        <rdar://problem/13414154> and https://bugs.webkit.org/show_bug.cgi?id=112943
24961
24962        Reviewed by Geoff Garen.
24963
24964        No new tests (No change in behavior.)
24965
24966        Give SharedBuffer the ability to replace its contents from another SharedBuffer:
24967        * platform/SharedBuffer.h:
24968        * platform/cf/SharedBufferCF.cpp:
24969        (WebCore::SharedBuffer:: tryReplaceContentsWithPlatformBuffer):
24970
24971        Forward along SharedBuffer's new ability to ResourceBuffer:
24972        * loader/mac/ResourceBuffer.mm:
24973        (WebCore::ResourceBuffer:: tryReplaceSharedBufferContents):
24974        * loader/ResourceBuffer.h:
24975
24976        Give CachedResource the ability to replace its encoded data buffer if appropriate:
24977        * loader/cache/CachedResource.cpp:
24978        (WebCore::CachedResource:: tryReplaceEncodedData):
24979        * loader/cache/CachedResource.h:
24980
24981        * WebCore.exp.in:
24982
249832013-03-21  Joshua Bell  <jsbell@chromium.org>
24984
24985        IndexedDB: Ensure script wrappers can be collected after context is stopped
24986        https://bugs.webkit.org/show_bug.cgi?id=112976
24987
24988        Reviewed by Adam Barth.
24989
24990        ActiveDOMObject::hasPendingActivity is called to see if script wrappers
24991        can be disposed of. Once the script execution context has stopped they
24992        should be free to go - include this in the checks.
24993
24994        No new tests - suggestions welcome.
24995
24996        * Modules/indexeddb/IDBDatabase.cpp:
24997        (WebCore::IDBDatabase::hasPendingActivity): Return false if stopped.
24998        (WebCore::IDBDatabase::stop): Don't bother calling empty super impl.
24999        * Modules/indexeddb/IDBRequest.cpp:
25000        (WebCore::IDBRequest::hasPendingActivity): Return false if stopped.
25001        (WebCore::IDBRequest::stop): Don't bother calling empty super impl.
25002        * Modules/indexeddb/IDBTransaction.cpp:
25003        (WebCore::IDBTransaction::hasPendingActivity): Return false if stopped.
25004        (WebCore::IDBTransaction::stop): Don't bother calling empty super impl.
25005
250062013-03-21  Russell McClellan  <russell.mcclellan@gmail.com>
25007
25008        Remove upcastPointer from ActiveDOMObject constructor
25009        https://bugs.webkit.org/show_bug.cgi?id=112858
25010
25011        Reviewed by Alexey Proskuryakov.
25012
25013        Removed pesky argument to ActiveDOMObject constructor that is no longer
25014        used.
25015
25016        No new tests (no change in behavior).
25017
25018        * Modules/battery/BatteryManager.cpp:
25019        (WebCore::BatteryManager::BatteryManager):
25020        * Modules/filesystem/DOMFileSystem.cpp:
25021        (WebCore::DOMFileSystem::DOMFileSystem):
25022        * Modules/filesystem/FileWriter.cpp:
25023        (WebCore::FileWriter::FileWriter):
25024        * Modules/geolocation/Geolocation.cpp:
25025        (WebCore::Geolocation::Geolocation):
25026        * Modules/indexeddb/IDBDatabase.cpp:
25027        (WebCore::IDBDatabase::IDBDatabase):
25028        * Modules/indexeddb/IDBRequest.cpp:
25029        (WebCore::IDBRequest::IDBRequest):
25030        * Modules/indexeddb/IDBTransaction.cpp:
25031        (WebCore::IDBTransaction::IDBTransaction):
25032        * Modules/mediasource/MediaSource.cpp:
25033        (WebCore::MediaSource::MediaSource):
25034        * Modules/mediastream/MediaStreamTrack.cpp:
25035        (WebCore::MediaStreamTrack::MediaStreamTrack):
25036        * Modules/mediastream/RTCDTMFSender.cpp:
25037        (WebCore::RTCDTMFSender::RTCDTMFSender):
25038        * Modules/mediastream/RTCPeerConnection.cpp:
25039        (WebCore::RTCPeerConnection::RTCPeerConnection):
25040        * Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
25041        (WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
25042        * Modules/mediastream/RTCStatsRequestImpl.cpp:
25043        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
25044        * Modules/mediastream/RTCVoidRequestImpl.cpp:
25045        (WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
25046        * Modules/networkinfo/NetworkInfoConnection.cpp:
25047        (WebCore::NetworkInfoConnection::NetworkInfoConnection):
25048        * Modules/notifications/Notification.cpp:
25049        (WebCore::Notification::Notification):
25050        * Modules/notifications/NotificationCenter.cpp:
25051        (WebCore::NotificationCenter::NotificationCenter):
25052        * Modules/speech/SpeechRecognition.cpp:
25053        (WebCore::SpeechRecognition::SpeechRecognition):
25054        * Modules/webaudio/AudioContext.cpp:
25055        (WebCore::AudioContext::AudioContext):
25056        * Modules/webdatabase/DatabaseContext.cpp:
25057        (WebCore::DatabaseContext::DatabaseContext):
25058        * Modules/websockets/WebSocket.cpp:
25059        (WebCore::WebSocket::WebSocket):
25060        * css/FontLoader.cpp:
25061        (WebCore::FontLoader::FontLoader):
25062        * dom/ActiveDOMObject.cpp:
25063        (WebCore::ActiveDOMObject::ActiveDOMObject):
25064        * dom/ActiveDOMObject.h:
25065        (ActiveDOMObject):
25066        * dom/ScriptExecutionContext.cpp:
25067        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
25068        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
25069        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
25070        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
25071        (WebCore::ScriptExecutionContext::didCreateActiveDOMObject):
25072        * dom/ScriptExecutionContext.h:
25073        (ScriptExecutionContext):
25074        (WebCore::ScriptExecutionContext::activeDOMObjects):
25075        * fileapi/FileReader.cpp:
25076        (WebCore::FileReader::FileReader):
25077        * html/HTMLMarqueeElement.cpp:
25078        (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
25079        * html/HTMLMediaElement.cpp:
25080        (WebCore::HTMLMediaElement::HTMLMediaElement):
25081        * html/canvas/WebGLRenderingContext.cpp:
25082        (WebCore):
25083        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
25084        * loader/Prerenderer.cpp:
25085        (WebCore::Prerenderer::Prerenderer):
25086        * page/EventSource.cpp:
25087        (WebCore::EventSource::EventSource):
25088        * page/SuspendableTimer.cpp:
25089        (WebCore::SuspendableTimer::SuspendableTimer):
25090        * workers/AbstractWorker.cpp:
25091        (WebCore::AbstractWorker::AbstractWorker):
25092        * workers/WorkerContext.cpp:
25093        (WebCore::WorkerContext::hasPendingActivity):
25094        * xml/XMLHttpRequest.cpp:
25095        (WebCore::XMLHttpRequest::XMLHttpRequest):
25096
250972013-03-21  Alexey Proskuryakov  <ap@apple.com>
25098
25099        [Mac] Move NSOperationQueue out of NetworkingContext
25100        https://bugs.webkit.org/show_bug.cgi?id=112970
25101
25102        Reviewed by Brady Eidson.
25103
25104        WebCore clients do not need explicit control over what queue ResourceHandle works on,
25105        they just want to avoid blocking main thread.
25106
25107        * platform/network/ResourceHandleClient.h:
25108        (WebCore::ResourceHandleClient::usesAsyncCallbacks): Added. The name doesn't quite
25109        match what ResourceHandleMac currently does, but it will very soon.
25110
25111        * platform/network/NetworkingContext.h:
25112        (WebCore::NetworkingContext::scheduledRunLoopPairs):
25113        * platform/network/mac/ResourceHandleMac.mm:
25114        (WebCore::operationQueueForAsyncClients):
25115        (WebCore::ResourceHandle::start):
25116
251172013-03-21  Marja Hölttä  <marja@chromium.org>
25118
25119        [V8] Generate specialized callbacks for the main world
25120        https://bugs.webkit.org/show_bug.cgi?id=112430
25121
25122        Reviewed by Jochen Eisinger.
25123
25124        The new specialized bindings will be faster, because they don't need to
25125        do the "main world, isolated world or a worker" check, but can right
25126        away assume that we're in the main world.
25127
25128        This patch generates main world bindings for getters and setters of Node,
25129        Element and Document.
25130
25131        No new tests (updated existing binding tests).
25132
25133        * bindings/scripts/CodeGeneratorV8.pm:
25134        (GenerateOverloadedFunction):
25135        (GenerateFunctionCallback):
25136        (GenerateFunction):
25137        (GenerateParametersCheck):
25138        (GenerateSingleConstructorCallback):
25139        (GenerateNonStandardFunction):
25140        (GenerateImplementation):
25141        (GenerateFunctionCallString):
25142        * bindings/scripts/test/V8/V8Float64Array.cpp:
25143        (WebCore):
25144        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
25145        (WebCore):
25146        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
25147        (WebCore):
25148        * bindings/scripts/test/V8/V8TestInterface.cpp:
25149        (WebCore):
25150        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
25151        (WebCore):
25152        * bindings/scripts/test/V8/V8TestObj.cpp:
25153        (WebCore):
25154        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
25155        (WebCore):
25156        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
25157        (WebCore):
25158        * bindings/v8/V8DOMConfiguration.cpp:
25159        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
25160        (WebCore::V8DOMConfiguration::configureTemplate):
25161        * bindings/v8/V8DOMConfiguration.h:
25162        (BatchedMethod):
25163        (V8DOMConfiguration):
25164        * dom/Document.idl:
25165        * dom/Element.idl:
25166        * dom/Node.idl:
25167
251682013-03-21  Elliott Sprehn  <esprehn@chromium.org>
25169
25170        Remove RenderObject::canHaveRegionStyle since nothing uses it
25171        https://bugs.webkit.org/show_bug.cgi?id=112973
25172
25173        Reviewed by Eric Seidel.
25174
25175        Nothing uses canHaveRegionStyle so we can remove it.
25176
25177        * rendering/RenderObject.h:
25178
251792013-03-21  Alok Priyadarshi  <alokp@chromium.org>
25180
25181        Mark GraphicsLayers as opaque when possible
25182        https://bugs.webkit.org/show_bug.cgi?id=70634
25183
25184        Reviewed by Simon Fraser.
25185
25186        Mark layers as opaque in a very simple case - any child renderer has an opaque background and covers the entire composited bounds. It is important to note that since we only consider the background, the only layer that can be marked opaque is the primary GraphicsLayer of a RenderLayer.
25187
25188        Tests: compositing/contents-opaque/background-clip.html
25189               compositing/contents-opaque/background-color.html
25190               compositing/contents-opaque/body-background-painted.html
25191               compositing/contents-opaque/body-background-skipped.html
25192               compositing/contents-opaque/layer-opacity.html
25193               compositing/contents-opaque/layer-transform.html
25194
25195        * rendering/RenderBox.cpp:
25196        (WebCore::skipBodyBackground):
25197        (WebCore):
25198        (WebCore::RenderBox::paintBackground):
25199        (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
25200        * rendering/RenderBox.h:
25201        (RenderBox):
25202        * rendering/RenderLayer.cpp:
25203        (WebCore::RenderLayer::backgroundIsKnownToBeOpaqueInRect):
25204        (WebCore):
25205        (WebCore::RenderLayer::listBackgroundIsKnownToBeOpaqueInRect):
25206        * rendering/RenderLayer.h:
25207        (RenderLayer):
25208        * rendering/RenderLayerBacking.cpp:
25209        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
25210        * rendering/RenderLayerModelObject.h:
25211        (RenderLayerModelObject):
25212        (WebCore::RenderLayerModelObject::backgroundIsKnownToBeOpaqueInRect):
25213
252142013-03-21  Alexandru Chiculita  <achicu@adobe.com>
25215
25216        [CSS Shaders] Implement a StyleCustomFilterProgram cache
25217        https://bugs.webkit.org/show_bug.cgi?id=112602
25218
25219        Reviewed by Dean Jackson.
25220
25221        When the style is recalculated, the new computed RenderStyle is saved as the m_style of the
25222        RenderObject, even if the style was not different.
25223
25224        In the case of Custom Filters, a new StyleCustomFilterProgram was created at all times, but the
25225        actual equality check was done by comparing the pair of cached shaders from inside the StyleCustomFilterProgram.
25226
25227        Because of that the RenderLayer::styleChanged was not called when the new StyleCustomFilterProgram was created, so it
25228        will end up still knowing only about the previous StyleCustomFilterProgram.
25229
25230        The RenderLayer sets itself as a client of the StyleCustomFilterProgram, so that it can repaint itself
25231        when the program is loaded, but because RenderLayer::styleChanged is not called, it will not add itself as a client of the new
25232        StyleCustomFilterProgram.
25233
25234        StyleCustomFilterProgram waits until the first client to load the programs, so in this case it will just remain unloaded.
25235
25236        There was no crash, but just an assert in debug mode. Also, as a visible side-effect some frames were rendered using blank shaders, 
25237        resulting in a pass-through filter.
25238
25239        The fix would be to actually make the RenderStyle::diff detect the change of the StyleCustomFilterProgram
25240        using the pointer value and not the values. However, that will always invalidate the "filter" property because
25241        of the StyleCustomFilterProgram that always gets created during the recalculation time.
25242
25243        I've added StyleCustomFilterProgramCache to cache all the instances of the StyleCustomFilterPrograms that a
25244        StyleResolver allocates. This way, next time it will try to reuse previously allocated StyleCustomFilterPrograms. 
25245        The key of the cache is the CustomFilterProgramInfo, that combines the URLs to the shaders and a couple of other program settings.
25246
25247        StyleCustomFilterProgramCache is owned by the StyleResovler and StyleCustomFilterPrograms are responsible with
25248        removing themselves from the cache when the last reference goes away.
25249
25250        This change makes the previous "platform level" program cache obsolete and I will remove that in a future patch.
25251        https://bugs.webkit.org/show_bug.cgi?id=112844
25252
25253        Test: css3/filters/custom/custom-filter-reload.html
25254
25255        * GNUmakefile.list.am:
25256        * Target.pri:
25257        * WebCore.gypi:
25258        * WebCore.vcproj/WebCore.vcproj:
25259        * WebCore.xcodeproj/project.pbxproj:
25260        * css/StyleResolver.cpp:
25261        (WebCore::StyleResolver::lookupCustomFilterProgram): Lookup any similar programs in the cache. It will create a new pending 
25262        StyleCustomFilterProgram if there is no pre-cached version of the program.
25263        if no program is found. loadPendingShaders is responsible for adding the program in the cache if it is actually going to be used.
25264        (WebCore::StyleResolver::loadPendingShaders): At this point the program is final, so it's safe to add it to the cache.
25265        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
25266        * css/StyleResolver.h:
25267        (StyleResolver):
25268        * css/WebKitCSSShaderValue.cpp:
25269        (WebCore::WebKitCSSShaderValue::completeURL): Factored out the function to compute the complete URL of the resource.
25270        (WebCore::WebKitCSSShaderValue::cachedShader):
25271        * css/WebKitCSSShaderValue.h:
25272        (WebCore::toWebKitCSSShaderValue):
25273        (WebKitCSSShaderValue):
25274        * platform/graphics/filters/CustomFilterOperation.cpp:
25275        (WebCore::CustomFilterOperation::blend):
25276        * platform/graphics/filters/CustomFilterOperation.h:
25277        (WebCore::CustomFilterOperation::operator==): Removed. Programs should now compare by pointer. Kept it as
25278        private to catch any potential use of it.
25279        * rendering/style/StyleCustomFilterProgram.cpp: Copied from Source/WebCore/css/WebKitCSSShaderValue.h.
25280        (WebCore::StyleCustomFilterProgram::~StyleCustomFilterProgram): Destructor removes the program from the cache.
25281        * rendering/style/StyleCustomFilterProgram.h:
25282        (WebCore::StyleCustomFilterProgram::setVertexShader): Added an assert to check that the shader is not in the
25283        cache while the mutation happens. Otherwise the cache might have the wrong key.
25284        (WebCore::StyleCustomFilterProgram::setFragmentShader): Ditto.
25285        (WebCore::StyleCustomFilterProgram::isLoaded): Added more asserts to catch cases when the program is used with no clients.
25286        (StyleCustomFilterProgram):
25287        (WebCore::StyleCustomFilterProgram::hasPendingShaders):
25288        (WebCore::StyleCustomFilterProgram::inCache):
25289        (WebCore::StyleCustomFilterProgram::setCache): Function called when a program is added to / removed from the cache.
25290        (WebCore::StyleCustomFilterProgram::vertexShaderURL): Added methods to store the KURL that we used as keys in the cache.
25291        The same KURLs will be used to lookup and remove the filter at the end.
25292        (WebCore::StyleCustomFilterProgram::setVertexShaderURL):
25293        (WebCore::StyleCustomFilterProgram::fragmentShaderURL):
25294        (WebCore::StyleCustomFilterProgram::setFragmentShaderURL):
25295        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram):
25296        * rendering/style/StyleCustomFilterProgramCache.cpp: Added.
25297        (WebCore::StyleCustomFilterProgramCache::programCacheKey):
25298        (WebCore::StyleCustomFilterProgramCache::StyleCustomFilterProgramCache):
25299        (WebCore::StyleCustomFilterProgramCache::~StyleCustomFilterProgramCache): Destructor removes itself from all the
25300        referenced StyleCustomFilterPrograms. This is to avoid issues with different destruction orders.
25301        (WebCore::StyleCustomFilterProgramCache::lookup):
25302        (WebCore::StyleCustomFilterProgramCache::add):
25303        (WebCore::StyleCustomFilterProgramCache::remove):
25304        * rendering/style/StyleCustomFilterProgramCache.h:
25305        (StyleCustomFilterProgramCache):
25306        * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h:
25307        (WebCore::CoordinatedCustomFilterProgram::operator==: Removed. Programs should now compare by pointer.
25308
253092013-03-21  Joshua Bell  <jsbell@chromium.org>
25310
25311        IndexedDB: Ensure all API methods have IDB_TRACE macros
25312        https://bugs.webkit.org/show_bug.cgi?id=112963
25313
25314        Reviewed by Tony Chang.
25315
25316        Anntotate methods and callbacks that weren't already annotated
25317        with IDB_TRACE macros to assist in debugging, e.g. when using
25318        the chromium port's chrome://tracing visualization.
25319
25320        No new tests - just harmless diagnostic sprinkles.
25321
25322        * Modules/indexeddb/IDBDatabase.cpp:
25323        (WebCore::IDBDatabase::createObjectStore): Added IDB_TRACE macro call here.
25324        (WebCore::IDBDatabase::deleteObjectStore): ...and here.
25325        (WebCore::IDBDatabase::transaction): ...etc.
25326        (WebCore::IDBDatabase::close):
25327        (WebCore::IDBDatabase::onVersionChange):
25328        * Modules/indexeddb/IDBFactory.cpp:
25329        (WebCore::IDBFactory::getDatabaseNames):
25330        (WebCore::IDBFactory::open):
25331        (WebCore::IDBFactory::deleteDatabase):
25332        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
25333        (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
25334        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
25335        (WebCore::IDBFactoryBackendImpl::open):
25336        * Modules/indexeddb/IDBOpenDBRequest.cpp:
25337        (WebCore::IDBOpenDBRequest::onBlocked):
25338
253392013-03-21  Christian Biesinger  <cbiesinger@chromium.org>
25340
25341        http://trac.webkit.org/changeset/146375 causing CrOS crashes
25342        https://bugs.webkit.org/show_bug.cgi?id=112958
25343
25344        Reviewed by Adam Barth.
25345
25346        Test: fast/flexbox/crash-anonymous-box.html
25347
25348        * rendering/RenderDeprecatedFlexibleBox.cpp:
25349        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
25350        Anonymous renderers don't have a node in their constructor, so
25351        don't get document() in there.
25352
253532013-03-21  Mike West  <mkwst@chromium.org>
25354
25355        CSP 1.1: Fire a SecurityPolicyViolationEvent when violations occur.
25356        https://bugs.webkit.org/show_bug.cgi?id=112783
25357
25358        Reviewed by Adam Barth.
25359
25360        A new event type for Content Security Policy violations landed in
25361        http://wkrev.com/146305; this patch takes that stub, and wires it up to
25362        ContentSecurityPolicy::reportViolation such that violation events fire
25363        when resources are blocked.
25364
25365        This should bring WebKit up to date with the current description of
25366        CSP's event model in sections 3.3[1] and 3.4.1.3[2] of the editor's
25367        draft.
25368
25369        [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#processing-model
25370        [2]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#firing-events-using-the-securitypolicyviolationevent-interface
25371
25372        Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image.html
25373
25374        * page/ContentSecurityPolicy.cpp:
25375        (WebCore::gatherSecurityPolicyViolationEventData):
25376            Populate a SecurityPolicyViolationEventInit object with the various
25377            bits of data that should be passed into the event constructor.
25378
25379            This static method is strictly an implementation detail; it's not
25380            part of ContentSecurityPolicy's public API.
25381        (WebCore::ContentSecurityPolicy::reportViolation):
25382            Regardless of whether the policy has set a 'report-uri' directive
25383            or not, gather together all the data we'll need to fire an event,
25384            create the event, and queue it up for dispatching on the Document.
25385
253862013-03-21  Terry Anderson  <tdanderson@chromium.org>
25387
25388        [chromium] Remove SK_SUPPORT_HINTING_SCALE_FACTOR flag and code
25389        https://bugs.webkit.org/show_bug.cgi?id=112928
25390
25391        Reviewed by Stephen White.
25392
25393        This flag was only for ChromeOS builds with HighDPI. It is no longer needed and can be removed. 
25394        See http://crbug.com/17550
25395
25396        No new tests needed since this is just removing unused code.
25397
25398        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
25399        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
25400        * platform/graphics/skia/PlatformContextSkia.cpp:
25401        (WebCore::PlatformContextSkia::PlatformContextSkia):
25402        (WebCore::PlatformContextSkia::setupPaintCommon):
25403        * platform/graphics/skia/PlatformContextSkia.h:
25404
254052013-03-21  Mike West  <mkwst@chromium.org>
25406
25407        Drop full URLs from cross-origin access errors caused by protocol mismatches.
25408        https://bugs.webkit.org/show_bug.cgi?id=112894
25409
25410        Reviewed by Timothy Hatcher.
25411
25412        Following up on http://wkbug.com/112813, this patch brings protocol
25413        mismatch errors into line with the new origin-only hotness. The message
25414        is also changed to display the URL's protocol rather than the origin's
25415        protocol: it makes a big difference for 'data:' URLs, for instance.
25416
25417        * page/DOMWindow.cpp:
25418        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
25419
254202013-03-21  Stephen Chenney  <schenney@chromium.org>
25421
25422        SVG text path referencing parent text infinite loops
25423        https://bugs.webkit.org/show_bug.cgi?id=112078
25424
25425        Reviewed by Philip Rogers.
25426
25427        We do not check the target type when adding a resource reference for
25428        SVG Text Path's URI. This goes horribly wrong when the target is the
25429        text path's parent text element. In this patch we check that the target
25430        element of the text path is indeed a path element, as the spec
25431        requires. No other element type is allowed.
25432
25433        Note that RenderSVGTextPath enforces this check in the renderer code
25434        also, so if we get past this check via pending resources, it doesn't
25435        matter. You can't get into this situation with a pending reference
25436        because, by definition, the parent must be defined before the text
25437        path child.
25438
25439        Test: svg/text/textpath-referencing-text-crash.svg
25440
25441        * svg/SVGTextPathElement.cpp:
25442        (WebCore::SVGTextPathElement::buildPendingResource):
25443
254442013-03-21  Joshua Bell  <jsbell@chromium.org>
25445
25446        IndexedDB: Remove onVersionChange(string) plumbing
25447        https://bugs.webkit.org/show_bug.cgi?id=112712
25448
25449        Reviewed by Adam Barth.
25450
25451        Delete unused onVersionChange(string) overload.
25452
25453        No new tests - just deleting dead code.
25454
25455        * Modules/indexeddb/IDBDatabase.cpp: Delete onVersionChange(string) overload.
25456        * Modules/indexeddb/IDBDatabase.h: Ditto.
25457        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Ditto.
25458        * Modules/indexeddb/IDBDatabaseCallbacks.h: Ditto.
25459        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: Ditto.
25460        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h: Ditto.
25461
254622013-03-21  Philip Rogers  <pdr@google.com>
25463
25464        Correct bisector angle calculation for markers
25465        https://bugs.webkit.org/show_bug.cgi?id=112054
25466
25467        Reviewed by Stephen Chenney.
25468
25469        The SVG marker spec states that mid markers with orient=auto should be aligned with their
25470        x-axis along the bisector of the incoming (in) and outgoing (out) angles. Previously we
25471        calculated this bisector angle as:
25472            bisector = (in + out) / 2;
25473        Angles cannot be averaged this way! Consider in=90deg and out=-180deg: the bisector should
25474        be 135deg but a naive average gives -45deg. This patch corrects for the discontinuity in
25475        angle values with:
25476            bisector = (in + out + 360) / 2   // if |in - out| > 180
25477            bisector = (in + out) / 2         // otherwise
25478        This patch includes an exhaustive test of angle values.
25479
25480        Test: svg/custom/marker-orient-auto.html
25481
25482        * rendering/svg/SVGMarkerData.h:
25483        (WebCore::SVGMarkerData::currentAngle):
25484
254852013-03-21  Harald Alvestrand  <hta@google.com>
25486
25487        Expose the Type field of an RTCStatsReport
25488        https://bugs.webkit.org/show_bug.cgi?id=112951
25489
25490        Reviewed by Adam Barth.
25491
25492        Covered by an extension of an existing test.
25493
25494        * Modules/mediastream/RTCStatsReport.h:
25495        (WebCore::RTCStatsReport::type):
25496        * Modules/mediastream/RTCStatsReport.idl:
25497
254982013-03-21  Alexey Proskuryakov  <ap@apple.com>
25499
25500        Move non-trivial virtual functions out of ResourceHandleClient.h
25501        https://bugs.webkit.org/show_bug.cgi?id=112950
25502
25503        Reviewed by Brady Eidson.
25504
25505        * CMakeLists.txt:
25506        * GNUmakefile.list.am:
25507        * Target.pri:
25508        * WebCore.exp.in:
25509        * WebCore.gypi:
25510        * WebCore.vcproj/WebCore.vcproj:
25511        * WebCore.vcxproj/WebCore.vcxproj:
25512        * WebCore.vcxproj/WebCore.vcxproj.filters:
25513        * WebCore.xcodeproj/project.pbxproj:
25514        * platform/network/ResourceHandleClient.cpp: Added.
25515        (WebCore::ResourceHandleClient::ResourceHandleClient):
25516        (WebCore::ResourceHandleClient::~ResourceHandleClient):
25517        (WebCore::ResourceHandleClient::didReceiveBuffer):
25518        (WebCore::ResourceHandleClient::getBuffer):
25519        * platform/network/ResourceHandleClient.h:
25520
255212013-03-21  Florin Malita  <fmalita@chromium.org>
25522
25523        [SVG] Remove explicit LightSource dispatchers
25524        https://bugs.webkit.org/show_bug.cgi?id=112827
25525
25526        Reviewed by Stephen Chenney.
25527
25528        Convert LightSource setters to dynamic dispatch. This allows us to remove LightSource.cpp
25529        altogether.
25530
25531        No new tests: refactoring only.
25532
25533        * CMakeLists.txt:
25534        * GNUmakefile.list.am:
25535        * Target.pri:
25536        * WebCore.gypi:
25537        * WebCore.vcproj/WebCore.vcproj:
25538        * WebCore.vcxproj/WebCore.vcxproj:
25539        * WebCore.vcxproj/WebCore.vcxproj.filters:
25540        * WebCore.xcodeproj/project.pbxproj:
25541        * platform/graphics/filters/DistantLightSource.h:
25542        (DistantLightSource):
25543        * platform/graphics/filters/LightSource.cpp: Removed.
25544        * platform/graphics/filters/LightSource.h:
25545        (WebCore::LightSource::setAzimuth):
25546        (WebCore::LightSource::setElevation):
25547        (WebCore::LightSource::setX):
25548        (WebCore::LightSource::setY):
25549        (WebCore::LightSource::setZ):
25550        (WebCore::LightSource::setPointsAtX):
25551        (WebCore::LightSource::setPointsAtY):
25552        (WebCore::LightSource::setPointsAtZ):
25553        (WebCore::LightSource::setSpecularExponent):
25554        (WebCore::LightSource::setLimitingConeAngle):
25555        * platform/graphics/filters/PointLightSource.h:
25556        (PointLightSource):
25557        * platform/graphics/filters/SpotLightSource.h:
25558        (SpotLightSource):
25559
255602013-03-21  Igor Oliveira  <igor.o@sisa.samsung.com>
25561
25562        [Texmap] Implement support for OpenGLES EXT_unpack_subimage extension
25563        https://bugs.webkit.org/show_bug.cgi?id=108716
25564
25565        If the extension GL_EXT_unpack_subimage is supported, it adds GL_UNPACK_ROW_LENGTH,
25566        GL_UNPACK_SKIP_ROWS and GL_UNPACK_SKIP_PIXELS as valid enums to PixelStore.
25567
25568        Reviewed by Noam Rosenthal.
25569
25570        * platform/graphics/texmap/TextureMapperGL.cpp:
25571        (WebCore::driverSupportsSubImage):
25572        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
25573        (WebCore::BitmapTextureGL::updateContents):
25574
255752013-03-21  Dmitry Zvorygin  <zvorygin@chromium.org>
25576
25577        Web Inspector: Regression: drawer resizes slowly with animation.
25578        https://bugs.webkit.org/show_bug.cgi?id=112920
25579
25580        Drawer status bar opacity wasn't set to zero on inialization, so no transition event 
25581        was fired on first time drawer appeared,thus animation styles wasn't removed properly.
25582
25583        Reviewed by Vsevolod Vlasov.
25584
25585        * inspector/front-end/Drawer.js:
25586        (WebInspector.Drawer):
25587
255882013-03-21  Alberto Garcia  <agarcia@igalia.com>
25589
25590        [BlackBerry] GraphicsLayer: fix code that was accidentally reverted
25591        https://bugs.webkit.org/show_bug.cgi?id=112143
25592
25593        Reviewed by Rob Buis.
25594
25595        Several changes were accidentally reverted in r144465 due to the
25596        upstreaming of some new code:
25597
25598        - clearBackgroundColor() and m_contentsLayerHasBackgroundColor had
25599          been removed in r137798.
25600
25601        - showDebugBorders() had been renamed to isShowingDebugBorder() in
25602          r133517.
25603
25604        - A new GraphicsLayer::create() overload had been introduced in
25605          r130185.
25606
25607        This patch fixes them all.
25608
25609        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
25610        (WebCore::GraphicsLayer::create):
25611        (WebCore):
25612        (WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
25613        (WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
25614        (WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
25615        (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
25616        * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
25617        (GraphicsLayerBlackBerry):
25618
256192013-03-21  Zan Dobersek  <zdobersek@igalia.com>
25620
25621        [GTK] Move libLevelDB.la setup into a separate GNUmakefile.am
25622        https://bugs.webkit.org/show_bug.cgi?id=112947
25623
25624        Reviewed by Martin Robinson.
25625
25626        No new tests - no new functionality.
25627
25628        * GNUmakefile.am: Move the libLevelDD.la setup into the new GNUmakefile.am that's placed in
25629        the third-party leveldb source directory.
25630        * GNUmakefile.list.am: Move the LevelDB sources listing there as well.
25631
256322013-03-21  Alberto Garcia  <agarcia@igalia.com>
25633
25634        [BlackBerry] DrawingBuffer: add clearPlatformLayer() implementation
25635        https://bugs.webkit.org/show_bug.cgi?id=112696
25636
25637        Reviewed by Rob Buis.
25638
25639        DrawingBuffer::clearPlatformLayer() was added in r139142.
25640
25641        This is not needed in the BlackBerry port, so this patch only
25642        contains a dummy implementation.
25643
25644        * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
25645        (WebCore):
25646        (WebCore::DrawingBuffer::clearPlatformLayer):
25647
256482013-03-21  Florin Malita  <fmalita@chromium.org>
25649
25650        [SVG] Suppress painting when an empty viewBox is specified
25651        https://bugs.webkit.org/show_bug.cgi?id=112623
25652
25653        Reviewed by Philip Rogers.
25654
25655        Per spec, elements with an empty viewBox should not be rendered:
25656        http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute.
25657
25658        This patch adds the missing viewBox checks to RenderSVGRoot, RenderSVGViewPortContainer,
25659        RenderSVGResourceMarker and RenderSVGResourceMarker's paint methods.
25660
25661        In order to detect the case of "viewBox present but invalid", the patch also introduces
25662        SVGAnimatedProperty plumbing for tracking property validity: the baseVal setter now takes
25663        an additional optional 'validValue' boolean parameter, which can later be queried via a
25664        macroed getter (LowerProperty##IsValid()).
25665
25666        Test: svg/custom/viewBox-empty.html
25667
25668        * rendering/svg/RenderSVGResourceMarker.cpp:
25669        (WebCore::RenderSVGResourceMarker::draw):
25670        * rendering/svg/RenderSVGResourcePattern.cpp:
25671        (WebCore::RenderSVGResourcePattern::buildPattern):
25672        * rendering/svg/RenderSVGRoot.cpp:
25673        (WebCore::RenderSVGRoot::paintReplaced):
25674        * rendering/svg/RenderSVGViewportContainer.cpp:
25675        (WebCore::RenderSVGViewportContainer::paint):
25676        (WebCore):
25677        * rendering/svg/RenderSVGViewportContainer.h:
25678        (RenderSVGViewportContainer):
25679        * svg/SVGPatternElement.cpp:
25680        (WebCore::SVGPatternElement::collectPatternAttributes):
25681        * svg/SVGSVGElement.h:
25682        (WebCore::SVGSVGElement::hasEmptyViewBox):
25683        (SVGSVGElement):
25684        Suppress painting if a valid empty viewBox is found.
25685
25686        * svg/SVGFitToViewBox.h:
25687        (WebCore::SVGFitToViewBox::parseAttribute):
25688        Mark the viewBox property as invalid if not successfully parsed.
25689
25690        * svg/SVGExternalResourcesRequired.h:
25691        (SVGExternalResourcesRequired):
25692        * svg/SVGURIReference.h:
25693        (SVGURIReference):
25694        * svg/properties/SVGAnimatedPropertyMacros.h:
25695        (WebCore::SVGSynchronizableAnimatedProperty::SVGSynchronizableAnimatedProperty):
25696        (SVGSynchronizableAnimatedProperty):
25697        (WebCore):
25698        Plumbing for tracking property value validation.
25699
257002013-03-21  Alexei Filippov  <alph@chromium.org>
25701
25702        Web Inspector: Hide toolbar customization experimental setting
25703        https://bugs.webkit.org/show_bug.cgi?id=112942
25704
25705        Reviewed by Pavel Feldman.
25706
25707        * inspector/front-end/Settings.js:
25708        (WebInspector.ExperimentsSettings):
25709        * inspector/front-end/Toolbar.js:
25710        (WebInspector.Toolbar):
25711        (WebInspector.Toolbar.prototype._isToolbarCustomizable):
25712
257132013-03-21  Anton Muhin  <antonm@chromium.org>
25714
25715        Unreviewed, rolling out r146483.
25716        http://trac.webkit.org/changeset/146483
25717        https://bugs.webkit.org/show_bug.cgi?id=111695
25718
25719        Breaks
25720
25721        * Modules/speech/SpeechSynthesis.cpp:
25722        (WebCore::SpeechSynthesis::boundaryEventOccurred):
25723        (WebCore::SpeechSynthesis::didStartSpeaking):
25724        (WebCore::SpeechSynthesis::didPauseSpeaking):
25725        (WebCore::SpeechSynthesis::didResumeSpeaking):
25726        (WebCore::SpeechSynthesis::didFinishSpeaking):
25727        (WebCore::SpeechSynthesis::speakingErrorOccurred):
25728        (WebCore):
25729        * Modules/speech/SpeechSynthesis.h:
25730        (SpeechSynthesis):
25731        * Modules/speech/SpeechSynthesisUtterance.cpp:
25732        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
25733        (WebCore::SpeechSynthesisUtterance::setVoice):
25734        * Modules/speech/SpeechSynthesisUtterance.h:
25735        (WebCore::SpeechSynthesisUtterance::text):
25736        (WebCore::SpeechSynthesisUtterance::setText):
25737        (WebCore::SpeechSynthesisUtterance::lang):
25738        (WebCore::SpeechSynthesisUtterance::setLang):
25739        (WebCore::SpeechSynthesisUtterance::volume):
25740        (WebCore::SpeechSynthesisUtterance::setVolume):
25741        (WebCore::SpeechSynthesisUtterance::rate):
25742        (WebCore::SpeechSynthesisUtterance::setRate):
25743        (WebCore::SpeechSynthesisUtterance::pitch):
25744        (WebCore::SpeechSynthesisUtterance::setPitch):
25745        (WebCore::SpeechSynthesisUtterance::startTime):
25746        (WebCore::SpeechSynthesisUtterance::setStartTime):
25747        (WebCore::SpeechSynthesisUtterance::platformUtterance):
25748        (SpeechSynthesisUtterance):
25749        * Modules/speech/SpeechSynthesisVoice.h:
25750        (SpeechSynthesisVoice):
25751        * WebCore.exp.in:
25752        * WebCore.gypi:
25753        * platform/PlatformSpeechSynthesis.h:
25754        (PlatformSpeechSynthesis):
25755        * platform/PlatformSpeechSynthesisUtterance.cpp:
25756        * platform/PlatformSpeechSynthesisUtterance.h:
25757        (PlatformSpeechSynthesisUtterance):
25758        (WebCore::PlatformSpeechSynthesisUtterance::client):
25759        * platform/PlatformSpeechSynthesisVoice.cpp:
25760        (WebCore::PlatformSpeechSynthesisVoice::create):
25761        (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
25762        * platform/PlatformSpeechSynthesisVoice.h:
25763        (PlatformSpeechSynthesisVoice):
25764        (WebCore::PlatformSpeechSynthesisVoice::voiceURI):
25765        (WebCore::PlatformSpeechSynthesisVoice::name):
25766        (WebCore::PlatformSpeechSynthesisVoice::lang):
25767        (WebCore::PlatformSpeechSynthesisVoice::localService):
25768        * platform/PlatformSpeechSynthesizer.cpp:
25769        (WebCore::PlatformSpeechSynthesizer::create):
25770        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
25771        (WebCore):
25772        * platform/PlatformSpeechSynthesizer.h:
25773        (PlatformSpeechSynthesizerClient):
25774        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
25775        (PlatformSpeechSynthesizer):
25776        * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
25777        * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
25778        * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
25779        * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
25780        * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
25781        * platform/mac/PlatformSpeechSynthesizerMac.mm:
25782        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
25783        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
25784        (WebCore):
25785        (WebCore::PlatformSpeechSynthesizer::speak):
25786        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
25787        (WebCore::PlatformSpeechSynthesizerMock::create):
25788        (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
25789        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
25790        (WebCore::PlatformSpeechSynthesizerMock::speak):
25791        * platform/mock/PlatformSpeechSynthesizerMock.h:
25792        (PlatformSpeechSynthesizerMock):
25793
257942013-03-21  Alexey Proskuryakov  <ap@apple.com>
25795
25796        [Mac] Consolidate bits of willSendRequest implementation
25797        https://bugs.webkit.org/show_bug.cgi?id=112932
25798
25799        Reviewed by Brady Eidson.
25800
25801        Moved some logic from WebCoreResourceHandleAsDelegate to ResourceHandle for clarity.
25802
25803        * platform/network/mac/ResourceHandleMac.mm:
25804        (WebCore::ResourceHandle::willSendRequest):
25805        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
25806
258072013-03-21  Praveen R Jadhav  <praveen.j@samsung.com>
25808
25809        Remove AudioGain.idl from compilation.
25810        https://bugs.webkit.org/show_bug.cgi?id=112650
25811
25812        Reviewed by Chris Rogers.
25813
25814        Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#GainNode
25815              https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode
25816
25817        AudioParam serves the same purpose as AudioGain. Infact, AudioGain inherits
25818        AudioParam class and doesn't have its own member functions/parameters. Also,
25819        AudioGain is not part of WebAudio W3C specifications.
25820
25821        Test: webaudio/gain-basic.html
25822
25823        * CMakeLists.txt:
25824        * DerivedSources.make:
25825        * DerivedSources.pri:
25826        * GNUmakefile.list.am:
25827        * Modules/webaudio/AudioBufferSourceNode.cpp:
25828        (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
25829        * Modules/webaudio/AudioBufferSourceNode.h:
25830        (AudioBufferSourceNode):
25831        (WebCore::AudioBufferSourceNode::gain):
25832        * Modules/webaudio/AudioBufferSourceNode.idl:
25833        * Modules/webaudio/AudioGain.h: Removed.
25834        * Modules/webaudio/AudioGain.idl: Removed.
25835        * Modules/webaudio/GainNode.cpp:
25836        (WebCore::GainNode::GainNode):
25837        * Modules/webaudio/GainNode.h:
25838        (WebCore):
25839        (WebCore::GainNode::create):
25840        (GainNode):
25841        (WebCore::GainNode::gain):
25842        * Modules/webaudio/GainNode.idl:
25843        * Modules/webaudio/PannerNode.cpp:
25844        (WebCore::PannerNode::PannerNode):
25845        * Modules/webaudio/PannerNode.h:
25846        (WebCore::PannerNode::distanceGain):
25847        (WebCore::PannerNode::coneGain):
25848        * Target.pri:
25849        * WebCore.gypi:
25850        * WebCore.xcodeproj/project.pbxproj:
25851
258522013-03-21  Dominic Mazzoni  <dmazzoni@google.com>
25853
25854        Implement Web Speech Synthesis for Chromium
25855        https://bugs.webkit.org/show_bug.cgi?id=111695
25856
25857        Reviewed by Adam Barth.
25858
25859        Straightforward implementation of speech synthesis
25860        for Chromium by exposing interfaces for the platform
25861        to implement.
25862
25863        * Modules/speech/SpeechSynthesis.cpp:
25864        (WebCore::SpeechSynthesis::boundaryEventOccurred):
25865        (WebCore::SpeechSynthesis::didStartSpeaking):
25866        (WebCore::SpeechSynthesis::didPauseSpeaking):
25867        (WebCore::SpeechSynthesis::didResumeSpeaking):
25868        (WebCore::SpeechSynthesis::didFinishSpeaking):
25869        (WebCore::SpeechSynthesis::speakingErrorOccurred):
25870        (WebCore):
25871        * Modules/speech/SpeechSynthesis.h:
25872        (SpeechSynthesis):
25873        * Modules/speech/SpeechSynthesisUtterance.cpp:
25874        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
25875        (WebCore):
25876        (WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
25877        (WebCore::SpeechSynthesisUtterance::setVoice):
25878        * Modules/speech/SpeechSynthesisUtterance.h:
25879        (SpeechSynthesisUtterance):
25880        (WebCore::SpeechSynthesisUtterance::text):
25881        (WebCore::SpeechSynthesisUtterance::setText):
25882        (WebCore::SpeechSynthesisUtterance::lang):
25883        (WebCore::SpeechSynthesisUtterance::setLang):
25884        (WebCore::SpeechSynthesisUtterance::volume):
25885        (WebCore::SpeechSynthesisUtterance::setVolume):
25886        (WebCore::SpeechSynthesisUtterance::rate):
25887        (WebCore::SpeechSynthesisUtterance::setRate):
25888        (WebCore::SpeechSynthesisUtterance::pitch):
25889        (WebCore::SpeechSynthesisUtterance::setPitch):
25890        (WebCore::SpeechSynthesisUtterance::startTime):
25891        (WebCore::SpeechSynthesisUtterance::setStartTime):
25892        (WebCore::SpeechSynthesisUtterance::platformUtterance):
25893        * Modules/speech/SpeechSynthesisVoice.h:
25894        (WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
25895        * WebCore.exp.in:
25896        * WebCore.gypi:
25897        * platform/PlatformSpeechSynthesis.h:
25898        (PlatformSpeechSynthesis):
25899        * platform/PlatformSpeechSynthesisUtterance.cpp:
25900        (WebCore):
25901        (WebCore::PlatformSpeechSynthesisUtterance::create):
25902        * platform/PlatformSpeechSynthesisUtterance.h:
25903        (PlatformSpeechSynthesisUtterance):
25904        (WebCore::PlatformSpeechSynthesisUtterance::setClient):
25905        * platform/PlatformSpeechSynthesisVoice.cpp:
25906        (WebCore):
25907        (WebCore::PlatformSpeechSynthesisVoice::create):
25908        (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
25909        * platform/PlatformSpeechSynthesisVoice.h:
25910        (PlatformSpeechSynthesisVoice):
25911        (WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
25912        (WebCore::PlatformSpeechSynthesisVoice::setName):
25913        (WebCore::PlatformSpeechSynthesisVoice::setLang):
25914        (WebCore::PlatformSpeechSynthesisVoice::setLocalService):
25915        (WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
25916        * platform/PlatformSpeechSynthesizer.cpp:
25917        (WebCore::PlatformSpeechSynthesizer::create):
25918        (WebCore::PlatformSpeechSynthesizer::setVoiceList):
25919        (WebCore):
25920        * platform/PlatformSpeechSynthesizer.h:
25921        (WebKit):
25922        (PlatformSpeechSynthesizerClient):
25923        (PlatformSpeechSynthesizer):
25924        * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
25925        (WebCore):
25926        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
25927        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
25928        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
25929        (WebCore::PlatformSpeechSynthesizer::speak):
25930        (WebCore::PlatformSpeechSynthesizer::pause):
25931        (WebCore::PlatformSpeechSynthesizer::resume):
25932        (WebCore::PlatformSpeechSynthesizer::cancel):
25933        * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
25934        (WebKit):
25935        (WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
25936        (WebKit::WebSpeechSynthesisUtterance::operator=):
25937        (WebKit::WebSpeechSynthesisUtterance::assign):
25938        (WebKit::WebSpeechSynthesisUtterance::reset):
25939        (WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
25940        (WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
25941        (WebKit::WebSpeechSynthesisUtterance::text):
25942        (WebKit::WebSpeechSynthesisUtterance::lang):
25943        (WebKit::WebSpeechSynthesisUtterance::voice):
25944        (WebKit::WebSpeechSynthesisUtterance::volume):
25945        (WebKit::WebSpeechSynthesisUtterance::rate):
25946        (WebKit::WebSpeechSynthesisUtterance::pitch):
25947        (WebKit::WebSpeechSynthesisUtterance::startTime):
25948        * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
25949        (WebKit):
25950        (WebKit::WebSpeechSynthesisVoice::assign):
25951        (WebKit::WebSpeechSynthesisVoice::reset):
25952        (WebKit::WebSpeechSynthesisVoice::setVoiceURI):
25953        (WebKit::WebSpeechSynthesisVoice::setName):
25954        (WebKit::WebSpeechSynthesisVoice::setLanguage):
25955        (WebKit::WebSpeechSynthesisVoice::setIsLocalService):
25956        (WebKit::WebSpeechSynthesisVoice::setIsDefault):
25957        (WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
25958        * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
25959        (WebCore):
25960        (WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
25961        (WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
25962        (WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
25963        (WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
25964        (WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
25965        (WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
25966        (WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
25967        (WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
25968        (WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
25969        (WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
25970        * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
25971        (WebCore):
25972        (WebSpeechSynthesizerClientImpl):
25973        * platform/mac/PlatformSpeechSynthesizerMac.mm:
25974        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
25975        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
25976        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
25977        (WebCore):
25978        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
25979        (WebCore::PlatformSpeechSynthesizer::speak):
25980        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
25981        (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
25982        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
25983        (WebCore::PlatformSpeechSynthesizerMock::speak):
25984        * platform/mock/PlatformSpeechSynthesizerMock.h:
25985        (PlatformSpeechSynthesizerMock):
25986
259872013-03-21  Julien Chaffraix  <jchaffraix@webkit.org>
25988
25989        [CSS Grid Layout] Properly layout spanning grid items with minmax grid tracks
25990        https://bugs.webkit.org/show_bug.cgi?id=112389
25991
25992        Reviewed by Tony Chang.
25993
25994        This change updates our core minmax resolution function to be spanning grid
25995        items aware. The new implementation of the algorithm doesn't totally match
25996        the specification but it is fairly close that it's a good first pass. The
25997        extra complexity in the specification needs to be carefully examinated
25998        first (not to mention the probable change in the core layout algorithm).
25999
26000        Tests: fast/css-grid-layout/minmax-spanning-resolution-columns.html
26001               fast/css-grid-layout/minmax-spanning-resolution-rows.html
26002
26003        * rendering/RenderGrid.cpp:
26004        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
26005        Updated this function to account for spanning grid items by:
26006        - iterating over all spanned grid tracks.
26007        - removing any used breadth from all spanned grid tracks.
26008
260092013-03-21  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
26010
26011        [GStreamer] New reference returned by g_main_context_new() must be freed
26012        https://bugs.webkit.org/show_bug.cgi?id=112899
26013
26014        Reviewed by Kenneth Rohde Christiansen.
26015
26016        Fix a memory leak by adopting the new reference returned
26017        by g_main_context_new().
26018
26019        No new tests. No change in behavior.
26020
26021        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
26022        (WebCore::AudioFileReader::createBus):
26023
260242013-03-21  Carlos Garcia Campos  <cargarcia@rim.com>
26025
26026        [BlackBerry] Add ScrollingCoordinatorBlackBerry implementation
26027        https://bugs.webkit.org/show_bug.cgi?id=112915
26028
26029        Reviewed by Rob Buis.
26030
26031        * PlatformBlackBerry.cmake: Add page/scrolling/blackberry to the
26032        indlude dir list.
26033        * page/scrolling/ScrollingCoordinator.cpp:
26034        (WebCore::ScrollingCoordinator::create): Create a
26035        ScrollingCoordinatorBlackBerry for the BlackBerry platform.
26036        * page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.cpp: Added.
26037        (WebCore):
26038        (WebCore::ScrollingCoordinatorBlackBerry::ScrollingCoordinatorBlackBerry):
26039        (WebCore::ScrollingCoordinatorBlackBerry::setLayerIsContainerForFixedPositionLayers):
26040        (WebCore::ScrollingCoordinatorBlackBerry::setLayerIsFixedToContainerLayer):
26041        (WebCore::ScrollingCoordinatorBlackBerry::setLayerFixedToContainerLayerEdge):
26042        (WebCore::ScrollingCoordinatorBlackBerry::frameViewFrameRectDidChange):
26043        (WebCore::ScrollingCoordinatorBlackBerry::frameViewContentsSizeDidChange):
26044        * page/scrolling/blackberry/ScrollingCoordinatorBlackBerry.h: Added.
26045        (WebCore):
26046        (ScrollingCoordinatorBlackBerry):
26047        (WebCore::ScrollingCoordinatorBlackBerry::supportsFixedPositionLayers):
26048        * platform/graphics/PlatformLayer.h:
26049        (WebCore): Add PlatformLayer definition for BlackBerry.
26050
260512013-03-18  Andrey Kosyakov  <caseq@chromium.org>
26052
26053        Web Inspector: Paint rectangles shown on hover over Timeline's paint records occasionally have wrong offsets
26054        https://bugs.webkit.org/show_bug.cgi?id=112371
26055
26056        Reviewed by Pavel Feldman.
26057
26058        - pass frame to InspectorTimelineAgent::didPaint();
26059        - convert paint coordinates to root view.
26060
26061        * inspector/InspectorInstrumentation.cpp:
26062        (WebCore):
26063        (WebCore::InspectorInstrumentation::willPaintImpl):
26064        (WebCore::InspectorInstrumentation::didPaintImpl):
26065        * inspector/InspectorInstrumentation.h:
26066        (InspectorInstrumentation):
26067        (WebCore::InspectorInstrumentation::willPaint):
26068        (WebCore::InspectorInstrumentation::didPaint):
26069        * inspector/InspectorTimelineAgent.cpp:
26070        (WebCore::InspectorTimelineAgent::didPaint):
26071        * inspector/InspectorTimelineAgent.h:
26072        (InspectorTimelineAgent):
26073
260742013-03-20  Andrey Kosyakov  <caseq@chromium.org>
26075
26076        Web Inspector: do not use inspector cookie in InspectorInstrumentation::{will,did}Paint
26077        https://bugs.webkit.org/show_bug.cgi?id=112787
26078
26079        Reviewed by Pavel Feldman.
26080
26081        - pass frame, not inspector cookie to InspectorInstrumentation::didPaint;
26082        - use frame to determine timeline agent in InspectorInstrumentation::didPaint.
26083
26084        * inspector/InspectorInstrumentation.cpp:
26085        (WebCore):
26086        (WebCore::InspectorInstrumentation::willPaintImpl):
26087        (WebCore::InspectorInstrumentation::didPaintImpl):
26088        * inspector/InspectorInstrumentation.h:
26089        (InspectorInstrumentation):
26090        (WebCore::InspectorInstrumentation::willPaint):
26091        (WebCore::InspectorInstrumentation::didPaint):
26092        * page/FrameView.cpp:
26093        (WebCore::FrameView::paintContents):
26094        * rendering/RenderLayerBacking.cpp:
26095        (WebCore::RenderLayerBacking::paintContents):
26096
260972013-03-21  Julien Chaffraix  <jchaffraix@webkit.org>
26098
26099        [CSS Grid Layout] OOB access in RenderGrid with a grid item with negative position index
26100        https://bugs.webkit.org/show_bug.cgi?id=112853
26101
26102        Reviewed by Tony Chang.
26103
26104        This issue was caused by us casting a negative int to a size_t by mistake. This
26105        would make us not size the grid properly thus yielding to OOB access during the
26106        rest of the layout.
26107
26108        Test: fast/css-grid-layout/grid-item-negative-indexes.html
26109
26110        * rendering/RenderGrid.cpp:
26111        (WebCore::estimatedGridSizeForPosition):
26112        Added this helper function to do the proper estimation and checks that our
26113        position can be represented by a size_t.
26114
26115        (WebCore::RenderGrid::maximumIndexInDirection):
26116        Updated to use estimatedGridSizeForPosition.
26117
261182013-03-21  Stephen White  <senorblanco@chromium.org>
26119
26120        [skia] feConvolveMatrix should use accelerated path
26121        https://bugs.webkit.org/show_bug.cgi?id=112828
26122
26123        Reviewed by James Robinson.
26124
26125        Covered by layout tests css3/filters/effect-reference*.html.
26126
26127        * WebCore.gypi:
26128        Add FEConvolveMatrixSkia.cpp to the build.
26129        * platform/graphics/filters/FEConvolveMatrix.h:
26130        Enable the skia accelerated path for feConvolveMatrix.
26131        * platform/graphics/filters/skia/FEConvolveMatrixSkia.cpp:
26132        (WebCore::FEConvolveMatrix::createImageFilter):
26133        Implement building/conversion from FEConvolveMatrix to
26134        SkMatrixConvolutionImageFilter.
26135
261362013-03-21  Martin Robinson  <mrobinson@igalia.com>
26137
26138        Source/ThirdParty/leveldb/db/builder.cc does not build on systems without <endian.h>
26139        https://bugs.webkit.org/show_bug.cgi?id=111817
26140
26141        Reviewed by Gustavo Noronha Silva.
26142
26143        * GNUmakefile.am: Add the appropriate flags to the LevelDB build if we are on FreeBSD
26144        or OS X.
26145
261462013-03-21  Julien Chaffraix  <jchaffraix@webkit.org>
26147
26148        [CSS Grid Layout] Support default grid items sizing
26149        https://bugs.webkit.org/show_bug.cgi?id=103333
26150
26151        Reviewed by Tony Chang.
26152
26153        Tests: fast/css-grid-layout/grid-auto-columns-rows-auto-flow-resolution.html
26154               fast/css-grid-layout/grid-auto-columns-rows-resolution.html
26155               fast/css-grid-layout/grid-auto-columns-rows-update.html
26156
26157        * rendering/RenderGrid.cpp:
26158        (WebCore::RenderGrid::gridTrackSize):
26159        Core of the change: return the grid-auto-{rows|columns} instead of a pre-defined value.
26160
26161        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
26162        Fixed a latent bug: we need to iterate over the internal grid representation instead of the
26163        style's rows / columns as the latter doesn't account for implicit rows / columns.
26164
261652013-03-21  Adam Barth  <abarth@webkit.org>
26166
26167        HTMLNames should construct strings at compile time
26168        https://bugs.webkit.org/show_bug.cgi?id=112831
26169
26170        Reviewed by Darin Adler.
26171
26172        This patch teaches make_names how to construct strings at compile time,
26173        eliminating a large number of startup mallocs.
26174
26175        * WebCore.gyp/WebCore.gyp:
26176        * WebCore.gyp/scripts/action_makenames.py:
26177            - Teach the Chromium build how to deal with Perl modules.
26178        * bindings/scripts/StaticString.pm: Added.
26179            - A Perl module for constructing static strings.
26180        (GenerateStrings):
26181        (GenerateValidateStrings):
26182        * dom/QualifiedName.cpp:
26183        (WebCore::createQualifiedName):
26184            - createQualifiedName now takes an already-constructed StringImpl
26185              object.
26186        * dom/QualifiedName.h:
26187        * dom/make_names.pl:
26188        (valueForName):
26189        (namesToStrings):
26190        (printNamesCppFile):
26191        (printDefinitions):
26192            - Teach make_names how to use StaticString.pm.
26193
261942013-03-21  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26195
26196        [EFL][WebGL] Implement a common GraphicsSurface Implementation.
26197        https://bugs.webkit.org/show_bug.cgi?id=111759
26198
26199        Reviewed by Kenneth Rohde Christiansen.
26200
26201        Covered by existing WebGL tests.
26202
26203        This is in preparation to add transport surface support for GLES2.
26204        This patch makes it easy to share the core logic of using
26205        Transport Surface and client on GLX and GLES2 backends without
26206        any code duplication.
26207
26208        * PlatformEfl.cmake:
26209        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
26210        (WebCore::GraphicsContext3DPrivate::initialize):
26211        (WebCore::GraphicsContext3DPrivate::releaseResources):
26212        (WebCore::GraphicsContext3DPrivate::prepareBuffer):
26213        (WebCore::GraphicsContext3DPrivate::createGraphicsSurface):
26214        (WebCore::GraphicsContext3DPrivate::didResizeCanvas):
26215        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
26216        * platform/graphics/efl/GraphicsContext3DPrivate.h:
26217        (GraphicsContext3DPrivate):
26218
26219        TransportSurface related code is moved to GraphicsSurfaceCommon.
26220        As GraphicsSurface is deleted on resize, added logic to ensure that
26221        current buffer is not deleted before having the shared buffer
26222        with correct size. This would avoid any flashing during resize.
26223
26224        * platform/graphics/opengl/GLPlatformSurface.cpp:
26225        (WebCore::GLPlatformSurface::createTransportSurface):
26226        * platform/graphics/opengl/GLPlatformSurface.h:
26227        * platform/graphics/surfaces/efl/GLTransportSurface.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/GLTransportSurface.cpp.
26228        (WebCore):
26229        (WebCore::GLTransportSurface::GLTransportSurface):
26230        (WebCore::GLTransportSurface::~GLTransportSurface):
26231        (WebCore::GLTransportSurface::updateContents):
26232        (WebCore::GLTransportSurface::setGeometry):
26233        (WebCore::GLTransportSurface::destroy):
26234        (WebCore::GLTransportSurface::draw):
26235        (WebCore::GLTransportSurface::bindArrayBuffer):
26236        (WebCore::GLTransportSurface::updateTransformationMatrix):
26237        (WebCore::GLTransportSurface::initializeShaderProgram):
26238        (WebCore::GLTransportSurfaceClient::createTransportSurfaceClient):
26239        (WebCore::GLTransportSurfaceClient::GLTransportSurfaceClient):
26240        (WebCore::GLTransportSurfaceClient::~GLTransportSurfaceClient):
26241        (WebCore::GLTransportSurfaceClient::destroy):
26242        (WebCore::GLTransportSurfaceClient::prepareTexture):
26243        (WebCore::GLTransportSurfaceClient::createTexture):
26244        * platform/graphics/surfaces/efl/GLTransportSurface.h: Renamed from Source/WebCore/platform/graphics/surfaces/GLTransportSurface.h.
26245        (WebCore):
26246        (GLTransportSurface):
26247        (GLTransportSurfaceClient):
26248        (WebCore::GLTransportSurfaceClient::texture):
26249        (WebCore::GLTransportSurfaceClient::hasAlpha):
26250
26251        Moved TransportSurface to EFL folder as this is being used by EFL port only.
26252        Added a base class for TransportSurfaceClient.
26253
26254        * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp: Added.
26255        (WebCore):
26256        (GraphicsSurfacePrivate):
26257        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26258        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
26259        (WebCore::GraphicsSurfacePrivate::destroy):
26260        (WebCore::GraphicsSurfacePrivate::initializeTransportSurface):
26261        (WebCore::GraphicsSurfacePrivate::makeContextCurrent):
26262        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
26263        (WebCore::GraphicsSurfacePrivate::handle):
26264        (WebCore::GraphicsSurfacePrivate::updateClientBuffer):
26265        (WebCore::GraphicsSurfacePrivate::flags):
26266        (WebCore::GraphicsSurfacePrivate::rect):
26267        (WebCore::GraphicsSurfacePrivate::size):
26268        (WebCore::GraphicsSurfacePrivate::textureId):
26269        (WebCore::GraphicsSurfacePrivate::initializeClient):
26270        (WebCore::GraphicsSurface::platformExport):
26271        (WebCore::GraphicsSurface::platformGetTextureID):
26272        (WebCore::GraphicsSurface::platformCopyToGLTexture):
26273        (WebCore::GraphicsSurface::platformCopyFromTexture):
26274        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
26275        (WebCore::GraphicsSurface::platformFrontBuffer):
26276        (WebCore::GraphicsSurface::platformSwapBuffers):
26277        (WebCore::GraphicsSurface::platformSize):
26278        (WebCore::GraphicsSurface::platformCreate):
26279        (WebCore::GraphicsSurface::platformImport):
26280        (WebCore::GraphicsSurface::platformLock):
26281        (WebCore::GraphicsSurface::platformUnlock):
26282        (WebCore::GraphicsSurface::platformDestroy):
26283        (WebCore::GraphicsSurface::platformBeginPaint):
26284        (WebCore::GraphicsSurface::createReadOnlyImage):
26285
26286        GraphicsSurface implementation to be shared by both GLX and GLES2.
26287
26288        * platform/graphics/surfaces/egl/EGLSurface.cpp:
26289        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
26290        * platform/graphics/surfaces/egl/EGLSurface.h:
26291        (EGLWindowTransportSurface):
26292        * platform/graphics/surfaces/glx/GLXSurface.cpp:
26293        (WebCore):
26294        (WebCore::resolveGLMethods):
26295        (WebCore::isMesaGLX):
26296        (WebCore::GLXTransportSurface::GLXTransportSurface):
26297        (WebCore::GLXTransportSurfaceClient::GLXTransportSurfaceClient):
26298        (WebCore::GLXTransportSurfaceClient::~GLXTransportSurfaceClient):
26299        (WebCore::GLXTransportSurfaceClient::destroy):
26300        (WebCore::GLXTransportSurfaceClient::prepareTexture):
26301        * platform/graphics/surfaces/glx/GLXSurface.h:
26302        (GLXTransportSurface):
26303        (GLXTransportSurfaceClient):
26304        (WebCore):
26305        GLXTransportSurfaceClient implementation.
26306
263072013-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
26308
26309        Unreviewed, rolling out r146454.
26310        http://trac.webkit.org/changeset/146454
26311        https://bugs.webkit.org/show_bug.cgi?id=112906
26312
26313        compile failures (Requested by antonm on #webkit).
26314
26315        * WebCore.gypi:
26316        * platform/graphics/filters/FEConvolveMatrix.h:
26317        (FEConvolveMatrix):
26318        * platform/graphics/filters/skia/FEConvolveMatrixSkia.cpp: Removed.
26319
263202013-03-21  Mike Reed  <reed@google.com>
26321
26322        Remove obsolete conditionals around calling SkTypeface::getUnitsPerEm()
26323        https://bugs.webkit.org/show_bug.cgi?id=112846
26324
26325        Reviewed by Stephen White.
26326
26327        Existing complex-text layouttests exercise this code.
26328
26329        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
26330        (WebCore::FontPlatformData::emSizeInFontUnits):
26331
263322013-03-21  Stephen White  <senorblanco@chromium.org>
26333
26334        [skia] feConvolveMatrix should use accelerated path
26335        https://bugs.webkit.org/show_bug.cgi?id=112828
26336
26337        Reviewed by James Robinson.
26338
26339        Covered by layout tests css3/filters/effect-reference*.html.
26340
26341        * WebCore.gypi:
26342        Add FEConvolveMatrixSkia.cpp to the build.
26343        * platform/graphics/filters/FEConvolveMatrix.h:
26344        Enable the skia accelerated path for feConvolveMatrix.
26345        * platform/graphics/filters/skia/FEConvolveMatrixSkia.cpp:
26346        (WebCore::FEConvolveMatrix::createImageFilter):
26347        Implement building/conversion from FEConvolveMatrix to
26348        SkMatrixConvolutionImageFilter.
26349
263502013-03-21  Kunihiko Sakamoto  <ksakamoto@chromium.org>
26351
26352        Refactoring: Reorganize datetime field element parameters
26353        https://bugs.webkit.org/show_bug.cgi?id=112877
26354
26355        Reviewed by Kent Tamura.
26356
26357        Before this patch, the field element constructors took minimum/maximum
26358        as a pair of integers, and step/stepbase as a DateTimeNumericFieldElement::Parameters.
26359        This patch makes these constructors to take a Range (for minimum/maximum)
26360        and a Step (for step/stepbase).
26361
26362        No new tests. Just refactoring.
26363
26364        * html/shadow/DateTimeEditElement.cpp:
26365        (DateTimeEditBuilder): Replaced min/max data members by Ranges.
26366        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
26367        (WebCore::DateTimeEditBuilder::visitField):
26368        (WebCore::DateTimeEditBuilder::shouldAMPMFieldDisabled):
26369        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
26370        (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
26371        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
26372        (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
26373        (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
26374        (WebCore::DateTimeEditBuilder::createStep):
26375        * html/shadow/DateTimeFieldElements.cpp:
26376        (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
26377        (WebCore::DateTimeDayFieldElement::create):
26378        (WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
26379        (WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
26380        (WebCore::DateTimeHour11FieldElement::create):
26381        (WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
26382        (WebCore::DateTimeHour12FieldElement::create):
26383        (WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
26384        (WebCore::DateTimeHour23FieldElement::create):
26385        (WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
26386        (WebCore::DateTimeHour24FieldElement::create):
26387        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
26388        (WebCore::DateTimeMillisecondFieldElement::create):
26389        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
26390        (WebCore::DateTimeMinuteFieldElement::create):
26391        (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
26392        (WebCore::DateTimeMonthFieldElement::create):
26393        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
26394        (WebCore::DateTimeSecondFieldElement::create):
26395        (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
26396        (WebCore::DateTimeWeekFieldElement::create):
26397        * html/shadow/DateTimeFieldElements.h:
26398        (DateTimeDayFieldElement):
26399        (DateTimeHourFieldElementBase):
26400        (DateTimeHour11FieldElement):
26401        (DateTimeHour12FieldElement):
26402        (DateTimeHour23FieldElement):
26403        (DateTimeHour24FieldElement):
26404        (DateTimeMillisecondFieldElement):
26405        (DateTimeMinuteFieldElement):
26406        (DateTimeMonthFieldElement):
26407        (DateTimeSecondFieldElement):
26408        (DateTimeWeekFieldElement):
26409        * html/shadow/DateTimeNumericFieldElement.cpp:
26410        (WebCore):
26411        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
26412        (WebCore::DateTimeNumericFieldElement::roundDown):
26413        (WebCore::DateTimeNumericFieldElement::roundUp):
26414        * html/shadow/DateTimeNumericFieldElement.h:
26415        (WebCore::DateTimeNumericFieldElement::Step::Step): Renamed from Parameters.
26416        (WebCore::DateTimeNumericFieldElement::Range::Range):
26417        (WebCore::DateTimeNumericFieldElement::Range::isSingleton): Returns true if the range is a singleton range (i.e. contains exactly one value).
26418        (Range): Now it's parameter type, hence public.
26419        (DateTimeNumericFieldElement): Replaced two int members (m_step and m_stepBase) by a Range.
26420
264212013-03-21  Sergey Ryazanov  <serya@chromium.org>
26422
26423        Web Inspector: Track CSS error location information.
26424        https://bugs.webkit.org/show_bug.cgi?id=111314
26425
26426        Added CSS syntax error reporting to some (other rules will be covered later) error recovery grammar rules.
26427        Added code to CSSParser to allow track error location information.
26428        Added empty rule to declaration_list. Needed to not report error about declarations like "body {}".
26429        Added helper grammar rule "errors: error | errors error". Handles the same grammar as "error" but simplifies error location tracking.
26430
26431        Reviewed by Pavel Feldman.
26432
26433        Test: inspector/console/console-css-warnings.html
26434
26435        * css/CSSGrammar.y.in:
26436        * css/CSSParser.cpp:
26437        (WebCore::CSSParser::CSSParser):
26438        (WebCore::CSSParser::currentLocation):
26439        (WebCore):
26440        (WebCore::CSSParser::realLex):
26441        * css/CSSParser.h:
26442        (CSSParser):
26443
264442013-03-21  Sergey Ryazanov  <serya@chromium.org>
26445
26446        Changing "#define YYDEBUG 0" to 1 causing compilation error
26447        https://bugs.webkit.org/show_bug.cgi?id=111178
26448
26449        Reviewed by Pavel Feldman.
26450
26451        Code that reference tokens can't be placed into CSSGrammar.yy.include because it's included before tokens defined.
26452        YYDEBUG can't be used in CSSGrammar.yy.in because the #define is only defined in CSSGrammar.yy.include. This
26453        change simplifies CSS debugging letting manipulate only #define YYDEBUG in CSSGrammar.yy.include and/or in CSSParser.cpp.
26454
26455        * css/CSSGrammar.y.in:
26456        * css/CSSGrammar.y.includes:
26457
264582013-03-21  Nate Chapin  <japhet@chromium.org>
26459
26460        Merge MainResourceLoader into DocumentLoader
26461        https://bugs.webkit.org/show_bug.cgi?id=104969
26462
26463        Reviewed by Adam Barth.
26464
26465        No new tests, refactor only.
26466
26467        * CMakeLists.txt:
26468        * GNUmakefile.list.am:
26469        * Target.pri:
26470        * WebCore.exp.in:
26471        * WebCore.gypi:
26472        * WebCore.vcproj/WebCore.vcproj:
26473        * WebCore.vcxproj/WebCore.vcxproj:
26474        * WebCore.vcxproj/WebCore.vcxproj.filters:
26475        * WebCore.xcodeproj/project.pbxproj:
26476        * loader/DocumentLoader.cpp:
26477        (WebCore::DocumentLoader::DocumentLoader):
26478        (WebCore::DocumentLoader::mainResourceLoader):
26479        (WebCore::DocumentLoader::~DocumentLoader): Move main resource clearing from
26480            ~MainResourceLoader.
26481        (WebCore::DocumentLoader::mainResourceData):
26482        (WebCore::DocumentLoader::stopLoading):
26483        (WebCore::DocumentLoader::notifyFinished): Moved from MainResourceLoader::notifyFinished.
26484        (WebCore):
26485        (WebCore::DocumentLoader::finishedLoading):
26486        (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
26487        (WebCore::DocumentLoader::redirectReceived):
26488        (WebCore::DocumentLoader::continueAfterNavigationPolicy):
26489        (WebCore::DocumentLoader::responseReceived):
26490        (WebCore::DocumentLoader::continueAfterContentPolicy):
26491        (WebCore::DocumentLoader::reportMemoryUsage):
26492        (WebCore::DocumentLoader::dataReceived):
26493        (WebCore::DocumentLoader::clearMainResourceLoader):
26494        (WebCore::DocumentLoader::setDefersLoading):
26495        (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
26496        (WebCore::DocumentLoader::addSubresourceLoader):
26497        (WebCore::DocumentLoader::maybeLoadEmpty):
26498        (WebCore::DocumentLoader::startLoadingMainResource): Don't keep separate checks
26499             for normal and empty loads, just use a single boolean.
26500        * loader/DocumentLoader.h:
26501        (WebCore::DocumentLoader::isLoadingMainResource):
26502        * loader/MainResourceLoader.cpp: Removed.
26503        * loader/MainResourceLoader.h: Removed.
26504        * loader/mac/DocumentLoaderMac.cpp:
26505        (WebCore::DocumentLoader::schedule):
26506        (WebCore::DocumentLoader::unschedule):
26507
265082013-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
26509
26510        Web Inspector: Flame Chart. draw background for the FlameChart overview pane with the CPU aggregated data.
26511        https://bugs.webkit.org/show_bug.cgi?id=112823
26512
26513        Reviewed by Yury Semikhatsky.
26514
26515        The idea of the patch is to collect the data about stack depth for the each X
26516        and draw a line with help of this data.
26517
26518        * inspector/front-end/FlameChart.js:
26519        (WebInspector.FlameChart):
26520        (WebInspector.FlameChart.prototype.onResize):
26521        (WebInspector.FlameChart.prototype._drawOverviewCanvas):
26522        (WebInspector.FlameChart.prototype.update):
26523
265242013-03-21  Eugene Klyuchnikov  <eustas@chromium.org>
26525
26526        Web Inspector: [Settings] Fix JS compiler warnings.
26527        https://bugs.webkit.org/show_bug.cgi?id=112879
26528
26529        Reviewed by Pavel Feldman.
26530
26531        Removed erroneous JSDoc.
26532
26533        * inspector/front-end/Settings.js: Removed erroneous JSDoc.
26534
265352013-03-20  Simon Fraser  <simon.fraser@apple.com>
26536
26537        Make GraphicsLayerCA::backingStoreMemoryEstimate() give a better estimate for tiled layers
26538        https://bugs.webkit.org/show_bug.cgi?id=112864
26539
26540        Reviewed by Tim Horton.
26541        
26542        If a GraphicsLayerCA has TiledBacking, ask the TiledBacking how
26543        much memory it's using for tiles, rather than just using 
26544        height * width * 4.
26545        
26546        Implement retainedTileBackingStoreMemory() in the TileController,
26547        summing the memory used by parented tiles.
26548
26549        The original code was incorrectly multiplying by contentsScale
26550        only once rather than twice (2x contents scale uses 4x as much memory).
26551
26552        * platform/graphics/TiledBacking.h:
26553        * platform/graphics/ca/GraphicsLayerCA.cpp:
26554        (WebCore::GraphicsLayerCA::backingStoreMemoryEstimate):
26555        * platform/graphics/ca/mac/TileController.h:
26556        * platform/graphics/ca/mac/TileController.mm:
26557        (WebCore::TileController::retainedTileBackingStoreMemory):
26558
265592013-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
26560
26561        Unreviewed, rolling out r146419.
26562        http://trac.webkit.org/changeset/146419
26563        https://bugs.webkit.org/show_bug.cgi?id=112870
26564
26565        Broke many tests on debug builds (Requested by rniwa_ on
26566        #webkit).
26567
26568        * DerivedSources.make:
26569        * GNUmakefile.am:
26570        * WebCore.gyp/WebCore.gyp:
26571        * WebCore.gyp/scripts/action_makenames.py:
26572        (main):
26573        * bindings/scripts/StaticString.pm: Removed.
26574        * dom/QualifiedName.cpp:
26575        (WebCore::createQualifiedName):
26576        * dom/QualifiedName.h:
26577        (WebCore):
26578        * dom/make_names.pl:
26579        (printNamesCppFile):
26580        (printDefinitions):
26581
265822013-03-20  Michael Pruett  <michael@68k.org>
26583
26584        [JSC] Implement EnforceRange IDL attribute for integer conversions
26585        https://bugs.webkit.org/show_bug.cgi?id=112506
26586
26587        Reviewed by Kentaro Hara.
26588
26589        Implement the EnforceRange attribute for JSC bindings.
26590
26591        The EnforceRange attribute requires a type error to be thrown when
26592        converting an ECMAScript number which is beyond the representable
26593        range of the IDL integer type.
26594
26595        Tests: fast/js/webidl-type-mapping.html
26596               storage/indexeddb/cursor-advance-workers.html
26597               storage/indexeddb/cursor-advance.html
26598               storage/indexeddb/intversion-bad-parameters.html
26599
26600        * WebCore.exp.in:
26601        * bindings/js/JSDOMBinding.cpp:
26602        (WebCore):
26603        (WebCore::enforceRange):
26604        (WebCore::toInt32EnforceRange):
26605        (WebCore::toUInt32EnforceRange):
26606        (WebCore::toInt64):
26607        (WebCore::toUInt64):
26608        * bindings/js/JSDOMBinding.h:
26609        (WebCore::toInt32):
26610        (WebCore):
26611        (WebCore::toUInt32):
26612        * bindings/scripts/CodeGeneratorJS.pm:
26613        (JSValueToNative):
26614        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
26615        (WebCore::jsTestEventTargetPrototypeFunctionItem):
26616        * bindings/scripts/test/JS/JSTestObj.cpp:
26617        (WebCore::setJSTestObjShortAttr):
26618        (WebCore::setJSTestObjUnsignedShortAttr):
26619        (WebCore::setJSTestObjLongAttr):
26620        (WebCore::setJSTestObjLongLongAttr):
26621        (WebCore::setJSTestObjUnsignedLongLongAttr):
26622        (WebCore::setJSTestObjReflectedIntegralAttr):
26623        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
26624        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
26625        (WebCore::setJSTestObjAttrWithGetterException):
26626        (WebCore::setJSTestObjAttrWithSetterException):
26627        (WebCore::setJSTestObjWithScriptStateAttribute):
26628        (WebCore::setJSTestObjConditionalAttr1):
26629        (WebCore::setJSTestObjConditionalAttr2):
26630        (WebCore::setJSTestObjConditionalAttr3):
26631        (WebCore::setJSTestObjStrawberry):
26632        (WebCore::setJSTestObjId):
26633        (WebCore::setJSTestObjNullableLongSettableAttribute):
26634        (WebCore::setJSTestObjNullableStringValue):
26635        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
26636        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
26637        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
26638        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
26639        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
26640        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
26641        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
26642        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
26643        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
26644        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
26645        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
26646        (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
26647        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
26648        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
26649        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
26650        (WebCore::setJSTestTypedefsAttrWithGetterException):
26651        (WebCore::setJSTestTypedefsAttrWithSetterException):
26652
266532013-03-20  Hayato Ito  <hayato@chromium.org>
26654
26655        Gesture events should include AllowShadowContent in hit testing
26656        https://bugs.webkit.org/show_bug.cgi?id=112073
26657
26658        Reviewed by Dimitri Glazkov.
26659
26660        Support gesture events for Shadow DOM.
26661        Now 'gesturetap' events can be correctly dispatched in shadow trees.
26662
26663        Test: fast/dom/shadow/gesture-tap.html
26664
26665        * page/EventHandler.cpp:
26666        (WebCore::EventHandler::handleGestureEvent):
26667
266682013-03-20  Adam Barth  <abarth@webkit.org>
26669
26670        HTMLNames should construct strings at compile time
26671        https://bugs.webkit.org/show_bug.cgi?id=112831
26672
26673        Reviewed by Darin Adler.
26674
26675        This patch teaches make_names how to construct strings at compile time,
26676        eliminating a large number of startup mallocs.
26677
26678        * WebCore.gyp/WebCore.gyp:
26679        * WebCore.gyp/scripts/action_makenames.py:
26680            - Teach the Chromium build how to deal with Perl modules.
26681        * bindings/scripts/StaticString.pm: Added.
26682            - A Perl module for constructing static strings.
26683        (GenerateStrings):
26684        (GenerateValidateStrings):
26685        * dom/QualifiedName.cpp:
26686        (WebCore::createQualifiedName):
26687            - createQualifiedName now takes an already-constructed StringImpl
26688              object.
26689        * dom/QualifiedName.h:
26690        * dom/make_names.pl:
26691        (valueForName):
26692        (namesToStrings):
26693        (printNamesCppFile):
26694        (printDefinitions):
26695            - Teach make_names how to use StaticString.pm.
26696
266972013-03-20  Matt Falkenhagen  <falken@chromium.org>
26698
26699        Remove unnecessary calls to Node::disabled for <meter>, <progress>, and <output>
26700        https://bugs.webkit.org/show_bug.cgi?id=112767
26701
26702        Reviewed by Kent Tamura.
26703
26704        This is part of a refactoring to move Node::disabled to HTMLFormControlElement::disabled.
26705        The concept of disabled is just a form control element one.
26706
26707        HTMLMeterElement, HTMLOutputElement, and HTMLProgressElement never
26708        have disabled() return true, so we can remove the call. In addition,
26709        HTMLMeterElement and HTMLProgressElement no longer inherit from
26710        HTMLFormControlElement, so we don't need to override supportsFocus.
26711
26712        No new tests because no behavior change.
26713
26714        * html/HTMLMeterElement.cpp:
26715        * html/HTMLMeterElement.h:
26716        * html/HTMLOutputElement.cpp:
26717        (WebCore::HTMLOutputElement::supportsFocus):
26718        * html/HTMLProgressElement.cpp:
26719        * html/HTMLProgressElement.h:
26720
267212013-03-20  Jaehun Lim  <ljaehun.lim@samsung.com>
26722
26723        [css3-text] Parsing -webkit-each-line value for text-indent from css3-text
26724        https://bugs.webkit.org/show_bug.cgi?id=109021
26725 
26726        Reviewed by Julien Chaffraix.
26727 
26728        "each-line" is added for text-indent in CSS3.
26729        http://dev.w3.org/csswg/css3-text/#each-line
26730 
26731        This patch is the parsing part to support each-line value for text-indent.
26732 
26733        "each-line" means "Indentation affects the first line of the block
26734        container as well as each line after a forced line break, but does
26735        not affect lines after a soft wrap break."
26736 
26737        It's prefixed and guarded by CSS3_TEXT flag.
26738 
26739        Tests: fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent-inherited.html
26740               fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html
26741
26742        * css/CSSComputedStyleDeclaration.cpp:
26743        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
26744            style.getPropertyCSSValue(text-indent) returns CSSPrimitiveValue when text-indent has only <length>
26745            or <percentage> value, but returns CSSValueList when text-indent also has -webkit-each-line.
26746
26747        * css/CSSParser.cpp:
26748        (WebCore::isSimpleLengthPropertyID): Removed CSSPropertyTextIndent case.
26749        (WebCore::CSSParser::parseValue):
26750        (WebCore::CSSParser::parseTextIndent): Added.
26751        * css/CSSParser.h:
26752            Parsed <length> or <percentage> with -webkit-each-line for text-indent.
26753
26754        * css/CSSValueKeywords.in: Added new -webkit-each-line keyword.
26755        * css/StyleBuilder.cpp:
26756        (ApplyPropertyTextIndent): Added.
26757        (WebCore::ApplyPropertyTextIndent::applyInheritValue):
26758        (WebCore::ApplyPropertyTextIndent::applyInitialValue):
26759        (WebCore::ApplyPropertyTextIndent::applyValue):
26760        (WebCore::ApplyPropertyTextIndent::createHandler):
26761        (WebCore::StyleBuilder::StyleBuilder):
26762            Added codes to handle applying text-indent offset and -webkit-each-line option to our style.
26763
26764        * rendering/style/RenderStyle.cpp:
26765        (WebCore::RenderStyle::diff):
26766        * rendering/style/RenderStyle.h:
26767        * rendering/style/RenderStyleConstants.h: Added enum TextIndentLine.
26768        * rendering/style/StyleRareInheritedData.cpp:
26769        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
26770        (WebCore::StyleRareInheritedData::operator==):
26771        * rendering/style/StyleRareInheritedData.h: Added m_textIndentLine.
26772        (StyleRareInheritedData):
26773            Added the usual getter / setter / initial methods for m_textIndentLine.
26774
267752013-03-20  Tien-Ren Chen  <trchen@chromium.org>
26776
26777        Correct coordinated scrolling for RTL iframe and overflow:scroll
26778        https://bugs.webkit.org/show_bug.cgi?id=112088
26779
26780        Reviewed by James Robinson.
26781
26782        This patch adds appropriate offset in ScrollingCoordinatorChromium to
26783        adjust impl-side scroll position to the range [0, maxPos - minPos].
26784
26785        This also corrects RenderLayer to return correct scroll position for RTL,
26786        explained below:
26787
26788        There are 2 commonly used scroll offset coordinate systems in WebCore.
26789
26790        1. The scroll offset is the amount that needs to be translated when painting
26791           child elements in a RenderBox. The value can be negative when there is
26792           negative overflow (for RTL). The range will be within
26793           [overflow_top_left_corner, overflow_bottom_right_corner - client_size].
26794           This system is mainly used for painting and layer positioning.
26795           
26796        2. The scroll offset will be always non-negative, and the range will be within
26797           [0, content_size - client_size]. This system is mainly used for scrollbars.
26798
26799        scrollOrigin is defined to convert between the two systems. scrollOrigin is always
26800        non-negative, and equivalent to -overflow_top_left_corner.
26801
26802        The first system is used for ScrollableArea::scrollPosition/minimumScrollPosition/
26803        maximumScrollPosition function family. So is it implemented in ScrollView/Frameview.
26804        RenderLayer errorneously implemented scrollPosition in the second system,
26805        and worse, returned minimumScrollPosition/maximumScrollPosition were totally non-sense.
26806        This patch corrects RenderLayer to use the first coordinate system.
26807
26808        Test: compositing/rtl/rtl-overflow-scrolling.html
26809              ScrollingCoordinatorChromiumTest.rtlIframe
26810
26811        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
26812        (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
26813        * rendering/RenderLayer.cpp:
26814        (WebCore::RenderLayer::scrollPosition):
26815        (WebCore::RenderLayer::minimumScrollPosition):
26816        (WebCore::RenderLayer::maximumScrollPosition):
26817        * rendering/RenderLayerBacking.cpp:
26818        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
26819
268202013-03-20  Jessie Berlin  <jberlin@apple.com>
26821
26822        REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into
26823        the wrong location
26824        https://bugs.webkit.org/show_bug.cgi?id=112833
26825
26826        Reviewed by Darin Adler.
26827
26828        Fix an incorrect include path.
26829
26830        * loader/DocumentLoader.h:
26831        RunLoopTimer.h lives in wtf as of r145592.
26832
268332013-03-20  Kent Tamura  <tkent@chromium.org>
26834
26835        Crash in Document::setFocusedNode if the frame of new focused node is detached in 'change' event handler
26836        https://bugs.webkit.org/show_bug.cgi?id=112653
26837
26838        Reviewed by Dimitri Glazkov.
26839
26840        Test: fast/frames/detach-frame-during-focus.html
26841
26842        * page/FocusController.cpp:
26843        (WebCore::FocusController::setFocusedNode):
26844        A oldDocument->setFocusedNode call might dispatch a 'change' event for
26845        an old focused node, and an event handler code might detach the
26846        newFocusedFrame. So we should check it. Without the check, the following
26847        newDocument->setFocusedNode call would crash because of null
26848        Frame::page().
26849
268502013-03-20  Ryosuke Niwa  <rniwa@webkit.org>
26851
26852        Assertion in LegacyWebArchive::create() in editing tests
26853        https://bugs.webkit.org/show_bug.cgi?id=112642
26854
26855        Reviewed by Simon Fraser.
26856
26857        Address Simon's review comment. Don't convert String to MIMEType just to convert it back to String.
26858
26859        * platform/mac/PasteboardMac.mm:
26860        (WebCore::fragmentFromWebArchive):
26861
268622013-03-20  Zan Dobersek  <zdobersek@igalia.com>
26863
26864        [GTK] Build ANGLE sources into a separate library from libWebCore.la
26865        https://bugs.webkit.org/show_bug.cgi?id=112778
26866
26867        Reviewed by Martin Robinson.
26868
26869        No new tests - no change in functionality.
26870
26871        * GNUmakefile.list.am: Remove the ANGLE sources listing, it's now placed in the ANGLE-specific GNUmakefile.am.
26872
268732011-03-20  Ryosuke Niwa  <rniwa@webkit.org>
26874
26875        Assertion in LegacyWebArchive::create() in editing tests
26876        https://bugs.webkit.org/show_bug.cgi?id=112642
26877
26878        Reviewed by Enrica Casucci.
26879
26880        It's possible for clipboard to be overriden between the time we retrieve clipboard types and the time
26881        we actually retrieve the Web archive buffer. Add a null check to take this into account.
26882
26883        Also extracted fragmentFromWebArchive for clarity.
26884
26885        * platform/mac/PasteboardMac.mm:
26886        (WebCore::fragmentFromWebArchive): Extracted.
26887        (WebCore::Pasteboard::documentFragment):
26888
268892013-03-20  Chris Fleizach  <cfleizach@apple.com>
26890
26891        WebSpeech: Crash in WebCore::PlatformSpeechSynthesisUtterance::client / WebCore::SpeechSynthesis::didResumeSpeaking
26892        https://bugs.webkit.org/show_bug.cgi?id=112728
26893
26894        Reviewed by Tim Horton.
26895
26896        When cancel() is called, there was a delay in the platform returning and saying speech was finished, which caused
26897        the m_currentSpeechUtterance variable to get deallocated but not cleared. 
26898
26899        This patch fixes up the management of the utterances in SpeechSynthesis and the Mac platform given that
26900        we can't rely on the platform to return immediately on a stop speaking job.
26901
26902        Test: platform/mac/fast/speechsynthesis/speech-synthesis-cancel-crash.html
26903
26904        * Modules/speech/SpeechSynthesis.cpp:
26905        (WebCore::SpeechSynthesis::cancel):
26906        (WebCore::SpeechSynthesis::resume):
26907        * platform/mac/PlatformSpeechSynthesizerMac.mm:
26908        (-[WebSpeechSynthesisWrapper cancel]):
26909        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
26910        (-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
26911
269122013-03-20  Eric Carlson  <eric.carlson@apple.com>
26913
26914        Unreviewed, fix Mac release build.
26915
26916        * page/CaptionUserPreferencesMac.mm:
26917        (WebCore::languageIdentifier):
26918
269192013-03-20  Eric Carlson  <eric.carlson@apple.com>
26920
26921        Allow ports specific text track menu
26922        https://bugs.webkit.org/show_bug.cgi?id=112800
26923
26924        Reviewed by Dean Jackson.
26925
26926        No new tests, existing tests updated for changes.
26927
26928        * English.lproj/Localizable.strings: Add localizable strings for text track names.
26929
26930        * html/HTMLMediaElement.cpp:
26931        (WebCore::HTMLMediaElement::HTMLMediaElement): userPrefersCaptions -> shouldShowCaptions.
26932        (WebCore::HTMLMediaElement::setSelectedTextTrack): toggleTrackAtIndex -> setSelectedTextTrack.
26933        (WebCore::HTMLMediaElement::userPrefersCaptions): userPrefersCaptions -> shouldShowCaptions.
26934        (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Get preferences from CaptionUserPreferences
26935            instead of from Settings.
26936        (WebCore::HTMLMediaElement::setSelectedTextTrack): Renamed from toggleTrackAtIndex. Now takes
26937            a TextTrack* instead of an int.
26938        (WebCore::HTMLMediaElement::captionPreferencesChanged): Don't force a recalculation unless 
26939            captions are enabled/disabled to avoid unnecessary thrash.
26940        * html/HTMLMediaElement.h:
26941
26942        * html/shadow/MediaControlElements.cpp:
26943        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Use the menu to track
26944            map instead of just the track index.
26945        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Build and configure the
26946            menu from the menu to track map.
26947        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Start with a list
26948            of tracks already sorted according to platform specific rules. Build a menu to track map
26949            so tracks are retained while the menu is visible.
26950        * html/shadow/MediaControlElements.h:
26951
26952        * html/shadow/MediaControls.cpp:
26953        (WebCore::MediaControls::textTrackPreferencesChanged): Call closedCaptionTracksChanged so the
26954            track menu will be rebuilt before it is shown again.
26955
26956        * html/track/InbandTextTrack.cpp:
26957        (WebCore::InbandTextTrack::containsOnlyForcedSubtitles): New, passthrough to the private track.
26958        (WebCore::InbandTextTrack::isMainProgramContent): Ditto.
26959        (WebCore::InbandTextTrack::isEasyToRead): Ditto.
26960        * html/track/InbandTextTrack.h:
26961        * html/track/TextTrack.h:
26962
26963        * html/track/TextTrackList.cpp:
26964        (WebCore::TextTrackList::contains): New.
26965        * html/track/TextTrackList.h:
26966
26967        * page/CaptionUserPreferences.cpp:
26968        (WebCore::CaptionUserPreferences::CaptionUserPreferences): Pull in from .h ditto.
26969        (WebCore::CaptionUserPreferences::~CaptionUserPreferences): Ditto.
26970        (WebCore::CaptionUserPreferences::shouldShowCaptions): Renamed from userPrefersCaptions. 
26971        (WebCore::CaptionUserPreferences::setShouldShowCaptions): New.
26972        (WebCore::CaptionUserPreferences::userPrefersCaptions): Ditto.
26973        (WebCore::CaptionUserPreferences::setUserPrefersCaptions): Ditto.
26974        (WebCore::CaptionUserPreferences::userPrefersSubtitles): Ditto.
26975        (WebCore::CaptionUserPreferences::setUserPrefersSubtitles): Ditto.
26976        (WebCore::CaptionUserPreferences::userPrefersTextDescriptions): Ditto.
26977        (WebCore::CaptionUserPreferences::setUserPrefersTextDescriptions): Ditto.
26978        (WebCore::CaptionUserPreferences::displayNameForTrack): Ditto.
26979        (WebCore::CaptionUserPreferences::sortedTrackListForMenu): Ditto.
26980        * page/CaptionUserPreferences.h:
26981
26982        * page/CaptionUserPreferencesMac.h:
26983        * page/CaptionUserPreferencesMac.mm:
26984        (WebCore::CaptionUserPreferencesMac::shouldShowCaptions): Renamed from userPrefersCaptions. 
26985        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): New.
26986        (WebCore::CaptionUserPreferences::userPrefersSubtitles): Ditto.
26987        (WebCore::trackDisplayName): Update logic used to build track title.
26988        (WebCore::CaptionUserPreferencesMac::displayNameForTrack): Call trackDisplayName.
26989        (WebCore::textTrackCompare): Text track title sort comparison function.
26990        (WebCore::CaptionUserPreferencesMac::sortedTrackListForMenu): New. Sort the list of tracks
26991            according to title, language, and user preferences.
26992
26993        * platform/Language.cpp:
26994        (WebCore::displayNameForLanguageLocale): Don't leak the CFLocale.
26995        
26996        * platform/LocalizedStrings.cpp:
26997        (WebCore::textTrackCountryAndLanguageMenuItemText): New.
26998        (WebCore::textTrackLanguageMenuItemText): Ditto.
26999        (WebCore::closedCaptionTrackMenuItemText): Ditto.
27000        (WebCore::sdhTrackMenuItemText): Ditto.
27001        (WebCore::easyReaderTrackMenuItemText): Ditto.
27002        * platform/LocalizedStrings.h:
27003
27004        * platform/graphics/InbandTextTrackPrivate.h:
27005        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
27006        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
27007        (WebCore::InbandTextTrackPrivateAVFObjC::containsOnlyForcedSubtitles): New, return AVFoundation property.
27008        (WebCore::InbandTextTrackPrivateAVFObjC::isMainProgramContent): Ditto.
27009        (WebCore::InbandTextTrackPrivateAVFObjC::isEasyToRead): Ditto.
27010
27011        * testing/InternalSettings.cpp:
27012        (WebCore::InternalSettings::setShouldDisplayTrackKind): Set setting via CaptionUserPreferences
27013            instead of from Settings.
27014        (WebCore::InternalSettings::shouldDisplayTrackKind): Get setting from CaptionUserPreferences
27015            instead of from Settings.
27016
270172013-03-20  Zan Dobersek  <zdobersek@igalia.com>
27018
27019        [GTK] Clean up TemporaryLinkStubs.cpp
27020        https://bugs.webkit.org/show_bug.cgi?id=112820
27021
27022        Reviewed by Philippe Normand.
27023
27024        Clean up the TemporaryLinkStubs.cpp file, removing unnecessary includes and prettifying the code.
27025
27026        No new tests - no new functionality.
27027
27028        * platform/gtk/TemporaryLinkStubs.cpp:
27029        (WebCore):
27030        (WebCore::getSupportedKeySizes):
27031        (WebCore::signedPublicKeyAndChallengeString):
27032        (WebCore::userIdleTime):
27033
270342013-03-20  Yufeng Shen  <miletus@chromium.org>
27035
27036        Remove PlatformEvent::GestureDoubleTap
27037        https://bugs.webkit.org/show_bug.cgi?id=93045
27038
27039        Reviewed by Antonio Gomes.
27040
27041        PlatformEvent::GestureDoubleTap is not currently
27042        used in WebCore and replaced by GestureTap with
27043        tap count 2, so remove it.
27044
27045        Test: We are removing something that is not used, so
27046        no new test. All existing tests pass.
27047
27048        * dom/GestureEvent.cpp:
27049        (WebCore::GestureEvent::create):
27050        * page/EventHandler.cpp:
27051        (WebCore::EventHandler::handleGestureEvent):
27052        * platform/PlatformEvent.h:
27053        * platform/chromium/PopupContainer.cpp:
27054        (WebCore::PopupContainer::handleGestureEvent):
27055
270562013-03-20  Ojan Vafai  <ojan@chromium.org>
27057
27058        Move repaint methods from RenderObject to RenderBox
27059        https://bugs.webkit.org/show_bug.cgi?id=112773
27060
27061        Reviewed by Julien Chaffraix.
27062
27063        repaintOverhangingFloats and repaintDuringLayoutIfMoved are only ever called
27064        on RenderBoxes, so don't need to be on RenderObject. This also lets us
27065        devirtualize repaintDuringLayoutIfMoved.
27066
27067        * rendering/RenderBox.h:
27068        (WebCore::RenderBox::repaintOverhangingFloats):
27069        * rendering/RenderObject.cpp:
27070        * rendering/RenderObject.h:
27071
270722013-03-20  Christian Biesinger  <cbiesinger@chromium.org>
27073
27074        Add a feature observer for RenderDeprecatedFlexibleBox
27075        https://bugs.webkit.org/show_bug.cgi?id=112740
27076
27077        Reviewed by Tony Chang.
27078
27079        No new tests - only adding measurements.
27080
27081        * page/FeatureObserver.h:
27082        Add constants for RenderDeprecatedFlexibleBox, and add separate
27083        constants for its use in the UI and in extensions.
27084        * rendering/RenderDeprecatedFlexibleBox.cpp:
27085        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
27086        Call FeatureObserver. Check the document()->url() to see which
27087        constant to use.
27088
270892013-03-20  Tim Horton  <timothy_horton@apple.com>
27090
27091        Autosize should use documentRect height instead of scrollHeight
27092        https://bugs.webkit.org/show_bug.cgi?id=112770
27093
27094        Reviewed by David Levin.
27095
27096        Autosizing fails to compute the correct height if the root element is very
27097        small but the document has significant overflow.
27098
27099        No new tests; autosizing is not currently exposed in a testable way on Mac.
27100
27101        * page/FrameView.cpp:
27102        (WebCore::FrameView::autoSizeIfEnabled):
27103
271042013-03-20  Julien Chaffraix  <jchaffraix@webkit.org>
27105
27106        [CSS Grid Layout] Improper repainting when grid item change their position
27107        https://bugs.webkit.org/show_bug.cgi?id=112749
27108
27109        Reviewed by Ojan Vafai.
27110
27111        Tests: fast/css-grid-layout/grid-element-change-columns-repaint.html
27112               fast/css-grid-layout/grid-element-change-rows-repaint.html
27113               fast/css-grid-layout/grid-item-change-column-repaint.html
27114               fast/css-grid-layout/grid-item-change-row-repaint.html
27115
27116        * rendering/RenderGrid.cpp:
27117        (WebCore::RenderGrid::layoutGridItems):
27118        Added a call to repaintDuringLayoutIfMoved to repaint moving grid items.
27119
271202013-03-20  Arvid Nilsson  <anilsson@rim.com>
27121
27122        [BlackBerry] compositing/iframes/scroll-fixed-transformed-element.html fails in manual testing
27123        https://bugs.webkit.org/show_bug.cgi?id=112806
27124
27125        Reviewed by Antonio Gomes.
27126
27127        PR 283363
27128
27129        When scrolling the iframe, the position: fixed element is correctly
27130        positioned, that is, as if it was fixed with respect to the iframe's
27131        viewport. When scrolling the main frame however, the fixed pos element
27132        was positioned as if it was fixed with respect to the main frame's
27133        viewport.
27134
27135        Fixed by falling back to using the WebKit-thread scroll position for
27136        fixed positioning in LayerRenderer, if the override doesn't have a
27137        position currently set, i.e. if we are not currently scrolling the
27138        iframe.
27139
27140        The effects of the bug are only visual, i.e. not detectable by DRT.
27141
27142        Manually testable using compositing/iframes/scroll-fixed-transformed-element.html
27143
27144        * platform/graphics/blackberry/LayerRenderer.cpp:
27145        (WebCore::LayerRenderer::updateLayersRecursive):
27146
271472013-03-20  Michael Pruett  <michael@68k.org>
27148
27149        [V8] Simplify implementation of EnforceRange conversions
27150        https://bugs.webkit.org/show_bug.cgi?id=112758
27151
27152        Reviewed by Kentaro Hara.
27153
27154        Factor out EnforceRange conversion into a helper function.
27155        Simplify calculation for truncation.
27156
27157        Tests: fast/js/webidl-type-mapping.html
27158               storage/indexeddb/cursor-advance.html
27159               storage/indexeddb/cursor-advance-workers.html
27160               storage/indexeddb/intversion-bad-parameters.html
27161
27162        * bindings/v8/V8Binding.cpp:
27163        (WebCore::enforceRange):
27164        (WebCore):
27165        (WebCore::toInt32):
27166        (WebCore::toUInt32):
27167        (WebCore::toInt64):
27168        (WebCore::toUInt64):
27169
271702013-03-20  Harald Alvestrand  <hta@google.com>
27171
27172        Remove Local/Remote and RTCStatsElement from WebRTCStats API
27173        https://bugs.webkit.org/show_bug.cgi?id=112678
27174
27175        Reviewed by Adam Barth.
27176
27177        Pure removal, remaining functionality covered by existing test.
27178
27179        * Modules/mediastream/RTCStatsReport.cpp:
27180        * Modules/mediastream/RTCStatsReport.h:
27181        (RTCStatsReport):
27182        * Modules/mediastream/RTCStatsResponse.cpp:
27183        * Modules/mediastream/RTCStatsResponse.h:
27184        (RTCStatsResponse):
27185        * platform/chromium/support/WebRTCStatsResponse.cpp:
27186        * platform/mediastream/RTCStatsResponseBase.h:
27187        (RTCStatsResponseBase):
27188
271892013-03-20  Xingnan Wang  <xingnan.wang@intel.com>
27190
27191        ASSERTION FAILED: !m_renderingAutomaticPullNodes.size()
27192        https://bugs.webkit.org/show_bug.cgi?id=112777
27193
27194        Reviewed by Chris Rogers.
27195
27196        * Modules/webaudio/AudioContext.cpp:
27197        (WebCore::AudioContext::~AudioContext):
27198
271992013-03-20  Rouslan Solomakhin  <rouslan@chromium.org>
27200
27201        Copy-paste should not spellcheck when continuous spellcheck is turned off
27202        https://bugs.webkit.org/show_bug.cgi?id=112464
27203
27204        Reviewed by Ryosuke Niwa.
27205
27206        Test: editing/spelling/spellcheck-paste-continuous-disabled.html
27207
27208        * WebCore.exp.in: Export WebCore::Editor::isContinuousSpellCheckingEnabled() and WebCore::Editor::toggleContinuousSpellChecking() for use by internals.
27209        * WebCore.order: Export WebCore::Editor::isContinuousSpellCheckingEnabled() and WebCore::Editor::toggleContinuousSpellChecking() for use by internals.
27210        * editing/Editor.cpp:
27211        (WebCore::Editor::replaceSelectionWithFragment): Do not spellcheck if continuous spellcheck is turned off.
27212        * testing/Internals.cpp:
27213        (WebCore::Internals::resetToConsistentState): Leave continuous spellcheck turned on after a test.
27214        (WebCore::Internals::setContinuousSpellCheckingEnabled): Let tests enable and disable continuous spellcheck.
27215        (WebCore):
27216        * testing/Internals.h: Let tests enable and disable continuous spellcheck.
27217        (Internals):
27218        * testing/Internals.idl: Let tests enable and disable continuous spellcheck.
27219
272202013-03-20  Aaron Colwell  <acolwell@chromium.org>
27221
27222        Add support for MediaSource::isTypeSupported()
27223        https://bugs.webkit.org/show_bug.cgi?id=112301
27224
27225        Reviewed by Darin Fisher.
27226
27227        Test: http/tests/media/media-source/video-media-source-is-type-supported.html
27228
27229        * Modules/mediasource/MediaSource.cpp:
27230        (WebCore::MediaSource::addSourceBuffer): Added isTypeSupported() call to verify parameters
27231                                                 pass into this method.
27232        (WebCore::MediaSource::isTypeSupported):
27233        (WebCore):
27234        * Modules/mediasource/MediaSource.h:
27235        (MediaSource):
27236        * Modules/mediasource/MediaSource.idl: Added isTypeSupported().
27237        * platform/MIMETypeRegistry.h:
27238        (MIMETypeRegistry): Added isSupportedMediaSourceMIMEType().
27239        * platform/chromium/MIMETypeRegistryChromium.cpp:
27240        (WebCore):
27241        (WebCore::MIMETypeRegistry::isSupportedMediaSourceMIMEType): Implemented in terms of WebMimeRegistry::isSupportedMediaSourceMIMEType.
27242
272432013-03-20  Brent Fulgham  <bfulgham@webkit.org>
27244
27245        [WinCairo] Unreviewed VS2010 build correction.
27246
27247        * WebCore.vcxproj/WebCore.vcxproj: Enable build of NetworkStorageSessionStub.cpp
27248        for WinCairo port.
27249        * WebCore.vcxproj/WebCore.vcxproj.filters: Correct build type of
27250        CookieJarCurl from 'custom' to 'C++ source file'
27251
272522013-03-20  Marja Hölttä  <marja@chromium.org>
27253
27254        [V8] Rename DOMDataStore::isMainWorldObject
27255        https://bugs.webkit.org/show_bug.cgi?id=112817
27256
27257        Reviewed by Jochen Eisinger.
27258
27259        No new tests (no changes in functionality).
27260
27261        * bindings/v8/DOMDataStore.h:
27262        (WebCore::DOMDataStore::getWrapperFast):
27263        (WebCore::DOMDataStore::getWrapper):
27264        (WebCore::DOMDataStore::getWrapperForMainWorld):
27265        (WebCore::DOMDataStore::setWrapper):
27266        (WebCore::DOMDataStore::canExistInWorker):
27267
272682013-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
27269
27270        Web Inspector: Flame Chart. Provide Overview pane for better user expirience.
27271        https://bugs.webkit.org/show_bug.cgi?id=112496
27272
27273        Reviewed by Yury Semikhatsky.
27274
27275        This patch implements basic part of Overview Pane in FlameChart.
27276        The idea of the patch is to move everything into chart-container element.
27277        And put OverviewGrid into new overview-container element.
27278
27279        Drive by change: fix the layout of the flame chart elements.
27280        Drive by change: fix the drag window & drag resizer mechanics
27281        for the case when the parent element has zero offsetLeft.
27282
27283        * inspector/front-end/FlameChart.js:
27284        (WebInspector.FlameChart):
27285        (WebInspector.FlameChart.OverviewCalculator):
27286        (WebInspector.FlameChart.OverviewCalculator.prototype._updateBoundaries):
27287        (WebInspector.FlameChart.OverviewCalculator.prototype.computePosition):
27288        (WebInspector.FlameChart.OverviewCalculator.prototype.formatTime):
27289        (WebInspector.FlameChart.OverviewCalculator.prototype.maximumBoundary):
27290        (WebInspector.FlameChart.OverviewCalculator.prototype.minimumBoundary):
27291        (WebInspector.FlameChart.OverviewCalculator.prototype.boundarySpan):
27292        (WebInspector.FlameChart.prototype._onWindowChanged):
27293        (WebInspector.FlameChart.prototype._adjustXScale):
27294        (WebInspector.FlameChart.prototype.update):
27295        * inspector/front-end/OverviewGrid.js:
27296        (WebInspector.OverviewGrid.Window):
27297        (WebInspector.OverviewGrid.Window.prototype._resizerElementStartDragging):
27298        (WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
27299        (WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
27300        (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
27301        (WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
27302        (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
27303        (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
27304        (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
27305        (WebInspector.OverviewGrid.WindowSelector):
27306        * inspector/front-end/TimelineOverviewPane.js:
27307        * inspector/front-end/flameChart.css:
27308        (.chart-container .item-anchor):
27309        (.overview-container):
27310        (.chart-container):
27311        (#flame-chart-overview-grid .resources-dividers-label-bar):
27312        * inspector/front-end/inspectorCommon.css:
27313        (.resources-divider-label):
27314
273152013-03-20  Sergey Ryazanov  <serya@chromium.org>
27316
27317        Web Inspector: Plumbing CSS warnings
27318        https://bugs.webkit.org/show_bug.cgi?id=111334
27319
27320        Reviewed by Pavel Feldman.
27321
27322        Adding a framework for plumbing CSS warnings from CSSParser/grammar to the Inspector console.
27323
27324        * css/CSSParser.cpp:
27325        (WebCore::CSSParser::CSSParser):
27326        (WebCore::CSSParser::parseSheet):
27327        (WebCore::CSSParser::syntaxError):
27328        (WebCore):
27329        (WebCore::CSSParser::isLoggingErrors):
27330        (WebCore::CSSParser::logError):
27331        * css/CSSParser.h:
27332        (CSSParser):
27333        (CSSParser::Location):
27334        (WebCore):
27335        * css/StyleSheetContents.cpp:
27336        (WebCore::StyleSheetContents::parseAuthorStyleSheet):
27337        (WebCore::StyleSheetContents::parseString):
27338        (WebCore::StyleSheetContents::parseStringAtLine):
27339        * css/StyleSheetContents.h:
27340        (StyleSheetContents):
27341        * dom/StyleElement.cpp:
27342        (WebCore::StyleElement::createSheet):
27343        * page/PageConsole.cpp:
27344        (WebCore::PageConsole::addMessage):
27345
273462013-03-20  Justin Novosad  <junov@google.com>
27347
27348        [Chromium] Code cleanup: removing support for non-deferred 2d canvas rendering
27349        https://bugs.webkit.org/show_bug.cgi?id=112605
27350
27351        Reviewed by James Robinson.
27352
27353        Deleting all the code that was used for propagating and supporting
27354        the Chromium setting for disabling deferred 2d canvas rendering.
27355
27356        No new tests: Affected code paths covered by existing tests.
27357
27358        * html/HTMLCanvasElement.cpp:
27359        (WebCore::HTMLCanvasElement::createImageBuffer):
27360        * html/HTMLCanvasElement.h:
27361        * page/Settings.in:
27362        * platform/graphics/ImageBuffer.h:
27363        (WebCore::ImageBuffer::create):
27364        (ImageBuffer):
27365        * platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
27366        (WebCore::ImageBuffer::ImageBuffer):
27367        * platform/graphics/cairo/ImageBufferCairo.cpp:
27368        (WebCore::ImageBuffer::ImageBuffer):
27369        * platform/graphics/cg/ImageBufferCG.cpp:
27370        (WebCore::ImageBuffer::ImageBuffer):
27371        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
27372        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
27373        (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
27374        (WebCore::Canvas2DLayerBridge::prepareForDraw):
27375        (WebCore::Canvas2DLayerBridge::storageAllocatedForRecordingChanged):
27376        (WebCore::Canvas2DLayerBridge::storageAllocatedForRecording):
27377        (WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
27378        (WebCore::Canvas2DLayerBridge::flush):
27379        (WebCore::Canvas2DLayerBridge::skCanvas):
27380        (WebCore::Canvas2DLayerBridge::prepareTexture):
27381        (WebCore::Canvas2DLayerBridge::contextAcquired):
27382        * platform/graphics/chromium/Canvas2DLayerBridge.h:
27383        (WebCore::Canvas2DLayerBridge::create):
27384        (Canvas2DLayerBridge):
27385        * platform/graphics/qt/ImageBufferQt.cpp:
27386        (WebCore::ImageBuffer::ImageBuffer):
27387        * platform/graphics/skia/ImageBufferSkia.cpp:
27388        (WebCore::createAcceleratedCanvas):
27389        (WebCore::ImageBuffer::ImageBuffer):
27390        * platform/graphics/wince/ImageBufferWinCE.cpp:
27391        (WebCore::ImageBuffer::ImageBuffer):
27392        * platform/graphics/wx/ImageBufferWx.cpp:
27393        (WebCore::ImageBuffer::ImageBuffer):
27394
273952013-03-20  Mike West  <mkwst@chromium.org>
27396
27397        Drop full URLs from cross-domain access errors caused by 'document.domain' mismatches.
27398        https://bugs.webkit.org/show_bug.cgi?id=112813
27399
27400        Reviewed by Timothy Hatcher.
27401
27402        Following up on http://wkbug.com/112042, this patch brings 'document.domain'
27403        mismatch error messages into line with the newly origin-only default
27404        message. There will probably be two or three more patches in this series
27405        just to keep the rebaselines down to something managably reviewable.
27406
27407        * page/DOMWindow.cpp:
27408        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
27409            Move the default message redefinition up out of the final 'return' so
27410            that 'document.domain' mismatch errors grab the new text.
27411
274122013-03-20  Ken Kania  <kkania@chromium.org>
27413
27414        Web Inspector: Add promptText param to Page.handleJavaScriptDialog
27415        https://bugs.webkit.org/show_bug.cgi?id=112706
27416
27417        Reviewed by Pavel Feldman.
27418
27419        * inspector/Inspector.json:
27420        * inspector/InspectorClient.h:
27421        (WebCore::InspectorClient::handleJavaScriptDialog):
27422        * inspector/InspectorPageAgent.cpp:
27423        (WebCore::InspectorPageAgent::handleJavaScriptDialog):
27424        * inspector/InspectorPageAgent.h:
27425
274262013-03-20  Andrey Lushnikov  <lushnikov@chromium.org>
27427
27428        Web Inspector: fix SourceFrame.js compilation warning
27429        https://bugs.webkit.org/show_bug.cgi?id=112804
27430
27431        Reviewed by Yury Semikhatsky.
27432
27433        No new tests: no change in behavior.
27434
27435        - Explicitly parse lineNumber from object property name.
27436        - Add type annotations to ensure addMessageToSource is monomorphic.
27437
27438        * inspector/front-end/SourceFrame.js:
27439        (WebInspector.SourceFrame.prototype.clearMessages):
27440
274412013-03-20  Dan Carney  <dcarney@google.com>
27442
27443        [v8] unsafe persistent access in V8LazyEventListener
27444        https://bugs.webkit.org/show_bug.cgi?id=112807
27445
27446        Reviewed by Kentaro Hara.
27447
27448        No new tests.
27449
27450        * bindings/v8/V8LazyEventListener.cpp:
27451        (WebCore::toObjectWrapper):
27452
274532013-03-20  Arvid Nilsson  <anilsson@rim.com>
27454
27455        [BlackBerry] Enable appropriate vertex attribute arrays in LayerRenderer::useProgram()
27456        https://bugs.webkit.org/show_bug.cgi?id=112757
27457
27458        Reviewed by Rob Buis.
27459
27460        PR 306465
27461
27462        Make the LayerRenderer and associated code more bullet-proof when it
27463        comes to enabling vertex attribute arrays, by enabling them already
27464        when LayerRenderer::useProgram() is called. This fixes a bug where the
27465        video hole punch rectangle wasn't punched when preceding rendering
27466        caused the vertex attribute array at index 0 to be disabled, such as
27467        when rendering the text selection overlay immediately before video.
27468
27469        A number of places where the position attribute index was hard-coded
27470        to 0 were also fixed. This causes no change in behavior, the position
27471        attribute was really at 0, but nonetheless that shouldn't be hardcoded.
27472
27473        The effects of this patch are only manually testable.
27474
27475        * platform/graphics/blackberry/LayerCompositingThread.cpp:
27476        (WebCore::LayerCompositingThread::drawTextures):
27477        (WebCore::LayerCompositingThread::drawSurface):
27478        * platform/graphics/blackberry/LayerRenderer.cpp:
27479        (WebCore::LayerRenderer::compositeBuffer):
27480        (WebCore::LayerRenderer::drawColor):
27481        (WebCore::LayerRenderer::drawDebugBorder):
27482        (WebCore::LayerRenderer::drawHolePunchRect):
27483        (WebCore::LayerRenderer::compositeLayersRecursive):
27484        (WebCore::LayerRenderer::useProgram):
27485
274862013-03-20  Andrey Lushnikov  <lushnikov@chromium.org>
27487
27488        Web Inspector: [CodeMirror] implement highlightRange method
27489        https://bugs.webkit.org/show_bug.cgi?id=112802
27490
27491        Reviewed by Vsevolod Vlasov.
27492
27493        - Implement highlightRange/removeHighlight methods in
27494        CodeMirrorTextEditor.
27495        - Update TextEditor interface closure annotations.
27496
27497        No new tests.
27498
27499        * inspector/front-end/CodeMirrorTextEditor.js:
27500        (WebInspector.CodeMirrorTextEditor.prototype.removeHighlight):
27501        (WebInspector.CodeMirrorTextEditor.prototype.highlightRange):
27502        * inspector/front-end/DefaultTextEditor.js:
27503        * inspector/front-end/TextEditor.js:
27504
275052013-03-20  Andrey Lushnikov  <lushnikov@chromium.org>
27506
27507        Web Inspector: [CodeMirror] show source location for codemirror text editor
27508        https://bugs.webkit.org/show_bug.cgi?id=112798
27509
27510        Reviewed by Vsevolod Vlasov.
27511
27512        No new tests.
27513
27514        - Implement CodeMirrorTextEditor.copyRange method
27515        - Fire "selectionChange" event for text editor delegate from
27516        CodeMirrorTextEditor.
27517
27518        * inspector/front-end/CodeMirrorTextEditor.js:
27519        (WebInspector.CodeMirrorTextEditor):
27520        (WebInspector.CodeMirrorTextEditor.prototype.copyRange):
27521        (WebInspector.CodeMirrorTextEditor.prototype._cursorActivity):
27522
275232013-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
27524
27525        Unreviewed, rolling out r146331.
27526        http://trac.webkit.org/changeset/146331
27527        https://bugs.webkit.org/show_bug.cgi?id=112795
27528
27529        Does not work as expected (Requested by carewolf on #webkit).
27530
27531        * platform/graphics/qt/FontQt.cpp:
27532        (WebCore::Font::initFormatForTextLayout):
27533
275342013-03-20  Eugene Klyuchnikov  <eustas@chromium.org>
27535
27536        Web Inspector: [Resources] Local Storage: "Add item" row height doesn't match underlying grid.
27537        https://bugs.webkit.org/show_bug.cgi?id=112433
27538
27539        Reviewed by Pavel Feldman.
27540
27541        Fixed cell height to correspond grid step.
27542
27543        * inspector/front-end/dataGrid.css:
27544        (.data-grid td): Fixed cell height to correspond grid step.
27545
275462013-03-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
27547
27548        [Qt] New fast/text/word-space-with-kerning-3.html fails on Qt
27549        https://bugs.webkit.org/show_bug.cgi?id=112668
27550
27551        Reviewed by Jocelyn Turcotte.
27552
27553        Kerning is on by default in Qt. This means we need to disable it
27554        when WebCore does not request it.
27555
27556        * platform/graphics/qt/FontQt.cpp:
27557        (WebCore::Font::initFormatForTextLayout):
27558
275592013-03-20  Ilya Tikhonovsky  <loislo@chromium.org>
27560
27561        Web Inspector: OverviewGrid rename classes according to names of js classes.
27562        https://bugs.webkit.org/show_bug.cgi?id=112786
27563
27564        Reviewed by Yury Semikhatsky.
27565
27566        It is a part of meta bug 'extract OverviewGrid from TimelineOverviewPane'.
27567        As the last step it renames timeline-...... classes to overview-grid-...... classes
27568        and moves them to inspectorCommon.css
27569
27570        * inspector/front-end/OverviewGrid.js:
27571        (WebInspector.OverviewGrid):
27572        (WebInspector.OverviewGrid.Window):
27573        (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
27574        (WebInspector.OverviewGrid.WindowSelector):
27575        (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
27576        * inspector/front-end/inspectorCommon.css:
27577        (.overview-grid-window-selector):
27578        (.overview-grid-window):
27579        (.overview-grid-dividers-background):
27580        (.overview-grid-window-rulers):
27581        (.overview-grid-window-resizer):
27582        * inspector/front-end/timelinePanel.css:
27583        (.timeline-frame-overview .overview-grid-window):
27584        (.timeline-frame-overview .overview-grid-dividers-background):
27585
275862013-03-20  Dmitry Zvorygin  <zvorygin@chromium.org>
27587
27588        Web Inspector: Switch Drawer animation from JavaScript to CSS transitions.
27589        https://bugs.webkit.org/show_bug.cgi?id=112586
27590
27591        This is prerequisite to make Drawer work in overlay mode.
27592
27593        Reviewed by Vsevolod Vlasov.
27594
27595        * inspector/front-end/Drawer.js:
27596        (WebInspector.Drawer):
27597        (WebInspector.Drawer.prototype.show):
27598        (WebInspector.Drawer.prototype.hide.this.animationFinished):
27599        (WebInspector.Drawer.prototype.hide):
27600        (WebInspector.Drawer.prototype.immediatelyFinishAnimation):
27601        (WebInspector.Drawer.prototype._getAnimationStyles):
27602        * inspector/front-end/UIUtils.js:
27603        * inspector/front-end/inspector.css:
27604        (.animate-slow *):
27605        (.animate #main):
27606        (.animate #floating-status-bar-container):
27607        (.animate #drawer):
27608        (.animate #bottom-status-bar-container > *):
27609
276102013-03-19  Eugene Klyuchnikov  <eustas@chromium.org>
27611
27612        Web Inspector: [DataGrid] Refactorings.
27613        https://bugs.webkit.org/show_bug.cgi?id=112690
27614
27615        Reviewed by Pavel Feldman.
27616
27617        1. Avoid using string literals;
27618        2. Remove unused notifications; turn "populate" to method invocation;
27619        3. Replace some getters with regular functions.
27620
27621        * inspector/front-end/DataGrid.js: Applied refactorings.
27622        * inspector/front-end/ApplicationCacheItemsView.js: Adopted changes.
27623        * inspector/front-end/BottomUpProfileDataGridTree.js: Ditto.
27624        * inspector/front-end/CPUProfileView.js: Ditto.
27625        * inspector/front-end/CSSSelectorProfileView.js: Ditto.
27626        * inspector/front-end/CookiesTable.js: Ditto.
27627        * inspector/front-end/DirectoryContentView.js: Ditto.
27628        * inspector/front-end/HeapSnapshotDataGrids.js: Ditto.
27629        * inspector/front-end/HeapSnapshotGridNodes.js: Ditto.
27630        * inspector/front-end/NativeMemorySnapshotView.js: Ditto.
27631        * inspector/front-end/NetworkPanel.js: Ditto.
27632        * inspector/front-end/ProfileDataGridTree.js: Ditto.
27633        * inspector/front-end/ResourceWebSocketFrameView.js: Ditto.
27634        * inspector/front-end/TopDownProfileDataGridTree.js: Ditto.
27635        * inspector/front-end/dataGrid.css: Ditto.
27636
276372013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
27638
27639        [Qt] Support -webkit-font-smoothing
27640        https://bugs.webkit.org/show_bug.cgi?id=106009
27641
27642        Reviewed by Jocelyn Turcotte.
27643
27644        Set QFont antialiasing settings based on the font smoothing settings in FontDescription.
27645
27646        * platform/graphics/qt/FontPlatformDataQt.cpp:
27647        (WebCore::FontPlatformData::FontPlatformData):
27648
276492013-03-20  Alexei Filippov  <alph@chromium.org>
27650
27651        Web Inspector: Allow toolbar customization
27652        https://bugs.webkit.org/show_bug.cgi?id=112440
27653
27654        Adds a tools menu item that allows the user to show/hide
27655        inspector panels on the toolbar.
27656
27657        Reviewed by Yury Semikhatsky.
27658
27659        * inspector/front-end/InspectorView.js:
27660        * inspector/front-end/Settings.js:
27661        (WebInspector.Settings):
27662        (WebInspector.ExperimentsSettings):
27663        * inspector/front-end/Toolbar.js:
27664        (WebInspector.Toolbar):
27665        (WebInspector.Toolbar.prototype.addPanel):
27666        (WebInspector.Toolbar.prototype._isPanelVisibleByDefault):
27667        (WebInspector.Toolbar.prototype.set _hidePanel):
27668        (WebInspector.Toolbar.prototype._showPanel):
27669        (WebInspector.Toolbar.prototype._togglePanelsMenu):
27670        * inspector/front-end/inspector.css:
27671        (#toolbar-panels-menu):
27672        (#toolbar-panels-menu:hover):
27673        (#toolbar-panels-menu:active):
27674        * inspector/front-end/inspector.html:
27675
276762013-03-20  Eugene Klyuchnikov  <eustas@chromium.org>
27677
27678        Web Inspector: [Settings] Add "storage" parameter to WebInspector.Setting
27679        https://bugs.webkit.org/show_bug.cgi?id=112667
27680
27681        Reviewed by Pavel Feldman.
27682
27683        New parameter will allow more options on how long setting will persist.
27684        Possible options are: localStorage, sessionStorage and no-storage.
27685
27686        Additional change: use delete instead of .removeItem to make it possible
27687        use any object as storage.
27688
27689        * inspector/front-end/Settings.js:
27690        Added "storage" parameter and used is instead of "window.localStorage".
27691
276922013-03-20  Pan Deng  <pan.deng@intel.com>
27693
27694        Web Inspector: [Network] Fix the bug of WebSocketFrameView crash.
27695        https://bugs.webkit.org/show_bug.cgi?id=112771.
27696
27697        Reviewed by Pavel Feldman.
27698
27699        WebSocketFrameView crashes when websocket receives an error message, this
27700        patch fixes this problem, and error message will be shown in dataGrid as expected.
27701
27702        No new tests.
27703
27704        * inspector/front-end/ResourceWebSocketFrameView.js:
27705        (WebInspector.ResourceWebSocketFrameView): Handle the errorMessage case.
27706
277072013-03-20  Dmitry Zvorygin  <zvorygin@chromium.org>
27708
27709        Remove remainings of obsolete LogLevels and MessageSources from inspector JS part.
27710        https://bugs.webkit.org/show_bug.cgi?id=112709
27711
27712        By the way tuned messagesources in ApplicationCacheGroup.
27713
27714        Reviewed by Pavel Feldman.
27715
27716        * inspector/front-end/ConsoleMessage.js:
27717        (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
27718        (WebInspector.ConsoleMessageImpl.prototype.toString):
27719        * inspector/front-end/ConsoleModel.js:
27720        * inspector/front-end/ExtensionAPI.js:
27721        (defineCommonExtensionSymbols):
27722        * inspector/front-end/ExtensionServer.js:
27723        (WebInspector.ExtensionServer.prototype._onAddConsoleMessage):
27724        (WebInspector.ExtensionServer.prototype._makeConsoleMessage):
27725        * loader/appcache/ApplicationCacheGroup.cpp:
27726        (WebCore::ApplicationCacheGroup::didReceiveResponse):
27727        (WebCore::ApplicationCacheGroup::didFinishLoading):
27728        (WebCore::ApplicationCacheGroup::didFail):
27729
277302013-03-20  Krzysztof Czech  <k.czech@samsung.com>
27731
27732        [GTK] accessibility/aria-scrollbar-role.html is failing
27733        https://bugs.webkit.org/show_bug.cgi?id=98358
27734
27735        Reviewed by Martin Robinson.
27736
27737        Adds support for checking an orientation attribute of accessibility object.
27738        AccessibilityObject that represents ScrollBar element should be ATK_VALUE type.
27739        ScrollBar element can be considered as a Range Widget that is able to expose some
27740        range values.
27741
27742        Test: accessibility/aria-scrollbar-role.html
27743
27744        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
27745        (setAtkStateSetFromCoreObject):
27746        (getInterfaceMaskFromObject):
27747
277482013-03-20  Zan Dobersek  <zdobersek@igalia.com>
27749
27750        Unreviewed. Fixing a typo in libLevelDB_la_CFLAGS assignment - cxflags -> cflags.
27751
27752        * GNUmakefile.am:
27753
277542013-03-20  Robert Hogan  <robert@webkit.org>
27755
27756        Absolute position div without width specified does not reflow its text when it is moved (and computed width changes)
27757        https://bugs.webkit.org/show_bug.cgi?id=112052
27758
27759        Reviewed by Emil A Eklund.
27760        
27761        If a positioned block has auto width then any movement means the block needs to be resized.
27762
27763        Test: fast/block/positioned-block-auto-width-movement.html
27764
27765        * rendering/style/RenderStyle.cpp:
27766        (WebCore::positionedObjectMoved):
27767        (WebCore::RenderStyle::diff):
27768
277692013-03-19  Sheriff Bot  <webkit.review.bot@gmail.com>
27770
27771        Unreviewed, rolling out r146301.
27772        http://trac.webkit.org/changeset/146301
27773        https://bugs.webkit.org/show_bug.cgi?id=112776
27774
27775        Caused hundreds of tests to hit assertions on Windows debug
27776        bots (Requested by rniwa on #webkit).
27777
27778        * CMakeLists.txt:
27779        * GNUmakefile.list.am:
27780        * Target.pri:
27781        * WebCore.exp.in:
27782        * WebCore.gypi:
27783        * WebCore.vcproj/WebCore.vcproj:
27784        * WebCore.vcxproj/WebCore.vcxproj:
27785        * WebCore.vcxproj/WebCore.vcxproj.filters:
27786        * WebCore.xcodeproj/project.pbxproj:
27787        * loader/DocumentLoader.cpp:
27788        (WebCore::DocumentLoader::DocumentLoader):
27789        (WebCore::DocumentLoader::mainResourceLoader):
27790        (WebCore::DocumentLoader::~DocumentLoader):
27791        (WebCore::DocumentLoader::mainResourceData):
27792        (WebCore::DocumentLoader::stopLoading):
27793        (WebCore::DocumentLoader::finishedLoading):
27794        (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
27795        (WebCore::DocumentLoader::continueAfterNavigationPolicy):
27796        (WebCore::DocumentLoader::responseReceived):
27797        (WebCore::DocumentLoader::continueAfterContentPolicy):
27798        (WebCore::DocumentLoader::reportMemoryUsage):
27799        (WebCore::DocumentLoader::receivedData):
27800        (WebCore::DocumentLoader::clearMainResourceLoader):
27801        (WebCore::DocumentLoader::setDefersLoading):
27802        (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
27803        (WebCore::DocumentLoader::addSubresourceLoader):
27804        (WebCore::DocumentLoader::isLoadingMainResource):
27805        (WebCore):
27806        (WebCore::DocumentLoader::maybeLoadEmpty):
27807        (WebCore::DocumentLoader::startLoadingMainResource):
27808        * loader/DocumentLoader.h:
27809        (WebCore):
27810        (DocumentLoader):
27811        * loader/MainResourceLoader.cpp: Added.
27812        (WebCore):
27813        (WebCore::MainResourceLoader::MainResourceLoader):
27814        (WebCore::MainResourceLoader::~MainResourceLoader):
27815        (WebCore::MainResourceLoader::create):
27816        (WebCore::MainResourceLoader::clearResource):
27817        (WebCore::MainResourceLoader::frameLoader):
27818        (WebCore::MainResourceLoader::request):
27819        (WebCore::MainResourceLoader::resourceData):
27820        (WebCore::MainResourceLoader::redirectReceived):
27821        (WebCore::MainResourceLoader::responseReceived):
27822        (WebCore::MainResourceLoader::dataReceived):
27823        (WebCore::MainResourceLoader::notifyFinished):
27824        (WebCore::MainResourceLoader::reportMemoryUsage):
27825        (WebCore::MainResourceLoader::load):
27826        (WebCore::MainResourceLoader::setDefersLoading):
27827        (WebCore::MainResourceLoader::defersLoading):
27828        (WebCore::MainResourceLoader::setDataBufferingPolicy):
27829        (WebCore::MainResourceLoader::loader):
27830        (WebCore::MainResourceLoader::identifier):
27831        * loader/MainResourceLoader.h: Added.
27832        (WebCore):
27833        (MainResourceLoader):
27834        (WebCore::MainResourceLoader::cachedMainResource):
27835        (WebCore::MainResourceLoader::documentLoader):
27836        * loader/mac/DocumentLoaderMac.cpp:
27837        (WebCore::DocumentLoader::schedule):
27838        (WebCore::DocumentLoader::unschedule):
27839
278402013-03-19  Mike West  <mkwst@chromium.org>
27841
27842        CSP 1.1: Stub out SecurityPolicyViolationEvent interface.
27843        https://bugs.webkit.org/show_bug.cgi?id=112681
27844
27845        Reviewed by Adam Barth.
27846
27847        A first pass at a SecurityPolicyViolationEvent interface is defined in
27848        CSP 1.1's editor's draft[1]. This patch puts the big components into
27849        place so that we can start getting some implementation experience with
27850        the new event interface as it's defined, and feed that back into the
27851        working group.
27852
27853        Here, we're only defining the interface, and creating a listener on the
27854        Document. Events aren't yet being fired when Content Security Policy
27855        violations occur. I'll tackle that in a future patch; adding files is
27856        a big enough annoyance to do it separately.
27857
27858        This patch has only two web-visible impacts:
27859
27860        - Document objects now have an 'onsecuritypolicyviolation' attribute.
27861        - A SecurityPolicyViolationEvent constructor is accessible on the Window object.
27862
27863        Ports that have not enabled the CSP_NEXT flag should experience no change.
27864
27865        [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicyviolationevent-events
27866
27867        Test: http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html
27868
27869        * CMakeLists.txt:
27870        * GNUmakefile.list.am:
27871        * WebCore.gypi:
27872        * WebCore.vcproj/WebCore.vcproj:
27873        * WebCore.xcodeproj/project.pbxproj:
27874            Wow! A new file! This is so exciting! I'm going to tell ALL my build
27875            systems about this!
27876        * dom/Document.h:
27877        * dom/Document.idl:
27878            Define an 'onsecuritypolicyviolation' event handler on Document objects.
27879        * dom/EventNames.h:
27880        * dom/EventNames.in:
27881            Define a 'securitypolicyviolation' event type.
27882        * dom/SecurityPolicyViolationEvent.h: Added.
27883        (WebCore::SecurityPolicyViolationEventInit::SecurityPolicyViolationEventInit):
27884        (SecurityPolicyViolationEventInit):
27885        (SecurityPolicyViolationEvent):
27886        (WebCore::SecurityPolicyViolationEvent::create):
27887        (WebCore::SecurityPolicyViolationEvent::documentURI):
27888        (WebCore::SecurityPolicyViolationEvent::referrer):
27889        (WebCore::SecurityPolicyViolationEvent::blockedURI):
27890        (WebCore::SecurityPolicyViolationEvent::violatedDirective):
27891        (WebCore::SecurityPolicyViolationEvent::effectiveDirective):
27892        (WebCore::SecurityPolicyViolationEvent::originalPolicy):
27893        (WebCore::SecurityPolicyViolationEvent::sourceURL):
27894        (WebCore::SecurityPolicyViolationEvent::lineNumber):
27895        (WebCore::SecurityPolicyViolationEvent::interfaceName):
27896        (WebCore::SecurityPolicyViolationEvent::SecurityPolicyViolationEvent):
27897        * dom/SecurityPolicyViolationEvent.idl: Added.
27898            Define the SecurityPolicyViolationEvent's IDL, and then create all the
27899            boilerplate necessary to properly initialize a SecurityPolicyViolationEvent
27900            object with the relevant properties.
27901        * page/DOMWindow.idl:
27902            Add the new SecurityPolicyViolationEvent constructor to the Window object
27903            so it's available on a page.
27904
279052013-03-19  Eugene Klyuchnikov  <eustas@chromium.org>
27906
27907        Web Inspector: [Timeline] Tune status bar UI for limited-width window.
27908        https://bugs.webkit.org/show_bug.cgi?id=112702
27909
27910        Reviewed by Pavel Feldman.
27911
27912        Reduce filter titles when there is not enough space.
27913
27914        * inspector/front-end/TimelinePanel.js: Add classnames to elements.
27915        * inspector/front-end/timelinePanel.css: Specify "flex" behaviour.
27916
279172013-03-19  Nate Chapin  <japhet@chromium.org>
27918
27919        Merge MainResourceLoader into DocumentLoader
27920        https://bugs.webkit.org/show_bug.cgi?id=104969
27921
27922        Reviewed by Adam Barth.
27923
27924        No new tests, refactor only.
27925
27926        * CMakeLists.txt:
27927        * GNUmakefile.list.am:
27928        * Target.pri:
27929        * WebCore.exp.in:
27930        * WebCore.gypi:
27931        * WebCore.vcproj/WebCore.vcproj:
27932        * WebCore.vcxproj/WebCore.vcxproj:
27933        * WebCore.vcxproj/WebCore.vcxproj.filters:
27934        * WebCore.xcodeproj/project.pbxproj:
27935        * loader/DocumentLoader.cpp:
27936        (WebCore::DocumentLoader::DocumentLoader):
27937        (WebCore::DocumentLoader::mainResourceLoader):
27938        (WebCore::DocumentLoader::~DocumentLoader): Move main resource clearing from
27939            ~MainResourceLoader.
27940        (WebCore::DocumentLoader::mainResourceData):
27941        (WebCore::DocumentLoader::stopLoading):
27942        (WebCore::DocumentLoader::notifyFinished): Moved from MainResourceLoader::notifyFinished.
27943        (WebCore):
27944        (WebCore::DocumentLoader::finishedLoading):
27945        (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
27946        (WebCore::DocumentLoader::redirectReceived):
27947        (WebCore::DocumentLoader::continueAfterNavigationPolicy):
27948        (WebCore::DocumentLoader::responseReceived):
27949        (WebCore::DocumentLoader::continueAfterContentPolicy):
27950        (WebCore::DocumentLoader::reportMemoryUsage):
27951        (WebCore::DocumentLoader::dataReceived):
27952        (WebCore::DocumentLoader::clearMainResourceLoader):
27953        (WebCore::DocumentLoader::setDefersLoading):
27954        (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
27955        (WebCore::DocumentLoader::addSubresourceLoader):
27956        (WebCore::DocumentLoader::maybeLoadEmpty):
27957        (WebCore::DocumentLoader::startLoadingMainResource): Don't keep separate checks
27958             for normal and empty loads, just use a single boolean.
27959        * loader/DocumentLoader.h:
27960        (WebCore::DocumentLoader::isLoadingMainResource):
27961        * loader/MainResourceLoader.cpp: Removed.
27962        * loader/MainResourceLoader.h: Removed.
27963        * loader/mac/DocumentLoaderMac.cpp:
27964        (WebCore::DocumentLoader::schedule):
27965        (WebCore::DocumentLoader::unschedule):
27966
279672013-03-19  Ankur Taly  <ataly@google.com>
27968
27969        Cache a pointer to V8DOMActivityLogger in PerContextData.
27970        https://bugs.webkit.org/show_bug.cgi?id=112719
27971
27972        Reviewed by Kentaro Hara.
27973
27974        Adds a data member (and getter, setter methods) to V8PerContextData
27975        that holds a pointer to a V8DOMActivityLogger. This member is set while
27976        initializing the context for a V8DOMWindowShell. Ownership of the pointer
27977        is still retained by the HashMap in DOMWrapperWorld.
27978        As a result of this patch, subsequent patches that will implement logging
27979        for DOM API access (See bug 107207) will be able to obtain a reference to
27980        the logger directly from PerContextData. This will benefit performance as it
27981        will be faster than looking up the logger in the DOMActivityLoggerMap in
27982        DOMWrapperWorld.
27983
27984        There are no new tests as there is no change in behavior.
27985
27986        * bindings/v8/V8DOMWindowShell.cpp:
27987        (WebCore::V8DOMWindowShell::initializeIfNeeded):
27988        * bindings/v8/V8PerContextData.h:
27989        (WebCore::V8PerContextData::activityLogger):
27990        (V8PerContextData):
27991        (WebCore::V8PerContextData::setActivityLogger):
27992
279932013-03-19  Arnaud Renevier  <a.renevier@sisa.samsung.com>
27994
27995        do not use string reference for enum support in CodeGeneratorJS.pm
27996        https://bugs.webkit.org/show_bug.cgi?id=112760
27997
27998        Reviewed by Kentaro Hara.
27999
28000        Do use string references in generated JS bindings for enum values.
28001
28002        Test: bindings/scripts/test/TestObj.idl
28003
28004        * bindings/scripts/CodeGeneratorJS.pm:
28005        (GenerateImplementation):
28006        (GenerateParametersCheck):
28007        * bindings/scripts/test/JS/JSTestObj.cpp:
28008        (WebCore::setJSTestObjEnumAttr):
28009        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
28010
280112013-03-19  Simon Fraser  <simon.fraser@apple.com>
28012
28013        Make RLC::haveNonMainLayersWithTiledBacking() public and fix the name
28014        https://bugs.webkit.org/show_bug.cgi?id=112763
28015
28016        Reviewed by Tim Horton.
28017
28018        Downstream code needs to call hasNonMainLayersWithTiledBacking().
28019
28020        * rendering/RenderLayerCompositor.h:
28021        (WebCore::RenderLayerCompositor::hasNonMainLayersWithTiledBacking):
28022        (RenderLayerCompositor):
28023
280242013-03-19  David Levin  <levin@chromium.org>
28025
28026        FrameLoader::didChangeIcons isn't called when the favicon is changed.
28027        https://bugs.webkit.org/show_bug.cgi?id=112080
28028
28029        Reviewed by Dmitry Titov.
28030
28031        Test: fast/dom/icon-url-property.html
28032
28033        * dom/Document.cpp:
28034        (WebCore::Document::addIconURL): Made the callback for didChangeIcons
28035        happen whenever there are favicon changes instead of filtering it
28036        and have to be in sync about what hosts care about. As far as I could
28037        tell no hosts rely on this callback except for Chromium, so in general
28038        doing less work here may potentially help a small amount for other
28039        ports.
28040
280412013-03-19  Michael Pruett  <michael@68k.org>
28042
28043        Don't throw on infinity or NaN index in HTMLOptionsCollection.add()
28044        https://bugs.webkit.org/show_bug.cgi?id=112612
28045
28046        Reviewed by Kentaro Hara.
28047
28048        HTMLOptionsCollection.add() should not throw a type error when
28049        its optional index argument is infinity or NaN. Such values
28050        should instead be converted to 0 with no error.
28051
28052        Tests: fast/dom/non-numeric-values-numeric-parameters.html
28053               fast/js/select-options-add.html
28054
28055        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
28056        (WebCore::JSHTMLOptionsCollection::add):
28057
280582013-03-19  Dominic Mazzoni  <dmazzoni@google.com>
28059
28060        Security: Heap-use-after-free in WebCore::AXObjectCache::getOrCreate
28061        https://bugs.webkit.org/show_bug.cgi?id=112044
28062
28063        Reviewed by Chris Fleizach.
28064
28065        Always call recalcSectionsIfNeeded before accessing
28066        table sections.
28067
28068        Test: accessibility/table-remove-cell-crash.html
28069
28070        * accessibility/AccessibilityTable.cpp:
28071        (WebCore::AccessibilityTable::addChildren):
28072
280732013-03-19  Arnaud Renevier  <a.renevier@sisa.samsung.com>
28074
28075        [v8] add IDL 'enum' in DOM methods
28076        https://bugs.webkit.org/show_bug.cgi?id=112644
28077
28078        Reviewed by Kentaro Hara.
28079
28080        This adds V8 support for enumerations in method parameters.
28081
28082        Test: bindings/scripts/test/TestObj.idl
28083
28084        * bindings/scripts/CodeGeneratorV8.pm:
28085        (GenerateParametersCheck):
28086        * bindings/scripts/test/V8/V8TestObj.cpp:
28087        (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
28088
280892013-03-19  Kenneth Russell  <kbr@google.com>
28090
28091        Unreviewed, rolling out r146277.
28092        http://trac.webkit.org/changeset/146277
28093        https://bugs.webkit.org/show_bug.cgi?id=111695
28094
28095        Broke Chromium Android build
28096
28097        * Modules/speech/SpeechSynthesis.cpp:
28098        (WebCore::SpeechSynthesis::boundaryEventOccurred):
28099        (WebCore::SpeechSynthesis::didStartSpeaking):
28100        (WebCore::SpeechSynthesis::didPauseSpeaking):
28101        (WebCore::SpeechSynthesis::didResumeSpeaking):
28102        (WebCore::SpeechSynthesis::didFinishSpeaking):
28103        (WebCore::SpeechSynthesis::speakingErrorOccurred):
28104        (WebCore):
28105        * Modules/speech/SpeechSynthesis.h:
28106        (SpeechSynthesis):
28107        * Modules/speech/SpeechSynthesisUtterance.cpp:
28108        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
28109        (WebCore::SpeechSynthesisUtterance::setVoice):
28110        * Modules/speech/SpeechSynthesisUtterance.h:
28111        (WebCore::SpeechSynthesisUtterance::text):
28112        (WebCore::SpeechSynthesisUtterance::setText):
28113        (WebCore::SpeechSynthesisUtterance::lang):
28114        (WebCore::SpeechSynthesisUtterance::setLang):
28115        (WebCore::SpeechSynthesisUtterance::volume):
28116        (WebCore::SpeechSynthesisUtterance::setVolume):
28117        (WebCore::SpeechSynthesisUtterance::rate):
28118        (WebCore::SpeechSynthesisUtterance::setRate):
28119        (WebCore::SpeechSynthesisUtterance::pitch):
28120        (WebCore::SpeechSynthesisUtterance::setPitch):
28121        (WebCore::SpeechSynthesisUtterance::startTime):
28122        (WebCore::SpeechSynthesisUtterance::setStartTime):
28123        (WebCore::SpeechSynthesisUtterance::platformUtterance):
28124        (SpeechSynthesisUtterance):
28125        * Modules/speech/SpeechSynthesisVoice.h:
28126        * WebCore.exp.in:
28127        * WebCore.gypi:
28128        * platform/PlatformSpeechSynthesis.h:
28129        (PlatformSpeechSynthesis):
28130        * platform/PlatformSpeechSynthesisUtterance.cpp:
28131        * platform/PlatformSpeechSynthesisUtterance.h:
28132        (PlatformSpeechSynthesisUtterance):
28133        * platform/PlatformSpeechSynthesisVoice.cpp:
28134        (WebCore::PlatformSpeechSynthesisVoice::create):
28135        * platform/PlatformSpeechSynthesisVoice.h:
28136        (PlatformSpeechSynthesisVoice):
28137        * platform/PlatformSpeechSynthesizer.cpp:
28138        (WebCore::PlatformSpeechSynthesizer::create):
28139        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
28140        (WebCore):
28141        * platform/PlatformSpeechSynthesizer.h:
28142        (PlatformSpeechSynthesizerClient):
28143        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
28144        (PlatformSpeechSynthesizer):
28145        * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
28146        * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
28147        * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
28148        * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
28149        * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
28150        * platform/mac/PlatformSpeechSynthesizerMac.mm:
28151        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
28152        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
28153        (WebCore::PlatformSpeechSynthesizer::speak):
28154        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
28155        (WebCore::PlatformSpeechSynthesizerMock::create):
28156        (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
28157        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
28158        (WebCore::PlatformSpeechSynthesizerMock::speak):
28159        * platform/mock/PlatformSpeechSynthesizerMock.h:
28160        (PlatformSpeechSynthesizerMock):
28161
281622013-03-19  Antti Koivisto  <antti@apple.com>
28163
28164        Don't compute background obscuration on every repaint
28165        https://bugs.webkit.org/show_bug.cgi?id=112457
28166
28167        Reviewed by Simon Fraser.
28168
28169        Test: fast/backgrounds/obscured-background-child-style-change.html
28170        
28171        It is generally enough to compute background obscuration status once per layout rather than doing it on every repaint.
28172        Since there are fewer layouts than repaints this will allow more expensive checks in the future.
28173        
28174        With this patch adds caching and invalidation of the obscuration status.
28175
28176        * rendering/RenderBlock.cpp:
28177        (WebCore::RenderBlock::layout):
28178        
28179            Invalidate the obscuration status on layout.
28180
28181        * rendering/RenderBox.cpp:
28182        (WebCore::RenderBox::styleDidChange):
28183        
28184            Invalidate the parent obscuration status if there is repaint-only style change (often background related). 
28185            Tested by the new fast/css/obscured-background-child-style-change.html.
28186
28187        (WebCore::RenderBox::layout):
28188        (WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
28189        * rendering/RenderBox.h:
28190        * rendering/RenderImage.cpp:
28191        (WebCore::RenderImage::imageChanged):
28192        (WebCore::RenderImage::notifyFinished):
28193        (WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
28194        (WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
28195        
28196            Use CachedImage::currentFrameKnownToBeOpaque which ensures that the frame is decoded and we get the real status.
28197            Tested by an additional case in fast/css/obscured-background-child-style-change.html.
28198
28199        * rendering/RenderImage.h:
28200        * rendering/RenderObject.cpp:
28201        (WebCore::RenderObject::styleWillChange):
28202        * rendering/RenderObject.h:
28203        (WebCore::RenderObject::hasBoxDecorations):
28204        (WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
28205        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
28206        (RenderObjectBitfields):
28207        (WebCore::RenderObject::RenderObjectBitfields::boxDecorationState):
28208        (WebCore::RenderObject::RenderObjectBitfields::setBoxDecorationState):
28209        
28210            Combine box decoration bit and the obscuration status so we only need one extra bit.
28211
28212        (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
28213        (WebCore::RenderObject::setHasBoxDecorations):
28214        (WebCore::RenderObject::invalidateBackgroundObscurationStatus):
28215        (WebCore::RenderObject::backgroundIsKnownToBeObscured):
28216        * rendering/RenderReplaced.cpp:
28217        (WebCore::RenderReplaced::layout):
28218
282192013-03-19  Dominic Mazzoni  <dmazzoni@google.com>
28220
28221        Implement Web Speech Synthesis for Chromium
28222        https://bugs.webkit.org/show_bug.cgi?id=111695
28223
28224        Reviewed by Adam Barth.
28225
28226        Straightforward implementation of speech synthesis
28227        for Chromium by exposing interfaces for the platform
28228        to implement.
28229
28230        * Modules/speech/SpeechSynthesis.cpp:
28231        (WebCore::SpeechSynthesis::boundaryEventOccurred):
28232        (WebCore::SpeechSynthesis::didStartSpeaking):
28233        (WebCore::SpeechSynthesis::didPauseSpeaking):
28234        (WebCore::SpeechSynthesis::didResumeSpeaking):
28235        (WebCore::SpeechSynthesis::didFinishSpeaking):
28236        (WebCore::SpeechSynthesis::speakingErrorOccurred):
28237        (WebCore):
28238        * Modules/speech/SpeechSynthesis.h:
28239        (SpeechSynthesis):
28240        * Modules/speech/SpeechSynthesisUtterance.cpp:
28241        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
28242        (WebCore):
28243        (WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
28244        (WebCore::SpeechSynthesisUtterance::setVoice):
28245        * Modules/speech/SpeechSynthesisUtterance.h:
28246        (SpeechSynthesisUtterance):
28247        (WebCore::SpeechSynthesisUtterance::text):
28248        (WebCore::SpeechSynthesisUtterance::setText):
28249        (WebCore::SpeechSynthesisUtterance::lang):
28250        (WebCore::SpeechSynthesisUtterance::setLang):
28251        (WebCore::SpeechSynthesisUtterance::volume):
28252        (WebCore::SpeechSynthesisUtterance::setVolume):
28253        (WebCore::SpeechSynthesisUtterance::rate):
28254        (WebCore::SpeechSynthesisUtterance::setRate):
28255        (WebCore::SpeechSynthesisUtterance::pitch):
28256        (WebCore::SpeechSynthesisUtterance::setPitch):
28257        (WebCore::SpeechSynthesisUtterance::startTime):
28258        (WebCore::SpeechSynthesisUtterance::setStartTime):
28259        (WebCore::SpeechSynthesisUtterance::platformUtterance):
28260        * Modules/speech/SpeechSynthesisVoice.h:
28261        (WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
28262        * WebCore.exp.in:
28263        * WebCore.gypi:
28264        * platform/PlatformSpeechSynthesis.h:
28265        (PlatformSpeechSynthesis):
28266        * platform/PlatformSpeechSynthesisUtterance.cpp:
28267        (WebCore):
28268        (WebCore::PlatformSpeechSynthesisUtterance::create):
28269        * platform/PlatformSpeechSynthesisUtterance.h:
28270        (PlatformSpeechSynthesisUtterance):
28271        (WebCore::PlatformSpeechSynthesisUtterance::setClient):
28272        * platform/PlatformSpeechSynthesisVoice.cpp:
28273        (WebCore):
28274        (WebCore::PlatformSpeechSynthesisVoice::create):
28275        (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
28276        * platform/PlatformSpeechSynthesisVoice.h:
28277        (PlatformSpeechSynthesisVoice):
28278        (WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
28279        (WebCore::PlatformSpeechSynthesisVoice::setName):
28280        (WebCore::PlatformSpeechSynthesisVoice::setLang):
28281        (WebCore::PlatformSpeechSynthesisVoice::setLocalService):
28282        (WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
28283        * platform/PlatformSpeechSynthesizer.cpp:
28284        (WebCore::PlatformSpeechSynthesizer::create):
28285        (WebCore::PlatformSpeechSynthesizer::setVoiceList):
28286        (WebCore):
28287        * platform/PlatformSpeechSynthesizer.h:
28288        (WebKit):
28289        (PlatformSpeechSynthesizerClient):
28290        (PlatformSpeechSynthesizer):
28291        * platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
28292        (WebCore):
28293        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
28294        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
28295        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
28296        (WebCore::PlatformSpeechSynthesizer::speak):
28297        (WebCore::PlatformSpeechSynthesizer::pause):
28298        (WebCore::PlatformSpeechSynthesizer::resume):
28299        (WebCore::PlatformSpeechSynthesizer::cancel):
28300        * platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
28301        (WebKit):
28302        (WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
28303        (WebKit::WebSpeechSynthesisUtterance::operator=):
28304        (WebKit::WebSpeechSynthesisUtterance::assign):
28305        (WebKit::WebSpeechSynthesisUtterance::reset):
28306        (WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
28307        (WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
28308        (WebKit::WebSpeechSynthesisUtterance::text):
28309        (WebKit::WebSpeechSynthesisUtterance::lang):
28310        (WebKit::WebSpeechSynthesisUtterance::voice):
28311        (WebKit::WebSpeechSynthesisUtterance::volume):
28312        (WebKit::WebSpeechSynthesisUtterance::rate):
28313        (WebKit::WebSpeechSynthesisUtterance::pitch):
28314        (WebKit::WebSpeechSynthesisUtterance::startTime):
28315        * platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
28316        (WebKit):
28317        (WebKit::WebSpeechSynthesisVoice::assign):
28318        (WebKit::WebSpeechSynthesisVoice::reset):
28319        (WebKit::WebSpeechSynthesisVoice::setVoiceURI):
28320        (WebKit::WebSpeechSynthesisVoice::setName):
28321        (WebKit::WebSpeechSynthesisVoice::setLanguage):
28322        (WebKit::WebSpeechSynthesisVoice::setIsLocalService):
28323        (WebKit::WebSpeechSynthesisVoice::setIsDefault):
28324        (WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
28325        * platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
28326        (WebCore):
28327        (WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
28328        (WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
28329        (WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
28330        (WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
28331        (WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
28332        (WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
28333        (WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
28334        (WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
28335        (WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
28336        (WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
28337        * platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
28338        (WebCore):
28339        (WebSpeechSynthesizerClientImpl):
28340        * platform/mac/PlatformSpeechSynthesizerMac.mm:
28341        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
28342        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
28343        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
28344        (WebCore):
28345        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
28346        (WebCore::PlatformSpeechSynthesizer::speak):
28347        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
28348        (WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
28349        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
28350        (WebCore::PlatformSpeechSynthesizerMock::speak):
28351        * platform/mock/PlatformSpeechSynthesizerMock.h:
28352        (PlatformSpeechSynthesizerMock):
28353
283542013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
28355
28356        Another build fix after r146220.
28357
28358        * English.lproj/localizedStrings.js:
28359
283602013-03-19  Julien Chaffraix  <jchaffraix@webkit.org>
28361
28362        [CSS Grid Layout] Add parsing for grid-auto-{row|column}
28363        https://bugs.webkit.org/show_bug.cgi?id=112724
28364
28365        Reviewed by Tony Chang.
28366
28367        This change is a first step towards handling grid-auto-{row|column}.
28368        For now, only the parsing, storing and getComputedStyle bits are implemented.
28369        In order to do so without duplicating code, the functions handling <track-size>
28370        (named <track-minmax> in the code based on a previous version of the grammar)
28371        have been tweaked to be called in a standalone fashion. The code was also
28372        updated to match the grammar more closely:
28373        - <track-minmax> is now <track-size>.
28374        - <track-group> was renmoved, folded into <track-list>.
28375
28376        Test: fast/css-grid-layout/grid-auto-columns-rows-get-set.html
28377
28378        * css/CSSComputedStyleDeclaration.cpp:
28379        (WebCore::valueForGridTrackSize):
28380        Renamed from valueForGridTrackMinMax.
28381
28382        (WebCore::valueForGridTrackList):
28383        Folded valueForGridTrackGroup here.
28384
28385        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
28386        * css/CSSParser.cpp:
28387        (WebCore::CSSParser::parseValue):
28388        Added the parsing for grid-auto-{rows|columns}.
28389
28390        (WebCore::CSSParser::parseGridTrackSize):
28391        Renamed from parseGridTrackMinMax. Changed to return the parsed value (or 0 in case of
28392        error). This enables us to reuse it in parseValue. Note that this function now moves
28393        the parser value list instead of the caller.
28394
28395        (WebCore::CSSParser::parseGridTrackList):
28396        Updated after parseGridTrackSize changes and parseGridTrackGroup removal.
28397
28398        * css/CSSParser.h: Updated the names.
28399        * css/CSSProperty.cpp:
28400        (WebCore::CSSProperty::isInheritedProperty):
28401        * css/CSSPropertyNames.in:
28402        Added the 2 new non-inherited properties.
28403
28404        * css/StyleResolver.cpp:
28405        (WebCore::createGridTrackSize):
28406        Renamed from createGridTrackMinMax. Also simplified to ensure code reuse (applyProperty hands
28407        down a CSSValue) and consistency (the state wasn't consistently the last argument).
28408
28409        (WebCore::createGridTrackList):
28410        Folded createGridTrackGroup into this function.
28411
28412        (WebCore::StyleResolver::applyProperty):
28413        Added the code for the new properties.
28414
28415        * rendering/style/RenderStyle.h:
28416        * rendering/style/StyleGridData.cpp:
28417        (WebCore::StyleGridData::StyleGridData):
28418        * rendering/style/StyleGridData.h:
28419        (WebCore::StyleGridData::operator==):
28420        Added the storage and boiler-plate code for the new properties.
28421
284222013-03-19  Geoffrey Garen  <ggaren@apple.com>
28423
28424        Removed a using declaration to avoid name conflicts
28425        https://bugs.webkit.org/show_bug.cgi?id=112752
28426
28427        Reviewed by Ryosuke Niwa.
28428
28429        * html/ClassList.cpp: Put the using declaration here instead.
28430
28431        * html/ClassList.h: Don't put a using declaration in this header because
28432        it can cause name conflicts with SVGNames.
28433
284342013-03-18  Ojan Vafai  <ojan@chromium.org>
28435
28436        Make intrinsic size keywords on flexboxes work
28437        https://bugs.webkit.org/show_bug.cgi?id=112652
28438
28439        Reviewed by Tony Chang.
28440
28441        Tests: fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items.html
28442               fast/css-intrinsic-dimensions/intrinsic-sized-flex-items.html
28443
28444        * platform/Length.h:
28445        (WebCore::Length::isSpecifiedOrIntrinsic):
28446        * rendering/RenderBox.cpp:
28447        (WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax):
28448        (WebCore::RenderBox::computeLogicalWidthInRegion):
28449        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
28450        Pass in the Length so that RenderFlexibleBox can call this method and avoid
28451        doing a bunch of code duplication.
28452
28453        * rendering/RenderBox.h:
28454        * rendering/RenderFlexibleBox.cpp:
28455        (WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
28456        Instead of just calling valueForLength, call computeLogicalWidthInRegionUsing so that
28457        we properly resolve intrinsic Length types. Incidentally, this should also make viewport
28458        percentage units work.
28459
28460        (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
28461        Resolve intrinsic min/max Lengths. Also, instead of calling minPreferredLogicalWidth for the
28462        min-width: auto case, call computeMainAxisExtentForChild to correctly compute the min intrinsic size.
28463
284642013-03-19  Geoffrey Garen  <ggaren@apple.com>
28465
28466        Try to fix the Windows build.
28467
28468        * svg/SVGAnimateMotionElement.cpp:
28469        (WebCore::SVGAnimateMotionElement::hasValidAttributeType): Qualify the
28470        namespace to avoid conflicts.
28471
284722013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
28473
28474        Windows build fix after r146264.
28475
28476        * svg/SVGAnimateMotionElement.cpp:
28477        (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
28478
284792013-03-19  Nate Chapin  <japhet@chromium.org>
28480
28481        REGRESSION(r146223): chromium asserts/crashes in DocumentLoader
28482        https://bugs.webkit.org/show_bug.cgi?id=112745
28483
28484        Reviewed by Kenneth Russell.
28485
28486        Fixes layout tests on chromium debug
28487
28488        * loader/DocumentLoader.cpp:
28489        (WebCore::DocumentLoader::mainReceivedError): Frame might be detached, get
28490            defersLoading() from mainResourceLoader().
28491        (WebCore::DocumentLoader::responseReceived): RefPtr got dropped, it's really needed.
28492        (WebCore::DocumentLoader::receivedData): Frame might be detached, get
28493            defersLoading() from mainResourceLoader().
28494        (WebCore::DocumentLoader::cancelMainResourceLoad): The ResourceError parameter
28495            can be null if coming from the WebKit layer, we should have a default just in case.
28496
284972013-03-19  Geoffrey Garen  <ggaren@apple.com>
28498
28499        Refactored script content removal in the fragment parser for clarity and speed
28500        https://bugs.webkit.org/show_bug.cgi?id=112734
28501
28502        Reviewed by Enrica Casucci.
28503
28504        * WebCore.exp.in: Export!
28505
28506        * dom/DocumentFragment.cpp:
28507        (WebCore::DocumentFragment::parseHTML):
28508        (WebCore::DocumentFragment::parseXML):
28509        * dom/DocumentFragment.h:
28510        (DocumentFragment): Updated for rename of FragmentScriptingPermission to
28511        ParserContentPolicy.
28512
28513        * dom/Element.cpp:
28514        (WebCore::isEventHandlerAttribute):
28515        (WebCore::Element::isJavaScriptURLAttribute):
28516        (WebCore::Element::isJavaScriptAttribute): Fixed a FIXME by factoring
28517        out some helper functions that reuse isURLAttribute(). This makes our
28518        attribute removal slightly more precise, as reflected in test changes.
28519
28520        (WebCore::Element::stripJavaScriptAttributes): Factored this function out
28521        of parserSetAttributes to clarify that the parser is responsible for
28522        fully removing scripts before inserting anything into the DOM.
28523
28524        Now that this is a helper function, we can avoid doing any work in the
28525        common case, where script content is allowed. Also, when we do have to
28526        strip attributes, we use "two finger compaction" to avoid copying the
28527        vector, and to avoid O(N) vector removal operations when there is
28528        something to remove.
28529
28530        (WebCore::Element::parserSetAttributes):
28531        * dom/Element.h:
28532
28533        * dom/FragmentScriptingPermission.h:
28534        (WebCore::scriptingContentIsAllowed):
28535        (WebCore::disallowScriptingContent):
28536        (WebCore::pluginContentIsAllowed):
28537        (WebCore::allowPluginContent): Renamed for clarity, and added some helper
28538        functions for reading values out of this enum.
28539
28540        * dom/ScriptableDocumentParser.cpp:
28541        (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): Moved
28542        a settings check into the parser constructor so we're sure that all
28543        clients get the right behavior.
28544
28545        * dom/ScriptableDocumentParser.h:
28546        (WebCore::ScriptableDocumentParser::parserContentPolicy):
28547        (ScriptableDocumentParser):
28548        * editing/markup.cpp:
28549        (WebCore::createFragmentFromMarkup):
28550        (WebCore::createFragmentFromMarkupWithContext):
28551        (WebCore::createFragmentForInnerOuterHTML):
28552        (WebCore::createContextualFragment):
28553        * editing/markup.h: Updated for renames.
28554
28555        * html/HTMLAnchorElement.cpp:
28556        (WebCore::HTMLAnchorElement::isURLAttribute): Fixed a bug where
28557        isURLAttribute would ignore href attributes in other namespaces, like
28558        xlink:href.
28559
28560        * html/HTMLBaseElement.cpp:
28561        (WebCore::HTMLBaseElement::isURLAttribute): Same bug.
28562
28563        * html/HTMLElement.cpp:
28564        (WebCore::HTMLElement::isURLAttribute): Fixed a logic error where HTMLElement
28565        wouldn't call through to its base class.
28566
28567        * html/HTMLLinkElement.cpp:
28568        (WebCore::HTMLLinkElement::isURLAttribute): Same isURLAttribute namespace
28569        bug as above.
28570
28571        * html/parser/HTMLConstructionSite.cpp:
28572        (WebCore::setAttributes): Helper function for optionally stripping
28573        disallowed attributes before setting them on an element. This helps all
28574        clients get the right behavior without sprinkling checks everywhere.
28575
28576        (WebCore::HTMLConstructionSite::HTMLConstructionSite):
28577        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
28578
28579        (WebCore::HTMLConstructionSite::insertScriptElement): Don't schedule the
28580        element for insertion into the document if the element is forbidden. This
28581        is slightly clearer than leaving an empty forbidden element in the document.
28582
28583        (WebCore::HTMLConstructionSite::createElement):
28584        (WebCore::HTMLConstructionSite::createHTMLElement):
28585        * html/parser/HTMLConstructionSite.h:
28586        (HTMLConstructionSite):
28587        (WebCore::HTMLConstructionSite::parserContentPolicy):
28588        * html/parser/HTMLDocumentParser.cpp:
28589        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
28590        (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
28591        (WebCore::HTMLDocumentParser::parseDocumentFragment):
28592        * html/parser/HTMLDocumentParser.h:
28593        (HTMLDocumentParser):
28594        (WebCore::HTMLDocumentParser::create):
28595        * html/parser/HTMLTreeBuilder.cpp:
28596        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
28597        (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
28598        Updated for renames and interface changes above.
28599
28600        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
28601        (WebCore::HTMLTreeBuilder::processEndTag): Removed isParsingFragment()
28602        checks to make it possible to use ParserContentPolicy in more places.
28603
28604        Removed call to removeChildren() because, if an element is forbidden,
28605        we fully remove the element now. This brings behavior for <script>
28606        elements in line with behavior for plug-in elements. It also brings
28607        behavior of the HTML parser in line with behavior of the XML parser.
28608
28609        * html/parser/HTMLTreeBuilder.h:
28610        (WebCore::HTMLTreeBuilder::create):
28611        (FragmentParsingContext):
28612        (WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement):
28613        * platform/blackberry/PasteboardBlackBerry.cpp:
28614        (WebCore::Pasteboard::documentFragment):
28615        * platform/chromium/DragDataChromium.cpp:
28616        (WebCore::DragData::asFragment):
28617        * platform/chromium/PasteboardChromium.cpp:
28618        (WebCore::Pasteboard::documentFragment):
28619        * platform/gtk/PasteboardGtk.cpp:
28620        (WebCore::Pasteboard::documentFragment):
28621        * platform/mac/PasteboardMac.mm:
28622        (WebCore::Pasteboard::documentFragment):
28623        * platform/qt/DragDataQt.cpp:
28624        (WebCore::DragData::asFragment):
28625        * platform/qt/PasteboardQt.cpp:
28626        (WebCore::Pasteboard::documentFragment):
28627        * platform/win/ClipboardUtilitiesWin.cpp:
28628        (WebCore::fragmentFromCFHTML):
28629        (WebCore::fragmentFromHTML):
28630        * platform/wx/PasteboardWx.cpp:
28631        (WebCore::Pasteboard::documentFragment): Updated for renames and interface
28632        changes.
28633
28634        * svg/SVGAElement.cpp:
28635        (WebCore::SVGAElement::isURLAttribute): Fixed a bug where SVG anchor
28636        elements didn't identify their URL attributes.
28637
28638        * svg/SVGAElement.h:
28639        (SVGAElement):
28640
28641        * xml/XMLErrors.cpp:
28642        (WebCore::createXHTMLParserErrorHeader):
28643        (WebCore::XMLErrors::insertErrorMessageBlock): No need to disallow
28644        scripting attributes here because we're creating the attributes 
28645        ourselves and we know they're not scripting attributes.
28646
28647        * xml/parser/XMLDocumentParser.cpp:
28648        (WebCore::XMLDocumentParser::parseDocumentFragment):
28649        * xml/parser/XMLDocumentParser.h:
28650        (WebCore::XMLDocumentParser::create):
28651        (XMLDocumentParser): Updated for renames and interface changes above.
28652
28653        Removed the 8 inline capacity in the attribute vector so we could share
28654        helper functions with the HTML parser, which didn't have it.
28655
28656        * xml/parser/XMLDocumentParserLibxml2.cpp:
28657        (WebCore::setAttributes):
28658        (WebCore):
28659        (WebCore::XMLDocumentParser::XMLDocumentParser):
28660        (WebCore::handleNamespaceAttributes):
28661        (WebCore::handleElementAttributes):
28662        (WebCore::XMLDocumentParser::startElementNs):
28663        (WebCore::XMLDocumentParser::endElementNs):
28664        * xml/parser/XMLDocumentParserQt.cpp:
28665        (WebCore::setAttributes):
28666        (WebCore):
28667        (WebCore::XMLDocumentParser::XMLDocumentParser):
28668        (WebCore::handleNamespaceAttributes):
28669        (WebCore::handleElementAttributes):
28670        (WebCore::XMLDocumentParser::parseStartElement):
28671        (WebCore::XMLDocumentParser::parseEndElement): Same changes as for the
28672        HTML parser.
28673
286742013-03-19  Philip Rogers  <pdr@google.com>
28675
28676        Clean up static_casts for SVG renderers
28677        https://bugs.webkit.org/show_bug.cgi?id=111651
28678
28679        Reviewed by Abhishek Arya.
28680
28681        toRenderSVGPath and toRenderSVGFilter are preferred over static_casts because bad casts can
28682        be caught on our testing infrastructure. This patch replaces all static_casts for
28683        RenderSVGPath and RenderSVGFilter with toRenderSVGPath and toRenderSVGFilter, respectively.
28684
28685        This patch also adds FIXME to the remaining toRenderSVG* instances that are missing.
28686
28687        No new tests as this is covered with existing tests.
28688
28689        * rendering/RenderLayer.cpp:
28690        (WebCore::RenderLayer::paintLayerContents):
28691
28692            This call is currently safe due to the element->hasTagName(SVGNames::clipPathTag) check.
28693
28694        * rendering/svg/RenderSVGPath.h:
28695        (WebCore):
28696        (WebCore::toRenderSVGPath):
28697        * rendering/svg/RenderSVGResourceFilter.h:
28698        (WebCore):
28699        (WebCore::toRenderSVGFilter):
28700        * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
28701        (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
28702        * rendering/svg/RenderSVGRoot.cpp:
28703        (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
28704        * rendering/svg/SVGRenderSupport.cpp:
28705        (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow):
28706        (WebCore::SVGRenderSupport::rendererHasSVGShadow):
28707        (WebCore::SVGRenderSupport::setRendererHasSVGShadow):
28708        * rendering/svg/SVGRenderingContext.cpp:
28709        (WebCore::SVGRenderingContext::~SVGRenderingContext):
28710
28711            This cast was not correct! Thankfully it was not required anyway.
28712
28713        * svg/SVGCircleElement.cpp:
28714        (WebCore::SVGCircleElement::svgAttributeChanged):
28715
28716            This cast was not correct!
28717
28718        * svg/SVGEllipseElement.cpp:
28719        (WebCore::SVGEllipseElement::svgAttributeChanged):
28720
28721            This cast was not correct!
28722
28723        * svg/SVGLineElement.cpp:
28724        (WebCore::SVGLineElement::svgAttributeChanged):
28725        * svg/SVGPathElement.cpp:
28726        (WebCore::SVGPathElement::svgAttributeChanged):
28727        (WebCore::SVGPathElement::pathSegListChanged):
28728        (WebCore::SVGPathElement::getBBox):
28729        * svg/SVGPolyElement.cpp:
28730        (WebCore::SVGPolyElement::svgAttributeChanged):
28731        * svg/SVGRectElement.cpp:
28732        (WebCore::SVGRectElement::svgAttributeChanged):
28733
287342013-03-19  Beth Dakin  <bdakin@apple.com>
28735
28736        RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
28737        https://bugs.webkit.org/show_bug.cgi?id=110673
28738
28739        Reviewed by Simon Fraser.
28740
28741        FrameLoaderClient::didChangeScrollOffset() should be called whenever something is 
28742        actually being scrolled. 
28743
28744        * rendering/RenderLayer.cpp:
28745        (WebCore::RenderLayer::scrollTo):
28746
287472013-03-19  Marja Hölttä  <marja@chromium.org>
28748
28749        [V8] Add machinery for generating specialized bindings for the main world
28750        https://bugs.webkit.org/show_bug.cgi?id=111417
28751
28752        Reviewed by Jochen Eisinger.
28753
28754        The new specialized bindings will be faster, because they don't need to
28755        do the "main world, isolated world or a worker" check, but can right
28756        away assume that we're in the main world.
28757
28758        Added an IDL attribute (V8PerWorldBindings) to define which
28759        attribute getters / setters to specialize.
28760
28761        This patch generates main world bindings for getters and setters of Node
28762        and Element. (The possibility to generate bindings for callbacks will be
28763        added later.)
28764
28765        No new tests (updated existing bindings tests).
28766
28767        * bindings/scripts/CodeGeneratorV8.pm:
28768        (GenerateHeader):
28769        (GenerateNormalAttrGetterCallback):
28770        (GenerateNormalAttrGetter):
28771        (GenerateNormalAttrSetterCallback):
28772        (GenerateNormalAttrSetter):
28773        (GenerateNamedConstructor):
28774        (GenerateSingleBatchedAttribute):
28775        (GenerateImplementation):
28776        (GenerateCallbackImplementation):
28777        (GenerateFunctionCallString):
28778        (CreateCustomSignature):
28779        (NativeToJSValue):
28780        * bindings/scripts/IDLAttributes.txt:
28781        * bindings/scripts/test/V8/V8Float64Array.cpp:
28782        (WebCore::ConfigureV8Float64ArrayTemplate):
28783        (WebCore::V8Float64Array::GetTemplate):
28784        (WebCore::V8Float64Array::HasInstance):
28785        * bindings/scripts/test/V8/V8Float64Array.h:
28786        (WebCore::toV8ForMainWorld):
28787        (WebCore):
28788        (WebCore::toV8FastForMainWorld):
28789        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
28790        (WebCore):
28791        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
28792        (WebCore::V8TestActiveDOMObject::GetTemplate):
28793        (WebCore::V8TestActiveDOMObject::HasInstance):
28794        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
28795        (WebCore::toV8ForMainWorld):
28796        (WebCore):
28797        (WebCore::toV8FastForMainWorld):
28798        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
28799        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
28800        (WebCore::V8TestCustomNamedGetter::GetTemplate):
28801        (WebCore::V8TestCustomNamedGetter::HasInstance):
28802        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
28803        (WebCore::toV8ForMainWorld):
28804        (WebCore):
28805        (WebCore::toV8FastForMainWorld):
28806        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
28807        (WebCore):
28808        (WebCore::ConfigureV8TestEventConstructorTemplate):
28809        (WebCore::V8TestEventConstructor::GetTemplate):
28810        (WebCore::V8TestEventConstructor::HasInstance):
28811        * bindings/scripts/test/V8/V8TestEventConstructor.h:
28812        (WebCore::toV8ForMainWorld):
28813        (WebCore):
28814        (WebCore::toV8FastForMainWorld):
28815        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
28816        (WebCore::ConfigureV8TestEventTargetTemplate):
28817        (WebCore::V8TestEventTarget::GetTemplate):
28818        (WebCore::V8TestEventTarget::HasInstance):
28819        * bindings/scripts/test/V8/V8TestEventTarget.h:
28820        (WebCore::toV8ForMainWorld):
28821        (WebCore):
28822        (WebCore::toV8FastForMainWorld):
28823        * bindings/scripts/test/V8/V8TestException.cpp:
28824        (WebCore):
28825        (WebCore::ConfigureV8TestExceptionTemplate):
28826        (WebCore::V8TestException::GetTemplate):
28827        (WebCore::V8TestException::HasInstance):
28828        * bindings/scripts/test/V8/V8TestException.h:
28829        (WebCore::toV8ForMainWorld):
28830        (WebCore):
28831        (WebCore::toV8FastForMainWorld):
28832        * bindings/scripts/test/V8/V8TestInterface.cpp:
28833        (WebCore):
28834        (WebCore::ConfigureV8TestInterfaceTemplate):
28835        (WebCore::V8TestInterface::GetTemplate):
28836        (WebCore::V8TestInterface::HasInstance):
28837        * bindings/scripts/test/V8/V8TestInterface.h:
28838        (WebCore::toV8ForMainWorld):
28839        (WebCore):
28840        (WebCore::toV8FastForMainWorld):
28841        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
28842        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
28843        (WebCore::V8TestMediaQueryListListener::GetTemplate):
28844        (WebCore::V8TestMediaQueryListListener::HasInstance):
28845        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
28846        (WebCore::toV8ForMainWorld):
28847        (WebCore):
28848        (WebCore::toV8FastForMainWorld):
28849        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
28850        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
28851        (WebCore::ConfigureV8TestNamedConstructorTemplate):
28852        (WebCore::V8TestNamedConstructor::GetTemplate):
28853        (WebCore::V8TestNamedConstructor::HasInstance):
28854        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
28855        (WebCore::toV8ForMainWorld):
28856        (WebCore):
28857        (WebCore::toV8FastForMainWorld):
28858        * bindings/scripts/test/V8/V8TestNode.cpp:
28859        (WebCore::ConfigureV8TestNodeTemplate):
28860        (WebCore::V8TestNode::GetTemplate):
28861        (WebCore::V8TestNode::HasInstance):
28862        * bindings/scripts/test/V8/V8TestNode.h:
28863        (WebCore::toV8ForMainWorld):
28864        (WebCore):
28865        (WebCore::toV8FastForMainWorld):
28866        * bindings/scripts/test/V8/V8TestObj.cpp:
28867        (WebCore):
28868        (WebCore::ConfigureV8TestObjTemplate):
28869        (WebCore::V8TestObj::GetTemplate):
28870        (WebCore::V8TestObj::HasInstance):
28871        (WebCore::V8TestObj::installPerContextProperties):
28872        * bindings/scripts/test/V8/V8TestObj.h:
28873        (WebCore::toV8ForMainWorld):
28874        (WebCore):
28875        (WebCore::toV8FastForMainWorld):
28876        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
28877        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
28878        (WebCore::V8TestOverloadedConstructors::GetTemplate):
28879        (WebCore::V8TestOverloadedConstructors::HasInstance):
28880        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
28881        (WebCore::toV8ForMainWorld):
28882        (WebCore):
28883        (WebCore::toV8FastForMainWorld):
28884        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
28885        (WebCore):
28886        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
28887        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
28888        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
28889        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
28890        (WebCore::toV8ForMainWorld):
28891        (WebCore):
28892        (WebCore::toV8FastForMainWorld):
28893        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
28894        (WebCore):
28895        (WebCore::ConfigureV8TestTypedefsTemplate):
28896        (WebCore::V8TestTypedefs::GetTemplate):
28897        (WebCore::V8TestTypedefs::HasInstance):
28898        * bindings/scripts/test/V8/V8TestTypedefs.h:
28899        (WebCore::toV8ForMainWorld):
28900        (WebCore):
28901        (WebCore::toV8FastForMainWorld):
28902        * bindings/v8/DOMDataStore.h:
28903        (WebCore::DOMDataStore::getWrapperForMainWorld):
28904        (DOMDataStore):
28905        * bindings/v8/V8DOMConfiguration.cpp:
28906        (WebCore::V8DOMConfiguration::batchConfigureAttributes):
28907        (WebCore::V8DOMConfiguration::configureTemplate):
28908        * bindings/v8/V8DOMConfiguration.h:
28909        (BatchedAttribute):
28910        (V8DOMConfiguration):
28911        (WebCore::V8DOMConfiguration::configureAttribute):
28912        * bindings/v8/custom/V8DOMWindowCustom.cpp:
28913        (WebCore::toV8ForMainWorld):
28914        (WebCore):
28915        * bindings/v8/custom/V8EventTargetCustom.cpp:
28916        (WebCore::toV8ForMainWorld):
28917        (WebCore):
28918        * bindings/v8/custom/V8IDBAnyCustom.cpp:
28919        (WebCore::toV8ForMainWorld):
28920        (WebCore):
28921        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
28922        (WebCore::toV8ForMainWorld):
28923        (WebCore):
28924        * bindings/v8/custom/V8WorkerContextCustom.cpp:
28925        (WebCore::toV8ForMainWorld):
28926        (WebCore):
28927        * dom/Element.idl:
28928        * dom/Node.idl:
28929
289302013-03-19  Mike West  <mkwst@chromium.org>
28931
28932        FeatureObserver: Measure X-Frame-Options usage.
28933        https://bugs.webkit.org/show_bug.cgi?id=112670
28934
28935        Reviewed by Adam Barth.
28936
28937        This patch adds three FeatureObserver entries to gather information
28938        about 'X-Frame-Options' usage in general, and in particular usage
28939        and potential misunderstanding of the 'SAMEORIGIN' value.
28940
28941        Three entries are added:
28942
28943        - XFrameOptions measures the raw number of 'X-Frame-Options' headers.
28944
28945        - XFrameOptionsSameOrigin measures the number of those headers that
28946          set the value to 'SAMEORIGIN'.
28947
28948        - XFrameOptionsSameOriginWithBadAncestorChain measures the number of
28949          occasions in which the frame passed the "top-only" origin check we're
28950          currently performing, but would have failed a more strict check
28951          against poisoned ancestor chains (that is, an ancestor chain that
28952          looks like 'example.com' -> 'evil.com' -> 'example.com').
28953
28954        Mozilla is considering changing 'SAMEORIGIN's behavior to block the
28955        latter loophole[1], and the UI Safety spec is considering dropping
28956        'top-only' entirely[2]. This data will inform those decisions.
28957
28958        [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=725490
28959        [2]: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0007.html
28960
28961        This doesn't change web-visible behavior; it only adds histograms
28962
28963        * loader/FrameLoader.cpp:
28964        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
28965            When processing an 'X-Frame-Options' header's value, call out to
28966            FeatureObserver when relevant to increment the correct histogram
28967            entries.
28968        * page/FeatureObserver.h:
28969            Added three entries to the FeatureObserver enum: XFrameOptions,
28970            XFrameOptionsSameOrigin, and XFrameOptionsSameOriginWithBadAncestorChain.
28971            Each is explained above.
28972
289732013-03-19  Adam Barth  <abarth@webkit.org>
28974
28975        GenerateHashValue should be usable outside CodeGeneratorJS.pm
28976        https://bugs.webkit.org/show_bug.cgi?id=112736
28977
28978        Reviewed by Benjamin Poulain.
28979
28980        GenerateHashValue is not specific to CodeGeneratorJS.pm. Instead, the
28981        function matches the StringHash used in WTF. This patch moves the
28982        function into a separate Perl module so that it can be used by other
28983        Perl scripts. For example, I plan to use this function to compute the
28984        hash value for HTMLNames at compile time rather than at startup.
28985
28986        * bindings/scripts/CodeGeneratorJS.pm:
28987        (GenerateHashTable):
28988        * bindings/scripts/Hash.pm: Added.
28989        (leftShift):
28990        (GenerateHashValue):
28991
289922013-03-19  Dean Jackson  <dino@apple.com>
28993
28994        Allow PlugIn Snapshotting to be tested
28995        https://bugs.webkit.org/show_bug.cgi?id=98696
28996
28997        Reviewed by Tim Horton.
28998
28999        Expose a new setting maximumPlugInSnapshotAttempts that can
29000        be set by testing scripts.
29001
29002        Tests: plugins/snapshotting/restart.html
29003               plugins/snapshotting/simple.html
29004
29005        * page/Settings.in:
29006
290072013-03-19  Dean Jackson  <dino@apple.com>
29008
29009        Restarting a snapshotted plugin should restart all plugins from the same domain on the page
29010        https://bugs.webkit.org/show_bug.cgi?id=112725
29011
29012        Reviewed by Tim Horton.
29013
29014        If the user restarts a snapshotted plugin, then typically they will
29015        want to restart all similar plugins on the page, where similarity
29016        is defined by the domain of the content. Or in other words, since clients
29017        will typically add a restarted plugin to the list of autostarting
29018        domain hashes, we should start the other plugins that would autostart
29019        on reload.
29020
29021        When a snapshotted plugin gets the user click telling it to restart, it iterates
29022        over every frame in the document looking for domain hashes similar to its own.
29023        It then manually restarts each of the paused plugins.
29024
29025        * html/HTMLPlugInImageElement.cpp:
29026        (WebCore::addPlugInsFromNodeListMatchingOriginHash): Static helper function
29027            that builds a list of plugins to restart.
29028        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): After restarting itself,
29029            the plugin looks for all other similar snapshotted plugins in the page.
29030        (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn): Splits out the actual
29031            restart functionality, to make it separate from plugins that were manually
29032            restarted and thus probably want to forward a delayed click event.
29033        * html/HTMLPlugInImageElement.h:
29034        (HTMLPlugInImageElement): New method restartSnapshottedPlugIn.
29035
290362013-03-19  Nate Chapin  <japhet@chromium.org>
29037
29038        Merge MainResourceLoader's SubstituteData loading + others into DocumentLoader
29039        https://bugs.webkit.org/show_bug.cgi?id=112722
29040
29041        Part of the ongoing effort to merge MainResourceLoader entirely
29042        into DocumentLoader.
29043
29044        Reviewed by Antti Koivisto.
29045
29046        No new tests, refactor only.
29047
29048        * loader/DocumentLoader.cpp:
29049        (WebCore::DocumentLoader::mainReceivedError): Moved from MainResourceLoader::receivedError
29050            and the failure case in MainResourceLoader::notifyFinished.
29051        (WebCore::DocumentLoader::stopLoading):
29052        (WebCore::DocumentLoader::finishedLoading):
29053        (WebCore::DocumentLoader::handleSubstituteDataLoadNow): Moved from MainResourceLoader.
29054        (WebCore::DocumentLoader::startDataLoadTimer): Moved from MainResourceLoader.
29055        (WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Moved from MainResourceLoader.
29056        (WebCore::DocumentLoader::willSendRequest):
29057        (WebCore::DocumentLoader::continueAfterNavigationPolicy):
29058        (WebCore::DocumentLoader::responseReceived):
29059        (WebCore::DocumentLoader::receivedData):
29060        (WebCore::DocumentLoader::startLoadingMainResource): Most of MainResourceLoader::load
29061            moved here.
29062        (WebCore::DocumentLoader::cancelMainResourceLoad): MainResourceLoader::cancel
29063            moved here.
29064        * loader/DocumentLoader.h:
29065        * loader/MainResourceLoader.cpp:
29066        (WebCore::MainResourceLoader::notifyFinished):
29067        (WebCore::MainResourceLoader::reportMemoryUsage):
29068        (WebCore::MainResourceLoader::load):
29069        (WebCore::MainResourceLoader::identifier):
29070        * loader/MainResourceLoader.h:
29071
290722013-03-19  Ryosuke Niwa  <rniwa@webkit.org>
29073
29074        Unreviewed build fix after r146220. Add the missing ]'s.
29075
29076        * English.lproj/localizedStrings.js:
29077
290782013-03-19  Alpha Lam  <hclam@chromium.org>
29079
29080        GIFImageReader to count frames and decode in one pass
29081        https://bugs.webkit.org/show_bug.cgi?id=111144
29082
29083        Reviewed by Stephen White.
29084
29085        OBJECTIVE
29086
29087        This change has the objective of improving performance reading GIF
29088        files. This implementation can parse the entire GIF file in one pass
29089        and saves information about each frame, such that decoding in a later
29090        pass does not need to parse the file again.
29091
29092        This change fixes the performance problem of decoding GIF files when
29093        they are received very slowly. Existing implementation creates a new
29094        GIFImageReader for counting frames for every time it is notified that
29095        new data has been received, this has O(n^2) behavior when data is
29096        received very slowly.
29097
29098        ALGORITHM
29099
29100        This implementation divides the decoding process into two separate
29101        steps: parse and LZW decoding.
29102
29103        In the parse step, the state machine is similar to the existing
29104        implementation. However this algorithm does not perform any decoding
29105        while scanning through the file. Intead it creates a new data structure
29106        for caching all frame information and the corresponding LZW blocks.
29107
29108        If a full decode is requested then LZW decoding is performed. This
29109        implementation looks through all frame information saved and decodes
29110        each frame sequentially until the target frame is reached.
29111
29112        Because of the separation of parse and decode, each frame can be
29113        decoded separately. This paves the way to support seeking in GIF files.
29114
29115        TESTING
29116
29117        Added a new unit test to cover progressively decoding a GIF image.
29118        There are already GIF unit tests for functional testing.
29119        Exhaustive testing was done locally with a corpus of 60k images.
29120        I mixed the corpus with some generated bad data and truncated files.
29121        The results was bit-identical when compared to the previous
29122        implementation.
29123
29124        These was also no crashing when decoding the entire corpus.
29125
29126        * platform/image-decoders/gif/GIFImageDecoder.cpp:
29127        (WebCore::GIFImageDecoder::GIFImageDecoder):
29128        (WebCore::GIFImageDecoder::setData):
29129        (WebCore::GIFImageDecoder::frameCount):
29130        (WebCore::GIFImageDecoder::repetitionCount):
29131        (WebCore::GIFImageDecoder::decode):
29132        * platform/image-decoders/gif/GIFImageDecoder.h:
29133        (GIFImageDecoder):
29134        * platform/image-decoders/gif/GIFImageReader.cpp:
29135        (GIFLZWContext::outputRow):
29136        (GIFLZWContext::doLZW):
29137        (GIFFrameContext::decode):
29138        (GIFImageReader::decode):
29139        (GIFImageReader::parse):
29140        (GIFImageReader::addFrameIfNecessary):
29141        (GIFLZWContext::prepareToDecode):
29142        * platform/image-decoders/gif/GIFImageReader.h:
29143        There is a lot of reshuffling in GIFLZWContext and GIFFrameContext.
29144        These changes has the goal of having GIFLZWContext be a pure decoding
29145        state machine. GIFFrameContext is mostly a read-only container for
29146        frame information. With all these changes we can decode each
29147        GIFFrameContext independently.
29148
29149        The ownership pattern is:
29150        GIFImageReader owns GIFFrameContext owns GIFLZWContext.
29151
29152        (GIFLZWContext::GIFLZWContext):
29153        (GIFLZWContext):
29154        (GIFLZWContext::hasRemainingRows):
29155        GIFLZWContext is moved to the top of file.
29156        (GIFLZWBlock):
29157        (GIFLZWBlock::GIFLZWBlock):
29158        New data structure to save block position and size.
29159        (GIFFrameContext):
29160        (GIFFrameContext::GIFFrameContext):
29161        (GIFFrameContext::~GIFFrameContext):
29162        (GIFFrameContext::addLzwBlock):
29163        (GIFFrameContext::isComplete):
29164        (GIFFrameContext::isHeaderDefined):
29165        (GIFFrameContext::isDataSizeDefined):
29166        (GIFFrameContext::setComplete):
29167        (GIFFrameContext::setHeaderDefined):
29168        (GIFFrameContext::setDataSize):
29169        Now owns GIFLZWContext for decoding.
29170        (GIFImageReader::GIFImageReader):
29171        (GIFImageReader::~GIFImageReader):
29172        (GIFImageReader::imagesCount):
29173        (GIFImageReader::frameContext):
29174        (GIFImageReader):
29175        (GIFImageReader::parseFailed):
29176        (GIFImageReader::isFirstFrame):
29177        Owns a list of GIFFrameContxt.
29178
291792013-03-19  Brent Fulgham  <bfulgham@webkit.org>
29180
29181        [WinCairo] Unreviewed build correction for WebCore library.
29182
29183        * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific frame source
29184        from WinCairo build.
29185        * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Pass correct
29186        parameter to build-generated-files.sh for WinCairo build.
29187
291882013-03-19  Leon Scroggins  <scroggo@chromium.org>
29189
29190        Implement onRefEncodedData for lazy pixel refs.
29191        This allows printToSkPicture to write the original
29192        encoded data to the stream.
29193        Add a method to ImageFrameGenerator to copy its
29194        data, which is used by onRefEncodedData.
29195        https://bugs.webkit.org/show_bug.cgi?id=110759
29196
29197        Reviewed by Stephen White.
29198
29199        No new tests. New functionality is for testing purposes
29200        (creating SKP files).
29201
29202        * platform/graphics/chromium/ImageFrameGenerator.cpp:
29203        (WebCore::ImageFrameGenerator::data):
29204        (WebCore):
29205        * platform/graphics/chromium/ImageFrameGenerator.h:
29206        (ImageFrameGenerator):
29207        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
29208        (WebCore::LazyDecodingPixelRef::isClipped):
29209        (WebCore):
29210        (WebCore::LazyDecodingPixelRef::onRefEncodedData):
29211        * platform/graphics/chromium/LazyDecodingPixelRef.h:
29212        (LazyDecodingPixelRef):
29213
292142013-03-19  Philip Rogers  <pdr@google.com>
29215
29216        Separate SVG image size and container size
29217        https://bugs.webkit.org/show_bug.cgi?id=112651
29218
29219        Reviewed by Stephen Chenney.
29220
29221        Previously, SVG images could retain their cached size between reloads due to a bug where an
29222        old container size would be re-used if the image's new container size was not available yet.
29223
29224        This patch changes SVGImage::size() to return the intrinsic size of the image before a
29225        container size has been set. SVGImageCache::imageSizeForRenderer will now return the
29226        image's intrinsic size instead of a cached value if the container size cannot be looked up.
29227        In javascript, querying [SVGImage].width will now return either the image's intrinsic size
29228        or the size of 'imageForContainer'.
29229
29230        Test: svg/as-image/svg-container-size-after-reload.html
29231
29232        * svg/graphics/SVGImage.cpp:
29233        (WebCore::SVGImage::setContainerSize):
29234        (WebCore::SVGImage::containerSize):
29235        (WebCore::SVGImage::draw):
29236        (WebCore::SVGImage::dataChanged):
29237        * svg/graphics/SVGImage.h:
29238
29239            The member variable 'm_intrinsicSize' has been added to track the image's intrinsic
29240            size. This term can be found in: http://www.w3.org/TR/css3-images/#default-sizing
29241
29242        * svg/graphics/SVGImageCache.cpp:
29243        (WebCore::SVGImageCache::imageSizeForRenderer):
29244        (WebCore::SVGImageCache::imageForRenderer):
29245
29246            In both of these functions, image has been renamed to imageForContainer here to clarify
29247            that the cached container size is being returned, not the image's intrinsic size.
29248
292492013-03-19  Joshua Bell  <jsbell@chromium.org>
29250
29251        IndexedDB: Use integer plumbing for deleteDatabase onVersionChange calls
29252        https://bugs.webkit.org/show_bug.cgi?id=112715
29253
29254        Reviewed by Tony Chang.
29255
29256        When deleteDatabase on the back-end needs to send the front-end an
29257        onVersionChange notification it does so using the string overload. That's
29258        the only remaining use of that overload and we'd like to delete it. Switch
29259        to using the integer overload, with an already defined special value.
29260        This will unblock http://wkbug.com/112712 to delete the dead code.
29261
29262        No new tests - no functional change.
29263
29264        * Modules/indexeddb/IDBDatabase.cpp:
29265        (WebCore::IDBDatabase::onVersionChange): Map NoIntVersion to null.
29266        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
29267        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Call integer overload.
29268
292692013-03-19  Terry Anderson  <tdanderson@chromium.org>
29270
29271        Hover effects from a GestureTapDown are dismissed by a GestureTap on the hover element
29272        https://bugs.webkit.org/show_bug.cgi?id=103283
29273
29274        Reviewed by Antonio Gomes.
29275
29276        On a GestureTap event over an element that was made visible as a hover effect, the
29277        GestureTap should be applied to that element and the hover effects should not be dismissed. 
29278        A GestureTap or a mouse move to a location outside of the element should still dismiss the
29279        hover effects.
29280
29281        Tests: fast/events/touch/gesture/gesture-tap-hover-clear.html
29282               fast/events/touch/gesture/gesture-tap-on-hover-element.html
29283
29284        * page/EventHandler.cpp:
29285        (WebCore::EventHandler::handleGestureEvent):
29286
292872013-03-19  Alexei Filippov  <alph@chromium.org>
29288
29289        Web Inspector: Fix menu items capitalization.
29290        https://bugs.webkit.org/show_bug.cgi?id=112553
29291
29292        The context menu items should be correctly capitalized.
29293
29294        Reviewed by Pavel Feldman.
29295
29296        * English.lproj/localizedStrings.js:
29297        * inspector/front-end/BreakpointsSidebarPane.js:
29298        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
29299        (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
29300        (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
29301        * inspector/front-end/CallStackSidebarPane.js:
29302        (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
29303        * inspector/front-end/ConsoleView.js:
29304        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
29305        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
29306        * inspector/front-end/DOMBreakpointsSidebarPane.js:
29307        (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
29308        * inspector/front-end/DataGrid.js:
29309        (WebInspector.DataGrid.prototype._contextMenuInDataTable):
29310        * inspector/front-end/ElementsPanel.js:
29311        (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
29312        (WebInspector.ElementsPanel.prototype.appendApplicableItems):
29313        * inspector/front-end/ElementsTreeOutline.js:
29314        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
29315        (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
29316        * inspector/front-end/HeapSnapshotDataGrids.js:
29317        (WebInspector.HeapSnapshotSortableDataGrid.prototype.populateContextMenu):
29318        * inspector/front-end/NetworkPanel.js:
29319        (WebInspector.NetworkPanel.prototype.appendApplicableItems):
29320        * inspector/front-end/ProfilesPanel.js:
29321        (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
29322        (WebInspector.ProfilesPanel.prototype.appendApplicableItems):
29323        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
29324        * inspector/front-end/ResourcesPanel.js:
29325        (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
29326        * inspector/front-end/ScriptsPanel.js:
29327        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
29328        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
29329        (WebInspector.ScriptsPanel.prototype._appendFunctionItems):
29330        * inspector/front-end/TabbedPane.js:
29331        (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
29332        * inspector/front-end/TimelinePanel.js:
29333        (WebInspector.TimelinePanel.prototype._contextMenu):
29334        * inspector/front-end/WatchExpressionsSidebarPane.js:
29335        (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
29336        (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
29337
293382013-03-19  Alec Flett  <alecflett@chromium.org>
29339
29340        Inspector: IndexedDB clear button and menu item
29341        https://bugs.webkit.org/show_bug.cgi?id=112066
29342
29343        Reviewed by Vsevolod Vlasov.
29344
29345        Adds a button that can clear the contents of an objectStore from
29346        the IDBDataView, and a context menu from the ResourcesPanel that
29347        can do the same.
29348
29349        This also disables the Refresh button from the IDBDataView, so there
29350        is at least some visual feedback that the refresh button is working.
29351
29352        Tests: http/tests/inspector/indexeddb/database-data.html
29353
29354        * inspector/Inspector.json: New API clearObjectStore.
29355        * inspector/InspectorIndexedDBAgent.cpp: Implementation of clearObjectStore
29356        (WebCore):
29357        (ClearObjectStoreListener): Calls the original closure after the objectStore is cleared.
29358        (ClearObjectStore): Initiates the clear operation after the DB opens.
29359        * inspector/front-end/IndexedDBModel.js: Exposes clearObjectStore to the Model API.
29360        (WebInspector.IDBDataView): Add clear button and enable/disable clear and refresh buttons appropriately.
29361        * inspector/front-end/ResourcesPanel.js: Add a menu item and refresh the displayed data after the clear.
29362        * inspector/front-end/inspector.css: Add a style to show the right button for clear.
29363
293642013-03-19  Nate Chapin  <japhet@chromium.org>
29365
29366        Merge MainResourceLoader::responseReceived into DocumentLoader
29367        https://bugs.webkit.org/show_bug.cgi?id=112593
29368
29369        Part of the ongoing effort to merge MainResourceLoader entirely
29370        into DocumentLoader.
29371
29372        Reviewed by Adam Barth.
29373
29374        No new tests, refactor only.
29375
29376        * loader/DocumentLoader.cpp:
29377        (WebCore::DocumentLoader::DocumentLoader):
29378        (WebCore::DocumentLoader::stopLoading):
29379        (WebCore::DocumentLoader::finishedLoading): The only thing left in
29380            MainResourceLoader related to this function was a RefPtr which indirectly
29381            protected DocumentLoader. Move the RefPtr here and protect DocumentLoader directly.
29382        (WebCore::DocumentLoader::responseReceived): Moved from MainResourceLoader.
29383        (WebCore::DocumentLoader::callContinueAfterContentPolicy): Moved from MainResourceLoader.
29384        (WebCore::DocumentLoader::continueAfterContentPolicy): Moved from MainResourceLoader.
29385        (WebCore::DocumentLoader::interruptedForPolicyChangeError): Moved from MainResourceLoader.
29386        (WebCore::DocumentLoader::stopLoadingForPolicyChange): Moved from MainResourceLoader.
29387        (WebCore::DocumentLoader::receivedData):
29388        (WebCore::DocumentLoader::cancelMainResourceLoad):
29389        * loader/DocumentLoader.h:
29390        (WebCore::DocumentLoader::isLoadingMultipartContent): Store multipart bit here.
29391        * loader/MainResourceLoader.cpp:
29392        (WebCore::MainResourceLoader::MainResourceLoader):
29393        (WebCore::MainResourceLoader::cancel):
29394        (WebCore::MainResourceLoader::responseReceived):
29395        (WebCore::MainResourceLoader::notifyFinished):
29396        * loader/MainResourceLoader.h:
29397
293982013-03-19  Tony Chang  <tony@chromium.org>
29399
29400        Cleanup defaultUnifiedTextCheckerEnabled type
29401        https://bugs.webkit.org/show_bug.cgi?id=112640
29402
29403        Reviewed by Adam Barth.
29404
29405        It's a bool setting. I accidentally declared the default value as a double
29406        in r139202.
29407
29408        No new tests, this is a refactor/code cleanup.
29409
29410        * page/Settings.cpp:
29411        (WebCore): Switch from double to a bool.
29412
294132013-03-19  Alexei Filippov  <alph@chromium.org>
29414
29415        Web Inspector: Increase DataGrid default font size.
29416        https://bugs.webkit.org/show_bug.cgi?id=112692
29417
29418        Reviewed by Pavel Feldman.
29419
29420        The default font of 10px is too small. Most instances of DataGrid set
29421        font to 11px.
29422
29423        * inspector/front-end/dataGrid.css:
29424        (.data-grid table):
29425
294262013-03-19  Max Vujovic  <mvujovic@adobe.com>
29427
29428        Refactor conditions for setCompositingLayersNeedRebuild in RenderLayer::styleChanged
29429        https://bugs.webkit.org/show_bug.cgi?id=112606
29430
29431        Reviewed by Simon Fraser.
29432
29433        To fix bug 109098 [1], we will need to add more conditions for calling
29434        RenderLayerCompositor::setCompositingLayersNeedRebuild in RenderLayer::styleChanged.
29435        Adding more non-trivial conditions will make this block of code even harder to follow.
29436        This patch refactors the current conditions into functions:
29437            needsCompositingLayersRebuiltForClip
29438            needsCompositingLayersRebuiltForOverflow
29439
29440        In bug 109098 [1], I'm planning to add:
29441            needsCompositingLayersRebuiltForFilters
29442
29443        [1]: https://bugs.webkit.org/show_bug.cgi?id=109098
29444
29445        No new tests. Just refactoring.
29446
29447        * rendering/RenderLayer.cpp:
29448        (WebCore):
29449        (WebCore::RenderLayer::needsCompositingLayersRebuiltForClip):
29450        (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow):
29451            This is a method and not a file static function because it needs to look at the
29452            RenderLayer's stackingContainer(), which is a private method.
29453        (WebCore::RenderLayer::styleChanged):
29454        * rendering/RenderLayer.h:
29455        (RenderLayer):
29456
294572013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
29458
29459        [Qt] Support kerning in fast path font rendering
29460        https://bugs.webkit.org/show_bug.cgi?id=106013
29461
29462        Reviewed by Jocelyn Turcotte.
29463
29464        To support kerning in the fast font path we need to implement SimpleFontData::applyTransforms.
29465
29466        This patch changes the types used by the fast path GlyphBuffer to match those used by Qt,
29467        and implements SimpleFontData::applyTransforms using QRawFont::advancesForGlyphIndexes.
29468
29469        * platform/graphics/GlyphBuffer.h:
29470        (GlyphBufferAdvance):
29471        (WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
29472        (WebCore::GlyphBufferAdvance::setWidth):
29473        (WebCore::GlyphBufferAdvance::width):
29474        (WebCore::GlyphBufferAdvance::height):
29475        (WebCore::GlyphBuffer::add):
29476        * platform/graphics/SimpleFontData.h:
29477        (WebCore::SimpleFontData::applyTransforms):
29478        * platform/graphics/WidthIterator.h:
29479        (WebCore::WidthIterator::supportsTypesettingFeatures):
29480
294812013-03-19  Sergey Ryazanov  <serya@chromium.org>
29482
29483        Web Inspector: split Console into two entities, a web-facing bound object and page console.
29484        https://bugs.webkit.org/show_bug.cgi?id=111578
29485
29486        Reviewed by Vsevolod Vlasov.
29487
29488        Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.
29489
29490        * CMakeLists.txt:
29491        * GNUmakefile.list.am:
29492        * Target.pri:
29493        * WebCore.exp.in:
29494        * WebCore.gypi:
29495        * WebCore.order:
29496        * WebCore.vcproj/WebCore.vcproj:
29497        * WebCore.vcxproj/WebCore.vcxproj:
29498        * WebCore.vcxproj/WebCore.vcxproj.filters:
29499        * WebCore.xcodeproj/project.pbxproj:
29500        * bindings/js/JSCustomXPathNSResolver.cpp:
29501        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
29502        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
29503        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
29504        * dom/Document.cpp:
29505        (WebCore::Document::addConsoleMessage):
29506        (WebCore::Document::addMessage):
29507        * inspector/PageDebuggerAgent.cpp:
29508        (WebCore::PageDebuggerAgent::muteConsole):
29509        (WebCore::PageDebuggerAgent::unmuteConsole):
29510        * inspector/PageRuntimeAgent.cpp:
29511        (WebCore::PageRuntimeAgent::muteConsole):
29512        (WebCore::PageRuntimeAgent::unmuteConsole):
29513        * page/Console.cpp:
29514        (WebCore::internalAddMessage):
29515        * page/Console.h:
29516        (WebCore):
29517        (Console):
29518        * page/DOMWindow.cpp:
29519        (WebCore::DOMWindow::pageConsole):
29520        (WebCore):
29521        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
29522        (WebCore::DOMWindow::printErrorMessage):
29523        * page/DOMWindow.h:
29524        (WebCore):
29525        (DOMWindow):
29526        * page/Page.cpp:
29527        (WebCore::Page::Page):
29528        * page/Page.h:
29529        (WebCore):
29530        (WebCore::Page::console):
29531        (Page):
29532        * page/PageConsole.cpp: Added.
29533        (WebCore::PageConsole::PageConsole):
29534        (WebCore):
29535        (WebCore::PageConsole::~PageConsole):
29536        (WebCore::PageConsole::printSourceURLAndLine):
29537        (WebCore::PageConsole::printMessageSourceAndLevelPrefix):
29538        (WebCore::PageConsole::addMessage):
29539        (WebCore::PageConsole::mute):
29540        (WebCore::PageConsole::unmute):
29541        (WebCore::PageConsole::shouldPrintExceptions):
29542        (WebCore::PageConsole::setShouldPrintExceptions):
29543        * page/PageConsole.h: Copied from Source/WebCore/page/Console.h.
29544        (WebCore):
29545        (PageConsole):
29546        (WebCore::PageConsole::create):
29547        (WebCore::PageConsole::page):
29548        * xml/XSLStyleSheetLibxslt.cpp:
29549        (WebCore::XSLStyleSheet::parseString):
29550        * xml/XSLTProcessorLibxslt.cpp:
29551        (WebCore::XSLTProcessor::parseErrorFunc):
29552        (WebCore::docLoaderFunc):
29553
295542013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
29555
29556        Web Inspector: move OverviewGrid and OverviewWindow into separate file.
29557        https://bugs.webkit.org/show_bug.cgi?id=112693
29558
29559        Reviewed by Yury Semikhatsky.
29560
29561        It is the third patch for the meta bug "Web Inspector: meta bug: extract OverviewGrid from TimelineOverviewPane"
29562        It just moves the OverviewGrid and the related classes into its own file.
29563
29564        * WebCore.gypi:
29565        * WebCore.vcproj/WebCore.vcproj:
29566        * WebCore.vcxproj/WebCore.vcxproj:
29567        * WebCore.vcxproj/WebCore.vcxproj.filters:
29568        * inspector/compile-front-end.py:
29569        * inspector/front-end/OverviewGrid.js: Added.
29570        (WebInspector.OverviewGrid):
29571        (WebInspector.OverviewGrid.prototype.itemsGraphsElement):
29572        (WebInspector.OverviewGrid.prototype.insertBeforeItemsGraphsElement):
29573        (WebInspector.OverviewGrid.prototype.clientWidth):
29574        (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
29575        (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
29576        (WebInspector.OverviewGrid.prototype.updateDividers):
29577        (WebInspector.OverviewGrid.prototype.addEventDividers):
29578        (WebInspector.OverviewGrid.prototype.removeEventDividers):
29579        (WebInspector.OverviewGrid.prototype.setWindowPosition):
29580        (WebInspector.OverviewGrid.prototype.reset):
29581        (WebInspector.OverviewGrid.prototype.windowLeft):
29582        (WebInspector.OverviewGrid.prototype.windowRight):
29583        (WebInspector.OverviewGrid.prototype.setWindow):
29584        (WebInspector.OverviewGrid.prototype.addEventListener):
29585        (WebInspector.OverviewGrid.Window):
29586        (WebInspector.OverviewGrid.Window.prototype.reset):
29587        (WebInspector.OverviewGrid.Window.prototype._leftResizeElementDragging):
29588        (WebInspector.OverviewGrid.Window.prototype._rightResizeElementDragging):
29589        (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
29590        (WebInspector.OverviewGrid.Window.prototype._windowSelectorDragging):
29591        (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
29592        (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
29593        (WebInspector.OverviewGrid.Window.prototype._windowDragging):
29594        (WebInspector.OverviewGrid.Window.prototype._endWindowDragging):
29595        (WebInspector.OverviewGrid.Window.prototype._moveWindow):
29596        (WebInspector.OverviewGrid.Window.prototype._resizeWindowLeft):
29597        (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
29598        (WebInspector.OverviewGrid.Window.prototype._resizeWindowMaximum):
29599        (WebInspector.OverviewGrid.Window.prototype._setWindow):
29600        (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
29601        (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
29602        (WebInspector.OverviewGrid.Window.prototype._zoom):
29603        (WebInspector.OverviewGrid.WindowSelector):
29604        (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
29605        (WebInspector.OverviewGrid.WindowSelector.prototype._close):
29606        (WebInspector.OverviewGrid.WindowSelector.prototype._updatePosition):
29607        * inspector/front-end/TimelineOverviewPane.js:
29608        * inspector/front-end/WebKit.qrc:
29609        * inspector/front-end/inspector.html:
29610
296112013-03-19  Allan Sandfeld Jensen  <allan.jensen@digia.com>
29612
29613        [Qt] Monospace font does not render in proper sizes
29614        https://bugs.webkit.org/show_bug.cgi?id=93263
29615
29616        Reviewed by Jocelyn Turcotte.
29617
29618        Do not force fonts to use integer metrics. This was necessary when the fast font path
29619        only worked in integer but is now hindering accurate metrics. This is also required to
29620        make kerning in the fast-path look acceptable
29621
29622        Only enabled for Qt 5.1+ to avoid changing all the baselines for 5.0.
29623
29624        * platform/graphics/qt/FontPlatformDataQt.cpp:
29625        (WebCore::FontPlatformData::FontPlatformData):
29626
296272013-03-19  John J. Barton  <johnjbarton@chromium.org>
29628
29629        Web Inspector: Add iframe option to inspectedWindow.eval() extension API
29630        https://bugs.webkit.org/show_bug.cgi?id=106811
29631
29632        Reviewed by Vsevolod Vlasov.
29633
29634        Add a new case to the options processing in inspectedWindow.eval(), look
29635        for option.frameURL <string> and/or option.scriptExecutionContext: <string>, find the
29636        matching JS context in the runtimeModel, and call evaluate() in that
29637        context; or error if the context is not found. 
29638
29639        Test: http/tests/inspector/extensions-iframe-eval.html
29640
29641        * inspector/front-end/ExtensionServer.js:
29642        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
29643        (WebInspector.ExtensionServer.prototype.):
29644        (WebInspector.ExtensionServer.prototype.evaluate):
29645        * inspector/front-end/ResourceTreeModel.js:
29646        (WebInspector.ResourceTreeModel.prototype.frames):
29647           Added read access to _frames
29648       * inspector/front-end/RuntimeModel.js:
29649        (WebInspector.RuntimeModel.prototype.contextListByFrame):
29650           Added access to a frame's contextList, removed contextByFrameAndSecurityOrigin()
29651        (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
29652           Added access to frame's mainWorldContext, rather than implicit first context.
29653           Now we can go from ResourceTreeModel -> frame -> contextList then either
29654           mainWorldContext() or contextBySecurityOrigin() to access contexts.
29655
29656        * inspector/front-end/ExtensionServer.js:
29657        (WebInspector.ExtensionServer.prototype.):
29658        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
29659        (WebInspector.ExtensionServer.prototype.evaluate):
29660        * inspector/front-end/ResourceTreeModel.js:
29661        * inspector/front-end/RuntimeModel.js:
29662        (WebInspector.RuntimeModel.prototype.contextListByFrame):
29663        (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
29664
29665        * inspector/front-end/ExtensionServer.js:
29666        (WebInspector.ExtensionServer.prototype._onReload):
29667        (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
29668        (WebInspector.ExtensionServer.prototype.):
29669        (WebInspector.ExtensionServer.prototype.evaluate):
29670        * inspector/front-end/ResourceTreeModel.js:
29671        (WebInspector.ResourceTreeModel.prototype.frames):
29672        * inspector/front-end/RuntimeModel.js:
29673        (WebInspector.RuntimeModel.prototype.contextListByFrame):
29674        (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
29675
29676        * inspector/front-end/ExtensionServer.js:
29677        (WebInspector.ExtensionServer.prototype.resolveURLToFrame.hasMatchingURL):
29678        (WebInspector.ExtensionServer.prototype.):
29679        (WebInspector.ExtensionServer.prototype.evaluate):
29680        * inspector/front-end/ResourceTreeModel.js:
29681        (WebInspector.ResourceTreeModel.prototype.frames):
29682        * inspector/front-end/RuntimeModel.js:
29683        (WebInspector.RuntimeModel.prototype.contextListByFrame):
29684        (WebInspector.FrameExecutionContextList.prototype.mainWorldContext):
29685
296862013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
29687
29688        Web Inspector: rename TimelineOverviewWindow to OverviewGrid.Window and fix names for constants.
29689        https://bugs.webkit.org/show_bug.cgi?id=112685
29690
29691        Reviewed by Yury Semikhatsky.
29692
29693        It is the second patch which extracts OverviewGrid from TimelineOverviewPane.
29694        It renames internal components of OverviewGrid.
29695        WebInspector.TimelineOverviewWindow -> WebInspector.OverviewGrid.Window
29696        WebInspector.TimelineOverviewWindow.WindowSelector -> WebInspector.OverviewGrid.WindowSelector
29697
29698        and moves constants from WebInspector.TimelineOverviewWindow namespace to WebInspector.OverviewGrid namespace
29699
29700        * inspector/front-end/TimelineOverviewPane.js:
29701        (WebInspector.TimelineOverviewPane):
29702        (WebInspector.OverviewGrid):
29703        (WebInspector.OverviewGrid.Window):
29704        (WebInspector.OverviewGrid.Window.prototype._startWindowSelectorDragging):
29705        (WebInspector.OverviewGrid.Window.prototype._endWindowSelectorDragging):
29706        (WebInspector.OverviewGrid.Window.prototype._startWindowDragging):
29707        (WebInspector.OverviewGrid.Window.prototype._windowDragging):
29708        (WebInspector.OverviewGrid.Window.prototype._moveWindow):
29709        (WebInspector.OverviewGrid.Window.prototype._resizeWindowRight):
29710        (WebInspector.OverviewGrid.Window.prototype._setWindowPosition):
29711        (WebInspector.OverviewGrid.Window.prototype._onMouseWheel):
29712        (WebInspector.OverviewGrid.Window.prototype._zoom):
29713        (WebInspector.OverviewGrid.WindowSelector):
29714        (WebInspector.OverviewGrid.WindowSelector.prototype._createSelectorElement):
29715
297162013-03-19  Ilya Tikhonovsky  <loislo@chromium.org>
29717
29718        Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
29719        https://bugs.webkit.org/show_bug.cgi?id=112584
29720
29721        Reviewed by Pavel Feldman.
29722
29723        It is the first path in the set.
29724        The end goal is to extract OverviewGrid with window selectors
29725        into a separate class in separate file and reuse it in CPU FlameChart.
29726
29727        * inspector/front-end/TimelineOverviewPane.js:
29728        (WebInspector.TimelineOverviewPane):
29729        (WebInspector.OverviewGrid):
29730        (WebInspector.OverviewGrid.prototype.get grid):
29731        (WebInspector.OverviewGrid.prototype.get clientWidth):
29732        (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
29733        (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
29734        (WebInspector.OverviewGrid.prototype.updateDividers):
29735        (WebInspector.OverviewGrid.prototype.addEventDividers):
29736        (WebInspector.OverviewGrid.prototype.removeEventDividers):
29737        (WebInspector.OverviewGrid.prototype.setWindowPosition):
29738        (WebInspector.OverviewGrid.prototype.reset):
29739        (WebInspector.OverviewGrid.prototype.get windowLeft):
29740        (WebInspector.OverviewGrid.prototype.get windowRight):
29741        (WebInspector.OverviewGrid.prototype.setWindow):
29742        (WebInspector.OverviewGrid.prototype.addEventListener):
29743        (WebInspector.TimelineOverviewPane.prototype.setMode):
29744        (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
29745        (WebInspector.TimelineOverviewPane.prototype._update):
29746        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
29747        (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
29748        (WebInspector.TimelineOverviewPane.prototype._reset):
29749        (WebInspector.TimelineOverviewPane.prototype.windowLeft):
29750        (WebInspector.TimelineOverviewPane.prototype.windowRight):
29751        (WebInspector.TimelineOverviewPane.prototype._updateWindow):
29752
297532013-03-19  Vladislav Kaznacheev  <kaznacheev@chromium.org>
29754
29755        Web Inspector: Add Inspector.targetCrashed event to Inspector protocol.
29756        https://bugs.webkit.org/show_bug.cgi?id=112669
29757
29758        Added Inspector.targetCrashed event and handled it on the front end.
29759        Showing a modal dialog similar to the one displayed when the remote
29760        debugging target is disconnected.
29761
29762        Reviewed by Pavel Feldman.
29763
29764        * English.lproj/localizedStrings.js:
29765        * inspector/Inspector.json:
29766        * inspector/front-end/HelpScreen.js:
29767        (WebInspector.HelpScreenUntilReload):
29768        (WebInspector.HelpScreenUntilReload.prototype.willHide):
29769        * inspector/front-end/inspector.js:
29770        (WebInspector.targetCrashed):
29771
297722013-03-19  Mario Sanchez Prada  <mario.prada@samsung.com>
29773
29774        [GTK] Wrong guard USE(GLX) in RedirectedXCompositeWindow
29775        https://bugs.webkit.org/show_bug.cgi?id=112600
29776
29777        Reviewed by Martin Robinson.
29778
29779        Replace USE(GLX) condition with USE(OPENGL) && PLATFORM(X11).
29780
29781        * platform/gtk/RedirectedXCompositeWindow.cpp: Updated guard.
29782        * platform/gtk/RedirectedXCompositeWindow.h: Ditto.
29783
297842013-03-19  Mihnea Ovidenie  <mihnea@adobe.com>
29785
29786        [CSSRegions] Crash reflowing content in variable width regions
29787        https://bugs.webkit.org/show_bug.cgi?id=112515
29788
29789        Reviewed by David Hyatt.
29790
29791        When removing floats during relayout of a line in a paginated context,
29792        we have to make sure that the floats collection actually has elements before
29793        accessing the last float from the collection.
29794        This situation arises when a block had floats in a previous layout and after
29795        they were removed, m_floatingObjects is not destroyed, only emptied.
29796
29797        Test: fast/regions/crash-reflow-inline-content-in-variable-width-regions.html
29798
29799        * rendering/RenderBlock.cpp:
29800        (WebCore::RenderBlock::removeFloatingObjectsBelow):
29801        * rendering/RenderBlockLineLayout.cpp:
29802        (WebCore::RenderBlock::layoutRunsAndFloats):
29803        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
29804
298052013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
29806
29807        Web Inspector: Debugger scripts should visually differ from network/filesystem files in workspace.
29808        https://bugs.webkit.org/show_bug.cgi?id=112552
29809
29810        Reviewed by Pavel Feldman.
29811
29812        Extracted ContentProviderBasedProjectDelegate from SimpleProjectDelegate.
29813        Implemented DebuggerProjectDelegate for DefaultScriptMapping.
29814        Debugger scripts are now added to workspace with a name starting with [VM] and ending with scriptId.
29815        Added yellow background to debugger scripts editor.
29816
29817        * WebCore.gypi:
29818        * WebCore.vcproj/WebCore.vcproj:
29819        * inspector/compile-front-end.py:
29820        * inspector/front-end/ContentProviderBasedProjectDelegate.js: Added.
29821        * inspector/front-end/DefaultScriptMapping.js:
29822        (WebInspector.DefaultScriptMapping):
29823        (WebInspector.DefaultScriptMapping.prototype.addScript):
29824        (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
29825        (WebInspector.DebuggerProjectDelegate):
29826        (WebInspector.DebuggerProjectDelegate.prototype.id):
29827        (WebInspector.DebuggerProjectDelegate.prototype.type):
29828        (WebInspector.DebuggerProjectDelegate.prototype.displayName):
29829        (WebInspector.DebuggerProjectDelegate.prototype.addScript):
29830        * inspector/front-end/JavaScriptSourceFrame.js:
29831        (WebInspector.JavaScriptSourceFrame):
29832        * inspector/front-end/ParsedURL.js:
29833        (WebInspector.ParsedURL.splitURL):
29834        * inspector/front-end/SimpleWorkspaceProvider.js:
29835        (WebInspector.SimpleProjectDelegate):
29836        (WebInspector.SimpleProjectDelegate.prototype.addFile):
29837        (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
29838        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
29839        * inspector/front-end/WebKit.qrc:
29840        * inspector/front-end/Workspace.js:
29841        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
29842        * inspector/front-end/inspector.html:
29843        * inspector/front-end/javaScriptSourceFrame.css: Added.
29844        (.source-frame-debugger-script):
29845
298462013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
29847
29848        Web Inspector: [CodeMirror] add smart braces functionality
29849        https://bugs.webkit.org/show_bug.cgi?id=112138
29850
29851        Reviewed by Vsevolod Vlasov.
29852
29853        No new tests.
29854
29855        Add closebrackets add-on to codemirror which implements smart braces
29856        functionality and guard this setting with the "Text Editor smart
29857        braces" experiment.
29858
29859        * WebCore.gypi:
29860        * WebCore.vcproj/WebCore.vcproj:
29861        * WebCore.vcxproj/WebCore.vcxproj:
29862        * WebCore.vcxproj/WebCore.vcxproj.filters:
29863        * inspector/front-end/CodeMirrorTextEditor.js:
29864        * inspector/front-end/WebKit.qrc:
29865        * inspector/front-end/cm/closebrackets.js: Added.
29866        (.):
29867
298682013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
29869
29870        Web Inspector: Avoid forcing text editor resize
29871        https://bugs.webkit.org/show_bug.cgi?id=112581
29872
29873        Reviewed by Vsevolod Vlasov.
29874
29875        No new tests.
29876
29877        Avoid unnecessary text editor resizing by removing line decoration
29878        via removeDecoration method instead of DOM remove operation.
29879
29880        * inspector/front-end/SourceFrame.js:
29881        (WebInspector.SourceFrame.prototype.clearMessages):
29882        (WebInspector.SourceFrame.prototype._setTextEditorDecorations):
29883
298842013-03-19  Andrey Lushnikov  <lushnikov@chromium.org>
29885
29886        Web Inspector: [CodeMirror] fix cursor movements
29887        https://bugs.webkit.org/show_bug.cgi?id=112555
29888
29889        Reviewed by Vsevolod Vlasov.
29890
29891        No new tests.
29892
29893        - Update CodeMirror to ToT to include its improved cursor movement
29894        - Add a small keymap to force cursor stop on both line endings and line
29895        starts.
29896
29897        * inspector/front-end/CodeMirrorTextEditor.js:
29898        (WebInspector.CodeMirrorTextEditor):
29899        (WebInspector.CodeMirrorTextEditor.FixWordMovement):
29900        (WebInspector.CodeMirrorTextEditor.FixWordMovement.moveRight):
29901        * inspector/front-end/cm/codemirror.css:
29902        (.CodeMirror div.CodeMirror-cursor):
29903        (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
29904        (.CodeMirror):
29905        * inspector/front-end/cm/codemirror.js:
29906        (window.CodeMirror):
29907        (window.CodeMirror.):
29908
299092013-03-19  Adam Barth  <abarth@webkit.org>
29910
29911        [chromium] Regression(143825): select elements don't open when there is a marquee on the page
29912        https://bugs.webkit.org/show_bug.cgi?id=111278
29913
29914        Unreviewed.
29915
29916        This patch is a rollout of http://trac.webkit.org/changeset/143825. The
29917        original patch caused a regression in the Chromium port.
29918
29919        * rendering/RenderLayer.cpp:
29920        (WebCore::RenderLayer::scrollTo):
29921
299222013-03-19  Alexander Pavlov  <apavlov@chromium.org>
29923
29924        Web Inspector: [Styles] Matching @host rule children are not displayed
29925        https://bugs.webkit.org/show_bug.cgi?id=112664
29926
29927        Reviewed by Vsevolod Vlasov.
29928
29929        Process host rules' contents akin to media rules' when handling the CSS model and source data.
29930
29931        Test: platform/chromium/inspector/styles/host-rules.html
29932
29933        * inspector/InspectorStyleSheet.cpp:
29934        (flattenSourceData):
29935        (WebCore::asCSSRuleList):
29936
299372013-03-18  Alexander Pavlov  <apavlov@chromium.org>
29938
29939        Web Inspector: [Styles] The "inherit" property value should be suggested for all properties
29940        https://bugs.webkit.org/show_bug.cgi?id=112662
29941
29942        Reviewed by Vsevolod Vlasov.
29943
29944        * inspector/front-end/CSSMetadata.js:
29945        (WebInspector.CSSMetadata.keywordsForProperty):
29946
299472013-03-18  David Kilzer  <ddkilzer@apple.com>
29948
29949        BUILD FIX (r146088): ResourceRequest::cfURLRequest() is defined twice on iOS
29950        <http://webkit.org/b/112387>
29951
29952        * platform/network/mac/ResourceRequestMac.mm:
29953        (WebCore::ResourceRequest::cfURLRequest): Move method into
29954        !USE(CFNETWORK) section since it's also defined in
29955        cf/ResourceRequestCFNet.cpp on iOS.
29956
299572013-03-18  Alpha Lam  <hclam@chromium.org>
29958
29959        [chromium] More tracing in deferred image decoding
29960        https://bugs.webkit.org/show_bug.cgi?id=112648
29961
29962        Reviewed by James Robinson.
29963
29964        Adding more trace events for a couple things in deferred image decoding path:
29965        - Time span for each lock pixels of SkPixelRef.
29966        - Time spent on decoding, scaling and pruning. Also the stack trace for these events.
29967        - Memory usage and number of cached entries.
29968        - Number of decode & scale operations done per image.
29969
29970        No test as this just add tracing information and no behavior change.
29971
29972        * platform/graphics/chromium/ImageDecodingStore.cpp:
29973        (WebCore::ImageDecodingStore::prune):
29974        (WebCore::ImageDecodingStore::insertCacheInternal):
29975        (WebCore::ImageDecodingStore::removeFromCacheInternal):
29976        * platform/graphics/chromium/ImageFrameGenerator.cpp:
29977        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
29978        (WebCore::ImageFrameGenerator::decodeAndScale):
29979        (WebCore::ImageFrameGenerator::tryToScale):
29980        (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
29981        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
29982        (WebCore::ImageFrameGenerator::decode):
29983        * platform/graphics/chromium/ImageFrameGenerator.h:
29984        (ImageFrameGenerator):
29985        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
29986        (WebCore::LazyDecodingPixelRef::onLockPixels):
29987        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
29988        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
29989
299902013-03-18  Kentaro Hara  <haraken@chromium.org>
29991
29992        Unreviewed. Rebaselined run-bindings-tests after r146161.
29993
29994        * bindings/scripts/test/JS/JSTestObj.cpp:
29995        (WebCore::setJSTestObjEnumAttr):
29996        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
29997        * bindings/scripts/test/V8/V8TestObj.cpp:
29998        (WebCore::ConfigureV8TestObjTemplate):
29999
300002013-03-18  Robert Flack  <flackr@chromium.org>
30001
30002        [chromium] Small pixel differences in scroll bars after r145844
30003        https://bugs.webkit.org/show_bug.cgi?id=112384
30004
30005        Reviewed by Kenneth Russell.
30006
30007        Tests: fast/forms/basic-textareas-quirks.html
30008               fast/forms/basic-textareas.html
30009               fast/overflow/overflow-x-y.html
30010               fast/parser/open-comment-in-textarea.html
30011               fast/replaced/width100percent-textarea.html
30012
30013        * platform/chromium/ScrollbarThemeChromium.cpp:
30014        (WebCore::ScrollbarThemeChromium::trackRect):
30015
300162013-03-18  Brent Fulgham  <bfulgham@webkit.org>
30017
30018        [WinCairo] Unreviewed build correction.
30019
30020        The "ImageDecoder.h" file was improperly tagged as a source file to
30021        build, causing a build failure on initial build attempts. Subsequent
30022        or incremental builds would work.
30023
30024        * WebCore.vcxproj/WebCore.vcxproj: Exclude CG-specific font files.
30025        Switch 'ImageDecoder.h' to proper source file type.
30026        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
30027
300282013-03-18  James Robinson  <jamesr@chromium.org>
30029
30030        [chromium] Remove unused type WebTransformationMatrix
30031        https://bugs.webkit.org/show_bug.cgi?id=112634
30032
30033        Reviewed by Adam Barth.
30034
30035        * WebCore.gypi:
30036        * platform/chromium/support/WebTransformationMatrix.cpp: Removed.
30037
300382013-03-18  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30039
30040        Add IDL 'enum' support to CodeGeneratorJS.pm
30041        https://bugs.webkit.org/show_bug.cgi?id=112475
30042
30043        Reviewed by Kentaro Hara.
30044
30045        This adds support for enumerations in JS, adding validation checking
30046        to setters.
30047        It also does validation checking to methods, and a new method
30048        methodWithEnumArg in TestObj.idl
30049
30050        Test: bindings/scripts/test/TestObj.idl
30051
30052        * bindings/scripts/CodeGeneratorJS.pm:
30053        (GenerateImplementation):
30054        (GenerateParametersCheck):
30055        (NativeToJSValue):
30056        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
30057        (WebDOMTestObj::methodWithEnumArg):
30058        * bindings/scripts/test/CPP/WebDOMTestObj.h:
30059        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
30060        (webkit_dom_test_obj_method_with_enum_arg):
30061        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
30062        * bindings/scripts/test/JS/JSTestObj.cpp:
30063        (WebCore):
30064        (WebCore::jsTestObjEnumAttr):
30065        (WebCore::setJSTestObjEnumAttr):
30066        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
30067        * bindings/scripts/test/JS/JSTestObj.h:
30068        (WebCore):
30069        * bindings/scripts/test/ObjC/DOMTestObj.h:
30070        * bindings/scripts/test/ObjC/DOMTestObj.mm:
30071        (-[DOMTestObj methodWithEnumArg:]):
30072        * bindings/scripts/test/TestObj.idl:
30073        * bindings/scripts/test/V8/V8TestObj.cpp:
30074        (WebCore::TestObjV8Internal::methodWithEnumArgMethod):
30075        (TestObjV8Internal):
30076        (WebCore::TestObjV8Internal::methodWithEnumArgMethodCallback):
30077        (WebCore::ConfigureV8TestObjTemplate):
30078
300792013-03-18  Sam Weinig  <sam@webkit.org>
30080
30081        Need a bundle SPI to generate a snapshot of a specific DOM node (like [DOMNode renderedImage])
30082        <rdar://problem/13148631>
30083        https://bugs.webkit.org/show_bug.cgi?id=110034
30084
30085        Reviewed by Tim Horton.
30086
30087        * WebCore.exp.in:
30088        Add some necessary exports.
30089
300902013-03-18  Brent Fulgham  <bfulgham@webkit.org>
30091
30092        [WinCairo] Build WebCore under VS2010
30093        https://bugs.webkit.org/show_bug.cgi?id=112637
30094
30095        Reviewed by Tim Horton.
30096
30097        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Extend project
30098        with WinCairo-specific build targets.
30099        * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Added.
30100        * WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Added.
30101        * WebCore.vcxproj/WebCore.vcxproj: Update to build WinCairo version
30102        of code.
30103        * WebCore.vcxproj/WebCoreCURL.props: Added.
30104        * WebCore.vcxproj/WebCoreCairo.props: Added.
30105        * WebCore.vcxproj/WebCoreDebugWinCairo.props: Added.
30106        * WebCore.vcxproj/WebCoreGenerated.vcxproj:
30107        * WebCore.vcxproj/WebCoreGeneratedDebugWinCairo.props: Added.
30108        * WebCore.vcxproj/WebCoreGeneratedReleaseWinCairo.props: Added.
30109        * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Added.
30110        * WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: Added.
30111        * WebCore.vcxproj/WebCoreReleaseWinCairo.props: Added.
30112        * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
30113        * WebCorePrefix.h: Update header to not include Apple-specific
30114        headers during WinCairo build.
30115
301162013-03-18  Joshua Bell <jsbell@chromium.org>
30117
30118        IDB Cursor continue moves one item at a time
30119        https://bugs.webkit.org/show_bug.cgi?id=109972
30120
30121        Reviewed by Tony Chang.
30122
30123        IndexedDB: Use seek on the underlying levelDB iterator to implement the continue operation
30124        on a cursor, instead of advancing one item at a time. On a simple test in Chrome - open a
30125        key cursor on an index w/ 100 items, then do continue(50), rinse and repeat - this cuts the
30126        time 50% (850c/s to 1700c/s). (Original patch c/o Pankaj Kakkar <pankaj@google.com>)
30127
30128        Covered by existing storage/indexeddb cursor tests; just a performance optimization.
30129
30130        * Modules/indexeddb/IDBBackingStore.cpp:
30131        (WebCore::IDBBackingStore::Cursor::continueFunction): Special case first iteration w/ key
30132        to use leveldb seek (forward cursors only, since reverse seek isn't exposed).
30133        (WebCore::ObjectStoreKeyCursorImpl::encodeKey): Helper for encoding key to seek to.
30134        (WebCore::ObjectStoreCursorImpl::encodeKey): Ditto.
30135        (WebCore::IndexKeyCursorImpl::encodeKey): Ditto.
30136        (WebCore::IndexCursorImpl::encodeKey): Ditto.
30137        (WebCore::objectStoreCursorOptions): Store IDs for encodeKey() to use.
30138        (WebCore::indexCursorOptions): Ditto.
30139        * Modules/indexeddb/IDBBackingStore.h:
30140        (CursorOptions): Storage for IDs.
30141        (Cursor): Add encodeKey() to interface.
30142
301432013-03-18  Alexey Proskuryakov  <ap@apple.com>
30144
30145        MessagePortChannel::EventData should not be exposed
30146        https://bugs.webkit.org/show_bug.cgi?id=112635
30147
30148        Reviewed by Geoff Garen.
30149
30150        MessagePortChannel::EventData is an implementation detail that's only needed to
30151        store events in MessageQueue. Other existing code already gets away without it,
30152        just passing message and ports separately.
30153
30154        * dom/MessagePort.cpp:
30155        (WebCore::MessagePort::postMessage):
30156        (WebCore::MessagePort::dispatchMessages):
30157        * dom/MessagePortChannel.cpp:
30158        * dom/MessagePortChannel.h:
30159        * dom/default/PlatformMessagePortChannel.cpp:
30160        (WebCore::PlatformMessagePortChannel::EventData::create):
30161        (WebCore::PlatformMessagePortChannel::EventData::EventData):
30162        (WebCore::MessagePortChannel::postMessageToRemote):
30163        (WebCore::MessagePortChannel::tryGetMessageFromRemote):
30164        * dom/default/PlatformMessagePortChannel.h:
30165        (WebCore::PlatformMessagePortChannel::EventData::message):
30166        (WebCore::PlatformMessagePortChannel::EventData::channels):
30167        (PlatformMessagePortChannel):
30168        (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
30169        (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
30170        * dom/default/chromium/PlatformMessagePortChannelChromium.cpp:
30171        (WebCore::MessagePortChannel::postMessageToRemote):
30172        (WebCore::MessagePortChannel::tryGetMessageFromRemote):
30173        (WebCore::PlatformMessagePortChannel::postMessageToRemote):
30174        (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
30175        * dom/default/chromium/PlatformMessagePortChannelChromium.h:
30176
301772013-03-18  Tom Sepez  <tsepez@chromium.org>
30178
30179        [v8] Suppress binding integrity check of HTMLContentElement.
30180        https://bugs.webkit.org/show_bug.cgi?id=112613
30181
30182        Reviewed by Adam Barth.
30183
30184        Patch is correct so long as fast/dom/shadow/content-element-user-agent-shadow.html
30185        continues to pass.
30186
30187        * html/shadow/HTMLContentElement.idl:
30188
301892013-03-18  Dominic Mazzoni  <dmazzoni@google.com>
30190
30191        Support Windows HTMLSelectElement keystrokes on Chromium win
30192        https://bugs.webkit.org/show_bug.cgi?id=112460
30193
30194        Reviewed by Kent Tamura.
30195
30196        Compile in the windows-specific variant of
30197        HTMLSelectElement::platformHandleKeydownEvent
30198        on Chromium win, in addition to PLATFORM(WIN).
30199
30200        * WebCore.gypi:
30201            Add html/HTMLSelectElementWin.cpp.
30202        * html/HTMLSelectElement.cpp:
30203            Don't compile generic platformHandleKeydownEvent on
30204            Chromium win.
30205        * html/HTMLSelectElementWin.cpp:
30206            Only compile platformHandleKeydownEvent on Windows.
30207            Fix compile error in assertion.
30208        (WebCore):
30209
302102013-03-18  Mike West  <mkwst@chromium.org>
30211
30212        CSP 1.1: Schemeless source expressions match HTTPS resources on HTTP sites.
30213        https://bugs.webkit.org/show_bug.cgi?id=112573
30214
30215        Reviewed by Adam Barth.
30216
30217        Currently, the directive 'script-src example.com' would match only
30218        scripts served from 'http://example.com' when served on an HTTP site,
30219        and only scripts served from 'https://example.com' when served on an
30220        HTTPS site. This patch changes the matching behavior for ports that
30221        have enabled CSP_NEXT in order to encourage use of HTTPS resources by
30222        allow schemeless source expressions to match HTTPS origins when on
30223        HTTP sites.
30224
30225        Thread: http://lists.w3.org/Archives/Public/public-webappsec/2013Mar/0013.html
30226        Spec change: https://dvcs.w3.org/hg/content-security-policy/rev/a7dc8820946e
30227
30228        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-10.html
30229
30230        * page/ContentSecurityPolicy.cpp:
30231        (WebCore::CSPSource::CSPSource):
30232            Pass the current policy into CSPSource so that we can check the
30233            protected resource's scheme inside schemeMatches, rather than
30234            overwriting the source expression's scheme before creating the
30235            CSPSource.
30236        (WebCore::CSPSource::schemeMatches):
30237            If CSP_NEXT is enabled, ensure that HTTPS resources match the
30238            HTTP scheme when loaded on HTTP pages with schemaless source
30239            expressions.
30240        (WebCore::CSPSource::portMatches):
30241            Check the port against the URL's scheme: if m_scheme isn't
30242            empty, this will match it. If m_scheme is empty, we can't
30243            do a strict match against it, nor can we do a strict match
30244            against the protected resource's port. Checking the URL's
30245            port against the default port for its scheme solves this
30246            problem elegantly.
30247        (WebCore::CSPSourceList::parse):
30248        (WebCore::CSPSourceList::addSourceSelf):
30249            Pass in the policy when creating a CSPSource object.
30250
302512013-03-15  Jer Noble  <jer.noble@apple.com>
30252
30253        Text track cues do not update sizes when entering or exiting full screen.
30254        https://bugs.webkit.org/show_bug.cgi?id=112472
30255
30256        Reviewed by Eric Carlson.
30257
30258        The style properties of the TextCueBoxes were not being updated after the size of the video bounds changed.
30259        Because getDisplayTree() will not do it when the cue itself has not changed, explicitly call videoSizeDidChange()
30260        from updateSizes().
30261
30262        * html/shadow/MediaControlElements.cpp:
30263        (WebCore::MediaControlTextTrackContainerElement::updateSizes): call videoSizeDidChange() on every active cue.
30264        * html/track/TextTrackCue.h:
30265        (WebCore::TextTrackCue::hasDisplayTree): returns whether or not the cue has created a display tree without side effects.
30266        (WebCore::TextTrackCue::videoSizeDidChange): Overridable empty method.
30267        * html/track/TextTrackCueGeneric.cpp:
30268        (WebCore::TextTrackCueGeneric::videoSizeDidChange): Update the CSS height attribute of the cue box using the new video size.
30269        * html/track/TextTrackCueGeneric.h:
30270
302712013-03-18  Mike West  <mkwst@chromium.org>
30272
30273        CSP 1.1: Add 'effective-directive' to violation reports.
30274        https://bugs.webkit.org/show_bug.cgi?id=112568
30275
30276        Reviewed by Adam Barth.
30277
30278        https://dvcs.w3.org/hg/content-security-policy/rev/bc2bb0e5072a
30279        introduced an 'effective-directive' field on CSP violation reports,
30280        which allows developers to distinguish between resource types when
30281        'default-src' is the violated directive.
30282
30283        This patch implements the new field behind the CSP_NEXT flag.
30284
30285        Test: http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.html
30286
30287        * page/ContentSecurityPolicy.cpp:
30288        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
30289        (WebCore::CSPDirectiveList::reportViolation):
30290            These methods now accept an additional parameter to pipe the
30291            effective directive from the initial callsite down into
30292            ContentSecurityPolicy::reportViolation.
30293        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
30294        (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
30295        (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
30296        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
30297        (WebCore::CSPDirectiveList::allowScriptFromSource):
30298        (WebCore::CSPDirectiveList::allowObjectFromSource):
30299        (WebCore::CSPDirectiveList::allowChildFrameFromSource):
30300        (WebCore::CSPDirectiveList::allowImageFromSource):
30301        (WebCore::CSPDirectiveList::allowStyleFromSource):
30302        (WebCore::CSPDirectiveList::allowFontFromSource):
30303        (WebCore::CSPDirectiveList::allowMediaFromSource):
30304        (WebCore::CSPDirectiveList::allowConnectToSource):
30305        (WebCore::CSPDirectiveList::allowFormAction):
30306            These methods now pass the effective directive name down
30307            into checkSourceAndReportViolation or reportViolation.
30308        (WebCore::ContentSecurityPolicy::reportViolation):
30309        * page/ContentSecurityPolicy.h:
30310            This method now accepts a new parameter that carries
30311            the effective directive name. If CSP_NEXT is enabled,
30312            the field is added to the violation report before it's
30313            sent out into the world.
30314
303152013-03-18  W. James MacLean  <wjmaclean@chromium.org>
30316
30317        [chromium] Remove NCCH code that relies on boundsContainsPageScale().
30318        https://bugs.webkit.org/show_bug.cgi?id=112465
30319
30320        Reviewed by James Robinson.
30321
30322        The boundsContainsPageScale() API is going away, remove code that
30323        depends on it. Uses existing tests as no behaviour change.
30324
30325        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
30326        (WebCore::GraphicsLayerChromium::setAppliesPageScale):
30327        (WebCore::GraphicsLayerChromium::appliesPageScale):
30328
303292013-03-18  Alec Flett  <alecflett@chromium.org>
30330
30331        IndexedDB: Protect against key prefix overflows
30332        https://bugs.webkit.org/show_bug.cgi?id=111138
30333
30334        Reviewed by Tony Chang.
30335
30336        This reworks the boundary checking for all databaseId,
30337        objectStoreId, and indexId, including negative and
30338        zero-based ids. All entrypoints into IDBLevelDBCoding
30339        are protected with explicit checks and all internal
30340        uses of KeyPrefix are protected with ASSERTs in the
30341        various constructors.
30342
30343        Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
30344
30345        * Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
30346        * Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
30347
303482013-03-18  Roger Fong  <roger_fong@apple.com>
30349
30350        AppleWin VS2010 Debug configuration build fix.
30351
30352        * WebCore.vcxproj/WebCore.vcxproj:
30353
303542013-03-18  Alexey Proskuryakov  <ap@apple.com>
30355
30356        https://bugs.webkit.org/show_bug.cgi?id=112627
30357        MessagePort::disentangle() takes an ExceptionCode argument without any need
30358
30359        Reviewed by Geoffrey Garen.
30360
30361        MessagePort::disentangle() is called in two places. One has ASSERT_NO_EXCEPTION,
30362        and another fails to check the exception, but clearly cannot get one.
30363
30364        This function is also not exposed to bindings.
30365
30366        * dom/MessagePort.cpp:
30367        (WebCore::MessagePort::disentangle):
30368        (WebCore::MessagePort::disentanglePorts):
30369        * dom/MessagePort.h:
30370        * workers/SharedWorker.cpp:
30371        (WebCore::SharedWorker::create):
30372        Also removed some unhelpful comments.
30373
303742013-03-18  Xianzhu Wang  <wangxianzhu@chromium.org>
30375
30376        Variant of non-primary fell-back SVGFont causes crash.
30377        https://bugs.webkit.org/show_bug.cgi?id=112367
30378
30379        Reviewed by Stephen Chenney.
30380
30381        Don't go to PlatformFontData path for SimpleFontData::createScaledFontData()
30382        for SVG fonts.
30383
30384        Test: svg/css/font-face-variant-crash.html
30385
30386        * platform/graphics/SimpleFontData.cpp:
30387        (WebCore::SimpleFontData::~SimpleFontData):
30388        (WebCore::SimpleFontData::createScaledFontData): Don't go to PlatformFontData path for SVG fonts.
30389        (WebCore):
30390        * platform/graphics/SimpleFontData.h:
30391        (SimpleFontData): Added createScaledFontData and renamed the original createScaledFontData to platformCreateScaledFontData.
30392                          BTW, Removed unreferenced commonInit.
30393        * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
30394        (WebCore::SimpleFontData::platformCreateScaledFontData): Renamed from createScaledFontData.
30395        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
30396        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30397        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
30398        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30399        * platform/graphics/mac/SimpleFontDataMac.mm:
30400        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30401        * platform/graphics/qt/SimpleFontDataQt.cpp:
30402        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30403        * platform/graphics/skia/SimpleFontDataSkia.cpp:
30404        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30405        * platform/graphics/win/SimpleFontDataWin.cpp:
30406        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30407        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
30408        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30409        * platform/graphics/wx/SimpleFontDataWx.cpp:
30410        (WebCore::SimpleFontData::platformCreateScaledFontData): Ditto.
30411
304122013-03-18  Victor Carbune  <vcarbune@chromium.org>
30413
30414        Determine text direction for rendering a TextTrackCue
30415        https://bugs.webkit.org/show_bug.cgi?id=79749
30416
30417        Reviewed by Levi Weintraub.
30418
30419        The rendering rules for WebVTT cues are slightly different
30420        depending on the directionality determined from the characters
30421        of the cue text. This patch implements the preliminary step
30422        to be able to take directionality into account.
30423
30424        It iterates through the cue characters and setting the CSS
30425        directionality to the one of the first strong directional character.
30426
30427        Test: media/track/track-cue-rendering-rtl.html
30428
30429        * html/track/TextTrackCue.cpp:
30430        (WebCore::TextTrackCueBox::applyCSSProperties): Applies the determined
30431        direction.
30432        (WebCore::TextTrackCue::TextTrackCue): Sets the default value for the
30433        display direction.
30434        (WebCore::isCueParagraphSeparator): Tests for explicit unicode characters
30435        that are paragraph separators.
30436        (WebCore):
30437        (WebCore::TextTrackCue::determineTextDirection): Determined the direction
30438        by the first strong directional character found.
30439        (WebCore::TextTrackCue::calculateDisplayParameters): Updated.
30440        (WebCore::TextTrackCue::getCSSWritingDirection): Return the determined CSS
30441        writing direction.
30442        * html/track/TextTrackCue.h:
30443        (TextTrackCue):
30444
304452013-03-18  Hans Wennborg  <hans@chromium.org>
30446
30447        Fix GridTrackSize::operator==
30448        https://bugs.webkit.org/show_bug.cgi?id=112501
30449
30450        Reviewed by Eric Seidel.
30451
30452        There was a missing "other." in the function.
30453
30454        This was found by experimenting with a potential new Clang warning.
30455
30456        Test: fast/css-grid-layout/grid-dynamic-updates-relayout.html
30457
30458        * rendering/style/GridTrackSize.h:
30459        (WebCore::GridTrackSize::operator==):
30460
304612013-03-18  Alec Flett  <alecflett@chromium.org>
30462
30463        Inspector: [Chromium] http/tests/inspector/indexeddb/database-data.html ASSERT on Win7 following r133855
30464        https://bugs.webkit.org/show_bug.cgi?id=101618
30465
30466        Deactivate transactions created by the inspector, before
30467        they are reactivated by IndexedDB. This puts transactions
30468        in an identical state as when they are created by scripts.
30469
30470        Reviewed by Vsevolod Vlasov.
30471
30472        Test: http/tests/inspector/indexeddb/database-data.html
30473
30474        * inspector/InspectorIndexedDBAgent.cpp: Make transactions inactive upon leaving the inspector code.
30475
304762013-03-15  Jeffrey Pfau  <jpfau@apple.com>
30477
30478        Allow blocking of application cache in third-party contexts
30479        https://bugs.webkit.org/show_bug.cgi?id=112288
30480
30481        Reviewed by Adam Barth.
30482
30483        Return early if we can't access the application cache due to security
30484        restrictions.
30485
30486        Tests: http/tests/security/cross-origin-appcache-allowed.html
30487               http/tests/security/cross-origin-appcache.html
30488               http/tests/security/same-origin-appcache-blocked.html
30489
30490        * loader/appcache/ApplicationCacheGroup.cpp:
30491        (WebCore::ApplicationCacheGroup::selectCache):
30492        (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
30493        * page/SecurityOrigin.h:
30494        (WebCore::SecurityOrigin::canAccessApplicationCache):
30495
304962013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
30497
30498        Web Inspector: Script should know nothing about disabled source mappings.
30499        https://bugs.webkit.org/show_bug.cgi?id=112580
30500
30501        Reviewed by Pavel Feldman.
30502
30503        ResourceScriptMapping handles diverged uiSourceCodes internally now.
30504
30505        Tested in inspector/debugger/live-edit-breakpoints.html already.
30506
30507        * inspector/front-end/ResourceScriptMapping.js:
30508        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
30509        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
30510        (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
30511        * inspector/front-end/Script.js:
30512        (WebInspector.Script.prototype.rawLocationToUILocation):
30513
305142013-03-18  Alexey Proskuryakov  <ap@apple.com>
30515
30516        Update MessagePort terminology to match HTML5
30517        https://bugs.webkit.org/show_bug.cgi?id=112611
30518
30519        Reviewed by Anders Carlsson.
30520
30521        Transferable objects are "neutered" when transfered. Cloning is a different operation.
30522
30523        * dom/MessagePort.cpp:
30524        (WebCore::MessagePort::disentanglePorts):
30525        * dom/MessagePort.h:
30526        (WebCore::MessagePort::isEntangled):
30527        (WebCore::MessagePort::isNeutered):
30528
305292013-03-18  Roger Fong  <roger_fong@apple.com>
30530
30531        AppleWin VS2010 build fix.
30532
30533        * WebCore.vcxproj/WebCore.vcxproj:
30534        * WebCore.vcxproj/WebCore.vcxproj.filters:
30535
305362013-03-18  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
30537
30538        [css3-text] Add rendering support for -webkit-text-underline-position
30539        https://bugs.webkit.org/show_bug.cgi?id=102795
30540
30541        Reviewed by Levi Weintraub.
30542
30543        This patch implements rendering support for values [ auto | alphabetic | under ]
30544        of CSS3 property text-underline-position. We don't fully match the specification
30545        as we don't support [ left | right ] and this is left for another implementation
30546        as the rendering will need to be added.
30547
30548        Tests: fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-all.html
30549               fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-alphabetic.html
30550               fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html
30551               fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-out-of-flow.html
30552               fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html
30553
30554        * rendering/InlineFlowBox.cpp:
30555        (WebCore::InlineFlowBox::computeMaxLogicalTop): Added method to compute maximal logical top among all chidren of
30556        this InlineTextBox.
30557        * rendering/InlineFlowBox.h:
30558        (InlineFlowBox):
30559        * rendering/InlineTextBox.cpp:
30560        (WebCore::computeUnderlineOffset): Added method to compute offset for text-underline-position property.
30561        (WebCore::InlineTextBox::paintDecoration): Paint decoration at position calculated using computeUnderlineOffset().
30562        * rendering/RootInlineBox.cpp:
30563        (WebCore::RootInlineBox::RootInlineBox):
30564        (WebCore::RootInlineBox::alignBoxesInBlockDirection): Call method to compute maximal logical top among all
30565        children of this RootInlineBox.
30566        * rendering/RootInlineBox.h:
30567        (RootInlineBox):
30568        (WebCore::RootInlineBox::maxLogicalTop): Added getter for m_maxLogicalTop class member.
30569        * rendering/style/RenderStyle.h: Added the usual getter / setter / initial methods for text-underline-position
30570        property
30571
305722013-03-18  Christian Biesinger  <cbiesinger@chromium.org>
30573
30574        Convert old flexbox uses in html.css to new flexbox (non-<select>)
30575        https://bugs.webkit.org/show_bug.cgi?id=110837
30576
30577        Reviewed by Ojan Vafai.
30578
30579        No new tests (No change in behaviour)
30580
30581        * css/html.css:
30582        (input::-webkit-clear-button):
30583        Missed this one in the original patch.
30584
305852013-03-18  Wei James  <james.wei@intel.com>
30586
30587        AudioBasicProcessorNode need to check for deferred updating of output channels
30588        https://bugs.webkit.org/show_bug.cgi?id=112544
30589
30590        There can in rare cases be a slight delay before the output
30591        bus is updated to the new number of channels because of tryLocks() in the
30592        context's updating system but the processor already updated to the new
30593        number of channels, so need to check the channel number before processing.
30594
30595        Reviewed by Chris Rogers.
30596
30597        * Modules/webaudio/AudioBasicProcessorNode.cpp:
30598        (WebCore::AudioBasicProcessorNode::process):
30599        * Modules/webaudio/WaveShaperProcessor.cpp:
30600        (WebCore::WaveShaperProcessor::process):
30601        * platform/audio/AudioDSPKernelProcessor.cpp:
30602        (WebCore::AudioDSPKernelProcessor::AudioDSPKernelProcessor):
30603        * platform/audio/AudioDSPKernelProcessor.h:
30604        (WebCore::AudioDSPKernelProcessor::numberOfChannels):
30605        (AudioDSPKernelProcessor):
30606        * platform/audio/AudioProcessor.h:
30607        (WebCore::AudioProcessor::AudioProcessor):
30608        (AudioProcessor):
30609
306102013-03-18  Julien Chaffraix  <jchaffraix@webkit.org>
30611
30612        [CSS Grid Layout] Fix StyleGridData::operator==
30613        https://bugs.webkit.org/show_bug.cgi?id=112574
30614
30615        Reviewed by Ojan Vafai.
30616
30617        Test: fast/css-grid-layout/grid-auto-flow-update.html
30618
30619        * rendering/style/StyleGridData.h:
30620        (WebCore::StyleGridData::operator==):
30621        Fixed a bad comparison that would make us ignore grid-auto-flow changes.
30622
306232013-03-18  Rafael Weinstein  <rafaelw@chromium.org>
30624
30625        [HTMLTemplateElement] parseError check in processTemplateEndTag should use hasTagName, not hasLocalName
30626        https://bugs.webkit.org/show_bug.cgi?id=112591
30627
30628        Reviewed by Adam Barth.
30629
30630        No tests needed, change is unobservable.
30631
30632        * html/parser/HTMLTreeBuilder.cpp:
30633        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
30634
306352013-03-18  Brady Eidson  <beidson@apple.com>
30636
30637        NetworkProcess should send vm_copied, mmap'ed memory to WebProcesses when a 
30638        resource is already in the disk cache.
30639        <rdar://problem/13414153> and https://bugs.webkit.org/show_bug.cgi?id=112387
30640
30641        Reviewed by Geoff Garen.
30642
30643        No new tests (No change in behavior).
30644
30645        * WebCore.exp.in:
30646
30647        Add a CFURLRequestRef accessor even in the mac NSURL-based loader:
30648        * platform/network/cf/ResourceRequest.h:
30649        * platform/network/mac/ResourceRequestMac.mm:
30650        (WebCore::ResourceRequest::cfURLRequest):
30651
306522013-03-18  Dean Jackson  <dino@apple.com>
30653
30654        Only add wordspacing when kerning to actual word ends
30655        https://bugs.webkit.org/show_bug.cgi?id=112507
30656        <rdar://problem/12945869>
30657
30658        Reviewed by Enrica Casucci.
30659
30660        When measuring text, we currently include any word spacing in
30661        the result (it's removed later). When kerning is active, we
30662        were adding the word spacing to every wordMeasurement instance
30663        whether or not it is a separate word. For example, a nested
30664        <span> element would get a wordMeasurement, even though it
30665        should not always get word spacing.
30666
30667        Test: fast/text/word-space-with-kerning-3.html
30668
30669        * rendering/RenderBlockLineLayout.cpp:
30670        (WebCore::setLogicalWidthForTextRun): Test if the current character
30671        referenced by the wordMeasurement is a space character, and add word
30672        spacing only then.
30673
306742013-03-18  Tony Chang  <tony@chromium.org>
30675
30676        [chromium] Default background color of listboxes should be white
30677        https://bugs.webkit.org/show_bug.cgi?id=112480
30678
30679        Reviewed by Ojan Vafai.
30680
30681        I think it was an accident that list boxes got the grey background color as a
30682        side effect of trying to get the button styling. In the default GTK+ theme on
30683        Ubuntu, list boxes get a white background. Win and OS X also use white as the
30684        default color.
30685
30686        No new tests, covered by existing pixel tests.
30687
30688        * css/themeChromiumLinux.css:
30689        Narrow the CSS rule that overrides the background color specified in html.css.
30690        We only want to use the button color when a select is using button styling.
30691
306922013-03-18  Sheriff Bot  <webkit.review.bot@gmail.com>
30693
30694        Unreviewed, rolling out r146079.
30695        http://trac.webkit.org/changeset/146079
30696        https://bugs.webkit.org/show_bug.cgi?id=112594
30697
30698        many timeline tests failed. (Requested by loislo on #webkit).
30699
30700        * inspector/front-end/TimelineOverviewPane.js:
30701        (WebInspector.TimelineOverviewPane):
30702        (WebInspector.TimelineOverviewPane.prototype.setMode):
30703        (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
30704        (WebInspector.TimelineOverviewPane.prototype._update):
30705        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
30706        (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
30707        (WebInspector.TimelineOverviewPane.prototype._reset):
30708        (WebInspector.TimelineOverviewPane.prototype.windowLeft):
30709        (WebInspector.TimelineOverviewPane.prototype.windowRight):
30710        (WebInspector.TimelineOverviewPane.prototype._updateWindow):
30711
307122013-03-18  Peter Beverloo  <peter@chromium.org>
30713
30714        [Chromium] The <select> element on Android should also switch to new-flexbox
30715        https://bugs.webkit.org/show_bug.cgi?id=112559
30716
30717        Reviewed by Ojan Vafai.
30718
30719        Following r145959, also update themeChromiumAndroid.css to use the new
30720        flexible box CSS properties. Covered by existing tests.
30721
30722        * css/themeChromiumAndroid.css:
30723        (select[size][multiple]):
30724
307252013-03-18  Renata Hodovan  <reni@webkit.org>
30726
30727        Assertion faulire in SVGAnimatedPath.
30728        https://bugs.webkit.org/show_bug.cgi?id=106428
30729
30730        Reviewed by Allan Sandfeld Jensen.
30731
30732        The asserts are too restricted. The size must be greater or equal to 1.
30733
30734        Test: svg/animations/animated-path-via-use-debug-crash.svg
30735
30736        * svg/SVGAnimatedPath.cpp:
30737        (WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
30738        (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
30739
307402013-03-18  Simon Fraser  <simon.fraser@apple.com>
30741
30742        [Mac] Some tests intermittently asserts in SharedBuffer::releasePurgeableBuffer()
30743        https://bugs.webkit.org/show_bug.cgi?id=105986
30744
30745        Reviewed by Brady Eidson.
30746        
30747        A ResourceBuffer's SharedBuffer can be vended out to other clients,
30748        for example Images, so there's no guarantee that when the
30749        ResourceBuffer only has one ref its SharedBuffer will also have just one.
30750        When this assumption was broken, SharedBuffer::releasePurgeableBuffer()
30751        would assert.
30752        
30753        Ideally SharedBuffer would be entirely encapsulated by ResourceBuffer to
30754        avoid this problem, but ResourceBuffer can't be used by code in platform/.
30755        
30756        Fix by having ResourceBuffer::createPurgeableBuffer() refuse to make
30757        a purgeable buffer if the sharedBuffer has more than one ref.
30758
30759        Tested by existing tests.
30760
30761        * loader/ResourceBuffer.cpp:
30762        (WebCore::ResourceBuffer::createPurgeableBuffer):
30763
307642013-03-18  Ilya Tikhonovsky  <loislo@chromium.org>
30765
30766        Web Inspector: move _timelineGrid && _timelineOverviewWindow from TimelineOverviewPane into a new class OverviewGrid.
30767        https://bugs.webkit.org/show_bug.cgi?id=112584
30768
30769        Reviewed by Pavel Feldman.
30770
30771        It is the first path in the set.
30772        The end goal is to extract OverviewGrid with window selectors
30773        into a separate class in separate file and reuse it in CPU FlameChart.
30774
30775        * inspector/front-end/TimelineOverviewPane.js:
30776        (WebInspector.TimelineOverviewPane):
30777        (WebInspector.OverviewGrid):
30778        (WebInspector.OverviewGrid.prototype.get grid):
30779        (WebInspector.OverviewGrid.prototype.get clientWidth):
30780        (WebInspector.OverviewGrid.prototype.showItemsGraphsElement):
30781        (WebInspector.OverviewGrid.prototype.hideItemsGraphsElement):
30782        (WebInspector.OverviewGrid.prototype.updateDividers):
30783        (WebInspector.OverviewGrid.prototype.addEventDividers):
30784        (WebInspector.OverviewGrid.prototype.removeEventDividers):
30785        (WebInspector.OverviewGrid.prototype.setWindowPosition):
30786        (WebInspector.OverviewGrid.prototype.reset):
30787        (WebInspector.OverviewGrid.prototype.get windowLeft):
30788        (WebInspector.OverviewGrid.prototype.get windowRight):
30789        (WebInspector.OverviewGrid.prototype.setWindow):
30790        (WebInspector.OverviewGrid.prototype.addEventListener):
30791        (WebInspector.TimelineOverviewPane.prototype.setMode):
30792        (WebInspector.TimelineOverviewPane.prototype._setFrameMode):
30793        (WebInspector.TimelineOverviewPane.prototype._update):
30794        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
30795        (WebInspector.TimelineOverviewPane.prototype.zoomToFrame):
30796        (WebInspector.TimelineOverviewPane.prototype._reset):
30797        (WebInspector.TimelineOverviewPane.prototype.windowLeft):
30798        (WebInspector.TimelineOverviewPane.prototype.windowRight):
30799        (WebInspector.TimelineOverviewPane.prototype._updateWindow):
30800
308012013-03-18  Adam Barth  <abarth@webkit.org>
30802
30803        [V8] Crash when accessing onclick attribute of document from XMLHttpRequest
30804        https://bugs.webkit.org/show_bug.cgi?id=112585
30805
30806        Reviewed by Eric Seidel.
30807
30808        This ASSERT was bogus. The frame can be 0 for frameless documents, like
30809        those created by XMLHttpRequest. When there is no frame, we act as if
30810        JavaScript was disabled, which it is.
30811
30812        Test: fast/events/xhr-onclick-crash.html
30813
30814        * bindings/v8/V8LazyEventListener.cpp:
30815        (WebCore::V8LazyEventListener::prepareListenerObject):
30816
308172013-03-18  Hans Muller  <hmuller@adobe.com>
30818
30819        [CSS Exclusions] Specifying polygonal -webkit-shape-inside value can crash browser (debug mode)
30820        https://bugs.webkit.org/show_bug.cgi?id=112157
30821
30822        Reviewed by David Hyatt.
30823
30824        Corrected the code which maps exclusion segments to pairs of InlineIterators. We now handle the
30825        cases where the end of the line occurs within an exclusion segment or when it occurs before
30826        the last exclusion segment has been reached. This can occur when a non-convex polygonal shape-inside
30827        breaks a line up into two segments, but the shape-inside element's content only fills (or partially
30828        fills) the first exclusion shape segment.
30829
30830        Tests: fast/exclusions/shape-inside/shape-inside-partial-fill-001.html
30831               fast/exclusions/shape-inside/shape-inside-partial-fill-002.html
30832
30833        * rendering/RenderBlockLineLayout.cpp:
30834        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
30835
308362013-03-18  Emil A Eklund  <eae@chromium.org>
30837
30838        Change RenderTableCell to use pixelSnappedSize when painting
30839        https://bugs.webkit.org/show_bug.cgi?id=112562
30840
30841        Reviewed by Eric Seidel.
30842
30843        Change the paining code in RenderTableCell to use the pixel snapped size
30844        to ensure consistent rounding given that the location was rounded during
30845        layout.
30846
30847        It is currently constructing a paint rect by taking the rounded location
30848        and the precise size and then pixel snapping it. This causes the size to
30849        be rounded incorrectly. By instead using the pixel snapped size the
30850        rounding problem can be avoided.
30851
30852        Test: fast/sub-pixel/table-cell-background.html
30853
30854        * rendering/RenderTableCell.cpp:
30855        (WebCore::RenderTableCell::paintCollapsedBorders):
30856        (WebCore::RenderTableCell::paintBackgroundsBehindCell):
30857        (WebCore::RenderTableCell::paintBoxDecorations):
30858        (WebCore::RenderTableCell::paintMask):
30859
308602013-03-18  Tao Bai  <michaelbai@chromium.org>
30861
30862        Need to use const String in HTMLVideoElement::posterImageURL
30863        https://bugs.webkit.org/show_bug.cgi?id=112317
30864
30865        Reviewed by Andreas Kling.
30866
30867        No behavioral changes.
30868
30869        This is the followup of https://bugs.webkit.org/show_bug.cgi?id=110263
30870        Need to use String instead of const AtomicString& which means we will do an extra hash lookup
30871
30872        * html/HTMLVideoElement.cpp:
30873        (WebCore::HTMLVideoElement::posterImageURL): Change to use String for url
30874
308752013-03-18  Eugene Klyuchnikov  <eustas@chromium.org>
30876
30877        Web Inspector: [Settings] Register "?" shortcut.
30878        https://bugs.webkit.org/show_bug.cgi?id=112545
30879
30880        Reviewed by Vsevolod Vlasov.
30881
30882        F1 and "?" (show shortcuts page) are not mentioned on shortcuts page.
30883
30884        * English.lproj/localizedStrings.js: Added string.
30885        * inspector/front-end/inspector.js: Registered F1 / "?" shortcut.
30886
308872013-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>
30888
30889        Add USE(PLATFORM_STRATEGIES) ifdefs to StorageNamespace.cpp
30890        https://bugs.webkit.org/show_bug.cgi?id=112004
30891
30892        Reviewed by Rob Buis.
30893
30894        Check if platform strategies is enabled before using it, falling
30895        back to StorageNamespaceImpl if it isn't.
30896
30897        * storage/StorageNamespace.cpp:
30898        (WebCore::StorageNamespace::localStorageNamespace):
30899        (WebCore::StorageNamespace::sessionStorageNamespace):
30900
309012013-03-18  Vsevolod Vlasov  <vsevik@chromium.org>
30902
30903        Web Inspector: TabbedEditorContainer does not restore last shown file on reload sometimes.
30904        https://bugs.webkit.org/show_bug.cgi?id=112561
30905
30906        Reviewed by Alexander Pavlov.
30907
30908        * inspector/front-end/TabbedEditorContainer.js:
30909        (WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
30910
309112013-03-18  Arvid Nilsson  <anilsson@rim.com>
30912
30913        [BlackBerry] Detach overlays from page when compositor is detached
30914        https://bugs.webkit.org/show_bug.cgi?id=112424
30915
30916        Reviewed by Rob Buis.
30917
30918        PR 309160
30919
30920        Expose a method to retrieve a compositing thread layer's client.
30921
30922        No change in behavior, no new tests.
30923
30924        * platform/graphics/blackberry/LayerCompositingThread.h:
30925        (WebCore::LayerCompositingThread::client):
30926
309272013-03-18  Eugene Klyuchnikov  <eustas@chromium.org>
30928
30929        Web Inspector: [Resources] Local Storage: duplicate keys are processed inappropriately.
30930        https://bugs.webkit.org/show_bug.cgi?id=112402
30931
30932        Reviewed by Alexander Pavlov.
30933
30934        When user creates new items or renames existing one some existing item
30935        may be overriden. If value is changed, then frontend will receive
30936        notification and update record appropriately.
30937
30938        If item value hasn't been changed, then no notification comes.
30939        But UI still expect / rely on this notification.
30940
30941        With this patch the "no notification" scenario is fixed:
30942        duplicate items are removed.
30943
30944        Another scenario is when update notification comes when we started
30945        editing value (after entering / renaming key). In this case
30946        selected node should not be changed to leave user in editing mode.
30947
30948        * inspector/front-end/DOMStorageItemsView.js:
30949        Added workarounds for "no notification" and "useless notification".
30950
309512013-03-18  Allan Sandfeld Jensen  <allan.jensen@digia.com>
30952
30953        Clean up RenderFrameSet::nodeAtPoint
30954        https://bugs.webkit.org/show_bug.cgi?id=112450
30955
30956        Reviewed by Eric Seidel.
30957
30958        Remove handling of resizing framesets from RenderFrameSet::nodeAtPoint.
30959        The code has been incorrect since a mistake in r18333 (December 2006),
30960        but has been dead code since r17770 (November 2006) where the then new
30961        EventHandler started taking care of routing events to resizing FrameSets.
30962
30963        Since this was the only special feature of RenderFrameSet::nodeAtPoint,
30964        the method has been removed.
30965
30966        * rendering/RenderFrameSet.cpp:
30967        * rendering/RenderFrameSet.h:
30968        (RenderFrameSet):
30969
309702013-03-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
30971
30972        The 'formnovalidate' attribute doesn't work correctly on button elements with child elements
30973        https://bugs.webkit.org/show_bug.cgi?id=112541
30974
30975        Reviewed by Kent Tamura.
30976
30977        Fix a bug where formnovalidate attribute of <button> is not honored
30978        if the target of the click event is an element nested within the button.
30979
30980        Test: fast/forms/interactive-validation-formnovalidate-child.html
30981
30982        * html/HTMLFormElement.cpp:
30983        (WebCore::submitElementFromEvent): Looks for the nearest FormControlElement ancestor of the event target.
30984
309852013-03-18  Keishi Hattori  <keishi@webkit.org>
30986
30987        Add touch support to the calendar picker
30988        https://bugs.webkit.org/show_bug.cgi?id=112256
30989
30990        Reviewed by Kent Tamura.
30991
30992        This patch increases the hit target sizes for touch and adds touch event
30993        support to the scroll view, scroll bar and navigation button.
30994
30995        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-touch-operations.html
30996               platform/chromium/fast/forms/calendar-picker/month-picker-touch-operations.html
30997               platform/chromium/fast/forms/calendar-picker/week-picker-touch-operations.html
30998
30999        * Resources/pagepopups/calendarPicker.js:
31000        (hasInaccuratePointingDevice):
31001        (Animator): Super class for TransitionAnimator and FlingGestureAnimator.
31002        (Animator.prototype.start):
31003        (Animator.prototype.stop):
31004        (Animator.prototype.onAnimationFrame):
31005        (TransitionAnimator): Same as the old Animator. Transition from one value to another.
31006        (TransitionAnimator.prototype.setFrom):
31007        (TransitionAnimator.prototype.start):
31008        (TransitionAnimator.prototype.stop):
31009        (TransitionAnimator.prototype.setTo):
31010        (TransitionAnimator.prototype.onAnimationFrame):
31011        (FlingGestureAnimator):Animates the fling scroll. 
31012        (FlingGestureAnimator.prototype._valueAtTime): Returns the value at the given time.
31013        (FlingGestureAnimator.prototype._velocityAtTime): Returns the value change velocity at the given time.
31014        (FlingGestureAnimator.prototype._timeAtVelocity): Returns the time when the value is changing at the given velocity.
31015        (FlingGestureAnimator.prototype.start):
31016        (FlingGestureAnimator.prototype.onAnimationFrame):
31017        (ScrollView): Added support for touch gesture scrolling.
31018        (ScrollView.prototype.onTouchStart):
31019        (ScrollView.prototype.onWindowTouchMove):
31020        (ScrollView.prototype.onWindowTouchEnd):
31021        (ScrollView.prototype.onFlingGestureAnimatorStep):
31022        (ScrollView.prototype.scrollTo):
31023        (ScrubbyScrollBar): Added support for touch.
31024        (ScrubbyScrollBar.prototype.onTouchStart):
31025        (ScrubbyScrollBar.prototype.onWindowTouchMove):
31026        (ScrubbyScrollBar.prototype.onWindowTouchEnd):
31027        (ScrubbyScrollBar.prototype._setThumbPositionFromEventPosition): Accept MouseEvent or Touch.
31028        (ScrubbyScrollBar.prototype.onMouseDown):
31029        (ScrubbyScrollBar.prototype.onWindowMouseMove):
31030        (ScrubbyScrollBar.prototype.onWindowMouseUp):
31031        (YearListCell):
31032        (YearListView):
31033        (YearListView.prototype.onTouchStart):
31034        (YearListView.prototype._animateRow):
31035        (CalendarNavigationButton): Add touch support for long press.
31036        (CalendarNavigationButton.prototype.onTouchStart):
31037        (CalendarNavigationButton.prototype.onWindowTouchEnd):
31038        (CalendarNavigationButton.prototype.onMouseDown):
31039        (CalendarNavigationButton.prototype.onWindowMouseUp):
31040        (CalendarTableView): Disable touch gesture scrolling in the calendar table.
31041
310422013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
31043
31044        [EFL] Cancel mark on search field is not displayed
31045        https://bugs.webkit.org/show_bug.cgi?id=94880
31046
31047        Reviewed by Kenneth Rohde Christiansen.
31048
31049        adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
31050        So, the button isn't showing up in search input field. Besides the button size should be scaled based
31051        on the font size as chromium, qt, and blackberry ports.
31052
31053        Tests: fast/forms/search-cancel-button-style-sharing.html
31054               fast/forms/search-rtl.html
31055
31056        * platform/efl/RenderThemeEfl.cpp:
31057        (WebCore):
31058        (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
31059
310602013-03-15  Yury Semikhatsky  <yurys@chromium.org>
31061
31062        Web Inspector: Native Memory Timeline affects the performace even if was switched off.
31063        https://bugs.webkit.org/show_bug.cgi?id=112428
31064
31065        Reviewed by Pavel Feldman.
31066
31067        Whether to include DOM counters and native memory statistics is now
31068        configured using Timeline.start parameters instead of sending separate
31069        commands Timeline.setIncludeDomCounters and Timeline.setIncludeNativeMemoryStatistics.
31070
31071        * inspector/Inspector.json:
31072        * inspector/InspectorTimelineAgent.cpp:
31073        (WebCore::InspectorTimelineAgent::restore):
31074        (WebCore::InspectorTimelineAgent::start):
31075        * inspector/InspectorTimelineAgent.h:
31076        (InspectorTimelineAgent):
31077        * inspector/front-end/DOMCountersGraph.js:
31078        (WebInspector.DOMCountersGraph):
31079        * inspector/front-end/NativeMemoryGraph.js:
31080        (WebInspector.NativeMemoryGraph):
31081        * inspector/front-end/TimelineManager.js:
31082        (WebInspector.TimelineManager.prototype.start):
31083        * inspector/front-end/TimelineModel.js:
31084        (WebInspector.TimelineModel.prototype.startRecord):
31085        * inspector/front-end/TimelinePanel.js:
31086        (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
31087
310882013-03-18  Yury Semikhatsky  <yurys@chromium.org>
31089
31090        Web Inspector: Exception in timeline DOMCounters
31091        https://bugs.webkit.org/show_bug.cgi?id=112427
31092
31093        Reviewed by Pavel Feldman.
31094
31095        Do not update marker on DOM counters graph if the graphs haven't been
31096        drawn yet.
31097
31098        * inspector/front-end/MemoryStatistics.js:
31099        (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
31100
311012013-03-18  Li Yin  <li.yin@intel.com>
31102
31103        Mediastream.ended should return true when all tracks were removed.
31104        https://bugs.webkit.org/show_bug.cgi?id=112528
31105
31106        Reviewed by Kentaro Hara.
31107
31108        Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-ended
31109        When all tracks have been removed, it should return true as well as all the tracks
31110        were ended.
31111
31112        Test: fast/mediastream/MediaStream-add-remove-tracks.html
31113
31114        * Modules/mediastream/MediaStream.cpp:
31115        (WebCore::MediaStream::removeTrack):
31116
311172013-02-22  Andrey Kosyakov  <caseq@chromium.org>
31118
31119        Web Inspector: make number of stack frames to capture in Timeline a setting
31120        https://bugs.webkit.org/show_bug.cgi?id=110619
31121
31122        Reviewed by Pavel Feldman.
31123
31124        - factor out creation of input type="text" control for better reuse;
31125        - add timelineLimitStackFramesFlag & timelineStackFramesToCapture settings;
31126
31127        * English.lproj/localizedStrings.js: add "Frames to capture" and "Limit number of captured JS stack frames"
31128        * inspector/front-end/Settings.js: add 2 settings;
31129        (WebInspector.Settings):
31130        * inspector/front-end/SettingsScreen.js: UI for the setting;
31131        (WebInspector.GenericSettingsTab):
31132        (WebInspector.GenericSettingsTab.prototype.get _createCSSAutoReloadControls.validateReloadTimeout):
31133        * inspector/front-end/TimelineModel.js: pass the setting value to back-end.
31134
311352013-03-18  Sheriff Bot  <webkit.review.bot@gmail.com>
31136
31137        Unreviewed, rolling out r146035.
31138        http://trac.webkit.org/changeset/146035
31139        https://bugs.webkit.org/show_bug.cgi?id=112540
31140
31141        fails to build on Windows: singned/unsigned mismatch at ln. 53
31142        of html\HTMLSelectElementWin.cpp (Requested by antonm on
31143        #webkit).
31144
31145        * WebCore.gypi:
31146        * html/HTMLSelectElement.cpp:
31147        (WebCore):
31148        * html/HTMLSelectElementWin.cpp:
31149
311502013-03-18  Kentaro Hara  <haraken@chromium.org>
31151
31152        Unreviewed, rolling out r146033.
31153        http://trac.webkit.org/changeset/146033
31154        https://bugs.webkit.org/show_bug.cgi?id=112521
31155
31156        web audio tests are broken
31157
31158        * Modules/webaudio/AudioNode.cpp:
31159        (WebCore::AudioNode::AudioNode):
31160        * Modules/webaudio/AudioNode.h:
31161        * Modules/webaudio/AudioScheduledSourceNode.h:
31162        * Modules/webaudio/ScriptProcessorNode.idl:
31163
311642013-03-18  Dominic Cooney  <dominicc@chromium.org>
31165
31166        A placeholder renderer should not be taken to imply the existence of a text renderer in single line text controls
31167        https://bugs.webkit.org/show_bug.cgi?id=112410
31168
31169        Reviewed by Tony Chang.
31170
31171        The assumption that if a text control had a placeholder renderer
31172        then it also had a text renderer is not valid. If
31173        ::-webkit-textfield-decoration-controller is set to display: none;
31174        a single line text control's decoration container renderer and
31175        hence text renderer are not created. This change handles this
31176        corner case where a text control has a placeholder renderer but
31177        not a text renderer.
31178
31179        Tests: fast/forms/search/search-hide-decoration-container-crash.html (Updated)
31180
31181        * html/HTMLTextFormControlElement.cpp:
31182        (WebCore::HTMLTextFormControlElement::fixPlaceholderRenderer):
31183        * rendering/RenderTextControlSingleLine.cpp:
31184        (WebCore::RenderTextControlSingleLine::layout):
31185
311862013-03-18  Dominic Cooney  <dominicc@chromium.org>
31187
31188        [Shadow] offsetParent should never return nodes in user agent Shadow DOM to script
31189        https://bugs.webkit.org/show_bug.cgi?id=112530
31190
31191        Reviewed by Elliott Sprehn.
31192
31193        Test: fast/dom/shadow/offset-parent-does-not-leak-ua-shadow.html
31194
31195        * dom/Element.cpp:
31196        (WebCore::Element::bindingsOffsetParent): Filter nodes in UA shadows.
31197        * dom/Element.h:
31198        (Element): Add bindingsOffsetParent.
31199        * dom/Element.idl: bindingsOffsetParent is the implementation of offsetParent.
31200
312012013-03-17  Dominic Mazzoni  <dmazzoni@google.com>
31202
31203        Support Windows HTMLSelectElement keystrokes on Chromium win
31204        https://bugs.webkit.org/show_bug.cgi?id=112460
31205
31206        Reviewed by Kent Tamura.
31207
31208        Compile in the windows-specific variant of
31209        HTMLSelectElement::platformHandleKeydownEvent
31210        on Chromium win, in addition to PLATFORM(WIN).
31211
31212        * WebCore.gypi:
31213            Add html/HTMLSelectElementWin.cpp.
31214        * html/HTMLSelectElement.cpp:
31215            Don't compile generic platformHandleKeydownEvent on
31216            Chromium win.
31217        * html/HTMLSelectElementWin.cpp:
31218            Only compile platformHandleKeydownEvent on Windows.
31219        (WebCore):
31220
312212013-03-17  Russell McClellan  <russell.mcclellan@gmail.com>
31222
31223        ScriptProcessorNode is garbage collected while still active if unreachable
31224        https://bugs.webkit.org/show_bug.cgi?id=112521
31225
31226        Reviewed by Kentaro Hara.
31227
31228        Fix for issue where ScriptProcessorNodes (and AudioNode js wrappers generally)
31229        would be garbage collected before their time.  Made AudioNode an ActiveDOMElement
31230        marked pending if there are any open audio connections.
31231
31232        Test: webaudio/javascriptaudionode.html
31233
31234        * Modules/webaudio/AudioNode.cpp:
31235        (WebCore::AudioNode::AudioNode): 
31236        (WebCore::AudioNode::hasPendingActivity): it's pending (and thus not GCed)
31237        if it has open audio connections.
31238        * Modules/webaudio/AudioNode.h: AudioNode is now an ActiveDOMElement
31239        * Modules/webaudio/AudioScheduledSourceNode.h: added a using declaration
31240        to avoid function name hiding.
31241        * Modules/webaudio/ScriptProcessorNode.idl: AudioNode is an ActiveDOMElement
31242
312432013-03-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31244
31245        INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of minute/second/millisecond fields should respect min/max attributes
31246        https://bugs.webkit.org/show_bug.cgi?id=112527
31247
31248        Reviewed by Kent Tamura.
31249
31250        Make step-up/-down of the minute, second, and millisecond field
31251        respect the min/max attributes of the element.
31252        Note that it still accepts any keyboard inputs (the element
31253        becomes 'invalid' state when out-of-range values entered).
31254        Also, disable these fields when there is only single possible value.
31255
31256        Tests: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
31257               fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
31258
31259        * html/shadow/DateTimeEditElement.cpp:
31260        (DateTimeEditBuilder): Add fields for min/max of minute/second/millisecond.
31261        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set min/max for the fields.
31262        (WebCore::DateTimeEditBuilder::visitField): Pass min/max parameters to the field constructors.
31263        (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled): Does not disable if minute, second, millisecond fields are all disabled, because we need at least one editable field.
31264        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled): Disables if min, max, and value are equal.
31265        (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled): Ditto.
31266        (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled): Ditto.
31267        * html/shadow/DateTimeFieldElements.cpp:
31268        (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement):
31269        (WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
31270        (WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
31271        (WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
31272        (WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
31273        (WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
31274        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
31275        (WebCore::DateTimeMillisecondFieldElement::create):
31276        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
31277        (WebCore::DateTimeMinuteFieldElement::create):
31278        (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement):
31279        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
31280        (WebCore::DateTimeSecondFieldElement::create):
31281        (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement):
31282        (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
31283        * html/shadow/DateTimeFieldElements.h:
31284        (DateTimeDayFieldElement):
31285        (DateTimeHourFieldElementBase):
31286        (DateTimeHour11FieldElement):
31287        (DateTimeHour12FieldElement):
31288        (DateTimeHour23FieldElement):
31289        (DateTimeHour24FieldElement):
31290        (DateTimeMillisecondFieldElement): Add minimum/maximum parameters.
31291        (DateTimeMinuteFieldElement): Add minimum/maximum parameters.
31292        (DateTimeMonthFieldElement):
31293        (DateTimeSecondFieldElement): Add minimum/maximum parameters.
31294        (DateTimeWeekFieldElement):
31295        (DateTimeYearFieldElement):
31296        * html/shadow/DateTimeNumericFieldElement.cpp:
31297        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
31298        (WebCore::DateTimeNumericFieldElement::formatValue): Use hard-limit value instead of m_range.maximum, because millisecond field with max<100 will be displayed in two digits otherwise.
31299        (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
31300        * html/shadow/DateTimeNumericFieldElement.h:
31301        (DateTimeNumericFieldElement): Changed to have hard limits as a data member.
31302
313032013-03-17  Alexey Proskuryakov  <ap@apple.com>
31304
31305        Encapsulate PlatformMessagePortChannel a little better yet
31306        https://bugs.webkit.org/show_bug.cgi?id=112479
31307
31308        Reviewed by Sam Weinig.
31309
31310        * dom/MessagePortChannel.h: We no longer expose PlatformMessagePortChannel in
31311        public functions in cross-platform code.
31312
31313        * dom/default/PlatformMessagePortChannel.cpp:
31314        (WebCore::MessagePortChannel::createChannel): Tweaked the factory method to avoid
31315        using the old create() function.
31316        (WebCore::MessagePortChannel::~MessagePortChannel): Removed an unhelpful comment.
31317
313182013-03-17  Kent Tamura  <tkent@chromium.org>
31319
31320        INPUT_MULTIPLE_FIELDS_UI: Don't update shadow tree by updating any attribute
31321        https://bugs.webkit.org/show_bug.cgi?id=111990
31322
31323        Reviewed by Hajime Morrita.
31324
31325        Bug detail:
31326        Typing '1' then '1' into an hour field doesn't set the field to
31327        '11' if an attribute is updated during these two keyboard inputs
31328        because we always re-construct a shadow DOM tree by updating any
31329        attributes and a shadow node records keyboard input state.
31330
31331        How to fix:
31332        We should not re-construct a shadow DOM tree by updating
31333        unaffected attributes. For example, we should re-construct it by
31334        updating 'min' attribute, but we should not by updating 'class'
31335        attribute.
31336        We have InputType::updateInnerTextValue call in parseAttribute for
31337        text field input types. The multiple fields input types
31338        re-construct shadow DOM tree in updateInnerTextValue. The
31339        updateInnerTextValue call is unnecessary for the multiple fields
31340        input types, and we should call it when it is necessary. So, we
31341        add InputType::attributeChange and text field input types call
31342        updateInnerTextValue in it, and other input types don't.
31343        Also, multiple fields input types need to call
31344        updateInnerTextValue by 'value' attribute change. We add
31345        InputType::valueAttributeChanged.
31346
31347        Tests: Update
31348        fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html. The
31349        value attribute change behavior is covered by
31350        time-multiple-fields-change-layout-by-value.html and
31351        time-multiple-fields-spinbutton-change-and-input-events.html.
31352
31353        * html/HTMLInputElement.cpp:
31354        (WebCore::HTMLInputElement::parseAttribute):
31355        - Add a valueAttributeChanged call.
31356        - Calls InputType::attributeChanged
31357        * html/InputType.cpp:
31358        (WebCore::InputType::attributeChanged): Added an empty implementation.
31359        (WebCore::InputType::valueAttributeChanged): Ditto.
31360        * html/InputType.h:
31361        (InputType): Declare attributeChanged and valueAttributeChanged.
31362        * html/TextFieldInputType.cpp:
31363        (WebCore::TextFieldInputType::attributeChanged):
31364        Added. Always call updateInnerTextValue.
31365        * html/TextFieldInputType.h:
31366        (TextFieldInputType): Declare attributeChanged.
31367        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31368        (WebCore::BaseMultipleFieldsDateAndTimeInputType::valueAttributeChanged):
31369        Added. Re-construct shadow DOM tree if the input has no dirty value.
31370        * html/BaseMultipleFieldsDateAndTimeInputType.h:
31371        (BaseMultipleFieldsDateAndTimeInputType): Declare valueAttributeChanged.
31372
313732013-03-17  Rafael Weinstein  <rafaelw@chromium.org>
31374
31375        [HTMLTemplateElement] prevent </template> from matching "template" in a non-HTML tags on the stack of open elements
31376        https://bugs.webkit.org/show_bug.cgi?id=112487
31377
31378        Reviewed by Adam Barth.
31379
31380        When processing an end template tag, the parser now pops until a "template" tag is parsed, but now ensures that
31381        the "template" it pops is in the HTML namespace.
31382
31383        Tests added to the html5lib test suite.
31384
31385        * html/parser/HTMLElementStack.cpp:
31386        (WebCore::HTMLElementStack::popUntil):
31387        (WebCore):
31388        (WebCore::HTMLElementStack::popUntilPopped):
31389        * html/parser/HTMLElementStack.h:
31390        (HTMLElementStack):
31391        * html/parser/HTMLTreeBuilder.cpp:
31392        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
31393
313942013-03-17  Adam Barth  <abarth@webkit.org>
31395
31396        Legacy CSS vendor prefixes should only work for Dashboard
31397        https://bugs.webkit.org/show_bug.cgi?id=111890
31398
31399        Reviewed by Eric Seidel.
31400
31401        Our experience with the Chromium port is that these legacy CSS vendor
31402        prefixes (-apple- and -khtml-) are not needed for web compatibility.
31403        There is reason to believe, however, that they are needed for
31404        compatibility with Mac OS X Dashboard widgets.
31405
31406        This patch makes the code for these legacy CSS vendor prefixes
31407        enabled at runtime and only enables them when running in Dashboard
31408        compatibility mode. This is the first step towards the plan outlined in
31409        https://lists.webkit.org/pipermail/webkit-dev/2013-March/024085.html.
31410
31411        This patch also removes support for ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
31412        from the V8 bindings because V8 is never used with Dashboard.
31413
31414        * bindings/generic/RuntimeEnabledFeatures.cpp:
31415        (WebCore):
31416        * bindings/generic/RuntimeEnabledFeatures.h:
31417        (RuntimeEnabledFeatures):
31418        (WebCore::RuntimeEnabledFeatures::setLegacyCSSVendorPrefixesEnabled):
31419        (WebCore::RuntimeEnabledFeatures::legacyCSSVendorPrefixesEnabled):
31420        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
31421        (WebCore::getCSSPropertyNamePrefix):
31422        (WebCore::cssPropertyIDForJSCSSPropertyName):
31423        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
31424        (WebCore::cssPropertyInfo):
31425        * css/CSSParser.cpp:
31426        (WebCore::CSSParser::rewriteSpecifiers):
31427
314282013-03-17  David Kilzer  <ddkilzer@apple.com>
31429
31430        BUILD FIX (r145592): AutodrainedPool.h moved to WTF
31431        <http://webkit.org/b/112171>
31432
31433        Fixes the following build failure:
31434
31435            Source/WebCore/platform/audio/mac/AudioBusMac.mm:32:9: fatal error: 'AutodrainedPool.h' file not found
31436            #import "AutodrainedPool.h"
31437                    ^
31438            1 error generated.
31439
31440        * platform/audio/mac/AudioBusMac.mm: Fix include.
31441
314422013-03-17  Gustavo Noronha Silva  <gns@gnome.org>
31443
31444        [GTK] Fix and improve dist hooks for translations
31445        https://bugs.webkit.org/show_bug.cgi?id=112519
31446
31447        Reviewed by Carlos Garcia Campos.
31448
31449        * GNUmakefile.am: move translation-related rules and lists to the po directory's
31450        GNUmakefile.am.
31451
314522013-03-17  Emil A Eklund  <eae@chromium.org>
31453
31454        Move font-family applying code to StyleBuilder
31455        https://bugs.webkit.org/show_bug.cgi?id=112441
31456
31457        Reviewed by Allan Sandfeld Jensen.
31458
31459        Many of the font related properties were moved to StyleBuilder in r87362
31460        two years ago. Move font-family as well so that all font properties are
31461        handled the same way.
31462
31463        No new tests, no change in functionality.
31464
31465        * css/StyleBuilder.cpp:
31466        (ApplyPropertyFontFamily):
31467        (WebCore::ApplyPropertyFontFamily::applyInheritValue):
31468        (WebCore::ApplyPropertyFontFamily::applyInitialValue):
31469        (WebCore::ApplyPropertyFontFamily::applyValue):
31470        (WebCore::ApplyPropertyFontFamily::createHandler):
31471        (WebCore::StyleBuilder::StyleBuilder):
31472        Add ApplyPropertyFontFamily for CSSPropertyFontFamily.
31473
31474        * css/StyleResolver.cpp:
31475        (WebCore::StyleResolver::applyProperty):
31476        Remove CSSPropertyFontFamily from the giant switch statement.
31477
314782013-03-17  Carlos Garcia Campos  <cgarcia@igalia.com>
31479
31480        [ENCHANT] Invalid charset encoding used for spelling guess context menu items
31481        https://bugs.webkit.org/show_bug.cgi?id=112516
31482
31483        Reviewed by Gustavo Noronha Silva.
31484
31485        Convert spelling guesses returned by enchant to UTF-16 before
31486        passing them to WebCore.
31487
31488        * platform/text/enchant/TextCheckerEnchant.cpp:
31489        (WebCore::TextCheckerEnchant::getGuessesForWord): Use
31490        String::fromUTF8().
31491
314922013-03-17  Jinwoo Song  <jinwoo7.song@samsung.com>
31493
31494        [EFL] Provide default cursor groups as cursor.edc
31495        https://bugs.webkit.org/show_bug.cgi?id=112403
31496
31497        Reviewed by Gyuyoung Kim.
31498
31499        This patch provides a cursor.edc to use the CSS cursor images files in the
31500        WebCore/Resources directory. cursor.edc is included in the default.edc
31501        so that views can use it by default.
31502
31503        * platform/efl/DefaultTheme/CMakeLists.txt:
31504        * platform/efl/DefaultTheme/default.edc:
31505        * platform/efl/DefaultTheme/widget/cursor/cursor.edc: Added.
31506
315072013-03-16  Pratik Solanki  <psolanki@apple.com>
31508
31509        Disable High DPI Canvas on iOS
31510        https://bugs.webkit.org/show_bug.cgi?id=112511
31511
31512        Reviewed by Joseph Pecoraro.
31513
31514        * Configurations/FeatureDefines.xcconfig:
31515
315162013-03-16  Simon Fraser  <simon.fraser@apple.com>
31517
31518        Reflected video elements hit assertion
31519        https://bugs.webkit.org/show_bug.cgi?id=112490
31520
31521        Disable reflections on video again, since there's some bad behavior
31522        caused by an underlying system framework.
31523
31524        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
31525        (PlatformCALayer::clone):
31526
315272013-03-16  Tom Sepez  <tsepez@chromium.org>
31528
31529        [v8] Disable binding integrity check for WebCore::Text
31530        https://bugs.webkit.org/show_bug.cgi?id=112462
31531
31532        Reviewed by Kentaro Hara.
31533
31534        Test: fast/dom/split-cdata.xml
31535
31536        * dom/Text.idl:
31537
315382013-03-16  Chris Fleizach  <cfleizach@apple.com>
31539
31540        AX: aria-hidden on container does not hide descendant popup buttons
31541        https://bugs.webkit.org/show_bug.cgi?id=112373
31542
31543        Reviewed by Ryosuke Niwa.
31544
31545        There are a number of subclass AX objects that implement accessibilityIsIgnored()
31546        to always return false. This means that even if their parent is aria-hidden=true
31547        they still show up in the tree.
31548
31549        This re-organizes this base case of aria-hidden into AccessibilityObject so that
31550        it can be re-used by these special subclasses where appropriate.
31551
31552        Test: accessibility/aria-hidden-hides-all-elements.html
31553
31554        * accessibility/AccessibilityImageMapLink.h:
31555        (WebCore::AccessibilityImageMapLink::isImageMapLink):
31556        * accessibility/AccessibilityList.cpp:
31557        (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
31558        * accessibility/AccessibilityListBox.cpp:
31559        (WebCore):
31560        * accessibility/AccessibilityListBox.h:
31561        (AccessibilityListBox):
31562        * accessibility/AccessibilityListBoxOption.cpp:
31563        (WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
31564        * accessibility/AccessibilityMediaControls.cpp:
31565        (WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
31566        (WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
31567        (WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
31568        * accessibility/AccessibilityMediaControls.h:
31569        (AccessibilityMediaControlsContainer):
31570        * accessibility/AccessibilityMenuList.h:
31571        (WebCore::AccessibilityMenuList::roleValue):
31572        * accessibility/AccessibilityMenuListOption.cpp:
31573        (WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
31574        * accessibility/AccessibilityMenuListPopup.cpp:
31575        (WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
31576        * accessibility/AccessibilityMockObject.cpp:
31577        (WebCore::AccessibilityMockObject::computeAccessibilityIsIgnored):
31578        (WebCore):
31579        * accessibility/AccessibilityMockObject.h:
31580        (AccessibilityMockObject):
31581        * accessibility/AccessibilityObject.cpp:
31582        (WebCore::AccessibilityObject::accessibilityIsIgnoredDefaultForObject):
31583        (WebCore):
31584        (WebCore::AccessibilityObject::ariaIsHidden):
31585        (WebCore::AccessibilityObject::accessibilityIsIgnoredBase):
31586        * accessibility/AccessibilityObject.h:
31587        (AccessibilityObject):
31588        * accessibility/AccessibilityProgressIndicator.cpp:
31589        (WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
31590        * accessibility/AccessibilityRenderObject.cpp:
31591        (WebCore):
31592        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
31593        (WebCore::AccessibilityRenderObject::addImageMapChildren):
31594        * accessibility/AccessibilityRenderObject.h:
31595        (AccessibilityRenderObject):
31596        * accessibility/AccessibilityScrollbar.h:
31597        (AccessibilityScrollbar):
31598        * accessibility/AccessibilitySlider.cpp:
31599        (WebCore):
31600        (WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
31601        * accessibility/AccessibilitySlider.h:
31602        (AccessibilitySlider):
31603        * accessibility/AccessibilitySpinButton.h:
31604        (WebCore::AccessibilitySpinButton::roleValue):
31605        (AccessibilitySpinButtonPart):
31606
316072013-03-15  Simon Fraser  <simon.fraser@apple.com>
31608
31609        Reflected video elements hit assertion on Lion
31610        https://bugs.webkit.org/show_bug.cgi?id=112490
31611
31612        Disable the new reflected video functionality added in r145915
31613        on Lion because of a nasty re-entrancy problem. Tracked by bug 112490.
31614
31615        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
31616        (PlatformCALayer::clone):
31617
316182013-03-15  Bem Jones-Bey  <bjonesbe@adobe.com>
31619
31620        [CSS Exclusions] shape-outside on floats for circle and ellipse shapes
31621        https://bugs.webkit.org/show_bug.cgi?id=98673
31622
31623        Reviewed by Dirk Schulze.
31624
31625        Enable circles and ellipses for shape-outside on floats. Most of the
31626        code already supports them, just needed to turn them on and add tests.
31627
31628        Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-circle.html
31629               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-ellipse.html
31630
31631        * rendering/ExclusionShapeOutsideInfo.cpp:
31632        (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Enable circles and
31633            ellipses. Also add a check for if the RenderBox is floating, since
31634            that test should have been there all along, as shape outside is
31635            only supported on floats for now.
31636
316372013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
31638
31639        Convert old flexbox uses in html.css to new flexbox (non-<select>)
31640        https://bugs.webkit.org/show_bug.cgi?id=110837
31641
31642        Reviewed by Ojan Vafai.
31643
31644        Covered by existing tests.
31645
31646        * rendering/RenderTextControlSingleLine.cpp:
31647        (WebCore::RenderTextControlSingleLine::layout):
31648        After we set our descendants' heights, we need to mark them for
31649        layout.
31650        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
31651        Use new-flexbox style setters.
31652
31653        * css/html.css:
31654        (input::-webkit-textfield-decoration-container):
31655        (input[type="search"]::-webkit-search-cancel-button):
31656        (input[type="search"]::-webkit-search-decoration):
31657        (input[type="search"]::-webkit-search-results-decoration):
31658        (input[type="search"]::-webkit-search-results-button):
31659        (input::-webkit-inner-spin-button):
31660        (input::-webkit-input-speech-button):
31661        (textarea):
31662        (input[type="file"]):
31663        (input[type="color"]::-webkit-color-swatch-wrapper):
31664        (input[type="color"]::-webkit-color-swatch):
31665        (::-webkit-validation-bubble-message):
31666        (::-webkit-validation-bubble-text-block):
31667        * css/themeWin.css:
31668        (input[type="search"]::-webkit-search-results-decoration):
31669        (input[type="search"]::-webkit-search-results-button):
31670        Convert -webkit-box to -webkit-flex and adjust related properties.
31671        Notably switch to auto margins for centering the speech button as well
31672        as the search result and cancel buttons to stay compatible with the
31673        previous centering behaviour. This does not produce visible
31674        differences but eliminates the render tree dump changes.
31675        * html/TextFieldInputType.cpp:
31676        (WebCore::TextFieldInputType::createShadowSubtree):
31677        * html/shadow/TextControlInnerElements.cpp:
31678        (WebCore::TextControlInnerContainer::TextControlInnerContainer):
31679        (WebCore):
31680        (WebCore::TextControlInnerContainer::create):
31681        (WebCore::TextControlInnerContainer::createRenderer):
31682        * html/shadow/TextControlInnerElements.h:
31683        (TextControlInnerContainer):
31684        (WebCore):
31685        * rendering/RenderTextControl.cpp:
31686        (WebCore::RenderTextControlInnerContainer::RenderTextControlInnerContainer):
31687        (WebCore):
31688        (WebCore::RenderTextControlInnerContainer::~RenderTextControlInnerContainer):
31689        * rendering/RenderTextControl.h:
31690        (WebCore):
31691        (RenderTextControlInnerContainer):
31692        Create a new DOM element & renderer type for the textfield-decoration
31693        div (the direct child of the <input> in the shadow dom if we have a
31694        special input field). This is necessary because new-flexbox uses a
31695        different algorithm for calculating the baseline, which would
31696        otherwise cause an <input> and an <input type=search> to not be
31697        aligned with each other.
31698        The new renderer just calls back to RenderBlock for calculating the
31699        baseline.
31700        * rendering/RenderTextControlSingleLine.cpp:
31701        (WebCore::RenderTextControlSingleLine::layout):
31702        Make sure to mark renderers as needing layout when we change their
31703        style. This didn't use to be necessary because old-flexbox relayouts
31704        children even when they are not marked for needing layout.
31705        (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
31706        Use new-flexbox CSS properties.
31707        * html/shadow/TextFieldDecorationElement.cpp:
31708        (WebCore::TextFieldDecorationElement::decorate):
31709        Use new-flexbox CSS properties.
31710
317112013-03-15  Kenneth Russell  <kbr@google.com>
31712
31713        Unreviewed attempted build fix for Chromium Windows after r145929.
31714        Verified this fix builds and works on Linux.
31715        https://bugs.webkit.org/show_bug.cgi?id=96798
31716
31717        * bindings/v8/V8Binding.cpp:
31718        (WebCore):
31719
317202013-03-15  Nate Chapin  <japhet@chromium.org>
31721
31722        Merge MainResourceLoader::willSendRequest into DocumentLoader 
31723        https://bugs.webkit.org/show_bug.cgi?id=109757
31724
31725        This is one of the steps to merging MainResourceLoader entirely into
31726        DocumentLoader, given the lack of clear division of responsibility
31727        between the two.
31728
31729        Reviewed by Antti Koivisto.
31730
31731        No new tests, refactor only.
31732
31733        * loader/DocumentLoader.cpp:
31734        (WebCore::DocumentLoader::mainResourceData):
31735        (WebCore::DocumentLoader::isPostOrRedirectAfterPost):
31736        (WebCore::DocumentLoader::willSendRequest):
31737        (WebCore::DocumentLoader::callContinueAfterNavigationPolicy):
31738        (WebCore::DocumentLoader::continueAfterNavigationPolicy):
31739        (WebCore::DocumentLoader::startLoadingMainResource):
31740        * loader/DocumentLoader.h:
31741        * loader/MainResourceLoader.cpp:
31742        (WebCore::MainResourceLoader::resourceData):
31743        (WebCore::MainResourceLoader::redirectReceived):
31744        (WebCore::MainResourceLoader::continueAfterContentPolicy):
31745        (WebCore::MainResourceLoader::reportMemoryUsage):
31746        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
31747        (WebCore::MainResourceLoader::load):
31748        * loader/MainResourceLoader.h:
31749        (WebCore::MainResourceLoader::takeIdentifierFromResourceLoader): Temporarily
31750            exposed for moving from a normal load to SubstituteData load on redirect.
31751
317522013-03-15  Zhenyao Mo  <zmo@google.com>
31753
31754        Disable EXT_draw_buffers WebGL extension on Mac
31755        https://bugs.webkit.org/show_bug.cgi?id=112486
31756
31757        Reviewed by Kenneth Russell.
31758
31759        * html/canvas/EXTDrawBuffers.cpp:
31760        (WebCore::EXTDrawBuffers::supported):
31761
317622013-03-15  Dana Jansens  <danakj@chromium.org>
31763
31764        [chromium] Remove the background filter blur layout tests
31765        https://bugs.webkit.org/show_bug.cgi?id=112372
31766
31767        Reviewed by James Robinson.
31768
31769        Remove the now-unused hacks to regression test the background
31770        filter blur compositor feature.
31771
31772        * testing/Internals.cpp:
31773        * testing/Internals.h:
31774        (Internals):
31775        * testing/Internals.idl:
31776
317772013-03-15  Alexey Proskuryakov  <ap@apple.com>
31778
31779        Reduce amount of platform specific code in MessagePortChannel
31780        https://bugs.webkit.org/show_bug.cgi?id=112469
31781
31782        Reviewed by Sam Weinig.
31783
31784        * dom/MessagePortChannel.h: Ifdefed out an unused channel() function, except for
31785        Chromium, where it is used. We certainly don't want to expose this implementation
31786        detail as a public function.
31787
31788        * dom/default/PlatformMessagePortChannel.h: Removed functions that are no longer
31789        delegated. Made class contents all public, as it's now basically a data storage
31790        for MessagePortChannel.
31791
31792        * dom/default/PlatformMessagePortChannel.cpp:
31793        (WebCore::MessagePortChannel::createChannel):
31794        (WebCore::MessagePortChannel::~MessagePortChannel):
31795        (WebCore::MessagePortChannel::entangleIfOpen):
31796        (WebCore::MessagePortChannel::disentangle):
31797        (WebCore::MessagePortChannel::postMessageToRemote):
31798        (WebCore::MessagePortChannel::tryGetMessageFromRemote):
31799        (WebCore::MessagePortChannel::close):
31800        (WebCore::MessagePortChannel::isConnectedTo):
31801        (WebCore::MessagePortChannel::hasPendingActivity):
31802        (WebCore::MessagePortChannel::locallyEntangledPort):
31803        (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
31804        (WebCore::PlatformMessagePortChannel::entangledChannel):
31805        Moved code from PlatformMessagePortChannel to MessagePortChannel. Added some
31806        FIXMEs.
31807
318082013-03-15  Arvid Nilsson  <anilsson@rim.com>
31809
31810        [BlackBerry] Expose the compositing thread layer's draw rectangle to aid hit testing
31811        https://bugs.webkit.org/show_bug.cgi?id=112255
31812
31813        Reviewed by Rob Buis.
31814
31815        PR 308284.
31816        Reviewed internally by Yongxin Dai.
31817
31818        Add a getter for the layer renderer of a compositing thread layer.
31819
31820        No change in behavior, no new tests.
31821
31822        * platform/graphics/blackberry/LayerCompositingThread.h:
31823        (WebCore::LayerCompositingThread::layerRenderer):
31824
318252013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
31826
31827        Convert <select> to new-flexbox
31828        https://bugs.webkit.org/show_bug.cgi?id=112395
31829
31830        Reviewed by Ojan Vafai.
31831
31832        Covered by existing tests.
31833
31834        * css/html.css:
31835        (select):
31836        (select[size][multiple]):
31837        (select[size="1"]):
31838        Use new-style flexbox properties.
31839        * rendering/RenderMenuList.cpp:
31840        (WebCore::RenderMenuList::RenderMenuList):
31841        (WebCore::RenderMenuList::createInnerBlock):
31842        (WebCore::RenderMenuList::adjustInnerStyle):
31843        (WebCore::RenderMenuList::removeChild):
31844        RenderDeprecatedFlexibleBox -> RenderFlexibleBox, and use the
31845        new-style flexbox properties. Use margin:auto for centering to get
31846        the old safe-centering behavior.
31847        * rendering/RenderMenuList.h:
31848        (RenderMenuList):
31849        Inherit from RenderFlexibleBox. Override baseline methods to call the
31850        RenderBlock methods
31851
318522013-03-15  Andy Estes  <aestes@apple.com>
31853
31854        REGRESSION (r145820): Stop over-retaining CFDataRefs in SharedBuffer::maybeTransferPlatformData()
31855        https://bugs.webkit.org/show_bug.cgi?id=112474
31856
31857        Reviewed by Simon Fraser.
31858
31859        Transfer ownership of m_cfData to the local variable rather than leaking a reference.
31860
31861        * platform/cf/SharedBufferCF.cpp:
31862        (WebCore::SharedBuffer::maybeTransferPlatformData):
31863
318642013-03-15  Rajeev Sarvaria  <rsarvaria@blackberry.com>
31865
31866        New context extensions restored improperly
31867        https://bugs.webkit.org/show_bug.cgi?id=112156
31868
31869        Reviewed by Rob Buis.
31870
31871        Sets up extensions after new context is created for restoration.
31872        Previous extensions set up is lost when context is initially lost.
31873
31874        Cannot create a test as change is not visible from the web. When a context
31875        is lost, WebGLRenderingContext drops m_context. Upon restoration a new context
31876        object is created without available extensions initialized. Calling isEnabled
31877        within setupFlags leads to the eventual initialization of extensions for the
31878        new context.
31879
31880        * html/canvas/WebGLRenderingContext.cpp:
31881        (WebCore):
31882        (WebCore::WebGLRenderingContext::maybeRestoreContext):
31883
318842013-03-15  Aurimas Liutikas  <aurimas@chromium.org>
31885
31886        TextIterator emits LF for a br element inside an empty input element
31887        https://bugs.webkit.org/show_bug.cgi?id=112275
31888
31889        Reviewed by Ryosuke Niwa.
31890
31891        Adding a check to avoid emiting LF for br elements inside a shadow tree
31892        of an input element.
31893
31894        Test: editing/text-iterator/basic-iteration.html
31895              editing/text-iterator/basic-iteration-shadowdom.html
31896
31897        * editing/TextIterator.cpp:
31898        (WebCore::shouldEmitNewlineForNode):
31899        (WebCore::TextIterator::handleNonTextNode):
31900        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
31901        (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
31902        (WebCore::SimplifiedBackwardsTextIterator::exitNode):
31903        * editing/TextIterator.h:
31904        (SimplifiedBackwardsTextIterator):
31905
319062013-03-15  Arvid Nilsson  <anilsson@rim.com>
31907
31908        [BlackBerry] Allow an embedder to position child windows using window coordinates
31909        https://bugs.webkit.org/show_bug.cgi?id=112236
31910
31911        Reviewed by Rob Buis.
31912
31913        PR 232752
31914
31915        The LayerCompositingThread can now position the video window using
31916        either document or window coordinates.
31917
31918        The LayerRenderer class gets a new client interface. This allows us to
31919        avoid state duplication by delegating decisions directly to the client,
31920        which can then be in charge of the (one and only) state.
31921
31922        The context is moved over to the client, as well as delegation of the
31923        decision on whether to clear the surface every frame.
31924
31925        Also, the decision on which coordinate system to use for positioning
31926        child windows is delegated to the client interface.
31927
31928        No new tests, not testable using DRT.
31929
31930        * platform/graphics/blackberry/LayerCompositingThread.cpp:
31931        (WebCore::LayerCompositingThread::drawTextures):
31932        * platform/graphics/blackberry/LayerRenderer.cpp:
31933        (WebCore::LayerRenderer::create):
31934        (WebCore::LayerRenderer::LayerRenderer):
31935        (WebCore::LayerRenderer::setViewport):
31936        (WebCore::LayerRenderer::compositeLayers):
31937        (WebCore::LayerRenderer::toWebKitWindowCoordinates):
31938        (WebCore::LayerRenderer::makeContextCurrent):
31939        * platform/graphics/blackberry/LayerRenderer.h:
31940        (WebCore):
31941        (LayerRenderer):
31942        (WebCore::LayerRenderer::client):
31943        * platform/graphics/blackberry/LayerRendererClient.h: Added.
31944        (Graphics):
31945        (WebCore):
31946        (LayerRendererClient):
31947        (WebCore::LayerRendererClient::~LayerRendererClient):
31948
319492013-03-15  Jochen Eisinger  <jochen@chromium.org>
31950
31951        Expose whether a UserGestureToken still has gestures via WebKit API
31952        https://bugs.webkit.org/show_bug.cgi?id=112342
31953
31954        Reviewed by Adam Barth.
31955
31956        * dom/UserGestureIndicator.cpp:
31957        * dom/UserGestureIndicator.h:
31958        (UserGestureToken):
31959
319602013-03-15  Christian Biesinger  <cbiesinger@chromium.org>
31961
31962        Convert inspector to new-flexbox
31963        https://bugs.webkit.org/show_bug.cgi?id=112399
31964
31965        Reviewed by Ojan Vafai.
31966
31967        No new tests, refactoring.
31968
31969        * inspector/front-end/auditsPanel.css:
31970        (.audit-launcher-view .audit-launcher-view-content):
31971        (.audit-launcher-view div.button-container):
31972        (.audit-launcher-view div.button-container > button):
31973        * inspector/front-end/dialog.css:
31974        (.dialog):
31975        * inspector/front-end/elementsPanel.css:
31976        (.sidebar-pane.composite .metrics):
31977        * inspector/front-end/helpScreen.css:
31978        (.help-window-main):
31979        (.help-content):
31980        * inspector/front-end/inspector.css:
31981        (#toolbar):
31982        (#toolbar-controls):
31983        (#toolbar-dropdown .scrollable-content):
31984        (#toolbar-dropdown .toolbar-item):
31985        (.toolbar-item.close-left, .toolbar-item.close-right):
31986        * inspector/front-end/nativeMemoryProfiler.css:
31987        (.memory-pie-chart-container):
31988        (.memory-pie-chart):
31989        * inspector/front-end/networkPanel.css:
31990        (.network-item-view.visible):
31991        * inspector/front-end/panelEnablerView.css:
31992        (.panel-enabler-view .flexible-space):
31993        * inspector/front-end/profilesPanel.css:
31994        (.profile-launcher-view-content):
31995        (.control-profiling):
31996        * inspector/front-end/splitView.css:
31997        (.sidebar-overlay):
31998        * inspector/front-end/tabbedPane.css:
31999        (.tabbed-pane):
32000        (.tabbed-pane-content):
32001        Replace -webkit-box with -webkit-flex, -webkit-box-orient with
32002        -webkit-flex-direction, etc.
32003
320042013-03-15  Rouslan Solomakhin  <rouslan@chromium.org>
32005
32006        Remove unused unified textchecker variable
32007        https://bugs.webkit.org/show_bug.cgi?id=112362
32008
32009        Reviewed by Tony Chang.
32010
32011        The variable m_originalUnifiedSpellCheckerEnabled is never used. The generated
32012        code from Settings.in already backs up and restores unified textchecker setting.
32013
32014        * testing/InternalSettings.h: Remove unusued m_originalUnifiedSpellCheckerEnabled variable.
32015
320162013-03-14  Ojan Vafai  <ojan@chromium.org>
32017
32018        Auto height column flexboxes with border and padding are too short
32019        https://bugs.webkit.org/show_bug.cgi?id=112398
32020
32021        Reviewed by Tony Chang.
32022
32023        Test: css3/flexbox/auto-height-column-with-border-and-padding.html
32024
32025        * rendering/RenderFlexibleBox.cpp:
32026        (WebCore::RenderFlexibleBox::mainAxisContentExtent):
32027        computeLogicalHeight expects that you pass in the border-box logicalHeight, not
32028        the contentLogicalHeight. Since we subtract the border, padding and scrollbar height from 
32029        the returned m_extent, if we pass in the contentLogicalHeight and the flexbox is auto-sized
32030        then we end up incorrectly subtracting border, padding and scrollbar height from the
32031        contentLogicalHeight.
32032
320332013-03-15  Tim Horton  <timothy_horton@apple.com>
32034
32035        RenderSnapshottedPlugIn can't be a RenderBlock (what if it's display: inline?)
32036        https://bugs.webkit.org/show_bug.cgi?id=112432
32037        <rdar://problem/13187211>
32038
32039        Reviewed by Simon Fraser and Dean Jackson.
32040
32041        Re-use code from PLUGIN_PROXY_FOR_VIDEO to allow RenderEmbeddedObject to lay out its children,
32042        and make RenderSnapshottedPlugIn a RenderEmbeddedObject subclass once again. This will ensure that
32043        RenderSnapshottedPlugIn lays itself out in the page the same as the RenderEmbeddedObject it replaces did,
32044        preventing snapshotted plug-ins from breaking the layout when they are display: inline.
32045
32046        * html/HTMLPlugInElement.cpp:
32047        (WebCore::HTMLPlugInElement::defaultEventHandler):
32048        RenderSnapshottedPlugIn is a RenderEmbeddedObject subclass again, so we need to check
32049        for it when we have a RenderEmbeddedObject, instead of when we don't.
32050
32051        * page/FrameView.cpp:
32052        (WebCore::FrameView::updateWidget):
32053        Ditto.
32054
32055        * rendering/RenderEmbeddedObject.cpp:
32056        (WebCore::RenderEmbeddedObject::layout):
32057        (WebCore::RenderEmbeddedObject::canHaveChildren):
32058        Allow RenderEmbeddedObject to have and lay out children if it is a RenderSnapshottedPlugIn.
32059        Also, preserve the code that allows children if it is a media element and PLUGIN_PROXY_FOR_VIDEO is enabled.
32060        Don't call addWidgetToUpdate for instances which will never have a widget, like RenderSnapshottedPlugIn.
32061
32062        * rendering/RenderEmbeddedObject.h:
32063        (RenderEmbeddedObject):
32064        We need canHaveChildren() and children() and m_children now.
32065        Add canHaveWidget(), which returns true. Subclasses can override if need be.
32066
32067        * rendering/RenderSnapshottedPlugIn.h: Add canHaveWidget(), which is false for RenderSnapshottedPlugIn.
32068        * rendering/RenderSnapshottedPlugIn.cpp:
32069        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
32070        (WebCore::RenderSnapshottedPlugIn::layout):
32071        (WebCore::RenderSnapshottedPlugIn::getCursor):
32072        Make RenderSnapshottedPlugIn a RenderEmbeddedObject.
32073
32074        (WebCore::RenderSnapshottedPlugIn::paint):
32075        Paint our children.
32076
320772013-03-15  Hajime Morrita  <morrita@google.com>
32078
32079        [Custom Elements] Any HTMLElement subclass should become a superclass of custom element
32080        https://bugs.webkit.org/show_bug.cgi?id=110436
32081
32082        Reviewed by Dimitri Glazkov.
32083
32084        This change introduces "type extension" concept of custom elements.
32085        With the type extension, each custom elements are able to inherit
32086        from not only HTMLElement, but also any HTML element. To make it work,
32087        this change extends the plumbing.
32088
32089        This change does following changes:
32090
32091        = Data structure:
32092
32093        - Let CustomElementConstructor objects being keyed by pair of (element
32094          name, local name) as the standard requries, instead of just using
32095          single name. See CustomElementRegistry::ConstructorMap and CustomElementRegistry::find().
32096
32097        - Creates mapping from WrapperTypeInfo to element name.  This map
32098          can be looked-up by generated functions like
32099          findHTMLTagNameOfV8Type().  With this table, WebKit can determine
32100          the custom element local name of given prototype object. See  make_names.pl.
32101          Note that V8 prototype object knows associated WrapperTypeInfo. See r144865.
32102
32103        = Hooking up element lifecyle:
32104
32105        - Create appropriate C++ instance for each custom element.  Before
32106          this change, the C++ backend of custom elements were always
32107          HTMLUnknownElements or HTMLElement.  See
32108          CustomElementConstructor::createElement() and ElementFactories in
32109          make_names.pl.
32110
32111        - Hooks up element construction and element wrapper creation for
32112          custom element "before" non-custom case instead of "after"
32113          that. We do this because custom element needs to
32114          override non-custom case when @is attribute is given for
32115          otherwise-non-custom elements like <div is=x-bar>.
32116          See make_names.pl.
32117
32118        - Gives @is attributes to elements if needed. See setTypeExtension() call sites
32119          like Document::createElement(), Document::createElementtNS() and CustomElementConstructor::createElementt()
32120
32121        Test: fast/dom/custom/document-register-type-extensions.html
32122
32123        * bindings/scripts/CodeGeneratorV8.pm:
32124        (GenerateHeader):
32125        * bindings/scripts/test/V8/V8Float64Array.h:
32126        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
32127        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
32128        * bindings/scripts/test/V8/V8TestEventConstructor.h:
32129        * bindings/scripts/test/V8/V8TestEventTarget.h:
32130        * bindings/scripts/test/V8/V8TestException.h:
32131        * bindings/scripts/test/V8/V8TestInterface.h:
32132        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
32133        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
32134        * bindings/scripts/test/V8/V8TestNode.h:
32135        * bindings/scripts/test/V8/V8TestObj.h:
32136        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
32137        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
32138        * bindings/scripts/test/V8/V8TestTypedefs.h:
32139        * bindings/v8/CustomElementHelpers.cpp:
32140        (WebCore::hasValidPrototypeChain):
32141        (WebCore::CustomElementHelpers::isValidPrototypeParameter):
32142        (WebCore::CustomElementHelpers::findLocalName):
32143        (WebCore):
32144        (WebCore::CustomElementHelpers::findWrapperType):
32145        * bindings/v8/CustomElementHelpers.h:
32146        (CustomElementHelpers):
32147        * bindings/v8/V8CustomElement.cpp:
32148        (WebCore::V8CustomElement::createWrapper):
32149        * bindings/v8/V8CustomElement.h:
32150        (V8CustomElement):
32151        (WebCore::V8CustomElement::wrap):
32152        (WebCore::V8CustomElement::constructorOf):
32153        * bindings/v8/WrapperTypeInfo.h:
32154        (WrapperTypeTraits): Added.
32155        * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
32156        (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
32157        * dom/CustomElementConstructor.cpp:
32158        (WebCore::CustomElementConstructor::create):
32159        (WebCore::CustomElementConstructor::CustomElementConstructor):
32160        (WebCore::CustomElementConstructor::createElement):
32161        (WebCore::setTypeExtension):
32162        * dom/CustomElementConstructor.h:
32163        (CustomElementConstructor):
32164        (WebCore::CustomElementConstructor::document):
32165        (WebCore::CustomElementConstructor::typeName):
32166        (WebCore::CustomElementConstructor::localName):
32167        * dom/CustomElementRegistry.cpp:
32168        (WebCore::nameIncludesHyphen):
32169        (WebCore::CustomElementRegistry::isValidName):
32170        (WebCore::CustomElementRegistry::registerElement):
32171        (WebCore::CustomElementRegistry::findFor):
32172        (WebCore::CustomElementRegistry::find):
32173        (WebCore::CustomElementRegistry::createElement):
32174        * dom/CustomElementRegistry.h:
32175        (CustomElementRegistry):
32176        * dom/Document.cpp:
32177        (WebCore::Document::createElement):
32178        (WebCore::Document::createElementNS):
32179        (WebCore::Document::registerElement):
32180        * dom/Document.h:
32181        (Document):
32182        (WebCore::Document::registry): Moved from Document.cpp to be inlined.
32183        * dom/Document.idl:
32184        * dom/make_names.pl:
32185        (printFactoryCppFile):
32186        (printWrapperFactoryCppFile):
32187        (printWrapperFactoryHeaderFile):
32188        * html/HTMLAttributeNames.in: Added @is attribute
32189
321902013-03-15  Alexey Proskuryakov  <ap@apple.com>
32191
32192        Minor cleanup in worker code
32193        https://bugs.webkit.org/show_bug.cgi?id=112455
32194
32195        Reviewed by Anders Carlsson.
32196
32197        - Added OVERRIDE keywords.
32198        - Toned down FIXMEs about single MessagePort versions of functions. It's not a given
32199        that we'll want to get rid of them even when implementing array versions.
32200        - Explicitly marked virtual destructors as virtual.
32201
32202        * dom/MessageEvent.cpp:
32203        * dom/MessageEvent.h:
32204        * workers/Worker.cpp:
32205        * workers/Worker.h:
32206        Removed an unused version of postMessage() that took no MessagePorts. This makes
32207        it less confusing why MessagePortArray is passed by pointer, and not by reference.
32208
32209        * workers/DedicatedWorkerContext.cpp:
32210        (WebCore::DedicatedWorkerContext::~DedicatedWorkerContext):
32211        * workers/DedicatedWorkerContext.h:
32212        Added a destructor instead of an implicit one.
32213        Removed an unused version of postMessage() that took no MessagePorts.
32214
32215        * workers/SharedWorker.h: Removed an unused virtual function (thank you OVERRIDE!)
32216
32217        * dom/MessagePort.cpp:
32218        * dom/MessagePort.h:
32219        * loader/WorkerThreadableLoader.h:
32220        * page/DOMWindow.h:
32221        * workers/AbstractWorker.h:
32222        * workers/DedicatedWorkerThread.h:
32223        * workers/SharedWorkerContext.h:
32224        * workers/SharedWorkerThread.h:
32225        * workers/WorkerContext.h:
32226        * workers/WorkerMessagingProxy.h:
32227        * workers/WorkerObjectProxy.h:
32228        * workers/WorkerScriptLoader.h:
32229
322302013-03-15  Joshua Bell  <jsbell@chromium.org>
32231
32232        [V8] Binding: Implement EnforceRange IDL Attribute for long long conversions
32233        https://bugs.webkit.org/show_bug.cgi?id=96798
32234
32235        Reviewed by Kentaro Hara.
32236
32237        Implement [EnforceRange] attribute for V8 bindings, which specifies throwing behavior
32238        on conversions outside int/uint 32/64 ranges and edge cases like NaNs and Infinities.
32239        Conversely, conversions without this attribute should *not* throw.
32240
32241        Tests: fast/js/webidl-type-mapping.html:
32242               fast/dom/non-numeric-values-numeric-parameters.html
32243               fast/js/script-tests/select-options-add.html
32244               storage/indexeddb/intversion-bad-parameters.html
32245
32246        * Modules/indexeddb/IDBCursor.cpp: Remove custom range enforcement for advance()
32247        * Modules/indexeddb/IDBCursor.h: Adjust type to match WebIDL.
32248        * Modules/indexeddb/IDBCursor.idl: Specify [EnforceRange] and type matches spec WebIDL.
32249        * Modules/indexeddb/IDBFactory.cpp: Remove custom range enforcement for open()
32250        * Modules/indexeddb/IDBFactory.h: Adjust type to match WebIDL.
32251        * Modules/indexeddb/IDBFactory.idl: Specify [EnforceRange] and type matches spec WebIDL.
32252        * bindings/scripts/CodeGeneratorJS.pm:
32253        (JSValueToNative): Add FIXME to support [EnforceRange]
32254        * bindings/scripts/CodeGeneratorV8.pm:
32255        (GenerateNormalAttrSetter): Handle [EnforceRange] in attribute setters
32256        (GenerateParametersCheck): Handle [EnforceRange] in parameters.
32257        (JSValueToNative): Pass EnforceRange to toInt() functions as appropriate.
32258        * bindings/scripts/IDLAttributes.txt:
32259        * bindings/scripts/test/TestObj.idl: Tests w/ [EnforceRange]
32260        * bindings/scripts/test/V8/V8TestObj.cpp: Updated expectations
32261        * bindings/scripts/test/V8/V8TestTypedefs.cpp: Updated expectations.
32262        * bindings/v8/V8Binding.cpp: Overloads for toInt() variants that handle constraints.
32263        (WebCore::toInt32):
32264        (WebCore::toUInt32):
32265        (WebCore::toInt64):
32266        (WebCore::toUInt64):
32267        * bindings/v8/V8Binding.h: Ditto, plus helpers for callers not expecting errors.
32268        (WebCore::toInt32):
32269        (WebCore::toUInt32):
32270        (WebCore::toInt64):
32271        (WebCore::toUInt64):
32272        * bindings/v8/V8BindingMacros.h: Helper macros for type conversions that may throw.
32273        * testing/TypeConversions.h: Added new members with EnforceRange constraint.
32274        * testing/TypeConversions.idl: Ditto.
32275
322762013-03-15  Eugene Klyuchnikov  <eustas@chromium.org>
32277
32278        Web Inspector: [Network] Refine JSDocs in NetworkRequest.js
32279        https://bugs.webkit.org/show_bug.cgi?id=112412
32280
32281        Reviewed by Vsevolod Vlasov.
32282
32283        Return types for some members are confusing (Object).
32284
32285        * inspector/front-end/NetworkManager.js: Fixed JSDocs.
32286        * inspector/front-end/NetworkRequest.js: Ditto. Plus minor refactorings.
32287
322882013-03-15  Andy Estes  <aestes@apple.com>
32289
32290        REGRESSION (r127277): CSS URIs with multi-byte Unicode escape sequences fail to parse
32291        https://bugs.webkit.org/show_bug.cgi?id=112436
32292
32293        Reviewed by Michael Saboff.
32294
32295        r127277 modified the CSS parser to use 8-bit strings when possible.
32296        However, it failed to handle URIs that contain Unicode escape sequences
32297        that expand to multi-byte characters. Not only would the URI fail to
32298        parse, but so would the remainder of the input string.
32299
32300        Fix this by producing a 16-bit result when we detect a URI with a
32301        multi-byte Unicode escape, like we do for identifiers and other strings.
32302
32303        Test: fast/css/url-with-multi-byte-unicode-escape.html
32304
32305        * css/CSSParser.cpp:
32306        (WebCore::checkAndSkipString): Changed to be a free function since it
32307        doesn't access CSSParser's internal state.
32308        (WebCore::CSSParser::findURI): Added a function that consolidates the
32309        logic of finding the start and end pointers of the URI and the quote
32310        character (if encountered), starting at the current character.
32311        (WebCore::CSSParser::parseURIInternal): Removed duplicated logic for
32312        finding the URI bounds (this now lives in findURI()) and logic for
32313        setting the token type and updating the current character (this now
32314        lives in parseURI()).
32315        (WebCore::CSSParser::parseURI): Find the URI and parse it. If a
32316        multi-byte Unicode escape is encountered, rewind to the beginning of
32317        the URI and re-parse with a 16-bit string as the destination.
32318        * css/CSSParser.h:
32319
323202013-03-15  Andreas Kling  <akling@apple.com>
32321
32322        [JSC] Remove custom WebAudio mark functions that we can generate instead.
32323        <http://webkit.org/b/110976>
32324
32325        Reviewed by Eric Carlson.
32326
32327        Remove custom JSC mark functions for AudioContext and ScriptProcessorNode since they
32328        are trivial to generate.
32329
32330        * Modules/webaudio/AudioContext.idl:
32331        * Modules/webaudio/ScriptProcessorNode.idl:
32332        * GNUmakefile.list.am:
32333        * UseJSC.cmake:
32334        * WebCore.xcodeproj/project.pbxproj:
32335        * bindings/js/JSAudioContextCustom.cpp:
32336        * bindings/js/JSScriptProcessorNodeCustom.cpp: Removed.
32337
323382013-03-15  Jer Noble  <jer.noble@apple.com>
32339
32340        Unreviewed build fix. Rename local variable which was colliding with class method.
32341
32342        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
32343        (PlatformCALayer::clone):
32344
323452013-03-15  Joshua Bell  <jsbell@chromium.org>
32346
32347        IndexedDB: Handle success events arriving after context stopped
32348        https://bugs.webkit.org/show_bug.cgi?id=112451
32349
32350        Reviewed by Tony Chang.
32351
32352        In multiprocess ports, events from the back-end can arrive in the form of
32353        onXXX() calls after the script execution context has stopped. These need to
32354        be ignored. This was already done in most cases, but missing for two overloads
32355        of IDBRequest::onSuccess() - void and int64_t.
32356
32357        Test: webkit_unit_test IDBRequestTest.EventsAfterStopping
32358
32359        * Modules/indexeddb/IDBRequest.cpp:
32360        (WebCore::IDBRequest::onSuccess): Early return if context has stopped.
32361        (WebCore::IDBRequest::onSuccessInternal): ASSERT() that callers have checked context.
32362
323632013-03-14  Jer Noble  <jer.noble@apple.com>
32364
32365        REGRESSION: -webkit-box-reflect does not show on video elements
32366        https://bugs.webkit.org/show_bug.cgi?id=112397
32367
32368        Reviewed by Simon Fraser.
32369
32370        Test: compositing/video/video-reflection.html
32371
32372        Support cloning specific CALayer subtypes in PlatformCALayer,
32373        which allows reflections to work correctly for those layer types.
32374        Specifically, add support for cloning AVPlayerLayer layers.
32375
32376        * platform/graphics/ca/GraphicsLayerCA.cpp:
32377        (WebCore::GraphicsLayerCA::cloneLayer): Moved most of the
32378            implementation to PlatformCALayer::clone().
32379        * platform/graphics/ca/PlatformCALayer.h:
32380        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
32381        (PlatformCALayer::PlatformCALayer): Set the layerType to 
32382            LayerTypeAVPlayerLayer if the PlatformLayer parameter is an
32383            AVPlayerLayer.
32384        (PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
32385            Copy the player value to the new layer, if the current layer is
32386            a LayerTypeAVPlayerLayer.
32387        (PlatformCALayer::playerLayer):
32388        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
32389        (PlatformCALayer::clone): Moved from GraphicsLayerCA::cloneLayer().
32390            May want to add support for AVCFPlayerLayers in the future.
32391
323922013-03-15  Nate Chapin  <japhet@chromium.org>
32393
32394        Hide MainResourceLoader from the outside world
32395        https://bugs.webkit.org/show_bug.cgi?id=109971
32396
32397        Reviewed by Adam Barth.
32398
32399        No new tests, refactor only.
32400
32401        * WebCore.exp.in:
32402        * dom/Document.cpp:
32403        * html/HTMLEmbedElement.cpp:
32404        * html/MediaDocument.cpp:
32405        * html/PluginDocument.cpp:
32406        * loader/DocumentLoader.cpp:
32407        (WebCore::DocumentLoader::mainResourceLoader):
32408        (WebCore::DocumentLoader::finishedLoading):
32409        (WebCore::DocumentLoader::receivedData):
32410        (WebCore::DocumentLoader::setMainResourceDataBufferingPolicy):
32411        * loader/DocumentLoader.h:
32412        * loader/EmptyClients.h:
32413        * loader/FrameLoader.cpp:
32414        * loader/FrameLoaderClient.h:
32415        * loader/MainResourceLoader.cpp:
32416        * loader/appcache/ApplicationCacheGroup.cpp:
32417        * loader/appcache/ApplicationCacheHost.cpp:
32418
324192013-03-15  Abhishek Arya  <inferno@chromium.org>
32420
32421        Replace static_casts with to* helper functions.
32422        https://bugs.webkit.org/show_bug.cgi?id=112401
32423
32424        Reviewed by Stephen Chenney.
32425
32426        to* helper functions are preferred over static_cast calls since they
32427        help to catch bad casts easily on the testing infrastructure.
32428
32429        * accessibility/AccessibilityObject.cpp:
32430        (WebCore::appendAccessibilityObject):
32431        * accessibility/AccessibilityRenderObject.cpp:
32432        (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
32433        * accessibility/AccessibilityScrollView.cpp:
32434        (WebCore::AccessibilityScrollView::webAreaObject):
32435        (WebCore::AccessibilityScrollView::documentFrameView):
32436        (WebCore::AccessibilityScrollView::parentObject):
32437        (WebCore::AccessibilityScrollView::parentObjectIfExists):
32438        * accessibility/chromium/AXObjectCacheChromium.cpp:
32439        (WebCore::AXObjectCache::postPlatformNotification):
32440        * bindings/js/JSPluginElementFunctions.cpp:
32441        (WebCore::pluginScriptObjectFromPluginViewBase):
32442        * bindings/js/PageScriptDebugServer.cpp:
32443        (WebCore::PageScriptDebugServer::setJavaScriptPaused):
32444        * bindings/js/ScriptController.cpp:
32445        (WebCore::ScriptController::createScriptInstanceForWidget):
32446        * bindings/js/ScriptControllerQt.cpp:
32447        (WebCore::ScriptController::createScriptInstanceForWidget):
32448        * bindings/v8/ScriptController.cpp:
32449        (WebCore::ScriptController::createScriptInstanceForWidget):
32450        * html/HTMLObjectElement.cpp:
32451        (WebCore::HTMLObjectElement::appendFormData):
32452        * page/EventHandler.cpp:
32453        (WebCore::EventHandler::subframeForTargetNode):
32454        (WebCore::EventHandler::passGestureEventToWidget):
32455        * page/Frame.cpp:
32456        (WebCore::Frame::frameForWidget):
32457        * page/FrameView.cpp:
32458        (WebCore::collectFrameViewChildren):
32459        (WebCore::FrameView::hasCustomScrollbars):
32460        (WebCore::FrameView::convertToContainingView):
32461        (WebCore::FrameView::convertFromContainingView):
32462        (WebCore::FrameView::removeChild):
32463        * page/FrameView.h:
32464        (WebCore::toFrameView):
32465        (WebCore):
32466        * page/Page.cpp:
32467        (WebCore::Page::collectPluginViews):
32468        * page/chromium/EventHandlerChromium.cpp:
32469        (WebCore::EventHandler::passWheelEventToWidget):
32470        * page/efl/EventHandlerEfl.cpp:
32471        (WebCore::EventHandler::passWheelEventToWidget):
32472        * page/gtk/EventHandlerGtk.cpp:
32473        (WebCore::EventHandler::passWheelEventToWidget):
32474        * page/mac/EventHandlerMac.mm:
32475        (WebCore::EventHandler::passWheelEventToWidget):
32476        * page/qt/EventHandlerQt.cpp:
32477        (WebCore::EventHandler::passWheelEventToWidget):
32478        * page/scrolling/ScrollingCoordinator.cpp:
32479        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
32480        * page/win/EventHandlerWin.cpp:
32481        (WebCore::EventHandler::passWheelEventToWidget):
32482        * page/wx/EventHandlerWx.cpp:
32483        (WebCore::EventHandler::passWheelEventToWidget):
32484        * platform/ScrollView.h:
32485        (WebCore::toScrollView):
32486        (WebCore):
32487        * platform/Scrollbar.cpp:
32488        (WebCore::Scrollbar::isScrollViewScrollbar):
32489        (WebCore::Scrollbar::mouseUp):
32490        (WebCore::Scrollbar::axObjectCache):
32491        * platform/Widget.h:
32492        (WebCore::Widget::isScrollView):
32493        * platform/blackberry/PlatformScreenBlackBerry.cpp:
32494        (WebCore::toUserSpace):
32495        * platform/efl/ScrollbarEfl.cpp:
32496        (ScrollbarEfl::setParent):
32497        * platform/qt/PlatformSupportQt.cpp:
32498        (WebCore::PlatformSupport::popupsAllowed):
32499        (WebCore::PlatformSupport::pluginScriptableObject):
32500        * plugins/IFrameShimSupport.cpp:
32501        (WebCore::getPluginOcclusions):
32502        * plugins/PluginView.h:
32503        (WebCore::toPluginView):
32504        (WebCore):
32505        * plugins/PluginViewBase.h:
32506        (WebCore::PluginViewBase::isPluginViewBase):
32507        (PluginViewBase):
32508        (WebCore::toPluginViewBase):
32509        (WebCore):
32510        * plugins/blackberry/PluginViewBlackBerry.cpp:
32511        (WebCore::PluginView::updatePluginWidget):
32512        (WebCore::PluginView::updateBuffer):
32513        (WebCore::PluginView::paint):
32514        (WebCore::PluginView::handleScrollEvent):
32515        (WebCore::PluginView::calculateClipRect):
32516        (WebCore::PluginView::handleFullScreenAllowedEvent):
32517        (WebCore::PluginView::handleFullScreenExitEvent):
32518        (WebCore::PluginView::setParent):
32519        (WebCore::PluginView::setNPWindowIfNeeded):
32520        (WebCore::PluginView::platformGetValue):
32521        (WebCore::PluginView::platformStart):
32522        (WebCore::PluginView::platformDestroy):
32523        (WebCore::PluginView::setBackgroundPlay):
32524        * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
32525        (WebCore::PluginViewPrivate::setVisibleRects):
32526        (WebCore::PluginViewPrivate::showKeyboard):
32527        (WebCore::PluginViewPrivate::requestFullScreen):
32528        (WebCore::PluginViewPrivate::requestCenterFitZoom):
32529        (WebCore::PluginViewPrivate::lockOrientation):
32530        (WebCore::PluginViewPrivate::unlockOrientation):
32531        (WebCore::PluginViewPrivate::preventIdle):
32532        * plugins/gtk/PluginViewGtk.cpp:
32533        (WebCore::PluginView::updatePluginWidget):
32534        * plugins/mac/PluginViewMac.mm:
32535        (WebCore::PluginView::platformStart):
32536        * plugins/qt/PluginViewQt.cpp:
32537        (WebCore::PluginView::updatePluginWidget):
32538        * plugins/win/PluginViewWin.cpp:
32539        (WebCore::PluginView::updatePluginWidget):
32540        (WebCore::PluginView::paintIntoTransformedContext):
32541        (WebCore::PluginView::paintWindowedPluginIntoContext):
32542        (WebCore::PluginView::paint):
32543        (WebCore::PluginView::handleMouseEvent):
32544        (WebCore::PluginView::setNPWindowRect):
32545        (WebCore::PluginView::snapshot):
32546        * rendering/RenderBox.cpp:
32547        (WebCore::RenderBox::addLayoutOverflow):
32548        * rendering/RenderBoxModelObject.cpp:
32549        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
32550        * rendering/RenderEmbeddedObject.cpp:
32551        (WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing):
32552        (WebCore::RenderEmbeddedObject::viewCleared):
32553        (WebCore::RenderEmbeddedObject::nodeAtPoint):
32554        (WebCore::RenderEmbeddedObject::scroll):
32555        * rendering/RenderFlexibleBox.h:
32556        (WebCore::toRenderFlexibleBox):
32557        (WebCore):
32558        * rendering/RenderFrame.cpp:
32559        (WebCore::RenderFrame::viewCleared):
32560        * rendering/RenderFrameBase.cpp:
32561        (WebCore::RenderFrameBase::layoutWithFlattening):
32562        * rendering/RenderIFrame.cpp:
32563        (WebCore::RenderIFrame::contentRootRenderer):
32564        (WebCore::RenderIFrame::layoutSeamlessly):
32565        * rendering/RenderLayerBacking.cpp:
32566        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
32567        * rendering/RenderLayerCompositor.cpp:
32568        (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
32569        * rendering/RenderPart.cpp:
32570        (WebCore::RenderPart::requiresAcceleratedCompositing):
32571        (WebCore::RenderPart::embeddedContentBox):
32572        (WebCore::RenderPart::nodeAtPoint):
32573        * rendering/RenderRuby.cpp:
32574        (WebCore::rubyBeforeBlock):
32575        (WebCore::rubyAfterBlock):
32576        (WebCore::lastRubyRun):
32577        (WebCore::findRubyRunParent):
32578        * rendering/RenderTreeAsText.cpp:
32579        (WebCore::write):
32580        * rendering/RenderWidget.cpp:
32581        (WebCore::RenderWidget::paintContents):
32582        (WebCore::RenderWidget::setOverlapTestResult):
32583        (WebCore::RenderWidget::updateWidgetPosition):
32584
325852013-03-15  No'am Rosenthal  <noam@webkit.org>
32586
32587        [Texmap] REGRESSION (r144190): Failure at style with preserve-3d and opacity
32588        https://bugs.webkit.org/show_bug.cgi?id=112370
32589
32590        According to spec, we avoid masking and clipping when preserves-3d is enabled.
32591        However, opacity should still work.
32592        Allowing opacity when preserves-3d is on.
32593
32594        Reviewed by Caio Marcelo de Oliveira Filho.
32595
32596        Test: compositing/overlap-blending/preserves3d-opacity.html
32597
32598        * platform/graphics/texmap/TextureMapperGL.cpp:
32599        * platform/graphics/texmap/TextureMapperLayer.cpp:
32600        (WebCore::TextureMapperLayer::paintRecursive):
32601
326022013-03-15  Konrad Piascik  <kpiascik@blackberry.com>
32603
32604        Get rid of useless forward declaration.
32605        https://bugs.webkit.org/show_bug.cgi?id=112449
32606
32607        Reviewed by Stephen Chenney.
32608
32609        No behavioural change 
32610
32611        * svg/SVGRectElement.cpp:
32612
326132013-03-15  Alexei Filippov  <alph@chromium.org>
32614
32615        Web Inspector: make CPU profiler show timings using the same time unit [ms]
32616        https://bugs.webkit.org/show_bug.cgi?id=112356
32617
32618        That makes it much easier to compare values when looking at the data.
32619
32620        Reviewed by Yury Semikhatsky.
32621
32622        * inspector/front-end/ProfileDataGridTree.js:
32623        (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
32624
326252013-03-15  Peter Beverloo  <peter@chromium.org>
32626
32627        Implement support for nullable types in the bindings generator
32628        https://bugs.webkit.org/show_bug.cgi?id=111728
32629
32630        Reviewed by Kentaro Hara.
32631
32632        This patch adds support for nullable types in the bindings
32633        generator, as described in section 3.10.22 of WebIDL:
32634            http://dev.w3.org/2006/webapi/WebIDL/#idl-nullable-type
32635
32636        interface MyInterface {
32637            readonly attribute boolean? value; // true, false or null.
32638        };
32639
32640        The IDL Parser has been modified to record whether attributes are
32641        nullable. Question marks from the type will always be stripped
32642        from the domAttribute->signature->type field. Once support for
32643        this has been completely implemented, we'll be able to remove a
32644        bunch of custom bindings, i.e. those of Device Orientation.
32645
32646        Any getter for an attribute which returns a nullable type will be
32647        called with an additional attribute (passed by reference) named
32648        "isNull". This will be the last argument passed to the method,
32649        unless an exception code (ec) argument will be passed as well.
32650
32651        The CPP, GObject and ObjC bindings will not change behavior following
32652        this patch, although they have been modified to call the WebCore
32653        methods for nullable attributes with the correct signature. The
32654        V8 and JS binding generators do have modified behavior, in that they
32655        will actually return v8Null/jsNull when isNull == true.
32656
32657        Tested by existing binding tests and the new nullable attribute
32658        tests in the bindings/scripts/test/ directory.
32659
32660        * bindings/scripts/CodeGeneratorCPP.pm:
32661        (GenerateImplementation):
32662        * bindings/scripts/CodeGeneratorGObject.pm:
32663        (GenerateProperty):
32664        (GenerateFunction):
32665        * bindings/scripts/CodeGeneratorJS.pm:
32666        (GenerateImplementation):
32667        * bindings/scripts/CodeGeneratorObjC.pm:
32668        (GenerateImplementation):
32669        * bindings/scripts/CodeGeneratorV8.pm:
32670        (GenerateNormalAttrGetter):
32671        * bindings/scripts/IDLParser.pm:
32672        (typeHasNullableSuffix):
32673        (typeRemoveNullableSuffix):
32674        (parseAttributeRest):
32675        (parseOptionalOrRequiredArgument):
32676        (parseAttributeRestOld):
32677        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
32678        (WebDOMTestObj::nullableDoubleAttribute):
32679        (WebDOMTestObj::nullableLongAttribute):
32680        (WebDOMTestObj::nullableBooleanAttribute):
32681        (WebDOMTestObj::nullableStringAttribute):
32682        (WebDOMTestObj::nullableLongSettableAttribute):
32683        (WebDOMTestObj::setNullableLongSettableAttribute):
32684        (WebDOMTestObj::nullableStringValue):
32685        (WebDOMTestObj::setNullableStringValue):
32686        * bindings/scripts/test/CPP/WebDOMTestObj.h:
32687        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32688        (webkit_dom_test_obj_set_property):
32689        (webkit_dom_test_obj_get_property):
32690        (webkit_dom_test_obj_class_init):
32691        (webkit_dom_test_obj_get_nullable_double_attribute):
32692        (webkit_dom_test_obj_get_nullable_long_attribute):
32693        (webkit_dom_test_obj_get_nullable_boolean_attribute):
32694        (webkit_dom_test_obj_get_nullable_string_attribute):
32695        (webkit_dom_test_obj_get_nullable_long_settable_attribute):
32696        (webkit_dom_test_obj_set_nullable_long_settable_attribute):
32697        (webkit_dom_test_obj_get_nullable_string_value):
32698        (webkit_dom_test_obj_set_nullable_string_value):
32699        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
32700        * bindings/scripts/test/JS/JSTestObj.cpp:
32701        (WebCore):
32702        (WebCore::jsTestObjNullableDoubleAttribute):
32703        (WebCore::jsTestObjNullableLongAttribute):
32704        (WebCore::jsTestObjNullableBooleanAttribute):
32705        (WebCore::jsTestObjNullableStringAttribute):
32706        (WebCore::jsTestObjNullableLongSettableAttribute):
32707        (WebCore::jsTestObjNullableStringValue):
32708        (WebCore::setJSTestObjNullableLongSettableAttribute):
32709        (WebCore::setJSTestObjNullableStringValue):
32710        * bindings/scripts/test/JS/JSTestObj.h:
32711        (WebCore):
32712        * bindings/scripts/test/ObjC/DOMTestObj.h:
32713        * bindings/scripts/test/ObjC/DOMTestObj.mm:
32714        (-[DOMTestObj nullableDoubleAttribute]):
32715        (-[DOMTestObj nullableLongAttribute]):
32716        (-[DOMTestObj nullableBooleanAttribute]):
32717        (-[DOMTestObj nullableStringAttribute]):
32718        (-[DOMTestObj nullableLongSettableAttribute]):
32719        (-[DOMTestObj setNullableLongSettableAttribute:]):
32720        (-[DOMTestObj nullableStringValue]):
32721        (-[DOMTestObj setNullableStringValue:]):
32722        * bindings/scripts/test/TestObj.idl:
32723        * bindings/scripts/test/V8/V8TestObj.cpp:
32724        (WebCore::TestObjV8Internal::nullableDoubleAttributeAttrGetter):
32725        (TestObjV8Internal):
32726        (WebCore::TestObjV8Internal::nullableDoubleAttributeAttrGetterCallback):
32727        (WebCore::TestObjV8Internal::nullableLongAttributeAttrGetter):
32728        (WebCore::TestObjV8Internal::nullableLongAttributeAttrGetterCallback):
32729        (WebCore::TestObjV8Internal::nullableBooleanAttributeAttrGetter):
32730        (WebCore::TestObjV8Internal::nullableBooleanAttributeAttrGetterCallback):
32731        (WebCore::TestObjV8Internal::nullableStringAttributeAttrGetter):
32732        (WebCore::TestObjV8Internal::nullableStringAttributeAttrGetterCallback):
32733        (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrGetter):
32734        (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrGetterCallback):
32735        (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetter):
32736        (WebCore::TestObjV8Internal::nullableLongSettableAttributeAttrSetterCallback):
32737        (WebCore::TestObjV8Internal::nullableStringValueAttrGetter):
32738        (WebCore::TestObjV8Internal::nullableStringValueAttrGetterCallback):
32739        (WebCore::TestObjV8Internal::nullableStringValueAttrSetter):
32740        (WebCore::TestObjV8Internal::nullableStringValueAttrSetterCallback):
32741        (WebCore):
32742
327432013-03-15  Marja Hölttä  <marja@chromium.org>
32744
32745        [V8] Store main world and non-main world templates separately.
32746        https://bugs.webkit.org/show_bug.cgi?id=111724
32747
32748        Reviewed by Jochen Eisinger.
32749
32750        This is needed for generating specialized bindings for the main
32751        world (bug 110874).
32752
32753        No new tests (updated existing bindings tests).
32754
32755        * bindings/scripts/CodeGeneratorV8.pm:
32756        (GenerateHeader):
32757        (GenerateDomainSafeFunctionGetter):
32758        (GenerateNormalAttrSetter):
32759        (GenerateParametersCheckExpression):
32760        (GenerateParametersCheck):
32761        (GenerateImplementation):
32762        (JSValueToNative):
32763        (CreateCustomSignature):
32764        * bindings/scripts/test/V8/V8Float64Array.cpp:
32765        (WebCore::Float64ArrayV8Internal::fooMethod):
32766        (WebCore::ConfigureV8Float64ArrayTemplate):
32767        (WebCore::V8Float64Array::GetTemplate):
32768        (WebCore::V8Float64Array::HasInstance):
32769        (WebCore):
32770        (WebCore::V8Float64Array::HasInstanceInAnyWorld):
32771        * bindings/scripts/test/V8/V8Float64Array.h:
32772        (V8Float64Array):
32773        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
32774        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
32775        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
32776        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
32777        (WebCore::V8TestActiveDOMObject::GetTemplate):
32778        (WebCore::V8TestActiveDOMObject::HasInstance):
32779        (WebCore):
32780        (WebCore::V8TestActiveDOMObject::HasInstanceInAnyWorld):
32781        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
32782        (V8TestActiveDOMObject):
32783        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
32784        (WebCore::V8TestCustomNamedGetter::GetTemplate):
32785        (WebCore::V8TestCustomNamedGetter::HasInstance):
32786        (WebCore):
32787        (WebCore::V8TestCustomNamedGetter::HasInstanceInAnyWorld):
32788        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
32789        (V8TestCustomNamedGetter):
32790        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
32791        (WebCore::V8TestEventConstructor::GetTemplate):
32792        (WebCore::V8TestEventConstructor::HasInstance):
32793        (WebCore):
32794        (WebCore::V8TestEventConstructor::HasInstanceInAnyWorld):
32795        * bindings/scripts/test/V8/V8TestEventConstructor.h:
32796        (V8TestEventConstructor):
32797        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
32798        (WebCore::TestEventTargetV8Internal::dispatchEventMethod):
32799        (WebCore::ConfigureV8TestEventTargetTemplate):
32800        (WebCore::V8TestEventTarget::GetTemplate):
32801        (WebCore::V8TestEventTarget::HasInstance):
32802        (WebCore):
32803        (WebCore::V8TestEventTarget::HasInstanceInAnyWorld):
32804        * bindings/scripts/test/V8/V8TestEventTarget.h:
32805        (V8TestEventTarget):
32806        * bindings/scripts/test/V8/V8TestException.cpp:
32807        (WebCore::V8TestException::GetTemplate):
32808        (WebCore::V8TestException::HasInstance):
32809        (WebCore):
32810        (WebCore::V8TestException::HasInstanceInAnyWorld):
32811        * bindings/scripts/test/V8/V8TestException.h:
32812        (V8TestException):
32813        * bindings/scripts/test/V8/V8TestInterface.cpp:
32814        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
32815        (WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
32816        (WebCore::ConfigureV8TestInterfaceTemplate):
32817        (WebCore::V8TestInterface::GetTemplate):
32818        (WebCore::V8TestInterface::HasInstance):
32819        (WebCore):
32820        (WebCore::V8TestInterface::HasInstanceInAnyWorld):
32821        * bindings/scripts/test/V8/V8TestInterface.h:
32822        (V8TestInterface):
32823        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
32824        (WebCore::V8TestMediaQueryListListener::GetTemplate):
32825        (WebCore::V8TestMediaQueryListListener::HasInstance):
32826        (WebCore):
32827        (WebCore::V8TestMediaQueryListListener::HasInstanceInAnyWorld):
32828        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
32829        (V8TestMediaQueryListListener):
32830        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
32831        (WebCore::V8TestNamedConstructor::GetTemplate):
32832        (WebCore::V8TestNamedConstructor::HasInstance):
32833        (WebCore):
32834        (WebCore::V8TestNamedConstructor::HasInstanceInAnyWorld):
32835        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
32836        (V8TestNamedConstructor):
32837        * bindings/scripts/test/V8/V8TestNode.cpp:
32838        (WebCore::V8TestNode::GetTemplate):
32839        (WebCore::V8TestNode::HasInstance):
32840        (WebCore):
32841        (WebCore::V8TestNode::HasInstanceInAnyWorld):
32842        * bindings/scripts/test/V8/V8TestNode.h:
32843        (V8TestNode):
32844        * bindings/scripts/test/V8/V8TestObj.cpp:
32845        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
32846        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
32847        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
32848        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
32849        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
32850        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
32851        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
32852        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
32853        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
32854        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
32855        (WebCore::TestObjV8Internal::mutablePointAttrSetter):
32856        (WebCore::TestObjV8Internal::immutablePointAttrSetter):
32857        (WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
32858        (WebCore::TestObjV8Internal::longMethodWithArgsMethod):
32859        (WebCore::TestObjV8Internal::objMethodWithArgsMethod):
32860        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
32861        (WebCore::TestObjV8Internal::overloadedMethod1Method):
32862        (WebCore::TestObjV8Internal::overloadedMethod2Method):
32863        (WebCore::TestObjV8Internal::overloadedMethod8Method):
32864        (WebCore::TestObjV8Internal::overloadedMethodMethod):
32865        (WebCore::TestObjV8Internal::convert1Method):
32866        (WebCore::TestObjV8Internal::convert2Method):
32867        (WebCore::TestObjV8Internal::convert4Method):
32868        (WebCore::TestObjV8Internal::convert5Method):
32869        (WebCore::TestObjV8Internal::variadicNodeMethodMethod):
32870        (WebCore::ConfigureV8TestObjTemplate):
32871        (WebCore::V8TestObj::GetTemplate):
32872        (WebCore::V8TestObj::HasInstance):
32873        (WebCore):
32874        (WebCore::V8TestObj::HasInstanceInAnyWorld):
32875        * bindings/scripts/test/V8/V8TestObj.h:
32876        (V8TestObj):
32877        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
32878        (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
32879        (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
32880        (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
32881        (WebCore::TestOverloadedConstructorsV8Internal::constructor):
32882        (WebCore::V8TestOverloadedConstructors::GetTemplate):
32883        (WebCore::V8TestOverloadedConstructors::HasInstance):
32884        (WebCore):
32885        (WebCore::V8TestOverloadedConstructors::HasInstanceInAnyWorld):
32886        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
32887        (V8TestOverloadedConstructors):
32888        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
32889        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
32890        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
32891        (WebCore):
32892        (WebCore::V8TestSerializedScriptValueInterface::HasInstanceInAnyWorld):
32893        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
32894        (V8TestSerializedScriptValueInterface):
32895        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
32896        (WebCore::TestTypedefsV8Internal::funcMethod):
32897        (WebCore::ConfigureV8TestTypedefsTemplate):
32898        (WebCore::V8TestTypedefs::GetTemplate):
32899        (WebCore::V8TestTypedefs::HasInstance):
32900        (WebCore):
32901        (WebCore::V8TestTypedefs::HasInstanceInAnyWorld):
32902        * bindings/scripts/test/V8/V8TestTypedefs.h:
32903        (V8TestTypedefs):
32904        * bindings/v8/Dictionary.cpp:
32905        (WebCore::Dictionary::get):
32906        * bindings/v8/ScriptProfiler.cpp:
32907        (WebCore::ScriptProfiler::visitNodeWrappers):
32908        * bindings/v8/SerializedScriptValue.cpp:
32909        * bindings/v8/V8AdaptorFunction.cpp:
32910        (WebCore::V8AdaptorFunction::getTemplate):
32911        * bindings/v8/V8Binding.cpp:
32912        (WebCore::toDOMStringList):
32913        (WebCore::toXPathNSResolver):
32914        * bindings/v8/V8Binding.h:
32915        (WebCore):
32916        (WebCore::toRefPtrNativeArray):
32917        * bindings/v8/V8Collection.cpp:
32918        (WebCore::toOptionsCollectionSetter):
32919        * bindings/v8/V8GCController.cpp:
32920        * bindings/v8/V8NPObject.cpp:
32921        (WebCore::npObjectInvokeImpl):
32922        * bindings/v8/V8PerIsolateData.cpp:
32923        (WebCore::V8PerIsolateData::reportMemoryUsage):
32924        (WebCore::V8PerIsolateData::hasPrivateTemplate):
32925        (WebCore::V8PerIsolateData::privateTemplate):
32926        (WebCore::V8PerIsolateData::rawTemplate):
32927        (WebCore::V8PerIsolateData::hasInstance):
32928        * bindings/v8/V8PerIsolateData.h:
32929        (WebCore::V8PerIsolateData::rawTemplateMap):
32930        (V8PerIsolateData):
32931        (WebCore::V8PerIsolateData::templateMap):
32932        * bindings/v8/V8Utilities.cpp:
32933        (WebCore::extractTransferables):
32934        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
32935        (WebCore::constructWebGLArray):
32936        (WebCore::setWebGLArrayHelper):
32937        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
32938        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
32939        * bindings/v8/custom/V8BlobCustom.cpp:
32940        (WebCore::V8Blob::constructorCustom):
32941        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
32942        (WebCore::toCanvasStyle):
32943        * bindings/v8/custom/V8ClipboardCustom.cpp:
32944        (WebCore::V8Clipboard::setDragImageMethodCustom):
32945        * bindings/v8/custom/V8CryptoCustom.cpp:
32946        (WebCore::V8Crypto::getRandomValuesMethodCustom):
32947        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
32948        (WebCore::V8DOMFormData::constructorCustom):
32949        (WebCore::V8DOMFormData::appendMethodCustom):
32950        * bindings/v8/custom/V8DataViewCustom.cpp:
32951        (WebCore::V8DataView::constructorCustom):
32952        * bindings/v8/custom/V8DocumentCustom.cpp:
32953        (WebCore::V8Document::evaluateMethodCustom):
32954        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
32955        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
32956        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
32957        (WebCore::V8HTMLOptionsCollection::addMethodCustom):
32958        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
32959        (WebCore::removeElement):
32960        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
32961        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
32962        (WebCore::V8InjectedScriptHost::typeMethodCustom):
32963        (WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
32964        * bindings/v8/custom/V8LocationCustom.cpp:
32965        (WebCore::V8Location::reloadAttrGetterCustom):
32966        (WebCore::V8Location::replaceAttrGetterCustom):
32967        (WebCore::V8Location::assignAttrGetterCustom):
32968        * bindings/v8/custom/V8NodeCustom.cpp:
32969        (WebCore::V8Node::insertBeforeMethodCustom):
32970        (WebCore::V8Node::replaceChildMethodCustom):
32971        (WebCore::V8Node::removeChildMethodCustom):
32972        (WebCore::V8Node::appendChildMethodCustom):
32973        * bindings/v8/custom/V8NodeListCustom.cpp:
32974        (WebCore::V8NodeList::opaqueRootForGC):
32975        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
32976        (WebCore::toWebGLUniformLocation):
32977        (WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
32978        (WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
32979        (WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
32980        (WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
32981        (WebCore::vertexAttribAndUniformHelperf):
32982        (WebCore::uniformHelperi):
32983        (WebCore::uniformMatrixHelper):
32984        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
32985        (WebCore::isDocumentType):
32986        (WebCore::V8XMLHttpRequest::sendMethodCustom):
32987
329882013-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
32989
32990        Unreviewed, rolling out r145802.
32991        http://trac.webkit.org/changeset/145802
32992        https://bugs.webkit.org/show_bug.cgi?id=112444
32993
32994        This broke Chrome. (Requested by marja____ on #webkit).
32995
32996        * bindings/scripts/CodeGeneratorV8.pm:
32997        (GenerateHeader):
32998        (GenerateDomainSafeFunctionGetter):
32999        (GenerateNormalAttrSetter):
33000        (GenerateParametersCheckExpression):
33001        (GenerateParametersCheck):
33002        (GenerateImplementation):
33003        (JSValueToNative):
33004        (CreateCustomSignature):
33005        * bindings/scripts/test/V8/V8Float64Array.cpp:
33006        (WebCore::Float64ArrayV8Internal::fooMethod):
33007        (WebCore::ConfigureV8Float64ArrayTemplate):
33008        (WebCore::V8Float64Array::GetTemplate):
33009        (WebCore::V8Float64Array::HasInstance):
33010        * bindings/scripts/test/V8/V8Float64Array.h:
33011        (V8Float64Array):
33012        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
33013        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
33014        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
33015        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
33016        (WebCore::V8TestActiveDOMObject::GetTemplate):
33017        (WebCore::V8TestActiveDOMObject::HasInstance):
33018        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
33019        (V8TestActiveDOMObject):
33020        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
33021        (WebCore::V8TestCustomNamedGetter::GetTemplate):
33022        (WebCore::V8TestCustomNamedGetter::HasInstance):
33023        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
33024        (V8TestCustomNamedGetter):
33025        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
33026        (WebCore::V8TestEventConstructor::GetTemplate):
33027        (WebCore::V8TestEventConstructor::HasInstance):
33028        * bindings/scripts/test/V8/V8TestEventConstructor.h:
33029        (V8TestEventConstructor):
33030        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
33031        (WebCore::TestEventTargetV8Internal::dispatchEventMethod):
33032        (WebCore::ConfigureV8TestEventTargetTemplate):
33033        (WebCore::V8TestEventTarget::GetTemplate):
33034        (WebCore::V8TestEventTarget::HasInstance):
33035        * bindings/scripts/test/V8/V8TestEventTarget.h:
33036        (V8TestEventTarget):
33037        * bindings/scripts/test/V8/V8TestException.cpp:
33038        (WebCore::V8TestException::GetTemplate):
33039        (WebCore::V8TestException::HasInstance):
33040        * bindings/scripts/test/V8/V8TestException.h:
33041        (V8TestException):
33042        * bindings/scripts/test/V8/V8TestInterface.cpp:
33043        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
33044        (WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
33045        (WebCore::ConfigureV8TestInterfaceTemplate):
33046        (WebCore::V8TestInterface::GetTemplate):
33047        (WebCore::V8TestInterface::HasInstance):
33048        * bindings/scripts/test/V8/V8TestInterface.h:
33049        (V8TestInterface):
33050        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
33051        (WebCore::V8TestMediaQueryListListener::GetTemplate):
33052        (WebCore::V8TestMediaQueryListListener::HasInstance):
33053        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
33054        (V8TestMediaQueryListListener):
33055        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33056        (WebCore::V8TestNamedConstructor::GetTemplate):
33057        (WebCore::V8TestNamedConstructor::HasInstance):
33058        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33059        (V8TestNamedConstructor):
33060        * bindings/scripts/test/V8/V8TestNode.cpp:
33061        (WebCore::V8TestNode::GetTemplate):
33062        (WebCore::V8TestNode::HasInstance):
33063        * bindings/scripts/test/V8/V8TestNode.h:
33064        (V8TestNode):
33065        * bindings/scripts/test/V8/V8TestObj.cpp:
33066        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
33067        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
33068        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
33069        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
33070        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
33071        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
33072        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
33073        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
33074        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
33075        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
33076        (WebCore::TestObjV8Internal::mutablePointAttrSetter):
33077        (WebCore::TestObjV8Internal::immutablePointAttrSetter):
33078        (WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
33079        (WebCore::TestObjV8Internal::longMethodWithArgsMethod):
33080        (WebCore::TestObjV8Internal::objMethodWithArgsMethod):
33081        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
33082        (WebCore::TestObjV8Internal::overloadedMethod1Method):
33083        (WebCore::TestObjV8Internal::overloadedMethod2Method):
33084        (WebCore::TestObjV8Internal::overloadedMethod8Method):
33085        (WebCore::TestObjV8Internal::overloadedMethodMethod):
33086        (WebCore::TestObjV8Internal::convert1Method):
33087        (WebCore::TestObjV8Internal::convert2Method):
33088        (WebCore::TestObjV8Internal::convert4Method):
33089        (WebCore::TestObjV8Internal::convert5Method):
33090        (WebCore::TestObjV8Internal::variadicNodeMethodMethod):
33091        (WebCore::ConfigureV8TestObjTemplate):
33092        (WebCore::V8TestObj::GetTemplate):
33093        (WebCore::V8TestObj::HasInstance):
33094        * bindings/scripts/test/V8/V8TestObj.h:
33095        (V8TestObj):
33096        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
33097        (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
33098        (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
33099        (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
33100        (WebCore::TestOverloadedConstructorsV8Internal::constructor):
33101        (WebCore::V8TestOverloadedConstructors::GetTemplate):
33102        (WebCore::V8TestOverloadedConstructors::HasInstance):
33103        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
33104        (V8TestOverloadedConstructors):
33105        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
33106        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
33107        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
33108        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
33109        (V8TestSerializedScriptValueInterface):
33110        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
33111        (WebCore::TestTypedefsV8Internal::funcMethod):
33112        (WebCore::ConfigureV8TestTypedefsTemplate):
33113        (WebCore::V8TestTypedefs::GetTemplate):
33114        (WebCore::V8TestTypedefs::HasInstance):
33115        * bindings/scripts/test/V8/V8TestTypedefs.h:
33116        (V8TestTypedefs):
33117        * bindings/v8/Dictionary.cpp:
33118        (WebCore::Dictionary::get):
33119        * bindings/v8/ScriptProfiler.cpp:
33120        (WebCore::ScriptProfiler::visitNodeWrappers):
33121        * bindings/v8/SerializedScriptValue.cpp:
33122        * bindings/v8/V8AdaptorFunction.cpp:
33123        (WebCore::V8AdaptorFunction::getTemplate):
33124        * bindings/v8/V8Binding.cpp:
33125        (WebCore::toDOMStringList):
33126        (WebCore::toXPathNSResolver):
33127        * bindings/v8/V8Binding.h:
33128        (WebCore::toRefPtrNativeArray):
33129        (WebCore):
33130        * bindings/v8/V8Collection.cpp:
33131        (WebCore::toOptionsCollectionSetter):
33132        * bindings/v8/V8GCController.cpp:
33133        * bindings/v8/V8NPObject.cpp:
33134        (WebCore::npObjectInvokeImpl):
33135        * bindings/v8/V8PerIsolateData.cpp:
33136        (WebCore::V8PerIsolateData::reportMemoryUsage):
33137        (WebCore::V8PerIsolateData::hasPrivateTemplate):
33138        (WebCore::V8PerIsolateData::privateTemplate):
33139        (WebCore::V8PerIsolateData::rawTemplate):
33140        (WebCore::V8PerIsolateData::hasInstance):
33141        * bindings/v8/V8PerIsolateData.h:
33142        (WebCore::V8PerIsolateData::rawTemplateMap):
33143        (WebCore::V8PerIsolateData::templateMap):
33144        (V8PerIsolateData):
33145        * bindings/v8/V8Utilities.cpp:
33146        (WebCore::extractTransferables):
33147        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
33148        (WebCore::constructWebGLArray):
33149        (WebCore::setWebGLArrayHelper):
33150        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
33151        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
33152        * bindings/v8/custom/V8BlobCustom.cpp:
33153        (WebCore::V8Blob::constructorCustom):
33154        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
33155        (WebCore::toCanvasStyle):
33156        * bindings/v8/custom/V8ClipboardCustom.cpp:
33157        (WebCore::V8Clipboard::setDragImageMethodCustom):
33158        * bindings/v8/custom/V8CryptoCustom.cpp:
33159        (WebCore::V8Crypto::getRandomValuesMethodCustom):
33160        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
33161        (WebCore::V8DOMFormData::constructorCustom):
33162        (WebCore::V8DOMFormData::appendMethodCustom):
33163        * bindings/v8/custom/V8DataViewCustom.cpp:
33164        (WebCore::V8DataView::constructorCustom):
33165        * bindings/v8/custom/V8DocumentCustom.cpp:
33166        (WebCore::V8Document::evaluateMethodCustom):
33167        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
33168        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
33169        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
33170        (WebCore::V8HTMLOptionsCollection::addMethodCustom):
33171        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
33172        (WebCore::removeElement):
33173        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
33174        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
33175        (WebCore::V8InjectedScriptHost::typeMethodCustom):
33176        (WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
33177        * bindings/v8/custom/V8LocationCustom.cpp:
33178        (WebCore::V8Location::reloadAttrGetterCustom):
33179        (WebCore::V8Location::replaceAttrGetterCustom):
33180        (WebCore::V8Location::assignAttrGetterCustom):
33181        * bindings/v8/custom/V8NodeCustom.cpp:
33182        (WebCore::V8Node::insertBeforeMethodCustom):
33183        (WebCore::V8Node::replaceChildMethodCustom):
33184        (WebCore::V8Node::removeChildMethodCustom):
33185        (WebCore::V8Node::appendChildMethodCustom):
33186        * bindings/v8/custom/V8NodeListCustom.cpp:
33187        (WebCore::V8NodeList::opaqueRootForGC):
33188        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
33189        (WebCore::toWebGLUniformLocation):
33190        (WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
33191        (WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
33192        (WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
33193        (WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
33194        (WebCore::vertexAttribAndUniformHelperf):
33195        (WebCore::uniformHelperi):
33196        (WebCore::uniformMatrixHelper):
33197        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
33198        (WebCore::isDocumentType):
33199        (WebCore::V8XMLHttpRequest::sendMethodCustom):
33200
332012013-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
33202
33203        Unreviewed, rolling out r145896.
33204        http://trac.webkit.org/changeset/145896
33205        https://bugs.webkit.org/show_bug.cgi?id=112443
33206
33207        Chrome broken by r145802 and this builds on top of it.
33208        (Requested by marja____ on #webkit).
33209
33210        * bindings/scripts/CodeGeneratorV8.pm:
33211        (GenerateHeader):
33212        (GenerateNormalAttrGetterCallback):
33213        (GenerateNormalAttrGetter):
33214        (GenerateNormalAttrSetterCallback):
33215        (GenerateNormalAttrSetter):
33216        (GenerateNamedConstructor):
33217        (GenerateBatchedAttributeData):
33218        (GenerateSingleBatchedAttribute):
33219        (GenerateImplementation):
33220        (GenerateCallbackImplementation):
33221        (GenerateFunctionCallString):
33222        (CreateCustomSignature):
33223        (NativeToJSValue):
33224        * bindings/scripts/test/V8/V8Float64Array.cpp:
33225        (WebCore::ConfigureV8Float64ArrayTemplate):
33226        (WebCore::V8Float64Array::GetTemplate):
33227        (WebCore::V8Float64Array::HasInstance):
33228        * bindings/scripts/test/V8/V8Float64Array.h:
33229        (WebCore):
33230        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
33231        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
33232        (WebCore::V8TestActiveDOMObject::GetTemplate):
33233        (WebCore::V8TestActiveDOMObject::HasInstance):
33234        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
33235        (WebCore):
33236        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
33237        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
33238        (WebCore::V8TestCustomNamedGetter::GetTemplate):
33239        (WebCore::V8TestCustomNamedGetter::HasInstance):
33240        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
33241        (WebCore):
33242        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
33243        (WebCore):
33244        (WebCore::ConfigureV8TestEventConstructorTemplate):
33245        (WebCore::V8TestEventConstructor::GetTemplate):
33246        (WebCore::V8TestEventConstructor::HasInstance):
33247        * bindings/scripts/test/V8/V8TestEventConstructor.h:
33248        (WebCore):
33249        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
33250        (WebCore::ConfigureV8TestEventTargetTemplate):
33251        (WebCore::V8TestEventTarget::GetTemplate):
33252        (WebCore::V8TestEventTarget::HasInstance):
33253        * bindings/scripts/test/V8/V8TestEventTarget.h:
33254        (WebCore):
33255        * bindings/scripts/test/V8/V8TestException.cpp:
33256        (WebCore::ConfigureV8TestExceptionTemplate):
33257        (WebCore::V8TestException::GetTemplate):
33258        (WebCore::V8TestException::HasInstance):
33259        * bindings/scripts/test/V8/V8TestException.h:
33260        (WebCore):
33261        * bindings/scripts/test/V8/V8TestInterface.cpp:
33262        (TestInterfaceV8Internal):
33263        (WebCore):
33264        (WebCore::ConfigureV8TestInterfaceTemplate):
33265        (WebCore::V8TestInterface::GetTemplate):
33266        (WebCore::V8TestInterface::HasInstance):
33267        * bindings/scripts/test/V8/V8TestInterface.h:
33268        (WebCore):
33269        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
33270        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
33271        (WebCore::V8TestMediaQueryListListener::GetTemplate):
33272        (WebCore::V8TestMediaQueryListListener::HasInstance):
33273        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
33274        (WebCore):
33275        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33276        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
33277        (WebCore::ConfigureV8TestNamedConstructorTemplate):
33278        (WebCore::V8TestNamedConstructor::GetTemplate):
33279        (WebCore::V8TestNamedConstructor::HasInstance):
33280        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33281        (WebCore):
33282        * bindings/scripts/test/V8/V8TestNode.cpp:
33283        (WebCore::ConfigureV8TestNodeTemplate):
33284        (WebCore::V8TestNode::GetTemplate):
33285        (WebCore::V8TestNode::HasInstance):
33286        * bindings/scripts/test/V8/V8TestNode.h:
33287        (WebCore):
33288        * bindings/scripts/test/V8/V8TestObj.cpp:
33289        (TestObjV8Internal):
33290        (WebCore):
33291        (WebCore::ConfigureV8TestObjTemplate):
33292        (WebCore::V8TestObj::GetTemplate):
33293        (WebCore::V8TestObj::HasInstance):
33294        * bindings/scripts/test/V8/V8TestObj.h:
33295        (WebCore):
33296        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
33297        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
33298        (WebCore::V8TestOverloadedConstructors::GetTemplate):
33299        (WebCore::V8TestOverloadedConstructors::HasInstance):
33300        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
33301        (WebCore):
33302        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
33303        (WebCore):
33304        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
33305        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
33306        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
33307        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
33308        (WebCore):
33309        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
33310        (WebCore):
33311        (WebCore::ConfigureV8TestTypedefsTemplate):
33312        (WebCore::V8TestTypedefs::GetTemplate):
33313        (WebCore::V8TestTypedefs::HasInstance):
33314        * bindings/scripts/test/V8/V8TestTypedefs.h:
33315        (WebCore):
33316        * bindings/v8/DOMDataStore.h:
33317        (DOMDataStore):
33318        * bindings/v8/V8DOMConfiguration.cpp:
33319        * bindings/v8/V8DOMConfiguration.h:
33320        (V8DOMConfiguration):
33321        * bindings/v8/custom/V8DOMWindowCustom.cpp:
33322        * bindings/v8/custom/V8EventTargetCustom.cpp:
33323        * bindings/v8/custom/V8IDBAnyCustom.cpp:
33324        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
33325        * bindings/v8/custom/V8WorkerContextCustom.cpp:
33326
333272013-03-15  Alberto Garcia  <agarcia@igalia.com>
33328
33329        [BlackBerry] Remove PlatformSupport
33330        https://bugs.webkit.org/show_bug.cgi?id=112438
33331
33332        Reviewed by Rob Buis.
33333
33334        This class only contains getFontFamilyForCharacters(), which was
33335        moved from PlatformSupport to FontCache in r129257.
33336
33337        This patch does the same for the BlackBerry port.
33338
33339        * platform/graphics/FontCache.h:
33340        (FontCache):
33341        * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
33342        (WebCore::FontCache::getFontFamilyForCharacters):
33343        (WebCore):
33344        (WebCore::FontCache::getFontDataForCharacters):
33345        * platform/graphics/blackberry/PlatformSupport.cpp: Removed.
33346        * platform/graphics/blackberry/PlatformSupport.h: Removed.
33347
333482013-03-15  Alberto Garcia  <agarcia@igalia.com>
33349
33350        [BlackBerry] FontPlatformData: remove TextOrientation parameter
33351        https://bugs.webkit.org/show_bug.cgi?id=112135
33352
33353        Reviewed by Rob Buis.
33354
33355        I forgot to remove the #include "TextOrientation.h" line as
33356        well. This file no longer exists.
33357
33358        * platform/graphics/blackberry/FontCustomPlatformData.h:
33359
333602013-03-15  Sankeerth V S  <sankeerth.vs@samsung.com>
33361
33362        DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
33363        https://bugs.webkit.org/show_bug.cgi?id=112404
33364
33365        Reviewed by Vsevolod Vlasov.
33366
33367        No new tests as this is a UI related change.
33368
33369        While deleting the entries of the data grid by clicking on 'Delete'
33370        status bar button, deletion of selected node should trigger selection of
33371        next possible (backward/forward) DataGridNode.
33372
33373        * inspector/front-end/DOMStorageItemsView.js:
33374        (WebInspector.DOMStorageItemsView.prototype._deleteButtonClicked):
33375        * inspector/front-end/DataGrid.js:
33376        (WebInspector.DataGrid.prototype._keyDown):
33377        (WebInspector.DataGrid.prototype.changeNodeAfterDeletion):
33378
333792013-03-15  Ilya Tikhonovsky  <loislo@chromium.org>
33380
33381        Web Inspector: Flame Chart. Draw timeline grid over flame chart items.
33382        https://bugs.webkit.org/show_bug.cgi?id=112439
33383
33384        Reviewed by Pavel Feldman.
33385
33386        I've used WebInspector.TimelineGrid
33387
33388        * inspector/front-end/FlameChart.js:
33389        (WebInspector.FlameChart):
33390        (WebInspector.FlameChart.Calculator):
33391        (WebInspector.FlameChart.Calculator.prototype._updateBoundaries):
33392        (WebInspector.FlameChart.Calculator.prototype.computePosition):
33393        (WebInspector.FlameChart.Calculator.prototype.formatTime):
33394        (WebInspector.FlameChart.Calculator.prototype.maximumBoundary):
33395        (WebInspector.FlameChart.Calculator.prototype.minimumBoundary):
33396        (WebInspector.FlameChart.Calculator.prototype.boundarySpan):
33397        (WebInspector.FlameChart.prototype.update):
33398
333992013-03-15  Marja Hölttä  <marja@chromium.org>
33400
33401        [V8] Add machinery for generating specialized bindings for the main world
33402        https://bugs.webkit.org/show_bug.cgi?id=111417
33403
33404        Reviewed by Kentaro Hara.
33405
33406        The new specialized bindings will be faster, because they don't need to
33407        do the "main world, isolated world or a worker" check, but can right
33408        away assume that we're in the main world.
33409
33410        This patch generates main world bindings for getters and setters.
33411
33412        No new tests (updated existing bindings tests).
33413
33414        * bindings/scripts/CodeGeneratorV8.pm:
33415        (GenerateHeader):
33416        (GenerateNormalAttrGetterCallback):
33417        (GenerateNormalAttrGetter):
33418        (GenerateNormalAttrSetterCallback):
33419        (GenerateNormalAttrSetter):
33420        (GenerateNamedConstructor):
33421        (GenerateBatchedAttributeData):
33422        (GenerateSingleBatchedAttribute):
33423        (GenerateImplementation):
33424        (GenerateCallbackImplementation):
33425        (GenerateFunctionCallString):
33426        (CreateCustomSignature):
33427        (NativeToJSValue):
33428        * bindings/scripts/test/V8/V8Float64Array.cpp:
33429        (WebCore::ConfigureV8Float64ArrayTemplate):
33430        (WebCore::V8Float64Array::GetTemplate):
33431        (WebCore::V8Float64Array::HasInstance):
33432        * bindings/scripts/test/V8/V8Float64Array.h:
33433        (WebCore::toV8ForMainWorld):
33434        (WebCore):
33435        (WebCore::toV8FastForMainWorld):
33436        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
33437        (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterForMainWorld):
33438        (TestActiveDOMObjectV8Internal):
33439        (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterCallbackForMainWorld):
33440        (WebCore):
33441        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
33442        (WebCore::V8TestActiveDOMObject::GetTemplate):
33443        (WebCore::V8TestActiveDOMObject::HasInstance):
33444        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
33445        (WebCore::toV8ForMainWorld):
33446        (WebCore):
33447        (WebCore::toV8FastForMainWorld):
33448        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
33449        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
33450        (WebCore::V8TestCustomNamedGetter::GetTemplate):
33451        (WebCore::V8TestCustomNamedGetter::HasInstance):
33452        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
33453        (WebCore::toV8ForMainWorld):
33454        (WebCore):
33455        (WebCore::toV8FastForMainWorld):
33456        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
33457        (WebCore::TestEventConstructorV8Internal::attr1AttrGetterForMainWorld):
33458        (TestEventConstructorV8Internal):
33459        (WebCore::TestEventConstructorV8Internal::attr1AttrGetterCallbackForMainWorld):
33460        (WebCore::TestEventConstructorV8Internal::attr2AttrGetterForMainWorld):
33461        (WebCore::TestEventConstructorV8Internal::attr2AttrGetterCallbackForMainWorld):
33462        (WebCore):
33463        (WebCore::ConfigureV8TestEventConstructorTemplate):
33464        (WebCore::V8TestEventConstructor::GetTemplate):
33465        (WebCore::V8TestEventConstructor::HasInstance):
33466        * bindings/scripts/test/V8/V8TestEventConstructor.h:
33467        (WebCore::toV8ForMainWorld):
33468        (WebCore):
33469        (WebCore::toV8FastForMainWorld):
33470        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
33471        (WebCore::ConfigureV8TestEventTargetTemplate):
33472        (WebCore::V8TestEventTarget::GetTemplate):
33473        (WebCore::V8TestEventTarget::HasInstance):
33474        * bindings/scripts/test/V8/V8TestEventTarget.h:
33475        (WebCore::toV8ForMainWorld):
33476        (WebCore):
33477        (WebCore::toV8FastForMainWorld):
33478        * bindings/scripts/test/V8/V8TestException.cpp:
33479        (WebCore::TestExceptionV8Internal::nameAttrGetterForMainWorld):
33480        (TestExceptionV8Internal):
33481        (WebCore::TestExceptionV8Internal::nameAttrGetterCallbackForMainWorld):
33482        (WebCore):
33483        (WebCore::ConfigureV8TestExceptionTemplate):
33484        (WebCore::V8TestException::GetTemplate):
33485        (WebCore::V8TestException::HasInstance):
33486        * bindings/scripts/test/V8/V8TestException.h:
33487        (WebCore::toV8ForMainWorld):
33488        (WebCore):
33489        (WebCore::toV8FastForMainWorld):
33490        * bindings/scripts/test/V8/V8TestInterface.cpp:
33491        (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterForMainWorld):
33492        (TestInterfaceV8Internal):
33493        (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterCallbackForMainWorld):
33494        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterForMainWorld):
33495        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterCallbackForMainWorld):
33496        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterForMainWorld):
33497        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterCallbackForMainWorld):
33498        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterForMainWorld):
33499        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterCallbackForMainWorld):
33500        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterForMainWorld):
33501        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterCallbackForMainWorld):
33502        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterForMainWorld):
33503        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterCallbackForMainWorld):
33504        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetterCallbackForMainWorld):
33505        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetterCallbackForMainWorld):
33506        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterForMainWorld):
33507        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterCallbackForMainWorld):
33508        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterForMainWorld):
33509        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterCallbackForMainWorld):
33510        (WebCore):
33511        (WebCore::ConfigureV8TestInterfaceTemplate):
33512        (WebCore::V8TestInterface::GetTemplate):
33513        (WebCore::V8TestInterface::HasInstance):
33514        * bindings/scripts/test/V8/V8TestInterface.h:
33515        (WebCore::toV8ForMainWorld):
33516        (WebCore):
33517        (WebCore::toV8FastForMainWorld):
33518        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
33519        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
33520        (WebCore::V8TestMediaQueryListListener::GetTemplate):
33521        (WebCore::V8TestMediaQueryListListener::HasInstance):
33522        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
33523        (WebCore::toV8ForMainWorld):
33524        (WebCore):
33525        (WebCore::toV8FastForMainWorld):
33526        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33527        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
33528        (WebCore::ConfigureV8TestNamedConstructorTemplate):
33529        (WebCore::V8TestNamedConstructor::GetTemplate):
33530        (WebCore::V8TestNamedConstructor::HasInstance):
33531        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33532        (WebCore::toV8ForMainWorld):
33533        (WebCore):
33534        (WebCore::toV8FastForMainWorld):
33535        * bindings/scripts/test/V8/V8TestNode.cpp:
33536        (WebCore::ConfigureV8TestNodeTemplate):
33537        (WebCore::V8TestNode::GetTemplate):
33538        (WebCore::V8TestNode::HasInstance):
33539        * bindings/scripts/test/V8/V8TestNode.h:
33540        (WebCore::toV8ForMainWorld):
33541        (WebCore):
33542        (WebCore::toV8FastForMainWorld):
33543        * bindings/scripts/test/V8/V8TestObj.cpp:
33544        (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterForMainWorld):
33545        (TestObjV8Internal):
33546        (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterCallbackForMainWorld):
33547        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterForMainWorld):
33548        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterCallbackForMainWorld):
33549        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterForMainWorld):
33550        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterCallbackForMainWorld):
33551        (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterForMainWorld):
33552        (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterCallbackForMainWorld):
33553        (WebCore::TestObjV8Internal::staticStringAttrAttrGetterForMainWorld):
33554        (WebCore::TestObjV8Internal::staticStringAttrAttrGetterCallbackForMainWorld):
33555        (WebCore::TestObjV8Internal::staticStringAttrAttrSetterForMainWorld):
33556        (WebCore::TestObjV8Internal::staticStringAttrAttrSetterCallbackForMainWorld):
33557        (WebCore::TestObjV8Internal::enumAttrAttrGetterForMainWorld):
33558        (WebCore::TestObjV8Internal::enumAttrAttrGetterCallbackForMainWorld):
33559        (WebCore::TestObjV8Internal::enumAttrAttrSetterForMainWorld):
33560        (WebCore::TestObjV8Internal::enumAttrAttrSetterCallbackForMainWorld):
33561        (WebCore::TestObjV8Internal::shortAttrAttrGetterForMainWorld):
33562        (WebCore::TestObjV8Internal::shortAttrAttrGetterCallbackForMainWorld):
33563        (WebCore::TestObjV8Internal::shortAttrAttrSetterForMainWorld):
33564        (WebCore::TestObjV8Internal::shortAttrAttrSetterCallbackForMainWorld):
33565        (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterForMainWorld):
33566        (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterCallbackForMainWorld):
33567        (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterForMainWorld):
33568        (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterCallbackForMainWorld):
33569        (WebCore::TestObjV8Internal::longAttrAttrGetterForMainWorld):
33570        (WebCore::TestObjV8Internal::longAttrAttrGetterCallbackForMainWorld):
33571        (WebCore::TestObjV8Internal::longAttrAttrSetterForMainWorld):
33572        (WebCore::TestObjV8Internal::longAttrAttrSetterCallbackForMainWorld):
33573        (WebCore::TestObjV8Internal::longLongAttrAttrGetterForMainWorld):
33574        (WebCore::TestObjV8Internal::longLongAttrAttrGetterCallbackForMainWorld):
33575        (WebCore::TestObjV8Internal::longLongAttrAttrSetterForMainWorld):
33576        (WebCore::TestObjV8Internal::longLongAttrAttrSetterCallbackForMainWorld):
33577        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterForMainWorld):
33578        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterCallbackForMainWorld):
33579        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterForMainWorld):
33580        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterCallbackForMainWorld):
33581        (WebCore::TestObjV8Internal::stringAttrAttrGetterForMainWorld):
33582        (WebCore::TestObjV8Internal::stringAttrAttrGetterCallbackForMainWorld):
33583        (WebCore::TestObjV8Internal::stringAttrAttrSetterForMainWorld):
33584        (WebCore::TestObjV8Internal::stringAttrAttrSetterCallbackForMainWorld):
33585        (WebCore::TestObjV8Internal::testObjAttrAttrGetterForMainWorld):
33586        (WebCore::TestObjV8Internal::testObjAttrAttrGetterCallbackForMainWorld):
33587        (WebCore::TestObjV8Internal::testObjAttrAttrSetterForMainWorld):
33588        (WebCore::TestObjV8Internal::testObjAttrAttrSetterCallbackForMainWorld):
33589        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetterForMainWorld):
33590        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetterCallbackForMainWorld):
33591        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetterForMainWorld):
33592        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetterCallbackForMainWorld):
33593        (WebCore::TestObjV8Internal::createAttrGetterForMainWorld):
33594        (WebCore::TestObjV8Internal::createAttrGetterCallbackForMainWorld):
33595        (WebCore::TestObjV8Internal::createAttrSetterForMainWorld):
33596        (WebCore::TestObjV8Internal::createAttrSetterCallbackForMainWorld):
33597        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterForMainWorld):
33598        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterCallbackForMainWorld):
33599        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterForMainWorld):
33600        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterCallbackForMainWorld):
33601        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterForMainWorld):
33602        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterCallbackForMainWorld):
33603        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetter):
33604        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterForMainWorld):
33605        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterCallbackForMainWorld):
33606        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterForMainWorld):
33607        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterCallbackForMainWorld):
33608        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterForMainWorld):
33609        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterCallbackForMainWorld):
33610        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterForMainWorld):
33611        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterCallbackForMainWorld):
33612        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterForMainWorld):
33613        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterCallbackForMainWorld):
33614        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterForMainWorld):
33615        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterCallbackForMainWorld):
33616        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterForMainWorld):
33617        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterCallbackForMainWorld):
33618        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterForMainWorld):
33619        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterCallbackForMainWorld):
33620        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterForMainWorld):
33621        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterCallbackForMainWorld):
33622        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterForMainWorld):
33623        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterCallbackForMainWorld):
33624        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterForMainWorld):
33625        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterCallbackForMainWorld):
33626        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterForMainWorld):
33627        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterCallbackForMainWorld):
33628        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterForMainWorld):
33629        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterCallbackForMainWorld):
33630        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetterForMainWorld):
33631        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetterCallbackForMainWorld):
33632        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetterForMainWorld):
33633        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetterCallbackForMainWorld):
33634        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterForMainWorld):
33635        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterCallbackForMainWorld):
33636        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterForMainWorld):
33637        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterCallbackForMainWorld):
33638        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterForMainWorld):
33639        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterCallbackForMainWorld):
33640        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterForMainWorld):
33641        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterCallbackForMainWorld):
33642        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterForMainWorld):
33643        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterCallbackForMainWorld):
33644        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterForMainWorld):
33645        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterCallbackForMainWorld):
33646        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterForMainWorld):
33647        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterCallbackForMainWorld):
33648        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterForMainWorld):
33649        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterCallbackForMainWorld):
33650        (WebCore::TestObjV8Internal::customAttrAttrGetterCallbackForMainWorld):
33651        (WebCore::TestObjV8Internal::customAttrAttrSetterCallbackForMainWorld):
33652        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterForMainWorld):
33653        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterCallbackForMainWorld):
33654        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterForMainWorld):
33655        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterCallbackForMainWorld):
33656        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterForMainWorld):
33657        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterCallbackForMainWorld):
33658        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterForMainWorld):
33659        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterCallbackForMainWorld):
33660        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterForMainWorld):
33661        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterCallbackForMainWorld):
33662        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterForMainWorld):
33663        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterCallbackForMainWorld):
33664        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterForMainWorld):
33665        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterCallbackForMainWorld):
33666        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterForMainWorld):
33667        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterCallbackForMainWorld):
33668        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterForMainWorld):
33669        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterCallbackForMainWorld):
33670        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterForMainWorld):
33671        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterCallbackForMainWorld):
33672        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterForMainWorld):
33673        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterCallbackForMainWorld):
33674        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterForMainWorld):
33675        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterCallbackForMainWorld):
33676        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterForMainWorld):
33677        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterCallbackForMainWorld):
33678        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterForMainWorld):
33679        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterCallbackForMainWorld):
33680        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterForMainWorld):
33681        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterCallbackForMainWorld):
33682        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterForMainWorld):
33683        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterCallbackForMainWorld):
33684        (WebCore::TestObjV8Internal::conditionalAttr1AttrGetterForMainWorld):
33685        (WebCore::TestObjV8Internal::conditionalAttr1AttrGetterCallbackForMainWorld):
33686        (WebCore::TestObjV8Internal::conditionalAttr1AttrSetterForMainWorld):
33687        (WebCore::TestObjV8Internal::conditionalAttr1AttrSetterCallbackForMainWorld):
33688        (WebCore::TestObjV8Internal::conditionalAttr2AttrGetterForMainWorld):
33689        (WebCore::TestObjV8Internal::conditionalAttr2AttrGetterCallbackForMainWorld):
33690        (WebCore::TestObjV8Internal::conditionalAttr2AttrSetterForMainWorld):
33691        (WebCore::TestObjV8Internal::conditionalAttr2AttrSetterCallbackForMainWorld):
33692        (WebCore::TestObjV8Internal::conditionalAttr3AttrGetterForMainWorld):
33693        (WebCore::TestObjV8Internal::conditionalAttr3AttrGetterCallbackForMainWorld):
33694        (WebCore::TestObjV8Internal::conditionalAttr3AttrSetterForMainWorld):
33695        (WebCore::TestObjV8Internal::conditionalAttr3AttrSetterCallbackForMainWorld):
33696        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetterForMainWorld):
33697        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetterCallbackForMainWorld):
33698        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetterForMainWorld):
33699        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetterCallbackForMainWorld):
33700        (WebCore::TestObjV8Internal::anyAttributeAttrGetterForMainWorld):
33701        (WebCore::TestObjV8Internal::anyAttributeAttrGetterCallbackForMainWorld):
33702        (WebCore::TestObjV8Internal::anyAttributeAttrSetterForMainWorld):
33703        (WebCore::TestObjV8Internal::anyAttributeAttrSetterCallbackForMainWorld):
33704        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterForMainWorld):
33705        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterCallbackForMainWorld):
33706        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterForMainWorld):
33707        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterCallbackForMainWorld):
33708        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterForMainWorld):
33709        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterCallbackForMainWorld):
33710        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterForMainWorld):
33711        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterCallbackForMainWorld):
33712        (WebCore::TestObjV8Internal::floatArrayAttrGetterForMainWorld):
33713        (WebCore::TestObjV8Internal::floatArrayAttrGetterCallbackForMainWorld):
33714        (WebCore::TestObjV8Internal::floatArrayAttrSetterForMainWorld):
33715        (WebCore::TestObjV8Internal::floatArrayAttrSetterCallbackForMainWorld):
33716        (WebCore::TestObjV8Internal::doubleArrayAttrGetterForMainWorld):
33717        (WebCore::TestObjV8Internal::doubleArrayAttrGetterCallbackForMainWorld):
33718        (WebCore::TestObjV8Internal::doubleArrayAttrSetterForMainWorld):
33719        (WebCore::TestObjV8Internal::doubleArrayAttrSetterCallbackForMainWorld):
33720        (WebCore::TestObjV8Internal::contentDocumentAttrGetterForMainWorld):
33721        (WebCore::TestObjV8Internal::contentDocumentAttrGetterCallbackForMainWorld):
33722        (WebCore::TestObjV8Internal::mutablePointAttrGetterForMainWorld):
33723        (WebCore::TestObjV8Internal::mutablePointAttrGetterCallbackForMainWorld):
33724        (WebCore::TestObjV8Internal::mutablePointAttrSetterForMainWorld):
33725        (WebCore::TestObjV8Internal::mutablePointAttrSetterCallbackForMainWorld):
33726        (WebCore::TestObjV8Internal::immutablePointAttrGetterForMainWorld):
33727        (WebCore::TestObjV8Internal::immutablePointAttrGetterCallbackForMainWorld):
33728        (WebCore::TestObjV8Internal::immutablePointAttrSetterForMainWorld):
33729        (WebCore::TestObjV8Internal::immutablePointAttrSetterCallbackForMainWorld):
33730        (WebCore::TestObjV8Internal::strawberryAttrGetterForMainWorld):
33731        (WebCore::TestObjV8Internal::strawberryAttrGetterCallbackForMainWorld):
33732        (WebCore::TestObjV8Internal::strawberryAttrSetterForMainWorld):
33733        (WebCore::TestObjV8Internal::strawberryAttrSetterCallbackForMainWorld):
33734        (WebCore::TestObjV8Internal::strictFloatAttrGetterForMainWorld):
33735        (WebCore::TestObjV8Internal::strictFloatAttrGetterCallbackForMainWorld):
33736        (WebCore::TestObjV8Internal::strictFloatAttrSetterForMainWorld):
33737        (WebCore::TestObjV8Internal::strictFloatAttrSetterCallbackForMainWorld):
33738        (WebCore::TestObjV8Internal::descriptionAttrGetterForMainWorld):
33739        (WebCore::TestObjV8Internal::descriptionAttrGetterCallbackForMainWorld):
33740        (WebCore::TestObjV8Internal::idAttrGetterForMainWorld):
33741        (WebCore::TestObjV8Internal::idAttrGetterCallbackForMainWorld):
33742        (WebCore::TestObjV8Internal::idAttrSetterForMainWorld):
33743        (WebCore::TestObjV8Internal::idAttrSetterCallbackForMainWorld):
33744        (WebCore::TestObjV8Internal::hashAttrGetterForMainWorld):
33745        (WebCore::TestObjV8Internal::hashAttrGetterCallbackForMainWorld):
33746        (WebCore::TestObjV8Internal::replaceableAttributeAttrGetterForMainWorld):
33747        (WebCore::TestObjV8Internal::replaceableAttributeAttrGetterCallbackForMainWorld):
33748        (WebCore):
33749        (WebCore::ConfigureV8TestObjTemplate):
33750        (WebCore::V8TestObj::GetTemplate):
33751        (WebCore::V8TestObj::HasInstance):
33752        * bindings/scripts/test/V8/V8TestObj.h:
33753        (WebCore::toV8ForMainWorld):
33754        (WebCore):
33755        (WebCore::toV8FastForMainWorld):
33756        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
33757        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
33758        (WebCore::V8TestOverloadedConstructors::GetTemplate):
33759        (WebCore::V8TestOverloadedConstructors::HasInstance):
33760        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
33761        (WebCore::toV8ForMainWorld):
33762        (WebCore):
33763        (WebCore::toV8FastForMainWorld):
33764        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
33765        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterForMainWorld):
33766        (TestSerializedScriptValueInterfaceV8Internal):
33767        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterCallbackForMainWorld):
33768        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterForMainWorld):
33769        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterCallbackForMainWorld):
33770        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterForMainWorld):
33771        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterCallbackForMainWorld):
33772        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterForMainWorld):
33773        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterCallbackForMainWorld):
33774        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterForMainWorld):
33775        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterCallbackForMainWorld):
33776        (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterForMainWorld):
33777        (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterCallbackForMainWorld):
33778        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterForMainWorld):
33779        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterCallbackForMainWorld):
33780        (WebCore):
33781        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
33782        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
33783        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
33784        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
33785        (WebCore::toV8ForMainWorld):
33786        (WebCore):
33787        (WebCore::toV8FastForMainWorld):
33788        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
33789        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterForMainWorld):
33790        (TestTypedefsV8Internal):
33791        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterCallbackForMainWorld):
33792        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterForMainWorld):
33793        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterCallbackForMainWorld):
33794        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterForMainWorld):
33795        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterCallbackForMainWorld):
33796        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterForMainWorld):
33797        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterCallbackForMainWorld):
33798        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterForMainWorld):
33799        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterCallbackForMainWorld):
33800        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterForMainWorld):
33801        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterCallbackForMainWorld):
33802        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterForMainWorld):
33803        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterCallbackForMainWorld):
33804        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterForMainWorld):
33805        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterCallbackForMainWorld):
33806        (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterForMainWorld):
33807        (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterCallbackForMainWorld):
33808        (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterForMainWorld):
33809        (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterCallbackForMainWorld):
33810        (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterForMainWorld):
33811        (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterCallbackForMainWorld):
33812        (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterForMainWorld):
33813        (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterCallbackForMainWorld):
33814        (WebCore):
33815        (WebCore::ConfigureV8TestTypedefsTemplate):
33816        (WebCore::V8TestTypedefs::GetTemplate):
33817        (WebCore::V8TestTypedefs::HasInstance):
33818        * bindings/scripts/test/V8/V8TestTypedefs.h:
33819        (WebCore::toV8ForMainWorld):
33820        (WebCore):
33821        (WebCore::toV8FastForMainWorld):
33822        * bindings/v8/DOMDataStore.h:
33823        (WebCore::DOMDataStore::getWrapperForMainWorld):
33824        (DOMDataStore):
33825        * bindings/v8/V8DOMConfiguration.cpp:
33826        (WebCore::V8DOMConfiguration::addToTemplate):
33827        (WebCore):
33828        * bindings/v8/V8DOMConfiguration.h:
33829        (V8DOMConfiguration):
33830        * bindings/v8/custom/V8DOMWindowCustom.cpp:
33831        (WebCore::toV8ForMainWorld):
33832        (WebCore):
33833        * bindings/v8/custom/V8EventTargetCustom.cpp:
33834        (WebCore::toV8ForMainWorld):
33835        (WebCore):
33836        * bindings/v8/custom/V8IDBAnyCustom.cpp:
33837        (WebCore::toV8ForMainWorld):
33838        (WebCore):
33839        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
33840        (WebCore::toV8ForMainWorld):
33841        (WebCore):
33842        * bindings/v8/custom/V8WorkerContextCustom.cpp:
33843        (WebCore::toV8ForMainWorld):
33844        (WebCore):
33845
338462013-03-15  Ilya Tikhonovsky  <loislo@chromium.org>
33847
33848        Web Inspector: Flame Chart. xOffset calculates incorrectly when chart width less that canvas.width.
33849        https://bugs.webkit.org/show_bug.cgi?id=112423
33850
33851        Reviewed by Yury Semikhatsky.
33852
33853        I extracted xOffset assigment procedure into a separate function.
33854
33855        Drive by fix: size and posion of anchor element was adjusted.
33856        Drive by fix: we will not paint item if it is not visible.
33857
33858        * inspector/front-end/FlameChart.js:
33859        (WebInspector.FlameChart.prototype._maxXOffset):
33860        (WebInspector.FlameChart.prototype._setXOffset):
33861        (WebInspector.FlameChart.prototype._canvasDragging):
33862        (WebInspector.FlameChart.prototype._onMouseMove):
33863        (WebInspector.FlameChart.prototype._adjustXOffset):
33864        (WebInspector.FlameChart.prototype._adjustXScale):
33865        (WebInspector.FlameChart.prototype.draw):
33866
338672013-03-15  Noam Rosenthal  <noam@webkit.org>
33868
33869        [Texmap] Change brightness filter to match new spec
33870        https://bugs.webkit.org/show_bug.cgi?id=112422
33871
33872        New filters spec specifies an intercept of 0 instead of 1.
33873        This is already done for the software version in http://trac.webkit.org/changeset/139770.
33874        This patch adjusts the value for the accelerated version.
33875
33876        Reviewed by Allan Sandfeld Jensen.
33877
33878        Filter tests are currently disabled on Qt/GTK/EFL, but they would need to be rebaselined once enabled.
33879
33880        * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
33881
338822013-03-15  Jaehun Lim  <ljaehun.lim@samsung.com>
33883
33884        Call release() when a RefPtr is returned.
33885        https://bugs.webkit.org/show_bug.cgi?id=112420
33886
33887        Reviewed by Eric Seidel.
33888
33889        release() should be called on a RefPtr to convert it to a PassRefPtr.
33890
33891        No new tests needed, no behavior changes.
33892
33893        * css/CSSParser.cpp:
33894        (WebCore::CSSParser::parseImageResolution):
33895        (WebCore::CSSParser::parseImageSet):
33896
338972013-03-15  Eugene Klyuchnikov  <eustas@chromium.org>
33898
33899        Web Inspector: [Network] InitiatorComparator is not reflexive/antisymmetric.
33900        https://bugs.webkit.org/show_bug.cgi?id=112341
33901
33902        Reviewed by Vsevolod Vlasov.
33903
33904        When both objects do not have initiator: f(a, b) = f(b, a) = -1
33905        Furthermore: redirected responses are mixed with "other".
33906
33907        * inspector/front-end/NetworkPanel.js:
33908        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
33909        Remember "displayed" initiator type.
33910        (WebInspector.NetworkDataGridNode.InitiatorComparator):
33911        Recall "diaplayed" initiator type for more precise comparison.
33912
339132013-03-15  Andrey Kosyakov  <caseq@chromium.org>
33914
33915        Web Inspector: show image decode performed off main thread on timeline
33916        https://bugs.webkit.org/show_bug.cgi?id=111159
33917
33918        Reviewed by Pavel Feldman.
33919
33920        - add handling of Decode Image event to TimelineTraceEventProcessorr;
33921        - only log platform events for the main thread;
33922        - extract constants for trace events produced by platform instrumentation.
33923
33924        * inspector/InspectorTimelineAgent.cpp:
33925        (TimelineRecordType):
33926        * inspector/InspectorTimelineAgent.h:
33927        (TimelineRecordType):
33928        * inspector/TimelineTraceEventProcessor.cpp:
33929        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
33930        (WebCore::TimelineTraceEventProcessor::onImageDecodeBegin):
33931        (WebCore):
33932        (WebCore::TimelineTraceEventProcessor::onImageDecodeEnd):
33933        * inspector/TimelineTraceEventProcessor.h:
33934        (TimelineTraceEventProcessor):
33935        * platform/PlatformInstrumentation.cpp:
33936        (WebCore):
33937        * platform/PlatformInstrumentation.h:
33938        (PlatformInstrumentation):
33939        (WebCore):
33940        (WebCore::PlatformInstrumentation::willDecodeImage):
33941        (WebCore::PlatformInstrumentation::didDecodeImage):
33942        (WebCore::PlatformInstrumentation::willResizeImage):
33943        (WebCore::PlatformInstrumentation::didResizeImage):
33944
339452013-03-15  Ilya Tikhonovsky  <loislo@chromium.org>
33946
33947        Web Inspector: Flame Chart. When user zooms the chart, the point under cursor has to be the zooming center.
33948        https://bugs.webkit.org/show_bug.cgi?id=112417
33949
33950        Reviewed by Yury Semikhatsky.
33951
33952        It converts the cursor position into time,
33953        changes the scale factor and calculates the new offset for the canvas.
33954
33955        * inspector/front-end/FlameChart.js:
33956        (WebInspector.FlameChart.prototype._adjustXScale):
33957        (WebInspector.FlameChart.prototype._onMouseWheel):
33958
339592013-03-13  Eugene Klyuchnikov  <eustas@chromium.org>
33960
33961        Web Inspector: [Network] Sort columns context menu items alphabetically.
33962        https://bugs.webkit.org/show_bug.cgi?id=112321
33963
33964        Reviewed by Pavel Feldman.
33965
33966        Problem: columns are presented in "natural" order,
33967        so it is hard to find specific item.
33968
33969        * inspector/front-end/NetworkPanel.js:
33970        (WebInspector.NetworkLogView.prototype._getConfigurableColumnIDs):
33971        Generate list of column IDs sorted alphabetically.
33972        (WebInspector.NetworkLogView.prototype._contextMenu):
33973        Use alphabetically sorted list of column IDs.
33974
339752013-03-15  Takashi Sakamoto  <tasak@google.com>
33976
33977        Crash at RenderStyle::inheritFrom reported by fuzzer
33978        https://bugs.webkit.org/show_bug.cgi?id=112322
33979
33980        Reviewed by Hajime Morrita.
33981
33982        pseudoStyleForElement should check whether a parent style of a given
33983        element is available or not. If a given element's parent is
33984        an insertion point whose reset-style-inheritance is true, the parent
33985        style is not available. Need to use defaultStyleForElement.
33986
33987        Test: fast/dom/shadow/insertion-point-resetStyleInheritance-with-pseudo-element-crash.html
33988
33989        * css/StyleResolver.cpp:
33990        (WebCore::StyleResolver::styleForElement):
33991        Removed cloneForParent. Instead, made m_state own parentStyle, i.e.
33992        changed m_parentStyle in class State from RenderStyle* to
33993        RefPtr<RenderStyle>.
33994        (WebCore::StyleResolver::pseudoStyleForElement):
33995        If an actual parent style of a given element is not available, use
33996        defaultStyleForElement. This is the same logic as styleForElement.
33997        * css/StyleResolver.h:
33998        (WebCore::StyleResolver::State::setParentStyle):
33999        Modified the parameter to use PassRefPtr<RenderStyle>.
34000        (WebCore::StyleResolver::State::parentStyle):
34001        (State):
34002
340032013-03-15  Mihnea Ovidenie  <mihnea@adobe.com>
34004
34005        [CSS Regions] Selecting text inside an empty region causes selection outside the region area
34006        https://bugs.webkit.org/show_bug.cgi?id=107752
34007
34008        Reviewed by David Hyatt.
34009
34010        When performing hit testing inside a flow thread, we need to make sure that
34011        we actually hit some node from the flow thread content and not the flow thread
34012        itself (which would set the hit test result node to the document node, allowing
34013        wrong selection of content outside the empty region).
34014
34015        Test: fast/regions/selecting-text-in-empty-region.html
34016
34017        * rendering/RenderFlowThread.cpp:
34018        (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
34019
340202013-03-15  Luiz Agostini  <luiz.agostini@nokia.com>
34021
34022        [Texmap] layerRect should be used instead of contents rect for scrollable layer hit tests.
34023        https://bugs.webkit.org/show_bug.cgi?id=112413
34024
34025        Reviewed by Noam Rosenthal.
34026
34027        Using layerRect() instead of m_state.contentsRect for scrollable layer hit test.
34028        * platform/graphics/texmap/TextureMapperLayer.cpp:
34029        (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
34030
340312013-03-14  Dominic Cooney  <dominicc@chromium.org>
34032
34033        Redundant if statement in RenderTextControlSingleLine::layout should be removed
34034        https://bugs.webkit.org/show_bug.cgi?id=112406
34035
34036        Reviewed by Andreas Kling.
34037
34038        Covered by existing tests added in r145239.
34039
34040        * rendering/RenderTextControlSingleLine.cpp:
34041        (WebCore::RenderTextControlSingleLine::layout):
34042
340432013-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
34044
34045        Unreviewed, rolling out r145864.
34046        http://trac.webkit.org/changeset/145864
34047        https://bugs.webkit.org/show_bug.cgi?id=112408
34048
34049        should fix XMLDocumentParser instead of CSSDefaultStyleSheet
34050        (Requested by tasak on #webkit).
34051
34052        * css/CSSDefaultStyleSheets.cpp:
34053        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
34054
340552013-03-14  Eugene Klyuchnikov  <eustas@chromium.org>
34056
34057        Web Inspector: [DataGrid] Specify columns with array of descriptors.
34058        https://bugs.webkit.org/show_bug.cgi?id=112338
34059
34060        Reviewed by Pavel Feldman.
34061
34062        Currently columns are specified by Object that maps
34063        column identifiers to column descriptors. Iteration order over
34064        Object keys is not guaranteed.
34065
34066        Array should be used to specify column order.
34067
34068        * inspector/front-end/DataGrid.js: Change consrtructor parameter type.
34069        * inspector/front-end/ApplicationCacheItemsView.js: Adopt changes.
34070        * inspector/front-end/CPUProfileView.js: Ditto.
34071        * inspector/front-end/CSSSelectorProfileView.js: Ditto.
34072        * inspector/front-end/CanvasProfileView.js: Ditto.
34073        * inspector/front-end/CookieItemsView.js: Ditto.
34074        * inspector/front-end/CookiesTable.js: Ditto.
34075        * inspector/front-end/DOMStorageItemsView.js: Ditto.
34076        * inspector/front-end/DirectoryContentView.js: Ditto.
34077        * inspector/front-end/HeapSnapshot.js: Ditto.
34078        * inspector/front-end/HeapSnapshotDataGrids.js: Ditto.
34079        * inspector/front-end/IndexedDBViews.js: Ditto.
34080        * inspector/front-end/NativeMemorySnapshotView.js: Ditto.
34081        * inspector/front-end/NetworkPanel.js: Ditto.
34082        * inspector/front-end/ResourceWebSocketFrameView.js: Ditto.
34083
340842013-03-14  Ilya Tikhonovsky  <loislo@chromium.org>
34085
34086        Web Inspector: Flame Chart. Support scrolling by dragging.
34087        https://bugs.webkit.org/show_bug.cgi?id=112346
34088
34089        Reviewed by Yury Semikhatsky.
34090
34091        Drag hander was added. It seems that simple repaint works well.
34092        When the user starts dragging we hide the popover, change offset
34093        and do update for the new canvas image.
34094        Drive by change: Due to new way of scrolling the canvas I changed
34095        the behaiviour of the wheel events. Now wheel scrolls if Shift key pressed
34096        and zooms if not.
34097
34098        * inspector/front-end/FlameChart.js:
34099        (WebInspector.FlameChart):
34100        (WebInspector.FlameChart.prototype._startCanvasDragging):
34101        (WebInspector.FlameChart.prototype._canvasDragging):
34102        (WebInspector.FlameChart.prototype._endCanvasDragging):
34103        (WebInspector.FlameChart.prototype._onMouseWheel):
34104
341052013-03-14  Hayato Ito  <hayato@chromium.org>
34106
34107        [Shadow Dom]: Non Bubbling events in ShadowDOM dispatch in an incorrect order
34108        https://bugs.webkit.org/show_bug.cgi?id=112214
34109
34110        Reviewed by Dimitri Glazkov.
34111
34112        Fix the order of event dispatching for Shadow DOM.
34113
34114        So far, an event whose event phase should be set to AT_TARGET,
34115        e.g. event at shadow hosts, is dispatched in bubbling phase in the
34116        whole event path.  This patch fixed the order of event dispatching
34117        so that an event whose event phase must be set to AT_TARGET phase
34118        is dispatched in capturing phase rather than bubbling phase.
34119
34120        The spec is here:
34121        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#event-dispatch
34122
34123        5.5 Event Dispatch says:
34124
34125        - When capturing, which entails processing step 3 of the event
34126        dispatch algorithm, the Event eventPhase attribute must return
34127        AT_TARGET if the relative target is same as the node on which
34128        event listeners are invoked
34129        - When bubbling, which entails
34130        processing step 6 of the event dispatch algorithm, the event
34131        listeners must not be invoked on a node if it is the same as its
34132        relative target
34133
34134        No new tests. Update existing layout tests.
34135
34136        * dom/EventDispatcher.cpp:
34137        (WebCore::EventDispatcher::dispatchEventAtCapturing):
34138        (WebCore::EventDispatcher::dispatchEventAtBubbling):
34139
341402013-03-14  Shezan Baig  <sbaig1@bloomberg.net>
34141
34142        Backspace/delete at start of table cell shouldn't step out of cell
34143        https://bugs.webkit.org/show_bug.cgi?id=35372
34144
34145        Reviewed by Ryosuke Niwa.
34146
34147        Make Delete and ForwardDelete commands be no-ops if we are at the first
34148        position or last position of a table cell respectively.
34149
34150        Tests: editing/deleting/backspace-at-table-cell-beginning.html
34151               editing/deleting/forward-delete-at-table-cell-ending.html
34152
34153        * editing/TypingCommand.cpp:
34154        (WebCore::TypingCommand::deleteKeyPressed):
34155        (WebCore::TypingCommand::forwardDeleteKeyPressed):
34156
341572013-03-14  Xidorn Quan  <quanxunzhen@gmail.com>
34158
34159        Clickable area is incorrect for elements with border-radius
34160        https://bugs.webkit.org/show_bug.cgi?id=95373
34161
34162        Reviewed by Simon Fraser.
34163
34164        As RenderBlock doesn't see rounded rect which comes from border-radius
34165        in nodeAtPoint, the rounded corner seems to have an 'invisible' square
34166        box which catches hits. So we added check on whether hitTestPoint also
34167        intersects the rounded rect when hasBorderRadius is set.
34168
34169        This patch is based on Takashi Sakamoto's work in
34170        https://bugs.webkit.org/show_bug.cgi?id=95373
34171
34172        Test: fast/borders/border-radius-position.html
34173
34174        * platform/graphics/FloatQuad.cpp:
34175        (WebCore):
34176        (WebCore::lineIntersectsCircle):
34177        (WebCore::FloatQuad::intersectsCircle):
34178        (WebCore::FloatQuad::intersectsEllipse):
34179        * platform/graphics/FloatQuad.h:
34180        (FloatQuad):
34181        * platform/graphics/RoundedRect.cpp:
34182        (WebCore::RoundedRect::intersectsQuad):
34183        (WebCore):
34184        * platform/graphics/RoundedRect.h:
34185        (RoundedRect):
34186        * rendering/HitTestLocation.cpp:
34187        (WebCore::HitTestLocation::intersects):
34188        (WebCore):
34189        * rendering/HitTestLocation.h:
34190        (HitTestLocation):
34191        * rendering/RenderBlock.cpp:
34192        (WebCore::RenderBlock::nodeAtPoint):
34193
341942013-03-14  Chris Fleizach  <cfleizach@apple.com>
34195
34196        AX: Crash when removing aria-menu item from DOM
34197        https://bugs.webkit.org/show_bug.cgi?id=112396
34198
34199        Reviewed by Tim Horton.
34200
34201        Prevent nil access to items in the ARIA menu flow when deleting
34202        objects from the DOM.
34203
34204        Test: accessibility/menu-item-crash.html
34205
34206        * accessibility/AccessibilityNodeObject.cpp:
34207        (WebCore::siblingWithAriaRole):
34208        (WebCore::AccessibilityNodeObject::menuButtonForMenu):
34209
342102013-03-14  Hayato Ito  <hayato@chromium.org>
34211
34212        [Shadow]: left side of ::-webkit-distributed selector not working as expected
34213        https://bugs.webkit.org/show_bug.cgi?id=110825
34214
34215        Reviewed by Dimitri Glazkov.
34216
34217        Make functional pseudo distributed elements work even when a left side element has specifiers.
34218
34219        Test: fast/dom/shadow/distributed-pseudo-element-specifiers-in-left-side.html
34220
34221        * css/CSSParser.cpp:
34222        (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
34223        Make it call rewriteSpecifiersForShadowDistributed() if required.
34224
34225        (WebCore::CSSParser::rewriteSpecifiersWithElementName):
34226        Updated so that it can generate a correct chain of
34227        CSSParserSelectors even when '::distributed()' is used with an
34228        element, which might be empty, with specifiers.
34229
34230        e.g. When parsing a selector of 'content.content-class::-webkit-distributed(div)', the following happens:
34231
34232        1. rewriteSpecifiersWithElementName(...) is called with:
34233
34234           elementName is: "content"
34235           specifiers is: [.content-class] -> [::-webkit-distributed]
34236
34237        2. Looking for a distributed pseudo element in the specifiers and
34238           found it at the end of tagHistory chain of the specifiers.
34239
34240        3. The result of calling specifiers->prependTagSelector(tag) is:
34241
34242           specifiers is: [content] -> [.content-class] -> [::-webkit-distributed]
34243
34244        4. rewriteSpecifiersForShadowDistributed() is called with:
34245
34246           specifiers is: [content] -> [.content-class] -> [::-webkit-distributed]
34247           distributedPseudoElementSelector is: [::-webkit-distributed]
34248
34249        5. An argumentSelector of the distributedPseudoElementSelector is:
34250
34251           argumentSelector is: [div]
34252
34253        6. Remove the distributed pseudo element selector from the specifiers.
34254
34255           specifiers is: [content] -> [.content-class]
34256
34257           Note that one pseudo-element may appear per complex selector
34258           and the pseudo-element may appear only if the subject of the
34259           selector is the last compound selector in the selector.
34260
34261        7. Append specifiers to the end of the argument selector with a relation of ShadowDistributed:
34262
34263           argumentSelector is: [div] -(ShadowDistributed)-> [content] -> [.content-class]
34264
34265        8. Returns the argument selector as a return value.
34266
34267        (WebCore::CSSParser::rewriteSpecifiersForShadowDistributed): As explained.
34268        * css/CSSParserValues.cpp:
34269        (WebCore):
34270        (WebCore::CSSParserSelector::findDistributedPseudoElementSelector):
34271        * css/CSSParserValues.h:
34272        (CSSParserSelector):
34273        (WebCore::CSSParserSelector::clearTagHistory):
34274
342752013-03-14  Takashi Sakamoto  <tasak@google.com>
34276
34277        Crash at CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement reported by fuzzer
34278        https://bugs.webkit.org/show_bug.cgi?id=112328
34279
34280        Reviewed by Dimitri Glazkov.
34281
34282        ensureDefaultStyleSheets should check whether page() is null or not.
34283
34284        Test: fast/css/ensure-default-style-sheets-crash.xhtml
34285
34286        * css/CSSDefaultStyleSheets.cpp:
34287        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
34288
342892013-03-14  Brandon Jones  <bajones@google.com>
34290
34291        Check to ensure MultisampleRenderbuffer creation succeeds
34292        https://bugs.webkit.org/show_bug.cgi?id=111780
34293
34294        Reviewed by Kenneth Russell.
34295
34296        On OSX systems using AMD graphics chips the allocation of large
34297        Multisample Renderbuffers in Chromium would fail without any indication
34298        of failure. Attempting to draw to the buffer resulted in garbage being
34299        rendered onscreen. This could be reproduced by opening a full-page
34300        WebGL app and pressing (Command + "-") several times. This patch adds an
34301        additional check during DrawingBuffer resize to verify that the resized
34302        buffer is valid. 
34303
34304        * platform/graphics/gpu/DrawingBuffer.cpp:
34305        (WebCore):
34306        (WebCore::DrawingBuffer::checkBufferIntegrity):
34307        (WebCore::DrawingBuffer::reset):
34308        * platform/graphics/gpu/DrawingBuffer.h:
34309        (DrawingBuffer):
34310
343112013-03-14  Enrica Casucci  <enrica@apple.com>
34312
34313        Character orientation should follow UTR50 specs for vertical layout.
34314        https://bugs.webkit.org/show_bug.cgi?id=112213
34315        <rdar://problem/12880943>
34316
34317        Reviewed by Ryosuke Niwa.
34318
34319        platform/mac/fast/text/vertical-no-sideways.html: Modified to cover samples
34320        of the additional character ranges that should not be rotated in vertical layout.
34321        Added pixel results.
34322
34323        This patch modifies shouldIgnoreRotation to include all the characters that
34324        should not be rotated sideways in vertical layout according to the UTR50 draft 6
34325        specifications. It also fixes rotation for Emojii.
34326
34327        * platform/graphics/FontFastPath.cpp:
34328        (WebCore::shouldIgnoreRotation):
34329        (WebCore::isInRange): Added.
34330        * platform/graphics/mac/FontMac.mm:
34331        (WebCore::showGlyphsWithAdvances): Adds the proper transforms to ensure
34332        Emojii also are drawn correctly upright.
34333
343342013-03-14  Manuel Rego Casasnovas  <rego@igalia.com>
34335
34336        Add selectTrailingWhitespaceEnabled setting to WebCore::Page
34337        https://bugs.webkit.org/show_bug.cgi?id=109404
34338
34339        Reviewed by Tony Chang.
34340
34341        Covered by
34342        editing/selection/doubleclick-inline-first-last-contenteditable.html.
34343
34344        * page/Settings.cpp:
34345        (WebCore): Configure default value for smartInsertDeleteEnabled and
34346        selectTrailingWhitespaceEnabled seetings as they are different in
34347        Chromium port depending on the OS.
34348        * page/Settings.in: Add new setting.
34349
343502013-03-14  Robert Flack  <flackr@chromium.org>
34351
34352        [chromium] Short scrollbar has empty track rect even when buttons have no size.
34353        https://bugs.webkit.org/show_bug.cgi?id=102580
34354
34355        Reviewed by James Robinson.
34356
34357        When computing the scrollbar track rect, don't assume the button's height is the track width.
34358
34359        Test: platform/chromium/scrollbars/short-scrollbar.html
34360        Note however that this doesn't expose the bug on any tested platforms and mock scrollbars
34361        don't use ScrollbarThemeChromium.cpp. Manually running this test on linux chromiumos will
34362        show the now present scrollbar track and thumb.
34363
34364        * platform/chromium/ScrollbarThemeChromium.cpp:
34365        (WebCore::ScrollbarThemeChromium::trackRect):
34366
343672013-03-14  Andrey Lushnikov  <lushnikov@chromium.org>
34368
34369        Web Inspector: Show syntax highlight for application/javascript in Resource Preview tab
34370        https://bugs.webkit.org/show_bug.cgi?id=112355
34371
34372        Reviewed by Pavel Feldman.
34373
34374        No new tests.
34375
34376        Return canonical mimeType in requestContent method of
34377        NetworkRequest.js
34378
34379        * inspector/front-end/NetworkRequest.js:
34380        (WebInspector.NetworkRequest.prototype.requestContent):
34381
343822013-03-14  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
34383
34384        [EFL] Use CROSS_PLATFORM_CONTEXT_MENU
34385        https://bugs.webkit.org/show_bug.cgi?id=111877
34386
34387        Reviewed by Caio Marcelo de Oliveira Filho.
34388
34389        Now EFL uses the CROSS_PLATFORM_CONTEXT_MENUS
34390        USE flag. This flag provides a full cross-platform
34391        representation of a ContextMenu and a ContextMenuItem.
34392        The embedder can then decide how to show this and neither
34393        WebCore nor WebCore/platform need to know any platform
34394        specific code about the menus, even though they could.
34395
34396        No new tests needed, no behavior changes.
34397
34398        * platform/ContextMenu.h:
34399        (ContextMenu):
34400        * platform/ContextMenuItem.h:
34401        (WebCore):
34402        * platform/PlatformMenuDescription.h:
34403        (WebCore):
34404        * platform/efl/ContextMenuEfl.cpp:
34405        (WebCore::ContextMenu::ContextMenu):
34406        (WebCore::ContextMenu::getContextMenuItems):
34407        (WebCore::ContextMenu::createPlatformContextMenuFromItems):
34408        (WebCore::ContextMenu::platformContextMenu):
34409        * platform/efl/ContextMenuItemEfl.cpp:
34410        (WebCore::ContextMenuItem::platformContextMenuItem):
34411
344122013-03-14  Julien Chaffraix  <jchaffraix@webkit.org>
34413
34414        [CSS Grid Layout] resolveContentBasedTrackSizingFunctions should iterate over the grid items not the grid tracks
34415        https://bugs.webkit.org/show_bug.cgi?id=112299
34416
34417        Reviewed by Tony Chang.
34418
34419        Our initial implementation would iterate over the grid tracks. This was equivalent as no items were spanning but
34420        once grid items spans, they start to contribute to several grid tracks differently. This change aligns our code
34421        with what the specification does.
34422
34423        One upside of doing a grid items' iteration is that the complexity should be better in all cases as we don't do
34424        a full grid walking (which is potentially quadratic), only some extra grid tracks' iteration (which are linear).
34425
34426        Refactoring, there should be no change in behavior.
34427
34428        * rendering/RenderGrid.cpp:
34429        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
34430        Moved the |availableLogicalSpace| update into resolveContentBasedTrackSizingFunctions. This simplifies and consolidate our handling.
34431
34432        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
34433        Updated the core loop to iterator over grid items and not grid tracks. This idea is that now resolveContentBasedTrackSizingFunctionsForItems
34434        uses a filtering function to only process the appropriate grid tracks.
34435
34436        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
34437        Updated to filter the grid tracks here (this matches the |TracksForGrowth| spec logic that is merely a filtering function).
34438
34439        * rendering/RenderGrid.h:
34440        Added a new typedef and updated resolveContentBasedTrackSizingFunctionsForItems to use it.
34441
34442        * rendering/style/GridTrackSize.h:
34443        (WebCore::GridTrackSize::hasMinOrMaxContentMinTrackBreadth):
34444        (WebCore::GridTrackSize::hasMaxContentMinTrackBreadth):
34445        (WebCore::GridTrackSize::hasMinOrMaxContentMaxTrackBreadth):
34446        (WebCore::GridTrackSize::hasMaxContentMaxTrackBreadth):
34447        Added the following filtering function, which matches the values from |TracksForGrowth| in the specification.
34448
344492013-03-14  Alberto Garcia  <agarcia@igalia.com>
34450
34451        [BlackBerry] Gradient: don't use the default setPlatformGradientSpaceTransform()
34452        https://bugs.webkit.org/show_bug.cgi?id=112246
34453
34454        Reviewed by Xan Lopez.
34455
34456        BlackBerry has its own implementation.
34457
34458        * platform/graphics/Gradient.cpp:
34459        (WebCore):
34460
344612013-03-14  Xabier Rodriguez Calvar  <calvaris@igalia.com>
34462
34463        [GStreamer] simulateAudioInterruption needs to be guarded by ENABLE(VIDEO)"
34464        https://bugs.webkit.org/show_bug.cgi?id=112358
34465
34466        Guarded with ENABLE(VIDEO) to prevent problems when it is not
34467        enabled.
34468
34469        Reviewed by Philippe Normand.
34470
344712013-03-12  Florin Malita  <fmalita@chromium.org>
34472
34473        Tighten up the type bounds for SVGPropertyInfo callback parameters
34474        https://bugs.webkit.org/show_bug.cgi?id=111786
34475
34476        Reviewed by Philip Rogers.
34477
34478        Update SVGPropertyInfo's callbacks to pass SVGElement* parameters instead of void*. This
34479        allows us to perform some ASSERT-based type checking before downcasting in implementors.
34480
34481        To avoid adding virtual methods unused in release builds to the base class (and overrides
34482        in descendants), for subtypes lacking polymorphic type markers (isXXX()) the check is
34483        performed using hasTagName() instead.
34484
34485        The patch is also removing the lookupOrCreateWrapperForAnimatedProperty() SVGPropertyInfo
34486        callback for SVGViewSpec properties, because
34487
34488          a) it doesn't appear to be reachable (SVGViewSpec doesn't have a backing element and
34489          thus cannot have an associated animator)
34490
34491          b) it interferes with the parameter specialization described above (SVGViewSpec does not
34492          inherit from SVGElement)
34493
34494        No new tests, refactoring only.
34495
34496        * svg/SVGElement.cpp:
34497        (WebCore::SVGElement::synchronizeRequiredFeatures):
34498        (WebCore::SVGElement::synchronizeRequiredExtensions):
34499        (WebCore::SVGElement::synchronizeSystemLanguage):
34500        * svg/SVGElement.h:
34501        (SVGElement):
34502        * svg/SVGMarkerElement.cpp:
34503        (WebCore::SVGMarkerElement::synchronizeOrientType):
34504        (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
34505        * svg/SVGMarkerElement.h:
34506        (SVGMarkerElement):
34507        (WebCore::toSVGMarkerElement):
34508        (WebCore):
34509        * svg/SVGPathElement.cpp:
34510        (WebCore::SVGPathElement::lookupOrCreateDWrapper):
34511        (WebCore::SVGPathElement::synchronizeD):
34512        * svg/SVGPathElement.h:
34513        (SVGPathElement):
34514        (WebCore::toSVGPathElement):
34515        (WebCore):
34516        * svg/SVGPolyElement.cpp:
34517        (WebCore::SVGPolyElement::synchronizePoints):
34518        (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
34519        * svg/SVGPolyElement.h:
34520        (SVGPolyElement):
34521        (WebCore::toSVGPolyElement):
34522        (WebCore):
34523        * svg/SVGTextContentElement.cpp:
34524        (WebCore::SVGTextContentElement::synchronizeTextLength):
34525        (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
34526        * svg/SVGTextContentElement.h:
34527        (SVGTextContentElement):
34528        (WebCore::toSVGTextContentElement):
34529        (WebCore):
34530        Change SVGPropertyInfo callback params to SVGElement* and replace static casts with
34531        conversion wrappers. Implement conversion wrappers where needed.
34532
34533        * svg/SVGViewSpec.cpp:
34534        (WebCore::SVGViewSpec::viewBoxPropertyInfo):
34535        (WebCore::SVGViewSpec::preserveAspectRatioPropertyInfo):
34536        (WebCore::SVGViewSpec::transformPropertyInfo):
34537        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
34538        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
34539        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
34540        * svg/SVGViewSpec.h:
34541        (SVGViewSpec):
34542        Remove SVGPropertyInfo-based lookupOrCreate* callbacks and updated the methods' parameters
34543        to SVGViewSpec*. Remove now-unneeded casts.
34544
34545        * svg/properties/SVGAnimatedPropertyMacros.h:
34546        (WebCore):
34547        * svg/properties/SVGPropertyInfo.h:
34548        (WebCore):
34549        (SVGPropertyInfo):
34550        Update callback declarations.
34551
345522013-03-14  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
34553
34554        Move platform-specific typedefs to PlatformMenuDescription.h
34555        https://bugs.webkit.org/show_bug.cgi?id=111876
34556
34557        Reviewed by Caio Marcelo de Oliveira Filho.
34558
34559        Cross platform Context Menu platform-specific typedefs fit better
34560        in PlatformMenuDescription.h and should not be part of the classes
34561        ContextMenu and ContextMenuItem. We have also renamed them to
34562        PlatformContextMenu and PlatformContextMenuItem instead of NativeMenu
34563        and NativeMenuItem respectively.
34564
34565        No new tests needed since no behavior has changed.
34566
34567        * platform/ContextMenu.h:
34568        (ContextMenu):
34569        * platform/ContextMenuItem.h:
34570        (ContextMenuItem):
34571        * platform/PlatformMenuDescription.h:
34572        (WebCore):
34573        * platform/efl/ContextMenuEfl.cpp:
34574        (WebCore::ContextMenu::createPlatformContextMenuFromItems):
34575        (WebCore::ContextMenu::platformContextMenu):
34576        * platform/efl/ContextMenuItemEfl.cpp:
34577        (WebCore::ContextMenuItem::platformContextMenuItem):
34578        * platform/win/ContextMenuItemWin.cpp:
34579        (WebCore):
34580        (WebCore::ContextMenuItem::platformContextMenuItem):
34581        * platform/win/ContextMenuWin.cpp:
34582        (WebCore::ContextMenu::createPlatformContextMenuFromItems):
34583        (WebCore::ContextMenu::platformContextMenu):
34584
345852013-03-11  Jer Noble  <jer.noble@apple.com>
34586
34587        Crash in DumpRenderTree at com.apple.WebCore: WebCore::CaptionUserPreferences::captionPreferencesChanged + 185
34588        https://bugs.webkit.org/show_bug.cgi?id=112051
34589
34590        Reviewed by Eric Carlson.
34591
34592        No new tests; fixes a crash during media/video-controls-captions-trackmenu.html.
34593
34594        Instead of relying on a registration system which can fail when an element's document does not have a page,
34595        Elements will register for captionPreferencesChanged() notifications directly with their owning Document.
34596        CaptionUserPreferences, in turn, will notify all Documents in its PageGroup, rather than only directly
34597        registered listeners.
34598
34599        * dom/Document.cpp:
34600        (WebCore::Document::registerForCaptionPreferencesChangedCallbacks): Added. Notify the CaptionUserPreferences that someone
34601            is interested in captionPreferencesChanged notfications.
34602        (WebCore::Document::unregisterForCaptionPreferencesChangedCallbacks): Added.
34603        (WebCore::Document::captionPreferencesChanged): Added. Pass to all registered elements.
34604        * dom/Document.h:
34605        * dom/Element.h:
34606        (WebCore::Element::captionPreferencesChanged): Added. Empty; intended
34607            to be overridden by subclasses.
34608        * history/CachedPage.cpp:
34609        (WebCore::CachedPage::CachedPage): Initialize m_needsCaptionPreferenceChanged member.
34610        (WebCore::CachedPage::restore): Call captionPreferencesChanged() if necessary.
34611        * history/CachedPage.h:
34612        (WebCore::CachedPage::markForCaptionPreferencesChanged): Set the m_needsCaptionPreferenceChanged member.
34613        * history/PageCache.cpp:
34614        (WebCore::PageCache::markPagesForCaptionPreferencesChanged): Pass to every CachedPage.
34615        * history/PageCache.h:
34616        * html/HTMLMediaElement.cpp:
34617        (WebCore::HTMLMediaElement::HTMLMediaElement): Register with the Document.
34618        (WebCore::HTMLMediaElement::~HTMLMediaElement): Unregister with same.
34619        (WebCore::HTMLMediaElement::attach): Remove previous registration call.
34620        * html/HTMLMediaElement.h:
34621        * page/CaptionUserPreferences.cpp:
34622        (WebCore::CaptionUserPreferences::captionPreferencesChanged): Pass to the
34623            PageGroup.
34624        * page/CaptionUserPreferences.h:
34625        (WebCore::CaptionUserPreferences::setInterestedInCaptionPreferenceChanges):
34626            Empty; intended to be overridden by subclasses.
34627        * page/CaptionUserPreferencesMac.h:
34628        * page/CaptionUserPreferencesMac.mm:
34629        (WebCore::CaptionUserPreferencesMac::setInterestedInCaptionPreferenceChanges):
34630            Renamed from registerForPreferencesChangedCallbacks().
34631        (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged):
34632            Replace call to havePreferenceChangeListeners() with m_listeningForPreferenceChanges.
34633        * page/Page.cpp:
34634        (WebCore::Page::captionPreferencesChanged):
34635            Pass to every contained Document.
34636        * page/Page.h:
34637        * page/CaptionUserPreferences.cpp:
34638        (WebCore::CaptionUserPreferences::captionPreferencesChanged): Pass to the PageGroup.
34639        * page/CaptionUserPreferences.h:
34640        * page/PageGroup.cpp:
34641        (WebCore::PageGroup::captionPreferencesChanged): Pass to every page, as well as pages in the PageCache.
34642        * page/PageGroup.h:
34643
346442013-03-14  David Grogan  <dgrogan@chromium.org>
34645
34646        IndexedDB: Histogram leveldb open errors.
34647        https://bugs.webkit.org/show_bug.cgi?id=112307
34648
34649        Reviewed by Tony Chang.
34650
34651        No new tests, I don't know if there's a good way to test histograms.
34652
34653        * platform/leveldb/LevelDBDatabase.cpp:
34654        (WebCore::LevelDBDatabase::open):
34655
346562013-03-14  Robert Hogan  <robert@webkit.org>
34657
34658        REGRESSION(r145305) Performance: 1.3% mac-release-10.6-webkit-latest/intl2/times/t change after rev 145300
34659        https://bugs.webkit.org/show_bug.cgi?id=112125
34660
34661        Reviewed by Julien Chaffraix.
34662
34663        When detecting cases where a loaded image may need to move up into the padding created by the row's baseline
34664        we don't need to do anything if the row doesn't have a baseline yet.
34665
34666        * rendering/RenderTableCell.cpp:
34667        (WebCore::RenderTableCell::layout):
34668
346692013-03-14  Brady Eidson  <beidson@apple.com>
34670
34671        Add a mode to ResourceLoader that takes SharedBuffers instead of raw pointers and lengths.
34672        <rdar://problem/13416953> and https://bugs.webkit.org/show_bug.cgi?id=112310
34673
34674        Reviewed by Andy Estes.
34675
34676        No new tests (No independently testable change in behavior).
34677
34678        Many of the tested platforms deliver data buffers to their ResourceHandles from objects
34679        that encapsulate a data buffer such as NSData (Mac), CFDataRef (CF), or QByteArray (qt).
34680
34681        If those platforms also augmented SharedBuffer to wrap their native object (which Mac/CF do)
34682        and there existed ResourceLoader callbacks to take that SharedBuffer instead of char* + length,
34683        then many resource loads could avoid a useless copy.
34684
34685        At least on Mac, there are some extremely important behind-the-scenes optimizations for NS/CFData
34686        that will be a more important win than simply avoiding a copy.
34687
34688        This patch adds that SharedBuffer-based callback with the hope that all platforms could find a 
34689        way to use a buffer-encapsulating object going forward, and we could therefore deprecate the
34690        char* + length version of didReceiveData.
34691
34692        * platform/network/ResourceHandleClient.h:
34693        (WebCore::ResourceHandleClient::didReceiveBuffer): Add a didReceiveBuffer callback that takes 
34694          a SharedBuffer object. The default implementation passes raw bytes + length to didReceiveData.
34695
34696        * loader/ResourceLoader.cpp:
34697        (WebCore::ResourceLoader::addDataOrBuffer): Replacing addData(), optionally adding the data from
34698          either a data+length or SharedBuffer
34699        (WebCore::ResourceLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
34700        (WebCore::ResourceLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
34701        (WebCore::ResourceLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data.
34702        * loader/ResourceLoader.h: Add OVERRIDE to all of the ResourceHandleClient methods to help
34703          catch future mistakes. Remove "virtual" from methods that didn't need it. Make "addData" into
34704          "addDataOrBuffer" and make it private.
34705
34706        * loader/NetscapePlugInStreamLoader.cpp:
34707        (WebCore::NetscapePlugInStreamLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
34708        (WebCore::NetscapePlugInStreamLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
34709        (WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data.
34710        * loader/NetscapePlugInStreamLoader.h:
34711
34712        * loader/SubresourceLoader.cpp:
34713        (WebCore::SubresourceLoader::didReceiveData): Pipe to didReceiveDataOrBuffer.
34714        (WebCore::SubresourceLoader::didReceiveBuffer): Pipe to didReceiveDataOrBuffer.
34715        (WebCore::SubresourceLoader::didReceiveDataOrBuffer): Single chokepoint for receiving data. Also,
34716          rely on ResourceLoader's base implementation for notifying the ResourceLoadNotifier.
34717        * loader/SubresourceLoader.h:
34718
34719        * loader/ResourceBuffer.cpp:
34720        (WebCore::ResourceBuffer::append): Add a mode that appends a SharedBuffer.
34721        * loader/ResourceBuffer.h:
34722
34723        * platform/cf/SharedBufferCF.cpp:
34724        (WebCore::SharedBuffer::maybeTransferPlatformData): Fix a bug where appending data to a CFData-backed
34725          SharedBuffer would re-enter maybeTransferPlatformData and blow out the stack.
34726
34727        * platform/network/mac/ResourceHandleMac.mm:
34728        (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): Send a wrapped NSData
34729          to didReceiveBuffer() instead of sending its char* and length to didReceiveData()
34730
347312013-03-14  Yury Semikhatsky  <yurys@chromium.org>
34732
34733        Web Inspector: nuke bottom up CPU profile calculation on backend
34734        https://bugs.webkit.org/show_bug.cgi?id=112351
34735
34736        Reviewed by Pavel Feldman.
34737
34738        Removed code that builds bottom-up CPU profile on the inspector
34739        backend. Bottom-up view is already built on the front-end from
34740        the top-down profile data.
34741
34742        * bindings/js/ScriptProfile.cpp:
34743        * bindings/js/ScriptProfile.h:
34744        (ScriptProfile):
34745        * bindings/v8/ScriptProfile.cpp:
34746        (WebCore::ScriptProfile::buildInspectorObjectForHead):
34747        * bindings/v8/ScriptProfile.h:
34748        (ScriptProfile):
34749        * inspector/Inspector.json:
34750        * inspector/InspectorProfilerAgent.cpp:
34751        (WebCore::InspectorProfilerAgent::getCPUProfile):
34752
347532013-03-14  Abhishek Arya  <inferno@chromium.org>
34754
34755        Replace static_casts with to* helper functions.
34756        https://bugs.webkit.org/show_bug.cgi?id=112296
34757
34758        Reviewed by Kentaro Hara.
34759
34760        to* helper functions are preferred over static_cast calls since they
34761        help to catch bad casts easily on the testing infrastructure.
34762
34763        * accessibility/AXObjectCache.cpp:
34764        (WebCore::nodeHasRole):
34765        * accessibility/AccessibilityObject.cpp:
34766        (WebCore::AccessibilityObject::hasAttribute):
34767        (WebCore::AccessibilityObject::getAttribute):
34768        * accessibility/AccessibilityRenderObject.cpp:
34769        (WebCore::AccessibilityRenderObject::anchorElement):
34770        (WebCore::AccessibilityRenderObject::helpText):
34771        (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
34772        (WebCore::AccessibilityRenderObject::titleUIElement):
34773        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
34774        (WebCore::AccessibilityRenderObject::accessKey):
34775        (WebCore::AccessibilityRenderObject::setElementAttributeValue):
34776        (WebCore::AccessibilityRenderObject::setValue):
34777        (WebCore::AccessibilityRenderObject::activeDescendant):
34778        (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
34779        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
34780        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
34781        (WebCore::AccessibilityRenderObject::setAccessibleName):
34782        (WebCore::AccessibilityRenderObject::stringRoleForMSAA):
34783        * bindings/gobject/WebKitDOMBinding.cpp:
34784        (WebKit::createWrapper):
34785        * bindings/js/JSClipboardCustom.cpp:
34786        (WebCore::JSClipboard::setDragImage):
34787        * bindings/js/JSElementCustom.cpp:
34788        (WebCore::toJSNewlyCreated):
34789        * bindings/js/JSNodeCustom.cpp:
34790        (WebCore::createWrapperInline):
34791        * bindings/v8/custom/V8ClipboardCustom.cpp:
34792        (WebCore::V8Clipboard::setDragImageMethodCustom):
34793        * bindings/v8/custom/V8ElementCustom.cpp:
34794        (WebCore::wrap):
34795        * bindings/v8/custom/V8NodeCustom.cpp:
34796        (WebCore::wrap):
34797        * dom/Document.cpp:
34798        (WebCore::Document::importNode):
34799        (WebCore::Document::recalcStyle):
34800        (WebCore::Document::setFocusedNode):
34801        (WebCore::Document::updateFocusAppearanceTimerFired):
34802        * dom/DocumentStyleSheetCollection.cpp:
34803        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
34804        * dom/Element.cpp:
34805        (WebCore::Element::offsetParent):
34806        (WebCore::Element::boundsInRootViewSpace):
34807        (WebCore::Element::getBoundingClientRect):
34808        (WebCore::Element::recalcStyle):
34809        (WebCore::Element::computeInheritedLanguage):
34810        (WebCore::Element::lastElementChild):
34811        * dom/LiveNodeList.cpp:
34812        (WebCore::LiveNodeList::namedItem):
34813        * dom/Node.cpp:
34814        (WebCore::Node::dumpStatistics):
34815        (WebCore::Node::normalize):
34816        (WebCore::Node::rootEditableElement):
34817        (WebCore::Node::isDefaultNamespace):
34818        (WebCore::Node::ancestorElement):
34819        (WebCore::appendAttributeDesc):
34820        * dom/Position.cpp:
34821        (WebCore::Position::element):
34822        * dom/Range.cpp:
34823        (WebCore::Range::getBorderAndTextQuads):
34824        * dom/SelectorQuery.cpp:
34825        (WebCore::SelectorDataList::queryFirst):
34826        (WebCore::SelectorDataList::execute):
34827        * dom/ShadowRoot.cpp:
34828        (WebCore::ShadowRoot::recalcStyle):
34829        * dom/StaticHashSetNodeList.cpp:
34830        (WebCore::StaticHashSetNodeList::namedItem):
34831        * editing/ApplyStyleCommand.cpp:
34832        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
34833        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
34834        (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
34835        (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
34836        * editing/Editor.cpp:
34837        (WebCore::Editor::applyEditingStyleToBodyElement):
34838        * editing/FrameSelection.cpp:
34839        (WebCore::removingNodeRemovesPosition):
34840        * editing/IndentOutdentCommand.cpp:
34841        (WebCore::IndentOutdentCommand::outdentParagraph):
34842        * editing/MarkupAccumulator.cpp:
34843        (WebCore::MarkupAccumulator::entityMaskForText):
34844        (WebCore::MarkupAccumulator::appendStartMarkup):
34845        (WebCore::MarkupAccumulator::appendEndMarkup):
34846        * editing/ModifySelectionListLevel.cpp:
34847        (WebCore::IncreaseSelectionListLevelCommand::doApply):
34848        * editing/ReplaceSelectionCommand.cpp:
34849        (WebCore::haveSameTagName):
34850        (WebCore::handleStyleSpansBeforeInsertion):
34851        (WebCore::ReplaceSelectionCommand::doApply):
34852        * editing/SplitTextNodeContainingElementCommand.cpp:
34853        (WebCore::SplitTextNodeContainingElementCommand::doApply):
34854        * editing/TextIterator.cpp:
34855        (WebCore::TextIterator::advance):
34856        * editing/htmlediting.cpp:
34857        (WebCore::unsplittableElementForPosition):
34858        (WebCore::enclosingTableCell):
34859        * editing/markup.cpp:
34860        (WebCore::StyledMarkupAccumulator::wrapWithNode):
34861        (WebCore::createMarkupInternal):
34862        (WebCore::createFragmentFromMarkupWithContext):
34863        (WebCore::isPlainTextMarkup):
34864        (WebCore::createFragmentFromText):
34865        * html/HTMLElement.cpp:
34866        (WebCore::HTMLElement::insertAdjacentElement):
34867        (WebCore::contextElementForInsertion):
34868        * html/HTMLFormControlElement.cpp:
34869        (WebCore::focusPostAttach):
34870        (WebCore::updateFromElementCallback):
34871        * html/HTMLFormElement.cpp:
34872        (WebCore::submitElementFromEvent):
34873        * html/HTMLObjectElement.cpp:
34874        (WebCore::HTMLObjectElement::updateDocNamedItem):
34875        * html/HTMLPlugInImageElement.cpp:
34876        (WebCore::HTMLPlugInImageElement::updateSnapshotInfo):
34877        * html/HTMLViewSourceDocument.cpp:
34878        (WebCore::HTMLViewSourceDocument::addRange):
34879        * html/parser/HTMLTreeBuilder.cpp:
34880        (WebCore::closestFormAncestor):
34881        * html/shadow/MediaControlElementTypes.cpp:
34882        (WebCore::toParentMediaElement):
34883        * html/shadow/TextFieldDecorationElement.h:
34884        (WebCore::toTextFieldDecorationElement):
34885        * inspector/DOMPatchSupport.cpp:
34886        (WebCore::DOMPatchSupport::createDigest):
34887        * inspector/InspectorDOMAgent.cpp:
34888        (WebCore::InspectorDOMAgent::buildObjectForNode):
34889        (WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
34890        * inspector/InspectorStyleSheet.cpp:
34891        (WebCore::InspectorStyleSheet::inlineStyleSheetText):
34892        * mathml/MathMLElement.h:
34893        (WebCore::toMathMLElement):
34894        * page/ContextMenuController.cpp:
34895        (WebCore::ContextMenuController::populate):
34896        * page/DragController.cpp:
34897        (WebCore::elementUnderMouse):
34898        (WebCore::DragController::startDrag):
34899        * page/FocusController.cpp:
34900        (WebCore::FocusController::advanceFocusInDocumentOrder):
34901        * page/Frame.cpp:
34902        (WebCore::Frame::searchForLabelsBeforeElement):
34903        * page/FrameView.cpp:
34904        (WebCore::FrameView::updateWidget):
34905        * page/SpatialNavigation.cpp:
34906        (WebCore::rectToAbsoluteCoordinates):
34907        * page/animation/ImplicitAnimation.cpp:
34908        (WebCore::ImplicitAnimation::sendTransitionEvent):
34909        * page/animation/KeyframeAnimation.cpp:
34910        (WebCore::KeyframeAnimation::KeyframeAnimation):
34911        (WebCore::KeyframeAnimation::sendAnimationEvent):
34912        * platform/efl/RenderThemeEfl.cpp:
34913        (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
34914        (WebCore::RenderThemeEfl::paintMediaMuteButton):
34915        * rendering/FilterEffectRenderer.cpp:
34916        (WebCore::FilterEffectRenderer::buildReferenceFilter):
34917        * rendering/svg/RenderSVGViewportContainer.cpp:
34918        (WebCore::RenderSVGViewportContainer::calcViewport):
34919        * svg/SVGSVGElement.cpp:
34920        (WebCore::SVGSVGElement::getElementById):
34921        * svg/SVGUseElement.cpp:
34922        (WebCore::isDisallowedElement):
34923        * svg/animation/SVGSMILElement.cpp:
34924        (WebCore::SVGSMILElement::buildPendingResource):
34925        * xml/XPathStep.cpp:
34926        (WebCore::XPath::nodeMatchesBasicTest):
34927        * xml/parser/XMLDocumentParserQt.cpp:
34928        (WebCore::XMLDocumentParser::XMLDocumentParser):
34929        (WebCore::XMLDocumentParser::parseEndElement):
34930
349312013-03-14  Pavel Feldman  <pfeldman@chromium.org>
34932
34933        Web Inspector: keep deprecated function stubs in InspectorFrontendHost.
34934        https://bugs.webkit.org/show_bug.cgi?id=112347
34935
34936        Reviewed by Vsevolod Vlasov.
34937
34938        In order to open older front-ends in newer hosts, we need to keep stubs
34939        for deprecated functions. Longer term, we need to wrap all calls to InspectorFrontendHost in the front-end.
34940
34941        * inspector/InspectorFrontendHost.cpp:
34942        (WebCore::InspectorFrontendHost::canInspectWorkers):
34943        (WebCore):
34944        (WebCore::InspectorFrontendHost::hiddenPanels):
34945        * inspector/InspectorFrontendHost.h:
34946        (InspectorFrontendHost):
34947        * inspector/InspectorFrontendHost.idl:
34948
349492013-03-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
34950
34951        Fixed styles pane visibility when docked to right.
34952        https://bugs.webkit.org/show_bug.cgi?id=112348
34953
34954        Reviewed by Pavel Feldman.
34955
34956        * inspector/front-end/ElementsPanel.js:
34957        (WebInspector.ElementsPanel.prototype._splitVertically):
34958        * inspector/front-end/SidebarPane.js:
34959        (WebInspector.SidebarPane.prototype.setExpandCallback):
34960        (WebInspector.SidebarPaneTitle):
34961        (WebInspector.SidebarTabbedPane.prototype.addPane):
34962
349632013-03-14  Alberto Garcia  <agarcia@igalia.com>
34964
34965        [BlackBerry] GraphicsContext3D: implement ImageExtractor::extractImage()
34966        https://bugs.webkit.org/show_bug.cgi?id=112242
34967
34968        Reviewed by Rob Buis.
34969
34970        In r136282 GraphicsContext3D::getImageData() was refactored in a
34971        new class called ImageExtractor.
34972
34973        This patch implements the necessary changes for the BlackBerry
34974        port, which is still using the old API.
34975
34976        * platform/graphics/GraphicsContext3D.h:
34977        (ImageExtractor):
34978        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
34979        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
34980        (WebCore):
34981        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
34982
349832013-03-14  Xabier Rodriguez Calvar  <calvaris@igalia.com>
34984
34985        [GStreamer] Stopping playback of html5 media when receiving a higher priority audio event needs implementation
34986        https://bugs.webkit.org/show_bug.cgi?id=91611
34987
34988        React to REQUEST_STATE GStreamer message to stop the pipeline when
34989        a higher priority stream is played. When this happens, states are
34990        updated accordingly.
34991
34992        A method was added in the MediaPlayer class and internals to allow
34993        the the test runner to simulate an audio interruption.
34994
34995        Reviewed by Philippe Normand.
34996
34997        Test: media/media-higher-prio-audio-stream.html
34998
34999        * platform/graphics/MediaPlayer.h:
35000        * platform/graphics/MediaPlayer.cpp:
35001        (WebCore):
35002        (MediaPlayer):
35003        (WebCore::MediaPlayer::simulateAudioInterruption): New method
35004        delegating an audio interruption to the private backend to
35005        simulate the use-case where an external application needs
35006        exclusive access to the audio device.
35007        * platform/graphics/MediaPlayerPrivate.h:
35008        (MediaPlayerPrivateInterface):
35009        (WebCore::MediaPlayerPrivateInterface::simulateAudioInterruption):
35010        Added default empty method in the common private header.
35011        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
35012        (WebCore):
35013        (WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
35014        (WebCore::setAudioStreamPropertiesCallback): Hooked to child-added
35015        signal on the audio sink, delegates on setAudioStreamProperties.
35016        (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
35017        Sets the audio stream properties.
35018        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
35019        Initializes the new attribute.
35020        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
35021        Disconnects autoaudiosink signal.
35022        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
35023        Changed logging.
35024        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Reacting to
35025        the REQUEST_STATE message.
35026        (WebCore::MediaPlayerPrivateGStreamer::simulateAudioInterruption):
35027        Added. Injects the REQUEST_STATE message to the pipeline.
35028        (WebCore::MediaPlayerPrivateGStreamer::updateStates): Updating the
35029        playback state if REQUEST_STATE.
35030        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
35031        (MediaPlayerPrivateGStreamer): Added new method and attribute.
35032        * testing/Internals.h:
35033        * testing/Internals.idl:
35034        * testing/Internals.cpp:
35035        (WebCore):
35036        (WebCore::Internals::simulateAudioInterruption): Added to call the
35037        method to stop the element because of a higher prio stream at the
35038        tests.
35039
350402013-03-14  Allan Sandfeld Jensen  <allan.jensen@digia.com>
35041
35042        [Qt] Add support for tiled shadow blur
35043        https://bugs.webkit.org/show_bug.cgi?id=90082
35044
35045        Reviewed by Noam Rosenthal.
35046
35047        Use the optimized ShadowBlur::drawRectShadow as long as we do not
35048        have a rotating transform. Such a transform would go through the
35049        slow path in ShadowBlur anyway, and would end up using a transformed
35050        TransparencyLayer with an alphaMap which causes scaling artifacts
35051        for us.
35052
35053        Tested by fast/canvas/canvas-scale-fillRect-shadow.html
35054        and fast/canvas/canvas-transforms-fillRect-shadow.html
35055
35056        * platform/graphics/ShadowBlur.cpp:
35057        (WebCore::ShadowBlur::drawInsetShadowWithTiling):
35058            Handle scaling transforms when shadows ignore transforms.
35059        (WebCore::ShadowBlur::drawRectShadowWithTiling):
35060            Ditto.
35061        * platform/graphics/qt/GraphicsContextQt.cpp:
35062        (WebCore::GraphicsContext::fillRect):
35063
350642013-03-12  Andrey Kosyakov  <caseq@chromium.org>
35065
35066        Web Inspector: do not aggregate non-main thread timeline events, handle them in a generic fashion
35067        https://bugs.webkit.org/show_bug.cgi?id=112172
35068
35069        Reviewed by Vsevolod Vlasov.
35070
35071        - build nested event trees for non-main thread events similar to how it's done on the main thread;
35072        - drop aggregation logic for Rasterize events;
35073        - extract time conversion logic so that it may be reused in TimelineTraceEventProcessor.
35074
35075        * English.lproj/localizedStrings.js: drive-by: drop duplicate line.
35076        * inspector/InspectorTimelineAgent.cpp:
35077        (WebCore::TimelineTimeConverter::reset):
35078        (WebCore):
35079        (WebCore::InspectorTimelineAgent::pushGCEventRecords):
35080        (WebCore::InspectorTimelineAgent::start):
35081        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
35082        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
35083        (WebCore::InspectorTimelineAgent::appendRecord):
35084        (WebCore::InspectorTimelineAgent::sendEvent):
35085        (WebCore::InspectorTimelineAgent::timestamp):
35086        * inspector/InspectorTimelineAgent.h:
35087        (TimelineTimeConverter):
35088        (WebCore::TimelineTimeConverter::TimelineTimeConverter):
35089        (WebCore::TimelineTimeConverter::fromMonotonicallyIncreasingTime):
35090        (WebCore):
35091        (InspectorTimelineAgent):
35092        (WebCore::InspectorTimelineAgent::timeConverter):
35093        * inspector/TimelineRecordFactory.cpp:
35094        (WebCore::TimelineRecordFactory::createBackgroundRecord):
35095        (WebCore):
35096        * inspector/TimelineRecordFactory.h:
35097        (TimelineRecordFactory):
35098        * inspector/TimelineTraceEventProcessor.cpp:
35099        (WebCore::TimelineRecordStack::TimelineRecordStack):
35100        (WebCore):
35101        (WebCore::TimelineRecordStack::addScopedRecord):
35102        (WebCore::TimelineRecordStack::closeScopedRecord):
35103        (WebCore::TimelineRecordStack::addInstantRecord):
35104        (WebCore::TimelineRecordStack::isOpenRecordOfType):
35105        (WebCore::TimelineRecordStack::send):
35106        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
35107        (WebCore::TimelineTraceEventProcessor::onBeginFrame):
35108        (WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
35109        (WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
35110        (WebCore::TimelineTraceEventProcessor::createRecord):
35111        * inspector/TimelineTraceEventProcessor.h:
35112        (TimelineRecordStack):
35113        (WebCore::TimelineRecordStack::Entry::Entry):
35114        (Entry):
35115        (WebCore::TimelineRecordStack::TimelineRecordStack):
35116        (WebCore):
35117        (WebCore::TimelineTraceEventProcessor::TimelineThreadState::TimelineThreadState):
35118        (TimelineThreadState):
35119        (TimelineTraceEventProcessor):
35120        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
35121        (WebCore::TimelineTraceEventProcessor::TraceEvent::isNull):
35122        (WebCore::TimelineTraceEventProcessor::threadState):
35123
351242013-03-14  Xan Lopez  <xlopez@igalia.com>
35125
35126        [GTK] Wrong ASSERT in AudioDestinationGstreamer::stop
35127        https://bugs.webkit.org/show_bug.cgi?id=112344
35128
35129        Reviewed by Philippe Normand.
35130
35131        Correct erroneous ASSERT, we want both member variables to exist.
35132
35133        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
35134        (WebCore::AudioDestinationGStreamer::stop):
35135
351362013-03-14  Ilya Tikhonovsky  <loislo@chromium.org>
35137
35138        Web Inspector: Flame Chart. Support scroll and zoom with help of mouse wheel.
35139        https://bugs.webkit.org/show_bug.cgi?id=112337
35140
35141        Reviewed by Yury Semikhatsky.
35142
35143        New member variable _xOffset were introduced.
35144
35145        * inspector/front-end/FlameChart.js:
35146        (WebInspector.FlameChart):
35147        (WebInspector.FlameChart.prototype._onMouseMove):
35148        (WebInspector.FlameChart.prototype._adjustXOffset):
35149        (WebInspector.FlameChart.prototype._adjustXScale):
35150        (WebInspector.FlameChart.prototype._onMouseWheel):
35151        (WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
35152        (WebInspector.FlameChart.prototype.onResize):
35153        (WebInspector.FlameChart.prototype.draw):
35154        (WebInspector.FlameChart.prototype._scheduleUpdate):
35155        (WebInspector.FlameChart.prototype.update):
35156
351572013-03-14  No'am Rosenthal  <noam@webkit.org>
35158
35159        [Texmap] Synchronize layers only if the layer has been changed.
35160        https://bugs.webkit.org/show_bug.cgi?id=112095
35161
35162        Reviewed by Allan Sandfeld Jensen.
35163
35164        A regression was introduced in r144787, causing an infinite IPC commitState/renderNextFrame 
35165        loop.
35166        This patch fixes this by making sure we only commit layer states that have actual pending 
35167        changes. 
35168
35169        No new tests, this is an optimization.
35170
35171        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
35172        (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
35173        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
35174        (CoordinatedGraphicsLayerState):
35175        (WebCore::CoordinatedGraphicsLayerState::hasPendingChanges):
35176
351772013-03-14  Simon Hausmann  <simon.hausmann@digia.com>
35178
35179        [Qt] Improve the handling of mock geolocation, device orientation and motion clients
35180
35181        Reviewed by Tor Arne Vestbø.
35182
35183        The mock versions of these web facing features should be instantiated when
35184        running in DumpRenderTree only. In order for them to work, no extra Qt modules
35185        such as QtLocation are actually needed.
35186
35187        This patch decouples enabling device orientation/motion and geolocation from
35188        the underlying Qt modules and makes them available in developer builds
35189        (!production_build) and backed by mock backends when running in drt.
35190
35191        So if the Qt 5 modules are available, they'll be used (unless drtRun). For
35192        developers the web facing features are always enabled (although requests will
35193        time out) and the mock backends are enabled inside DRT, allowing for the layout
35194        tests to run with less dependencies.
35195
35196        In addition this also enables the mock device motion client, which was
35197        previously never instantiated.
35198
35199        * Target.pri:
35200        * WebCore.pri:
35201
352022013-03-14  Allan Sandfeld Jensen  <allan.jensen@digia.com>
35203
35204        [TexMap] Painting into area of composited tile not cleared
35205        https://bugs.webkit.org/show_bug.cgi?id=112268
35206
35207        Reviewed by Kenneth Rohde Christiansen.
35208
35209        Clip painting to the area that has been cleared, so we 
35210        do not accidentally overpaint other areas.
35211
35212        Can be observed in ManualTests/scrollbars/scrollbars-in-composited-layers.html.
35213
35214        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
35215        (WebCore::BitmapTextureImageBuffer::updateContents):
35216
352172013-03-14  Marja Hölttä  <marja@chromium.org>
35218
35219        [V8] Store main world and non-main world templates separately.
35220        https://bugs.webkit.org/show_bug.cgi?id=111724
35221
35222        Reviewed by Jochen Eisinger.
35223
35224        This is needed for generating specialized bindings for the main
35225        world (bug 110874).
35226
35227        No new tests (updated existing bindings tests).
35228
35229        * bindings/scripts/CodeGeneratorV8.pm:
35230        (GenerateHeader):
35231        (GenerateDomainSafeFunctionGetter):
35232        (GenerateNormalAttrSetter):
35233        (GenerateParametersCheckExpression):
35234        (GenerateParametersCheck):
35235        (GenerateImplementation):
35236        (JSValueToNative):
35237        (CreateCustomSignature):
35238        * bindings/scripts/test/V8/V8Float64Array.cpp:
35239        (WebCore::Float64ArrayV8Internal::fooMethod):
35240        (WebCore::ConfigureV8Float64ArrayTemplate):
35241        (WebCore::V8Float64Array::GetTemplate):
35242        (WebCore::V8Float64Array::HasInstance):
35243        * bindings/scripts/test/V8/V8Float64Array.h:
35244        (V8Float64Array):
35245        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
35246        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
35247        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
35248        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
35249        (WebCore::V8TestActiveDOMObject::GetTemplate):
35250        (WebCore::V8TestActiveDOMObject::HasInstance):
35251        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
35252        (V8TestActiveDOMObject):
35253        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
35254        (WebCore::V8TestCustomNamedGetter::GetTemplate):
35255        (WebCore::V8TestCustomNamedGetter::HasInstance):
35256        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
35257        (V8TestCustomNamedGetter):
35258        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
35259        (WebCore::V8TestEventConstructor::GetTemplate):
35260        (WebCore::V8TestEventConstructor::HasInstance):
35261        * bindings/scripts/test/V8/V8TestEventConstructor.h:
35262        (V8TestEventConstructor):
35263        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
35264        (WebCore::TestEventTargetV8Internal::dispatchEventMethod):
35265        (WebCore::ConfigureV8TestEventTargetTemplate):
35266        (WebCore::V8TestEventTarget::GetTemplate):
35267        (WebCore::V8TestEventTarget::HasInstance):
35268        * bindings/scripts/test/V8/V8TestEventTarget.h:
35269        (V8TestEventTarget):
35270        * bindings/scripts/test/V8/V8TestException.cpp:
35271        (WebCore::V8TestException::GetTemplate):
35272        (WebCore::V8TestException::HasInstance):
35273        * bindings/scripts/test/V8/V8TestException.h:
35274        (V8TestException):
35275        * bindings/scripts/test/V8/V8TestInterface.cpp:
35276        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
35277        (WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
35278        (WebCore::ConfigureV8TestInterfaceTemplate):
35279        (WebCore::V8TestInterface::GetTemplate):
35280        (WebCore::V8TestInterface::HasInstance):
35281        * bindings/scripts/test/V8/V8TestInterface.h:
35282        (V8TestInterface):
35283        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
35284        (WebCore::V8TestMediaQueryListListener::GetTemplate):
35285        (WebCore::V8TestMediaQueryListListener::HasInstance):
35286        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
35287        (V8TestMediaQueryListListener):
35288        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
35289        (WebCore::V8TestNamedConstructor::GetTemplate):
35290        (WebCore::V8TestNamedConstructor::HasInstance):
35291        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
35292        (V8TestNamedConstructor):
35293        * bindings/scripts/test/V8/V8TestNode.cpp:
35294        (WebCore::V8TestNode::GetTemplate):
35295        (WebCore::V8TestNode::HasInstance):
35296        * bindings/scripts/test/V8/V8TestNode.h:
35297        (V8TestNode):
35298        * bindings/scripts/test/V8/V8TestObj.cpp:
35299        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
35300        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
35301        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
35302        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
35303        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
35304        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
35305        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
35306        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
35307        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
35308        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
35309        (WebCore::TestObjV8Internal::mutablePointAttrSetter):
35310        (WebCore::TestObjV8Internal::immutablePointAttrSetter):
35311        (WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
35312        (WebCore::TestObjV8Internal::longMethodWithArgsMethod):
35313        (WebCore::TestObjV8Internal::objMethodWithArgsMethod):
35314        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
35315        (WebCore::TestObjV8Internal::overloadedMethod1Method):
35316        (WebCore::TestObjV8Internal::overloadedMethod2Method):
35317        (WebCore::TestObjV8Internal::overloadedMethod8Method):
35318        (WebCore::TestObjV8Internal::overloadedMethodMethod):
35319        (WebCore::TestObjV8Internal::convert1Method):
35320        (WebCore::TestObjV8Internal::convert2Method):
35321        (WebCore::TestObjV8Internal::convert4Method):
35322        (WebCore::TestObjV8Internal::convert5Method):
35323        (WebCore::TestObjV8Internal::variadicNodeMethodMethod):
35324        (WebCore::ConfigureV8TestObjTemplate):
35325        (WebCore::V8TestObj::GetTemplate):
35326        (WebCore::V8TestObj::HasInstance):
35327        * bindings/scripts/test/V8/V8TestObj.h:
35328        (V8TestObj):
35329        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
35330        (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
35331        (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
35332        (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
35333        (WebCore::TestOverloadedConstructorsV8Internal::constructor):
35334        (WebCore::V8TestOverloadedConstructors::GetTemplate):
35335        (WebCore::V8TestOverloadedConstructors::HasInstance):
35336        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
35337        (V8TestOverloadedConstructors):
35338        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
35339        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
35340        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
35341        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
35342        (V8TestSerializedScriptValueInterface):
35343        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
35344        (WebCore::TestTypedefsV8Internal::funcMethod):
35345        (WebCore::ConfigureV8TestTypedefsTemplate):
35346        (WebCore::V8TestTypedefs::GetTemplate):
35347        (WebCore::V8TestTypedefs::HasInstance):
35348        * bindings/scripts/test/V8/V8TestTypedefs.h:
35349        (V8TestTypedefs):
35350        * bindings/v8/Dictionary.cpp:
35351        (WebCore::Dictionary::get):
35352        * bindings/v8/ScriptProfiler.cpp:
35353        (WebCore::ScriptProfiler::visitNodeWrappers):
35354        * bindings/v8/SerializedScriptValue.cpp:
35355        * bindings/v8/V8AdaptorFunction.cpp:
35356        (WebCore::V8AdaptorFunction::getTemplate):
35357        * bindings/v8/V8Binding.cpp:
35358        (WebCore::toDOMStringList):
35359        (WebCore::toXPathNSResolver):
35360        * bindings/v8/V8Binding.h:
35361        (WebCore):
35362        (WebCore::toRefPtrNativeArray):
35363        * bindings/v8/V8Collection.cpp:
35364        (WebCore::toOptionsCollectionSetter):
35365        * bindings/v8/V8GCController.cpp:
35366        * bindings/v8/V8NPObject.cpp:
35367        (WebCore::npObjectInvokeImpl):
35368        * bindings/v8/V8PerIsolateData.cpp:
35369        (WebCore::V8PerIsolateData::reportMemoryUsage):
35370        (WebCore::V8PerIsolateData::hasPrivateTemplate):
35371        (WebCore::V8PerIsolateData::privateTemplate):
35372        (WebCore::V8PerIsolateData::rawTemplate):
35373        (WebCore::V8PerIsolateData::hasInstance):
35374        * bindings/v8/V8PerIsolateData.h:
35375        (WebCore::V8PerIsolateData::rawTemplateMap):
35376        (V8PerIsolateData):
35377        (WebCore::V8PerIsolateData::templateMap):
35378        * bindings/v8/V8Utilities.cpp:
35379        (WebCore::extractTransferables):
35380        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
35381        (WebCore::constructWebGLArray):
35382        (WebCore::setWebGLArrayHelper):
35383        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
35384        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
35385        * bindings/v8/custom/V8BlobCustom.cpp:
35386        (WebCore::V8Blob::constructorCustom):
35387        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
35388        (WebCore::toCanvasStyle):
35389        * bindings/v8/custom/V8ClipboardCustom.cpp:
35390        (WebCore::V8Clipboard::setDragImageMethodCustom):
35391        * bindings/v8/custom/V8CryptoCustom.cpp:
35392        (WebCore::V8Crypto::getRandomValuesMethodCustom):
35393        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
35394        (WebCore::V8DOMFormData::constructorCustom):
35395        (WebCore::V8DOMFormData::appendMethodCustom):
35396        * bindings/v8/custom/V8DataViewCustom.cpp:
35397        (WebCore::V8DataView::constructorCustom):
35398        * bindings/v8/custom/V8DocumentCustom.cpp:
35399        (WebCore::V8Document::evaluateMethodCustom):
35400        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
35401        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
35402        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
35403        (WebCore::V8HTMLOptionsCollection::addMethodCustom):
35404        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
35405        (WebCore::removeElement):
35406        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
35407        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
35408        (WebCore::V8InjectedScriptHost::typeMethodCustom):
35409        (WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
35410        * bindings/v8/custom/V8LocationCustom.cpp:
35411        (WebCore::V8Location::reloadAttrGetterCustom):
35412        (WebCore::V8Location::replaceAttrGetterCustom):
35413        (WebCore::V8Location::assignAttrGetterCustom):
35414        * bindings/v8/custom/V8NodeCustom.cpp:
35415        (WebCore::V8Node::insertBeforeMethodCustom):
35416        (WebCore::V8Node::replaceChildMethodCustom):
35417        (WebCore::V8Node::removeChildMethodCustom):
35418        (WebCore::V8Node::appendChildMethodCustom):
35419        * bindings/v8/custom/V8NodeListCustom.cpp:
35420        (WebCore::V8NodeList::opaqueRootForGC):
35421        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
35422        (WebCore::toWebGLUniformLocation):
35423        (WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
35424        (WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
35425        (WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
35426        (WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
35427        (WebCore::vertexAttribAndUniformHelperf):
35428        (WebCore::uniformHelperi):
35429        (WebCore::uniformMatrixHelper):
35430        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
35431        (WebCore::isDocumentType):
35432        (WebCore::V8XMLHttpRequest::sendMethodCustom):
35433
354342013-03-14  Mike West  <mkwst@chromium.org>
35435
35436        Explicitly send only one report via XSSAuditorDelegate.
35437        https://bugs.webkit.org/show_bug.cgi?id=111964
35438
35439        Reviewed by Adam Barth.
35440
35441        This patch pulls the XSSAuditor report generation out into a separate
35442        function in XSSAuditorDelegate::generateViolationReport, and moves the
35443        call to that function into the "have we already notified folks about
35444        violations on this page?" block. This both clarifies the flow in
35445        XSSAuditorDelegate::didBlockScript, and ensures that only one violation
35446        report will be sent per page, which regressed in r145695.
35447
35448        Existing tests verify that reports are generated and sent correctly.
35449
35450        We have no tests for the latter condition: the XSSAuditor tests
35451        currently verify that a report showed up, but they can't verify that
35452        no report appeared without sitting around for a few more than a few
35453        seconds on every run.
35454
35455        * html/parser/XSSAuditorDelegate.cpp:
35456        (WebCore::XSSAuditorDelegate::generateViolationReport):
35457            Pull the report generation logic out to this new function.
35458        (WebCore::XSSAuditorDelegate::didBlockScript):
35459            Move the report generation call into the block that ensures it only
35460            executes for the first violation.
35461
354622013-03-14  Sergio Villar Senin  <svillar@igalia.com>
35463
35464        Empty list items after drag&drop in contentEditable divs
35465        https://bugs.webkit.org/show_bug.cgi?id=110610
35466
35467        Reviewed by Ryosuke Niwa.
35468
35469        Perform a cleanup after moving operations. This will mainly prune
35470        extra placeholders left by the editing algorithms. Also do not
35471        leave empty <li> when moving them around inside a list element.
35472
35473        Tests: editing/pasteboard/cleanup-on-move.html
35474               editing/pasteboard/drag-list-item.html
35475
35476        * editing/MoveSelectionCommand.cpp:
35477        (WebCore::MoveSelectionCommand::doApply): perform
35478        cleanupAfterDeletion().
35479        * editing/ReplaceSelectionCommand.cpp:
35480        (WebCore::ReplaceSelectionCommand::insertAsListItems): do not
35481        insert an empty list item.
35482        * editing/MoveSelectionCommand.cpp:
35483        (WebCore::MoveSelectionCommand::doApply):
35484        * editing/ReplaceSelectionCommand.cpp:
35485        (WebCore::ReplaceSelectionCommand::insertAsListItems):
35486
354872013-03-14  Eric Seidel  <eric@webkit.org>
35488
35489        Threaded HTML Parser should limit speculation to avoid using too much memory
35490        https://bugs.webkit.org/show_bug.cgi?id=112069
35491
35492        Reviewed by Adam Barth.
35493
35494        This is a speculative fix for memory issues seen in:
35495        https://code.google.com/p/chromium/issues/detail?id=180819
35496
35497        This also fixed https://bugs.webkit.org/show_bug.cgi?id=110546
35498        as a side-effect of simplifying the m_currentChunk handling.
35499
35500        We now tell the background html parser every time we start
35501        a chunk on the main thread (instead of end), which greatly
35502        simplified the checkpoint cleanup code from:
35503        https://trac.webkit.org/changeset/145277
35504
35505        The cost for this is now we have more messages going to the
35506        background thread (and postTask acquires a lock to write to the
35507        message queue).  Chromium has more advanced (lock-less) primatives
35508        for message posting, which we'll hopefully add to WebKit in
35509        furture patches.
35510
35511        The outstanding chunks limit has not been tuned.  But it makes sense that
35512        we should not keeping infinite speculative tokens around for
35513        large documents with slow-to-load scripts.
35514
35515        * html/parser/BackgroundHTMLInputStream.cpp:
35516        (WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
35517        (WebCore::BackgroundHTMLInputStream::invalidateCheckpointsBefore):
35518        (WebCore):
35519        (WebCore::BackgroundHTMLInputStream::rewindTo):
35520        * html/parser/BackgroundHTMLInputStream.h:
35521        (BackgroundHTMLInputStream):
35522        (WebCore::BackgroundHTMLInputStream::outstandingCheckpointCount):
35523        (Checkpoint):
35524        (WebCore::BackgroundHTMLInputStream::Checkpoint::isNull):
35525        (WebCore::BackgroundHTMLInputStream::Checkpoint::clear):
35526        * html/parser/BackgroundHTMLParser.cpp:
35527        (WebCore):
35528        (WebCore::BackgroundHTMLParser::startedChunkWithCheckpoint):
35529        (WebCore::BackgroundHTMLParser::pumpTokenizer):
35530        * html/parser/BackgroundHTMLParser.h:
35531        (BackgroundHTMLParser):
35532        * html/parser/HTMLDocumentParser.cpp:
35533        (WebCore::HTMLDocumentParser::validateSpeculations):
35534        (WebCore::HTMLDocumentParser::discardSpeculationsAndResumeFrom):
35535        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
35536        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
35537        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
35538        * html/parser/HTMLDocumentParser.h:
35539        (HTMLDocumentParser):
35540
355412013-03-14  Ilya Tikhonovsky  <loislo@chromium.org>
35542
35543        Web Inspector: Flame Chart. Minor changes for the popover.
35544        https://bugs.webkit.org/show_bug.cgi?id=112331
35545
35546        Reviewed by Yury Semikhatsky.
35547
35548        popover timeout needs to be decreased a bit.
35549        hidePopover call in onMouseMove doesn't necessary.
35550        We have to keep anchor element unmodified if the hovered item didn't changed.
35551
35552        * inspector/front-end/FlameChart.js:
35553        (WebInspector.FlameChart):
35554        (WebInspector.FlameChart.prototype._onMouseMove):
35555
355562013-03-14  Jonathan Liu  <net147@gmail.com>
35557
35558        Fix detection of Intel Mac OS X platform on Intel Mac 64-bit
35559        https://bugs.webkit.org/show_bug.cgi?id=112312
35560
35561        Reviewed by Simon Hausmann.
35562
35563        * platform/gtk/UserAgentGtk.cpp:
35564        (WebCore::platformVersionForUAString):
35565
355662013-03-13  Ilya Tikhonovsky  <loislo@chromium.org>
35567
35568        Web Inspector: Flame Chart. Rewrite drawing procedure for better performance.
35569        https://bugs.webkit.org/show_bug.cgi?id=112264
35570
35571        Reviewed by Yury Semikhatsky.
35572
35573        I traverses the profile tree in calculateTimelineData and calculates all the sizes and colors.
35574        Later in draw code we lineary pass the array and draw items.
35575        Also we could easily swap to another format of the profile.
35576
35577        * inspector/front-end/FlameChart.js:
35578        (WebInspector.FlameChart):
35579        (WebInspector.FlameChart.prototype._nodeCount):
35580        (WebInspector.FlameChart.prototype._calculateTimelineData.appendReversedArray):
35581        (WebInspector.FlameChart.prototype._calculateTimelineData):
35582        (WebInspector.FlameChart.prototype._getPopoverAnchor):
35583        (WebInspector.FlameChart.prototype._showPopover):
35584        (WebInspector.FlameChart.prototype._hidePopover):
35585        (WebInspector.FlameChart.prototype._onClick):
35586        (WebInspector.FlameChart.prototype._onMouseMove):
35587        (WebInspector.FlameChart.prototype._coordinatesToNodeIndex):
35588        (WebInspector.FlameChart.prototype.onResize):
35589        (WebInspector.FlameChart.prototype.draw):
35590
355912013-03-14  Alice Liu  <alice.liu@apple.com>
35592
35593        Add to HistoryItem a way to know if its underlying CachedPage has expired.
35594        https://bugs.webkit.org/show_bug.cgi?id=110652
35595
35596        Reviewed by Brady Eidson.
35597
35598        * WebCore.exp.in: Added WebCore::HistoryItem::isInPageCache and hasCachedPageExpired.
35599        * history/CachedPage.cpp: Add a data member, m_expirationTime, and a function, hasExpired().
35600        * history/CachedPage.h:
35601        * history/HistoryItem.cpp:
35602        (WebCore::HistoryItem::hasCachedPageExpired): Added. returns m_cachedPage's expiration state.
35603        * history/HistoryItem.h:
35604        * history/PageCache.cpp:
35605        (WebCore::PageCache::get):  Address the fixme about not using WebKitBackForwardCacheExpirationIntervalKey. 
35606        * page/Settings.in: Add backForwardCacheExpirationInterval to the automatically generated setters for Settings.
35607
356082013-03-13  Ryosuke Niwa  <rniwa@webkit.org>
35609
35610        Cannot select a canvas element at the beginning or the end of a document
35611        https://bugs.webkit.org/show_bug.cgi?id=112319
35612
35613        Reviewed by Eric Seidel.
35614
35615        The bug was caused by the editing code treating canvas element as if an empty inline element.
35616        Treat it as an "atomic" element for the purpose of determining whether selection can have
35617        an end point in it or not.
35618
35619        Test: editing/pasteboard/copy-paste-content-starting-and-ending-canvas.html
35620
35621        * html/HTMLCanvasElement.h:
35622        (WebCore::HTMLCanvasElement::canContainRangeEndPoint): Added.
35623
356242013-03-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
35625
35626        Implement FontLoader interface
35627        https://bugs.webkit.org/show_bug.cgi?id=98395
35628
35629        Reviewed by Eric Seidel.
35630
35631        This patch implements the FontLoader interface defined in CSS Font
35632        Load Events Module Level 3.[1] It adds fontloader attribute to
35633        Document, and adds two interfaces, FontLoader and
35634        CSSFontFaceLoadEvent to WebCore.
35635
35636        [1]: http://dev.w3.org/csswg/css-font-load-events-3/
35637
35638        This feature is guarded by FONT_LOAD_EVENTS compiler flag and
35639        RuntimeEnabledFeatures::fontLoadEventsEnabled() runtime flag.
35640
35641        Tests: fast/css/fontloader-download-error.html
35642               fast/css/fontloader-events.html
35643               fast/css/fontloader-loadingdone.html
35644               fast/css/fontloader-multiple-faces-download-error.html
35645               fast/css/fontloader-multiple-faces.html
35646               fast/css/fontloader-multiple-families.html
35647               http/tests/webfont/fontloader-loading-attribute.html
35648
35649        * CMakeLists.txt: Adding FontLoader/CSSFontFaceLoadEvent files.
35650        * DerivedSources.cpp: Ditto.
35651        * DerivedSources.make: Ditto.
35652        * DerivedSources.pri: Ditto.
35653        * GNUmakefile.list.am: Ditto.
35654        * Target.pri: Ditto.
35655        * WebCore.gypi: Ditto.
35656        * WebCore.vcproj/WebCore.vcproj: Ditto.
35657        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
35658        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
35659        * WebCore.xcodeproj/project.pbxproj: Ditto.
35660        * bindings/js/JSDictionary.cpp:
35661        (WebCore::JSDictionary::convertValue): Add convertValue() for CSSFontFaceRule, DOMError, and VoidCallback.
35662        * bindings/js/JSDictionary.h: Ditto.
35663        * bindings/v8/Dictionary.cpp: Add get() for CSSFontFaceRule, DOMError, and VoidCallback.
35664        (WebCore::Dictionary::get):
35665        * bindings/v8/Dictionary.h: Ditto.
35666        (Dictionary):
35667        * css/CSSFontFace.cpp: Notifies FontLoader as load progresses.
35668        (WebCore::CSSFontFace::fontLoaded):
35669        (WebCore::CSSFontFace::getFontData):
35670        (WebCore::CSSFontFace::notifyFontLoader):
35671        (WebCore::CSSFontFace::notifyLoadingDone):
35672        * css/CSSFontFace.h: Add two member variables. m_rule stores CSSFontFaceRule for the fontface. m_loadState holds current state of the fontface in terms of FontLoader.
35673        (WebCore::CSSFontFace::create): Takes additional parameter of type CSSFontFaceRule.
35674        (WebCore::CSSFontFace::loadState):
35675        (WebCore::CSSFontFace::CSSFontFace):
35676        * css/CSSFontFaceLoadEvent.cpp: Added.
35677        (WebCore::CSSFontFaceLoadEvent::CSSFontFaceLoadEvent):
35678        (WebCore::CSSFontFaceLoadEvent::~CSSFontFaceLoadEvent):
35679        (WebCore::CSSFontFaceLoadEvent::interfaceName):
35680        * css/CSSFontFaceLoadEvent.h: Added.
35681        (CSSFontFaceLoadEventInit):
35682        (CSSFontFaceLoadEvent):
35683        (WebCore::CSSFontFaceLoadEvent::create):
35684        (WebCore::CSSFontFaceLoadEvent::createForFontFaceRule):
35685        (WebCore::CSSFontFaceLoadEvent::createForError):
35686        (WebCore::CSSFontFaceLoadEvent::fontface):
35687        (WebCore::CSSFontFaceLoadEvent::error):
35688        * css/CSSFontFaceLoadEvent.idl: Added.
35689        * css/CSSFontFaceRule.idl: Add JSGenerateToJSObject and JSGenerateToNativeObject as JSC binding needs them.
35690        * css/CSSFontFaceSource.cpp:
35691        (WebCore::CSSFontFaceSource::isDecodeError): Added.
35692        (WebCore::CSSFontFaceSource::ensureFontData): Added.
35693        * css/CSSFontFaceSource.h:
35694        (CSSFontFaceSource):
35695        * css/CSSFontSelector.cpp:
35696        (WebCore::CSSFontSelector::addFontFaceRule): Pass a CSSFontFaceRule to CSSFontFace::create().
35697        (WebCore::CSSFontSelector::getFontData): Moved logic for creating a CSSSegmentedFontFace to a helper function getFontFace().
35698        (WebCore::CSSFontSelector::getFontFace): Added.
35699        * css/CSSFontSelector.h:
35700        * css/CSSSegmentedFontFace.cpp:
35701        (WebCore::CSSSegmentedFontFace::fontLoaded): Fires callbacks when load is completed.
35702        (WebCore::CSSSegmentedFontFace::isLoading): Returns true if any fonts are still loading.
35703        (WebCore::CSSSegmentedFontFace::checkFont): Returns true if all fonts are loaded.
35704        (WebCore::CSSSegmentedFontFace::loadFont): Starts load by calling getFontData().
35705        * css/CSSSegmentedFontFace.h:
35706        (CSSSegmentedFontFace): Declares new functions and a vector to store callbacks.
35707        (LoadFontCallback):
35708        (WebCore::CSSSegmentedFontFace::LoadFontCallback::~LoadFontCallback):
35709        * css/FontLoader.cpp: Added.
35710        (LoadFontCallback): Holds callback functions of FontLoader.loadFont().
35711        (WebCore::LoadFontCallback::create):
35712        (WebCore::LoadFontCallback::createFromParams):
35713        (WebCore::LoadFontCallback::LoadFontCallback):
35714        (WebCore::LoadFontCallback::notifyLoaded):
35715        (WebCore::LoadFontCallback::notifyError):
35716        (WebCore::FontLoader::FontLoader):
35717        (WebCore::FontLoader::~FontLoader):
35718        (WebCore::FontLoader::eventTargetData):
35719        (WebCore::FontLoader::ensureEventTargetData):
35720        (WebCore::FontLoader::interfaceName):
35721        (WebCore::FontLoader::scriptExecutionContext):
35722        (WebCore::FontLoader::didLayout): Fires pending events and callbacks. This is called when layout have completed.
35723        (WebCore::FontLoader::scheduleEvent): Defers event dispatching until layout completes.
35724        (WebCore::FontLoader::firePendingEvents): Dispatches pending events.
35725        (WebCore::FontLoader::beginFontLoading): Schedules loading/loadstart events. This is called from CSSFontFace.
35726        (WebCore::FontLoader::fontLoaded): Schedules load/loadingdone events. This is called from CSSFontFace.
35727        (WebCore::FontLoader::loadError): Schedules error/loadingdone events. This is called from CSSFontFace.
35728        (WebCore::FontLoader::notifyWhenFontsReady): Implements fontloader.notifyWhenFontsReady().
35729        (WebCore::FontLoader::loadingDone): Fires callbacks of notifyWhenFontsReady.
35730        (WebCore::FontLoader::loadFont): Implements fontloader.loadFont().
35731        (WebCore::FontLoader::checkFont): Implements fontloader.checkFont().
35732        (WebCore::FontLoader::resolveFontStyle): Parses the given font parameter using the syntax of CSS 'font' property and creates Font object. The logic is taken from CanvasRenderingContext2D::setFont().
35733        * css/FontLoader.h: Added.
35734        (FontLoader):
35735        (WebCore::FontLoader::create):
35736        (WebCore::FontLoader::loading):
35737        (WebCore::FontLoader::document):
35738        (WebCore::FontLoader::refEventTarget):
35739        (WebCore::FontLoader::derefEventTarget):
35740        * css/FontLoader.idl: Added.
35741        * dom/Document.cpp:
35742        (WebCore::Document::Document):
35743        (WebCore::Document::fontloader): Added.
35744        * dom/Document.h:
35745        (Document): Add m_fontloader and fontloader().
35746        * dom/Document.idl: Add fontloader attribute.
35747        * dom/EventNames.h: Add loading and loadingdone events.
35748        * dom/EventNames.in: Add CSSFontFaceLoadEvent.
35749        * dom/EventTargetFactory.in: Add FontLoader.
35750        * page/FrameView.cpp:
35751        (WebCore::FrameView::performPostLayoutTasks): Calls FontLoader::didLayout().
35752
357532013-03-13  Antti Koivisto  <antti@apple.com>
35754
35755        Compute image background size when testing for background visibility
35756        https://bugs.webkit.org/show_bug.cgi?id=112313
35757
35758        Reviewed by Simon Fraser.
35759
35760        We can catch more cases where background is fully obscured.
35761
35762        * rendering/RenderBox.cpp:
35763        (WebCore::RenderBox::paintBackground):
35764                
35765            Use early returns.
35766    
35767        (WebCore::RenderBox::backgroundPaintedExtent):
35768        
35769            Compute the bounds for image backgrounds.
35770
35771        (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):
35772        (WebCore::RenderBox::backgroundIsKnownToBeObscured):
35773        
35774            Rename to make clear that the answers are certain to one direction only.
35775
35776        * rendering/RenderBox.h:
35777        * rendering/RenderImage.cpp:
35778        (WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
35779        (WebCore::RenderImage::backgroundIsKnownToBeObscured):
35780        * rendering/RenderImage.h:
35781
357822013-03-13  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
35783
35784        [css3-text] Add support for text-decoration-color
35785        https://bugs.webkit.org/show_bug.cgi?id=91638
35786
35787        Reviewed by Julien Chaffraix.
35788
35789        This patch implements the CSS3's 'text-decoration-color' property, with
35790        '-webkit' vendor prefix.
35791
35792        More info about "text-decoration-color" property can be found here:
35793        http://dev.w3.org/csswg/css-text-decor-3/#text-decoration-color-property
35794
35795        Mozilla implementation (using -moz prefix) is described here:
35796        https://developer.mozilla.org/en/CSS/text-decoration-color
35797
35798        Tests: fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color.html
35799               fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-color.html
35800               fast/css3-text/css3-text-decoration/text-decoration-color.html
35801
35802        * css/CSSComputedStyleDeclaration.cpp:
35803        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
35804        * css/CSSParser.cpp:
35805        (WebCore::isColorPropertyID):
35806        (WebCore::CSSParser::parseValue):
35807        * css/CSSProperty.cpp:
35808        (WebCore::CSSProperty::isInheritedProperty):
35809        Added parsing checks for '-webkit-text-decoration-color' property.
35810
35811        * css/CSSPropertyNames.in:
35812        Added '-webkit-text-decoration-color' property name.
35813
35814        * css/StyleBuilder.cpp:
35815        (WebCore::StyleBuilder::StyleBuilder):
35816        Set property handler for '-webkit-text-decoration-color'.
35817
35818        * css/StyleResolver.cpp:
35819        (WebCore::isValidVisitedLinkProperty):
35820        (WebCore::StyleResolver::applyProperty):
35821        Added switch case checks for text-decoration-color property on visited
35822        link checks and property appliance.
35823
35824        * rendering/RenderObject.cpp:
35825        (WebCore::decorationColor):
35826        The newly added property needs to checked here when selecting the text
35827        decoration color.
35828
35829        * rendering/style/RenderStyle.cpp:
35830        (WebCore::RenderStyle::diff):
35831        (WebCore::RenderStyle::colorIncludingFallback):
35832        (WebCore::RenderStyle::visitedDependentColor):
35833        There is no proper way to check if a property has been set or not, so if
35834        text decoration color fallbacks to default color, it would override the
35835        check for 'text-fill-color' and 'text-stroke-color' properties on
35836        WebCore::decorationColor() static function, changing current behavior,
35837        which can be verified by new failing layout tests (ie.
35838        fast/text/stroking-decorations.html).
35839
35840        * rendering/style/RenderStyle.h:
35841        Added {non-}visited text decoration color getters and setters.
35842
35843        * rendering/style/StyleRareNonInheritedData.cpp:
35844        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
35845        (WebCore::StyleRareNonInheritedData::operator==):
35846        Added {non-}visited text decoration color variables initialization to
35847        copy constructor and operator assignment functions.
35848
35849        * rendering/style/StyleRareNonInheritedData.h:
35850        (StyleRareNonInheritedData):
35851        Added here as this property is not used regularly.
35852
358532013-03-13  Rik Cabanier  <cabanier@adobe.com>
35854
35855        create runtime flags for CSS Compositing
35856        https://bugs.webkit.org/show_bug.cgi?id=111818
35857
35858        Reviewed by Ryosuke Niwa.
35859
35860        No new tests, no change in functionality.
35861
35862        Added a runtime flags that enables CSS compositing
35863
35864        * WebCore.exp.in:
35865        * bindings/generic/RuntimeEnabledFeatures.cpp:
35866        (WebCore):
35867        * bindings/generic/RuntimeEnabledFeatures.h:
35868        (RuntimeEnabledFeatures):
35869        (WebCore::RuntimeEnabledFeatures::setCSSCompositingEnabled):
35870        (WebCore::RuntimeEnabledFeatures::cssCompositingEnabled):
35871        * css/CSSParser.cpp:
35872        (WebCore::CSSParserContext::CSSParserContext):
35873        (WebCore::operator==):
35874        (WebCore::isValidKeywordPropertyAndValue):
35875        (WebCore::CSSParser::parseValue):
35876        (WebCore::CSSParser::parseFillProperty):
35877        (WebCore::CSSParser::cssCompositingEnabled):
35878        (WebCore):
35879        * css/CSSParser.h:
35880        * css/CSSParserMode.h:
35881        (CSSParserContext):
35882        * dom/Document.cpp:
35883        (WebCore::Document::cssCompositingEnabled):
35884        (WebCore):
35885        * dom/Document.h:
35886        (Document):
35887
358882013-03-11  Kinuko Yasuda  <kinuko@chromium.org>
35889
35890        Quota API: Update IDL to make it match the latest WD
35891        https://bugs.webkit.org/show_bug.cgi?id=88396
35892
35893        Reviewed by Adam Barth.
35894
35895        Add a new interface object (navigator.StorageQuota) and deprecate the old one (window.StorageInfo)
35896        to make the code match with the latest Quota API WD:
35897        http://www.w3.org/TR/quota-api/
35898
35899        Tests: storage/storagequota-query-usage.html
35900               storage/storagequota-request-quota.html
35901
35902        * CMakeLists.txt:
35903        * DerivedSources.cpp:
35904        * DerivedSources.make:
35905        * DerivedSources.pri:
35906        * GNUmakefile.list.am:
35907        * Modules/quota/DOMWindowQuota.cpp:
35908        (WebCore::DOMWindowQuota::webkitStorageInfo): Added a deprecate warning message for the old interface.
35909        * Modules/quota/NavigatorStorageQuota.cpp: Added for the new interface.
35910        * Modules/quota/NavigatorStorageQuota.h: Added for the new interface.
35911        * Modules/quota/NavigatorStorageQuota.idl: Added for the new interface.
35912        * Modules/quota/StorageErrorCallback.cpp:
35913        (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
35914        (WebCore::StorageErrorCallback::CallbackTask::performTask):
35915        * Modules/quota/StorageErrorCallback.h: Renamed from Source/WebCore/Modules/quota/StorageInfoErrorCallback.h.
35916        (WebCore):
35917        (StorageErrorCallback):
35918        (WebCore::StorageErrorCallback::~StorageErrorCallback):
35919        (WebCore::StorageErrorCallback::CallbackTask::create):
35920        * Modules/quota/StorageErrorCallback.idl: Renamed from Source/WebCore/Modules/quota/StorageInfoErrorCallback.idl.
35921        * Modules/quota/StorageInfo.cpp: Added code to relay requests to the new StorageQuota implementation.
35922        * Modules/quota/StorageInfo.h:
35923        * Modules/quota/StorageInfo.idl:
35924        * Modules/quota/StorageQuota.cpp: Added for the new interface.
35925        * Modules/quota/StorageQuota.h:
35926        (WebCore::StorageQuota::create):
35927        * Modules/quota/StorageQuota.idl: Copied from Source/WebCore/Modules/quota/StorageInfo.idl.
35928        * Modules/quota/StorageQuotaCallback.h: Renamed from Source/WebCore/Modules/quota/StorageInfoQuotaCallback.h.
35929        * Modules/quota/StorageQuotaCallback.idl: Renamed from Source/WebCore/Modules/quota/StorageInfoQuotaCallback.idl.
35930        * Modules/quota/StorageUsageCallback.h: Renamed from Source/WebCore/Modules/quota/StorageInfoUsageCallback.h.
35931        * Modules/quota/StorageUsageCallback.idl: Renamed from Source/WebCore/Modules/quota/StorageInfoUsageCallback.idl.
35932        * Target.pri:
35933        * WebCore.gypi:
35934        * WebCore.vcproj/WebCore.vcproj:
35935        * WebCore.vcxproj/WebCore.vcxproj:
35936        * WebCore.vcxproj/WebCore.vcxproj.filters:
35937        * page/FeatureObserver.h:
35938
359392013-03-13  Ryosuke Niwa  <rniwa@webkit.org>
35940
35941        Unreviewed. Sort the Xcode project file.
35942
35943        * WebCore.xcodeproj/project.pbxproj:
35944
359452013-03-13  Rafael Weinstein  <rafaelw@chromium.org>
35946
35947        [HTMLTemplateElement] EOF should unwind the stack of template insertion modes iteratively
35948        https://bugs.webkit.org/show_bug.cgi?id=111907
35949
35950        Reviewed by Adam Barth.
35951
35952        No behavioral changes. This patch only aligns our parser implementation with the present spec.
35953
35954        * html/parser/HTMLTreeBuilder.cpp:
35955        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
35956        (WebCore::HTMLTreeBuilder::processEndOfFileForInTemplateContents):
35957        (WebCore::HTMLTreeBuilder::processEndOfFile):
35958        * html/parser/HTMLTreeBuilder.h:
35959        (HTMLTreeBuilder):
35960
359612013-03-13  Michael Nordman  <michaeln@google.com>
35962
35963        FileSystem mods: Changes to snapshot file creation to reduce dependencies on blob URLs.
35964        Adding a new minimal BlobDataHandle class which will be reimplemented/built upon in later CLs. In this
35965        patch, it's just enough to refactor the FileSystem code to not function in terms of blobURLs.
35966        https://bugs.webkit.org/show_bug.cgi?id=108851
35967
35968        Reviewed by Adam Barth.
35969
35970        No new tests. This is strictly a refactoring of the existing code.
35971
35972        * Modules/filesystem/DOMFileSystem.cpp:
35973        (WebCore):
35974        (WebCore::DOMFileSystem::createFile):
35975        * Modules/filesystem/DOMFileSystemSync.cpp:
35976        (WebCore):
35977        * platform/AsyncFileSystemCallbacks.h:
35978        (AsyncFileSystemCallbacks):
35979        (WebCore::AsyncFileSystemCallbacks::didCreateSnapshotFile):
35980        * platform/gtk/AsyncFileSystemGtk.cpp:
35981        (WebCore::AsyncFileSystemGtk::createSnapshotFileAndReadMetadata):
35982        (WebCore):
35983        * platform/network/BlobData.cpp:
35984        (WebCore):
35985        (WebCore::BlobDataHandle::BlobDataHandle):
35986        (WebCore::BlobDataHandle::~BlobDataHandle):
35987        * platform/network/BlobData.h:
35988        (WebCore):
35989        (BlobDataHandle):
35990        (WebCore::BlobDataHandle::create):
35991
359922013-03-13  Ryosuke Niwa  <rniwa@webkit.org>
35993
35994        Threaded HTML Parser is missing feature define flags in all but Chromium port's build files
35995        https://bugs.webkit.org/show_bug.cgi?id=112277
35996
35997        Reviewed by Adam Barth.
35998
35999
36000        * Configurations/FeatureDefines.xcconfig:
36001
360022013-03-13  Marja Hölttä  <marja@chromium.org>
36003
36004        [V8] Get rid of more function-level static FunctionTemplates and ObjectTemplates in bindings
36005        https://bugs.webkit.org/show_bug.cgi?id=112262
36006
36007        Reviewed by Jochen Eisinger.
36008
36009        In the future we'll create and store function templates for main world
36010        and non-main worlds separately (see bug 111724), having function
36011        templates and object templates as static variables inside functions will
36012        break the functionality.
36013
36014        No new tests (no changes in functionality yet; existing bindings
36015        tests still pass).
36016
36017        * bindings/scripts/CodeGeneratorV8.pm:
36018        (GenerateHeader):
36019        (GenerateImplementation):
36020        * bindings/v8/V8DOMWindowShell.cpp:
36021        (WebCore::V8DOMWindowShell::createContext):
36022        * bindings/v8/V8PerIsolateData.cpp:
36023        (WebCore::V8PerIsolateData::hasPrivateTemplate):
36024        (WebCore):
36025        * bindings/v8/V8PerIsolateData.h:
36026        (V8PerIsolateData):
36027        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
36028        (WebCore::V8HTMLDocument::wrapInShadowObject):
36029
360302013-03-13  Julien Chaffraix  <jchaffraix@webkit.org>
36031
36032        [CSS Grid Layout] Refactor GridCoordinate to hold GridSpans
36033        https://bugs.webkit.org/show_bug.cgi?id=112211
36034
36035        Reviewed by Tony Chang.
36036
36037        In order to bring more spanning knowledge to RenderGrid without having
36038        duplicated GridSpan resolution, it became needed to store them into
36039        GridCoordinate. Note that this change is needed as we can only resolve
36040        all the positions with enough context in one place: when we place the
36041        item in the grid.
36042
36043        Refactoring, no change in behavior expected.
36044
36045        * rendering/RenderGrid.cpp:
36046        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
36047        Updated to create 2 GridSpans. Also fixed a style violation (PassOwnPtr
36048        as local member, not sure why it wasn't caught earlier).
36049
36050        (WebCore::RenderGrid::placeItemsOnGrid):
36051        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
36052        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
36053        (WebCore::RenderGrid::gridAreaBreadthForChild):
36054        (WebCore::RenderGrid::findChildLogicalPosition):
36055        Updated the original function after GridCoordinate internal representation change.
36056
36057        (WebCore::RenderGrid::insertItemIntoGrid):
36058        Ditto. Also added a new overloaded function that does resolution after auto-placement.
36059
36060        (WebCore::RenderGrid::resolveGridPositionsFromAutoPlacementPosition):
36061        Removed the extra GridSpan computation, which was wrong.
36062
36063        * rendering/RenderGrid.h:
36064        (WebCore::RenderGrid::GridCoordinate::GridCoordinate):
36065        Updated GridCoordinate to hold 2 GridSpan. Also removed the 2 position
36066        constructor (it would have been a hazard), replaced by a 2 GridSpan constructor.
36067
360682013-03-13  Jochen Eisinger  <jochen@chromium.org>
36069
36070        Also don't log error messages from the GraphicsContext3D if webGLErrorsToConsoleEnabled is false
36071        https://bugs.webkit.org/show_bug.cgi?id=112284
36072
36073        Reviewed by Adam Barth.
36074
36075        When running layout tests in content_shell, we end up logging more information.
36076        Since webGLErrorsToConsoleEnabled is false during layout tests, this change makes
36077        sure we match the baselines.
36078
36079        * html/canvas/WebGLRenderingContext.cpp:
36080        (WebCore):
36081        (WebCore::WebGLRenderingContextErrorMessageCallback::onErrorMessage):
36082
360832013-03-13  David Grogan  <dgrogan@chromium.org>
36084
36085        IndexedDB: Record attemps to open a path with non-ascii characters
36086        https://bugs.webkit.org/show_bug.cgi?id=112224
36087
36088        Reviewed by Tony Chang.
36089
36090        We want to see if that's correlated with errors on open.
36091
36092        No new tests, there's no way to test histogramming that I know of. I
36093        ran chrome locally with a non ascii path though.
36094
36095        * Modules/indexeddb/IDBBackingStore.cpp:
36096        (WebCore::IDBBackingStore::open):
36097
360982013-03-13  Julien Chaffraix  <jchaffraix@webkit.org>
36099
36100        [CSS Grid Layout] Handle min-width / max-width on the grid element
36101        https://bugs.webkit.org/show_bug.cgi?id=112269
36102
36103        Reviewed by Ojan Vafai.
36104
36105        Test: fast/css-grid-layout/grid-element-min-max-width.html
36106
36107        * rendering/RenderGrid.cpp:
36108        (WebCore::RenderGrid::GridIterator::GridIterator):
36109        Added some sanity checks that the starting indexes are in the grid.
36110
36111        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
36112        Updated the code to use m_grid to iterate: this is the correct way to
36113        go as it will handle implicit rows / columns properly. Added a comment
36114        about the current way being inefficient and incorrect with spanning grid
36115        items.
36116
36117        (WebCore::RenderGrid::computePreferredLogicalWidths):
36118        Updated the comments.
36119
36120        (WebCore::RenderGrid::gridTrackSize):
36121        * rendering/RenderGrid.h:
36122        Constified gridTrackSize.
36123
361242013-03-13  Simon Hausmann  <simon.hausmann@digia.com>
36125
36126        [Qt] Prospective trivial build fix after r145744
36127
36128        Add missing closing parentheses.
36129
36130        * xml/parser/XMLDocumentParserQt.cpp:
36131        (WebCore::XMLDocumentParser::parseDtd):
36132
361332013-03-13  Brady Eidson  <beidson@apple.com>
36134
36135        Account for review feedback in https://bugs.webkit.org/show_bug.cgi?id=112279
36136        that I'd mistakenly left out of my commit.
36137
36138        * loader/ResourceLoaderTypes.h:
36139
361402013-03-13  Abhishek Arya  <inferno@chromium.org>
36141
36142        Crash in CompositeEditCommand::insertNodeAt.
36143        https://bugs.webkit.org/show_bug.cgi?id=112280
36144
36145        Reviewed by Ryosuke Niwa.
36146
36147        * editing/CompositeEditCommand.cpp:
36148        (WebCore::CompositeEditCommand::insertNodeAt): Fix incorrect cast use of toElement.
36149        Subsitute with toContainerNode.
36150
361512013-03-13  Brady Eidson  <beidson@apple.com>
36152
36153        Small ResourceLoader cleanups.
36154        https://bugs.webkit.org/show_bug.cgi?id=112279
36155
36156        Reviewed by Geoff Garen.
36157
36158        No new tests (Refactor with no behavior change).
36159
36160        1 - Add "OVERRIDE" to virtual methods in subclasses of ResourceLoader to catch future mistakes.
36161        2 - Replace the "bool allAtOnce" flag with a descriptive enum to make reading code easier.
36162
36163        * GNUmakefile.list.am:
36164        * Target.pri:
36165        * WebCore.gypi:
36166        * WebCore.vcproj/WebCore.vcproj:
36167        * WebCore.xcodeproj/project.pbxproj:
36168
36169        * loader/DocumentLoader.cpp:
36170        (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
36171
36172        * loader/NetscapePlugInStreamLoader.cpp:
36173        (WebCore::NetscapePlugInStreamLoader::didReceiveData):
36174        * loader/NetscapePlugInStreamLoader.h:
36175
36176        * loader/ResourceLoader.cpp:
36177        (WebCore::ResourceLoader::addData):
36178        (WebCore::ResourceLoader::didReceiveData):
36179        * loader/ResourceLoader.h:
36180        * loader/ResourceLoaderTypes.h: Added.
36181
36182        * loader/SubresourceLoader.cpp:
36183        (WebCore::SubresourceLoader::didReceiveData):
36184        * loader/SubresourceLoader.h:
36185
361862013-03-13  Nate Chapin  <japhet@chromium.org>
36187
36188        chromium's WebFrameTest.ReplaceNavigationAfterHistoryNavigation failing after r145734
36189        https://bugs.webkit.org/show_bug.cgi?id=112281
36190
36191        Reviewed by Adam Barth.
36192
36193        Fixes the aforementioned chromiun webkit_unit_test
36194
36195        * loader/DocumentLoader.cpp:
36196        (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): FrameLoader::isReplacing() is not quite
36197            synonymous with loading multipart content. Check that it's actually loading multipart before doing
36198            multipart-specific things.
36199
362002013-03-13  Tao Bai  <michaelbai@chromium.org>
36201
36202        Add the default video poster if it doesn't exist in video tag
36203        https://bugs.webkit.org/show_bug.cgi?id=110263
36204
36205        Reviewed by Eric Carlson.
36206
36207        Tests: media/video-default-poster.html
36208               media/video-no-default-poster.html
36209
36210        The Android web view application could provide the default poster
36211        for a video that doesn't have the poster attribute.
36212
36213        To provide the default poster, the application must set defaultVideoPosterURL
36214        setting and return the image in the response of that URL.
36215
36216        The way to do this would be:
36217
36218        A) Replace the Element::imageSourceAttributeName function with an
36219           Element::imageSourceURL function that returns the imageSourceURL as a
36220           const AtomicString&. The body will be the same as before, it will just also
36221           include a call to getAttribute. Also will need to revise the four classes
36222           that override that function.
36223
36224        B) Add a new HTMLVideoElement::posterImageURL function that implements the
36225           default poster URL logic.
36226
36227        C) Update the four functions that get the poster attribute to handle poster
36228           loading and display to call posterImageURL.
36229
36230           1) HTMLVideoElement::imageSourceURL.
36231           2) HTMLVideoElement::setDisplayMode.
36232           3) HTMLVideoElement::updateDisplayState.
36233           4) HTMLMediaElement::getPluginProxyParams. Will need to cast to
36234              HTMLVideoElement after checking isVideo.
36235
36236        * dom/Element.cpp:
36237        (WebCore::Element::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
36238        * dom/Element.h: Replace imageSourceAttributeName() with imageSourceURL()
36239        * html/HTMLEmbedElement.cpp:
36240        (WebCore::HTMLEmbedElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
36241        * html/HTMLEmbedElement.h: Replace imageSourceAttributeName() with imageSourceURL()
36242        * html/HTMLMediaElement.cpp:
36243        (WebCore::HTMLMediaElement::getPluginProxyParams): Change to use posterImageURL
36244        * html/HTMLObjectElement.cpp:
36245        (WebCore::HTMLObjectElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
36246        * html/HTMLObjectElement.h: Replace imageSourceAttributeName with imageSourceURL
36247        * html/HTMLVideoElement.cpp:
36248        (WebCore::HTMLVideoElement::HTMLVideoElement): set m_defaultPosterURL if there is such settings
36249        (WebCore::HTMLVideoElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
36250        (WebCore::HTMLVideoElement::setDisplayMode): Use imageSourceURL()
36251        (WebCore::HTMLVideoElement::updateDisplayState): Use imageSourceURL()
36252        (WebCore::HTMLVideoElement::posterImageURL): Return image source's KURL
36253        * html/HTMLVideoElement.h: Replace imageSourceAttributeName() with imageSourceURL() and add m_defaultPosterURL
36254        * loader/ImageLoader.cpp:
36255        (WebCore::ImageLoader::updateFromElement): Use imageSourceURL()
36256        * page/Settings.in: Add defaultVideoPosterURL setting.
36257        * platform/chromium/PasteboardChromium.cpp:
36258        (WebCore::Pasteboard::writeImage): use imageSourceURL()
36259        * platform/gtk/PasteboardGtk.cpp:
36260        (WebCore::getURLForImageNode): use imageSourceURL()
36261        * rendering/HitTestResult.cpp:
36262        (WebCore::HitTestResult::absoluteImageURL): use imageSourceURL()
36263        * svg/SVGImageElement.cpp:
36264        (WebCore::SVGImageElement::imageSourceURL): Replace imageSourceAttributeName() with imageSourceURL()
36265        * svg/SVGImageElement.h: Replace imageSourceAttributeName() with imageSourceURL()
36266        * testing/InternalSettings.cpp:
36267        (WebCore::InternalSettings::Backup::Backup): support backup defaultVideoPosterURL.
36268        (WebCore::InternalSettings::Backup::restoreTo): support restore defaultVideoPosterURL.
36269        (WebCore::InternalSettings::setDefaultVideoPosterURL): set defaultVideoPosterURL.
36270        * testing/InternalSettings.h:
36271        (Backup): support backup defaultVideoPosterURL.
36272        (InternalSettings): Add setDefaultVidoePosterURL method.
36273        * testing/InternalSettings.idl: Add setDefaultVideoPosterURL for test purpose.
36274        * testing/Internals.cpp:
36275        (WebCore::Internals::getImageSourceURL): Add getImageSourceURL method.
36276        * testing/Internals.h: Add getImageSourceURL method.
36277        * testing/Internals.idl: Add getImageSourceURL method.
36278
362792013-03-13  Abhishek Arya  <inferno@chromium.org>
36280
36281        Replace static_casts with to* functions for document types.
36282        https://bugs.webkit.org/show_bug.cgi?id=112225
36283
36284        Reviewed by Ryosuke Niwa.
36285
36286        to* helper functions are preferred over static_cast calls since they
36287        help to catch bad casts easily on the testing infrastructure.
36288
36289        * Modules/geolocation/Geolocation.cpp:
36290        (WebCore::Geolocation::document):
36291        ....lot of files.
36292
362932013-03-13  Liam Quinn  <lquinn@blackberry.com>
36294
36295        Handle XHTML entities in XHTML Mobile Profile 1.1 and 1.2. We previously only handled them in XHTML Mobile Profile 1.0.
36296        https://bugs.webkit.org/show_bug.cgi?id=112174
36297        RIM PR 309038
36298
36299        Reviewed by Rob Buis.
36300        Internally reviewed by Leo Yang.
36301
36302        Check for the 1.1 and 1.2 doctypes alongside the 1.0 doctype.
36303
36304        Tests: fast/doctypes/xhtml-with-xhtmlmp11-doctype.xhtml
36305               fast/doctypes/xhtml-with-xhtmlmp12-doctype.xhtml
36306
36307        * xml/parser/XMLDocumentParserLibxml2.cpp:
36308        (WebCore::externalSubsetHandler):
36309        * xml/parser/XMLDocumentParserQt.cpp:
36310        (WebCore::XMLDocumentParser::parseDtd):
36311
363122013-03-13  Christophe Dumez  <ch.dumez@sisa.samsung.com>
36313
36314        [EFL] Better error handling in NetworkStateNotifierEfl
36315        https://bugs.webkit.org/show_bug.cgi?id=112184
36316
36317        Reviewed by Kenneth Rohde Christiansen.
36318
36319        Improve error handling in for system calls in NetworkStateNotifierEfl.
36320        - EINTR errors are now properly handled for close() and recv() syscalls
36321        - recv() errors are now correctly detected, for e.g. if the socket was
36322        closed unexpectedly.
36323        - Make sure m_fdHandler is reset when the callback returns
36324        ECORE_CALLBACK_CANCEL to avoid double free in destructor. m_fdHandler
36325        gets destroyed when the callback returns ECORE_CALLBACK_CANCEL.
36326        - Keep netlink socket file descriptor as a class member so that we can
36327        close() it in the class destructor, even if m_fdHandler has already
36328        been destroyed.
36329
36330        No new tests, no behavior change for layout tests.
36331
36332        * platform/network/NetworkStateNotifier.h:
36333        (NetworkStateNotifier):
36334        * platform/network/efl/NetworkStateNotifierEfl.cpp:
36335        (WebCore::NetworkStateNotifier::readSocketCallback):
36336        (WebCore::NetworkStateNotifier::~NetworkStateNotifier):
36337        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
36338
363392013-03-13  Tony Chang  <tony@chromium.org>
36340
36341        Regression(r143542): -webkit-align-items: center with overflow: auto/scroll has extra bottom padding
36342        https://bugs.webkit.org/show_bug.cgi?id=112047
36343
36344        Reviewed by Ojan Vafai.
36345
36346        Add a new pass for computing the client bottom edge that runs after we've repositioned children
36347        due to wrap-reverse, flex-end or vertical centering.
36348
36349        Test: css3/flexbox/negative-overflow.html
36350
36351        * rendering/RenderFlexibleBox.cpp:
36352        (WebCore::RenderFlexibleBox::layoutBlock): Remove the code to use clientLogicalBottom() that was computed before
36353        repositioning. The repositioning can change the edge.
36354        (WebCore::RenderFlexibleBox::clientLogicalBottomAfterRepositioning): Compute the new bottom based on the final position
36355        of flex items.
36356        * rendering/RenderFlexibleBox.h:
36357        (RenderFlexibleBox):
36358
363592013-03-13  Nate Chapin  <japhet@chromium.org>
36360
36361        REGRESSION(r137607): Redirecting a post to a get then reloading triggers resubmit warning
36362        https://bugs.webkit.org/show_bug.cgi?id=112194
36363
36364        Reviewed by Alexey Proskuryakov.
36365
36366        Test: http/tests/navigation/post-redirect-get-reload.php
36367
36368        * loader/SubresourceLoader.cpp:
36369        (WebCore::SubresourceLoader::willSendRequest): Matching urls aren't a reliable way of checking whether
36370            we are in a redirect. Check redirectResponse.isNull() instead.
36371        * testing/Internals.cpp:
36372        (WebCore::Internals::forceReload): Expose a means of forcing a reload like one a user generates for testing.
36373            Note that testRunner.queueReload() does this, but is not supported after the initial load completes,
36374            which makes it unsuitable for this case.
36375        * testing/Internals.h:
36376        * testing/Internals.idl:
36377
363782013-03-13  Nate Chapin  <japhet@chromium.org>
36379
36380        Merge MainResourceLoader's didFinishLoading and dataReceived into DocumentLoader
36381        https://bugs.webkit.org/show_bug.cgi?id=109952
36382
36383        Reviewed by Antti Koivisto.
36384
36385        No new tests, refactor only.
36386
36387        * loader/DocumentLoader.cpp:
36388        (WebCore::DocumentLoader::DocumentLoader):
36389        (WebCore::DocumentLoader::finishedLoading):
36390        (WebCore::DocumentLoader::responseReceived):
36391        (WebCore::DocumentLoader::receivedData):
36392        (WebCore::DocumentLoader::maybeLoadEmpty):
36393        * loader/DocumentLoader.h:
36394        * loader/MainResourceLoader.cpp:
36395        (WebCore::MainResourceLoader::responseReceived): Move content filtering to
36396            DocumentLoader.
36397        (WebCore::MainResourceLoader::dataReceived): Mostly moved to DocumentLoader.
36398        (WebCore::MainResourceLoader::didFinishLoading): Mostly moved to DocumentLoader.
36399        * loader/MainResourceLoader.h: Expose some variables that haven't been moved
36400            to DocumentLoader yet.
36401
364022013-03-13  Andrei Bucur  <abucur@adobe.com>
36403
36404        [CSS Regions] Break after doesn't work correctly with auto-height regions
36405        https://bugs.webkit.org/show_bug.cgi?id=112241
36406
36407        Reviewed by David Hyatt.
36408
36409        The change correctly returns the break position during the normal layout phase for
36410        auto-height regions. The problem doesn't exist during the constrained layout phase
36411        so it only affects the size of the auto-height regions by incorrectly positioning
36412        the content inside the flow.
36413
36414        Test: fast/regions/autoheight-break-after.html
36415
36416        * rendering/RenderBlock.cpp:
36417        (WebCore::RenderBlock::applyAfterBreak): Include the margin offset in the returned break position.
36418
364192013-03-12  Andrey Kosyakov  <caseq@chromium.org>
36420
36421        Web Inspector: coalesce repeating timeline records
36422        https://bugs.webkit.org/show_bug.cgi?id=112168
36423
36424        Reviewed by Vsevolod Vlasov.
36425
36426        - coalesce repeating top-level timeline events;
36427        - drive-by: only show categories that actually took time in aggregated stats;
36428
36429        * English.lproj/localizedStrings.js:
36430        * inspector/front-end/TimelineFrameController.js:
36431        (WebInspector.TimelineFrameController.prototype._innerAddRecord):
36432        * inspector/front-end/TimelinePanel.js:
36433        (WebInspector.TimelinePanel.prototype._highlightRect):
36434        (WebInspector.TimelineCalculator.prototype.computeBarGraphPercentages):
36435        * inspector/front-end/TimelinePresentationModel.js:
36436        (WebInspector.TimelinePresentationModel.prototype.reset):
36437        (WebInspector.TimelinePresentationModel.prototype._innerAddRecord):
36438        (WebInspector.TimelinePresentationModel.prototype._updateAncestorStats):
36439        (WebInspector.TimelinePresentationModel.prototype._findCoalescedParent):
36440        (WebInspector.TimelinePresentationModel.prototype._replaceWithCoalescedRecord):
36441        (WebInspector.TimelinePresentationModel.Record):
36442        (WebInspector.TimelinePresentationModel.adoptRecord):
36443        (WebInspector.TimelinePresentationModel.insertRetrospectiveRecord):
36444        (WebInspector.TimelinePresentationModel.Record.prototype.get selfTime):
36445        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
36446        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
36447        (WebInspector.TimelinePresentationModel.Record.prototype.calculateAggregatedStats):
36448
364492013-03-13  Philip Rogers  <pdr@google.com>
36450
36451        Fix body background image geometry calculation
36452        https://bugs.webkit.org/show_bug.cgi?id=112226
36453
36454        Reviewed by Stephen Chenney.
36455
36456        Images that depend on a container size require a call to set the container size before
36457        rendering, and a call to look up the correct image during painting.
36458
36459        The body's renderer is special in that it may not be the renderer that actually paints its
36460        background. This patch fixes a bug where the correct RenderObject was used for looking up
36461        the image, but not for setting the container size. This fixes SVG background images on body.
36462
36463        Test: svg/as-background-image/svg-as-background-body.html
36464
36465        * rendering/RenderBoxModelObject.cpp:
36466        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
36467        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
36468
36469            This change introduces clientForBackgroundImage in the background geometry calculation.
36470            This is very similar to how the client is looked up in paintFillLayerExtended.
36471
36472        * rendering/RenderBoxModelObject.h:
36473
36474            The new signature for calculateBackgroundImageGeometry now mirrors
36475            paintFillLayerExtended, containing a parameter for the correct background renderer.
36476
36477        (RenderBoxModelObject):
36478
364792013-03-13  Andrey Lushnikov  <lushnikov@chromium.org>
36480
36481        Web Inspector: [CodeMirror] Handle "enter" key in {|} situation
36482        https://bugs.webkit.org/show_bug.cgi?id=112153
36483
36484        Reviewed by Vsevolod Vlasov.
36485
36486        Add a keymap to handle "Enter" key and override it in case of {|}
36487        situation.
36488
36489        No new tests.
36490
36491        * inspector/front-end/CodeMirrorTextEditor.js:
36492        (WebInspector.CodeMirrorTextEditor):
36493        (WebInspector.CodeMirrorTextEditor.BlockIndentController):
36494        (WebInspector.CodeMirrorTextEditor.BlockIndentController.prototype.Enter):
36495
364962013-03-13  Andrey Lushnikov  <lushnikov@chromium.org>
36497
36498        Web Inspector: [CodeMirror] bug with LineWidgets
36499        https://bugs.webkit.org/show_bug.cgi?id=111978
36500
36501        Reviewed by Vsevolod Vlasov.
36502
36503        Implement CodeMirrorTextEditor.beginUpdates and
36504        CodeMirrorTextEditor.endUpdates and surround decoration creation
36505        with the beginUpdates/endUpdates calls.
36506
36507        No new tests.
36508
36509        * inspector/front-end/CodeMirrorTextEditor.js:
36510        (WebInspector.CodeMirrorTextEditor):
36511        (WebInspector.CodeMirrorTextEditor.prototype.beginUpdates):
36512        (WebInspector.CodeMirrorTextEditor.prototype.endUpdates):
36513        * inspector/front-end/SourceFrame.js:
36514        (WebInspector.SourceFrame.prototype.addMessageToSource):
36515
365162013-03-13  Pavel Feldman  <pfeldman@chromium.org>
36517
36518        Web Inspector: get rid of hiddenPanels filter
36519        https://bugs.webkit.org/show_bug.cgi?id=112252
36520
36521        Reviewed by Vsevolod Vlasov.
36522
36523        * WebCore.order:
36524        * inspector/InspectorFrontendClient.h:
36525        (InspectorFrontendClient):
36526        * inspector/InspectorFrontendHost.cpp:
36527        * inspector/InspectorFrontendHost.h:
36528        (InspectorFrontendHost):
36529        * inspector/InspectorFrontendHost.idl:
36530        * inspector/front-end/InspectorFrontendHostStub.js:
36531        * inspector/front-end/externs.js:
36532        * inspector/front-end/inspector.js:
36533        (WebInspector._panelDescriptors):
36534        * testing/Internals.cpp:
36535
365362013-03-13  Pavel Feldman  <pfeldman@chromium.org>
36537
36538        Web Inspector: convert workers inspection into capability
36539        https://bugs.webkit.org/show_bug.cgi?id=112251
36540
36541        Reviewed by Vsevolod Vlasov.
36542
36543        It should be up to backend
36544
36545        * inspector/Inspector.json:
36546        * inspector/InspectorFrontendClient.h:
36547        (InspectorFrontendClient):
36548        * inspector/InspectorFrontendClientLocal.h:
36549        * inspector/InspectorFrontendHost.cpp:
36550        * inspector/InspectorFrontendHost.h:
36551        (InspectorFrontendHost):
36552        * inspector/InspectorFrontendHost.idl:
36553        * inspector/InspectorWorkerAgent.cpp:
36554        (WebCore::InspectorWorkerAgent::canInspectWorkers):
36555        (WebCore):
36556        * inspector/InspectorWorkerAgent.h:
36557        (InspectorWorkerAgent):
36558        * inspector/front-end/InspectorFrontendHostStub.js:
36559        * inspector/front-end/Settings.js:
36560        * inspector/front-end/externs.js:
36561        * inspector/front-end/inspector.js:
36562        (WebInspector.doLoadedDone):
36563
365642013-03-13  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
36565
36566        [EFL] Start using evas object directly in Widget class
36567        https://bugs.webkit.org/show_bug.cgi?id=111858
36568
36569        Reviewed by Antonio Gomes.
36570
36571        Based on a patch by Kenneth Rohde Christiansen.
36572
36573        EFL Widget class should use evas object pointer directly rather
36574        than WidgetPrivate* m_data as platformWidget() is a Mac specific
36575        implementation detail that they are moving away from with WebKit2.
36576
36577        This patch brings: firstly better compliance with other ports,
36578        secondly it makes code cleaner.
36579
36580        Besides, the evasObject is only directly used in the ScrollbarEfl
36581        subclass of Widget and not in Widget or ScrollView or any other subclass,
36582        thus the evas_object code has now been concentrated in ScrollbarEfl.
36583
36584        No new tests as there are no behavioral changes.
36585
36586        * page/efl/EventHandlerEfl.cpp:
36587        * platform/Widget.h:
36588        (Widget):
36589        (WebCore::Widget::evasObject):
36590        * platform/efl/ScrollbarEfl.cpp:
36591        (ScrollbarEfl::~ScrollbarEfl):
36592        (scrollbarEflEdjeMessage):
36593        (ScrollbarEfl::show):
36594        (ScrollbarEfl::hide):
36595        (ScrollbarEfl::setParent):
36596        (ScrollbarEfl::updateThumbPositionAndProportion):
36597        (ScrollbarEfl::frameRectsChanged):
36598        * platform/efl/ScrollbarEfl.h:
36599        (ScrollbarEfl):
36600        * platform/efl/WidgetEfl.cpp:
36601        (WebCore::Widget::Widget):
36602        (WebCore::Widget::~Widget):
36603        (WebCore::Widget::frameRectsChanged):
36604        (WebCore::Widget::show):
36605        (WebCore::Widget::hide):
36606        (WebCore::Widget::setEvasObject):
36607        * plugins/efl/PluginViewEfl.cpp:
36608        (WebCore::PluginView::platformGetValue):
36609
366102013-03-13  Andrey Lushnikov  <lushnikov@chromium.org>
36611
36612        Web Inspector: [CodeMirror] token highlight still has some problems
36613        https://bugs.webkit.org/show_bug.cgi?id=112173
36614
36615        Reviewed by Vsevolod Vlasov.
36616
36617        Use pseudo elements with borders to draw token highlight.
36618
36619        No new tests.
36620
36621        * inspector/front-end/cm/cmdevtools.css:
36622        (.cm-token-highlight):
36623        (.cm-token-highlight:before):
36624        (.cm-line-with-selection .cm-column-with-selection:before):
36625
366262013-03-13  Alberto Garcia  <agarcia@igalia.com>
36627
36628        [BlackBerry] SimpleFontData: remove duplicate code
36629        https://bugs.webkit.org/show_bug.cgi?id=112149
36630
36631        Reviewed by Carlos Garcia Campos.
36632
36633        smallCapsFontData() and emphasisMarkFontData() were moved from
36634        platform specific files into platform/graphics/SimpleFontData.cpp
36635        in r133362, so the BlackBerry port no longer needs its own
36636        implementation.
36637
36638        * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
36639
366402013-03-13  Ilya Tikhonovsky  <loislo@chromium.org>
36641
36642        Web Inspector: throw an exception if the requested lazy loaded script does not exist.
36643        https://bugs.webkit.org/show_bug.cgi?id=112237
36644
36645        Reviewed by Pavel Feldman.
36646
36647        * inspector/front-end/utilities.js:
36648
366492013-03-13  Mike West  <mkwst@chromium.org>
36650
36651        Pass the XSSAuditor's report URL to the XSSAuditorDelegate on the main thread.
36652        https://bugs.webkit.org/show_bug.cgi?id=112179
36653
36654        Reviewed by Adam Barth.
36655
36656        Rather than relying on XSSInfo objects to move the XSSAuditor's report
36657        URL into the XSSAuditorDelegate for reporting, we should be able to grab
36658        the URL directly from XSSAuditor before it moves off the main thread,
36659        and store it on the delegate.
36660
36661        This will enable us to drop the report URL properties from both
36662        XSSAuditor and XSSInfo. Oh, happy day!
36663
36664        * html/parser/BackgroundHTMLParser.cpp:
36665        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
36666            We no longer need to check whether XSSInfo objects are thread safe,
36667            as we've dropped the only problematic bit.
36668        * html/parser/HTMLDocumentParser.cpp:
36669        (WebCore::HTMLDocumentParser::pumpTokenizer):
36670        (WebCore::HTMLDocumentParser::startBackgroundParser):
36671        * html/parser/XSSAuditor.cpp:
36672        (WebCore::XSSAuditor::init):
36673            When initializing the XSSAuditor, pass in an XSSAuditorDelegate*
36674            and assign the report URL directly onto that object.
36675        (WebCore::XSSAuditor::filterToken):
36676            Drop the report URL parameter from XSSInfo objects we create in the
36677            Auditor, as they're now handled directly from the delegate.
36678        (WebCore::XSSAuditor::isSafeToSendToAnotherThread):
36679            Drop the report URL property from XSSAuditor's threadsafeness check,
36680            as properties that do not exist are automatically thread-safe.
36681        * html/parser/XSSAuditorDelegate.cpp:
36682        (WebCore::XSSAuditorDelegate::didBlockScript):
36683            Use the delegate's own report URL rather than the XSSInfo objects'.
36684        * html/parser/XSSAuditorDelegate.h:
36685        (WebCore::XSSInfo::create):
36686        (WebCore::XSSInfo::XSSInfo):
36687            Drop the report URL property from XSSInfo.
36688        (WebCore::XSSAuditorDelegate::setReportURL):
36689        (XSSAuditorDelegate):
36690            Provide a public API for setting a delegate's report URL.
36691
366922013-03-13  Mike West  <mkwst@chromium.org>
36693
36694        Unsafe JavaScript attempt errors are ludicrously verbose and annoying
36695        https://bugs.webkit.org/show_bug.cgi?id=112042
36696
36697        Reviewed by Timothy Hatcher.
36698
36699        This patch attempts to make the most common case of error message less
36700        ludicrous by adjusting it to include only an origin as opposed to full
36701        URLs for the active and target frames. It now reads: "Blocked a frame
36702        with origin 'http://127.0.0.1:8000' from accessing a frame with origin
36703        'http://localhost:8000'. Protocols, domains, and ports must match."
36704
36705        In the interest of keeping the patch size down, I'll follow up on the
36706        other cases (sandboxed access, 'document.domain' mismatches, etc) in
36707        future patches.
36708
36709        * page/DOMWindow.cpp:
36710        (WebCore::DOMWindow::crossDomainAccessErrorMessage):
36711
367122013-03-13  Takashi Sakamoto  <tasak@google.com>
36713
36714        Implement :scope for element.querySelector[All]()
36715        https://bugs.webkit.org/show_bug.cgi?id=81069
36716
36717        Reviewed by Dimitri Glazkov.
36718
36719        Implemented :scope for element.querySelector[All]().
36720        Reuse scope in SelectorCheckingContext and added a new value to
36721        enum BehaviorAtBoundary.
36722        :scope spec is http://dev.w3.org/csswg/selectors4/#scope-pseudo.
36723
36724        Test: fast/selectors/querySelector-scope.html
36725
36726        * css/CSSSelector.cpp:
36727        (WebCore::CSSSelector::pseudoId):
36728        (WebCore::nameToPseudoTypeMap):
36729        (WebCore::CSSSelector::extractPseudoType):
36730        Added :scope pseudo type.
36731        * css/CSSSelector.h:
36732        * css/SelectorChecker.cpp:
36733        (WebCore::SelectorChecker::match):
36734        (WebCore::SelectorChecker::checkOne):
36735        Added PseudoScope case and modified "scope" meaning when
36736        behaviorAtBoundary is equal to StaysWithinTreeScope.
36737        If so, "scope" is just a contextual reference node.
36738        * css/SelectorChecker.h:
36739        * dom/SelectorQuery.cpp:
36740        (WebCore::SelectorDataList::selectorMatches):
36741        (WebCore::SelectorDataList::matches):
36742        (WebCore::SelectorDataList::execute):
36743        Use rootNode as a contextual reference node.
36744        * dom/SelectorQuery.h:
36745        (SelectorDataList):
36746
367472013-03-13  Alberto Garcia  <agarcia@igalia.com>
36748
36749        [BlackBerry] FontPlatformData: remove TextOrientation parameter
36750        https://bugs.webkit.org/show_bug.cgi?id=112135
36751
36752        Reviewed by Rob Buis.
36753
36754        This doesn't exist since r136520.
36755
36756        * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
36757        (WebCore::FontCache::createFontPlatformData):
36758        * platform/graphics/blackberry/FontCustomPlatformData.h:
36759        (FontCustomPlatformData):
36760        * platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp:
36761        (WebCore::FontCustomPlatformData::fontPlatformData):
36762        * platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp:
36763        (WebCore::FontPlatformData::FontPlatformData):
36764        (WebCore::FontPlatformData::applyState):
36765        * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
36766        (WebCore::SimpleFontData::createScaledFontData):
36767
367682013-03-12  Antti Koivisto  <antti@apple.com>
36769
36770        Basic child obscuration test for backgrounds
36771        https://bugs.webkit.org/show_bug.cgi?id=111701
36772
36773        Reviewed by Simon Fraser.
36774        
36775        Test: fast/repaint/obscured-background-no-repaint.html
36776
36777        We can easily detect some simple cases where a background image is fully obscured by an opaque child.
36778        
36779        This avoids unncessary painting and image decoding. It is especially helpful for cases like about.com home
36780        page where a fully obscured 'loading' spinner keeps triggering frequent complex repaints (gif animations
36781        progress by getting painted and stop if they are not).
36782        
36783        This could be made way more sophisticated. The checking could also be done per-layout rather per-paint.
36784        Even this simple approach gets hit surprisingly often in real world sites.
36785
36786        * rendering/RenderBox.cpp:
36787        (WebCore::RenderBox::backgroundIsObscured):
36788        
36789            Before painting background test if any single child renderer fully obscures it.
36790
36791        (WebCore::RenderBox::backgroundIsOpaqueInRect):
36792        * rendering/RenderBox.h:
36793
367942013-03-12  Hayato Ito  <hayato@chromium.org>
36795
36796        [Crash] Touch Events retargeting causes crashes on chrome on android.
36797        https://bugs.webkit.org/show_bug.cgi?id=112210
36798
36799        Reviewed by Dimitri Glazkov.
36800
36801        Added null-check for TouchEvent's touches(), targetTouches() and changedTouches().
36802
36803        No new tests - no new functionality.
36804
36805        * dom/EventRetargeter.cpp:
36806        (WebCore::EventRetargeter::adjustForTouchEvent):
36807        (WebCore::EventRetargeter::adjustTouchList):
36808        * dom/EventRetargeter.h:
36809
368102013-03-12  Geoffrey Garen  <ggaren@apple.com>
36811
36812        Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
36813
36814        * platform/RunLoopTimer.h: Removed.
36815
368162013-03-12  Huang Dongsung  <luxtella@company100.net>
36817
36818        Coordinated Graphics: Remove CoordinatedGraphicsLayer::setRootLayer().
36819        https://bugs.webkit.org/show_bug.cgi?id=111835
36820
36821        Reviewed by Luiz Agostini.
36822
36823        This patch removes CoordinatedGraphicsLayer::setRootLayer() because
36824        CoordinatedGraphicsScene already knows which layer is root.
36825
36826        No new tests, no behavior change.
36827
36828        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
36829        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
36830        (CoordinatedGraphicsLayer):
36831        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
36832        (WebCore::CoordinatedGraphicsScene::setLayerState):
36833        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
36834        (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
36835
368362013-03-12  Jun Jiang  <jun.a.jiang@intel.com>
36837
36838        Enable GPU-GPU texture copy in texImage2D() for HTMLVideoElement if hardware accelerated video decode is in use
36839        https://bugs.webkit.org/show_bug.cgi?id=111126
36840
36841        Reviewed by Kenneth Russell.
36842
36843        In texImage2D() for HTMLVideoElement in WebGL, it is possible to do a GPU-GPU texture copy instead of CPU readback
36844        and upload when videoFrame is in the form of textures. Each platform port needs to implement the interface
36845        copyVideoTextureToPlatformTexture() defined in MediaPlayer.h to make it work.
36846 
36847        Already covered by current tests.
36848
36849        * html/HTMLVideoElement.cpp:
36850        (WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture):
36851        * html/HTMLVideoElement.h:
36852        (HTMLVideoElement):
36853        * html/canvas/WebGLRenderingContext.cpp:
36854        (WebCore::WebGLRenderingContext::videoFrameToImage): Move some security check to upper level.
36855        (WebCore::WebGLRenderingContext::texImage2D): Add the fast GPU-GPU textures copy path for HTMLVideoElement and some security check.
36856        (WebCore::WebGLRenderingContext::texSubImage2D): Add some security check.
36857        * html/canvas/WebGLTexture.cpp:
36858        (WebCore::WebGLTexture::isValid): Added to check if the texture is defined at the given level.
36859        * html/canvas/WebGLTexture.h:
36860        (WebGLTexture):
36861        * platform/graphics/MediaPlayer.cpp:
36862        (WebCore::MediaPlayer::copyVideoTextureToPlatformTexture): Added to do the GPU-GPU textures copy.
36863        * platform/graphics/MediaPlayer.h:
36864        (MediaPlayer):
36865        * platform/graphics/MediaPlayerPrivate.h:
36866        (WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture):
36867
368682013-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
36869
36870        Unreviewed, rolling out r145280.
36871        http://trac.webkit.org/changeset/145280
36872        https://bugs.webkit.org/show_bug.cgi?id=112217
36873
36874        This patch broke chromium WebGL conformance tests (Requested
36875        by shawnsingh on #webkit).
36876
36877        * platform/graphics/gpu/DrawingBuffer.cpp:
36878        (WebCore::DrawingBuffer::reset):
36879        * platform/graphics/gpu/DrawingBuffer.h:
36880        (DrawingBuffer):
36881
368822013-03-12  Dean Jackson  <dino@apple.com>
36883
36884        Don't send events to plugins that are being snapshotted
36885        https://bugs.webkit.org/show_bug.cgi?id=112215
36886        <rdar://problem/13386224>
36887
36888        Reviewed by Tim Horton.
36889
36890        If a plugin is in the process of being snapshotted, do not forward it
36891        any events. This avoids the case where we can accidentally capture some
36892        custom mouse pointers, as well as trigger a plugin menu.
36893
36894        The next step will be to detect if the event should stop the snapshotting
36895        (restart the plugin).
36896
36897        * html/HTMLPlugInElement.cpp:
36898        (WebCore::HTMLPlugInElement::defaultEventHandler): Return early if the plugin is snapshotting.
36899
369002013-03-12  Tim Horton  <timothy_horton@apple.com>
36901
36902        Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
36903
36904        * WebCore.vcproj/WebCore.vcproj:
36905        * WebCore.vcxproj/WebCore.vcxproj:
36906        * WebCore.vcxproj/WebCore.vcxproj.filters:
36907
369082013-03-12  James Robinson  <jamesr@chromium.org>
36909
36910        Fix Gamepad::axes and Gamepad::buttons to avoid calling std::copy(..., ..., 0)
36911        https://bugs.webkit.org/show_bug.cgi?id=89510
36912
36913        Reviewed by Kenneth Russell.
36914
36915        WTF::Vector::begin() returns 0 when the vector has length zero. On windows, the debug implementation of
36916        std::copy() is unhappy with 0 as a third parameter even when the first and second parameters are equal.
36917
36918        Covered by gamepad/gamepad-polling-access.html
36919
36920        * Modules/gamepad/Gamepad.cpp:
36921        (WebCore::Gamepad::axes):
36922        (WebCore::Gamepad::buttons):
36923
369242013-03-12  Elliott Sprehn  <esprehn@chromium.org>
36925
36926        Remove TextIterator.cpp's isAllCollapsibleWhitespace
36927        https://bugs.webkit.org/show_bug.cgi?id=112200
36928
36929        Reviewed by Ryosuke Niwa.
36930
36931        Remove isAllCollapsibleWhitespace since nothing uses it.
36932
36933        * editing/TextIterator.cpp: Remove isAllCollapsibleWhitespace.
36934
369352013-03-12  Bear Travis  <betravis@adobe.com>
36936
36937        [css exclusions] Move ExclusionShapeInsideInfo into RenderBlockRareData
36938        https://bugs.webkit.org/show_bug.cgi?id=110995
36939
36940        Reviewed by Julien Chaffraix.
36941
36942        This patch moves ExclusionShapeInsideInfo into the RenderBlockRareData struct,
36943        which enables us to move away from the global ExclusionShapeInsideInfo map.
36944        Some additional refactoring was done to remove ExclusionShapeInsideInfo's
36945        dependency on InlineIterator, which depended on RenderBlock. This work required
36946        adding a new LineSegmentIterator struct.
36947
36948        Refactoring, no new tests.
36949
36950        * rendering/ExclusionShapeInsideInfo.cpp:
36951        (WebCore):
36952        (WebCore::LineSegmentRange::LineSegmentRange): Moving the InlineIterator
36953        constructor to the .cpp file, as InlineIterator is now forward declared in
36954        the .h file.
36955        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Moving isEnabledFor to
36956        the .cpp file, as RenderBlock is now forward declared in the .h file.
36957        * rendering/ExclusionShapeInsideInfo.h:
36958        (WebCore):
36959        (LineSegmentIterator): A simple struct for containing segment positions for
36960        layout.
36961        (WebCore::LineSegmentIterator::LineSegmentIterator): Constructor.
36962        (LineSegmentRange): Transitioning to store LineSegmentIterator.
36963        (WebCore::LineSegmentRange::LineSegmentRange): Ditto.
36964        (ExclusionShapeInsideInfo):
36965        * rendering/RenderBlock.cpp:
36966        (WebCore::RenderBlock::willBeDestroyed): Destroying a block will now destroy
36967        its ExclusionShapeInsideInfo, so there is no need to remove it from the map.
36968        (WebCore):
36969        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Use
36970        the RenderBlockRareData struct rather than the global map.
36971        * rendering/RenderBlock.h:
36972        (WebCore):
36973        (WebCore::RenderBlock::ensureExclusionShapeInsideInfo): Ensure an info struct
36974        is present if the shape-inside style is set.
36975        (WebCore::RenderBlock::exclusionShapeInsideInfo): Look up the info struct for
36976        the current block.
36977        (WebCore::RenderBlock::setExclusionShapeInsideInfo): Update the info struct
36978        for the current block.
36979        (RenderBlockRareData): Add the ExclusionShapeInsideInfo member. Move the struct
36980        declaration to be public, so that the OwnPtr reference can properly delete it.
36981        * rendering/RenderBlockLineLayout.cpp:
36982        (WebCore::constructBidiRunsForLine): Construct the appropriate offsets during
36983        layout based on the stored LineSegmentIterators.
36984
369852013-03-12  James Robinson  <jamesr@chromium.org>
36986
36987        Build fix for r145592 - update gyp files to refer to new file locations.
36988
36989        * WebCore.gypi:
36990
369912013-03-12  Benjamin Poulain  <bpoulain@apple.com>
36992
36993        Add a single character cache to WidthCache
36994        https://bugs.webkit.org/show_bug.cgi?id=112084
36995
36996        Reviewed by Geoffrey Garen.
36997
36998        More than half of the values stored in WidthCache are values
36999        for a single character.
37000
37001        Previously, we were creating a new SmallStringKey for each one of
37002        them, causing a lot of extra memory operations even for the simple
37003        cases.
37004
37005        This patch adds a second map, m_singleCharMap, to simplify the
37006        computation for the common case of a single char TextRun.
37007
37008        * platform/graphics/WidthCache.h:
37009        (WebCore::WidthCache::clear):
37010        (WidthCache):
37011        (WebCore::WidthCache::addSlowCase):
37012
370132013-03-12  Philip Rogers  <pdr@google.com>
37014
37015        Replace static_casts for SVG transformable and locatable elements
37016        https://bugs.webkit.org/show_bug.cgi?id=111651
37017
37018        Reviewed by Abhishek Arya.
37019
37020        toSVGStyledTransformableElement and toSVGStyledLocatableElement are preferred over
37021        static_casts because bad casts can be caught on our testing infrastructure. This patch
37022        replaces all static_casts for SVGStyledTransformableElement and SVGStyledLocatableElement
37023        with toSVGStyledTransformableElement and toSVGStyledLocatableElement, respectively.
37024
37025        No new tests as this is covered with existing tests.
37026
37027        * rendering/svg/RenderSVGResourceClipper.cpp:
37028        (WebCore::RenderSVGResourceClipper::pathOnlyClipping):
37029        * rendering/svg/RenderSVGResourceContainer.cpp:
37030        (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
37031        * rendering/svg/RenderSVGShape.cpp:
37032        (WebCore::RenderSVGShape::updateShapeFromElement):
37033        (WebCore::RenderSVGShape::layout):
37034        (WebCore::RenderSVGShape::nonScalingStrokeTransform):
37035        (WebCore::RenderSVGShape::shouldGenerateMarkerPositions):
37036        * rendering/svg/RenderSVGTransformableContainer.cpp:
37037        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
37038        * svg/SVGAnimatedLength.cpp:
37039        (WebCore::SVGAnimatedLengthAnimator::calculateDistance):
37040
37041            This was an unnecessary cast and has been removed.
37042
37043        * svg/SVGElement.cpp:
37044        (WebCore::SVGElement::getBoundingBox):
37045        * svg/SVGLocatable.cpp:
37046        (WebCore::SVGLocatable::getTransformToElement):
37047        * svg/SVGStyledLocatableElement.h:
37048        (WebCore):
37049        (WebCore::toSVGStyledLocatableElement):
37050        * svg/SVGStyledTransformableElement.h:
37051        (WebCore):
37052        (WebCore::toSVGStyledTransformableElement):
37053
37054            It makes the code cleaner to pass Node* in here, rather than converting the Node*
37055            to an SVGElement* before calling this function. The same was not necessary for
37056            SVGStyledLocatable.
37057
37058        * svg/SVGSVGElement.h:
37059        (WebCore):
37060        (WebCore::toSVGSVGElement):
37061
37062            This code has been cleaned up. During the review of this patch, a similar cleanup
37063            was done in toSVGStyledTransformableElement.
37064
37065        * svg/SVGUseElement.cpp:
37066        (WebCore::SVGUseElement::toClipPath):
37067
370682013-03-12  Abhishek Arya  <inferno@chromium.org>
37069
37070        Replace static_casts with to* helper functions.
37071        https://bugs.webkit.org/show_bug.cgi?id=112164
37072
37073        Reviewed by Philip Rogers.
37074
37075        to* helper functions are preferred over static_cast calls since they
37076        help to catch bad casts easily on the testing infrastructure.
37077
37078        * css/ElementRuleCollector.cpp:
37079        (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
37080        * platform/gtk/PasteboardGtk.cpp:
37081        (WebCore::getURLForImageNode):
37082        (WebCore::Pasteboard::writeImage):
37083        * platform/gtk/RenderThemeGtk.cpp:
37084        (WebCore::getMediaElementFromRenderObject):
37085        * platform/qt/RenderThemeQtMobile.cpp:
37086        (WebCore::RenderThemeQtMobile::checkMultiple):
37087        * rendering/HitTestResult.cpp:
37088        (WebCore::HitTestResult::title):
37089        (WebCore::HitTestResult::absoluteImageURL):
37090        (WebCore::HitTestResult::absolutePDFURL):
37091        * rendering/RenderLayer.cpp:
37092        (WebCore::RenderLayer::resize):
37093        (WebCore::RenderLayer::hitTest):
37094        * rendering/RenderMenuList.cpp:
37095        (WebCore::RenderMenuList::valueChanged):
37096        * rendering/RenderObject.cpp:
37097        (WebCore::RenderObject::addPDFURLRect):
37098        * rendering/RenderPart.cpp:
37099        (WebCore::RenderPart::requiresAcceleratedCompositing):
37100        * rendering/RenderRegion.cpp:
37101        (WebCore::RenderRegion::checkRegionStyle):
37102        * rendering/RenderTableCell.cpp:
37103        (WebCore::RenderTableCell::computePreferredLogicalWidths):
37104        * rendering/RenderTheme.cpp:
37105        (WebCore::RenderTheme::isEnabled):
37106        (WebCore::RenderTheme::isSpinUpButtonPartPressed):
37107        (WebCore::RenderTheme::isHovered):
37108        (WebCore::RenderTheme::isSpinUpButtonPartHovered):
37109        (WebCore::RenderTheme::paintSliderTicks):
37110        * rendering/RenderThemeWinCE.cpp:
37111        (WebCore::mediaElementParent):
37112        * rendering/RenderTreeAsText.cpp:
37113        (WebCore::isEmptyOrUnstyledAppleStyleSpan):
37114        (WebCore::RenderTreeAsText::writeRenderObject):
37115        (WebCore::writeRenderRegionList):
37116        * rendering/svg/SVGRenderTreeAsText.cpp:
37117        (WebCore::writeSVGResourceContainer):
37118
371192013-03-12  Geoffrey Garen  <ggaren@apple.com>
37120
37121        Moved RunLoopTimer and SchedulePair to WTF
37122        https://bugs.webkit.org/show_bug.cgi?id=112171
37123
37124        Reviewed by Oliver Hunt.
37125
37126        This will allow us to use timers in lower level primitives without
37127        duplicating all the code.
37128
37129        * WebCore.exp.in:
37130        * WebCore.xcodeproj/project.pbxproj:
37131        * loader/DocumentLoader.h:
37132        (WTF):
37133        (WebCore):
37134        (DocumentLoader):
37135        * loader/MainResourceLoader.h:
37136        * page/Page.h:
37137        * platform/AutodrainedPool.h: Removed.
37138        * platform/cf/RunLoopTimerCF.cpp: Removed.
37139        * platform/cf/SchedulePair.cpp: Removed.
37140        * platform/cf/SchedulePair.h: Removed.
37141        * platform/mac/AutodrainedPool.mm: Removed.
37142        * platform/mac/SchedulePairMac.mm: Removed.
37143        * platform/network/NetworkingContext.h:
37144        * platform/network/ResourceHandle.h:
37145        (WTF):
37146        (WebCore):
37147        (ResourceHandle):
37148        * platform/network/cf/FormDataStreamCFNet.cpp:
37149        * platform/network/mac/ResourceHandleMac.mm:
37150
371512013-03-12  Christian Biesinger  <cbiesinger@chromium.org>
37152
37153        Mac: Incorrect rendering of <audio> controls
37154        https://bugs.webkit.org/show_bug.cgi?id=110913
37155
37156        Reviewed by Tony Chang.
37157
37158        Covered by existing tests under media/.
37159
37160        * css/mediaControls.css:
37161        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
37162        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
37163        The timeline container and the timeline need min-width: 0 so that they can shrink if needed.
37164        * css/mediaControlsQuickTime.css:
37165        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
37166        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
37167        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
37168        The timeline container also needs flex-start to ensure that it never overlaps
37169        the play/rewind buttons. The current-time and remaining-time displays need min-width: 0 so that the hack
37170        in RenderMediaControls.cpp works correctly - otherwise, RenderFlexibleBox tries to use the preferred width
37171        of the time displays, which is wrong when they try to hide themselves.
37172
371732013-03-12  Alexey Proskuryakov  <ap@apple.com>
37174
37175        Improve logging in ResourceHandleMac.mm
37176        https://bugs.webkit.org/show_bug.cgi?id=112185
37177
37178        Reviewed by Brady Eidson.
37179
37180        * platform/network/mac/ResourceHandleMac.mm:
37181        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Removed an obsolete #if.
37182        (WebCore::ResourceHandle::receivedCredential):
37183        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
37184        (WebCore::ResourceHandle::receivedCancellation):
37185        (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): Added a FIXME.
37186        (-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]):
37187
37188        * platform/network/mac/ResourceResponseMac.mm: Removed an unneeded include.
37189
371902013-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
37191
37192        Unreviewed, rolling out r145554.
37193        http://trac.webkit.org/changeset/145554
37194        https://bugs.webkit.org/show_bug.cgi?id=112182
37195
37196        Breaks several extension browser tests (see bug for details)
37197        (Requested by jamesr on #webkit).
37198
37199        * bindings/scripts/CodeGeneratorV8.pm:
37200        (GenerateHeader):
37201        (GenerateDomainSafeFunctionGetter):
37202        (GenerateImplementation):
37203        (CreateCustomSignature):
37204        * bindings/scripts/test/V8/V8Float64Array.cpp:
37205        (WebCore::ConfigureV8Float64ArrayTemplate):
37206        (WebCore::V8Float64Array::GetTemplate):
37207        (WebCore::V8Float64Array::HasInstance):
37208        * bindings/scripts/test/V8/V8Float64Array.h:
37209        (V8Float64Array):
37210        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
37211        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
37212        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
37213        (WebCore::V8TestActiveDOMObject::GetTemplate):
37214        (WebCore::V8TestActiveDOMObject::HasInstance):
37215        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
37216        (V8TestActiveDOMObject):
37217        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
37218        (WebCore::V8TestCustomNamedGetter::GetTemplate):
37219        (WebCore::V8TestCustomNamedGetter::HasInstance):
37220        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
37221        (V8TestCustomNamedGetter):
37222        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
37223        (WebCore::V8TestEventConstructor::GetTemplate):
37224        (WebCore::V8TestEventConstructor::HasInstance):
37225        * bindings/scripts/test/V8/V8TestEventConstructor.h:
37226        (V8TestEventConstructor):
37227        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
37228        (WebCore::ConfigureV8TestEventTargetTemplate):
37229        (WebCore::V8TestEventTarget::GetTemplate):
37230        (WebCore::V8TestEventTarget::HasInstance):
37231        * bindings/scripts/test/V8/V8TestEventTarget.h:
37232        (V8TestEventTarget):
37233        * bindings/scripts/test/V8/V8TestException.cpp:
37234        (WebCore::V8TestException::GetTemplate):
37235        (WebCore::V8TestException::HasInstance):
37236        * bindings/scripts/test/V8/V8TestException.h:
37237        (V8TestException):
37238        * bindings/scripts/test/V8/V8TestInterface.cpp:
37239        (WebCore::ConfigureV8TestInterfaceTemplate):
37240        (WebCore::V8TestInterface::GetTemplate):
37241        (WebCore::V8TestInterface::HasInstance):
37242        * bindings/scripts/test/V8/V8TestInterface.h:
37243        (V8TestInterface):
37244        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
37245        (WebCore::V8TestMediaQueryListListener::GetTemplate):
37246        (WebCore::V8TestMediaQueryListListener::HasInstance):
37247        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
37248        (V8TestMediaQueryListListener):
37249        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
37250        (WebCore::V8TestNamedConstructor::GetTemplate):
37251        (WebCore::V8TestNamedConstructor::HasInstance):
37252        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
37253        (V8TestNamedConstructor):
37254        * bindings/scripts/test/V8/V8TestNode.cpp:
37255        (WebCore::V8TestNode::GetTemplate):
37256        (WebCore::V8TestNode::HasInstance):
37257        * bindings/scripts/test/V8/V8TestNode.h:
37258        (V8TestNode):
37259        * bindings/scripts/test/V8/V8TestObj.cpp:
37260        (WebCore::ConfigureV8TestObjTemplate):
37261        (WebCore::V8TestObj::GetTemplate):
37262        (WebCore::V8TestObj::HasInstance):
37263        * bindings/scripts/test/V8/V8TestObj.h:
37264        (V8TestObj):
37265        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
37266        (WebCore::V8TestOverloadedConstructors::GetTemplate):
37267        (WebCore::V8TestOverloadedConstructors::HasInstance):
37268        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
37269        (V8TestOverloadedConstructors):
37270        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
37271        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
37272        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
37273        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
37274        (V8TestSerializedScriptValueInterface):
37275        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
37276        (WebCore::ConfigureV8TestTypedefsTemplate):
37277        (WebCore::V8TestTypedefs::GetTemplate):
37278        (WebCore::V8TestTypedefs::HasInstance):
37279        * bindings/scripts/test/V8/V8TestTypedefs.h:
37280        (V8TestTypedefs):
37281        * bindings/v8/V8AdaptorFunction.cpp:
37282        (WebCore::V8AdaptorFunction::getTemplate):
37283        * bindings/v8/V8GCController.cpp:
37284        * bindings/v8/V8PerIsolateData.cpp:
37285        (WebCore::V8PerIsolateData::reportMemoryUsage):
37286        (WebCore::V8PerIsolateData::privateTemplate):
37287        (WebCore::V8PerIsolateData::rawTemplate):
37288        (WebCore::V8PerIsolateData::hasInstance):
37289        * bindings/v8/V8PerIsolateData.h:
37290        (WebCore::V8PerIsolateData::rawTemplateMap):
37291        (WebCore::V8PerIsolateData::templateMap):
37292        (V8PerIsolateData):
37293        * bindings/v8/WrapperTypeInfo.h:
37294        * bindings/v8/custom/V8LocationCustom.cpp:
37295        (WebCore::V8Location::reloadAttrGetterCustom):
37296        (WebCore::V8Location::replaceAttrGetterCustom):
37297        (WebCore::V8Location::assignAttrGetterCustom):
37298        * bindings/v8/custom/V8NodeListCustom.cpp:
37299        (WebCore::V8NodeList::opaqueRootForGC):
37300
373012013-03-12  Gavin Peters  <gavinp@chromium.org>
37302
37303        [chromium] Use lipo(1) rather than file(1) to list library architectures.
37304        https://bugs.webkit.org/show_bug.cgi?id=111147
37305
37306        Parsing file(1) output can be fragile; this patch replaces a use of file(1) to get
37307        the architecture list of a library with an invocation of lipo(1), which should be more
37308        stable.
37309
37310        Reviewed by Nico Weber.
37311
37312        No new tests, since adjust_visibility.sh doesn't have a test.
37313
37314        * WebCore.gyp/mac/adjust_visibility.sh:
37315
373162013-03-12  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
37317
37318        Webkit unable to show gifs with applcation extension string shorter than 11 bytes
37319        https://bugs.webkit.org/show_bug.cgi?id=110620
37320
37321        Reviewed by Laszlo Gombos.
37322
37323        Use actual block size for gifs application extension string even if it is below 11 bytes 
37324        to be able to decode this kind of gifs.
37325
37326        Test: fast/images/gif-short-app-extension-string.html
37327
37328        * platform/image-decoders/gif/GIFImageReader.cpp:
37329        (GIFImageReader::decodeInternal):
37330
373312013-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
37332
37333        Unreviewed, rolling out r145277.
37334        http://trac.webkit.org/changeset/145277
37335        https://bugs.webkit.org/show_bug.cgi?id=112170
37336
37337        chromium-gpu and android testers are seeing failures/crashes
37338        relating to this code (Requested by eseidel on #webkit).
37339
37340        * html/parser/BackgroundHTMLInputStream.cpp:
37341        (WebCore::BackgroundHTMLInputStream::rewindTo):
37342        * html/parser/BackgroundHTMLInputStream.h:
37343        (BackgroundHTMLInputStream):
37344        (Checkpoint):
37345        * html/parser/BackgroundHTMLParser.cpp:
37346        * html/parser/BackgroundHTMLParser.h:
37347        (BackgroundHTMLParser):
37348        * html/parser/HTMLDocumentParser.cpp:
37349        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
37350
373512013-03-12  Simon Fraser  <simon.fraser@apple.com>
37352
37353        Keep track of the number of GraphicsLayers with tiled backing in RenderLayerCompositor
37354        https://bugs.webkit.org/show_bug.cgi?id=112083
37355
37356        Reviewed by Dean Jackson.
37357
37358        Have RenderLayerCompositor keep track of how many of its GraphicsLayers use TiledBacking.
37359        This is useful for platforms to decide whether it's necessary to force GraphicsLayer flushes
37360        to update the visibleRect of those TiledBackings.
37361        
37362        GraphicsLayers are always created without TiledBacking. There are two
37363        ways the count can change:
37364        1. A GraphicsLayerCA toggles into or out of tiled mode. It notifies its
37365           client via a new tiledBackingUsageChanged() callback on GraphicsLayerClient.
37366        2. A tiled GraphicsLayerCA is destroyed. Added a new bottleneck function to
37367           RenderLayerBacking::willDestroyLayer() that is called everywhere we destroy layers.
37368           
37369        The main page TiledBacking is not counted as part of this.
37370        
37371        Also renamed uses of "tiledLayer" to "tiledBacking" in GraphicsLayer[CA].
37372    
37373        * platform/graphics/GraphicsLayer.cpp:
37374        (WebCore::GraphicsLayer::GraphicsLayer):
37375        (WebCore::GraphicsLayer::getDebugBorderInfo):
37376        (WebCore::GraphicsLayer::dumpProperties):
37377        * platform/graphics/GraphicsLayer.h:
37378        (WebCore::GraphicsLayer::usingTiledBacking):
37379        * platform/graphics/GraphicsLayerClient.h:
37380        (WebCore::GraphicsLayerClient::tiledBackingUsageChanged):
37381        * platform/graphics/ca/GraphicsLayerCA.cpp:
37382        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
37383        (WebCore::GraphicsLayerCA::updateGeometry):
37384        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
37385        (WebCore::GraphicsLayerCA::updateContentsScale):
37386        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
37387        * rendering/RenderLayerBacking.cpp:
37388        (WebCore::RenderLayerBacking::willDestroyLayer):
37389        (WebCore::RenderLayerBacking::tiledBackingUsageChanged):
37390        (WebCore::RenderLayerBacking::destroyGraphicsLayers):
37391        (WebCore::RenderLayerBacking::updateClippingLayers):
37392        (WebCore::RenderLayerBacking::updateOverflowControlsLayers):
37393        (WebCore::RenderLayerBacking::updateForegroundLayer):
37394        (WebCore::RenderLayerBacking::updateBackgroundLayer):
37395        (WebCore::RenderLayerBacking::updateMaskLayer):
37396        (WebCore::RenderLayerBacking::updateScrollingLayers):
37397        (WebCore::RenderLayerBacking::compositingLayerType):
37398        * rendering/RenderLayerBacking.h:
37399        * rendering/RenderLayerCompositor.cpp:
37400        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
37401        (WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
37402        * rendering/RenderLayerCompositor.h:
37403        (WebCore::RenderLayerCompositor::haveNonMainLayersWithTiledBacking):
37404
374052013-03-12  Abhishek Arya  <inferno@chromium.org>
37406
37407        Replace static_casts with to* functions.
37408        https://bugs.webkit.org/show_bug.cgi?id=112072
37409
37410        Reviewed by Philip Rogers.
37411
37412        to* functions are preferred over static_cast calls since they
37413        help to catch bad casts easily on the testing infrastructure.
37414
37415        * accessibility/AccessibilityMenuList.cpp:
37416        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
37417        * bindings/objc/DOM.mm:
37418        (kitClass):
37419        * bindings/v8/V8LazyEventListener.cpp:
37420        (WebCore::V8LazyEventListener::prepareListenerObject):
37421        * css/SelectorChecker.cpp:
37422        (WebCore::SelectorChecker::checkOne):
37423        * editing/ApplyStyleCommand.cpp:
37424        (WebCore::isLegacyAppleStyleSpan):
37425        (WebCore::isEmptyFontTag):
37426        (WebCore::ApplyStyleCommand::applyBlockStyle):
37427        * editing/FormatBlockCommand.cpp:
37428        (WebCore::isElementForFormatBlock):
37429        * editing/ReplaceSelectionCommand.cpp:
37430        (WebCore::isMailPasteAsQuotationNode):
37431        (WebCore::haveSameTagName):
37432        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
37433        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
37434        * history/CachedPage.cpp:
37435        (WebCore::CachedPage::restore):
37436        * html/ColorInputType.cpp:
37437        (WebCore::ColorInputType::suggestions):
37438        * html/HTMLTableRowsCollection.cpp:
37439        (WebCore::isInHead):
37440        (WebCore::isInBody):
37441        (WebCore::isInFoot):
37442        * inspector/DOMPatchSupport.cpp:
37443        (WebCore::DOMPatchSupport::innerPatchNode):
37444        * page/PageSerializer.cpp:
37445        (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
37446        * plugins/PluginView.cpp:
37447        (WebCore::PluginView::getValue):
37448        * rendering/RenderEmbeddedObject.cpp:
37449        (WebCore::RenderEmbeddedObject::paintContents):
37450        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
37451        * rendering/RenderLayer.cpp:
37452        (WebCore::RenderLayer::name):
37453        * rendering/RenderMedia.cpp:
37454        (WebCore::RenderMedia::mediaElement):
37455        * rendering/RenderSearchField.cpp:
37456        (WebCore::RenderSearchField::autosaveName):
37457        * rendering/RenderTextControl.cpp:
37458        (WebCore::RenderTextControl::textFormControlElement):
37459        (WebCore::updateUserModifyProperty):
37460        * rendering/mathml/RenderMathMLFenced.cpp:
37461        (WebCore::RenderMathMLFenced::updateFromElement):
37462        * rendering/mathml/RenderMathMLFraction.cpp:
37463        (WebCore::RenderMathMLFraction::updateFromElement):
37464        * xml/parser/XMLDocumentParserLibxml2.cpp:
37465        (WebCore::XMLDocumentParser::XMLDocumentParser):
37466        (WebCore::XMLDocumentParser::endElementNs):
37467
374682013-03-12  Zan Dobersek  <zdobersek@igalia.com>
37469
37470        [GTK] Remove HILDON_CPPFLAGS and HILDON_CFLAGS references from GNUmakefiles
37471        https://bugs.webkit.org/show_bug.cgi?id=112163
37472
37473        Reviewed by Martin Robinson.
37474
37475        No new tests - no new functionality, merely a cleanup.
37476
37477        * GNUmakefile.am: The Hildon dependency doesn't exist anymore so there's no need for
37478        references to HILDON_CPPFLAGS and HILDON_CFLAGS.
37479
374802013-03-12  Pavel Feldman  <pfeldman@chromium.org>
37481
37482        Not reviewed: removing GtkVersioning from chromium targets.
37483
37484        * WebCore.gypi:
37485
374862013-03-12  Marja Hölttä  <marja@chromium.org>
37487
37488        [V8] Store main world and non-main world templates separately.
37489        https://bugs.webkit.org/show_bug.cgi?id=111724
37490
37491        Reviewed by Jochen Eisinger.
37492
37493        This is needed for generating specialized bindings for the main
37494        world (bug 110874).
37495
37496        No new tests (updated existing bindings tests).
37497
37498        * bindings/scripts/CodeGeneratorV8.pm:
37499        (GenerateHeader):
37500        (GenerateDomainSafeFunctionGetter):
37501        (GenerateImplementation):
37502        (CreateCustomSignature):
37503        * bindings/scripts/test/V8/V8Float64Array.cpp:
37504        (WebCore::ConfigureV8Float64ArrayTemplate):
37505        (WebCore::V8Float64Array::GetTemplate):
37506        (WebCore::V8Float64Array::HasInstance):
37507        * bindings/scripts/test/V8/V8Float64Array.h:
37508        (V8Float64Array):
37509        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
37510        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
37511        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
37512        (WebCore::V8TestActiveDOMObject::GetTemplate):
37513        (WebCore::V8TestActiveDOMObject::HasInstance):
37514        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
37515        (V8TestActiveDOMObject):
37516        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
37517        (WebCore::V8TestCustomNamedGetter::GetTemplate):
37518        (WebCore::V8TestCustomNamedGetter::HasInstance):
37519        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
37520        (V8TestCustomNamedGetter):
37521        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
37522        (WebCore::V8TestEventConstructor::GetTemplate):
37523        (WebCore::V8TestEventConstructor::HasInstance):
37524        * bindings/scripts/test/V8/V8TestEventConstructor.h:
37525        (V8TestEventConstructor):
37526        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
37527        (WebCore::ConfigureV8TestEventTargetTemplate):
37528        (WebCore::V8TestEventTarget::GetTemplate):
37529        (WebCore::V8TestEventTarget::HasInstance):
37530        * bindings/scripts/test/V8/V8TestEventTarget.h:
37531        (V8TestEventTarget):
37532        * bindings/scripts/test/V8/V8TestException.cpp:
37533        (WebCore::V8TestException::GetTemplate):
37534        (WebCore::V8TestException::HasInstance):
37535        * bindings/scripts/test/V8/V8TestException.h:
37536        (V8TestException):
37537        * bindings/scripts/test/V8/V8TestInterface.cpp:
37538        (WebCore::ConfigureV8TestInterfaceTemplate):
37539        (WebCore::V8TestInterface::GetTemplate):
37540        (WebCore::V8TestInterface::HasInstance):
37541        * bindings/scripts/test/V8/V8TestInterface.h:
37542        (V8TestInterface):
37543        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
37544        (WebCore::V8TestMediaQueryListListener::GetTemplate):
37545        (WebCore::V8TestMediaQueryListListener::HasInstance):
37546        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
37547        (V8TestMediaQueryListListener):
37548        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
37549        (WebCore::V8TestNamedConstructor::GetTemplate):
37550        (WebCore::V8TestNamedConstructor::HasInstance):
37551        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
37552        (V8TestNamedConstructor):
37553        * bindings/scripts/test/V8/V8TestNode.cpp:
37554        (WebCore::V8TestNode::GetTemplate):
37555        (WebCore::V8TestNode::HasInstance):
37556        * bindings/scripts/test/V8/V8TestNode.h:
37557        (V8TestNode):
37558        * bindings/scripts/test/V8/V8TestObj.cpp:
37559        (WebCore::ConfigureV8TestObjTemplate):
37560        (WebCore::V8TestObj::GetTemplate):
37561        (WebCore::V8TestObj::HasInstance):
37562        * bindings/scripts/test/V8/V8TestObj.h:
37563        (V8TestObj):
37564        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
37565        (WebCore::V8TestOverloadedConstructors::GetTemplate):
37566        (WebCore::V8TestOverloadedConstructors::HasInstance):
37567        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
37568        (V8TestOverloadedConstructors):
37569        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
37570        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
37571        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
37572        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
37573        (V8TestSerializedScriptValueInterface):
37574        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
37575        (WebCore::ConfigureV8TestTypedefsTemplate):
37576        (WebCore::V8TestTypedefs::GetTemplate):
37577        (WebCore::V8TestTypedefs::HasInstance):
37578        * bindings/scripts/test/V8/V8TestTypedefs.h:
37579        (V8TestTypedefs):
37580        * bindings/v8/V8AdaptorFunction.cpp:
37581        (WebCore::V8AdaptorFunction::getTemplate):
37582        * bindings/v8/V8GCController.cpp:
37583        * bindings/v8/V8PerIsolateData.cpp:
37584        (WebCore::V8PerIsolateData::reportMemoryUsage):
37585        (WebCore::V8PerIsolateData::privateTemplate):
37586        (WebCore::V8PerIsolateData::rawTemplate):
37587        (WebCore::V8PerIsolateData::hasInstance):
37588        * bindings/v8/V8PerIsolateData.h:
37589        (WebCore::V8PerIsolateData::rawTemplateMap):
37590        (V8PerIsolateData):
37591        (WebCore::V8PerIsolateData::templateMap):
37592        * bindings/v8/WrapperTypeInfo.h:
37593        * bindings/v8/custom/V8LocationCustom.cpp:
37594        (WebCore::V8Location::reloadAttrGetterCustom):
37595        (WebCore::V8Location::replaceAttrGetterCustom):
37596        (WebCore::V8Location::assignAttrGetterCustom):
37597
375982013-03-12  Zan Dobersek  <zdobersek@igalia.com>
37599
37600        [GTK] Set up the libPlatformGtk.la library
37601        https://bugs.webkit.org/show_bug.cgi?id=111738
37602
37603        Reviewed by Martin Robinson.
37604
37605        No new tests - no new functionality.
37606
37607        * GNUmakefile.am: Reference platformgtk_cppflags, platformgtk_sources variables along with webcoregtk_cppflags, webcoregtk_sources variables.
37608        * GNUmakefile.list.am: Removing GtkVersioning.c and GtkVersioning.h from the sources list, these files have been moved under Source/Platform.
37609        * bindings/gobject/GNUmakefile.am: Ditto on the platformgtk_* variables.
37610
376112013-03-12  Alberto Garcia  <agarcia@igalia.com>
37612
37613        [BlackBerry] Image,ImageBuffer: add missing parameters to methods
37614        https://bugs.webkit.org/show_bug.cgi?id=112148
37615
37616        Reviewed by Rob Buis.
37617
37618        BitmapImage::draw(), Image::drawPattern() and ImageBuffer::draw()
37619        have a BlendMode parameter since r137011.
37620
37621        ImageBuffer::copyImage() has a ScaleBehavior parameter since r134100.
37622
37623        * platform/graphics/blackberry/ImageBlackBerry.cpp:
37624        (WebCore::BitmapImage::draw):
37625        (WebCore::Image::drawPattern):
37626        * platform/graphics/blackberry/ImageBufferBlackBerry.cpp:
37627        (WebCore::ImageBuffer::copyImage):
37628        (WebCore::ImageBuffer::draw):
37629
376302013-03-12  Alberto Garcia  <agarcia@igalia.com>
37631
37632        [BlackBerry] MediaPlayerPrivate: fix call to MediaStreamDescriptor::label()
37633        https://bugs.webkit.org/show_bug.cgi?id=112140
37634
37635        Reviewed by Rob Buis.
37636
37637        MediaStreamDescriptor::id() was renamed to MediaStreamDescriptor::label() in r139352.
37638
37639        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
37640        (WebCore::toWebMediaStreamDescriptor):
37641
376422013-03-12  Eugene Klyuchnikov  <eustas@chromium.org>
37643
37644        Web Inspector: [REGRESSION] StepInto (F11) and StepOut (Shift-F11) shortcuts toggle Inspector window full-screen state
37645        https://bugs.webkit.org/show_bug.cgi?id=112113
37646
37647        Reviewed by Alexander Pavlov.
37648
37649        Updated handlers missed in first patch. Added JSDocs to all handlers.
37650
37651        * inspector/front-end/Panel.js: Fixed JSDocs.
37652        * inspector/front-end/CallStackSidebarPane.js:
37653        Added return values. Added JSDocs.
37654        * inspector/front-end/ScriptsPanel.js: Ditto.
37655        * inspector/front-end/GoToLineDialog.js: Added JSDocs.
37656        * inspector/front-end/TimelinePanel.js: Ditto.
37657
376582013-03-12  Alberto Garcia  <agarcia@igalia.com>
37659
37660        [BlackBerry] DisplayRefreshMonitor: rename m_timestamp back to m_monotonicAnimationStartTime
37661        https://bugs.webkit.org/show_bug.cgi?id=112139
37662
37663        Reviewed by Rob Buis.
37664
37665        This changed in r131131, but it was accidentally renamed back in r144465.
37666
37667        * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
37668        (WebCore::DisplayRefreshMonitor::displayLinkFired):
37669
376702013-03-12  Alberto Garcia  <agarcia@igalia.com>
37671
37672        [BlackBerry] FontPlatformData: HarfBuzz renaming
37673        https://bugs.webkit.org/show_bug.cgi?id=112142
37674
37675        Reviewed by Rob Buis.
37676
37677        When the old HarfBuzz code was removed in r141291,
37678        HarfBuzzNGFace.h was renamed to HarfBuzzFace.h and m_harfbuzzFace
37679        was renamed to m_harfBuzzFace.
37680
37681        These changes need to be reflected in the BlackBerry port.
37682
37683        * platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp:
37684        (WebCore::FontPlatformData::FontPlatformData):
37685        (WebCore::FontPlatformData::platformDataInit):
37686        (WebCore::FontPlatformData::platformDataAssign):
37687        (WebCore::FontPlatformData::harfBuzzFace):
37688
376892013-03-12  Alberto Garcia  <agarcia@igalia.com>
37690
37691        [BlackBerry] FontCacheBlackBerry: return PassRefPtr<SimpleFontData>
37692        https://bugs.webkit.org/show_bug.cgi?id=112022
37693
37694        Reviewed by Rob Buis.
37695
37696        FontData functions return PassRefPtr since r130160.
37697
37698        * platform/graphics/blackberry/FontCacheBlackBerry.cpp:
37699        (WebCore::FontCache::getFontDataForCharacters):
37700        (WebCore::FontCache::getSimilarFontPlatformData):
37701        (WebCore::FontCache::getLastResortFallbackFont):
37702        * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp:
37703        (WebCore::SimpleFontData::createScaledFontData):
37704
377052013-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
37706
37707        Web Inspector: Fix checkContentUpdated behavior in UISourceCode.
37708        https://bugs.webkit.org/show_bug.cgi?id=112037
37709
37710        Reviewed by Alexander Pavlov.
37711
37712        UISourceCode.checkContentUpdated now saves last updated content that was loaded and rejected
37713        by user on the per-file basis (only the last one was saved currently).
37714
37715        * inspector/front-end/FileSystemProjectDelegate.js:
37716        (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
37717        (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
37718        (WebInspector.FileSystemProjectDelegate.prototype.canSetFileContent):
37719        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
37720        * inspector/front-end/SimpleWorkspaceProvider.js:
37721        (WebInspector.SimpleProjectDelegate.prototype.canSetFileContent):
37722        * inspector/front-end/UISourceCode.js:
37723        (WebInspector.UISourceCode.prototype.checkContentUpdated.contentLoaded):
37724        (WebInspector.UISourceCode.prototype.checkContentUpdated):
37725        (WebInspector.UISourceCode.prototype._commitContent):
37726        (WebInspector.UISourceCode.prototype.addRevision):
37727        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
37728        * inspector/front-end/Workspace.js:
37729        (WebInspector.ProjectDelegate.prototype.canSetFileContent):
37730        (WebInspector.Project.prototype.canSetFileContent):
37731
377322013-03-12  Tomas Popela  <tpopela@redhat.com>
37733
37734        [Gtk] NBSP are not replaced when using X clipboard
37735        https://bugs.webkit.org/show_bug.cgi?id=112118
37736
37737        Reviewed by Martin Robinson.
37738
37739        We're not replacing nbsp with spaces when using X clipboard
37740        (Shift+Insert or middle mouse button).
37741
37742        * platform/gtk/DataObjectGtk.cpp:
37743        (WebCore::DataObjectGtk::text):
37744
377452013-03-12  Florin Malita  <fmalita@chromium.org>
37746
37747        SVG Pattern pixelated on inline SVG with CSS transforms
37748        https://bugs.webkit.org/show_bug.cgi?id=111587
37749
37750        Reviewed by Dirk Schulze.
37751
37752        When calculating the resolution for resource image buffers, we need to also consider CSS
37753        transforms. This patch updates calculateTransformationToOutermostSVGCoordinateSystem()
37754        (renamed to calculateTransformationToOutermostCoordinateSystem) to include the affine
37755        component from CSS transforms by walking the parent layer tree.        
37756
37757        Test: svg/custom/resources-css-scaled.html
37758
37759        * rendering/svg/RenderSVGResourceClipper.cpp:
37760        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
37761        * rendering/svg/RenderSVGResourceFilter.cpp:
37762        (WebCore::RenderSVGResourceFilter::applyResource):
37763        * rendering/svg/RenderSVGResourceGradient.cpp:
37764        (WebCore::createMaskAndSwapContextForTextGradient):
37765        (WebCore::clipToTextMask):
37766        * rendering/svg/RenderSVGResourceMasker.cpp:
37767        (WebCore::RenderSVGResourceMasker::applyResource):
37768        * rendering/svg/RenderSVGResourcePattern.cpp:
37769        (WebCore::RenderSVGResourcePattern::buildPattern):
37770        * rendering/svg/SVGRenderingContext.cpp:
37771        (WebCore::SVGRenderingContext::calculateScreenFontSizeScalingFactor):
37772        (WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
37773        * rendering/svg/SVGRenderingContext.h:
37774        (SVGRenderingContext):
37775
377762013-03-12  Yury Semikhatsky  <yurys@chromium.org>
37777
37778        Web Inspector: add html canvas memory details to the native memory overview
37779        https://bugs.webkit.org/show_bug.cgi?id=112123
37780
37781        Reviewed by Alexander Pavlov.
37782
37783        Show memory occupied vby HTMLCanvasElements under Image category
37784        in the native memory overview.
37785
37786        * inspector/front-end/NativeHeapSnapshot.js:
37787        (WebInspector.NativeHeapSnapshot.prototype.images.getImageName):
37788        (WebInspector.NativeHeapSnapshot.prototype.images.getCanvasName):
37789        (WebInspector.NativeHeapSnapshot.prototype.images):
37790        (WebInspector.NativeHeapSnapshot.prototype._addNodes):
37791
377922013-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
37793
37794        Web Inspector: ResourceScriptFile diverged state should be correctly reset after debugger reset.
37795        https://bugs.webkit.org/show_bug.cgi?id=112036
37796
37797        Reviewed by Alexander Pavlov.
37798
37799        * inspector/front-end/ResourceScriptMapping.js:
37800        (WebInspector.ResourceScriptFile):
37801        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
37802        (WebInspector.ResourceScriptFile.prototype._maybeDirtyChanged):
37803
378042013-03-12  Marja Hölttä  <marja@chromium.org>
37805
37806        [V8] Move the GetRawTemplate and HasInstance logic from generated bindings to V8PerIsolateData
37807        https://bugs.webkit.org/show_bug.cgi?id=112136
37808
37809        Reviewed by Kentaro Hara.
37810
37811        When templates for main world and non-main worlds will be separated (bug
37812        111724), HasInstance logic will be a bit ugly: We cannot determine the
37813        world type on the fly, because during GC there is no entered context,
37814        and HasInstance is called during GC. So we need to check against
37815        templates from all the worlds. It's cleaner if that logic is in
37816        V8PerIsolateData.
37817
37818        No new tests (Updated existing bindings tests).
37819
37820        * bindings/scripts/CodeGeneratorV8.pm:
37821        (GenerateHeader):
37822        (GenerateDomainSafeFunctionGetter):
37823        (GenerateImplementation):
37824        (CreateCustomSignature):
37825        * bindings/scripts/test/V8/V8Float64Array.cpp:
37826        (WebCore::ConfigureV8Float64ArrayTemplate):
37827        (WebCore::V8Float64Array::GetTemplate):
37828        (WebCore::V8Float64Array::HasInstance):
37829        * bindings/scripts/test/V8/V8Float64Array.h:
37830        (V8Float64Array):
37831        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
37832        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
37833        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
37834        (WebCore::V8TestActiveDOMObject::GetTemplate):
37835        (WebCore::V8TestActiveDOMObject::HasInstance):
37836        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
37837        (V8TestActiveDOMObject):
37838        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
37839        (WebCore::V8TestCustomNamedGetter::GetTemplate):
37840        (WebCore::V8TestCustomNamedGetter::HasInstance):
37841        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
37842        (V8TestCustomNamedGetter):
37843        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
37844        (WebCore::V8TestEventConstructor::GetTemplate):
37845        (WebCore::V8TestEventConstructor::HasInstance):
37846        * bindings/scripts/test/V8/V8TestEventConstructor.h:
37847        (V8TestEventConstructor):
37848        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
37849        (WebCore::ConfigureV8TestEventTargetTemplate):
37850        (WebCore::V8TestEventTarget::GetTemplate):
37851        (WebCore::V8TestEventTarget::HasInstance):
37852        * bindings/scripts/test/V8/V8TestEventTarget.h:
37853        (V8TestEventTarget):
37854        * bindings/scripts/test/V8/V8TestException.cpp:
37855        (WebCore::V8TestException::GetTemplate):
37856        (WebCore::V8TestException::HasInstance):
37857        * bindings/scripts/test/V8/V8TestException.h:
37858        (V8TestException):
37859        * bindings/scripts/test/V8/V8TestInterface.cpp:
37860        (WebCore::ConfigureV8TestInterfaceTemplate):
37861        (WebCore::V8TestInterface::GetTemplate):
37862        (WebCore::V8TestInterface::HasInstance):
37863        * bindings/scripts/test/V8/V8TestInterface.h:
37864        (V8TestInterface):
37865        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
37866        (WebCore::V8TestMediaQueryListListener::GetTemplate):
37867        (WebCore::V8TestMediaQueryListListener::HasInstance):
37868        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
37869        (V8TestMediaQueryListListener):
37870        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
37871        (WebCore::V8TestNamedConstructor::GetTemplate):
37872        (WebCore::V8TestNamedConstructor::HasInstance):
37873        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
37874        (V8TestNamedConstructor):
37875        * bindings/scripts/test/V8/V8TestNode.cpp:
37876        (WebCore::V8TestNode::GetTemplate):
37877        (WebCore::V8TestNode::HasInstance):
37878        * bindings/scripts/test/V8/V8TestNode.h:
37879        (V8TestNode):
37880        * bindings/scripts/test/V8/V8TestObj.cpp:
37881        (WebCore::ConfigureV8TestObjTemplate):
37882        (WebCore::V8TestObj::GetTemplate):
37883        (WebCore::V8TestObj::HasInstance):
37884        * bindings/scripts/test/V8/V8TestObj.h:
37885        (V8TestObj):
37886        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
37887        (WebCore::V8TestOverloadedConstructors::GetTemplate):
37888        (WebCore::V8TestOverloadedConstructors::HasInstance):
37889        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
37890        (V8TestOverloadedConstructors):
37891        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
37892        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
37893        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
37894        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
37895        (V8TestSerializedScriptValueInterface):
37896        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
37897        (WebCore::ConfigureV8TestTypedefsTemplate):
37898        (WebCore::V8TestTypedefs::GetTemplate):
37899        (WebCore::V8TestTypedefs::HasInstance):
37900        * bindings/scripts/test/V8/V8TestTypedefs.h:
37901        (V8TestTypedefs):
37902        * bindings/v8/V8PerIsolateData.cpp:
37903        (WebCore::V8PerIsolateData::rawTemplate):
37904        (WebCore):
37905        (WebCore::V8PerIsolateData::hasInstance):
37906        * bindings/v8/V8PerIsolateData.h:
37907        (V8PerIsolateData):
37908        * bindings/v8/custom/V8LocationCustom.cpp:
37909        (WebCore::V8Location::reloadAttrGetterCustom):
37910        (WebCore::V8Location::replaceAttrGetterCustom):
37911        (WebCore::V8Location::assignAttrGetterCustom):
37912
379132013-03-12  Eugene Klyuchnikov  <eustas@chromium.org>
37914
37915        Web Inspector: Fix JSDocs in TimelinePanel.js
37916        https://bugs.webkit.org/show_bug.cgi?id=112137
37917
37918        Reviewed by Vsevolod Vlasov.
37919
37920        Fix parameter type annotation of _loadFromFile.
37921
37922        * inspector/front-end/TimelinePanel.js: Fixed JSDoc.
37923
379242013-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
37925
37926        Web Inspector: Add a test for Workspace add/removeMapping methods.
37927        https://bugs.webkit.org/show_bug.cgi?id=112035
37928
37929        Reviewed by Alexander Pavlov.
37930
37931        Test: inspector/debugger/file-system-project-mapping.html
37932
37933        * inspector/front-end/ScriptsPanel.js:
37934        (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork.mapFileSystemToNetwork):
37935        (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork):
37936        (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem.mapNetworkToFileSystem):
37937        (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem):
37938        * inspector/front-end/Workspace.js:
37939        (WebInspector.Project.prototype._fileAdded):
37940        (WebInspector.Workspace.prototype.addMapping):
37941
379422013-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
37943
37944        Web Inspector: SourceFrames are leaking on reload.
37945        https://bugs.webkit.org/show_bug.cgi?id=111961
37946
37947        Reviewed by Alexander Pavlov.
37948
37949        Added dispose method on UISourceCodeFrame.
37950        Scripts panel now calls dispose when SourceFrame is removed and JavaScriptSourceFrame
37951        could remove breakpoint manager listeners in it.
37952        TabbedEditorContainer does not call viewForFile other than in appendFileTab methods to 
37953        avoid recreating SourceFrame for uiSourceCode when it was already removed.
37954
37955        Test: inspector/debugger/breakpoint-manager-listeners-count.html
37956
37957        * inspector/front-end/JavaScriptSourceFrame.js:
37958        (WebInspector.JavaScriptSourceFrame.prototype.dispose):
37959        * inspector/front-end/ScriptsPanel.js:
37960        * inspector/front-end/TabbedEditorContainer.js:
37961        (WebInspector.TabbedEditorContainer.prototype._addScrollAndSelectionListeners):
37962        (WebInspector.TabbedEditorContainer.prototype._removeScrollAndSelectionListeners):
37963        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
37964        * inspector/front-end/UISourceCodeFrame.js:
37965        (WebInspector.UISourceCodeFrame.prototype.dispose):
37966
379672013-03-12  Alexander Pavlov  <apavlov@chromium.org>
37968
37969        Web Inspector: [Elements] Unable to undo "Edit as HTML" changes in the editor
37970        https://bugs.webkit.org/show_bug.cgi?id=112119
37971
37972        Reviewed by Vsevolod Vlasov.
37973
37974        No new tests, a UI change.
37975
37976        * inspector/front-end/ElementsPanel.js:
37977        (WebInspector.ElementsPanel.prototype.handleShortcut): Do not undo/redo DOM/CSS changes if editing DOM text.
37978        * inspector/front-end/ElementsTreeOutline.js:
37979        (WebInspector.ElementsTreeOutline.prototype.editing): Added.
37980
379812013-03-12  Andrey Lushnikov  <lushnikov@chromium.org>
37982
37983        Web Inspector: [CodeMirror] there are bugs in TokenHighlight feature
37984        https://bugs.webkit.org/show_bug.cgi?id=112039
37985
37986        Reviewed by Vsevolod Vlasov.
37987
37988        Fix token highlight in codeMirror experiment
37989        - rewrite token highlight overlay mode to highlight words, not
37990        substrings
37991        - add workaround to avoid selection of already selected word
37992
37993        No new tests.
37994
37995        * inspector/front-end/CodeMirrorTextEditor.js:
37996        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._cursorChange):
37997        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._removeHighlight):
37998        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype.nextToken):
37999        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._addHighlight):
38000        * inspector/front-end/cm/cmdevtools.css:
38001        (.line-with-selection .cm-column-with-selection):
38002
380032013-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
38004
38005        Unreviewed, rolling out r145514.
38006        http://trac.webkit.org/changeset/145514
38007        https://bugs.webkit.org/show_bug.cgi?id=112134
38008
38009        breaks Mac build (Requested by falken on #webkit).
38010
38011        * dom/Element.cpp:
38012        * dom/Element.h:
38013        * dom/EventDispatcher.cpp:
38014        (WebCore::EventDispatcher::dispatchSimulatedClick):
38015        * dom/GestureEvent.cpp:
38016        (WebCore::GestureEventDispatchMediator::dispatchEvent):
38017        * dom/MouseEvent.cpp:
38018        (WebCore::MouseEventDispatchMediator::dispatchEvent):
38019        * dom/Node.cpp:
38020        (WebCore):
38021        (WebCore::Node::isInert):
38022        (WebCore::Node::handleLocalEvents):
38023        (WebCore::Node::disabled):
38024        (WebCore::Node::willRespondToMouseMoveEvents):
38025        (WebCore::Node::willRespondToMouseClickEvents):
38026        (WebCore::Node::willRespondToTouchEvents):
38027        * dom/Node.h:
38028        (Node):
38029
380302013-03-12  Andrey Lushnikov  <lushnikov@chromium.org>
38031
38032        Web Inspector: [CodeMirror] highlight matching braces
38033        https://bugs.webkit.org/show_bug.cgi?id=112041
38034
38035        Reviewed by Vsevolod Vlasov.
38036
38037        Add "matchbrackets" add-on to CodeMirror text editor add override
38038        default styles for matched and unmatched braces.
38039
38040        No new tests.
38041
38042        * WebCore.gypi:
38043        * WebCore.vcproj/WebCore.vcproj:
38044        * WebCore.vcxproj/WebCore.vcxproj:
38045        * WebCore.vcxproj/WebCore.vcxproj.filters:
38046        * inspector/front-end/CodeMirrorTextEditor.js:
38047        (WebInspector.CodeMirrorTextEditor):
38048        * inspector/front-end/WebKit.qrc:
38049        * inspector/front-end/cm/cmdevtools.css:
38050        (.CodeMirror-matchingbracket):
38051        (.CodeMirror-nonmatchingbracket):
38052        * inspector/front-end/cm/matchbrackets.js: Added.
38053        (.):
38054
380552013-03-12  Matt Falkenhagen  <falken@chromium.org>
38056
38057        Refactoring: Pull Node::disabled() and Node::isInert() down to Element.
38058        https://bugs.webkit.org/show_bug.cgi?id=112085
38059
38060        Reviewed by Hajime Morrita.
38061
38062        Node is too low a level for these methods.
38063
38064        No new tests, just refactoring.
38065
38066        * dom/Element.cpp:
38067        (WebCore::Element::disabled):
38068        (WebCore):
38069        (WebCore::Element::isInert):
38070        * dom/Element.h:
38071        (Element):
38072        * dom/EventDispatcher.cpp:
38073        (WebCore::EventDispatcher::dispatchSimulatedClick):
38074        * dom/GestureEvent.cpp:
38075        (WebCore::GestureEventDispatchMediator::dispatchEvent):
38076        * dom/MouseEvent.cpp:
38077        (WebCore::MouseEventDispatchMediator::dispatchEvent):
38078        * dom/Node.cpp:
38079        (WebCore::Node::handleLocalEvents):
38080        (WebCore::Node::willRespondToMouseMoveEvents):
38081        (WebCore::Node::willRespondToMouseClickEvents):
38082        (WebCore::Node::willRespondToTouchEvents):
38083        * dom/Node.h:
38084        (Node):
38085
380862013-03-12  Marja Hölttä  <marja@chromium.org>
38087
38088        [V8] Get rid of function-level static FunctionTemplates in generated bindings code
38089        https://bugs.webkit.org/show_bug.cgi?id=111971
38090
38091        Reviewed by Jochen Eisinger.
38092
38093        In the future we'll create and store function templates for main world
38094        and non-main worlds separately (see bug 111724), having function
38095        templates as static variables inside functions will break the
38096        functionality.
38097
38098        No new tests (updated the bindings test expectations).
38099
38100        * bindings/scripts/CodeGeneratorV8.pm:
38101        (GenerateDomainSafeFunctionGetter):
38102        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
38103        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
38104        * bindings/v8/V8PerIsolateData.cpp:
38105        (WebCore::V8PerIsolateData::V8PerIsolateData):
38106        (WebCore::V8PerIsolateData::privateTemplate):
38107        (WebCore):
38108        * bindings/v8/V8PerIsolateData.h:
38109        (V8PerIsolateData):
38110        * bindings/v8/custom/V8LocationCustom.cpp:
38111        (WebCore::V8Location::reloadAttrGetterCustom):
38112        (WebCore::V8Location::replaceAttrGetterCustom):
38113        (WebCore::V8Location::assignAttrGetterCustom):
38114
381152013-03-12  Takashi Sakamoto  <tasak@google.com>
38116
38117        [Refactoring] Implement RuleCollector
38118        https://bugs.webkit.org/show_bug.cgi?id=109916
38119
38120        Reviewed by Antti Koivisto.
38121
38122        Implemented rule collector for an element and collector for a page.
38123        Not all members in class State are required entire while resolving
38124        a style.
38125
38126        No new tests, because just refactoring.
38127
38128        * CMakeLists.txt:
38129        * GNUmakefile.list.am:
38130        * Target.pri:
38131        * WebCore.gypi:
38132        * WebCore.xcodeproj/project.pbxproj:
38133        * css/CSSAllInOne.cpp:
38134        Added ElementRuleCollector and PageRuleCollector.
38135        * css/DocumentRuleSets.cpp:
38136        (WebCore::ShadowDistributedRules::collectMatchRequests):
38137        Since behaviorAtBoundary is a state owned by ElementRuleCollector,
38138        removed from here.
38139        * css/DocumentRuleSets.h:
38140        (WebCore::ShadowDistributedRules::isEmpty):
38141        Added to quickly check whether there exist any ShadowDistributedRules
38142        or not.
38143        * css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
38144        (WebCore):
38145        (WebCore::ElementRuleCollector::matchedResult):
38146        (WebCore::ElementRuleCollector::matchedRuleList):
38147        (WebCore::ElementRuleCollector::addMatchedRule):
38148        (WebCore::ElementRuleCollector::clearMatchedRules):
38149        (WebCore::ElementRuleCollector::ensureRuleList):
38150        (WebCore::ElementRuleCollector::addElementStyleProperties):
38151        (WebCore::ElementRuleCollector::collectMatchingRules):
38152        (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
38153        (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
38154        (WebCore::ElementRuleCollector::matchScopedAuthorRules):
38155        (WebCore::ElementRuleCollector::matchHostRules):
38156        (WebCore::ElementRuleCollector::matchShadowDistributedRules):
38157        (WebCore::ElementRuleCollector::matchAuthorRules):
38158        (WebCore::ElementRuleCollector::matchUserRules):
38159        (WebCore::ElementRuleCollector::matchUARules):
38160        (WebCore::ElementRuleCollector::ruleMatches):
38161        (WebCore::ElementRuleCollector::collectMatchingRulesForList):
38162        (WebCore::ElementRuleCollector::sortMatchedRules):
38163        (WebCore::ElementRuleCollector::matchAllRules):
38164        Moved these methods from StyleResolver to this class.
38165        (WebCore::ElementRuleCollector::hasAnyMatchingRules):
38166        This method is used for checking whether a given element can share
38167        a cache.
38168        * css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
38169        (WebCore):
38170        (WebCore::ElementRuleCollector::ElementRuleCollector):
38171        Use styleResolver instance to initialize its member variables, i.e.
38172        SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
38173        StyleScopedResolver.
38174        (ElementRuleCollector):
38175        (WebCore::ElementRuleCollector::setMode):
38176        (WebCore::ElementRuleCollector::setPseudoStyleRequest):
38177        (WebCore::ElementRuleCollector::setSameOriginOnly):
38178        (WebCore::ElementRuleCollector::setRegionForStyling):
38179        Mode, SameOriginOnly, RegionForStyling are only used while collecting
38180        matched rules.
38181        (WebCore::ElementRuleCollector::setMedium):
38182        Need to know which default stylesheet should be looked up.
38183        (WebCore::ElementRuleCollector::document):
38184        * css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
38185        (WebCore::comparePageRules):
38186        (WebCore::PageRuleCollector::isLeftPage):
38187        (WebCore::PageRuleCollector::isFirstPage):
38188        (WebCore::PageRuleCollector::pageName):
38189        (WebCore::PageRuleCollector::matchAllPageRules):
38190        (WebCore::PageRuleCollector::matchPageRules):
38191        (WebCore::checkPageSelectorComponents):
38192        (WebCore::PageRuleCollector::matchPageRulesForList):
38193        Moved from StyleResolver.
38194        * css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
38195        (WebCore):
38196        (WebCore::PageRuleCollector::PageRuleCollector):
38197        (PageRuleCollector):
38198        (WebCore::PageRuleCollector::matchedResult):
38199        * css/StyleResolver.cpp:
38200        (WebCore):
38201        (WebCore::StyleResolver::State::clear):
38202        (WebCore::StyleResolver::MatchResult::addMatchedProperties):
38203        (WebCore::StyleResolver::State::initForStyleResolve):
38204        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
38205        (WebCore::StyleResolver::styleForElement):
38206        (WebCore::StyleResolver::styleForKeyframe):
38207        (WebCore::StyleResolver::pseudoStyleForElement):
38208        (WebCore::StyleResolver::styleForPage):
38209        (WebCore::StyleResolver::pseudoStyleRulesForElement):
38210        (WebCore::StyleResolver::applyMatchedProperties):
38211        * css/StyleResolver.h:
38212        (WebCore::MatchRequest::MatchRequest):
38213        Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
38214        state.
38215        (MatchRequest):
38216        (WebCore::StyleResolver::selectorFilter):
38217        Added to obtain SelectorFilter in ElementRuleCollector's constructor.
38218        (StyleResolver):
38219        (MatchResult):
38220        (WebCore::StyleResolver::State::State):
38221        To pass ASSERT in StyleResolver::applyProperties, need to keep
38222        m_regionForStyling.
38223        (State):
38224        (WebCore::StyleResolver::State::regionForStyling):
38225        (WebCore::StyleResolver::State::useSVGZoomRules):
38226        (WebCore::StyleResolver::hasSelectorForId):
38227        (WebCore):
38228        (WebCore::checkRegionSelector):
38229        * inspector/InspectorCSSAgent.cpp:
38230        (WebCore::InspectorCSSAgent::willMatchRule):
38231        Removed StyleResolver from its parameter list. Instead, added
38232        InspectorCSSOMWrappers and DocumentStyleSheetCollection.
38233        * inspector/InspectorCSSAgent.h:
38234        (WebCore):
38235        (InspectorCSSAgent):
38236        * inspector/InspectorInstrumentation.cpp:
38237        (WebCore):
38238        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
38239        * inspector/InspectorInstrumentation.h:
38240        (WebCore):
38241        (InspectorInstrumentation):
38242        (WebCore::InspectorInstrumentation::willMatchRule):
38243
382442013-03-12  Floris Bos  <bos@je-eigen-domein.nl>
38245
38246        [Qt] WebKit fails to compile if EGL headers are not in default INCLUDEPATH
38247        https://bugs.webkit.org/show_bug.cgi?id=111859
38248
38249        Reviewed by Jocelyn Turcotte.
38250
38251        The 3D graphics code wants to include EGL header files.
38252        But on some platforms such as the Raspberry Pi those are not in /usr/include
38253        but in another folder.
38254        Fix adds "egl" to CONFIG when OpenGL ES2 is used, so the right include
38255        paths are added.
38256
38257        * WebCore.pri:
38258
382592013-03-12  Mike West  <mkwst@chromium.org>
38260
38261        XSSAuditor should send only one console error when blocking a page.
38262        https://bugs.webkit.org/show_bug.cgi?id=110733
38263
38264        Reviewed by Daniel Bates.
38265
38266        Currently, we send two console errors when XSSAuditor blocks a page:
38267        "Refused to execute a JavaScript script. Source code of script found
38268        within request.\n", and "Entire page will be blocked.".
38269
38270        We should only send one message, tuning it properly for the context, and
38271        including the URL of the page effected by the XSSAuditor's work.
38272
38273        Covered by rebaselines of all the XSSAuditor and 'reflected-xss' tests.
38274
38275        * html/parser/XSSAuditor.cpp:
38276        * html/parser/XSSAuditor.h:
38277        (WebCore::XSSAuditor::XSSAuditor):
38278            Add two booleans to track the headers used to set the XSSAuditor state.
38279        (WebCore::XSSAuditor::init):
38280        (WebCore::XSSAuditor::filterToken):
38281            Add detail about the header status to the constructed XSSInfo object.
38282        * html/parser/XSSAuditorDelegate.cpp:
38283        (WebCore::buildConsoleError):
38284            Move message construction out into a separate inlined function, as
38285            it's becoming complex.
38286        (WebCore::XSSAuditorDelegate::didBlockScript):
38287            Fold the "Entire page will be blocked" message into the main console
38288            error.
38289        * html/parser/XSSAuditorDelegate.h:
38290        (WebCore::XSSInfo::create):
38291        (WebCore::XSSInfo::XSSInfo):
38292            Add detail about header status to XSSInfo in order to correctly
38293            construct the console error.
38294
382952013-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
38296
38297        Unreviewed, rolling out r145494.
38298        http://trac.webkit.org/changeset/145494
38299        https://bugs.webkit.org/show_bug.cgi?id=112117
38300
38301        Breaks Chromium Mac (Requested by pfeldman on #webkit).
38302
38303        * bindings/scripts/CodeGeneratorV8.pm:
38304        (GenerateDomainSafeFunctionGetter):
38305        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
38306        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
38307        * bindings/v8/V8PerIsolateData.cpp:
38308        (WebCore::V8PerIsolateData::V8PerIsolateData):
38309        * bindings/v8/V8PerIsolateData.h:
38310        (V8PerIsolateData):
38311        * bindings/v8/custom/V8LocationCustom.cpp:
38312        (WebCore::V8Location::reloadAttrGetterCustom):
38313        (WebCore::V8Location::replaceAttrGetterCustom):
38314        (WebCore::V8Location::assignAttrGetterCustom):
38315
383162013-03-12  Yury Semikhatsky  <yurys@chromium.org>
38317
38318        Web Inspector: add memory instrumentation for ImageLoader
38319        https://bugs.webkit.org/show_bug.cgi?id=112115
38320
38321        Reviewed by Alexander Pavlov.
38322
38323        Added memory instrumentation to ImageLoader. CachedImage referenced
38324        by the loader is reported as having retaining reference. This allows
38325        to see in the native memory graph CachedImages that are not reachable
38326        from MemoryCache but referenced by HTMLImageElement.
38327
38328        * loader/ImageLoader.cpp:
38329        (WebCore::ImageLoader::reportMemoryUsage):
38330        (WebCore):
38331        * loader/ImageLoader.h:
38332        (ImageLoader):
38333
383342013-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
38335
38336        Web Inspector: Broken shortcuts in Snippets SourceFrame
38337        https://bugs.webkit.org/show_bug.cgi?id=112038
38338
38339        Reviewed by Pavel Feldman.
38340
38341        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
38342        (WebInspector.SnippetJavaScriptSourceFrame):
38343        (WebInspector.SnippetJavaScriptSourceFrame.prototype._onKeyDown):
38344
383452013-03-12  Eugene Klyuchnikov  <eustas@chromium.org>
38346
38347        Web Inspector: [Timeline] File selector control becomes visible on "tab" navigation.
38348        https://bugs.webkit.org/show_bug.cgi?id=111710
38349
38350        Reviewed by Pavel Feldman.
38351
38352        Solution: Exclude file selector control from tab-navigation flow.
38353
38354        * inspector/front-end/FileUtils.js: Set tab-index to control.
38355        * inspector/front-end/TimelinePanel.js: Remove duplicating code.
38356        * inspector/front-end/inspector.css:
38357        (.status-bar-item): Make scroll height equal to offset height.
38358
383592013-03-12  Marja Hölttä  <marja@chromium.org>
38360
38361        [V8] Get rid of function-level static FunctionTemplates in generated bindings code
38362        https://bugs.webkit.org/show_bug.cgi?id=111971
38363
38364        Reviewed by Kentaro Hara.
38365
38366        In the future we'll create and store function templates for main world
38367        and non-main worlds separately (see bug 111724), having function
38368        templates as static variables inside functions will break the
38369        functionality.
38370
38371        No new tests (updated the bindings test expectations).
38372
38373        * bindings/scripts/CodeGeneratorV8.pm:
38374        (GenerateDomainSafeFunctionGetter):
38375        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
38376        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
38377        * bindings/v8/V8PerIsolateData.cpp:
38378        (WebCore::V8PerIsolateData::V8PerIsolateData):
38379        (WebCore::V8PerIsolateData::privateTemplate):
38380        (WebCore):
38381        * bindings/v8/V8PerIsolateData.h:
38382        (V8PerIsolateData):
38383        * bindings/v8/custom/V8LocationCustom.cpp:
38384        (WebCore::V8Location::reloadAttrGetterCustom):
38385        (WebCore::V8Location::replaceAttrGetterCustom):
38386        (WebCore::V8Location::assignAttrGetterCustom):
38387
383882013-03-12  Tien-Ren Chen  <trchen@chromium.org>
38389
38390        Need to notify ScrollingCoordinator when frame scrollbars are destroyed
38391        https://bugs.webkit.org/show_bug.cgi?id=112104
38392
38393        Reviewed by James Robinson.
38394
38395        Need to notify ScrollingCoordinatorChromium whenever m_layerForHorizontalScrollbar /
38396        m_layerForVerticalScrollbar changes, for correct lifetime management.
38397
38398        No new tests. Difficult to test lifetime management internal to ScrollingCoordinatorChromium.
38399
38400        * rendering/RenderLayerCompositor.cpp:
38401        (WebCore::RenderLayerCompositor::destroyRootLayer):
38402
384032013-03-11  Simon Fraser  <simon.fraser@apple.com>
38404
38405        We'll get there eventually.
38406
38407        * platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
38408
384092013-03-11  Simon Fraser  <simon.fraser@apple.com>
38410
38411        Fumbled adding new files to the vcproj. Fixing.
38412
38413        * WebCore.vcproj/WebCore.vcproj:
38414
384152013-03-11  Simon Fraser  <simon.fraser@apple.com>
38416
38417        Fix the Windows build by providing implementations of PlatformCAFilters::setFiltersOnLayer(),
38418        PlatformCAFilters::numAnimatedFilterProperties() and PlatformCAFilters::animatedFilterPropertyName(),
38419        adding PlatformCAFiltersWin.cpp to the vcproj.
38420        
38421        * WebCore.vcproj/WebCore.vcproj:
38422        * platform/graphics/ca/PlatformCAFilters.h:
38423        (PlatformCAFilters):
38424        * platform/graphics/ca/win/PlatformCAFiltersWin.cpp: Copied from Source/WebCore/platform/graphics/ca/PlatformCAFilters.h.
38425        (PlatformCAFilters::setFiltersOnLayer):
38426        (PlatformCAFilters::numAnimatedFilterProperties):
38427        (PlatformCAFilters::animatedFilterPropertyName):
38428
384292013-03-11  Jochen Eisinger  <jochen@chromium.org>
38430
38431        Don't create multiple user gesture indicators when forwarding events to sub frames
38432        https://bugs.webkit.org/show_bug.cgi?id=111923
38433
38434        Reviewed by Adam Barth.
38435
38436        Ports that implement consumable user gestures depend on a single user
38437        gesture indicator being created in response to a single user gesture.
38438
38439        Test: platform/chromium/fast/events/popup-allowed-from-gesture-only-once-iframes.html
38440
38441        * dom/UserGestureIndicator.cpp:
38442        (WebCore::isDefinite):
38443        (WebCore::UserGestureIndicator::UserGestureIndicator):
38444        (WebCore::UserGestureIndicator::processingUserGesture):
38445        * dom/UserGestureIndicator.h:
38446        * page/EventHandler.cpp:
38447        (WebCore::EventHandler::handleMousePressEvent):
38448        (WebCore::EventHandler::handleMouseDoubleClickEvent):
38449        (WebCore::EventHandler::handleMouseReleaseEvent):
38450        (WebCore::EventHandler::keyEvent):
38451        (WebCore::EventHandler::handleTouchEvent):
38452
384532013-03-11  Simon Fraser  <simon.fraser@apple.com>
38454
38455        Fix Windows build.
38456
38457        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
38458
384592013-03-11  Tim Horton  <timothy_horton@apple.com>
38460
38461        Unreviewed build fix after http://trac.webkit.org/changeset/145472.
38462
38463        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
38464        (PlatformCAFilters::colorMatrixValueForFilter):
38465
384662013-03-11  Takashi Sakamoto  <tasak@google.com>
38467
38468        [CSS] shadow from radius has wrong render in webkit
38469        https://bugs.webkit.org/show_bug.cgi?id=99928
38470
38471        Reviewed by Simon Fraser.
38472
38473        No rounded cornder should be expanded in the mixed case, i.e. some
38474        corners are rounded, but others are not rounded.
38475        Need to look at each corner independently,
38476        i.e. top-left, top-right, bottom-left and bottom-right, and
38477        to expand corners whose width and height are larger than 0.
38478
38479        Test: fast/box-shadow/box-shadow-with-zero-radius.html
38480
38481        * platform/graphics/RoundedRect.cpp:
38482        (WebCore::RoundedRect::Radii::expand):
38483
384842013-03-11  Simon Fraser  <simon.fraser@apple.com>
38485
38486        [CA] Animations of CSS filters don't work correctly
38487        https://bugs.webkit.org/show_bug.cgi?id=111905
38488
38489        Reviewed by Dean Jackson.
38490
38491        Fix various issues with transitions of composited filters on Mac,
38492        most of which stemmed from the conversion to use CAFilter.
38493        
38494        Put the Mac CA filter-related code into a new file, PlatformCAFilters,
38495        to group code that creates filter properties into a single place.
38496        
38497        Animations of CIFilters using multiple values never worked correctly,
38498        because we would clobber all but the last property for each filter,
38499        so fix that.
38500        
38501        Changes in the moved filter code:
38502            - Made use of sepiaFullConstants in the CIFilter and CAFilter code.
38503            - For CI, return CIVectors instead of NSArrays of NSNumbers.
38504            - Fudge the inputColor for the CI grayscale filter to better match software filters.
38505            - fix some cases where the behavior was wrong in the isDefault() case.
38506
38507        * WebCore.xcodeproj/project.pbxproj: Add PlatformCAFilters.h, PlatformCAFiltersMac.mm.
38508        * platform/graphics/GraphicsLayer.cpp:
38509        (WebCore::GraphicsLayer::animationNameForTransition): This function was creating a string
38510        containing non-ASCII characters.
38511        * platform/graphics/ca/GraphicsLayerCA.cpp:
38512        (WebCore::animationIdentifier): To handle CIFilter animations, we need to tack another
38513        index onto the animation identifier, since some animations require animating multiple
38514        properties of the same CIFilter. Add "subIndex" for this.
38515        (WebCore::GraphicsLayerCA::moveOrCopyAnimations): Ditto.
38516        (WebCore::GraphicsLayerCA::updateAnimations): Ditto.
38517        (WebCore::GraphicsLayerCA::setAnimationOnLayer): Ditto.
38518        (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer): Ditto.
38519        (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer): Ditto.
38520        (WebCore::GraphicsLayerCA::createAnimationFromKeyframes): Ditto.
38521        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations): Ditto.
38522        * platform/graphics/ca/GraphicsLayerCA.h: Ditto.
38523        (WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):
38524        (LayerPropertyAnimation):
38525        * platform/graphics/ca/PlatformCAAnimation.h:
38526        (PlatformCAAnimation): Functions moved.
38527        * platform/graphics/ca/PlatformCAFilters.h: Added.
38528        (PlatformCAFilters):
38529        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
38530        (PlatformCAAnimation::setFromValue):
38531        (PlatformCAAnimation::setToValue):
38532        (PlatformCAAnimation::setValues):
38533        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Added.
38534        (PlatformCAFilters::filterValueForOperation):
38535        (PlatformCAFilters::colorMatrixValueForFilter):
38536        (PlatformCAFilters::numAnimatedFilterProperties):
38537        (PlatformCAFilters::animatedFilterPropertyName):
38538        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
38539        (PlatformCALayer::PlatformCALayer):
38540        (PlatformCALayer::addAnimationForKey):
38541        (PlatformCALayer::setFilters):
38542        (PlatformCALayer::filtersCanBeComposited):
38543
385442013-03-11  Sheriff Bot  <webkit.review.bot@gmail.com>
38545
38546        Unreviewed, rolling out r145462.
38547        http://trac.webkit.org/changeset/145462
38548        https://bugs.webkit.org/show_bug.cgi?id=112097
38549
38550        Compilation failure in PluginView.cpp (Requested by jamesr_ on
38551        #webkit).
38552
38553        * accessibility/AccessibilityMenuList.cpp:
38554        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
38555        * bindings/objc/DOM.mm:
38556        (kitClass):
38557        * bindings/v8/V8LazyEventListener.cpp:
38558        (WebCore::V8LazyEventListener::prepareListenerObject):
38559        * css/SelectorChecker.cpp:
38560        (WebCore::SelectorChecker::checkOne):
38561        * editing/ApplyStyleCommand.cpp:
38562        (WebCore::isLegacyAppleStyleSpan):
38563        (WebCore::isEmptyFontTag):
38564        (WebCore::ApplyStyleCommand::applyBlockStyle):
38565        * editing/FormatBlockCommand.cpp:
38566        (WebCore::isElementForFormatBlock):
38567        * editing/ReplaceSelectionCommand.cpp:
38568        (WebCore::isMailPasteAsQuotationNode):
38569        (WebCore::haveSameTagName):
38570        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
38571        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
38572        * history/CachedPage.cpp:
38573        (WebCore::CachedPage::restore):
38574        * html/ColorInputType.cpp:
38575        (WebCore::ColorInputType::suggestions):
38576        * html/HTMLTableRowsCollection.cpp:
38577        (WebCore::isInHead):
38578        (WebCore::isInBody):
38579        (WebCore::isInFoot):
38580        * inspector/DOMPatchSupport.cpp:
38581        (WebCore::DOMPatchSupport::innerPatchNode):
38582        * page/PageSerializer.cpp:
38583        (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
38584        * plugins/PluginView.cpp:
38585        (WebCore::PluginView::getValue):
38586        * rendering/RenderEmbeddedObject.cpp:
38587        (WebCore::RenderEmbeddedObject::paintContents):
38588        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
38589        * rendering/RenderLayer.cpp:
38590        (WebCore::RenderLayer::name):
38591        * rendering/RenderMedia.cpp:
38592        (WebCore::RenderMedia::mediaElement):
38593        * rendering/RenderSearchField.cpp:
38594        (WebCore::RenderSearchField::autosaveName):
38595        * rendering/RenderTextControl.cpp:
38596        (WebCore::RenderTextControl::textFormControlElement):
38597        (WebCore::updateUserModifyProperty):
38598        * rendering/mathml/RenderMathMLFenced.cpp:
38599        (WebCore::RenderMathMLFenced::updateFromElement):
38600        * rendering/mathml/RenderMathMLFraction.cpp:
38601        (WebCore::RenderMathMLFraction::updateFromElement):
38602        * xml/parser/XMLDocumentParserLibxml2.cpp:
38603        (WebCore::XMLDocumentParser::XMLDocumentParser):
38604        (WebCore::XMLDocumentParser::endElementNs):
38605
386062013-03-11  Alexey Proskuryakov  <ap@apple.com>
38607
38608        Move SharedWorkerRepository functions out of DefaultSharedWorkerRepository
38609        https://bugs.webkit.org/show_bug.cgi?id=100418
38610
38611        Reviewed by Sam Weinig.
38612
38613        * CMakeLists.txt:
38614        * GNUmakefile.list.am:
38615        * Target.pri:
38616        * WebCore.vcproj/WebCore.vcproj:
38617        * WebCore.xcodeproj/project.pbxproj:
38618        Added SharedWorkerRepository.cpp.
38619
38620        * WebCore.gyp/WebCore.gyp:
38621        * WebCore.gypi:
38622        Chromium uses WebKit/chromium/src/SharedWorkerRepository.cpp instead of
38623        WebCore/workers/DefaultSharedWorkerRepository.cpp. Not sure why it's added and
38624        then excluded, but did the same with the new SharedWorkerRepository.cpp, which
38625        just contains some code moved from that file.
38626
38627        * workers/DefaultSharedWorkerRepository.cpp:
38628        (WebCore::SharedWorkerScriptLoader::load): Removed a PLATFORM(CHROMIUM) clause,
38629        chromium doesn't compile this file.
38630        (WebCore::DefaultSharedWorkerRepository::connectToWorker): Added a FIXME about
38631        seemingly wrong code.
38632
38633        * workers/SharedWorkerRepository.cpp: Added.
38634        (WebCore::SharedWorkerRepository::isAvailable):
38635        (WebCore::SharedWorkerRepository::connect):
38636        (WebCore::SharedWorkerRepository::documentDetached):
38637        (WebCore::SharedWorkerRepository::hasSharedWorkers):
38638        Moved from DefaultSharedWorkerRepository.cpp, because this is part of SharedWorkerRepository.
38639
386402013-03-11  Adam Barth  <abarth@webkit.org>
38641
38642        Make BackgroundHTMLParser work with doc.writes that enter or leave foreign content
38643        https://bugs.webkit.org/show_bug.cgi?id=109764
38644
38645        Reviewed by Eric Seidel.
38646
38647        Previously, we were not reseting the state of the
38648        HTMLTreeBuilderSimulator when we failed speculative parsing. This had a
38649        number of observable consequences, including not parsing CDATA sections
38650        correctly when document.write caused us to enter foreign content.
38651
38652        Test: fast/parser/document-write-svg-cdata.html
38653
38654        * html/parser/BackgroundHTMLParser.cpp:
38655        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
38656        (WebCore::BackgroundHTMLParser::resumeFrom):
38657        (WebCore::BackgroundHTMLParser::pumpTokenizer):
38658        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
38659        * html/parser/BackgroundHTMLParser.h:
38660        (Checkpoint):
38661        (BackgroundHTMLParser):
38662        * html/parser/HTMLDocumentParser.cpp:
38663        (WebCore::HTMLDocumentParser::validateSpeculations):
38664        (WebCore::HTMLDocumentParser::didFailSpeculation):
38665        * html/parser/HTMLDocumentParser.h:
38666        (ParsedChunk):
38667        * html/parser/HTMLElementStack.h:
38668        (WebCore::HTMLElementStack::ElementRecord::namespaceURI):
38669        * html/parser/HTMLTreeBuilder.h:
38670        (WebCore::HTMLTreeBuilder::options):
38671        (WebCore::HTMLTreeBuilder::openElements):
38672        (HTMLTreeBuilder):
38673        * html/parser/HTMLTreeBuilderSimulator.cpp:
38674        (WebCore::HTMLTreeBuilderSimulator::stateFor):
38675        (WebCore):
38676        * html/parser/HTMLTreeBuilderSimulator.h:
38677        (WebCore):
38678        (WebCore::HTMLTreeBuilderSimulator::state):
38679        (WebCore::HTMLTreeBuilderSimulator::setState):
38680        (HTMLTreeBuilderSimulator):
38681
386822013-03-11  Abhishek Arya  <inferno@chromium.org>
38683
38684        Replace static_casts with to* functions.
38685        https://bugs.webkit.org/show_bug.cgi?id=112072
38686
38687        Reviewed by Philip Rogers.
38688
38689        to* functions are preferred over static_cast calls since they
38690        help to catch bad casts easily on the testing infrastructure.
38691
38692        * accessibility/AccessibilityMenuList.cpp:
38693        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
38694        * bindings/objc/DOM.mm:
38695        (kitClass):
38696        * bindings/v8/V8LazyEventListener.cpp:
38697        (WebCore::V8LazyEventListener::prepareListenerObject):
38698        * css/SelectorChecker.cpp:
38699        (WebCore::SelectorChecker::checkOne):
38700        * editing/ApplyStyleCommand.cpp:
38701        (WebCore::isLegacyAppleStyleSpan):
38702        (WebCore::isEmptyFontTag):
38703        (WebCore::ApplyStyleCommand::applyBlockStyle):
38704        * editing/FormatBlockCommand.cpp:
38705        (WebCore::isElementForFormatBlock):
38706        * editing/ReplaceSelectionCommand.cpp:
38707        (WebCore::isMailPasteAsQuotationNode):
38708        (WebCore::haveSameTagName):
38709        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
38710        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
38711        * history/CachedPage.cpp:
38712        (WebCore::CachedPage::restore):
38713        * html/ColorInputType.cpp:
38714        (WebCore::ColorInputType::suggestions):
38715        * html/HTMLTableRowsCollection.cpp:
38716        (WebCore::isInHead):
38717        (WebCore::isInBody):
38718        (WebCore::isInFoot):
38719        * inspector/DOMPatchSupport.cpp:
38720        (WebCore::DOMPatchSupport::innerPatchNode):
38721        * page/PageSerializer.cpp:
38722        (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
38723        * plugins/PluginView.cpp:
38724        (WebCore::PluginView::getValue):
38725        * rendering/RenderEmbeddedObject.cpp:
38726        (WebCore::RenderEmbeddedObject::paintContents):
38727        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
38728        * rendering/RenderLayer.cpp:
38729        (WebCore::RenderLayer::name):
38730        * rendering/RenderMedia.cpp:
38731        (WebCore::RenderMedia::mediaElement):
38732        * rendering/RenderSearchField.cpp:
38733        (WebCore::RenderSearchField::autosaveName):
38734        * rendering/RenderTextControl.cpp:
38735        (WebCore::RenderTextControl::textFormControlElement):
38736        (WebCore::updateUserModifyProperty):
38737        * rendering/mathml/RenderMathMLFenced.cpp:
38738        (WebCore::RenderMathMLFenced::updateFromElement):
38739        * rendering/mathml/RenderMathMLFraction.cpp:
38740        (WebCore::RenderMathMLFraction::updateFromElement):
38741        * xml/parser/XMLDocumentParserLibxml2.cpp:
38742        (WebCore::XMLDocumentParser::XMLDocumentParser):
38743        (WebCore::XMLDocumentParser::endElementNs):
38744
387452013-03-11  Philip Rogers  <pdr@google.com>
38746
38747        Replace static_casts for SVGSVGElement and SVGStopElement
38748        https://bugs.webkit.org/show_bug.cgi?id=111651
38749
38750        Reviewed by Stephen Chenney.
38751
38752        toSVGSVGElement and toSVGStopElement are preferred over static_casts because bad casts
38753        can be caught on our testing infrastructure. This patches replaces all static_casts for
38754        SVGSVGElement and SVGStopElement with toSVGSVGElement and toSVGStopElement, respectively.
38755
38756        Additionaly, this patch renames SVGElement::isSVG to SVGElement::isSVGSVGElement to
38757        remove ambiguity for callers who may confuse this with isSVGElement.
38758
38759        No new tests as this is covered with existing tests.
38760
38761        * rendering/svg/RenderSVGRoot.cpp:
38762        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
38763        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
38764        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
38765        (WebCore::RenderSVGRoot::layout):
38766        (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
38767        (WebCore::RenderSVGRoot::hasRelativeDimensions):
38768        (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
38769        (WebCore::RenderSVGRoot::hasRelativeLogicalHeight):
38770        * rendering/svg/RenderSVGViewportContainer.cpp:
38771        (WebCore::RenderSVGViewportContainer::determineIfLayoutSizeChanged):
38772        (WebCore::RenderSVGViewportContainer::calcViewport):
38773        (WebCore::RenderSVGViewportContainer::viewportTransform):
38774        * svg/SVGDocument.cpp:
38775        (WebCore::SVGDocument::rootElement):
38776        (WebCore::SVGDocument::childShouldCreateRenderer):
38777        * svg/SVGElement.cpp:
38778        (WebCore::SVGElement::ownerSVGElement):
38779        * svg/SVGElement.h:
38780        (WebCore::SVGElement::isSVGSVGElement):
38781        * svg/SVGGradientElement.cpp:
38782        (WebCore::SVGGradientElement::buildStops):
38783        * svg/SVGLengthContext.cpp:
38784        (WebCore::SVGLengthContext::determineViewport):
38785        * svg/SVGSVGElement.h:
38786        (WebCore):
38787        (WebCore::toSVGSVGElement):
38788        * svg/SVGStopElement.h:
38789        (WebCore::toSVGStopElement):
38790        (WebCore):
38791
387922013-03-11  Tony Chang  <tony@chromium.org>
38793
38794        Small code cleanup in RenderFlexibleBox
38795        https://bugs.webkit.org/show_bug.cgi?id=112076
38796
38797        Reviewed by Ojan Vafai.
38798
38799        No new tests, this is a refactor and existing tests in css3/flexbox should pass.
38800
38801        * rendering/RenderFlexibleBox.cpp:
38802        (WebCore::RenderFlexibleBox::layoutBlock): Remove unused param from repositionLogicalHeightDependentFlexItems.
38803        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Remove unused param from repositionLogicalHeightDependentFlexItems.
38804        The clientLogicalBottom can't have changed in this time (the only thing we've done is align children).
38805        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Just call layout() if we marked the flexitem as needing layout.
38806        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Just call layout() if we marked the flexitem as needing layout.
38807        * rendering/RenderFlexibleBox.h:
38808        (RenderFlexibleBox): Remove unused param from repositionLogicalHeightDependentFlexItems.
38809
388102013-03-11  Jochen Eisinger  <jochen@chromium.org>
38811
38812        Rename DefinitelyProcessingUserGesture to DefinitelyProcessingNewUserGesture
38813        https://bugs.webkit.org/show_bug.cgi?id=111959
38814
38815        Reviewed by Alexey Proskuryakov.
38816
38817        The rationale is that the UserGestureIndicator will increase the number
38818        of consumable user gestures when it's invoked with what is now
38819        DefinitelyProcessingNewUserGesture.
38820
38821        In a follow-up change I will reintroduce DefinitelyProcessingUserGesture
38822        which will only increase the consumable user gesture count if we are
38823        not already processing a user gesture.
38824
38825        No new tests, no change in functionality.
38826
38827        * accessibility/AccessibilityNodeObject.cpp:
38828        (WebCore::AccessibilityNodeObject::increment):
38829        (WebCore::AccessibilityNodeObject::decrement):
38830        * accessibility/AccessibilityObject.cpp:
38831        (WebCore::AccessibilityObject::press):
38832        * bindings/ScriptControllerBase.cpp:
38833        (WebCore::ScriptController::executeScript):
38834        * bindings/js/ScriptController.cpp:
38835        (WebCore::ScriptController::executeScriptInWorld):
38836        * bindings/v8/NPV8Object.cpp:
38837        (_NPN_EvaluateHelper):
38838        * dom/UserGestureIndicator.cpp:
38839        (WebCore::isDefinite):
38840        (WebCore::UserGestureIndicator::UserGestureIndicator):
38841        (WebCore::UserGestureIndicator::processingUserGesture):
38842        * dom/UserGestureIndicator.h:
38843        * inspector/InspectorFrontendClientLocal.cpp:
38844        (WebCore::InspectorFrontendClientLocal::openInNewTab):
38845        * inspector/InspectorFrontendHost.cpp:
38846        (WebCore::FrontendMenuProvider::contextMenuItemSelected):
38847        * inspector/InspectorPageAgent.cpp:
38848        (WebCore::InspectorPageAgent::navigate):
38849        * loader/NavigationScheduler.cpp:
38850        (WebCore::ScheduledURLNavigation::fire):
38851        (WebCore::ScheduledURLNavigation::didStartTimer):
38852        (WebCore::ScheduledRedirect::fire):
38853        (WebCore::ScheduledRefresh::fire):
38854        (WebCore::ScheduledHistoryNavigation::fire):
38855        (WebCore::ScheduledFormSubmission::fire):
38856        (WebCore::ScheduledFormSubmission::didStartTimer):
38857        * page/EventHandler.cpp:
38858        (WebCore::EventHandler::handleMousePressEvent):
38859        (WebCore::EventHandler::handleMouseDoubleClickEvent):
38860        (WebCore::EventHandler::handleMouseReleaseEvent):
38861        (WebCore::EventHandler::keyEvent):
38862        (WebCore::EventHandler::handleTouchEvent):
38863        * platform/chromium/PopupContainer.cpp:
38864        (WebCore::PopupContainer::handleMouseDownEvent):
38865        (WebCore::PopupContainer::handleMouseMoveEvent):
38866        (WebCore::PopupContainer::handleMouseReleaseEvent):
38867        (WebCore::PopupContainer::handleWheelEvent):
38868        (WebCore::PopupContainer::handleKeyEvent):
38869
388702013-03-11  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
38871
38872        Ruby text is incorrectly positioned when its writing-mode is changed to vertical after layout is done
38873        https://bugs.webkit.org/show_bug.cgi?id=96592
38874
38875        Reviewed by Hajime Morrita.
38876
38877        Fixed logical left of RenderRubyText is not cleared.
38878
38879        This causes trouble when RenderRubyTest is laid out vertically after horizontally.
38880        Horizontal layout set logical top(== y).
38881        Vertical layout don't set logical left(== y).
38882        RenderRubyText::y remain old one.
38883        We clear old RenderRubyText::y at the first part of layout().
38884
38885        Test: fast/writing-mode/ruby-text-logical-left.html
38886
38887        * rendering/RenderRubyRun.cpp:
38888        (WebCore::RenderRubyRun::layout): Reset logicalLeft not to reuse old one.
38889
388902013-03-11  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
38891
38892        [css3-text] Add partial parsing support for text-underline-position property from CSS3 Text
38893        https://bugs.webkit.org/show_bug.cgi?id=102491
38894
38895        Reviewed by Julien Chaffraix.
38896
38897        This patch extends the existing parsing to support 'auto', 'alphabetic' and 'under'. We don't fully match
38898        the specification as we don't support [ left | right ] and this is left for another implementation
38899        as the rendering will need to be added.
38900
38901        Test: fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-underline-position.html
38902
38903        * css/CSSComputedStyleDeclaration.cpp:
38904        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
38905        * css/CSSParser.cpp:
38906        (WebCore::CSSParser::parseValue):
38907        (WebCore::CSSParser::parseTextUnderlinePosition):
38908        * css/CSSParser.h:
38909        * css/CSSPrimitiveValueMappings.h:
38910        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38911        (WebCore::CSSPrimitiveValue::operator TextUnderlinePosition):
38912        * css/CSSProperty.cpp:
38913        (WebCore::CSSProperty::isInheritedProperty):
38914        Added parsing-related checks for text-underline-position property.
38915        * css/CSSPropertyNames.in: Added '-webkit-underline-position' property.
38916        * css/CSSValueKeywords.in:
38917        * css/SVGCSSValueKeywords.in:
38918        * css/StyleBuilder.cpp:
38919        (ApplyPropertyTextUnderlinePosition):
38920        (WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
38921        (WebCore::ApplyPropertyTextUnderlinePosition::createHandler):
38922        (WebCore::StyleBuilder::StyleBuilder):
38923        Set property handler for text-underline-position.
38924        * css/StyleResolver.cpp:
38925        (WebCore::StyleResolver::applyProperty):
38926        * rendering/style/RenderStyle.h:
38927        * rendering/style/RenderStyleConstants.h:
38928        * rendering/style/StyleRareInheritedData.cpp:
38929        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
38930        (WebCore::StyleRareInheritedData::operator==):
38931        Added support for m_textUnderlinePosition on copy constructor and operator
38932        assignment functions.
38933        * rendering/style/StyleRareInheritedData.h:
38934        (StyleRareInheritedData): Added m_textUnderlinePosition here as it won't be used regularly.
38935
389362013-03-11  Christian Biesinger  <cbiesinger@chromium.org>
38937
38938        Hit testing should use ancestorInThisScope to get the non-shadow ancestor
38939        https://bugs.webkit.org/show_bug.cgi?id=112068
38940
38941        Reviewed by Dimitri Glazkov.
38942
38943        Tests: media/nodesFromRect-shadowContent.html
38944
38945        * rendering/HitTestResult.cpp:
38946        (WebCore::HitTestResult::setToNonShadowAncestor):
38947        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
38948        Use ancestorInThisScope which is not deprecated and which produces
38949        correct results for nested shadow trees (e.g. in case of <video>,
38950        which contains <input> elements for the controls, which themselves
38951        have shadow trees)
38952
389532013-03-11  Abhishek Arya  <inferno@chromium.org>
38954
38955        Replace static_cast with to* helper functions.
38956        https://bugs.webkit.org/show_bug.cgi?id=112045
38957
38958        Reviewed by Eric Seidel.
38959
38960        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
38961        (WebCore::V8HTMLOptionsCollection::removeMethodCustom):
38962        (WebCore::V8HTMLOptionsCollection::indexedPropertySetter):
38963        * bindings/v8/custom/V8NamedNodesCollection.cpp:
38964        (WebCore::V8NamedNodesCollection::namedItem):
38965        * bindings/v8/custom/V8NodeCustom.cpp:
38966        (WebCore::wrap):
38967        * editing/BreakBlockquoteCommand.cpp:
38968        (WebCore::BreakBlockquoteCommand::doApply):
38969        * editing/CompositeEditCommand.cpp:
38970        (WebCore::CompositeEditCommand::insertNodeAt):
38971        (WebCore::CompositeEditCommand::pushAnchorElementDown):
38972        (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
38973        (WebCore::CompositeEditCommand::splitTreeToNode):
38974        * editing/InsertParagraphSeparatorCommand.cpp:
38975        (WebCore::InsertParagraphSeparatorCommand::doApply):
38976        * loader/archive/cf/LegacyWebArchive.cpp:
38977        (WebCore::LegacyWebArchive::create):
38978        * platform/chromium/PasteboardChromium.cpp:
38979        (WebCore::Pasteboard::writeImage):
38980        * platform/mac/HTMLConverter.mm:
38981        (+[WebHTMLConverter editingAttributedStringFromRange:]):
38982        * rendering/RenderLayerBacking.cpp:
38983        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
38984        * rendering/RenderLayerCompositor.cpp:
38985        (WebCore::RenderLayerCompositor::frameContentsCompositor):
38986        (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
38987        * rendering/RenderSnapshottedPlugIn.cpp:
38988        (WebCore::RenderSnapshottedPlugIn::plugInImageElement):
38989        * rendering/mathml/RenderMathMLOperator.cpp:
38990        (WebCore::RenderMathMLOperator::updateFromElement):
38991        * rendering/svg/RenderSVGResourceContainer.cpp:
38992        (WebCore::RenderSVGResourceContainer::idChanged):
38993
389942013-03-11  James Robinson  <jamesr@chromium.org>
38995
38996        [chromium] Use SkMatrix44 instead of WebTransformationMatrix in animation APIs
38997        https://bugs.webkit.org/show_bug.cgi?id=111791
38998
38999        Reviewed by Adrienne Walker.
39000
39001        Adds a new utility function to convert a TransformationMatrix to an SkMatrix44 and
39002        uses it in AnimationTranslationUtil and GraphicsLayerChromium.
39003
39004        * WebCore.gypi:
39005        * platform/chromium/support/WebTransformationMatrix.cpp:
39006        (WebKit::WebTransformationMatrix::WebTransformationMatrix):
39007        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
39008        (WebCore::toWebTransformOperations):
39009        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
39010        (WebCore::GraphicsLayerChromium::updateTransform):
39011        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
39012        * platform/graphics/chromium/TransformSkMatrix44Conversions.cpp:
39013        (WebCore::TransformSkMatrix44Conversions::convert):
39014        * platform/graphics/chromium/TransformSkMatrix44Conversions.h:
39015        (TransformSkMatrix44Conversions):
39016
390172013-03-11  Sheriff Bot  <webkit.review.bot@gmail.com>
39018
39019        Unreviewed, rolling out r145435.
39020        http://trac.webkit.org/changeset/145435
39021        https://bugs.webkit.org/show_bug.cgi?id=112082
39022
39023        Still does not compile (Requested by jamesr on #webkit).
39024
39025        * Modules/indexeddb/IDBBackingStore.cpp:
39026        (WebCore::IDBBackingStore::getObjectStores):
39027        (WebCore::IDBBackingStore::createObjectStore):
39028        (WebCore::IDBBackingStore::deleteObjectStore):
39029        (WebCore::IDBBackingStore::getRecord):
39030        (WebCore::IDBBackingStore::putRecord):
39031        (WebCore::IDBBackingStore::clearObjectStore):
39032        (WebCore::IDBBackingStore::deleteRecord):
39033        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
39034        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
39035        (WebCore::IDBBackingStore::keyExistsInObjectStore):
39036        (WebCore::IDBBackingStore::getIndexes):
39037        (WebCore::IDBBackingStore::createIndex):
39038        (WebCore::IDBBackingStore::deleteIndex):
39039        (WebCore::IDBBackingStore::putIndexDataForRecord):
39040        (WebCore::IDBBackingStore::findKeyInIndex):
39041        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
39042        (WebCore::IDBBackingStore::keyExistsInIndex):
39043        (WebCore::indexCursorOptions):
39044        * Modules/indexeddb/IDBBackingStore.h:
39045        (IDBBackingStore):
39046        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
39047        (WebCore::DeleteIndexOperation::create):
39048        (WebCore::DeleteIndexOperation::DeleteIndexOperation):
39049        (DeleteIndexOperation):
39050        (WebCore::IDBDatabaseBackendImpl::openInternal):
39051        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
39052        (WebCore::DeleteIndexOperation::perform):
39053        (WebCore::DeleteRangeOperation::perform):
39054        (WebCore::ClearOperation::perform):
39055        * Modules/indexeddb/IDBLevelDBCoding.cpp:
39056        (WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
39057        (WebCore::IDBLevelDBCoding::KeyPrefix::encode):
39058        (WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
39059        (WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
39060        (WebCore::IDBLevelDBCoding::DataVersionKey::encode):
39061        (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
39062        (WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
39063        (WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode):
39064        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
39065        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
39066        (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
39067        (WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
39068        (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
39069        (WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
39070        (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
39071        (WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
39072        * Modules/indexeddb/IDBLevelDBCoding.h:
39073        (IDBLevelDBCoding):
39074        (KeyPrefix):
39075        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
39076        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
39077
390782013-03-11  Alec Flett  <alecflett@chromium.org>
39079
39080        IndexedDB: Protect against key prefix overflows
39081        https://bugs.webkit.org/show_bug.cgi?id=111138
39082
39083        Reviewed by Tony Chang.
39084
39085        This reworks the boundary checking for all databaseId,
39086        objectStoreId, and indexId, including negative and
39087        zero-based ids. All entrypoints into IDBLevelDBCoding
39088        are protected with explicit checks and all internal
39089        uses of KeyPrefix are protected with ASSERTs in the
39090        various constructors.
39091
39092        Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
39093
39094        * Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
39095        * Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
39096
390972013-03-11  Philip Rogers  <pdr@google.com>
39098
39099        Replace static_cast<SVGStyledElement> with toSVGStyledElement()
39100        https://bugs.webkit.org/show_bug.cgi?id=111651
39101
39102        Reviewed by Abhishek Arya.
39103
39104        toSVGStyledElement is preferred over static_cast<SVGStyledElement*> because bad casts
39105        can be caught on our testing infrastructure. This patch replaces all
39106        static_cast<SVGStyledElement> instances with toSVGStyledElement.
39107
39108        Additionally, this patch renames SVGElement::isStyled to SVGElement::isSVGStyledElement to
39109        remove a confusing overlap with html styled elements. This name differs slighly from the
39110        other is*() functions in SVGElement but this will be resolved up with webkit.org/b/107386.
39111
39112        No new tests as this is covered with existing tests.
39113
39114        * rendering/svg/RenderSVGModelObject.cpp:
39115        (WebCore::getElementCTM):
39116        * rendering/svg/RenderSVGResourceClipper.cpp:
39117        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
39118        (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
39119        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
39120        * rendering/svg/RenderSVGResourceMasker.cpp:
39121        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
39122        (WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
39123        * rendering/svg/RenderSVGResourcePattern.cpp:
39124        (WebCore::RenderSVGResourcePattern::createTileImage):
39125        * rendering/svg/SVGRenderSupport.cpp:
39126        (WebCore::SVGRenderSupport::layoutChildren):
39127        * rendering/svg/SVGResources.cpp:
39128        (WebCore::registerPendingResource):
39129        * svg/SVGAnimationElement.cpp:
39130        (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
39131        (WebCore::SVGAnimationElement::computeCSSPropertyValue):
39132        (WebCore::SVGAnimationElement::adjustForInheritance):
39133        (WebCore::inheritsFromProperty):
39134        * svg/SVGElement.cpp:
39135        (WebCore::collectInstancesForSVGElement):
39136        (WebCore::SVGElement::isAnimatableAttribute):
39137        * svg/SVGElement.h:
39138        (WebCore::SVGElement::isSVGStyledElement):
39139        * svg/SVGElementInstance.cpp:
39140        (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
39141        (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
39142        * svg/SVGLocatable.cpp:
39143        (WebCore::SVGLocatable::computeCTM):
39144        * svg/SVGStyledElement.cpp:
39145        (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
39146        * svg/SVGStyledElement.h:
39147        (WebCore::SVGStyledElement::isSVGStyledElement):
39148        * svg/SVGUseElement.cpp:
39149        (WebCore::SVGUseElement::selfHasRelativeLengths):
39150        * svg/graphics/filters/SVGFEImage.cpp:
39151        (WebCore::FEImage::platformApplySoftware):
39152
391532013-03-11  Tim Horton  <timothy_horton@apple.com>
39154
39155        PDFPlugin: Make scrolling between pages in non-continuous modes work
39156        https://bugs.webkit.org/show_bug.cgi?id=111415
39157        <rdar://problem/12555320>
39158
39159        Reviewed by Alexey Proskuryakov.
39160
39161        * WebCore.exp.in: Export ScrollableArea::scrollToOffsetWithoutAnimation.
39162
391632013-03-11  Mark Lam  <mark.lam@apple.com>
39164
39165        Remove the use of the quotaMap cache in DatabaseTracker.
39166        https://bugs.webkit.org/show_bug.cgi?id=111805.
39167
39168        Reviewed by Geoffrey Garen.
39169
39170        This change is needed because using the quotaMap cache can result in
39171        an inaccurate read (in a multi-process system) on what database files
39172        are actually present on the filesystem. Instead of using the quotaMap
39173        cache, we rely on the tracker database and query it every time we need
39174        the origin/quota information.
39175
39176        No new tests.
39177
39178        * Modules/webdatabase/DatabaseTracker.cpp:
39179        (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
39180        (WebCore::DatabaseTracker::hasEntryForOriginNoLock):
39181        (WebCore::DatabaseTracker::origins):
39182        (WebCore::DatabaseTracker::quotaForOriginNoLock):
39183        (WebCore::DatabaseTracker::setQuota):
39184        (WebCore::DatabaseTracker::addDatabase):
39185        (WebCore::DatabaseTracker::deleteOrigin):
39186        * Modules/webdatabase/DatabaseTracker.h:
39187
391882013-03-11  Morten Stenshorne  <mstensho@opera.com>
39189
39190        Don't rely on the fact that StaticPosition happens to be defined as 0
39191        https://bugs.webkit.org/show_bug.cgi?id=110123
39192
39193        Also made the expression slightly less convoluted.
39194
39195        Reviewed by Alexey Proskuryakov.
39196
39197        No new tests. This is just code cleanup.
39198
39199        * rendering/RenderObject.cpp:
39200        (WebCore::RenderObject::containingBlock):
39201
392022013-03-11  Adam Barth  <abarth@webkit.org>
39203
39204        Unreviewed attempt to fix build after http://trac.webkit.org/changeset/145421.
39205
39206        * html/HTMLPlugInImageElement.cpp:
39207
392082013-03-05  Ojan Vafai  <ojan@chromium.org>
39209
39210        Intrinsic width keyword values don't work for tables
39211        https://bugs.webkit.org/show_bug.cgi?id=111515
39212
39213        Reviewed by Julien Chaffraix.
39214
39215        Tests: fast/css-intrinsic-dimensions/css-tables.html
39216               fast/css-intrinsic-dimensions/tables.html
39217
39218        * rendering/RenderBox.cpp:
39219        (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
39220        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
39221        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
39222        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
39223        * rendering/RenderBox.h:
39224        Pass in the border and padding as an argument since RenderTable needs
39225        to pass in a different value. Unfortunately, the math doesn't work out right
39226        in the positioned/replaced cases if we just pass 0. We need to pass in the correct
39227        border and padding and then subtract it from the result.
39228
39229        * rendering/RenderTable.cpp:
39230        (WebCore::RenderTable::updateLogicalWidth):
39231        Compute intrinsic widths as well as specified ones. Down the road
39232        we may want to consider having intrinsic width values return true for
39233        isSpecified.
39234
39235        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
39236        Compute intrinsic widths as well.
39237
39238        (WebCore::RenderTable::computeIntrinsicLogicalWidths):
39239        Implement this method so that the RenderBox::computeIntrinsicLogicalWidthUsing
39240        gets the right intrinsic values instead of the preferred values.
39241
39242        (WebCore::RenderTable::computePreferredLogicalWidths):
39243        * rendering/RenderTable.h:
39244
392452013-03-11  Stephen Chenney  <schenney@chromium.org>
39246
39247        HTMLInputElement can delete an ImageLoader while it's still needed
39248        https://bugs.webkit.org/show_bug.cgi?id=110621
39249
39250        Reviewed by Darin Adler.
39251
39252        ImageLoader objects may fire events for HTMLInputElements that are of
39253        type ImageInputType that own the loader. These events may cause script
39254        to run that changes the type of the input element and hence causes the
39255        ImageLoader to be deleted, while the image loader is still processing
39256        the event dispatch. Bad things ensue.
39257
39258        This change moves ownership of the ImageLoader from the ImageInputType
39259        onto the HTMLImageElement which is already protected from deletion during
39260        event processing.
39261
39262        Test: fast/forms/image/image-error-event-modifies-type-crash.html
39263
39264        * html/HTMLInputElement.cpp:
39265        (WebCore::HTMLInputElement::imageLoader): Method to return the
39266          ImageLoader, creating it if not already created.
39267        * html/HTMLInputElement.h:
39268        (WebCore::HTMLInputElement::hasImageLoader): Return true if the
39269          ImageLoader has been created.
39270        (HTMLInputElement): Define ImageLoader access methods and the OwnPtr
39271          for the HTMLImageLoader.
39272        * html/ImageInputType.cpp:
39273        (WebCore::ImageInputType::srcAttributeChanged): Use the element's ImageLoader.
39274        (WebCore::ImageInputType::attach): Use the element's ImageLoader.
39275        (WebCore::ImageInputType::willMoveToNewOwnerDocument): Use the element's ImageLoader.
39276        (WebCore::ImageInputType::height): Use the element's ImageLoader.
39277        (WebCore::ImageInputType::width): Use the element's ImageLoader.
39278        * html/ImageInputType.h:
39279        (ImageInputType): Remove the declaration of the ImageLoader.
39280
392812013-03-11  Alok Priyadarshi  <alokp@chromium.org>
39282
39283        Revert "Mark GraphicsLayers as opaque when possible"
39284
39285        This reverts commit 0a4d3c2d8a0373aa9e5bd9209885137a13a7f0e0.
39286
39287        REGRESSION (r143626): http://chainlove.com shows garbage tiles on Mac
39288        https://bugs.webkit.org/show_bug.cgi?id=112043
39289
39290        Unreviewed, rolling out r143626.
39291
39292        * rendering/RenderBox.cpp:
39293        * rendering/RenderBox.h:
39294        (RenderBox):
39295        * rendering/RenderBoxModelObject.h:
39296        (RenderBoxModelObject):
39297        * rendering/RenderLayer.cpp:
39298        * rendering/RenderLayer.h:
39299        (RenderLayer):
39300        * rendering/RenderLayerBacking.cpp:
39301        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
39302        * rendering/RenderLayerModelObject.h:
39303        (RenderLayerModelObject):
39304
393052013-03-11  Dean Jackson  <dino@apple.com>
39306
39307        Plugins created during user gestures (or soon after) should not be snapshotted
39308        https://bugs.webkit.org/show_bug.cgi?id=111975
39309
39310        Reviewed by Tim Horton.
39311
39312        There are sites which create plugins in response to user actions, such as clicking
39313        on an image that is acting like a poster frame. In those cases we should never snapshot.
39314
39315        There are some other sites which also create plugins in response to user actions,
39316        but don't necessarily create the content themselves. Instead they run some script
39317        that injects an iframe, and the frame loads a plugin. In order to make sure we don't
39318        snapshot in those cases, we're adding the concept of a blessed plugin. Anything that
39319        is created soon after a *handled* user gesture is not snapshotted. To do this we
39320        mark a timestamp in the document when we've called an event listener for a user
39321        gesture. The plugin element then compares its creation time with the most recent
39322        user action time.
39323
39324        * dom/Document.cpp:
39325        (WebCore::Document::Document): Initialise new timestamp.
39326        (WebCore::Document::resetLastHandledUserGestureTimestamp): Sets the member variable
39327            to the current time.
39328        * dom/Document.h:
39329        (WebCore::Document::lastHandledUserGestureTimestamp): Getter.
39330
39331        * dom/EventTarget.cpp:
39332        (WebCore::EventTarget::fireEventListeners): If there were some event listeners and
39333            we were processing a user gesture, then reset the timestamp in the document.
39334
39335        * html/HTMLPlugInImageElement.cpp:
39336        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Remember if we were created
39337            during a user gesture.
39338        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Start the plugin
39339            if we were created during a user gesture, or if we are close enough in time
39340            to a listener that fired in relation to a user gesture.
39341        * html/HTMLPlugInImageElement.h: New private member flag indicating if we were
39342            in a user gesture when constructed.
39343
393442013-03-11  Jeffrey Pfau  <jpfau@apple.com>
39345
39346        List cache partitions as units instead of as their contents
39347        https://bugs.webkit.org/show_bug.cgi?id=111909
39348
39349        Reviewed by Maciej Stachowiak.
39350
39351        Not possible to test with current automated test tools, must be tested manually.
39352
39353        * loader/cache/MemoryCache.cpp:
39354        (WebCore::MemoryCache::getOriginsWithCache): List a cache item as a member of a partition, if possible
39355
393562013-03-11  Alexey Proskuryakov  <ap@apple.com>
39357
39358        Chromium build fix. Forked files strike again.
39359
39360        * platform/network/chromium/ResourceHandle.cpp:
39361        (WebCore::ResourceHandle::firstRequest):
39362
393632013-03-11  James Robinson  <jamesr@chromium.org>
39364
39365        Fix typo from r145399. Rubber stamped by Abhishek Arya.
39366
39367        * rendering/svg/RenderSVGViewportContainer.h:
39368        (WebCore::toRenderSVGViewportContainer):
39369
393702013-03-11  Hans Muller  <hmuller@adobe.com>
39371
39372        [CSS Exclusions] Refactor the ExclusionPolygon class to enable storing multiple boundaries
39373        https://bugs.webkit.org/show_bug.cgi?id=111766
39374
39375        Reviewed by Dirk Schulze.
39376
39377        Refactored the ExclusionPolygon class to enable adding support for shape-margin and shape-padding.
39378        Extracted a new FloatPolygon class which is now used by ExclusionPolygon to represent the shape's
39379        boundary. It will be used to add m_paddedPolygon and m_marginPolygon members to ExclusionPolygon
39380        in a subsequent patch.
39381
39382        No new tests. This is strictly a refactoring of the existing code.
39383
39384        * CMakeLists.txt:
39385        * GNUmakefile.list.am:
39386        * WebCore.gypi:
39387        * WebCore.vcproj/WebCore.vcproj:
39388        * WebCore.xcodeproj/project.pbxproj:
39389        * platform/graphics/FloatPolygon.cpp: Factored out of Source/WebCore/rendering/ExclusionPolygon.cpp.
39390        (WebCore::determinant):
39391        (WebCore::areCollinearPoints):
39392        (WebCore::areCoincidentPoints):
39393        (WebCore::isPointOnLineSegment):
39394        (WebCore::nextVertexIndex):
39395        (WebCore::FloatPolygon::FloatPolygon):
39396        (WebCore::FloatPolygon::findNextEdgeVertexIndex):
39397        (WebCore::FloatPolygon::overlappingEdges):
39398        (WebCore::leftSide):
39399        (WebCore::FloatPolygon::contains):
39400        (WebCore::VertexPair::overlapsRect):
39401        (WebCore::VertexPair::intersection):
39402        * platform/graphics/FloatPolygon.h: Factored out of Source/WebCore/rendering/ExclusionPolygon.h.
39403        (FloatPolygon):
39404        (WebCore::FloatPolygon::vertexAt):
39405        (WebCore::FloatPolygon::numberOfVertices):
39406        (WebCore::FloatPolygon::fillRule):
39407        (WebCore::FloatPolygon::edgeAt):
39408        (WebCore::FloatPolygon::numberOfEdges):
39409        (WebCore::FloatPolygon::boundingBox):
39410        (WebCore::FloatPolygon::isEmpty):
39411        (VertexPair):
39412        (WebCore::VertexPair::~VertexPair):
39413        (WebCore::VertexPair::minX):
39414        (WebCore::VertexPair::minY):
39415        (WebCore::VertexPair::maxX):
39416        (WebCore::VertexPair::maxY):
39417        (FloatPolygonEdge):
39418        (WebCore::FloatPolygonEdge::previousEdge):
39419        (WebCore::FloatPolygonEdge::nextEdge):
39420        (WebCore::FloatPolygonEdge::polygon):
39421        (WebCore::FloatPolygonEdge::vertexIndex1):
39422        (WebCore::FloatPolygonEdge::vertexIndex2):
39423        (WebCore::FloatPolygonEdge::edgeIndex):
39424        * rendering/ExclusionPolygon.cpp: Now depends on FloatPolygon.
39425        (EdgeIntersection):
39426        (WebCore::leftSide):
39427        (WebCore::computeXIntersection):
39428        (WebCore::getVertexIntersectionVertices):
39429        (WebCore::computeXIntersections):
39430        (WebCore::computeOverlappingEdgeXProjections):
39431        (WebCore::ExclusionPolygon::getExcludedIntervals):
39432        (WebCore::ExclusionPolygon::getIncludedIntervals):
39433        (WebCore::firstFitRectInPolygon):
39434        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop):
39435        * rendering/ExclusionPolygon.h: Now depends on FloatPolygon.
39436        (WebCore::OffsetPolygonEdge::OffsetPolygonEdge):
39437        (ExclusionPolygon):
39438        (WebCore::ExclusionPolygon::ExclusionPolygon):
39439
394402013-03-11  Alexey Proskuryakov  <ap@apple.com>
39441
39442        Roll out part of r144671.
39443
39444        ResourceHandle::firstRequest() should not be const(), because it returns a
39445        non-const reference.        
39446
39447        * platform/network/ResourceHandle.cpp:
39448        (WebCore::ResourceHandle::firstRequest):
39449        * platform/network/ResourceHandle.h:
39450
394512013-01-30  Jer Noble  <jer.noble@apple.com>
39452
39453        Mac: Cmd-w should close full screen window.
39454        https://bugs.webkit.org/show_bug.cgi?id=108406
39455
39456        Reviewed by Darin Adler.
39457
39458        Pass performClose: requests on to the owning window controller.
39459
39460        * platform/mac/WebCoreFullScreenWindow.mm:
39461        (-[WebCoreFullScreenWindow performClose:]):
39462
394632013-03-11  Xiyuan Xia  <xiyuan@chromium.org>
39464
39465        [Chromium] chromium/linux breaks expectation of select popup background due to bad UA css rules
39466        https://bugs.webkit.org/show_bug.cgi?id=111873
39467
39468        Reviewed by Tony Chang.
39469
39470        On linux the default <select> background color is too dark to use as the
39471        popup background color.  Last fixes:
39472        https://bugs.webkit.org/show_bug.cgi?id=54115 and
39473        https://bugs.webkit.org/show_bug.cgi?id=56023
39474        attempt to fix the problem by applying a lighter background using
39475        special <option> selector. This breaks expectations of some websites.
39476
39477        This CL reverts the bad UA css rules above and provides the lighter
39478        background color if <select> and <option> elements are using the default
39479        background.
39480
39481        No new tests, this tests <select> popups and can be verified by ManualTests/select-scroll.html.
39482
39483        * css/themeChromiumLinux.css:
39484        (select):
39485        * platform/PopupMenuStyle.h:
39486        (WebCore::PopupMenuStyle::PopupMenuStyle):
39487        (WebCore::PopupMenuStyle::backgroundColorType):
39488        (PopupMenuStyle):
39489        * platform/chromium/PopupListBox.cpp:
39490        (WebCore::PopupListBox::paintRow):
39491        * rendering/RenderMenuList.cpp:
39492        (WebCore::RenderMenuList::itemStyle):
39493        (WebCore::RenderMenuList::getItemBackgroundColor):
39494        * rendering/RenderMenuList.h:
39495        (RenderMenuList):
39496        * rendering/RenderSearchField.cpp:
39497        (WebCore::RenderSearchField::menuStyle):
39498        * rendering/RenderThemeChromiumDefault.cpp:
39499        (WebCore::RenderThemeChromiumDefault::systemColor):
39500
395012013-03-11  James Robinson  <jamesr@chromium.org>
39502
39503        Compile fix. Rubber-stamp by Eric Seidel.
39504
39505        * html/shadow/MediaControlElements.cpp:
39506        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
39507
395082013-03-11  Dima Gorbik  <dgorbik@apple.com>
39509
39510        Fix build for r145397 (part 2)
39511
39512        Unreviewed.
39513
39514        * html/track/TextTrackCue.cpp:
39515        (WebCore::TextTrackCue::getDisplayTree):
39516
395172013-03-11  Dima Gorbik  <dgorbik@apple.com>
39518
39519        Fix build for r145397
39520
39521        Unreviewed.
39522
39523        * html/shadow/MediaControls.cpp:
39524        (WebCore::MediaControls::createTextTrackDisplay):
39525        * html/shadow/MediaControlsChromium.cpp:
39526        (WebCore::MediaControlsChromium::createTextTrackDisplay):
39527        * html/shadow/MediaControlsGtk.cpp:
39528        (WebCore::MediaControlsGtk::createTextTrackDisplay):
39529
395302013-03-11  Abhishek Arya  <inferno@chromium.org>
39531
39532        Add ASSERT_WITH_SECURITY_IMPLICATION to catch bad casts.
39533        https://bugs.webkit.org/show_bug.cgi?id=112060
39534
39535        Reviewed by Eric Seidel.
39536
39537        * Modules/geolocation/Geolocation.cpp:
39538        (WebCore::Geolocation::document):
39539        * accessibility/AccessibilityMenuList.h:
39540        (WebCore::toAccessibilityMenuList):
39541        * accessibility/AccessibilityNodeObject.h:
39542        (WebCore::toAccessibilityNodeObject):
39543        * accessibility/AccessibilityRenderObject.h:
39544        (WebCore::toAccessibilityRenderObject):
39545        * accessibility/AccessibilitySVGRoot.h:
39546        (WebCore::toAccessibilitySVGRoot):
39547        * accessibility/AccessibilitySpinButton.h:
39548        (WebCore::toAccessibilitySpinButton):
39549        (WebCore::toAccessibilitySpinButtonPart):
39550        * accessibility/AccessibilityTable.h:
39551        (WebCore::toAccessibilityTable):
39552        * css/StyleRule.h:
39553        (WebCore::toStyleRuleMedia):
39554        (WebCore::toStyleRuleSupports):
39555        (WebCore::toStyleRuleRegion):
39556        * dom/EventContext.h:
39557        (WebCore::toTouchEventContext):
39558        * fileapi/File.h:
39559        (WebCore::toFile):
39560        * html/HTMLElement.cpp:
39561        (WebCore::HTMLElement::insertAdjacentElement):
39562        (WebCore::contextElementForInsertion):
39563        * html/HTMLMediaElement.h:
39564        (WebCore::toMediaElement):
39565        * html/HTMLMeterElement.h:
39566        (WebCore::toHTMLMeterElement):
39567        * html/HTMLOptionElement.cpp:
39568        (WebCore::toHTMLOptionElement):
39569        * html/HTMLProgressElement.cpp:
39570        (WebCore::HTMLProgressElement::renderProgress):
39571        * html/HTMLProgressElement.h:
39572        (WebCore::toHTMLProgressElement):
39573        * html/HTMLSelectElement.h:
39574        (WebCore::toHTMLSelectElement):
39575        * html/HTMLTableCellElement.cpp:
39576        (WebCore::toHTMLTableCellElement):
39577        * html/HTMLTextFormControlElement.h:
39578        (WebCore::toHTMLTextFormControlElement):
39579        * html/PluginDocument.h:
39580        (WebCore::toPluginDocument):
39581        * html/shadow/DetailsMarkerControl.cpp:
39582        (WebCore::DetailsMarkerControl::summaryElement):
39583        * html/shadow/HTMLContentElement.h:
39584        (WebCore::toHTMLContentElement):
39585        * html/shadow/HTMLShadowElement.h:
39586        (WebCore::toHTMLShadowElement):
39587        * html/shadow/TextFieldDecorationElement.cpp:
39588        (WebCore::TextFieldDecorationElement::hostInput):
39589        * page/DOMWindow.cpp:
39590        (WebCore::DOMWindow::document):
39591        * rendering/InlineTextBox.h:
39592        (WebCore::toInlineTextBox):
39593        * rendering/RenderHTMLCanvas.h:
39594        (WebCore::toRenderHTMLCanvas):
39595        * rendering/RenderScrollbar.h:
39596        (WebCore::toRenderScrollbar):
39597        * rendering/RenderTextFragment.h:
39598        (WebCore::toRenderTextFragment):
39599        * rendering/mathml/RenderMathMLOperator.h:
39600        (WebCore::toRenderMathMLOperator):
39601        * rendering/svg/RenderSVGTextPath.h:
39602        (WebCore::toRenderSVGTextPath):
39603        * rendering/svg/RenderSVGViewportContainer.h:
39604        (WebCore::toRenderSVGViewportContainer):
39605        * svg/graphics/SVGImageChromeClient.h:
39606        (WebCore::toSVGImageChromeClient):
39607
396082013-03-11  Adam Barth  <abarth@webkit.org>
39609
39610        Factor HTMLTreeBuilderSimulator out of BackgroundHTMLParser
39611        https://bugs.webkit.org/show_bug.cgi?id=112057
39612
39613        Reviewed by Eric Seidel.
39614
39615        Simulating the HTML tree builder is a separate concern from parsing on
39616        the background thread. We plan to re-use the tree builder simulator for
39617        the view-source parser, for example. Also, having the simulator as a
39618        separate object will make it easier to fix
39619        https://bugs.webkit.org/show_bug.cgi?id=109764.
39620
39621        * CMakeLists.txt:
39622        * GNUmakefile.list.am:
39623        * Target.pri:
39624        * WebCore.gypi:
39625        * WebCore.vcproj/WebCore.vcproj:
39626        * html/parser/BackgroundHTMLParser.cpp:
39627        (WebCore):
39628        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
39629        (WebCore::BackgroundHTMLParser::pumpTokenizer):
39630        * html/parser/BackgroundHTMLParser.h:
39631        (BackgroundHTMLParser):
39632
396332013-02-26  Dima Gorbik  <dgorbik@apple.com>
39634
39635        Not all properties apply to the '::cue' pseudo-element
39636        https://bugs.webkit.org/show_bug.cgi?id=110705
39637
39638        Reviewed by Eric Carlson.
39639
39640        Background properties are not inherited and they were not applied to right elements.
39641        Now we apply all ::cue properties to WebVTT cue background box, which -webkit-media-text-track-all-nodes
39642        container was corresponding to. Now it has 'cue' pseudoId instead of '-webkit-media-text-track-all-nodes'.
39643        Property filtering is turned off for user agent rules so that we are still able to apply filtered rules
39644        to this container internally. m_cueContainer is removed because it is no longer needed.
39645        m_allDocumentNodes container was renamed to m_cueBackgroundBox.
39646
39647        Existing tests modified to cover this case.
39648
39649        * css/RuleSet.h:
39650        (WebCore::RuleData::propertyWhitelistType): disable filtering for UA rules.
39651        * css/StyleResolver.cpp:
39652        (WebCore::StyleResolver::sortAndTransferMatchedRules): pass the UA scope to propertyWhitelistType().
39653        * css/mediaControls.css: rename -webkit-media-text-track-all-nodes to 'cue'
39654        (video::cue): 
39655        * html/shadow/MediaControlElements.cpp:
39656        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
39657        * html/shadow/MediaControlElements.h:
39658        (MediaControlTextTrackContainerElement):
39659        * html/shadow/MediaControls.cpp:
39660        (WebCore::MediaControls::createTextTrackDisplay):
39661        * html/shadow/MediaControlsChromium.cpp:
39662        (WebCore::MediaControlsChromium::createTextTrackDisplay):
39663        * html/shadow/MediaControlsGtk.cpp:
39664        (WebCore::MediaControlsGtk::createTextTrackDisplay):
39665        * html/track/TextTrackCue.cpp:
39666        (WebCore::TextTrackCue::TextTrackCue):
39667        (WebCore::TextTrackCue::updateDisplayTree):
39668        (WebCore::TextTrackCue::getDisplayTree):
39669        * html/track/TextTrackCue.h:
39670        (WebCore::TextTrackCue::element):
39671        * page/CaptionUserPreferencesMac.mm:
39672        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride):
39673
396742013-03-11  Tim Horton  <timothy_horton@apple.com>
39675
39676        ChromeClient.h doesn’t need to include RenderSnapshottedPlugIn
39677        https://bugs.webkit.org/show_bug.cgi?id=111981
39678
39679        Reviewed by Kentaro Hara.
39680
39681        * page/ChromeClient.h: Remove the extraneous #include.
39682
396832013-03-11  David Hyatt  <hyatt@apple.com>
39684
39685        Vertical writing doesn't work with form controls.
39686        https://bugs.webkit.org/show_bug.cgi?id=70211
39687
39688        Reviewed by Simon Fraser.
39689
39690        This is just some basic plumbing work to make textfields and
39691        textareas work with vertical writing modes. This patch leaves the
39692        html.css override alone, so authors can't enable vertical
39693        writing yet.
39694        
39695        The changes consist of converting uses of x/y/width/height to
39696        logicalLeft/Top/Width/Height.
39697      
39698        * rendering/RenderBoxModelObject.h:
39699        (WebCore::RenderBoxModelObject::paddingLogicalLeft):
39700        (WebCore::RenderBoxModelObject::paddingLogicalRight):
39701        (RenderBoxModelObject):
39702        (WebCore::RenderBoxModelObject::marginLogicalHeight):
39703        (WebCore::RenderBoxModelObject::marginLogicalWidth):
39704        * rendering/RenderSearchField.cpp:
39705        (WebCore::RenderSearchField::computeControlLogicalHeight):
39706        (WebCore::RenderSearchField::computeLogicalHeightLimit):
39707        (WebCore::RenderSearchField::centerContainerIfNeeded):
39708        * rendering/RenderSearchField.h:
39709        (RenderSearchField):
39710        * rendering/RenderTextControl.cpp:
39711        (WebCore::RenderTextControl::textBlockLogicalHeight):
39712        (WebCore::RenderTextControl::textBlockLogicalWidth):
39713        (WebCore::RenderTextControl::computeLogicalHeight):
39714        (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
39715        (WebCore::RenderTextControl::computePreferredLogicalWidths):
39716        * rendering/RenderTextControl.h:
39717        (RenderTextControl):
39718        * rendering/RenderTextControlMultiLine.cpp:
39719        (WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
39720        (WebCore::RenderTextControlMultiLine::computeControlLogicalHeight):
39721        (WebCore::RenderTextControlMultiLine::layoutSpecialExcludedChild):
39722        * rendering/RenderTextControlMultiLine.h:
39723        (RenderTextControlMultiLine):
39724        * rendering/RenderTextControlSingleLine.cpp:
39725        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
39726        (WebCore::RenderTextControlSingleLine::paint):
39727        (WebCore::RenderTextControlSingleLine::computeLogicalHeightLimit):
39728        (WebCore::RenderTextControlSingleLine::layout):
39729        (WebCore::RenderTextControlSingleLine::styleDidChange):
39730        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
39731        (WebCore::RenderTextControlSingleLine::computeControlLogicalHeight):
39732        (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
39733        * rendering/RenderTextControlSingleLine.h:
39734        (RenderTextControlSingleLine):
39735        * rendering/style/RenderStyle.h:
39736
397372013-03-11  Tim Horton  <timothy_horton@apple.com>
39738
39739        TiledBacking scrolling coverage can be unfairly limited for clients who do scrolling outside the web view
39740        https://bugs.webkit.org/show_bug.cgi?id=111958
39741        <rdar://problem/13356896>
39742
39743        Reviewed by Darin Adler.
39744
39745        Don't limit TiledBacking coverage if the client has opted into using
39746        its exposed rect to allow scrolling above the web view.
39747
39748        * platform/graphics/TiledBacking.h:
39749        * platform/graphics/ca/mac/TileController.h:
39750        * rendering/RenderLayerBacking.cpp:
39751        (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
39752
397532013-03-11  Rajeev Sarvaria  <rsarvaria@blackberry.com>
39754
39755        GetnUniform*vEXT (Robustness extension) passed incorrect parameter in WebGLRenderingContext
39756        https://bugs.webkit.org/show_bug.cgi?id=111450
39757
39758        Reviewed by Rob Buis.
39759
39760        Bufsize argument corrected to size in bytes instead of number of integers or floats.
39761
39762        * html/canvas/WebGLRenderingContext.cpp:
39763        (WebCore):
39764        (WebCore::WebGLRenderingContext::getUniform):
39765
397662013-03-11  Sheriff Bot  <webkit.review.bot@gmail.com>
39767
39768        Unreviewed, rolling out r145375.
39769        http://trac.webkit.org/changeset/145375
39770        https://bugs.webkit.org/show_bug.cgi?id=112050
39771
39772        Does not compile (Requested by jamesr on #webkit).
39773
39774        * Modules/indexeddb/IDBBackingStore.cpp:
39775        (WebCore::IDBBackingStore::getObjectStores):
39776        (WebCore::IDBBackingStore::createObjectStore):
39777        (WebCore::IDBBackingStore::deleteObjectStore):
39778        (WebCore::IDBBackingStore::getRecord):
39779        (WebCore::IDBBackingStore::putRecord):
39780        (WebCore::IDBBackingStore::clearObjectStore):
39781        (WebCore::IDBBackingStore::deleteRecord):
39782        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
39783        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
39784        (WebCore::IDBBackingStore::keyExistsInObjectStore):
39785        (WebCore::IDBBackingStore::getIndexes):
39786        (WebCore::IDBBackingStore::createIndex):
39787        (WebCore::IDBBackingStore::deleteIndex):
39788        (WebCore::IDBBackingStore::putIndexDataForRecord):
39789        (WebCore::IDBBackingStore::findKeyInIndex):
39790        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
39791        (WebCore::IDBBackingStore::keyExistsInIndex):
39792        (WebCore::indexCursorOptions):
39793        * Modules/indexeddb/IDBBackingStore.h:
39794        (IDBBackingStore):
39795        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
39796        (WebCore::DeleteIndexOperation::create):
39797        (WebCore::DeleteIndexOperation::DeleteIndexOperation):
39798        (DeleteIndexOperation):
39799        (WebCore::IDBDatabaseBackendImpl::openInternal):
39800        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
39801        (WebCore::DeleteIndexOperation::perform):
39802        (WebCore::DeleteRangeOperation::perform):
39803        (WebCore::ClearOperation::perform):
39804        * Modules/indexeddb/IDBLevelDBCoding.cpp:
39805        (WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
39806        (WebCore::IDBLevelDBCoding::KeyPrefix::encode):
39807        (WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
39808        (WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
39809        (WebCore::IDBLevelDBCoding::DataVersionKey::encode):
39810        (WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
39811        (WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
39812        (WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode):
39813        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
39814        (WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
39815        (WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
39816        (WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
39817        (WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
39818        (WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
39819        (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
39820        (WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
39821        * Modules/indexeddb/IDBLevelDBCoding.h:
39822        (IDBLevelDBCoding):
39823        (KeyPrefix):
39824        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
39825        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
39826
398272013-03-11  Adam Klein  <adamk@chromium.org>
39828
39829        MutationCallback should be a WebIDL 'callback', not a [Callback] interface
39830        https://bugs.webkit.org/show_bug.cgi?id=91406
39831
39832        Reviewed by Adam Barth.
39833
39834        Spec: http://dom.spec.whatwg.org/#mutationcallback
39835
39836        Besides no longer calling handleEvent methods on passed-in objects,
39837        throw a TypeError if a non-function is passed to the MutationObserver constructor.
39838        This is per WebIDL: http://www.w3.org/TR/WebIDL/#es-callback-function
39839
39840        Updated MutationObserver constructor tests to exercise TypeError-throwing behavior.
39841
39842        * bindings/js/JSMutationCallback.cpp:
39843        (WebCore::JSMutationCallback::call): Call the callback directly instead of handing off to JSCallbackData; make return value void.
39844        Use jsArray() to convert from WTF::Vector -> JSArray.
39845        * bindings/js/JSMutationCallback.h:
39846        (JSMutationCallback): Rename handleEvent() to call(), make it void.
39847        * bindings/js/JSMutationObserverCustom.cpp:
39848        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver): Throw if passed a non-function.
39849        * bindings/v8/V8MutationCallback.cpp:
39850        (WebCore::V8MutationCallback::V8MutationCallback): Take a v8::Function instead of a v8::Object.
39851        (WebCore::V8MutationCallback::call): Call the callback directly instead of handing off to invokeCallback(); make return value void.
39852        Use v8Array() to convert form WTF::Vector -> JSArray.
39853        * bindings/v8/V8MutationCallback.h:
39854        (WebCore::V8MutationCallback::create): Take a v8::Function instead of a v8::Object.
39855        (V8MutationCallback): ditto
39856        * bindings/v8/custom/V8MutationObserverCustom.cpp:
39857        (WebCore::V8MutationObserver::constructorCustom): Throw if passed a non-function, cast to a v8::Function when constructing callback.
39858        * dom/MutationCallback.h:
39859        (WebCore): Remove unnecessary typedef.
39860        (MutationCallback): Rename handleEvent() to call(), make it void.
39861        * dom/MutationObserver.cpp:
39862        (WebCore::MutationObserver::deliver): Update MutationCallback method name.
39863
398642013-03-11  Julien Chaffraix  <jchaffraix@webkit.org>
39865
39866        [CSS Grid Layout] Handle spanning grid items over specified grid tracks
39867        https://bugs.webkit.org/show_bug.cgi?id=111918
39868
39869        Reviewed by Tony Chang.
39870
39871        This change updates the containing block override logic to handle multiple
39872        spanned tracks. This makes the multiple specified grid tracks case work and
39873        will enable us to handle the minmax case once the computation logic has been
39874        updated.
39875
39876        Test: fast/css-grid-layout/grid-item-spanning-resolution.html
39877
39878        * rendering/RenderGrid.cpp:
39879        (WebCore::RenderGrid::logicalContentHeightForChild):
39880        (WebCore::RenderGrid::layoutGridItems):
39881        Updated these functions to use gridAreaBreadthForChild.
39882
39883        (WebCore::RenderGrid::gridAreaBreadthForChild):
39884        Added this helper function to handle multiple spanned grid tracks.
39885
39886        * rendering/RenderGrid.h: Added the previous function.
39887
398882013-03-11  Philip Rogers  <pdr@google.com>
39889
39890        Replace SVG's static_cast<SVGElement> with toSVGElement()
39891        https://bugs.webkit.org/show_bug.cgi?id=111651
39892
39893        Reviewed by Abhishek Arya.
39894
39895        toSVGElement is preferred over static_cast because bad casts can be caught on
39896        our testing infrastructure. This patch replaces all static_cast<SVGElement>
39897        instances with toSVGElement.
39898
39899        No new tests as this is just a refactoring.
39900
39901        * css/CSSCursorImageValue.cpp:
39902        (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
39903        * css/StyleResolver.cpp:
39904        (WebCore::StyleResolver::matchAllRules):
39905        (WebCore::StyleResolver::locateCousinList):
39906        (WebCore::StyleResolver::canShareStyleWithElement):
39907        (WebCore::StyleResolver::locateSharedStyle):
39908        * dom/Element.cpp:
39909        (WebCore::Element::synchronizeAllAttributes):
39910        (WebCore::Element::synchronizeAttribute):
39911        * rendering/svg/RenderSVGModelObject.cpp:
39912        (WebCore::getElementCTM):
39913        (WebCore::RenderSVGModelObject::checkIntersection):
39914        (WebCore::RenderSVGModelObject::checkEnclosure):
39915        * rendering/svg/RenderSVGResource.cpp:
39916        (WebCore::removeFromCacheAndInvalidateDependencies):
39917        * rendering/svg/RenderSVGResourceClipper.cpp:
39918        (WebCore::RenderSVGResourceClipper::pathOnlyClipping):
39919        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
39920        (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
39921        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
39922        * rendering/svg/RenderSVGResourceFilter.cpp:
39923        (WebCore::RenderSVGResourceFilter::buildPrimitives):
39924        * rendering/svg/RenderSVGResourceMasker.cpp:
39925        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
39926        (WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
39927        * rendering/svg/RenderSVGResourcePattern.cpp:
39928        (WebCore::RenderSVGResourcePattern::createTileImage):
39929        * rendering/svg/RenderSVGShape.cpp:
39930        (WebCore::RenderSVGShape::strokeWidth):
39931        * rendering/svg/RenderSVGText.cpp:
39932        (WebCore::RenderSVGText::strokeBoundingBox):
39933        * rendering/svg/SVGRenderSupport.cpp:
39934        (WebCore::SVGRenderSupport::layoutChildren):
39935        (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
39936        * rendering/svg/SVGRenderTreeAsText.cpp:
39937        (WebCore::writeSVGPaintingResource):
39938        (WebCore::writeStyle):
39939        (WebCore::operator<<):
39940        * rendering/svg/SVGResources.cpp:
39941        (WebCore::SVGResources::buildCachedResources):
39942        * rendering/svg/SVGTextLayoutEngine.cpp:
39943        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
39944        * svg/SVGAElement.cpp:
39945        (WebCore::SVGAElement::createRenderer):
39946        * svg/SVGAnimationElement.cpp:
39947        (WebCore::SVGAnimationElement::adjustForInheritance):
39948        * svg/SVGElement.cpp:
39949        (WebCore::SVGElement::viewportElement):
39950        (WebCore::SVGElement::haveLoadedRequiredResources):
39951        (WebCore::SVGElement::sendSVGLoadEventIfPossible):
39952        (WebCore::SVGElement::childShouldCreateRenderer):
39953        * svg/SVGElement.h:
39954        (WebCore::toSVGElement):
39955        (WebCore):
39956        * svg/SVGFEImageElement.cpp:
39957        (WebCore::SVGFEImageElement::buildPendingResource):
39958        * svg/SVGFilterElement.cpp:
39959        (WebCore::SVGFilterElement::childShouldCreateRenderer):
39960        * svg/SVGGradientElement.cpp:
39961        (WebCore::SVGGradientElement::buildStops):
39962        * svg/SVGLocatable.cpp:
39963        (WebCore::SVGLocatable::nearestViewportElement):
39964        (WebCore::SVGLocatable::farthestViewportElement):
39965        (WebCore::SVGLocatable::computeCTM):
39966        * svg/SVGMPathElement.cpp:
39967        (WebCore::SVGMPathElement::buildPendingResource):
39968        * svg/SVGSVGElement.cpp:
39969        (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
39970        * svg/SVGStyledElement.cpp:
39971        (WebCore::SVGStyledElement::updateRelativeLengthsInformation):
39972        * svg/SVGSwitchElement.cpp:
39973        (WebCore::SVGSwitchElement::childShouldCreateRenderer):
39974        * svg/SVGTextPathElement.cpp:
39975        (WebCore::SVGTextPathElement::buildPendingResource):
39976        * svg/SVGUseElement.cpp:
39977        (WebCore::SVGUseElement::buildPendingResource):
39978        (WebCore::SVGUseElement::toClipPath):
39979        (WebCore::SVGUseElement::rendererClipChild):
39980        (WebCore::SVGUseElement::buildInstanceTree):
39981        (WebCore::SVGUseElement::hasCycleUseReferencing):
39982        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
39983        (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
39984        * svg/SVGViewSpec.cpp:
39985        (WebCore::SVGViewSpec::viewTarget):
39986        * svg/animation/SVGSMILElement.cpp:
39987        (WebCore::SVGSMILElement::buildPendingResource):
39988        * svg/graphics/filters/SVGFEImage.cpp:
39989        (WebCore::FEImage::platformApplySoftware):
39990
399912013-03-11  Carlos Garcia Campos  <cgarcia@igalia.com>
39992
39993        [SOUP] ResourceRequest::updateSoupMessage doesn't update the URI of the soup message
39994        https://bugs.webkit.org/show_bug.cgi?id=112040
39995
39996        Reviewed by Gustavo Noronha Silva.
39997
39998        * platform/network/soup/ResourceRequestSoup.cpp:
39999        (WebCore::ResourceRequest::updateSoupMessage): Update the soup
40000        message URI with the ResourceRequest URL.
40001
400022013-03-11  Alec Flett  <alecflett@chromium.org>
40003
40004        IndexedDB: Protect against key prefix overflows
40005        https://bugs.webkit.org/show_bug.cgi?id=111138
40006
40007        Reviewed by Tony Chang.
40008
40009        This reworks the boundary checking for all databaseId,
40010        objectStoreId, and indexId, including negative and
40011        zero-based ids. All entrypoints into IDBLevelDBCoding
40012        are protected with explicit checks and all internal
40013        uses of KeyPrefix are protected with ASSERTs in the
40014        various constructors.
40015
40016        Tests: WebKit unit tests IDBBackingStoreTest.cpp in WebKit/chromium
40017
40018        * Modules/indexeddb/IDBBackingStore.h: Make all public methods boolean-based for errors.
40019        * Modules/indexeddb/IDBLevelDBCoding.h: Add methods for checking databaseId, objectStoreId, and indexId.
40020
400212013-03-11  Xan Lopez  <xlopez@igalia.com>
40022
40023        [BlackBerry] PlatformBlackBerry.cmake: create thin AR archives
40024        https://bugs.webkit.org/show_bug.cgi?id=110580
40025
40026        Reviewed by Rob Buis.
40027
40028        Otherwise libwebcore.a goes beyond the 4Gb file size limit and the
40029        link phase fails.
40030
40031        * PlatformBlackBerry.cmake:
40032
400332013-03-11  Pavel Feldman  <pfeldman@chromium.org>
40034
40035        Web Inspector: fix styles toolbar in the vertical mode.
40036        Not reviewed: swapped two lines.
40037
40038        * inspector/front-end/ElementsPanel.js:
40039        (WebInspector.ElementsPanel.prototype._splitVertically):
40040
400412013-03-11  Andrey Lushnikov  <lushnikov@chromium.org>
40042
40043        Web Inspector: [CodeMirror] add token highlight feature
40044        https://bugs.webkit.org/show_bug.cgi?id=112009
40045
40046        Reviewed by Pavel Feldman.
40047
40048        Handle CodeMirror's "cursorActivity" event, check selection for being
40049        a word and highlight all its occurrences via CodeMirror.addOverlay method.
40050
40051        No new tests.
40052
40053        * inspector/front-end/CodeMirrorTextEditor.js:
40054        (WebInspector.CodeMirrorTextEditor):
40055        (WebInspector.CodeMirrorTextEditor.TokenHighlighter):
40056        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._cursorChange):
40057        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._isWord):
40058        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._removeHighlight):
40059        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._addHighlight.nextToken):
40060        (WebInspector.CodeMirrorTextEditor.TokenHighlighter.prototype._addHighlight):
40061        * inspector/front-end/cm/cmdevtools.css:
40062        (.cm-token-highlight):
40063
400642013-03-11  Andrey Lushnikov  <lushnikov@chromium.org>
40065
40066        Web Inspector: [CodeMirror] set indentation size according to devtools settings
40067        https://bugs.webkit.org/show_bug.cgi?id=111717
40068
40069        Reviewed by Pavel Feldman.
40070
40071        Set up codemirror indent size according to devtools settings.
40072
40073        No new tests.
40074
40075        * inspector/front-end/CodeMirrorTextEditor.js:
40076        (.get if):
40077        (WebInspector.CodeMirrorTextEditor):
40078
400792013-03-11  Yury Semikhatsky  <yurys@chromium.org>
40080
40081        Web Inspector: add per image statistics to the native memory snapshot
40082        https://bugs.webkit.org/show_bug.cgi?id=112011
40083
40084        Reviewed by Pavel Feldman.
40085
40086        Added per-image statistics to the native memory distribution table.
40087
40088        * inspector/front-end/HeapSnapshotProxy.js:
40089        (WebInspector.HeapSnapshotWorker):
40090        (WebInspector.HeapSnapshotWorker.prototype.createLoader):
40091        (WebInspector.HeapSnapshotWorker.prototype.wrapCallback):
40092        (WebInspector.HeapSnapshotWorker.prototype.callFactoryMethod):
40093        (WebInspector.HeapSnapshotProxyObject.prototype.callFactoryMethod): the method now accepts
40094        proxy constructor function instead of its name. This eliminates unnecessary function lookup.
40095        (WebInspector.HeapSnapshotLoaderProxy):
40096        (WebInspector.HeapSnapshotLoaderProxy.prototype.close):
40097        (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
40098        (WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):
40099        (WebInspector.HeapSnapshotProxy.prototype.createAddedNodesProvider):
40100        (WebInspector.HeapSnapshotProxy.prototype.createDeletedNodesProvider):
40101        (WebInspector.HeapSnapshotProxy.prototype.createNodesProvider):
40102        (WebInspector.HeapSnapshotProxy.prototype.createNodesProviderForClass):
40103        (WebInspector.HeapSnapshotProxy.prototype.createNodesProviderForDominator):
40104        (WebInspector.NativeHeapSnapshotProxy):
40105        (WebInspector.NativeHeapSnapshotProxy.prototype.images):
40106        * inspector/front-end/HeapSnapshotView.js:
40107        (WebInspector.HeapProfileHeader.prototype.snapshotProxyConstructor):
40108        (WebInspector.HeapProfileHeader.prototype._setupWorker):
40109        * inspector/front-end/NativeHeapSnapshot.js:
40110        (WebInspector.NativeHeapSnapshot.prototype.images):
40111        * inspector/front-end/NativeMemorySnapshotView.js:
40112        (WebInspector.NativeSnapshotNode):
40113        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
40114        (WebInspector.NativeSnapshotNode.prototype._populate):
40115        (WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph):
40116        (WebInspector.NativeSnapshotNode.prototype._addImageDetails.didLoad.didReceiveImages):
40117        (WebInspector.NativeSnapshotNode.prototype._addImageDetails):
40118        (WebInspector.NativeSnapshotProfileHeader.prototype.snapshotProxyConstructor):
40119
401202013-03-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
40121
40122        [Qt] Enable tiled shadow blur for inset box shadows
40123        https://bugs.webkit.org/show_bug.cgi?id=111736
40124
40125        Reviewed by Noam Rosenthal.
40126
40127        Paint inset box-shadows using the optimized tiled shadow blur, instead of
40128        applying shadow blur to the entire painted rect.
40129
40130        This optimizes the default CSS on common pastebin sites.
40131
40132        Tested by existing tests.
40133
40134        * platform/graphics/GraphicsContext.cpp:
40135        * platform/graphics/ShadowBlur.cpp:
40136        (WebCore::ShadowBlur::drawInsetShadowWithTiling):
40137            Must set fill color before calling clearShadow, as that might clear m_color.
40138        (WebCore::ShadowBlur::drawLayerPieces):
40139            Ditto.
40140        * platform/graphics/qt/GraphicsContextQt.cpp:
40141        (WebCore::GraphicsContext::fillPath):
40142        (WebCore::GraphicsContext::fillRectWithRoundedHole):
40143
401442013-03-11  Alberto Garcia  <agarcia@igalia.com>
40145
40146        [BlackBerry] GraphicsLayer: rename notifySyncRequired to notifyFlushRequired
40147        https://bugs.webkit.org/show_bug.cgi?id=111997
40148
40149        Reviewed by Rob Buis.
40150
40151        This changed in r130439 but the old name was introduced again by
40152        mistake in r144465.
40153
40154        * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
40155        (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
40156        * platform/graphics/blackberry/LayerWebKitThread.cpp:
40157        (WebCore::LayerWebKitThread::setNeedsCommit):
40158
401592013-03-11  Kent Tamura  <tkent@chromium.org>
40160
40161        Inappropriate validation message for required number/date input elements
40162        https://bugs.webkit.org/show_bug.cgi?id=111982
40163
40164        Reviewed by Kentaro Hara.
40165
40166        For validation message, badInput messages should take precedence
40167        over valueMissing messages because users already filled out the
40168        field with a bad value.
40169
40170        Tests: Update fast/forms/validationMessage.html
40171
40172        * html/InputType.cpp:
40173        (WebCore::InputType::validationMessage):
40174        Check badInput first.
40175
401762013-03-11  Yury Semikhatsky  <yurys@chromium.org>
40177
40178        Web Inspector: extract common parts of native profiles
40179        https://bugs.webkit.org/show_bug.cgi?id=111965
40180
40181        Reviewed by Alexander Pavlov.
40182
40183        Extracted common parts of native profiles into NativeProfileTypeBase. Memory
40184        domain dispatcher is now a separate class as it is shared by two native memory
40185        profile types.
40186
40187        Both native memory profile types now capture native heap graph.
40188
40189        * inspector/front-end/NativeMemorySnapshotView.js:
40190        (WebInspector.MemoryAgentDispatcher.instance):
40191        (WebInspector.NativeProfileTypeBase.prototype.buttonClicked.didReceiveMemorySnapshot):
40192        (WebInspector.NativeProfileTypeBase.prototype.buttonClicked):
40193        (WebInspector.NativeSnapshotProfileType):
40194        (WebInspector.NativeSnapshotProfileHeader.prototype._didReceiveMemorySnapshot):
40195        (WebInspector.NativeMemoryProfileType):
40196        (WebInspector.NativeMemoryProfileHeader.prototype._updateSnapshotStatus):
40197        (WebInspector.NativeMemoryProfileHeader.prototype._didReceiveMemorySnapshot):
40198
401992013-03-11  Sheriff Bot  <webkit.review.bot@gmail.com>
40200
40201        Unreviewed, rolling out r145349.
40202        http://trac.webkit.org/changeset/145349
40203        https://bugs.webkit.org/show_bug.cgi?id=111966
40204
40205        Missing code history of Element,PageRuleCollector. (Requested
40206        by tasak on #webkit).
40207
40208        * CMakeLists.txt:
40209        * GNUmakefile.list.am:
40210        * Target.pri:
40211        * WebCore.gypi:
40212        * WebCore.xcodeproj/project.pbxproj:
40213        * css/CSSAllInOne.cpp:
40214        * css/DocumentRuleSets.cpp:
40215        (WebCore::ShadowDistributedRules::collectMatchRequests):
40216        * css/DocumentRuleSets.h:
40217        * css/ElementRuleCollector.cpp: Removed.
40218        * css/ElementRuleCollector.h: Removed.
40219        * css/PageRuleCollector.cpp: Removed.
40220        * css/PageRuleCollector.h: Removed.
40221        * css/StyleResolver.cpp:
40222        (WebCore::leftToRightDeclaration):
40223        (WebCore):
40224        (WebCore::rightToLeftDeclaration):
40225        (WebCore::StyleResolver::State::ensureRuleList):
40226        (WebCore::StyleResolver::State::clear):
40227        (WebCore::StyleResolver::addMatchedProperties):
40228        (WebCore::StyleResolver::addElementStyleProperties):
40229        (MatchingUARulesScope):
40230        (WebCore::MatchingUARulesScope::MatchingUARulesScope):
40231        (WebCore::MatchingUARulesScope::~MatchingUARulesScope):
40232        (WebCore::MatchingUARulesScope::isMatchingUARules):
40233        (WebCore::StyleResolver::collectMatchingRules):
40234        (WebCore::StyleResolver::collectMatchingRulesForRegion):
40235        (WebCore::StyleResolver::sortAndTransferMatchedRules):
40236        (WebCore::StyleResolver::matchScopedAuthorRules):
40237        (WebCore::StyleResolver::matchHostRules):
40238        (WebCore::StyleResolver::matchAuthorRules):
40239        (WebCore::StyleResolver::matchUserRules):
40240        (WebCore::StyleResolver::matchUARules):
40241        (WebCore::StyleResolver::collectMatchingRulesForList):
40242        (WebCore::compareRules):
40243        (WebCore::StyleResolver::sortMatchedRules):
40244        (WebCore::StyleResolver::matchAllRules):
40245        (WebCore::StyleResolver::State::initForStyleResolve):
40246        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
40247        (WebCore::StyleResolver::styleForElement):
40248        (WebCore::StyleResolver::styleForKeyframe):
40249        (WebCore::StyleResolver::pseudoStyleForElement):
40250        (WebCore::StyleResolver::styleForPage):
40251        (WebCore::StyleResolver::pseudoStyleRulesForElement):
40252        (WebCore::StyleResolver::ruleMatches):
40253        (WebCore::StyleResolver::checkRegionSelector):
40254        (WebCore::comparePageRules):
40255        (WebCore::StyleResolver::matchPageRules):
40256        (WebCore::checkPageSelectorComponents):
40257        (WebCore::StyleResolver::matchPageRulesForList):
40258        (WebCore::StyleResolver::isLeftPage):
40259        (WebCore::StyleResolver::isFirstPage):
40260        (WebCore::StyleResolver::pageName):
40261        * css/StyleResolver.h:
40262        (WebCore::MatchRequest::MatchRequest):
40263        (MatchRequest):
40264        (StyleResolver):
40265        (MatchResult):
40266        (WebCore::StyleResolver::State::State):
40267        (State):
40268        (WebCore::StyleResolver::State::takeRuleList):
40269        (WebCore::StyleResolver::State::setSameOriginOnly):
40270        (WebCore::StyleResolver::State::isSameOriginOnly):
40271        (WebCore::StyleResolver::State::pseudoStyleRequest):
40272        (WebCore::StyleResolver::State::setMode):
40273        (WebCore::StyleResolver::State::mode):
40274        (WebCore::StyleResolver::State::matchedRules):
40275        (WebCore::StyleResolver::State::addMatchedRule):
40276        * inspector/InspectorCSSAgent.cpp:
40277        (WebCore::InspectorCSSAgent::willMatchRule):
40278        * inspector/InspectorCSSAgent.h:
40279        (WebCore):
40280        (InspectorCSSAgent):
40281        * inspector/InspectorInstrumentation.cpp:
40282        (WebCore):
40283        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
40284        * inspector/InspectorInstrumentation.h:
40285        (WebCore):
40286        (InspectorInstrumentation):
40287        (WebCore::InspectorInstrumentation::willMatchRule):
40288
402892013-03-11  Marja Hölttä  <marja@chromium.org>
40290
40291        [V8] Fix V8InjectedScriptManager
40292        https://bugs.webkit.org/show_bug.cgi?id=111968
40293
40294        Reviewed by Kentaro Hara.
40295
40296        This is needed to make the inspector work after templates for main world
40297        and non-main worlds are separated (bug 111724).
40298
40299        No new tests (no changes in functionality).
40300
40301        * bindings/v8/custom/V8InjectedScriptManager.cpp:
40302        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
40303
403042013-03-11  Hayato Ito  <hayato@chromium.org>
40305
40306        Make sure that CSSSelector::setValue() is never called after parsing its pseudoType.
40307        https://bugs.webkit.org/show_bug.cgi?id=111957
40308
40309        Reviewed by Hajime Morrita.
40310
40311        It'd be nice to have an assertion here since
40312        CSSSelector::pseudoType() will never parse a new value after it
40313        parses a value and m_pseudoType is set to non-PseudoNotParsed.
40314
40315        No new tests (no change in behaviour).
40316
40317        * css/CSSSelector.h:
40318        (WebCore::CSSSelector::setValue):
40319
403202013-03-11  Takashi Sakamoto  <tasak@google.com>
40321
40322        [Refactoring] Implement RuleCollector
40323        https://bugs.webkit.org/show_bug.cgi?id=109916
40324
40325        Reviewed by Antti Koivisto.
40326
40327        Implemented rule collector for an element and collector for a page.
40328        Not all members in class State are required entire while resolving
40329        a style.
40330
40331        No new tests, because just refactoring.
40332
40333        * CMakeLists.txt:
40334        * GNUmakefile.list.am:
40335        * Target.pri:
40336        * WebCore.gypi:
40337        * WebCore.xcodeproj/project.pbxproj:
40338        * css/CSSAllInOne.cpp:
40339        Added ElementRuleCollector and PageRuleCollector.
40340        * css/DocumentRuleSets.cpp:
40341        (WebCore::ShadowDistributedRules::collectMatchRequests):
40342        Since behaviorAtBoundary is a state owned by ElementRuleCollector,
40343        removed from here.
40344        * css/DocumentRuleSets.h:
40345        (WebCore::ShadowDistributedRules::isEmpty):
40346        Added to quickly check whether there exist any ShadowDistributedRules
40347        or not.
40348        * css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
40349        (WebCore):
40350        (WebCore::ElementRuleCollector::matchedResult):
40351        (WebCore::ElementRuleCollector::matchedRuleList):
40352        (WebCore::ElementRuleCollector::addMatchedRule):
40353        (WebCore::ElementRuleCollector::clearMatchedRules):
40354        (WebCore::ElementRuleCollector::ensureRuleList):
40355        (WebCore::ElementRuleCollector::addElementStyleProperties):
40356        (WebCore::ElementRuleCollector::collectMatchingRules):
40357        (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
40358        (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
40359        (WebCore::ElementRuleCollector::matchScopedAuthorRules):
40360        (WebCore::ElementRuleCollector::matchHostRules):
40361        (WebCore::ElementRuleCollector::matchShadowDistributedRules):
40362        (WebCore::ElementRuleCollector::matchAuthorRules):
40363        (WebCore::ElementRuleCollector::matchUserRules):
40364        (WebCore::ElementRuleCollector::matchUARules):
40365        (WebCore::ElementRuleCollector::ruleMatches):
40366        (WebCore::ElementRuleCollector::collectMatchingRulesForList):
40367        (WebCore::ElementRuleCollector::sortMatchedRules):
40368        (WebCore::ElementRuleCollector::matchAllRules):
40369        Moved these methods from StyleResolver to this class.
40370        (WebCore::ElementRuleCollector::hasAnyMatchingRules):
40371        This method is used for checking whether a given element can share
40372        a cache.
40373        * css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
40374        (WebCore):
40375        (WebCore::ElementRuleCollector::ElementRuleCollector):
40376        Use styleResolver instance to initialize its member variables, i.e.
40377        SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
40378        StyleScopedResolver.
40379        (ElementRuleCollector):
40380        (WebCore::ElementRuleCollector::setMode):
40381        (WebCore::ElementRuleCollector::setPseudoStyleRequest):
40382        (WebCore::ElementRuleCollector::setSameOriginOnly):
40383        (WebCore::ElementRuleCollector::setRegionForStyling):
40384        Mode, SameOriginOnly, RegionForStyling are only used while collecting
40385        matched rules.
40386        (WebCore::ElementRuleCollector::setMedium):
40387        Need to know which default stylesheet should be looked up.
40388        (WebCore::ElementRuleCollector::document):
40389        * css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
40390        (WebCore::comparePageRules):
40391        (WebCore::PageRuleCollector::isLeftPage):
40392        (WebCore::PageRuleCollector::isFirstPage):
40393        (WebCore::PageRuleCollector::pageName):
40394        (WebCore::PageRuleCollector::matchAllPageRules):
40395        (WebCore::PageRuleCollector::matchPageRules):
40396        (WebCore::checkPageSelectorComponents):
40397        (WebCore::PageRuleCollector::matchPageRulesForList):
40398        Moved from StyleResolver.
40399        * css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
40400        (WebCore):
40401        (WebCore::PageRuleCollector::PageRuleCollector):
40402        (PageRuleCollector):
40403        (WebCore::PageRuleCollector::matchedResult):
40404        * css/StyleResolver.cpp:
40405        (WebCore):
40406        (WebCore::StyleResolver::State::clear):
40407        (WebCore::StyleResolver::MatchResult::addMatchedProperties):
40408        (WebCore::StyleResolver::State::initForStyleResolve):
40409        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
40410        (WebCore::StyleResolver::styleForElement):
40411        (WebCore::StyleResolver::styleForKeyframe):
40412        (WebCore::StyleResolver::pseudoStyleForElement):
40413        (WebCore::StyleResolver::styleForPage):
40414        (WebCore::StyleResolver::pseudoStyleRulesForElement):
40415        (WebCore::StyleResolver::applyMatchedProperties):
40416        * css/StyleResolver.h:
40417        (WebCore::MatchRequest::MatchRequest):
40418        Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
40419        state.
40420        (MatchRequest):
40421        (WebCore::StyleResolver::selectorFilter):
40422        Added to obtain SelectorFilter in ElementRuleCollector's constructor.
40423        (StyleResolver):
40424        (MatchResult):
40425        (WebCore::StyleResolver::State::State):
40426        To pass ASSERT in StyleResolver::applyProperties, need to keep
40427        m_regionForStyling.
40428        (State):
40429        (WebCore::StyleResolver::State::regionForStyling):
40430        (WebCore::StyleResolver::State::useSVGZoomRules):
40431        (WebCore::StyleResolver::hasSelectorForId):
40432        (WebCore):
40433        (WebCore::checkRegionSelector):
40434        * inspector/InspectorCSSAgent.cpp:
40435        (WebCore::InspectorCSSAgent::willMatchRule):
40436        Removed StyleResolver from its parameter list. Instead, added
40437        InspectorCSSOMWrappers and DocumentStyleSheetCollection.
40438        * inspector/InspectorCSSAgent.h:
40439        (WebCore):
40440        (InspectorCSSAgent):
40441        * inspector/InspectorInstrumentation.cpp:
40442        (WebCore):
40443        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
40444        * inspector/InspectorInstrumentation.h:
40445        (WebCore):
40446        (InspectorInstrumentation):
40447        (WebCore::InspectorInstrumentation::willMatchRule):
40448
404492013-03-11  Mike West  <mkwst@chromium.org>
40450
40451        XSSAuditor doesn't need a copy of the original document's body.
40452        https://bugs.webkit.org/show_bug.cgi?id=111946
40453
40454        Reviewed by Darin Adler.
40455
40456        The XSSAuditor currently copies the original HTTP body of the document
40457        that's being audited in order to include it into a violation report if
40458        reflected XSS is detected. We don't actually need to do this, as we
40459        have access to the original request information from inside the
40460        XSSAuditorDelegate where the report is generated.
40461        XSSAuditorDelegate::didBlockScript ASSERTs that it's running on the
40462        main thread, so it should be safe to reach through the document's
40463        loader to get that information directly, rather than passing it from
40464        thread to thread via XSSInfo object properties.
40465
40466        * html/parser/XSSAuditor.h:
40467        * html/parser/XSSAuditor.cpp:
40468        (WebCore::XSSAuditor::init):
40469        (WebCore::XSSAuditor::filterToken):
40470        (WebCore::XSSAuditor::isSafeToSendToAnotherThread):
40471        * html/parser/XSSAuditorDelegate.h:
40472        (WebCore::XSSInfo::create):
40473        (WebCore::XSSInfo::XSSInfo):
40474        * html/parser/XSSAuditorDelegate.cpp:
40475        (WebCore::XSSInfo::isSafeToSendToAnotherThread):
40476            Drop the XSSInfo and XSSAuditor properties that held an
40477            isolatedCopy of the the original HTTP body. Depending on the
40478            document's size, this could be a significant savings.
40479        (WebCore::XSSAuditorDelegate::didBlockScript):
40480            Reach into the document's loader's original request in order to
40481            grab the body as a String, and feed that into the violation report
40482            object.
40483
40484            As a drive-by, this patch creates a FrameLoader* temporary
40485            variable to minimize repetition in this area of the code. We use
40486            the loader a few times, but should only have to grab it once.
40487
404882013-03-11  Silvia Pfeiffer  <silviapf@chromium.org>
40489
40490        [Chromium] REGRESSION: Closed Captions button not showing properly
40491        https://bugs.webkit.org/show_bug.cgi?id=109871
40492
40493        Reviewed by Jer Noble.
40494
40495        No new tests - covered by existing tests.
40496
40497        Most of the patch was in the meantime covered by a patch to
40498        https://bugs.webkit.org/show_bug.cgi?id=111109 .
40499        This changes a static Chromium-only function name to be consistent with
40500        parent class function names.
40501
40502        * rendering/RenderMediaControlsChromium.cpp:
40503        (WebCore::paintMediaToggleClosedCaptionsButton):
40504        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
40505        Rename paintMediaClosedCaptionsButton to paintMediaToggleClosedCaptionsButton.
40506
405072013-03-11  Tim Horton  <timothy_horton@apple.com>
40508
40509        RenderSnapshottedPlugIn paints in PaintPhaseBlockBackground instead of PaintPhaseForeground
40510        https://bugs.webkit.org/show_bug.cgi?id=111962
40511        <rdar://problem/13289335>
40512
40513        Reviewed by Dean Jackson.
40514
40515        RenderSnapshottedPlugIn should paint its snapshot during the foreground
40516        painting phase, instead of BlockBackground, to match normal plugin painting.
40517
40518        * rendering/RenderSnapshottedPlugIn.cpp:
40519        (WebCore::RenderSnapshottedPlugIn::paint):
40520
405212013-03-07  Alexander Pavlov  <apavlov@chromium.org>
40522
40523        Web Inspector: [Elements] XSLT transformation result from the xml-stylesheet PI not rendered
40524        https://bugs.webkit.org/show_bug.cgi?id=111313
40525
40526        Reviewed by Vsevolod Vlasov.
40527
40528        Frame document update upon XSL transformation was never instrumented.
40529        This change instruments the Document::applyXSLTransform() method to that end.
40530
40531        Test: http/tests/inspector/styles/xsl-transformed.xml
40532
40533        * dom/Document.cpp:
40534        (WebCore::Document::applyXSLTransform): Instrumented.
40535        * inspector/InspectorDOMAgent.cpp:
40536        (WebCore::InspectorDOMAgent::frameDocumentUpdated): Invoked upon applyXSLTransform().
40537        * inspector/InspectorDOMAgent.h:
40538        * inspector/InspectorInstrumentation.cpp:
40539        (WebCore::InspectorInstrumentation::frameDocumentUpdatedImpl): Added.
40540        * inspector/InspectorInstrumentation.h:
40541        (WebCore::InspectorInstrumentation::didCommitLoad): Drive-by: simplified.
40542        (WebCore::InspectorInstrumentation::frameDocumentUpdated): Added.
40543
405442013-03-10  Matt Falkenhagen  <falken@chromium.org>
40545
40546        Implement inert subtrees needed for modal <dialog>
40547        https://bugs.webkit.org/show_bug.cgi?id=110952
40548
40549        Reviewed by Hajime Morrita.
40550
40551        This changes Node::disabled() to return true when a modal dialog is
40552        open and the node is not in the dialog.
40553
40554        Reusing disabled for inertness is useful because then event
40555        targeting and focus control automatically have the desired behavior:
40556        inert nodes are skipped over.
40557
40558        Tests: fast/dom/HTMLDialogElement/closed-dialog-does-not-block-mouse-events.html
40559               fast/dom/HTMLDialogElement/modal-dialog-blocks-mouse-events.html
40560               fast/dom/HTMLDialogElement/non-modal-dialog-does-not-block-mouse-events.html
40561
40562        * dom/Document.h:
40563        (WebCore::Document::activeModalDialog): Returns the topmost element in the top layer.
40564        Since now the only elements in the top layer are modal dialogs, it is the active modal dialog.
40565        * dom/Node.cpp:
40566        (WebCore):
40567        (WebCore::Node::isInert): As per the spec, a node that is not an ancestor or descendant of the modal dialog is inert.
40568        (WebCore::Node::disabled): Return false when inert.
40569        * dom/Node.h:
40570        * html/HTMLFormControlElement.cpp:
40571        (WebCore::HTMLFormControlElement::disabled): Fall back to the superclass so inert is taken into account.
40572
405732013-03-10  Glenn Adams  <glenn@skynav.com>
40574
40575        Line breaking opportunities at the end of a text node are missed
40576        https://bugs.webkit.org/show_bug.cgi?id=17427
40577
40578        Reviewed by Darin Adler.
40579
40580        When initializing context for determining next break position,
40581        reuse last two characters from previous text node(s) within block.
40582        This additional state is stored in the current LazyLineBreakIterator
40583        as an optimization to prevent having to add two new parameters to
40584        isBreakable().
40585
40586        At present, this fixes only the ASCII shortcut code path, but
40587        does not yet handle the non-ASCII path. Since the ASCII path is
40588        the most performant critical, the handling of this latter path
40589        will be addressed by webkit.org/b/105692.
40590
40591        Additionally test for case where last two characters context
40592        is derived from distinct nodes, possibly with intervening empty
40593        inline node(s).
40594
40595        Test: fast/text/line-break-between-text-nodes.html
40596
40597        * platform/text/TextBreakIterator.h:
40598        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
40599        (WebCore::LazyLineBreakIterator::lastCharacter):
40600        (WebCore::LazyLineBreakIterator::secondToLastCharacter):
40601        (WebCore::LazyLineBreakIterator::setLastTwoCharacters):
40602        (WebCore::LazyLineBreakIterator::resetLastTwoCharacters):
40603        (WebCore::LazyLineBreakIterator::updateLastTwoCharacters):
40604        (LazyLineBreakIterator):
40605        Add state variables to retain last two characters of previous text node(s)
40606        for reuse when initializing nextBreakPosition<>() context.
40607        * rendering/RenderBlockLineLayout.cpp:
40608        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
40609        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
40610        Record and reset retained last two characters of previous text node(s) as
40611        appropriate.
40612        * rendering/break_lines.cpp:
40613        (WebCore::nextBreakablePosition):
40614        Use state variables holding retained last two characters of previous text node(s)
40615        for when initializing nextBreakPosition<>() context.
40616
406172013-03-10  Darin Adler  <darin@apple.com>
40618
40619        NetworkStorageSession leaks its CFURLStorageSessionRef
40620        https://bugs.webkit.org/show_bug.cgi?id=111950
40621        <rdar://problem/13384134>
40622
40623        Reviewed by Sam Weinig.
40624
40625        * platform/network/NetworkStorageSession.h:
40626        Change the argument type of the constructor to a RetainPtr.
40627        * platform/network/cf/NetworkStorageSessionCFNet.cpp:
40628        (WebCore::NetworkStorageSession::NetworkStorageSession): Changed
40629        the argument type to a RetainPtr.
40630        (WebCore::NetworkStorageSession::switchToNewTestingSession): Added
40631        calls to adoptCF to adopt the value returned by wkCreatePrivateStorageSession.
40632        (WebCore::NetworkStorageSession::createPrivateBrowsingSession): Ditto.
40633        (WebCore::NetworkStorageSession::cookieStorage): Changed to use adoptCF
40634        instead of the RetainPtr constructor with AdoptCF since the former is
40635        far easier to read.
40636
406372013-03-10  Jason Anderssen  <janderssen@gmail.com>
40638
40639        Conformance Test 1.0.3 (Beta) function: bufferData undefined value failed.
40640        https://bugs.webkit.org/show_bug.cgi?id=111641
40641
40642        Reviewed by Dean Jackson.
40643
40644        The WebGL specification requires that a size of 0 is not valid. In javascript, passing in undefined 
40645        as a parameter to a long long is the same as passing in 0, so we must check for this incorrect
40646        value and fail. 
40647        The test suite in Kronos 1.0.3 failed, test to verify conformance is as follows:
40648        https://www.khronos.org/registry/webgl/sdk/tests/conformance/more/functions/bufferDataBadArgs.html.
40649
40650        * html/canvas/WebGLRenderingContext.cpp:
40651        (WebCore::WebGLRenderingContext::bufferData):
40652        Synthesize error and returned if size is 0.
40653
406542013-03-10  Andreas Kling  <akling@apple.com>
40655
40656        SVGDocumentExtensions should use OwnPtr for pending resource maps.
40657        <http://webkit.org/b/111943>
40658
40659        Reviewed by Anders Carlsson.
40660
40661        * svg/SVGDocumentExtensions.cpp:
40662        (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
40663        (WebCore::SVGDocumentExtensions::addPendingResource):
40664        (WebCore::SVGDocumentExtensions::isElementPendingResources):
40665        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
40666        (WebCore::SVGDocumentExtensions::removePendingResource):
40667        (WebCore::SVGDocumentExtensions::removePendingResourceForRemoval):
40668        (WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval):
40669        * svg/SVGDocumentExtensions.h:
40670        (SVGDocumentExtensions):
40671
406722013-03-10  Tim Horton  <timothy_horton@apple.com>
40673
40674        Add a heuristic to determine the “primary” snapshotted plugin
40675        https://bugs.webkit.org/show_bug.cgi?id=111932
40676        <rdar://problem/13270208>
40677
40678        Reviewed by Dean Jackson.
40679
40680        * WebCore.exp.in: Export a few things.
40681        * html/HTMLPlugInImageElement.cpp:
40682        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
40683        (WebCore::classNameForShadowRoot): If we've been informed that we are the primary snapshotted plugin, add the 'primary' class.
40684        (WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Added
40685        (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Hand classNameForShadowRoot our primary-ness.
40686        * html/HTMLPlugInImageElement.h:
40687        (HTMLPlugInImageElement): Add storage for m_isPrimarySnapshottedPlugIn.
40688
406892013-03-10  Mike West  <mkwst@chromium.org>
40690
40691        XSSAuditor doesn't need a copy of the original document URL.
40692        https://bugs.webkit.org/show_bug.cgi?id=111944
40693
40694        Reviewed by Adam Barth.
40695
40696        When creating an XSSInfo object in response to detecting reflected XSS
40697        on a page, the Auditor was passing in a copy of the document's
40698        original URL for reporting. It doesn't look like we need this, as
40699        XSSInfo's only consumer, XSSAuditorDelegate, runs on the main thread
40700        with access to the document. We can obtain access to the same
40701        information by reading the URL directly from the delegate's Document
40702        object if and when we need it.
40703
40704        * html/parser/XSSAuditorDelegate.cpp:
40705        (WebCore::XSSAuditorDelegate::didBlockScript):
40706            Read the document's URL directly in order to create a violation
40707            report.
40708        (WebCore::XSSInfo::isSafeToSendToAnotherThread):
40709        * html/parser/XSSAuditorDelegate.h:
40710        (WebCore::XSSInfo::create):
40711        (WebCore::XSSInfo::XSSInfo):
40712        * html/parser/XSSAuditor.cpp:
40713        (WebCore::XSSAuditor::init):
40714        (WebCore::XSSAuditor::filterToken):
40715        (WebCore::XSSAuditor::isSafeToSendToAnotherThread):
40716        * html/parser/XSSAuditor.h:
40717            Remove the copied original URL from both XSSInfo objects and the
40718            XSSAuditor.
40719
407202013-03-10  Andreas Kling  <akling@apple.com>
40721
40722        GlyphMetricsMap should use OwnPtr.
40723        <http://webkit.org/b/111937>
40724
40725        Reviewed by Anders Carlsson.
40726
40727        Use OwnPtr instead of raw pointer + deleteAllValues().
40728
40729        * platform/graphics/GlyphMetricsMap.h:
40730        (GlyphMetricsMap):
40731        (WebCore::::locatePageSlowCase):
40732
407332013-03-10  Eric Carlson  <eric.carlson@apple.com>
40734
40735        Allow iOS port to use InbandTextTrackPrivateAVF
40736        https://bugs.webkit.org/show_bug.cgi?id=111933
40737
40738        Reviewed by Dean Jackson.
40739
40740        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
40741        (WebCore::InbandTextTrackPrivateAVF::processCue): Drive-by cleanup.
40742        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
40743
407442013-03-09  Eric Carlson  <eric.carlson@apple.com>
40745
40746        Enable platform code to implement text track menu
40747        https://bugs.webkit.org/show_bug.cgi?id=111924
40748
40749        Reviewed by Dean Jackson.
40750
40751        No new tests, the new code isn't enabled in any ports yet.
40752
40753        * WebCore.xcodeproj/project.pbxproj: Add PlatformTextTrack.h and PlatformTextTrackMenu.h.
40754
40755        * html/HTMLAudioElement.cpp:
40756        (WebCore::HTMLAudioElement::createForJSConstructor): scheduleLoad -> scheduleDelayedAction.
40757
40758        * html/HTMLMediaElement.cpp:
40759        (WebCore::HTMLMediaElement::HTMLMediaElement): Deal with scheduleLoad to scheduleDelayedAction rename.
40760        (WebCore::HTMLMediaElement::parseAttribute): Ditto.
40761        (WebCore::HTMLMediaElement::finishParsingChildren): Ditto.
40762        (WebCore::HTMLMediaElement::insertedInto): Ditto.
40763        (WebCore::HTMLMediaElement::scheduleDelayedAction): Ditto.
40764        (WebCore::HTMLMediaElement::scheduleNextSourceChild): Ditto.
40765        (WebCore::HTMLMediaElement::loadTimerFired): Ditto.
40766        (WebCore::HTMLMediaElement::textTrackModeChanged): Notify platform menu of track change.
40767        (WebCore::HTMLMediaElement::playInternal): Deal with scheduleLoad to scheduleDelayedAction rename.
40768        (WebCore::HTMLMediaElement::pauseInternal): Ditto.
40769        (WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): Ditto. Call addTrack() instead of appending 
40770            the track directly.
40771        (WebCore::HTMLMediaElement::setSelectedTextTrack): Deal with platform menu changing the
40772            selected track.
40773        (WebCore::HTMLMediaElement::platformTextTracks): Return an array of PlatformTracks representing
40774            the current text tracks.
40775        (WebCore::HTMLMediaElement::notifyMediaPlayerOfTextTrackChanges): Notify the platform menu
40776            that the list of text tracks has changed.
40777        (WebCore::HTMLMediaElement::platformTextTrackMenu): Return the platform track menu, if any.
40778        (WebCore::HTMLMediaElement::closeCaptionTracksChanged): 
40779        (WebCore::HTMLMediaElement::addTrack): Call addTrack() instead of appending the track directly.
40780        (WebCore::HTMLMediaElement::removeTrack): Call closeCaptionTracksChanged.
40781        (WebCore::HTMLMediaElement::addTextTrack): Call addTrack() instead of appending the track directly.
40782        (WebCore::HTMLMediaElement::didAddTrack): Ditto.
40783        (WebCore::HTMLMediaElement::didRemoveTrack): Deal with scheduleLoad to scheduleDelayedAction rename.
40784        (WebCore::HTMLMediaElement::sourceWasAdded): Ditto.
40785        (WebCore::HTMLMediaElement::clearMediaPlayer): Forget the platform track menu.
40786        (WebCore::HTMLMediaElement::resume): Deal with scheduleLoad to scheduleDelayedAction rename.
40787        * html/HTMLMediaElement.h:
40788
40789        * html/track/InbandTextTrack.h: scheduleLoad -> scheduleDelayedAction.
40790
40791        * html/track/TextTrack.cpp:
40792        (WebCore::TextTrack::platformTextTrack): Create a PlatformTextTrack.
40793        * html/track/TextTrack.h:
40794
40795        * platform/graphics/MediaPlayer.cpp:
40796        (WebCore::MediaPlayer::implementsTextTrackControls): New, player private passthrough.
40797        (WebCore::MediaPlayer::textTrackMenu): Ditto.
40798        * platform/graphics/MediaPlayer.h:
40799        * platform/graphics/MediaPlayerPrivate.h:
40800
40801        * platform/graphics/PlatformTextTrack.h: Added.
40802
40803        * platform/graphics/PlatformTextTrackMenu.h: Added.
40804
408052013-03-09  Eric Carlson  <eric.carlson@apple.com>
40806
40807        Video size calculated incorrectly when PLUGIN_PROXY_FOR_VIDEO
40808        https://bugs.webkit.org/show_bug.cgi?id=111912
40809
40810        Reviewed by Dean Jackson.
40811
40812        * html/shadow/MediaControlElements.cpp:
40813        (WebCore::MediaControlTextTrackContainerElement::updateSizes): We use RenderPart when
40814            PLUGIN_PROXY_FOR_VIDEO is defined, not RenderVideo.
40815
408162013-03-09  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
40817
40818        Fix offset handling in GStreamer WebKitWebSource.
40819        https://bugs.webkit.org/show_bug.cgi?id=111888
40820
40821        Reviewed by Philippe Normand.
40822
40823        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
40824        (webKitWebSrcSeekDataCb):
40825        (StreamingClient::didReceiveData):
40826        The offset handling in WebKitWebSource was completely wrong
40827        before and caused wrong offsets to be set on the GStreamer buffers
40828        after a seek.
40829
40830        Apart from that there was also a race condition that happens
40831        when a downstream element causes seeks in very short succession
40832        and is switching between two different parts of the stream.
40833
408342013-03-09  Keishi Hattori  <keishi@webkit.org>
40835
40836        Month transition animation is missing in some places
40837        https://bugs.webkit.org/show_bug.cgi?id=111908
40838
40839        Reviewed by Kent Tamura.
40840
40841        Month transition animation was missing when navigating using keyboard
40842        shortcuts and when navigation was trigger by selecting.
40843
40844        Added tests to calendar-picker/*-picker-key-operations.html.
40845
40846        * Resources/pagepopups/calendarPicker.js:
40847        (Animator): Added annotations.
40848        (Animator.prototype.isRunning): Returns true of the animation is running. Used by test.
40849        (ScrollView.prototype.scrollAnimator): Returns the scroll animator. Used by test.
40850        (CalendarPicker):
40851        (CalendarPicker.prototype.onYearListViewDidSelectMonth): Use CalendarPicker.NavigationBehavior enum instead of bool.
40852        (CalendarPicker.prototype.setSelection): Ditto.
40853        (CalendarPicker.prototype._moveHighlight): Ditto.
40854        (CalendarPicker.prototype.onCalendarTableKeyDown): Ditto.
40855        (CalendarPicker.prototype.onBodyKeyDown): Ditto.
40856
408572013-03-09  Dean Jackson  <dino@apple.com>
40858
40859        Can't build w/o accelerated compositing
40860        https://bugs.webkit.org/show_bug.cgi?id=111891
40861
40862        Patch originally came from Tobias Mueller <tobiasmue@gnome.org>
40863
40864        Unreviewed build fix for platforms without ACCELERATED_COMPOSITING enabled, due
40865        to r145057.
40866
40867        * dom/PseudoElement.cpp:
40868        (WebCore::PseudoElement::~PseudoElement): Wrap the call to pseudoElementDestroyed in
40869            USE(ACCELERATED_COMPOSITING)
40870
408712013-03-07  Robert Hogan  <robert@webkit.org>
40872
40873        REGRESSION(r140907): Incorrect baseline for cells with media content during load
40874        https://bugs.webkit.org/show_bug.cgi?id=108357
40875
40876        Reviewed by Julien Chaffraix.
40877
40878        If a cell has replaced content, the intrinsic height of its content can change between layouts. If that's the case then the intrinsic padding we used
40879        for layout (the padding required to push the contents of the cell down to the row's baseline) is included in the new height and baseline and makes both
40880        of them wrong. So if a cell's content's intrinsic height has changed push the new content up into the intrinsic padding and relayout so that the rest of
40881        table and row layout can use the correct baseline and height for this cell.
40882
40883        Tests: fast/css/vertical-align-baseline-rowspan-012.html
40884               http/tests/css/vertical-align-baseline-after-image-load-2.html
40885               http/tests/css/vertical-align-baseline-after-image-load-3.html
40886               http/tests/css/vertical-align-baseline-after-image-load.html
40887
40888        * rendering/RenderTableCell.cpp:
40889        (WebCore::RenderTableCell::layout):
40890        * rendering/RenderTableCell.h:
40891        (WebCore::RenderTableCell::isBaselineAligned):
40892        * rendering/RenderTableSection.cpp:
40893        (WebCore::RenderTableSection::calcRowLogicalHeight):
40894        (WebCore::RenderTableSection::layoutRows):
40895
408962013-03-08  Chris Fleizach  <cfleizach@apple.com>
40897
40898        REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
40899        https://bugs.webkit.org/show_bug.cgi?id=111613
40900
40901        Reviewed by Ryosuke Niwa.
40902
40903        This crash happens when the mock synthesizer utterance variable gets cleared
40904        before the speakingFinished timer happens. I don't see how that could happen
40905        but I was able to make a similar problem happen when cancel is called twice.
40906
40907        This adds in a few more asserts and common sense checks. I'm hoping it will
40908        illuminate the problem further.
40909
40910        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
40911        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
40912        (WebCore::PlatformSpeechSynthesizerMock::speak):
40913        (WebCore::PlatformSpeechSynthesizerMock::cancel):
40914
409152013-03-08  David Kilzer  <ddkilzer@apple.com>
40916
40917        BUILD FIX: Make WebCore link for iOS
40918
40919        * WebCore.exp.in:
40920        - Add ENABLE(RUBBER_BAND) for FrameView::setWantsLayerForTopOverHangArea(bool)
40921          and FrameView::setWantsLayerForBottomOverHangArea(bool).
40922        - Move FloatPoint::FloatPoint(_NSPoint const&) to !PLATFORM(IOS)
40923          section.
40924
409252013-03-08  Julien Chaffraix  <jchaffraix@webkit.org>
40926
40927        [CSS Grid Layout] Resolve grid-{end|after} integer against the end|after edge
40928        https://bugs.webkit.org/show_bug.cgi?id=111885
40929
40930        Reviewed by Tony Chang.
40931
40932        The current code resolves grid-end (resp. grid-after) <integer>'s format against the start
40933        (resp. before) axis. The specification changed so that they are resolved against their matching
40934        axis.
40935
40936        Test: fast/css-grid-layout/grid-auto-flow-resolution.html
40937
40938        * rendering/RenderGrid.cpp:
40939        (WebCore::RenderGrid::maximumIndexInDirection):
40940        Updated the code to do the grid sizing measurement without resolveGridPositionsFromStyle. That's required
40941        as resolveGridPositionsFromStyle requires the grid to be sized.
40942
40943        (WebCore::RenderGrid::placeItemsOnGrid):
40944        Added a comment about not recomputing after grid growth. This issue was raised to www-style
40945        (http://lists.w3.org/Archives/Public/www-style/2013Mar/0182.html).
40946
40947        (WebCore::RenderGrid::resolveGridPositionsFromStyle):
40948        Added an ASSERT now that we don't call it during grid construction. Also added some code to pass
40949        the side of the GridPosition we give to resolveGridPositionFromStyle.
40950
40951        (WebCore::RenderGrid::resolveGridPositionFromStyle):
40952        Updated the code to resolve the grid position against the right side.
40953
40954        * rendering/RenderGrid.h:
40955        Added GridPositionSide and updated resolveGridPositionFromStyle's signature.
40956
409572013-03-08  Sheriff Bot  <webkit.review.bot@gmail.com>
40958
40959        Unreviewed, rolling out r142015.
40960        http://trac.webkit.org/changeset/142015
40961        https://bugs.webkit.org/show_bug.cgi?id=111904
40962
40963        The change caused 2 major regressions (bug 111091 and bug
40964        111595) and Pravin doesn't have time to investigate them
40965        (Requested by jchaffraix on #webkit).
40966
40967        * dom/Node.cpp:
40968        (WebCore::Node::diff):
40969        * rendering/RenderBlock.cpp:
40970        (WebCore::RenderBlock::childBecameNonInline):
40971        (WebCore):
40972        * rendering/RenderBlock.h:
40973        (RenderBlock):
40974        * rendering/RenderBoxModelObject.h:
40975        (WebCore::RenderBoxModelObject::childBecameNonInline):
40976        (RenderBoxModelObject):
40977        * rendering/RenderInline.cpp:
40978        (WebCore::RenderInline::childBecameNonInline):
40979        (WebCore):
40980        * rendering/RenderInline.h:
40981        (RenderInline):
40982        * rendering/RenderObject.cpp:
40983        (WebCore):
40984        (WebCore::RenderObject::handleDynamicFloatPositionChange):
40985        (WebCore::RenderObject::styleWillChange):
40986        (WebCore::RenderObject::styleDidChange):
40987        * rendering/RenderObject.h:
40988        (RenderObject):
40989
409902013-03-08  Dean Jackson  <dino@apple.com>
40991
40992        Don't snapshot Java plugins
40993        https://bugs.webkit.org/show_bug.cgi?id=111899
40994
40995        Reviewed by Tim Horton.
40996
40997        Export MIMETypeRegistry::isJavaAppletMIMEType symbol.
40998
40999        * WebCore.exp.in:
41000
410012013-03-08  Rafael Weinstein  <rafaelw@chromium.org>
41002
41003        [HTMLTemplateElement] processTemplateEndTag() needs to check for template in html scope
41004        https://bugs.webkit.org/show_bug.cgi?id=111880
41005
41006        Reviewed by Eric Seidel.
41007
41008        Currently, </template> handling exits with an error if there is not a template tag "in scope"
41009        which will be true if there is a table (for instance) below a template. This makes it so that
41010        the search (correctly) examines the entire element stack.
41011
41012        Tests added to html5lib testing library.
41013
41014        * html/parser/HTMLTreeBuilder.cpp:
41015        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
41016
410172013-03-08  Eric Seidel  <eric@webkit.org>
41018
41019        BackgroundHTMLParser should be able to atomize well-known strings
41020        https://bugs.webkit.org/show_bug.cgi?id=107337
41021
41022        Reviewed by Adam Barth.
41023
41024        Testing this patch easily requires applying bug 107236 locally
41025        to remove all the rendering noise from Parser/html-threaded-parser.html.
41026
41027        This patch adds a new class HTMLIdentifier which allows us to avoid
41028        allocating strings for known tag/attribute names from HTMLNames.
41029
41030        There is still a lot of meat on this bone, but I think it's important to
41031        land something "smallish" to start and iterate from there.
41032
41033        This took Parser/html-threaded-parser.html from:
41034        median= 443.726500002 ms, stdev= 7.25002679952 ms, min= 430.244000047 ms, max= 455.511000007 ms
41035        to:
41036        median= 427.849500004 ms, stdev= 9.96967058292 ms, min= 417.914000049 ms, max= 461.528000014 ms
41037        on my MBP.
41038
41039        * CMakeLists.txt:
41040        * GNUmakefile.list.am:
41041        * Target.pri:
41042        * WebCore.gypi:
41043        * WebCore.vcproj/WebCore.vcproj:
41044        * WebCore.vcxproj/WebCore.vcxproj:
41045        * html/parser/AtomicHTMLToken.h:
41046        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
41047        * html/parser/BackgroundHTMLParser.cpp:
41048        (WebCore::tokenExitsForeignContent):
41049        (WebCore::tokenExitsSVG):
41050        (WebCore::tokenExitsMath):
41051        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
41052        * html/parser/CSSPreloadScanner.cpp:
41053        (WebCore::CSSPreloadScanner::scan):
41054        * html/parser/CSSPreloadScanner.h:
41055        (WebCore):
41056        (CSSPreloadScanner):
41057        * html/parser/CompactHTMLToken.cpp:
41058        (SameSizeAsCompactHTMLToken):
41059        (WebCore::CompactHTMLToken::CompactHTMLToken):
41060        * html/parser/CompactHTMLToken.h:
41061        (WebCore::CompactHTMLToken::Attribute::Attribute):
41062        (Attribute):
41063        (WebCore::CompactHTMLToken::data):
41064        (WebCore::CompactHTMLToken::publicIdentifier):
41065        (CompactHTMLToken):
41066        * html/parser/HTMLDocumentParser.cpp:
41067        (WebCore::HTMLDocumentParser::startBackgroundParser):
41068        * html/parser/HTMLIdentifier.cpp: Added.
41069        (WebCore):
41070        (WebCore::identifierTable):
41071        (WebCore::HTMLIdentifier::hasIndex):
41072        (WebCore::HTMLIdentifier::findIndex):
41073        (WebCore::nameForIndex):
41074        (WebCore::HTMLIdentifier::asString):
41075        (WebCore::HTMLIdentifier::asStringImpl):
41076        (WebCore::HTMLIdentifier::addNames):
41077        (WebCore::HTMLIdentifier::init):
41078        * html/parser/HTMLIdentifier.h: Added.
41079        (WebCore):
41080        (HTMLIdentifier):
41081        (WebCore::HTMLIdentifier::HTMLIdentifier):
41082        (WebCore::HTMLIdentifier::isSafeToSendToAnotherThread):
41083        * html/parser/HTMLParserIdioms.cpp:
41084        (WebCore::threadSafeEqual):
41085        (WebCore::threadSafeMatch):
41086        * html/parser/HTMLParserIdioms.h:
41087        (WebCore):
41088        (WebCore::threadSafeHTMLNamesMatch):
41089        * html/parser/HTMLPreloadScanner.cpp:
41090        (WebCore::TokenPreloadScanner::tagIdFor):
41091        (WebCore::TokenPreloadScanner::StartTagScanner::match):
41092        (TokenPreloadScanner::StartTagScanner):
41093        (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
41094        * html/parser/HTMLPreloadScanner.h:
41095
410962013-03-08  Brandon Jones  <bajones@google.com>
41097
41098        Check to ensure MultisampleRenderbuffer creation succeeds
41099        https://bugs.webkit.org/show_bug.cgi?id=111780
41100
41101        Reviewed by Dean Jackson.
41102
41103        On OSX systems using AMD graphics chips the allocation of large
41104        Multisample Renderbuffers in Chromium would fail without any indication
41105        of failure. Attempting to draw to the buffer resulted in garbage being
41106        rendered onscreen. This could be reproduced by opening a full-page
41107        WebGL app and pressing (Command + "-") several times. This patch adds an
41108        additional check during DrawingBuffer resize to verify that the resized
41109        buffer is valid. 
41110
41111        * platform/graphics/gpu/DrawingBuffer.cpp:
41112        (WebCore):
41113        (WebCore::DrawingBuffer::checkBufferIntegrity):
41114        (WebCore::DrawingBuffer::reset):
41115        * platform/graphics/gpu/DrawingBuffer.h:
41116        (DrawingBuffer):
41117
411182013-03-08  Harald Alvestrand  <hta@chromium.org>
41119
41120        Implemented new API for RTCStatsReport object.
41121        https://bugs.webkit.org/show_bug.cgi?id=110333
41122
41123        Removed RTCStatsElement object, moved its interface to
41124        RTCStatsReport. Preserved some interfaces for
41125        backwards compatibility; will be removed in a later patch.
41126
41127        Reviewed by Adam Barth.
41128
41129        Tested by extensions to RTCPeerConnection-stats test.
41130
41131        * Modules/mediastream/RTCStatsElement.cpp: Removed.
41132        * Modules/mediastream/RTCStatsElement.h: Removed.
41133        * Modules/mediastream/RTCStatsElement.idl: Removed.
41134        * Modules/mediastream/RTCStatsReport.cpp:
41135        (WebCore::RTCStatsReport::create):
41136        (WebCore::RTCStatsReport::RTCStatsReport):
41137        (WebCore):
41138        (WebCore::RTCStatsReport::names):
41139        (WebCore::RTCStatsReport::local):
41140        (WebCore::RTCStatsReport::remote):
41141        (WebCore::RTCStatsReport::addStatistic):
41142        (WebCore::RTCStatsReport::addElement):
41143        * Modules/mediastream/RTCStatsReport.h:
41144        (RTCStatsReport):
41145        (WebCore::RTCStatsReport::timestamp):
41146        (WebCore::RTCStatsReport::id):
41147        (WebCore::RTCStatsReport::stat):
41148        * Modules/mediastream/RTCStatsReport.idl:
41149        * Modules/mediastream/RTCStatsResponse.cpp:
41150        (WebCore::RTCStatsResponse::namedItem):
41151        (WebCore):
41152        (WebCore::RTCStatsResponse::addReport):
41153        (WebCore::RTCStatsResponse::addStatistic):
41154        * Modules/mediastream/RTCStatsResponse.h:
41155        (RTCStatsResponse):
41156        * Modules/mediastream/RTCStatsResponse.idl:
41157        * WebCore.gypi:
41158        * platform/chromium/support/WebRTCStatsResponse.cpp:
41159        (WebKit::WebRTCStatsResponse::addReport):
41160        (WebKit):
41161        (WebKit::WebRTCStatsResponse::addStatistic):
41162        (WebKit::WebRTCStatsResponse::addElement):
41163        * platform/mediastream/RTCStatsResponseBase.h:
41164        (RTCStatsResponseBase):
41165
411662013-03-08  Eric Seidel  <eric@webkit.org>
41167
41168        Free up background parser's checkpoints when speculation succeeds
41169        https://bugs.webkit.org/show_bug.cgi?id=110547
41170
41171        Reviewed by Adam Barth.
41172
41173        This should be a memory (and possible perf) win while parsing
41174        pages, as we will no longer hold multiple copies of every
41175        source byte during the whole parse.
41176
41177        Many LayoutTests exercise this code path, and I've manually (debugger and printf)
41178        that we're hitting this code, but we'll have to wait for the memory/perf bots
41179        to tell us if this shows up as a win.
41180
41181        We only bother to message the parser at the end of a speculation chain, so as not
41182        to send too many messages to the background parser.
41183
41184        * html/parser/BackgroundHTMLInputStream.cpp:
41185        (WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
41186        (WebCore::BackgroundHTMLInputStream::invalidateCheckpointsUpThrough):
41187        (WebCore):
41188        (WebCore::BackgroundHTMLInputStream::rewindTo):
41189        * html/parser/BackgroundHTMLInputStream.h:
41190        (BackgroundHTMLInputStream):
41191        (Checkpoint):
41192        (WebCore::BackgroundHTMLInputStream::Checkpoint::isNull):
41193        (WebCore::BackgroundHTMLInputStream::Checkpoint::clear):
41194        * html/parser/BackgroundHTMLParser.cpp:
41195        (WebCore::BackgroundHTMLParser::passedCheckpoint):
41196        (WebCore):
41197        * html/parser/BackgroundHTMLParser.h:
41198        (BackgroundHTMLParser):
41199        * html/parser/HTMLDocumentParser.cpp:
41200        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
41201
412022013-03-08  Chandra Shekar Vallala  <brk376@motorola.com>
41203
41204        [chromium] Keydown event for 'shift+alt' returns win keycode instead of 'alt'
41205        https://bugs.webkit.org/show_bug.cgi?id=111112
41206
41207        Reviewed by Tony Chang.
41208
41209        Return windows keycode of Alt incase of GDK_META_L, GDK_META_R. This matches
41210        the firefox behaviour in linux platform.
41211
41212        Added Manual Test : ManualTests/shift-alt-key-event.html
41213        Try press Shift then alt key. The test passes if the shiftKey, altKey values
41214        of JSKeyEvent are true and keycode/which is 18.
41215
41216        * platform/chromium/KeyCodeConversionGtk.cpp:
41217        (WebCore::windowsKeyCodeForKeyEvent):
41218
412192013-03-08  Mike West  <mkwst@chromium.org>
41220
41221        CSP: 'eval()' is blocked in report-only mode.
41222        https://bugs.webkit.org/show_bug.cgi?id=111867
41223
41224        Reviewed by Adam Barth.
41225
41226        Setting a 'Content-Security-Policy-Report-Only' header should not have
41227        any effect on what a page actually executes. Currently, however, setting
41228        a 'script-src' directive that doesn't whitelist 'unsafe-eval' actually
41229        blocks 'eval()' on the page. This patch fixes that by checking whether
41230        we're in report-only mode before turning 'eval()' off inside the script
41231        engine.
41232
41233        This leaves us in a weird state, however. We don't currently have any
41234        mechanism of explaining to the VM that we just want to be notified of
41235        'eval()' usage. I've filed http://wkbug.com/111869 to cover this
41236        aspect.
41237
41238        Test: http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.html
41239
41240        * page/ContentSecurityPolicy.cpp:
41241        (WebCore::ContentSecurityPolicy::didReceiveHeader):
41242            For each policy we parse, check that we're only turning off eval in
41243            the VM when we're in enforce mode. If we're in report-only mode,
41244            skip it.
41245
412462013-03-08  Christian Biesinger  <cbiesinger@chromium.org>
41247
41248        REGRESSION (r143643): <button> should support ::first-line and ::first-letter
41249        https://bugs.webkit.org/show_bug.cgi?id=111782
41250
41251        Reviewed by Ojan Vafai.
41252
41253        Test: fast/forms/button-first-line-first-letter.html
41254
41255        * rendering/RenderBlock.cpp:
41256        (WebCore::RenderBlock::firstLineBlock):
41257        (WebCore::findFirstLetterBlock):
41258        Add isRenderButton to the first-line and first-letter checks that
41259        don't allow ::first-* styles for flexbox.
41260
412612013-03-08  Geoffrey Garen  <ggaren@apple.com>
41262
41263        Removed an out-of-date comment from SharedTimer
41264        https://bugs.webkit.org/show_bug.cgi?id=111875
41265
41266        Reviewed by Mark Hahnenberg.
41267
41268        Even if we surround each call to an ObjC interface with an autorelease
41269        pool, it's still nice to have one at top-level entry points like
41270        timers, to avoid turning a single mistake into a long-term leak.
41271
41272        * platform/ios/SharedTimerIOS.mm:
41273        (WebCore::timerFired):
41274        * platform/mac/SharedTimerMac.mm:
41275        (WebCore::timerFired):
41276
412772013-03-08  Benjamin Poulain  <benjamin@webkit.org>
41278
41279        [Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
41280        https://bugs.webkit.org/show_bug.cgi?id=111297
41281
41282        Reviewed by Kenneth Rohde Christiansen.
41283
41284        The 'view-mode' Media Feature spec is implemented in WebCore but
41285        there is no WebKit support for it on Mac.
41286        Because of this, we always lie and report a windowed view mode.
41287
41288        This patch add a feature flag for the feature and disable it on
41289        Mac so that we stop reporting incorrect default values.
41290
41291        * WebCore.exp.in:
41292        * css/CSSValueKeywords.in:
41293        * css/MediaFeatureNames.h:
41294        (MediaFeatureNames):
41295        * css/MediaQueryEvaluator.cpp:
41296        * css/MediaQueryExp.cpp:
41297        (WebCore::featureWithCSSValueID):
41298        (WebCore::featureWithoutValue):
41299        * page/Page.cpp:
41300        (WebCore::Page::Page):
41301        * page/Page.h:
41302        (Page):
41303
413042013-03-08  Ryosuke Niwa  <rniwa@webkit.org>
41305
41306        After sending message, Mail changes formatting
41307        https://bugs.webkit.org/show_bug.cgi?id=111360
41308
41309        Reviewed by Enrica Casucci.
41310
41311        Added makeInsertedContentRoundTrippableWithHTMLTreeBuilder to move prohibited children (e.g. p, h1, etc...)
41312        out of paragraph elements to run immediately after the fragment insertion. This function splits trees and
41313        moves prohibited children out of paragraph elements to keep the tree isomorphic under HTML serialization and
41314        parsing. Unfortunately, there are many other DOM tree constructs we need to fix to make the subtree truly
41315        isomorphic but this is a step forward.
41316
41317        Test: editing/pasteboard/pasting-into-p-should-not-nest-p.html
41318
41319        * editing/ReplaceSelectionCommand.cpp:
41320        (WebCore::isProhibitedParagraphChild): Added. Matches the list at
41321        https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#prohibited-paragraph-child
41322        except main element, which is currently missing in the specification.
41323        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder): Added.
41324        (WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Added.
41325        (WebCore::ReplaceSelectionCommand::doApply): Call moveProhibitedChildrenOutOfParagraphElements.
41326
41327        * editing/ReplaceSelectionCommand.h:
41328        (ReplaceSelectionCommand):
41329
413302013-03-08  Eric Seidel  <eric@webkit.org>
41331
41332        AtomicHTMLToken should not be heap allocated or RefCounted
41333        https://bugs.webkit.org/show_bug.cgi?id=111250
41334
41335        Reviewed by Adam Barth.
41336
41337        It was clearly an oversight on our part to ever make AtomicHTMLToken ref-counted.
41338        We don't need the actual "token" saved, just enough of it to recreate a fake token.
41339
41340        This removed many more mallocs than I thought it would, for a nice little speed win.
41341        Before:
41342        median= 450.482999993 ms, stdev= 7.2381436538 ms, min= 436.084999994 ms, max= 464.968999964 ms
41343        After:
41344        median= 436.41600004 ms, stdev= 5.71435647554 ms, min= 427.160999971 ms, max= 446.753000026 ms
41345
41346        * html/parser/AtomicHTMLToken.h:
41347        (AtomicHTMLToken):
41348        * html/parser/HTMLConstructionSite.cpp:
41349        (WebCore::HTMLConstructionSite::createElementFromSavedToken):
41350        * html/parser/HTMLDocumentParser.cpp:
41351        (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
41352        (WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
41353        * html/parser/HTMLElementStack.cpp:
41354        (WebCore::HTMLElementStack::isHTMLIntegrationPoint):
41355        * html/parser/HTMLFormattingElementList.cpp:
41356        (WebCore):
41357        (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
41358        (WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):
41359        * html/parser/HTMLStackItem.h:
41360        (WebCore::HTMLStackItem::create):
41361        (WebCore::HTMLStackItem::localName):
41362        (WebCore::HTMLStackItem::attributes):
41363        (WebCore::HTMLStackItem::getAttributeItem):
41364        (HTMLStackItem):
41365        (WebCore::HTMLStackItem::hasLocalName):
41366        (WebCore::HTMLStackItem::hasTagName):
41367        (WebCore::HTMLStackItem::HTMLStackItem):
41368        * html/parser/HTMLTreeBuilder.cpp:
41369        (WebCore::HTMLTreeBuilder::processFakeStartTag):
41370        (WebCore::HTMLTreeBuilder::processFakeEndTag):
41371        (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
41372        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
41373        (WebCore::HTMLTreeBuilder::processStartTag):
41374        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
41375        (WebCore::HTMLTreeBuilder::processEndTag):
41376        (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
41377        (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
41378        (WebCore::HTMLTreeBuilder::defaultForInHead):
41379        (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
41380        (WebCore::HTMLTreeBuilder::defaultForAfterHead):
41381        * html/parser/TextDocumentParser.cpp:
41382        (WebCore::TextDocumentParser::insertFakePreElement):
41383
413842013-03-08  Roger Fong  <roger_fong@apple.com>
41385
41386        Makefile fixes.
41387
41388        * WebCore.vcxproj/WebCore.make:
41389
413902013-03-07  Emil A Eklund  <eae@chromium.org>
41391
41392        [sub-pixel] Rounding error in table cell height calculation causes unnecessary scrollbar
41393        https://bugs.webkit.org/show_bug.cgi?id=111794
41394
41395        Reviewed by Levi Weintraub.
41396        
41397        In RenderTableCell::logicalHeightForRowSizing the
41398        adjustedLogicalHeight is calculated from the logicalHeight and
41399        intrinsic padding and is then returned and floored. This can
41400        cause cause the cell to be slightly smaller (0.5px) than the
41401        element it contains.
41402
41403        Test: fast/sub-pixel/table-cell-height.html
41404
41405        * rendering/RenderTableCell.h:
41406        (WebCore::RenderTableCell::logicalHeightForRowSizing):
41407        Change to use pixelSnapped version of logicalHeight method and
41408        change signature to return int as the only caller immediately
41409        down-casts the result to an int.
41410
414112013-03-08  Christian Biesinger  <cbiesinger@chromium.org>
41412
41413        RenderFullScreen needs to clear override sizes when exiting full screen
41414        https://bugs.webkit.org/show_bug.cgi?id=111775
41415
41416        Reviewed by Ojan Vafai.
41417
41418        Test: fullscreen/full-screen-with-flex-item.html
41419
41420        * rendering/RenderFullScreen.cpp:
41421        (RenderFullScreen::unwrapRenderer):
41422        RenderFullScreen is a flexbox, so it will potentially set override
41423        sizes on its children while in fullscreen mode. When we exit
41424        fullscreen mode, we need to clear this override size, otherwise the
41425        the leftover override size may affect layout. See the testcase for an
41426        example.
41427
414282013-03-08  Julien Chaffraix  <jchaffraix@webkit.org>
41429
41430        [CSS Grid Layout] Handle 2 positions with one 'auto' properly
41431        https://bugs.webkit.org/show_bug.cgi?id=111653
41432
41433        Reviewed by Tony Chang.
41434
41435        The rendering code was making the assumption that we have one position.
41436        Thus it couldn't fully match what the specification wants as the 2 opposite
41437        positions are required to resolve either position in several cases (e.g.
41438        1 / span 2, auto / 'c').
41439
41440        This change introduces resolveGridPositionsFromStyle to do both opposite
41441        positions resolution in one pass and thus handling more cases.
41442
41443        Test: fast/css-grid-layout/grid-item-spanning-resolution.html
41444
41445        * rendering/RenderGrid.cpp:
41446        (WebCore::RenderGrid::maximumIndexInDirection):
41447        (WebCore::RenderGrid::placeItemsOnGrid):
41448        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
41449        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
41450        Updated the above functions to rely on resolveGridPositionsFromStyle.
41451
41452        (WebCore::RenderGrid::resolveGridPositionsFromStyle):
41453        Added this new function that handle the correct resolution.
41454
41455        (WebCore::RenderGrid::resolveGridPositionFromStyle):
41456        Updated the ASSERT to match the new code flow.
41457
41458        * rendering/RenderGrid.h:
41459        (WebCore::RenderGrid::GridSpan::GridSpan):
41460        Introduced this new struct to hold the 2 positions along one axis.
41461
414622013-03-08  Dominic Cooney  <dominicc@chromium.org>
41463
41464        RenderTextControlSingleLine should not assume that its text element has a renderer
41465        https://bugs.webkit.org/show_bug.cgi?id=111826
41466
41467        Reviewed by Ojan Vafai.
41468
41469        Tests: fast/forms/search/search-autoscroll-hidden-decoration-container-crash.html
41470               fast/forms/search/search-hide-decoration-container-crash.html
41471               fast/forms/search/search-scroll-hidden-decoration-container-crash.html
41472
41473        * rendering/RenderTextControlSingleLine.cpp:
41474        (WebCore::RenderTextControlSingleLine::layout):
41475        (WebCore::RenderTextControlSingleLine::controlClipRect):
41476        (WebCore::RenderTextControlSingleLine::autoscroll):
41477        (WebCore::RenderTextControlSingleLine::scroll):
41478
414792013-03-08  Joshua Bell  <jsbell@chromium.org>
41480
41481        IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
41482        https://bugs.webkit.org/show_bug.cgi?id=111459
41483
41484        Reviewed by Adam Barth.
41485
41486        IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
41487        origin is opened, the backing store instance must be re-used). This was a map to raw
41488        pointers so that the backing store can be collected when all database references are
41489        dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
41490        would add/remove itself on creation/destruction.
41491
41492        Replace this with a HashMap<WeakPtr<T>>. This simplifies the plumbing; map entries
41493        "leak" but are purged on subsequent opens.
41494
41495        Added webkit_unit_test (Chromium port) to verify refcounts.
41496
41497        * Modules/indexeddb/IDBBackingStore.cpp:
41498        (WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
41499        (WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
41500        (WebCore::IDBBackingStore::open): Ditto.
41501        * Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
41502        (WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
41503        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
41504        (WebCore::cleanWeakMap): Helper function to scrub a HashMap<WeakPtr<T>> of empty pointers.
41505        May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
41506        (WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
41507        * Modules/indexeddb/IDBFactoryBackendImpl.h:
41508        (IDBFactoryBackendImpl): Remove plumbing methods.
41509
415102013-03-08  John Mellor  <johnme@chromium.org>
41511
41512        @media queries do not take zooming into account
41513        https://bugs.webkit.org/show_bug.cgi?id=53186
41514
41515        Reviewed by Kenneth Rohde Christiansen.
41516
41517        Fixes @media width and height to take into account full page zoom, by
41518        adding code to MediaQueryEvaluator's width/heightMediaFeatureEval,
41519        corresponding to the existing code in Element::clientWidth which makes
41520        document.documentElement.clientWidth take into account page zoom.
41521
41522        Test: fast/media/mq-width-pagezoom.html
41523
41524        * css/MediaQueryEvaluator.cpp:
41525        (WebCore::heightMediaFeatureEval):
41526        (WebCore::widthMediaFeatureEval):
41527
415282013-03-08  Carlos Garcia Campos  <cgarcia@igalia.com>
41529
41530        [BlackBerry] Add stubs for DNSResolveQueue platform specific methods
41531        https://bugs.webkit.org/show_bug.cgi?id=111841
41532
41533        Reviewed by Rob Buis.
41534
41535        Add empty implementations of
41536        DNSResolveQueue::platformProxyIsEnabledInSystemPreferences() and
41537        DNSResolveQueue::platformResolve() to DNSBlackBerry.cpp to make it
41538        build.
41539
41540        * platform/network/blackberry/DNSBlackBerry.cpp:
41541        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
41542        (WebCore::DNSResolveQueue::platformResolve):
41543
415442013-03-08  Glenn Hartmann  <hartmanng@chromium.org>
41545
41546       Adding a hook to collect data for a Google UMA histogram to track when
41547       m_needsCompositedScrolling is turned on and off.
41548       https://bugs.webkit.org/show_bug.cgi?id=111725
41549
41550       Reviewed by Julien Chaffraix.
41551
41552       We want to keep track of this information to quantify the effects of a
41553       few patches that will cause us to opt in to composited scrolling.
41554       Specifically, we want to measure the effects of
41555       https://bugs.webkit.org/show_bug.cgi?id=109302,
41556       https://bugs.webkit.org/show_bug.cgi?id=109966,
41557       https://bugs.webkit.org/show_bug.cgi?id=109591, and
41558       https://bugs.webkit.org/show_bug.cgi?id=107618.
41559
41560       We do this by measuring a per-layer boolean value, and comparing the
41561       ratio between number of layers opted in and number of layers that remain
41562       uncomposited. We hope the relative number of layers opting in will
41563       increase after the relevant patches land and are enabled.
41564
41565       Unfortunately implementing extra statistics is impractical at the
41566       moment since most of the actionable relevant data is expensive to
41567       compute. For example, it would be useful to know if the layers that opt
41568       out do so because of invisible or non-overlapping layers that cause a
41569       potential stacking container's children to be discontiguous, because we
41570       would potentially be able to mitigate the problem. However, this would
41571       add considerable overhead to perform overlap testing just to gather
41572       data.
41573
41574       No new tests (no change in behaviour).
41575
41576       * rendering/RenderLayer.cpp:
41577       (WebCore::RenderLayer::updateNeedsCompositedScrolling):
41578
415792013-03-08  Alberto Garcia  <agarcia@igalia.com>
41580
41581        [BlackBerry] GraphicsContext: rename addRoundedRectClip to clipRoundedRect
41582        https://bugs.webkit.org/show_bug.cgi?id=111852
41583
41584        Reviewed by Rob Buis.
41585
41586        This changed in r139353.
41587
41588        * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
41589        (WebCore::GraphicsContext::clipRoundedRect):
41590
415912013-03-08  Alberto Garcia  <agarcia@igalia.com>
41592
41593        [BlackBerry] Add BlendMode parameter to GraphicsContext::setPlatformCompositeOperation
41594        https://bugs.webkit.org/show_bug.cgi?id=111840
41595
41596        Reviewed by Rob Buis.
41597
41598        This parameter was added in r137011.
41599
41600        * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
41601        (WebCore::GraphicsContext::setPlatformCompositeOperation):
41602
416032013-03-08  Alberto Garcia  <agarcia@igalia.com>
41604
41605        [BlackBerry] Remove unused GraphicsContext::addInnerRoundedRectClip()
41606        https://bugs.webkit.org/show_bug.cgi?id=111838
41607
41608        Reviewed by Rob Buis.
41609
41610        This was removed in r139138.
41611
41612        * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp:
41613
416142013-03-08  Alberto Garcia  <agarcia@igalia.com>
41615
41616        [BlackBerry] GraphicsContext: add fillRule parameter to clip() and canvasClip()
41617        https://bugs.webkit.org/show_bug.cgi?id=111836
41618
41619        Reviewed by Rob Buis.
41620
41621        This parameter was added in r139967.
41622
41623        * platform/graphics/blackberry/PathBlackBerry.cpp:
41624        (WebCore):
41625        (WebCore::GraphicsContext::clip):
41626        (WebCore::GraphicsContext::canvasClip):
41627
416282013-03-08  Vsevolod Vlasov  <vsevik@chromium.org>
41629
41630        Web Inspector: Get rid of file system ids and use file pathes as uri for file based uiSourceCodes.
41631        https://bugs.webkit.org/show_bug.cgi?id=111753
41632
41633        Reviewed by Pavel Feldman.
41634
41635        * inspector/front-end/FileSystemMapping.js:
41636        (WebInspector.FileSystemMappingImpl):
41637        (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings.get this):
41638        (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings):
41639        (WebInspector.FileSystemMappingImpl.prototype._saveToSettings):
41640        (WebInspector.FileSystemMappingImpl.prototype.set addFileSystemMapping):
41641        (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
41642        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPaths):
41643        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
41644        * inspector/front-end/FileSystemProjectDelegate.js:
41645        (WebInspector.FileSystemProjectDelegate.projectId):
41646        (WebInspector.FileSystemProjectDelegate.prototype.id):
41647        (WebInspector.FileSystemProjectDelegate.prototype.fileSystemPath):
41648        (WebInspector.FileSystemWorkspaceProvider):
41649        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
41650        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
41651        (WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
41652        * inspector/front-end/IsolatedFileSystemManager.js:
41653        (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
41654        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
41655        * inspector/front-end/Workspace.js:
41656        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
41657
416582013-03-08  Vsevolod Vlasov  <vsevik@chromium.org>
41659
41660        Web Inspector: Polish TabbedEditorContaner and ScriptsNavigator behavior.
41661        https://bugs.webkit.org/show_bug.cgi?id=111732
41662
41663        Reviewed by Pavel Feldman.
41664
41665        Resources matching inspectedPageURL are always expanded in NavigatorView now.
41666        Snippets tab in scripts navigator is not automatically opened anymore.
41667        Cleared saved TabbedEditorContainer history because it might have been corrupted due to errors in earlier versions.
41668        Snippets are not revealed in TabbedEditorContainer anymore unless they were actually selected by user or there is no other tabs opened.
41669
41670        * inspector/front-end/NavigatorView.js:
41671        (WebInspector.NavigatorView):
41672        (WebInspector.NavigatorView.prototype.addUISourceCode):
41673        (WebInspector.NavigatorView.prototype._inspectedURLChanged):
41674        (WebInspector.NavigatorView.prototype.revealUISourceCode):
41675        (WebInspector.NavigatorView.prototype.removeUISourceCode):
41676        (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
41677        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.uiSourceCode):
41678        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.reveal):
41679        * inspector/front-end/ScriptsNavigator.js:
41680        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41681        * inspector/front-end/ScriptsPanel.js:
41682        (WebInspector.ScriptsPanel.prototype._showFile):
41683        * inspector/front-end/Settings.js:
41684        (WebInspector.VersionController.prototype._updateVersionFrom1To2):
41685        * inspector/front-end/TabbedEditorContainer.js:
41686        (WebInspector.TabbedEditorContainer.prototype.addUISourceCode.tabId.this._tabIds.get this):
41687        (WebInspector.TabbedEditorContainer.prototype.addUISourceCode):
41688        (WebInspector.TabbedEditorContainer.History.prototype._rebuildItemIndex):
41689
416902013-03-08  Vsevolod Vlasov  <vsevik@chromium.org>
41691
41692        Web Inspector: Add shortcut for running a snippet.
41693        https://bugs.webkit.org/show_bug.cgi?id=111680
41694
41695        Reviewed by Pavel Feldman.
41696
41697        Added Ctrl/Cmd+Enter as a shortcut for running a snippet.
41698
41699        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
41700        (WebInspector.SnippetJavaScriptSourceFrame):
41701        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
41702        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runSnippet):
41703        (WebInspector.SnippetJavaScriptSourceFrame.prototype._onKeyDown):
41704
417052013-03-08  Philip Rogers  <pdr@google.com>
41706
41707        Prevent infinite loop in SVG use cycle detection
41708        https://bugs.webkit.org/show_bug.cgi?id=111822
41709
41710        Reviewed by Stephen Chenney.
41711
41712        SVG use cycle detection depended on idForStyleResolution() which differs from
41713        getIdAttribute() in quirks mode. During use tree cycle detection, this difference
41714        resulted in an infinite loop because idForStyleResolution() used lower-cased id
41715        attributes. This patch removes an existing fixme for this and switches to using
41716        getIdAttribute().
41717
41718        Test: svg/custom/use-cycle-detection.html
41719
41720        * svg/SVGUseElement.cpp:
41721        (WebCore::SVGUseElement::hasCycleUseReferencing):
41722
417232013-03-08  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
41724
41725        When we set word-wrap: break-word and xml:space="preserve" to svg text element, the text is collapsed.
41726        https://bugs.webkit.org/show_bug.cgi?id=111675
41727
41728        Reviewed by Stephen Chenney.
41729
41730        RenderSVGText define its size when it laid out its first line at SVGRootInlineBox::computePerCharacterLayoutInformation().
41731
41732        In the following spec, SVG don't perform automatic line break or word wrapping.
41733        http://www.w3.org/TR/SVG/text.html#Introduction
41734        > SVG performs no automatic line breaking or word wrapping.
41735        However, when we set word-wrap: break-word and xml:space="preserve" to svg text element, RenderBlock::LineBreaker::nextLineBreak() breaks the text.
41736        This make single character lines and make RenderSVGText narrow.
41737
41738        We must ignore word-wrap property to make the text a single line.
41739
41740        We always disable break words and break all in nextLineBreak() when the object is SVGInlineText.
41741
41742        Test: svg/text/preserve-break-word.html
41743
41744        * rendering/RenderBlockLineLayout.cpp:
41745        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Disable break words and break all when we process SVG Text.
41746
417472013-03-08  Allan Sandfeld Jensen  <allan.jensen@digia.com>
41748
41749        [Qt] HTML5 video - sound volume bar out of widget
41750        https://bugs.webkit.org/show_bug.cgi?id=108213
41751
41752        Reviewed by Jocelyn Turcotte.
41753
41754        Since we use Safari shadow DOM for media controls, follow
41755        the overall layout of Safari media control CSS.
41756
41757        * css/mediaControlsQt.css:
41758        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
41759        (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
41760        (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
41761        (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
41762        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
41763        (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
41764        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
41765        (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
41766        (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
41767        (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
41768        (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
41769        (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
41770        (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
41771        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
41772
417732013-03-08  Allan Sandfeld Jensen  <allan.jensen@digia.com>
41774
41775        [Qt] Doesn't build with QtMultimedia
41776        https://bugs.webkit.org/show_bug.cgi?id=111847
41777
41778        Reviewed by Jocelyn Turcotte.
41779
41780        Fix include.
41781
41782        * platform/graphics/qt/MediaPlayerPrivateQt.h:
41783
417842013-03-08  Huang Dongsung  <luxtella@company100.net>
41785
41786        [EFL][Qt] REGRESSION(r144787): A fixed element lags when scrolling and wheeling.
41787        https://bugs.webkit.org/show_bug.cgi?id=111829
41788
41789        Reviewed by Noam Rosenthal.
41790
41791        Currently, flagsChanged deals with all boolean flags. It introduces this bug
41792        because when another flag (i.e. preserves3D) is changed, fixedToViewport is set
41793        to false. So this patch updates all flags when at least one flag is changed.
41794
41795        In addition, this patch amends isScrollable code to match other flags.
41796
41797        This patch can only be tested manually since there is no automated
41798        testing facilities for in-motion touch.
41799        Test: ManualTests/fixed-position.html
41800              ManualTests/nested-fixed-position.html
41801
41802        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
41803        (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
41804        (WebCore::CoordinatedGraphicsLayer::syncLayerState):
41805        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
41806        (WebCore::CoordinatedGraphicsScene::setLayerState):
41807        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
41808        (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
41809
418102013-03-07  Dean Jackson  <dino@apple.com>
41811
41812        Remove dead label code in snapshotted plugin
41813        https://bugs.webkit.org/show_bug.cgi?id=111781
41814
41815        Reviewed by Tim Horton.
41816
41817        Since ports can use the shadow tree to do label display,
41818        there is no need for the hardcoded timers in RenderSnapshottedPlugin.
41819
41820        * rendering/RenderSnapshottedPlugIn.cpp: Remove label flags and timers.
41821        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
41822        (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn):
41823        (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
41824        (WebCore::RenderSnapshottedPlugIn::handleEvent):
41825        * rendering/RenderSnapshottedPlugIn.h:
41826        (RenderSnapshottedPlugIn):
41827
418282013-03-07  Dean Jackson  <dino@apple.com>
41829
41830        Implement a custom appearance for the snapshotted plugin background
41831        https://bugs.webkit.org/show_bug.cgi?id=108368
41832
41833        Reviewed by Tim Horton.
41834
41835        After https://bugs.webkit.org/show_bug.cgi?id=108284 (r142507), a
41836        snapshotted plugin was no longer drawing the background of the
41837        label blurred. Since the snapshot content was now a shadow tree,
41838        it wasn't feasible to pre-blur a region of the snapshot: the label
41839        could be any size and in any location, with ports being able to
41840        override the appearance through their UA style sheet.
41841
41842        Instead we now use one of the elements in the tree, the snapshot-overlay,
41843        as a hook where ports can add any effect they want. This could be simply
41844        a border, or a transparent mask, or even a CSS filter. We introduce a custom
41845        CSS appearance "snapshotted-plugin-overlay", which could be added to the
41846        element in the injected UA stylesheet. This calls into RenderTheme in
41847        the same way that custom controls do.
41848
41849        Meanwhile, in RenderThemeMac, we implement the appearance by drawing the
41850        content of the plugin snapshot into the background of the element. That
41851        way we can add effects in CSS.
41852
41853        Test: plugins/snapshot-appearance.html
41854
41855        * css/CSSPrimitiveValueMappings.h:
41856        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle SnapshottedPluginOverlayPart.
41857        * css/CSSValueKeywords.in: New appearance value snapshotted-plugin-overlay.
41858        * platform/ThemeTypes.h: New value SnapshottedPluginOverlayPart.
41859        * html/HTMLPlugInElement.h:
41860        (WebCore::toHTMLPlugInElement): Add safer casting helpers.
41861        * html/HTMLPlugInImageElement.h:
41862        (WebCore::toHTMLPlugInImageElement): Ditto.
41863        * rendering/RenderSnapshottedPlugIn.cpp: Remove the code for handling
41864            the blur directly in the renderer.
41865        (WebCore::RenderSnapshottedPlugIn::paint): Simplify the paint logic since we're
41866            no longer trying to blur here.
41867        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
41868        * rendering/RenderSnapshottedPlugIn.h: Remove the methods that were trying
41869            to blur the image directly.
41870        * rendering/RenderTheme.cpp:
41871        (WebCore::RenderTheme::paint): Call paintSnapshottedPluginOverlay.
41872        * rendering/RenderTheme.h:
41873        (WebCore::RenderTheme::paintSnapshottedPluginOverlay): New virtual method with default implementation.
41874        * rendering/RenderThemeMacShared.h:
41875        (RenderThemeMacShared): Override paintSnapshottedPluginOverlay.
41876        * rendering/RenderThemeMacShared.mm:
41877        (WebCore::RenderThemeMacShared::paintSnapshottedPluginOverlay): Implement a custom render path
41878            that takes the snapshot image from the node's parent, and draws it into the background.
41879            Along the way make sure we're actually using the right type of element (an HTMLPlugInImageElement).
41880
418812013-03-08  Sergio Villar Senin  <svillar@igalia.com>
41882
41883        Improve drag&drop of list items in contentEditable divs
41884        https://bugs.webkit.org/show_bug.cgi?id=111556
41885
41886        Reviewed by Ryosuke Niwa.
41887
41888        A single fully selected <li> should generate the same markup as if
41889        we were selecting some of them, i.e., we should preserve the list
41890        structure and appearance.
41891
41892        Test: editing/selection/drag-list-item.html
41893
41894        * editing/htmlediting.cpp:
41895        (WebCore::isListItem): modified constness.
41896        * editing/htmlediting.h:
41897        (WebCore): ditto.
41898        * editing/markup.cpp:
41899        (WebCore::highestAncestorToWrapMarkup):
41900
419012013-03-08  Alberto Garcia  <agarcia@igalia.com>
41902
41903        [BlackBerry] LayerTiler: rename currentFrameHasAlpha as currentFrameKnownToBeOpaque
41904        https://bugs.webkit.org/show_bug.cgi?id=111828
41905
41906        Reviewed by Carlos Garcia Campos.
41907
41908        This changed in r141637.
41909
41910        * platform/graphics/blackberry/LayerTiler.cpp:
41911        (WebCore::LayerTiler::updateTextureContentsIfNeeded):
41912
419132013-03-08  Antoine Quint  <graouts@apple.com>
41914
41915        Fix a couple of typos.
41916
41917        Unreviewed.
41918
41919        * inspector/Inspector.json:
41920
419212013-03-08  Carlos Garcia Campos  <cgarcia@igalia.com>
41922
41923        [BlackBerry] Use OwnPtr for CredentialBackingStore members
41924        https://bugs.webkit.org/show_bug.cgi?id=111737
41925
41926        Reviewed by Rob Buis.
41927
41928        It simplifies the code a bit.
41929
41930        * platform/network/blackberry/CredentialBackingStore.cpp:
41931        (WebCore::CredentialBackingStore::~CredentialBackingStore):
41932        (WebCore::CredentialBackingStore::open):
41933        (WebCore::CredentialBackingStore::certMgrWrapper):
41934        * platform/network/blackberry/CredentialBackingStore.h:
41935        (CredentialBackingStore):
41936
419372013-03-07  Gavin Barraclough  <barraclough@apple.com>
41938
41939        MemoryPressureHandler should fully flush the WebCore & NS URL caches
41940        https://bugs.webkit.org/show_bug.cgi?id=111827
41941
41942        Rubber Stamped by Geoff Garen
41943
41944        When the handler is fired we should free as much memory as possible.
41945
41946        * platform/mac/MemoryPressureHandlerMac.mm:
41947        (WebCore::MemoryPressureHandler::releaseMemory):
41948            - fully flush the WebCore & NS URL caches
41949
419502013-03-07  Keishi Hattori  <keishi@webkit.org>
41951
41952        Update calendar picker UI
41953        https://bugs.webkit.org/show_bug.cgi?id=109439
41954
41955        Reviewed by Kent Tamura.
41956
41957        This patch changes the calendar picker UI.
41958
41959        Added tests to existing calendar picker tests.
41960        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-month-popup.html
41961
41962        * Resources/pagepopups/calendarPicker.css:
41963        (body):
41964        (.rtl):
41965        (.scroll-view):
41966        (.scroll-view-content):
41967        (.list-cell):
41968        (.list-cell.hidden):
41969        (.day-cell):
41970        (.week-number-cell):
41971        (.day-cell.today):
41972        (.day-cell.highlighted):
41973        (.day-cell.highlighted.disabled):
41974        (.day-cell.selected):
41975        (.day-cell.disabled):
41976        (.day-cell.current-month):
41977        (.calendar-table-view):
41978        (.preparing .calendar-table-view:focus):
41979        (.week-day-label):
41980        (.week-number-label):
41981        (.calendar-table-header-view):
41982        (.calendar-picker):
41983        (.calendar-header-view):
41984        (.calendar-title):
41985        (.rtl .calendar-title):
41986        (.month-popup-button:disabled):
41987        (.month-popup-button):
41988        (.month-popup-button .disclosure-triangle):
41989        (.month-popup-button .disclosure-triangle svg):
41990        (.today-button::after):
41991        (.calendar-navigation-button):
41992        (.year-list-view):
41993        (.year-list-cell):
41994        (.year-list-cell .label):
41995        (.year-list-cell .month-chooser):
41996        (.month-buttons-row):
41997        (.month-button):
41998        (.month-button.highlighted):
41999        (.scrubby-scroll-bar):
42000        (.scrubby-scroll-thumb):
42001        (.month-popup-view):
42002        (.year-list-view .scrubby-scroll-bar):
42003        (.rtl .year-list-view .scrubby-scroll-bar):
42004        * Resources/pagepopups/calendarPicker.js:
42005        (setGlobalParams): Sets the global params.
42006        (initialize):
42007        (openCalendarPicker):
42008        (CalendarHeaderView.prototype.onNavigationButtonClick): Fix typo.
42009        (CalendarPicker):
42010        (CalendarPicker.prototype.onWindowResize): We want to have the "preparing" class applied
42011        to cancel css transitions while setting up the calendar picker so we can avoid flaky pixel tests.
42012        (CalendarPicker.prototype.onYearListViewDidHide): The user clicked on a month so hide the month popup.
42013        (CalendarPicker.prototype.onYearListViewDidSelectMonth): Change the current month in response to the month popup.
42014        (CalendarPicker.prototype.attachTo): We want the calendar table focused when the calendar picker first opens.
42015        (CalendarPicker.prototype.cleanup): Clean up any event listeners or elements attached to nodes outside of this.element.
42016        (CalendarPicker.prototype.onMonthPopupButtonClick): Open the month popup in response to the month popup button being clicked.
42017        (CalendarPicker.prototype._setConfig): Configures the calendar picker.
42018        (CalendarPicker.prototype.currentMonth): The currently shown month.
42019        (CalendarPicker.prototype.setCurrentMonth): Scrolls the calendar table to the given month. Use the navigation behavior param to specify if you want a transition animation.
42020        (CalendarPicker.prototype.adjustHeight): Adjusts the height so its just tall enough to fit the current month. If the month picker is open, fit that.
42021        (CalendarPicker.prototype.selection): Currently selected date range.
42022        (CalendarPicker.prototype.highlight): Currently highlighted date range.
42023        (CalendarPicker.prototype.firstVisibleDay): Returns the first visible day ignoring scroll animation (i.e. this is the first visible day when the scroll animation is done).
42024        (CalendarPicker.prototype.lastVisibleDay): Returns the last visible day ignoring scroll animation.
42025        (CalendarPicker.prototype.selectRangeContainingDay): Sets the selection to the date range containing the given day.
42026        (CalendarPicker.prototype.highlightRangeContainingDay): Sets the highlight to the date range containing the given day.
42027        (CalendarPicker.prototype.setSelection): Sets the selection to the given date range.
42028        (CalendarPicker.prototype._setHighlight): Sets the highlight to the given date range.
42029        (CalendarPicker.prototype._stepMismatch): Just moving.
42030        (CalendarPicker.prototype._outOfRange): Ditto.
42031        (CalendarPicker.prototype.isValid): Returns true if the given date range is a valid selection.
42032        (CalendarPicker.prototype.isValidDay): Returns true if the day is part of a valid selection.
42033        (CalendarPicker.prototype._moveHighlight): Moves the highlight to the given date range if possible. Returns true if it succeeds.
42034        (CalendarPicker.prototype.onCalendarTableKeyDown): Handles the arrow keys, etc.
42035        (CalendarPicker.prototype.width):
42036        (CalendarPicker.prototype.height):
42037        (CalendarPicker.prototype.setHeight):
42038        (CalendarPicker.prototype.onBodyKeyDown): Handles esc/m/y/d.
42039        * Resources/pagepopups/chromium/calendarPickerChromium.css:
42040        (.calendar-table-view:focus):
42041        (.preparing .calendar-table-view:focus):
42042
420432013-03-07  Seokju Kwon  <seokju.kwon@gmail.com>
42044
42045        Web Inspector: Remove unused return value after r122962
42046        https://bugs.webkit.org/show_bug.cgi?id=111821
42047
42048        Reviewed by Pavel Feldman.
42049
42050        No new tests.
42051
42052        * inspector/front-end/ConsolePanel.js:
42053        (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
42054        * inspector/front-end/ElementsPanel.js:
42055        (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
42056        * inspector/front-end/ScriptsPanel.js:
42057        (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
42058
420592013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
42060
42061        Unreviewed, rolling out r145166.
42062        http://trac.webkit.org/changeset/145166
42063        https://bugs.webkit.org/show_bug.cgi?id=111819
42064
42065        build break - no symbol
42066        webkit_support::CreateScopedTempDirectory() (Requested by
42067        hayato on #webkit).
42068
42069        * Modules/indexeddb/IDBBackingStore.cpp:
42070        (WebCore::IDBBackingStore::IDBBackingStore):
42071        (WebCore::IDBBackingStore::~IDBBackingStore):
42072        (WebCore::IDBBackingStore::open):
42073        * Modules/indexeddb/IDBBackingStore.h:
42074        (WebCore):
42075        (IDBBackingStore):
42076        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
42077        (WebCore::IDBFactoryBackendImpl::addIDBBackingStore):
42078        (WebCore):
42079        (WebCore::IDBFactoryBackendImpl::removeIDBBackingStore):
42080        (WebCore::IDBFactoryBackendImpl::openBackingStore):
42081        * Modules/indexeddb/IDBFactoryBackendImpl.h:
42082        (IDBFactoryBackendImpl):
42083
420842013-03-07  Hajime Morrita  <morrita@google.com>
42085
42086        Custom Elements: CustomElement constructor shouldn't share function instance
42087        https://bugs.webkit.org/show_bug.cgi?id=111807
42088
42089        Reviewed by Kentaro Hara.
42090
42091        Adaptor functions of custom elements unintentionally share the instance.
42092        This fix gives new one for each.
42093
42094        Test: Updated fast/dom/custom/document-register-basic.html
42095
42096        * bindings/v8/V8AdaptorFunction.cpp:
42097        (WebCore::V8AdaptorFunction::wrap):
42098
420992013-03-07  Jared Wyles  <wyles@adobe.com>
42100
42101        Reading border radius from style property returns in wrong order.
42102        https://bugs.webkit.org/show_bug.cgi?id=110853
42103
42104        Reviewed by Ryosuke Niwa
42105        
42106        Updating the order of border-radius to return in the order specified
42107        in http://www.w3.org/TR/css3-background/#the-border-radius
42108
42109        Tests updated in LayoutTests/fast/borders/border-radius-parsing.html 
42110        Changed the expectations in LayoutTests/inspector/elements/elements-panel-styles-expected.txt 
42111        
42112        Compat information -
42113        jQuery's css function favours using getComputedStyle for elements so that should not be impacted.
42114        Zepto does check for the element on style first so may be a slight concern there.
42115
42116        * css/StylePropertyShorthand.cpp:
42117        (WebCore::borderRadiusShorthand):
42118
421192013-03-07  Andreas Kling  <akling@apple.com>
42120
42121        Resizing Cappuccino is very laggy on WebKit since Safari 5.1
42122        <http://webkit.org/b/71354>
42123        <rdar://problem/10565998>
42124
42125        Reviewed by Anders Carlsson.
42126
42127        * WebCore.exp.in: Export FloatPoint(const NSPoint&)
42128
421292013-03-07  Andreas Kling  <akling@apple.com>
42130
42131        Remove desktop version of -webkit-text-size-adjust property.
42132        <http://webkit.org/b/56543>
42133        <rdar://problem/9150203>
42134
42135        Reviewed by Simon Fraser.
42136
42137        This property existed to support a number of Apple-internal clients of WebKit.
42138        We no longer need this property, and since it's clashing with a mobile version of the
42139        same property with different meaning, let's remove it altogether from the desktop build.
42140
42141        * css/CSSComputedStyleDeclaration.cpp:
42142        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
42143        * css/CSSParser.cpp:
42144        (WebCore::isValidKeywordPropertyAndValue):
42145        (WebCore::isKeywordPropertyID):
42146        (WebCore::CSSParser::parseValue):
42147        * css/CSSPrimitiveValue.cpp:
42148        (WebCore::CSSPrimitiveValue::computeLengthDouble):
42149        * css/CSSProperty.cpp:
42150        (WebCore::CSSProperty::isInheritedProperty):
42151        * css/CSSPropertyNames.in:
42152        * css/StyleBuilder.cpp:
42153        (WebCore::ApplyPropertyLineHeight::applyValue):
42154        * css/StyleResolver.cpp:
42155        (WebCore::StyleResolver::updateFont):
42156        (WebCore::StyleResolver::applyProperties):
42157        (WebCore::StyleResolver::applyProperty):
42158        * css/StyleResolver.h:
42159        (StyleResolver):
42160        * css/svg.css:
42161        * editing/EditingStyle.cpp:
42162        * inspector/front-end/inspector.css:
42163        (#console-messages):
42164        * inspector/front-end/resourcesPanel.css:
42165        (.storage-view.query):
42166        * rendering/style/RenderStyle.cpp:
42167        (WebCore::RenderStyle::diff):
42168        * rendering/style/RenderStyle.h:
42169        * rendering/style/StyleRareInheritedData.cpp:
42170        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
42171        (WebCore::StyleRareInheritedData::operator==):
42172        * rendering/style/StyleRareInheritedData.h:
42173        (StyleRareInheritedData):
42174
421752013-03-07  Joshua Bell  <jsbell@chromium.org>
42176
42177        IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
42178        https://bugs.webkit.org/show_bug.cgi?id=111459
42179
42180        Reviewed by Adam Barth.
42181
42182        IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
42183        origin is opened, the backing store instance must be re-used). This was a map to raw
42184        pointers so that the backing store can be collected when all database references are
42185        dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
42186        would add/remove itself on creation/destruction.
42187
42188        Replace this with a HashMap<WeakPtr<>>. This simplifies the plumbing; map entries
42189        "leak" but are purged on subsequent opens.
42190
42191        Added webkit_unit_test (Chromium port) to verify refcounts.
42192
42193        * Modules/indexeddb/IDBBackingStore.cpp:
42194        (WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
42195        (WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
42196        (WebCore::IDBBackingStore::open): Ditto.
42197        * Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
42198        (WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
42199        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
42200        (WebCore::cleanWeakMap): Helper function to scrub a HashMap<WeakPtr<T>> of empty pointers.
42201        May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
42202        (WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
42203        * Modules/indexeddb/IDBFactoryBackendImpl.h:
42204        (IDBFactoryBackendImpl): Remove plumbing methods.
42205
422062013-03-07  Otto Derek Cheung  <otcheung@rim.com>
42207
42208        [BlackBerry] RefCounting ParsedCookie to avoid SegFaults
42209        https://bugs.webkit.org/show_bug.cgi?id=111761
42210
42211        Reviewed by Rob Buis.
42212
42213        Making necessary changes to ref count the ParsedCookie object.
42214
42215        Tested using the opera cookie test suite and the BB Browser cookie test suite.
42216        Tested using the browser, visiting popular sites such as facebook, reddit, google etc
42217        to ensure cookie functionality isn't changed.
42218
42219        * loader/blackberry/CookieJarBlackBerry.cpp:
42220        (WebCore::getRawCookies):
42221        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
42222        (WebCore::CookieDatabaseBackingStore::insert):
42223        (WebCore::CookieDatabaseBackingStore::update):
42224        (WebCore::CookieDatabaseBackingStore::remove):
42225        (WebCore::CookieDatabaseBackingStore::getCookiesFromDatabase):
42226        (WebCore::CookieDatabaseBackingStore::invokeGetCookiesWithLimit):
42227        (WebCore::CookieDatabaseBackingStore::invokeSendChangesToDatabase):
42228        (WebCore::CookieDatabaseBackingStore::addToChangeQueue):
42229        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
42230        (CookieDatabaseBackingStore):
42231        * platform/blackberry/CookieManager.cpp:
42232        (WebCore::cookieSorter):
42233        (WebCore::CookieManager::setCookies):
42234        (WebCore::CookieManager::getCookie):
42235        (WebCore::CookieManager::generateHtmlFragmentForCookies):
42236        (WebCore::CookieManager::getRawCookies):
42237        (WebCore::CookieManager::checkAndTreatCookie):
42238        (WebCore::CookieManager::addCookieToMap):
42239        (WebCore::CookieManager::getBackingStoreCookies):
42240        (WebCore::CookieManager::findOrCreateCookieMap):
42241        (WebCore::CookieManager::removeCookieWithName):
42242        (WebCore::CookieManager::cookieLimitCleanUp):
42243        * platform/blackberry/CookieManager.h:
42244        * platform/blackberry/CookieMap.cpp:
42245        (WebCore::CookieMap::addOrReplaceCookie):
42246        (WebCore::CookieMap::removeCookieAtIndex):
42247        (WebCore::CookieMap::removeCookie):
42248        (WebCore::CookieMap::getAllCookies):
42249        (WebCore::CookieMap::removeOldestCookie):
42250        (WebCore::CookieMap::deleteAllCookiesAndDomains):
42251        (WebCore::CookieMap::getAllChildCookies):
42252        * platform/blackberry/CookieMap.h:
42253        (CookieMap):
42254        * platform/blackberry/CookieParser.cpp:
42255        (WebCore):
42256        (WebCore::CookieParser::parse):
42257        (WebCore::CookieParser::parseOneCookie):
42258        * platform/blackberry/CookieParser.h:
42259        (CookieParser):
42260        * platform/blackberry/ParsedCookie.cpp:
42261        * platform/blackberry/ParsedCookie.h:
42262        (ParsedCookie):
42263        (WebCore::ParsedCookie::create):
42264
422652013-03-07  Aaron Colwell  <acolwell@chromium.org>
42266
42267        Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
42268        https://bugs.webkit.org/show_bug.cgi?id=110623
42269
42270        Reviewed by Kentaro Hara.
42271
42272        Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
42273
42274        * bindings/v8/V8GCController.cpp: Fix MinorGCWrapperVisitor so it doesn't collect ActiveDOMObjects
42275                                          that have pending activity.
42276        * html/HTMLAudioElement.h:
42277        (HTMLAudioElement): Removed hasPendingActivity() now that this is handled by the base class.
42278        * html/HTMLAudioElement.idl: Removed ActiveDOMObject annotation since HTMLMediaElement now has it.
42279        * html/HTMLMediaElement.cpp:
42280        (WebCore::HTMLMediaElement::hasPendingActivity): Update implementation to return true if the media
42281                                                         has audio and is playing. This brings the code into
42282                                                         compliance with the detached element behavior outlined
42283                                                         in the HTML5 spec.
42284        * html/HTMLMediaElement.idl: Added ActiveDOMObject annotation so that all derived classes are
42285                                     considered ActiveDOMObjects.
42286
422872013-03-07  Jeffrey Pfau  <jpfau@apple.com>
42288
42289        CFNetwork cache partitioning does not work properly on subdomains
42290        https://bugs.webkit.org/show_bug.cgi?id=111772
42291
42292        Reviewed by David Kilzer.
42293
42294        Ensure that the cache partitioning is done over the top privately-controlled domain for the NSURLRequest.
42295
42296        Not possible to test with current automated test tools, must be tested manually.
42297
42298        * loader/cache/MemoryCache.cpp: Remove extraneous calls to partitionName
42299        (WebCore):
42300        (WebCore::MemoryCache::add):
42301        (WebCore::MemoryCache::revalidationSucceeded):
42302        (WebCore::MemoryCache::resourceForRequest):
42303        (WebCore::MemoryCache::evict):
42304        (WebCore::MemoryCache::removeResourcesWithOrigin):
42305        * platform/network/cf/ResourceRequest.h: Put top privately-controlled domain reduction code into ResourceRequest::partitionName
42306        (ResourceRequest):
42307        (WebCore::ResourceRequest::cachePartition):
42308        (WebCore::ResourceRequest::setCachePartition): Pre-process the partition name
42309        * platform/network/cf/ResourceRequestCFNet.cpp:
42310        (WebCore):
42311        (WebCore::ResourceRequest::partitionName):
42312        * platform/network/mac/ResourceRequestMac.mm:
42313        (WebCore::ResourceRequest::doUpdatePlatformRequest): Use a UTF-8 version of the cache partition name
42314
423152013-03-07  Kenneth Russell  <kbr@google.com>
42316
42317        Compute WebGL context attributes from DrawingBuffer when it is used
42318        https://bugs.webkit.org/show_bug.cgi?id=111666
42319
42320        Reviewed by James Robinson.
42321
42322        Fixed computation of antialias flag when DrawingBuffer is used.
42323
42324        No new tests; covered by existing tests. Ran WebGL conformance
42325        tests on desktop Linux and Android to test.
42326
42327        * html/canvas/WebGLRenderingContext.cpp:
42328        (WebCore):
42329        (WebCore::WebGLRenderingContext::getContextAttributes):
42330            Query DrawingBuffer, when used, for antialias flag.
42331
423322013-03-07  Beth Dakin  <bdakin@apple.com>
42333
42334        Need API to draw custom overhang area
42335        https://bugs.webkit.org/show_bug.cgi?id=111679
42336        -and corresponding-
42337        <rdar://problem/13291415>
42338
42339        Reviewed by Simon Fraser.
42340
42341        This will allow clients to put custom images into the top or bottom overhang area.
42342
42343        New FrameView API takes a bool indicating whether the client wants a top/bottom 
42344        overhang layer. If the bool is true, the overhang layer will be returned. 
42345        * WebCore.exp.in:
42346        * page/FrameView.cpp:
42347        (WebCore::FrameView::setWantsLayerForTopOverHangArea):
42348        (WebCore::FrameView::setWantsLayerForBottomOverHangArea):
42349        * page/FrameView.h:
42350        (FrameView):
42351
42352        Keep member variables for the top and bottom overhang layers. Create them if 
42353        necessary, and update them if the root layer changes.
42354        * rendering/RenderLayerCompositor.cpp:
42355        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
42356        (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
42357        (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
42358        (WebCore::RenderLayerCompositor::reportMemoryUsage):
42359        * rendering/RenderLayerCompositor.h:
42360        (RenderLayerCompositor):
42361
423622013-03-07  Gavin Barraclough  <barraclough@apple.com>
42363
42364        Reduce page cache size on Mac
42365        https://bugs.webkit.org/show_bug.cgi?id=111795
42366
42367        Rubber stamped by Geoff Garen
42368
42369        5 entries is unnecessarily large; research show 3 should suffice.
42370        On a low memory warning we should clear this completely.
42371
42372        * platform/mac/MemoryPressureHandlerMac.mm:
42373        (WebCore::MemoryPressureHandler::releaseMemory):
42374            - clear the page cache completely
42375
423762013-03-07  Simon Fraser  <simon.fraser@apple.com>
42377
42378        Rename Mac's TileCache to TileController, and WebTileCacheLayer to WebTiledBackingLayer
42379        https://bugs.webkit.org/show_bug.cgi?id=111779
42380
42381        Reviewed by Tim Horton.
42382        
42383        "TileCache" was a name conflict in downstream code, so rename it to TileController.
42384        The layer that has a TileController is now a WebTiledBackingLayer (which fits with
42385        the TiledBacking API that TileController exposes).
42386        
42387        Also renamed the flags in PlatformCALayer to match.
42388
42389        Rename only, no behavior change.
42390
42391        * WebCore.xcodeproj/project.pbxproj:
42392        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
42393        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
42394        * platform/graphics/GraphicsLayerClient.h:
42395        (WebCore::GraphicsLayerClient::shouldUseTiledBacking):
42396        * platform/graphics/ca/GraphicsLayerCA.cpp:
42397        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
42398        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
42399        (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
42400        (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
42401        (WebCore::GraphicsLayerCA::updateVisibleRect):
42402        (WebCore::GraphicsLayerCA::getDebugBorderInfo):
42403        (WebCore::GraphicsLayerCA::requiresTiledLayer):
42404        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
42405        * platform/graphics/ca/GraphicsLayerCA.h:
42406        * platform/graphics/ca/PlatformCALayer.h:
42407        (WebCore::PlatformCALayer::usesTiledBackingLayer):
42408        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
42409        (PlatformCALayer::PlatformCALayer):
42410        (PlatformCALayer::~PlatformCALayer):
42411        (PlatformCALayer::tiledBacking):
42412        * platform/graphics/ca/mac/TileController.h: Renamed from Source/WebCore/platform/graphics/ca/mac/TileCache.h.
42413        * platform/graphics/ca/mac/WebTileLayer.h:
42414        (TileController):
42415        * platform/graphics/ca/mac/WebTileLayer.mm:
42416        (-[WebTileLayer drawInContext:]):
42417        (-[WebTileLayer setTileController:WebCore::]):
42418        (-[WebTileLayer logFilledFreshTile]):
42419        * platform/graphics/ca/mac/WebTiledBackingLayer.h: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.h.
42420        * platform/graphics/ca/mac/WebTiledBackingLayer.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.mm.
42421        * platform/graphics/mac/WebLayer.mm:
42422        (drawLayerContents):
42423        * rendering/RenderLayerBacking.cpp:
42424        (WebCore::RenderLayerBacking::RenderLayerBacking):
42425        (WebCore::RenderLayerBacking::shouldUseTiledBacking):
42426        (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
42427        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
42428        * rendering/RenderLayerBacking.h:
42429        (WebCore::RenderLayerBacking::usingTiledBacking):
42430        (RenderLayerBacking):
42431        (WebCore::RenderLayerBacking::hasTiledBackingFlatteningLayer):
42432        * rendering/RenderLayerCompositor.cpp:
42433        (WebCore::RenderLayerCompositor::frameViewDidLayout):
42434        (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
42435        (WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
42436
424372013-03-07  Alexey Proskuryakov  <ap@apple.com>
42438
42439        FormData should allow setting filename to empty
42440        https://bugs.webkit.org/show_bug.cgi?id=111687
42441
42442        Reviewed by Brady Eidson.
42443
42444        Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
42445               http/tests/local/formdata/send-form-data-with-empty-file-filename.html
42446
42447        * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
42448        Missing value is a null string. If the string is empty, we should treat is as
42449        authoritative.
42450
424512013-03-07  David Hyatt  <hyatt@apple.com>
42452
42453        REGRESSION: fast/border/border-fit-2.html needs updating
42454        https://bugs.webkit.org/show_bug.cgi?id=111776
42455
42456        Reviewed by Simon Fraser.
42457
42458        This test is incorrectly shrinking the border image now.
42459        We need to apply some clamping to the border-fit like the
42460        old code did. The pixel results *are* still changing though,
42461        since a layout-time shrinkage will not result in right-aligned
42462        boxes in an LTR block when the left edge gets chopped. We'll
42463        have to see if this behavioral change ends up being a problem,
42464        but for now we'll rebaseline and assume it will be ok.
42465
42466        * rendering/RenderBlock.cpp:
42467        (WebCore::RenderBlock::fitBorderToLinesIfNeeded):
42468
424692013-03-07  Antoine Quint  <graouts@apple.com>
42470
42471        Web Inspector: provide reasons why a layer was composited in the LayerTreeAgent
42472        https://bugs.webkit.org/show_bug.cgi?id=111703
42473
42474        Introduce a new LayerTree.reasonsForCompositingLayer(layerId) method which returns
42475        the list of reasons why the provided layer was composited as an object with an
42476        optional property for each possible reason. The RenderLayerCompositor already knows
42477        how to provide this information via its own reasonsForCompositing() method, and we
42478        process the returned bitmask to populate the object sent to the front-end.
42479
42480        Reviewed by Timothy Hatcher.
42481
42482        Test: inspector-protocol/layers/layers-compositing-reasons.html
42483
42484        * inspector/Inspector.json:
42485        * inspector/InspectorLayerTreeAgent.cpp:
42486        (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
42487        (WebCore):
42488        * inspector/InspectorLayerTreeAgent.h:
42489        (InspectorLayerTreeAgent):
42490
424912013-03-07  Anders Carlsson  <andersca@apple.com>
42492
42493        Add a didFocusTextField callback to the injected bundle form client
42494        https://bugs.webkit.org/show_bug.cgi?id=111771
42495
42496        Reviewed by Andreas Kling.
42497
42498        Export a symbol needed by WebKit2.
42499
42500        * WebCore.exp.in:
42501
425022013-03-06  James Robinson  <jamesr@chromium.org>
42503
42504        [chromium] Stop using WebTransformationMatrix on WebLayer
42505        https://bugs.webkit.org/show_bug.cgi?id=111635
42506
42507        Reviewed by Adrienne Walker.
42508
42509        Switches over to the SkMatrix44 transform setters.
42510
42511        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
42512        (WebCore::transformToSkMatrix44):
42513          Utility for convering a WebCore::TransformationMatrix to an SkMatrix44.
42514          Will move to a more common location once it gets more callers.
42515        (WebCore::GraphicsLayerChromium::updateTransform):
42516        (WebCore::GraphicsLayerChromium::updateChildrenTransform):
42517
425182013-03-07  Eric Carlson  <eric.carlson@apple.com>
42519
42520        [Mac] allow iOS to use CaptionUserPreferencesMac
42521        https://bugs.webkit.org/show_bug.cgi?id=111770
42522
42523        Reviewed by Dean Jackson.
42524
42525        No new tests, covered by existing tests.
42526
42527        * page/CaptionUserPreferencesMac.h:
42528        * page/CaptionUserPreferencesMac.mm:
42529        (WebCore::userCaptionPreferencesChangedNotificationCallback): Respond to notifications on
42530            the web thread.
42531
425322013-03-07  Mike West  <mkwst@chromium.org>
42533
42534        Move side-effects on hover/active state out of hit-testing
42535        https://bugs.webkit.org/show_bug.cgi?id=98168
42536
42537        Reviewed by Julien Chaffraix.
42538
42539        Original patch by Allan Sandfeld Jensen; I'm just tweaking things.
42540
42541        Document::updateHoverActiveState is currently called during hit testing
42542        to update the hover and active states of elements effected by mouse
42543        movements (or their keyboard equivalents). This conflates the hit test
42544        algorithm itself with side-effects associated with specific use-cases.
42545
42546        This conflation makes it very difficult to reuse the hover/active logic
42547        for things other than hit testing. 'mouseenter'/'mouseleave' events[1]
42548        are one example of a feature that would be simple to implement on top of
42549        this existing logic if we split it out from the hit testing path, and
42550        instead call it explicitly when necessary. An explicit split between
42551        hit testing and its side-effects will also enable us to simplify the
42552        logic in future patches with well-named parameters, rather than relying
42553        on stuffing properties into HitTestRequest.
42554
42555        This patch drops the call to Document::updateHoverActiveState from
42556        RenderView::hitTest, and adjusts the three call-sites in EventHandler
42557        to explicitly call out to it rather than Document::updateStyleIfNeeded.
42558        The latter call is still necessary but has been folded into
42559        updateHoverActiveState, as the former is never called without calling
42560        the latter.
42561
42562        [1]: http://wkbug.com/18930
42563
42564        * dom/Document.h:
42565        * dom/Document.cpp:
42566        (WebCore::Document::updateHoverActiveState):
42567            First, this function must now only be called from contexts that were
42568            performing a read/write hit-test: the code asserts this
42569            precondition.
42570
42571            Second, rather than accepting a HitTestResult, the function accepts
42572            an Element* from which to begin the hover/active chain changes.
42573
42574            Third, we have to explicitly update the hover/active states for
42575            documents between the updated element and the top-level document.
42576            The hit-testing logic was taking care of this for us, now we need to
42577            take care of it ourselves.
42578
42579            Fourth, call out to updateStyleIfNeeded rather than making our
42580            caller do so. The calls were always paired; now that's explicit.
42581        (WebCore::Document::prepareMouseEvent):
42582        * page/EventHandler.cpp:
42583        (WebCore::EventHandler::hitTestResultAtPoint):
42584        (WebCore::EventHandler::sendContextMenuEventForKey):
42585        (WebCore::EventHandler::hoverTimerFired):
42586            Call out to updateHoverActiveState rather than updateStyleIfNeeded.
42587        * rendering/RenderView.cpp:
42588        (WebCore::RenderView::hitTest):
42589            Drop the call to updateHoverActiveState.
42590
425912013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
42592
42593        Unreviewed, rolling out r145097.
42594        http://trac.webkit.org/changeset/145097
42595        https://bugs.webkit.org/show_bug.cgi?id=111765
42596
42597        Triggers an ASSERT in the Chromium port (Requested by abarth
42598        on #webkit).
42599
42600        * html/FileInputType.cpp:
42601        (WebCore::FileInputType::appendFormData):
42602        * platform/network/FormData.cpp:
42603        (WebCore::FormData::appendKeyValuePairItems):
42604
426052013-03-07  Chris Fleizach  <cfleizach@apple.com>
42606
42607        AX: Can't activate links with VoiceOver in Safari
42608        https://bugs.webkit.org/show_bug.cgi?id=111755
42609
42610        Reviewed by Tim Horton.
42611
42612        VoiceOver is relying on the press action being the first action in the list. We changed
42613        that order inadvertently recently, which confuses VoiceOver.
42614
42615        Test: platform/mac/accessibility/press-action-is-first.html
42616
42617        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
42618        (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
42619
426202013-03-07  Rafael Weinstein  <rafaelw@chromium.org>
42621
42622        Unreviewed, rolling out r145083.
42623        http://trac.webkit.org/changeset/145083
42624        https://bugs.webkit.org/show_bug.cgi?id=110733
42625
42626        caused lots crashes in http/tests/security/xssAuditor/* tests
42627
42628        * html/parser/XSSAuditor.cpp:
42629        (WebCore::XSSAuditor::XSSAuditor):
42630        (WebCore::XSSAuditor::init):
42631        (WebCore::XSSAuditor::filterToken):
42632        * html/parser/XSSAuditor.h:
42633        * html/parser/XSSAuditorDelegate.cpp:
42634        (WebCore::XSSAuditorDelegate::didBlockScript):
42635        * html/parser/XSSAuditorDelegate.h:
42636        (WebCore::XSSInfo::create):
42637        (XSSInfo):
42638        (WebCore::XSSInfo::XSSInfo):
42639
426402013-03-07  Michelangelo De Simone  <michelangelo@webkit.org>
42641
42642        [CSS Shaders] Implement hue and saturation non-separable blend modes
42643        https://bugs.webkit.org/show_bug.cgi?id=109464
42644
42645        Added the following GLSL helper functions to the CustomFilterValidatedProgram:
42646
42647            - css_Sat(C): returns the saturation for the color C
42648            - css_SetSat(C, s): sets the saturation s on the color C
42649            - css_SetSatHelper(Cmin, Cmid, Cmax, s): helper function for css_SetSat
42650
42651        The above functions are being used for the "hue" and "saturation" non-separable
42652        blend modes, the relevant spec for such modes is at URL:
42653        https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
42654
42655        Reviewed by Dean Jackson.
42656
42657        Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-hue.html
42658               css3/filters/custom/custom-filter-nonseparable-blend-mode-saturation.html
42659
42660        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
42661        (WebCore::CustomFilterValidatedProgram::blendFunctionString):
42662
426632013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
42664
42665        Web Inspector: [ACE] set correct font
42666        https://bugs.webkit.org/show_bug.cgi?id=111747
42667
42668        Reviewed by Pavel Feldman.
42669
42670        No new tests.
42671
42672        Set class "source-code" for the ace editor element.
42673
42674        * inspector/front-end/AceTextEditor.js:
42675        (WebInspector.AceTextEditor):
42676
426772013-03-06  Ojan Vafai  <ojan@chromium.org>
42678
42679        Recalculate borders at the beginning of table layout
42680        https://bugs.webkit.org/show_bug.cgi?id=111634
42681
42682        Reviewed by Julien Chaffraix.
42683
42684        Doing it in convertStyleLogicalWidthToComputedWidth missed some dynamic
42685        relayout cases. I confirmed that the new results match the results we
42686        would get if we set the border width initially instead of dynamically.
42687
42688        * rendering/RenderTable.cpp:
42689        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
42690        (WebCore::RenderTable::layout):
42691
426922013-03-07  David Hyatt  <hyatt@apple.com>
42693
42694        border-fit-adjust should happen at layout time rather than paint time
42695        https://bugs.webkit.org/show_bug.cgi?id=111606
42696        <rdar://problem/13101714>
42697
42698        Reviewed by Antti Koivisto.
42699
42700        In order for border-fit-adjust to be accurate in more cases, it needs
42701        to be a layout-time adjustment rather than a paint-time adjustment.
42702        Specifically there are cases where an LTR adjusted box was right-aligned
42703        by its container, and without genuinely shrinking the size of the box,
42704        we end up chopping off the right edge but not shifting the box to the
42705        right to compensate.
42706        
42707        This patch changes border-fit-adjust to now do the adjustment using
42708        the override width mechanism and a second layout pass instead of just
42709        hacking painting.
42710
42711        Test: fast/block/border-fit-with-right-alignment.html
42712
42713        * rendering/RenderBlock.cpp:
42714        (WebCore::RenderBlock::layoutBlock):
42715        Calls fitBorderToLinesIfNeeded at the end of layout to do a second
42716        layout pass if the adjustment needs to be made.
42717
42718        (WebCore::RenderBlock::fitBorderToLinesIfNeeded):
42719        Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
42720        non-virtual, since it's no longer called from RenderBox code. Changed it
42721        to do a relayout using override widths if an adjustment is needed.
42722
42723        * rendering/RenderBlock.h:
42724        (RenderBlock):
42725        Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
42726        non-virtual.
42727
42728        * rendering/RenderBox.cpp:
42729        (WebCore::RenderBox::paintBoxDecorations):
42730        (WebCore::RenderBox::paintMask):
42731        Removed the paint-time border-fit adjustment.
42732
42733        (WebCore::RenderBox::computeLogicalWidthInRegion):
42734        Use the override width when border-fit is set to lines.
42735
42736        * rendering/RenderBox.h:
42737        (RenderBox):
42738        Remove the virtual borderFitAdjust method.
42739
427402013-03-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
42741
42742        REGRESSION(r143727): Clicking / selecting inside an <embed> is broken
42743        https://bugs.webkit.org/show_bug.cgi?id=111217
42744
42745        Reviewed by Julien Chaffraix.
42746
42747        Hit-testing into child frames need to happen in RenderPart, otherwise
42748        we will miss frame views in <embed> and <object> elements. 
42749
42750        Test: fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html
42751
42752        * rendering/RenderFrameBase.cpp:
42753        * rendering/RenderFrameBase.h:
42754        (RenderFrameBase):
42755        * rendering/RenderPart.cpp:
42756        (WebCore::RenderPart::nodeAtPoint):
42757        * rendering/RenderPart.h:
42758        (RenderPart):
42759
427602013-03-07  Alexey Proskuryakov  <ap@apple.com>
42761
42762        FormData should allow setting filename to empty
42763        https://bugs.webkit.org/show_bug.cgi?id=111687
42764
42765        Reviewed by Brady Eidson.
42766
42767        Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
42768               http/tests/local/formdata/send-form-data-with-empty-file-filename.html
42769
42770        * html/FileInputType.cpp: (WebCore::FileInputType::appendFormData):
42771        Use a Blob for empty file input, not a hacky File with empty path.
42772
42773        * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
42774        Missing value is a null string. If the string is empty, we should treat is as
42775        authoritative.
42776
427772013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
42778
42779        Web Inspector: [CodeMirror] dublicated horizontal scroll
42780        https://bugs.webkit.org/show_bug.cgi?id=111712
42781
42782        Reviewed by Pavel Feldman.
42783
42784        Set a box-sizing css property on all codemirror elements to
42785        "content-box".
42786
42787        No new tests.
42788
42789        * inspector/front-end/cm/cmdevtools.css:
42790        (.CodeMirror *):
42791
427922013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
42793
42794        Web Inspector: Styles sidebar pane toolbar disappears in horizontal split mode.
42795        https://bugs.webkit.org/show_bug.cgi?id=111735
42796
42797        Reviewed by Pavel Feldman.
42798
42799        * inspector/front-end/ElementsPanel.js:
42800        (WebInspector.ElementsPanel.prototype._splitVertically):
42801        * inspector/front-end/elementsPanel.css:
42802        (.sidebar-pane.composite .metrics-and-computed .sidebar-pane-toolbar):
42803
428042013-03-07  Zan Dobersek  <zdobersek@igalia.com>
42805
42806        [GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
42807        https://bugs.webkit.org/show_bug.cgi?id=109932
42808
42809        Reviewed by Martin Robinson.
42810
42811        * GNUmakefile.am: Replace references to SYMBOL_VISIBILITY_INLINES and SYMBOL_VISIBILITY variables with the actual flags.
42812        They are now available by default due to the limited set of supported compilers.
42813        * bindings/gobject/GNUmakefile.am: Ditto.
42814
428152013-03-07  Mike West  <mkwst@chromium.org>
42816
42817        XSSAuditor should send only one console error when blocking a page.
42818        https://bugs.webkit.org/show_bug.cgi?id=110733
42819
42820        Reviewed by Daniel Bates.
42821
42822        Currently, we send two console errors when XSSAuditor blocks a page:
42823        "Refused to execute a JavaScript script. Source code of script found
42824        within request.\n", and "Entire page will be blocked.".
42825
42826        We should only send one message, tuning it properly for the context, and
42827        including the URL of the page effected by the XSSAuditor's work.
42828
42829        Covered by rebaselines of all the XSSAuditor and 'reflected-xss' tests.
42830
42831        * html/parser/XSSAuditor.cpp:
42832        * html/parser/XSSAuditor.h:
42833        (WebCore::XSSAuditor::XSSAuditor):
42834            Add two booleans to track the headers used to set the XSSAuditor state.
42835        (WebCore::XSSAuditor::init):
42836            Save a copy of the document's URL even if we're not generating a
42837            report upon violation: we'll need it for the console messages. Also
42838            populate the didSendValidXXXHeader booleans for use later.
42839        (WebCore::XSSAuditor::filterToken):
42840            Add detail about the header status to the constructed XSSInfo object.
42841        * html/parser/XSSAuditorDelegate.cpp:
42842        (WebCore::buildConsoleError):
42843            Move message construction out into a separate inlined function, as
42844            it's becoming complex.
42845        (WebCore::XSSAuditorDelegate::didBlockScript):
42846            Fold the "Entire page will be blocked" message into the main console
42847            error.
42848        * html/parser/XSSAuditorDelegate.h:
42849        (WebCore::XSSInfo::create):
42850        (WebCore::XSSInfo::XSSInfo):
42851            Add detail about header status to XSSInfo in order to correctly
42852            construct the console error.
42853
428542013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
42855
42856        Web Inspector: Add some more compilation annotations to NavigatorView
42857        https://bugs.webkit.org/show_bug.cgi?id=111730
42858
42859        Reviewed by Alexander Pavlov.
42860
42861        * inspector/front-end/NavigatorView.js:
42862
428632013-03-06  Gustavo Noronha Silva  <gns@gnome.org>
42864
42865        [GTK] Enable translations for WebKit2
42866        https://bugs.webkit.org/show_bug.cgi?id=111398
42867
42868        Reviewed by Martin Robinson.
42869
42870        Build change only, thus no tests.
42871
42872        * GNUmakefile.am: distribute po files.
42873        * platform/gtk/po/POTFILES.in: adjust paths for translatable files.
42874
428752013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
42876
42877        Web Inspector: [CodeMirror] update codemirror to version 3.1
42878        https://bugs.webkit.org/show_bug.cgi?id=111711
42879
42880        Reviewed by Vsevolod Vlasov.
42881
42882        Update code mirror experimental editor to version 3.1
42883
42884        No new tests.
42885
42886        * inspector/front-end/cm/codemirror.css:
42887        (.CodeMirror div.CodeMirror-cursor):
42888        (.CodeMirror div.CodeMirror-secondarycursor):
42889        (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
42890        (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor:not(#nonsense_id)):
42891        (.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite):
42892        (.CodeMirror-gutters):
42893        (.CodeMirror-linewidget):
42894        (.CodeMirror-widget):
42895        (.CodeMirror-focused div.CodeMirror-cursor):
42896        (@media print):
42897        * inspector/front-end/cm/codemirror.js:
42898        (window.CodeMirror):
42899        (window.CodeMirror.):
42900
429012013-03-07  Sergio Correia  <sergio.correia@openbossa.org>
42902
42903        OpenGLShims: fix check for ANGLE GLES2 extensions
42904        https://bugs.webkit.org/show_bug.cgi?id=111656
42905
42906        Reviewed by Simon Hausmann.
42907
42908        The check for ANGLE GLES2 extensions is currently being overriden
42909        with checks for APPLE extensions in lookupOpenGLFunctionAddress().
42910
42911        No new tests. No user visible behavior changed.
42912
42913        * platform/graphics/OpenGLShims.cpp:
42914        (WebCore::lookupOpenGLFunctionAddress):
42915
429162013-03-07  David Kilzer  <ddkilzer@apple.com>
42917
42918        Rename visible_units.h to VisibleUnits.h in WebCore.vcxproj.filters
42919        <http://webkit.org/b/111426>
42920
42921        * WebCore.vcxproj/WebCore.vcxproj.filters: Rename visible_units.h
42922        to VisibleUnits.h and re-sort.
42923
429242013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
42925
42926        Web Inspector: Support a shortcut for reloading front-end in debug mode.
42927        https://bugs.webkit.org/show_bug.cgi?id=111709
42928
42929        Reviewed by Pavel Feldman.
42930
42931        * inspector/front-end/buildSystemOnly.js:
42932        * inspector/front-end/inspector.js:
42933        (WebInspector.documentKeyDown):
42934
429352013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
42936
42937        Web Inspector: Support setting up file system mappings from scripts panel context menu.
42938        https://bugs.webkit.org/show_bug.cgi?id=111583
42939
42940        Reviewed by Pavel Feldman.
42941
42942        Added context menu items to set up network - file system mappings from sources panel.
42943        Implemented mapping add/remove methods on Workspace.
42944        Added a dialog suggesting to reload front-end after making such changes.
42945
42946        * English.lproj/localizedStrings.js:
42947        * inspector/front-end/FileSystemMapping.js:
42948        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPath):
42949        * inspector/front-end/FileSystemProjectDelegate.js:
42950        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
42951        (WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
42952        * inspector/front-end/FilteredItemSelectionDialog.js:
42953        (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
42954        (WebInspector.FilteredItemSelectionDialog.prototype.setQuery):
42955        (WebInspector.SelectUISourceCodeDialog):
42956        (WebInspector.SelectUISourceCodeDialog.prototype.uiSourceCodeSelected):
42957        (WebInspector.SelectUISourceCodeDialog.prototype.filterProject):
42958        (WebInspector.SelectUISourceCodeDialog.prototype.filterUISourceCode):
42959        (WebInspector.SelectUISourceCodeDialog.prototype.selectItem):
42960        (WebInspector.SelectUISourceCodeDialog.prototype._uiSourceCodeAdded):
42961        (WebInspector.OpenResourceDialog):
42962        (WebInspector.OpenResourceDialog.prototype.uiSourceCodeSelected):
42963        (WebInspector.OpenResourceDialog.prototype.filterProject):
42964        (WebInspector.SelectUISourceCodeForProjectTypeDialog):
42965        (WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.uiSourceCodeSelected):
42966        (WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.filterProject):
42967        (WebInspector.SelectUISourceCodeForProjectTypeDialog.show):
42968        * inspector/front-end/ScriptsPanel.js:
42969        (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork.mapFileSystemToNetwork):
42970        (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork):
42971        (WebInspector.ScriptsPanel.prototype._removeNetworkMapping):
42972        (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem.mapNetworkToFileSystem):
42973        (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem):
42974        (WebInspector.ScriptsPanel.prototype.):
42975        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
42976        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
42977        * inspector/front-end/SettingsScreen.js:
42978        (WebInspector.WorkspaceSettingsTab):
42979        (WebInspector.WorkspaceSettingsTab.prototype.wasShown):
42980        (WebInspector.WorkspaceSettingsTab.prototype._reset):
42981        * inspector/front-end/ViewportControl.js:
42982        (WebInspector.ViewportControl.prototype.refresh):
42983        * inspector/front-end/Workspace.js:
42984        (WebInspector.Workspace.prototype.addMapping):
42985        (WebInspector.Workspace.prototype.removeMapping):
42986        * inspector/front-end/externs.js:
42987        (WebInspector.suggestReload):
42988        * inspector/front-end/inspector.js:
42989        (WebInspector.suggestReload):
42990
429912013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
42992
42993        Web Inspector: Add support for frontend reloading
42994        https://bugs.webkit.org/show_bug.cgi?id=111727
42995
42996        Reviewed by Pavel Feldman.
42997
42998        This patch adds support for frontend reloading including:
42999          - making sure no messages are sent to backend once frontend started reloading
43000          - updating frontend url with up-to-date dockSide query parameter value.
43001
43002        * inspector/front-end/InspectorBackend.js:
43003        (InspectorBackendClass.prototype.sendMessageObjectToBackend):
43004        (InspectorBackendClass.prototype.disconnect):
43005        * inspector/front-end/externs.js:
43006        (WebInspector.reload):
43007        * inspector/front-end/inspector.js:
43008        (WebInspector.reload):
43009
430102013-03-07  Alexei Filippov  <alph@chromium.org>
43011
43012        Web Inspector: Change profile start button caption depending on profile type.
43013        https://bugs.webkit.org/show_bug.cgi?id=111698
43014
43015        Change the start profiling button caption to "Snapshot" for
43016        snapshot-like profile types, e.g. JS heap snapshot, native memory snapshot.
43017
43018        Reviewed by Yury Semikhatsky.
43019
43020        * English.lproj/localizedStrings.js:
43021        * inspector/front-end/HeapSnapshotView.js:
43022        (WebInspector.HeapSnapshotProfileType.prototype.isInstantProfile):
43023        * inspector/front-end/NativeMemorySnapshotView.js:
43024        (WebInspector.NativeSnapshotProfileType.prototype.isInstantProfile):
43025        (WebInspector.NativeMemoryProfileType.prototype.isInstantProfile):
43026        * inspector/front-end/ProfileLauncherView.js:
43027        (WebInspector.ProfileLauncherView):
43028        (WebInspector.ProfileLauncherView.prototype.addProfileType):
43029        (WebInspector.ProfileLauncherView.prototype._updateControls):
43030        (WebInspector.MultiProfileLauncherView.prototype._updateControls):
43031        (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
43032        * inspector/front-end/ProfilesPanel.js:
43033        (WebInspector.ProfileType.prototype.isInstantProfile):
43034
430352013-03-07  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
43036
43037        [texmap] Remove direct access to clip state from clip stack
43038        https://bugs.webkit.org/show_bug.cgi?id=111630
43039
43040        Reviewed by Allan Sandfeld Jensen.
43041
43042        As we are now monitoring the clip state from
43043        TextureMapperGL/BitmapTextureGL, have direct access to clip state object
43044        would eventually make it dirty without properly setting the
43045        'clipStateDirty' flag. This bug intends to substitute direct access with
43046        auxiliary functions which would set the clip state dirty when necessary.
43047
43048        No new tests. No user visible behavior changed.
43049
43050        * platform/graphics/texmap/TextureMapperGL.cpp:
43051        (WebCore::TextureMapperGL::ClipStack::intersect):
43052        (WebCore::TextureMapperGL::ClipStack::setStencilIndex):
43053        (WebCore::TextureMapperGL::drawBorder):
43054        (WebCore::TextureMapperGL::drawTexture):
43055        (WebCore::TextureMapperGL::beginScissorClip):
43056        (WebCore::TextureMapperGL::beginClip):
43057        Replaced direct access with auxiliary functions.
43058
43059        * platform/graphics/texmap/TextureMapperGL.h:
43060        (ClipStack): Removed ClipStack::current() function.
43061        (WebCore::TextureMapperGL::ClipStack::getStencilIndex): Added.
43062        (WebCore::TextureMapperGL::ClipStack::isCurrentScissorBoxEmpty): Added.
43063
430642013-03-07  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
43065
43066        [Texturemapper] transform-style 'flat' value is broken
43067        https://bugs.webkit.org/show_bug.cgi?id=111566
43068
43069        Reviewed by Allan Sandfeld Jensen.
43070
43071        After changes from r144290, the CSS3 'transform-styles' property, when
43072        used with 'flat' value, resulted in non-stenciled rendering inside
43073        clipped area - vide example from Surfin' Safari blog:
43074        https://www.webkit.org/blog-files/3d-transforms/transform-style.html
43075
43076        This patch forces the clip state to be applied when binding the default
43077        surface.
43078
43079        No new tests. No user visible behavior changed.
43080
43081        * platform/graphics/texmap/TextureMapperGL.cpp:
43082        (WebCore::TextureMapperGL::ClipStack::apply):
43083        (WebCore::TextureMapperGL::ClipStack::applyIfNeeded): Added.
43084        Moved state cache check from apply() to applyIfNeeded().
43085
43086        (WebCore::BitmapTextureGL::clearIfNeeded):
43087        (WebCore::BitmapTextureGL::bind):
43088        (WebCore::TextureMapperGL::beginScissorClip):
43089        (WebCore::TextureMapperGL::beginClip):
43090        (WebCore::TextureMapperGL::endClip):
43091        * platform/graphics/texmap/TextureMapperGL.h:
43092        (ClipStack):
43093        Use applyIfNeeded() to check for clip state before clipping.
43094
430952013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
43096
43097        Web Inspector: refactoring: move TextEditorModel.Indent enum into TextUtils
43098        https://bugs.webkit.org/show_bug.cgi?id=111715
43099
43100        Reviewed by Pavel Feldman.
43101
43102        Move WebInspector.TextEditorModel.Indent into WebInspector.TextUtils namespace.
43103
43104        No new tests: no change in behaviour.
43105
43106        * inspector/front-end/SettingsScreen.js:
43107        (WebInspector.GenericSettingsTab):
43108        * inspector/front-end/TextEditorModel.js:
43109        (WebInspector.TextEditorModel.endsWithBracketRegex.):
43110        * inspector/front-end/TextUtils.js:
43111
431122013-03-07  Ian Vollick  <vollick@chromium.org>
43113
43114        Fix painting phases for composited scrolling
43115        https://bugs.webkit.org/show_bug.cgi?id=107618
43116
43117        Reviewed by Simon Fraser.
43118
43119        With composited scrolling, the scrolling contents layer paints the 
43120        foreground and the main graphics layer paints the background. This 
43121        causes a few problems:
43122
43123          1) If we create a foreground layer, we end up with two layers painting 
43124             the foreground phase.
43125          2) Focus rings / outlines paint into the foreground layer, so they end
43126             up moving around with the scrolling contents.
43127          3) Neg z-order descendants paint in the the main graphics layer and
43128             will therefore not scroll.
43129
43130        To deal with 1) we need to stop painting the foreground into both the
43131        foreground and scrolling contents layers. We also need to ensure that
43132        the foreground layer is the right size and has the right offset from
43133        renderer if we're on the composited scrolling path.
43134
43135        To deal with 2) and 3), I have added a new graphics layer painting phase 
43136        flag -- GraphicsLayerPaintCompositedScroll -- and applied it to two
43137        layers in the subtree created by RenderLayerBacking. This ultimately
43138        affects the paint phase passed to RenderLayer::paintLayerContents and
43139        allows us to paint the focus rings, outlines and negative z-order
43140        descendants into the proper layers.
43141
43142        Tests: compositing/overflow/composited-scrolling-paint-phases.html
43143               compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html
43144               compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html
43145
43146        * page/Frame.h:
43147          Added a flag for including painting phases in the layer tree dump.
43148        (WebCore::GraphicsLayer::dumpProperties):
43149          Can now dump painting phase information, but only if requested.
43150        * platform/graphics/GraphicsLayerClient.h:
43151          Added a new entry to GraphicsLayerPaintingPhaseFlags for comp-scroll.
43152        (WebCore::RenderLayer::paintLayerContents):
43153          Updated the logic to account for the new comp-scroll-related paint
43154          phase flag.
43155        * rendering/RenderLayer.h:
43156          Added the RenderLayer painting phase counterpart to
43157          GraphicsLayerPaintCompositedScroll.
43158        * rendering/RenderLayerBacking.cpp:
43159        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
43160          Ensures that the foreground layer is sized correctly for comp-scroll.
43161        (WebCore::RenderLayerBacking::updateScrollingLayers):
43162          If we have a foreground layer, the scrolling contents layer no
43163          longer gets assigned the foreground painting phase.
43164        (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
43165          If we're comp-scrolling, then the primary layer gets the new phase.
43166        (WebCore::RenderLayerBacking::paintIntoLayer):
43167          Simply translates the new graphics layer painting phase to its
43168          render layer counterpart.
43169        (WebCore::RenderLayerCompositor::layerTreeAsText):
43170        * testing/Internals.cpp:
43171        (WebCore::Internals::layerTreeAsText):
43172        * testing/Internals.h:
43173        * testing/Internals.idl:
43174          The above changes are solely plumbing to allow layout tests to
43175          request that paint phase information be included in the layer tree
43176          dump.
43177
431782013-03-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43179
43180        [Qt] Use Qt5.1 supportedMimeTypes methods.
43181        https://bugs.webkit.org/show_bug.cgi?id=111185
43182
43183        Reviewed by Jocelyn Turcotte.
43184
43185        Uses the supportedMimeTypes() methods from QImageReader and QImageWriter when available.
43186
43187        * platform/MIMETypeRegistry.cpp:
43188        (WebCore::initializeSupportedImageMIMETypes):
43189        (WebCore::initializeSupportedImageMIMETypesForEncoding):
43190
431912013-03-07  Ilya Tikhonovsky  <loislo@chromium.org>
43192
43193        Web Inspector: Flame Chart. Stick item color to the function.
43194        https://bugs.webkit.org/show_bug.cgi?id=111697
43195
43196        Reviewed by Yury Semikhatsky.
43197
43198        Different nodes associated with a single function have to use the same color.
43199        Minor polish: do not filter out (idle) and (program) items. They were big due to an error on v8 side.
43200        Set minimum width to 0 for more precise picture.
43201
43202        * inspector/front-end/FlameChart.js:
43203        (WebInspector.FlameChart):
43204        (WebInspector.FlameChart.prototype._rootNodes):
43205        (WebInspector.FlameChart.prototype.draw):
43206        (WebInspector.FlameChart.prototype._drawNode):
43207        (WebInspector.FlameChart.prototype._drawBar):
43208
432092013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
43210
43211        Web Inspector: [ACE] gutter size should be fixed.
43212        https://bugs.webkit.org/show_bug.cgi?id=111576
43213
43214        Reviewed by Pavel Feldman.
43215
43216        Add a custom ace editor build that supports setFixedGutterWidth configuration
43217        parameter and switch this setting on.
43218
43219        No new tests.
43220
43221        * inspector/front-end/AceTextEditor.js:
43222        (WebInspector.AceTextEditor): Switch fixedGutterWidth setting on.
43223        * inspector/front-end/ace/ace.js:
43224        (.):
43225
432262013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
43227
43228        Unreviewed, rolling out r145059.
43229        http://trac.webkit.org/changeset/145059
43230        https://bugs.webkit.org/show_bug.cgi?id=111707
43231
43232        crash webkit build (Requested by tasak on #webkit).
43233
43234        * CMakeLists.txt:
43235        * GNUmakefile.list.am:
43236        * Target.pri:
43237        * WebCore.gypi:
43238        * WebCore.xcodeproj/project.pbxproj:
43239        * css/CSSAllInOne.cpp:
43240        * css/DocumentRuleSets.cpp:
43241        (WebCore::ShadowDistributedRules::collectMatchRequests):
43242        * css/DocumentRuleSets.h:
43243        * css/ElementRuleCollector.cpp: Removed.
43244        * css/ElementRuleCollector.h: Removed.
43245        * css/PageRuleCollector.cpp: Removed.
43246        * css/PageRuleCollector.h: Removed.
43247        * css/StyleResolver.cpp:
43248        (WebCore::leftToRightDeclaration):
43249        (WebCore):
43250        (WebCore::rightToLeftDeclaration):
43251        (WebCore::StyleResolver::State::ensureRuleList):
43252        (WebCore::StyleResolver::State::clear):
43253        (WebCore::StyleResolver::addMatchedProperties):
43254        (WebCore::StyleResolver::addElementStyleProperties):
43255        (MatchingUARulesScope):
43256        (WebCore::MatchingUARulesScope::MatchingUARulesScope):
43257        (WebCore::MatchingUARulesScope::~MatchingUARulesScope):
43258        (WebCore::MatchingUARulesScope::isMatchingUARules):
43259        (WebCore::StyleResolver::collectMatchingRules):
43260        (WebCore::StyleResolver::collectMatchingRulesForRegion):
43261        (WebCore::StyleResolver::sortAndTransferMatchedRules):
43262        (WebCore::StyleResolver::matchScopedAuthorRules):
43263        (WebCore::StyleResolver::matchHostRules):
43264        (WebCore::StyleResolver::matchAuthorRules):
43265        (WebCore::StyleResolver::matchUserRules):
43266        (WebCore::StyleResolver::matchUARules):
43267        (WebCore::StyleResolver::collectMatchingRulesForList):
43268        (WebCore::compareRules):
43269        (WebCore::StyleResolver::sortMatchedRules):
43270        (WebCore::StyleResolver::matchAllRules):
43271        (WebCore::StyleResolver::State::initForStyleResolve):
43272        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
43273        (WebCore::StyleResolver::styleForElement):
43274        (WebCore::StyleResolver::styleForKeyframe):
43275        (WebCore::StyleResolver::pseudoStyleForElement):
43276        (WebCore::StyleResolver::styleForPage):
43277        (WebCore::StyleResolver::pseudoStyleRulesForElement):
43278        (WebCore::StyleResolver::ruleMatches):
43279        (WebCore::StyleResolver::checkRegionSelector):
43280        (WebCore::comparePageRules):
43281        (WebCore::StyleResolver::matchPageRules):
43282        (WebCore::checkPageSelectorComponents):
43283        (WebCore::StyleResolver::matchPageRulesForList):
43284        (WebCore::StyleResolver::isLeftPage):
43285        (WebCore::StyleResolver::isFirstPage):
43286        (WebCore::StyleResolver::pageName):
43287        * css/StyleResolver.h:
43288        (WebCore::MatchRequest::MatchRequest):
43289        (MatchRequest):
43290        (StyleResolver):
43291        (MatchResult):
43292        (WebCore::StyleResolver::State::State):
43293        (State):
43294        (WebCore::StyleResolver::State::takeRuleList):
43295        (WebCore::StyleResolver::State::setSameOriginOnly):
43296        (WebCore::StyleResolver::State::isSameOriginOnly):
43297        (WebCore::StyleResolver::State::pseudoStyleRequest):
43298        (WebCore::StyleResolver::State::setMode):
43299        (WebCore::StyleResolver::State::mode):
43300        (WebCore::StyleResolver::State::matchedRules):
43301        (WebCore::StyleResolver::State::addMatchedRule):
43302        * inspector/InspectorCSSAgent.cpp:
43303        (WebCore::InspectorCSSAgent::willMatchRule):
43304        * inspector/InspectorCSSAgent.h:
43305        (WebCore):
43306        (InspectorCSSAgent):
43307        * inspector/InspectorInstrumentation.cpp:
43308        (WebCore):
43309        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
43310        * inspector/InspectorInstrumentation.h:
43311        (WebCore):
43312        (InspectorInstrumentation):
43313        (WebCore::InspectorInstrumentation::willMatchRule):
43314
433152013-03-07  Kentaro Hara  <haraken@chromium.org>
43316
43317        Unreviewed. Rebaselined run-bindings-tests.
43318
43319        * bindings/scripts/test/V8/V8TestInterface.cpp:
43320        (WebCore):
43321        * bindings/scripts/test/V8/V8TestObj.cpp:
43322        (WebCore):
43323
433242013-03-07  Takashi Sakamoto  <tasak@google.com>
43325
43326        [Refactoring] Implement RuleCollector
43327        https://bugs.webkit.org/show_bug.cgi?id=109916
43328
43329        Reviewed by Antti Koivisto.
43330
43331        Implemented rule collector for an element and collector for a page.
43332        Not all members in class State are required entire while resolving
43333        a style.
43334
43335        No new tests, because just refactoring.
43336
43337        * CMakeLists.txt:
43338        * GNUmakefile.list.am:
43339        * Target.pri:
43340        * WebCore.gypi:
43341        * WebCore.xcodeproj/project.pbxproj:
43342        * css/CSSAllInOne.cpp:
43343        Added ElementRuleCollector and PageRuleCollector.
43344        * css/DocumentRuleSets.cpp:
43345        (WebCore::ShadowDistributedRules::collectMatchRequests):
43346        Since behaviorAtBoundary is a state owned by ElementRuleCollector,
43347        removed from here.
43348        * css/DocumentRuleSets.h:
43349        (WebCore::ShadowDistributedRules::isEmpty):
43350        Added to quickly check whether there exist any ShadowDistributedRules
43351        or not.
43352        * css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
43353        (WebCore):
43354        (WebCore::ElementRuleCollector::matchedResult):
43355        (WebCore::ElementRuleCollector::matchedRuleList):
43356        (WebCore::ElementRuleCollector::addMatchedRule):
43357        (WebCore::ElementRuleCollector::clearMatchedRules):
43358        (WebCore::ElementRuleCollector::ensureRuleList):
43359        (WebCore::ElementRuleCollector::addElementStyleProperties):
43360        (WebCore::ElementRuleCollector::collectMatchingRules):
43361        (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
43362        (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
43363        (WebCore::ElementRuleCollector::matchScopedAuthorRules):
43364        (WebCore::ElementRuleCollector::matchHostRules):
43365        (WebCore::ElementRuleCollector::matchShadowDistributedRules):
43366        (WebCore::ElementRuleCollector::matchAuthorRules):
43367        (WebCore::ElementRuleCollector::matchUserRules):
43368        (WebCore::ElementRuleCollector::matchUARules):
43369        (WebCore::ElementRuleCollector::ruleMatches):
43370        (WebCore::ElementRuleCollector::collectMatchingRulesForList):
43371        (WebCore::ElementRuleCollector::sortMatchedRules):
43372        (WebCore::ElementRuleCollector::matchAllRules):
43373        Moved these methods from StyleResolver to this class.
43374        (WebCore::ElementRuleCollector::hasAnyMatchingRules):
43375        This method is used for checking whether a given element can share
43376        a cache.
43377        * css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
43378        (WebCore):
43379        (WebCore::ElementRuleCollector::ElementRuleCollector):
43380        Use styleResolver instance to initialize its member variables, i.e.
43381        SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
43382        StyleScopedResolver.
43383        (ElementRuleCollector):
43384        (WebCore::ElementRuleCollector::setMode):
43385        (WebCore::ElementRuleCollector::setPseudoStyleRequest):
43386        (WebCore::ElementRuleCollector::setSameOriginOnly):
43387        (WebCore::ElementRuleCollector::setRegionForStyling):
43388        Mode, SameOriginOnly, RegionForStyling are only used while collecting
43389        matched rules.
43390        (WebCore::ElementRuleCollector::setMedium):
43391        Need to know which default stylesheet should be looked up.
43392        (WebCore::ElementRuleCollector::document):
43393        * css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
43394        (WebCore::comparePageRules):
43395        (WebCore::PageRuleCollector::isLeftPage):
43396        (WebCore::PageRuleCollector::isFirstPage):
43397        (WebCore::PageRuleCollector::pageName):
43398        (WebCore::PageRuleCollector::matchAllPageRules):
43399        (WebCore::PageRuleCollector::matchPageRules):
43400        (WebCore::checkPageSelectorComponents):
43401        (WebCore::PageRuleCollector::matchPageRulesForList):
43402        Moved from StyleResolver.
43403        * css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
43404        (WebCore):
43405        (WebCore::PageRuleCollector::PageRuleCollector):
43406        (PageRuleCollector):
43407        (WebCore::PageRuleCollector::matchedResult):
43408        * css/StyleResolver.cpp:
43409        (WebCore):
43410        (WebCore::StyleResolver::State::clear):
43411        (WebCore::StyleResolver::MatchResult::addMatchedProperties):
43412        (WebCore::StyleResolver::State::initForStyleResolve):
43413        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
43414        (WebCore::StyleResolver::styleForElement):
43415        (WebCore::StyleResolver::styleForKeyframe):
43416        (WebCore::StyleResolver::pseudoStyleForElement):
43417        (WebCore::StyleResolver::styleForPage):
43418        (WebCore::StyleResolver::pseudoStyleRulesForElement):
43419        (WebCore::StyleResolver::applyMatchedProperties):
43420        * css/StyleResolver.h:
43421        (WebCore::MatchRequest::MatchRequest):
43422        Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
43423        state.
43424        (MatchRequest):
43425        (WebCore::StyleResolver::selectorFilter):
43426        Added to obtain SelectorFilter in ElementRuleCollector's constructor.
43427        (StyleResolver):
43428        (MatchResult):
43429        (WebCore::StyleResolver::State::State):
43430        To pass ASSERT in StyleResolver::applyProperties, need to keep
43431        m_regionForStyling.
43432        (State):
43433        (WebCore::StyleResolver::State::regionForStyling):
43434        (WebCore::StyleResolver::State::useSVGZoomRules):
43435        (WebCore::StyleResolver::hasSelectorForId):
43436        (WebCore):
43437        (WebCore::checkRegionSelector):
43438        * inspector/InspectorCSSAgent.cpp:
43439        (WebCore::InspectorCSSAgent::willMatchRule):
43440        Removed StyleResolver from its parameter list. Instead, added
43441        InspectorCSSOMWrappers and DocumentStyleSheetCollection.
43442        * inspector/InspectorCSSAgent.h:
43443        (WebCore):
43444        (InspectorCSSAgent):
43445        * inspector/InspectorInstrumentation.cpp:
43446        (WebCore):
43447        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
43448        * inspector/InspectorInstrumentation.h:
43449        (WebCore):
43450        (InspectorInstrumentation):
43451        (WebCore::InspectorInstrumentation::willMatchRule):
43452
434532013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
43454
43455        Web Inspector: [ACE] add experimental breakpoint support
43456        https://bugs.webkit.org/show_bug.cgi?id=111573
43457
43458        Reviewed by Pavel Feldman.
43459
43460        No new tests.
43461
43462        - Implement attributes model for ace editor. Update attribute
43463        locations by handling onTextChange event from editor.
43464        - Implement breakpoints atop of attributes model.
43465
43466        * inspector/front-end/AceTextEditor.js:
43467        (WebInspector.AceTextEditor):
43468        (WebInspector.AceTextEditor.prototype._updateBreakpoints):
43469        (WebInspector.AceTextEditor.prototype._updateLineAttributes):
43470        (WebInspector.AceTextEditor.prototype._onTextChange):
43471        (WebInspector.AceTextEditor.prototype.addBreakpoint):
43472        (WebInspector.AceTextEditor.prototype.removeBreakpoint):
43473        (WebInspector.AceTextEditor.prototype.getAttribute):
43474        (WebInspector.AceTextEditor.prototype.setAttribute):
43475        (WebInspector.AceTextEditor.prototype.removeAttribute):
43476        * inspector/front-end/ace/acedevtools.css:
43477        (.ace-editor-container):
43478        (.ace_gutter-cell.webkit-breakpoint):
43479        (.ace_gutter-cell.webkit-breakpoint-conditional):
43480        (.ace_gutter-cell.webkit-breakpoint-disabled):
43481        (.ace_gutter-cell):
43482
434832013-03-07  Antoine Quint  <graouts@apple.com>
43484
43485        Web Inspector: identify layers for CSS generated content in LayerTreeAgent
43486        https://bugs.webkit.org/show_bug.cgi?id=111551
43487
43488        Layers can be associated with pseudo elements, elements that are generated
43489        when ::before or ::after pseudo-classes are used to style an element and
43490        provide additional rendering using the CSS "content" property. In order to
43491        identify that a layer is associated to a pseudo element, we add a new set of
43492        optional properties on the Layer object: "isGeneratedContent", "pseudoElementId"
43493        and "pseudoClass".
43494
43495        We need to provide the "pseudoElementId" for the same reason we provide a
43496        "nodeId" for the Layer. This is so that the front-end can identify that a
43497        layer whose "layerId" may have changed between two layer tree updates is
43498        used to render content for the same pseudo element.
43499
43500        In the instance that a layer is rendering generated content, we also set
43501        the "nodeId" to be the generating node's id. The generating node is the
43502        node in the DOM that the user styled using ::before or ::after pseudo-classes.
43503        We also add the pseudo-class used as the "pseudoClass" property such that the
43504        front-end may provide useful information to the user about what type of
43505        pseudo-class yielded the generation of this layer. We also deal with the
43506        possibility that the layer is a reflection for a pseudo element.
43507    
43508        Since pseudo elements are not part of the user-visible DOM, and thus can't be
43509        pushed to the front-end, we maintain a special ID hash map in the LayerTreeAgent.
43510        In order to be able to unbind a pseudo element id and a pseudo element, we add a
43511        destructor method to PseudoElement and provide a new instrumentation call so that
43512        the LayerTreeAgent may be notified of a PseudoElement being destroyed. This
43513        reflects the principle we use to update the RenderLayer bindings when a
43514        RenderLayer is destroyed, as notified by the RenderLayerCompositor.
43515
43516        Reviewed by Simon Fraser.
43517
43518        Test: inspector-protocol/layers/layers-generated-content.html
43519
43520        * dom/PseudoElement.cpp:
43521        (WebCore::PseudoElement::~PseudoElement): New destructor used to notify
43522        InspectorInstrumentation of a PseudoElement being destroyed, such that
43523        it can eventually be relayed to the InspectorLayerTreeAgent.
43524        (WebCore):
43525        * dom/PseudoElement.h:
43526        (PseudoElement):
43527        * inspector/Inspector.json: Add the new PseudoElementId type used for
43528        the new "pseudoElementId" property on Layer, to which we also add the
43529        "isGeneratedContent" and "pseudoClass" properties.
43530        * inspector/InspectorInstrumentation.cpp:
43531        (WebCore):
43532        (WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):
43533        * inspector/InspectorInstrumentation.h:
43534        (WebCore):
43535        (InspectorInstrumentation):
43536        (WebCore::InspectorInstrumentation::pseudoElementDestroyed): New method
43537        called in the PseudoElement destructor used to relay the fact that a
43538        PseudoElement was destroyed to the InspectorLayerTreeAgent.
43539        * inspector/InspectorLayerTreeAgent.cpp:
43540        (WebCore::InspectorLayerTreeAgent::reset): Clear the new PseudoElement
43541        identifier maps.
43542        (WebCore::InspectorLayerTreeAgent::pseudoElementDestroyed): Remove any
43543        identifier binding for the provided PseudoElement being destroyed.
43544        (WebCore):
43545        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Set the new
43546        "isGeneratedContent", "pseudoElementId" and "pseudoClass" properties on
43547        the Layer object for layers associated with a pseudo element.
43548        (WebCore::InspectorLayerTreeAgent::bind): Use emptyString() instead of "".
43549        (WebCore::InspectorLayerTreeAgent::unbind): Use an iterator instead of a
43550        get() and remove() combination in order to reduce lookups and mimick the
43551        code written for unbindPseudoElement().
43552        (WebCore::InspectorLayerTreeAgent::bindPseudoElement): Binds the provided
43553        PseudoElement to a unique identifier.
43554        (WebCore::InspectorLayerTreeAgent::unbindPseudoElement): Unbinds the
43555        provided PseudoElement from its unique identifier.
43556        * inspector/InspectorLayerTreeAgent.h:
43557        (InspectorLayerTreeAgent):
43558
435592013-03-07  Keishi Hattori  <keishi@webkit.org>
43560
43561        Add clear button to date/time input types
43562        https://bugs.webkit.org/show_bug.cgi?id=111319
43563
43564        Reviewed by Kent Tamura.
43565
43566        We want to remove the clear button from the calendar picker (Bug 109439)
43567        so we are adding the clear button to the right side of the input element.
43568
43569        Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-change-and-input-events.html
43570               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-change-and-input-events.html
43571               fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-change-and-input-events.html
43572               fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-change-and-input-events.html
43573               fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-change-and-input-events.html
43574
43575        * CMakeLists.txt: Added ClearButtonElement.cpp
43576        * GNUmakefile.list.am: Ditto.
43577        * Target.pri: Ditto.
43578        * WebCore.gypi: Ditto.
43579        * WebCore.vcproj/WebCore.vcproj: Ditto.
43580        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
43581        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
43582        * WebCore.xcodeproj/project.pbxproj: Ditto.
43583        * css/html.css:
43584        (input::-webkit-clear-button): Styles for the clear button.
43585        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
43586        (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
43587        (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
43588        (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
43589        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
43590        (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
43591        (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
43592        (WebCore::BaseMultipleFieldsDateAndTimeInputType::requiredAttributeChanged): Hide clear button if the value is required.
43593        (WebCore):
43594        (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged):
43595        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
43596        (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectClearButtonOwner): Called on mouse down on clear button.
43597        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldClearButtonRespondToMouseEvents):
43598        (WebCore::BaseMultipleFieldsDateAndTimeInputType::clearValue):
43599        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateClearButtonVisibility): We want to hide the clear button if the value is required or the value is empty.
43600        * html/BaseMultipleFieldsDateAndTimeInputType.h:
43601        (BaseMultipleFieldsDateAndTimeInputType):
43602        * html/HTMLInputElement.cpp:
43603        (WebCore::HTMLInputElement::updateClearButtonVisibility):
43604        (WebCore):
43605        (WebCore::HTMLInputElement::requiredAttributeChanged):
43606        * html/HTMLInputElement.h:
43607        (HTMLInputElement):
43608        * html/InputType.cpp:
43609        (WebCore::InputType::requiredAttributeChanged): Notifies the InputType that the required attribute has changed.
43610        (WebCore):
43611        (WebCore::InputType::updateClearButtonVisibility):
43612        * html/InputType.h:
43613        (InputType):
43614        * html/shadow/ClearButtonElement.cpp: Added.
43615        (WebCore):
43616        (WebCore::ClearButtonElement::ClearButtonElement):
43617        (WebCore::ClearButtonElement::create):
43618        (WebCore::ClearButtonElement::detach):
43619        (WebCore::ClearButtonElement::releaseCapture): Stop capturing mouse events.
43620        (WebCore::ClearButtonElement::defaultEventHandler):
43621        * html/shadow/ClearButtonElement.h: Added.
43622        (WebCore):
43623        (ClearButtonElement):
43624        (ClearButtonOwner):
43625        (WebCore::ClearButtonElement::ClearButtonOwner::~ClearButtonOwner):
43626        (WebCore::ClearButtonElement::removeClearButtonOwner):
43627        (WebCore::ClearButtonElement::isMouseFocusable):
43628
436292013-03-07  Eugene Klyuchnikov  <eustas@chromium.org>
43630
43631        Web Inspector: Refactorings: Prepare SuggestBox for reuse.
43632        https://bugs.webkit.org/show_bug.cgi?id=111301
43633
43634        Reviewed by Alexander Pavlov.
43635
43636        1) Remove userEnteredText from delegate interface.
43637           Pass prefix to updateSuggestions instead.
43638        2) Clarify that suggestions array is never null.
43639
43640        * inspector/front-end/SuggestBox.js:
43641        (WebInspector.SuggestBox): Renamed parameter/member.
43642        (WebInspector.SuggestBox.prototype._updateItems):
43643        Minor readability changes.
43644        (WebInspector.SuggestBox.prototype._canShowBox):
43645        Use userEnteredText parameter.
43646        (WebInspector.SuggestBox.prototype.updateSuggestions):
43647        Pass userEnteredText to _canShowBox.
43648        * inspector/front-end/DatabaseQueryView.js: Fix JSDocs.
43649        * inspector/front-end/RuntimeModel.js: Ditto.
43650        * inspector/front-end/TextPrompt.js: Ditto.
43651        (WebInspector.TextPrompt.prototype._completionsReady):
43652        Pass userEnteredText to updateSuggestions.
43653
436542013-03-07  Victor Carbune  <vcarbune@chromium.org>
43655
43656        TextTrackRegion Constructor
43657        https://bugs.webkit.org/show_bug.cgi?id=110511
43658
43659        Reviewed by Adam Barth.
43660
43661        This is an initial patch for implementing the TextTrackRegion
43662        defined in the "WebVTT Extension: Regions for rendering cue groups":
43663        https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/region.html
43664
43665        The feature components are hidden behind the WEBVTT_REGIONS flag
43666        and is currently disabled by default in all ports and tests skipped.
43667
43668        Test: media/track/regions-webvtt/text-track-region-constructor.html
43669
43670        * WebCore.gypi: Added files to be included for building Chromium with
43671        feature enabled (it is disabled by default).
43672        * html/track/TextTrackRegion.cpp: Added.
43673        (WebCore):
43674        (WebCore::TextTrackRegion::TextTrackRegion):
43675        (WebCore::TextTrackRegion::~TextTrackRegion):
43676        (WebCore::TextTrackRegion::setId): Setter.
43677        (WebCore::TextTrackRegion::setWidth): Setter.
43678        (WebCore::TextTrackRegion::setHeight): Setter.
43679        (WebCore::TextTrackRegion::setRegionAnchorX): Setter.
43680        (WebCore::TextTrackRegion::setRegionAnchorY): Setter.
43681        (WebCore::TextTrackRegion::setViewportAnchorX): Setter.
43682        (WebCore::TextTrackRegion::setViewportAnchorY): Setter.
43683        (WebCore::TextTrackRegion::scroll): Getter. Internally, the scroll
43684        value is stored as a boolean, but when returned is converted to either
43685        the empty string or "up".
43686        (WebCore::TextTrackRegion::setScroll): Setter.
43687        (WebCore::TextTrackRegion::setRegionSettings): Not used yet (see b/109818)
43688        * html/track/TextTrackRegion.h: Added.
43689        (WebCore):
43690        (TextTrackRegion):
43691        (WebCore::TextTrackRegion::create):
43692        (WebCore::TextTrackRegion::track): Getter.
43693        (WebCore::TextTrackRegion::id): Getter.
43694        (WebCore::TextTrackRegion::width): Getter.
43695        (WebCore::TextTrackRegion::height): Getter.
43696        (WebCore::TextTrackRegion::regionAnchorX): Getter.
43697        (WebCore::TextTrackRegion::regionAnchorY): Getter.
43698        (WebCore::TextTrackRegion::viewportAnchorX): Getter.
43699        (WebCore::TextTrackRegion::viewportAnchorY): Getter.
43700        (WebCore::TextTrackRegion::regionSettings): Getter, used only internally (see b/109818).
43701        * html/track/TextTrackRegion.idl: Added.
43702        * page/DOMWindow.idl: Constructor support.
43703
437042013-03-07  Dan Carney  <dcarney@google.com>
43705
43706        [v8] remove latin-1 transition flag
43707        https://bugs.webkit.org/show_bug.cgi?id=111692
43708
43709        Reviewed by Jochen Eisinger.
43710
43711        No new tests. No change in functionality.
43712
43713        * bindings/v8/V8ValueCache.cpp:
43714        (WebCore::makeExternalString):
43715
437162013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
43717
43718        Web Inspector: NavigatorView should show (program) for uiSourceCodes with empty name.
43719        https://bugs.webkit.org/show_bug.cgi?id=111691
43720
43721        Reviewed by Alexander Pavlov.
43722
43723        Made String.prototype methods return string literal, not String object.
43724
43725        * inspector/front-end/utilities.js:
43726        (String.prototype.escapeCharacters):
43727
437282013-03-07  Eugene Klyuchnikov  <eustas@chromium.org>
43729
43730        Web Inspector: Cmd+L (Go-to-Line) masks Go to location bar action
43731        https://bugs.webkit.org/show_bug.cgi?id=111357
43732
43733        Reviewed by Pavel Feldman.
43734
43735        Allow panel shortcut handlers to bubble event.
43736
43737        * inspector/front-end/GoToLineDialog.js:
43738        (WebInspector.GoToLineDialog.install): Minor refactoring, added JSDocs.
43739        (WebInspector.GoToLineDialog._show): Added JSDocs and return value.
43740        * inspector/front-end/Panel.js:
43741        (WebInspector.Panel.prototype.handleShortcut):
43742        Mark event as handled iff handler returned true.
43743        * inspector/front-end/ScriptsPanel.js: Added return values to handlers.
43744        * inspector/front-end/TimelinePanel.js: Ditto.
43745
437462013-03-06  Takashi Sakamoto  <tasak@google.com>
43747
43748        Box-shadow displayed improperly with border-radius.
43749        https://bugs.webkit.org/show_bug.cgi?id=111256
43750
43751        Reviewed by Simon Fraser.
43752
43753        RoundedRect::adjustRadii doesn't adjust radii correctly, because
43754        the method compares maxRadiusWidth with maxRadiusHeight. However,
43755        we have to compare maxRadiusWidth / rect.width() with
43756        maxRadiusHeight / rect.height().
43757
43758        Test: fast/borders/border-radius-with-box-shadow-01.html
43759
43760        * platform/graphics/RoundedRect.cpp:
43761        (WebCore::RoundedRect::adjustRadii):
43762        Should check which ratio is smaller.
43763
437642013-03-06  Mike West  <mkwst@chromium.org>
43765
43766        [V8] Preprocess constant values to avoid a "static_cast<signed int>" in CodeGeneratorV8.
43767        https://bugs.webkit.org/show_bug.cgi?id=111625
43768
43769        Reviewed by Kentaro Hara.
43770
43771        When processing constants in IDL files, CodeGeneratorV8 currently runs
43772        the values through 'static_cast<signed int>' in the generated code. We
43773        can avoid this miniscule bit of overhead by preprocessing the hex value
43774        in Perl when generating the code.
43775
43776        The FIXME has been in the code since it originally landed in 2009[1].
43777        Now's as good a time as any to take care of it.
43778
43779        [1]: http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm?rev=144976#L2933
43780
43781        * bindings/scripts/CodeGeneratorV8.pm:
43782        (GenerateImplementation):
43783            If we're presented with a string which begins with '0x', run it
43784            through some fairly obtuse Perlisms to first convert from a hex
43785            string to an integer ('hex($value)'), "pack" the integer as an
43786            unsigned integer ('pack("I", ...)'), and then "unpack" it as a
43787            signed integer ('unpack("i", ...)'). Because that's _of course_
43788            how you would do things.
43789
437902013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
43791
43792        WebKit does not build without accelerated compositing after Changeset 144823
43793        https://bugs.webkit.org/show_bug.cgi?id=111597
43794
43795        Reviewed by Kentaro Hara.
43796
43797        Properly guard functions ifdefed in ScrollingCoordinator.h.
43798        Remove redundant checks and fallback code inside those functions.
43799
43800        * page/scrolling/ScrollingCoordinator.cpp:
43801        (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
43802        (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
43803        (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
43804        (WebCore):
43805
438062013-03-06  Hajime Morrita  <morrita@google.com>
43807
43808        Custom Elements Refactoring: CustomElementConstructor API shouldn't bound to HTMLElement
43809        https://bugs.webkit.org/show_bug.cgi?id=111678
43810
43811        Reviewed by Kentaro Hara.
43812
43813        The latest Custom Elements standard supports non-HTML custom elements. Even though current implementation
43814        support only HTML, it'd be better off to make API generic enough to support them.
43815
43816        This change
43817
43818        - eliminates HTMLElement from the API signature by replacing it with Element, and
43819        - rename V8HTMLCustomElement to V8CustomElement.
43820
43821        No new tests, just changing signatures and a class name.
43822
43823        * WebCore.gypi:
43824        * bindings/v8/V8CustomElement.cpp: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.cpp.
43825        (WebCore):
43826        (WebCore::findWrapperTypeOf):
43827        (WebCore::V8CustomElement::createWrapper):
43828        * bindings/v8/V8CustomElement.h: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.h.
43829        (WebCore):
43830        (V8CustomElement):
43831        (WebCore::V8CustomElement::toV8):
43832        (WebCore::V8CustomElement::wrap):
43833        (WebCore::HTMLCustomElement::wrap):
43834        * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
43835        (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
43836        * dom/CustomElementConstructor.cpp:
43837        (WebCore::CustomElementConstructor::createElement):
43838        * dom/CustomElementConstructor.h:
43839        (WebCore):
43840        (CustomElementConstructor):
43841        * dom/CustomElementRegistry.cpp:
43842        (WebCore::CustomElementRegistry::constructorOf):
43843        (WebCore::CustomElementRegistry::createElement):
43844        * dom/CustomElementRegistry.h:
43845        (WebCore):
43846        (CustomElementRegistry):
43847        * dom/Document.cpp: Ensured that the document is an HTML.
43848        (WebCore::Document::registerElement):
43849        * dom/Document.idl:
43850        * dom/make_names.pl:
43851        (printWrapperFactoryCppFile):
43852        * html/HTMLDocument.idl: Moved an API to Document.idl
43853
438542013-03-06  Tim Horton  <timothy_horton@apple.com>
43855
43856        TileCache debug minimap should fit inside the intersection of the visible rect and exposed rect
43857        https://bugs.webkit.org/show_bug.cgi?id=111655
43858        <rdar://problem/13355773>
43859
43860        Reviewed by Simon Fraser.
43861
43862        If content clips to the exposed rect, make the TileCache minimap fit in the exposed rect too.
43863
43864        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
43865        (WebCore::ScrollingCoordinatorMac::commitTreeState):
43866        * platform/graphics/TiledBacking.h:
43867        * platform/graphics/ca/mac/TileCache.mm:
43868        (WebCore::TileCache::updateTileCoverageMap):
43869
438702013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
43871
43872        Unreviewed, rolling out r144726.
43873        http://trac.webkit.org/changeset/144726
43874        https://bugs.webkit.org/show_bug.cgi?id=111681
43875
43876        caused performance regression for Dromaeo attribute tests.
43877        (Requested by arpitab on #webkit).
43878
43879        * dom/Element.h:
43880        (WebCore::ElementData::getAttributeItemIndex):
43881
438822013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
43883
43884        File.lastModifiedDate() should return the current date/time if the file date/time is not available
43885        https://bugs.webkit.org/show_bug.cgi?id=111403
43886
43887        Reviewed by Kent Tamura.
43888
43889        Per the recent File API spec change:
43890        http://www.w3.org/TR/2012/WD-FileAPI-20121025/#dfn-lastModifiedDate
43891
43892        Test: http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js:
43893
43894        * fileapi/File.cpp:
43895        (WebCore::File::lastModifiedDate): Changed to return the current date/time instead null if the valid file date/time is not available.
43896        * fileapi/File.h:
43897        (File):
43898
438992013-03-06  Philippe Liard  <pliard@chromium.org>
43900
43901        Make RuleData support up to 8191 selectors
43902        https://bugs.webkit.org/show_bug.cgi?id=111663
43903
43904        Reviewed by Andreas Kling.
43905
43906        r125294 made RuleData consume less memory by replacing a pointer with
43907        an index encoded on 12 bits.
43908        This unfortunately breaks Chrome for Android (and others) when a lot of
43909        CSS is used or more precisely when selectorIndex cannot be stored on 12
43910        bits.
43911
43912        Threfore this change decreases the number of bits used to store
43913        m_position by 1 (from 19 to 18) and adds this extra bit to
43914        m_selectorIndex so that values up to 8191 can be stored safely without
43915        overflowing.
43916
43917        * css/RuleSet.h:
43918        (RuleData):
43919
439202013-03-06  Seokju Kwon  <seokju.kwon@gmail.com>
43921
43922        Web Inspector: Remove unused code from contextmenu of element panel
43923        https://bugs.webkit.org/show_bug.cgi?id=111658
43924
43925        Reviewed by Pavel Feldman.
43926
43927        No new tests (no functional changes).
43928
43929        * inspector/front-end/ElementsPanel.js:
43930        (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
43931        * inspector/front-end/ElementsTreeOutline.js:
43932        (WebInspector.ElementsTreeOutline.prototype.populateContextMenu):
43933
439342013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
43935
43936        [CSS Grid Layout] Extend our grammar to support 2 positions for grid-{row|column}
43937        https://bugs.webkit.org/show_bug.cgi?id=110777
43938
43939        Reviewed by Tony Chang.
43940
43941        Now that we support all the logical grid properties, we can change grid-{row|column}
43942        into shorthands. That's what this change does along with extending our parsing support
43943        to handle 2 positions.
43944
43945        Tests: fast/css-grid-layout/grid-item-column-row.html
43946               fast/css-grid-layout/grid-item-end-after-get-set.html
43947               fast/css-grid-layout/grid-item-start-before-get-set.html
43948
43949        * css/CSSComputedStyleDeclaration.cpp:
43950        Removed grid-{row|column} from computedProperties as they are shorthands (see comments
43951        at computedProperties definition).
43952
43953        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
43954        (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForGridShorthand):
43955        Switched to using the StylePropertyShorthand and reusing the existing longhand code.
43956
43957        * css/CSSComputedStyleDeclaration.h:
43958        Added getCSSPropertyValuesForGridShorthand.
43959
43960        * css/CSSParser.cpp:
43961        (WebCore::CSSParser::parseValue):
43962        (WebCore::CSSParser::parseGridItemPositionShorthand):
43963        Added custom parsing for the shorthand, that builds on top of the longhand code.
43964
43965        * css/CSSParser.h:
43966        Added parseGridItemPositionShorthand.
43967
43968        * css/StyleResolver.cpp:
43969        (WebCore::StyleResolver::applyProperty):
43970        Removed the previous handling as shorthand are expanded at parse time.
43971
43972        * css/StylePropertySet.cpp:
43973        (WebCore::StylePropertySet::getPropertyValue):
43974        Added the new shorthands to the list.
43975
43976        * css/StylePropertyShorthand.cpp:
43977        (WebCore::webkitGridColumnShorthand):
43978        (WebCore::webkitGridRowShorthand):
43979        (WebCore::shorthandForProperty):
43980        * css/StylePropertyShorthand.h:
43981        Registered grid-{row|column} as shorthands.
43982
439832013-03-06  Kenneth Russell  <kbr@google.com>
43984
43985        [Chromium] Fix byte ordering bugs reading back WebGL canvases' content on Android
43986        https://bugs.webkit.org/show_bug.cgi?id=111661
43987
43988        Reviewed by James Robinson.
43989
43990        No new tests; covered by existing tests. Ran WebGL conformance
43991        tests on Android and desktop Linux to verify fix.
43992
43993        * platform/chromium/support/GraphicsContext3DChromium.cpp:
43994        (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
43995            Avoid incorrect byte swap on Android and other OSs which don't
43996            swizzle R and B channels.
43997
439982013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
43999
44000        [EFL] Improve warning messages when input value is out of range.
44001        https://bugs.webkit.org/show_bug.cgi?id=111534
44002
44003        Reviewed by Laszlo Gombos.
44004
44005        Show input value range when user inputs greater or less value.
44006
44007        * platform/efl/LocalizedStringsEfl.cpp:
44008        (WebCore::validationMessageRangeOverflowText):
44009        (WebCore::validationMessageRangeUnderflowText):
44010
440112013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
44012
44013        [EFL][WK2] Enable interactive form validation for email and url input type validation
44014        https://bugs.webkit.org/show_bug.cgi?id=111026
44015
44016        Reviewed by Laszlo Gombos.
44017
44018        WebKit EFL can check if input value is valid by enabling this feature.
44019
44020        * platform/efl/LocalizedStringsEfl.cpp: Change validation messages of email and url the same with chromium port.
44021        (WebCore::validationMessageTypeMismatchForEmailText):
44022        (WebCore::validationMessageTypeMismatchForMultipleEmailText):
44023        (WebCore::validationMessageTypeMismatchForURLText):
44024        * platform/efl/RenderThemeEfl.cpp: Add type checking conditions for email and url.
44025        (WebCore::RenderThemeEfl::supportsDataListUI):
44026
440272013-03-06  Aaron Colwell  <acolwell@chromium.org>
44028
44029        Remove WebCore::Node::isActiveNode() since it isn't called anywhere.
44030        https://bugs.webkit.org/show_bug.cgi?id=111646
44031
44032        Reviewed by Kentaro Hara.
44033
44034        No new tests. This removes dead code.
44035
44036        * dom/Node.h:
44037        (Node):
44038        * html/HTMLAudioElement.h:
44039
440402013-03-06  Abhishek Arya  <inferno@chromium.org>
44041
44042        Crash in SVGViewSpec::viewTarget
44043        https://bugs.webkit.org/show_bug.cgi?id=111648
44044
44045        Reviewed by Philip Rogers.
44046
44047        * svg/SVGViewSpec.cpp:
44048        (WebCore::SVGViewSpec::viewTarget):
44049
440502013-03-06  Benjamin Poulain  <benjamin@webkit.org>
44051
44052        WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
44053        https://bugs.webkit.org/show_bug.cgi?id=42696
44054
44055        Reviewed by Andreas Kling.
44056
44057        Since the method acts directly on a WebCore element and strictly test
44058        HTMLInputElement::shouldAutoComplete(), the test function is moved to internals.
44059
44060        * testing/Internals.cpp:
44061        (WebCore::Internals::elementShouldAutoComplete):
44062        * testing/Internals.h:
44063        * testing/Internals.idl:
44064
440652013-03-06  Alexey Proskuryakov  <ap@apple.com>
44066
44067        [Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information
44068        https://bugs.webkit.org/show_bug.cgi?id=111623
44069
44070        Reviewed by Brady Eidson.
44071
44072        * WebCore.exp.in: Exported functions for building synthetic responses.
44073
44074        * platform/network/ResourceResponseBase.cpp:
44075        * platform/network/ResourceResponseBase.h:
44076        Added a lot of FIXMEs.
44077
44078        * platform/network/cf/ResourceResponse.h:
44079        (WebCore::ResourceResponse::ResourceResponse):
44080        (WebCore::ResourceResponse::platformResponseIsUpToDate):
44081        Track m_platformResponseIsUpToDate flag as well as we can. Currently, it will
44082        be incorrect if a real platform response gets mutated.
44083
44084        * platform/network/cf/ResourceResponseCFNet.cpp:
44085        (WebCore::ResourceResponse::cfURLResponse): Added a FIXME about how useless this
44086        function is when it tries to create a new CFURLResponse.
44087
44088        * platform/network/mac/ResourceResponseMac.mm:
44089        (WebCore::ResourceResponse::initNSURLResponse): Added a FIXME.
44090        (WebCore::ResourceResponse::nsURLResponse): Added a return to make logic more clear.
44091        (WebCore::ResourceResponse::ResourceResponse): Track m_platformResponseIsUpToDate.
44092
44093        * platform/network/blackberry/ResourceResponse.h:
44094        * platform/network/curl/ResourceResponse.h:
44095        * platform/network/qt/ResourceResponse.h:
44096        * platform/network/soup/ResourceResponse.h:
44097        * platform/network/win/ResourceResponse.h:
44098        These platforms do not keep a platform response, so it's never up to date, and
44099        WebCore data needs to be serialized.
44100
441012013-03-06  Dana Jansens  <danakj@chromium.org>
44102
44103        [chromium] Remove WebSharedGraphicsContext3D class
44104        https://bugs.webkit.org/show_bug.cgi?id=111492
44105
44106        Reviewed by James Robinson.
44107
44108        Removing dead code, no new tests.
44109
44110        * WebCore.gypi:
44111        * platform/chromium/support/WebSharedGraphicsContext3D.cpp: Removed.
44112
441132013-03-06  Dana Jansens  <danakj@chromium.org>
44114
44115        [chromium] Don't get callbacks or create GrContext from unowned WebGraphicsContext3D
44116        https://bugs.webkit.org/show_bug.cgi?id=111638
44117
44118        Reviewed by James Robinson.
44119
44120        If the context is not owned, it's lifetime is not guaranteed, and by the time
44121        the GraphicsContext3D is destroyed, the WGC3D can already be deleted.
44122
44123        When the context is not owned by the GraphicsContext3D, then don't clean it up
44124        in the destructor or set up callbacks, as these are the owner's responsibility.
44125
44126        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
44127        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
44128        (WebCore::GraphicsContext3DPrivate::grContext):
44129        (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
44130        (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
44131
441322013-02-22  Jer Noble  <jer.noble@apple.com>
44133
44134        Default mouse cursor behavior should be auto-hide for full screen video with custom controls
44135        https://bugs.webkit.org/show_bug.cgi?id=107601
44136
44137        Reviewed by Beth Dakin.
44138
44139        Test: fullscreen/video-cursor-auto-hide.html
44140
44141        To facilitate automatically hiding the mouse cursor after a certain amount of idle mouse
44142        time, add a new CSS property '-webkit-cursor-visibility', and handle that value inside of
44143        EventHandler. When that value is present, the EventHandler will start a timer which, when
44144        fired, will set the view's cursor to the None cursor. Subsequent mouse moves will either
44145        cancel the timer, or reset the auto-hide timer.
44146
44147        Add a new CSS property, '-webkit-cursor-visibility':
44148        * css/CSSComputedStyleDeclaration.cpp:
44149        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44150        * css/CSSParser.cpp:
44151        (WebCore::CSSParser::parseValue):
44152        * css/CSSPrimitiveValueMappings.h:
44153        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
44154        (WebCore::CSSPrimitiveValue::operator ECursorVisibility):
44155        * css/CSSProperty.cpp:
44156        (WebCore::CSSProperty::isInheritedProperty):
44157        * css/CSSPropertyNames.in:
44158        * css/CSSValueKeywords.in:
44159        * css/StyleBuilder.cpp:
44160        (WebCore::StyleBuilder::StyleBuilder):
44161        * css/StyleResolver.cpp:
44162        (WebCore::StyleResolver::applyProperty):
44163
44164        Add a rule for video descendants of full screen elements to auto-hide the cursor on hover:
44165        * css/fullscreen.css:
44166        (:-webkit-full-screen video:hover):
44167
44168        Add a new timer, m_autoHideCursorTimer, to control resetting the view's cursor to None after
44169        enough mouse idle time has passed.
44170        * page/EventHandler.cpp:
44171        (WebCore::EventHandler::EventHandler):
44172        (WebCore::EventHandler::~EventHandler):
44173        (WebCore::EventHandler::clear):
44174        (WebCore::EventHandler::selectCursor):
44175        (WebCore::EventHandler::startAutoHideCursorTimer):
44176        (WebCore::EventHandler::cancelAutoHideCursorTimer):
44177        (WebCore::EventHandler::autoHideCursorTimerFired):
44178        * page/EventHandler.h:
44179
44180        Make FrameView::isActive() a public function (like it is in its superclass).
44181        * page/FrameView.h:
44182        (FrameView):
44183
44184        Move the definition for timeWithoutMouseMovementBeforeHidingControls from page->theme()
44185        to page->settings() and allow that setting to be overridden in InternalSettings for 
44186        testing purposes:
44187        * page/Settings.cpp:
44188        (WebCore::Settings::Settings):
44189        * page/Settings.h:
44190        (WebCore::Settings::setTimeWithoutMouseMovementBeforeHidingControls):
44191        (WebCore::Settings::timeWithoutMouseMovementBeforeHidingControls):
44192        * rendering/RenderTheme.h:
44193        * testing/InternalSettings.cpp:
44194        (WebCore::InternalSettings::Backup::Backup):
44195        (WebCore::InternalSettings::Backup::restoreTo):
44196        (WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls):
44197        * testing/InternalSettings.h:
44198        (InternalSettings):
44199        * testing/InternalSettings.idl:
44200        * html/shadow/MediaControls.cpp:
44201        (WebCore::MediaControls::startHideFullscreenControlsTimer):
44202
44203        Add support to FeatureObserver for CURSOR_VISIBILITY:
44204        * page/FeatureObserver.h:
44205
44206        Enable the feature flag:
44207        * Configurations/FeatureDefines.xcconfig:
44208
442092013-03-06  Jer Noble  <jer.noble@apple.com>
44210
44211        Full screen from an iframe with a z-index style will allow siblings with higher z-index to overlay full screen content.
44212        https://bugs.webkit.org/show_bug.cgi?id=111637
44213
44214        Reviewed by Simon Fraser.
44215
44216        No new tests; updated fullscreen/full-screen-iframe-zIndex.html to expose bug.
44217
44218        Pages with explicit z-index: styles on their iframes will override the default z-index: UA style when
44219        elements within that iframe enter full screen mode. Mark the UA style as !important so as to not allow
44220        iframe siblings with higher z-index styles to overlay the full screen element.
44221
44222        * css/fullscreen.css:
44223        (:-webkit-full-screen):
44224
442252013-03-06  Levi Weintraub  <leviw@chromium.org>
44226
44227        InsertUnorderedList can lead to lost content and assertions in moveParagraphs
44228        https://bugs.webkit.org/show_bug.cgi?id=111228
44229
44230        Reviewed by Ryosuke Niwa.
44231
44232        When a list is wrapped in a presentational inline like a b tag, we'd create markup that included
44233        everything up to the b tag from moveParagraphs when intending to only move the contents of the
44234        list item. This could make it impossible to remove content from a list and trigger loss of
44235        editable text.
44236
44237        Test: editing/execCommand/insert-remove-block-list-inside-presentational-inline.html
44238
44239        * editing/EditingStyle.cpp:
44240        (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Ensure there's an inline style
44241        before calling propertyExistsInStyle.
44242        (WebCore::HTMLElementEquivalent::propertyExistsInStyle): Removing null check for style.
44243        All callers ensure this value isn't null.
44244        * editing/markup.cpp:
44245        (WebCore::highestAncestorToWrapMarkup): Avoid going over RenderBlocks when finding the highest
44246        presentational ancestor to avoid leaving the bounds of the original paragraph.
44247
442482013-03-06  Adam Klein  <adamk@chromium.org>
44249
44250        [V8] Use implicit references instead of object groups to keep registered MutationObservers alive
44251        https://bugs.webkit.org/show_bug.cgi?id=111382
44252
44253        Reviewed by Adam Barth.
44254
44255        Two-phase approach to implicit references: after grouping objects
44256        together, add an implicit reference between each registered node's
44257        group and the MutationObserver's group (which includes wrappers from
44258        all worlds).
44259
44260        Also changed many uses of v8::Value to v8::Object where we know we're
44261        dealing with Object and the V8 API expects them.
44262
44263        Test: ManualTests/mutation-observer-leaks-nodes.html
44264
44265        * bindings/v8/V8GCController.cpp:
44266        (WebCore::ImplicitConnection::ImplicitConnection):
44267        (WebCore::ImplicitConnection::wrapper):
44268        (ImplicitConnection):
44269        (WebCore::ImplicitReference::ImplicitReference): Wrapper class holding a parent who should have an implicit reference to a child.
44270        (ImplicitReference):
44271        (WebCore::operator<): Needed for std::sort() call to avoid the overhead of using a HashMap
44272        (WebCore::WrapperGrouper::addObjectWrapperToGroup):
44273        (WebCore::WrapperGrouper::addNodeWrapperToGroup):
44274        (WebCore::WrapperGrouper::addImplicitReference):
44275        (WrapperGrouper):
44276        (WebCore::WrapperGrouper::apply):
44277
442782013-03-06  Ankur Taly  <ataly@google.com>
44279
44280        Modify log method in V8DOMActivityLogger so that the apiName and
44281        extraInfo arguments are of type const String& instead of const char*.
44282        This change gets rid of some of the memory ownership issues that arise
44283        with char* pointers.
44284        https://bugs.webkit.org/show_bug.cgi?id=111483
44285
44286        Reviewed by Adam Barth.
44287
44288        There are no new tests as there is no change in behavior.
44289
44290        * bindings/v8/V8DOMActivityLogger.h:
44291        (WebCore::V8DOMActivityLogger::log):
44292
442932013-03-06  Mike Reed  <reed@google.com>
44294
44295        Use SkTypeface API directly, rather than (soon to be private) SkFontHost
44296        https://bugs.webkit.org/show_bug.cgi?id=111588
44297
44298        Reviewed by Stephen White.
44299
44300        No new tests, as existing tests in fast/writing-mode exercise this code.
44301
44302        e.g. japanese-rl-text-with-broken-font.html
44303             vertical-subst-font-vert-no-dflt.html
44304
44305        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
44306        (WebCore::FontPlatformData::emSizeInFontUnits):
44307        (WebCore::FontPlatformData::openTypeTable):
44308        * platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp:
44309        (WebCore::harfBuzzSkiaGetTable):
44310        (WebCore::HarfBuzzFace::createFace):
44311        * platform/graphics/skia/SimpleFontDataSkia.cpp:
44312        (WebCore::SimpleFontData::platformInit):
44313
443142013-03-06  Victor Costan <costan@gmail.com>
44315
44316        Cleanup in multipart FormData sending code.
44317        https://bugs.webkit.org/show_bug.cgi?id=111603
44318
44319        Reviewed by Alexey Proskuryakov.
44320
44321        No new tests. This is cleanup.
44322
44323        * platform/network/FormDataBuilder.cpp:
44324        (WebCore::appendQuotedString): use proper types (e.g, size_t instead of
44325        unsigned long)
44326
443272013-03-06  Tony Gentilcore  <tonyg@chromium.org>
44328
44329        Threaded HTML parser should use 8 bit strings for attributes
44330        https://bugs.webkit.org/show_bug.cgi?id=111610
44331
44332        Reviewed by Eric Seidel.
44333
44334        This fixes a 27% regression in dromaeo_jslibattrjquery on the threaded HTML parser vs. the main thread parser.
44335
44336        No new tests because no new functionality.
44337
44338        * html/parser/CompactHTMLToken.cpp:
44339        (WebCore::CompactHTMLToken::CompactHTMLToken):
44340
443412013-03-06  Alpha Lam  <hclam@chromium.org>
44342
44343        More cleanup in GIFImageReader
44344        https://bugs.webkit.org/show_bug.cgi?id=111137
44345
44346        Reviewed by Stephen White.
44347
44348        Refactor GIFImageReaderReader with the following changes:
44349        + Separate GIFLZWContext for decoding states.
44350        + Replace unsigned char* with Vector<unsigned char>
44351
44352        There is no change in code behavior and just refactoring.
44353
44354        No new tests. This is covered by existing GIFImageReaderTest.
44355        I also did a local testing on a 50k image corpus and showed no regression.
44356
44357        * platform/image-decoders/gif/GIFImageDecoder.cpp:
44358        (WebCore::GIFImageDecoder::haveDecodedRow):
44359        * platform/image-decoders/gif/GIFImageDecoder.h:
44360        (GIFImageDecoder):
44361        * platform/image-decoders/gif/GIFImageReader.cpp:
44362        (GIFImageReader::outputRow):
44363        (GIFImageReader::doLZW):
44364        (GIFImageReader::decodeInternal):
44365        (GIFImageReader::prepareLZWContext):
44366        * platform/image-decoders/gif/GIFImageReader.h:
44367        (GIFFrameContext):
44368        (GIFFrameContext::GIFFrameContext):
44369        (GIFFrameContext::~GIFFrameContext):
44370        (GIFLZWContext):
44371        (GIFLZWContext::GIFLZWContext):
44372        (GIFImageReader):
44373
443742013-03-06  Tim Horton  <timothy_horton@apple.com>
44375
44376        Fix typo'd MainThreadScrollingBecauseOfStyleIndictaion
44377        https://bugs.webkit.org/show_bug.cgi?id=111557
44378
44379        Reviewed by Geoff Garen.
44380
44381        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44382        (WebCore::ScrollingCoordinatorMac::commitTreeState):
44383        * platform/graphics/TiledBacking.h:
44384        * platform/graphics/ca/mac/TileCache.mm:
44385        (WebCore::TileCache::updateTileCoverageMap):
44386
443872013-03-05  Geoffrey Garen  <ggaren@apple.com>
44388
44389        Removed some dead code in the page cache
44390        https://bugs.webkit.org/show_bug.cgi?id=111525
44391
44392        Reviewed by Alexey Proskuryakov.
44393
44394        Page cache autorelease doesn't exist anymore, so there's no need to keep
44395        around these olds hacks.
44396
44397        * WebCore.exp.in:
44398        * history/PageCache.cpp:
44399        (WebCore::PageCache::PageCache):
44400        (WebCore):
44401        * history/PageCache.h:
44402        (PageCache):
44403        * page/Settings.cpp:
44404        (WebCore::Settings::setUsesPageCache):
44405        * platform/mac/MemoryPressureHandlerMac.mm:
44406        (WebCore::MemoryPressureHandler::releaseMemory):
44407        * platform/qt/QtTestSupport.cpp:
44408        (WebKit::QtTestSupport::clearMemoryCaches):
44409
444102013-03-06  Rafael Weinstein  <rafaelw@chromium.org>
44411
44412        Unreviewed, rolling out r144924.
44413        http://trac.webkit.org/changeset/144924
44414        https://bugs.webkit.org/show_bug.cgi?id=109908
44415
44416        caused multiple crashes in inspector/debugger tests
44417
44418        * bindings/js/JSInjectedScriptHostCustom.cpp:
44419        * bindings/js/ScriptObject.h:
44420        * bindings/v8/ScriptObject.h:
44421        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
44422        * inspector/InjectedScriptHost.cpp:
44423        (WebCore::InjectedScriptHost::create):
44424        (WebCore::InjectedScriptHost::InjectedScriptHost):
44425        (WebCore::InjectedScriptHost::disconnect):
44426        * inspector/InjectedScriptHost.h:
44427        (WebCore):
44428        (InjectedScriptHost):
44429        * inspector/InjectedScriptHost.idl:
44430        * inspector/InjectedScriptManager.cpp:
44431        (WebCore::InjectedScriptManager::InjectedScriptManager):
44432        (WebCore::InjectedScriptManager::discardInjectedScripts):
44433        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
44434        * inspector/InjectedScriptManager.h:
44435        (InjectedScriptManager):
44436        * inspector/InjectedScriptSource.js:
44437        (.):
44438
444392013-03-06  Dmitry Zvorygin  <zvorygin@chromium.org>
44440
44441        Introduce new message sources for logging.
44442        https://bugs.webkit.org/show_bug.cgi?id=110968
44443
44444        Reviewed by Pavel Feldman.
44445
44446        Added SecurityMessageSource, RenderingMessageSource, StorageMessageSource, AppCacheMessageSource, CSSMessageSource.
44447        Changed some logging lines to contain more descriptive message source.
44448
44449        * Modules/webdatabase/DatabaseBase.cpp:
44450        (WebCore::DatabaseBase::logErrorMessage):
44451        * Modules/webdatabase/DatabaseManager.cpp:
44452        (WebCore::DatabaseManager::logErrorMessage):
44453        * Modules/websockets/WebSocketChannel.cpp:
44454        (WebCore::WebSocketChannel::fail):
44455        * bindings/ScriptControllerBase.cpp:
44456        (WebCore::ScriptController::canExecuteScripts):
44457        * css/MediaList.cpp:
44458        (WebCore::addResolutionWarningMessageToConsole):
44459        * dom/Document.cpp:
44460        (WebCore::Document::processHttpEquiv):
44461        * dom/ScriptElement.cpp:
44462        (WebCore::ScriptElement::executeScript):
44463        (WebCore::ScriptElement::notifyFinished):
44464        * dom/ViewportArguments.cpp:
44465        (WebCore::reportViewportWarning):
44466        * html/HTMLFormControlElement.cpp:
44467        (WebCore::shouldAutofocus):
44468        * html/HTMLFormElement.cpp:
44469        (WebCore::HTMLFormElement::validateInteractively):
44470        * html/HTMLIFrameElement.cpp:
44471        (WebCore::HTMLIFrameElement::parseAttribute):
44472        * html/canvas/CanvasRenderingContext2D.cpp:
44473        (WebCore::CanvasRenderingContext2D::getImageData):
44474        * html/canvas/WebGLRenderingContext.cpp:
44475        (WebCore):
44476        (WebCore::WebGLRenderingContext::printWarningToConsole):
44477        * html/parser/XSSAuditor.cpp:
44478        (WebCore::XSSAuditor::init):
44479        * html/parser/XSSAuditorDelegate.cpp:
44480        (WebCore::XSSAuditorDelegate::didBlockScript):
44481        * inspector/ConsoleMessage.cpp:
44482        (WebCore::messageSourceValue):
44483        * inspector/Inspector.json:
44484        * loader/FrameLoader.cpp:
44485        (WebCore::FrameLoader::submitForm):
44486        (WebCore::FrameLoader::reportLocalLoadFailed):
44487        (WebCore::createWindow):
44488        * loader/ImageLoader.cpp:
44489        (WebCore::ImageLoader::notifyFinished):
44490        * loader/MainResourceLoader.cpp:
44491        (WebCore::MainResourceLoader::responseReceived):
44492        * loader/MixedContentChecker.cpp:
44493        (WebCore::MixedContentChecker::logWarning):
44494        * loader/TextTrackLoader.cpp:
44495        (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
44496        * loader/appcache/ApplicationCacheGroup.cpp:
44497        (WebCore::ApplicationCacheGroup::abort):
44498        * loader/cache/CachedResourceLoader.cpp:
44499        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
44500        * page/Console.cpp:
44501        (WebCore::printMessageSourceAndLevelPrefix):
44502        * page/ConsoleTypes.h:
44503        * page/ContentSecurityPolicy.cpp:
44504        (WebCore::ContentSecurityPolicy::logToConsole):
44505        * page/DOMWindow.cpp:
44506        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
44507        * page/PointerLockController.cpp:
44508        (WebCore::PointerLockController::requestPointerLock):
44509        * svg/SVGDocumentExtensions.cpp:
44510        (WebCore::reportMessage):
44511
445122013-03-06  Florin Malita  <fmalita@chromium.org>
44513
44514        SVG pattern to pattern reference does not work if first pattern has a child node
44515        https://bugs.webkit.org/show_bug.cgi?id=111586
44516
44517        Reviewed by Philip Rogers.
44518
44519        SVGPatternElement::collectPatternAttributes should test for child elements, not child nodes.
44520
44521        Tests: svg/custom/pattern-reference-expected.svg
44522               svg/custom/pattern-reference.svg
44523
44524        * svg/SVGPatternElement.cpp:
44525        (WebCore::SVGPatternElement::collectPatternAttributes):
44526
445272013-03-06  Christophe Dumez  <ch.dumez@sisa.samsung.com>
44528
44529        [soup] session cookies are not correctly reported in getRawCookies()
44530        https://bugs.webkit.org/show_bug.cgi?id=111584
44531
44532        Reviewed by Martin Robinson.
44533
44534        As per libsoup documentation, SoupCookie->expires is NULL for session cookies.
44535        However, the soup implementation for getRawCookies() does not check for NULL
44536        case before passing the value to soup_date_to_time_t(), which leads to run time
44537        warnings.
44538
44539        We should also pass true for WebCore::Cookie's session argument if
44540        SoupCookie->expires is NULL. The current implementation reports the cookie as a
44541        session one if soup_cookie_jar_is_persistent(jar) returns true, which is
44542        inaccurate.
44543
44544        No new tests, no behavior change for layout tests as Web Inspector currently
44545        ignores the "session" member and uses expires/max-age instead to deduce it.
44546
44547        * platform/network/soup/CookieJarSoup.cpp:
44548        (WebCore::getRawCookies):
44549
445502013-03-06  Douglas Stockwell  <dstockwell@chromium.org>
44551
44552        REGRESSION(r111639): delayed animation start can be postponed
44553        https://bugs.webkit.org/show_bug.cgi?id=108582
44554
44555        Query the animation timer directly for the time it will next fire rather than
44556        trying to cache the interval. Previous approach was incorrect -- as time advanced
44557        it was possible for the interval to jump beyond the next service time.
44558
44559        Reviewed by Darin Adler.
44560
44561        Test: animations/animation-delay-changed.html
44562
44563        * page/animation/AnimationController.cpp:
44564        (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
44565        (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
44566        (WebCore::AnimationControllerPrivate::updateAnimationTimer):
44567        * page/animation/AnimationControllerPrivate.h:
44568        (AnimationControllerPrivate): Remove m_previousTimeToNextService
44569
445702013-03-06  Andrey Lushnikov  <lushnikov@chromium.org>
44571
44572        Web Inspector: [ACE] show execution line in Ace editor
44573        https://bugs.webkit.org/show_bug.cgi?id=111575
44574
44575        Reviewed by Pavel Feldman.
44576
44577        Highlight execution line by the means of Ace full line markers.
44578
44579        No new tests.
44580
44581        * inspector/front-end/AceTextEditor.js:
44582        (WebInspector.AceTextEditor.prototype.setExecutionLine):
44583        (WebInspector.AceTextEditor.prototype.clearExecutionLine):
44584        (WebInspector.AceTextEditor.prototype.setSelection):
44585        * inspector/front-end/ace/acedevtools.css:
44586        (.ace-editor-container):
44587        (.webkit-execution-line):
44588
445892013-03-06  Yury Semikhatsky  <yurys@chromium.org>
44590
44591        Web Inspector: fix closure compiler warnings in the profiler code
44592        https://bugs.webkit.org/show_bug.cgi?id=111581
44593
44594        Reviewed by Vsevolod Vlasov.
44595
44596        Added missing annotations. Replaced NativeProfileLauncherView with
44597        ProfileLauncherView.
44598
44599        * inspector/InjectedScriptExterns.js:
44600        (InjectedScriptHost.prototype.objectId):
44601        (InjectedScriptHost.prototype.releaseObjectId):
44602        * inspector/front-end/FlameChart.js:
44603        (WebInspector.FlameChart.prototype._forEachNode):
44604        * inspector/front-end/ProfileLauncherView.js:
44605        * inspector/front-end/ProfilesPanel.js:
44606
446072013-03-06  Carlos Garcia Campos  <cgarcia@igalia.com>
44608
44609        [BlackBerry] Pass String::StrictConversion instead of true to String::utf8()
44610        https://bugs.webkit.org/show_bug.cgi?id=111546
44611
44612        Reviewed by Rob Buis.
44613
44614        String::utf8() API changed in r134173.
44615
44616        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
44617        (WebCore::MediaPlayerPrivate::notifyChallengeResult):
44618
446192013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
44620
44621        Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
44622        https://bugs.webkit.org/show_bug.cgi?id=111505
44623
44624        Unreviewed minimal build fix.
44625
44626        * css/StyleResolver.cpp:
44627        (WebCore::StyleResolver::applyProperty):
44628        Put CSSPropertyWebkitWrap under the proper if-guard.
44629
446302013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
44631
44632        Unreviewed follow up to r144928: front-end closure compilation fixes.
44633
44634        * inspector/front-end/FilteredItemSelectionDialog.js:
44635        (WebInspector.JavaScriptOutlineDialog.prototype.dispose):
44636        (WebInspector.OpenResourceDialog.prototype.dispose):
44637        * inspector/front-end/StyleSheetOutlineDialog.js:
44638        (WebInspector.StyleSheetOutlineDialog.prototype.dispose):
44639
446402013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
44641
44642        Web Inspector: Update open resource dialog when new uiSourceCodes are loaded.
44643        https://bugs.webkit.org/show_bug.cgi?id=111327
44644
44645        Reviewed by Pavel Feldman.
44646
44647        * inspector/front-end/FilteredItemSelectionDialog.js:
44648        (WebInspector.FilteredItemSelectionDialog):
44649        (WebInspector.FilteredItemSelectionDialog.prototype.willHide):
44650        (WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
44651        (WebInspector.FilteredItemSelectionDialog.prototype._updateAfterItemsLoaded):
44652        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
44653        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
44654        (WebInspector.SelectionDialogContentProvider.prototype.dispose):
44655        (WebInspector.JavaScriptOutlineDialog.prototype._didBuildOutlineChunk):
44656        (WebInspector.OpenResourceDialog):
44657        (WebInspector.OpenResourceDialog.prototype.requestItems):
44658        (WebInspector.OpenResourceDialog.prototype._filterUISourceCode):
44659        (WebInspector.OpenResourceDialog.prototype._uiSourceCodeAdded):
44660        (WebInspector.OpenResourceDialog.prototype.dispose):
44661        * inspector/front-end/StyleSheetOutlineDialog.js:
44662        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
44663        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
44664
446652013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
44666
44667        Web Inspector: Move sidebar-specific styles to a separate file.
44668        https://bugs.webkit.org/show_bug.cgi?id=111173
44669
44670        Reviewed by Pavel Feldman.
44671
44672        * WebCore.gypi:
44673        * inspector/front-end/BreakpointsSidebarPane.js:
44674        (WebInspector.JavaScriptBreakpointsSidebarPane):
44675        (WebInspector.EventListenerBreakpointsSidebarPane):
44676        * inspector/front-end/NativeBreakpointsSidebarPane.js:
44677        (WebInspector.NativeBreakpointsSidebarPane):
44678        * inspector/front-end/SidebarPane.js:
44679        (WebInspector.SidebarPaneTitle):
44680        (WebInspector.SidebarPaneStack):
44681        (WebInspector.SidebarTabbedPane):
44682        * inspector/front-end/WebKit.qrc:
44683        * inspector/front-end/breakpointsList.css: Added.
44684        (.sidebar-pane > .body .breakpoint-condition):
44685        (#breakpoint-condition-input):
44686        (ol.breakpoint-list):
44687        (.breakpoints-list-deactivated):
44688        (.breakpoint-list li):
44689        (.breakpoint-list li:hover):
44690        (.breakpoint-list .checkbox-elem):
44691        (.breakpoint-list .source-text):
44692        (.sidebar-pane .breakpoint-hit):
44693        (li.breakpoint-hit .breakpoint-hit-marker):
44694        (.event-listener-breakpoints .event-category):
44695        (.event-listener-breakpoints.properties-tree .children li):
44696        (.event-listener-breakpoints .checkbox-elem):
44697        * inspector/front-end/elementsPanel.css:
44698        (.panel.elements .sidebar-pane-toolbar > select):
44699        (.panel.elements .sidebar-pane-toolbar > select:hover):
44700        (.panel.elements .sidebar-pane-toolbar > select:active):
44701        (.panel.elements .sidebar-pane-toolbar > select.select-settings):
44702        (.panel.elements .sidebar-pane-toolbar > select.select-filter):
44703        (.panel.elements .sidebar-pane-toolbar > select > option, .panel.elements .sidebar-pane-toolbar > select > hr):
44704        * inspector/front-end/inspector.css:
44705        (.event-bar .event-properties):
44706        * inspector/front-end/scriptsPanel.css:
44707        (.workers-list > li):
44708        (a.worker-item):
44709        (a.worker-item:hover):
44710        * inspector/front-end/sidebarPane.css: Added.
44711        (.sidebar-pane):
44712        (.sidebar-pane > .body):
44713        (.sidebar-pane > .body .info):
44714        (.sidebar-pane > .body .placard + .info):
44715        (.sidebar-pane.visible > .body):
44716        (.sidebar-pane .section .properties):
44717        (.sidebar-tabbed-pane .tabbed-pane-header):
44718        (.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1)):
44719        (.sidebar-pane-title):
44720        (.sidebar-pane-title + .sidebar-pane-title, .pane:not(.visible) + .sidebar-pane-title, .sidebar-pane-title:first-of-type):
44721        (.sidebar-pane-title:active):
44722        (.sidebar-pane-title::before):
44723        (.sidebar-pane-title.expanded::before):
44724        (.sidebar-pane-toolbar):
44725        (.sidebar-pane-toolbar > *):
44726        (.sidebar-pane-toolbar > .pane-title-button):
44727        (.sidebar-pane-toolbar > .pane-title-button:hover):
44728        (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
44729        (.sidebar-pane-toolbar > .pane-title-button.add):
44730        (.sidebar-pane-toolbar > .pane-title-button.element-state):
44731        (.sidebar-pane-toolbar > .pane-title-button.refresh):
44732        (.sidebar-pane-subtitle):
44733        (body.platform-windows .sidebar-pane-subtitle):
44734        (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
44735
447362013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
44737
44738        Web Inspector: Combine style-related panes into a single tab when Elements panel is split horizontally.
44739        https://bugs.webkit.org/show_bug.cgi?id=111550
44740        Reviewed by Pavel Feldman.
44741
44742        Grouping the Elements sidebar panes into two tabbed panes proved to be
44743        confusing and inconvenient. Put all the Elements sidebar panes into a single tabbed pane.
44744        Combined Styles, Computed Style and Metrics into a single pane.
44745
44746        * inspector/front-end/ElementsPanel.js:
44747        (WebInspector.ElementsPanel.prototype._splitVertically):
44748        (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
44749        * inspector/front-end/elementsPanel.css:
44750        (.sidebar-pane.composite):
44751        (.sidebar-pane.composite > .body):
44752        (.sidebar-pane.composite .metrics):
44753        (.sidebar-pane.composite .sidebar-pane-toolbar):
44754        (.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle):
44755        (.sidebar-pane.composite .styles-section.read-only):
44756
447572013-03-05  Yury Semikhatsky  <yurys@chromium.org>
44758
44759        Web Inspector: support stable remote object ids
44760        https://bugs.webkit.org/show_bug.cgi?id=109908
44761
44762        Reviewed by Pavel Feldman.
44763
44764        Introduced a map from javascript object to its id. It guarantees
44765        that object is assined id only once (unless it is explicitely
44766        released). The map is per execution context and is stored in
44767        InjectedScriptManager.
44768
44769        Test: inspector-protocol/persistent-id.html
44770
44771        * bindings/js/JSInjectedScriptHostCustom.cpp:
44772        (WebCore::JSInjectedScriptHost::objectId):
44773        (WebCore):
44774        (WebCore::JSInjectedScriptHost::releaseObjectId):
44775        * bindings/js/ScriptObject.h:
44776        (WTF):
44777        (WTF::ScriptObjectHash::hash):
44778        (WTF::ScriptObjectHash::equal):
44779        (ScriptObjectHash):
44780        * bindings/v8/ScriptObject.h:
44781        (WTF):
44782        (WTF::ScriptObjectHash::hash):
44783        (WTF::ScriptObjectHash::equal):
44784        (ScriptObjectHash):
44785        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
44786        (WebCore::V8InjectedScriptHost::objectIdMethodCustom):
44787        (WebCore):
44788        (WebCore::V8InjectedScriptHost::releaseObjectIdMethodCustom):
44789        * inspector/InjectedScriptHost.cpp:
44790        (WebCore::InjectedScriptHost::create):
44791        (WebCore::InjectedScriptHost::InjectedScriptHost):
44792        (WebCore::InjectedScriptHost::disconnect):
44793        (WebCore::InjectedScriptHost::objectId):
44794        (WebCore):
44795        (WebCore::InjectedScriptHost::releaseObjectId):
44796        * inspector/InjectedScriptHost.h:
44797        (WebCore):
44798        (InjectedScriptHost):
44799        * inspector/InjectedScriptHost.idl:
44800        * inspector/InjectedScriptManager.cpp:
44801        (InjectedScriptManager::ObjectIdMap):
44802        (WebCore::InjectedScriptManager::ObjectIdMap::ObjectIdMap):
44803        (WebCore::InjectedScriptManager::ObjectIdMap::objectId):
44804        (WebCore::InjectedScriptManager::ObjectIdMap::releaseObjectId):
44805        (WebCore):
44806        (WebCore::InjectedScriptManager::InjectedScriptManager):
44807        (WebCore::InjectedScriptManager::discardInjectedScripts):
44808        (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
44809        (WebCore::InjectedScriptManager::objectId):
44810        (WebCore::InjectedScriptManager::releaseObjectId):
44811        * inspector/InjectedScriptManager.h:
44812        (InjectedScriptManager):
44813        * inspector/InjectedScriptSource.js:
44814        (.):
44815
448162013-03-06  Marja Hölttä  <marja@chromium.org>
44817
44818        REGRESSION(r144617): Wrong usage of overwritten variable in toDOMWindow (V8Binding.cpp)
44819        https://bugs.webkit.org/show_bug.cgi?id=111565
44820
44821        Reviewed by Jochen Eisinger.
44822
44823        In toDOMWindow, the variable "global" was first nuked, and then used again. This
44824        change was introduced in r144617.
44825
44826        No new tests (no functional changes).
44827
44828        * bindings/v8/V8Binding.cpp:
44829        (WebCore::toDOMWindow):
44830
448312013-03-06  Yury Semikhatsky  <yurys@chromium.org>
44832
44833        Web Inspector: use regular eval instead of injectScript for front-end extension API
44834        https://bugs.webkit.org/show_bug.cgi?id=111529
44835
44836        Reviewed by Pavel Feldman.
44837
44838        Removed InjectedScriptManager::injectScript and replaced all of it calls
44839        except the actual script injection with ScriptController::executeScript.
44840
44841        * inspector/InjectedScriptManager.cpp:
44842        (WebCore::InjectedScriptManager::injectedScriptFor):
44843        * inspector/InjectedScriptManager.h:
44844        (InjectedScriptManager):
44845        * inspector/InspectorAgent.cpp:
44846        (WebCore::InspectorAgent::didClearWindowObjectInWorld):
44847        * inspector/InspectorPageAgent.cpp:
44848        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
44849        * inspector/front-end/DOMAgent.js:
44850        (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
44851        * inspector/front-end/ExtensionAPI.js:
44852        (buildExtensionAPIInjectedScript):
44853        * inspector/front-end/ExtensionServer.js:
44854        (WebInspector.ExtensionServer.prototype._onReload):
44855
448562013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
44857
44858        [Qt] Do not disable C++0x
44859        https://bugs.webkit.org/show_bug.cgi?id=111559
44860
44861        Reviewed by Kenneth Rohde Christiansen.
44862
44863        * WebCore.pri:
44864
448652013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
44866
44867        Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
44868        https://bugs.webkit.org/show_bug.cgi?id=111505
44869
44870        Reviewed by Alexis Menard.
44871
44872        The CSS parsing code expands shorthands (with the exception of 'font') to their longhands.
44873        This means that all the code in StyleResolver / StyleBuilder to handle shorthands is basically
44874        dead and shouldn't be there. The reason for it to be is that people didn't know about shorthands
44875        expansion and thus copied existing code.
44876
44877        This change addresses both issues by removing the code and adding ASSERTs that should prevent people
44878        from adding more dead code.
44879
44880        Refactoring, covered by existing tests.
44881
44882        * css/StylePropertyShorthand.h: Added isExpandedShorthand.
44883        * css/StylePropertyShorthand.cpp:
44884        (WebCore::isExpandedShorthand):
44885        Added this function that ignores 'font' as it is the only shorthand that is no consistently expanded
44886        to account for system fonts.
44887
44888        * css/StyleBuilder.cpp:
44889        (WebCore::StyleBuilder::StyleBuilder):
44890        Removed the shorthands.
44891
44892        * css/StyleBuilder.h:
44893        (WebCore::StyleBuilder::setPropertyHandler):
44894        Added ASSERTs that people don't add shorthand handling.
44895
44896        * css/StyleResolver.cpp:
44897        (WebCore::isValidVisitedLinkProperty):
44898        Removed all the shorthands (shouldn't be reachable unless the ASSERT in applyProperty
44899        triggers).
44900
44901        (WebCore::StyleResolver::applyProperty):
44902        Removed all shorthand handling code, moved the shorthands together and added some ASSERT
44903        to ensure people don't abuse the code and re-add some of it back by mistake.
44904
449052013-03-05  Kent Tamura  <tkent@chromium.org>
44906
44907        Rename WebCore/editing/visible_units.* to VisibleUnits.*
44908        https://bugs.webkit.org/show_bug.cgi?id=111426
44909
44910        Reviewed by Alexey Proskuryakov.
44911
44912        No new tests. Just a refactoring.
44913
44914        * CMakeLists.txt:
44915        * GNUmakefile.list.am:
44916        * Target.pri:
44917        * WebCore.gypi:
44918        * WebCore.vcproj/WebCore.vcproj:
44919        * WebCore.vcxproj/WebCore.vcxproj:
44920        * WebCore.vcxproj/WebCore.vcxproj.filters:
44921        * WebCore.xcodeproj/project.pbxproj:
44922        * accessibility/AccessibilityNodeObject.cpp:
44923        * accessibility/AccessibilityObject.cpp:
44924        * accessibility/AccessibilityRenderObject.cpp:
44925        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
44926        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
44927        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
44928        * dom/Position.cpp:
44929        * dom/Range.cpp:
44930        * editing/AlternativeTextController.cpp:
44931        * editing/ApplyBlockElementCommand.cpp:
44932        * editing/ApplyStyleCommand.cpp:
44933        * editing/CompositeEditCommand.cpp:
44934        * editing/DeleteSelectionCommand.cpp:
44935        * editing/EditingAllInOne.cpp:
44936        * editing/EditingStyle.cpp:
44937        * editing/Editor.cpp:
44938        * editing/FormatBlockCommand.cpp:
44939        * editing/FrameSelection.cpp:
44940        * editing/IndentOutdentCommand.cpp:
44941        * editing/InsertLineBreakCommand.cpp:
44942        * editing/InsertListCommand.cpp:
44943        * editing/InsertParagraphSeparatorCommand.cpp:
44944        * editing/InsertTextCommand.cpp:
44945        * editing/ReplaceSelectionCommand.cpp:
44946        * editing/SurroundingText.cpp:
44947        * editing/TextCheckingHelper.cpp:
44948        * editing/TextIterator.cpp:
44949        * editing/TypingCommand.cpp:
44950        * editing/VisiblePosition.cpp:
44951        * editing/VisibleSelection.cpp:
44952        * editing/VisibleUnits.cpp: Copied from Source/WebCore/editing/visible_units.cpp.
44953        * editing/VisibleUnits.h: Copied from Source/WebCore/editing/visible_units.h.
44954        * editing/htmlediting.cpp:
44955        * editing/markup.cpp:
44956        * editing/visible_units.cpp: Removed.
44957        * editing/visible_units.h: Removed.
44958        * page/Frame.cpp:
44959        * page/mac/FrameMac.mm:
44960        * platform/win/EditorWin.cpp:
44961
449622013-03-06  Alexis Menard  <alexis@webkit.org>
44963
44964        Do not add CSSPropertyBorderImage shorthand part of the property list when parsing CSS border property
44965        https://bugs.webkit.org/show_bug.cgi?id=111481
44966
44967        Reviewed by Julien Chaffraix.
44968
44969        After http://trac.webkit.org/changeset/135848 and more generally we do not 
44970        add shorthand directly into the property list used afterwards to build
44971        StylePropertySet but we rather expand the shorthand to add the
44972        longhands. CSSPropertyBorderImage is a shorthand and it should follow
44973        that rule, so when we successfully parsed CSS border property and we
44974        should reset border-image then we should reset the longhands too.
44975
44976        Test: LayoutTests/inspector/styles/styles-new-API-expected.txt which
44977        reflects the fact that we add longhands instead of the shorthand. All
44978        the other tests should not regress.
44979
44980        * css/CSSParser.cpp:
44981        (WebCore::CSSParser::parseValue):
44982
449832013-03-06  Luiz Agostini  <luiz.agostini@nokia.com>
44984
44985        Accelerated overflow scrolling for Coordinated Graphics.
44986        https://bugs.webkit.org/show_bug.cgi?id=110323
44987
44988        Reviewed by Noam Rosenthal.
44989
44990        A scroll offset is applied to individual layers on UI process and the
44991        web process is notified assynchronously.
44992        The new API WKCoordinatedScene may be used to scroll layers in the UI process.
44993
44994        Tests will be added on bug #111140.
44995
44996        Scrolling coordinator is used to provide a ScrollableArea to CoordinatedGraphicsLayer.
44997
44998        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
44999        (WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
45000        (WebCore):
45001        (WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
45002        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
45003        (ScrollingCoordinatorCoordinatedGraphics):
45004
45005        GraphicsLayerTextureMapper is responsible for receiving the 'did commit' messages and to pass
45006        them to its TextureMapperLayer on the appropriated time.
45007
45008        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
45009        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
45010        (WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset):
45011        (WebCore):
45012        (WebCore::GraphicsLayerTextureMapper::setIsScrollable):
45013        (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
45014        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
45015        (WebCore::GraphicsLayerTextureMapper::setScrollClient):
45016        (WebCore::GraphicsLayerTextureMapper::setID):
45017        (GraphicsLayerTextureMapper):
45018        (WebCore::GraphicsLayerTextureMapper::isScrollable):
45019
45020        TextureMapperLayer is responsible for applying the requested scroll offset and for
45021        sending the commit messages to web process. It is also able to hittest layers and identify
45022        the ones that are scrollable.
45023
45024        * platform/graphics/texmap/TextureMapperLayer.cpp:
45025        (WebCore::TextureMapperLayer::hitTest):
45026        (WebCore):
45027        (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
45028        (WebCore::TextureMapperLayer::findScrollableContentsLayerAt):
45029        (WebCore::TextureMapperLayer::mapScrollOffset):
45030        (WebCore::TextureMapperLayer::commitScrollOffset):
45031        (WebCore::TextureMapperLayer::scrollBy):
45032        (WebCore::TextureMapperLayer::didCommitScrollOffset):
45033        * platform/graphics/texmap/TextureMapperLayer.h:
45034        (TextureMapperLayer):
45035        (ScrollingClient):
45036        (WebCore::TextureMapperLayer::TextureMapperLayer):
45037        (WebCore::TextureMapperLayer::setID):
45038        (WebCore::TextureMapperLayer::id):
45039        (WebCore::TextureMapperLayer::setScrollClient):
45040        (WebCore::TextureMapperLayer::setIsScrollable):
45041        (WebCore::TextureMapperLayer::isScrollable):
45042        (WebCore::TextureMapperLayer::adjustedPosition):
45043
45044        CoordinatedGraphicsLayer receives the commit messages and updates its ScrollableArea.
45045
45046        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
45047        (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
45048        (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
45049        (WebCore):
45050        (WebCore::CoordinatedGraphicsLayer::commitScrollOffset):
45051        (WebCore::CoordinatedGraphicsLayer::resetLayerState):
45052        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
45053        (WebCore):
45054        (CoordinatedGraphicsLayer):
45055        (WebCore::CoordinatedGraphicsLayer::isScrollable):
45056
45057        CoordinatedGraphicsScene receives the commit messages from TextureMapperLayer and
45058        dispatches them on the main thread. It also has a new method that is used to find
45059        the topmost scrollable layer at a given point.
45060
45061        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
45062        (WebCore::CoordinatedGraphicsScene::setLayerState):
45063        (WebCore::CoordinatedGraphicsScene::createLayer):
45064        (WebCore::CoordinatedGraphicsScene::dispatchCommitScrollOffset):
45065        (WebCore):
45066        (WebCore::CoordinatedGraphicsScene::commitScrollOffset):
45067        (WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
45068        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
45069        (WebCore):
45070        (CoordinatedGraphicsSceneClient):
45071        (CoordinatedGraphicsScene):
45072
45073        New fields have been added to CoordinatedGraphicsLayerState.
45074
45075        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
45076        (CoordinatedGraphicsLayerState):
45077
450782013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45079
45080        REGGRESSION (r142112): It made compositing tests fail on EFL, Qt.
45081        https://bugs.webkit.org/show_bug.cgi?id=109291
45082
45083        Reviewed by Kenneth Rohde Christiansen.
45084
45085        Report we support fixed layers.
45086
45087        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
45088        (WebCore::ScrollingCoordinatorCoordinatedGraphics::supportsFixedPositionLayers):
45089        (ScrollingCoordinatorCoordinatedGraphics):
45090
450912013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
45092
45093        Unreviewed, rolling out r144859.
45094        http://trac.webkit.org/changeset/144859
45095        https://bugs.webkit.org/show_bug.cgi?id=111519
45096
45097        Introduced a test that calls non-exist function on non-
45098        Chromium ports and crash on Chromium (Requested by rniwa on
45099        #webkit).
45100
45101        * html/HTMLAudioElement.h:
45102        (WebCore::HTMLAudioElement::hasPendingActivity):
45103        (HTMLAudioElement):
45104        * html/HTMLAudioElement.idl:
45105        * html/HTMLMediaElement.cpp:
45106        (WebCore::HTMLMediaElement::hasPendingActivity):
45107        * html/HTMLMediaElement.idl:
45108
451092013-03-06  Ilya Tikhonovsky  <loislo@chromium.org>
45110
45111        Web Inspector: Could not open Profiles panel.
45112        https://bugs.webkit.org/show_bug.cgi?id=111535
45113
45114        Reviewed by Alexander Pavlov.
45115
45116        * inspector/front-end/CPUProfileView.js:
45117        * inspector/front-end/ProfilesPanel.js:
45118
451192013-03-06  Tony Chang  <tony@chromium.org>
45120
45121        Crash during middle mouse click when page is removed
45122        https://bugs.webkit.org/show_bug.cgi?id=111489
45123
45124        Reviewed by Hajime Morrita.
45125
45126        Check for a null page that can happen if we remove the document from the DOM.
45127        The other methods in EventHandler also check for a null page.
45128
45129        Test: editing/pasteboard/selection-paste-crash.html
45130
45131        * page/EventHandler.cpp:
45132        (WebCore::EventHandler::handlePasteGlobalSelection):
45133
451342013-03-05  Eric Seidel  <eric@webkit.org>
45135
45136        Replace shouldLazyAttach bool with an enum for readability
45137        https://bugs.webkit.org/show_bug.cgi?id=111503
45138
45139        Reviewed by Dimitri Glazkov.
45140
45141        No behavioral change.
45142
45143        * bindings/cpp/WebDOMNodeCustom.cpp:
45144        (WebDOMNode::insertBefore):
45145        (WebDOMNode::replaceChild):
45146        (WebDOMNode::appendChild):
45147        * bindings/js/JSNodeCustom.cpp:
45148        (WebCore::JSNode::insertBefore):
45149        (WebCore::JSNode::replaceChild):
45150        (WebCore::JSNode::appendChild):
45151        * bindings/v8/custom/V8NodeCustom.cpp:
45152        (WebCore):
45153        (WebCore::V8Node::insertBeforeMethodCustom):
45154        (WebCore::V8Node::replaceChildMethodCustom):
45155        (WebCore::V8Node::appendChildMethodCustom):
45156        * dom/ContainerNode.cpp:
45157        (WebCore):
45158        (WebCore::ContainerNode::insertBefore):
45159        (WebCore::ContainerNode::replaceChild):
45160        (WebCore::ContainerNode::appendChild):
45161        (WebCore::updateTreeAfterInsertion):
45162        * dom/ContainerNode.h:
45163        (ContainerNode):
45164        * dom/Node.cpp:
45165        (WebCore::Node::insertBefore):
45166        (WebCore::Node::replaceChild):
45167        (WebCore::Node::appendChild):
45168        * dom/Node.h:
45169        (Node):
45170        * editing/AppendNodeCommand.cpp:
45171        (WebCore::AppendNodeCommand::doApply):
45172        * editing/InsertNodeBeforeCommand.cpp:
45173        (WebCore::InsertNodeBeforeCommand::doApply):
45174        * html/shadow/MediaControlsApple.cpp:
45175        (WebCore::MediaControlsApple::createControls):
45176        * html/shadow/MediaControlsBlackBerry.cpp:
45177        (WebCore::MediaControlsBlackBerry::createControls):
45178        * html/shadow/MediaControlsChromium.cpp:
45179        (WebCore::MediaControlsChromium::initializeControls):
45180        * html/shadow/MediaControlsChromiumAndroid.cpp:
45181        (WebCore::MediaControlsChromiumAndroid::createControls):
45182
451832013-03-05  Hajime Morrita  <morrita@google.com>
45184
45185        Custom Elements: CustomElementConstructor::m_name doesn't have any good use.
45186        https://bugs.webkit.org/show_bug.cgi?id=111523
45187
45188        Reviewed by Kentaro Hara.
45189
45190        This change removes CustomElementConstructor::m_name and renames
45191        m_tagName to m_name. Now generated function name is same as interface name.
45192
45193        Originally, m_name was added to specify the generated constructor
45194        name. An early version of custom element allows to give the name,
45195        but it no longer says anything about that.
45196
45197        The rename is to align the semantics of type extension mechanism
45198        of Custom Elements, where the name of a custom element isn't
45199        necessarily a tag name.
45200
45201        No new tests. Just removing old code.
45202
45203        * bindings/scripts/CodeGeneratorV8.pm:
45204        (GenerateHeader):
45205        * dom/CustomElementConstructor.cpp:
45206        (WebCore::CustomElementConstructor::create):
45207        (WebCore::CustomElementConstructor::CustomElementConstructor):
45208        (WebCore::CustomElementConstructor::createElement):
45209        * dom/CustomElementConstructor.h:
45210        (CustomElementConstructor):
45211        (WebCore::CustomElementConstructor::name):
45212        * dom/CustomElementRegistry.cpp:
45213        (WebCore::CustomElementRegistry::registerElement):
45214
452152013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
45216
45217        Web Inspector: Flame Chart. Provide node context info in a popover when mouse hovers over a flame chart item.
45218        https://bugs.webkit.org/show_bug.cgi?id=111442
45219
45220        Reviewed by Yury Semikhatsky.
45221
45222        FlameChart is a canvas so it is not possible to attach the popover to the items on it.
45223        It would be a bit tricky to support an offset due to complex behaviour of the popover.
45224        The simplest solution is to create a fake anchor element and move it to the right position.
45225
45226        * inspector/front-end/FlameChart.js:
45227        (WebInspector.FlameChart):
45228        (WebInspector.FlameChart.prototype._getPopoverAnchor):
45229        (WebInspector.FlameChart.prototype._showPopover):
45230        (WebInspector.FlameChart.prototype._onMouseMove):
45231        (WebInspector.FlameChart.prototype.findNodeCallback):
45232        (WebInspector.FlameChart.prototype._coordinatesToNode):
45233        (WebInspector.FlameChart.prototype.onResize):
45234        * inspector/front-end/flameChart.css:
45235        (.flame-chart .item-anchor):
45236
452372013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
45238
45239        Unreviewed buildfix after r144787. Add missing USE(GRAPHICS_SURFACE) guards.
45240
45241        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
45242        (WebCore::CoordinatedGraphicsScene::setLayerState):
45243        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
45244        (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
45245
452462013-03-05  Geoffrey Garen  <ggaren@apple.com>
45247
45248        Autoreleased cached pages slow down the PLT by 2%
45249        https://bugs.webkit.org/show_bug.cgi?id=111522
45250
45251        Reviewed by Filip Pizlo.
45252
45253        Let's stop doing that.
45254
45255        2% PLT speedup.
45256
45257        * history/PageCache.cpp:
45258        (WebCore::PageCache::remove):
45259
452602013-03-05  Hayato Ito  <hayato@chromium.org>
45261
45262        [Shadow] Implements event re-targeting for Touch Events.
45263        https://bugs.webkit.org/show_bug.cgi?id=107800
45264
45265        Reviewed by Dimitri Glazkov.
45266
45267        So far, Touch Events have been intentionally disabled in shadow
45268        tree since it allows users to access internal nodes in shadow tree
45269        by accessing Touch Event's information.
45270
45271        This patch re-targets all individual touch point's target in
45272        TouchList (touches, targetTouches and changedTouches) owned by a Touch Event
45273        before the Touch Event is dispatched so that we won't break an
45274        upper boundary of shadow DOM.
45275
45276        Touch Events re-targeting is similar to that of Mouse Events
45277        re-targeting. The difference is that a Touch Event can have more
45278        than one related target because of multiple touches. We must
45279        re-target all individual touch points which can be referred from
45280        the Touch Event.
45281
45282        Now, Touch Events can be fired in shadow tree. I've removed the
45283        existing limitation.
45284
45285        Test: fast/dom/shadow/touch-event-retargeting.html
45286
45287        * dom/EventContext.cpp:
45288        (WebCore::EventContext::isTouchEventContext):
45289        (WebCore):
45290        (WebCore::TouchEventContext::TouchEventContext):
45291        (WebCore::TouchEventContext::~TouchEventContext):
45292        (WebCore::TouchEventContext::handleLocalEvents):
45293        (WebCore::TouchEventContext::isTouchEventContext):
45294        (WebCore::TouchEventContext::checkReachability):  Used for assertion of reachability for each Touch point.
45295        * dom/EventContext.h:
45296        (WebCore):
45297        (EventContext):
45298        (TouchEventContext): Introduced to hold necessary information for re-targeting Touch event.
45299        (WebCore::TouchEventContext::touches):
45300        (WebCore::TouchEventContext::targetTouches):
45301        (WebCore::TouchEventContext::changedTouches):
45302        (WebCore::EventContext::isReachable):
45303        * dom/EventRetargeter.cpp:
45304        (WebCore::EventRetargeter::calculateEventPath):
45305        (WebCore::EventRetargeter::adjustForTouchEvent):
45306        (WebCore):
45307        (WebCore::EventRetargeter::adjustTouchList):
45308        (WebCore::EventRetargeter::adjustForRelatedTarget):
45309        (WebCore::EventRetargeter::calculateAdjustedNodes): Updated so that this can be used for Touch point re-targeting.
45310        (WebCore::EventRetargeter::buildRelatedNodeMap):
45311        * dom/EventRetargeter.h:
45312        (WebCore):
45313        (EventRetargeter):
45314        * dom/Node.cpp:
45315        (WebCore::Node::dispatchEvent):
45316        (WebCore):
45317        (WebCore::Node::dispatchTouchEvent):
45318        * dom/Node.h:
45319        (WebCore):
45320        (Node):
45321        * dom/Touch.cpp:
45322        (WebCore::Touch::Touch):
45323        (WebCore):
45324        (WebCore::Touch::cloneWithNewTarget):
45325        * dom/Touch.h:
45326        (Touch):
45327        * dom/TouchEvent.cpp:
45328        (WebCore::TouchEventDispatchMediator::create):
45329        (WebCore):
45330        (WebCore::TouchEventDispatchMediator::TouchEventDispatchMediator):
45331        (WebCore::TouchEventDispatchMediator::event):
45332        (WebCore::TouchEventDispatchMediator::dispatchEvent):
45333        * dom/TouchEvent.h:
45334        (TouchEvent):
45335        (WebCore::TouchEvent::setTouches):
45336        (WebCore::TouchEvent::setTargetTouches):
45337        (WebCore::TouchEvent::setChangedTouches):
45338        (TouchEventDispatchMediator):
45339        (WebCore):
45340        (WebCore::toTouchEvent):
45341        * dom/TouchList.cpp:
45342        (WebCore::TouchList::item):
45343        (WebCore):
45344        * dom/TouchList.h:
45345        (TouchList):
45346        * page/EventHandler.cpp:
45347        (WebCore::EventHandler::hitTestResultInFrame): Removed the limitation. Adjusting is no longer done here.
45348        (WebCore::EventHandler::handleTouchEvent):
45349
453502013-03-05  Hajime Morrita  <morrita@google.com>
45351
45352        [Custom Elements][V8] Custom Element doesn't need its own WrapperTypeInfo
45353        https://bugs.webkit.org/show_bug.cgi?id=111411
45354
45355        Reviewed by Kentaro Hara.
45356
45357        No new tests. No observable change yet.
45358
45359        This is a preparation for Bug 110436, where WebKit is going to
45360        allow any HTML element to be a superclass of custom elements.
45361
45362        This change eliminates WrapperTypeInfo for custom element. Instead
45363        of that, the wrapper of a custom element picks WrapperTypeInfo
45364        from most descendant built-in HTML element. For example, think about
45365        following hierarchy:
45366
45367        - ... <- HTMLElement <- HTMLDivElememnt <- ExistingCustomElement <- NewCustomElement
45368
45369        In this case, both ExistingCustomElement and NewCustomElement has
45370        HTMLDivElememnt's type info. This is because HTMLDivElememnt is
45371        the most descendant (or "the nearest") built-in HTML
45372        element. (HTMLElement isn't the most descendant.
45373        ExistingCustomElement isn't a built-in.)
45374
45375        Using such WrapperTypeInfos, created custom element wrappers can
45376        get appropriate set of method and properties regardless of its
45377        super-elements.
45378
45379        This change tells the prototype object of each built-in object
45380        which WrapperTypeInfo the native backing wants:
45381        HTMLDivElememnt.prototype knows V8HTMLDivElement::info for
45382        example. The pointer to the type info is stored into an internal
45383        field. On wrapper construction, createWrapper() walks up the
45384        prototype chain and pick the first one.
45385
45386        * bindings/v8/V8DOMConfiguration.cpp:
45387        (WebCore::V8DOMConfiguration::configureTemplate):
45388        * bindings/v8/V8HTMLCustomElement.cpp:
45389        (WebCore::findWrapperTypeOf):
45390        (WebCore::V8HTMLCustomElement::createWrapper):
45391        * bindings/v8/V8HTMLCustomElement.h:
45392        * bindings/v8/V8PerContextData.cpp:
45393        (WebCore::V8PerContextData::constructorForTypeSlowCase):
45394        * bindings/v8/WrapperTypeInfo.h:
45395        (WebCore):
45396
453972013-03-05  Aaron Colwell  <acolwell@chromium.org>
45398
45399        Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
45400        https://bugs.webkit.org/show_bug.cgi?id=110623
45401
45402        Reviewed by Eric Seidel.
45403
45404        Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
45405
45406        * html/HTMLAudioElement.h:
45407        (HTMLAudioElement):
45408        * html/HTMLAudioElement.idl:
45409        * html/HTMLMediaElement.cpp:
45410        (WebCore::HTMLMediaElement::hasPendingActivity):
45411        * html/HTMLMediaElement.idl:
45412
454132013-03-05  Chris Fleizach  <cfleizach@apple.com>
45414 
45415        AX: Support aria-posinset/setsize
45416        https://bugs.webkit.org/show_bug.cgi?id=109725
45417
45418        Reviewed by Tim Horton.
45419
45420        Expose aria-setsize and aria-posinset through accessibility.
45421        Right now only the Mac platform exposes them.
45422
45423        Test: platform/mac/accessibility/aria-setsize-posinset.html
45424
45425        * accessibility/AccessibilityObject.cpp:
45426        (WebCore::AccessibilityObject::supportsARIASetSize):
45427        (WebCore):
45428        (WebCore::AccessibilityObject::supportsARIAPosInset):
45429        (WebCore::AccessibilityObject::ariaSetSize):
45430        (WebCore::AccessibilityObject::ariaPosInset):
45431        * accessibility/AccessibilityObject.h:
45432        (AccessibilityObject):
45433        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
45434        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
45435        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
45436        * html/HTMLAttributeNames.in:
45437
45438
454392013-03-05  Peter Nelson  <peter@peterdn.com>
45440
45441        [WinCairo] Support for cookies is incomplete
45442        https://bugs.webkit.org/show_bug.cgi?id=110147
45443        
45444        Expired and HttpOnly cookies no longer accessible from JavaScript.
45445        Cookies set in JavaScript now have correct domain/path.
45446
45447        Reviewed by Brent Fulgham.
45448
45449        Test: http/tests/cookies/http-get-cookie-set-in-js.html
45450
45451        * platform/network/curl/CookieJarCurl.cpp:
45452        (WebCore):
45453        (WebCore::addMatchingCurlCookie):
45454        (WebCore::getNetscapeCookieFormat):
45455        (WebCore::setCookiesFromDOM):
45456        (WebCore::cookieRequestHeaderFieldValue):
45457
454582013-03-05  Alec Flett  <alecflett@chromium.org>
45459
45460        Fix mac clang build with long long
45461        https://bugs.webkit.org/show_bug.cgi?id=111495
45462
45463        Unreviewed fix for mac build.
45464
45465        * Modules/indexeddb/IDBBackingStore.cpp:
45466        (WebCore::IDBBackingStore::IDBBackingStore):
45467
454682013-03-05  Alec Flett  <alecflett@chromium.org>
45469
45470        Fix mac clang build with long long
45471        https://bugs.webkit.org/show_bug.cgi?id=111495
45472
45473        Unreviewed fix for mac build.
45474
45475        * Modules/indexeddb/IDBBackingStore.cpp:
45476        (WebCore::IDBBackingStore::IDBBackingStore):
45477
454782013-03-05  Aaron Colwell  <acolwell@chromium.org>
45479
45480        Add V8Document.h include when the V8 code generator creates a toV8(Document*) call.
45481        https://bugs.webkit.org/show_bug.cgi?id=111486
45482
45483        Reviewed by Adam Barth.
45484
45485        No new tests. This doesn't change user visible behavior.
45486
45487        * bindings/scripts/CodeGeneratorV8.pm:
45488        (GenerateNamedConstructor):
45489        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
45490
454912013-03-05  Shawn Singh  <shawnsingh@chromium.org>
45492
45493        Fix default background of a dragged image.
45494        https://bugs.webkit.org/show_bug.cgi?id=110512
45495
45496        Reviewed by Tony Chang.
45497
45498        Transparent background color (particularly visible in the padding
45499        of an element) was not being respected. The solution is to
45500        initially fill the drag image with transparent instead of white,
45501        so that any color background works correctly. This patch does not
45502        affect Apple Mac or Win platforms, given that this part of the
45503        code is #if guarded from those platforms.
45504
45505        Manual test added:
45506          ManualTests/drag-background-with-padding.html
45507
45508        Infrastructure for retrieving the drag image for pixel testing
45509        does not yet exist.
45510
45511        * page/Frame.cpp:
45512        (WebCore::Frame::nodeImage):
45513
455142013-03-05  Emil A Eklund  <eae@chromium.org>
45515
45516        ASSERTION FAILED: i < size(), UNKNOWN in WebCore::RenderTableSection::layout
45517        https://bugs.webkit.org/show_bug.cgi?id=108838
45518
45519        Reviewed by Levi Weintraub.
45520        
45521        Ensure that RenderTable::recalcSections is called when moving a
45522        TableSection by calling setNeedsSectionRecalc in addChild for
45523        TableSections.
45524
45525        Test: fullscreen/full-screen-table-section.html
45526
45527        * rendering/RenderTable.cpp:
45528        (WebCore::RenderTable::addChild):
45529
455302013-03-05  Kenneth Russell  <kbr@google.com>
45531
45532        Upgrade ANGLE to r1987
45533        https://bugs.webkit.org/show_bug.cgi?id=111381
45534
45535        Reviewed by Dean Jackson.
45536
45537        Covered by existing tests. Ran WebGL conformance tests in Safari
45538        to ensure correct operation of patch.
45539
45540        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
45541        (WebCore::GraphicsContext3D::GraphicsContext3D):
45542        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
45543        (WebCore::GraphicsContext3D::GraphicsContext3D):
45544        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
45545        (WebCore::GraphicsContext3D::GraphicsContext3D):
45546        * platform/graphics/mac/GraphicsContext3DMac.mm:
45547        (WebCore::GraphicsContext3D::GraphicsContext3D):
45548        * platform/graphics/qt/GraphicsContext3DQt.cpp:
45549        (WebCore::GraphicsContext3DPrivate::initializeANGLE):
45550            Changed all ports to query for highp support in fragment
45551            shaders and conditionally enable it in ANGLE shader translator.
45552
455532013-03-05  Alec Flett  <alecflett@chromium.org>
45554
45555        IndexedDB: Add IDBBackingStoreTest
45556        https://bugs.webkit.org/show_bug.cgi?id=111233
45557
45558        Reviewed by Adam Barth.
45559
45560        These are tweaks to make IDBBackingStore more easily testable.
45561
45562        * Modules/indexeddb/IDBBackingStore.cpp:
45563        (WebCore::IDBBackingStore::IDBBackingStore): Allow use without a backing store.
45564
455652013-03-04  James Robinson  <jamesr@chromium.org>
45566
45567        [chromium] Move check for threaded compositing from WebCompositorSupport to Platform
45568        https://bugs.webkit.org/show_bug.cgi?id=111386
45569
45570        Reviewed by Adrienne Walker.
45571
45572        This moves checks for whether threaded compositing is enabled from WebCompositorSupport
45573        to Platform. In the case of Canvas2DLayerBridge, the check is moved completely out of
45574        the class to make it easier for tests to specify the threaded configuration to use in the test.
45575
45576        * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
45577        (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
45578        * platform/graphics/chromium/Canvas2DLayerBridge.h:
45579        (WebCore::Canvas2DLayerBridge::create):
45580        (Canvas2DLayerBridge):
45581        * platform/graphics/chromium/DrawingBufferChromium.cpp:
45582        (WebCore::DrawingBuffer::DrawingBuffer):
45583        * platform/graphics/skia/ImageBufferSkia.cpp:
45584        (WebCore::createAcceleratedCanvas):
45585
455862013-03-05  Anders Carlsson  <andersca@apple.com>
45587
45588        Split up the storage event dispatch functions further
45589        https://bugs.webkit.org/show_bug.cgi?id=111482
45590
45591        Reviewed by Beth Dakin.
45592
45593        Add new functions for dispatching storage events to a set of frames.
45594
45595        * storage/StorageAreaImpl.cpp:
45596        (WebCore::StorageAreaImpl::dispatchStorageEvent):
45597        * storage/StorageEventDispatcher.cpp:
45598        (WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
45599        (WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
45600        (WebCore):
45601        (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
45602        (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
45603        * storage/StorageEventDispatcher.h:
45604        (WebCore):
45605        (StorageEventDispatcher):
45606
456072013-03-05  Stephen Chenney  <schenney@chromium.org>
45608
45609        Crash when ImageLoader deletes Element inside SVGImageElement
45610        https://bugs.webkit.org/show_bug.cgi?id=111085
45611
45612        Reviewed by Abhishek Arya.
45613
45614        Elements with ImageLoader objects associated with them may have their
45615        final reference held by the ImageLoader (to allow events to be sent
45616        and handled). Any call on Element that causes the ImageLoader to
45617        dispatch events might then result in the final deref of the Element
45618        itself, thus leaving all the Element's "this" pointers up the stack
45619        pointing to invalid memory.
45620
45621        This change puts the deref of the Element on a timer so that, if the
45622        deref is called via a method on Element, the call stack will unwind
45623        before the deref occurs.
45624
45625        Test: svg/custom/image-with-attr-change-after-delete-crash.html
45626
45627        * loader/ImageLoader.cpp:
45628        (WebCore::ImageLoader::ImageLoader): Initialize a timer
45629        (WebCore::ImageLoader::updatedHasPendingEvent): Put deref of the
45630          element on a oneShotTimer, with appropriate assertions and checks to
45631          ensure we only ref/deref once.
45632        (WebCore::ImageLoader::timerFired): Deref the element when the timer fires.
45633        * loader/ImageLoader.h:
45634        (ImageLoader): Define a timer for controlling deref of the element.
45635
456362013-03-05  Antoine Quint  <graouts@apple.com>
45637
45638        Web Inspector: identify reflection layers in LayerTreeAgent
45639        https://bugs.webkit.org/show_bug.cgi?id=111419
45640
45641        We add a new property "isReflection" to the Layer objects returned
45642        to the front-end to indicate whether the layer was created to host
45643        the reflection for an element. When this new property is true, the
45644        "nodeId" property is set to point to the reflected element's node
45645        id, since there is no node per-se directly associated with this layer.
45646        We also change the "bounds" property to return absolute page coordinates
45647        such that the front-end can use this information to highlight that
45648        region in the page since metrics would otherwise be unavailable.
45649
45650        Reviewed by Dean Jackson.
45651
45652        Test: inspector-protocol/layers/layers-reflected-content.html
45653
45654        * inspector/Inspector.json:
45655        * inspector/InspectorLayerTreeAgent.cpp:
45656        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
45657
456582013-03-05  peavo@outlook.com  <peavo@outlook.com>
45659
45660        [WinCairo] Compile fix after r144024.
45661        https://bugs.webkit.org/show_bug.cgi?id=111306
45662
45663        Reviewed by James Robinson.
45664
45665        * page/scrolling/ScrollingCoordinator.cpp: Added guard for USE(ACCELERATED_COMPOSITING).
45666        * page/scrolling/ScrollingCoordinator.h: Added guard for USE(ACCELERATED_COMPOSITING).
45667
456682013-03-05  James Weatherall  <wez@chromium.org>
45669
45670        keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
45671        https://bugs.webkit.org/show_bug.cgi?id=85642
45672
45673        Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
45674
45675        Reviewed by Ojan Vafai.
45676
45677        * platform/chromium/KeyCodeConversionGtk.cpp:
45678        (WebCore::windowsKeyCodeForKeyEvent):
45679
456802013-03-05  Alec Flett  <alecflett@chromium.org>
45681
45682        IndexedDB: Properly refactor frontend/backend code by #includes
45683        https://bugs.webkit.org/show_bug.cgi?id=110653
45684
45685        Reviewed by Dimitri Glazkov.
45686
45687        IndexedDB has a distinct backend and frontend, with well defined
45688        *Interface / *Callbacks classes distinguishing them, respectively.
45689        
45690        This makes sure that the frontend and backend do not include each
45691        other and fixes build problems that occurred as a result.
45692
45693        Specifically this moves enums out of IDBCursor and IDBTransaction
45694        into IndexedDB.h in a new WebCore::IndexedDB namespace.
45695
45696        No new tests, as this is just a refactor.
45697
456982013-03-05  Jeffrey Pfau  <jpfau@apple.com>
45699
45700        Clear associated cache partitions when deleting origins' cache
45701        https://bugs.webkit.org/show_bug.cgi?id=111383
45702
45703        Reviewed by Maciej Stachowiak.
45704
45705        Clear the cache partitions associated with the origin being cleared.
45706
45707        Not possible to test with current automated test tools, must be tested manually.
45708
45709        * loader/cache/MemoryCache.cpp:
45710        (WebCore::MemoryCache::removeResourcesWithOrigin):
45711
457122013-03-04  Ojan Vafai  <ojan@chromium.org>
45713
45714        Inline min/maxInstrinsicLogicalWidth functions
45715        https://bugs.webkit.org/show_bug.cgi?id=111399
45716
45717        Reviewed by Tony Chang.
45718
45719        Turns out these functions don't need to be public and only
45720        have one caller. This patch is in preparation for supporting
45721        intrinsic widths on tables, which will need to pass in the
45722        border and padding width as an argument.
45723
45724        * rendering/RenderBox.cpp:
45725        (WebCore::RenderBox::fillAvailableMeasure):
45726        (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
45727        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
45728        * rendering/RenderBox.h:
45729
457302013-03-05  Victor Carbune  <vcarbune@chromium.org>
45731
45732        Cue line-height property shouldn't be inherited from the video element
45733        https://bugs.webkit.org/show_bug.cgi?id=111262
45734
45735        Reviewed by Eric Carlson.
45736
45737        Test: media/track/track-cue-rendering-on-resize.html
45738
45739        * css/mediaControls.css:
45740        (video::-webkit-media-text-track-container): Set the default font size
45741        and family using the "font" property to also reset the line-height property.
45742
457432013-03-05  Joshua Bell  <jsbell@chromium.org>
45744
45745        IndexedDB: Remove some unused binding code
45746        https://bugs.webkit.org/show_bug.cgi?id=111463
45747
45748        Reviewed by Adam Barth.
45749
45750        IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
45751        root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
45752        remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
45753        to a ScriptValue before it gets anywhere near the binding code, so remove that too.
45754        Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.
45755
45756        No new tests - just removing dead code.
45757
45758        * Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
45759        * Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
45760        * WebCore.gypi: Ditto.
45761        * bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
45762        * bindings/v8/IDBBindingUtilities.h: Ditto.
45763        * bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.
45764
457652013-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
45766
45767        Unreviewed, rolling out r144798.
45768        http://trac.webkit.org/changeset/144798
45769        https://bugs.webkit.org/show_bug.cgi?id=111478
45770
45771        "broke chromium windows build" (Requested by dpranke on
45772        #webkit).
45773
45774        * GNUmakefile.list.am:
45775        * Modules/indexeddb/IDBBackingStore.cpp:
45776        (WebCore::IDBBackingStore::Cursor::continueFunction):
45777        (WebCore::objectStoreCursorOptions):
45778        (WebCore::indexCursorOptions):
45779        (WebCore::IDBBackingStore::openObjectStoreCursor):
45780        (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
45781        (WebCore::IDBBackingStore::openIndexKeyCursor):
45782        (WebCore::IDBBackingStore::openIndexCursor):
45783        * Modules/indexeddb/IDBBackingStore.h:
45784        (IDBBackingStore):
45785        * Modules/indexeddb/IDBCursor.cpp:
45786        (WebCore::IDBCursor::create):
45787        (WebCore::IDBCursor::IDBCursor):
45788        (WebCore::IDBCursor::continueFunction):
45789        (WebCore::IDBCursor::stringToDirection):
45790        (WebCore::IDBCursor::directionToString):
45791        * Modules/indexeddb/IDBCursor.h:
45792        (IDBCursor):
45793        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
45794        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
45795        (WebCore::IDBCursorBackendImpl::deleteFunction):
45796        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
45797        * Modules/indexeddb/IDBCursorBackendImpl.h:
45798        (WebCore::IDBCursorBackendImpl::create):
45799        (WebCore::IDBCursorBackendImpl::value):
45800        (IDBCursorBackendImpl):
45801        * Modules/indexeddb/IDBCursorBackendInterface.h:
45802        (WebCore):
45803        * Modules/indexeddb/IDBCursorWithValue.cpp:
45804        (WebCore::IDBCursorWithValue::create):
45805        (WebCore::IDBCursorWithValue::IDBCursorWithValue):
45806        * Modules/indexeddb/IDBCursorWithValue.h:
45807        (IDBCursorWithValue):
45808        * Modules/indexeddb/IDBDatabase.cpp:
45809        (WebCore::IDBDatabase::transaction):
45810        * Modules/indexeddb/IDBDatabase.h:
45811        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
45812        (WebCore::GetOperation::create):
45813        (WebCore::GetOperation::GetOperation):
45814        (GetOperation):
45815        (WebCore::OpenCursorOperation::create):
45816        (WebCore::OpenCursorOperation::OpenCursorOperation):
45817        (OpenCursorOperation):
45818        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
45819        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
45820        (WebCore::IDBDatabaseBackendImpl::createIndex):
45821        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
45822        (WebCore::IDBDatabaseBackendImpl::get):
45823        (WebCore::GetOperation::perform):
45824        (WebCore::IDBDatabaseBackendImpl::put):
45825        (WebCore::PutOperation::perform):
45826        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
45827        (WebCore::IDBDatabaseBackendImpl::openCursor):
45828        (WebCore::OpenCursorOperation::perform):
45829        (WebCore::CountOperation::perform):
45830        (WebCore::IDBDatabaseBackendImpl::deleteRange):
45831        (WebCore::DeleteRangeOperation::perform):
45832        (WebCore::IDBDatabaseBackendImpl::clear):
45833        (WebCore::IDBDatabaseBackendImpl::transactionStarted):
45834        (WebCore::IDBDatabaseBackendImpl::transactionFinished):
45835        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
45836        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
45837        (WebCore::IDBDatabaseBackendImpl::createTransaction):
45838        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
45839        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
45840        (IDBDatabaseBackendImpl):
45841        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
45842        * Modules/indexeddb/IDBFactory.h:
45843        * Modules/indexeddb/IDBIndex.cpp:
45844        (WebCore):
45845        (WebCore::IDBIndex::openCursor):
45846        (WebCore::IDBIndex::openKeyCursor):
45847        * Modules/indexeddb/IDBObjectStore.cpp:
45848        (WebCore):
45849        (WebCore::IDBObjectStore::openCursor):
45850        * Modules/indexeddb/IDBRequest.cpp:
45851        (WebCore::IDBRequest::IDBRequest):
45852        (WebCore::IDBRequest::setCursorDetails):
45853        (WebCore::IDBRequest::setResultCursor):
45854        (WebCore::IDBRequest::onSuccess):
45855        * Modules/indexeddb/IDBRequest.h:
45856        (IDBRequest):
45857        * Modules/indexeddb/IDBTransaction.cpp:
45858        (WebCore::IDBTransaction::create):
45859        (WebCore::IDBTransaction::IDBTransaction):
45860        (WebCore::IDBTransaction::stringToMode):
45861        (WebCore::IDBTransaction::modeToString):
45862        * Modules/indexeddb/IDBTransaction.h:
45863        (WebCore::IDBTransaction::isReadOnly):
45864        (WebCore::IDBTransaction::isVersionChange):
45865        (IDBTransaction):
45866        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
45867        (WebCore::IDBTransactionBackendImpl::create):
45868        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
45869        * Modules/indexeddb/IDBTransactionBackendImpl.h:
45870        (IDBTransactionBackendImpl):
45871        (WebCore::IDBTransactionBackendImpl::mode):
45872        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
45873        (WebCore::IDBTransactionCoordinator::processStartedTransactions):
45874        (WebCore::IDBTransactionCoordinator::canRunTransaction):
45875        * Modules/indexeddb/IndexedDB.h: Removed.
45876        * Target.pri:
45877        * WebCore.gypi:
45878
458792013-03-05  Tommy Widenflycht  <tommyw@google.com>
45880
45881        MediaStream API: Allow local and remote descriptions to be accessed after close
45882        https://bugs.webkit.org/show_bug.cgi?id=111437
45883
45884        Reviewed by Adam Barth.
45885
45886        It's quite clear in the standard that the getters should still return the old value.
45887        Also overhauling the state setters a bit to check if the new state is different.
45888
45889        Existing tests expanded to cover patch.
45890
45891        * Modules/mediastream/RTCPeerConnection.cpp:
45892        (WebCore::RTCPeerConnection::localDescription):
45893        (WebCore::RTCPeerConnection::remoteDescription):
45894        (WebCore::RTCPeerConnection::changeSignalingState):
45895        (WebCore::RTCPeerConnection::changeIceGatheringState):
45896        (WebCore::RTCPeerConnection::changeIceConnectionState):
45897
458982013-03-05  Charlie Reis  <creis@chromium.org>
45899
45900        Add FrameLoaderClient::didAccessInitialDocument
45901        https://bugs.webkit.org/show_bug.cgi?id=107963
45902
45903        Notifies the FrameLoaderClient if another page accesses the
45904        initial empty document of a main frame.  In this case, it is
45905        no longer safe to display the provisional URL.
45906
45907        Only takes effect for PLATFORM(CHROMIUM), since no other platforms
45908        listen to the notification.
45909
45910        Reviewed by Adam Barth.
45911
45912        * bindings/v8/V8DOMWindowShell.cpp:
45913        (WebCore::V8DOMWindowShell::setSecurityToken):
45914            Use default token for initial document.
45915        * bindings/v8/custom/V8DOMWindowCustom.cpp:
45916            Notify loader if initial document is accessed.
45917        (WebCore::V8DOMWindow::namedSecurityCheck):
45918        (WebCore::V8DOMWindow::indexedSecurityCheck):
45919        * loader/FrameLoader.cpp:
45920        (WebCore::FrameLoader::FrameLoader):
45921        (WebCore::FrameLoader::didAccessInitialDocument):
45922        (WebCore):
45923        * loader/FrameLoader.h:
45924        (FrameLoader):
45925        * loader/FrameLoaderClient.h:
45926        (FrameLoaderClient):
45927        (WebCore::FrameLoaderClient::didAccessInitialDocument):
45928
459292013-03-05  Otto Derek Cheung  <otcheung@rim.com>
45930
45931        [BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
45932        https://bugs.webkit.org/show_bug.cgi?id=111468
45933
45934        Reviewed by Rob Buis.
45935        Internally reviewed by Konrad Piascik.
45936
45937        The assert in getBackingStoreCookies could be giving out false positives now
45938        that we have our fixes for cookie loading in PR 286189. The cookie store could
45939        be half loaded if the first cookie get/set call happens before the db is fully loaded.
45940        A full webkit sync call to reload the database will cause the assert to be hit.
45941
45942        Safer to flush everything out and try again.
45943
45944        * platform/blackberry/CookieManager.cpp:
45945        (WebCore::CookieManager::getBackingStoreCookies):
45946
459472013-03-05  Tony Gentilcore  <tonyg@chromium.org>
45948
45949        CompactHTMLToken does not need an XSSInfo pointer
45950        https://bugs.webkit.org/show_bug.cgi?id=111423
45951
45952        Reviewed by Eric Seidel.
45953
45954        The CompactHTMLToken should remain as small as possible because it is copied. This shrinks the size by one pointer
45955        by moving a relatively uncommon attribute out to its own Vector.
45956
45957        No new tests because no new functionality.
45958
45959        * html/parser/BackgroundHTMLParser.cpp:
45960        (WebCore::checkThatXSSInfosAreSafeToSendToAnotherThread):
45961        (WebCore):
45962        (WebCore::BackgroundHTMLParser::pumpTokenizer):
45963        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
45964        * html/parser/BackgroundHTMLParser.h:
45965        (BackgroundHTMLParser):
45966        * html/parser/CompactHTMLToken.cpp:
45967        (SameSizeAsCompactHTMLToken):
45968        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
45969        * html/parser/CompactHTMLToken.h:
45970        (WebCore):
45971        (CompactHTMLToken):
45972        * html/parser/HTMLDocumentParser.cpp:
45973        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
45974        * html/parser/HTMLDocumentParser.h:
45975        (ParsedChunk):
45976        * html/parser/XSSAuditorDelegate.h:
45977        (XSSInfo):
45978        (WebCore):
45979
459802013-03-05  Anders Carlsson  <andersca@apple.com>
45981
45982        Split StorageEventDispatcher::dispatch into two functions
45983        https://bugs.webkit.org/show_bug.cgi?id=111464
45984
45985        Reviewed by Beth Dakin.
45986
45987        Split StorageEventDispatcher::dispatch into dispatchSessionStorageEvent and
45988        dispatchLocalStorageEvent and make StorageAreaImpl::dispatchStorageEvent call
45989        the right function based on the storage area type.
45990
45991        * storage/StorageAreaImpl.cpp:
45992        (WebCore::StorageAreaImpl::dispatchStorageEvent):
45993        * storage/StorageEventDispatcher.cpp:
45994        (WebCore::StorageEventDispatcher::dispatchSessionStorageEvent):
45995        (WebCore):
45996        (WebCore::StorageEventDispatcher::dispatchLocalStorageEvent):
45997        * storage/StorageEventDispatcher.h:
45998        (StorageEventDispatcher):
45999
460002013-03-05  Brent Fulgham  <bfulgham@webkit.org>
46001
46002        [WinCairo] Unreviewed build fix after r144024.
46003
46004        * page/scrolling/ScrollingCoordinator.cpp:
46005        (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea): Handle
46006        case of not using Accelerated Compositing
46007        (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
46008        (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea): Ditto.
46009
460102013-03-05  Alec Flett  <alecflett@chromium.org>
46011
46012        IndexedDB: Properly refactor frontend/backend code by #includes
46013        https://bugs.webkit.org/show_bug.cgi?id=110653
46014
46015        Reviewed by Dimitri Glazkov.
46016
46017        IndexedDB has a distinct backend and frontend, with well defined
46018        *Interface / *Callbacks classes distinguishing them, respectively.
46019        
46020        This makes sure that the frontend and backend do not include each
46021        other and fixes build problems that occurred as a result.
46022
46023        Specifically this moves enums out of IDBCursor and IDBTransaction
46024        into IndexedDB.h in a new WebCore::IndexedDB namespace.
46025
46026        No new tests, as this is just a refactor.
46027
460282013-03-05  James Robinson  <jamesr@chromium.org>
46029
46030        ContainerNode::setActive should not sleep for 100ms on platforms that do not implement synchronous repaint(true) semantics
46031        https://bugs.webkit.org/show_bug.cgi?id=87054
46032
46033        Reviewed by Darin Adler.
46034
46035        Adds a new ChromeClient function to query if the platform supports the immediate parameter
46036        to the invalidation APIs and guards the synchronous repaint logic in ContainerNode::setActive()
46037        with it.
46038
46039        * dom/ContainerNode.cpp:
46040        (WebCore::ContainerNode::setActive):
46041        * page/ChromeClient.h:
46042        (WebCore::ChromeClient::supportsImmediateInvalidation):
46043
460442013-03-05  Anders Carlsson  <andersca@apple.com>
46045
46046        Simplify storage event dispatch somewhat
46047        https://bugs.webkit.org/show_bug.cgi?id=111461
46048
46049        Reviewed by Beth Dakin.
46050
46051        Add a StorageAreaImpl::dispatchStorageEvent to avoid replicating the calls to
46052        StorageEventDispatcher::dispatch there times. This is in preparation for changing the
46053        interface of StorageEventDispatcher so it can be used by WebKit2.
46054
46055        * storage/StorageAreaImpl.cpp:
46056        (WebCore::StorageAreaImpl::setItem):
46057        (WebCore::StorageAreaImpl::removeItem):
46058        (WebCore::StorageAreaImpl::clear):
46059        (WebCore::StorageAreaImpl::dispatchStorageEvent):
46060
46061        * storage/StorageAreaImpl.h:
46062        Reindent.
46063
460642013-03-05  Tony Chang  <tony@chromium.org>
46065
46066        Fix some crashes in render sliders
46067        https://bugs.webkit.org/show_bug.cgi?id=111458
46068
46069        Reviewed by Ojan Vafai.
46070
46071        Fix some cases where we assumed the renderer is a renderBox.
46072
46073        Test: fast/forms/range/slider-inline-crash.html
46074
46075        * html/shadow/SliderThumbElement.cpp:
46076        (WebCore::RenderSliderContainer::layout): Use renderBox() which will return 0 if the renderer is not a RenderBox.
46077        (WebCore::SliderThumbElement::setPositionFromPoint): Bail out early if renderBox() is 0.
46078
460792013-03-04  Andrew Scherkus  <scherkus@chromium.org>
46080
46081        REGRESSION(r142191): Fix closed caption buttons for ports still using the painting path.
46082        https://bugs.webkit.org/show_bug.cgi?id=111109
46083
46084        Reviewed by Eric Carlson.
46085
46086        Covered by following tests:
46087        media/track/track-cue-rendering-horizontal.html
46088        media/track/track-cue-rendering-vertical.html
46089
46090        * rendering/RenderTheme.cpp:
46091        (WebCore::RenderTheme::paint):
46092        * rendering/RenderTheme.h:
46093        (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
46094
460952013-03-05  Gwang Yoon Hwang  <ryumiel@company100.net>
46096
46097        Coordinated Graphics: CoordinatedGraphicsLayer makes CoordinatedGraphicsScene perform via CoordinatedGraphicsState.
46098        https://bugs.webkit.org/show_bug.cgi?id=108294
46099
46100        Reviewed by Anders Carlsson.
46101
46102        CoordinatedLayerTreeHostProxy has too many IPC messages (e.g. SyncCanvas and
46103        CreateTile), and there is a long function chain from CoordinatedGraphicsLayer to
46104        CoordinatedGraphicsScene (4 classes).
46105        If we want to add a new message, we need to add similar functions into 4 classes.
46106
46107        Now CoordinatedLayerTreeHost has only one IPC message for CoordinatedGraphicsLayer:
46108        CommitCoordinatedGraphicsState.
46109        CoordinatedGraphicsLayer makes CoordinatedGraphicsScene run as follows:
46110        1. CoordinatedGraphicsLayer makes a CoordinatedGraphicsLayerState.
46111        2. CoordinatedLayerTreeHost stores all LayerStates.
46112        3. CoordinatedLayerTreeHost sends GraphicsState includes LayerStates to CoordinatedLayerTreeHostProxy
46113        at the moment of flushing via CommitCoordinatedGraphicsState message.
46114        4. CoordinatedGraphicsScene applies all state changes to layers.
46115
46116        There is one big behavior change. All states changes (e.g.
46117        UpdateTiles, SetLayerChildren, and etc..) are performed at the same time, when
46118        CoordinatedGraphicsScene::commitCoordinatedGraphicsState is called.
46119
46120        This patch is based on Dongsung Huang, and Noam's work in
46121        https://bugs.webkit.org/show_bug.cgi?id=108294
46122
46123        No new tests, covered by existing tests.
46124
46125        * Target.pri:
46126        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
46127        (WebCore::CoordinatedGraphicsLayer::setPosition):
46128        (WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
46129        (WebCore::CoordinatedGraphicsLayer::setSize):
46130        (WebCore::CoordinatedGraphicsLayer::setTransform):
46131        (WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
46132        (WebCore::CoordinatedGraphicsLayer::setPreserves3D):
46133        (WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
46134        (WebCore::CoordinatedGraphicsLayer::setDrawsContent):
46135        (WebCore::CoordinatedGraphicsLayer::setContentsVisible):
46136        (WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
46137        (WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
46138        (WebCore::CoordinatedGraphicsLayer::setOpacity):
46139        (WebCore::CoordinatedGraphicsLayer::setContentsRect):
46140        (WebCore::CoordinatedGraphicsLayer::setFilters):
46141        (WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
46142        (WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
46143        (WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
46144        (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
46145        (WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
46146        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
46147        (WebCore::CoordinatedGraphicsLayer::syncChildren):
46148        (WebCore::CoordinatedGraphicsLayer::syncFilters):
46149        (WebCore::CoordinatedGraphicsLayer::syncImageBacking):
46150        (WebCore::CoordinatedGraphicsLayer::syncLayerState):
46151        (WebCore::CoordinatedGraphicsLayer::setDebugBorder):
46152        (WebCore::CoordinatedGraphicsLayer::syncAnimations):
46153        (WebCore::CoordinatedGraphicsLayer::syncCanvas):
46154        (WebCore::CoordinatedGraphicsLayer::destroyCanvasIfNeeded):
46155        (WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
46156        (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
46157        (WebCore::CoordinatedGraphicsLayer::resetLayerState):
46158        (WebCore):
46159        (WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):
46160        (WebCore::CoordinatedGraphicsLayer::setRootLayer):
46161        (WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
46162        (WebCore::CoordinatedGraphicsLayer::createTile):
46163        (WebCore::CoordinatedGraphicsLayer::updateTile):
46164        (WebCore::CoordinatedGraphicsLayer::removeTile):
46165        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
46166        (CoordinatedGraphicsLayerClient):
46167        (CoordinatedGraphicsLayer):
46168        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
46169        (WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
46170        (WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
46171        (WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
46172        (WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
46173        (WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
46174        (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
46175        (WebCore::CoordinatedGraphicsScene::setLayerState):
46176        (WebCore::CoordinatedGraphicsScene::deleteLayer):
46177        (WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
46178        (WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
46179        (WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
46180        (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
46181        (WebCore::CoordinatedGraphicsScene::commitSceneState):
46182        (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
46183        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
46184        (WebCore):
46185        (CoordinatedGraphicsScene):
46186        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: Added.
46187        (WebCore):
46188        (TileUpdateInfo):
46189        (TileCreationInfo):
46190        (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
46191        (CoordinatedGraphicsLayerState):
46192        (CoordinatedGraphicsState):
46193        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
46194        * platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Removed.
46195        * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
46196
461972013-03-05  Roger Fong  <roger_fong@apple.com>
46198
46199        Unreviewed. AppleWin VS2010 build fix.
46200
46201        * WebCore.vcxproj/WebCore.vcxproj:
46202        * WebCore.vcxproj/WebCore.vcxproj.filters:
46203        * rendering/RenderingAllInOne.cpp:
46204
462052013-03-05  Bem Jones-Bey  <bjonesbe@adobe.com>
46206
46207        [CSS Exclusions] shape-outside on floats for polygon shapes
46208        https://bugs.webkit.org/show_bug.cgi?id=98676
46209
46210        Reviewed by David Hyatt.
46211
46212        Implement support for polygonal shape-outside on floats. The basic
46213        tack taken here is to keep using the bounding box of the shape to
46214        position the float, but to compute the offset (caused by the shape)
46215        from the bounding box for each line when creating and positioning
46216        other inline content.
46217
46218        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-polygon.html
46219
46220        * rendering/ExclusionShapeInfo.cpp:
46221        (WebCore):
46222        (WebCore::::computedShape): Add new template parameter.
46223        (WebCore::::logicalTopOffset): Add new template parameter.
46224        (WebCore::::computeSegmentsForLine): Move here from
46225            ExclusionShapeInsideInfo, since ExclusionShapeOutsideInfo needs it
46226            as well. Make virtual since there is slightly different behavior
46227            between each class even though the vast majority of the code is
46228            common.
46229        * rendering/ExclusionShapeInfo.h:
46230        (WebCore):
46231        (WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Since
46232            computeSegmentsForLine is virtual, the destructor must be virtual
46233            as well.
46234        (ExclusionShapeInfo): Add new data members to support
46235            computeSegmentsForLine.
46236        (WebCore::ExclusionShapeInfo::shapeLogicalRight): Fix bug, the logical
46237            right is based off of maxX, not y. (it's a logical bounding box!)
46238        (WebCore::ExclusionShapeInfo::logicalLineTop): Moved from
46239            ExclusionShapeInsideInfo for use by computeSegmentsForLine and
46240            lineOverlapsShapeBounds.
46241        (WebCore::ExclusionShapeInfo::logicalLineBottom): Moved from
46242            ExclusionShapeInsideInfo for use by computeSegmentsForLine and
46243            lineOverlapsShapeBounds.
46244        (WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds): Moved from
46245            ExclusionShapeInsideInfo for use by computeSegmentsForLine.
46246        * rendering/ExclusionShapeInsideInfo.cpp: Moved common code from
46247            computeSegmentsForLine into ExclusionShapeInfo.
46248        * rendering/ExclusionShapeInsideInfo.h:
46249        (WebCore): Moved some methods to ExclusionShapeInfo.
46250        (ExclusionShapeInsideInfo): Update for new template parameter.
46251        (WebCore::ExclusionShapeInsideInfo::compyteSegmentsForLine): Override
46252            superclass method to clear the segment ranges. Segement ranges
46253            aren't used by shape outside, and have some complex dependencies
46254            that make it very hard to try and move up into ExclusionShapeInfo.
46255        (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Update
46256            for new template parameter.
46257        * rendering/ExclusionShapeOutsideInfo.cpp:
46258        (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Add polygons as a
46259            supported shape.
46260        (WebCore::ExclusionShapeOutsideInfo::computeSegmentsForLine): Override
46261            superclass method to not recompute if it isn't needed (this isn't
46262            straightfoward for shape inside, which is why it isn't common),
46263            and to save the left and right offsets caused by the shape
46264            outside, since that's all that is needed to properly do layout in
46265            the case of floats.
46266        * rendering/ExclusionShapeOutsideInfo.h:
46267        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Reformat to
46268            be on a single line, like most other methods of it's type in
46269            WebKit headers.
46270        (ExclusionShapeOutsideInfo): Update for new template parameter.
46271        (WebCore::ExclusionShapeOutsideInfo::logicalLeftOffsetForLine):
46272            Accessor method to get the left offset between the shape and the
46273            shape's bounding box.
46274        (WebCore::ExclusionShapeOutsideInfo::logicalRightOffsetForLine):
46275            Accessor method to get the left offset between the shape and the
46276            shape's bounding box.
46277        (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
46278            Update for new template parameter.
46279        * rendering/RenderBlock.cpp:
46280        (WebCore::::collectIfNeeded): Save the last float encountered so that
46281            the shape outside offset can be accounted for.
46282        (WebCore::RenderBlock::logicalLeftOffsetForLine): Account for the
46283            shape outside offset on the outermost float.
46284        (WebCore::RenderBlock::logicalRightOffsetForLine): Account for the
46285            shape outside offset on the outermost float.
46286        * rendering/RenderBlock.h:
46287        (WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
46288            Initialize the lastFloat member.
46289        (WebCore::RenderBlock::FloatIntervalSearchAdapter::lastFloat): Get the
46290            last float encountered.
46291        (FloatIntervalSearchAdapter): Add a pointer to the last float
46292            encountered. Note that the variable is mutable because
46293            collectIfNeeded is declared as a const method even though it isn't
46294            (it uses loopholes to update m_offset and m_heightRemaining).
46295            Instead of trying to come up with a hack to stick with the
46296            loopholes, I decided to be explicit about it.
46297        * rendering/RenderBlockLineLayout.cpp:
46298        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Take
46299            into account the offset from any polygonal shape outside.
46300        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Add a FIXME
46301            because the current code will not work properly with stacked
46302            floats that have polygonal shape outside.
46303
463042013-03-04  David Hyatt  <hyatt@apple.com>
46305
46306        [New Multicolumn] Autogenerate regions for columns.
46307        https://bugs.webkit.org/show_bug.cgi?id=111363
46308
46309        Reviewed by Dean Jackson.
46310
46311        In CSS Regions, we lay out the regions first, and then
46312        we put the flow thread into the regions. This model doesn't
46313        really work for multicolumn layout, which needs to be able
46314        to auto-generate new regions lazily in response to the flow
46315        thread asking for regions at particular offsets.
46316
46317        With the multi-column model, where the regions can't just occur
46318        anywhere, its ok not to lay them out before the flow thread, as
46319        long as we have at least given them the correct size.
46320        
46321        This patch changes the layout algorithm for columns to:
46322        (1) Size any existing regions (without worrying about placement).
46323        (2) Lay out the flow thread (generating and sizing regions lazily
46324        that need to be created).
46325        (3) Lay out the regions (to give them correct placement and to
46326        compute overflow correctly for the multi-column block that contains
46327        the regions).
46328
46329        There are no new tests, since there are no behavioral changes. This
46330        is just groundwork for being able to add new sets in response to
46331        spans, balancing, and nested pagination contexts.
46332
46333        * rendering/RenderBlock.cpp:
46334        (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
46335        (WebCore::RenderBlock::layoutBlockChild):
46336        * rendering/RenderBlock.h:
46337        (RenderBlock):
46338        Since we want to be able to call determineLogicalLeftPositionForChild
46339        to place the flow thread properly, and we don't want to apply a layout
46340        delta (flow threads repaint themselves), we parameterize the method
46341        here so that it can be called without applying a layout delta.
46342        
46343        * rendering/RenderFlowThread.cpp:
46344        (WebCore::RenderFlowThread::addRegionToThread):
46345        (WebCore::RenderFlowThread::removeRegionFromThread):
46346        These methods are only used by RenderMultiColumnFlowThread, since
46347        RenderNamedFlowThread overrides them. Remove the code that invalidates
46348        the flow threads region set as regions come and go, since that is now
46349        going to be expected with auto-generation.
46350
46351        (WebCore::RenderFlowThread::validateRegions):
46352        Refactor the code in RenderFlowThread::layout that validates the regions
46353        into its own method, so that we can re-validate regions at any time
46354        after generating new ones.
46355        
46356        (WebCore::RenderFlowThread::layout):
46357        Changed to move the region validation code into its own function that is
46358        now called from here.
46359
46360        (WebCore::RenderFlowThread::updateLogicalWidth):
46361        Don't assert if a region set needs layout.
46362
46363        (WebCore::RenderFlowThread::computeLogicalHeight):
46364        Ditto. Don't assert if a region set needs layout. That's expected now.
46365
46366        (WebCore::RenderFlowThread::regionAtBlockOffset):
46367        Add code to regionAtBlockOffset to auto-generate regions up to
46368        the offset. This ensures the region that is being asked for
46369        exists.
46370
46371        (WebCore::RenderFlowThread::pageLogicalTopForOffset):
46372        (WebCore::RenderFlowThread::pageLogicalWidthForOffset):
46373        (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46374        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46375        These functions are no longer const, since the act of asking for
46376        pagination offsets can cause us to generate new regions.
46377
46378        (WebCore::RenderFlowThread::mapFromFlowToRegion):
46379        Modified to turn auto-generation off, since this is not really
46380        a "layout-time" function.
46381
46382        (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
46383        Modified to not assert if a region set needs layout, since that is
46384        expected now.
46385
46386        * rendering/RenderFlowThread.h:
46387        Changes to remove const from the methods that can trigger region
46388        auto-generation.
46389
46390        * rendering/RenderMultiColumnBlock.cpp:
46391        (WebCore::RenderMultiColumnBlock::styleDidChange):
46392        Make sure to propagate style changes down into the regions. I don't know
46393        of any correctness bugs around this, but I figured I'd be thorough.
46394
46395        (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
46396        We no longer build a column set aggressively. We wait for the flow thread
46397        to ask us for a region at a particular offset, and only then do we
46398        build the set.
46399        
46400        (WebCore::RenderMultiColumnBlock::addChild):
46401        Now that we lay out the flow thread as a special excluded child, we don't
46402        care about the ordering of it relative to the region children.
46403
46404        (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
46405        We now lay out the flow thread as a special excluded child (like the legend
46406        of a fieldset).
46407
46408        * rendering/RenderMultiColumnBlock.h:
46409        (RenderMultiColumnBlock):
46410        Add new overrides like layoutSpecialExcludedChild.
46411        
46412        * rendering/RenderMultiColumnFlowThread.cpp:
46413        (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
46414        Set the flow thread to the initial column width even when no regions exist
46415        yet. This way we ensure the width is right even when we don't have any
46416        regions yet.
46417
46418        (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
46419        This method handles autogenerating the new region for a given offset.
46420        Right now it's simplistic, since we only have one column set. This method
46421        will be enhanced in future patches when we start supporting multiple column
46422        sets.
46423
46424        * rendering/RenderMultiColumnFlowThread.h:
46425        (RenderMultiColumnFlowThread):
46426        Adding new method declarations like autoGenerateRegionsToBlockOffset.
46427
46428        * rendering/RenderMultiColumnSet.cpp:
46429        (WebCore::RenderMultiColumnSet::updateLogicalWidth):
46430        Since regions lay out after flow threads, we don't need to make 
46431        setFlowThreadPortionRect virtual any longer. We can just get our column set's
46432        width correct immediately. This is the same logic, just moved into updateLogicalWidth().
46433
46434        * rendering/RenderMultiColumnSet.h:
46435        Remove setFlowThreadPortionRect override, since the function can just be simple
46436        and non-virtual in RenderRegion now.
46437
46438        * rendering/RenderRegion.cpp:
46439        (WebCore::RenderRegion::layoutBlock):
46440        Don't ever invalidate region sets in response to our size changing during layout. Since
46441        our size is always determined outside of layout now, we don't need to do any of
46442        these checks.
46443
46444        * rendering/RenderRegion.h:
46445        (WebCore::RenderRegion::setFlowThreadPortionRect):
46446        Changed to be non-virtual now that RenderMultiColumnSet doesn't need to override.
46447
464482013-03-04  Alexey Proskuryakov  <ap@apple.com>
46449
46450        Make AsyncFileReader work without ScriptExecutionContext
46451        https://bugs.webkit.org/show_bug.cgi?id=111376
46452
46453        Reviewed by Anders Carlsson.
46454
46455        * WebCore.xcodeproj/project.pbxproj: Added MainThreadTask.h.
46456
46457        * dom/ScriptExecutionContext.cpp:
46458        * dom/ScriptExecutionContext.h:
46459        Removed fileThread(). Creating a thread for every context that acesses files appears
46460        wasteful and unnecessary.
46461
46462        * fileapi/AsyncFileStream.h:
46463        * fileapi/AsyncFileStream.cpp:
46464        (WebCore::createFileThread): FileThread is now a singleton.
46465        (WebCore::fileThread): Ditto.
46466        (WebCore::AsyncFileStream::AsyncFileStream):
46467        (WebCore::AsyncFileStream::create):
46468        (WebCore::didStart):
46469        (WebCore::AsyncFileStream::startOnFileThread):
46470        (WebCore::AsyncFileStream::stop):
46471        (WebCore::derefProxyOnMainThread):
46472        (WebCore::AsyncFileStream::stopOnFileThread):
46473        (WebCore::didGetSize):
46474        (WebCore::AsyncFileStream::getSizeOnFileThread):
46475        (WebCore::didOpen):
46476        (WebCore::AsyncFileStream::openForReadOnFileThread):
46477        (WebCore::AsyncFileStream::openForWriteOnFileThread):
46478        (WebCore::didRead):
46479        (WebCore::AsyncFileStream::readOnFileThread):
46480        (WebCore::didWrite):
46481        (WebCore::AsyncFileStream::writeOnFileThread):
46482        (WebCore::didTruncate):
46483        (WebCore::AsyncFileStream::truncateOnFileThread):
46484        Use callOnMainThread() instead of posting messages through a context. We never used
46485        other threads, and don't plan to.
46486
46487        * loader/ResourceLoader.cpp:
46488        * loader/ResourceLoader.h:
46489        We no longer need this pseudo-client call to create an AsyncFileStream, now that
46490        we don't need to get a ScriptExecutionContext somewhere.
46491
46492        * platform/MainThreadTask.h: Added. This implements callOnMainThread with multiple
46493        strongly typed arguments. Closely based on CrossThreadTask.h.
46494
46495        * platform/network/BlobResourceHandle.cpp:
46496        (WebCore::BlobResourceHandle::BlobResourceHandle): Create AsyncFileStream directly.
46497
46498        * platform/network/ResourceHandleClient.h: Removed createAsyncFileStream().
46499
465002013-03-05  Jessie Berlin  <jberlin@apple.com>
46501
46502        Update the localizable strings file.
46503
46504        Rubber-stamped by Anders Carlsson.
46505
46506        * English.lproj/Localizable.strings:
46507
465082013-03-05  Chris Fleizach  <cfleizach@apple.com>
46509
46510        AX: aria-label does not override text content on iOS
46511        https://bugs.webkit.org/show_bug.cgi?id=111222
46512
46513        Reviewed by David Kilzer.
46514
46515        Make iOS use the same text alternative computation that Mac is using. The main difference
46516        is that description and title need to be concatenated, because iOS doesn't have two attributes
46517        to return those values.
46518
46519        Test: platform/iphone-simulator/accessibility/aria-label-with-internal-text.html
46520
46521        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
46522        (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
46523        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
46524        (-[WebAccessibilityObjectWrapper accessibilityHint]):
46525        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
46526
465272013-03-05  David Kilzer  <ddkilzer@apple.com>
46528
46529        BUILD FIX (r144698): Only enable SPEECH_SYNTHESIS for Mac
46530        <http://webkit.org/b/106742>
46531
46532        Fixes the following build failures:
46533
46534            Undefined symbols for architecture i386:
46535              "__ZTVN7WebCore25PlatformSpeechSynthesizerE", referenced from:
46536                  __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
46537              NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
46538              "__ZN7WebCore25PlatformSpeechSynthesizer19initializeVoiceListEv", referenced from:
46539                  __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
46540            ld: symbol(s) not found for architecture i386
46541
46542        * Configurations/FeatureDefines.xcconfig:
46543        - Only set ENABLE_SPEECH_SYNTHESIS for the macosx platform.
46544
465452013-03-05  Dmitry Zvorygin  <zvorygin@chromium.org>
46546
46547        Web Inspector: registered new MIME type application/font-woff for WOFF fonts.
46548        https://bugs.webkit.org/show_bug.cgi?id=111418
46549
46550        The WOFF MIME Type was formally registered as application/font-woff (FINALLY):
46551        http://www.iana.org/assignments/media-types/application/font-woff
46552
46553        Reviewed by Pavel Feldman.
46554
46555        * inspector/front-end/NetworkManager.js:
46556        (WebInspector.NetworkManager):
46557        (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
46558
465592013-03-05  Julien Chaffraix  <jchaffraix@webkit.org>
46560
46561        [CSS Grid Layout] Add parsing for grid-{end|after}
46562        https://bugs.webkit.org/show_bug.cgi?id=111372
46563
46564        Reviewed by Tony Chang.
46565
46566        Test: fast/css-grid-layout/grid-item-end-after-get-set.html
46567
46568        This change adds the proper support for grid-{end|after}. It doesn't update
46569        grid-{row|column} to be a shorthand for both grid-{before|start} and grid-{after|end}
46570        though.
46571
46572        * css/CSSComputedStyleDeclaration.cpp:
46573        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
46574        Added the new properties to our known properties. Also added
46575        support for getComputedStyle.
46576
46577        * css/CSSParser.cpp:
46578        (WebCore::CSSParser::parseValue):
46579        Added parsing for the new properties.
46580
46581        * css/CSSProperty.cpp:
46582        (WebCore::CSSProperty::isInheritedProperty):
46583        The new properties are not inherited.
46584
46585        * css/CSSPropertyNames.in:
46586        Added the new properties.
46587
46588        * css/StyleResolver.cpp:
46589        (WebCore::StyleResolver::applyProperty):
46590        Added code to handle applying them to our style.
46591
46592        * rendering/style/RenderStyle.h:
46593        * rendering/style/StyleGridItemData.cpp:
46594        (WebCore::StyleGridItemData::StyleGridItemData):
46595        * rendering/style/StyleGridItemData.h:
46596        (WebCore::StyleGridItemData::operator==):
46597        (StyleGridItemData):
46598        Updated our representation to store the new properties.
46599
466002013-03-05  Andrey Kosyakov  <caseq@chromium.org>
46601
46602        Unreviewed follow-up to r144756, fix broken inspector-less build.
46603
46604        * inspector/InspectorInstrumentation.h:
46605        (WebCore::InspectorInstrumentation::willWriteHTML):
46606
466072013-03-05  Mark Lam  <mark.lam@apple.com>
46608
46609        Improve robustness of WebSQL quota management.
46610        https://bugs.webkit.org/show_bug.cgi?id=110600.
46611
46612        Reviewed by Geoffrey Garen.
46613
46614        1. Introduced the OriginLock for synchronizing write access to the
46615           database origin directory. This allows us to more accurately
46616           compute the disk usage.
46617
46618           The OriginLock uses a mutex to provide mutual exclusion between
46619           threads and a file lock for mutual exclusion between processes.
46620           The file lock part is conditional on USE(FILE_LOCK).
46621
46622           The mutex mutual exclusion also serves to ensure that only 1 thread
46623           can write to a sqlite database at one time.
46624
46625        2. Change the SQLTransactionCoordinator to only allow one write
46626           transaction to an origin instead of one write transaction per
46627           database. This is needed in order to accurately compute the
46628           disk usage. It is also necessary so that the OriginLock does not
46629           deadlock itself (as would be the case if concurrent write transactions
46630           to different databases in the same origin are allowed).
46631
46632        3. Fix DatabaseTracker::getMaxSizeForDatabase() to check for when
46633           disk usage may exceed the quota, and ensure that we will return
46634           an appropriate max database size.
46635
46636           Disk usage can exceed the usage if it is already near the quota limit
46637           but have not exceeded it yet. If a new database is opened in that
46638           origin, it may bump the usage above the quota, but should not
46639           continually repeat this. Subsequent attempts to open a database
46640           will find that the quota is already exhausted and fail.
46641
46642           There is still a race condition pertaining to the tracker database
46643           getting out of sync that may still enable runaway growth in the
46644           database sizes. That issue only manifest in a multi-process
46645           environment, and will be fixed in another changeset.
46646
46647        4. Fixed a bug in SQLStatement to check if the errorCallback exists
46648           before invoking it.
46649
46650        No new layout tests. A quota-test.html was attached to bugzilla for manual
46651        testing of multi-tab concurrent consumption of storage resource, and also
46652        to test handling situations when the user deletes the database files while
46653        the script is still using the database.
46654
46655        * CMakeLists.txt:
46656        * GNUmakefile.list.am:
46657        * Modules/webdatabase/DatabaseTracker.cpp:
46658        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
46659        (WebCore::DatabaseTracker::originLockFor):
46660        (WebCore::DatabaseTracker::deleteOriginLockFor):
46661        (WebCore::DatabaseTracker::deleteOrigin):
46662        * Modules/webdatabase/DatabaseTracker.h:
46663        * Modules/webdatabase/OriginLock.cpp: Added.
46664        (WebCore::OriginLock::lockFileNameForPath):
46665        (WebCore::OriginLock::OriginLock):
46666        (WebCore::OriginLock::~OriginLock):
46667        (WebCore::OriginLock::lock):
46668        (WebCore::OriginLock::unlock):
46669        * Modules/webdatabase/OriginLock.h: Added.
46670        * Modules/webdatabase/SQLStatement.cpp:
46671        (WebCore::SQLStatement::performCallback):
46672        * Modules/webdatabase/SQLTransactionBackend.cpp:
46673        (WebCore::SQLTransactionBackend::doCleanup):
46674        (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
46675        (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
46676        (WebCore::SQLTransactionBackend::postflightAndCommit):
46677        (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
46678        (WebCore::SQLTransactionBackend::acquireOriginLock):
46679        (WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
46680        * Modules/webdatabase/SQLTransactionBackend.h:
46681        (SQLTransactionBackend):
46682        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
46683        (WebCore::getDatabaseIdentifier):
46684        * Target.pri:
46685        * WebCore.gypi:
46686        * WebCore.vcproj/WebCore.vcproj:
46687        * WebCore.vcxproj/WebCore.vcxproj:
46688        * WebCore.vcxproj/WebCore.vcxproj.filters:
46689        * WebCore.xcodeproj/project.pbxproj:
46690        * config.h:
46691        * platform/FileSystem.h:
46692        * platform/posix/FileSystemPOSIX.cpp:
46693        (WebCore::lockFile):
46694        (WebCore::unlockFile):
46695
466962013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
46697
46698        Web Inspector: move PopoverContentHelper from TimelinePresentationModel.js to Popover.js.
46699        https://bugs.webkit.org/show_bug.cgi?id=111431
46700
46701        Reviewed by Yury Semikhatsky.
46702
46703        class WebInspector.TimelinePresentationModel.PopoverContentHelper was renamed to WebInspector.PopoverContentHelper.
46704        Style names were changed accordingly.
46705
46706        * inspector/front-end/Popover.js:
46707        (WebInspector.PopoverContentHelper):
46708        (WebInspector.PopoverContentHelper.prototype.contentTable):
46709        (WebInspector.PopoverContentHelper.prototype._createCell):
46710        (WebInspector.PopoverContentHelper.prototype.appendTextRow):
46711        (WebInspector.PopoverContentHelper.prototype.appendElementRow):
46712        (WebInspector.PopoverContentHelper.prototype.appendStackTrace):
46713        * inspector/front-end/TimelinePresentationModel.js:
46714        (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
46715        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
46716        (WebInspector.TimelinePresentationModel.generatePopupContentForFrame):
46717        (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
46718        * inspector/front-end/popover.css:
46719        (.popover-details):
46720        (.popover-function-name):
46721        (.popover-stacktrace-title):
46722        (.popover-details-row-title):
46723        (.popover-details-row-data):
46724        (.popover-details-title):
46725        * inspector/front-end/timelinePanel.css:
46726
467272013-03-05  Yury Semikhatsky  <yurys@chromium.org>
46728
46729        Web Inspector: remove "Live native memory chart" experiment
46730        https://bugs.webkit.org/show_bug.cgi?id=111432
46731
46732        Reviewed by Alexander Pavlov.
46733
46734        Removed support for live native memory chart.
46735
46736        * English.lproj/localizedStrings.js:
46737        * inspector/front-end/NativeMemorySnapshotView.js:
46738        * inspector/front-end/ProfileLauncherView.js:
46739        (WebInspector.ProfileLauncherView):
46740        * inspector/front-end/ProfilesPanel.js:
46741        (WebInspector.ProfilesPanel):
46742        * inspector/front-end/Settings.js:
46743        (WebInspector.ExperimentsSettings):
46744        * inspector/front-end/nativeMemoryProfiler.css:
46745
467462013-03-05  Andrey Kosyakov  <caseq@chromium.org>
46747
46748        Web Inspector: remove length parameter from Parse HTML timeline event
46749        https://bugs.webkit.org/show_bug.cgi?id=111421
46750
46751        Reviewed by Yury Semikhatsky.
46752
46753        - remove length parameter in all instrumentation methods used to emit ParseHTML timeline event;
46754        - drive-by style fixes.
46755
46756        * html/parser/HTMLDocumentParser.cpp:
46757        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
46758        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
46759        (WebCore::HTMLDocumentParser::pumpTokenizer):
46760        * inspector/InspectorInstrumentation.cpp:
46761        (WebCore):
46762        (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
46763        (WebCore::InspectorInstrumentation::didWriteHTMLImpl):
46764        * inspector/InspectorInstrumentation.h:
46765        (InspectorInstrumentation):
46766        (WebCore::InspectorInstrumentation::willWriteHTML):
46767        (WebCore::InspectorInstrumentation::didWriteHTML):
46768        * inspector/InspectorTimelineAgent.cpp:
46769        (WebCore::InspectorTimelineAgent::willWriteHTML):
46770        (WebCore::InspectorTimelineAgent::didWriteHTML):
46771        * inspector/InspectorTimelineAgent.h:
46772        (InspectorTimelineAgent):
46773        * inspector/TimelineRecordFactory.cpp:
46774        (WebCore::TimelineRecordFactory::createParseHTMLData):
46775        * inspector/TimelineRecordFactory.h:
46776        (TimelineRecordFactory):
46777
467782013-03-05  Alexei Filippov  <alph@chromium.org>
46779
46780        Web Inspector: allow each profiler panel to have own landing page
46781        https://bugs.webkit.org/show_bug.cgi?id=111298
46782
46783        Reviewed by Yury Semikhatsky.
46784
46785        Refactor profiler landing page to allow different profiler panels to have own landing pages.
46786          - MultiProfileLauncherView is inherited from ProfileLauncherView
46787          - Native memory distribution profiler has got a custom page.
46788
46789        No new tests: code refactoring.
46790
46791        * inspector/front-end/HeapSnapshotView.js:
46792        (WebInspector.HeapSnapshotView.prototype.get profile):
46793        (WebInspector.HeapSnapshotView.prototype.get baseProfile):
46794        (WebInspector.HeapSnapshotView.prototype._profiles):
46795        * inspector/front-end/NativeMemorySnapshotView.js:
46796        * inspector/front-end/ProfileLauncherView.js:
46797        (WebInspector.ProfileLauncherView):
46798        (WebInspector.ProfileLauncherView.prototype.addProfileType):
46799        (WebInspector.ProfileLauncherView.prototype._controlButtonClicked):
46800        (WebInspector.ProfileLauncherView.prototype._updateControls):
46801        (WebInspector.ProfileLauncherView.prototype.profileStarted):
46802        (WebInspector.ProfileLauncherView.prototype.profileFinished):
46803        (WebInspector.MultiProfileLauncherView):
46804        (WebInspector.MultiProfileLauncherView.prototype.addProfileType):
46805        (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
46806        (WebInspector.NativeProfileLauncherView):
46807        * inspector/front-end/ProfilesPanel.js:
46808        (WebInspector.ProfilesPanel):
46809        (WebInspector.ProfilesPanel.prototype._createLauncherView):
46810        (WebInspector.CPUProfilerPanel):
46811        (WebInspector.CSSSelectorProfilerPanel):
46812        (WebInspector.HeapProfilerPanel):
46813        (WebInspector.CanvasProfilerPanel):
46814        (WebInspector.MemoryChartProfilerPanel):
46815        (WebInspector.MemoryChartProfilerPanel.prototype._createLauncherView):
46816        (WebInspector.NativeMemoryProfilerPanel):
46817        * inspector/front-end/profilesPanel.css:
46818        (.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)):
46819
468202013-03-05  Eugene Klyuchnikov  <eustas@chromium.org>
46821
46822        Web Inspector: Clarify some StylesSidebarPanel and CSSMetadata JSDocs.
46823        https://bugs.webkit.org/show_bug.cgi?id=111427
46824
46825        Reviewed by Alexander Pavlov.
46826
46827        Goal: reflect in JSDoc that non-null array is passed to completionsReady callback.
46828
46829        * inspector/front-end/CSSMetadata.js:
46830        Added JSDocs, avoided possible NPEs.
46831        * inspector/front-end/StylesSidebarPane.js:
46832        Fixed JSDocs, removed unused assignment.
46833
468342013-03-05  David Kilzer  <ddkilzer@apple.com>
46835
46836        BUILD FIX (r144727): Change type of columnRange and rowRange to pair<unsigned, unsigned>
46837        <http://webkit.org/b/110050>
46838
46839        Fixes the following build failures:
46840
46841            Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:741:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
46842                tableCell->rowIndexRange(rowRange);
46843                                         ^~~~~~~~
46844            In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
46845            Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
46846                virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
46847                                                                     ^
46848            Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:742:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
46849                tableCell->columnIndexRange(columnRange);
46850                                            ^~~~~~~~~~~
46851            In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
46852            Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
46853                virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
46854                                                                        ^
46855            Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:804:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
46856                tableCell->rowIndexRange(rowRange);
46857                                         ^~~~~~~~
46858            In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
46859            Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
46860                virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
46861                                                                     ^
46862            Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:818:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
46863                tableCell->columnIndexRange(columnRange);
46864                                            ^~~~~~~~~~~
46865            In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
46866            Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
46867                virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
46868                                                            ^
46869            4 errors generated.
46870
46871        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
46872        (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
46873        (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
46874        (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
46875
468762013-03-04  Andrey Kosyakov  <caseq@chromium.org>
46877
46878        Web Inspector: [refactoring] set frame identifiers in timeline records early, do not keep them in event stack
46879        https://bugs.webkit.org/show_bug.cgi?id=111345
46880
46881        Reviewed by Pavel Feldman.
46882
46883        * inspector/InspectorTimelineAgent.cpp:
46884        (WebCore::InspectorTimelineAgent::pushGCEventRecords):
46885        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
46886        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
46887        (WebCore::InspectorTimelineAgent::setFrameIdentifier):
46888        (WebCore):
46889        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
46890        (WebCore::InspectorTimelineAgent::appendRecord):
46891        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
46892        (WebCore::InspectorTimelineAgent::commitFrameRecord):
46893        * inspector/InspectorTimelineAgent.h:
46894        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
46895        (TimelineRecordEntry):
46896        (InspectorTimelineAgent):
46897
468982013-03-05  Tommy Widenflycht  <tommyw@google.com>
46899
46900        MediaStream API: Add the getStreamById method on RTCPeerConnection
46901        https://bugs.webkit.org/show_bug.cgi?id=111311
46902
46903        Reviewed by Adam Barth.
46904
46905        Adding the missing method on RTCPeerConnection defined here:
46906        http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCPeerConnection-getStreamById-MediaStream-DOMString-streamId
46907
46908        Existing tests have been extended to cover patch.
46909
46910        * Modules/mediastream/RTCPeerConnection.cpp:
46911        (WebCore::RTCPeerConnection::getStreamById):
46912        (WebCore):
46913        * Modules/mediastream/RTCPeerConnection.h:
46914        (RTCPeerConnection):
46915        * Modules/mediastream/RTCPeerConnection.idl:
46916        * platform/chromium/support/WebMediaStream.cpp:
46917        (WebKit::WebMediaStream::initialize):
46918        (WebKit):
46919        * platform/mediastream/MediaStreamSource.cpp:
46920        (WebCore::MediaStreamSource::setReadyState):
46921
469222013-03-05  Antoine Quint  <graouts@apple.com>
46923
46924        Web Inspector: allow retrieval of composited layers in a given DOM subtree
46925        https://bugs.webkit.org/show_bug.cgi?id=111312
46926
46927        Introduce the LayerTreeAgent.layersForNode(node) method allowing the front-end
46928        to gather all composited layers associated with nodes in the subtree of which
46929        the provided node is the root.
46930
46931        In order to gather the layers in the subtree, we first traverse the node's
46932        renderer's RenderObject hierarchy and whenever we encounter a RenderObject
46933        that has a RenderLayer, we then traverse that renderLayer's RenderLayer
46934        hierarchy. This allows for a quick path through the relevant objects we're
46935        gathering.
46936
46937        Layers gathered will push the node to which they're associated, allowing a
46938        nodeId for this layer to be listed in the Layer object sent to the front-end.
46939        It is crucial to be able to provide a nodeId as well as a layerId for a Layer
46940        object in order to be able to correctly assess mutations in the layer tree.
46941        For instance, it is expected that a node's layer be replaced by a new layer
46942        to represent a slightly different rendering of its content, but the front-end
46943        should be able to represent this layer as an object for which only certain
46944        attributes have changed (like the "paintCount" property).
46945
46946        Layer objects also indicate whether they're associated to a node hosted in a
46947        shadow tree (the optional "isInShadowTree" property) in order for the front-end
46948        to be able to only show this layer if the option to show nodes hosted in shadow
46949        tree is enabled.
46950
46951        Finally, since we're only gathering composited layers, we're removing the
46952        "isLayerComposited" property and removing the optional flag on the "paintCount",
46953        "memory" and "compositedBounds" properties.
46954
46955        Reviewed by Simon Fraser.
46956
46957        Test: inspector-protocol/layers/layers-for-node.html
46958
46959        * inspector/Inspector.json:
46960        * inspector/InspectorLayerTreeAgent.cpp:
46961        (WebCore::InspectorLayerTreeAgent::layersForNode):
46962        (WebCore):
46963        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
46964        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
46965        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
46966        (WebCore::InspectorLayerTreeAgent::idForNode):
46967        * inspector/InspectorLayerTreeAgent.h:
46968        (InspectorLayerTreeAgent):
46969
469702013-03-04  Andrey Kosyakov  <caseq@chromium.org>
46971
46972        Web Inspector: use timestamps consistent with rest of Timeline in WebSocket events.
46973        https://bugs.webkit.org/show_bug.cgi?id=111344
46974
46975        - create web socket related records in a manner consistent with the rest of timeline.
46976
46977        Reviewed by Pavel Feldman.
46978
46979        * inspector/InspectorTimelineAgent.cpp:
46980        (WebCore::InspectorTimelineAgent::didCreateWebSocket):
46981        (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest):
46982        (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse):
46983        (WebCore::InspectorTimelineAgent::didDestroyWebSocket):
46984        * inspector/InspectorTimelineAgent.h:
46985        (InspectorTimelineAgent):
46986
469872013-03-05  Andrei Bucur  <abucur@adobe.com>
46988
46989        [CSS Regions] Crash when MathML used in CSS Regions
46990        https://bugs.webkit.org/show_bug.cgi?id=110686
46991
46992        Reviewed by David Hyatt.
46993
46994        The MathML blocks trigger a children layout when computing the preferred widths. This happens to determine the preferred
46995        logical heights of the children. When the layout reaches the line boxes computation the preferred width of the containing block
46996        is requested. Because it wasn't computed, the layout of the children is started again to determine the preferred logical heights.
46997        This causes an infinite recursion and triggers a stack overflow.
46998
46999        The patch introduces a new RAII utility class that disables fragmentation when the constructor is called and restores it
47000        on the destructor. This class is used when computing the preferred height for the children of a MathML block.
47001
47002        Test: fast/regions/mathml-crash.html
47003
47004        * rendering/RenderObject.cpp:
47005        (WebCore::RenderObject::setFlowThreadStateIncludingDescendants): Do not cross RenderFlowThread boundaries when updating the flow thread
47006        state flag. The innermost flow threads need to manage their descendants flag values.
47007        * rendering/RenderView.cpp:
47008        (WebCore::FragmentationDisabler::FragmentationDisabler):
47009        (WebCore):
47010        (WebCore::FragmentationDisabler::~FragmentationDisabler):
47011        * rendering/RenderView.h:
47012        (FragmentationDisabler):
47013        (WebCore):
47014        * rendering/mathml/RenderMathMLBlock.cpp:
47015        (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
47016
470172013-03-05  Mike West  <mkwst@chromium.org>
47018
47019        Cleanup: Move HitTestLocation and HitTestResult into separate files.
47020        https://bugs.webkit.org/show_bug.cgi?id=111294
47021
47022        Reviewed by Allan Sandfeld Jensen.
47023
47024        HitTestLocation and HitTestResult currently both live in
47025        HitTestResult.h. That makes things more difficult to understand than
47026        they should be, and violates the one-class-one-file principle that
47027        WebKit generally follows. Happily, it's fairly trivial to fix.
47028
47029        This should have no visible change; it's strictly an internal
47030        refactoring. It doesn't even touch any implementation code: we're
47031        just moving bits from one place to another.
47032
47033        * CMakeLists.txt:
47034        * GNUmakefile.list.am:
47035        * Target.pri:
47036        * WebCore.gypi:
47037        * WebCore.vcproj/WebCore.vcproj:
47038        * WebCore.xcodeproj/project.pbxproj:
47039            Hey, look: a new file! Let's add it to six different build systems! :)
47040        * rendering/HitTestLocation.cpp: Added.
47041        (WebCore):
47042        (WebCore::HitTestLocation::HitTestLocation):
47043        (WebCore::HitTestLocation::~HitTestLocation):
47044        (WebCore::HitTestLocation::operator=):
47045        (WebCore::HitTestLocation::move):
47046        (WebCore::HitTestLocation::intersectsRect):
47047        (WebCore::HitTestLocation::intersects):
47048        (WebCore::HitTestLocation::rectForPoint):
47049        * rendering/HitTestLocation.h: Added.
47050        (WebCore):
47051        (HitTestLocation):
47052        (WebCore::HitTestLocation::point):
47053        (WebCore::HitTestLocation::roundedPoint):
47054        (WebCore::HitTestLocation::region):
47055        (WebCore::HitTestLocation::isRectBasedTest):
47056        (WebCore::HitTestLocation::isRectilinear):
47057        (WebCore::HitTestLocation::boundingBox):
47058        (WebCore::HitTestLocation::topPadding):
47059        (WebCore::HitTestLocation::rightPadding):
47060        (WebCore::HitTestLocation::bottomPadding):
47061        (WebCore::HitTestLocation::leftPadding):
47062        (WebCore::HitTestLocation::transformedPoint):
47063        (WebCore::HitTestLocation::transformedRect):
47064        * rendering/HitTestResult.cpp:
47065        * rendering/HitTestResult.h:
47066            Move all this code from HitTestResult.* to HitTestLocation.*.
47067        * rendering/RenderBlock.cpp:
47068            Include HitTestLocation.h.
47069
470702013-03-05  Jochen Eisinger  <jochen@chromium.org>
47071
47072        Refactor UserGestureIndicator::Token to be a top-level class
47073        https://bugs.webkit.org/show_bug.cgi?id=111412
47074
47075        Reviewed by Nico Weber.
47076
47077        This will allow for forward declaring the class in a public WebKit
47078        API header. The goal is to enable the embedder to hold on to a
47079        UserGestureToken.
47080
47081        * dom/UserGestureIndicator.cpp:
47082        (WebCore::UserGestureIndicator::UserGestureIndicator):
47083        (WebCore::UserGestureIndicator::currentToken):
47084        * dom/UserGestureIndicator.h:
47085        (UserGestureToken):
47086        (WebCore::UserGestureToken::~UserGestureToken):
47087        (WebCore):
47088        (UserGestureIndicator):
47089        * page/DOMTimer.h:
47090        (DOMTimer):
47091        * page/EventHandler.h:
47092
470932013-03-05  Mike West  <mkwst@chromium.org>
47094
47095        Remove redundant code in Document::updateHoverActiveState.
47096        https://bugs.webkit.org/show_bug.cgi?id=111303
47097
47098        Reviewed by Darin Adler.
47099
47100        Document::updateHoverActiveState currently looks for touchrelease events
47101        and explictly clears out the hover state for all nodes between the
47102        currently hovered node and the top of the hover chain. This is actually
47103        redundant with the logic in the rest of the function; we can simplify by
47104        setting the Element* we're working with to 0, which causes the later
47105        loops to do the necessary work.
47106
47107        There should be no web-visible effect from this change; it should simply
47108        make this function less complex.
47109
47110        Extracted from Allan Sandfeld Jensen's original patch to wkbug.com/98168
47111
47112        * dom/Document.cpp:
47113        (WebCore::Document::updateHoverActiveState):
47114            Set innerElementInDocument to 0 rather than walking the hover chain
47115            and clearing it when we see a touchrelease event. The rest of the
47116            code in this function will have the same effect.
47117
471182013-03-05  Koji Hara  <kojih@chromium.org>
47119
47120        [V8] Remove unused custom indexedPropertyGetter
47121        https://bugs.webkit.org/show_bug.cgi?id=111409
47122
47123        Reviewed by Kentaro Hara.
47124
47125        Remove unused custom indexedPropertyGetter.
47126        There are 9 custom indexedPropertyGetter, including an unused one(NamedNodeMap).
47127        This commit assures all existing custom indexedPropertyGetter(for V8) are used.
47128
47129        No new tests. Simple refactoring.
47130
47131        * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Remove indexedPropertyGetter
47132
471332013-03-05  Hajime Morrita  <morrita@google.com>
47134
47135        ShadowRoot needs guardRef() and guardDeref()
47136        https://bugs.webkit.org/show_bug.cgi?id=109777
47137
47138        Reviewed by Dimitri Glazkov.
47139
47140        This change moves m_guardRefCount from Document to TreeScope,
47141        which allows ShadowRoot to be guarded by guardRef() mechanism as
47142        Document. After r137524, Node referes TreeScope instead of
47143        Document. This is natural consequence of the change: It no longer
47144        makes sense to guardRef() Document pointer from Node.
47145
47146        Detail:
47147
47148        - Document::m_guardRefCount and related funcdtions are moved to TreeScope
47149        - Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
47150          TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
47151        - Moved guardRef() and guardDeref() calls to TreeScope and Node.
47152          Note that there are two "guarded" TreeScope references. One is
47153          Node::m_treeScope and another is TreeScope::m_parentTreeScope.
47154          The guarded-ref management is now encapsulated in these two classes.
47155
47156        No new tests. Covered by existing tests.
47157
47158        * WebCore.exp.in:
47159        * dom/Document.cpp:
47160        (WebCore::Document::Document):
47161        (WebCore::Document::~Document):
47162        (WebCore::Document::dispose): Extracted from removedLastRef()
47163        * dom/Document.h:
47164        (WebCore::Node::isTreeScope):
47165        (WebCore::Node::Node):
47166        * dom/DocumentFragment.cpp:
47167        (WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
47168        (WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
47169        * dom/Node.cpp:
47170        (WebCore::Node::~Node):
47171        (WebCore::Node::removedLastRef):
47172        * dom/Node.h:
47173        (WebCore::Node::setTreeScope):
47174        * dom/Element.cpp:
47175        (WebCore::Element::ensureAttr): This has been wrong and is fixed in this revision since the incorrectness is unveiled by this change.
47176        * dom/ShadowRoot.cpp:
47177        (WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
47178        (WebCore::ShadowRoot::dispose): Added.
47179        * dom/ShadowRoot.h:
47180        (ShadowRoot):
47181        * dom/TreeScope.cpp:
47182        (SameSizeAsTreeScope):
47183        (WebCore::TreeScope::TreeScope):
47184        (WebCore::TreeScope::~TreeScope):
47185        (WebCore::TreeScope::dispose): Added.
47186        (WebCore::TreeScope::setParentTreeScope):
47187        (WebCore::TreeScope::deletionHasBegun):
47188        (WebCore::TreeScope::beginDeletion):
47189        (WebCore::TreeScope::refCount): Added.
47190        * dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
47191        (WebCore::TreeScope::guardRef): Pulled up from Document.
47192        (WebCore::TreeScope::guardDeref): Ditto.
47193        (WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
47194        (WebCore::TreeScope::deletionHasBegun): Added.
47195        (WebCore::TreeScope::beginDeletion): Added.
47196        (WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
47197        * dom/TreeScopeAdopter.cpp:
47198        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
47199        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
47200
472012013-03-04  Uday Kiran  <udaykiran@motorola.com>
47202
47203        getPropertyValue for -webkit-text-stroke returns null, should compute the shorthand value
47204        https://bugs.webkit.org/show_bug.cgi?id=111018
47205
47206        Reviewed by Alexander Pavlov.
47207
47208        Test: fast/css/getPropertyValue-webkit-text-stroke.html
47209
47210        * css/StylePropertySet.cpp:
47211        (WebCore::StylePropertySet::getPropertyValue):
47212
472132013-03-04  Uday Kiran  <udaykiran@motorola.com>
47214
47215        getPropertyValue for -webkit-columns returns null, should compute the shorthand value
47216        https://bugs.webkit.org/show_bug.cgi?id=111011
47217
47218        Reviewed by Alexander Pavlov.
47219
47220        Test: fast/css/getPropertyValue-columns.html
47221
47222        * css/StylePropertySet.cpp:
47223        (WebCore::StylePropertySet::getPropertyValue):
47224
472252013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
47226
47227        Web Inspector: Do not accumulate file system files, add them to workspace immediately
47228        https://bugs.webkit.org/show_bug.cgi?id=111325
47229
47230        Reviewed by Pavel Feldman.
47231
47232        * inspector/front-end/FileSystemProjectDelegate.js:
47233        (WebInspector.FileSystemProjectDelegate.prototype.populate.fileLoaded):
47234        (WebInspector.FileSystemProjectDelegate.prototype.populate):
47235        * inspector/front-end/IsolatedFileSystem.js:
47236        (WebInspector.IsolatedFileSystem.prototype.innerCallback):
47237        (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
47238
472392013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
47240
47241        Unreviewed Windows build fix attempt.
47242
47243        floor method is ambigious so explicitly specify the type.
47244
47245        * html/canvas/WebGLRenderingContext.cpp:
47246        (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
47247
472482013-03-04  Chris Fleizach  <cfleizach@apple.com>
47249
47250        AX: cellForColumnAndRow fails for tables with hidden table cells
47251        https://bugs.webkit.org/show_bug.cgi?id=110050
47252
47253        Reviewed by Tim Horton.
47254
47255        If a table had hidden cells, then accessibility code was being confused in a few ways.
47256        1) The cellForColumnAndRow method would return the wrong information since that was
47257           using the RenderTableSection to retrieve a cell, which did not have the same data as the AXTable
47258        2) The way we were adding children made it impossible to determine column and row range because we 
47259           would skip rows that had hidden children
47260        3) AccessibilityARIAGrid and AccessibilityTable were using different methods for cellForColumnAndRow
47261
47262        The fix does a few things to make things right:
47263        1) Always add an accessibility row, even if there are no visible cells in that row.
47264        2) Have one method for AXTable and AXARIAGrid for cellForColumnAndRow.
47265        3) Change cellForColumnAndRow to query the accessibility children rather than the RenderTableSection in determining the row, col info.
47266        4) cellForColumnAndRow should use unsigned values instead of int values.
47267
47268        Test: accessibility/table-with-hidden-head-section.html
47269
47270        * accessibility/AccessibilityARIAGrid.cpp:
47271        (WebCore):
47272        * accessibility/AccessibilityARIAGrid.h:
47273        (AccessibilityARIAGrid):
47274        * accessibility/AccessibilityARIAGridCell.cpp:
47275        (WebCore::AccessibilityARIAGridCell::rowIndexRange):
47276        (WebCore::AccessibilityARIAGridCell::columnIndexRange):
47277        * accessibility/AccessibilityARIAGridCell.h:
47278        (AccessibilityARIAGridCell):
47279        * accessibility/AccessibilityTable.cpp:
47280        (WebCore::AccessibilityTable::addChildren):
47281        (WebCore::AccessibilityTable::cellForColumnAndRow):
47282        * accessibility/AccessibilityTable.h:
47283        (WebCore):
47284        (AccessibilityTable):
47285        * accessibility/AccessibilityTableCell.cpp:
47286        (WebCore::AccessibilityTableCell::rowIndexRange):
47287        (WebCore::AccessibilityTableCell::columnIndexRange):
47288        * accessibility/AccessibilityTableCell.h:
47289        (AccessibilityTableCell):
47290        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
47291        (webkitAccessibleTableGetColumnAtIndex):
47292        (webkitAccessibleTableGetRowAtIndex):
47293        (webkitAccessibleTableGetColumnExtentAt):
47294        (webkitAccessibleTableGetRowExtentAt):
47295        (webkitAccessibleTableGetColumnHeader):
47296        (webkitAccessibleTableGetRowHeader):
47297        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
47298        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
47299        * rendering/RenderTableSection.h:
47300        (RenderTableSection):
47301        (WebCore::RenderTableSection::rowRendererAt):
47302
473032013-03-04  Arpita Bahuguna  <a.bah@samsung.com>
47304
47305        getAttribute does not behave correctly for mixed-case attributes on HTML elements
47306        https://bugs.webkit.org/show_bug.cgi?id=105713
47307
47308        Reviewed by Andreas Kling.
47309
47310        getAttribute() and getAttributeNode() APIs do not convert the
47311        passed attribute name to lowercase before comparing against the
47312        existing attributes.
47313        The specification however states that the passed name should
47314        be converted to ASCII lowercase before checking for the existence
47315        of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
47316
47317        Test: fast/dom/Element/getAttribute-case-insensitivity.html
47318
47319        * dom/Element.h:
47320        (WebCore::ElementData::getAttributeItemIndex):
47321        getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
47322        which specifies whether the attribute's case should be ignored
47323        before comparison. But inspite of this param's value we still carry
47324        out a case sensitive search.
47325        Have modified the same to convert the passed attribute's name to
47326        lowercase if 'shouldIgnoreAttributeCase' is true.
47327
473282013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
47329
47330        [Chromium] Add runtime flag for font load events
47331        https://bugs.webkit.org/show_bug.cgi?id=111296
47332
47333        Reviewed by Kent Tamura.
47334
47335        Add a runtime feature flag for FontLoader interface (disabled by default),
47336        and enable ENABLE_FONT_LOAD_EVENTS build flag for chromium.
47337
47338        * bindings/generic/RuntimeEnabledFeatures.cpp:
47339        (WebCore):
47340        * bindings/generic/RuntimeEnabledFeatures.h:
47341        (RuntimeEnabledFeatures):
47342        (WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled):
47343        (WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled):
47344
473452013-03-04  Brandon Jones  <bajones@google.com>
47346
47347        WEBGL_compressed_texture_atc implementation
47348        https://bugs.webkit.org/show_bug.cgi?id=110496
47349
47350        Reviewed by Kenneth Russell.
47351
47352        Test: webgl/conformance/extensions/webgl-compressed-texture-atc.html
47353
47354        Exposes the WEBGL_compressed_texture_atc extension, but is unverified since no desktop hardware supports
47355        the format that I am aware of. Should enable mobile ports to expose the format, however.
47356
47357        * CMakeLists.txt:
47358        * DerivedSources.make:
47359        * DerivedSources.pri:
47360        * GNUmakefile.list.am:
47361        * Target.pri:
47362        * WebCore.gypi:
47363        * WebCore.xcodeproj/project.pbxproj:
47364        * bindings/js/JSWebGLRenderingContextCustom.cpp:
47365        (WebCore::toJS):
47366        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
47367        (WebCore::toV8Object):
47368        * html/canvas/WebGLCompressedTextureATC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
47369        (WebCore):
47370        (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
47371        (WebCore::WebGLCompressedTextureATC::~WebGLCompressedTextureATC):
47372        (WebCore::WebGLCompressedTextureATC::getName):
47373        (WebCore::WebGLCompressedTextureATC::create):
47374        (WebCore::WebGLCompressedTextureATC::supported):
47375        * html/canvas/WebGLCompressedTextureATC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
47376        (WebCore):
47377        (WebGLCompressedTextureATC):
47378        * html/canvas/WebGLCompressedTextureATC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
47379        * html/canvas/WebGLExtension.h:
47380        * html/canvas/WebGLRenderingContext.cpp:
47381        (WebCore):
47382        (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
47383        (WebCore::WebGLRenderingContext::getExtension):
47384        (WebCore::WebGLRenderingContext::getSupportedExtensions):
47385        (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
47386        * html/canvas/WebGLRenderingContext.h:
47387        (WebCore):
47388        (WebGLRenderingContext):
47389        * platform/graphics/Extensions3D.h:
47390
47391
473922013-03-04  Eugene Klyuchnikov  <eustas@chromium.org>
47393
47394        Web Inspector: Exceptions when WebInspector run in hosted mode.
47395        https://bugs.webkit.org/show_bug.cgi?id=111326
47396
47397        Reviewed by Pavel Feldman.
47398
47399        There is bug in commands code generation in InspectorBackend.js
47400        As a consequence all protocol enums have wrong names and cause
47401        exception when refererenced.
47402
47403        Currently protocol enums are referenced only from NetworkManager.
47404
47405        Test: inspector/inspector-backend-commands-generation.html
47406
47407        * inspector/front-end/InspectorBackend.js:
47408        (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
47409        Use static method to generate code.
47410        (InspectorBackendClass._generateCommands):
47411        Extracted from loadFromJSONIfNeeded. Typo fixed.
47412
474132013-03-04  Chris Rogers  <crogers@google.com>
47414
47415        Add audio hardware support for multi-channel output by implementing AudioDestinationNode.maxChannelCount
47416        https://bugs.webkit.org/show_bug.cgi?id=111385
47417
47418        Reviewed by James Robinson.
47419        
47420        See specification details for .maxChannelCount:
47421        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode
47422        
47423        * Modules/webaudio/AudioDestinationNode.h:
47424        (WebCore::AudioDestinationNode::maxChannelCount):
47425        * Modules/webaudio/AudioDestinationNode.idl:
47426        * Modules/webaudio/AudioNode.h:
47427        Implement .maxChannelCount attribute.
47428        
47429        (AudioNode):
47430        * Modules/webaudio/DefaultAudioDestinationNode.h:
47431        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
47432        (WebCore::DefaultAudioDestinationNode::initialize):
47433        (WebCore::DefaultAudioDestinationNode::createDestination):
47434        (WebCore::DefaultAudioDestinationNode::enableInput):
47435        Call to createDestination() now takes no argument.
47436        Instead we maintain a member variable for the input device ID.
47437        (WebCore::DefaultAudioDestinationNode::maxChannelCount):
47438        (WebCore::DefaultAudioDestinationNode::setChannelCount):
47439        Check port-specific hardware support for maxChannelCount(),
47440        and allow setting the channel count based on what the hardware
47441        supports.
47442        
47443        * platform/audio/AudioDestination.h:
47444        (AudioDestination):
47445        * platform/audio/chromium/AudioDestinationChromium.cpp:
47446        (WebCore::AudioDestination::maxChannelCount):
47447        (WebCore::AudioDestinationChromium::render):
47448        Call into chromium WebKit API: audioHardwareOutputChannels().
47449
47450        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
47451        (WebCore::AudioDestination::maxChannelCount):
47452        Add basic implementation for maxChannelCount() only supporting stereo output.
47453
47454        * platform/audio/mac/AudioDestinationMac.cpp:
47455        (WebCore::AudioDestination::maxChannelCount):
47456        Add basic implementation for maxChannelCount() only supporting stereo output.
47457        Later, the mac port can support more than this with some small improvements to AudioDestinationMac.
47458
474592013-03-04  Adam Barth  <abarth@webkit.org>
47460
47461        Background HTML parser can rewind the tokenizer after end-of-file
47462        https://bugs.webkit.org/show_bug.cgi?id=111365
47463
47464        Reviewed by Eric Seidel.
47465
47466        Prior to this patch, it was possible to call didFailSpeculation after
47467        processing the end-of-file token because checkForSpeculationFailure
47468        didn't zero out m_tokenizer in some control paths.
47469
47470        This patch renames checkForSpeculationFailure to validateSpeculations
47471        and ensures that it always takes ownership of the main thread's
47472        HTMLTokenizer.
47473
47474        This patch also adds a number of ASSERTs to make sure the parser state
47475        machine stays in the correct configuration (e.g., that we don't have a
47476        main thread tokenizer while we're supposed to be tokenizing on the
47477        background thread).
47478
47479        Test: fast/parser/document-write-fighting-eof.html
47480
47481        * html/parser/BackgroundHTMLInputStream.cpp:
47482        (WebCore::BackgroundHTMLInputStream::rewindTo):
47483        * html/parser/BackgroundHTMLParser.cpp:
47484        (WebCore::BackgroundHTMLParser::append):
47485        * html/parser/HTMLDocumentParser.cpp:
47486        (WebCore::HTMLDocumentParser::validateSpeculations):
47487        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
47488        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
47489        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
47490        * html/parser/HTMLDocumentParser.h:
47491        (HTMLDocumentParser):
47492
474932013-03-04  Tim 'mithro' Ansell  <mithro@mithis.com>
47494
47495        Make sure that clearOwnerNode also clears StyleResolver references (via didMutate).
47496        https://bugs.webkit.org/show_bug.cgi?id=109446
47497
47498        Reviewed by Eric Seidel.
47499
47500        Test: fast/css/stylesheet.innerHTML-calls-didmutate.html
47501
47502        * css/CSSStyleSheet.h:
47503
475042013-03-04  Kentaro Hara  <haraken@chromium.org>
47505
47506        Unreviewd build fix after r144701.
47507
47508        * platform/EventTracer.cpp:
47509        (WebCore::EventTracer::initialize):
47510
475112013-03-04  Min Qin  <qinmin@chromium.org>
47512
47513        Fix some style issues in RenderLayerCompositor
47514        https://bugs.webkit.org/show_bug.cgi?id=111369
47515
47516        Reviewed by Simon Fraser.
47517
47518        Just style fix, no test needed
47519
47520        * rendering/RenderLayerCompositor.cpp:
47521        (WebCore::RenderLayerCompositor::frameViewDidScroll):
47522        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
47523
475242013-03-04  Terry Anderson  <tdanderson@chromium.org>
47525
47526        Revert changes to RenderLayer::scrollByRecursively() that were added for gesture-scrolling
47527        https://bugs.webkit.org/show_bug.cgi?id=111007
47528
47529        Reviewed by Simon Fraser.
47530
47531        Due to http://trac.webkit.org/changeset/144519 landing, the changes made to RenderLayer in
47532        http://trac.webkit.org/changeset/142057,
47533        http://trac.webkit.org/changeset/140177, and  
47534        http://trac.webkit.org/changeset/142195
47535        are no longer necessary (as RenderLayer::scrollByRecursively() is not used for
47536        gesture-scrolling) and should be reverted.
47537
47538        No change in behavior, so no new tests needed.
47539
47540        * rendering/RenderLayer.cpp:
47541        (WebCore::RenderLayer::scrollByRecursively):
47542        * rendering/RenderLayer.h:
47543
475442013-03-04  Kentaro Hara  <haraken@chromium.org>
47545
47546        Unreviewed build fix after r144701.
47547
47548        * platform/EventTracer.cpp:
47549        (WebCore::EventTracer::initialize):
47550
475512013-03-04  Christian Biesinger  <cbiesinger@chromium.org>
47552
47553        REGRESSION (r143643): Buttons containing floats render differently
47554        https://bugs.webkit.org/show_bug.cgi?id=110933
47555
47556        Reviewed by Ojan Vafai.
47557
47558        Test: fast/forms/button-with-float.html
47559
47560        * rendering/RenderBlock.cpp:
47561        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
47562        Also include new flexbox as a renderer that needs to enclose
47563        overhanging floats. Flex boxes establish a block formatting context,
47564        so they need to contain floats:
47565        http://dev.w3.org/csswg/css3-flexbox/#flex-items
47566
475672013-03-04  Chris Fleizach  <cfleizach@apple.com>
47568
47569        Support WebSpeech - Speech Synthesis
47570        https://bugs.webkit.org/show_bug.cgi?id=106742
47571
47572        Build fix.
47573
47574        * Modules/speech/SpeechSynthesis.cpp:
47575
475762013-03-04  Rafael Weinstein  <rafaelw@chromium.org>
47577
47578        Unreviewed, rolling out r144595.
47579        http://trac.webkit.org/changeset/144595
47580        https://bugs.webkit.org/show_bug.cgi?id=90341
47581
47582        Causing multiple crashes in fast/dom/Element/* tests (hits
47583        assert in Attr.cp:215)
47584
47585        * dom/Element.cpp:
47586        (WebCore::Element::setAttributeNode):
47587
475882013-02-26  Kentaro Hara  <haraken@chromium.org>
47589
47590        [chromium] Implement TRACE_EVENT macros for sampling profiling
47591        https://bugs.webkit.org/show_bug.cgi?id=110932
47592
47593        Reviewed by Adam Barth.
47594
47595        We are implementing TRACE_EVENT macros for sampling profiling.
47596        It works in the following mechanism:
47597
47598        - Chromium defines global state variables for sampling profiling.
47599        (i.e. g_trace_state0, g_trace_state1, g_trace_state2 in trace_event.h)
47600
47601        - WebKit gets the addresses of the global state variables at the
47602        initialization step. (i.e. EventTracer::initialize())
47603
47604        - WebKit updates the global states by using TRACE_EVENT_SAMPLING_STATE()
47605        macros every time WebKit changes its state. (e.g. DOM attribute
47606        getters/setters/methods)
47607
47608        - A sampling thread running in Chrome reads the global states
47609        periodically and visualizes the profiling results into about://tracing.
47610
47611        This patch implements (1) a WebKit API to get the addresses of
47612        the global states and (2) the TRACE_EVENT_SAMPLING_STATE() macro.
47613
47614        No tests. The sampling profiler is not enabled in Chrome by default.
47615        I manually inserted TRACE_EVENT_SAMPLING_STATE() macros and
47616        confirmed that the sampling profiling is working as expected.
47617
47618        * platform/EventTracer.cpp:
47619        (WebCore::EventTracer::initialize):
47620        (WebCore::EventTracer::getTraceCategoryEnabledFlag):
47621        (WebCore):
47622        * platform/EventTracer.h:
47623        (WebCore):
47624        (EventTracer):
47625        * platform/chromium/EventTracerChromium.cpp:
47626        (WebCore):
47627        (WebCore::EventTracer::initialize):
47628        * platform/chromium/TraceEvent.h:
47629
476302013-03-04  Chris Fleizach  <cfleizach@apple.com>
47631
47632        Support WebSpeech - Speech Synthesis
47633        https://bugs.webkit.org/show_bug.cgi?id=106742
47634
47635        Reviewed by Simon Fraser.
47636
47637        Enable speech synthesis for the Mac.
47638
47639        * Configurations/FeatureDefines.xcconfig:
47640
476412013-03-04  Ruslan Abdikeev  <aruslan@chromium.org>
47642
47643        <link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
47644        https://bugs.webkit.org/show_bug.cgi?id=109061
47645
47646        Reviewed by Adam Barth.
47647
47648        Test: fast/dom/icon-url-list-apple-touch.html
47649
47650        Added iconTypes parameter to Document::iconURLs().
47651        Added Document::shortcutIconURLs() with original semantics of iconURLs().
47652        Fixed IconController.cpp to provide iconTypesMask to iconURLs().
47653        Renamed iconTypes to iconTypesMask to make the meaning clearer.
47654
47655        * WebCore.exp.in:
47656        * dom/Document.cpp:
47657        (WebCore::Document::shortcutIconURLs):
47658        (WebCore):
47659        (WebCore::Document::iconURLs):
47660        * dom/Document.h:
47661        (Document):
47662        * loader/icon/IconController.cpp:
47663        (WebCore::IconController::iconURL):
47664        (WebCore::IconController::urlsForTypes):
47665        * testing/Internals.cpp:
47666        (WebCore::Internals::iconURLs):
47667        (WebCore::Internals::shortcutIconURLs):
47668        (WebCore):
47669        (WebCore::Internals::allIconURLs):
47670        * testing/Internals.h:
47671        * testing/Internals.idl:
47672
476732013-02-27  Jeffrey Pfau  <jpfau@apple.com>
47674
47675        Cache partitioning does not affect iframe MainResources
47676        https://bugs.webkit.org/show_bug.cgi?id=111022
47677
47678        Reviewed by David Kilzer.
47679
47680        Set the partition of a main resource request if in a subframe.
47681
47682        Test: http/tests/cache/partitioned-cache-iframe.html
47683
47684        * loader/FrameLoader.cpp:
47685        (WebCore::FrameLoader::loadURL):
47686
476872013-03-04  Chris Fleizach  <cfleizach@apple.com>
47688
47689        AX: user agent shadow roots for plugins should be 'accessible'
47690        https://bugs.webkit.org/show_bug.cgi?id=111339
47691
47692        Reviewed by Tim Horton.
47693
47694        If a plugin element uses a user agent shadow element, we should make that shadow element
47695        into a button with the title and subtitle put together, and use that as the label. This 
47696        will probably be the best accessibility experience.
47697
47698        * html/HTMLPlugInImageElement.cpp:
47699        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
47700
477012013-03-04  Alok Priyadarshi  <alokp@chromium.org>
47702
47703        [chromium] Form controls on composited layers are not painted properly
47704        https://bugs.webkit.org/show_bug.cgi?id=111366
47705
47706        Reviewed by James Robinson.
47707
47708        Set PlatformContextSkia::m_drawingToImageBuffer which is used as a hint to properly blend GDI-painted bitmap.
47709
47710        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
47711        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
47712
477132013-03-04  Simon Fraser  <simon.fraser@apple.com>
47714
47715        Give ViewportConstraints classes copy constructors
47716        https://bugs.webkit.org/show_bug.cgi?id=111367
47717
47718        Reviewed by Beth Dakin.
47719        
47720        Downstream code requires that ViewportConstraints objects have
47721        copy constructors, so add them.
47722        
47723        Also clean up some redundant initialization of stack objects
47724        in RenderLayerCompositor.
47725
47726        No behavior change.
47727
47728        * page/scrolling/ScrollingConstraints.h:
47729        (WebCore::ViewportConstraints::ViewportConstraints):
47730        (ViewportConstraints):
47731        (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
47732        (FixedPositionViewportConstraints):
47733        (WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
47734        (StickyPositionViewportConstraints):
47735        * rendering/RenderLayerCompositor.cpp:
47736        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
47737        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
47738
477392013-03-04  Roger Fong  <roger_fong@apple.com>
47740
47741        Unreviewed. AppleWin build fix.
47742
47743        * html/parser/XSSAuditor.cpp:
47744        (WebCore::isSemicolonSeparatedAttribute):
47745
477462013-03-04  Andreas Kling  <akling@apple.com>
47747
47748        CSSParser: Avoid temporary String when parsing hex colors.
47749        <http://webkit.org/b/111341>
47750
47751        Reviewed by Anders Carlsson.
47752
47753        Templatize CSSParser::fastParseColor() so we can pass a CSSParserString as the color name.
47754        This avoids creating a temporary WTF::String from the parser string.
47755
47756        * css/CSSParser.cpp:
47757        (WebCore::CSSParser::fastParseColor):
47758        * css/CSSParser.h:
47759        * css/CSSParserValues.h:
47760        (CSSParserString):
47761
477622013-03-04  Julien Chaffraix  <jchaffraix@webkit.org>
47763
47764        [CSS Grid Layout] Add parsing for grid-{start|before}
47765        https://bugs.webkit.org/show_bug.cgi?id=110988
47766
47767        Reviewed by Tony Chang.
47768
47769        Test: fast/css-grid-layout/grid-item-start-before-get-set.html
47770
47771        Refactored how we store internally grid-{row|column} to be based on grid-{before|start}.
47772        This is required as grid-{row|column} are shorthands for resp. grid-{before|after} and grid-{start|end}
47773        in the specification and will also be in the code. That means a lot of methods were renamed to be more
47774        aligned with the new design.
47775
47776        * css/CSSComputedStyleDeclaration.cpp:
47777        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
47778        * css/CSSParser.cpp:
47779        (WebCore::CSSParser::parseValue):
47780        * css/CSSProperty.cpp:
47781        (WebCore::CSSProperty::isInheritedProperty):
47782        * css/CSSPropertyNames.in:
47783        * css/StyleResolver.cpp:
47784        (WebCore::StyleResolver::applyProperty):
47785        Added the code to parse, apply and get back the new properties. Also
47786        some renaming after the internal naming change below.
47787
47788        * rendering/RenderGrid.cpp:
47789        (WebCore::RenderGrid::maximumIndexInDirection):
47790        (WebCore::RenderGrid::placeItemsOnGrid):
47791        (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
47792        (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
47793        * rendering/style/RenderStyle.h:
47794        * rendering/style/StyleGridItemData.cpp:
47795        (WebCore::StyleGridItemData::StyleGridItemData):
47796        * rendering/style/StyleGridItemData.h:
47797        (WebCore::StyleGridItemData::operator==):
47798        Updated the naming now that we manipulate grid-{before|start} instead of grid-{row|column}.
47799
478002013-03-04  Chris Fleizach  <cfleizach@apple.com>
47801
47802        WebSpeech: change voiceURI to voice
47803        https://bugs.webkit.org/show_bug.cgi?id=110773
47804
47805        Reviewed by Tim Horton.
47806
47807        Change the voiceURI property to a voice property that takes a SpeechSynthesisVoice.
47808        This was recently added to the errata of the WebSpeech spec.
47809
47810        Test: platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html
47811
47812        * Modules/speech/SpeechSynthesisUtterance.cpp:
47813        (WebCore):
47814        (WebCore::SpeechSynthesisUtterance::voice):
47815        (WebCore::SpeechSynthesisUtterance::setVoice):
47816        * Modules/speech/SpeechSynthesisUtterance.h:
47817        (SpeechSynthesisUtterance):
47818        * Modules/speech/SpeechSynthesisUtterance.idl:
47819        * Modules/speech/SpeechSynthesisVoice.h:
47820        (WebCore::SpeechSynthesisVoice::platformVoice):
47821        (SpeechSynthesisVoice):
47822        * platform/PlatformSpeechSynthesisUtterance.cpp:
47823        (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
47824        * platform/PlatformSpeechSynthesisUtterance.h:
47825        (WebCore::PlatformSpeechSynthesisUtterance::voice):
47826        (WebCore::PlatformSpeechSynthesisUtterance::setVoice):
47827        (PlatformSpeechSynthesisUtterance):
47828        * platform/mac/PlatformSpeechSynthesizerMac.mm:
47829        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
47830
478312013-03-04  Victor Costan <costan@gmail.com>
47832
47833        Filename passed to FormData.append() takes precedence over filename in
47834        File.
47835        https://bugs.webkit.org/show_bug.cgi?id=111255
47836
47837        Reviewed by Alexey Proskuryakov.
47838
47839        Test: http/tests/local/formdata/send-form-data-with-filename.html
47840
47841        * platform/network/FormData.cpp:
47842        (WebCore::FormData::appendKeyValuePairItems): changed to implement the
47843        behavior in the XMLHttpRequest W3C spec.
47844
478452013-03-04  Alexis Hetu  <sugoi@chromium.org>
47846
47847        Canvas and DOM go out of sync
47848        https://bugs.webkit.org/show_bug.cgi?id=107701
47849
47850        Reviewed by Simon Fraser.
47851
47852        Test: fast/canvas/canvas-overflow-hidden-animation.html
47853
47854        Added an update of the current compositor from the layer's stacking
47855        container when the layer itself isn't a stacking container.
47856
47857        * rendering/RenderLayerBacking.cpp:
47858        (WebCore::RenderLayerBacking::updateAfterLayout):
47859        Added an update of the stacking container of the owning layer of the
47860        layer backing when the owning layer isn't a stacking container itself.
47861
478622013-03-04  Alexey Proskuryakov  <ap@apple.com>
47863
47864        Small BlobResourceHandle cleanup
47865        https://bugs.webkit.org/show_bug.cgi?id=111352
47866
47867        Reviewed by Sam Weinig.
47868
47869        1. Don't use PassRefPtr<BlobStorageData> when ownership is not being passed.
47870        2. Added OVERRIDE to some functions.
47871        3. Added const to ResourceHandle::firstRequest().
47872
47873        * platform/network/BlobRegistryImpl.cpp:
47874        (WebCore::loadResourceSynchronously):
47875        (WebCore::BlobRegistryImpl::createResourceHandle):
47876        (WebCore::BlobRegistryImpl::getBlobDataFromURL):
47877        * platform/network/BlobRegistryImpl.h:
47878        (BlobRegistryImpl):
47879        * platform/network/BlobResourceHandle.cpp:
47880        (WebCore::BlobResourceHandle::createAsync):
47881        (WebCore::BlobResourceHandle::loadResourceSynchronously):
47882        * platform/network/BlobResourceHandle.h:
47883        (BlobResourceHandle):
47884        * platform/network/FormData.cpp:
47885        (WebCore::appendBlobResolved):
47886        * platform/network/ResourceHandle.cpp:
47887        (WebCore::ResourceHandle::firstRequest):
47888        * platform/network/ResourceHandle.h:
47889        (ResourceHandle):
47890
478912013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
47892
47893        Web Inspector: Introduce WebInspector.EventTarget interface for interfaces that dispatch events.
47894        https://bugs.webkit.org/show_bug.cgi?id=111320
47895
47896        Reviewed by Pavel Feldman.
47897
47898        * inspector/front-end/Object.js:
47899        (WebInspector.EventTarget):
47900        (WebInspector.EventTarget.prototype.addEventListener):
47901        (WebInspector.EventTarget.prototype.removeEventListener):
47902        (WebInspector.EventTarget.prototype.removeAllListeners):
47903        (WebInspector.EventTarget.prototype.hasEventListeners):
47904        (WebInspector.EventTarget.prototype.dispatchEventToListeners):
47905        * inspector/front-end/ResourceScriptMapping.js:
47906        * inspector/front-end/UISourceCode.js:
47907        * inspector/front-end/Workspace.js:
47908        (WebInspector.ProjectDelegate.prototype.searchInFileContent):
47909
479102013-03-04  Tom Sepez  <tsepez@chromium.org>
47911
47912        XSSAuditor bypass with --> comment syntax.
47913        https://bugs.webkit.org/show_bug.cgi?id=111349
47914
47915        Reviewed by Adam Barth.
47916
47917        Test: http/tests/security/xssAuditor/open-iframe-src-03.html
47918
47919        * html/parser/XSSAuditor.cpp:
47920        (WebCore::isTerminatingCharacter):
47921        Adds ">" to the list of terminating characters, so that comments of
47922        the form --> end the snippet we seek to match.
47923
479242013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
47925
47926        Web Inspector: Modal dialogs sometimes lose focus.
47927        https://bugs.webkit.org/show_bug.cgi?id=111317
47928
47929        Reviewed by Pavel Feldman.
47930
47931        setCurrentFocusElement doesn't give focus to an element anymore
47932        if modal glass pane is shown and element is not inside it.
47933
47934        * inspector/front-end/Dialog.js:
47935        (WebInspector.Dialog):
47936        (WebInspector.Dialog.prototype._hide):
47937        * inspector/front-end/InspectorView.js:
47938        (WebInspector.InspectorView.prototype.defaultFocusedElement):
47939        * inspector/front-end/ScriptsPanel.js:
47940        (WebInspector.ScriptsPanel.prototype.defaultFocusedElement):
47941        * inspector/front-end/UIUtils.js:
47942        (WebInspector.GlassPane):
47943        (WebInspector.GlassPane.prototype.dispose):
47944        (WebInspector.setCurrentFocusElement):
47945        * inspector/front-end/dialog.css:
47946
479472013-03-04  Roger Fong  <roger_fong@apple.com>
47948
47949        Unreviewed. AppleWin build fix.
47950
47951        * WebCore.vcxproj/WebCore.vcxproj:
47952
479532013-03-04  Dan Carney  <dcarney@google.com>
47954
47955        [v8] add isolate parameter to heap statistics calls
47956        https://bugs.webkit.org/show_bug.cgi?id=111308
47957
47958        Reviewed by Jochen Eisinger.
47959
47960        No new tests.
47961
47962        * bindings/v8/ScriptGCEvent.cpp:
47963        (WebCore::ScriptGCEvent::getHeapSize):
47964        (WebCore::ScriptGCEvent::getUsedHeapSize):
47965        * bindings/v8/V8AdaptorFunction.cpp:
47966        (WebCore::V8AdaptorFunction::getTemplate):
47967        * bindings/v8/V8GCController.cpp:
47968        (WebCore::V8GCController::checkMemoryUsage):
47969
479702013-03-04  Jochen Eisinger  <jochen@chromium.org>
47971
47972        [chromium] remove deprecated hyphenation methods from Platform
47973        https://bugs.webkit.org/show_bug.cgi?id=111101
47974
47975        Reviewed by Adam Barth.
47976
47977        * platform/text/chromium/Hyphenation.cpp:
47978        (WebCore::canHyphenate):
47979        (WebCore::lastHyphenLocation):
47980
479812013-03-04  Benjamin Poulain  <benjamin@webkit.org>
47982
47983        Use initialization from literal for MediaFeatureNames
47984        https://bugs.webkit.org/show_bug.cgi?id=111283
47985
47986        Reviewed by Andreas Kling.
47987
47988        * css/MediaFeatureNames.cpp:
47989        (WebCore::MediaFeatureNames::init):
47990        Initialization from literal is faster and use less memory. The names are
47991        defined statically in MediaFeatureNames.h.
47992
47993        Also use the NotNull placement new to avoid a branch on silly allocators.
47994
479952013-03-04  Joshua Bell  <jsbell@chromium.org>
47996
47997        [V8] Unreviewed. Rebaselined run-bindings-tests following r144617
47998
47999        * bindings/scripts/test/V8/V8Float64Array.cpp:
48000        (WebCore::ConfigureV8Float64ArrayTemplate):
48001        (WebCore::V8Float64Array::GetTemplate):
48002        * bindings/scripts/test/V8/V8Float64Array.h:
48003        (V8Float64Array):
48004        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48005        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
48006        (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
48007        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
48008        (WebCore::V8TestActiveDOMObject::GetTemplate):
48009        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48010        (V8TestActiveDOMObject):
48011        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48012        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
48013        (WebCore::V8TestCustomNamedGetter::GetTemplate):
48014        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48015        (V8TestCustomNamedGetter):
48016        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48017        (WebCore::ConfigureV8TestEventConstructorTemplate):
48018        (WebCore::V8TestEventConstructor::GetTemplate):
48019        * bindings/scripts/test/V8/V8TestEventConstructor.h:
48020        (V8TestEventConstructor):
48021        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48022        (WebCore::ConfigureV8TestEventTargetTemplate):
48023        (WebCore::V8TestEventTarget::GetTemplate):
48024        * bindings/scripts/test/V8/V8TestEventTarget.h:
48025        (V8TestEventTarget):
48026        * bindings/scripts/test/V8/V8TestException.cpp:
48027        (WebCore::ConfigureV8TestExceptionTemplate):
48028        (WebCore::V8TestException::GetTemplate):
48029        * bindings/scripts/test/V8/V8TestException.h:
48030        (V8TestException):
48031        * bindings/scripts/test/V8/V8TestInterface.cpp:
48032        (WebCore::ConfigureV8TestInterfaceTemplate):
48033        (WebCore::V8TestInterface::GetTemplate):
48034        * bindings/scripts/test/V8/V8TestInterface.h:
48035        (V8TestInterface):
48036        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48037        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
48038        (WebCore::V8TestMediaQueryListListener::GetTemplate):
48039        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48040        (V8TestMediaQueryListListener):
48041        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48042        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
48043        (WebCore::ConfigureV8TestNamedConstructorTemplate):
48044        (WebCore::V8TestNamedConstructor::GetTemplate):
48045        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48046        (V8TestNamedConstructorConstructor):
48047        (V8TestNamedConstructor):
48048        * bindings/scripts/test/V8/V8TestNode.cpp:
48049        (WebCore::ConfigureV8TestNodeTemplate):
48050        (WebCore::V8TestNode::GetTemplate):
48051        * bindings/scripts/test/V8/V8TestNode.h:
48052        (V8TestNode):
48053        * bindings/scripts/test/V8/V8TestObj.cpp:
48054        (WebCore::ConfigureV8TestObjTemplate):
48055        (WebCore::V8TestObj::GetTemplate):
48056        (WebCore::V8TestObj::installPerContextPrototypeProperties):
48057        * bindings/scripts/test/V8/V8TestObj.h:
48058        (V8TestObj):
48059        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
48060        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
48061        (WebCore::V8TestOverloadedConstructors::GetTemplate):
48062        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
48063        (V8TestOverloadedConstructors):
48064        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48065        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
48066        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
48067        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48068        (V8TestSerializedScriptValueInterface):
48069        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
48070        (WebCore::ConfigureV8TestTypedefsTemplate):
48071        (WebCore::V8TestTypedefs::GetTemplate):
48072        * bindings/scripts/test/V8/V8TestTypedefs.h:
48073        (V8TestTypedefs):
48074
480752013-03-04  Tony Chang  <tony@chromium.org>
48076
48077        Unreviewed, rolling out r144562.
48078        http://trac.webkit.org/changeset/144562
48079        https://bugs.webkit.org/show_bug.cgi?id=85642
48080
48081        Caused KeyPadInsert faluires in webkit_unittests
48082
48083        * platform/chromium/KeyCodeConversionGtk.cpp:
48084        (WebCore::windowsKeyCodeForKeyEvent):
48085
480862013-03-04  Uday Kiran  <udaykiran@motorola.com>
48087
48088        getComputedStyle not implemented for -webkit-columns shorthand
48089        https://bugs.webkit.org/show_bug.cgi?id=111236
48090
48091        Reviewed by Alexis Menard.
48092
48093        Implement getComputedStyle for -webkit-columns shorthand.
48094
48095        Test: fast/css/getComputedStyle/getComputedStyle-webkit-columns-shorthand.html
48096
48097        * css/CSSComputedStyleDeclaration.cpp:
48098        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
48099
481002013-03-04  Levi Weintraub  <leviw@chromium.org>
48101
48102        Add support for 8 bit TextRuns on Chromium Linux & Mac
48103        https://bugs.webkit.org/show_bug.cgi?id=99393
48104
48105        Reviewed by Eric Seidel.
48106
48107        Adding support for 8 bit TextRuns for Mac and Linux Chromium. To accomplish this,
48108        8 bit text runs are upconverted to 16 bit in the complex text path during string
48109        normalization, as HarfBuzz operates on UChars.
48110
48111        Windows has platfom assumptions that TextRuns are 16 bit that need to be addressed
48112        before enabling this optimization.
48113
48114        No new tests. No change in behavior.
48115
48116        (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
48117        * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
48118        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
48119        (WebCore::normalizeCharacters):
48120        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
48121
481222013-03-04  Alexis Menard  <alexis@webkit.org>
48123
48124        transition-property property and transition shorthand property doesn't accept "all, all".
48125        https://bugs.webkit.org/show_bug.cgi?id=111201
48126
48127        Reviewed by Simon Fraser.
48128
48129        Relax the parsing of transition-property to allow all, all as a value.
48130        It is not very useful per say but it is possible by the spec and we
48131        align with Firefox, IE and Opera.
48132
48133        Test: LayoutTests/transitions/transitions-parsing.html
48134
48135        * css/CSSParser.cpp:
48136        (WebCore::CSSParser::parseAnimationProperty):
48137
481382013-03-04  Min Qin  <qinmin@chromium.org>
48139
48140        Don't apply page scale to clipRect if applyPageScaleFactorInCompositor is set to true
48141        https://bugs.webkit.org/show_bug.cgi?id=111229
48142
48143        Reviewed by Simon Fraser.
48144
48145        If applyPageScaleFactorInCompositor is set to true, webcore should use css coordinates.
48146        As a result, we shouldn't apply page scale to clipRect in RenderLayerCompositor.
48147        Layout tests set the flag to false, so we don't have anything to test against.
48148
48149        * rendering/RenderLayerCompositor.cpp:
48150        (WebCore::RenderLayerCompositor::addToOverlapMap):
48151
481522013-03-04  Ian Vollick  <vollick@chromium.org>
48153
48154        ASSERTION FAILED: m_clipRectsCache->m_respectingOverflowClip[clipRectsType] == (clipRectsContext.respectOverflowClip == RespectOverflowClip) in RenderLayer.
48155        https://bugs.webkit.org/show_bug.cgi?id=108257
48156
48157        Reviewed by David Hyatt.
48158
48159        With composited scrolling we paint both with and without respecting
48160        overflow clip. To prevent collisions in the clip cache, and to prevent
48161        throwing away cached clips unnecessarily, we keep two copies of the
48162        clip cache -- one for when overflow clip is respected, and one for
48163        when it isn't.
48164
48165        No new tests. Covered by existing tests (in debug):
48166          compositing/overflow/automatically-opt-into-composited-scrolling.html
48167          compositing/overflow/composited-scrolling-creates-a-stacking-container.html
48168
48169        * rendering/RenderLayer.cpp:
48170        (WebCore::RenderLayer::updateClipRects):
48171          No longer asserts that our 'respect overflow clip' status is
48172          consistent. It also gets and sets the clip cache using the clip rect
48173          context rather than just the clip rect type.
48174        (WebCore::RenderLayer::calculateClipRects):
48175        (WebCore::RenderLayer::parentClipRects):
48176        (WebCore::RenderLayer::clearClipRects):
48177        (WebCore::ClipRectsCache::ClipRectsCache):
48178        (WebCore::ClipRectsCache::getClipRects):
48179        (WebCore::ClipRectsCache::setClipRects):
48180        (WebCore::ClipRectsCache::getIndex):
48181          Get and set the cached clip rects using the context rather than
48182          type.
48183        (WebCore::RenderLayer::clipRects):
48184          We now cache twice as many clip rects.
48185        * rendering/RenderLayerBacking.cpp:
48186        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
48187          ShouldRespectOverflowClip was moved out of RenderLayer.
48188
48189        * rendering/RenderLayer.cpp:
48190        (WebCore::RenderLayer::updateClipRects):
48191        (WebCore::RenderLayer::calculateClipRects):
48192        (WebCore::RenderLayer::parentClipRects):
48193        (WebCore::RenderLayer::clearClipRects):
48194        * rendering/RenderLayer.h:
48195        (WebCore::ClipRectsCache::ClipRectsCache):
48196        (WebCore::ClipRectsCache::getClipRects):
48197        (WebCore::ClipRectsCache::setClipRects):
48198        (ClipRectsCache):
48199        (WebCore::ClipRectsCache::getIndex):
48200        (WebCore::RenderLayer::clipRects):
48201        * rendering/RenderLayerBacking.cpp:
48202        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
48203
482042013-03-04  Aaron Colwell  <acolwell@chromium.org>
48205
48206        Remove unused return value from SourceBufferPrivate::abort() and WebSourceBuffer::abort().
48207        https://bugs.webkit.org/show_bug.cgi?id=111195
48208
48209        Reviewed by Adam Barth.
48210
48211        No new tests. No user visible behavior changed.
48212
48213        * platform/graphics/SourceBufferPrivate.h:
48214        (SourceBufferPrivate):
48215
482162013-03-04  David Hyatt  <hyatt@apple.com>
48217
48218        [New Multicolumn] Eliminate the unique multicolumn flow thread style creation function
48219        https://bugs.webkit.org/show_bug.cgi?id=111338
48220
48221        Reviewed by Allan Jensen.
48222
48223        There is nothing special about a multi-column flow thread style now, so we can just
48224        use the existing anonymous style creation function.
48225
48226        * rendering/RenderMultiColumnBlock.cpp:
48227        (WebCore):
48228        (WebCore::RenderMultiColumnBlock::addChild):
48229
482302013-03-04  Mario Sanchez Prada  <mario.prada@samsung.com>
48231
48232        [GTK] WebCore::returnString is unsafe and should be removed!
48233        https://bugs.webkit.org/show_bug.cgi?id=110423
48234
48235        Reviewed by Martin Robinson.
48236
48237        Remove returnString() and replace it in callers with a new
48238        function that will cache and return the values of string
48239        properties for ATK interfaces in the private section of the
48240        wrapper AtkObject WebKitAccessible.
48241
48242        * accessibility/atk/WebKitAccessibleUtil.cpp: Remove returnString().
48243        * accessibility/atk/WebKitAccessibleUtil.h: Ditto.
48244
48245        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
48246        (_WebKitAccessiblePrivate): New private structure to store cached
48247        values of string property for the different ATK interfaces.
48248        (cacheAndReturnAtkProperty): New helper function to make sure the
48249        returned const gchar* value is previously cached in the private
48250        section of the wrapper AtkObject.
48251        (webkitAccessibleGetName): Use the new helper function.
48252        (webkitAccessibleGetDescription): Ditto.
48253        (webkitAccessibleInit): Initialize pointer to private structure.
48254        (webkitAccessibleFinalize): Remove unneeded code.
48255        (webkitAccessibleClassInit): Add private struct to class type/
48256        * accessibility/atk/WebKitAccessibleWrapperAtk.h:
48257        (_WebKitAccessible): New member pointing to the private structure,
48258        made the new helper function cacheAndReturnAtkProperty() available
48259        to external callers (implementation files for ATK interfaces).
48260        (AtkCachedProperty): New enum to allow reusing code when calling
48261        cacheAndReturnAtkProperty() to cache and return different properties.
48262
48263        * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
48264        (webkitAccessibleActionGetKeybinding): Replace calls to returnString()
48265        with calls to the new helper function cacheAndReturnAtkProperty().
48266        (webkitAccessibleActionGetName): Ditto.
48267        * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
48268        (documentAttributeValue): Ditto.
48269        (webkitAccessibleDocumentGetLocale): Ditto.
48270        * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
48271        (webkitAccessibleImageGetImageDescription): Ditto.
48272
48273        Remove returnString() from WebKitAccessibleHyperlink (which is not
48274        an AtkObject, but a GObject) as well, replacing it in callers with
48275        simple code that will cache and return the required values in the
48276        private section of these kind of objects.
48277
48278        * accessibility/atk/WebKitAccessibleHyperlink.cpp:
48279        (_WebKitAccessibleHyperlinkPrivate): Added two new fields to cache
48280        string values for the key binding and name properties from the
48281        AtkAction interface, which is implemented by AtkHyperlink.
48282        (webkitAccessibleHyperlinkActionGetKeybinding): Cache the string
48283        value for the key binding before returning a const gchar* pointer.
48284        (webkitAccessibleHyperlinkActionGetName): Ditto.
48285        (webkitAccessibleHyperlinkGetURI): Do not cache the URI here, as
48286        this function returns a gchar* that will be owned by the caller.
48287
482882013-03-04  peavo@outlook.com  <peavo@outlook.com>
48289
48290        [Curl] Compile fix after r144216
48291        https://bugs.webkit.org/show_bug.cgi?id=111305
48292
48293        Reviewed by Brent Fulgham.
48294
48295        * platform/network/curl/ResourceRequest.h:
48296        (WebCore::ResourceRequest::cfURLRequest): Added new parameter.
48297
482982013-03-03  David Hyatt  <hyatt@apple.com>
48299
48300        [New Multicolumn] Make sure region styling works for columns inside regions.
48301        https://bugs.webkit.org/show_bug.cgi?id=111276
48302
48303        Reviewed by Sam Weinig.
48304
48305        Test: fast/regions/region-styling-in-columns.html
48306
48307        * rendering/RenderFlowThread.cpp:
48308        (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
48309        (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
48310        * rendering/RenderFlowThread.h:
48311        (CurrentRenderFlowThreadMaintainer):
48312        Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
48313        and restores it when done. This effectively makes flow thread layout a push/pop stack,
48314        since with in-flow threads, this is allowed. We assert that a nested flow thread is
48315        in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
48316
48317        * rendering/RenderRegion.cpp:
48318        (WebCore::RenderRegion::computeChildrenStyleInRegion):
48319        Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
48320        for the nested flow thread.
48321
483222013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
48323
48324        Web Inspector: WebInspector.AceTextEditor throws a warning
48325        https://bugs.webkit.org/show_bug.cgi?id=111315
48326
48327        Reviewed by Pavel Feldman.
48328
48329        Add WebInspector.AceTextEditor to externs.js to suppress closure
48330        compilation warning.
48331
48332        No new tests: no change in behaviour.
48333
48334        * inspector/front-end/externs.js:
48335        (WebInspector.AceTextEditor):
48336
483372013-03-04  Antoine Quint  <graouts@apple.com>
48338
48339        Fix debug build under certain configurations, cause was
48340        http://trac.webkit.org/changeset/144624.
48341
48342        * inspector/InspectorController.cpp:
48343        (WebCore::InspectorController::InspectorController):
48344        * inspector/InspectorLayerTreeAgent.cpp:
48345        (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
48346        * inspector/InspectorLayerTreeAgent.h:
48347        (WebCore):
48348        (WebCore::InspectorLayerTreeAgent::create):
48349        (InspectorLayerTreeAgent):
48350
483512013-03-04  Allan Sandfeld Jensen  <allan.jensen@digia.com>
48352
48353        [Qt] REGRESSION(r141240) Crash in PluginPackage::fetchInfo
48354        https://bugs.webkit.org/show_bug.cgi?id=111322
48355
48356        Reviewed by Simon Hausmann.
48357
48358        Do not try to load blacklisted plugins.
48359
48360        * plugins/qt/PluginPackageQt.cpp:
48361        (WebCore::PluginPackage::fetchInfo):
48362
483632013-03-04  Alexis Menard  <alexis@webkit.org>
48364
48365        transition properties can't be found in CSSStyleDeclaration
48366        https://bugs.webkit.org/show_bug.cgi?id=110011
48367
48368        Reviewed by Antti Koivisto.
48369
48370        The previous approach for handling the unprefixing was to alias the
48371        unprefixed properties with the prefixed ones in CSSPropertyNames.in.
48372        Unfortunately it will alias the properties in the parsing code which will just
48373        identically parse the two versions. This means that when we populate StylePropertySet
48374        we do not have information whether we just parsed the prefixed, the
48375        unprefixed properties or we parsed both. The patch takes another
48376        approach by creating two distinct sets of properties (unprefixed and
48377        prefixed). Each properties have their own id and we now handle them in
48378        the parsing code as disctints properties and add both versions to the
48379        declared style. In order to avoid properties getting out of sync, 
48380        this patch adds few facilities to StylePropertySet to update the
48381        prefixed and the unprefixed entries. Finally the style resolution
48382        happens only for the prefixed version (to limit the size of this patch)
48383        and the unprefixed versions are not resolved. This is to avoid creating
48384        the animation objects twice for the resolved style.
48385
48386        Test : transitions/transitions-parsing.html
48387
48388        * css/CSSComputedStyleDeclaration.cpp:
48389        (WebCore):
48390        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
48391        * css/CSSParser.cpp:
48392        (WebCore::CSSParser::addPropertyWithPrefixingVariant): Always add the
48393        prefixed and the unprefixed property even if only one is specified.
48394        (WebCore):
48395        (WebCore::CSSParser::parseValue):
48396        (WebCore::CSSParser::parseTransitionShorthand): Add both prefixed and
48397        unprefixed longhands to the declarated style.
48398        (WebCore::CSSParser::parseAnimationProperty):
48399        * css/CSSParser.h:
48400        (CSSParser):
48401        * css/CSSProperty.cpp:
48402        (WebCore::CSSProperty::isInheritedProperty):
48403        * css/CSSProperty.h:
48404        (WebCore:: prefixingVariantForPropertyId): This function takes a given
48405        property id and returns its prefixed or unprefixed id if it exists. If
48406        not it returns the same id.
48407        (WebCore):
48408        * css/CSSPropertyNames.in:
48409        * css/StylePropertySet.cpp:
48410        (WebCore::StylePropertySet::getPropertyValue):
48411        (WebCore::StylePropertySet::removeShorthandProperty):
48412        (WebCore::StylePropertySet::removeProperty):
48413        (WebCore::StylePropertySet::removeProperty): Remove
48414        also the prefixed or unprefixed shorthand if it exists.
48415        (WebCore):
48416        (WebCore::StylePropertySet::setProperty):
48417        (WebCore::StylePropertySet:: appendPrefixingVariantProperty):
48418        (WebCore::StylePropertySet::setPrefixingVariantProperty): If it
48419        exists a unprefixed or prefixed counterpart of the property we're
48420        trying to set, then we update the other one.
48421        (WebCore::StylePropertySet::asText):
48422        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
48423        * css/StylePropertySet.h:
48424        (StylePropertySet):
48425        * css/StylePropertyShorthand.cpp:
48426        (WebCore::transitionShorthand):
48427        (WebCore):
48428        (WebCore::shorthandForProperty): Define the transitions unprefixed
48429        longhands.
48430        * css/StylePropertyShorthand.h:
48431        (WebCore):
48432        * css/StyleResolver.cpp:
48433        (WebCore::StyleResolver::applyProperty): StyleBuilder will handle the
48434        resolution and the creation of the animations for the style. As the
48435        declarated style now contains declarations for the prefixed and
48436        unprefixed property we do not want to resolve two times and create duplicate animations.
48437        Therefore when we try to resolve the unprefixed version we just bail out.
48438
484392013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
48440
48441        Web Inspector: CPU Flame Chart: reveal profiler DataGrid node when user clicks on a FlameChart item.
48442        https://bugs.webkit.org/show_bug.cgi?id=111309
48443
48444        Reviewed by Yury Semikhatsky.
48445
48446        * inspector/front-end/CPUProfileView.js:
48447        (WebInspector.CPUProfileView.prototype._revealProfilerNode):
48448        * inspector/front-end/FlameChart.js:
48449        (WebInspector.FlameChart):
48450        (WebInspector.FlameChart.prototype._onClick):
48451
484522013-03-04  Antoine Quint  <graouts@apple.com>
48453
48454        Web Inspector: remove existing LayerTreeAgent protocol APIs
48455        https://bugs.webkit.org/show_bug.cgi?id=111251
48456
48457        In order to eventually provide a more useful API for the LayerTreeAgent
48458        that will be done in followup bugs, we remove the current API exposed by
48459        the agent providing a clean slate that will make future patches easier
48460        to read. Additionally, we remove the "childLayers" property on the Layer
48461        object since we will no longer be providing a hierarchy of layers, but
48462        rather a flat list of layers attached to a node and its descendants.
48463
48464        No new tests since we're removing the APIs exposed by the LayerTreeAgent.
48465        Subsequent patches will add tests as new APIs are added.
48466
48467        Reviewed by Timothy Hatcher.
48468
48469        * inspector/Inspector.json:
48470        * inspector/InspectorDOMAgent.cpp:
48471        * inspector/InspectorDOMAgent.h:
48472        * inspector/InspectorLayerTreeAgent.cpp:
48473        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
48474        * inspector/InspectorLayerTreeAgent.h:
48475        (InspectorLayerTreeAgent):
48476
484772013-03-04  Li Yin  <li.yin@intel.com>
48478
48479        MediaStream.ended must return true when it is created with ended tracks.
48480        https://bugs.webkit.org/show_bug.cgi?id=111293
48481
48482        Reviewed by Kentaro Hara.
48483
48484        Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#MediaStream-ended
48485        When a MediaStream object is created, its ended attribute must be set to false,
48486        unless it is being created using the MediaStream() constructor whose arguments
48487        are lists of MediaStreamTrack objects that are all ended, in which case the
48488        MediaStream object must be created with its ended attribute set to true.
48489
48490        Test: fast/mediastream/MediaStreamConstructor.html
48491
48492        * platform/mediastream/MediaStreamDescriptor.h:
48493        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
48494
484952013-03-04  Alexander Pavlov  <apavlov@chromium.org>
48496
48497        Web Inspector: Adding new rules broken if a <style> tag is added to document dynamically
48498        https://bugs.webkit.org/show_bug.cgi?id=111299
48499
48500        Reviewed by Pavel Feldman.
48501
48502        The CSSStyleSheet instance should be retrieved directly from the HTMLStyleElement just created,
48503        not from the document.styleSheets list.
48504
48505        Test: inspector/styles/add-new-rule-with-style-after-body.html
48506
48507        * inspector/InspectorCSSAgent.cpp:
48508        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
48509
485102013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
48511
48512        Web Inspector: Unreviewed. Fix for closure type annotations.
48513
48514        * inspector/front-end/FlameChart.js:
48515
485162013-03-04  Kondapally Kalyan  <kalyan.kondapally@intel.com>
48517
48518        [EFL] Build fix when compiling with GLES2 support enabled.
48519        https://bugs.webkit.org/show_bug.cgi?id=111291
48520
48521        Reviewed by Kenneth Rohde Christiansen.
48522
48523        This patch fixes build issues when compiling with GLES2
48524        support. As part of the fix the patch removes Evas specific
48525        workaround of using GLX with EGL in PlatformContext as GLES2 
48526        is the main target with EGL.
48527
48528        * platform/graphics/OpenGLESShims.h:
48529        * platform/graphics/opengl/GLPlatformContext.cpp:
48530        (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
48531        * platform/graphics/texmap/TextureMapper.h:
48532
485332013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
48534
48535        Web Inspector: implement Flame Chart for CPU profiler.
48536        https://bugs.webkit.org/show_bug.cgi?id=111162
48537
48538        Reviewed by Yury Semikhatsky.
48539
48540        It is an initial implementation. The next step is to provide
48541        function names and other stats about the hovered item.
48542
48543        * WebCore.gypi:
48544        * WebCore.vcproj/WebCore.vcproj:
48545        * WebCore.vcxproj/WebCore.vcxproj:
48546        * WebCore.vcxproj/WebCore.vcxproj.filters:
48547        * inspector/compile-front-end.py:
48548        * inspector/front-end/CPUProfileView.js:
48549        (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
48550        * inspector/front-end/FlameChart.js: Added.
48551        (WebInspector.FlameChart):
48552        (WebInspector.FlameChart.prototype._onMouseMove):
48553        (WebInspector.FlameChart.prototype.findNodeCallback):
48554        (WebInspector.FlameChart.prototype._coordinatesToNode):
48555        (WebInspector.FlameChart.prototype.onResize):
48556        (WebInspector.FlameChart.prototype._rootNodes):
48557        (WebInspector.FlameChart.prototype.draw):
48558        (WebInspector.FlameChart.prototype._drawNode):
48559        (WebInspector.FlameChart.prototype._forEachNode):
48560        (WebInspector.FlameChart.prototype._drawBar):
48561        (WebInspector.FlameChart.prototype.update):
48562        * inspector/front-end/Settings.js:
48563        (WebInspector.ExperimentsSettings):
48564        * inspector/front-end/WebKit.qrc:
48565        * inspector/front-end/flameChart.css: Added.
48566        (.flame-chart):
48567
485682013-03-04  Marja Hölttä  <marja@chromium.org>
48569
48570        [V8] Add a "context type" parameter to GetTemplate and ConfigureV8SomethingTemplate functions
48571        https://bugs.webkit.org/show_bug.cgi?id=110875
48572
48573        The parameter will later be used for generating specialized V8
48574        bindings for the 3 different world types (main world, isolated
48575        work, worker).
48576
48577        Reviewed by Kentaro Hara.
48578
48579        No new tests (no changes in behavior yet).
48580
48581        * bindings/scripts/CodeGeneratorV8.pm:
48582        (GenerateHeader):
48583        (GenerateDomainSafeFunctionGetter):
48584        (GenerateDomainSafeFunctionSetter):
48585        (GenerateNormalAttrGetter):
48586        (GenerateNamedConstructor):
48587        (GenerateImplementation):
48588        * bindings/v8/DOMDataStore.cpp:
48589        (WebCore::DOMDataStore::DOMDataStore):
48590        * bindings/v8/DOMDataStore.h:
48591        (DOMDataStore):
48592        * bindings/v8/DOMWrapperWorld.cpp:
48593        (WebCore):
48594        (WebCore::DOMWrapperWorld::setInitializingWindow):
48595        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
48596        (WebCore::DOMWrapperWorld::contextHasCorrectPrototype):
48597        * bindings/v8/DOMWrapperWorld.h:
48598        (DOMWrapperWorld):
48599        (WebCore::DOMWrapperWorld::getWorld):
48600        * bindings/v8/Dictionary.cpp:
48601        (WebCore::Dictionary::get):
48602        * bindings/v8/PageScriptDebugServer.cpp:
48603        (WebCore::retrieveFrameWithGlobalObjectCheck):
48604        * bindings/v8/V8AdaptorFunction.cpp:
48605        (WebCore::V8AdaptorFunction::getTemplate):
48606        (WebCore::V8AdaptorFunction::wrap):
48607        * bindings/v8/V8AdaptorFunction.h:
48608        (V8AdaptorFunction):
48609        * bindings/v8/V8Binding.cpp:
48610        (WebCore::toDOMWindow):
48611        (WebCore::toScriptExecutionContext):
48612        (WebCore::worldType):
48613        (WebCore):
48614        (WebCore::worldTypeInMainThread):
48615        * bindings/v8/V8Binding.h:
48616        (WebCore):
48617        * bindings/v8/V8DOMWindowShell.cpp:
48618        (WebCore::V8DOMWindowShell::clearForNavigation):
48619        (WebCore::V8DOMWindowShell::installDOMWindow):
48620        * bindings/v8/V8DOMWrapper.cpp:
48621        (WebCore::V8DOMWrapper::createWrapper):
48622        * bindings/v8/V8Initializer.cpp:
48623        (WebCore::findFrame):
48624        * bindings/v8/V8PerContextData.cpp:
48625        (WebCore::V8PerContextData::constructorForTypeSlowCase):
48626        * bindings/v8/WorkerScriptController.cpp:
48627        (WebCore::WorkerScriptController::WorkerScriptController):
48628        (WebCore::WorkerScriptController::controllerForContext):
48629        * bindings/v8/WrapperTypeInfo.h:
48630        (WebCore::WrapperTypeInfo::getTemplate):
48631        * bindings/v8/custom/V8DOMWindowCustom.cpp:
48632        (WebCore::V8DOMWindow::eventAttrGetterCustom):
48633        (WebCore::V8DOMWindow::eventAttrSetterCustom):
48634        (WebCore::V8DOMWindow::toStringMethodCustom):
48635        (WebCore::V8DOMWindow::namedSecurityCheck):
48636        (WebCore::V8DOMWindow::indexedSecurityCheck):
48637        (WebCore::toV8):
48638        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
48639        (WebCore::V8HTMLDocument::wrapInShadowObject):
48640        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48641        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
48642        * bindings/v8/custom/V8HTMLImageElementConstructor.h:
48643        (V8HTMLImageElementConstructor):
48644        * bindings/v8/custom/V8InjectedScriptManager.cpp:
48645        (WebCore::createInjectedScriptHostV8Wrapper):
48646        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
48647        * bindings/v8/custom/V8LocationCustom.cpp:
48648        (WebCore::V8Location::reloadAttrGetterCustom):
48649        (WebCore::V8Location::replaceAttrGetterCustom):
48650        (WebCore::V8Location::assignAttrGetterCustom):
48651        * bindings/v8/custom/V8MessageEventCustom.cpp:
48652        (WebCore::V8MessageEvent::initMessageEventMethodCustom):
48653
486542013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
48655
48656        Web Inspector: add Ace editor experiment
48657        https://bugs.webkit.org/show_bug.cgi?id=111191
48658
48659        Reviewed by Pavel Feldman.
48660
48661        No new tests.
48662
48663        Add Ace text editor experiment.
48664
48665        * WebCore.gypi:
48666        * inspector/front-end/AceTextEditor.js: Added.
48667        * inspector/front-end/Settings.js:
48668        (WebInspector.ExperimentsSettings):
48669        * inspector/front-end/SourceFrame.js:
48670        (WebInspector.SourceFrame):
48671        * inspector/front-end/ace/ace.js: Added.
48672        * inspector/front-end/ace/acedevtools.css: Added.
48673        * inspector/front-end/ace/mode_css.js: Added.
48674        * inspector/front-end/ace/mode_html.js: Added.
48675        * inspector/front-end/ace/mode_javascript.js: Added.
48676        * inspector/front-end/ace/theme_textmate.js: Added.
48677        * inspector/front-end/ace/LICENSE.txt: Added.
48678
486792013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
48680
48681        Add build flag for FontLoader
48682        https://bugs.webkit.org/show_bug.cgi?id=111289
48683
48684        Reviewed by Benjamin Poulain.
48685
48686        Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
48687
48688        * Configurations/FeatureDefines.xcconfig:
48689
486902013-03-04  Mike West  <mkwst@chromium.org>
48691
48692        XSSAuditor should strip dangerous attributes from SMIL animation elements.
48693        https://bugs.webkit.org/show_bug.cgi?id=111071
48694
48695        Reviewed by Adam Barth.
48696
48697        SMIL animation elements can, amusingly enough, animate the 'href' of a
48698        link. This patch teaches XSSAuditor how to deal with the
48699        semicolon-separated 'animation[values]' attribute in order to ensure
48700        that it doesn't contain JavaScript URLs that could be animated into
48701        place for an unsuspecting user to click on.
48702
48703        Test: http/tests/security/xssAuditor/svg-animate.html
48704
48705        * html/parser/XSSAuditor.cpp:
48706        (WebCore::isSemicolonSeparatedAttribute): Added.
48707            This returns true if the given attribute is SVGNames::valuesAttr,
48708            but makes it possible to easily extend the list with additional
48709            attributes with this strange property.
48710        (WebCore::semicolonSeparatedValueContainsJavaScriptURL): Added.
48711            Given a semicolon-separated string, determine if it contains any
48712            JavaScript URLs.
48713        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
48714            When looking for dangerousness, determine whether or not we should
48715            be comparing against each member of a semicolon-separated list.
48716
487172013-03-04  Arvid Nilsson  <anilsson@rim.com>
48718
48719        [BlackBerry] New files for BlackBerry::Platform::Graphics::GraphicsContext integration
48720        https://bugs.webkit.org/show_bug.cgi?id=111153
48721
48722        Reviewed by Rob Buis.
48723
48724        BlackBerry PR 293208
48725
48726        This patch contains contributions from many members of the BlackBerry
48727        WebKit team:
48728
48729        Rob Buis
48730        Robin Cao
48731        Eli Fidler
48732        Mike Lattanzio
48733        Yong Li
48734        Maxim Mogilnitsky
48735        Joshua Netterfield
48736        Arvid Nilsson
48737        Jakob Petsovits
48738        Konrad Piascik
48739        Jeff Rogers
48740        Artem Simonov
48741        Filip Spacek
48742        George Staikos
48743
48744        Covered by existing tests.
48745
48746        * platform/graphics/blackberry/FontBlackBerry.cpp: Added.
48747        (FSFixedToFloat):
48748        (FloatToFSFixed):
48749        (WebCore):
48750        (WebCore::Font::drawComplexText):
48751        (WebCore::Font::floatWidthForComplexText):
48752        (WebCore::Font::offsetForPositionForComplexText):
48753        (WebCore::Font::selectionRectForComplexText):
48754        (WebCore::Font::drawGlyphs):
48755        (WebCore::Font::canReturnFallbackFontsForComplexText):
48756        (WebCore::Font::drawEmphasisMarksForComplexText):
48757        (WebCore::Font::canExpandAroundIdeographsInComplexText):
48758        * platform/graphics/blackberry/FontCacheBlackBerry.cpp: Added.
48759        (WebCore):
48760        (WebCore::FontCache::platformInit):
48761        (WebCore::FontCache::getFontDataForCharacters):
48762        (WebCore::FontCache::getSimilarFontPlatformData):
48763        (WebCore::FontCache::getLastResortFallbackFont):
48764        (WebCore::FontCache::getTraitsInFamily):
48765        (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
48766        (WebCore::fontWeightToFontconfigWeight):
48767        (WebCore::FontCache::createFontPlatformData):
48768        * platform/graphics/blackberry/FontCustomPlatformData.h: Added.
48769        (WebCore):
48770        (FontCustomPlatformData):
48771        * platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp: Added.
48772        (WebCore):
48773        (WebCore::FontCustomPlatformData::FontCustomPlatformData):
48774        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
48775        (WebCore::FontCustomPlatformData::fontPlatformData):
48776        (WebCore::FontCustomPlatformData::supportsFormat):
48777        (WebCore::createFontCustomPlatformData):
48778        * platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp: Added.
48779        (WebCore):
48780        (WebCore::FontPlatformData::FontPlatformData):
48781        (WebCore::FontPlatformData::~FontPlatformData):
48782        (WebCore::FontPlatformData::name):
48783        (WebCore::FontPlatformData::applyState):
48784        (WebCore::FontPlatformData::platformDataInit):
48785        (WebCore::FontPlatformData::platformDataAssign):
48786        (WebCore::FontPlatformData::platformIsEqual):
48787        (WebCore::FontPlatformData::description):
48788        (WebCore::FontPlatformData::harfbuzzFace):
48789        (WebCore::FontPlatformData::scaledFont):
48790        (WebCore::FontPlatformData::setFakeBold):
48791        (WebCore::FontPlatformData::setFakeItalic):
48792        (WebCore::FontPlatformData::platformFontHandle):
48793        (WebCore::FontPlatformData::isFixedPitch):
48794        * platform/graphics/blackberry/GlyphPageTreeNodeBlackBerry.cpp: Added.
48795        (WebCore):
48796        (WorldTypeScopedPtr):
48797        (WebCore::WorldTypeScopedPtr::WorldTypeScopedPtr):
48798        (WebCore::WorldTypeScopedPtr::~WorldTypeScopedPtr):
48799        (WebCore::WorldTypeScopedPtr::get):
48800        (WebCore::GlyphPage::fill):
48801        * platform/graphics/blackberry/GradientBlackBerry.cpp: Added.
48802        (WebCore):
48803        (WebCore::totalStopsNeeded):
48804        (WebCore::fillStops):
48805        (WebCore::Gradient::platformGradient):
48806        (WebCore::Gradient::platformDestroy):
48807        (WebCore::Gradient::fill):
48808        (WebCore::Gradient::setPlatformGradientSpaceTransform):
48809        * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp: Added.
48810        (WebCore):
48811        (GraphicsContextPlatformPrivate):
48812        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
48813        (WebCore::GraphicsContext::platformInit):
48814        (WebCore::GraphicsContext::platformDestroy):
48815        (WebCore::GraphicsContext::platformContext):
48816        (WebCore::GraphicsContext::savePlatformState):
48817        (WebCore::GraphicsContext::restorePlatformState):
48818        (WebCore::GraphicsContext::setIsAcceleratedContext):
48819        (WebCore::GraphicsContext::isAcceleratedContext):
48820        (WebCore::GraphicsContext::getCTM):
48821        (WebCore::GraphicsContext::concatCTM):
48822        (WebCore::GraphicsContext::setCTM):
48823        (WebCore::GraphicsContext::scale):
48824        (WebCore::GraphicsContext::rotate):
48825        (WebCore::GraphicsContext::translate):
48826        (WebCore::GraphicsContext::drawEllipse):
48827        (WebCore::GraphicsContext::strokeArc):
48828        (WebCore::GraphicsContext::drawConvexPolygon):
48829        (WebCore::GraphicsContext::drawRect):
48830        (WebCore::GraphicsContext::fillRect):
48831        (WebCore::GraphicsContext::clearRect):
48832        (WebCore::GraphicsContext::strokeRect):
48833        (WebCore::GraphicsContext::fillRoundedRect):
48834        (WebCore::GraphicsContext::roundToDevicePixels):
48835        (WebCore::GraphicsContext::setPlatformShadow):
48836        (WebCore::GraphicsContext::clearPlatformShadow):
48837        (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
48838        (WebCore::GraphicsContext::endPlatformTransparencyLayer):
48839        (WebCore::GraphicsContext::supportsTransparencyLayers):
48840        (WebCore::GraphicsContext::setLineCap):
48841        (WebCore::GraphicsContext::setLineDash):
48842        (WebCore::GraphicsContext::setLineJoin):
48843        (WebCore::GraphicsContext::setMiterLimit):
48844        (WebCore::GraphicsContext::setAlpha):
48845        (WebCore::GraphicsContext::clip):
48846        (WebCore::GraphicsContext::clipOut):
48847        (WebCore::GraphicsContext::clipConvexPolygon):
48848        (WebCore::GraphicsContext::addRoundedRectClip):
48849        (WebCore::GraphicsContext::clipOutRoundedRect):
48850        (WebCore::GraphicsContext::clipBounds):
48851        (WebCore::GraphicsContext::addInnerRoundedRectClip):
48852        (WebCore::GraphicsContext::setURLForRect):
48853        (WebCore::GraphicsContext::setPlatformTextDrawingMode):
48854        (WebCore::GraphicsContext::setPlatformStrokeColor):
48855        (WebCore::GraphicsContext::setPlatformStrokeStyle):
48856        (WebCore::GraphicsContext::setPlatformStrokeThickness):
48857        (WebCore::GraphicsContext::setPlatformFillColor):
48858        (WebCore::GraphicsContext::setPlatformCompositeOperation):
48859        (WebCore::GraphicsContext::setPlatformShouldAntialias):
48860        (WebCore::GraphicsContext::setImageInterpolationQuality):
48861        (WebCore::GraphicsContext::imageInterpolationQuality):
48862        * platform/graphics/blackberry/ITypeUtils.h: Added.
48863        (floatToITypeFixed):
48864        (intToITypeFixed):
48865        (iTypeFixedToFloat):
48866        * platform/graphics/blackberry/ImageBufferBlackBerry.cpp: Added.
48867        (WebCore):
48868        (WebCore::makeBufferCurrent):
48869        (WebCore::getImageDataInternal):
48870        (WebCore::ImageBufferData::getImageData):
48871        (WebCore::flushAndDraw):
48872        (WebCore::ImageBufferData::draw):
48873        (WebCore::ImageBuffer::ImageBuffer):
48874        (WebCore::ImageBuffer::~ImageBuffer):
48875        (WebCore::ImageBuffer::context):
48876        (WebCore::ImageBuffer::platformLayer):
48877        (WebCore::ImageBuffer::copyImage):
48878        (WebCore::ImageBuffer::clip):
48879        (WebCore::ImageBuffer::draw):
48880        (WebCore::ImageBuffer::drawPattern):
48881        (WebCore::ImageBuffer::platformTransformColorSpace):
48882        (WebCore::ImageBuffer::getUnmultipliedImageData):
48883        (WebCore::ImageBuffer::getPremultipliedImageData):
48884        (WebCore::ImageBuffer::putByteArray):
48885        (WebCore::ImageBuffer::toDataURL):
48886        * platform/graphics/blackberry/ImageBufferDataBlackBerry.h: Added.
48887        (WebCore):
48888        (ImageBufferData):
48889        * platform/graphics/blackberry/PathBlackBerry.cpp: Added.
48890        (WebCore):
48891        (WebCore::scratchContext):
48892        (WebCore::Path::Path):
48893        (WebCore::Path::~Path):
48894        (WebCore::Path::operator=):
48895        (WebCore::Path::currentPoint):
48896        (WebCore::Path::contains):
48897        (WebCore::Path::strokeContains):
48898        (WebCore::Path::translate):
48899        (WebCore::Path::boundingRect):
48900        (WebCore::Path::strokeBoundingRect):
48901        (WebCore::Path::moveTo):
48902        (WebCore::Path::addLineTo):
48903        (WebCore::Path::addQuadCurveTo):
48904        (WebCore::Path::addBezierCurveTo):
48905        (WebCore::Path::addArcTo):
48906        (WebCore::Path::closeSubpath):
48907        (WebCore::Path::addArc):
48908        (WebCore::Path::addRect):
48909        (WebCore::Path::addEllipse):
48910        (WebCore::Path::platformAddPathForRoundedRect):
48911        (WebCore::Path::clear):
48912        (WebCore::Path::isEmpty):
48913        (WebCore::Path::hasCurrentPoint):
48914        (WebCore::Path::apply):
48915        (WebCore::Path::transform):
48916        (WebCore::GraphicsContext::fillPath):
48917        (WebCore::GraphicsContext::strokePath):
48918        (WebCore::GraphicsContext::drawFocusRing):
48919        (WebCore::GraphicsContext::drawLine):
48920        (WebCore::GraphicsContext::drawLineForDocumentMarker):
48921        (WebCore::GraphicsContext::drawLineForText):
48922        (WebCore::GraphicsContext::clip):
48923        (WebCore::GraphicsContext::clipPath):
48924        (WebCore::GraphicsContext::canvasClip):
48925        (WebCore::GraphicsContext::clipOut):
48926        * platform/graphics/blackberry/PatternBlackBerry.cpp: Added.
48927        (WebCore):
48928        (WebCore::Pattern::platformDestroy):
48929        (WebCore::Pattern::platformPattern):
48930        (WebCore::Pattern::setPlatformPatternSpaceTransform):
48931        * platform/graphics/blackberry/PlatformSupport.cpp: Added.
48932        (WebCore):
48933        (WebCore::PlatformSupport::getFontFamilyForCharacters):
48934        * platform/graphics/blackberry/PlatformSupport.h: Added.
48935        (WebCore):
48936        (PlatformSupport):
48937        (FontFamily):
48938        * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp: Added.
48939        (WebCore):
48940        (WebCore::FSFixedToFloat):
48941        (WebCore::SimpleFontData::platformInit):
48942        (WebCore::SimpleFontData::platformCharWidthInit):
48943        (WebCore::SimpleFontData::platformDestroy):
48944        (WebCore::SimpleFontData::createScaledFontData):
48945        (WebCore::SimpleFontData::smallCapsFontData):
48946        (WebCore::SimpleFontData::emphasisMarkFontData):
48947        (WebCore::SimpleFontData::containsCharacters):
48948        (WebCore::SimpleFontData::determinePitch):
48949        (WebCore::SimpleFontData::platformBoundsForGlyph):
48950        (WebCore::SimpleFontData::platformWidthForGlyph):
48951        (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
48952
489532013-03-04  Adam Bergkvist  <adam.bergkvist@ericsson.com>
48954
48955        MediaStream API: local addTrack() and removeTrack() operations should not fire events.
48956        https://bugs.webkit.org/show_bug.cgi?id=111079
48957
48958        Reviewed by Adam Barth.
48959
48960        Removed the scheduling of "addtrack" and "removetrack" events by
48961        addTrack and removeTrack(). Replaced the test since the old test was
48962        driven by the event firing removed by this patch.
48963
48964        Test: fast/mediastream/MediaStream-add-remove-tracks.html
48965
48966        * Modules/mediastream/MediaStream.cpp:
48967        (WebCore::MediaStream::addTrack):
48968        (WebCore::MediaStream::removeTrack):
48969
489702013-03-04  Alexander Pavlov  <apavlov@chromium.org>
48971
48972        Web Inspector: touchmove not emulated inside iframe
48973        https://bugs.webkit.org/show_bug.cgi?id=111292
48974
48975        Reviewed by Vsevolod Vlasov.
48976
48977        Move fake touch event dispatching from mouseMoved() into handleMouseMoveEvent()
48978        and bail out earlier from dispatchSyntheticTouchEventIfEnabled() when the event
48979        should be dispatched on a subframe.
48980
48981        * page/EventHandler.cpp:
48982        (WebCore::EventHandler::mouseMoved):
48983        (WebCore::EventHandler::handleMouseMoveEvent):
48984        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
48985
489862013-03-04  Mike West  <mkwst@chromium.org>
48987
48988        Long URLs in error messages should be shortened
48989        https://bugs.webkit.org/show_bug.cgi?id=111133
48990
48991        Reviewed by Jochen Eisinger.
48992
48993        When generating console messages, we're often copying the page's URL
48994        in order to add detail about where the error occurred. Generally, this
48995        is fine, but in edge cases (multi-meg 'data:' URLs), we're using far
48996        more memory than we should, and impacting performance.
48997
48998        This patch adds an 'elidedString()' method to KURL for use in this
48999        sort of case; when generating console messages, we should insert the
49000        elided URL rather than the full URL.
49001
49002        This shouldn't change any visible behavior; we're already visually
49003        eliding URLs in console messages for URLs above 150 characters. This
49004        patch simply changes the underlying string to ensure that no URL is
49005        over 1k in length to begin with.
49006
49007        * platform/KURL.cpp:
49008        (WebCore::KURL::elidedString): Added.
49009        * platform/KURL.h:
49010            An exciting new method that gives you the same result as string()
49011            for URLs less than 1k long, and elides the middle of URLs longer
49012            than 1k by replacing everything but the first and last 0.5k with
49013            "...".
49014        * bindings/ScriptControllerBase.cpp:
49015        (WebCore::ScriptController::canExecuteScripts):
49016        * Modules/websockets/WebSocket.cpp:
49017        (WebCore::WebSocket::connect):
49018        (WebCore::WebSocket::send):
49019        * Modules/websockets/WebSocketChannel.cpp:
49020        (WebCore::WebSocketChannel::send):
49021        (WebCore::WebSocketChannel::fail):
49022        * bindings/ScriptControllerBase.cpp:
49023        (WebCore::ScriptController::canExecuteScripts):
49024        * dom/Document.cpp:
49025        (WebCore::Document::processHttpEquiv):
49026        * dom/ScriptElement.cpp:
49027        (WebCore::ScriptElement::executeScript):
49028        * html/HTMLMediaElement.cpp:
49029        (WebCore::HTMLMediaElement::canPlayType):
49030        (WebCore::HTMLMediaElement::isSafeToLoadURL):
49031        * loader/FrameLoader.cpp:
49032        (WebCore::FrameLoader::submitForm):
49033        (WebCore::FrameLoader::loadFrameRequest):
49034        (WebCore::FrameLoader::commitProvisionalLoad):
49035        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
49036        (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
49037        (WebCore::createWindow):
49038        * loader/MainResourceLoader.cpp:
49039        (WebCore::MainResourceLoader::willSendRequest):
49040        (WebCore::MainResourceLoader::responseReceived):
49041        * loader/appcache/ApplicationCacheGroup.cpp:
49042        (WebCore::ApplicationCacheGroup::didReceiveResponse):
49043        (WebCore::ApplicationCacheGroup::didFail):
49044        * loader/cache/CachedResourceLoader.cpp:
49045        (WebCore::CachedResourceLoader::canRequest):
49046        (WebCore::CachedResourceLoader::requestResource):
49047        (WebCore::CachedResourceLoader::loadResource):
49048        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
49049        * page/ContentSecurityPolicy.cpp:
49050        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
49051        (WebCore::CSPDirectiveList::allowScriptNonce):
49052        (WebCore::CSPDirectiveList::allowPluginType):
49053            Use 'KURL::elidedString()' rather than 'KURL::string()'
49054        * loader/MixedContentChecker.cpp:
49055        (WebCore::MixedContentChecker::logWarning):
49056            Here, we're doing the same as above, but it enables us to throw
49057            away the asUTF8() function entirely by switching to makeString
49058            rather than String::format.
49059
490602013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
49061
49062        Web Inspector: add runtime flag to determine if inspector's source files were flattened.
49063        https://bugs.webkit.org/show_bug.cgi?id=111184
49064
49065        Reviewed by Pavel Feldman.
49066
49067        - Add a file "buildSystemOnly.js" which will be included into
49068        devtools.html only by GYP build system. This script sets a single flag
49069        which essentially means that inspector source files were run
49070        through a build system and flattened.
49071        - Update "importScript" and "registerRequiredCSS" functions to correct
49072        paths according to the "flattenImports" flag.
49073
49074        No new tests: no change in behaviour.
49075
49076        * WebCore.gypi:
49077        * inspector/front-end/CodeMirrorTextEditor.js:
49078        (WebInspector.CodeMirrorTextEditor):
49079        * inspector/front-end/View.js:
49080        (WebInspector.View.prototype.registerRequiredCSS):
49081        * inspector/front-end/buildSystemOnly.js: Added.
49082        * inspector/front-end/utilities.js:
49083
490842013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
49085
49086        Web Inspector: Fix front-end compilation
49087        https://bugs.webkit.org/show_bug.cgi?id=111286
49088
49089        Reviewed by Alexander Pavlov.
49090
49091        * inspector/InjectedScriptSource.js:
49092        * inspector/front-end/FileSystemProjectDelegate.js:
49093        * inspector/front-end/NavigatorView.js:
49094        (WebInspector.NavigatorView.prototype.removeUISourceCode):
49095        (WebInspector.NavigatorTreeNode.prototype.reset):
49096        (WebInspector.NavigatorFolderTreeNode.prototype.didAddChild):
49097
490982013-03-03  Kondapally Kalyan  <kalyan.kondapally@intel.com>
49099
49100        [EFL][WebGL] Add proper checks to enable GraphicsSurface usage on EGL without XCompositeWindow.
49101        https://bugs.webkit.org/show_bug.cgi?id=108034
49102
49103        Reviewed by Laszlo Gombos.
49104
49105        Covered by existing WebGL tests.
49106
49107        Currently, we set GRAPHICS_SURFACE to true if support for XCompositeWindow
49108        is identified during compile time. This is ok, when using GLX. We might not
49109        have support for XCompositeWindow when using EGL and GLES2.0. This patch
49110        makes changes so that GRAPHICS_SURFACE is always enabled with EGL and adds
49111        GLX guard to the parts of code dependent on XCompositeWindow support.
49112
49113        * platform/graphics/opengl/GLPlatformSurface.cpp:
49114        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
49115        (WebCore::GLXConfigSelector::findMatchingConfig):
49116        * platform/graphics/surfaces/glx/X11Helper.cpp:
49117        (WebCore::X11Helper::createOffScreenWindow):
49118        (WebCore::X11Helper::isXRenderExtensionSupported):
49119        * platform/graphics/surfaces/glx/X11Helper.h:
49120
491212013-03-03  Alexander Pavlov  <apavlov@chromium.org>
49122
49123        Web Inspector: [PageAgent] can't find frame by security origin.
49124        https://bugs.webkit.org/show_bug.cgi?id=110849
49125
49126        Use toRawString() in order to compare Frames' SecurityOrigins for storage-related goals.
49127
49128        Reviewed by Vsevolod Vlasov.
49129
49130        * inspector/InspectorPageAgent.cpp:
49131        (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
49132
491332013-03-03  Alexander Pavlov  <apavlov@chromium.org>
49134
49135        Unreviewed, rolling out r144455.
49136        http://trac.webkit.org/changeset/144455
49137        https://bugs.webkit.org/show_bug.cgi?id=111165
49138
49139        A simpler solution to the SecurityOrigin -> localStorage
49140        lookup exists
49141
49142        * inspector/front-end/DOMStorage.js:
49143        (WebInspector.DOMStorage.storageId):
49144        (WebInspector.DOMStorage.prototype.get id):
49145        (WebInspector.DOMStorage.prototype.getItems):
49146        (WebInspector.DOMStorage.prototype.setItem):
49147        (WebInspector.DOMStorage.prototype.removeItem):
49148        (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
49149        (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
49150        (WebInspector.DOMStorageModel.prototype._storageKey):
49151        * inspector/front-end/ExtensionAuditCategory.js:
49152        * inspector/front-end/FileSystemModel.js:
49153        (WebInspector.FileSystemModel.prototype._reset):
49154        (WebInspector.FileSystemModel.prototype._securityOriginAdded):
49155        (WebInspector.FileSystemModel.prototype._securityOriginRemoved):
49156        (WebInspector.FileSystemModel.prototype._addOrigin):
49157        (WebInspector.FileSystemModel.prototype._removeOrigin):
49158        (WebInspector.FileSystemModel.prototype._requestFileSystemRoot):
49159        (WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
49160        (WebInspector.FileSystemModel.prototype._removeFileSystem):
49161        (WebInspector.FileSystemModel.FileSystem.prototype.get name):
49162        * inspector/front-end/IndexedDBModel.js:
49163        (WebInspector.IndexedDBModel.prototype._reset):
49164        (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
49165        (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
49166        (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
49167        (WebInspector.IndexedDBModel.prototype._addOrigin):
49168        (WebInspector.IndexedDBModel.prototype._removeOrigin):
49169        (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
49170        (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
49171        (WebInspector.IndexedDBModel.prototype._loadDatabase):
49172        (WebInspector.IndexedDBModel.prototype.):
49173        (WebInspector.IndexedDBModel.prototype._requestData):
49174        (WebInspector.IndexedDBModel.DatabaseId.prototype.equals):
49175        * inspector/front-end/IndexedDBViews.js:
49176        (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
49177        * inspector/front-end/ResourceTreeModel.js:
49178        (WebInspector.ResourceTreeModel):
49179        (WebInspector.ResourceTreeModel.prototype._addFrame):
49180        (WebInspector.ResourceTreeModel.prototype._addSecurityOrigin):
49181        (WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin):
49182        (WebInspector.ResourceTreeModel.prototype.securityOrigins):
49183        (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached):
49184        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
49185        (WebInspector.ResourceTreeModel.prototype._frameDetached):
49186        (WebInspector.ResourceTreeFrame):
49187        (WebInspector.ResourceTreeFrame.prototype._navigate):
49188        * inspector/front-end/ResourcesPanel.js:
49189        (WebInspector.IDBDatabaseTreeElement):
49190        (WebInspector.IDBDatabaseTreeElement.prototype.get itemURL):
49191        (WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL):
49192        (WebInspector.IDBIndexTreeElement.prototype.get itemURL):
49193        (WebInspector.DOMStorageTreeElement):
49194        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
49195        (WebInspector.FileSystemTreeElement):
49196
491972013-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
49198
49199        Web Inspector: Let user know when file system based uiSourceCode was changed on disk.
49200        https://bugs.webkit.org/show_bug.cgi?id=110133
49201
49202        Reviewed by Pavel Feldman.
49203
49204        We now check if file system based uiSourceCode content was updated externally when 
49205        UISourceCodeFrame is shown or inspector window is focused.
49206        If there is no working copy being edited right now we replace old content with the new one silently.
49207        Otherwise ask user if he wants to replace his working copy with the new content.
49208
49209        * English.lproj/localizedStrings.js:
49210        * WebCore.vcproj/WebCore.vcproj:
49211        * inspector/front-end/DefaultTextEditor.js:
49212        (WebInspector.DefaultTextEditor.prototype.editRange):
49213        * inspector/front-end/FileSystemProjectDelegate.js:
49214        (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
49215        (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
49216        (WebInspector.FileSystemProjectDelegate.prototype._contentRequestFinished):
49217        (WebInspector.FileSystemProjectDelegate.prototype.requestUpdatedFileContent):
49218        (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
49219        (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
49220        * inspector/front-end/JavaScriptSourceFrame.js:
49221        (WebInspector.JavaScriptSourceFrame.prototype.wasShown):
49222        (WebInspector.JavaScriptSourceFrame.prototype.willHide):
49223        * inspector/front-end/SimpleWorkspaceProvider.js:
49224        (WebInspector.SimpleProjectDelegate.prototype.requestUpdatedFileContent):
49225        * inspector/front-end/SourceFrame.js:
49226        (WebInspector.SourceFrame.prototype.setContent):
49227        * inspector/front-end/UISourceCode.js:
49228        (WebInspector.UISourceCode.prototype.checkContentUpdated.updatedContentLoaded):
49229        (WebInspector.UISourceCode.prototype.checkContentUpdated):
49230        * inspector/front-end/UISourceCodeFrame.js:
49231        (WebInspector.UISourceCodeFrame.prototype.wasShown):
49232        (WebInspector.UISourceCodeFrame.prototype.willHide):
49233        (WebInspector.UISourceCodeFrame.prototype._windowFocused):
49234        (WebInspector.UISourceCodeFrame.prototype._checkContentUpdated):
49235        * inspector/front-end/Workspace.js:
49236        (WebInspector.ProjectDelegate.prototype.requestUpdatedFileContent):
49237        (WebInspector.Project.prototype.requestUpdatedFileContent):
49238
492392013-03-03  Arpita Bahuguna  <a.bah@samsung.com>
49240
49241        createAttribute/setAttributeNode does not properly normalize case
49242        https://bugs.webkit.org/show_bug.cgi?id=90341
49243
49244        Reviewed by Darin Adler.
49245
49246        setAttributeNode() verifies for existing attributes in a case sensitive
49247        manner. Thus, it would add another attribute if specified in a case
49248        different from the existing one. Instead, like setAttribute(), it too
49249        should modify the existing attribute's value.
49250
49251        Test: fast/dom/Element/setAttributeNode-case-insensitivity.html
49252
49253        * dom/Element.cpp:
49254        (WebCore::Element::setAttributeNode):
49255        Made changes to check for an existing attribute by converting the
49256        specified attribute's localName to lowercase.
49257
492582013-03-03  Kentaro Hara  <haraken@chromium.org>
49259
49260        Unreviewed. Rebaselined run-bindings-tests.
49261
49262        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
49263        (WebCore::TestActiveDOMObjectV8Internal::indexedSecurityCheck):
49264        (TestActiveDOMObjectV8Internal):
49265        (WebCore::TestActiveDOMObjectV8Internal::namedSecurityCheck):
49266        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
49267        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
49268        (V8TestActiveDOMObject):
49269
492702013-03-03  Kentaro Hara  <haraken@chromium.org>
49271
49272        Unreviewed build fix after r144590.
49273
49274        * bindings/scripts/CodeGeneratorV8.pm:
49275        (GenerateSecurityCheckFunctions):
49276
492772013-03-03  Kentaro Hara  <haraken@chromium.org>
49278
49279        Unreviewed build fix after r144587.
49280
49281        * bindings/v8/V8Binding.cpp:
49282        (WebCore::toV8Context):
49283        * bindings/v8/V8MutationCallback.cpp:
49284        (WebCore::V8MutationCallback::V8MutationCallback):
49285
492862013-03-01  Kentaro Hara  <haraken@chromium.org>
49287
49288        [V8] HTMLDocument.all should have [Replaceable]
49289        https://bugs.webkit.org/show_bug.cgi?id=111230
49290
49291        Reviewed by Adam Barth.
49292
49293        (Although HTMLDocument.all is already removed from the spec,)
49294        it is expected to behave as a [Replaceable] attribute. By adding
49295        a [Replaceable] IDL attribute, we can remove custom implementation
49296        of HTMLDocument.all.
49297
49298        I confimed that exactly the same code is generated for .all getter
49299        and setter.
49300
49301        No tests. No change in behavior.
49302
49303        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
49304        * html/HTMLDocument.idl:
49305
493062013-03-01  Kentaro Hara  <haraken@chromium.org>
49307
49308        [V8] indexedSecurityCheck() and namedSecurityCheck() should be auto-generated
49309        https://bugs.webkit.org/show_bug.cgi?id=111225
49310
49311        Reviewed by Adam Barth.
49312
49313        indexedSecurityCheck() and namedSecurityCheck() should be auto-generated,
49314        except for DOMWindow's ones.
49315
49316        No tests. No change in behavior.
49317
49318        * bindings/scripts/CodeGeneratorV8.pm:
49319        (GenerateHeader):
49320        (GenerateImplementation):
49321        (GenerateSecurityCheckFunctions):
49322        * bindings/v8/custom/V8DOMWindowCustom.cpp:
49323        (WebCore::V8DOMWindow::namedSecurityCheckCustom):
49324        (WebCore::V8DOMWindow::indexedSecurityCheckCustom):
49325        * bindings/v8/custom/V8HistoryCustom.cpp:
49326        * bindings/v8/custom/V8LocationCustom.cpp:
49327
493282013-03-01  Kentaro Hara  <haraken@chromium.org>
49329
49330        [V8] Rename $implContentDecls to $implContentInternals in CodeGeneratorV8.pm
49331        https://bugs.webkit.org/show_bug.cgi?id=111214
49332
49333        Reviewed by Adam Barth.
49334
49335        $implContentDecls stores generated code that is put in a namespace 'XXXV8Internal'.
49336        For clarification, it should be renamed to $implContentInternals.
49337
49338        No tests. No change in behavior.
49339
49340        * bindings/scripts/CodeGeneratorV8.pm:
49341        (GenerateDomainSafeFunctionGetter):
49342        (GenerateDomainSafeFunctionSetter):
49343        (GenerateConstructorGetter):
49344        (GenerateNormalAttrGetterCallback):
49345        (GenerateNormalAttrGetter):
49346        (GenerateReplaceableAttrSetterCallback):
49347        (GenerateReplaceableAttrSetter):
49348        (GenerateNormalAttrSetterCallback):
49349        (GenerateNormalAttrSetter):
49350        (GenerateOverloadedFunction):
49351        (GenerateFunctionCallback):
49352        (GenerateFunction):
49353        (GenerateOverloadedConstructorCallback):
49354        (GenerateSingleConstructorCallback):
49355        (GenerateEventConstructor):
49356        (GenerateTypedArrayConstructor):
49357        (GenerateImplementation):
49358        (WriteData):
49359
493602013-03-01  Kentaro Hara  <haraken@chromium.org>
49361
49362        [V8] Rename getWorld() to isolatedWorld(), and getWorldForEnteredContext() to isolatedWorldForEnteredContext()
49363        https://bugs.webkit.org/show_bug.cgi?id=111212
49364
49365        Reviewed by Adam Barth.
49366
49367        The rename I did in r142424 was wrong. Given that getWorld() returns 0
49368        for the main world, it should be named isolatedWorld(). Similarly,
49369        given that getWorldForEnteredContext() returns 0 for the main world,
49370        it should be named isolatedWorldForEnteredContext().
49371
49372        No tests. No change in behavior.
49373
49374        * bindings/v8/CustomElementHelpers.cpp:
49375        (WebCore::CustomElementHelpers::isFeatureAllowed):
49376        * bindings/v8/DOMDataStore.cpp:
49377        (WebCore::DOMDataStore::current):
49378        * bindings/v8/DOMWrapperWorld.cpp:
49379        (WebCore::DOMWrapperWorld::makeContextWeak):
49380        * bindings/v8/DOMWrapperWorld.h:
49381        (WebCore::DOMWrapperWorld::isolatedWorld):
49382        * bindings/v8/ScriptController.cpp:
49383        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
49384        (WebCore::ScriptController::currentWorldContext):
49385        * bindings/v8/V8Binding.h:
49386        (WebCore::isolatedWorldForEnteredContext):
49387        * bindings/v8/WorldContextHandle.cpp:
49388        (WebCore::WorldContextHandle::WorldContextHandle):
49389        * bindings/v8/custom/V8DocumentCustom.cpp:
49390        (WebCore::wrap):
49391        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
49392        (WebCore::wrap):
49393        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
49394        (WebCore::wrap):
49395        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
49396        (WebCore::V8XMLHttpRequest::constructorCustom):
49397
493982013-03-01  Kentaro Hara  <haraken@chromium.org>
49399
49400        [V8] Move HTMLDocument::getNamedProperty() to DOMWindowShell
49401        https://bugs.webkit.org/show_bug.cgi?id=111223
49402
49403        Reviewed by Adam Barth.
49404
49405        HTMLDocument::getNamedProperty() is used by DOMWindowShell.
49406        It can be a static method in DOMWindowShell.
49407
49408        No tests. No change in behavior.
49409
49410        * bindings/scripts/CodeGeneratorV8.pm:
49411        (GenerateHeader):
49412        * bindings/v8/V8DOMWindowShell.cpp:
49413        (WebCore::getNamedProperty):
49414        (WebCore):
49415        (WebCore::getter):
49416        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
49417
494182013-03-03  Dan Bernstein  <mitz@apple.com>
49419
49420        Build fix after r144565. Reverted r144533.
49421
49422        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
49423
494242013-03-03  Adam Barth  <abarth@webkit.org>
49425
49426        Attempt to fix the Qt build after r144498
49427        https://bugs.webkit.org/show_bug.cgi?id=111272
49428
49429        Reviewed by Eric Seidel.
49430
49431        Update the Qt version of the XML parser to call the new API.
49432
49433        * xml/parser/XMLDocumentParserQt.cpp:
49434        (WebCore::XMLDocumentParser::resumeParsing):
49435        (WebCore::XMLDocumentParser::appendFragmentSource):
49436
494372013-03-03  Dean Jackson  <dino@apple.com>
49438
49439        Plug-ins that are appropriately large w.r.t page size should autostart
49440        https://bugs.webkit.org/show_bug.cgi?id=111242
49441
49442        Reviewed by Brady Eidson.
49443
49444        A "full-page" plug-in site should never snapshot. The trick is
49445        how to determine what is full-page. This change implements the
49446        following algorithm.
49447
49448        - The plug-in is in the main frame (not an iframe).
49449        - The plug-in is sized with width and height 100%.
49450        - The displayed area of the plug-in is more than 96% of the viewport area.
49451
49452        This is definitely not foolproof. For example, zombo.com has a slight
49453        border around its plug-in. As the window size gets smaller, the body margin
49454        takes up more than 5% of the width or height, and the plug-in doesn't pass
49455        the tests above.
49456
49457        * html/HTMLPlugInImageElement.cpp:
49458        (WebCore): New static constant: sizingFullPageThresholdPercentage
49459        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Implements
49460            the rules described above.
49461
494622013-03-03  Ryosuke Niwa  <rniwa@webkit.org>
49463
49464        [Win] IDLParser.pm fails to parse OESTextureHalfFloat and causes a build failure
49465        https://bugs.webkit.org/show_bug.cgi?id=111267
49466
49467        Reviewed by Kentaro Hara.
49468
49469        Allow empty definitions.
49470
49471        * bindings/scripts/IDLParser.pm:
49472        (Parse):
49473
494742013-03-03  David Kilzer  <ddkilzer@apple.com>
49475
49476        BUILD FIX: RenderLayerFilterInfo.h needs to include Element.h with ENABLE(SVG)
49477
49478        Fixes the following build failures:
49479
49480            In file included from Source/WebCore/rendering/RenderLayerFilterInfo.cpp:33:
49481            Source/WebCore/rendering/RenderLayerFilterInfo.h:118:19: error: use of undeclared identifier 'Element'
49482                Vector<RefPtr<Element> > m_internalSVGReferences;
49483                              ^
49484            Source/WebCore/rendering/RenderLayerFilterInfo.h:118:28: error: expected a type
49485                Vector<RefPtr<Element> > m_internalSVGReferences;
49486                                       ^
49487            Source/WebCore/rendering/RenderLayerFilterInfo.h:118:30: error: private field 'm_internalSVGReferences' is not used [-Werror,-Wunused-private-field]
49488                Vector<RefPtr<Element> > m_internalSVGReferences;
49489                                         ^
49490            3 errors generated.
49491
49492        * rendering/RenderLayerFilterInfo.h: Include Element.h within
49493        ENABLE(SVG).  Move ENABLE(SVG) block below unconditional
49494        headers.
49495
494962013-03-03  Sheriff Bot  <webkit.review.bot@gmail.com>
49497
49498        Unreviewed, rolling out r144567.
49499        http://trac.webkit.org/changeset/144567
49500        https://bugs.webkit.org/show_bug.cgi?id=111266
49501
49502        Does not compile on apple-win (Requested by abarth on
49503        #webkit).
49504
49505        * WebCore.exp.in:
49506        * dom/Document.cpp:
49507        (WebCore::Document::iconURLs):
49508        * dom/Document.h:
49509        (Document):
49510        * loader/icon/IconController.cpp:
49511        (WebCore::IconController::iconURL):
49512        (WebCore::IconController::urlsForTypes):
49513        * loader/icon/IconController.h:
49514        (IconController):
49515        * testing/Internals.cpp:
49516        (WebCore::Internals::iconURLs):
49517        * testing/Internals.h:
49518        * testing/Internals.idl:
49519
495202013-03-03  Mike West  <mkwst@chromium.org>
49521
49522        CSP 1.1: Support CSP 1.1 directives on the unprefixed header.
49523        https://bugs.webkit.org/show_bug.cgi?id=111254
49524
49525        Reviewed by Adam Barth.
49526
49527        We'd like to ensure that early adopters don't get stuck on a prefixed
49528        header; when CSP 1.1 is baked enough to be supported in multiple
49529        browsers, everything should Just Work™.
49530
49531        This patch changes WebKit's behavior regarding CSP_NEXT features.
49532        Currently, they're only exposed on the prefixed header ('X-WebKit-CSP').
49533        This patch exposes those features on the canonical header, assuming
49534        that the runtime flag is set. This shouldn't have any effect at all on
49535        ports that haven't yet enabled CSP_NEXT, and will simply clear the way
49536        for a clean deployment to a wider audience once the specification
49537        process is further along.
49538
49539        This change shouldn't have any effect on the existing tests: they
49540        should run just as they did before. The next step will be to adjust
49541        the LayoutTests for 1.1 to prefer the canonical header, but I'll do
49542        that in another patch to reduce churn.
49543
49544        Related, the enum names no longer made sense: the difference between the
49545        canonical 'Content-Security-Policy' header and 'X-WebKit-CSP' is the
49546        prefix, not the functionality. This patch renames them for clarity.
49547
49548        * dom/Document.cpp:
49549        (WebCore::Document::processHttpEquiv):
49550        * loader/FrameLoader.cpp:
49551        (WebCore::FrameLoader::didBeginDocument):
49552            Use the new enum names.
49553        * page/ContentSecurityPolicy.cpp:
49554        (CSPDirectiveList):
49555        (WebCore::CSPDirectiveList::CSPDirectiveList):
49556        (WebCore::CSPDirectiveList::addDirective):
49557            Drop the 'm_experimental' property from CSPDirectiveList; we'll
49558            control the behavior via the runtime flag from now on.
49559
49560            Also, this fixes a small bug in 'addDirective()': we never threw
49561            unrecognized directive errors for users who were sending the
49562            prefixed header. Oops!
49563        (WebCore::ContentSecurityPolicy::deprecatedHeaderType):
49564            Use the new enum names.
49565        * page/ContentSecurityPolicy.h:
49566            Redefine the enum for clarity: 'PrefixedReport' and 'Report'
49567            rather than 'ReportAllDirectives' and 'ReportStableDirectives'.
49568
495692013-03-03  Ryosuke Niwa  <rniwa@webkit.org>
49570
49571        Another Windows build fix attempt after r144567.
49572        Try touching the IDL file in a hope it'll regenerate JSInternals.cpp.
49573
49574        * testing/Internals.idl:
49575
495762013-03-03  Adam Barth  <abarth@webkit.org>
49577
49578        Unreviewed attempted build fix. Adds back some includes removed in
49579        http://trac.webkit.org/changeset/144565.
49580
49581        * Modules/mediastream/RTCPeerConnection.cpp:
49582        * bindings/ScriptControllerBase.cpp:
49583        * bindings/objc/DOM.mm:
49584        * bindings/v8/ScriptController.cpp:
49585        * bindings/v8/V8DOMWindowShell.cpp:
49586        * bindings/v8/custom/V8DOMWindowCustom.cpp:
49587        * css/CSSFontSelector.cpp:
49588        * css/WebKitCSSSVGDocumentValue.cpp:
49589        * dom/DOMImplementation.cpp:
49590        * dom/PendingScript.h:
49591        * dom/ScriptElement.cpp:
49592        * dom/ScriptElement.h:
49593        * history/CachedFrame.cpp:
49594        * html/DOMURL.cpp:
49595        * html/HTMLAnchorElement.cpp:
49596        * html/HTMLAppletElement.cpp:
49597        * html/HTMLElement.cpp:
49598        * html/HTMLEmbedElement.cpp:
49599        * html/HTMLFrameSetElement.cpp:
49600        * html/HTMLHtmlElement.cpp:
49601        * html/HTMLImageElement.cpp:
49602        * html/HTMLObjectElement.cpp:
49603        * html/HTMLPlugInElement.cpp:
49604        * html/ImageDocument.cpp:
49605        * html/ImageInputType.cpp:
49606        * html/MediaDocument.cpp:
49607        * html/PluginDocument.cpp:
49608        * html/canvas/WebGLRenderingContext.cpp:
49609        (WebCore):
49610        * html/parser/HTMLConstructionSite.cpp:
49611        * html/parser/HTMLParserOptions.cpp:
49612        * html/parser/XSSAuditorDelegate.cpp:
49613        * inspector/InspectorDebuggerAgent.cpp:
49614        * inspector/InspectorFileSystemAgent.cpp:
49615        * inspector/InspectorFrontendHost.cpp:
49616        * inspector/InspectorInstrumentation.h:
49617        * inspector/InspectorPageAgent.cpp:
49618        * inspector/NetworkResourcesData.cpp:
49619        * inspector/NetworkResourcesData.h:
49620        (WebCore):
49621        * loader/CookieJar.cpp:
49622        * loader/CrossOriginAccessControl.cpp:
49623        * loader/FrameLoader.cpp:
49624        * loader/MainResourceLoader.cpp:
49625        * loader/MixedContentChecker.cpp:
49626        * loader/PingLoader.cpp:
49627        * loader/SubframeLoader.cpp:
49628        * loader/SubresourceLoader.cpp:
49629        * loader/appcache/ApplicationCacheGroup.cpp:
49630        * loader/appcache/ApplicationCacheHost.cpp:
49631        * loader/cache/CachedResource.cpp:
49632        * loader/icon/IconController.cpp:
49633        * page/DOMWindowExtension.cpp:
49634        * page/Frame.cpp:
49635        * page/PerformanceTiming.cpp:
49636        * page/PointerLockController.cpp:
49637        * page/animation/CSSPropertyAnimation.cpp:
49638        * platform/chromium/PasteboardChromium.cpp:
49639        * platform/efl/ErrorsEfl.cpp:
49640        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
49641        * platform/gtk/ErrorsGtk.cpp:
49642        * platform/gtk/PasteboardGtk.cpp:
49643        * platform/gtk/PasteboardHelper.h:
49644        * platform/mac/ClipboardMac.mm:
49645        * platform/mac/HTMLConverter.mm:
49646        * platform/qt/PasteboardQt.cpp:
49647        * plugins/DOMMimeType.cpp:
49648        * plugins/PluginView.cpp:
49649        * rendering/HitTestResult.cpp:
49650        * rendering/RenderImage.cpp:
49651        * rendering/RenderImageResource.cpp:
49652        * rendering/RenderImageResourceStyleImage.cpp:
49653        * rendering/RenderLayer.cpp:
49654        * rendering/RenderLayerBacking.cpp:
49655        * svg/SVGImageLoader.cpp:
49656        * svg/SVGUseElement.cpp:
49657        * testing/MockPagePopupDriver.cpp:
49658        * xml/XSLStyleSheet.h:
49659        (WebCore):
49660
496612013-03-03  Ruslan Abdikeev  <aruslan@chromium.org>
49662
49663        <link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
49664        https://bugs.webkit.org/show_bug.cgi?id=109061
49665
49666        Reviewed by Adam Barth.
49667
49668        Test: fast/dom/icon-url-list-apple-touch.html
49669
49670        Added iconTypes parameter to Document::iconURLs().
49671        Added Document::shortcutIconURLs() with original semantics of iconURLs().
49672        Fixed IconController.cpp to provide iconTypesMask to iconURLs().
49673        Renamed iconTypes to iconTypesMask to make the meaning clearer.
49674
49675        * WebCore.exp.in:
49676        * dom/Document.cpp:
49677        (WebCore::Document::shortcutIconURLs):
49678        (WebCore):
49679        (WebCore::Document::iconURLs):
49680        * dom/Document.h:
49681        (Document):
49682        * loader/icon/IconController.cpp:
49683        (WebCore::IconController::iconURL):
49684        (WebCore::IconController::urlsForTypes):
49685        * testing/Internals.cpp:
49686        (WebCore::Internals::iconURLs):
49687        (WebCore::Internals::shortcutIconURLs):
49688        (WebCore):
49689        (WebCore::Internals::allIconURLs):
49690        * testing/Internals.h:
49691        * testing/Internals.idl:
49692
496932013-03-03  Mike West  <mkwst@chromium.org>
49694
49695        CSP: Throw a warning when a '*-report-only' header doesn't contain a 'report-uri' directive.
49696        https://bugs.webkit.org/show_bug.cgi?id=111208
49697
49698        Reviewed by Adam Barth.
49699
49700        Developers in the wild have been observed to serve a report-only CSP
49701        header with a policy that doesn't contain a 'report-uri' directive.
49702        This has zero effect, of course, and we should help them understand
49703        that by throwing a warning up on the console.
49704
49705        Test: http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.html
49706
49707        * page/ContentSecurityPolicy.cpp:
49708        (WebCore::CSPDirectiveList::isReportOnly): Added.
49709        (WebCore::CSPDirectiveList::reportURIs): Added.
49710        (WebCore::CSPDirectiveList::create):
49711            After creating a CSPDirectiveList, check whether it's in
49712            report-only mode without a report-uri. If so, warn the developer.
49713        (WebCore::ContentSecurityPolicy::reportMissingReportURI): Added.
49714            Write an exciting message to the console, warning the developer
49715            about her expensive no-op machine.
49716
497172013-03-03  Adam Barth  <abarth@webkit.org>
49718
49719        Unreviewed rollout of http://trac.webkit.org/r144530
49720        As described in https://bugs.webkit.org/show_bug.cgi?id=111167 and
49721        https://bugs.webkit.org/show_bug.cgi?id=111035, this patch caused a
49722        large number of ASSERTs in chromium-win.
49723
49724        * CMakeLists.txt:
49725        * GNUmakefile.list.am:
49726        * Modules/mediastream/RTCPeerConnection.cpp:
49727        * Modules/notifications/Notification.cpp:
49728        * Target.pri:
49729        * WebCore.exp.in:
49730        * WebCore.gypi:
49731        * WebCore.vcproj/WebCore.vcproj:
49732        * WebCore.vcxproj/WebCore.vcxproj:
49733        * WebCore.vcxproj/WebCore.vcxproj.filters:
49734        * WebCore.xcodeproj/project.pbxproj:
49735        * bindings/ScriptControllerBase.cpp:
49736        * bindings/js/JSNodeCustom.cpp:
49737        * bindings/js/ScriptController.cpp:
49738        * bindings/js/ScriptSourceCode.h:
49739        (WebCore):
49740        * bindings/objc/DOM.mm:
49741        * bindings/v8/ScriptController.cpp:
49742        * bindings/v8/V8DOMWindowShell.cpp:
49743        * bindings/v8/custom/V8DOMWindowCustom.cpp:
49744        * css/CSSCrossfadeValue.h:
49745        (WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
49746        (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
49747        * css/CSSFontFaceSource.h:
49748        * css/CSSFontSelector.cpp:
49749        * css/WebKitCSSSVGDocumentValue.cpp:
49750        * css/WebKitCSSSVGDocumentValue.h:
49751        (WebCore):
49752        * dom/Clipboard.cpp:
49753        (WebCore::Clipboard::Clipboard):
49754        * dom/ContainerNode.cpp:
49755        * dom/DOMImplementation.cpp:
49756        * dom/PendingScript.h:
49757        * dom/ScriptElement.cpp:
49758        * dom/ScriptElement.h:
49759        * history/CachedFrame.cpp:
49760        * html/DOMURL.cpp:
49761        * html/HTMLAnchorElement.cpp:
49762        * html/HTMLAppletElement.cpp:
49763        * html/HTMLElement.cpp:
49764        * html/HTMLEmbedElement.cpp:
49765        * html/HTMLFrameSetElement.cpp:
49766        * html/HTMLHtmlElement.cpp:
49767        * html/HTMLImageElement.cpp:
49768        * html/HTMLObjectElement.cpp:
49769        * html/HTMLPlugInElement.cpp:
49770        * html/ImageDocument.cpp:
49771        * html/ImageInputType.cpp:
49772        * html/MediaDocument.cpp:
49773        * html/PluginDocument.cpp:
49774        * html/canvas/WebGLRenderingContext.cpp:
49775        (WebCore):
49776        * html/parser/HTMLConstructionSite.cpp:
49777        * html/parser/HTMLParserOptions.cpp:
49778        * html/parser/HTMLScriptRunner.h:
49779        * html/parser/XSSAuditor.cpp:
49780        * html/parser/XSSAuditorDelegate.cpp:
49781        * inspector/InspectorDebuggerAgent.cpp:
49782        * inspector/InspectorFileSystemAgent.cpp:
49783        * inspector/InspectorFrontendHost.cpp:
49784        * inspector/InspectorInstrumentation.h:
49785        (WebCore):
49786        * inspector/InspectorPageAgent.cpp:
49787        * inspector/NetworkResourcesData.cpp:
49788        * inspector/NetworkResourcesData.h:
49789        (WebCore):
49790        * loader/CookieJar.cpp:
49791        * loader/CrossOriginAccessControl.cpp:
49792        * loader/CrossOriginAccessControl.h:
49793        (WebCore):
49794        * loader/CrossOriginPreflightResultCache.h:
49795        * loader/DocumentThreadableLoader.h:
49796        * loader/FrameLoader.cpp:
49797        (WebCore::FrameLoader::FrameLoader):
49798        * loader/FrameLoader.h:
49799        (WebCore):
49800        (WebCore::FrameLoader::policyChecker):
49801        * loader/ImageLoader.cpp:
49802        * loader/ImageLoader.h:
49803        * loader/LinkLoader.h:
49804        (WebCore):
49805        * loader/MainResourceLoader.cpp:
49806        * loader/MainResourceLoader.h:
49807        (WebCore):
49808        * loader/MixedContentChecker.cpp:
49809        * loader/PingLoader.cpp:
49810        * loader/PolicyChecker.h:
49811        (WebCore):
49812        * loader/ProgressTracker.cpp:
49813        * loader/SubframeLoader.cpp:
49814        * loader/SubresourceLoader.cpp:
49815        * loader/TextTrackLoader.cpp:
49816        * loader/TextTrackLoader.h:
49817        (WebCore):
49818        * loader/ThreadableLoader.h:
49819        * loader/appcache/ApplicationCacheGroup.cpp:
49820        * loader/appcache/ApplicationCacheGroup.h:
49821        (WebCore):
49822        * loader/appcache/ApplicationCacheHost.cpp:
49823        * loader/archive/cf/LegacyWebArchive.cpp:
49824        * loader/cache/CachedFont.cpp:
49825        * loader/cache/CachedFont.h:
49826        (CachedFontClient):
49827        (WebCore::CachedFontClient::~CachedFontClient):
49828        (WebCore::CachedFontClient::expectedType):
49829        (WebCore::CachedFontClient::resourceClientType):
49830        (WebCore::CachedFontClient::fontLoaded):
49831        (WebCore):
49832        * loader/cache/CachedFontClient.h: Removed.
49833        * loader/cache/CachedImage.cpp:
49834        * loader/cache/CachedRawResource.cpp:
49835        * loader/cache/CachedRawResource.h:
49836        (WebCore):
49837        (CachedRawResourceClient):
49838        (WebCore::CachedRawResourceClient::~CachedRawResourceClient):
49839        (WebCore::CachedRawResourceClient::expectedType):
49840        (WebCore::CachedRawResourceClient::resourceClientType):
49841        (WebCore::CachedRawResourceClient::dataSent):
49842        (WebCore::CachedRawResourceClient::responseReceived):
49843        (WebCore::CachedRawResourceClient::dataReceived):
49844        (WebCore::CachedRawResourceClient::redirectReceived):
49845        (WebCore::CachedRawResourceClient::dataDownloaded):
49846        * loader/cache/CachedRawResourceClient.h: Removed.
49847        * loader/cache/CachedResource.cpp:
49848        * loader/cache/CachedResourceHandle.cpp:
49849        (WebCore):
49850        * loader/cache/CachedResourceHandle.h:
49851        (WebCore):
49852        (WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
49853        (WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
49854        * loader/cache/CachedSVGDocument.h:
49855        (CachedSVGDocumentClient):
49856        (WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
49857        (WebCore::CachedSVGDocumentClient::expectedType):
49858        (WebCore::CachedSVGDocumentClient::resourceClientType):
49859        (WebCore):
49860        * loader/cache/CachedSVGDocumentClient.h: Removed.
49861        * loader/cache/CachedSVGDocumentReference.cpp: Removed.
49862        * loader/cache/CachedSVGDocumentReference.h:
49863        (WebCore):
49864        (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
49865        (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
49866        * loader/cache/CachedStyleSheetClient.h:
49867        (WebCore):
49868        * loader/cache/MemoryCache.h:
49869        (WebCore):
49870        (MemoryCache):
49871        * loader/chromium/CachedRawResourceChromium.cpp:
49872        * loader/icon/IconController.cpp:
49873        * loader/icon/IconLoader.h:
49874        * loader/mac/ResourceLoaderMac.mm:
49875        * page/DOMWindowExtension.cpp:
49876        * page/Frame.cpp:
49877        (WebCore::Frame::Frame):
49878        (WebCore):
49879        (WebCore::Frame::reportMemoryUsage):
49880        * page/Frame.h:
49881        (WebCore):
49882        (Frame):
49883        (WebCore::Frame::init):
49884        (WebCore::Frame::loader):
49885        * page/PerformanceNavigation.cpp:
49886        * page/PerformanceTiming.cpp:
49887        * page/PointerLockController.cpp:
49888        * page/Settings.cpp:
49889        * page/animation/CSSPropertyAnimation.cpp:
49890        * platform/chromium/PasteboardChromium.cpp:
49891        * platform/efl/ErrorsEfl.cpp:
49892        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
49893        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
49894        * platform/graphics/filters/FilterOperation.cpp:
49895        (WebCore):
49896        * platform/graphics/filters/FilterOperation.h:
49897        (WebCore):
49898        (WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
49899        (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
49900        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
49901        * platform/gtk/ErrorsGtk.cpp:
49902        * platform/gtk/PasteboardGtk.cpp:
49903        * platform/gtk/PasteboardHelper.h:
49904        * platform/mac/ClipboardMac.h:
49905        * platform/mac/ClipboardMac.mm:
49906        * platform/mac/HTMLConverter.mm:
49907        * platform/mac/PasteboardMac.mm:
49908        * platform/network/AuthenticationChallengeBase.cpp:
49909        * platform/network/cf/CookieJarCFNet.cpp:
49910        * platform/network/cf/ResourceRequestCFNet.cpp:
49911        * platform/network/mac/CookieStorageMac.mm:
49912        * platform/qt/PasteboardQt.cpp:
49913        * plugins/DOMMimeType.cpp:
49914        * plugins/PluginRequest.h: Removed.
49915        * plugins/PluginStream.h:
49916        (PluginStreamClient):
49917        (WebCore::PluginStreamClient::~PluginStreamClient):
49918        (WebCore::PluginStreamClient::streamDidFinishLoading):
49919        (WebCore):
49920        * plugins/PluginStreamClient.h: Removed.
49921        * plugins/PluginView.cpp:
49922        * plugins/PluginView.h:
49923        (WebCore):
49924        (PluginRequest):
49925        (WebCore::PluginRequest::PluginRequest):
49926        (WebCore::PluginRequest::frameLoadRequest):
49927        (WebCore::PluginRequest::notifyData):
49928        (WebCore::PluginRequest::sendNotification):
49929        (WebCore::PluginRequest::shouldAllowPopups):
49930        * rendering/HitTestResult.cpp:
49931        * rendering/InlineFlowBox.cpp:
49932        * rendering/RenderBox.cpp:
49933        * rendering/RenderEmbeddedObject.cpp:
49934        * rendering/RenderImage.cpp:
49935        * rendering/RenderImageResource.cpp:
49936        (WebCore::RenderImageResource::RenderImageResource):
49937        (WebCore):
49938        * rendering/RenderImageResource.h:
49939        (WebCore::RenderImageResource::image):
49940        (WebCore::RenderImageResource::errorOccurred):
49941        (WebCore::RenderImageResource::usesImageContainerSize):
49942        (WebCore::RenderImageResource::imageHasRelativeWidth):
49943        (WebCore::RenderImageResource::imageHasRelativeHeight):
49944        (WebCore::RenderImageResource::imageSize):
49945        * rendering/RenderImageResourceStyleImage.cpp:
49946        * rendering/RenderLayer.cpp:
49947        * rendering/RenderLayerBacking.cpp:
49948        * rendering/RenderLayerFilterInfo.h:
49949        (WebCore):
49950        * rendering/RenderListItem.cpp:
49951        * rendering/RenderListMarker.cpp:
49952        * rendering/RenderSnapshottedPlugIn.cpp:
49953        * rendering/RenderTableCol.cpp:
49954        * rendering/RenderTableRow.cpp:
49955        * rendering/RenderTableSection.cpp:
49956        * rendering/style/StyleCachedShader.h:
49957        * rendering/style/StyleCustomFilterProgram.cpp: Removed.
49958        * rendering/style/StyleCustomFilterProgram.h:
49959        (WebCore):
49960        (WebCore::StyleCustomFilterProgram::vertexShaderString):
49961        (StyleCustomFilterProgram):
49962        (WebCore::StyleCustomFilterProgram::fragmentShaderString):
49963        (WebCore::StyleCustomFilterProgram::isLoaded):
49964        (WebCore::StyleCustomFilterProgram::willHaveClients):
49965        (WebCore::StyleCustomFilterProgram::didRemoveLastClient):
49966        (WebCore::StyleCustomFilterProgram::notifyFinished):
49967        * svg/SVGFEImageElement.h:
49968        * svg/SVGFontFaceUriElement.h:
49969        (SVGFontFaceUriElement):
49970        * svg/SVGImageLoader.cpp:
49971        * svg/SVGUseElement.cpp:
49972        * svg/SVGUseElement.h:
49973        * svg/graphics/SVGImageCache.cpp:
49974        * testing/MockPagePopupDriver.cpp:
49975        * xml/XSLStyleSheet.h:
49976        (WebCore):
49977        * xml/XSLTProcessorLibxslt.cpp:
49978        * xml/parser/XMLDocumentParser.cpp:
49979        * xml/parser/XMLDocumentParser.h:
49980        * xml/parser/XMLDocumentParserLibxml2.cpp:
49981
499822013-03-03  Kentaro Hara  <haraken@chromium.org>
49983
49984        [V8] Remove TranslateParameter() from CodeGeneratorV8.pm
49985        https://bugs.webkit.org/show_bug.cgi?id=111218
49986
49987        Reviewed by Adam Barth.
49988
49989        TranslateParameter() does nothing. It tries to convert TimeoutHandler to DOMString,
49990        but there is no non-custom method that uses TimeoutHandler.
49991
49992        The only place where TimeoutHandler is used in the WebKit IDL is setTimeout() and setInterval().
49993        However, the latest spec uses 'any' instead of TimeoutHandler.
49994        http://dev.w3.org/html5/spec-LC/timers.html
49995        Thus, this patch updates the IDL declarations of setTimeout() and setInterval()
49996        according to the spec. By this change, TimeoutHandler is gone away from the WebKit IDL.
49997        (Anyway this IDL change has no effect, because setTimeout() and setInterval() are written
49998        in custom bindings.)
49999
50000        No tests. No change in behavior.
50001
50002        * bindings/scripts/CodeGeneratorV8.pm:
50003        (GenerateParametersCheck):
50004        * page/DOMWindow.idl:
50005        * workers/WorkerContext.idl:
50006
500072013-03-03  James Weatherall  <wez@chromium.org>
50008
50009        keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
50010        https://bugs.webkit.org/show_bug.cgi?id=85642
50011
50012        Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
50013
50014        Reviewed by Adam Barth.
50015
50016        * platform/chromium/KeyCodeConversionGtk.cpp:
50017        (WebCore::windowsKeyCodeForKeyEvent):
50018
500192013-03-03  Adam Barth  <abarth@webkit.org>
50020
50021        REGRESSION(144520): Does not compile on chromium-win
50022        https://bugs.webkit.org/show_bug.cgi?id=111261
50023
50024        Unreviewed rollout of http://trac.webkit.org/changeset/144520. This
50025        patch does not compile for chromium-win. See the bug for the compile
50026        error.
50027
50028        * rendering/ExclusionShapeInsideInfo.cpp:
50029        * rendering/ExclusionShapeInsideInfo.h:
50030        (WebCore):
50031        (LineSegmentRange):
50032        (WebCore::LineSegmentRange::LineSegmentRange):
50033        (WebCore::ExclusionShapeInsideInfo::isEnabledFor):
50034        * rendering/RenderBlock.cpp:
50035        (WebCore::RenderBlock::willBeDestroyed):
50036        (WebCore::RenderBlock::exclusionShapeInsideInfo):
50037        (WebCore):
50038        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
50039        * rendering/RenderBlock.h:
50040        (WebCore):
50041        (RenderBlock):
50042        (RenderBlockRareData):
50043        * rendering/RenderBlockLineLayout.cpp:
50044        (WebCore::constructBidiRunsForLine):
50045
500462013-03-02  Zan Dobersek  <zdobersek@igalia.com>
50047
50048        REGRESSION (r144517): IndexedDB layout test failures on GTK
50049        https://bugs.webkit.org/show_bug.cgi?id=111243
50050
50051        Reviewed by Martin Robinson.
50052
50053        Changes to the custom JSC bindings for IDBAny are required after r144517,
50054        specifically the case of IDBAny object having the KeyPathType type has to be covered.
50055        These changes are analogous to those made to the V8 bindings in the mentioned commit.
50056
50057        No new tests - already covered by existing tests.
50058
50059        * bindings/js/JSIDBAnyCustom.cpp:
50060        (WebCore::toJS): A helper function that wraps an IDBKeyPath into a JSValue.
50061        (WebCore): Shuffle the order inside the switch statement a bit to match the V8 custom bindings.
50062        Cover the case where the IDBAny object has the KeyPathType, calling the new helper method.
50063
500642013-03-02  Darin Adler  <darin@apple.com>
50065
50066        Another try at fixing the build.
50067
50068        * loader/cache/MemoryCache.cpp: Added an include of CachedResourceHandle.h.
50069
500702013-03-02  Darin Adler  <darin@apple.com>
50071
50072        Try to fix build.
50073
50074        * inspector/InspectorInstrumentation.h: Add missing forward declaration
50075        of CachedResource.
50076
500772013-02-18  Darin Adler  <darin@apple.com>
50078
50079        Cut down the number of source files that depend on Clipboard.h
50080        https://bugs.webkit.org/show_bug.cgi?id=110030
50081
50082        Reviewed by Ryosuke Niwa.
50083
50084        I am doing some work on Clipboard and it's better to recompile 50 files
50085        each time we touch the header instead of 700. Also cut down on includes
50086        of DragState.h.
50087
50088        * WebCore.exp.in: Updated for new MouseEvent::create function.
50089
50090        * dom/ClipboardEvent.cpp: Added include of Clipboard.h since we use it
50091        here and the world no longer includes it everywhere.
50092
50093        * dom/ClipboardEvent.h: Forward declared Clipboard instead of including
50094        Clipboard.h. Also made some overrides private because they can be.
50095
50096        * dom/DataTransferItem.h: Removed unneeded include of Clipboard.h.
50097
50098        * dom/MouseEvent.cpp: Added include of Clipboard.h since we use it
50099        here and the world no longer includes it everywhere.
50100        (WebCore::MouseEvent::create): Made the create function non-inline
50101        since we can't compile it without including Clipboard.h and we don't
50102        want to include Clipboard.h in the header. This is not so commonly
50103        used or so hot that this needs to be inlined.
50104
50105        * dom/MouseEvent.h: Forward declared Clipboard instead of including
50106        Clipboard.h. Made MouseEvent::create a non-inline function and also
50107        used overloading instead of default arguments, since we can't compile
50108        a default argument of type PassRefPtr<Clipboard> without including
50109        Clipboard.h.
50110
50111        * dom/WheelEvent.cpp: Added include of Clipboard.h since we use it
50112        here and the world no longer includes it everywhere.
50113
50114        * dom/WheelEvent.h: Forward declare PlatformWheelEvent since it is used
50115        in this header. Previously we'd get it indirectly from including a header
50116        that included Clipboard.h.
50117
50118        * editing/Editor.cpp: Added include of Clipboard.h since we use it here
50119        and the world no longer includes it everywhere.
50120
50121        * inspector/InspectorDebuggerAgent.cpp: Added include of CachedResource.h.
50122        We used to get this indirectly through Clipboard.h.
50123
50124        * inspector/InspectorFrontendHost.cpp: Added includes of ResourceError.h
50125        and ResourceResponse.h. We used to get these indirectly through Clipboard.h.
50126        Also removed unneeded include of <wtf/RefPtr.h>.
50127
50128        * inspector/NetworkResourcesData.cpp: Added include of CachedResource.h.
50129        We used to get this indirectly through Clipboard.h.
50130
50131        * loader/PingLoader.cpp: Added include of ResourceResponse.h.
50132        We used to get this indirectly through Clipboard.h.
50133
50134        * page/DragController.cpp: Added include of DragState.h.
50135        We used to get this indirectly through EventHandler.h
50136
50137        * page/EventHandler.h: Forward declared DragState and Element instead of
50138        including DragState.h. Also added an include of LayoutPoint.h, which we
50139        used to get indirectly through DragState.h.
50140
501412013-02-27  Darin Adler  <darin@apple.com>
50142
50143        StringHasher functions require alignment that call sites do not all guarantee
50144        https://bugs.webkit.org/show_bug.cgi?id=110171
50145
50146        Reviewed by Benjamin Poulain.
50147
50148        * platform/graphics/WidthCache.h:
50149        (WebCore::WidthCache::SmallStringKey::SmallStringKey): Use the newly added
50150        addCharactersAssumingAligned to make sure we don't slow this call site down.
50151        It's safe since this code always adds characters two at a time.
50152
501532013-03-02  Adam Barth  <abarth@webkit.org>
50154
50155        XSSAuditor has a subtle race condition when used with the threaded HTML parser
50156        https://bugs.webkit.org/show_bug.cgi?id=111253
50157
50158        Reviewed by Eric Seidel.
50159
50160        We were refing and derefing a StringImpl for a main-thread
50161        AtomicString. Using QualifiedNames on the background thread is very
50162        fragile and we should figure out a more robust solution.
50163
50164        * html/parser/XSSAuditor.cpp:
50165        (WebCore::findAttributeWithName):
50166
501672013-03-02  Benjamin Poulain  <bpoulain@apple.com>
50168
50169        Move computedStyleIncludingVisitedInfo from TestRunner to Internals
50170        https://bugs.webkit.org/show_bug.cgi?id=109772
50171
50172        Reviewed by Andreas Kling.
50173
50174        The function computedStyleIncludingVisitedInfo() is purely internal to WebCore,
50175        it is better defined on Internals than on TestRunner.
50176
50177        * testing/Internals.cpp:
50178        (WebCore::Internals::computedStyleIncludingVisitedInfo):
50179        * testing/Internals.h:
50180        * testing/Internals.idl:
50181
501822013-03-02  David Kilzer  <ddkilzer@apple.com>
50183
50184        BUILD FIX (r143637): Export ScriptController::javaScriptContext() on iOS
50185        <http://webkit.org/b/106059>
50186
50187        Fixes the following build failure:
50188
50189            Undefined symbols for architecture armv7:
50190              "__ZN7WebCore16ScriptController17javaScriptContextEv", referenced from:
50191                  -[WebFrame javaScriptContext] in WebFrame.o
50192                  __ZN20WebFrameLoaderClient35dispatchDidClearWindowObjectInWorldEPN7WebCore15DOMWrapperWorldE in WebFrameLoaderClient.o
50193            ld: symbol(s) not found for architecture armv7
50194
50195        * WebCore.exp.in: Export ScriptController::javaScriptContext()
50196        even more unconditionally.
50197
501982013-03-02  Eric Seidel  <eric@webkit.org>
50199
50200        Remove two unnecessary mallocs from the main-thread-parser code path
50201        https://bugs.webkit.org/show_bug.cgi?id=111249
50202
50203        Reviewed by Adam Barth.
50204
50205        I noticed these while fixing up our Vector -> String conversions
50206        but never went back to fix the FIXME.
50207
50208        AtomicString(Vector<UChar, capacity>) is smart enough to avoid mallocing
50209        if the represented string is already in the AtomicString table.  It
50210        also handles 8bit vs. 16bit and empty() just like nameString() does.
50211
50212        I also removed a 3rd caller to nameString() in the XSSAuditor which
50213        was causing an unnecessary malloc in both the main and background
50214        thread parser paths.
50215
50216        * html/parser/AtomicHTMLToken.h:
50217        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
50218        * html/parser/HTMLToken.h:
50219        * html/parser/XSSAuditor.cpp:
50220        (WebCore):
50221        (WebCore::threadSafeMatch):
50222        (WebCore::hasName):
50223
502242013-03-02  Eric Seidel  <eric@webkit.org>
50225
50226        constructTreeFromCompactHTMLToken should call clearExternalCharacters
50227        https://bugs.webkit.org/show_bug.cgi?id=111248
50228
50229        Reviewed by Adam Barth.
50230
50231        I don't know how to write a test for this.  It's possible characters()
50232        is never accessed from HTMLStackItem::token(), but it's better to be
50233        safe than sorry here.
50234
50235        * html/parser/HTMLDocumentParser.cpp:
50236        (WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
50237
502382013-03-02  Rob Buis  <rbuis@rim.com>
50239
50240        Text overflow ellipsis wrong color when using webkit-text-fill-color
50241        https://bugs.webkit.org/show_bug.cgi?id=54841
50242
50243        Reviewed by David Hyatt.
50244
50245        Take -webkit-text-fill-color into account for ellipsis painting.
50246
50247        Test: fast/css/text-overflow-ellipsis-color.html
50248
50249        * rendering/EllipsisBox.cpp:
50250        (WebCore::EllipsisBox::paint):
50251
502522013-03-02  Ryosuke Niwa  <rniwa@webkit.org>
50253
50254        Fix a typo in my previous commit (r144534).
50255
50256        * platform/win/PasteboardWin.cpp:
50257
502582013-03-02  Nayan Kumar K  <nayankk@motorola.com>
50259
50260        [WebGL] Support for texImage2D of type HALF_FLOAT_OES with ArrayBufferView.
50261        https://bugs.webkit.org/show_bug.cgi?id=110818
50262
50263        Reviewed by Kenneth Russell.
50264
50265        As per OES_texture_half_float specification texImage2D and texSubImage2D entry
50266        points taking ArrayBufferView should extended to accept null with the pixel type
50267        HALF_FLOAT_OES.
50268
50269        Tests: fast/canvas/webgl/oes-texture-half-float-not-supported.html
50270               fast/canvas/webgl/oes-texture-half-float.html
50271
50272        * CMakeLists.txt:
50273        * DerivedSources.make:
50274        * DerivedSources.pri:
50275        * GNUmakefile.list.am:
50276        * Target.pri:
50277        * WebCore.gypi:
50278        * WebCore.xcodeproj/project.pbxproj:
50279        * bindings/js/JSWebGLRenderingContextCustom.cpp:
50280        (WebCore::toJS):
50281        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
50282        (WebCore::toV8Object):
50283        * html/canvas/OESTextureHalfFloat.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
50284        (WebCore):
50285        (WebCore::OESTextureHalfFloat::OESTextureHalfFloat):
50286        (WebCore::OESTextureHalfFloat::~OESTextureHalfFloat):
50287        (WebCore::OESTextureHalfFloat::getName):
50288        (WebCore::OESTextureHalfFloat::create):
50289        * html/canvas/OESTextureHalfFloat.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
50290        (WebCore):
50291        (OESTextureHalfFloat):
50292        * html/canvas/OESTextureHalfFloat.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
50293        * html/canvas/WebGLExtension.h:
50294        * html/canvas/WebGLRenderingContext.cpp:
50295        (WebCore):
50296        (WebCore::WebGLRenderingContext::getExtension):
50297        (WebCore::WebGLRenderingContext::texImage2D):
50298        (WebCore::WebGLRenderingContext::texSubImage2D):
50299        (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
50300        (WebCore::WebGLRenderingContext::validateTexFuncData):
50301        * html/canvas/WebGLRenderingContext.h:
50302        (WebCore):
50303        (WebGLRenderingContext):
50304        * html/canvas/WebGLRenderingContext.idl:
50305        * platform/graphics/Extensions3D.h:
50306        (Extensions3D):
50307        * platform/graphics/GraphicsContext3D.cpp:
50308        (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
50309        * platform/graphics/GraphicsContext3D.h:
50310        * platform/graphics/GraphicsTypes3D.h:
50311        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
50312        (WebCore::GraphicsContext3D::texImage2D):
50313
503142013-03-02  Ryosuke Niwa  <rniwa@webkit.org>
50315
50316        Windows build fix attempt after r144530.
50317
50318        * platform/win/PasteboardWin.cpp:
50319
503202013-03-01  Dan Bernstein  <mitz@apple.com>
50321
50322        Tried to fix the build after r144530.
50323
50324        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Include the header for the
50325        base class.
50326
503272013-03-01  Terry Anderson  <tdanderson@chromium.org>
50328
50329        Remove unused member variable m_useLatchedEventNode from PlatformWheelEvent.h
50330        https://bugs.webkit.org/show_bug.cgi?id=107314
50331
50332        Reviewed by Darin Adler.
50333
50334        EventHandler::handleGestureScrollCore() was removed in http://trac.webkit.org/changeset/140177,
50335        and this was the only place where the member variable |m_useLatchedEventNode| in
50336        PlatformWheelEvent was mutated. This variable is no longer needed and so it should be removed.
50337
50338        No change in behavior, so no new tests needed.
50339
50340        * platform/PlatformWheelEvent.h:
50341        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
50342        (WebCore::PlatformWheelEvent::useLatchedEventNode):
50343        (PlatformWheelEvent):
50344
503452013-02-28  Alexey Proskuryakov  <ap@apple.com>
50346
50347        Reduce amount of rebuilding when touching networking headers
50348        https://bugs.webkit.org/show_bug.cgi?id=111035
50349
50350        Reviewed by Eric Seidel.
50351
50352        This uses a number of common unsurprising techniques. One interesting observation
50353        is that including CachedResource related headers is very expensive. We can usually
50354        get away with their Client counterparts, and with CachedResourceHandle.
50355
50356        * page/Frame.cpp:
50357        * page/Frame.h:
50358        Don't include FrameLoader, greatly reducing include graph for most non-loader files.
50359        This required making Frame::init() non-inline - I'm not sure why it ever was.
50360
50361        * loader/FrameLoader.cpp:
50362        * loader/FrameLoader.h:
50363        Even though FrameLoader is logically on loading side of WebCore, it's included in
50364        too many places. Not including PolicyChecker.h and ResourceHandle.h was among the
50365        largest wins. As a future improvement, we should probably convert other members
50366        to OwnPtrs.
50367
50368        * css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
50369        definition of a class it holds, but default construction does not.
50370
50371        * loader/CrossOriginAccessControl.h: This file among others only needs ResourceHandleTypes.h,
50372        not ResourceHandle.h. This header is semi-recent, so not all include sites were updated.
50373
50374        * loader/cache/CachedFont.h:
50375        * loader/cache/CachedFontClient.h: Added.
50376        * loader/cache/CachedRawResource.h:
50377        * loader/cache/CachedRawResourceClient.h: Added.
50378        * loader/cache/CachedSVGDocument.h:
50379        * loader/cache/CachedSVGDocumentClient.h: Added.
50380        These types were defining client types in the same headers, making it impossible
50381        to avoid including networking headers through CachedResource. Moved clients into
50382        separate files.
50383
50384        * plugins/PluginStream.h:
50385        * plugins/PluginStreamClient.h: Added.
50386        Similar situation here.
50387
50388        * loader/cache/CachedResourceHandle.cpp:
50389        * loader/cache/CachedResourceHandle.h:
50390        Moved functions that need to know about CachedResource to .cpp file. This is another
50391        huge win. Added a destructor, so that CachedResource woudn't be needed in all files
50392        that include CachedResourceHandle.
50393
50394        * loader/cache/CachedSVGDocumentReference.cpp: Added.
50395        * loader/cache/CachedSVGDocumentReference.h:
50396        Moved constructor and virtual function implementations to a .cpp file - they need
50397        not inlining, and this lets us avoid including CachedSVGDocument.h in the header.
50398
50399        * platform/graphics/filters/FilterOperation.cpp:
50400        * platform/graphics/filters/FilterOperation.h:
50401        Avoid including CachedSVGDocumentReference.h. This is not such a big win now that
50402        CachedSVGDocumentReference.h itself is smaller, but FilterOperation is so clearly
50403        rendering code that it seems best to cut any ties with resources and loading.
50404        Added a virtual destrutor in .cpp file, because inline destructors in polymorphic
50405        classes are generally harmful (due to code bloat).
50406
50407        * plugins/PluginRequest.h: Added.
50408        * plugins/PluginView.h:
50409        Moved PluginRequest into a separate file, it was out of place in a view hierarchy
50410        class file.
50411
50412        * rendering/RenderImageResource.cpp:
50413        * rendering/RenderImageResource.h:
50414        Moved definitions of virtual functions to a .cpp file. Thre is no win from having
50415        them inline, and now we don't need CachedImage.h in the header.
50416
50417        * rendering/style/StyleCustomFilterProgram.cpp: Added.
50418        * rendering/style/StyleCustomFilterProgram.h:
50419        Ditto.
50420
50421        * CMakeLists.txt:
50422        * GNUmakefile.list.am:
50423        * Modules/mediastream/RTCPeerConnection.cpp:
50424        * Modules/notifications/Notification.cpp:
50425        * Target.pri:
50426        * WebCore.exp.in:
50427        * WebCore.gypi:
50428        * WebCore.vcproj/WebCore.vcproj:
50429        * WebCore.vcxproj/WebCore.vcxproj:
50430        * WebCore.vcxproj/WebCore.vcxproj.filters:
50431        * WebCore.xcodeproj/project.pbxproj:
50432        * bindings/ScriptControllerBase.cpp:
50433        * bindings/js/JSNodeCustom.cpp:
50434        * bindings/js/ScriptController.cpp:
50435        * bindings/js/ScriptSourceCode.h:
50436        * bindings/objc/DOM.mm:
50437        * bindings/v8/ScriptController.cpp:
50438        * bindings/v8/V8DOMWindowShell.cpp:
50439        * bindings/v8/custom/V8DOMWindowCustom.cpp:
50440        * css/CSSFontFaceSource.h:
50441        * css/CSSFontSelector.cpp:
50442        * css/WebKitCSSSVGDocumentValue.cpp:
50443        * css/WebKitCSSSVGDocumentValue.h:
50444        * dom/Clipboard.cpp:
50445        * dom/ContainerNode.cpp:
50446        * dom/DOMImplementation.cpp:
50447        * dom/PendingScript.h:
50448        * dom/ScriptElement.cpp:
50449        * dom/ScriptElement.h:
50450        * history/CachedFrame.cpp:
50451        * html/DOMURL.cpp:
50452        * html/HTMLAnchorElement.cpp:
50453        * html/HTMLAppletElement.cpp:
50454        * html/HTMLElement.cpp:
50455        * html/HTMLEmbedElement.cpp:
50456        * html/HTMLFrameSetElement.cpp:
50457        * html/HTMLHtmlElement.cpp:
50458        * html/HTMLImageElement.cpp:
50459        * html/HTMLObjectElement.cpp:
50460        * html/HTMLPlugInElement.cpp:
50461        * html/ImageDocument.cpp:
50462        * html/ImageInputType.cpp:
50463        * html/MediaDocument.cpp:
50464        * html/PluginDocument.cpp:
50465        * html/canvas/WebGLRenderingContext.cpp:
50466        * html/parser/HTMLConstructionSite.cpp:
50467        * html/parser/HTMLParserOptions.cpp:
50468        * html/parser/HTMLScriptRunner.h:
50469        * html/parser/XSSAuditor.cpp:
50470        * html/parser/XSSAuditorDelegate.cpp:
50471        * inspector/InspectorDebuggerAgent.cpp:
50472        * inspector/InspectorFileSystemAgent.cpp:
50473        * inspector/InspectorFrontendHost.cpp:
50474        * inspector/InspectorInstrumentation.h:
50475        * inspector/InspectorPageAgent.cpp:
50476        * inspector/NetworkResourcesData.cpp:
50477        * inspector/NetworkResourcesData.h:
50478        * loader/CookieJar.cpp:
50479        * loader/CrossOriginAccessControl.cpp:
50480        * loader/CrossOriginPreflightResultCache.h:
50481        * loader/DocumentThreadableLoader.h:
50482        * loader/ImageLoader.cpp:
50483        * loader/ImageLoader.h:
50484        * loader/LinkLoader.h:
50485        * loader/MainResourceLoader.cpp:
50486        * loader/MainResourceLoader.h:
50487        * loader/MixedContentChecker.cpp:
50488        * loader/PingLoader.cpp:
50489        * loader/PolicyChecker.h:
50490        * loader/ProgressTracker.cpp:
50491        * loader/SubframeLoader.cpp:
50492        * loader/SubresourceLoader.cpp:
50493        * loader/TextTrackLoader.cpp:
50494        * loader/TextTrackLoader.h:
50495        * loader/ThreadableLoader.h:
50496        * loader/appcache/ApplicationCacheGroup.cpp:
50497        * loader/appcache/ApplicationCacheGroup.h:
50498        * loader/appcache/ApplicationCacheHost.cpp:
50499        * loader/archive/cf/LegacyWebArchive.cpp:
50500        * loader/cache/CachedFont.cpp:
50501        * loader/cache/CachedImage.cpp:
50502        * loader/cache/CachedRawResource.cpp:
50503        * loader/cache/CachedResource.cpp:
50504        * loader/cache/CachedStyleSheetClient.h:
50505        * loader/cache/MemoryCache.cpp:
50506        * loader/cache/MemoryCache.h:
50507        * loader/chromium/CachedRawResourceChromium.cpp:
50508        * loader/icon/IconController.cpp:
50509        * loader/icon/IconLoader.h:
50510        * loader/mac/ResourceLoaderMac.mm:
50511        * page/DOMWindowExtension.cpp:
50512        * page/DragController.cpp:
50513        * page/PerformanceNavigation.cpp:
50514        * page/PerformanceTiming.cpp:
50515        * page/PointerLockController.cpp:
50516        * page/Settings.cpp:
50517        * page/animation/CSSPropertyAnimation.cpp:
50518        * platform/chromium/PasteboardChromium.cpp:
50519        * platform/efl/ErrorsEfl.cpp:
50520        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
50521        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
50522        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
50523        * platform/gtk/ErrorsGtk.cpp:
50524        * platform/gtk/PasteboardGtk.cpp:
50525        * platform/gtk/PasteboardHelper.h:
50526        * platform/mac/ClipboardMac.h:
50527        * platform/mac/ClipboardMac.mm:
50528        * platform/mac/HTMLConverter.mm:
50529        * platform/mac/PasteboardMac.mm:
50530        * platform/network/AuthenticationChallengeBase.cpp:
50531        * platform/network/cf/CookieJarCFNet.cpp:
50532        * platform/network/cf/ResourceRequestCFNet.cpp:
50533        * platform/network/mac/CookieStorageMac.mm:
50534        * platform/qt/PasteboardQt.cpp:
50535        * plugins/DOMMimeType.cpp:
50536        * plugins/PluginView.cpp:
50537        * rendering/HitTestResult.cpp:
50538        * rendering/InlineFlowBox.cpp:
50539        * rendering/RenderBox.cpp:
50540        * rendering/RenderEmbeddedObject.cpp:
50541        * rendering/RenderImage.cpp:
50542        * rendering/RenderImageResourceStyleImage.cpp:
50543        * rendering/RenderLayer.cpp:
50544        * rendering/RenderLayerBacking.cpp:
50545        * rendering/RenderLayerFilterInfo.h:
50546        * rendering/RenderListItem.cpp:
50547        * rendering/RenderListMarker.cpp:
50548        * rendering/RenderSnapshottedPlugIn.cpp:
50549        * rendering/RenderTableCol.cpp:
50550        * rendering/RenderTableRow.cpp:
50551        * rendering/RenderTableSection.cpp:
50552        * rendering/style/StyleCachedShader.h:
50553        * svg/SVGFEImageElement.h:
50554        * svg/SVGFontFaceUriElement.h:
50555        * svg/SVGImageLoader.cpp:
50556        * svg/SVGUseElement.cpp:
50557        * svg/SVGUseElement.h:
50558        * svg/graphics/SVGImageCache.cpp:
50559        * testing/MockPagePopupDriver.cpp:
50560        * xml/XSLStyleSheet.h:
50561        * xml/XSLTProcessorLibxslt.cpp:
50562        * xml/parser/XMLDocumentParser.cpp:
50563        * xml/parser/XMLDocumentParser.h:
50564        * xml/parser/XMLDocumentParserLibxml2.cpp:
50565        Many self-evident changes - removing unnecessary header includes, adding smaller
50566        more local ones that are now necessary.
50567
505682013-03-01  David Hyatt  <hyatt@apple.com>
50569
50570        [New Multicolumn] Transformed objects inside fragmented transparent objects don't render
50571        https://bugs.webkit.org/show_bug.cgi?id=111221.
50572
50573        Reviewed by Simon Fraser.
50574
50575        Improve transparencyClipBox so that it understands when moving into descendants
50576        that it does in fact have to break up the transformed clip rect across the
50577        fragments.
50578        
50579        Make sure when handling fragmented transforms using multiple paints that
50580        the test that determines the extent of the transform within the fragments
50581        uses transparencyClipBox. This gives us an accurate set of columns that the
50582        final transformed result will paint across.
50583
50584        Tests: fast/multicol/mixed-opacity-fixed-test.html
50585               fast/multicol/mixed-opacity-test.html
50586               fast/multicol/transform-inside-opacity.html
50587
50588        * rendering/RenderLayer.cpp:
50589        (WebCore::transparencyClipBox):
50590        (WebCore::expandClipRectForDescendantsAndReflection):
50591        Break transformed boxes up into fragments when they are
50592        being requested by an ancestor.
50593
50594        (WebCore::RenderLayer::collectFragments):
50595        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
50596        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
50597        * rendering/RenderLayer.h:
50598        (RenderLayer):
50599        Modify collectFragments so that we pass in the correct range
50600        within the columns that can possibly cover the fragmented
50601        transformed box.
50602
506032013-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
50604
50605        Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
50606        https://bugs.webkit.org/show_bug.cgi?id=110943
50607
50608        Reviewed by Yury Semikhatsky.
50609
50610        Unfortunately in many cases raw pointer may point to an object that has been deleted.
50611        There is no working solution to solve this problem in general.
50612        It could be solved only on case by case basis.
50613
50614        * inspector/HeapGraphSerializer.cpp:
50615        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
50616        (WebCore::HeapGraphSerializer::reportLeaf):
50617        * loader/cache/MemoryCache.cpp:
50618        (WebCore::MemoryCache::reportMemoryUsage):
50619        * platform/graphics/BitmapImage.cpp:
50620        (WebCore::FrameData::reportMemoryUsage):
50621        * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
50622        (reportMemoryUsage):
50623
506242013-03-01  Kentaro Hara  <haraken@chromium.org>
50625
50626        Style recalculation takes too long when adding whitespace text nodes
50627        https://bugs.webkit.org/show_bug.cgi?id=110786
50628
50629        Reviewed by Darin Adler.
50630
50631        // This takes 216 msec.
50632        for (var i = 0; i < 1500; ++i) {
50633          document.body.appendChild(document.createTextNode('x'));
50634          document.body.appendChild(document.createElement('div'));
50635          document.body.appendChild(document.createTextNode('x'));
50636        }
50637
50638        // But this takes 25.3 seconds.
50639        for (var i = 0; i < 1500; ++i) {
50640          document.body.appendChild(document.createTextNode(' '));
50641          document.body.appendChild(document.createElement('div'));
50642          document.body.appendChild(document.createTextNode(' '));
50643        }
50644
50645        The reason is that we do not create renderers for empty text
50646        nodes and thus we are hitting the worst O(N^2) case in Node::attach().
50647        (See FIXME in Node::attach().)
50648
50649        This patch adds a logic to bail out the loop to avoid the O(N^2) case.
50650        Specifically, the patch bails out the loop if we encounter a text node
50651        for which we again decided not to create a renderer. This bail out is
50652        reasonable because the fact that we again decided not to create a renderer
50653        for the text node indicates that there will be no affect of the result
50654        of Text::textRendererIsNeeded() of the rest of the sibling nodes.
50655
50656        Performance test: https://bugs.webkit.org/attachment.cgi?id=190545
50657        Performance result in Chromium/Linux: 25.3 sec => 48 msec !
50658
50659        Test: perf/append-text-nodes-without-renderers.html (for performance)
50660              fast/dynamic/create-renderer-for-whitespace-only-text.html (for correctness)
50661
50662        The loop was introduced in r29054. We have to make sure that
50663        all layout tests that were updated in r29054 pass with this patch.
50664        See http://trac.webkit.org/changeset/29054.
50665
50666        * dom/Node.cpp:
50667        (WebCore::Node::attach):
50668
506692013-03-01  Jason Anderssen  <janderssen@gmail.com>
50670
50671        Moved markerTextForListItem from TestRunner to Internals
50672        https://bugs.webkit.org/show_bug.cgi?id=110939
50673
50674        Reviewed by Benjamin Poulain.
50675
50676        TestRunner framework is an old way of testing webkit, it would be
50677        better to incorporate the testing frame directly into the WebCore itself
50678        as to make it more compatible with WK2.
50679
50680        * testing/Internals.cpp:
50681        (WebCore::Internals::markerTextForListItem):
50682        (WebCore):
50683        * testing/Internals.h:
50684        * testing/Internals.idl:
50685
506862013-03-01  Elliott Sprehn  <esprehn@gmail.com>
50687
50688        Don't leak Documents when using MutationObserver from extensions
50689        https://bugs.webkit.org/show_bug.cgi?id=111234
50690
50691        Reviewed by Adam Barth.
50692
50693        MutationObserverCallback holds a WorldContextHandle which secretly isn't
50694        a handle to anything when it's for the main world. When it's for a non-main
50695        world though, like those used in extensions, it becomes a strong reference
50696        to the v8::Context which results in leaks by creating cycles:
50697
50698        MutationObserver -> Callback -> World -> Document -> Node -> MutationObserver.
50699
50700        Instead we should keep a RefPtr to a DOMWrapperWorld in the callback and then
50701        get the v8::Context from that inside handleEvent.
50702
50703        Tests: ManualTests/leak-observer-nonmain-world.html
50704
50705        * bindings/v8/V8Binding.cpp:
50706        (WebCore::toV8Context): Added overload that takes a DOMWrapperWorld.
50707        * bindings/v8/V8Binding.h:
50708        * bindings/v8/V8MutationCallback.cpp:
50709        (WebCore::V8MutationCallback::V8MutationCallback):
50710        (WebCore::V8MutationCallback::handleEvent):
50711        * bindings/v8/V8MutationCallback.h:
50712        (V8MutationCallback):
50713
507142013-03-01  Bear Travis  <betravis@adobe.com>
50715
50716        [css exclusions] Move ExclusionShapeInsideInfo into RenderBlockRareData
50717        https://bugs.webkit.org/show_bug.cgi?id=110995
50718
50719        Reviewed by Julien Chaffraix.
50720
50721        This patch moves ExclusionShapeInsideInfo into the RenderBlockRareData struct,
50722        which enables us to move away from the global ExclusionShapeInsideInfo map.
50723        Some additional refactoring was done to remove ExclusionShapeInsideInfo's
50724        dependency on InlineIterator, which depended on RenderBlock. This work required
50725        adding a new LineSegmentIterator struct.
50726
50727        Refactoring, no new tests.
50728
50729        * rendering/ExclusionShapeInsideInfo.cpp:
50730        (WebCore):
50731        (WebCore::LineSegmentRange::LineSegmentRange): Moving the InlineIterator
50732        constructor to the .cpp file, as InlineIterator is now forward declared in
50733        the .h file.
50734        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Moving isEnabledFor to
50735        the .cpp file, as RenderBlock is now forward declared in the .h file.
50736        * rendering/ExclusionShapeInsideInfo.h:
50737        (WebCore):
50738        (LineSegmentIterator): A simple struct for containing segment positions for
50739        layout.
50740        (WebCore::LineSegmentIterator::LineSegmentIterator): Constructor.
50741        (LineSegmentRange): Transitioning to store LineSegmentIterator.
50742        (WebCore::LineSegmentRange::LineSegmentRange): Ditto.
50743        (ExclusionShapeInsideInfo):
50744        * rendering/RenderBlock.cpp:
50745        (WebCore::RenderBlock::willBeDestroyed): Destroying a block will now destroy
50746        its ExclusionShapeInsideInfo, so there is no need to remove it from the map.
50747        (WebCore):
50748        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Use
50749        the RenderBlockRareData struct rather than the global map.
50750        * rendering/RenderBlock.h:
50751        (WebCore):
50752        (WebCore::RenderBlock::ensureExclusionShapeInsideInfo): Ensure an info struct
50753        is present if the shape-inside style is set.
50754        (WebCore::RenderBlock::exclusionShapeInsideInfo): Look up the info struct for
50755        the current block.
50756        (WebCore::RenderBlock::setExclusionShapeInsideInfo): Update the info struct
50757        for the current block.
50758        (RenderBlockRareData): Add the ExclusionShapeInsideInfo member.
50759        * rendering/RenderBlockLineLayout.cpp:
50760        (WebCore::constructBidiRunsForLine): Construct the appropriate offsets during
50761        layout based on the stored LineSegmentIterators.
50762
507632013-03-01  Terry Anderson  <tdanderson@chromium.org>
50764
50765        EventHandler::handleGestureScrollUpdate() should invoke the user-generated scroll routines 
50766        so its behavior matches other user-initiated scrolls
50767        https://bugs.webkit.org/show_bug.cgi?id=109769
50768
50769        Reviewed by James Robinson.
50770
50771        To ensure that the scrolling behavior of GestureScrollUpdate events are consistent with
50772        the scrolling behavior of mousewheel events, use the existing user-generated scroll logic
50773        instead of calling into RenderLayer::scrollByRecursively(). This patch fixes the bug
50774        reported in https://bugs.webkit.org/show_bug.cgi?id=109316, where the example page can
50775        be scrolled using touch but cannot be scrolled using mousewheels.
50776
50777        Note that this patch does not use any of the mousewheel event-handling code.
50778
50779        Tests: fast/events/touch/gesture/touch-gesture-noscroll-body-propagated.html
50780               fast/events/touch/gesture/touch-gesture-noscroll-body-xhidden.html
50781               fast/events/touch/gesture/touch-gesture-noscroll-body-yhidden.html
50782               fast/events/touch/gesture/touch-gesture-noscroll-body.html
50783
50784        * page/EventHandler.cpp:
50785        (WebCore::EventHandler::clear):
50786        (WebCore::EventHandler::handleGestureEvent):
50787        (WebCore::EventHandler::handleGestureScrollBegin):
50788        (WebCore::EventHandler::handleGestureScrollUpdate):
50789        (WebCore::EventHandler::sendScrollEventToView):
50790            By calling this function at the start of handleGestureScrollUpdate() in the case
50791            where |m_scrollGestureHandlingNode| is null, we ensure that the scroll updates
50792            can still scroll the page itself, if possible.
50793        (WebCore):
50794        (WebCore::EventHandler::clearGestureScrollNodes):
50795        * page/EventHandler.h:
50796        (EventHandler):
50797        * platform/PlatformWheelEvent.h:
50798        (WebCore::PlatformWheelEvent::setHasPreciseScrollingDeltas):
50799
508002013-03-01  Alec Flett  <alecflett@chromium.org>
50801
50802        IndexedDB: Avoid ScriptValue copies in IDBAny
50803        https://bugs.webkit.org/show_bug.cgi?id=111002
50804
50805        Reviewed by Adam Barth.
50806
50807        This avoids some v8 handle thrashing in the long term,
50808        and protects us against some crashes in the short term.
50809
50810        The crashes will be fixed in 
50811        https://bugs.webkit.org/show_bug.cgi?id=110206.
50812
50813        * Modules/indexeddb/IDBAny.cpp:
50814        (WebCore::IDBAny::createNull):
50815        (WebCore::IDBAny::createString):
50816        (WebCore::IDBAny::IDBAny):
50817        (WebCore::IDBAny::scriptValue):
50818        * Modules/indexeddb/IDBAny.h:
50819        (WebCore::IDBAny::create):
50820        (IDBAny):
50821        (WebCore::IDBAny::keyPath):
50822        * bindings/v8/custom/V8IDBAnyCustom.cpp:
50823        (WebCore::toV8):
50824        (WebCore):
50825
508262013-03-01  Victor Carbune  <vcarbune@chromium.org>
50827
50828        Support padding, margin and border for internal UA cue styling
50829        https://bugs.webkit.org/show_bug.cgi?id=110703
50830
50831        Reviewed by Eric Carlson.
50832
50833        For some particular user agent styling this allows the possibility
50834        of making the window around the cue text bigger to match some user
50835        styles (see CaptionUserPreferencesMac::captionsStyleSheetOverride).
50836
50837        These properties *cannot* be set through by using the ::cue
50838        pseudo-element and, as specified, are used only internally.
50839
50840        Note: This patch is identical to the previously commited one,
50841        as it was rolled back without related tests failing.
50842
50843        Test: media/track/track-cue-rendering-with-padding.html
50844
50845        * css/mediaControls.css:
50846        (video::-webkit-media-text-track-display): Set the CSS box model
50847        to include in the specified width or height the values of
50848        padding / margin / border by using -webkit-box-sizing and avoid
50849        overflow over 100% width because of having these properties set.
50850        * rendering/RenderTextTrackCue.cpp:
50851        (WebCore::RenderTextTrackCue::isOutside): To not interfere with
50852        the regular WebVTT positioning algorithm, the check is done for
50853        the absolute content box.
50854        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Added
50855        an extra adjustment step to accomodate vertical padding (and not
50856        overflow the cue container)
50857
508582013-03-01  Andy Estes  <aestes@apple.com>
50859
50860        REGRESSION (r125809): CFStrings created via StringImpl::createCFString()  might reference freed memory when Objective-C garbage collection is enabled
50861        https://bugs.webkit.org/show_bug.cgi?id=111219
50862
50863        Reviewed by Benjamin Poulain.
50864
50865        StringImpl::createCFString() uses CFStringCreateWithBytesNoCopy() in
50866        order to create CFString without making an unnecessary copy. In order
50867        to ensure that the the StringImpl's backing buffer isn't deallocated
50868        while the CFString is still alive, we use a custom CFAllocator to
50869        ref/deref the StringImpl at the appropriate times.
50870
50871        However, custom allocators aren't supported when Objective-C garbage
50872        collection is enabled, so in this case we use the default CF allocator.
50873        Since we can't guarantee the lifetime of the StringImpl in this case,
50874        we should just fall back to copying the string, as we did prior to r125809.
50875
50876        * platform/text/cf/StringImplCF.cpp:
50877        (garbageCollectionEnabled): Moved the check for whether garbage
50878        collection is enabled from StringWrapperCFAllocator::create() to here.
50879        (WTF::StringWrapperCFAllocator::create): Call garbageCollectionEnabled().
50880        (WTF::StringImpl::createCFString): If garbage collection is enabled,
50881        call the variants of CFStringCreate that copy the string.
50882
508832013-03-01  Roger Fong  <roger_fong@apple.com>
50884
50885        Unreviewed AppleWin build fix.
50886
50887        * platform/network/cf/ResourceHandleCFNet.cpp:
50888        (WebCore::ResourceHandle::createCFURLConnection):
50889
508902013-03-01  Martin Robinson  <mrobinson@igalia.com>
50891
50892        [GTK] Allow sharing the WebCore include list with the Chromium build
50893        https://bugs.webkit.org/show_bug.cgi?id=110241
50894
50895        Reviewed by Dirk Pranke.
50896
50897        * WebCore.gyp/WebCoreGTK.gyp: Added. A skeleton gyp file for WebCoreGTK+.
50898        * WebCore.gypi: Added shared include directories.
50899
509002013-03-01  Alexey Proskuryakov  <ap@apple.com>
50901
50902        Make in-memory blobs work in NetworkProcess
50903        https://bugs.webkit.org/show_bug.cgi?id=111132
50904
50905        Reviewed by Sam Weinig.
50906
50907        * WebCore.exp.in:
50908        * WebCore.xcodeproj/project.pbxproj:
50909        Exported functions now needed by WebKit2, and made some headers Private instead
50910        of Project.
50911
509122013-03-01  Eric Seidel  <eric@webkit.org>
50913
50914        Threaded HTML Parser has an extra copy of every byte from the network
50915        https://bugs.webkit.org/show_bug.cgi?id=111135
50916
50917        Reviewed by Adam Barth.
50918
50919        Every LayoutTest executes this code in threaded parsing mode.
50920
50921        * dom/DecodedDataDocumentParser.cpp:
50922        (WebCore::DecodedDataDocumentParser::appendBytes):
50923         - Pass ownership of the decoded string to the parser.
50924        (WebCore::DecodedDataDocumentParser::flush):
50925         - Same.
50926        * dom/DecodedDataDocumentParser.h:
50927        (DecodedDataDocumentParser):
50928        * dom/Document.cpp:
50929        (WebCore::Document::setContent):
50930        * dom/DocumentParser.h:
50931        (DocumentParser):
50932        * dom/RawDataDocumentParser.h:
50933        (WebCore::RawDataDocumentParser::append):
50934        * html/FTPDirectoryDocument.cpp:
50935        (FTPDirectoryDocumentParser):
50936        (WebCore::FTPDirectoryDocumentParser::append):
50937        * html/parser/HTMLDocumentParser.cpp:
50938        (WebCore::HTMLDocumentParser::append):
50939        * html/parser/HTMLDocumentParser.h:
50940        (HTMLDocumentParser):
50941        * html/parser/HTMLViewSourceParser.cpp:
50942        (WebCore::HTMLViewSourceParser::append):
50943        * html/parser/HTMLViewSourceParser.h:
50944        (HTMLViewSourceParser):
50945        * html/parser/TextDocumentParser.cpp:
50946        (WebCore::TextDocumentParser::append):
50947        * html/parser/TextDocumentParser.h:
50948        (TextDocumentParser):
50949        * loader/DocumentWriter.cpp:
50950        (WebCore::DocumentWriter::replaceDocument):
50951        * xml/parser/XMLDocumentParser.cpp:
50952        (WebCore::XMLDocumentParser::append):
50953        * xml/parser/XMLDocumentParser.h:
50954        (XMLDocumentParser):
50955        * xml/parser/XMLDocumentParserLibxml2.cpp:
50956        (WebCore::XMLDocumentParser::resumeParsing):
50957
509582013-03-01  David Hyatt  <hyatt@apple.com>
50959
50960        [New Multicolumn] Change inRenderFlowThread to follow containing block chain
50961        https://bugs.webkit.org/show_bug.cgi?id=111206
50962
50963        Reviewed by Simon Fraser.
50964
50965        This patch removes inRenderFlowThread and changes enclosingRenderFlowThread()
50966        to flowThreadContainingBlock(). flowThreadContainingBlock() now follows
50967        the containing block chain instead of the parent chain when outside of layout.
50968        (It already did the right thing when called during layout.)
50969        
50970        By removing inRenderFlowThread (which was following the parent chain), all
50971        code that is checking for flow thread containment now correctly uses the
50972        containing block chain. This allows for content to escape in-flow flow threads
50973        and do the right thing without asserting.
50974        
50975        Test: fast/multicol/positioned-outside-of-columns.html
50976
50977        * dom/WebKitNamedFlow.cpp:
50978        (WebCore::inFlowThread):
50979        (WebCore::WebKitNamedFlow::getRegionsByContent):
50980        * rendering/RenderBlock.cpp:
50981        (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
50982        (WebCore::RenderBlock::collapseAnonymousBoxChild):
50983        (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize):
50984        (WebCore::RenderBlock::computeRegionRangeForBlock):
50985        (WebCore::RenderBlock::layoutBlock):
50986        (WebCore::RenderBlock::computeOverflow):
50987        (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
50988        (WebCore::RenderBlock::computeLogicalLocationForFloat):
50989        (WebCore::RenderBlock::logicalLeftOffsetForContent):
50990        (WebCore::RenderBlock::logicalRightOffsetForContent):
50991        (WebCore::RenderBlock::hasNextPage):
50992        (WebCore::RenderBlock::applyBeforeBreak):
50993        (WebCore::RenderBlock::applyAfterBreak):
50994        (WebCore::RenderBlock::pageLogicalTopForOffset):
50995        (WebCore::RenderBlock::pageLogicalHeightForOffset):
50996        (WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
50997        (WebCore::RenderBlock::adjustForUnsplittableChild):
50998        (WebCore::RenderBlock::adjustLinePositionForPagination):
50999        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
51000        (WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage):
51001        (WebCore::RenderBlock::regionAtBlockOffset):
51002        (WebCore::RenderBlock::setStaticInlinePositionForChild):
51003        (WebCore::RenderBlock::logicalWidthChangedInRegions):
51004        (WebCore::RenderBlock::clampToStartAndEndRegions):
51005        * rendering/RenderBlock.h:
51006        (RenderBlock):
51007        * rendering/RenderBlockLineLayout.cpp:
51008        (WebCore::layoutExclusionShapeInsideInfo):
51009        (WebCore::LineLayoutState::LineLayoutState):
51010        (WebCore::LineLayoutState::flowThread):
51011        (WebCore::LineLayoutState::setFlowThread):
51012        (LineLayoutState):
51013        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
51014        (WebCore::RenderBlock::linkToEndLineIfNeeded):
51015        (WebCore::RenderBlock::layoutInlineChildren):
51016        (WebCore::RenderBlock::determineStartPosition):
51017        (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
51018        * rendering/RenderBox.cpp:
51019        (WebCore::RenderBox::clearRenderBoxRegionInfo):
51020        (WebCore::RenderBox::renderBoxRegionInfo):
51021        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
51022        (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
51023        (WebCore::RenderBox::computePositionedLogicalWidth):
51024        (WebCore::RenderBox::computePositionedLogicalHeight):
51025        * rendering/RenderDeprecatedFlexibleBox.cpp:
51026        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
51027        * rendering/RenderFlexibleBox.cpp:
51028        (WebCore::RenderFlexibleBox::layoutBlock):
51029        * rendering/RenderFlowThread.cpp:
51030        (WebCore::RenderFlowThread::objectInFlowRegion):
51031        * rendering/RenderGrid.cpp:
51032        (WebCore::RenderGrid::layoutBlock):
51033        * rendering/RenderInline.cpp:
51034        (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
51035        * rendering/RenderLayer.cpp:
51036        (WebCore::accumulateOffsetTowardsAncestor):
51037        * rendering/RenderLayerCompositor.cpp:
51038        (WebCore::RenderLayerCompositor::canBeComposited):
51039        * rendering/RenderMedia.cpp:
51040        (WebCore::RenderMedia::layout):
51041        * rendering/RenderObject.cpp:
51042        (WebCore::RenderObject::locateFlowThreadContainingBlock):
51043        (WebCore::RenderObject::containerForRepaint):
51044        (WebCore::RenderObject::willBeRemovedFromTree):
51045        (WebCore::RenderObject::removeFromRenderFlowThread):
51046        (WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
51047        * rendering/RenderObject.h:
51048        (RenderObject):
51049        (WebCore::RenderObject::flowThreadContainingBlock):
51050        * rendering/RenderRegion.cpp:
51051        (WebCore::RenderRegion::setObjectStyleInRegion):
51052        * rendering/RenderView.cpp:
51053        (WebCore::RenderView::addChild):
51054        (WebCore::RenderView::initializeLayoutState):
51055        (WebCore::RenderView::setSelection):
51056        * rendering/RenderView.h:
51057        (WebCore::RenderView::pushLayoutState):
51058        * rendering/RootInlineBox.cpp:
51059        (WebCore::RootInlineBox::containingRegion):
51060        (WebCore::RootInlineBox::setContainingRegion):
51061
510622013-02-28  Sam Weinig  <sam@webkit.org>
51063
51064        Add SPI for marking a WebView as doing things on behalf of another process
51065        https://bugs.webkit.org/show_bug.cgi?id=111125
51066
51067        Reviewed by Alexey Proskuryakov.
51068
51069        * platform/network/NetworkingContext.h:
51070        (NetworkingContext):
51071        * platform/network/cf/ResourceHandleCFNet.cpp:
51072        (WebCore::ResourceHandle::createCFURLConnection):
51073        * platform/network/mac/ResourceHandleMac.mm:
51074        (WebCore::ResourceHandle::createNSURLConnection):
51075        Set the sourceApplicationAuditData on the URL connection if available.
51076
510772013-03-01  Brent Fulgham  <bfulgham@webkit.org>
51078
51079        [Windows] Unreviewed VS2010 build fix.
51080
51081        * WebCore.vcxproj/WebCore.vcxproj: Add missing TimelineTraceEventProcessor
51082          files to the project.
51083        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
51084
510852013-03-01  Bear Travis  <betravis@adobe.com>
51086
51087        [css exclusions] setting shape-inside on a parent does not relayout child blocks' inline content
51088        https://bugs.webkit.org/show_bug.cgi?id=108128
51089
51090        Reviewed by David Hyatt.
51091
51092        Ensure that blocks lay out when their parent's shape-inside changes.
51093        ExclusionShapeInsideInfo now stores an additional flag indicating whether
51094        the shape has changed and its block's children require layout. Each block
51095        can look up the flag via LayoutState to determine whether it needs to lay
51096        out its children.
51097
51098        Test: fast/exclusions/shape-inside/shape-inside-dynamic-nested.html
51099
51100        * rendering/ExclusionShapeInfo.h:
51101        (WebCore::ExclusionShapeInfo::shapeSizeDirty): Add a method to determine
51102        if the shape has changed.
51103        (ExclusionShapeInfo):
51104        * rendering/ExclusionShapeInsideInfo.h:
51105        (WebCore::ExclusionShapeInsideInfo::setNeedsLayout): Set the flag indicating
51106        layout is necessary.
51107        (WebCore::ExclusionShapeInsideInfo::needsLayout): Retrieve the layout flag.
51108        (ExclusionShapeInsideInfo):
51109        (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Initialize
51110        the layout flag.
51111        * rendering/RenderBlock.cpp:
51112        (WebCore::exclusionInfoRequiresRelayout): Return true if the shape info should
51113        cause a relayout. Also update the needsLayout flag on the ExclusionShapeInsideInfo.
51114        (WebCore):
51115        (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize): Return a boolean
51116        indicating whether regions or exclusions updates should cause a relayout.
51117        (WebCore::RenderBlock::layoutBlock): Relayout children if the shape inside has
51118        changed.
51119        * rendering/RenderBlock.h:
51120        (RenderBlock):
51121        * rendering/RenderBlockLineLayout.cpp:
51122        (WebCore::RenderBlock::layoutExclusionShapeInsideInfo): Changing to be a
51123        class method.
51124        (WebCore::LineWidth::LineWidth): Changing to use class method.
51125        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
51126        (WebCore::constructBidiRunsForLine): Ditto.
51127        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Ditto.
51128        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
51129
511302013-03-01  Uday Kiran  <udaykiran@motorola.com>
51131
51132        getComputedStyle not implemented for -webkit-column-rule shorthand
51133        https://bugs.webkit.org/show_bug.cgi?id=111203
51134
51135        Reviewed by Alexis Menard.
51136
51137        Implement getComputedStyle for -webkit-column-rule property.
51138
51139        Test: fast/css/getComputedStyle/getComputedStyle-column-rule.html
51140
51141        * css/CSSComputedStyleDeclaration.cpp:
51142        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
51143
511442013-02-28  David Hyatt  <hyatt@apple.com>
51145
51146        REGRESSION(r144318) 1-7% perf. regression on SVG/SvgHitTesting
51147        https://bugs.webkit.org/show_bug.cgi?id=111117
51148
51149        Make sure the allocated vector has a capacity of 1, since that is
51150        far and away the most common case.
51151
51152        Reviewed by Andreas Kling.
51153
51154        * rendering/RenderFlowThread.h:
51155        (WebCore):
51156        * rendering/RenderLayer.h:
51157        (WebCore):
51158        * rendering/RenderMultiColumnSet.cpp:
51159        (WebCore::RenderMultiColumnSet::collectLayerFragments):
51160        * rendering/RenderMultiColumnSet.h:
51161        * rendering/RenderRegion.h:
51162        (WebCore):
51163        (WebCore::RenderRegion::collectLayerFragments):
51164
511652013-03-01  Enrica Casucci  <enrica@apple.com>
51166
51167        Crash at WebCore::SharedBuffer::hasPlatformData writing an image to the pasteboard.
51168        https://bugs.webkit.org/show_bug.cgi?id=111211.
51169        <rdar://problem/8772758>
51170
51171        Reviewed by Ryosuke Niwa.
51172
51173        This is a speculative fix since we don't have a solid repro case.
51174        Adding null check every time we build a SharedBuffer from an NSData
51175        we have obtained manipulating data from the pasteboard.
51176
51177        * platform/mac/PasteboardMac.mm:
51178        (WebCore::writeFileWrapperAsRTFDAttachment):
51179        (WebCore::Pasteboard::writeImage):
51180
511812013-03-01  Enrica Casucci  <enrica@apple.com>
51182
51183        Crash at WebCore::SharedBuffer::hasPlatformData during paste.
51184        https://bugs.webkit.org/show_bug.cgi?id=111207.
51185        <rdar://problem/13024528>
51186
51187        Reviewed by Ryosuke Niwa.
51188
51189        This is a speculative fix since we don't have a solid repro case.
51190        Adding null check every time we get a SharedBuffer from the pasteboard.
51191
51192        * platform/mac/PasteboardMac.mm:
51193        (WebCore::Pasteboard::plainText):
51194        (WebCore::documentFragmentWithRTF):
51195
511962013-03-01  Alexey Proskuryakov  <ap@apple.com>
51197
51198        Build fix for builds with BLOB disabled. This fixes it for me on Mac at least.
51199
51200        * platform/network/BlobRegistryImpl.cpp:
51201
512022013-03-01  peavo@outlook.com  <peavo@outlook.com>
51203
51204        [Curl] Session cookies should not be persistent.
51205        https://bugs.webkit.org/show_bug.cgi?id=111060
51206
51207        Reviewed by Brent Fulgham.
51208
51209        Curl saves both persistent cookies, and session cookies to the cookie file.
51210        The session cookies should be deleted before starting a new session.
51211
51212        * platform/network/curl/ResourceHandleManager.cpp:
51213        (WebCore::ResourceHandleManager::ResourceHandleManager): Call method to initialize cookie session.
51214        (WebCore::ResourceHandleManager::initCookieSession): Added method to initialize cookie session.
51215        * platform/network/curl/ResourceHandleManager.h: Added method to initialize cookie session.
51216
512172013-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
51218
51219        Web Inspector: Navigator should show tree element for each folder in the source path.
51220        https://bugs.webkit.org/show_bug.cgi?id=108943
51221
51222        Reviewed by Pavel Feldman.
51223
51224        NavigatorView now renders tree element for each folder in uiSourceCode uri.
51225        Merging several folders into one tree elememnt when folder has only one folder as a child is supported.
51226        ScriptsNavigator has horizontal scroll now.
51227        Projects are shown in ScriptsNavigator by their displayName. This allows us to show several root file system folders
51228        with the same name in the navigator (e.g. 'Source/WebCore/inspector' and 'LayoutTests/inspector').
51229
51230        Test: inspector/debugger/navigator-view.html: Renamed from scripts-file-selector.html
51231
51232        * English.lproj/localizedStrings.js:
51233        * inspector/front-end/NavigatorView.js:
51234        (WebInspector.NavigatorView):
51235        (WebInspector.NavigatorView.iconClassForType):
51236        (WebInspector.NavigatorView.prototype.addUISourceCode):
51237        (WebInspector.NavigatorView.prototype._getProjectNode):
51238        (WebInspector.NavigatorView.prototype._createProjectNode):
51239        (WebInspector.NavigatorView.prototype._getOrCreateProjectNode):
51240        (WebInspector.NavigatorView.prototype._getFolderNode):
51241        (WebInspector.NavigatorView.prototype._createFolderNode):
51242        (WebInspector.NavigatorView.prototype._getOrCreateFolderNode):
51243        (WebInspector.NavigatorView.prototype._getUISourceCodeParentNode):
51244        (WebInspector.NavigatorView.prototype._getOrCreateUISourceCodeParentNode):
51245        (WebInspector.NavigatorView.prototype.revealUISourceCode):
51246        (WebInspector.NavigatorView.prototype.removeUISourceCode):
51247        (WebInspector.NavigatorView.prototype.rename):
51248        (WebInspector.NavigatorView.prototype.reset):
51249        (.typeWeight):
51250        (WebInspector.NavigatorTreeOutline._treeElementsCompare):
51251        (WebInspector.BaseNavigatorTreeElement):
51252        (WebInspector.BaseNavigatorTreeElement.prototype.type):
51253        (WebInspector.NavigatorFolderTreeElement):
51254        (WebInspector.NavigatorFolderTreeElement.prototype.onpopulate):
51255        (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
51256        (WebInspector.NavigatorSourceTreeElement):
51257        (WebInspector.NavigatorTreeNode):
51258        (WebInspector.NavigatorTreeNode.prototype.treeElement):
51259        (WebInspector.NavigatorTreeNode.prototype.dispose):
51260        (WebInspector.NavigatorTreeNode.prototype.isRoot):
51261        (WebInspector.NavigatorTreeNode.prototype.hasChildren):
51262        (WebInspector.NavigatorTreeNode.prototype.populate):
51263        (WebInspector.NavigatorTreeNode.prototype.wasPopulated):
51264        (WebInspector.NavigatorTreeNode.prototype.didAddChild):
51265        (WebInspector.NavigatorTreeNode.prototype.willRemoveChild):
51266        (WebInspector.NavigatorTreeNode.prototype.isPopulated):
51267        (WebInspector.NavigatorTreeNode.prototype.isEmpty):
51268        (WebInspector.NavigatorTreeNode.prototype.child):
51269        (WebInspector.NavigatorTreeNode.prototype.children):
51270        (WebInspector.NavigatorTreeNode.prototype.appendChild):
51271        (WebInspector.NavigatorTreeNode.prototype.removeChild):
51272        (WebInspector.NavigatorTreeNode.prototype.reset):
51273        (WebInspector.NavigatorRootTreeNode):
51274        (WebInspector.NavigatorRootTreeNode.prototype.isRoot):
51275        (WebInspector.NavigatorRootTreeNode.prototype.treeElement):
51276        (WebInspector.NavigatorRootTreeNode.prototype.wasPopulated):
51277        (WebInspector.NavigatorRootTreeNode.prototype.didAddChild):
51278        (WebInspector.NavigatorRootTreeNode.prototype.willRemoveChild):
51279        (WebInspector.NavigatorUISourceCodeTreeNode):
51280        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.treeElement):
51281        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.updateTitle):
51282        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.hasChildren):
51283        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.dispose):
51284        (WebInspector.NavigatorUISourceCodeTreeNode.prototype._titleChanged):
51285        (WebInspector.NavigatorUISourceCodeTreeNode.prototype._workingCopyChanged):
51286        (WebInspector.NavigatorUISourceCodeTreeNode.prototype._workingCopyCommitted):
51287        (WebInspector.NavigatorUISourceCodeTreeNode.prototype._formattedChanged):
51288        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.reveal):
51289        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.commitHandler):
51290        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.cancelHandler):
51291        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename.afterEditing):
51292        (WebInspector.NavigatorUISourceCodeTreeNode.prototype.rename):
51293        (WebInspector.NavigatorFolderTreeNode):
51294        (WebInspector.NavigatorFolderTreeNode.prototype.treeElement):
51295        (WebInspector.NavigatorFolderTreeNode.prototype._createTreeElement):
51296        (WebInspector.NavigatorFolderTreeNode.prototype.wasPopulated):
51297        (WebInspector.NavigatorFolderTreeNode.prototype._addChildrenRecursive):
51298        (WebInspector.NavigatorFolderTreeNode.prototype._shouldMerge):
51299        (WebInspector.NavigatorFolderTreeNode.prototype.didAddChild):
51300        (WebInspector.NavigatorFolderTreeNode.prototype.willRemoveChild):
51301        * inspector/front-end/ScriptsNavigator.js:
51302        * inspector/front-end/SimpleWorkspaceProvider.js:
51303        (WebInspector.SimpleProjectDelegate.prototype.displayName):
51304        * inspector/front-end/navigatorView.css:
51305        (.navigator > ol):
51306        (.navigator .base-navigator-tree-element-title):
51307        (.navigator-tabbed-pane .navigator-container):
51308
513092013-03-01  Arvid Nilsson  <anilsson@rim.com>
51310
51311        [BlackBerry] Upstream BlackBerry::Platform::Graphics::GraphicsContext integration related changes in platform/graphics/blackberry
51312        https://bugs.webkit.org/show_bug.cgi?id=111072
51313
51314        Reviewed by Rob Buis.
51315
51316        BlackBerry PR 293208
51317
51318        This patch contains contributions from many members of the BlackBerry
51319        WebKit team:
51320
51321        Rob Buis
51322        Robin Cao
51323        Michael Carmody
51324        Max Feil
51325        Eli Fidler
51326        Antonio Gomes
51327        Jacky Jiang
51328        Mike Lattanzio
51329        Yong Li
51330        Andrew Lo
51331        Maxim Mogilnitsky
51332        Joshua Netterfield
51333        Arvid Nilsson
51334        Jakob Petsovits
51335        Konrad Piascik
51336        Jeff Rogers
51337        Artem Simonov
51338        Filip Spacek
51339        George Staikos
51340        Cosmin Truta
51341
51342        Covered by existing tests.
51343
51344        * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
51345        (WebCore::CanvasLayerWebKitThread::deleteTextures):
51346        (CanvasLayerCompositingThreadClient):
51347        (WebCore::CanvasLayerCompositingThreadClient::layerCompositingThreadDestroyed):
51348        (WebCore::CanvasLayerCompositingThreadClient::layerVisibilityChanged):
51349        (WebCore::CanvasLayerCompositingThreadClient::uploadTexturesIfNeeded):
51350        (WebCore::CanvasLayerCompositingThreadClient::clearBuffer):
51351        (WebCore):
51352        (WebCore::CanvasLayerCompositingThreadClient::CanvasLayerCompositingThreadClient):
51353        (WebCore::CanvasLayerCompositingThreadClient::drawTextures):
51354        (WebCore::CanvasLayerCompositingThreadClient::deleteTextures):
51355        (WebCore::CanvasLayerCompositingThreadClient::commitPendingTextureUploads):
51356        (WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
51357        (WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
51358        (WebCore::CanvasLayerWebKitThread::clearBuffer):
51359        * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
51360        (WebCore):
51361        (WebCore::CanvasLayerWebKitThread::create):
51362        (CanvasLayerWebKitThread):
51363        * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
51364        (WebCore::DisplayRefreshMonitor::displayLinkFired):
51365        * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
51366        (WebCore::DrawingBuffer::DrawingBuffer):
51367        (WebCore):
51368        (WebCore::DrawingBuffer::publishToPlatformLayer):
51369        (WebCore::DrawingBuffer::platformLayer):
51370        * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.cpp:
51371        (WebCore::EGLImageLayerCompositingThreadClient::~EGLImageLayerCompositingThreadClient):
51372        (WebCore::EGLImageLayerCompositingThreadClient::uploadTexturesIfNeeded):
51373        (WebCore::EGLImageLayerCompositingThreadClient::drawTextures):
51374        (WebCore::EGLImageLayerCompositingThreadClient::deleteTextures):
51375        (WebCore::EGLImageLayerCompositingThreadClient::bindContentsTexture):
51376        (WebCore::EGLImageLayerCompositingThreadClient::setTextureAccessor):
51377        * platform/graphics/blackberry/EGLImageLayerCompositingThreadClient.h:
51378        (Graphics):
51379        (EGLImageLayerCompositingThreadClient):
51380        (WebCore::EGLImageLayerCompositingThreadClient::EGLImageLayerCompositingThreadClient):
51381        * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
51382        (WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
51383        (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
51384        (WebCore::EGLImageLayerWebKitThread::updateFrontBuffer):
51385        (WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
51386        (WebCore::EGLImageLayerWebKitThread::commitPendingTextureUploads):
51387        (WebCore::EGLImageLayerWebKitThread::createTextureIfNeeded):
51388        (WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
51389        * platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
51390        (Graphics):
51391        (EGLImageLayerWebKitThread):
51392        * platform/graphics/blackberry/FloatRectBlackBerry.cpp:
51393        (WebCore::FloatRect::normalized):
51394        (WebCore):
51395        * platform/graphics/blackberry/FontCacheBlackberry.cpp: Removed.
51396        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
51397        (WebCore::GraphicsContext3D::GraphicsContext3D):
51398        (WebCore::GraphicsContext3D::paintToCanvas):
51399        (WebCore::GraphicsContext3D::getImageData):
51400        (WebCore):
51401        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
51402        (WebCore::GraphicsLayerBlackBerry::GraphicsLayerBlackBerry):
51403        (WebCore::GraphicsLayerBlackBerry::setBackgroundColor):
51404        (WebCore::GraphicsLayerBlackBerry::clearBackgroundColor):
51405        (WebCore):
51406        (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
51407        (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
51408        (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
51409        (WebCore::GraphicsLayerBlackBerry::updateLayerBackgroundColor):
51410        (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
51411        * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
51412        (GraphicsLayerBlackBerry):
51413        (WebCore::GraphicsLayerBlackBerry::notifySyncRequired):
51414        * platform/graphics/blackberry/ImageBlackBerry.cpp:
51415        (WebCore::ImageFrame::asNewNativeImage):
51416        (WebCore):
51417        (WebCore::FrameData::clear):
51418        (WebCore::BitmapImage::BitmapImage):
51419        (WebCore::BitmapImage::checkForSolidColor):
51420        (WebCore::BitmapImage::invalidatePlatformData):
51421        (WebCore::BitmapImage::draw):
51422        (WebCore::Image::drawPattern):
51423        * platform/graphics/blackberry/InstrumentedPlatformCanvas.h: Removed.
51424        * platform/graphics/blackberry/LayerCompositingThread.cpp:
51425        (WebCore::LayerCompositingThread::drawTextures):
51426        (WebCore::LayerCompositingThread::drawSurface):
51427        (WebCore::LayerCompositingThread::contentsTexture):
51428        (WebCore::LayerCompositingThread::commitPendingTextureUploads):
51429        (WebCore):
51430        * platform/graphics/blackberry/LayerCompositingThread.h:
51431        (Graphics):
51432        (LayerCompositingThread):
51433        * platform/graphics/blackberry/LayerCompositingThreadClient.h:
51434        (Graphics):
51435        (WebCore):
51436        (LayerCompositingThreadClient):
51437        (WebCore::LayerCompositingThreadClient::contentsTexture):
51438        (WebCore::LayerCompositingThreadClient::commitPendingTextureUploads):
51439        * platform/graphics/blackberry/LayerData.h:
51440        (WebCore::LayerData::LayerData):
51441        (WebCore::LayerData::contentsResolutionIndependent):
51442        (LayerData):
51443        (WebCore::LayerData::layerProgram):
51444        (WebCore::LayerData::isContainerForFixedPositionLayers):
51445        (WebCore::LayerData::isFixedToTop):
51446        (WebCore::LayerData::isFixedToLeft):
51447        (WebCore::LayerData::frameVisibleRect):
51448        (WebCore::LayerData::frameContentsSize):
51449        (WebCore::LayerData::contentsScale):
51450        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
51451        (WebCore::LayerFilterRendererAction::LayerFilterRendererAction):
51452        (WebCore::LayerFilterRenderer::initializeSharedGLObjects):
51453        (WebCore::LayerFilterRenderer::ping):
51454        (WebCore::LayerFilterRenderer::pong):
51455        (WebCore::LayerFilterRenderer::pushSnapshot):
51456        (WebCore::LayerFilterRenderer::popSnapshot):
51457        (WebCore::LayerFilterRenderer::applyActions):
51458        * platform/graphics/blackberry/LayerRenderer.cpp:
51459        (WebCore):
51460        (WebCore::LayerRenderer::LayerRenderer):
51461        (WebCore::LayerRenderer::~LayerRenderer):
51462        (WebCore::LayerRenderer::setViewport):
51463        (WebCore::LayerRenderer::compositeLayers):
51464        (WebCore::LayerRenderer::compositeBuffer):
51465        (WebCore::LayerRenderer::drawColor):
51466        (WebCore::LayerRenderer::useSurface):
51467        (WebCore::LayerRenderer::drawLayersOnSurfaces):
51468        (WebCore::glRound):
51469        (WebCore::LayerRenderer::toOpenGLWindowCoordinates):
51470        (WebCore::LayerRenderer::drawDebugBorder):
51471        (WebCore::LayerRenderer::drawHolePunchRect):
51472        (WebCore::LayerRenderer::updateLayersRecursive):
51473        (WebCore::LayerRenderer::compositeLayersRecursive):
51474        (WebCore::LayerRenderer::createProgram):
51475        (WebCore::LayerRenderer::useProgram):
51476        (WebCore::LayerRenderer::useLayerProgram):
51477        * platform/graphics/blackberry/LayerRenderer.h:
51478        (LayerRenderer):
51479        * platform/graphics/blackberry/LayerRendererSurface.cpp:
51480        (WebCore::LayerRendererSurface::ensureTexture):
51481        * platform/graphics/blackberry/LayerTile.cpp:
51482        (WebCore::LayerTile::LayerTile):
51483        (WebCore::LayerTile::setContents):
51484        (WebCore::LayerTile::updateContents):
51485        * platform/graphics/blackberry/LayerTile.h:
51486        (LayerTile):
51487        (WebCore::LayerTile::renderState):
51488        (WebCore::LayerTile::needsRender):
51489        (WebCore::LayerTile::setNeedsRender):
51490        (WebCore::LayerTile::setRenderPending):
51491        (WebCore::LayerTile::setRenderDone):
51492        * platform/graphics/blackberry/LayerTileIndex.h:
51493        * platform/graphics/blackberry/LayerTiler.cpp:
51494        (WebCore):
51495        (WebCore::defaultTileSize):
51496        (WebCore::LayerTiler::LayerTiler):
51497        (WebCore::LayerTiler::updateTextureContentsIfNeeded):
51498        (WebCore::LayerTiler::createBuffer):
51499        (WebCore::LayerTiler::willCommit):
51500        (WebCore::LayerTiler::commitPendingTextureUploads):
51501        (WebCore::LayerTiler::layerVisibilityChanged):
51502        (WebCore::LayerTiler::uploadTexturesIfNeeded):
51503        (WebCore::LayerTiler::processTextureJob):
51504        (WebCore::LayerTiler::addTileJob):
51505        (WebCore::LayerTiler::performTileJob):
51506        (WebCore::LayerTiler::drawTile):
51507        (WebCore::LayerTiler::drawTextures):
51508        (WebCore::LayerTiler::pruneTextures):
51509        (WebCore::LayerTiler::updateTileSize):
51510        (WebCore::LayerTiler::setNeedsBacking):
51511        (WebCore::LayerTiler::contentsTexture):
51512        * platform/graphics/blackberry/LayerTiler.h:
51513        (WebCore::LayerTiler::tileSize):
51514        (LayerTiler):
51515        (WebCore::LayerTiler::TextureJob::TextureJob):
51516        (WebCore::LayerTiler::TextureJob::setContents):
51517        (WebCore::LayerTiler::TextureJob::updateContents):
51518        (TextureJob):
51519        (WebCore::LayerTiler::needsRender):
51520        (WebCore::LayerTiler::removeUpdateContentsJobs):
51521        * platform/graphics/blackberry/LayerWebKitThread.cpp:
51522        (WebCore::LayerWebKitThread::LayerWebKitThread):
51523        (WebCore::LayerWebKitThread::~LayerWebKitThread):
51524        (WebCore::LayerWebKitThread::paintContents):
51525        (WebCore::LayerWebKitThread::commitPendingTextureUploads):
51526        (WebCore::LayerWebKitThread::setContents):
51527        (WebCore::LayerWebKitThread::setNeedsCommit):
51528        (WebCore::LayerWebKitThread::notifyAnimationsStarted):
51529        (WebCore::LayerWebKitThread::commitOnWebKitThread):
51530        (WebCore::LayerWebKitThread::startAnimations):
51531        (WebCore::LayerWebKitThread::updateTextureContents):
51532        (WebCore::LayerWebKitThread::commitOnCompositingThread):
51533        (WebCore::LayerWebKitThread::addSublayer):
51534        (WebCore):
51535        (WebCore::LayerWebKitThread::addOverlay):
51536        (WebCore::LayerWebKitThread::insert):
51537        (WebCore::LayerWebKitThread::removeFromSuperlayer):
51538        (WebCore::LayerWebKitThread::removeSublayerOrOverlay):
51539        (WebCore::LayerWebKitThread::remove):
51540        (WebCore::LayerWebKitThread::replaceSublayer):
51541        (WebCore::LayerWebKitThread::filtersCanBeComposited):
51542        (WebCore::LayerWebKitThread::removeAll):
51543        (WebCore::LayerWebKitThread::setSublayers):
51544        (WebCore::LayerWebKitThread::updateLayerHierarchy):
51545        (WebCore::LayerWebKitThread::setIsMask):
51546        (WebCore::LayerWebKitThread::releaseLayerResources):
51547        * platform/graphics/blackberry/LayerWebKitThread.h:
51548        (WebCore::LayerWebKitThread::insertSublayer):
51549        (LayerWebKitThread):
51550        (WebCore::LayerWebKitThread::isMask):
51551        (WebCore::LayerWebKitThread::removeAllSublayers):
51552        (WebCore::LayerWebKitThread::setFixedPosition):
51553        (WebCore::LayerWebKitThread::setIsContainerForFixedPositionLayers):
51554        (WebCore::LayerWebKitThread::setFixedToTop):
51555        (WebCore::LayerWebKitThread::setFixedToLeft):
51556        (WebCore::LayerWebKitThread::setFrameVisibleRect):
51557        (WebCore::LayerWebKitThread::setFrameContentsSize):
51558        (WebCore::LayerWebKitThread::setLayerProgram):
51559        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51560        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51561        (WebCore::MediaPlayerPrivate::play):
51562        (WebCore::MediaPlayerPrivate::supportsFullscreen):
51563        (WebCore::MediaPlayerPrivate::paintCurrentFrameInContext):
51564        (WebCore::MediaPlayerPrivate::prepareForRendering):
51565        (WebCore):
51566        (WebCore::MediaPlayerPrivate::resizeSourceDimensions):
51567        (WebCore::MediaPlayerPrivate::percentLoaded):
51568        (WebCore::MediaPlayerPrivate::updateStates):
51569        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
51570        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51571        (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51572        (WebCore::MediaPlayerPrivate::isProcessingUserGesture):
51573        (WebCore::loadBufferingImageData):
51574        (WebCore::MediaPlayerPrivate::setBuffering):
51575        (WebCore::MediaPlayerPrivate::drawBufferingAnimation):
51576        (WebCore::MediaPlayerPrivate::onConditionallyEnterFullscreen):
51577        (WebCore::MediaPlayerPrivate::onExitFullscreen):
51578        (WebCore::MediaPlayerPrivate::onCreateHolePunchRect):
51579        (WebCore::MediaPlayerPrivate::onDestroyHolePunchRect):
51580        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51581        (BlackBerry):
51582        (Platform):
51583        (Graphics):
51584        (MediaPlayerPrivate):
51585        * platform/graphics/blackberry/PluginLayerWebKitThread.cpp:
51586        (WebCore::PluginLayerWebKitThread::setPluginView):
51587        * platform/graphics/blackberry/Texture.cpp:
51588        (WebCore::Texture::Texture):
51589        (WebCore::Texture::updateContents):
51590        (WebCore::Texture::setContentsToColor):
51591        (WebCore::Texture::protect):
51592        * platform/graphics/blackberry/Texture.h:
51593        (Texture):
51594        (WebCore::Texture::textureId):
51595        (WebCore::Texture::isDirty):
51596        (WebCore::Texture::hasTexture):
51597        (WebCore::Texture::sizeInBytes):
51598        (WebCore::Texture::setTextureId):
51599        (WebCore::Texture::setSize):
51600        * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
51601        (WebCore::TextureCacheCompositingThread::allocateTextureId):
51602        (WebCore::freeTextureId):
51603        (WebCore::TextureCacheCompositingThread::collectGarbage):
51604        (WebCore::TextureCacheCompositingThread::textureSizeInBytesChanged):
51605        (WebCore):
51606        (WebCore::TextureCacheCompositingThread::textureDestroyed):
51607        (WebCore::TextureCacheCompositingThread::install):
51608        (WebCore::TextureCacheCompositingThread::resizeTexture):
51609        (WebCore::TextureCacheCompositingThread::evict):
51610        (WebCore::TextureCacheCompositingThread::prune):
51611        (WebCore::TextureCacheCompositingThread::clear):
51612        (WebCore::TextureCacheCompositingThread::textureForTiledContents):
51613        (WebCore::TextureCacheCompositingThread::updateContents):
51614        * platform/graphics/blackberry/TextureCacheCompositingThread.h:
51615        (TextureCacheCompositingThread):
51616        (WebCore::TextureCacheCompositingThread::ZombieTexture::ZombieTexture):
51617        (ZombieTexture):
51618        * platform/graphics/blackberry/skia/ImageBufferDataSkia.h: Removed.
51619        * platform/graphics/blackberry/skia/PlatformSupport.cpp: Removed.
51620        * platform/graphics/blackberry/skia/PlatformSupport.h: Removed.
51621
516222013-03-01  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
51623
51624        [Qt] Fix the Mac build with the current qtbase/dev branch
51625        https://bugs.webkit.org/show_bug.cgi?id=111190
51626
51627        Reviewed by Allan Sandfeld Jensen.
51628
51629        QMAKE_MACOSX_DEPLOYMENT_TARGET now influences
51630        __MAC_OS_X_VERSION_MIN_REQUIRED through -mmacosx-version-min after
51631        changes in qtbase to support iOS.
51632
51633        Having only WebCore defining it to 10.5 would create a mismatch of
51634        ENABLE_THREADING_LIBDISPATCH with WTF to cause undefined symbols
51635        while linking both together at the end.
51636
51637        Fix it by removing the statement which isn't needed anymore.
51638        qtbase/mkspecs/common/mac-minimum-version.conf already defines
51639        10.6 as the minimum Mac version.
51640
51641        * Target.pri:
51642
516432013-03-01  Vsevolod Vlasov  <vsevik@chromium.org>
51644
51645        Web Inspector: [Regression] Snippets renaming is broken.
51646        https://bugs.webkit.org/show_bug.cgi?id=111181
51647
51648        Reviewed by Alexander Pavlov.
51649
51650        * inspector/front-end/NavigatorView.js:
51651        * inspector/front-end/ScriptSnippetModel.js:
51652        * inspector/front-end/ScriptsPanel.js:
51653        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
51654        * inspector/front-end/UISourceCode.js:
51655        (WebInspector.UISourceCode.prototype.rename):
51656
516572013-03-01  David Hyatt  <hyatt@apple.com>
51658
51659        Fix a misspelled word in RenderObject.h. staticly -> statically.
51660
51661        Reviewed by Dean Jackson.
51662
51663        * rendering/RenderObject.h:
51664        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
51665        (WebCore::RenderObject::RenderObjectBitfields::isPositioned):
51666
516672013-03-01  David Hyatt  <hyatt@apple.com>
51668
51669        [New Multicolumn] Change flow thread containment to be a state.
51670        https://bugs.webkit.org/show_bug.cgi?id=111110
51671
51672        Change m_inRenderFlowThread from a single bit to an actual state. This
51673        will let us track whether we're inside a multicolumn (in-flow) flow thread
51674        or a named (out-of-flow) flow thread. In the former case, we're going to have
51675        to do more work to maintain this state, but for now I've kept all the logic
51676        the same just for the initial landing.
51677
51678        Reviewed by Andreas Kling.
51679
51680        * dom/NodeRenderingContext.cpp:
51681        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
51682        (WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
51683        * rendering/RenderBlock.cpp:
51684        (WebCore::RenderBlock::clone):
51685        * rendering/RenderFlowThread.cpp:
51686        (WebCore::RenderFlowThread::RenderFlowThread):
51687        * rendering/RenderInline.cpp:
51688        (WebCore::RenderInline::clone):
51689        * rendering/RenderMultiColumnFlowThread.cpp:
51690        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
51691        * rendering/RenderObject.cpp:
51692        (WebCore::RenderObject::setFlowThreadStateIncludingDescendants):
51693        (WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
51694        * rendering/RenderObject.h:
51695        (WebCore::RenderObject::setParent):
51696        (RenderObject):
51697        (WebCore::RenderObject::inRenderFlowThread):
51698        (WebCore::RenderObject::flowThreadState):
51699        (WebCore::RenderObject::setFlowThreadState):
51700        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
51701        (RenderObjectBitfields):
51702        (WebCore::RenderObject::RenderObjectBitfields::flowThreadState):
51703        (WebCore::RenderObject::RenderObjectBitfields::setFlowThreadState):
51704        * rendering/RenderView.cpp:
51705        (WebCore::RenderView::addChild):
51706        
517072013-03-01  Jessie Berlin  <jberlin@apple.com>
51708
51709        Build fix.
51710
51711        Roll out r144431 because it was a build fix for r144422, which was rolled out in r144446.
51712
51713        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
51714
517152013-03-01  David Kilzer  <ddkilzer@apple.com>
51716
51717        BUILD FIX (r144358): Add UNUSED_PARAM() macros to WebCore::Extensions3DOpenGL::drawBuffersEXT()
51718        <http://webkit.org/b/109331>
51719
51720        Fixes the following build failures:
51721
51722            Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:218:51: error: unused parameter 'n' [-Werror,-Wunused-parameter]
51723            void Extensions3DOpenGL::drawBuffersEXT(GC3Dsizei n, const GC3Denum* bufs)
51724                                                              ^
51725            Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:218:70: error: unused parameter 'bufs' [-Werror,-Wunused-parameter]
51726            void Extensions3DOpenGL::drawBuffersEXT(GC3Dsizei n, const GC3Denum* bufs)
51727                                                                                 ^
51728            2 errors generated.
51729
51730        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
51731        (WebCore::Extensions3DOpenGL::drawBuffersEXT): Add UNUSED_PARAM()
51732        macros.
51733
517342013-03-01  Dan Carney  <dcarney@google.com>
51735
51736        [v8] ScriptValue has dangerous copy semantics
51737        https://bugs.webkit.org/show_bug.cgi?id=110206
51738
51739        Reviewed by Kentaro Hara.
51740
51741        Update ScriptValue to used a SharedPersistent,
51742        making it impossible to return dead references.
51743
51744        No new tests. No change in functionality.
51745
51746        * bindings/v8/ScriptValue.cpp:
51747        (WebCore::ScriptValue::serialize):
51748        (WebCore::ScriptValue::getString):
51749        (WebCore::ScriptValue::toString):
51750        (WebCore::ScriptValue::toInspectorValue):
51751        * bindings/v8/ScriptValue.h:
51752        (WebCore::ScriptValue::ScriptValue):
51753        (WebCore::ScriptValue::operator=):
51754        (WebCore::ScriptValue::operator==):
51755        (WebCore::ScriptValue::isEqual):
51756        (WebCore::ScriptValue::isFunction):
51757        (WebCore::ScriptValue::isNull):
51758        (WebCore::ScriptValue::isUndefined):
51759        (WebCore::ScriptValue::isObject):
51760        (WebCore::ScriptValue::hasNoValue):
51761        (WebCore::ScriptValue::clear):
51762        (ScriptValue):
51763        (WebCore::ScriptValue::v8Value):
51764        (WebCore::ScriptValue::v8ValueRaw):
51765        * bindings/v8/SharedPersistent.h:
51766        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
51767        (WebCore::InjectedScriptHost::scriptValueAsNode):
51768        * bindings/v8/custom/V8MessageEventCustom.cpp:
51769        (WebCore::V8MessageEvent::dataAttrGetterCustom):
51770
517712013-03-01  Julien Chaffraix  <jchaffraix@webkit.org>
51772
51773        Add FeatureObserver for marquee and reflection
51774        https://bugs.webkit.org/show_bug.cgi?id=111118
51775
51776        Reviewed by Simon Fraser.
51777
51778        Refactoring covered by existing tests.
51779
51780        * page/FeatureObserver.h:
51781        * rendering/RenderLayer.cpp:
51782        (WebCore::RenderLayer::styleChanged):
51783        Added some instrumentation for reflection and marquee as they are both prefixed and this would help
51784        to know their popularity on the web. Marquee was split between <marquee> (HTMLMarqueeElement) and 
51785        overflow: -webkit-marquee (CSSOverflowMarquee).
51786
517872013-03-01  Alexander Pavlov  <apavlov@chromium.org>
51788
51789        Web Inspector: Introduce opaque SecurityOrigin string identifiers in the frontend
51790        https://bugs.webkit.org/show_bug.cgi?id=111165
51791
51792        Reviewed by Vsevolod Vlasov.
51793
51794        A plain string security origin value has been replaced by WebInspector.SecurityOrigin all over the code,
51795        containing a URL (which holds a stringified security origin) and an identifier (which is now used
51796        as a key in place of the stringified security origin in various maps). To avoid the ResourceTreeModel
51797        code clutter, the security origin tracking code has been extracted into a separate type,
51798        WebInspector.SecurityOriginTracker, which works as a helper on the ResourceTreeModel.
51799
51800        No new tests, as it is a refactoring.
51801
51802        * inspector/front-end/DOMStorage.js:
51803        (WebInspector.DOMStorage.storageId):
51804        (WebInspector.DOMStorage.prototype.id):
51805        (WebInspector.DOMStorage.prototype.getItems):
51806        (WebInspector.DOMStorage.prototype.setItem):
51807        (WebInspector.DOMStorage.prototype.removeItem):
51808        (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
51809        (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
51810        (WebInspector.DOMStorageModel.prototype._storageKey):
51811        * inspector/front-end/ExtensionAuditCategory.js:
51812        * inspector/front-end/FileSystemModel.js:
51813        (WebInspector.FileSystemModel.prototype._reset):
51814        (WebInspector.FileSystemModel.prototype._securityOriginAdded):
51815        (WebInspector.FileSystemModel.prototype._securityOriginRemoved):
51816        (WebInspector.FileSystemModel.prototype._addOrigin):
51817        (WebInspector.FileSystemModel.prototype._removeOrigin):
51818        (WebInspector.FileSystemModel.prototype._requestFileSystemRoot):
51819        (WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
51820        (WebInspector.FileSystemModel.prototype._removeFileSystem):
51821        (WebInspector.FileSystemModel.FileSystem.prototype.get name):
51822        * inspector/front-end/IndexedDBModel.js:
51823        (WebInspector.IndexedDBModel.prototype._reset):
51824        (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
51825        (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
51826        (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
51827        (WebInspector.IndexedDBModel.prototype._addOrigin):
51828        (WebInspector.IndexedDBModel.prototype._removeOrigin):
51829        (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
51830        (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
51831        (WebInspector.IndexedDBModel.prototype._loadDatabase):
51832        (WebInspector.IndexedDBModel.prototype.):
51833        (WebInspector.IndexedDBModel.prototype._requestData):
51834        (WebInspector.IndexedDBModel.DatabaseId.prototype.equals):
51835        * inspector/front-end/IndexedDBViews.js:
51836        (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
51837        * inspector/front-end/ResourceTreeModel.js:
51838        (WebInspector.ResourceTreeModel.prototype._addFrame):
51839        (WebInspector.ResourceTreeModel.prototype.securityOriginForId):
51840        (WebInspector.ResourceTreeModel.prototype.securityOrigins):
51841        (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached):
51842        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
51843        (WebInspector.ResourceTreeModel.prototype._frameDetached):
51844        (WebInspector.ResourceTreeModel.SecurityOriginTracker):
51845        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._addSecurityOrigin):
51846        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._removeSecurityOrigin):
51847        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._bindSecurityOrigin):
51848        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._unbindSecurityOrigin):
51849        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._detachMainFrame):
51850        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._securityOriginForId):
51851        (WebInspector.ResourceTreeModel.SecurityOriginTracker.prototype._securityOrigins):
51852        (WebInspector.ResourceTreeFrame.prototype._navigate):
51853        (WebInspector.SecurityOrigin.prototype.id):
51854        (WebInspector.SecurityOrigin.prototype.url):
51855        (WebInspector.SecurityOrigin.prototype.uiTitle):
51856        (WebInspector.SecurityOrigin.prototype.toProtocol):
51857        * inspector/front-end/ResourcesPanel.js:
51858        (WebInspector.IDBDatabaseTreeElement):
51859        (WebInspector.IDBDatabaseTreeElement.prototype.get itemURL):
51860        (WebInspector.IDBObjectStoreTreeElement.prototype.get itemURL):
51861        (WebInspector.IDBIndexTreeElement.prototype.get itemURL):
51862        (WebInspector.DOMStorageTreeElement):
51863        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
51864        (WebInspector.FileSystemTreeElement):
51865
518662013-03-01  Eugene Klyuchnikov  <eustas@chromium.org>
51867
51868        Web Inspector: [Timeline] Show "curtains" when mouse is over CPU bar.
51869        https://bugs.webkit.org/show_bug.cgi?id=108930
51870
51871        Reviewed by Pavel Feldman.
51872
51873        This feature will help developers to focus on events
51874        that caused CPU bar.
51875
51876        * inspector/front-end/Popover.js: Added "arrowDirection" parameter.
51877        * inspector/front-end/TimelineGrid.js:
51878        (WebInspector.TimelineGrid): Added "curtains".
51879        * inspector/front-end/TimelinePanel.js:
51880        (WebInspector.TimelinePanel.prototype._mouseMove): Show/hide "curtains"
51881        when mouse is over CPU bar.
51882        * inspector/front-end/timelinePanel.css: Added "curtains" style rules.
51883
518842013-03-01  Alexander Pavlov  <apavlov@chromium.org>
51885
51886        Web Inspector: [Styles] Implement navigation to UI locations of property names/values in the source code
51887        Relanding fixed r144449.
51888        https://bugs.webkit.org/show_bug.cgi?id=105285
51889
51890        Reviewed by Vsevolod Vlasov.
51891
51892        Users can now Ctrl/Cmd-click CSS property names/values whose UI locations are found in
51893        an external stylesheet/sass/other file. Inline stylesheets are not navigable,
51894        since their start position is not detectable inside the surrounding HTML as of yet.
51895
51896        No new tests, a UI change.
51897
51898        * inspector/front-end/CSSStyleModel.js:
51899        (WebInspector.CSSRule.prototype.isSourceNavigable): Whether the rule contains reliable source code information.
51900        (WebInspector.CSSProperty.prototype.uiLocation): Returns a UILocation for the property name of value.
51901        * inspector/front-end/StylesSidebarPane.js: Add navigation code.
51902        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
51903        (WebInspector.StylePropertiesSection):
51904
519052013-03-01  Sheriff Bot  <webkit.review.bot@gmail.com>
51906
51907        Unreviewed, rolling out r144449.
51908        http://trac.webkit.org/changeset/144449
51909        https://bugs.webkit.org/show_bug.cgi?id=111175
51910
51911        Breaks style-related inspector tests (Requested by apavlov on
51912        #webkit).
51913
51914        * inspector/front-end/CSSStyleModel.js:
51915        (WebInspector.CSSRule.prototype.get isRegular):
51916        (WebInspector.CSSProperty.prototype.setDisabled):
51917        * inspector/front-end/StylesSidebarPane.js:
51918        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
51919        (WebInspector.StylePropertiesSection):
51920        (.event):
51921        (.isRevert):
51922
519232013-03-01  Alexander Pavlov  <apavlov@chromium.org>
51924
51925        Web Inspector: [Styles] Implement navigation to UI locations of property names/values in the source code
51926        https://bugs.webkit.org/show_bug.cgi?id=105285
51927
51928        Reviewed by Vsevolod Vlasov.
51929
51930        Users can now Ctrl/Cmd-click CSS property names/values whose UI locations are found in
51931        an external stylesheet/sass/other file. Inline stylesheets are not navigable,
51932        since their start position is not detectable inside the surrounding HTML as of yet.
51933
51934        No new tests, a UI change.
51935
51936        * inspector/front-end/CSSStyleModel.js:
51937        (WebInspector.CSSRule.prototype.isSourceNavigable): Whether the rule contains reliable source code information.
51938        (WebInspector.CSSProperty.prototype.uiLocation): Returns a UILocation for the property name of value.
51939        * inspector/front-end/StylesSidebarPane.js: Add navigation code.
51940        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
51941        (WebInspector.StylePropertiesSection):
51942
519432013-03-01  Sheriff Bot  <webkit.review.bot@gmail.com>
51944
51945        Unreviewed, rolling out r144443.
51946        http://trac.webkit.org/changeset/144443
51947        https://bugs.webkit.org/show_bug.cgi?id=111169
51948
51949        Caused 2 tests to crash by segv on Chromium Mac10.6 (Requested
51950        by toyoshim on #webkit).
51951
51952        * css/mediaControls.css:
51953        (video::-webkit-media-text-track-display):
51954        * rendering/RenderTextTrackCue.cpp:
51955        (WebCore::RenderTextTrackCue::isOutside):
51956        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet):
51957
519582013-03-01  Sheriff Bot  <webkit.review.bot@gmail.com>
51959
51960        Unreviewed, rolling out r144422 and r144424.
51961        http://trac.webkit.org/changeset/144422
51962        http://trac.webkit.org/changeset/144424
51963        https://bugs.webkit.org/show_bug.cgi?id=111167
51964
51965        Caused over 20 tests to fail assertion on Chromium Win port as
51966        ASSERTION FAILED: m_platformRequestUpdated (Requested by
51967        toyoshim on #webkit).
51968
51969        * CMakeLists.txt:
51970        * GNUmakefile.list.am:
51971        * Modules/mediastream/RTCPeerConnection.cpp:
51972        * Modules/notifications/Notification.cpp:
51973        * Target.pri:
51974        * WebCore.exp.in:
51975        * WebCore.gypi:
51976        * WebCore.vcproj/WebCore.vcproj:
51977        * WebCore.vcxproj/WebCore.vcxproj:
51978        * WebCore.vcxproj/WebCore.vcxproj.filters:
51979        * WebCore.xcodeproj/project.pbxproj:
51980        * bindings/ScriptControllerBase.cpp:
51981        * bindings/js/JSNodeCustom.cpp:
51982        * bindings/js/ScriptController.cpp:
51983        * bindings/js/ScriptSourceCode.h:
51984        * bindings/objc/DOM.mm:
51985        * bindings/v8/ScriptController.cpp:
51986        * bindings/v8/V8DOMWindowShell.cpp:
51987        * bindings/v8/custom/V8DOMWindowCustom.cpp:
51988        * css/CSSCrossfadeValue.h:
51989        (WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
51990        (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
51991        * css/CSSFontFaceSource.h:
51992        * css/CSSFontSelector.cpp:
51993        * css/WebKitCSSSVGDocumentValue.cpp:
51994        * css/WebKitCSSSVGDocumentValue.h:
51995        (WebCore):
51996        * dom/Clipboard.cpp:
51997        (WebCore::Clipboard::Clipboard):
51998        * dom/ContainerNode.cpp:
51999        * dom/DOMImplementation.cpp:
52000        * dom/PendingScript.h:
52001        * dom/ScriptElement.cpp:
52002        * dom/ScriptElement.h:
52003        * history/CachedFrame.cpp:
52004        * html/DOMURL.cpp:
52005        * html/HTMLAnchorElement.cpp:
52006        * html/HTMLAppletElement.cpp:
52007        * html/HTMLElement.cpp:
52008        * html/HTMLEmbedElement.cpp:
52009        * html/HTMLFrameSetElement.cpp:
52010        * html/HTMLHtmlElement.cpp:
52011        * html/HTMLImageElement.cpp:
52012        * html/HTMLObjectElement.cpp:
52013        * html/HTMLPlugInElement.cpp:
52014        * html/ImageDocument.cpp:
52015        * html/ImageInputType.cpp:
52016        * html/MediaDocument.cpp:
52017        * html/PluginDocument.cpp:
52018        * html/canvas/WebGLRenderingContext.cpp:
52019        (WebCore):
52020        * html/parser/HTMLConstructionSite.cpp:
52021        * html/parser/HTMLParserOptions.cpp:
52022        * html/parser/HTMLScriptRunner.h:
52023        * html/parser/XSSAuditor.cpp:
52024        * html/parser/XSSAuditorDelegate.cpp:
52025        * inspector/InspectorDebuggerAgent.cpp:
52026        * inspector/InspectorFileSystemAgent.cpp:
52027        * inspector/InspectorFrontendHost.cpp:
52028        * inspector/InspectorInstrumentation.h:
52029        (WebCore):
52030        * inspector/InspectorPageAgent.cpp:
52031        * inspector/NetworkResourcesData.cpp:
52032        * inspector/NetworkResourcesData.h:
52033        (WebCore):
52034        * loader/CookieJar.cpp:
52035        * loader/CrossOriginAccessControl.cpp:
52036        * loader/CrossOriginAccessControl.h:
52037        (WebCore):
52038        * loader/CrossOriginPreflightResultCache.h:
52039        * loader/DocumentThreadableLoader.h:
52040        * loader/FrameLoader.cpp:
52041        (WebCore::FrameLoader::FrameLoader):
52042        * loader/FrameLoader.h:
52043        (WebCore):
52044        (WebCore::FrameLoader::policyChecker):
52045        * loader/ImageLoader.cpp:
52046        * loader/ImageLoader.h:
52047        * loader/LinkLoader.h:
52048        * loader/MainResourceLoader.cpp:
52049        * loader/MainResourceLoader.h:
52050        * loader/MixedContentChecker.cpp:
52051        * loader/PingLoader.cpp:
52052        * loader/PolicyChecker.h:
52053        (WebCore):
52054        * loader/ProgressTracker.cpp:
52055        * loader/SubframeLoader.cpp:
52056        * loader/SubresourceLoader.cpp:
52057        * loader/TextTrackLoader.cpp:
52058        * loader/TextTrackLoader.h:
52059        * loader/ThreadableLoader.h:
52060        * loader/appcache/ApplicationCacheGroup.cpp:
52061        * loader/appcache/ApplicationCacheGroup.h:
52062        (WebCore):
52063        * loader/appcache/ApplicationCacheHost.cpp:
52064        * loader/archive/cf/LegacyWebArchive.cpp:
52065        * loader/cache/CachedFont.cpp:
52066        * loader/cache/CachedFont.h:
52067        (CachedFontClient):
52068        (WebCore::CachedFontClient::~CachedFontClient):
52069        (WebCore::CachedFontClient::expectedType):
52070        (WebCore::CachedFontClient::resourceClientType):
52071        (WebCore::CachedFontClient::fontLoaded):
52072        (WebCore):
52073        * loader/cache/CachedFontClient.h: Removed.
52074        * loader/cache/CachedImage.cpp:
52075        * loader/cache/CachedRawResource.cpp:
52076        * loader/cache/CachedRawResource.h:
52077        (WebCore):
52078        (CachedRawResourceClient):
52079        (WebCore::CachedRawResourceClient::~CachedRawResourceClient):
52080        (WebCore::CachedRawResourceClient::expectedType):
52081        (WebCore::CachedRawResourceClient::resourceClientType):
52082        (WebCore::CachedRawResourceClient::dataSent):
52083        (WebCore::CachedRawResourceClient::responseReceived):
52084        (WebCore::CachedRawResourceClient::dataReceived):
52085        (WebCore::CachedRawResourceClient::redirectReceived):
52086        (WebCore::CachedRawResourceClient::dataDownloaded):
52087        * loader/cache/CachedRawResourceClient.h: Removed.
52088        * loader/cache/CachedResource.cpp:
52089        * loader/cache/CachedResourceHandle.cpp:
52090        * loader/cache/CachedResourceHandle.h:
52091        (WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
52092        (WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
52093        * loader/cache/CachedSVGDocument.h:
52094        (CachedSVGDocumentClient):
52095        (WebCore::CachedSVGDocumentClient::~CachedSVGDocumentClient):
52096        (WebCore::CachedSVGDocumentClient::expectedType):
52097        (WebCore::CachedSVGDocumentClient::resourceClientType):
52098        (WebCore):
52099        * loader/cache/CachedSVGDocumentClient.h: Removed.
52100        * loader/cache/CachedSVGDocumentReference.cpp: Removed.
52101        * loader/cache/CachedSVGDocumentReference.h:
52102        (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
52103        (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
52104        * loader/cache/CachedStyleSheetClient.h:
52105        * loader/cache/MemoryCache.cpp:
52106        * loader/cache/MemoryCache.h:
52107        (WebCore):
52108        (MemoryCache):
52109        * loader/chromium/CachedRawResourceChromium.cpp:
52110        * loader/icon/IconController.cpp:
52111        * loader/icon/IconLoader.h:
52112        * loader/mac/ResourceLoaderMac.mm:
52113        * page/DOMWindowExtension.cpp:
52114        * page/DragController.cpp:
52115        * page/Frame.cpp:
52116        (WebCore::Frame::Frame):
52117        (WebCore::Frame::reportMemoryUsage):
52118        * page/Frame.h:
52119        (WebCore):
52120        (Frame):
52121        (WebCore::Frame::init):
52122        (WebCore::Frame::loader):
52123        * page/PerformanceNavigation.cpp:
52124        * page/PerformanceTiming.cpp:
52125        * page/PointerLockController.cpp:
52126        * page/Settings.cpp:
52127        * page/animation/CSSPropertyAnimation.cpp:
52128        * platform/chromium/PasteboardChromium.cpp:
52129        * platform/efl/ErrorsEfl.cpp:
52130        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
52131        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
52132        * platform/graphics/filters/FilterOperation.cpp:
52133        * platform/graphics/filters/FilterOperation.h:
52134        (WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
52135        (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
52136        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
52137        * platform/gtk/ErrorsGtk.cpp:
52138        * platform/gtk/PasteboardGtk.cpp:
52139        * platform/gtk/PasteboardHelper.h:
52140        * platform/mac/ClipboardMac.h:
52141        * platform/mac/ClipboardMac.mm:
52142        * platform/mac/HTMLConverter.mm:
52143        * platform/mac/PasteboardMac.mm:
52144        * platform/network/AuthenticationChallengeBase.cpp:
52145        * platform/network/cf/CookieJarCFNet.cpp:
52146        * platform/network/cf/ResourceRequestCFNet.cpp:
52147        * platform/network/mac/CookieStorageMac.mm:
52148        * platform/qt/PasteboardQt.cpp:
52149        * plugins/DOMMimeType.cpp:
52150        * plugins/PluginRequest.h: Removed.
52151        * plugins/PluginStream.h:
52152        (PluginStreamClient):
52153        (WebCore::PluginStreamClient::~PluginStreamClient):
52154        (WebCore::PluginStreamClient::streamDidFinishLoading):
52155        (WebCore):
52156        * plugins/PluginStreamClient.h: Removed.
52157        * plugins/PluginView.cpp:
52158        * plugins/PluginView.h:
52159        (WebCore):
52160        (PluginRequest):
52161        (WebCore::PluginRequest::PluginRequest):
52162        (WebCore::PluginRequest::frameLoadRequest):
52163        (WebCore::PluginRequest::notifyData):
52164        (WebCore::PluginRequest::sendNotification):
52165        (WebCore::PluginRequest::shouldAllowPopups):
52166        * rendering/HitTestResult.cpp:
52167        * rendering/InlineFlowBox.cpp:
52168        * rendering/RenderBox.cpp:
52169        * rendering/RenderEmbeddedObject.cpp:
52170        * rendering/RenderImage.cpp:
52171        * rendering/RenderImageResource.cpp:
52172        (WebCore::RenderImageResource::RenderImageResource):
52173        * rendering/RenderImageResource.h:
52174        (WebCore::RenderImageResource::image):
52175        (WebCore::RenderImageResource::errorOccurred):
52176        (WebCore::RenderImageResource::usesImageContainerSize):
52177        (WebCore::RenderImageResource::imageHasRelativeWidth):
52178        (WebCore::RenderImageResource::imageHasRelativeHeight):
52179        (WebCore::RenderImageResource::imageSize):
52180        * rendering/RenderImageResourceStyleImage.cpp:
52181        * rendering/RenderLayer.cpp:
52182        * rendering/RenderLayerBacking.cpp:
52183        * rendering/RenderLayerFilterInfo.h:
52184        * rendering/RenderListItem.cpp:
52185        * rendering/RenderListMarker.cpp:
52186        * rendering/RenderSnapshottedPlugIn.cpp:
52187        * rendering/RenderTableCol.cpp:
52188        * rendering/RenderTableRow.cpp:
52189        * rendering/RenderTableSection.cpp:
52190        * rendering/style/StyleCachedShader.h:
52191        * rendering/style/StyleCustomFilterProgram.cpp: Removed.
52192        * rendering/style/StyleCustomFilterProgram.h:
52193        (WebCore):
52194        (WebCore::StyleCustomFilterProgram::vertexShaderString):
52195        (StyleCustomFilterProgram):
52196        (WebCore::StyleCustomFilterProgram::fragmentShaderString):
52197        (WebCore::StyleCustomFilterProgram::isLoaded):
52198        (WebCore::StyleCustomFilterProgram::willHaveClients):
52199        (WebCore::StyleCustomFilterProgram::didRemoveLastClient):
52200        (WebCore::StyleCustomFilterProgram::notifyFinished):
52201        * svg/SVGFEImageElement.h:
52202        * svg/SVGFontFaceUriElement.h:
52203        (SVGFontFaceUriElement):
52204        * svg/SVGImageLoader.cpp:
52205        * svg/SVGUseElement.cpp:
52206        * svg/SVGUseElement.h:
52207        * svg/graphics/SVGImageCache.cpp:
52208        * testing/MockPagePopupDriver.cpp:
52209        * xml/XSLStyleSheet.h:
52210        * xml/XSLTProcessorLibxslt.cpp:
52211        * xml/parser/XMLDocumentParser.cpp:
52212        * xml/parser/XMLDocumentParser.h:
52213        * xml/parser/XMLDocumentParserLibxml2.cpp:
52214
522152013-03-01  Alexei Filippov  <alph@chromium.org>
52216
52217        Web Inspector: fix closure compiler warnings in ProfilesPanel
52218        https://bugs.webkit.org/show_bug.cgi?id=111163
52219
52220        Reviewed by Vsevolod Vlasov.
52221
52222        * inspector/front-end/ProfileLauncherView.js:
52223        (WebInspector.ProfileLauncherView.prototype.addProfileType):
52224        * inspector/front-end/ProfilesPanel.js:
52225
522262013-03-01  Victor Carbune  <vcarbune@chromium.org>
52227
52228        Support padding, margin and border for internal UA cue styling
52229        https://bugs.webkit.org/show_bug.cgi?id=110703
52230
52231        Reviewed by Eric Carlson.
52232
52233        For some particular user agent styling this allows the possibility
52234        of making the window around the cue text bigger to match some user
52235        styles (see CaptionUserPreferencesMac::captionsStyleSheetOverride).
52236
52237        These properties *cannot* be set through by using the ::cue
52238        pseudo-element and, as specified, are used only internally.
52239
52240        Test: media/track/track-cue-rendering-with-padding.html
52241
52242        * css/mediaControls.css:
52243        (video::-webkit-media-text-track-display): Set the CSS box model
52244        to include in the specified width or height the values of
52245        padding / margin / border by using -webkit-box-sizing and avoid
52246        overflow over 100% width because of having these properties set.
52247        * rendering/RenderTextTrackCue.cpp:
52248        (WebCore::RenderTextTrackCue::isOutside): To not interfere with
52249        the regular WebVTT positioning algorithm, the check is done for
52250        the absolute content box.
52251        (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Added
52252        an extra adjustment step to accomodate vertical padding (and not
52253        overflow the cue container)
52254
522552013-02-26  Eugene Klyuchnikov  <eustas@chromium.org>
52256
52257        Web Inspector: Save/load timeline should preserve DOMContentLoaded and Load event markers
52258        https://bugs.webkit.org/show_bug.cgi?id=110819
52259
52260        Reviewed by Pavel Feldman.
52261
52262        To create event divider TimelinePresentation model checks if record
52263        frame is main frame. With this patch check is moved to backend and
52264        result is saved in record to avoid incoherence.
52265
52266        * inspector/InspectorTimelineAgent.cpp:
52267        (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
52268        Record "isMainFrame" flag.
52269        (WebCore::InspectorTimelineAgent::didMarkLoadEvent): Ditto.
52270        * inspector/TimelineRecordFactory.cpp:
52271        (WebCore::TimelineRecordFactory::createMarkData):
52272        Added data object constructor.
52273        * inspector/TimelineRecordFactory.h: Ditto.
52274        * inspector/front-end/TimelinePresentationModel.js:
52275        (WebInspector.TimelinePresentationModel.isEventDivider):
52276        Use saved flag value instead of comparing with "current" main frame.
52277
522782013-03-01  Eugene Klyuchnikov  <eustas@chromium.org>
52279
52280        Web Inspector: [DataGrid] Columns are misaligned after rows being refreshed.
52281        https://bugs.webkit.org/show_bug.cgi?id=111077
52282
52283        Reviewed by Pavel Feldman.
52284
52285        Analysis: DataGridNode.refresh removes all cells and then recreates them.
52286        The issue is that mandatory "corner" cell is not recreated.
52287
52288        * inspector/front-end/DataGrid.js:
52289        (WebInspector.DataGridNode.prototype.refresh):
52290        Added "corner" cell restoration code.
52291
522922013-02-28  Alexander Pavlov  <apavlov@chromium.org>
52293
52294        Web Inspector: Selector's raw start position in its line is considered to be 0 when computing UILocation
52295        https://bugs.webkit.org/show_bug.cgi?id=110732
52296
52297        Reviewed by Vsevolod Vlasov.
52298
52299        Test: inspector/styles/selector-line.html
52300
52301        * inspector/ContentSearchUtils.cpp:
52302        (WebCore::ContentSearchUtils::sizetExtractor): Utility for binary search.
52303        (WebCore::ContentSearchUtils::textPositionFromOffset): Converts absolute raw text offset into line:column.
52304        (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines): Refactor.
52305        (WebCore::ContentSearchUtils::lineEndings): Factored out of getRegularExpressionMatchesByLines.
52306        (WebCore::ContentSearchUtils::buildObjectForSearchMatch): Drive-by: pass String by reference.
52307        * inspector/ContentSearchUtils.h:
52308        * inspector/Inspector.json: Use line:column for SourceRange boundaries rather than raw offsets.
52309        * inspector/InspectorStyleSheet.cpp:
52310        (ParsedStyleSheet::text): ASSERT(m_hasText).
52311        (WebCore::InspectorStyle::buildObjectForStyle): Supply the lineEndings argument.
52312        (WebCore::buildSourceRangeObject): Follow the protocol change.
52313        (WebCore::InspectorStyle::setPropertyText): Refactor.
52314        (WebCore::InspectorStyle::toggleProperty): Ditto.
52315        (WebCore::InspectorStyle::styleText): Ditto.
52316        (WebCore::InspectorStyle::populateAllProperties): Ditto.
52317        (WebCore::InspectorStyle::styleWithProperties): Convert relative property range offsets into absolute ones.
52318        (WebCore::InspectorStyle::extractSourceData): Factored out.
52319        (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Supply the lineEndings argument.
52320        (WebCore::InspectorStyleSheet::buildObjectForSelectorList): Ditto.
52321        (WebCore::InspectorStyleSheet::lineEndings): Compute line endings for ordinary stylesheets.
52322        (WebCore::InspectorStyleSheetForInlineStyle::lineEndings): Ditto for bogus inline style stylesheets.
52323        * inspector/InspectorStyleSheet.h:
52324        * inspector/front-end/AuditRules.js: Removed the byte counting for unused CSS.
52325        * inspector/front-end/CSSStyleModel.js:
52326        (WebInspector.CSSRule): Set selector rawLocation based on the selectorList range or sourceLine.
52327        (WebInspector.CSSRule.prototype._setRawLocation): Added.
52328        * inspector/front-end/SASSSourceMapping.js:
52329        (WebInspector.SASSSourceMapping.prototype._bindUISourceCode): Fix call order when binding scss sourcecodes.
52330
523312013-03-01  Benjamin Poulain  <benjamin@webkit.org>
52332
52333        Get rid of two silly static null Strings
52334        https://bugs.webkit.org/show_bug.cgi?id=111151
52335
52336        Reviewed by Eric Seidel.
52337
52338        We have a global null String through nullAtom, there is no need
52339        for local static null strings.
52340
52341        * page/Page.cpp:
52342        (WebCore::Page::groupName):
52343        * rendering/RenderListItem.cpp:
52344        (WebCore::RenderListItem::markerText):
52345
523462013-03-01  Mark Rowe  <mrowe@apple.com>
52347
52348        Build fix.
52349
52350        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Add a missing #include.
52351
523522013-03-01  Andrey Lushnikov  <lushnikov@chromium.org>
52353
52354        Web Inspector: fix code-mirror experiment to work in debug mode
52355        https://bugs.webkit.org/show_bug.cgi?id=111064
52356
52357        Reviewed by Pavel Feldman.
52358
52359        No new tests: no change in behaviour.
52360
52361        Improve importScript function to try load a script from the root
52362        directory iff its loading from the given path failed.
52363
52364        * inspector/front-end/utilities.js:
52365
523662013-03-01  Andrey Adaikin  <aandrey@chromium.org>
52367
52368        Web Inspector: [Canvas] capture a WebGL extension by it's name in lower case
52369        https://bugs.webkit.org/show_bug.cgi?id=110745
52370
52371        Reviewed by Pavel Feldman.
52372
52373        WebGL's getExtension accepts a name that is tested against an ASCII case-insensitive match.
52374        Just force lower case for extension names.
52375
52376        * inspector/InjectedScriptCanvasModuleSource.js:
52377        (.):
52378
523792013-03-01  Mike West  <mkwst@chromium.org>
52380
52381        XSSAuditor should use threadSafeMatch when relevant.
52382        https://bugs.webkit.org/show_bug.cgi?id=111099
52383
52384        Reviewed by Adam Barth.
52385
52386        Given the work on breaking parsing out into a background thread, we
52387        should compare QualifiedNames in a thread-safe manner. Rather than
52388        casting the result of QualifiedName::localName to a String, we can
52389        call out to threadSafeMatch to do the comparison.
52390
52391        This patch leaves one use of equalIgnoringNullity in
52392        XSSAuditor::findAttributeWithName. That usage seems safe, since we're
52393        creating a new string against which to compare.
52394
52395        * html/parser/XSSAuditor.cpp:
52396        (WebCore::hasName):
52397            Replace call to equalIgnoringNullity(Vector<UChar...>, String)
52398            with threadSafeMatch(String, QualifiedName).
52399
524002013-02-28  Keishi Hattori  <keishi@webkit.org>
52401
52402        Add calendar table view for the new calendar picker
52403        https://bugs.webkit.org/show_bug.cgi?id=110970
52404
52405        Reviewed by Kent Tamura.
52406
52407        The calendar table that will be used in the new calendar picker (Bug 109439).
52408
52409        No new tests. Code is not used yet.
52410
52411        * Resources/pagepopups/calendarPicker.js:
52412        (DayCell): Cell which represents one day in the calendar.
52413        (DayCell.recycleOrCreate):
52414        (DayCell.prototype._recycleBin):
52415        (DayCell.prototype.throwAway):
52416        (DayCell.prototype.setHighlighted): Sets the highlighted class on the element.
52417        (DayCell.prototype.setDisabled): Sets the disabled class on the element.
52418        (DayCell.prototype.setIsInCurrentMonth): Sets the current-month class on the element.
52419        (DayCell.prototype.setIsToday): Sets the today class on the element.
52420        (DayCell.prototype.reset): Resets the day cell to be reused.
52421        (WeekNumberCell): Cell used for the week number column.
52422        (WeekNumberCell.prototype._recycleBin):
52423        (WeekNumberCell.recycleOrCreate):
52424        (WeekNumberCell.prototype.reset):
52425        (WeekNumberCell.prototype.throwAway):
52426        (WeekNumberCell.prototype.setHighlighted): Sets the highlighted class on the element.
52427        (WeekNumberCell.prototype.setDisabled): Sets the disabled class on the element.
52428        (CalendarTableHeaderView): Header for the calendar table. Contains the column labels.
52429        (CalendarRowCell): Row containing day cells and maybe a week number cell.
52430        (CalendarRowCell.prototype._recycleBin):
52431        (CalendarRowCell.prototype.reset):
52432        (CalendarRowCell.prototype.throwAway):
52433        (CalendarTableView): A list view showing a grid of days.
52434        (CalendarTableView.prototype.rowAtScrollOffset): Returns the row number currently at the scroll offset.
52435        (CalendarTableView.prototype.scrollOffsetForRow): Returns the current scroll offset for the given row.
52436        (CalendarTableView.prototype.onClick): If the click is on a DayCell or WeekNumberCell, select the appropriate date range.
52437        (CalendarTableView.prototype.onMouseOver): If the click is on a DayCell or WeekNumberCell, highlight the appropriate date range.
52438        (CalendarTableView.prototype.onMouseOut):
52439        (CalendarTableView.prototype.prepareNewCell): Prepares a new row cell by recycling or creating a new one.
52440        (CalendarTableView.prototype.height): Returns the height of the view in pixels.
52441        (CalendarTableView.prototype.setHeight): Sets the height of the view in pixels.
52442        (CalendarTableView.prototype.scrollToMonth): Scrolls to reveal the given month.
52443        (CalendarTableView.prototype.dayAtColumnAndRow): Day at a given column and row. Column number doesn't count week number column.
52444        (CalendarTableView.prototype.columnAndRowForDay): Column and row for the given day.
52445        (CalendarTableView.prototype.updateCells): Update the position and appearance of the cell.s
52446        (CalendarTableView.prototype.prepareNewDayCell): Prepares a new day cell. The cell is registered to this._dayCells.
52447        (CalendarTableView.prototype.prepareNewWeekNumberCell): Prepares a new week number cell. The cell is registered to this._weekNumberCells.
52448        (CalendarTableView.prototype.throwAwayDayCell): The cell is unregistered from this._dayCells.
52449        (CalendarTableView.prototype.throwAwayWeekNumberCell): The cell is unregistered from this._weekNumberCells.
52450
524512013-02-28  Alexey Proskuryakov  <ap@apple.com>
52452
52453        Reduce amount of rebuilding when touching networking headers
52454        https://bugs.webkit.org/show_bug.cgi?id=111035
52455
52456        Reviewed by Eric Seidel.
52457
52458        This uses a number of common unsurprising techniques. One interesting observation
52459        is that including CachedResource related headers is very expensive. We can usually
52460        get away with their Client counterparts, and with CachedResourceHandle.
52461
52462        * page/Frame.cpp:
52463        * page/Frame.h:
52464        Don't include FrameLoader, greatly reducing include graph for most non-loader files.
52465        This required making Frame::init() non-inline - I'm not sure why it ever was.
52466
52467        * loader/FrameLoader.cpp:
52468        * loader/FrameLoader.h:
52469        Even though FrameLoader is logically on loading side of WebCore, it's included in
52470        too many places. Not including PolicyChecker.h and ResourceHandle.h was among the
52471        largest wins. As a future improvement, we should probably convert other members
52472        to OwnPtrs.
52473
52474        * css/CSSCrossfadeValue.h: Initializing CachedResourceHandle with 0 requires a
52475        definition of a class it holds, but default construction does not.
52476
52477        * loader/CrossOriginAccessControl.h: This file among others only needs ResourceHandleTypes.h,
52478        not ResourceHandle.h. This header is semi-recent, so not all include sites were updated.
52479
52480        * loader/cache/CachedFont.h:
52481        * loader/cache/CachedFontClient.h: Added.
52482        * loader/cache/CachedRawResource.h:
52483        * loader/cache/CachedRawResourceClient.h: Added.
52484        * loader/cache/CachedSVGDocument.h:
52485        * loader/cache/CachedSVGDocumentClient.h: Added.
52486        These types were defining client types in the same headers, making it impossible
52487        to avoid including networking headers through CachedResource. Moved clients into
52488        separate files.
52489
52490        * plugins/PluginStream.h:
52491        * plugins/PluginStreamClient.h: Added.
52492        Similar situation here.
52493
52494        * loader/cache/CachedResourceHandle.cpp:
52495        * loader/cache/CachedResourceHandle.h:
52496        Moved functions that need to know about CachedResource to .cpp file. This is another
52497        huge win. Added a destructor, so that CachedResource woudn't be needed in all files
52498        that include CachedResourceHandle.
52499
52500        * loader/cache/CachedSVGDocumentReference.cpp: Added.
52501        * loader/cache/CachedSVGDocumentReference.h:
52502        Moved constructor and virtual function implementations to a .cpp file - they need
52503        not inlining, and this lets us avoid including CachedSVGDocument.h in the header.
52504
52505        * platform/graphics/filters/FilterOperation.cpp:
52506        * platform/graphics/filters/FilterOperation.h:
52507        Avoid including CachedSVGDocumentReference.h. This is not such a big win now that
52508        CachedSVGDocumentReference.h itself is smaller, but FilterOperation is so clearly
52509        rendering code that it seems best to cut any ties with resources and loading.
52510        Added a virtual destrutor in .cpp file, because inline destructors in polymorphic
52511        classes are generally harmful (due to code bloat).
52512
52513        * plugins/PluginRequest.h: Added.
52514        * plugins/PluginView.h:
52515        Moved PluginRequest into a separate file, it was out of place in a view hierarchy
52516        class file.
52517
52518        * rendering/RenderImageResource.cpp:
52519        * rendering/RenderImageResource.h:
52520        Moved definitions of virtual functions to a .cpp file. Thre is no win from having
52521        them inline, and now we don't need CachedImage.h in the header.
52522
52523        * rendering/style/StyleCustomFilterProgram.cpp: Added.
52524        * rendering/style/StyleCustomFilterProgram.h:
52525        Ditto.
52526
52527        * CMakeLists.txt:
52528        * GNUmakefile.list.am:
52529        * Modules/mediastream/RTCPeerConnection.cpp:
52530        * Modules/notifications/Notification.cpp:
52531        * Target.pri:
52532        * WebCore.exp.in:
52533        * WebCore.gypi:
52534        * WebCore.vcproj/WebCore.vcproj:
52535        * WebCore.vcxproj/WebCore.vcxproj:
52536        * WebCore.vcxproj/WebCore.vcxproj.filters:
52537        * WebCore.xcodeproj/project.pbxproj:
52538        * bindings/ScriptControllerBase.cpp:
52539        * bindings/js/JSNodeCustom.cpp:
52540        * bindings/js/ScriptController.cpp:
52541        * bindings/js/ScriptSourceCode.h:
52542        * bindings/objc/DOM.mm:
52543        * bindings/v8/ScriptController.cpp:
52544        * bindings/v8/V8DOMWindowShell.cpp:
52545        * bindings/v8/custom/V8DOMWindowCustom.cpp:
52546        * css/CSSFontFaceSource.h:
52547        * css/CSSFontSelector.cpp:
52548        * css/WebKitCSSSVGDocumentValue.cpp:
52549        * css/WebKitCSSSVGDocumentValue.h:
52550        * dom/Clipboard.cpp:
52551        * dom/ContainerNode.cpp:
52552        * dom/DOMImplementation.cpp:
52553        * dom/PendingScript.h:
52554        * dom/ScriptElement.cpp:
52555        * dom/ScriptElement.h:
52556        * history/CachedFrame.cpp:
52557        * html/DOMURL.cpp:
52558        * html/HTMLAnchorElement.cpp:
52559        * html/HTMLAppletElement.cpp:
52560        * html/HTMLElement.cpp:
52561        * html/HTMLEmbedElement.cpp:
52562        * html/HTMLFrameSetElement.cpp:
52563        * html/HTMLHtmlElement.cpp:
52564        * html/HTMLImageElement.cpp:
52565        * html/HTMLObjectElement.cpp:
52566        * html/HTMLPlugInElement.cpp:
52567        * html/ImageDocument.cpp:
52568        * html/ImageInputType.cpp:
52569        * html/MediaDocument.cpp:
52570        * html/PluginDocument.cpp:
52571        * html/canvas/WebGLRenderingContext.cpp:
52572        * html/parser/HTMLConstructionSite.cpp:
52573        * html/parser/HTMLParserOptions.cpp:
52574        * html/parser/HTMLScriptRunner.h:
52575        * html/parser/XSSAuditor.cpp:
52576        * html/parser/XSSAuditorDelegate.cpp:
52577        * inspector/InspectorDebuggerAgent.cpp:
52578        * inspector/InspectorFileSystemAgent.cpp:
52579        * inspector/InspectorFrontendHost.cpp:
52580        * inspector/InspectorInstrumentation.h:
52581        * inspector/InspectorPageAgent.cpp:
52582        * inspector/NetworkResourcesData.cpp:
52583        * inspector/NetworkResourcesData.h:
52584        * loader/CookieJar.cpp:
52585        * loader/CrossOriginAccessControl.cpp:
52586        * loader/CrossOriginPreflightResultCache.h:
52587        * loader/DocumentThreadableLoader.h:
52588        * loader/ImageLoader.cpp:
52589        * loader/ImageLoader.h:
52590        * loader/LinkLoader.h:
52591        * loader/MainResourceLoader.cpp:
52592        * loader/MainResourceLoader.h:
52593        * loader/MixedContentChecker.cpp:
52594        * loader/PingLoader.cpp:
52595        * loader/PolicyChecker.h:
52596        * loader/ProgressTracker.cpp:
52597        * loader/SubframeLoader.cpp:
52598        * loader/SubresourceLoader.cpp:
52599        * loader/TextTrackLoader.cpp:
52600        * loader/TextTrackLoader.h:
52601        * loader/ThreadableLoader.h:
52602        * loader/appcache/ApplicationCacheGroup.cpp:
52603        * loader/appcache/ApplicationCacheGroup.h:
52604        * loader/appcache/ApplicationCacheHost.cpp:
52605        * loader/archive/cf/LegacyWebArchive.cpp:
52606        * loader/cache/CachedFont.cpp:
52607        * loader/cache/CachedImage.cpp:
52608        * loader/cache/CachedRawResource.cpp:
52609        * loader/cache/CachedResource.cpp:
52610        * loader/cache/CachedStyleSheetClient.h:
52611        * loader/cache/MemoryCache.cpp:
52612        * loader/cache/MemoryCache.h:
52613        * loader/chromium/CachedRawResourceChromium.cpp:
52614        * loader/icon/IconController.cpp:
52615        * loader/icon/IconLoader.h:
52616        * loader/mac/ResourceLoaderMac.mm:
52617        * page/DOMWindowExtension.cpp:
52618        * page/DragController.cpp:
52619        * page/PerformanceNavigation.cpp:
52620        * page/PerformanceTiming.cpp:
52621        * page/PointerLockController.cpp:
52622        * page/Settings.cpp:
52623        * page/animation/CSSPropertyAnimation.cpp:
52624        * platform/chromium/PasteboardChromium.cpp:
52625        * platform/efl/ErrorsEfl.cpp:
52626        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
52627        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
52628        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
52629        * platform/gtk/ErrorsGtk.cpp:
52630        * platform/gtk/PasteboardGtk.cpp:
52631        * platform/gtk/PasteboardHelper.h:
52632        * platform/mac/ClipboardMac.h:
52633        * platform/mac/ClipboardMac.mm:
52634        * platform/mac/HTMLConverter.mm:
52635        * platform/mac/PasteboardMac.mm:
52636        * platform/network/AuthenticationChallengeBase.cpp:
52637        * platform/network/cf/CookieJarCFNet.cpp:
52638        * platform/network/cf/ResourceRequestCFNet.cpp:
52639        * platform/network/mac/CookieStorageMac.mm:
52640        * platform/qt/PasteboardQt.cpp:
52641        * plugins/DOMMimeType.cpp:
52642        * plugins/PluginView.cpp:
52643        * rendering/HitTestResult.cpp:
52644        * rendering/InlineFlowBox.cpp:
52645        * rendering/RenderBox.cpp:
52646        * rendering/RenderEmbeddedObject.cpp:
52647        * rendering/RenderImage.cpp:
52648        * rendering/RenderImageResourceStyleImage.cpp:
52649        * rendering/RenderLayer.cpp:
52650        * rendering/RenderLayerBacking.cpp:
52651        * rendering/RenderLayerFilterInfo.h:
52652        * rendering/RenderListItem.cpp:
52653        * rendering/RenderListMarker.cpp:
52654        * rendering/RenderSnapshottedPlugIn.cpp:
52655        * rendering/RenderTableCol.cpp:
52656        * rendering/RenderTableRow.cpp:
52657        * rendering/RenderTableSection.cpp:
52658        * rendering/style/StyleCachedShader.h:
52659        * svg/SVGFEImageElement.h:
52660        * svg/SVGFontFaceUriElement.h:
52661        * svg/SVGImageLoader.cpp:
52662        * svg/SVGUseElement.cpp:
52663        * svg/SVGUseElement.h:
52664        * svg/graphics/SVGImageCache.cpp:
52665        * testing/MockPagePopupDriver.cpp:
52666        * xml/XSLStyleSheet.h:
52667        * xml/XSLTProcessorLibxslt.cpp:
52668        * xml/parser/XMLDocumentParser.cpp:
52669        * xml/parser/XMLDocumentParser.h:
52670        * xml/parser/XMLDocumentParserLibxml2.cpp:
52671        Many self-evident changes - removing unnecessary header includes, adding smaller
52672        more local ones that are now necessary.
52673
526742013-02-28  Koji Hara  <kojih@chromium.org>
52675
52676        [V8] Added V8CustomIndexedGetter to IDLs that correspond to existing custom indexedPropertyGetter.
52677        https://bugs.webkit.org/show_bug.cgi?id=110852
52678
52679        Reviewed by Kentaro Hara.
52680
52681        Add V8CustomIndexedGetter attribute that indicates the interface have custom implementation of a getter of indexed properties.
52682        (Also added to the wiki)
52683        https://trac.webkit.org/wiki/WebKitIDL#V8CustomIndexedGetter
52684        Add V8CustomIndexedGetter to IDLs that correspond to existing custom indexedPropertyGetter.
52685        We want to clean up CodeGeneratorV8.pm.
52686        The problem is that all implementations of indexed properties and named properties are currently delegated to custom bindings.
52687        We want to auto-generate as much code as possible.
52688        As a starting point, this commit assures a interface has [V8CustomIndexedGetter] ==> there's custom implementation of indexed getter.
52689
52690        No test. Simple refactoring.
52691
52692        * bindings/scripts/IDLAttributes.txt: Add V8CustomIndexedGetter attribute.
52693        * dom/NamedNodeMap.idl: Add V8CustomIndexedGetter attribute.
52694        * html/HTMLAppletElement.idl: Add V8CustomIndexedGetter attribute.
52695        * html/HTMLEmbedElement.idl: Add V8CustomIndexedGetter attribute.
52696        * html/HTMLFormElement.idl: Add V8CustomIndexedGetter attribute.
52697        * html/HTMLObjectElement.idl: Add V8CustomIndexedGetter attribute.
52698        * html/HTMLOptionsCollection.idl: Add V8CustomIndexedGetter attribute.
52699        * html/HTMLSelectElement.idl: Add V8CustomIndexedGetter attribute.
52700        * page/DOMWindow.idl: Add V8CustomIndexedGetter attribute.
52701        * storage/Storage.idl: Add V8CustomIndexedGetter attribute.
52702
527032013-02-28  Xingnan Wang  <xingnan.wang@intel.com>
52704
52705        Heap-use-after-free in WebCore::AudioNodeInput::updateInternalBus
52706        https://bugs.webkit.org/show_bug.cgi?id=108542
52707
52708        Replace the wrong AudioNodeOutput::bus() usage out of safe peroid,
52709        which causes this issue.
52710
52711        Reviewed by Chris Rogers.
52712
52713        * Modules/webaudio/AudioNodeInput.cpp:
52714        (WebCore::AudioNodeInput::numberOfChannels):
52715        * Modules/webaudio/AudioNodeOutput.cpp:
52716        (WebCore::AudioNodeOutput::bus):
52717
527182013-02-28  Sheriff Bot  <webkit.review.bot@gmail.com>
52719
52720        Unreviewed, rolling out r144370.
52721        http://trac.webkit.org/changeset/144370
52722        https://bugs.webkit.org/show_bug.cgi?id=111136
52723
52724        Caused 21 assertion failure at DocumentLoader.cpp(436)
52725        (Requested by toyoshim on #webkit).
52726
52727        * dom/Document.cpp:
52728        (WebCore::Document::decrementActiveParserCount):
52729        * loader/DocumentLoader.cpp:
52730        (WebCore::DocumentLoader::isLoading):
52731        (WebCore::DocumentLoader::checkLoadComplete):
52732
527332013-02-28  Li Yin  <li.yin@intel.com>
52734
52735        [chromium] Events can't be triggered on MediaStreamTrack
52736        https://bugs.webkit.org/show_bug.cgi?id=110930
52737
52738        Reviewed by Kentaro Hara.
52739
52740        Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#mediastreamtrack
52741        ended event handler should be triggered, when stop() is called.
52742
52743        No new tests because the test fast/mediastream/MediaStreamTrack.html
52744        had covered it already.
52745
52746        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
52747        (WebCore::MediaStreamCenterChromium::didStopLocalMediaStream):
52748
527492013-02-28  Ankur Taly  <ataly@google.com>
52750
52751        WebKit API for enabling DOM logging for certain worlds
52752        https://bugs.webkit.org/show_bug.cgi?id=110779
52753
52754        Reviewed by Adam Barth.
52755        
52756        Adds additional static methods to DOMWrapperWorld for managing the
52757        mapping between worldIDs and logger objects (where DOM logging messages
52758        are sent), and also defines a class (V8DOMActivityLogger) for logger
52759        objects.
52760
52761        * WebCore.gypi:
52762        * bindings/v8/DOMWrapperWorld.cpp:
52763        (WebCore):
52764        (WebCore::domActivityLoggers):
52765        (WebCore::DOMWrapperWorld::setDOMActivityLogger):
52766        (WebCore::DOMWrapperWorld::getDOMActivityLogger):
52767        * bindings/v8/DOMWrapperWorld.h:
52768        (DOMWrapperWorld):
52769        * bindings/v8/V8DOMActivityLogger.h: Added.
52770        (WebCore):
52771        (V8DOMActivityLogger):
52772        (WebCore::V8DOMActivityLogger::~V8DOMActivityLogger):
52773        (WebCore::V8DOMActivityLogger::log):
52774
527752013-02-28  Adam Barth  <abarth@webkit.org>
52776
52777        The threaded HTML parser shouldn't need to invalidate the speculation buffer on every document.write
52778        https://bugs.webkit.org/show_bug.cgi?id=111130
52779
52780        Reviewed by Eric Seidel.
52781
52782        Previously, the threaded HTML parser always invalidated its speculation
52783        buffer when it received a document.write.  That means we performed
52784        poorly on web sites that contained document.write calls early in the
52785        page.
52786
52787        This patch teaches the HTMLDocumentParser that we don't need to discard
52788        the speculation buffer in the common case of starting and ending in the
52789        DataState.
52790
52791        * html/parser/BackgroundHTMLParser.cpp:
52792        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
52793        * html/parser/HTMLDocumentParser.cpp:
52794        (WebCore::HTMLDocumentParser::checkForSpeculationFailure):
52795        (WebCore::HTMLDocumentParser::didFailSpeculation):
52796        * html/parser/HTMLDocumentParser.h:
52797        (WebCore):
52798        (ParsedChunk):
52799
528002013-02-28  Eberhard Graether  <egraether@google.com>
52801
52802        WebInspector: Switch hide element shortcut in ElementsPanel to use a selector
52803        https://bugs.webkit.org/show_bug.cgi?id=110641
52804
52805        Reviewed by Pavel Feldman.
52806
52807        This change switches the shortcut for adding visibility:hidden to an element's style
52808        to toggling a class name on the element and injecting a style rule into the element's
52809        document instead. This way it is possible to change the visibility of all child
52810        elements as well.
52811
52812        Test: inspector/elements/hide-shortcut.html
52813
52814        * inspector/front-end/CSSStyleModel.js:
52815        * inspector/front-end/ElementsTreeOutline.js:
52816        (WebInspector.ElementsTreeOutline.prototype._onkeydown):
52817        (WebInspector.ElementsTreeOutline.prototype.resolvedNode.toggleClassAndInjectStyleRule):
52818        (WebInspector.ElementsTreeOutline.prototype.):
52819        (WebInspector.ElementsTreeOutline.prototype._toggleHideShortcut):
52820
528212013-02-28  Ryuan Choi  <ryuan.choi@samsung.com>
52822
52823        [EFL] Build break with --no-web-audio and --no-video
52824        https://bugs.webkit.org/show_bug.cgi?id=111055
52825
52826        Unreviewed build fix.
52827
52828        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
52829
528302013-02-28  Xingnan Wang  <xingnan.wang@intel.com>
52831
52832        Implement the memory report on IPP FFTFrame on Web Audio
52833        https://bugs.webkit.org/show_bug.cgi?id=111039
52834
52835        Reviewed by Yury Semikhatsky.
52836
52837        Covered by existing test.
52838
52839        * platform/audio/FFTFrame.cpp:
52840        (WebCore::FFTFrame::reportMemoryUsage):
52841
528422013-02-28  Levi Weintraub  <leviw@chromium.org>
52843
52844        Stale FrameSelection in removed iframe causes crash
52845        https://bugs.webkit.org/show_bug.cgi?id=108696
52846
52847        Reviewed by Ryosuke Niwa.
52848
52849        Catching a specific issue where selectFrameElementInParentIfFullySelected in a nested
52850        iFrame that is removed can leave the outer frame's selection referencing stale nodes.
52851        Instead, in this case, we keep the frame alive long enough to check for this condition
52852        and clear our selection if we hit it.
52853
52854        Test: editing/selection/selection-in-iframe-removed-crash.html
52855
52856        * editing/FrameSelection.cpp:
52857        (WebCore::FrameSelection::setSelection):
52858
528592013-02-28  Conrad Shultz  <conrad_shultz@apple.com>
52860
52861        Need API to control page underlay color
52862        https://bugs.webkit.org/show_bug.cgi?id=110918
52863
52864        Reviewed by Simon Fraser.
52865
52866        * page/ChromeClient.h:
52867        (ChromeClient):
52868        Declare underlayColor().
52869
52870        * platform/ScrollbarTheme.h:
52871        (WebCore::ScrollbarTheme::setUpOverhangAreasLayerContents):
52872        Have setUpOverhangAreasLayerContents() take a background color parameter.
52873
52874        * platform/mac/ScrollbarThemeMac.h:
52875        (ScrollbarThemeMac):
52876        Ditto.
52877
52878        * platform/mac/ScrollbarThemeMac.mm:
52879        Include ColorMac.h.
52880        (WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
52881        Use the passed-in background color, if valid, for the overhang area layer.
52882
52883        * rendering/RenderLayerCompositor.cpp:
52884        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
52885        Get the underlay color from the chrome client and pass it into setUpOverhangAreasLayerContents().
52886
528872013-02-28  Beth Dakin  <bdakin@apple.com>
52888
52889        RelevantRepaintedObjects heuristic should ensure there is some coverage in the 
52890        bottom half of the relevant view rect
52891        https://bugs.webkit.org/show_bug.cgi?id=111124
52892        -and corresponding-
52893        <rdar://problem/12257164>
52894
52895        Reviewed by Simon Fraser.
52896
52897        We need two Regions now -- one for the top and another for the bottom. Make sure 
52898        we have at least half of our desired coverage in both.
52899        * page/Page.cpp:
52900        (WebCore::Page::resetRelevantPaintedObjectCounter):
52901        (WebCore::Page::addRelevantRepaintedObject):
52902        (WebCore::Page::reportMemoryUsage):
52903        * page/Page.h:
52904
529052013-02-28  Chris Fleizach  <cfleizach@apple.com>
52906
52907        WebSpeech: support pitch change
52908        https://bugs.webkit.org/show_bug.cgi?id=107348
52909
52910        Reviewed by Beth Dakin.
52911
52912        Implement a policy for the Mac synthesizer to convert from the utterance's pitch rate
52913        to something sensible for the platform.
52914
52915        * platform/mac/PlatformSpeechSynthesizerMac.mm:
52916        (-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
52917        (-[WebSpeechSynthesisWrapper convertPitchToNSSpeechValue:]):
52918        (-[WebSpeechSynthesisWrapper updateBasePitchForSynthesizer]):
52919        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
52920
529212013-02-28   Vineet Chaudhary  <rgf748@motorola.com>
52922
52923        Unreviewed. Bindings test results update after r144376.
52924
52925        * bindings/scripts/test/JS/JSTestObj.cpp:
52926
529272013-02-28  Roger Fong  <roger_fong@apple.com>
52928
52929        Unreviewed. AppleWin VS2010 build fix.
52930
52931        * WebCore.vcxproj/WebCore.vcxproj:
52932        * WebCore.vcxproj/WebCore.vcxproj.filters:
52933
529342013-02-28  Roger Fong  <roger_fong@apple.com>
52935
52936        Unreviewed. AppleWin Build fix.
52937
52938        * WebCore.vcproj/WebCore.vcproj:
52939
529402013-02-28  Kentaro Hara  <haraken@chromium.org>
52941
52942        [V8] Remove the world->isMainWorld() check from minorGCPrologue()
52943        https://bugs.webkit.org/show_bug.cgi?id=111114
52944
52945        Reviewed by Adam Barth.
52946
52947        A couple of weeks ago, I introduced the following check to minorGCPrologue() in r142419.
52948
52949          void minorGCPrologue() {
52950            // A minor GC can handle the main world only.
52951            DOMWrapperWorld* world = worldForEnteredContextWithoutContextCheck();
52952            if (world && world->isMainWorld()) {
52953              MinorGCWrapperVisitor visitor(isolate);
52954              v8::V8::VisitHandlesForPartialDependence(isolate, &visitor);
52955              visitor.notifyFinished();
52956            }
52957          }
52958
52959        - The check makes no sense. A GC should not care about what world we are in.
52960        There is no concept of worlds in GC.
52961
52962        - worldForEnteredContextWithoutContextCheck() returns 0 for the main world.
52963        So if a GC runs in the main world, the minor DOM GC is skipped.
52964
52965        - worldForEnteredContextWithoutContextCheck() caused a Chromium crash
52966        (https://code.google.com/p/chromium/issues/detail?id=177587)
52967
52968        We should remove the check.
52969
52970        No tests. No change in behavior.
52971
52972        * bindings/v8/DOMWrapperWorld.h:
52973        (WebCore::DOMWrapperWorld::getWorld):
52974        * bindings/v8/V8Binding.h:
52975        * bindings/v8/V8GCController.cpp:
52976        (WebCore::V8GCController::minorGCPrologue):
52977
529782013-02-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
52979
52980        Create GraphicsContext3DState to aggregate state objects
52981        https://bugs.webkit.org/show_bug.cgi?id=110817
52982
52983        Reviewed by Kenneth Russell.
52984
52985        Aggregate context state-related objects on a GraphicsContext3DState
52986        struct, in a similar fashion as GraphicsContext does. This is useful to
52987        avoid duplicated values for platform-specific initialization lists.
52988
52989        No behavior changes, thus covered by existing tests.
52990
52991        * platform/graphics/GraphicsContext3D.h:
52992        (WebCore::GraphicsContext3D::GraphicsContext3DState::GraphicsContext3DState):
52993        (GraphicsContext3DState):
52994        (GraphicsContext3D):
52995        Moved m_boundFBO, m_activeTexture and m_boundTexture0 to GraphicsContext3DState.
52996
52997        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
52998        (WebCore::GraphicsContext3D::GraphicsContext3D):
52999        (WebCore::GraphicsContext3D::reshapeFBOs):
53000        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
53001        (WebCore::GraphicsContext3D::GraphicsContext3D):
53002        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
53003        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
53004        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
53005        (WebCore::GraphicsContext3D::GraphicsContext3D):
53006        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
53007        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
53008        * platform/graphics/mac/GraphicsContext3DMac.mm:
53009        (WebCore::GraphicsContext3D::GraphicsContext3D):
53010        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
53011        (WebCore::GraphicsContext3D::reshapeFBOs):
53012        (WebCore::GraphicsContext3D::readPixels):
53013        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
53014        (WebCore::GraphicsContext3D::prepareTexture):
53015        (WebCore::GraphicsContext3D::readRenderingResults):
53016        (WebCore::GraphicsContext3D::reshape):
53017        (WebCore::GraphicsContext3D::activeTexture):
53018        (WebCore::GraphicsContext3D::bindFramebuffer):
53019        (WebCore::GraphicsContext3D::bindTexture):
53020        (WebCore::GraphicsContext3D::copyTexImage2D):
53021        (WebCore::GraphicsContext3D::copyTexSubImage2D):
53022        (WebCore::GraphicsContext3D::deleteFramebuffer):
53023        (WebCore::GraphicsContext3D::deleteTexture):
53024        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
53025        (WebCore::GraphicsContext3D::readPixels):
53026        (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
53027        (WebCore::GraphicsContext3D::reshapeFBOs):
53028        * platform/graphics/qt/GraphicsContext3DQt.cpp:
53029        (WebCore::GraphicsContext3DPrivate::createOffscreenBuffers):
53030        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
53031        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebuffer):
53032        (WebCore::GraphicsContext3D::GraphicsContext3D):
53033        Removed initialization list values not needed anymore and reassigned
53034        calls to m_boundFBO, m_boundTexture0 and m_activeTexture to m_state
53035        respectives.
53036        
530372013-02-28  David Hyatt  <hyatt@apple.com>
53038
53039        Unreviewed build fix. A merge error led to a duplication of a single line.
53040        Just removing the duplicate line.
53041
53042        * rendering/RenderLayer.cpp:
53043        (WebCore::RenderLayer::createLocalTransformState):
53044
530452013-02-28  Kaustubh Atrawalkar  <kaustubh@motorola.com>
53046
53047        Notification.requestPermission callback should be optional
53048        https://bugs.webkit.org/show_bug.cgi?id=108196
53049
53050        Reviewed by Kentaro Hara.
53051
53052        Spec says it should be optional.
53053        http://notifications.spec.whatwg.org/#notification
53054
53055        Test: fast/notifications/notifications-request-permission-optional.html
53056
53057        * GNUmakefile.list.am:
53058        * Modules/notifications/Notification.h:
53059        (Notification):
53060        * Modules/notifications/Notification.idl:
53061        * Modules/notifications/NotificationCenter.cpp:
53062        (WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
53063        * Modules/notifications/NotificationCenter.h:
53064        (NotificationCenter):
53065        * Modules/notifications/NotificationCenter.idl:
53066        * Target.pri:
53067        * UseJSC.cmake:
53068        * UseV8.cmake:
53069        * WebCore.gypi:
53070        * WebCore.vcproj/WebCore.vcproj:
53071        * WebCore.vcxproj/WebCore.vcxproj:
53072        * WebCore.vcxproj/WebCore.vcxproj.filters:
53073        * WebCore.xcodeproj/project.pbxproj:
53074        * bindings/js/JSBindingsAllInOne.cpp:
53075        * bindings/js/JSDesktopNotificationsCustom.cpp: Removed.
53076        * bindings/js/JSNotificationCustom.cpp: Removed.
53077        * bindings/scripts/CodeGeneratorJS.pm:
53078        (GenerateParametersCheck):
53079        * bindings/v8/custom/V8NotificationCenterCustom.cpp: Removed.
53080        * bindings/v8/custom/V8NotificationCustom.cpp: Removed.
53081
530822013-02-28  Ben Wagner  <bungeman@chromium.org>
53083
53084        Underline should round to match other content.
53085        https://bugs.webkit.org/show_bug.cgi?id=111005
53086
53087        Reviewed by Stephen White.
53088
53089        Test: fast/text/decorations-with-text-combine.html
53090
53091        * platform/graphics/skia/GraphicsContextSkia.cpp:
53092        (WebCore::GraphicsContext::drawLineForText):
53093        Round (instead of floor) underlines to match other content.
53094
530952013-02-28  Eric Carlson  <eric.carlson@apple.com>
53096
53097        Refine Ryosuke's r144367 fix.
53098
53099        Rubber-stamped by Ryosuke Niwa.
53100
53101        * page/PageGroup.cpp:
53102        (WebCore::PageGroup::captionPreferences):
53103
531042013-02-28  Eric Seidel  <eric@webkit.org>
53105
53106        Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()->activeDocumentLoader()
53107        https://bugs.webkit.org/show_bug.cgi?id=110937
53108
53109        Reviewed by Adam Barth.
53110
53111        Remove the #ifdef guards added to work around this ASSERT.
53112        This was fixed by https://bugs.webkit.org/show_bug.cgi?id=110951
53113        as now DocumentLoader::checkLoadComplete() will ignore the call
53114        if the DocumentLoader is not the active document loader for the Document.
53115
53116        * dom/Document.cpp:
53117        (WebCore::Document::decrementActiveParserCount):
53118        * loader/DocumentLoader.cpp:
53119        (WebCore::DocumentLoader::isLoading):
53120        (WebCore::DocumentLoader::checkLoadComplete):
53121
531222013-02-28  Ryosuke Niwa  <rniwa@webkit.org>
53123
53124        Revert an erroneous change in r144336.
53125
53126        Rubber-stamped by Eric Carlson.
53127
53128        * page/PageGroup.cpp:
53129        (WebCore::PageGroup::captionPreferences):
53130
531312013-02-28  David Hyatt  <hyatt@apple.com>
53132
53133        Unreviewed build fix for Windows. Make sure the new bits are unsigned and not bools.
53134
53135        * rendering/RenderBlock.h:
53136
531372013-02-28  Jochen Eisinger  <jochen@chromium.org>
53138
53139        Meta referrer isn't honored for window.open
53140        https://bugs.webkit.org/show_bug.cgi?id=111076
53141
53142        Reviewed by Adam Barth.
53143
53144        Test: http/tests/security/referrer-policy-window-open.html
53145
53146        * loader/FrameLoader.cpp:
53147        (WebCore::FrameLoader::urlSelected): loadFrameRequest() will set the correct referrer
53148        (WebCore::createWindow): This code is required for the inspector which doesn't set the referrer
53149        * page/DOMWindow.cpp:
53150        (WebCore::DOMWindow::createWindow):
53151
531522013-02-28  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
53153
53154        [texmap] Remove redundant defines on TextureMapperGL
53155        https://bugs.webkit.org/show_bug.cgi?id=111090
53156
53157        Reviewed by Antonio Gomes.
53158
53159        driverSupportsSubImage() already uses OpenGL ES defines to return
53160        correct support, thus no need for these additional defines.
53161
53162        No behavior changes, thus covered by existing tests.
53163
53164        * platform/graphics/texmap/TextureMapperGL.cpp:
53165        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
53166
531672013-02-26  Zhenyao Mo  <zmo@google.com>
53168
53169        EXT_draw_buffers needs implementation
53170        https://bugs.webkit.org/show_bug.cgi?id=109331
53171
53172        Reviewed by Kenneth Russell.
53173
53174        This patch adds support for EXT_draw_buffers for WebGL.
53175        mac OpenGL port is passing khronos WebGL conformance test with this patch. OpenGL ES port implementation isn't added in this patch.
53176        Also, it has the WebKit side support for chromium port, but pending command buffer implementation.
53177
53178        Besides the basic extension implementation, we also added drawBuffers() wrapper to work around a mac driver bug: i.e., do not enable a buffer if there is no attachment added.
53179
53180        * CMakeLists.txt:
53181        * DerivedSources.make:
53182        * DerivedSources.pri:
53183        * GNUmakefile.list.am:
53184        * Target.pri:
53185        * WebCore.gypi:
53186        * WebCore.xcodeproj/project.pbxproj:
53187        * bindings/js/JSWebGLRenderingContextCustom.cpp:
53188        (WebCore::toJS):
53189        * bindings/v8/V8Binding.h:
53190        (WebCore):
53191        (WebCore::toInt32):
53192        (WebCore::toUInt32):
53193        (WebCore::toFloat):
53194        (WebCore::toInt64):
53195        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
53196        (WebCore::toV8Object):
53197        * html/canvas/EXTDrawBuffers.cpp: Added.
53198        (WebCore):
53199        (WebCore::EXTDrawBuffers::EXTDrawBuffers):
53200        (WebCore::EXTDrawBuffers::~EXTDrawBuffers):
53201        (WebCore::EXTDrawBuffers::getName):
53202        (WebCore::EXTDrawBuffers::create):
53203        (WebCore::EXTDrawBuffers::supported):
53204        (WebCore::EXTDrawBuffers::drawBuffersEXT):
53205        * html/canvas/EXTDrawBuffers.h: Added.
53206        (WebCore):
53207        (EXTDrawBuffers):
53208        * html/canvas/EXTDrawBuffers.idl: Added.
53209        * html/canvas/WebGLExtension.h:
53210        * html/canvas/WebGLFramebuffer.cpp:
53211        (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
53212        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
53213        (WebCore::WebGLFramebuffer::drawBuffers):
53214        (WebCore):
53215        (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
53216        * html/canvas/WebGLFramebuffer.h:
53217        (WebGLFramebuffer):
53218        * html/canvas/WebGLRenderingContext.cpp:
53219        (WebCore):
53220        (WebCore::WebGLRenderingContext::initializeNewContext):
53221        (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
53222        (WebCore::WebGLRenderingContext::getExtension):
53223        (WebCore::WebGLRenderingContext::getParameter):
53224        (WebCore::WebGLRenderingContext::getSupportedExtensions):
53225        (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
53226        (WebCore::WebGLRenderingContext::getMaxDrawBuffers):
53227        (WebCore::WebGLRenderingContext::getMaxColorAttachments):
53228        * html/canvas/WebGLRenderingContext.h:
53229        (WebCore):
53230        (WebGLRenderingContext):
53231        * platform/chromium/support/Extensions3DChromium.cpp:
53232        (WebCore::Extensions3DChromium::drawBuffersEXT):
53233        (WebCore):
53234        * platform/graphics/Extensions3D.h:
53235        (Extensions3D):
53236        * platform/graphics/GraphicsContext3D.cpp:
53237        (WebCore::GraphicsContext3D::getClearBitsByAttachmentType):
53238        * platform/graphics/chromium/Extensions3DChromium.h:
53239        (Extensions3DChromium):
53240        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
53241        (WebCore::Extensions3DOpenGL::supportsExtension):
53242        (WebCore::Extensions3DOpenGL::drawBuffersEXT):
53243        (WebCore):
53244        * platform/graphics/opengl/Extensions3DOpenGL.h:
53245        (Extensions3DOpenGL):
53246        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
53247        (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
53248        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
53249        (Extensions3DOpenGLCommon):
53250        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
53251        (WebCore::Extensions3DOpenGLES::drawBuffersEXT):
53252        (WebCore):
53253        (WebCore::Extensions3DOpenGLES::supportsExtension):
53254        * platform/graphics/opengl/Extensions3DOpenGLES.h:
53255        (Extensions3DOpenGLES):
53256
532572013-02-28  Alexey Proskuryakov  <ap@apple.com>
53258
53259        Create BlobRegistry through a strategy
53260        https://bugs.webkit.org/show_bug.cgi?id=111100
53261
53262        Chromium build fix.
53263
53264        * platform/network/BlobRegistry.cpp: Use destructor for chromium too.
53265
532662013-02-28  Alexey Proskuryakov  <ap@apple.com>
53267
53268        Create BlobRegistry through a strategy
53269        https://bugs.webkit.org/show_bug.cgi?id=111100
53270
53271        Reviewed by Sam Weinig.
53272
53273        * CMakeLists.txt:
53274        * GNUmakefile.list.am:
53275        * Target.pri:
53276        * WebCore.gypi:
53277        * WebCore.vcproj/WebCore.vcproj:
53278        * WebCore.vcxproj/WebCore.vcxproj:
53279        * WebCore.vcxproj/WebCore.vcxproj.filters:
53280        * WebCore.xcodeproj/project.pbxproj:
53281        Added BlobRegistry.cpp.
53282
53283        * WebCore.exp.in:
53284        * loader/LoaderStrategy.cpp:
53285        (WebCore::LoaderStrategy::createBlobRegistry):
53286        * loader/LoaderStrategy.h:
53287        Addxed a function to create BlobRegistry, with default implementation being
53288        in-process WebKit1 one.
53289
53290        * platform/network/BlobData.h: Added ENABLE(BLOB).
53291
53292        * platform/network/BlobRegistry.cpp: Added. Moved singleton to a separate file.
53293        * platform/network/BlobRegistry.h: Made destructor non-inline. Cleaned up includes.
53294
53295        * platform/network/BlobRegistryImpl.cpp:
53296        * platform/network/BlobRegistryImpl.h:
53297        Cleaned up includes, made functions that are only called through base class private.
53298        Added ENABLE(BLOB).
53299
53300        * platform/network/BlobStorageData.h: Added ENABLE(BLOB).
53301
53302        * platform/network/FormData.cpp:
53303        (WebCore::appendBlobResolved): Check blob registry type before upcasting. It's a
53304        public function, and we should not depend on high level understanding of process
53305        model to prove that the cast is safe.
53306
53307        * platform/network/ResourceHandle.cpp:
53308        * platform/network/cf/FormDataStreamCFNet.cpp:
53309        * platform/network/mac/ResourceHandleMac.mm:
53310        Cleaned up includes.
53311
533122013-02-28  Kent Tamura  <tkent@chromium.org>
53313
53314        REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
53315        https://bugs.webkit.org/show_bug.cgi?id=110974
53316
53317        Reviewed by Kentaro Hara.
53318
53319        Input elements with the multiple fields UI require flexible box
53320        layout.
53321        - If display:inline or display:inline-block is specified, we
53322          replace it with display:inline-flex.
53323        - If display:block is specified, we replace it with
53324          display:flex.
53325        - If other display value is specified, we use it as is, but it
53326          won't wrap inside an input element because we have
53327          display:inline-block for ::-webkit-calendar-pixker-indicaotor.
53328
53329        r144184 was incomplete. It avoided the wrapping issue, but it
53330        didn't make spin buttons and calendar arrows right-aligned.
53331
53332        Tests: Update fast/forms/date/date-apparance-basic.html
53333
53334        * css/html.css:
53335        (input::-webkit-calendar-picker-indicator):
53336        Add display:inline-block in orde to avoid line-wrapping.
53337        * html/HTMLInputElement.cpp:
53338        (WebCore::HTMLInputElement::customStyleForRenderer):
53339        Move the code to BaseMultipleFieldsDateAndTimeInputType::customStyleForRenderer.
53340        * html/InputType.cpp:
53341        (WebCore::InputType::customStyleForRenderer): Added.
53342        * html/InputType.h:
53343        (InputType): Add customStyleForRenderer, and remove
53344        shouldApplyLocaleDirection.
53345        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
53346        (WebCore::BaseMultipleFieldsDateAndTimeInputType::customStyleForRenderer):
53347        Moved the code from HTMLInputElement::customStyleForRenderer, and
53348        add display property updatting code.
53349        * html/BaseMultipleFieldsDateAndTimeInputType.h:
53350        (BaseMultipleFieldsDateAndTimeInputType):
53351        Add customStyleForRenderer, and remove shouldApplyLocaleDirection.
53352
533532013-02-28  Anders Carlsson  <andersca@apple.com>
53354
53355        Implement more StorageAreaProxy member functions
53356        https://bugs.webkit.org/show_bug.cgi?id=111103
53357
53358        Reviewed by Sam Weinig.
53359
53360        Export two more StorageMap symbols required by WebKit2.
53361
53362        * WebCore.exp.in:
53363
533642013-02-28  Xianzhu Wang  <wangxianzhu@chromium.org>
53365
53366        Focus ring for a child layer is incorrectly offset by ancestor composited layer's position
53367        https://bugs.webkit.org/show_bug.cgi?id=110895
53368
53369        Reviewed by Simon Fraser.
53370
53371        Test: compositing/sub-layer-focus-ring.html
53372
53373        The problem occurs in RenderBlock::addFocusRingRects() where the absolute position of a sub-layer is used to calculate the focus ring rect of the layer.
53374        Should use the relative position to the current paintContainer instead.
53375
53376        To fix the issue:
53377        - RenderLayer passes LayerPaintingInfo.rootLayer to PaintInfo.paintContainer
53378        - Let RenderObject::paintFocusRing() and RenderObject::paintOutline() take PaintInfo instead of GraphicsContext* so that the paintContainer can be passed
53379        - RenderBlock::addFocusRingRects() uses localToContainerPoint(FloatPoint(), paintContainer) instead of localToAbsolute() to calculate the focus ring rect of a sublayer.
53380
53381        * rendering/PaintInfo.h:
53382        (WebCore):
53383        (WebCore::PaintInfo::PaintInfo): Add a field paintContainer (the RenderLayerModelObject which originates the current painting)
53384        (PaintInfo):
53385        * rendering/RenderBlock.cpp:
53386        (WebCore::RenderBlock::paintObject):
53387        (WebCore::RenderBlock::paintContinuationOutlines):
53388        (WebCore::RenderBlock::addFocusRingRects): Use the added paintContainer parameter to calculate the relative offset of the child layer.
53389        * rendering/RenderLayer.cpp:
53390        (WebCore::RenderLayer::paintBackgroundForFragments): Pass LayerPaintingInfo.rootLayer to PaintInfo.paintContainer.
53391        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): Ditto.
53392        (WebCore::RenderLayer::paintOutlineForFragments): Ditto.
53393        (WebCore::RenderLayer::paintMaskForFragments): Ditto.
53394        * rendering/RenderLayer.cpp:
53395        * rendering/RenderObject.cpp:
53396        (WebCore::RenderObject::paintFocusRing): Now takes PaintInfo instead of GraphicsContext*. Pass paintInfo.paintContainer to addFocusRingRects().
53397        (WebCore::RenderObject::paintOutline): Now takes PaintInfo instead of GraphicsContext*.
53398        (WebCore::RenderObject::absoluteFocusRingQuads):
53399        * rendering/RenderObject.h:
53400        (WebCore::RenderObject::addFocusRingRects): Add paintContainer parameter.
53401
534022013-02-28  David Hyatt  <hyatt@apple.com>
53403
53404        Remove the quirk margin bits from RenderObject and put them back in RenderBlock.
53405        https://bugs.webkit.org/show_bug.cgi?id=111089
53406
53407        Reviewed by Dan Bernstein.
53408
53409        This patch removes the marginBeforeQuirk and marginAfterQuirk bits from RenderObject
53410        and puts them into RenderBlock instead. I also did some renaming and clean-up after
53411        moving them, e.g., to hasMarginBeforeQuirk and hasMarginAfterQuirk.
53412        
53413        Even though it's pretty irrelevant, I also made the code writing-mode-correct so that
53414        the correct child margin quirk is propagated across differing writing mode
53415        boundaries.
53416
53417        * rendering/RenderBlock.cpp:
53418        (WebCore::RenderBlock::MarginInfo::MarginInfo):
53419        (WebCore::RenderBlock::RenderBlock):
53420        (WebCore::RenderBlock::layoutBlock):
53421        (WebCore::RenderBlock::collapseMargins):
53422        (WebCore::RenderBlock::marginBeforeEstimateForChild):
53423        (WebCore::RenderBlock::setCollapsedBottomMargin):
53424        (WebCore::RenderBlock::handleAfterSideOfBlock):
53425        (WebCore::RenderBlock::hasMarginBeforeQuirk):
53426        (WebCore):
53427        (WebCore::RenderBlock::hasMarginAfterQuirk):
53428        * rendering/RenderBlock.h:
53429        (WebCore::RenderBlock::setHasMarginBeforeQuirk):
53430        (WebCore::RenderBlock::setHasMarginAfterQuirk):
53431        (RenderBlock):
53432        (WebCore::RenderBlock::hasMarginBeforeQuirk):
53433        (WebCore::RenderBlock::hasMarginAfterQuirk):
53434        (MarginInfo):
53435        (WebCore::RenderBlock::MarginInfo::setHasMarginBeforeQuirk):
53436        (WebCore::RenderBlock::MarginInfo::setHasMarginAfterQuirk):
53437        (WebCore::RenderBlock::MarginInfo::hasMarginBeforeQuirk):
53438        (WebCore::RenderBlock::MarginInfo::hasMarginAfterQuirk):
53439        * rendering/RenderObject.h:
53440        (RenderObject):
53441        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
53442        (RenderObjectBitfields):
53443        * rendering/style/RenderStyle.h:
53444
534452013-02-28  Sheriff Bot  <webkit.review.bot@gmail.com>
53446
53447        Unreviewed, rolling out r144126 and r144176.
53448        http://trac.webkit.org/changeset/144126
53449        http://trac.webkit.org/changeset/144176
53450        https://bugs.webkit.org/show_bug.cgi?id=111096
53451
53452        Caused fast/notifications/notifications-request-
53453        permission.html to crash (Requested by abarth on #webkit).
53454
53455        * GNUmakefile.list.am:
53456        * Modules/notifications/Notification.h:
53457        (Notification):
53458        * Modules/notifications/Notification.idl:
53459        * Target.pri:
53460        * UseJSC.cmake:
53461        * UseV8.cmake:
53462        * WebCore.gypi:
53463        * WebCore.vcproj/WebCore.vcproj:
53464        * WebCore.vcxproj/WebCore.vcxproj:
53465        * WebCore.vcxproj/WebCore.vcxproj.filters:
53466        * WebCore.xcodeproj/project.pbxproj:
53467        * bindings/js/JSNotificationCustom.cpp: Added.
53468        (WebCore):
53469        (WebCore::JSNotification::requestPermission):
53470        * bindings/scripts/CodeGeneratorJS.pm:
53471        (GenerateParametersCheck):
53472        * bindings/scripts/test/JS/JSTestObj.cpp:
53473        * bindings/v8/custom/V8NotificationCustom.cpp: Added.
53474        (WebCore):
53475        (WebCore::V8Notification::requestPermissionMethodCustom):
53476
534772013-02-28  Nate Chapin  <japhet@chromium.org>
53478
53479        Crash in CachedRawResource::responseReceived().
53480        https://bugs.webkit.org/show_bug.cgi?id=110482
53481
53482        Reviewed by Adam Barth.
53483
53484        Test: http/tests/security/XFrameOptions/x-frame-options-deny-multiple-clients.html
53485
53486        * loader/cache/CachedRawResource.cpp:
53487        (WebCore::CachedRawResource::responseReceived):
53488
534892013-02-28  Eric Carlson  <eric.carlson@apple.com>
53490
53491        [Mac] use HAVE() macro instead of version check
53492        https://bugs.webkit.org/show_bug.cgi?id=111087
53493
53494        Reviewed by Dean Jackson.
53495
53496        No new tests, covered by existing tests.
53497
53498        * page/CaptionUserPreferencesMac.h: Use HAVE(MEDIA_ACCESSIBILITY_FRAMEWORK).
53499        * page/CaptionUserPreferencesMac.mm: Ditto.
53500        (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac): Ditto.
53501        (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac): Ditto.
53502
53503        * page/PageGroup.cpp:
53504        (WebCore::PageGroup::captionPreferences): Ditto.
53505
535062013-02-28  Chris Fleizach  <cfleizach@apple.com>
53507
53508        WebSpeech: support the boundary event
53509        https://bugs.webkit.org/show_bug.cgi?id=107350
53510
53511        Reviewed by Beth Dakin.
53512
53513        Generate boundary events for speech synthesis and have them fire the appropriate events.
53514        This implements for the Mac platform, as well as simulating these events in the mock
53515        synthesizer for testing purposes.
53516
53517        Test: platform/mac/fast/speechsynthesis/speech-synthesis-boundary-events.html
53518
53519        * Modules/speech/SpeechSynthesis.cpp:
53520        (WebCore):
53521        (WebCore::SpeechSynthesis::boundaryEventOccurred):
53522        * Modules/speech/SpeechSynthesis.h:
53523        (SpeechSynthesis):
53524        * platform/PlatformSpeechSynthesizer.h:
53525        (WebCore):
53526        (PlatformSpeechSynthesizerClient):
53527        * platform/mac/PlatformSpeechSynthesizerMac.mm:
53528        (-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakWord:ofString:]):
53529        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
53530        (WebCore::PlatformSpeechSynthesizerMock::speak):
53531
535322013-02-28  David Grogan  <dgrogan@chromium.org>
53533
53534        IndexedDB: Histogram all exits from IDBBackingStore::open
53535        https://bugs.webkit.org/show_bug.cgi?id=110677
53536
53537        Reviewed by Tony Chang.
53538
53539        No tests because this only changes logging code.
53540
53541        * Modules/indexeddb/IDBBackingStore.cpp:
53542        (WebCore::IDBBackingStore::open):
53543
535442013-02-28  Aaron Colwell  <acolwell@chromium.org>
53545
53546        Factor SourceBuffer methods out of MediaSourcePrivate & WebMediaSource
53547        into SourceBufferPrivate & WebSourceBuffer respectively.
53548        https://bugs.webkit.org/show_bug.cgi?id=110798
53549
53550        Reviewed by Adam Barth, Jer Noble.
53551
53552        No new tests. No user visible behavior has changed.
53553
53554        * Modules/mediasource/MediaSource.cpp:
53555        (WebCore::MediaSource::addSourceBuffer):
53556        (WebCore::MediaSource::removeSourceBuffer):
53557        * Modules/mediasource/MediaSource.h:
53558        (MediaSource):
53559        * Modules/mediasource/SourceBuffer.cpp:
53560        (WebCore::SourceBuffer::create):
53561        (WebCore):
53562        (WebCore::SourceBuffer::SourceBuffer):
53563        (WebCore::SourceBuffer::buffered):
53564        (WebCore::SourceBuffer::setTimestampOffset):
53565        (WebCore::SourceBuffer::append):
53566        (WebCore::SourceBuffer::abort):
53567        (WebCore::SourceBuffer::removedFromMediaSource):
53568        (WebCore::SourceBuffer::isRemoved):
53569        (WebCore::SourceBuffer::isOpen):
53570        (WebCore::SourceBuffer::isEnded):
53571        * Modules/mediasource/SourceBuffer.h:
53572        (WebCore):
53573        (SourceBuffer):
53574        * Modules/mediasource/SourceBufferList.cpp:
53575        (WebCore::SourceBufferList::SourceBufferList):
53576        (WebCore::SourceBufferList::remove):
53577        (WebCore::SourceBufferList::clear):
53578        * Modules/mediasource/SourceBufferList.h:
53579        (SourceBufferList):
53580        * html/HTMLMediaElement.cpp:
53581        * platform/graphics/MediaSourcePrivate.h:
53582        (WebCore):
53583        (MediaSourcePrivate):
53584        * platform/graphics/SourceBufferPrivate.h:
53585        (WebCore):
53586        (SourceBufferPrivate): Contains methods extracted from MediaPlayerPrivate.
53587        (WebCore::SourceBufferPrivate::SourceBufferPrivate):
53588        (WebCore::SourceBufferPrivate::~SourceBufferPrivate):
53589
535902013-02-28  Joe Mason  <jmason@rim.com>
53591
53592        [BlackBerry] Handle Set-Cookie immediately even when loading is deferred
53593        https://bugs.webkit.org/show_bug.cgi?id=111083
53594
53595        Reviewed by Yong Li.
53596
53597        Internal PR: 298805
53598        Internally Reviewed By: Leo Yang
53599
53600        Handle Set-Cookie headers immediately, even if loading is being deferred, since any request
53601        created while loading is deferred should include all cookies received. (This especially
53602        affects Set-Cookie headers sent with a 401 response - often this causes an auth dialog to be
53603        opened, which defers loading, but the followup request using the credentials from the dialog
53604        needs to include the cookie.)
53605
53606        This is safe because handleSetCookieHeader only updates the cookiejar, it doesn't call back
53607        into the loader.
53608
53609        * platform/network/blackberry/NetworkJob.cpp:
53610        (WebCore::NetworkJob::notifyHeadersReceived):
53611        (WebCore::NetworkJob::handleNotifyHeaderReceived):
53612
536132013-02-28  David Grogan  <dgrogan@chromium.org>
53614
53615        IndexedDB: IO error when checking schema should destroy LevelDB directory
53616        https://bugs.webkit.org/show_bug.cgi?id=110675
53617
53618        Reviewed by Adam Barth.
53619
53620        Also some refactoring to remove IDBBackingStore's dependence on
53621        static LevelDBDatabase methods. This facilitated the unit test.
53622
53623        New unit test - IDBIOErrorTest.CleanUpTest
53624
53625        * Modules/indexeddb/IDBBackingStore.cpp:
53626        (DefaultLevelDBFactory):
53627        Wraps the previous behavior.
53628        (WebCore::IDBBackingStore::open):
53629        The default parameter provides the previous behavior, which is what
53630        non-tests want.
53631        * Modules/indexeddb/IDBBackingStore.h:
53632        * platform/leveldb/LevelDBDatabase.h:
53633
536342013-02-28  Kentaro Hara  <haraken@chromium.org>
53635
53636        Unreviewed, rolling out r144157.
53637        http://trac.webkit.org/changeset/144157
53638        https://bugs.webkit.org/show_bug.cgi?id=110794
53639
53640        It broke chromium windows build
53641
53642        * bindings/scripts/CodeGeneratorV8.pm:
53643        (GenerateNamedConstructor):
53644        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
53645        (WebCore::V8TestNamedConstructorConstructorCallback):
53646        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
53647        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
53648        (WebCore::v8HTMLImageElementConstructorMethodCustom):
53649        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
53650
536512013-02-26  David Hyatt  <hyatt@apple.com>
53652
53653        [New Multicolumn] Rewrite the painting/stacking model to be spec compliant.
53654        https://bugs.webkit.org/show_bug.cgi?id=110624.
53655
53656        Reviewed by Simon Fraser.
53657
53658        This patch implements a new painting and hit testing model for columns that is
53659        spec-compliant with Section 3.5 of the multicolumn specification, which states:
53660        
53661        "All column boxes in a multi-column element are in the same stacking context and
53662        the drawing order of their contents is as specified in CSS 2.1. Column boxes do
53663        not establish new stacking contexts."
53664        
53665        What this statement means is that you cannot paint a layer and all its stacking
53666        context descendants in a strip in each column, since some of those descendants
53667        might actually "break out" of the pagination (like fixed positioned descendants)
53668        and overlap multiple columns. In addition clips may apply across pagination
53669        boundaries, and any overlap caused by opacity has to do the right thing and
53670        treat the paginated and unpaginated components together as a single unit.
53671        
53672        The solution to this problem is to introduce the concept of a LayerFragment. Now
53673        all layers when painting or hit testing compute a fragment list, and that list
53674        is then walked in order to do painting and hit testing of layers. In the simple
53675        unpaginated case, a layer has one LayerFragment, but in the case of columns the
53676        layer may be broken up into multiple fragments representing boxes in separate
53677        columns.
53678        
53679        Much of this patch consists of refactoring all of the painting and hit testing
53680        code to operate on these fragments.
53681
53682        Test: fast/multicol/mixed-positioning-stacking-order.html.
53683
53684        * rendering/RenderFlowThread.cpp:
53685        (WebCore::RenderFlowThread::collectLayerFragments):
53686        This method is called by the RenderLayer code to fetch the layer fragments from
53687        the regions of a flow thread. The flow thread just turns around and calls into
53688        each of its regions one by one to get the fragments from each region.
53689
53690        (WebCore::RenderFlowThread::fragmentsBoundingBox):
53691        A new function that collects LayerFragments and then determines the bounding
53692        box that encloses all of the fragments.
53693
53694        * rendering/RenderFlowThread.h:
53695        Declarations of the new methods for obtaining layer fragments and bounding
53696        box information for fragments.
53697
53698        * rendering/RenderLayer.cpp:
53699        (WebCore::RenderLayer::RenderLayer):
53700        (WebCore::RenderLayer::updateLayerPositions):
53701        (WebCore::RenderLayer::updatePagination):
53702        RenderLayers now track an enclosing pagination layer. If this is set, then the layer knows it
53703        needs to check with the enclosing pagination layer's flow thread renderer to
53704        obtain layer fragments.
53705        
53706        (WebCore::transparencyClipBox):
53707        Modified to obtain a fragments bounding box so that opacity can operate correctly on
53708        column boxes.
53709
53710        (WebCore::accumulateOffsetTowardsAncestor):
53711        This method has been patched to allow for fixed positioned objects to escape
53712        in-flow RenderFlowThreads. Our in-flow RenderFlowThreads behave differently from
53713        CSS Regions flow threads in that they aren't necesssarily acting as the containing
53714        block for all of their descendants. Content is allowed to "escape" from the flow
53715        thread.
53716
53717        (WebCore::RenderLayer::collectFragments):
53718        A new method that collects fragments from the flow thread and sets up the appropriate
53719        clips and translations on each fragment.
53720
53721        (WebCore::RenderLayer::paintLayer):
53722        (WebCore::RenderLayer::paintLayerContents):
53723        (WebCore::RenderLayer::paintList):
53724        (WebCore::RenderLayer::updatePaintingInfoForFragments):
53725        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
53726        (WebCore::RenderLayer::paintBackgroundForFragments):
53727        (WebCore::RenderLayer::paintForegroundForFragments):
53728        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
53729        (WebCore::RenderLayer::paintOutlineForFragments):
53730        (WebCore::RenderLayer::paintMaskForFragments):
53731        (WebCore::RenderLayer::paintOverflowControlsForFragments):
53732        Refactoring of painting to break all individual painting steps out into methods that walk over
53733        fragment boxes. This actually had the side effect of making the main painting function,
53734        paintLayerContents, much cleaner and easier to read. :)
53735        
53736        (WebCore::RenderLayer::hitTest):
53737        (WebCore::RenderLayer::createLocalTransformState):
53738        (WebCore::RenderLayer::hitTestLayer):
53739        (WebCore::RenderLayer::hitTestContentsForFragments):
53740        (WebCore::RenderLayer::hitTestResizerInFragments):
53741        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
53742        (WebCore::RenderLayer::hitTestContents):
53743        (WebCore::RenderLayer::hitTestList):
53744        Refactoring of hit testing to break all individual hit testing steps out into methods that walk over
53745        fragment boxes.
53746        
53747        (WebCore::RenderLayer::backgroundClipRect):
53748        Modified to avoid using the clip rects cache when crossing into different pagination contexts,
53749        e.g., from unpaginated to paginated.
53750        
53751        (WebCore::RenderLayer::intersectsDamageRect):
53752        (WebCore::RenderLayer::boundingBox):
53753        Modified boundingBox to work with fragments. A new flag is used to indicate whether or not
53754        the bounds of fragments or the original unsplit box are being computed.
53755        
53756        (WebCore::RenderLayer::collectLayers):
53757        Fix layer collection so that in-flow RenderFlowThreads can still be collected, since in-flow
53758        RenderFlowThreads do not establish stacking contexts.
53759
53760        * rendering/RenderLayer.h:
53761        (WebCore::ClipRect::moveBy):
53762        Added a moveBy method that just wrap the corresponding LayoutRect method.
53763
53764        (LayerFragment):
53765        (WebCore::LayerFragment::LayerFragment):
53766        (WebCore::LayerFragment::setRects):
53767        (WebCore::LayerFragment::moveBy):
53768        (WebCore::LayerFragment::intersect):
53769        (WebCore::RenderLayer::enclosingPaginationLayer):
53770        The new LayerFragment struct. Holds clips and translation information for each fragment box.
53771
53772        (WebCore::RenderLayer::isOutOfFlowRenderFlowThread):
53773        Helper method for determining if the renderer is an out-of-flow RenderFlowThread.
53774
53775        * rendering/RenderMultiColumnBlock.cpp:
53776        (WebCore::createMultiColumnFlowThreadStyle):
53777        Change the flow thread style to no longer establish a stacking context.
53778        
53779        (WebCore::RenderMultiColumnBlock::layoutBlock):
53780        Patched to move the flow thread to a position that allows it to be untranslated in the
53781        initial column.
53782
53783        (WebCore):
53784        * rendering/RenderMultiColumnBlock.h:
53785        (RenderMultiColumnBlock):
53786        layoutBlock is subclassed to tweak the flow thread's position.
53787
53788        * rendering/RenderMultiColumnFlowThread.h:
53789        (RenderMultiColumnFlowThread):
53790        The flow thread for multi-column blocks implements collectLayerFragments to hand back LayerFragment
53791        information based off its RenderMultiColumnSets.
53792
53793        * rendering/RenderMultiColumnSet.cpp:
53794        (WebCore::RenderMultiColumnSet::paintObject):
53795        Changed to no longer paint column contents, since the layer code is just doing that now.
53796
53797        (WebCore::RenderMultiColumnSet::collectLayerFragments):
53798        The method that figures out what columns are intersected by a layer and hands back
53799        initial fragment information.
53800
53801        * rendering/RenderMultiColumnSet.h:
53802        (RenderMultiColumnSet):
53803        Declaration of collectLayerFragments.
53804        
53805        * rendering/RenderObject.cpp:
53806        (WebCore::RenderObject::container):
53807        Patch container() to allow fixed positioned objects to escape in-flow RenderFlowThreads.
53808        
53809        * rendering/RenderObject.h:
53810        (WebCore::RenderObject::isInFlowRenderFlowThread):
53811        (WebCore::RenderObject::isOutOfFlowRenderFlowThread):
53812        Methods for distinguishing between in-flow and out-of-flow RenderFlowThreads.
53813
53814        (WebCore::RenderObject::canContainFixedPositionObjects):
53815        Patch canContainFixedPositionObjects() to allow fixed positioned objects to escape
53816        in-flow RenderFlowThreads.
53817        
53818        * rendering/RenderRegion.h:
53819        (WebCore::RenderRegion::collectLayerFragments):
53820        (RenderRegion):
53821        The virtual functions on Region for fragment collection.
53822
538232013-02-28  Vivek Galatage  <vivek.vg@samsung.com>
53824
53825        Web Inspector: Adding existing key in DOMStorageItemsView leaves it inconsistent state
53826        https://bugs.webkit.org/show_bug.cgi?id=111061
53827
53828        Reviewed by Alexander Pavlov.
53829
53830        The view must be checked for all the rows with the matching keys. Only the first one would be updated
53831        with the new value while the others must be removed from the grid. Also in case there are various key/value
53832        pairs, the changed node should be selected and revealed in the grid.
53833
53834        No new tests as UI related minor change.
53835
53836        * inspector/front-end/DOMStorageItemsView.js:
53837        (WebInspector.DOMStorageItemsView.prototype._domStorageItemUpdated):
53838
538392013-02-28  Alberto Garcia  <agarcia@igalia.com>
53840
53841        [BlackBerry] User credentials is not correctly handled
53842        https://bugs.webkit.org/show_bug.cgi?id=110994
53843
53844        Reviewed by Yong Li.
53845
53846        WTF::String::utf8 no longer receives a bool, see r134173.
53847
53848        * platform/network/blackberry/CredentialBackingStore.cpp:
53849        (WebCore::CredentialBackingStore::encryptedString):
53850
538512013-02-28  Lianghui Chen  <liachen@rim.com>
53852
53853        [BlackBerry] User credentials are not correctly handled for non-browser usage
53854        https://bugs.webkit.org/show_bug.cgi?id=111032
53855
53856        Internal PR: 295181
53857        Internal reviewed by Joe Mason.
53858
53859        Reviewed by Yong Li.
53860
53861        Use encrypted password as binary data when calling SQLiteStatement::bindBlob(), in
53862        stead of using it as a normal WTF::String.
53863
53864        No new tests as this causes no expected behaviour change.
53865
53866        * platform/network/blackberry/CredentialBackingStore.cpp:
53867        (WebCore::CredentialBackingStore::addLogin):
53868        (WebCore::CredentialBackingStore::updateLogin):
53869
538702013-02-28  Andrey Lushnikov  <lushnikov@chromium.org>
53871
53872        Web Inspector: "loadScript" function to load scripts via xhr
53873        https://bugs.webkit.org/show_bug.cgi?id=110879
53874
53875        Reviewed by Pavel Feldman.
53876
53877        Create an alias for "importScript" function and use it in those cases
53878        which assume lazy script loading.
53879
53880        No new tests.
53881
53882        * inspector/front-end/Panel.js:
53883        (WebInspector.PanelDescriptor.prototype.panel):
53884        * inspector/front-end/SourceFrame.js:
53885        (WebInspector.SourceFrame):
53886        * inspector/front-end/utilities.js:
53887
538882013-02-28  Alexei Filippov  <alph@chromium.org>
53889
53890        Web Inspector: Move profiler tools into separate panels
53891        https://bugs.webkit.org/show_bug.cgi?id=109832
53892
53893        Reviewed by Yury Semikhatsky.
53894
53895        This is a first part of the fix that puts each profiler tool into a separate panel.
53896        The fix introduces separate panels for each profiler type.
53897        There are now six panel (including experimental):
53898          1. JS CPU profiler
53899          2. CSS Selector profiler
53900          3. JS Heap profiler
53901          4. Canvas profier
53902          5. Native memory snapshots
53903          6. Native memory distribution
53904        The new functionality is put behind experimental flag.
53905
53906        * inspector/front-end/ProfileLauncherView.js:
53907        (WebInspector.ProfileLauncherView):
53908        (WebInspector.ProfileLauncherView.prototype.addProfileType):
53909        * inspector/front-end/ProfilesPanel.js:
53910        (WebInspector.ProfileHeader.prototype.view):
53911        (WebInspector.ProfileHeader.prototype.createView):
53912        (WebInspector.ProfilesPanel):
53913        (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
53914        (WebInspector.ProfilesPanel.prototype._addProfileHeader):
53915        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
53916        (WebInspector.ProfilesPanel.prototype._showProfile):
53917        (WebInspector.ProfilesPanel.prototype._searchableViews):
53918        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
53919        (WebInspector.ProfileGroupSidebarTreeElement):
53920        (WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
53921        (WebInspector.CPUProfilerPanel):
53922        (WebInspector.CSSSelectorProfilerPanel):
53923        (WebInspector.HeapProfilerPanel):
53924        (WebInspector.CanvasProfilerPanel):
53925        (WebInspector.MemoryChartProfilerPanel):
53926        (WebInspector.NativeMemoryProfilerPanel):
53927        * inspector/front-end/Settings.js:
53928        (WebInspector.ExperimentsSettings):
53929        * inspector/front-end/inspector.css:
53930        (.toolbar-item.cpu-profiler .toolbar-icon):
53931        (.toolbar-item.css-profiler .toolbar-icon):
53932        (.toolbar-item.heap-profiler .toolbar-icon):
53933        (.toolbar-item.canvas-profiler .toolbar-icon):
53934        (.toolbar-item.memory-chart-profiler .toolbar-icon):
53935        (.toolbar-item.memory-snapshot-profiler .toolbar-icon):
53936        * inspector/front-end/inspector.js:
53937        (WebInspector._panelDescriptors):
53938
539392013-02-28  Keishi Hattori  <keishi@webkit.org>
53940
53941        Add calendar header for new calendar picker
53942        https://bugs.webkit.org/show_bug.cgi?id=110967
53943
53944        Reviewed by Kent Tamura.
53945
53946        The calendar header showing the current month and containing navigation
53947        buttons, which will be part of the new calendar picker (Bug 109439).
53948
53949        No new tests. Code is not yet used.
53950
53951        * Resources/pagepopups/calendarPicker.js:
53952        (MonthPopupButton): Button that opens the month popup.
53953        (MonthPopupButton.prototype._shouldUseShortMonth): Returns true if we should use the short month format in order to fit in the available width.
53954        (MonthPopupButton.prototype.setCurrentMonth): Sets the month to the button label.
53955        (MonthPopupButton.prototype.onClick): Dispatches buttonClick event which will tell the calendar picker to open the month popup.
53956        (CalendarNavigationButton): A square button that fires repeatedly while the mouse is pressed down.
53957        (CalendarNavigationButton.prototype.setDisabled):
53958        (CalendarNavigationButton.prototype.onClick):
53959        (CalendarNavigationButton.prototype.onMouseDown): Sets the timer to fire while the mouse is pressed down.
53960        (CalendarNavigationButton.prototype.onWindowMouseUp):
53961        (CalendarNavigationButton.prototype.onRepeatingClick):
53962        (CalendarHeaderView): View containing month popup button and the navigation buttons.
53963        (CalendarHeaderView.prototype.onCurrentMonthChanged): Sets the MonthPopupButton label and checks if the navigation buttons should be disabled.
53964        (CalendarHeaderView.prototype.onNavigationButtonClick):
53965        (CalendarHeaderView.prototype.setDisabled): Used to disable all the buttons while the month popup is open.
53966
539672013-02-28  Pavel Feldman  <pfeldman@chromium.org>
53968
53969        Web Inspector: class console-formatted-string renamed to console-formatted- ?
53970        https://bugs.webkit.org/show_bug.cgi?id=110881
53971
53972        Reviewed by Vsevolod Vlasov.
53973
53974        * inspector/front-end/ConsoleMessage.js:
53975        (WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
53976
539772013-02-28  Mike West  <mkwst@chromium.org>
53978
53979        XSSAuditor should strip formaction attributes from input and button elements.
53980        https://bugs.webkit.org/show_bug.cgi?id=110975
53981
53982        Reviewed by Daniel Bates.
53983
53984        The 'formaction' attribute of 'input' and 'button' elements is just as
53985        dangerous as the 'action' attribute of 'form' elements. This patch
53986        teaches the XSSAuditor how to avoid them.
53987
53988        Tests: http/tests/security/xssAuditor/formaction-on-button.html
53989               http/tests/security/xssAuditor/formaction-on-input.html
53990
53991        * html/parser/XSSAuditor.cpp:
53992        (WebCore::XSSAuditor::filterStartToken):
53993        (WebCore::XSSAuditor::filterInputToken): Added.
53994        (WebCore::XSSAuditor::filterButtonToken): Added.
53995        * html/parser/XSSAuditor.h:
53996            Create filters for 'input' and 'button' elements, which currently
53997            only have the effect of filtering the 'formaction' attribute.
53998
539992013-02-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>
54000
54001        REGRESSION(r144169): It broke clipping
54002        https://bugs.webkit.org/show_bug.cgi?id=111065
54003
54004        Reviewed by Noam Rosenthal.
54005
54006        The clipstack was not marked dirty when new clips were added
54007        leading to clipping never being applied.
54008
54009        * platform/graphics/texmap/TextureMapperGL.cpp:
54010        (WebCore::TextureMapperGL::ClipStack::push):
54011
540122013-02-28  Tamas Czene  <tczene@inf.u-szeged.hu>
54013
54014        OpenCL implementation of FEImage SVG Filter.
54015        https://bugs.webkit.org/show_bug.cgi?id=110752
54016
54017        Reviewed by Zoltan Herczeg.
54018
54019        The result of the image is uploaded to an OpenCL buffer.
54020
54021        * Target.pri:
54022        * platform/graphics/gpu/opencl/OpenCLFEImage.cpp: Added.
54023        (WebCore):
54024        (WebCore::FEImage::platformApplyOpenCL):
54025        * svg/graphics/filters/SVGFEImage.h:
54026        (FEImage):
54027
540282013-02-28  Mike West  <mkwst@chromium.org>
54029
54030        Web Inspector: Make it obvious where command line functions come from
54031        https://bugs.webkit.org/show_bug.cgi?id=62367
54032
54033        Reviewed by Pavel Feldman.
54034
54035        This patch adds a custom .toString() method on the various command-line
54036        API methods that are bound in the inspector. Rather than dumping the
54037        function text, we now model the response after that of native methods:
54038        "function __() { [Command Line API] }".
54039
54040        Test: inspector/console/console-native-function-to-string.html
54041
54042        * inspector/InjectedScriptSource.js:
54043            Added a function to the CommandLineAPI constructor that creates a
54044            custom toString() method for each command-line API method.
54045
540462013-02-28  David Kilzer  <ddkilzer@apple.com>
54047
54048        ResourceRequestCFNet.cpp won't compile after r144216
54049        <http://webkit.org/b/111034>
54050
54051        Reviewed by Alexey Proskuryakov.
54052
54053        * WebCore.exp.in: Move Mac-only symbol into !PLATFORM(IOS)
54054        section.  Update iOS-only symbol to add argument.
54055        * platform/network/cf/ResourceRequest.h: Remove unused method
54056        declaration.
54057        * platform/network/cf/ResourceRequestCFNet.cpp:
54058        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Fix typos.
54059        Add static_cast<CFStringRef>().
54060        (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Fix another
54061        typo.
54062
540632013-02-28  Kent Tamura  <tkent@chromium.org>
54064
54065        Unreviewed, rolling out r144184.
54066        http://trac.webkit.org/changeset/144184
54067        https://bugs.webkit.org/show_bug.cgi?id=110974
54068
54069        The change didn't fix all of the problems.
54070
54071        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
54072        * html/BaseMultipleFieldsDateAndTimeInputType.h:
54073        (BaseMultipleFieldsDateAndTimeInputType):
54074
540752013-02-27  Eugene Klyuchnikov  <eustas@chromium.org>
54076
54077        Web Inspector: [Protocol] Genarate JS enum definitions.
54078        https://bugs.webkit.org/show_bug.cgi?id=110461
54079
54080        Reviewed by Pavel Feldman.
54081
54082        Generating corresponding type annotations
54083        would help to compiler to point errors.
54084
54085        * inspector/CodeGeneratorInspector.py: Generate "registerEnum" records.
54086        * inspector/InjectedScriptSource.js: Shadow compiler warning.
54087        * inspector/front-end/InspectorBackend.js:
54088        Added "registerEnum". Added "registerEnum" generation.
54089        * inspector/front-end/NetworkManager.js: Use enum instead of literal.
54090        * inspector/generate_protocol_externs.py: Generate enum typedefs.
54091
540922013-02-27  Kunihiko Sakamoto  <ksakamoto@chromium.org>
54093
54094        INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of hour field should respect min/max attributes
54095        https://bugs.webkit.org/show_bug.cgi?id=109555
54096
54097        Reviewed by Kent Tamura.
54098
54099        Make step-up/-down of the hour field respect the min/max attributes of the element.
54100        Note that it still accepts any keyboard inputs (the element
54101        becomes 'invalid' state when out-of-range values entered).
54102        Also, disable the hour field and/or the AMPM field when there is only single possible value.
54103
54104        Test: fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html
54105              fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-stepup-stepdown-from-renderer.html
54106              fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
54107              fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
54108
54109        * html/TimeInputType.cpp:
54110        (WebCore::TimeInputType::setupLayoutParameters): Populates layoutParameters.{minimum,maximum}.
54111        * html/shadow/DateTimeEditElement.cpp:
54112        (DateTimeEditBuilder): Add data fields for min/max of day and hour fields.
54113        (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Set newly added data members.
54114        (WebCore::DateTimeEditBuilder::visitField): Pass minimum/maximum value to the month field constructors.
54115        (WebCore::DateTimeEditBuilder::shouldAMPMFieldDisabled): Added.
54116        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
54117        (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
54118        Disables the hour field when min, max, and value have the same hour, except when the minute
54119        field is disabled (by step attribute), because we need to leave at least one field editable.
54120        * html/shadow/DateTimeFieldElements.cpp:
54121        (WebCore::DateTimeHourFieldElementBase::DateTimeHourFieldElementBase):
54122        (WebCore::DateTimeHourFieldElementBase::initialize):
54123        (WebCore::DateTimeHourFieldElementBase::setValueAsDate):
54124        (WebCore::DateTimeHourFieldElementBase::setValueAsDateTimeFieldsState):
54125        (WebCore::DateTimeHour11FieldElement::DateTimeHour11FieldElement):
54126        (WebCore::DateTimeHour11FieldElement::create):
54127        (WebCore::DateTimeHour11FieldElement::populateDateTimeFieldsState):
54128        (WebCore::DateTimeHour11FieldElement::setValueAsInteger):
54129        (WebCore::DateTimeHour11FieldElement::clampValueForHardLimits):
54130        (WebCore::DateTimeHour12FieldElement::DateTimeHour12FieldElement):
54131        (WebCore::DateTimeHour12FieldElement::create):
54132        (WebCore::DateTimeHour12FieldElement::populateDateTimeFieldsState):
54133        (WebCore::DateTimeHour12FieldElement::setValueAsInteger):
54134        (WebCore::DateTimeHour12FieldElement::clampValueForHardLimits):
54135        (WebCore::DateTimeHour23FieldElement::DateTimeHour23FieldElement):
54136        (WebCore::DateTimeHour23FieldElement::create):
54137        (WebCore::DateTimeHour23FieldElement::populateDateTimeFieldsState):
54138        (WebCore::DateTimeHour23FieldElement::setValueAsInteger):
54139        (WebCore::DateTimeHour23FieldElement::clampValueForHardLimits):
54140        (WebCore::DateTimeHour24FieldElement::DateTimeHour24FieldElement):
54141        (WebCore::DateTimeHour24FieldElement::create):
54142        (WebCore::DateTimeHour24FieldElement::populateDateTimeFieldsState):
54143        (WebCore::DateTimeHour24FieldElement::setValueAsInteger):
54144        (WebCore::DateTimeHour24FieldElement::clampValueForHardLimits):
54145        * html/shadow/DateTimeFieldElements.h: Splitted DateTimeHourFieldElement into a base class and four derived classes that represents different hour formats.
54146        (DateTimeHourFieldElementBase): Added.
54147        (DateTimeHour11FieldElement): Added. Represents 0-11 hour format.
54148        (DateTimeHour12FieldElement): Added. Represents 1-12 hour format.
54149        (DateTimeHour23FieldElement): Added. Represents 0-23 hour format.
54150        (DateTimeHour24FieldElement): Added. Represents 1-24 hour format.
54151
541522013-02-27  Tien-Ren Chen  <trchen@chromium.org>
54153
54154        Need to re-layout fixed position elements after scale when using settings()->fixedElementsLayoutRelativeToFrame()
54155        https://bugs.webkit.org/show_bug.cgi?id=105486
54156
54157        Reviewed by James Robinson.
54158
54159        In settings()->fixedElementsLayoutRelativeToFrame() mode, fixed-position
54160        elements are layout relative to the current visible viewport, which can
54161        be different from the layout viewport when using fixed-layout mode.
54162        We need to re-layout fixed-position elements in case of visible content
54163        size changes.
54164
54165        The test is currently chromium-specific due to difficulties to make this
54166        test works on Mac. The mac port seems to work very differently with
54167        visible content size when a page is scaled. And there is no reliable way
54168        to hide scrollbars in mac-wk1 that doesn't cause a side effect.
54169
54170        Test: platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html
54171
54172        * page/FrameView.h:
54173        (FrameView):
54174        * page/Page.cpp:
54175        (WebCore::Page::setPageScaleFactor):
54176
541772013-02-27  Hans Muller  <hmuller@adobe.com>
54178
54179        [CSS Exclusions] Enable shape-inside rectangle support for shape-padding
54180        https://bugs.webkit.org/show_bug.cgi?id=110500
54181
54182        Reviewed by Dirk Schulze.
54183
54184        Added support for CSS shape-padding for shapes defined with shape-inside.
54185
54186        Tests: fast/exclusions/shape-inside/shape-inside-circle-padding.html
54187               fast/exclusions/shape-inside/shape-inside-ellipse-padding.html
54188               fast/exclusions/shape-inside/shape-inside-rectangle-padding.html
54189               fast/exclusions/shape-inside/shape-inside-rounded-rectangle-padding.html
54190
54191        * rendering/ExclusionRectangle.cpp:
54192        (WebCore::FloatRoundedRect::paddingBounds): Inset the rounded rectangle to reflect the padding parameter.
54193        (WebCore::FloatRoundedRect::marginBounds): Expand the rounded rectangle to reflect the margin parameter.
54194        (WebCore::FloatRoundedRect::cornerInterceptForWidth): Moved this method from ExclusionRectangle to FloatRoundedRect.
54195        (WebCore::ExclusionRectangle::shapePaddingBounds): Lazily compute the bounds of the padding box.
54196        (WebCore::ExclusionRectangle::shapeMarginBounds): Lazily compute the bounds of the margin box.
54197        (WebCore::ExclusionRectangle::getExcludedIntervals): This computuation is now based on the (new) margin box.
54198        (WebCore::ExclusionRectangle::getIncludedIntervals): This computation is now base don the (new) padding box.
54199        (WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): This computation is now base don the (new) padding box.
54200        * rendering/ExclusionRectangle.h:
54201        (FloatRoundedRect): A subclass of FloatRect that includes corner radii specified as CSS shapes do.
54202        (WebCore::FloatRoundedRect::FloatRoundedRect):
54203        (WebCore::FloatRoundedRect::rx):
54204        (WebCore::FloatRoundedRect::ry):
54205        (WebCore::ExclusionRectangle::ExclusionRectangle):
54206        * rendering/ExclusionShape.cpp:
54207        (WebCore::ExclusionShape::createExclusionShape): Initialize the new shapeMargin and shapePadding properties.
54208        * rendering/ExclusionShape.h:
54209        (ExclusionShape):
54210        (WebCore::ExclusionShape::shapeMargin): Added a public read-only property for shapeMargin.
54211        (WebCore::ExclusionShape::shapePadding): Added a public read-only property for shapePadding.
54212        * rendering/ExclusionShapeInfo.cpp:
54213        (WebCore::::computedShape): Pass the values of the CSS shape-margin and shapp-padding properties to createExclusionShape().
54214
542152013-02-25  Alpha Lam  <hclam@chromium.org>
54216
54217        More style cleanup in GIFImageReader
54218        https://bugs.webkit.org/show_bug.cgi?id=110776
54219
54220        Reviewed by Allan Sandfeld Jensen.
54221
54222        Renamed variable q to currentComponent which more accurately represent
54223        the purpose.
54224
54225        No test. Simple refactoring.
54226
54227        * platform/image-decoders/gif/GIFImageReader.cpp:
54228        (GIFImageReader::decodeInternal):
54229
542302013-02-27  Keishi Hattori  <keishi@webkit.org>
54231
54232        Add month popup for new calendar picker
54233        https://bugs.webkit.org/show_bug.cgi?id=110830
54234
54235        Reviewed by Kent Tamura.
54236
54237        Adding month popup view for use in the new calendar picker (Bug 109439).
54238        YearListCell will grow in height when selected to reveal the buttons for
54239        selecting the month.
54240
54241        No new tests. Code is not used yet.
54242
54243        * Resources/pagepopups/calendarPicker.js:
54244        (YearListCell): A row inside the month popup. Contains buttons for choosing a month.
54245        (YearListCell.prototype._recycleBin):
54246        (YearListCell.prototype.reset): Resets a thrown away cell for reuse at the given row.
54247        (YearListCell.prototype.height):
54248        (YearListCell.prototype.setHeight):
54249        (YearListView): List view showing YearListCells.
54250        (YearListView.prototype.onMouseOver): If the mouse is over a month button, highlights it.
54251        (YearListView.prototype.onMouseOut): De-highlights the month button.
54252        (YearListView.prototype.setWidth): Set scroll view width to leave space for the scroll bar.
54253        (YearListView.prototype.setHeight): Sets the scroll bar height as well.
54254        (YearListView.prototype._animateRow): Animates the row height to open/close the YearListCell.
54255        (YearListView.prototype.onCellHeightAnimatorDidStop): Keep this._runningAnimators and this._animatingRows up to date.
54256        (YearListView.prototype.onCellHeightAnimatorStep): Update the cell height and position.
54257        (YearListView.prototype.onClick): If this is a click on a month button, select the month.
54258        (YearListView.prototype.rowAtScrollOffset): Calculates the row currently at the given offset.
54259        (YearListView.prototype.scrollOffsetForRow): Calculates the current scroll offset of the given row.
54260        (YearListView.prototype.prepareNewCell): Prepares a new or recycled YearListCell.
54261        (YearListView.prototype.updateCells): Updates the position of the visible cells.
54262        (YearListView.prototype.deselect): Deselects a row.
54263        (YearListView.prototype.deselectWithoutAnimating): Deselects a row without the closing animation.
54264        (YearListView.prototype.select): Selects a row.
54265        (YearListView.prototype.selectWithoutAnimating): Deselects a row without the opening animation.
54266        (YearListView.prototype.buttonForMonth): Returns the month button for a given month. Returns null if the cell is not visible.
54267        (YearListView.prototype.dehighlightMonth): Dehighlights the month button.
54268        (YearListView.prototype.highlightMonth): Highlights the month button.
54269        (YearListView.prototype.show): Call when showing the year list view. Shows the given month as highlighted.
54270        (YearListView.prototype.hide): Dispatches a did hide event which will be picked up by the CalendarPicker and the MonthPopupView will close.
54271        (YearListView.prototype._moveHighlightTo): Used to move the month highlight in response to a key event.
54272        (YearListView.prototype.onKeyDown): Arrow keys and PageUp/PageDown keys work.
54273        (MonthPopupView): The popup view to be overlayed over the calendar picker.
54274        (MonthPopupView.prototype.show): Takes the initialMonth to show and the calendarTableRect so we can overlay the year list view right on top of it.
54275        (MonthPopupView.prototype.hide):
54276        (MonthPopupView.prototype.onClick): Hides itself if the use clicks outside the year list view.
54277
542782013-02-27  Adam Barth  <abarth@webkit.org>
54279
54280        Use FeatureObserver to see how often web sites use multipart main documents
54281        https://bugs.webkit.org/show_bug.cgi?id=111015
54282
54283        Reviewed by Nate Chapin.
54284
54285        Multipart main documents add sigificant complexity to the loader.  It
54286        would be interesting to know how often this complexity is used.
54287
54288        * loader/MainResourceLoader.cpp:
54289        (WebCore::MainResourceLoader::responseReceived):
54290        * page/FeatureObserver.h:
54291
542922013-02-27  James Simonsen  <simonjam@chromium.org>
54293
54294        [chromium] Lower priority of preloaded images
54295        https://bugs.webkit.org/show_bug.cgi?id=110527
54296
54297        Reviewed by Nate Chapin.
54298
54299        This improves Speed Index by ~5%, because it encourages us to load images that are needed for
54300        painting over speculative preloads. Ideally, all embedders would use this, but it relies on
54301        ResourceHandle::didChangePriority being implemented. Currently, only Chrome does that.
54302
54303        Test: http/tests/loading/promote-img-preload-priority.html
54304
54305        * loader/FrameLoaderClient.h:
54306        (FrameLoaderClient):
54307        (WebCore::FrameLoaderClient::dispatchDidChangeResourcePriority): Added callback to enable testing.
54308        * loader/cache/CachedResource.cpp:
54309        (WebCore::CachedResource::setLoadPriority): Signal callback.
54310        * loader/cache/CachedResourceLoader.cpp:
54311        (WebCore::CachedResourceLoader::preload): Actual behavior change.
54312
543132013-02-27  Csaba Osztrogonác  <ossy@webkit.org>
54314
54315        Unreviewed trivial buildfix after r144190.
54316
54317        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
54318        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
54319
543202013-02-27  Chris Fleizach  <cfleizach@apple.com>
54321
54322        WebSpeech: support speech cancel
54323        https://bugs.webkit.org/show_bug.cgi?id=107349
54324
54325        Reviewed by Beth Dakin.
54326
54327        Add the ability to cancel speech utterances and make it work with Mac
54328        and the mock speech synthesizer.
54329
54330        Test: platform/mac/fast/speechsynthesis/speech-synthesis-cancel.html
54331
54332        * Modules/speech/SpeechSynthesis.cpp:
54333        (WebCore::SpeechSynthesis::pending):
54334        (WebCore::SpeechSynthesis::cancel):
54335        (WebCore::SpeechSynthesis::handleSpeakingCompleted):
54336        * platform/PlatformSpeechSynthesizer.h:
54337        (PlatformSpeechSynthesizer):
54338        * platform/mac/PlatformSpeechSynthesizerMac.mm:
54339        (-[WebSpeechSynthesisWrapper cancel]):
54340        (WebCore::PlatformSpeechSynthesizer::cancel):
54341        (WebCore):
54342        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
54343        (WebCore::PlatformSpeechSynthesizerMock::cancel):
54344        (WebCore):
54345        (WebCore::PlatformSpeechSynthesizerMock::speak):
54346        * platform/mock/PlatformSpeechSynthesizerMock.h:
54347        (PlatformSpeechSynthesizerMock):
54348
543492013-02-27  Min Qin  <qinmin@chromium.org>
54350
54351        Unlock partially decoded images after passing them to the ImageDecodingStore
54352        https://bugs.webkit.org/show_bug.cgi?id=110778
54353
54354        Reviewed by Stephen White.
54355
54356        For partially decoded images, we need to unlock them so that the memory can be freed.
54357        This change unlocks all the image frames after they are passed to ImageDecodingStore.
54358        Unit tests are added in ImageFrameGeneratorTest.
54359
54360        * platform/graphics/chromium/ImageFrameGenerator.cpp:
54361        (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
54362        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
54363        (WebCore::ImageFrameGenerator::decode):
54364        * platform/image-decoders/ImageDecoder.h:
54365        (ImageDecoder):
54366        (WebCore::ImageDecoder::lockFrameBuffers):
54367        (WebCore::ImageDecoder::unlockFrameBuffers):
54368
543692013-02-27  Kenneth Russell  <kbr@google.com>
54370
54371        Insufficient validation when uploading depth textures to WebGL
54372        https://bugs.webkit.org/show_bug.cgi?id=110931
54373
54374        Reviewed by Abhishek Arya.
54375
54376        Updated webgl/conformance/extensions/webgl-depth-texture.html
54377        layout test with additional test cases.
54378
54379        * html/canvas/WebGLRenderingContext.cpp:
54380        (WebCore):
54381        (WebCore::WebGLRenderingContext::texImage2D):
54382        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
54383        (WebCore::WebGLRenderingContext::texSubImage2D):
54384            Check for valid format/type combinations, depth, and
54385            depth+stencil formats when uploading HTML elements and
54386            ImageData as textures.
54387
543882013-02-27  Adam Barth  <abarth@webkit.org>
54389
54390        Threaded HTML Parser fails fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html in debug
54391        https://bugs.webkit.org/show_bug.cgi?id=110951
54392
54393        Reviewed by Eric Seidel.
54394
54395        We were triggering this ASSERT because we didn't understand that a
54396        given frame might have multiple DocumentLoaders in various states. That
54397        caused us to think that a DocumentLoader in the provisional state was
54398        actually loading.
54399
54400        * dom/Document.cpp:
54401        (WebCore::Document::decrementActiveParserCount):
54402        * loader/DocumentLoader.cpp:
54403        (WebCore::DocumentLoader::isLoading):
54404
544052013-02-27  Chris Fleizach  <cfleizach@apple.com>
54406
54407        AX: Mac platform should support ability to scroll an element into visible
54408        https://bugs.webkit.org/show_bug.cgi?id=109860
54409
54410        Reviewed by Beth Dakin.
54411
54412        Support the scrollToMakeVisible() action for MacOS accessibility clients.
54413
54414        Tests: platform/mac/accessibility/scroll-to-visible-action.html
54415
54416        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
54417        (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
54418        (-[WebAccessibilityObjectWrapper accessibilityScrollToVisible]):
54419        (-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
54420
544212013-02-27  John Bauman  <jbauman@chromium.org>
54422
54423        Plugin in iframe may not display
54424        https://bugs.webkit.org/show_bug.cgi?id=109879
54425
54426        Reviewed by Simon Fraser.
54427
54428        Changing the cliprect on a layer containing an iframe may change the
54429        cliprect of plugins inside the iframe, so recursively tell all plugins
54430        in iframes that their cliprect has changed after doing layout on the
54431        outer frame.
54432
54433        Test: plugins/plugin-clip-subframe.html
54434
54435        * platform/ScrollView.cpp:
54436        (WebCore::ScrollView::clipRectChanged):
54437        * platform/ScrollView.h:
54438        * platform/Widget.h:
54439        (WebCore::Widget::clipRectChanged):
54440        * plugins/PluginView.cpp:
54441        (WebCore::PluginView::clipRectChanged):
54442        * plugins/PluginView.h:
54443        * rendering/RenderWidget.cpp:
54444        (WebCore::RenderWidget::setWidgetGeometry):
54445
544462013-02-27  Chris Rogers  <crogers@google.com>
54447
54448        Implement channel up-mixing and down-mixing rules
54449        https://bugs.webkit.org/show_bug.cgi?id=110812
54450
54451        Reviewed by Kenneth Russell.
54452
54453        Please see Web Audio specification for details of the AudioNode mixing rules attributes:
54454        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
54455
54456        Test: webaudio/audionode-channel-rules.html
54457
54458        * Modules/webaudio/AudioNode.cpp:
54459        (WebCore::AudioNode::AudioNode):
54460        (WebCore::AudioNode::channelCount):
54461        (WebCore):
54462        (WebCore::AudioNode::setChannelCount):
54463        (WebCore::AudioNode::channelCountMode):
54464        (WebCore::AudioNode::setChannelCountMode):
54465        (WebCore::AudioNode::channelInterpretation):
54466        (WebCore::AudioNode::setChannelInterpretation):
54467        (WebCore::AudioNode::updateChannelsForInputs):
54468        * Modules/webaudio/AudioNode.h:
54469        (AudioNode):
54470        (WebCore::AudioNode::internalChannelCountMode):
54471        (WebCore::AudioNode::internalChannelInterpretation):
54472        * Modules/webaudio/AudioNode.idl:
54473        * Modules/webaudio/AudioNodeInput.cpp:
54474        (WebCore::AudioNodeInput::numberOfChannels):
54475        (WebCore::AudioNodeInput::bus):
54476        (WebCore::AudioNodeInput::internalSummingBus):
54477        (WebCore::AudioNodeInput::sumAllConnections):
54478        (WebCore::AudioNodeInput::pull):
54479        * Modules/webaudio/AudioNodeInput.h:
54480        (AudioNodeInput):
54481        * Modules/webaudio/ConvolverNode.cpp:
54482        (WebCore::ConvolverNode::ConvolverNode):
54483        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
54484        (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
54485        * Modules/webaudio/PannerNode.cpp:
54486        (WebCore::PannerNode::PannerNode):
54487        * platform/audio/AudioBus.cpp:
54488        (WebCore::AudioBus::speakersCopyFrom):
54489        (WebCore::AudioBus::speakersSumFrom):
54490        (WebCore::AudioBus::speakersSumFrom5_1_ToMono):
54491        (WebCore):
54492        * platform/audio/AudioBus.h:
54493        (AudioBus):
54494
544952013-02-27  Adam Barth  <abarth@webkit.org>
54496
54497        Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()->activeDocumentLoader()
54498        https://bugs.webkit.org/show_bug.cgi?id=110937
54499
54500        Reviewed by Darin Adler.
54501
54502        This patch restores the ASSERT behind an ifdef so that we can continue
54503        to get converage from the ASSERT while we investigate why it is
54504        triggering in the threaded parser.
54505
54506        * loader/DocumentLoader.cpp:
54507        (WebCore::DocumentLoader::checkLoadComplete):
54508
545092013-02-27  Lianghui Chen  <liachen@rim.com>
54510
54511        [BlackBerry] User credentials is not correctly handled
54512        https://bugs.webkit.org/show_bug.cgi?id=110994
54513
54514        Internal PR: 280990
54515        Internal reviewed by Leo Yang.
54516
54517        Reviewed by Yong Li.
54518
54519        Following changes are made:
54520            Remove url from generating the hash to index user credential.
54521            Remove url from database.
54522            Use new CertMgrWrapper API to remove password from CertMgr.
54523            Handle encrypted password as binary data, instead of normal text string.
54524            When authentication fails, remove the saved user credential only when they match.
54525            Remove some url related API from CredentialBackingStore, as they are obsolete now.
54526
54527        No new tests as this is platform specific change about user credential.
54528
54529        * platform/network/blackberry/CredentialBackingStore.cpp:
54530        (WebCore::hashCredentialInfo):
54531        (WebCore::CredentialBackingStore::CredentialBackingStore):
54532        (WebCore::CredentialBackingStore::~CredentialBackingStore):
54533        (WebCore::CredentialBackingStore::open):
54534        (WebCore::CredentialBackingStore::addLogin):
54535        (WebCore::CredentialBackingStore::updateLogin):
54536        (WebCore::CredentialBackingStore::hasLogin):
54537        (WebCore::CredentialBackingStore::getLogin):
54538        (WebCore::CredentialBackingStore::removeLogin):
54539        (WebCore::CredentialBackingStore::addNeverRemember):
54540        (WebCore::CredentialBackingStore::encryptedString):
54541        (WebCore::CredentialBackingStore::decryptedString):
54542        * platform/network/blackberry/CredentialBackingStore.h:
54543        (CredentialBackingStore):
54544        * platform/network/blackberry/NetworkJob.cpp:
54545        (WebCore::NetworkJob::sendRequestWithCredentials):
54546        (WebCore::NetworkJob::purgeCredentials):
54547
545482013-02-27  David Hyatt  <hyatt@apple.com>
54549
54550        Refactor transform painting/hit testing code in RenderLayer.
54551        https://bugs.webkit.org/show_bug.cgi?id=110998
54552
54553        Reviewed by Eric Seidel.
54554
54555        * rendering/RenderLayer.cpp:
54556        (WebCore::RenderLayer::paintLayer):
54557        (WebCore::RenderLayer::paintLayerByApplyingTransform):
54558        Pull the code that applies the transform for painting into a new
54559        function that can also apply an additional translation offset. This
54560        offset will be used by the new columns code when that patch lands.
54561        
54562        (WebCore::RenderLayer::createLocalTransformState):
54563        Also patched to be able to apply an additional translation offset.
54564
54565        (WebCore::RenderLayer::hitTestLayer):
54566        (WebCore::RenderLayer::hitTestLayerByApplyingTransform):
54567        Same as with painting, pull the code that applies the transform into
54568        its own function and also enable an extra translation offset to be
54569        applied.
54570        
54571        * rendering/RenderLayer.h:
54572        Added the new functions to the header.
54573
545742013-02-27  David Kilzer  <ddkilzer@apple.com>
54575
54576        Touch CSSGrammar.y.in to fix an internal buildbot
54577
54578        * css/CSSGrammar.y.in: Add copyright dates based on previous
54579        commits.
54580
545812013-02-27  Manuel Rego Casasnovas  <rego@igalia.com>
54582
54583        Add smartInsertDeleteEnabled setting to WebCore::Page
54584        https://bugs.webkit.org/show_bug.cgi?id=107840
54585
54586        Reviewed by Ryosuke Niwa.
54587
54588        Covered by editing/deleting/smart-editing-disabled.html.
54589
54590        * page/Settings.in: Add new setting with true as initial value.
54591
545922013-02-27  Chris Fleizach  <cfleizach@apple.com>
54593
54594        WebSpeech: Support pause/resume ability
54595        https://bugs.webkit.org/show_bug.cgi?id=107345
54596
54597        Reviewed by Beth Dakin.
54598
54599        Add in the pause/resume functionality to SpeechSynthesis. Also hook up
54600        the callback events.
54601
54602        Test: platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html
54603
54604        * Modules/speech/SpeechSynthesis.cpp:
54605        (WebCore::SpeechSynthesis::SpeechSynthesis):
54606        (WebCore::SpeechSynthesis::pending):
54607        (WebCore::SpeechSynthesis::paused):
54608        (WebCore::SpeechSynthesis::startSpeakingImmediately):
54609        (WebCore::SpeechSynthesis::pause):
54610        (WebCore::SpeechSynthesis::resume):
54611        (WebCore):
54612        (WebCore::SpeechSynthesis::didPauseSpeaking):
54613        (WebCore::SpeechSynthesis::didResumeSpeaking):
54614        * Modules/speech/SpeechSynthesis.h:
54615        (SpeechSynthesis):
54616        * platform/PlatformSpeechSynthesizer.h:
54617        (PlatformSpeechSynthesizerClient):
54618        (PlatformSpeechSynthesizer):
54619        * platform/mac/PlatformSpeechSynthesizerMac.mm:
54620        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
54621        (-[WebSpeechSynthesisWrapper pause]):
54622        (-[WebSpeechSynthesisWrapper resume]):
54623        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
54624        (WebCore::PlatformSpeechSynthesizer::pause):
54625        (WebCore):
54626        (WebCore::PlatformSpeechSynthesizer::resume):
54627
546282013-02-26  Alexey Proskuryakov  <ap@apple.com>
54629
54630        Don't add a body to platform request until necessary
54631        https://bugs.webkit.org/show_bug.cgi?id=110900
54632
54633        Reviewed by Brady Eidson.
54634
54635        ResourceRequest now has more state for syncing between resource and platform parts.
54636        In addition to tracking which is up to date, we also track which has up to date
54637        HTTP Body.
54638
54639        The reason is that we don't need the body on request before it's actually sent,
54640        and we actually cannot build it when networking is out of process.
54641
54642        * WebCore.exp.in: Updated exports.
54643
54644        * platform/network/ResourceRequestBase.h:
54645        * platform/network/ResourceRequestBase.cpp:
54646        (WebCore::ResourceRequestBase::setHTTPBody): Update HTTP body before returning it.
54647        (WebCore::ResourceRequestBase::updatePlatformRequest): Update according to HTTPBodyUpdatePolicy.
54648        (WebCore::ResourceRequestBase::updateResourceRequest): Ditto.
54649
54650        * platform/network/cf/FormDataStreamCFNet.cpp:
54651        (WebCore::formDataStreamLengthPropertyName):
54652        (WebCore::formCopyProperty):
54653        (WebCore::setHTTPBody):
54654        Changed to not update Content-Length in platform request directly. We need to keep it
54655        in sync with resource request, and it's easier to do in a caller. Exposed computed
54656        length as a property do avoid duplicating the work.
54657
54658        * platform/network/cf/FormDataStreamCFNet.h: Removed unnecessary httpBodyFromStream().
54659
54660        * platform/network/cf/ResourceHandleCFNet.cpp:
54661        (WebCore::willSendRequest):
54662        (WebCore::didReceiveResponse):
54663        (WebCore::ResourceHandle::createCFURLConnection):
54664        Update body when necessary.
54665
54666        (WebCore::ResourceRequest::nsURLRequest):
54667        (WebCore::ResourceRequest::doUpdateResourceRequest):
54668        (WebCore::ResourceRequest::doUpdateResourceHTTPBody):
54669        (WebCore):
54670        (WebCore::ResourceRequest::doUpdatePlatformRequest):
54671        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
54672        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody):
54673        (WebCore::ResourceRequest::applyWebArchiveHackForMail):
54674        Ditto.
54675
54676        * platform/network/cf/ResourceRequest.h: Track body up-to-date state.
54677
54678        * platform/network/cf/ResourceRequestCFNet.cpp:
54679        (WebCore::ResourceRequest::cfURLRequest): Honor HTTPBodyUpdatePolicy.
54680        (WebCore::ResourceRequest::doUpdatePlatformRequest): Don't update body here.
54681        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Update the body, and make sure
54682        that Content-Length is correct.
54683        (WebCore::ResourceRequest::doUpdateResourceRequest): Don't update body here.
54684        (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Update the body, fixing a bug
54685        where body stream was lost if this function got called.
54686        (WebCore::ResourceRequest::applyWebArchiveHackForMail): No need to update body for this one.
54687
54688        * platform/network/mac/ResourceRequestMac.mm: Ditto (but this didn't have a bug
54689        with streams in doUpdateResourceRequest()).
54690
54691        * platform/network/mac/FormDataStreamMac.h: Forward declare formDataStreamLengthPropertyName().
54692
54693        * platform/network/mac/ResourceHandleMac.mm:
54694        (WebCore::ResourceHandle::createNSURLConnection):
54695        (WebCore::ResourceHandle::start):
54696        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
54697        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
54698        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
54699        Update body when necessary.
54700
54701        * platform/network/blackberry/ResourceRequest.h:
54702        * platform/network/chromium/ResourceRequest.h:
54703        * platform/network/curl/ResourceRequest.h:
54704        * platform/network/qt/ResourceRequest.h:
54705        * platform/network/soup/ResourceRequest.h:
54706        * platform/network/win/ResourceRequest.h:
54707        Added stubs for new functions. These ports don't keep a platform request in ResourceRequest,
54708        and don't need updating.
54709
547102013-02-27  Glenn Adams  <glenn@skynav.com>
54711
54712        Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
54713        https://bugs.webkit.org/show_bug.cgi?id=110944
54714
54715        Reviewed by Dean Jackson.
54716
54717        No new tests.
54718
54719        * Configurations/FeatureDefines.xcconfig:
54720
547212013-02-27  Andrei Bucur  <abucur@adobe.com>
54722
54723        REGRESSION(r124739): fast/lists/list-marker-remove-crash.html hits an assertion in MoveParagraphs
54724        https://bugs.webkit.org/show_bug.cgi?id=93247
54725
54726        Reviewed by Darin Adler.
54727
54728        The listifyParagraph function inside InsertListCommand triggered a layout for the new list and updated
54729        only the "start" Position. The insertion and layout may have changed the "end" Position as well. The patch
54730        makes sure "end" is also recomputed.
54731
54732        Test: No new test, the patch fixes a regression.
54733
54734        * editing/InsertListCommand.cpp:
54735        (WebCore::InsertListCommand::listifyParagraph):
54736
547372013-02-27  Zach Kuznia  <zork@chromium.org>
54738
54739        Add ENABLE_STREAM guards to FileReaderLoader
54740        https://bugs.webkit.org/show_bug.cgi?id=110938
54741
54742        Reviewed by Hajime Morrita.
54743
54744        * fileapi/FileReaderLoader.cpp:
54745        * fileapi/FileReaderLoader.h:
54746
547472013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
54748
54749        Switch QtWebKit to GStreamer 1.0.
54750        https://bugs.webkit.org/show_bug.cgi?id=106669.
54751
54752        Original patch by Sebastian Dröge.
54753        Reviewed by Csaba Osztrogonác.
54754
54755        * WebCore.pri:
54756
547572013-02-27  Eli Fidler  <efidler@rim.com>
54758
54759        [BlackBerry] Fix BlackBerry::Platform::String to WTF::String conversion when the string is Latin-1-encoded.
54760        https://bugs.webkit.org/show_bug.cgi?id=110986
54761
54762        Reviewed by Yong Li.
54763
54764        Internally reviewed by Nima Ghanavatian.
54765        BlackBerry PR 292922
54766
54767        We were assuming all platform strings were valid UTF-8, which isn't true for Latin-1 strings.
54768
54769        * platform/text/blackberry/StringBlackBerry.cpp:
54770        (WTF::String::String):
54771
547722013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
54773
54774        [TexMap] REGRESSION(144183): It make negative delay tests fails
54775        https://bugs.webkit.org/show_bug.cgi?id=110989
54776
54777        Reviewed by Noam Rosenthal.
54778
54779        Do not apply a negative offset to the animation starttime send to the GraphicLayerClient,
54780        it needs the actual animation start not a virtual start.
54781
54782        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
54783        (WebCore::GraphicsLayerTextureMapper::addAnimation):
54784
547852013-02-27  Aaron Colwell  <acolwell@chromium.org>
54786
54787        Fix SourceBufferList so SourceBuffer.append() calls are always rejected after the MediaSource is closed.
54788        https://bugs.webkit.org/show_bug.cgi?id=110917
54789
54790        Reviewed by Eric Carlson.
54791
54792        Test: http/tests/media/media-source/video-media-source-reject-append-after-reopening.html
54793
54794        * Modules/mediasource/SourceBufferList.cpp:
54795        (WebCore::SourceBufferList::clear):
54796
547972013-02-27  Justin Novosad  <junov@google.com>
54798
54799        REGRESSION (r134631) of border-radius percentage with border pixel
54800        https://bugs.webkit.org/show_bug.cgi?id=110889
54801
54802        Reviewed by Simon Fraser.
54803
54804        Fixing background color filling to handle "non renderable" rounded
54805        rectangles.
54806
54807        Test: fast/borders/border-radius-percent.html
54808
54809        * rendering/RenderBoxModelObject.cpp:
54810        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
54811
548122013-02-27  Florin Malita  <fmalita@chromium.org>
54813
54814        [Chromium] Layout Test svg/custom/transform-with-shadow-and-gradient.svg is failing
54815        https://bugs.webkit.org/show_bug.cgi?id=76557
54816
54817        Reviewed by Stephen Chenney.
54818
54819        Always use kDst_Mode transfer for the shadow looper. Using kSrc_Mode to enforce CSS
54820        box-shadow opaqueness at this level is not necessary since the RenderBoxModel box
54821        decoration code already makes sure that shadows are filled with opaque black.
54822
54823        This change aligns the SVG shadow behavior (and pixel results) with CG/Safari.
54824
54825        No new tests, coverage provided by existing tests.
54826
54827        * platform/graphics/skia/GraphicsContextSkia.cpp:
54828        (WebCore::GraphicsContext::setPlatformShadow):
54829
548302013-02-25  Kentaro Hara  <haraken@chromium.org>
54831
54832        [V8] Generate a wrapper function for ReplaceableAttrSetter()
54833        https://bugs.webkit.org/show_bug.cgi?id=110781
54834
54835        Reviewed by Adam Barth.
54836
54837        This is one of steps to insert TRACE_EVENT_STATE() macros
54838        into DOM bindings. This patch introduces an indirection function
54839        for xxxReplaceableAttrSetter(), like this:
54840
54841        // For non-custom replaceable setters (Note: One implementation
54842        is enough for all replaceable setters in one interface.)
54843        void V8XXX:::ReplaceableAttrSetterCallback(...) {
54844          V8XXX::ReplaceableAttrSetter(...);
54845        }
54846
54847        // For custom replaceable setters. (Note: This is treated as
54848        a normal custom setter.)
54849        void xxxAttrSetterCallback(...) {
54850          return xxxAttrSetterCustom(...);
54851        }
54852
54853        No tests. No change in behavior.
54854
54855        * bindings/scripts/CodeGeneratorV8.pm:
54856        (GenerateReplaceableAttrSetterCallback):
54857        (GenerateReplaceableAttrSetter):
54858        (GenerateSingleBatchedAttribute):
54859        (GenerateImplementation):
54860        * bindings/scripts/test/V8/V8TestObj.cpp:
54861        (WebCore::TestObjV8Internal::TestObjReplaceableAttrSetterCallback):
54862        (TestObjV8Internal):
54863        (WebCore):
54864        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
54865        (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetterCallback):
54866        (TestTypedefsV8Internal):
54867
548682013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
54869
54870        [Qt] Flash objects won't load until scrolling page
54871        https://bugs.webkit.org/show_bug.cgi?id=110149
54872
54873        Reviewed by Simon Hausmann.
54874
54875        Revert r134222. The issue from bug 101836 is no longer reproducable,
54876        and the fix was causing flash objects to not load properly.
54877
54878        * plugins/PluginPackage.cpp:
54879        (WebCore::PluginPackage::determineQuirks):
54880
548812013-02-27  No'am Rosenthal  <noam@webkit.org>
54882
54883        [Texmap] TextureMapper is too eager to use intermediate surfaces
54884        https://bugs.webkit.org/show_bug.cgi?id=110762
54885
54886        Reviewed by Allan Sandfeld Jensen.
54887
54888        Refactor the way intermediate surfaces are handled in TextureMapperLayer.
54889        Beforehand, we would create an intermediate surface whenever there is a chance of overlap, and
54890        the intermediate surface would be the largest possible. The result would then be drawn to the
54891        target surface with the layer's opacity and mask.
54892
54893        This would make it so that (1) surfaces are created even when they're not needed, i.e. when there
54894        is no actual overlap, and (2) mask wouldn't be applied correctly.
54895
54896        In this patch the behavior is changed so that the area to be painted is divided to "overlapping"
54897        and "non overlapping" regions. The non-overlapping regions are painted directly, while the overlapping
54898        regions are tiled to smaller rectangles painted using an intermediate surface.
54899        Masks are applied to those intermediate surfaces based on the transform of the actual mask, not drawn
54900        together with the content texture like before.
54901
54902        This optimizes for the more common case of opacity animations on a large tree, while making the quite
54903        rare case of composited masks slightly less optimized but always correct.
54904
54905        Tests: compositing/overlap-blending/children-opacity-huge.html
54906               compositing/overlap-blending/reflection-opacity-huge.html
54907               compositing/overlap-blending/children-opacity-no-overlap.html
54908
54909        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
54910        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
54911        * platform/graphics/cairo/GraphicsContext3DPrivate.h:
54912        (GraphicsContext3DPrivate):
54913        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
54914        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
54915        * platform/graphics/efl/GraphicsContext3DPrivate.h:
54916        (GraphicsContext3DPrivate):
54917        * platform/graphics/qt/GraphicsContext3DQt.cpp:
54918        (GraphicsContext3DPrivate):
54919        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
54920        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
54921        (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
54922        * platform/graphics/qt/MediaPlayerPrivateQt.h:
54923        (MediaPlayerPrivateQt):
54924        * platform/graphics/surfaces/GraphicsSurface.cpp:
54925        (WebCore::GraphicsSurface::paintToTextureMapper):
54926        * platform/graphics/surfaces/GraphicsSurface.h:
54927        (GraphicsSurface):
54928        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
54929        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
54930        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
54931        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
54932        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
54933        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
54934        * platform/graphics/texmap/TextureMapperBackingStore.h:
54935        (TextureMapperBackingStore):
54936        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
54937        (TextureMapperPlatformLayer):
54938        * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
54939        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
54940        * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
54941        (TextureMapperSurfaceBackingStore):
54942        * platform/graphics/texmap/TextureMapperTile.cpp:
54943        (WebCore::TextureMapperTile::paint):
54944        * platform/graphics/texmap/TextureMapperTile.h:
54945        (TextureMapperTile):
54946        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
54947        (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
54948        * platform/graphics/texmap/TextureMapperTiledBackingStore.h:
54949        (TextureMapperTiledBackingStore):
54950        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
54951        (WebCore::CoordinatedBackingStore::paintTilesToTextureMapper):
54952        (WebCore::CoordinatedBackingStore::paintToTextureMapper):
54953        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
54954        (CoordinatedBackingStore):
54955                Removed the "mask" parameter from TextureMapperPlatformLayer and overrides, since
54956                we no longer paint the contents and the mask in the same pass.
54957
54958        * platform/graphics/texmap/TextureMapper.cpp:
54959        (WebCore::TextureMapper::TextureMapper):
54960        * platform/graphics/texmap/TextureMapper.h:
54961        (WebCore::TextureMapper::setMaskMode):
54962        (TextureMapper):
54963        (WebCore::TextureMapper::isInMaskMode):
54964        * platform/graphics/texmap/TextureMapperGL.cpp:
54965        (WebCore::TextureMapperGL::drawNumber):
54966        (WebCore::TextureMapperGL::drawTexture):
54967        (WebCore::TextureMapperGL::draw):
54968        (WebCore):
54969        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
54970        (WebCore::TextureMapperGL::drawFiltered):
54971        * platform/graphics/texmap/TextureMapperGL.h:
54972        (TextureMapperGL):
54973        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
54974        (WebCore::TextureMapperImageBuffer::drawTexture):
54975        (WebCore::TextureMapperImageBuffer::drawSolidColor):
54976        * platform/graphics/texmap/TextureMapperImageBuffer.h:
54977        (TextureMapperImageBuffer):
54978                Instead of painting the mask together with the texture/color, paint the mask
54979                by drawing with DestinationIn to an existing surface.
54980
54981        * platform/graphics/texmap/TextureMapperLayer.cpp:
54982        (TextureMapperPaintOptions):
54983        (WebCore::TextureMapperLayer::paintSelf):
54984        (WebCore::TextureMapperLayer::shouldBlend):
54985        (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
54986        (WebCore::TextureMapperLayer::replicaTransform):
54987        (WebCore):
54988        (WebCore::applyFilters):
54989        (WebCore::resolveOverlaps):
54990        (WebCore::TextureMapperLayer::computeOverlapRegions):
54991        (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
54992        (WebCore::TextureMapperLayer::applyMask):
54993        (WebCore::TextureMapperLayer::paintIntoSurface):
54994        (WebCore::commitSurface):
54995        (WebCore::TextureMapperLayer::paintWithIntermediateSurface):
54996        (WebCore::TextureMapperLayer::paintRecursive):
54997        * platform/graphics/texmap/TextureMapperLayer.h:
54998        (WebCore):
54999        (TextureMapperLayer):
55000        (WebCore::TextureMapperLayer::hasFilters):
55001        * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
55002        (WebCore):
55003        (WebCore::TextureMapperShaderProgram::create):
55004        * platform/graphics/texmap/TextureMapperShaderProgram.h:
55005
550062013-02-27  Alexander Pavlov  <apavlov@chromium.org>
55007
55008        Web Inspector: [REGRESSION] [Audits] Disabled "Run" button styling is the same as the enabled one
55009        https://bugs.webkit.org/show_bug.cgi?id=110971
55010
55011        Reviewed by Yury Semikhatsky.
55012
55013        Split out PanelEnablerView-related rules into panelEnabledView.css and restored the missing rules
55014        in inspector.css.
55015
55016        * inspector/front-end/inspector.css:
55017        * inspector/front-end/panelEnablerView.css:
55018
550192013-02-27  Kent Tamura  <tkent@chromium.org>
55020
55021        REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
55022        https://bugs.webkit.org/show_bug.cgi?id=110974
55023
55024        Reviewed by Kentaro Hara.
55025
55026        Input elements with the multiple fields UI require flexible box
55027        layout. We should use RenderFlexibleBox regardless of display
55028        property values.
55029
55030        Tests: Update fast/forms/date/date-apparance-basic.html
55031
55032        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
55033        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer):
55034        Always use RenderFlexibleBox.
55035        * html/BaseMultipleFieldsDateAndTimeInputType.h:
55036        (BaseMultipleFieldsDateAndTimeInputType): Declare createRenderer.
55037
550382013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
55039
55040        [TexMap] Flickering after transitions on Apple HTML5 demo
55041        https://bugs.webkit.org/show_bug.cgi?id=102501
55042
55043        Reviewed by Noam Rosenthal.
55044
55045        Notify about animation start after the new animation is actually commited.
55046
55047        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
55048        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
55049        (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
55050        (WebCore::GraphicsLayerTextureMapper::addAnimation):
55051        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
55052        (GraphicsLayerTextureMapper):
55053
550542013-02-27  Vivek Galatage  <vivek.vg@samsung.com>
55055
55056        Web Inspector: Refactor AuditsPanel with AuditController as newly introduced entity
55057        https://bugs.webkit.org/show_bug.cgi?id=110866
55058
55059        Reviewed by Alexander Pavlov.
55060
55061        AuditController is being introduced in order to follow MVC pattern with the Audits.
55062        This is the first step about the refactoring. Moving the methods from the AuditsPanel
55063        into AuditController would ease the event driven approach to de-couple the AuditsPanel
55064        and the AuditLauncherView.
55065
55066        No new tests as code refactoring.
55067
55068        * WebCore.gypi:
55069        * WebCore.vcproj/WebCore.vcproj:
55070        * inspector/compile-front-end.py:
55071        * inspector/front-end/AuditController.js: Added.
55072        (WebInspector.AuditController):
55073        (WebInspector.AuditController.prototype.ruleResultReadyCallback):
55074        (WebInspector.AuditController.prototype.categoryDoneCallback):
55075        (WebInspector.AuditController.prototype._executeAudit):
55076        (WebInspector.AuditController.prototype._auditFinishedCallback):
55077        (WebInspector.AuditController.prototype.startAuditWhenResourcesReady):
55078        (WebInspector.AuditController.prototype.initiateAudit):
55079        (WebInspector.AuditController.prototype._reloadResources):
55080        (WebInspector.AuditController.prototype._didMainResourceLoad):
55081        * inspector/front-end/AuditLauncherView.js:
55082        (WebInspector.AuditLauncherView):
55083        (WebInspector.AuditLauncherView.prototype._startAudit):
55084        * inspector/front-end/AuditsPanel.js:
55085        (WebInspector.AuditsPanel):
55086        (WebInspector.AuditsPanel.prototype.auditFinishedCallback):
55087        * inspector/front-end/WebKit.qrc:
55088
550892013-02-27  Mihai Maerean  <mmaerean@adobe.com>
55090
55091        [CSS Regions] Region overset property is not properly computed when there is a region break
55092        https://bugs.webkit.org/show_bug.cgi?id=92497
55093
55094        Reviewed by David Hyatt.
55095
55096        For "paginated" content in regions that has -webkit-region-break-after:always, the bottom margin was being passed
55097        along for the next region in the chain, which shouldn't happen.
55098
55099        The fix is, at layout, to clear the bottom margin for the nodes (inside paginated contexts) that have
55100        -webkit-region-break-after:always.
55101
55102        Tests: fast/multicol/break-after-always-bottom-margin.html
55103               fast/regions/overset-break-nested.html
55104               fast/regions/overset-break-with-sibling.html
55105               fast/regions/overset-break.html
55106
55107        * rendering/RenderBlock.cpp:
55108        (WebCore::RenderBlock::applyAfterBreak):
55109
551102013-02-27  Stephen Chenney  <schenney@chromium.org>
55111
55112        Bindings test results update after r144126
55113        https://bugs.webkit.org/show_bug.cgi?id=108196
55114
55115        Unreviewed test update.
55116
55117        * bindings/scripts/test/JS/JSTestObj.cpp: Add include of CallbackFunction.h
55118
551192013-02-27  Vsevolod Vlasov  <vsevik@chromium.org>
55120
55121        Unreviewed inspector front-end closure compilaiton fix.
55122
55123        * inspector/front-end/ScriptsNavigator.js:
55124        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
55125        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
55126        * inspector/front-end/ScriptsPanel.js:
55127        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
55128
551292013-02-27  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
55130
55131        [texmap] Do not apply clip state if redundant
55132        https://bugs.webkit.org/show_bug.cgi?id=110790
55133
55134        Reviewed by Noam Rosenthal.
55135
55136        Add a bool to check if clip state has changed since last apply.
55137
55138        No behavior changes, thus covered by existing tests.
55139
55140        * platform/graphics/texmap/TextureMapperGL.cpp:
55141        (WebCore::TextureMapperGL::ClipStack::reset):
55142        (WebCore::TextureMapperGL::ClipStack::pop):
55143        (WebCore::TextureMapperGL::ClipStack::apply):
55144        * platform/graphics/texmap/TextureMapperGL.h:
55145        (WebCore::TextureMapperGL::ClipStack::ClipStack):
55146        (ClipStack):
55147
551482013-02-27  Eugene Klyuchnikov  <eustas@chromium.org>
55149
55150        Web Inspector: timeline stops working on certain sites
55151        https://bugs.webkit.org/show_bug.cgi?id=110955
55152
55153        Reviewed by Alexander Pavlov.
55154
55155        Analysis: "timerId" value is number,
55156        so it is not wrapped to node as expected.
55157
55158        Solution: wrap values of all types except Node.
55159
55160        * inspector/front-end/TimelinePresentationModel.js:
55161        Wrap nonstring values to text nodes.
55162
551632013-02-27  Adam Barth  <abarth@webkit.org>
55164
55165        HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser can trigger ASSERT(m_speculations.isEmpty())
55166        https://bugs.webkit.org/show_bug.cgi?id=110949
55167
55168        Reviewed by Eric Seidel.
55169
55170        We can hit this ASSERT if didReceiveParsedChunkFromBackgroundParser is
55171        called from the background thread while we're processing
55172        m_speculations (i.e., if processing m_speculations is taking a while
55173        and we've yielded to the event loop).
55174
55175        It's hard to write a deterministic test for this patch, but it's hit
55176        quite often with existing LayoutTests.
55177
55178        * html/parser/HTMLDocumentParser.cpp:
55179        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
55180
551812013-02-27  Kentaro Hara  <haraken@chromium.org>
55182
55183        [V8] Generate a wrapper function for named constructor callbacks
55184        https://bugs.webkit.org/show_bug.cgi?id=110794
55185
55186        Reviewed by Adam Barth.
55187
55188        This would be the final step of generating wrapper functions.
55189        The patch generates the following wrapper function for named
55190        constructor callbacks.
55191
55192        Handle<Value> namedConstructorCallback(...)
55193        {
55194            return namedConstructor(...);
55195        }
55196
55197        No tests. No change in behavior.
55198
55199        * bindings/scripts/CodeGeneratorV8.pm:
55200        (GenerateNamedConstructor):
55201        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55202        (WebCore::namedConstructor):
55203        (WebCore::namedConstructorCallback):
55204        (WebCore):
55205        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
55206        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
55207        (WebCore::namedConstructor):
55208        (WebCore::namedConstructorCallback):
55209        (WebCore):
55210        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
55211
552122013-02-26  Andrey Kosyakov  <caseq@chromium.org>
55213
55214        Web Inspector: show raster tasks on Timeline
55215        https://bugs.webkit.org/show_bug.cgi?id=105851
55216
55217        - add DeferPaint, Paint & RasterTask trace events handling to trace event processor;
55218        - upon begin frame, emit aggregated background event for all raster tasks related to inspected page.
55219
55220        Reviewed by Pavel Feldman.
55221
55222        * inspector/InspectorInstrumentation.cpp:
55223        (WebCore):
55224        (WebCore::InspectorInstrumentation::willPaintImpl):
55225        (InstrumentationEvents):
55226        (InstrumentationEventArguments):
55227        * inspector/InspectorInstrumentation.h:
55228        (InstrumentationEvents):
55229        (WebCore):
55230        (InstrumentationEventArguments):
55231        * inspector/InspectorTimelineAgent.cpp:
55232        (TimelineRecordType):
55233        (WebCore::InspectorTimelineAgent::stop):
55234        (WebCore::InspectorTimelineAgent::didBeginFrame):
55235        * inspector/InspectorTimelineAgent.h:
55236        (TimelineRecordType):
55237        (WebCore):
55238        * inspector/TimelineRecordFactory.cpp:
55239        (WebCore::TimelineRecordFactory::createRasterData):
55240        (WebCore):
55241        * inspector/TimelineRecordFactory.h:
55242        (TimelineRecordFactory):
55243        * inspector/TimelineTraceEventProcessor.cpp:
55244        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
55245        (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
55246        (WebCore):
55247        (WebCore::TimelineTraceEventProcessor::registerHandler):
55248        (WebCore::TimelineTraceEventProcessor::shutdown):
55249        (WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
55250        (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
55251        (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
55252        (WebCore::TimelineTraceEventProcessor::onBeginFrame):
55253        (WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
55254        (WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
55255        (WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
55256        (WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
55257        (WebCore::TimelineTraceEventProcessor::onLayerDeleted):
55258        (WebCore::TimelineTraceEventProcessor::onPaint):
55259        (WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
55260        (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
55261        (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
55262        * inspector/TimelineTraceEventProcessor.h:
55263        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
55264        (WebCore::TimelineTraceEventProcessor::TraceEvent::id):
55265        (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
55266        (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
55267        (TimelineTraceEventProcessor):
55268        * inspector/front-end/TimelineModel.js:
55269        * inspector/front-end/TimelinePresentationModel.js:
55270        (WebInspector.TimelinePresentationModel._initRecordStyles):
55271
552722013-02-26  Uday Kiran  <udaykiran@motorola.com>
55273
55274        getPropertyValue for -webkit-column-rule returns null, should compute the shorthand value
55275        https://bugs.webkit.org/show_bug.cgi?id=110698
55276
55277        Reviewed by Alexander Pavlov.
55278
55279        Test: fast/css/getPropertyValue-column-rule.html
55280
55281        * css/StylePropertySet.cpp:
55282        (WebCore::StylePropertySet::getPropertyValue):
55283
552842013-02-26  Uday Kiran  <udaykiran@motorola.com>
55285
55286        getPropertyValue for -webkit-margin-collapse returns null, should compute the shorthand value
55287        https://bugs.webkit.org/show_bug.cgi?id=110903
55288
55289        Reviewed by Alexander Pavlov.
55290
55291        getPropertyValue("-webkit-margin-collapse") should compute shorthand value
55292        when -webkit-margin-collapse is specified in CSS.
55293
55294        Test: fast/css/getPropertyValue-webkit-margin-collapse.html
55295
55296        * css/StylePropertySet.cpp:
55297        (WebCore::StylePropertySet::getPropertyValue):
55298
552992013-02-26  Uday Kiran  <udaykiran@motorola.com>
55300
55301        getPropertyValue for -webkit-marquee returns null, should compute the shorthand value
55302        https://bugs.webkit.org/show_bug.cgi?id=110816
55303
55304        Reviewed by Alexander Pavlov.
55305
55306        Compute the shorthand value for '-webkit-marquee' specified in CSS.
55307
55308        Test: fast/css/getPropertyValue-webkit-marquee.html
55309
55310        * css/StylePropertySet.cpp:
55311        (WebCore::StylePropertySet::getPropertyValue):
55312
553132013-02-26  Kentaro Hara  <haraken@chromium.org>
55314
55315        [V8] Remove Event::dataTransferAttrGetterCustom() and Event::valueAttrSetterCustom()
55316        https://bugs.webkit.org/show_bug.cgi?id=110666
55317
55318        Reviewed by Adam Barth.
55319
55320        Event::dataTransferAttrGetterCustom() is not used
55321        (i.e. the custom method is not registered to V8).
55322        Event::valueAttrSetterCustom() is declared but not
55323        implemented. We can remove them.
55324
55325        No tests. No change in behavior.
55326
55327        * bindings/scripts/CodeGeneratorV8.pm:
55328        (GenerateHeaderCustomCall):
55329        * bindings/v8/custom/V8EventCustom.cpp:
55330
553312013-02-26  Dimitri Glazkov  <dglazkov@chromium.org>
55332
55333        SelectorQuery should not ever use ResolvingStyle mode.
55334        https://bugs.webkit.org/show_bug.cgi?id=110843
55335
55336        It looks like we accidentally used ResolvingStyle mode for webkitMatchesSelector, and I exacerbated the problem
55337        in r143858 by switching all of SelectorQuery to use it. There aren't any visible effects, but the style bits
55338        of elements are unnecessarily twiddled when if we do that. Let's not do it.
55339
55340        Reviewed by Eric Seidel.
55341
55342        No public-facing behavior change, covered by existing tests.
55343
55344        * dom/SelectorQuery.cpp:
55345        (WebCore::SelectorDataList::selectorMatches): Switched to always use QueryingRules mode.
55346
553472013-02-26  Adam Barth  <abarth@webkit.org>
55348
55349        Silence this ASSERT. It is triggered by the threaded HTML parser.
55350        Investigation to follow in https://bugs.webkit.org/show_bug.cgi?id=110937
55351
55352        * loader/DocumentLoader.cpp:
55353        (WebCore::DocumentLoader::checkLoadComplete):
55354
553552013-02-26  Mark Lam  <mark.lam@apple.com>
55356
55357        SQLTransactionBackend::doCleanup() should not nullify its current
55358        statement and transaction error fields.
55359        https://bugs.webkit.org/show_bug.cgi?id=110826.
55360
55361        Reviewed by Geoffrey Garen.
55362
55363        The reason for this is because the frontend SQLTransaction may have
55364        tasks that are already registered via callOnMainThread(), and may
55365        invoke transaction state functions that access these objects in the
55366        SQLTransactionBackend. This proves to be problematic if the database
55367        was interrupted resulting in doCleanup() being called concurrently
55368        while those states are executing.
55369
55370        Instead, we leave their clean up to the SQLTransactionBackend destructor
55371        which is guaranteed to only be called when the SQLTransaction is also
55372        destructing i.e. these objects are no longer needed.
55373
55374        No new tests.
55375
55376        * Modules/webdatabase/SQLTransactionBackend.cpp:
55377        (WebCore::SQLTransactionBackend::doCleanup):
55378
553792013-02-26  Anders Carlsson  <andersca@apple.com>
55380
55381        Implement StorageAreaProxy::getItem and StorageAreaProxy::setItem
55382        https://bugs.webkit.org/show_bug.cgi?id=110927
55383
55384        Reviewed by Sam Weinig.
55385
55386        Export StorageMap::getItem and StorageMap::setItem.
55387
55388        * WebCore.exp.in:
55389
553902013-02-26  Adam Klein  <adamk@chromium.org>
55391
55392        Parsing of HTML tags in MathML Text Insertion Points leads to bogus parser behavior
55393        https://bugs.webkit.org/show_bug.cgi?id=110808
55394
55395        Reviewed by Adam Barth.
55396
55397        When looking for various table tags in the HTMLElementStack, compare
55398        QualifiedNames rather than just local names, where necessary.
55399
55400        Note that not all uses have been "fixed"; I've only changed for which
55401        I could write a test with differing behavior. A followup patch to
55402        rationalize the use of QualifiedName vs local names would be ideal.
55403
55404        Tests: html5lib/generated/run-math-data.html
55405               html5lib/generated/run-math-write.html
55406
55407        * html/parser/HTMLElementStack.cpp:
55408        (WebCore::inScopeCommon): Added a version of inScopeCommon that
55409        handles QualifiedNames instead of just localNames.
55410        (WebCore::HTMLElementStack::inTableScope): When given a QualifiedName,
55411        call the new version of inScopeCommon().
55412        * html/parser/HTMLTreeBuilder.cpp:
55413        (WebCore::HTMLTreeBuilder::processStartTag):
55414        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
55415        (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
55416
554172013-02-26  Kaustubh Atrawalkar  <kaustubh@motorola.com>
55418
55419        Notification.requestPermission callback should be optional
55420        https://bugs.webkit.org/show_bug.cgi?id=108196
55421
55422        Reviewed by Adam Barth.
55423
55424        Spec says it should be optional.
55425        http://notifications.spec.whatwg.org/#notification
55426
55427        Test: fast/notifications/notifications-request-permission-optional.html
55428
55429        * GNUmakefile.list.am:
55430        * Modules/notifications/Notification.h:
55431        (Notification):
55432        * Modules/notifications/Notification.idl:
55433        * Target.pri:
55434        * UseJSC.cmake:
55435        * UseV8.cmake:
55436        * WebCore.gypi:
55437        * WebCore.vcproj/WebCore.vcproj:
55438        * WebCore.vcxproj/WebCore.vcxproj:
55439        * WebCore.vcxproj/WebCore.vcxproj.filters:
55440        * WebCore.xcodeproj/project.pbxproj:
55441        * bindings/js/JSNotificationCustom.cpp: Removed.
55442        * bindings/scripts/CodeGeneratorJS.pm:
55443        (GenerateParametersCheck):
55444        * bindings/v8/custom/V8NotificationCustom.cpp: Removed.
55445
554462013-02-26  Joshua Bell  <jsbell@chromium.org>
55447
55448        IndexedDB: Add temporary diagnostic code to IDBRequest.result getter
55449        https://bugs.webkit.org/show_bug.cgi?id=110916
55450
55451        Reviewed by Kentaro Hara.
55452
55453        Implement a custom getter for IDBRequest.result that does one additional hidden
55454        property set, to try and isolate the flaky crash seen in wkbug.com/105363 which is
55455        difficult to repro locally. If the crash moves to the new line it will point
55456        the investigation in a new direction. Also add an assertion that probes string
55457        wrappers (the expected type).
55458
55459        * Modules/indexeddb/IDBRequest.idl: Mark attribute as [Custom]
55460        * WebCore.gypi: New file.
55461        * bindings/v8/custom/V8IDBRequestCustom.cpp: Added.
55462        (WebCore::V8IDBRequest::resultAttrGetterCustom): Implementation - copy/paste from
55463        generated code, plus extra setNamedHiddenReference call and string ASSERT.
55464
554652013-02-26  Anders Carlsson  <andersca@apple.com>
55466
55467        Add a couple of symbols needed by WebKit2.
55468
55469        * WebCore.exp.in:
55470
554712013-02-26  Michelangelo De Simone  <michelangelo@webkit.org>
55472
55473        [CSS Shaders] Implement color and luminosity non-separable blend modes
55474        https://bugs.webkit.org/show_bug.cgi?id=106226
55475
55476        Added the following GLSL helper functions to the CustomFilterValidatedProgram:
55477
55478            - css_Lum(C): returns the luminosity for the color C
55479            - css_ClipColor(C): clips color C
55480            - css_SetLum(C, l): sets the luminosity l on the color C
55481
55482        The above functions are being used for the "color" and "luminosity" non-separable
55483        blend modes, the relevant spec for such modes is at URL:
55484        https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
55485
55486        Reviewed by Dean Jackson.
55487
55488        Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html
55489               css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html
55490
55491        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
55492        (WebCore::CustomFilterValidatedProgram::blendFunctionString):
55493
554942013-02-26  Anders Carlsson  <andersca@apple.com>
55495
55496        StorageAreaProxy should hold on to a StorageMap and not a HashMap
55497        https://bugs.webkit.org/show_bug.cgi?id=110919
55498
55499        Reviewed by Jessie Berlin.
55500
55501        StorageMap should be a private header.
55502
55503        * WebCore.xcodeproj/project.pbxproj:
55504
555052013-02-26  Stephen Chenney  <schenney@chromium.org>
55506
55507        feDisplacementMap filter gets color space wrong
55508        https://bugs.webkit.org/show_bug.cgi?id=105929
55509
55510        Reviewed by Dirk Schulze.
55511
55512        Tests: svg/filters/feDisplacementMap-color-interpolation-filters-expected.svg
55513               svg/filters/feDisplacementMap-color-interpolation-filters.svg
55514               svg/filters/feDisplacementMap-filterUnits-expected.svg
55515               svg/filters/feDisplacementMap-filterUnits.svg
55516
55517        According to the spec, the SVG feDisplacementMap filter should not
55518        change the color space on its first input, and other vendors seem to
55519        agree that this also means that the output should be in the first
55520        input's color space. That makes sense: we are displacing the input,
55521        not otherwise manipulating colors.
55522
55523        This change improves color space handling for filters by more
55524        explicitly tracking which color space is used for the filter's
55525        operation and which is used for the filter's result. It provides a
55526        means for filter effects to override the color-interpolation-filters
55527        property as defined by the spec. feFlood and feDisplacementMap use
55528        this new feature to enforce the spec requirements.
55529
55530        * platform/graphics/filters/FEDisplacementMap.cpp:
55531        (WebCore::FEDisplacementMap::setResultColorSpace): Override the default color space with the
55532            same color space as the first input filter.
55533        (WebCore):
55534        (WebCore::FEDisplacementMap::transformResultColorSpace): Only transform the color space on
55535            the second filter input.
55536        (WebCore::FEDisplacementMap::platformApplySoftware): Make the application code more efficient,
55537            and give slightly better numerical accuracy.
55538        * platform/graphics/filters/FEDisplacementMap.h:
55539        (FEDisplacementMap): Declare setResultColorSpace.
55540        * platform/graphics/filters/FEFlood.cpp:
55541        (WebCore::FEFlood::platformApplySoftware): Remove the call that forces
55542            the result color space. We do it now in the setResultColorSpace.
55543        * platform/graphics/filters/FEFlood.h:
55544        (FEFlood): Add setResultColorSPace override that enforces sRGB color space. But not if using
55545            CG, which apparently does this this already internally.
55546        * platform/graphics/filters/FilterEffect.cpp:
55547        (WebCore::FilterEffect::FilterEffect): Rename m_colorSpace to m_operatingColorSpace.
55548        (WebCore::FilterEffect::apply): Allow filter effects to
55549            override the color space conversion of their inputs.
55550        (WebCore::FilterEffect::createImageBufferResult): Always create the
55551            image buffer with the result color space.
55552        * platform/graphics/filters/FilterEffect.h:
55553        (WebCore::FilterEffect::operatingColorSpace): New accessor.
55554        (WebCore::FilterEffect::setOperatingColorSpace): New accessor.
55555        (WebCore::FilterEffect::resultColorSpace): New accessor.
55556        (WebCore::FilterEffect::setResultColorSpace): New accessor.
55557        (FilterEffect):
55558        (WebCore::FilterEffect::transformResultColorSpace): A new virtual
55559            method that allows filter effects individual control over the color
55560            space conversion of their inputs.
55561        * platform/graphics/filters/SourceGraphic.h:
55562        (WebCore::SourceGraphic::SourceGraphic): Variable rename.
55563        * rendering/FilterEffectRenderer.cpp:
55564        (WebCore::FilterEffectRenderer::build): Use accessors to set color
55565            space to enable per-effect overrides.
55566        * rendering/svg/RenderSVGResourceFilter.cpp:
55567        (WebCore::RenderSVGResourceFilter::buildPrimitives): Use accessors to set color.
55568
555692013-02-26  Mike West  <mkwst@chromium.org>
55570
55571        X-Frame-Options should accept ALLOWALL as a valid value.
55572        https://bugs.webkit.org/show_bug.cgi?id=110857
55573
55574        Reviewed by Adam Barth.
55575
55576        DoubleClick, among others, serves ALLOWALL as a 'X-Frame-Options' value
55577        with the intent of (shock!) allowing a resource to be framed by all
55578        origins. Given its prevelance, and the fact that IE supports the header,
55579        we shouldn't call it out as invalid.
55580
55581        This patch tweaks the warning logic to only throw the warning if the
55582        header's value isn't 'ALLOWALL', 'DENY', or 'SAMEORIGIN'.
55583
55584        Test: http/tests/security/XFrameOptions/x-frame-options-allowall.html
55585
55586        * loader/FrameLoader.cpp:
55587        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
55588
555892013-02-26  Tony Chang  <tony@chromium.org>
55590
55591        CSS Flexbox: dynamically applied align-items doesn't affect item alignment
55592        https://bugs.webkit.org/show_bug.cgi?id=110341
55593
55594        Reviewed by Ojan Vafai.
55595
55596        If flex items don't change width, we don't lay them out again. This causes problems
55597        when an item goes from stretch to non-stretch since we need to relayout to get the
55598        smaller height. Fix this by marking flex items that were stretch as needing layout.
55599
55600        Test: css3/flexbox/relayout-align-items.html
55601
55602        * rendering/RenderFlexibleBox.cpp:
55603        (WebCore::resolveAlignment): Pull out common code for computing flex item style.
55604        (WebCore::RenderFlexibleBox::styleDidChange): Mark children as needing layout.
55605        (WebCore::RenderFlexibleBox::alignmentForChild): Use resolveAlignment.
55606        * rendering/RenderFlexibleBox.h:
55607
556082013-02-26  Anders Carlsson  <andersca@apple.com>
55609
55610        StorageMap can just import an entire map of items at once
55611        https://bugs.webkit.org/show_bug.cgi?id=110904
55612
55613        Reviewed by Beth Dakin.
55614
55615        Instead of iterating over the map inside StorageAreaSync, just pass it directly
55616        (through StorageAreaImpl) to StorageMap and iterate over it there.
55617
55618        * storage/StorageAreaImpl.cpp:
55619        (WebCore::StorageAreaImpl::importItems):
55620        * storage/StorageAreaImpl.h:
55621        (StorageAreaImpl):
55622        * storage/StorageAreaSync.cpp:
55623        (WebCore::StorageAreaSync::performImport):
55624        * storage/StorageMap.cpp:
55625        (WebCore::StorageMap::importItems):
55626        * storage/StorageMap.h:
55627        (StorageMap):
55628
556292013-02-26  CHAUDHARY VINEET  <rgf748@motorola.com>
55630
55631        [JSC] static methods with Callback should not have this pointer
55632        https://bugs.webkit.org/show_bug.cgi?id=110846
55633
55634        Reviewed by Kentaro Hara.
55635
55636        Fixing the JSC Codegenerator not to use 'this' pointer in static methods.
55637
55638        No new tests. 
55639
55640        * bindings/scripts/CodeGeneratorJS.pm:
55641        (GenerateParametersCheck):
55642        * bindings/scripts/test/JS/JSTestObj.cpp:
55643        (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
55644        (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
55645        * bindings/scripts/test/JS/JSTestObj.h:
55646        * bindings/scripts/test/TestObj.idl:
55647        * bindings/scripts/test/V8/V8TestObj.cpp:
55648        (WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethod):
55649        (TestObjV8Internal):
55650        (WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethodCallback):
55651        (WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethod):
55652        (WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethodCallback):
55653        (WebCore::ConfigureV8TestObjTemplate):
55654
556552013-02-20  Alpha Lam  <hclam@chromium.org>
55656
55657        GIFImageReader to read from source data directly
55658        https://bugs.webkit.org/show_bug.cgi?id=109662
55659
55660        Reviewed by Stephen White.
55661
55662        This is the first patch to improve GIF image decoding.
55663
55664        GIFImageReader has an internal 256 bytes buffer to saving incoming
55665        bytes. This mechanism is out-dated because WebKit holds the entire
55666        file in memory and it is not necessary to hold data in an intermediate
55667        buffer.
55668
55669        This is also a blocker for later work to parse and decode GIF
55670        incrementally.
55671
55672        This change removed the imtermediate 'hold' buffer and uses an index
55673        for data position to keep track of parsing of the GIF file. Buffer for
55674        global colormap and local colormap are also removed because they can be
55675        referenced from the data stream.
55676
55677        This change is tested by:
55678
55679        Layout tests
55680        All tests passed under fast/images.
55681
55682        Unit tests
55683        Added GIFImageDecoderTest for Chromium.
55684
55685        Local testing
55686        I tested this implementation against a set of 50k GIF images and
55687        there's no crashes and produces bit-exact results as previous code.
55688
55689        * platform/image-decoders/gif/GIFImageDecoder.cpp:
55690        (WebCore::GIFImageDecoder::setData):
55691        (WebCore::GIFImageDecoder::frameCount):
55692        (WebCore::GIFImageDecoder::haveDecodedRow):
55693        (WebCore::GIFImageDecoder::decode):
55694        * platform/image-decoders/gif/GIFImageReader.cpp:
55695        (GIFImageReader::doLZW):
55696        (GIFImageReader::decode):
55697        (GIFImageReader::decodeInternal):
55698        (GIFImageReader::setRemainingBytes):
55699        * platform/image-decoders/gif/GIFImageReader.h:
55700        (GIFFrameContext):
55701        (GIFFrameContext::GIFFrameContext):
55702        (GIFFrameContext::~GIFFrameContext):
55703        (GIFImageReader::GIFImageReader):
55704        (GIFImageReader::~GIFImageReader):
55705        (GIFImageReader::setData):
55706        (GIFImageReader):
55707        (GIFImageReader::globalColormap):
55708        (GIFImageReader::localColormap):
55709        (GIFImageReader::localColormapSize):
55710        (GIFImageReader::data):
55711        (GIFImageReader::colormap):
55712
557132013-02-26  Christian Biesinger  <cbiesinger@chromium.org>
55714
55715        Empty <button>s should collapse; empty <input type="button"> should not collapse
55716        https://bugs.webkit.org/show_bug.cgi?id=110654
55717
55718        Reviewed by Ojan Vafai.
55719
55720        This patch also fixes other height computation issues with flex boxes
55721        related to scroll bars and hasLineIfEmpty()=true. See below for
55722        details.
55723
55724        Tests: css3/flexbox/button.html
55725               css3/flexbox/position-absolute-child-with-contenteditable.html
55726
55727        * rendering/RenderBlock.cpp:
55728        (WebCore::RenderBlock::layoutBlock): Add a FIXME to make
55729        border/padding/scrollbar inclusion more consistent with other
55730        renderers.
55731        * rendering/RenderButton.h:
55732        (WebCore::RenderButton::hasLineIfEmpty): We only want a line for
55733        <input type=button|submit|reset>, for consistency with Firefox.
55734
55735        * rendering/RenderFlexibleBox.cpp:
55736        (WebCore::RenderFlexibleBox::layoutBlock): Start out layoutBlock by
55737        setting the logical height to border + padding + scrollbar height to
55738        ensure that we have space for the scrollbar even without children. The
55739        layoutFlexItems change below is not enough because we also need this
55740        when hasLineIfEmpty() is false.
55741        (WebCore::RenderFlexibleBox::layoutFlexItems): Ensure we have a line
55742        when hasLineIfEmpty() is true by calling setLogicalHeight(border+
55743        padding+scrollbar+lineHeight()) if we don't have a flex line.
55744
557452013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
55746
55747        Unreviewed, rolling out r143941.
55748        http://trac.webkit.org/changeset/143941
55749        https://bugs.webkit.org/show_bug.cgi?id=110901
55750
55751        This is a step in the wrong direction as it ties us to what
55752        grid-{row|column} expect (see
55753        https://bugs.webkit.org/show_bug.cgi?id=110777 for the right
55754        direction) (Requested by jchaffraix on #webkit).
55755
55756        * css/CSSComputedStyleDeclaration.cpp:
55757        (WebCore::valueForGridPosition):
55758        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
55759        * css/StyleResolver.cpp:
55760        (WebCore::createGridPosition):
55761        (WebCore::StyleResolver::applyProperty):
55762        * rendering/RenderGrid.cpp:
55763        (WebCore::RenderGrid::maximumIndexInDirection):
55764        (WebCore::RenderGrid::placeItemsOnGrid):
55765        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
55766        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
55767        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
55768        (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
55769        (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
55770        * rendering/RenderGrid.h:
55771        * rendering/style/GridPosition.h:
55772        * rendering/style/RenderStyle.h:
55773        * rendering/style/StyleGridItemData.h:
55774        (StyleGridItemData):
55775
557762013-02-26  Jer Noble  <jer.noble@apple.com>
55777
55778        Unreviewed build fix; use correct macro for platform name in FeatureDefines.xcconfig.
55779
55780        * Configurations/FeatureDefines.xcconfig:
55781
557822013-02-26  Andrew Lo  <anlo@rim.com>
55783
55784        [BlackBerry] Animated images not animating on accelerated compositing layers
55785        https://bugs.webkit.org/show_bug.cgi?id=110886
55786
55787        Reviewed by Rob Buis.
55788
55789        Internally reviewed by Arvid Nilsson.
55790        Internal PR 299598.
55791
55792        Animated images on AC layers call GraphicsLayer::setContentsToImage
55793        on each frame with the same Image.
55794
55795        We need to set needs display in that case so that the frames are
55796        displayed.
55797
55798        No new tests are needed since there is no new functionality.
55799
55800        * platform/graphics/blackberry/LayerWebKitThread.cpp:
55801        (WebCore::LayerWebKitThread::setContents):
55802
558032013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
55804
55805        Unreviewed, rolling out r144065.
55806        http://trac.webkit.org/changeset/144065
55807        https://bugs.webkit.org/show_bug.cgi?id=110896
55808
55809        Causing failures and crashes on Chromium Win7 and Win XP
55810        (Requested by schenney on #webkit).
55811
55812        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
55813        (WebCore::normalizeCharacters):
55814        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
55815        * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
55816        (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
55817
558182013-02-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
55819
55820        [TexMap] Ignore layer repaint request when drawsContent is false
55821        https://bugs.webkit.org/show_bug.cgi?id=110888
55822
55823        Reviewed by Noam Rosenthal.
55824
55825        As long as drawsContent is false we should ignore requests for repaints.
55826        A full repaint will be requested when drawsContent is changed to true.
55827
55828        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
55829        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
55830        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
55831        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
55832
558332013-02-26  Joshua Bell  <jsbell@chromium.org>
55834
55835        IndexedDB: IDBObjectStore.index() doesn't report errors after deleteIndex()
55836        https://bugs.webkit.org/show_bug.cgi?id=110792
55837
55838        Reviewed by Tony Chang.
55839
55840        The object store's metadata wasn't updated if the index hadn't been accessed
55841        by script and hence placed in the name->object map. Make sure the metadata
55842        is always updated.
55843
55844        Test: storage/indexeddb/deleteIndex-bug110792.html
55845
55846        * Modules/indexeddb/IDBObjectStore.cpp:
55847        (WebCore::IDBObjectStore::deleteIndex): Always update the object store's metadata.
55848
558492013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
55850
55851        Unreviewed, rolling out r144019.
55852        http://trac.webkit.org/changeset/144019
55853        https://bugs.webkit.org/show_bug.cgi?id=110892
55854
55855        due to 8% perf regression on chromium-win7 intl1 page cycler,
55856        see https://bugs.webkit.org/show_bug.cgi?id=110872 (Requested
55857        by gasubic on #webkit).
55858
55859        * platform/text/LineBreakIteratorPoolICU.h:
55860        (WebCore::LineBreakIteratorPool::take):
55861        (WebCore::LineBreakIteratorPool::put):
55862        (LineBreakIteratorPool):
55863        * platform/text/TextBreakIterator.h:
55864        (WebCore):
55865        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
55866        (WebCore::LazyLineBreakIterator::get):
55867        (WebCore::LazyLineBreakIterator::reset):
55868        (LazyLineBreakIterator):
55869        * platform/text/TextBreakIteratorICU.cpp:
55870        (WebCore::acquireLineBreakIterator):
55871        (WebCore::releaseLineBreakIterator):
55872        * rendering/RenderBlockLineLayout.cpp:
55873        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
55874        * rendering/RenderText.cpp:
55875        (WebCore::RenderText::computePreferredLogicalWidths):
55876        * rendering/RenderText.h:
55877        (WebCore):
55878        * rendering/break_lines.cpp:
55879        (WebCore):
55880        (WebCore::isBreakableSpace):
55881        (WebCore::needsLineBreakIterator):
55882        (WebCore::nextBreakablePosition):
55883        (WebCore::nextBreakablePositionIgnoringNBSP):
55884        * rendering/break_lines.h:
55885        (WebCore):
55886        (WebCore::isBreakable):
55887
558882013-02-26  Dana Jansens  <danakj@chromium.org>
55889
55890        Create the SharedGraphicsContext3D through its own method.
55891        https://bugs.webkit.org/show_bug.cgi?id=109345
55892
55893        Reviewed by James Robinson.
55894
55895        Allow creating a GraphicsContext3DPrivate from an externally owned
55896        WebGraphicsContext3D and GrContext. Then create the shared graphics
55897        context from these provided by the embedder.
55898
55899        This falls back to the old path if the new methods return NULL to
55900        let us land this immediately and then transition the chromium side
55901        over to this path.
55902
55903        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
55904        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
55905        (WebCore):
55906        (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromExternalWebContextAndGrContext):
55907        (WebCore::GraphicsContext3DPrivate::grContext):
55908        * platform/chromium/support/GraphicsContext3DPrivate.h:
55909        (GraphicsContext3DPrivate):
55910        (WebCore::GraphicsContext3DPrivate::webContext):
55911        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
55912        (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
55913
559142013-02-26  Antti Koivisto  <antti@apple.com>
55915
55916        REGRESSION(r143986): fast/files/revoke-blob-url.html asserts
55917        https://bugs.webkit.org/show_bug.cgi?id=110885
55918        
55919        Reviewed by Alexey Proskuryakov.
55920
55921        The ResourceRequest string constructor assumes that the string is a valid URL. Use KURL constructor instead.
55922
55923        * html/DOMURL.cpp:
55924        (WebCore::DOMURL::revokeObjectURL):
55925
559262013-02-26  Dean Jackson  <dino@apple.com>
55927
55928        Draw intermediate snapshots if possible
55929        https://bugs.webkit.org/show_bug.cgi?id=110811
55930
55931        Reviewed by Simon Fraser.
55932
55933        After http://webkit.org/b/110495 we delayed snapshotting until we've
55934        received a nice image, but this made the page look like it is broken.
55935        We should draw any intermediate snapshots that we find, which might
55936        include content such as progress bars/spinners.
55937
55938        * html/HTMLPlugInElement.h:
55939        (WebCore::HTMLPlugInElement::isPlugInImageElement): Expose virtual method
55940        to indicate if this is a HTMLPlugInImageElement or not.
55941        * html/HTMLPlugInImageElement.cpp:
55942        (WebCore::HTMLPlugInImageElement::updateSnapshot): If we have
55943        a RenderEmbeddedObject renderer, then tell it to repaint.
55944        * html/HTMLPlugInImageElement.h:
55945        (WebCore::HTMLPlugInImageElement::snapshotImage): Expose an
55946        accessor for snapshot images.
55947        * rendering/RenderEmbeddedObject.cpp:
55948        (WebCore::RenderEmbeddedObject::paintSnapshotImage): New helper
55949        method to render an image directly. This code is similar to
55950        that in RenderSnapshottedPlugIn.
55951        (WebCore::RenderEmbeddedObject::paintContents): The virtual implementation
55952        of this method for use when we have a snapshot to paint. If we are a plugin that is
55953        in the process of being snapshotted, ask our HTMLPlugInImageElement for a
55954        snapshot and paint that instead. In the case where we are not snapshotting,
55955        or we do not yet have a snapshot, this will call back into the RenderWidget code.
55956        * rendering/RenderEmbeddedObject.h:
55957        (RenderEmbeddedObject): New methods paintSnapshotImage and paintContents
55958        * rendering/RenderWidget.cpp:
55959        (WebCore::RenderWidget::paintContents): New method called in the middle
55960        of paint() that can be overridden by RenderEmbeddedObject. The code here was
55961        simply moved out of the previous paint().
55962        (WebCore::RenderWidget::paint): Call paintContents at the appropriate time.
55963        * rendering/RenderWidget.h:
55964        (RenderWidget): New virtual method paintContents.
55965
559662013-02-26  Levi Weintraub  <leviw@chromium.org>
55967
55968        Add support for 8 bit TextRuns for Chromium/HarfBuzz
55969        https://bugs.webkit.org/show_bug.cgi?id=99393
55970
55971        Reviewed by Eric Seidel.
55972
55973        Adding support for 8 bit TextRuns for platforms using HarfBuzz. To accomplish this,
55974        8 bit text runs are upconverted to 16 bit in the complex text path during string
55975        normalization, as HarfBuzz operates on UChars.
55976
55977        No new tests. No change in behavior.
55978
55979        (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
55980        * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
55981        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
55982        (WebCore::normalizeCharacters):
55983        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
55984
559852013-02-26  Dmitry Zvorygin  <zvorygin@chromium.org>
55986
55987        Merged Tip and Debug log levels for web console.
55988        https://bugs.webkit.org/show_bug.cgi?id=109919
55989
55990        Reviewed by Pavel Feldman.
55991
55992        In every component either TIP or DEBUG level was used for reporting,
55993        but not both. This patch is prerequisite for Web Inspector console log filtering.
55994
55995        * css/MediaList.cpp:
55996        (WebCore::addResolutionWarningMessageToConsole):
55997        * inspector/ConsoleMessage.cpp:
55998        (WebCore::messageLevelValue):
55999        * loader/appcache/ApplicationCacheGroup.cpp:
56000        (WebCore::ApplicationCacheGroup::abort):
56001        * page/Console.cpp:
56002        (WebCore::printMessageSourceAndLevelPrefix):
56003        * page/ConsoleTypes.h:
56004        * xml/XSLTProcessorLibxslt.cpp:
56005        (WebCore::XSLTProcessor::parseErrorFunc):
56006        * xml/XSLTProcessorQt.cpp:
56007        (WebCore::XSLTMessageHandler::handleMessage):
56008
560092013-02-26  Alberto Garcia  <agarcia@igalia.com>
56010
56011        [BlackBerry] Upstream the datalist support UI
56012        https://bugs.webkit.org/show_bug.cgi?id=110736
56013
56014        Reviewed by Rob Buis.
56015
56016        Original code by Otto Derek Cheung <otcheung@rim.com>
56017
56018        * css/themeBlackBerry.css:
56019        (input::-webkit-suggestion-dropdown-box):
56020        (input::-webkit-suggestion-dropdown-box-item):
56021        (input::-webkit-suggestion-prefix-text):
56022        (input::-webkit-suggestion-dropdown-box-item-last):
56023        * platform/blackberry/RenderThemeBlackBerry.cpp:
56024        (WebCore::RenderThemeBlackBerry::supportsDataListUI):
56025        (WebCore):
56026        * platform/blackberry/RenderThemeBlackBerry.h:
56027        (RenderThemeBlackBerry):
56028
560292013-02-26  Andrey Kosyakov  <caseq@chromium.org>
56030
56031        Web Inspector: plumb trace events to Timeline agent
56032        https://bugs.webkit.org/show_bug.cgi?id=105796
56033
56034        Reviewed by Pavel Feldman.
56035
56036        - plumb trace events to Timeline;
56037        - add TimelineTraceEventProcessor to process selected trace events;
56038        - emit timeline events from TimelineTraceEventProcessor.
56039
56040        Note that actual event processing logic is a separate change.
56041
56042        * CMakeLists.txt: Added TimelineTraceEventProcessor.{h,cpp}.
56043        * GNUmakefile.list.am:  Ditto.
56044        * Target.pri: Ditto.
56045        * WebCore.gypi: Ditto.
56046        * WebCore.vcproj/WebCore.vcproj: Ditto.
56047        * WebCore.xcodeproj/project.pbxproj: Ditto.
56048        * inspector/InspectorAllInOne.cpp: Ditto.
56049        * inspector/InspectorClient.h:
56050        (InspectorClient):
56051        (WebCore::InspectorClient::setTraceEventCallback):
56052        * inspector/InspectorTimelineAgent.cpp: create/destroy trace event processor on start/stop.
56053        (WebCore::InspectorTimelineAgent::start): 
56054        (WebCore::InspectorTimelineAgent::stop):
56055        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
56056        (WebCore::InspectorTimelineAgent::page):
56057        (WebCore):
56058        * inspector/InspectorTimelineAgent.h:
56059        (WebCore):
56060        (InspectorTimelineAgent):
56061        * inspector/TimelineTraceEventProcessor.cpp: Added.
56062        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
56063        (WebCore):
56064        (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
56065        (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
56066        (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
56067        (WebCore::TimelineTraceEventProcessor::processEvent):
56068        (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
56069        (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
56070        * inspector/TimelineTraceEventProcessor.h: Added.
56071        (WebCore):
56072        (TimelineTraceEventProcessor):
56073        (TraceEvent):
56074        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
56075        (WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
56076        (WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
56077        (WebCore::TimelineTraceEventProcessor::TraceEvent::name):
56078        (WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
56079        (WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
56080        (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
56081        (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
56082        (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
56083        (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
56084        (WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
56085        (WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
56086        (EventTypeEntry):
56087
560882013-02-18  Eugene Klyuchnikov  <eustas@chromium.org>
56089
56090        Web Inspector: Web Inspector: Specify return type of WebInspector.UIString
56091        https://bugs.webkit.org/show_bug.cgi?id=110095
56092
56093        Reviewed by Pavel Feldman.
56094
56095        Specify return type of WebInspector.UIString.
56096        Fix new js-compiler warnings.
56097
56098        This change will increase type coverage by 0.4% (to 81%)
56099
56100        * inspector/front-end/ObjectPropertiesSection.js: Fix type errors.
56101        * inspector/front-end/UIString.js:
56102        (WebInspector.UIString): Return type specified.
56103
561042013-02-26  Eugene Klyuchnikov  <eustas@chromium.org>
56105
56106        Web Inspector: [Resources] Cookies table looks empty.
56107        https://bugs.webkit.org/show_bug.cgi?id=110870
56108
56109        Reviewed by Pavel Feldman.
56110
56111        Fixed data-grid selector.
56112
56113        * inspector/front-end/resourcesPanel.css:
56114        (.storage-view .data-grid): Fixed selector.
56115
561162013-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
56117
56118        Web Inspector: Migrate FileSystem inspection support to ResourceTreeModel's SecurityOriginAdded/Removed events.
56119        https://bugs.webkit.org/show_bug.cgi?id=110878
56120
56121        Reviewed by Alexander Pavlov.
56122
56123        Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
56124        FileSystemModel. This patch migrates FileSystem inspection support to new events.
56125
56126        * inspector/front-end/FileSystemModel.js:
56127        (WebInspector.FileSystemModel):
56128        (WebInspector.FileSystemModel.prototype._reset):
56129        (WebInspector.FileSystemModel.prototype._securityOriginAdded):
56130        (WebInspector.FileSystemModel.prototype._securityOriginRemoved):
56131        (WebInspector.FileSystemModel.prototype._addOrigin):
56132        (WebInspector.FileSystemModel.prototype._removeOrigin):
56133        (WebInspector.FileSystemModel.prototype.refreshFileSystemList):
56134
561352013-02-26  Antoine Quint  <graouts@apple.com>
56136
56137        Web Inspector: Cannot deep expand an element that has previously been partially expanded
56138        https://bugs.webkit.org/show_bug.cgi?id=110424
56139
56140        In the case where the children from the provided node have already been pushed, traverse
56141        children at the depth provided until we find children that have not been pushed yet.
56142
56143        Reviewed by Pavel Feldman.
56144
56145        * inspector/InspectorDOMAgent.cpp:
56146        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
56147
561482013-02-26  Andrey Kosyakov  <caseq@chromium.org>
56149
56150        Unreviewed, rolling out r144041, r144044, and r144048.
56151        http://trac.webkit.org/changeset/144041
56152        http://trac.webkit.org/changeset/144044
56153        http://trac.webkit.org/changeset/144048
56154        https://bugs.webkit.org/show_bug.cgi?id=105796
56155
56156        Broke build
56157
56158        * CMakeLists.txt:
56159        * GNUmakefile.list.am:
56160        * Target.pri:
56161        * WebCore.gypi:
56162        * WebCore.vcproj/WebCore.vcproj:
56163        * WebCore.xcodeproj/project.pbxproj:
56164        * inspector/InspectorAllInOne.cpp:
56165        * inspector/InspectorClient.h:
56166        * inspector/InspectorInstrumentation.cpp:
56167        (WebCore):
56168        (WebCore::InspectorInstrumentation::willPaintImpl):
56169        * inspector/InspectorInstrumentation.h:
56170        * inspector/InspectorTimelineAgent.cpp:
56171        (TimelineRecordType):
56172        (WebCore::InspectorTimelineAgent::start):
56173        (WebCore::InspectorTimelineAgent::stop):
56174        (WebCore::InspectorTimelineAgent::didBeginFrame):
56175        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
56176        * inspector/InspectorTimelineAgent.h:
56177        (WebCore):
56178        (InspectorTimelineAgent):
56179        * inspector/TimelineRecordFactory.cpp:
56180        * inspector/TimelineRecordFactory.h:
56181        * inspector/TimelineTraceEventProcessor.cpp: Removed.
56182        * inspector/TimelineTraceEventProcessor.h: Removed.
56183        * inspector/front-end/TimelineModel.js:
56184        * inspector/front-end/TimelinePresentationModel.js:
56185        (WebInspector.TimelinePresentationModel._initRecordStyles):
56186
561872013-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
56188
56189        Web Inspector: Migrate IndexedDB support to ResourceTreeModel's SecurityOriginAdded/Removed events.
56190        https://bugs.webkit.org/show_bug.cgi?id=110863
56191
56192        Reviewed by Alexander Pavlov.
56193
56194        Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
56195        IndexedDBModel. This patch migrates IndexedDB support to new events.
56196
56197        * inspector/Inspector.json:
56198        * inspector/InspectorIndexedDBAgent.cpp:
56199        (WebCore):
56200        (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
56201        (WebCore::InspectorIndexedDBAgent::requestDatabase):
56202        (WebCore::InspectorIndexedDBAgent::requestData):
56203        * inspector/InspectorIndexedDBAgent.h:
56204        (InspectorIndexedDBAgent):
56205        * inspector/front-end/IndexedDBModel.js:
56206        (WebInspector.IndexedDBModel):
56207        (WebInspector.IndexedDBModel.prototype._reset):
56208        (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
56209        (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
56210        (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
56211        (WebInspector.IndexedDBModel.prototype._addOrigin):
56212        (WebInspector.IndexedDBModel.prototype._removeOrigin):
56213        (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
56214        (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
56215        (WebInspector.IndexedDBModel.prototype._loadDatabase):
56216        (WebInspector.IndexedDBModel.prototype.):
56217        (WebInspector.IndexedDBModel.prototype._requestData):
56218        * inspector/front-end/ResourceTreeModel.js:
56219        (WebInspector.ResourceTreeModel.prototype.securityOrigins):
56220
562212013-02-26  Alexander Pavlov  <apavlov@chromium.org>
56222
56223        Web Inspector: in protocol make field "securityOrigin" in type Page.Frame mandatory
56224        https://bugs.webkit.org/show_bug.cgi?id=80857
56225
56226        Reviewed by Vsevolod Vlasov.
56227
56228        Frame.securityOrigin has always been set to a valid value, so this change just fixes
56229        the protocol flaw.
56230
56231        * inspector/Inspector.json:
56232        * inspector/InspectorPageAgent.cpp:
56233        (WebCore::InspectorPageAgent::buildObjectForFrame):
56234        * inspector/front-end/ResourceTreeModel.js:
56235        (WebInspector.ResourceTreeFrame):
56236        (WebInspector.ResourceTreeFrame.prototype._navigate):
56237
562382013-02-26  Andrey Kosyakov  <caseq@chromium.org>
56239
56240        Unreviewed build fix following r144041.
56241
56242        * inspector/TimelineTraceEventProcessor.h:
56243        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
56244
562452013-02-26  Vivek Galatage  <vivek.vg@samsung.com>
56246
56247        Web Inspector: DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
56248        https://bugs.webkit.org/show_bug.cgi?id=110862
56249
56250        Reviewed by Alexander Pavlov.
56251
56252        While deleting entries in the DataGrid, deleting of selected node should trigger selection of
56253        next possible (backward/forward) DataGridNode.
56254
56255        * inspector/front-end/DataGrid.js:
56256        (WebInspector.DataGrid.prototype._keyDown):
56257        (WebInspector.DataGridNode.prototype.get leftPadding):
56258        (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
56259
562602013-02-26  Andrey Kosyakov  <caseq@chromium.org>
56261
56262        Web Inspector: show raster tasks on Timeline
56263        https://bugs.webkit.org/show_bug.cgi?id=105851
56264
56265        - add PaintLayer, Paint & RasterTask trace events handling to trace event processor;
56266        - upon begin frame, emit aggregated background event for all raster tasks related to the inspected page.
56267
56268        Reviewed by Pavel Feldman.
56269
56270        * inspector/InspectorInstrumentation.cpp:
56271        (WebCore):
56272        (WebCore::InspectorInstrumentation::willPaintImpl):
56273        (InstrumentationEvents):
56274        (InstrumentationEventArguments):
56275        * inspector/InspectorInstrumentation.h:
56276        (InstrumentationEvents):
56277        (WebCore):
56278        (InstrumentationEventArguments):
56279        * inspector/InspectorTimelineAgent.cpp:
56280        (TimelineRecordType):
56281        (WebCore::InspectorTimelineAgent::stop):
56282        (WebCore::InspectorTimelineAgent::didBeginFrame):
56283        * inspector/InspectorTimelineAgent.h:
56284        (TimelineRecordType):
56285        (WebCore):
56286        * inspector/TimelineRecordFactory.cpp:
56287        (WebCore::TimelineRecordFactory::createRasterData):
56288        (WebCore):
56289        * inspector/TimelineRecordFactory.h:
56290        (TimelineRecordFactory):
56291        * inspector/TimelineTraceEventProcessor.cpp:
56292        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
56293        (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
56294        (WebCore):
56295        (WebCore::TimelineTraceEventProcessor::registerHandler):
56296        (WebCore::TimelineTraceEventProcessor::shutdown):
56297        (WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
56298        (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
56299        (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
56300        (WebCore::TimelineTraceEventProcessor::onBeginFrame):
56301        (WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
56302        (WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
56303        (WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
56304        (WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
56305        (WebCore::TimelineTraceEventProcessor::onLayerDeleted):
56306        (WebCore::TimelineTraceEventProcessor::onPaint):
56307        (WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
56308        (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
56309        (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
56310        * inspector/TimelineTraceEventProcessor.h:
56311        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
56312        (WebCore::TimelineTraceEventProcessor::TraceEvent::id):
56313        (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
56314        (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
56315        (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
56316        (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
56317        (TimelineTraceEventProcessor):
56318        * inspector/front-end/TimelineModel.js:
56319        * inspector/front-end/TimelinePresentationModel.js:
56320        (WebInspector.TimelinePresentationModel._initRecordStyles):
56321
563222013-02-26  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
56323
56324        Work around a MSVC 2012 Update 1 bug causing a crash on x86
56325        https://bugs.webkit.org/show_bug.cgi?id=110488
56326
56327        Reviewed by Anders Carlsson.
56328
56329        The crash happens when building with /O2, where TextEncodingNameHash::equal is
56330        incorrectly optimized with the inlined toASCIILower and uses a register already in use.
56331        The function returns false incorrectly, causing a mismatch of text encoding name which
56332        then results in a null pointer access.
56333
56334        Slightly rewording the use of the inline function lets the compiler produce correct code.
56335
56336        The bug has already been reported and should be fixed in the next release of MSVS later this year.
56337        https://connect.microsoft.com/VisualStudio/feedback/details/777533/vs2012-c-optimizing-bug-when-using-inline-and-char-return-type-x86-target-only
56338
56339        * platform/text/TextEncodingRegistry.cpp:
56340
563412013-02-01  Andrey Kosyakov  <caseq@chromium.org>
56342
56343        Web Inspector: plumb trace events to Timeline agent
56344        https://bugs.webkit.org/show_bug.cgi?id=105796
56345
56346        Reviewed by Pavel Feldman.
56347
56348        - plumb trace events to Timeline;
56349        - add TimelineTraceEventProcessor to process selected trace events;
56350        - emit timeline events from TimelineTraceEventProcessor.
56351
56352        Note that actual event processing logic is a separate change.
56353
56354        * CMakeLists.txt:
56355        * GNUmakefile.list.am:
56356        * Target.pri:
56357        * WebCore.gypi:
56358        * WebCore.vcproj/WebCore.vcproj:
56359        * WebCore.xcodeproj/project.pbxproj:
56360        * inspector/Inspector.json:
56361        * inspector/InspectorAllInOne.cpp:
56362        * inspector/InspectorClient.h:
56363        (InspectorClient):
56364        (WebCore::InspectorClient::setTraceEventCallback):
56365        * inspector/InspectorTimelineAgent.cpp:
56366        (WebCore::InspectorTimelineAgent::start):
56367        (WebCore::InspectorTimelineAgent::stop):
56368        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
56369        (WebCore::InspectorTimelineAgent::appendBackgroundThreadRecord):
56370        (WebCore):
56371        (WebCore::InspectorTimelineAgent::page):
56372        * inspector/InspectorTimelineAgent.h:
56373        (WebCore):
56374        (InspectorTimelineAgent):
56375        * inspector/TimelineTraceEventProcessor.cpp: Added.
56376        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
56377        (WebCore):
56378        (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
56379        (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
56380        (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
56381        (WebCore::TimelineTraceEventProcessor::processEvent):
56382        (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
56383        (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
56384        * inspector/TimelineTraceEventProcessor.h: Added.
56385        (WebCore):
56386        (TimelineTraceEventProcessor):
56387        (TraceEvent):
56388        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
56389        (WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
56390        (WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
56391        (WebCore::TimelineTraceEventProcessor::TraceEvent::name):
56392        (WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
56393        (WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
56394        (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
56395        (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
56396        (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
56397        (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
56398        (WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
56399        (WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
56400        (EventTypeEntry):
56401        * inspector/front-end/TimelineFrameController.js:
56402        (WebInspector.TimelineFrameController.prototype._addRecord):
56403        * inspector/front-end/TimelinePanel.js:
56404        (WebInspector.TimelineRecordListRow.prototype.update):
56405        (WebInspector.TimelineRecordGraphRow.prototype.update):
56406        * inspector/front-end/TimelinePresentationModel.js:
56407        (WebInspector.TimelinePresentationModel.Record):
56408        (WebInspector.TimelinePresentationModel.insertRetrospecitveRecord):
56409        (WebInspector.TimelinePresentationModel.Record.prototype.get isBackground):
56410        * inspector/front-end/timelinePanel.css:
56411        (.timeline-tree-item.background .timeline-tree-icon):
56412        (.timeline-graph-side.background .timeline-graph-bar):
56413
564142013-02-01  Andrey Kosyakov  <caseq@chromium.org>
56415
56416        Web Inspector: display background events on Timeline
56417        https://bugs.webkit.org/show_bug.cgi?id=108599
56418
56419        Reviewed by Pavel Feldman.
56420
56421        - add optional `thread' field to timeline event;
56422        - if thread field is present, display the event as 'background' (hollow bar / list icon), align to nearest foreground event;
56423        - do not account background events in Frame mode of overview.
56424
56425        * inspector/Inspector.json:
56426        * inspector/InspectorTimelineAgent.cpp:
56427        (WebCore::InspectorTimelineAgent::appendBackgroundThreadRecord):
56428        (WebCore):
56429        * inspector/InspectorTimelineAgent.h:
56430        (InspectorTimelineAgent):
56431        * inspector/front-end/TimelineFrameController.js:
56432        (WebInspector.TimelineFrameController.prototype._addRecord):
56433        * inspector/front-end/TimelinePanel.js:
56434        (WebInspector.TimelineRecordListRow.prototype.update):
56435        (WebInspector.TimelineRecordGraphRow.prototype.update):
56436        * inspector/front-end/TimelinePresentationModel.js:
56437        (WebInspector.TimelinePresentationModel.Record):
56438        (WebInspector.TimelinePresentationModel.insertRetrospecitveRecord):
56439        (WebInspector.TimelinePresentationModel.Record.prototype.get isBackground):
56440        * inspector/front-end/timelinePanel.css:
56441        (.timeline-tree-item.background .timeline-tree-icon):
56442        (.timeline-graph-side.background .timeline-graph-bar):
56443
564442013-02-26  Kentaro Hara  <haraken@chromium.org>
56445
56446        [V8] Rename BatchedCallback to BatchedMethod
56447        https://bugs.webkit.org/show_bug.cgi?id=110791
56448
56449        Reviewed by Adam Barth.
56450
56451        Now 'Callback' is used to refer to functions that are called back
56452        by V8. DOM methods should be referred to as 'Method's.
56453
56454        No tests. No change in behavior.
56455
56456        * bindings/scripts/CodeGeneratorV8.pm:
56457        (GenerateImplementation):
56458        * bindings/scripts/test/V8/V8Float64Array.cpp:
56459        (WebCore):
56460        (WebCore::ConfigureV8Float64ArrayTemplate):
56461        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
56462        (WebCore):
56463        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
56464        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
56465        (WebCore):
56466        (WebCore::ConfigureV8TestEventTargetTemplate):
56467        * bindings/scripts/test/V8/V8TestInterface.cpp:
56468        (WebCore):
56469        (WebCore::ConfigureV8TestInterfaceTemplate):
56470        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
56471        (WebCore):
56472        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
56473        * bindings/scripts/test/V8/V8TestObj.cpp:
56474        (WebCore):
56475        (WebCore::ConfigureV8TestObjTemplate):
56476        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
56477        (WebCore):
56478        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
56479        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
56480        (WebCore):
56481        (WebCore::ConfigureV8TestTypedefsTemplate):
56482        * bindings/v8/V8DOMConfiguration.cpp:
56483        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
56484        (WebCore::V8DOMConfiguration::configureTemplate):
56485        * bindings/v8/V8DOMConfiguration.h:
56486        (V8DOMConfiguration):
56487
564882013-02-26  Takashi Toyoshima  <toyoshim@chromium.org>
56489
56490        Add User-Agent header in opening handshake headers.
56491        https://bugs.webkit.org/show_bug.cgi?id=110601
56492
56493        Reviewed by Alexey Proskuryakov.
56494
56495        RFC-6455 doesn't require to send User-Agent header, but allow it.
56496        Many web application developers want to have it, and Firefox already
56497        did it. This patch adds User-Agent header in opening handshake also in
56498        WebKit ports.
56499
56500        Test: http/tests/websocket/tests/hybi/useragent-in-openinghandshake.html
56501
56502        * Modules/websockets/WebSocketHandshake.cpp:
56503        (WebCore::WebSocketHandshake::clientHandshakeMessage):
56504        (WebCore::WebSocketHandshake::clientHandshakeRequest):
56505
565062013-02-26  Mike West  <mkwst@chromium.org>
56507
56508        XSSAuditor: Don't rely on implicit casting when copying the document's KURL to String.
56509        https://bugs.webkit.org/show_bug.cgi?id=110859
56510
56511        Reviewed by Jochen Eisinger.
56512
56513        XSSAuditor::init should explicitly make a thread-safe copy of the
56514        document's URL as a String rather than relying on implicit casting from
56515        a copy of the KURL.
56516
56517        This shouldn't change any visible behavior; all existing XSSAuditor
56518        tests should continue to pass. They'll now just be a bit more smug while
56519        doing so.
56520
56521        * html/parser/XSSAuditor.cpp:
56522        (WebCore::XSSAuditor::init):
56523
565242013-02-26  Takashi Sakamoto  <tasak@google.com>
56525
56526        Shadow DOM styles appear to be over-eagerly shared
56527        https://bugs.webkit.org/show_bug.cgi?id=110797
56528
56529        Reviewed by Dimitri Glazkov.
56530
56531        A style of a distributed node should not be shared, because the node
56532        might be affected by styles in a shadow dom tree, i.e. :distributed
56533        or something.
56534
56535        Test: fast/dom/shadow/no-style-sharing-with-distributed-nodes.html
56536
56537        * css/StyleResolver.cpp:
56538        (WebCore::StyleResolver::locateCousinList):
56539        Skip shadow hosts, because children of shadow hosts are distributed
56540        nodes and cannot share their styles.
56541
565422013-02-26  Adam Klein  <adamk@chromium.org>
56543
56544        Remove unused conditional includes of {MathML,SVG}Names.h
56545        https://bugs.webkit.org/show_bug.cgi?id=110809
56546
56547        Reviewed by Eric Seidel.
56548
56549        * html/parser/HTMLConstructionSite.cpp:
56550
565512013-02-26  Eric Seidel  <eric@webkit.org>
56552
56553        Threaded HTML parser fails fast/loader/stateobjects/state-attribute-history-getter.html
56554        https://bugs.webkit.org/show_bug.cgi?id=110801
56555
56556        Reviewed by Adam Barth.
56557
56558        This causes 6 more tests to pass for the threaded parser,
56559        an solves all of our timeout issues.
56560
56561        These tests which were failing were racy, we just were never
56562        hitting the race due to using file urls.  This change fixes
56563        the threaded parser to emulate one more of the EOF quirks from
56564        the loader/main-thread-parser interaction.
56565
56566        * html/parser/HTMLDocumentParser.cpp:
56567        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
56568
565692013-02-26  Alexander Pavlov  <apavlov@chromium.org>
56570
56571        Web Inspector: CSSAgent.setStyleSheetText crashes on inline styles
56572        https://bugs.webkit.org/show_bug.cgi?id=110359
56573
56574        Reviewed by Pavel Feldman.
56575
56576        * inspector/InspectorCSSAgent.cpp:
56577        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo): Pass ExceptionCode into setText().
56578        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::redo): Ditto.
56579        * inspector/InspectorStyleSheet.cpp:
56580        (WebCore::InspectorStyleSheet::setText): Make use of checkPageStyleSheet().
56581        (WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
56582        (WebCore::InspectorStyleSheet::addRule): Ditto.
56583        (WebCore::InspectorStyleSheet::deleteRule): Ditto.
56584        (WebCore::InspectorStyleSheet::checkPageStyleSheet):
56585          Return NOT_SUPPORTED_ERR if no m_pageStyleSheet.
56586        (WebCore::InspectorStyleSheet::setStyleText): Check field directly.
56587        * inspector/InspectorStyleSheet.h:
56588
565892013-02-26  Tien-Ren Chen  <trchen@chromium.org>
56590
56591        Implement coordinated scrollbar for subframes and overflow:scroll
56592        https://bugs.webkit.org/show_bug.cgi?id=109560
56593
56594        Reviewed by James Robinson.
56595
56596        This patch obsoletes ScrollingCoordinatorPrivate for the Chromium
56597        implementation. Also removes the concept of a single main scrolling
56598        layer. Should use HashMap to keep track resources for multiple
56599        scrollable objects.
56600
56601        Many of the callbacks are extended to support ScrollableArea instead
56602        of just FrameView. Now ScrollingCoordinatorChromium coordinates
56603        scrollbars for both subframes and overflow:scroll.
56604
56605        Some drive-by change:
56606        1. Remove the GraphicsLayer parameter for layer change callbacks.
56607           Should be able to get the latest layer from the ScrollableArea anyway.
56608        2. Should start from main frame document when updating touch event target rects.
56609
56610        New chromium test: ScrollingCoordinatorChromiumTest.iframeScrolling
56611
56612        * page/Frame.cpp:
56613        (WebCore::Frame::willDetachPage):
56614        * page/FrameView.cpp:
56615        (WebCore::FrameView::prepareForDetach):
56616        (WebCore::FrameView::layerForScrolling):
56617        (WebCore):
56618        * page/FrameView.h:
56619        (FrameView):
56620        * page/scrolling/ScrollingCoordinator.cpp:
56621        (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
56622        (WebCore):
56623        (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
56624        (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
56625        * page/scrolling/ScrollingCoordinator.h:
56626        (WebCore::ScrollingCoordinator::willDestroyScrollableArea):
56627        (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
56628        (WebCore::ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
56629        (ScrollingCoordinator):
56630        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
56631        (WebCore::scrollingWebLayerForGraphicsLayer):
56632        (WebCore::ScrollingCoordinatorChromium::scrollingWebLayerForScrollableArea):
56633        (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
56634        (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
56635        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
56636        (WebCore::ScrollingCoordinatorChromium::touchEventTargetRectsDidChange):
56637        (WebCore::createScrollbarLayer):
56638        (WebCore::detachScrollbarLayer):
56639        (WebCore::setupScrollbarLayer):
56640        (WebCore::ScrollingCoordinatorChromium::willDestroyScrollableArea):
56641        (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollbarLayerDidChange):
56642        (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
56643        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
56644        (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
56645        (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
56646        (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
56647        (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
56648        (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
56649        (WebCore::ScrollingCoordinatorChromium::addWebScrollbarLayer):
56650        (WebCore):
56651        (WebCore::ScrollingCoordinatorChromium::getWebScrollbarLayer):
56652        (WebCore::ScrollingCoordinatorChromium::removeWebScrollbarLayer):
56653        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
56654        (WebCore):
56655        (ScrollingCoordinatorChromium):
56656        * page/scrolling/mac/ScrollingCoordinatorMac.h:
56657        (ScrollingCoordinatorMac):
56658        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
56659        (WebCore::ScrollingCoordinatorMac::scrollableAreaScrollbarLayerDidChange):
56660        * platform/ScrollableArea.h:
56661        (ScrollableArea):
56662        (WebCore::ScrollableArea::layerForScrolling):
56663        * platform/graphics/GraphicsLayer.h:
56664        (GraphicsLayer):
56665        (WebCore::GraphicsLayer::setContentsToPlatformLayer):
56666        * rendering/RenderLayer.cpp:
56667        (WebCore::RenderLayer::~RenderLayer):
56668        (WebCore::RenderLayer::layerForScrolling):
56669        (WebCore):
56670        * rendering/RenderLayer.h:
56671        (RenderLayer):
56672        * rendering/RenderLayerBacking.cpp:
56673        (WebCore::RenderLayerBacking::updateOverflowControlsLayers):
56674        (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
56675        (WebCore::RenderLayerBacking::updateScrollingLayers):
56676        * rendering/RenderLayerCompositor.cpp:
56677        (WebCore::RenderLayerCompositor::frameViewDidScroll):
56678        (WebCore::RenderLayerCompositor::scrollingLayerDidChange):
56679        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
56680
566812013-02-26  Kentaro Hara  <haraken@chromium.org>
56682
56683        [V8] Overloaded constructors don't need header declarations
56684        https://bugs.webkit.org/show_bug.cgi?id=110799
56685
56686        Reviewed by Adam Barth.
56687
56688        They are implemented as static functions in cpp files.
56689        Header declarations are not needed.
56690
56691        No tests. No change in behavior.
56692
56693        * bindings/scripts/CodeGeneratorV8.pm:
56694        (GenerateHeader):
56695        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
56696
566972013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
56698
56699        Unreviewed, rolling out r144016.
56700        http://trac.webkit.org/changeset/144016
56701        https://bugs.webkit.org/show_bug.cgi?id=110856
56702
56703        Breaks compilation on chromium mac (Requested by vsevik on
56704        #webkit).
56705
56706        * platform/chromium/KeyCodeConversionGtk.cpp:
56707        (WebCore::windowsKeyCodeForKeyEvent):
56708
567092013-02-26  Glenn Adams  <glenn@skynav.com>
56710
56711        Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
56712        https://bugs.webkit.org/show_bug.cgi?id=89235
56713
56714        Reviewed by Eric Seidel.
56715
56716        This patch adds semantic support for the CSS3 line-break property (qua -webkit-line-break),
56717        and enables testing on (apple) mac ports. Follow on patches will enable these tests on
56718        other ports as they are incrementally verified.
56719
56720        See also wiki documentation at:
56721        [1] http://trac.webkit.org/wiki/LineBreaking
56722        [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
56723
56724        Tests: css3/line-break/line-break-auto-centered.html
56725               css3/line-break/line-break-auto-half-kana.html
56726               css3/line-break/line-break-auto-hyphens.html
56727               css3/line-break/line-break-auto-inseparables.html
56728               css3/line-break/line-break-auto-iteration-marks.html
56729               css3/line-break/line-break-auto-postfixes.html
56730               css3/line-break/line-break-auto-prefixes.html
56731               css3/line-break/line-break-auto-sound-marks.html
56732               css3/line-break/line-break-loose-centered.html
56733               css3/line-break/line-break-loose-half-kana.html
56734               css3/line-break/line-break-loose-hyphens.html
56735               css3/line-break/line-break-loose-inseparables.html
56736               css3/line-break/line-break-loose-iteration-marks.html
56737               css3/line-break/line-break-loose-postfixes.html
56738               css3/line-break/line-break-loose-prefixes.html
56739               css3/line-break/line-break-loose-sound-marks.html
56740               css3/line-break/line-break-normal-centered.html
56741               css3/line-break/line-break-normal-half-kana.html
56742               css3/line-break/line-break-normal-hyphens.html
56743               css3/line-break/line-break-normal-inseparables.html
56744               css3/line-break/line-break-normal-iteration-marks.html
56745               css3/line-break/line-break-normal-postfixes.html
56746               css3/line-break/line-break-normal-prefixes.html
56747               css3/line-break/line-break-normal-sound-marks.html
56748               css3/line-break/line-break-strict-centered.html
56749               css3/line-break/line-break-strict-half-kana.html
56750               css3/line-break/line-break-strict-hyphens.html
56751               css3/line-break/line-break-strict-inseparables.html
56752               css3/line-break/line-break-strict-iteration-marks.html
56753               css3/line-break/line-break-strict-postfixes.html
56754               css3/line-break/line-break-strict-prefixes.html
56755               css3/line-break/line-break-strict-sound-marks.html
56756
56757        These tests were previously added in http://trac.webkit.org/changeset/143378, but skipped
56758        in generic TestExpectations. In this patch, they are marked as Pass for the (apple) mac ports.
56759
56760        * platform/text/LineBreakIteratorPoolICU.h:
56761        (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
56762        Add static function to construct ICU locale argument (also used as pool key) with additional
56763        break keyword.
56764        (LineBreakIteratorPool):
56765        (WebCore::LineBreakIteratorPool::take):
56766        (WebCore::LineBreakIteratorPool::put):
56767        Remove direct dependency from ICU library (and types), moving that dependency into
56768        new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
56769        Update to take line break mode into account.
56770        Create (and cache) different break iterators depending on line break mode (in addition to locale),
56771        which entails expanding pool entry key format to optionally append "@break=" +
56772        "loose"|"normal"|"strict" keyword to locale string.
56773
56774        * platform/text/TextBreakIterator.h:
56775        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
56776        (WebCore::LazyLineBreakIterator::isLooseCJKMode):
56777        (WebCore::LazyLineBreakIterator::get):
56778        (WebCore::LazyLineBreakIterator::reset):
56779        (LazyLineBreakIterator):
56780        Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
56781        Add state member to indicate line break mode.
56782
56783        * platform/text/TextBreakIteratorICU.cpp:
56784        (WebCore::acquireLineBreakIterator):
56785        Use new line break mode when making iterator from pool.
56786        Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
56787        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
56788        (WebCore::releaseLineBreakIterator):
56789        Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
56790        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
56791        (WebCore):
56792        (WebCore::isCJKLocale):
56793        New functions for determining if CJK rules apply.
56794        (WebCore::openLineBreakIterator):
56795        New function for abstracting opening of ICU style line break iterator. This is now
56796        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
56797        This function also takes into account the line break mode.
56798        (WebCore::closeLineBreakIterator):
56799        (WebCore::mapLineIteratorModeToRules):
56800        New function for abstracting closing of ICU style line break iterator. This is now
56801        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
56802
56803        * rendering/RenderBlockLineLayout.cpp:
56804        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
56805        Pass line break iterator mode flag when reseting LazyLineBreakIterator.
56806        Add looseMode local variable to prevent need for computing under isBreakable().
56807
56808        * rendering/RenderText.cpp:
56809        (WebCore::mapLineBreakToIteratorMode):
56810        Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
56811        and RenderBlock::LineBreaker::nextLineBreak.
56812        (WebCore):
56813        (WebCore::RenderText::computePreferredLogicalWidths):
56814        Ensure (lazy line) breakIterator is initialized for line break mode.
56815        Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
56816
56817        * rendering/RenderText.h:
56818        (WebCore):
56819        Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
56820        and RenderBlock::LineBreaker::nextLineBreak.
56821
56822        * rendering/break_lines.cpp:
56823        (WebCore):
56824        Introduce (local) enum NBSPBehavior for expanding template on nextBreakablePosition.
56825        (WebCore::isBreakableSpace):
56826        Add externally specified loose mode parameter to prevent need to invoke line break iterator
56827        accessor method on each invocation. Use new loose mode flavors off NBP functions.
56828        (WebCore::needsLineBreakIterator):
56829        Use enum NBSP behavior template parameter rather than boolean.
56830        (WebCore::nextBreakablePositionNonLoosely):
56831        Extend name to distinguish from loose flavor of this function.
56832        (WebCore::nextBreakablePositionLoosely):
56833        Add loose flavor of NBP invoked only when loose mode applies, in which case ASCII shortcut
56834        table cannot be used.
56835        (WebCore::nextBreakablePosition):
56836        (WebCore::nextBreakablePositionIgnoringNBSP):
56837        Use (renamed) non-loose flavor of NBP.
56838        (WebCore::nextBreakablePositionLoose):
56839        (WebCore::nextBreakablePositionIgnoringNBSPLoose):
56840        Introduce loose flavor of NBP template expansions.
56841
56842        * rendering/break_lines.h:
56843        (WebCore):
56844        (WebCore::isBreakable):
56845        Add externally specified loose mode parameter to prevent need to invoke line break iterator
56846        accessor method on each invocation.
56847
568482013-02-26  James Weatherall  <wez@chromium.org>
56849
56850        keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
56851        https://bugs.webkit.org/show_bug.cgi?id=85642
56852
56853        Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
56854
56855        Reviewed by Ojan Vafai.
56856
56857        * platform/chromium/KeyCodeConversionGtk.cpp:
56858        (WebCore::windowsKeyCodeForKeyEvent):
56859
568602013-02-25  Adam Barth  <abarth@webkit.org>
56861
56862        6% regression in intl1 page cycler on chromium-mac
56863        https://bugs.webkit.org/show_bug.cgi?id=110784
56864
56865        Unreviewed.
56866
56867        This patch restores the code that I rolled out in
56868        http://trac.webkit.org/changeset/143960 and
56869        http://trac.webkit.org/changeset/143983. Rolling out those patches did
56870        not heal the bot.
56871
56872        * dom/Element.cpp:
56873        (WebCore::Element::addAttributeInternal):
56874        (WebCore::ShareableElementData::ShareableElementData):
56875        (WebCore::UniqueElementData::makeShareableCopy):
56876        (WebCore::UniqueElementData::addAttribute):
56877        (WebCore::UniqueElementData::removeAttribute):
56878        (WebCore::ElementData::reportMemoryUsage):
56879        (WebCore::UniqueElementData::getAttributeItem):
56880        (WebCore):
56881        (WebCore::UniqueElementData::attributeItem):
56882        * dom/Element.h:
56883        (ElementData):
56884        (UniqueElementData):
56885        (WebCore::isShadowHost):
56886        (WebCore::ElementData::length):
56887        (WebCore::ElementData::attributeItem):
56888        * html/parser/BackgroundHTMLParser.cpp:
56889        (WebCore::BackgroundHTMLParser::resumeFrom):
56890        (WebCore::BackgroundHTMLParser::pumpTokenizer):
56891        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
56892        * html/parser/CSSPreloadScanner.cpp:
56893        (WebCore):
56894        (WebCore::CSSPreloadScanner::scanCommon):
56895        (WebCore::CSSPreloadScanner::scan):
56896        (WebCore::CSSPreloadScanner::emitRule):
56897        * html/parser/CSSPreloadScanner.h:
56898        (CSSPreloadScanner):
56899        * html/parser/HTMLDocumentParser.cpp:
56900        (WebCore::HTMLDocumentParser::startBackgroundParser):
56901        * html/parser/HTMLPreloadScanner.cpp:
56902        (WebCore::TokenPreloadScanner::tagIdFor):
56903        (WebCore):
56904        (WebCore::TokenPreloadScanner::initiatorFor):
56905        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
56906        (TokenPreloadScanner::StartTagScanner):
56907        (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
56908        (WebCore::TokenPreloadScanner::createCheckpoint):
56909        (WebCore::TokenPreloadScanner::rewindTo):
56910        (WebCore::TokenPreloadScanner::scan):
56911        (WebCore::TokenPreloadScanner::scanCommon):
56912        (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
56913        (WebCore::HTMLPreloadScanner::scan):
56914        * html/parser/HTMLPreloadScanner.h:
56915        (TokenPreloadScanner):
56916        (WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
56917        (WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
56918        (Checkpoint):
56919
569202013-02-25  Chris Rogers  <crogers@google.com>
56921
56922        AudioDestinationChromium should pass in inputDeviceId when creating WebKit::WebAudioDevice
56923        https://bugs.webkit.org/show_bug.cgi?id=110796
56924
56925        Reviewed by Kenneth Russell.
56926
56927        * platform/audio/chromium/AudioDestinationChromium.cpp:
56928        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
56929
569302013-02-25  Mark Lam  <mark.lam@apple.com>
56931
56932        Need a more robust WebSQL disk usage computation.
56933        https://bugs.webkit.org/show_bug.cgi?id=110805.
56934
56935        Reviewed by Geoffrey Garen.
56936
56937        - Changed DatabaseTracker::usageForOrigin() to compute the disk usage
56938          for a specified origin by fetching database sizes from the file system
56939          instead of using cached file size values.
56940
56941        - The OriginQuotaManager and OriginUsageRecord are no longer needed.
56942          Updated build files to reflect this.
56943
56944        - Removed getMaxSizeForDatabase() from DatabaseManager, DatabaseServer,
56945          and AbstractDatabaseServer since it is only needed in the backend.
56946
56947        - DatabaseTracker::getMaxSizeForDatabase() now calls usageForOrigin()
56948          to get the disk usage for its computation.
56949
56950        - The performance difference for this changes is a 1.6% degradation
56951          per additional database whose size needs to be fetched. This is a
56952          worst case estimated based on the disk-stat-speed-test.html benchmark
56953          (attached to bugzilla). The benchmark writes an average of 16 bytes per
56954          transaction. Most real-world transactions will likely write more
56955          content than that. Since disk write IO time will dominate over memory
56956          read time for fetching the file size, the degradation ratio will only
56957          reduce with larger workloads.
56958
56959        No layout test, but there is a quota-test.html attached to bugzilla.
56960        The test is a webpage that can be loaded into multiple tabs to
56961        consuming storage space. While the test is running, we can run a
56962        "du -k; du -k *" on the database directory to verify that the total
56963        disk usage does not far exceed the allowed quota (some small error
56964        is expected). Without this change, each database from each tab may
56965        exceed the quota by that same maginitude of error.
56966
56967        * CMakeLists.txt:
56968        * GNUmakefile.list.am:
56969        * Modules/webdatabase/AbstractDatabaseServer.h:
56970        * Modules/webdatabase/Database.cpp:
56971        * Modules/webdatabase/Database.h:
56972        * Modules/webdatabase/DatabaseBackendBase.cpp:
56973        (WebCore::DatabaseBackendBase::maximumSize):
56974        * Modules/webdatabase/DatabaseManager.cpp:
56975        * Modules/webdatabase/DatabaseManager.h:
56976        * Modules/webdatabase/DatabaseServer.cpp:
56977        * Modules/webdatabase/DatabaseServer.h:
56978        * Modules/webdatabase/DatabaseTracker.cpp:
56979        (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
56980        (WebCore::DatabaseTracker::canEstablishDatabase):
56981        (WebCore::DatabaseTracker::retryCanEstablishDatabase):
56982        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
56983        (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
56984        (WebCore::DatabaseTracker::fullPathForDatabase):
56985        (WebCore::DatabaseTracker::addOpenDatabase):
56986        (WebCore::DatabaseTracker::removeOpenDatabase):
56987        (WebCore::DatabaseTracker::usageForOrigin):
56988        (WebCore::DatabaseTracker::deleteOrigin):
56989        (WebCore::DatabaseTracker::deleteDatabase):
56990        * Modules/webdatabase/DatabaseTracker.h:
56991        * Modules/webdatabase/OriginQuotaManager.cpp: Removed.
56992        * Modules/webdatabase/OriginQuotaManager.h: Removed.
56993        * Modules/webdatabase/OriginUsageRecord.cpp: Removed.
56994        * Modules/webdatabase/OriginUsageRecord.h: Removed.
56995        * Modules/webdatabase/SQLTransactionBackend.cpp:
56996        (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
56997        * Modules/webdatabase/SQLTransactionBackendSync.cpp:
56998        (WebCore::SQLTransactionBackendSync::executeSQL):
56999        * Modules/webdatabase/SQLTransactionClient.cpp:
57000        * Modules/webdatabase/SQLTransactionClient.h:
57001        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
57002        * Target.pri:
57003        * WebCore.gyp/WebCore.gyp:
57004        * WebCore.gypi:
57005        * WebCore.vcproj/WebCore.vcproj:
57006        * WebCore.vcxproj/WebCore.vcxproj:
57007        * WebCore.vcxproj/WebCore.vcxproj.filters:
57008        * WebCore.xcodeproj/project.pbxproj:
57009
570102013-02-25  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
57011
57012        [texmap] Rename TextureMapperGL::ClipStack::init to reset
57013        https://bugs.webkit.org/show_bug.cgi?id=110783
57014
57015        Reviewed by Noam Rosenthal.
57016
57017        Functions named init() are usually called inside ctor's to initialize
57018        member variables that were unable to be assigned on an initialization
57019        list, which is not the case, and also because reset() better reflects
57020        the behavior (clears the clip stack and assigns a value to the initial
57021        clip state).
57022
57023        No behavior changes, thus covered by existing tests.
57024
57025        * platform/graphics/texmap/TextureMapperGL.cpp:
57026        (WebCore::TextureMapperGL::ClipStack::reset):
57027        (WebCore::TextureMapperGL::beginPainting):
57028        (WebCore::BitmapTextureGL::initializeDepthBuffer):
57029        * platform/graphics/texmap/TextureMapperGL.h:
57030        (ClipStack):
57031
570322013-02-25  Adam Barth  <abarth@webkit.org>
57033
57034        Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-javascript-url.html
57035        https://bugs.webkit.org/show_bug.cgi?id=110637
57036
57037        Reviewed by Eric Seidel.
57038
57039        With the main thread parser, we always parse the first chunk of content
57040        returned as the result of evaluating a JavaScript URL synchronously. In
57041        particular, if the first chunk has an inline script, we'll execute it
57042        synchronously.
57043
57044        Previous to this patch, the threaded parser would always parse this
57045        content asynchronously. It's conceivable that there could be some
57046        content relying on the synchronous behavior, so this patch introduces
57047        the notion of "pinning" a parser to the main thread and uses that
57048        concept to force the result of JavaScript URLs to be parsed on the main
57049        thread (which is probably desirable anyway because they're likely to be
57050        quite short).
57051
57052        This patch fixes fast/parser/iframe-sets-parent-to-javascript-url.html
57053        and fast/dom/javascript-url-crash-function.html with the threaded
57054        parser with --enable-threaded-html-parser.
57055
57056        * dom/DocumentParser.h:
57057        (WebCore::DocumentParser::pinToMainThread):
57058        (DocumentParser):
57059        * html/parser/HTMLDocumentParser.cpp:
57060        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
57061        (WebCore):
57062        (WebCore::HTMLDocumentParser::pinToMainThread):
57063        * html/parser/HTMLDocumentParser.h:
57064        (HTMLDocumentParser):
57065        (WebCore::HTMLDocumentParser::shouldUseThreading):
57066        * loader/DocumentWriter.cpp:
57067        (WebCore::DocumentWriter::replaceDocument):
57068
570692013-02-25  Jessie Berlin  <jberlin@apple.com>
57070
57071        Update the localizable strings file.
57072
57073        Rubber-stamped by Anders Carlsson.
57074
57075        * English.lproj/Localizable.strings:
57076
570772013-02-25  Xueqing Huang  <huangxueqing@baidu.com>
57078
57079        Flexbox should ignore firstLetter pseudo element.
57080        https://bugs.webkit.org/show_bug.cgi?id=105126
57081
57082        Reviewed by Tony Chang.
57083
57084        The CSS WG decided that first-line and first-letter should not
57085        apply to flex containers.
57086        http://dev.w3.org/csswg/css3-flexbox/issue-cr-2012#issue-13
57087
57088        tests:
57089        css3/flexbox/flexbox-ignore-firstLetter.html
57090        css3/flexbox/flexbox-ignore-container-firstLetter.html       
57091
57092        * rendering/RenderBlock.cpp:
57093        (WebCore::findFirstLetterBlock):
57094
570952013-02-25  Simon Fraser  <simon.fraser@apple.com>
57096
57097        Lots of unnecessary DidLayout notifications when scrolling zoomed page with iframes
57098        https://bugs.webkit.org/show_bug.cgi?id=110824
57099
57100        Reviewed by Tim Horton.
57101        
57102        RenderWidget::setWidgetGeometry() compares the old and new frame rects to decide
57103        if the geometry changed. However, it use implicit IntRect->LayoutRect promotion in
57104        the comparison, and then roundedIntRect() in setting. Thus the code would think
57105        that the geometry changed, even when the final assigned frame did not.
57106        
57107        Fix by computing the new frame using roundedIntRect(), and using that to determine
57108        whether the geometry changed.
57109
57110        No way to test DidLayout notifications in DRT/WTR.
57111
57112        * rendering/RenderWidget.cpp:
57113        (WebCore::RenderWidget::setWidgetGeometry):
57114
571152013-02-21  Jeffrey Pfau  <jpfau@apple.com>
57116
57117        Optionally partition cache to prevent using cache for tracking
57118        https://bugs.webkit.org/show_bug.cgi?id=110269
57119
57120        Reviewed by Maciej Stachowiak.
57121
57122        Implement memory cache partitioning by passing the cache name through
57123        resource requests into a new version of resourceForURL.
57124
57125        Test: http/tests/cache/partitioned-cache.html
57126
57127        * Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
57128        * WebCore.exp.in: Export new functions for WKSI and test suite
57129        * WebCore.xcodeproj/project.pbxproj:
57130        * html/DOMURL.cpp:
57131        (WebCore::DOMURL::revokeObjectURL): Retrofit for new resourceForRequest function
57132        * inspector/InspectorPageAgent.cpp:
57133        (WebCore::InspectorPageAgent::cachedResource): Retrofit for new resourceForRequest function
57134        * inspector/InspectorResourceAgent.cpp:
57135        (WebCore::InspectorResourceAgent::replayXHR): Retrofit for new resourceForRequest function
57136        * loader/DocumentLoader.h:
57137        (DocumentLoader):
57138        (WebCore::DocumentLoader::recordMemoryCacheLoadForFutureClientNotification): Retrofit for new resourceForRequest function
57139        (WebCore::DocumentLoader::takeMemoryCacheLoadsForClientNotification): Retrofit for new resourceForRequest function
57140        * loader/FrameLoader.cpp:
57141        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Retrofit for new resourceForRequest function
57142        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Retrofit for new resourceForRequest function
57143        * loader/archive/cf/LegacyWebArchive.cpp:
57144        (WebCore::LegacyWebArchive::create): Retrofit for new resourceForRequest function
57145        * loader/cache/CachedResource.cpp:
57146        (WebCore::CachedResource::~CachedResource):
57147        * loader/cache/CachedResource.h: Retrofit for new resourceForRequest function
57148        (CachedResource):
57149        (WebCore::CachedResource::cachePartition):
57150        * loader/cache/CachedResourceLoader.cpp:
57151        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Retrofit for new resourceForRequest function
57152        (WebCore::CachedResourceLoader::requestResource): Retrofit for new resourceForRequest function
57153        (WebCore::CachedResourceLoader::loadResource): Retrofit for new resourceForRequest function
57154        * loader/cache/MemoryCache.cpp:
57155        (WebCore):
57156        (WebCore::partitionName): Add function for determining absolute partition name
57157        (WebCore::MemoryCache::add): Retrofit for partition mapping
57158        (WebCore::MemoryCache::revalidationSucceeded): Retrofit for partition mapping
57159        (WebCore::MemoryCache::resourceForURL): Call into new resourceForRequest
57160        (WebCore::MemoryCache::resourceForRequest): Retrofit for partition mapping
57161        (WebCore::MemoryCache::evict): Retrofit for partition mapping
57162        (WebCore::MemoryCache::removeResourcesWithOrigin): Retrofit for partition mapping
57163        (WebCore::MemoryCache::getOriginsWithCache): Retrofit for partition mapping
57164        (WebCore::MemoryCache::removeUrlFromCache): Retrofit for partition mapping
57165        (WebCore::MemoryCache::removeRequestFromCache): Retrofit for partition mapping
57166        (WebCore::MemoryCache::removeRequestFromCacheImpl): Retrofit for partition mapping
57167        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add function for calling removeRequestFromCacheImpl that takes a CrossThreadResourceRequestData
57168        (WebCore::MemoryCache::getStatistics): Retrofit for partition mapping
57169        (WebCore::MemoryCache::setDisabled): Retrofit for partition mapping
57170        * loader/cache/MemoryCache.h:
57171        (MemoryCache):
57172        * page/SecurityOrigin.cpp:
57173        (WebCore):
57174        (WebCore::SecurityOrigin::cachePartition): Add function for determining the cache partition name
57175        * page/SecurityOrigin.h:
57176        (SecurityOrigin):
57177        * platform/PublicSuffix.h: Added.
57178        (WebCore):
57179        * platform/mac/PublicSuffixMac.mm: Added.
57180        (WebCore):
57181        (WebCore::isPublicSuffix):
57182        (WebCore::topPrivatelyControlledDomain):
57183        * platform/mac/WebCoreSystemInterface.h:
57184        * platform/mac/WebCoreSystemInterface.mm:
57185        * platform/network/cf/ResourceRequest.h:
57186        (ResourceRequest):
57187        (WebCore::ResourceRequest::cachePartition):
57188        (WebCore::ResourceRequest::setCachePartition):
57189        (CrossThreadResourceRequestData):
57190        * platform/network/cf/ResourceRequestCFNet.cpp:
57191        (WebCore::ResourceRequest::doPlatformCopyData): Pass through cache partition name
57192        (WebCore):
57193        (WebCore::ResourceRequest::doPlatformAdopt): Pass through cache partition name
57194        * platform/network/mac/ResourceRequestMac.mm:
57195        (WebCore::ResourceRequest::doUpdateResourceRequest): Pass through cache partition name
57196        (WebCore::ResourceRequest::doUpdatePlatformRequest): Pass through cache partition name
57197
571982013-02-25  Jer Noble  <jer.noble@apple.com>
57199
57200        Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
57201        https://bugs.webkit.org/show_bug.cgi?id=110806
57202
57203        Reviewed by Alexey Proskuryakov.
57204
57205        Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
57206
57207        * Configurations/FeatureDefines.xcconfig:
57208
57209        Fix some build errors which occurred when both ENCRYPTED_MEDIA and 
57210        ENCRYPTED_MEDIA_V2 were enabled:
57211        * html/HTMLMediaElement.cpp:
57212        (WebCore::HTMLMediaElement::webkitGenerateKeyRequest):
57213        (WebCore::HTMLMediaElement::webkitAddKey):
57214        * page/DOMWindow.idl:
57215
572162013-02-25  Adam Barth  <abarth@webkit.org>
57217
57218        6% regression in intl1 page cycler on chromium-mac
57219        https://bugs.webkit.org/show_bug.cgi?id=110784
57220
57221        Reviewed by Eric Seidel.
57222
57223        This patch reverts http://trac.webkit.org/changeset/143014 to see if
57224        that's the cause of the PLT regression. If it's not the cause, I'll
57225        roll it back in.
57226
57227        * dom/Element.cpp:
57228        (WebCore::Element::addAttributeInternal):
57229        (WebCore::ShareableElementData::ShareableElementData):
57230        (WebCore::UniqueElementData::makeShareableCopy):
57231        (WebCore::ElementData::addAttribute):
57232        (WebCore::ElementData::removeAttribute):
57233        (WebCore::ElementData::reportMemoryUsage):
57234        * dom/Element.h:
57235        (ElementData):
57236        (UniqueElementData):
57237        (WebCore::ElementData::mutableAttributeVector):
57238        (WebCore):
57239        (WebCore::ElementData::immutableAttributeArray):
57240        (WebCore::ElementData::length):
57241        (WebCore::ElementData::getAttributeItem):
57242        (WebCore::ElementData::attributeItem):
57243
572442013-02-25  Tim Horton  <timothy_horton@apple.com>
57245
57246        Page::m_isInWindow is uninitialized
57247        https://bugs.webkit.org/show_bug.cgi?id=110807
57248
57249        Reviewed by Simon Fraser.
57250
57251        Ideally m_isInWindow and m_isOnscreen would default to false, and be flipped to true
57252        when the Page is put in-window or on-screen. However, only the Mac port seems to ever
57253        call setIsInWindow/didMoveOnscreen. So, we have to default to true and flip it to false
57254        immediately after construction on Mac.
57255
57256        This is just matching the behaviour of the existing m_isOnscreen.
57257
57258        * page/Page.cpp:
57259        (WebCore::Page::Page): Initialize m_isInWindow to true.
57260
572612013-02-25  Kentaro Hara  <haraken@chromium.org>
57262
57263        Unreviewed build fix after r143965.
57264
57265        * bindings/scripts/CodeGeneratorV8.pm:
57266        (GenerateOverloadedConstructorCallback):
57267        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
57268        (WebCore::TestOverloadedConstructorsV8Internal::constructor):
57269
572702013-02-25  Gustavo Noronha Silva  <gns@gnome.org>
57271
57272        Build fix for gtk2-based library.
57273
57274        Reviewed by Martin Robinson.
57275
57276        * platform/gtk/WidgetRenderingContext.cpp: move gtk2 check to after the config.h
57277        include, which is the one that includes autotoolsconfig.h, where the gtk2 define
57278        lives.
57279
572802013-02-25  Sheriff Bot  <webkit.review.bot@gmail.com>
57281
57282        Unreviewed, rolling out r143936.
57283        http://trac.webkit.org/changeset/143936
57284        https://bugs.webkit.org/show_bug.cgi?id=110789
57285
57286        Causes webkit_unit_tests failures on android dbg (Requested by
57287        vollick on #webkit).
57288
57289        * platform/image-decoders/gif/GIFImageDecoder.cpp:
57290        (WebCore::GIFImageDecoder::GIFImageDecoder):
57291        (WebCore::GIFImageDecoder::setData):
57292        (WebCore::GIFImageDecoder::frameCount):
57293        (WebCore::GIFImageDecoder::decodingHalted):
57294        (WebCore):
57295        (WebCore::GIFImageDecoder::haveDecodedRow):
57296        (WebCore::GIFImageDecoder::decode):
57297        * platform/image-decoders/gif/GIFImageDecoder.h:
57298        (GIFImageDecoder):
57299        * platform/image-decoders/gif/GIFImageReader.cpp:
57300        (GIFImageReader::doLZW):
57301        (GIFImageReader::read):
57302        * platform/image-decoders/gif/GIFImageReader.h:
57303        (GIFFrameContext):
57304        (GIFFrameContext::GIFFrameContext):
57305        (GIFFrameContext::~GIFFrameContext):
57306        (GIFImageReader::GIFImageReader):
57307        (GIFImageReader::~GIFImageReader):
57308        (GIFImageReader):
57309        (GIFImageReader::globalColormap):
57310        (GIFImageReader::globalColormapSize):
57311
573122013-02-25  Kentaro Hara  <haraken@chromium.org>
57313
57314        [V8] Generate a wrapper function for method callbacks
57315        https://bugs.webkit.org/show_bug.cgi?id=110769
57316
57317        Reviewed by Adam Barth.
57318
57319        This is one of steps to insert TRACE_EVENT_STATE() macros
57320        into DOM bindings. This patch introduces an indirection
57321        function for xxxMethod(), like this:
57322
57323        // For non-custom methods
57324        void xxxMethodCallback(...) {
57325          xxxMethod(...);
57326        }
57327
57328        // For custom methods
57329        void xxxMethodCallback(...) {
57330          return xxxMethodCustom(...);
57331        }
57332
57333        No tests. No change in behavior.
57334
57335        * bindings/scripts/CodeGeneratorV8.pm:
57336        (GenerateDomainSafeFunctionGetter):
57337        (GenerateOverloadedFunction):
57338        (GenerateFunctionCallback):
57339        (GenerateFunction):
57340        (GenerateNonStandardFunction):
57341        (GenerateImplementation):
57342        (GenerateFunctionCallString):
57343        * bindings/scripts/test/V8/V8Float64Array.cpp:
57344        (WebCore::Float64ArrayV8Internal::fooMethodCallback):
57345        (Float64ArrayV8Internal):
57346        (WebCore::Float64ArrayV8Internal::setMethodCallback):
57347        (WebCore):
57348        (WebCore::ConfigureV8Float64ArrayTemplate):
57349        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
57350        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethodCallback):
57351        (TestActiveDOMObjectV8Internal):
57352        (WebCore::TestActiveDOMObjectV8Internal::postMessageMethodCallback):
57353        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
57354        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
57355        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
57356        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionMethodCallback):
57357        (TestCustomNamedGetterV8Internal):
57358        (WebCore):
57359        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
57360        (WebCore::TestEventTargetV8Internal::itemMethodCallback):
57361        (TestEventTargetV8Internal):
57362        (WebCore::TestEventTargetV8Internal::addEventListenerMethodCallback):
57363        (WebCore::TestEventTargetV8Internal::removeEventListenerMethodCallback):
57364        (WebCore::TestEventTargetV8Internal::dispatchEventMethodCallback):
57365        (WebCore):
57366        (WebCore::ConfigureV8TestEventTargetTemplate):
57367        * bindings/scripts/test/V8/V8TestInterface.cpp:
57368        (WebCore::TestInterfaceV8Internal::supplementalMethod1MethodCallback):
57369        (TestInterfaceV8Internal):
57370        (WebCore::TestInterfaceV8Internal::supplementalMethod2MethodCallback):
57371        (WebCore::TestInterfaceV8Internal::supplementalMethod3MethodCallback):
57372        (WebCore::TestInterfaceV8Internal::supplementalMethod4MethodCallback):
57373        (WebCore):
57374        (WebCore::ConfigureV8TestInterfaceTemplate):
57375        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
57376        (WebCore::TestMediaQueryListListenerV8Internal::methodMethodCallback):
57377        (TestMediaQueryListListenerV8Internal):
57378        (WebCore):
57379        * bindings/scripts/test/V8/V8TestObj.cpp:
57380        (WebCore::TestObjV8Internal::voidMethodMethodCallback):
57381        (TestObjV8Internal):
57382        (WebCore::TestObjV8Internal::voidMethodWithArgsMethodCallback):
57383        (WebCore::TestObjV8Internal::longMethodMethodCallback):
57384        (WebCore::TestObjV8Internal::longMethodWithArgsMethodCallback):
57385        (WebCore::TestObjV8Internal::objMethodMethod):
57386        (WebCore::TestObjV8Internal::objMethodMethodCallback):
57387        (WebCore::TestObjV8Internal::objMethodWithArgsMethodCallback):
57388        (WebCore::TestObjV8Internal::methodWithSequenceArgMethodCallback):
57389        (WebCore::TestObjV8Internal::methodReturningSequenceMethodCallback):
57390        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethodCallback):
57391        (WebCore::TestObjV8Internal::serializedValueMethodCallback):
57392        (WebCore::TestObjV8Internal::optionsObjectMethodCallback):
57393        (WebCore::TestObjV8Internal::methodWithExceptionMethodCallback):
57394        (WebCore::TestObjV8Internal::customMethodMethodCallback):
57395        (WebCore::TestObjV8Internal::customMethodWithArgsMethodCallback):
57396        (WebCore::TestObjV8Internal::addEventListenerMethodCallback):
57397        (WebCore::TestObjV8Internal::removeEventListenerMethodCallback):
57398        (WebCore::TestObjV8Internal::withScriptStateVoidMethodCallback):
57399        (WebCore::TestObjV8Internal::withScriptStateObjMethodCallback):
57400        (WebCore::TestObjV8Internal::withScriptStateVoidExceptionMethodCallback):
57401        (WebCore::TestObjV8Internal::withScriptStateObjExceptionMethodCallback):
57402        (WebCore::TestObjV8Internal::withScriptExecutionContextMethodCallback):
57403        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateMethodCallback):
57404        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionMethodCallback):
57405        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesMethodCallback):
57406        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackMethodCallback):
57407        (WebCore::TestObjV8Internal::methodWithOptionalArgMethodCallback):
57408        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgMethodCallback):
57409        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsMethodCallback):
57410        (WebCore::TestObjV8Internal::methodWithOptionalStringMethodCallback):
57411        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedMethodCallback):
57412        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringMethodCallback):
57413        (WebCore::TestObjV8Internal::methodWithCallbackArgMethodCallback):
57414        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgMethodCallback):
57415        (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgMethodCallback):
57416        (WebCore::TestObjV8Internal::conditionalMethod1MethodCallback):
57417        (WebCore::TestObjV8Internal::conditionalMethod2MethodCallback):
57418        (WebCore::TestObjV8Internal::conditionalMethod3MethodCallback):
57419        (WebCore::TestObjV8Internal::overloadedMethodMethodCallback):
57420        (WebCore::TestObjV8Internal::classMethodMethodCallback):
57421        (WebCore::TestObjV8Internal::classMethodWithOptionalMethodCallback):
57422        (WebCore::TestObjV8Internal::classMethod2MethodCallback):
57423        (WebCore::TestObjV8Internal::overloadedMethod1MethodCallback):
57424        (WebCore::TestObjV8Internal::classMethodWithClampMethodCallback):
57425        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1MethodCallback):
57426        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2MethodCallback):
57427        (WebCore::TestObjV8Internal::enabledPerContextMethod1MethodCallback):
57428        (WebCore::TestObjV8Internal::enabledPerContextMethod2MethodCallback):
57429        (WebCore::TestObjV8Internal::stringArrayFunctionMethodCallback):
57430        (WebCore::TestObjV8Internal::domStringListFunctionMethodCallback):
57431        (WebCore::TestObjV8Internal::getSVGDocumentMethodCallback):
57432        (WebCore::TestObjV8Internal::convert1MethodCallback):
57433        (WebCore::TestObjV8Internal::convert2MethodCallback):
57434        (WebCore::TestObjV8Internal::convert4MethodCallback):
57435        (WebCore::TestObjV8Internal::convert5MethodCallback):
57436        (WebCore::TestObjV8Internal::mutablePointFunctionMethodCallback):
57437        (WebCore::TestObjV8Internal::immutablePointFunctionMethodCallback):
57438        (WebCore::TestObjV8Internal::orangeMethodCallback):
57439        (WebCore::TestObjV8Internal::strictFunctionMethodCallback):
57440        (WebCore::TestObjV8Internal::variadicStringMethodMethodCallback):
57441        (WebCore::TestObjV8Internal::variadicDoubleMethodMethodCallback):
57442        (WebCore::TestObjV8Internal::variadicNodeMethodMethodCallback):
57443        (WebCore):
57444        (WebCore::ConfigureV8TestObjTemplate):
57445        (WebCore::V8TestObj::installPerContextPrototypeProperties):
57446        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
57447        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListMethodCallback):
57448        (TestSerializedScriptValueInterfaceV8Internal):
57449        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListMethodCallback):
57450        (WebCore):
57451        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
57452        (WebCore::TestTypedefsV8Internal::funcMethodCallback):
57453        (TestTypedefsV8Internal):
57454        (WebCore::TestTypedefsV8Internal::multiTransferListMethodCallback):
57455        (WebCore::TestTypedefsV8Internal::setShadowMethodCallback):
57456        (WebCore::TestTypedefsV8Internal::methodWithSequenceArgMethodCallback):
57457        (WebCore::TestTypedefsV8Internal::nullableArrayArgMethodCallback):
57458        (WebCore::TestTypedefsV8Internal::funcWithClampMethodCallback):
57459        (WebCore::TestTypedefsV8Internal::immutablePointFunctionMethodCallback):
57460        (WebCore::TestTypedefsV8Internal::stringArrayFunctionMethodCallback):
57461        (WebCore::TestTypedefsV8Internal::stringArrayFunction2MethodCallback):
57462        (WebCore::TestTypedefsV8Internal::methodWithExceptionMethodCallback):
57463        (WebCore):
57464        (WebCore::ConfigureV8TestTypedefsTemplate):
57465
574662013-02-25  Kentaro Hara  <haraken@chromium.org>
57467
57468        [V8] Generate a wrapper method for constructor callbacks
57469        https://bugs.webkit.org/show_bug.cgi?id=110765
57470
57471        Reviewed by Adam Barth.
57472
57473        This is one of steps to insert TRACE_EVENT_STATE() macros
57474        into DOM bindings. This patch introduces an indirection
57475        function for constructor(), like this:
57476
57477        // For non-custom constructors
57478        void constructorCallback(...) {
57479          return constructor(...);
57480        }
57481
57482        // For custom constructors
57483        void constructorCallback(...) {
57484          return constructorCustom(...);
57485        }
57486
57487        No tests. No change in behavior.
57488
57489        * bindings/scripts/CodeGeneratorV8.pm:
57490        (GenerateHeader):
57491        (GenerateOverloadedConstructorCallback):
57492        (GenerateSingleConstructorCallback):
57493        (GenerateConstructorCallback):
57494        (GenerateConstructor):
57495        (GenerateEventConstructor):
57496        (GenerateTypedArrayConstructor):
57497        (GenerateNamedConstructor):
57498        (GenerateConstructorHeader):
57499        (GenerateImplementation):
57500        * bindings/scripts/test/V8/V8Float64Array.cpp:
57501        (WebCore::Float64ArrayV8Internal::constructor):
57502        (Float64ArrayV8Internal):
57503        (WebCore::V8Float64Array::constructorCallback):
57504        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
57505        (WebCore::TestEventConstructorV8Internal::constructor):
57506        (WebCore):
57507        (WebCore::V8TestEventConstructor::constructorCallback):
57508        * bindings/scripts/test/V8/V8TestInterface.cpp:
57509        (WebCore::TestInterfaceV8Internal::constructor):
57510        (TestInterfaceV8Internal):
57511        (WebCore::V8TestInterface::constructorCallback):
57512        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
57513        (WebCore::V8TestNamedConstructorConstructorCallback):
57514        * bindings/scripts/test/V8/V8TestNode.cpp:
57515        (WebCore::TestNodeV8Internal::constructor):
57516        (TestNodeV8Internal):
57517        (WebCore::V8TestNode::constructorCallback):
57518        * bindings/scripts/test/V8/V8TestObj.cpp:
57519        (WebCore::TestObjV8Internal::constructor):
57520        (TestObjV8Internal):
57521        (WebCore::V8TestObj::constructorCallback):
57522        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
57523        (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
57524        (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
57525        (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
57526        (WebCore::TestOverloadedConstructorsV8Internal::constructor4):
57527        (WebCore::TestOverloadedConstructorsV8Internal::constructor):
57528        (WebCore):
57529        (WebCore::V8TestOverloadedConstructors::constructorCallback):
57530        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
57531        (WebCore::TestSerializedScriptValueInterfaceV8Internal::constructor):
57532        (TestSerializedScriptValueInterfaceV8Internal):
57533        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
57534        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
57535        (WebCore::TestTypedefsV8Internal::constructor):
57536        (TestTypedefsV8Internal):
57537        (WebCore::V8TestTypedefs::constructorCallback):
57538
575392013-02-24  Kentaro Hara  <haraken@chromium.org>
57540
57541        [V8] Generate xxxAttrSetterCallback()
57542        https://bugs.webkit.org/show_bug.cgi?id=110726
57543
57544        Reviewed by Adam Barth.
57545
57546        This is one of steps to insert TRACE_EVENT_STATE() macros into DOM bindings.
57547        This patch introduces an indirection function for xxxAttrSetter(), like this:
57548
57549        // For non-custom setters
57550        void xxxAttrSetterCallback(...) {
57551          xxxAttrSetter(...);
57552        }
57553
57554        // For custom setters.
57555        void xxxAttrSetterCallback(...) {
57556          return xxxAttrSetterCustom(...);
57557        }
57558
57559        No tests. No change in behavior.
57560
57561        * bindings/scripts/CodeGeneratorV8.pm:
57562        (GenerateNormalAttrSetterCallback):
57563        (GenerateNormalAttrSetter):
57564        (GenerateSingleBatchedAttribute):
57565        (GenerateImplementation):
57566        * bindings/scripts/test/V8/V8TestInterface.cpp:
57567        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterCallback):
57568        (TestInterfaceV8Internal):
57569        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterCallback):
57570        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetterCallback):
57571        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterCallback):
57572        (WebCore):
57573        * bindings/scripts/test/V8/V8TestObj.cpp:
57574        (WebCore::TestObjV8Internal::staticStringAttrAttrSetterCallback):
57575        (TestObjV8Internal):
57576        (WebCore::TestObjV8Internal::enumAttrAttrSetterCallback):
57577        (WebCore::TestObjV8Internal::shortAttrAttrSetterCallback):
57578        (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterCallback):
57579        (WebCore::TestObjV8Internal::longAttrAttrSetterCallback):
57580        (WebCore::TestObjV8Internal::longLongAttrAttrSetterCallback):
57581        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterCallback):
57582        (WebCore::TestObjV8Internal::stringAttrAttrSetterCallback):
57583        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
57584        (WebCore::TestObjV8Internal::testObjAttrAttrSetterCallback):
57585        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetterCallback):
57586        (WebCore::TestObjV8Internal::createAttrSetterCallback):
57587        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterCallback):
57588        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterCallback):
57589        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterCallback):
57590        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterCallback):
57591        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterCallback):
57592        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterCallback):
57593        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterCallback):
57594        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterCallback):
57595        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetterCallback):
57596        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterCallback):
57597        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterCallback):
57598        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterCallback):
57599        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterCallback):
57600        (WebCore::TestObjV8Internal::customAttrAttrSetterCallback):
57601        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterCallback):
57602        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterCallback):
57603        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterCallback):
57604        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterCallback):
57605        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterCallback):
57606        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterCallback):
57607        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterCallback):
57608        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterCallback):
57609        (WebCore::TestObjV8Internal::conditionalAttr1AttrSetterCallback):
57610        (WebCore::TestObjV8Internal::conditionalAttr2AttrSetterCallback):
57611        (WebCore::TestObjV8Internal::conditionalAttr3AttrSetterCallback):
57612        (WebCore::TestObjV8Internal::anyAttributeAttrSetterCallback):
57613        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterCallback):
57614        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterCallback):
57615        (WebCore::TestObjV8Internal::enabledPerContextAttr1AttrSetterCallback):
57616        (WebCore::TestObjV8Internal::enabledPerContextAttr2AttrSetterCallback):
57617        (WebCore::TestObjV8Internal::floatArrayAttrSetterCallback):
57618        (WebCore::TestObjV8Internal::doubleArrayAttrSetterCallback):
57619        (WebCore::TestObjV8Internal::mutablePointAttrSetterCallback):
57620        (WebCore::TestObjV8Internal::immutablePointAttrSetterCallback):
57621        (WebCore::TestObjV8Internal::strawberryAttrSetterCallback):
57622        (WebCore::TestObjV8Internal::strictFloatAttrSetterCallback):
57623        (WebCore::TestObjV8Internal::idAttrSetterCallback):
57624        (WebCore):
57625        (WebCore::ConfigureV8TestObjTemplate):
57626        (WebCore::V8TestObj::installPerContextProperties):
57627        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
57628        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterCallback):
57629        (TestSerializedScriptValueInterfaceV8Internal):
57630        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterCallback):
57631        (WebCore):
57632        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
57633        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterCallback):
57634        (TestTypedefsV8Internal):
57635        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterCallback):
57636        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterCallback):
57637        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterCallback):
57638        (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterCallback):
57639        (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterCallback):
57640        (WebCore):
57641
576422013-02-25  Adam Barth  <abarth@webkit.org>
57643
57644        Build fix for Debug.
57645
57646        * html/parser/HTMLDocumentParser.cpp:
57647        (WebCore::HTMLDocumentParser::startBackgroundParser):
57648
576492013-02-25  Adam Barth  <abarth@webkit.org>
57650
57651        6% regression in intl1 page cycler on chromium-mac
57652        https://bugs.webkit.org/show_bug.cgi?id=110784
57653
57654        Reviewed by Eric Seidel.
57655
57656        This patch attempts to heal the regression by reverting all the changes
57657        to the preload scanner up to (and including)
57658        http://trac.webkit.org/changeset/143020/.
57659
57660        * html/parser/BackgroundHTMLParser.cpp:
57661        (WebCore::BackgroundHTMLParser::resumeFrom):
57662        (WebCore::BackgroundHTMLParser::pumpTokenizer):
57663        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
57664        * html/parser/CSSPreloadScanner.cpp:
57665        (WebCore::CSSPreloadScanner::scan):
57666        (WebCore::CSSPreloadScanner::emitRule):
57667        * html/parser/CSSPreloadScanner.h:
57668        (CSSPreloadScanner):
57669        * html/parser/HTMLPreloadScanner.cpp:
57670        (WebCore::isStartTag):
57671        (WebCore):
57672        (WebCore::isStartOrEndTag):
57673        (WebCore::TokenPreloadScanner::identifierFor):
57674        (WebCore::TokenPreloadScanner::inititatorFor):
57675        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
57676        (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
57677        (WebCore::TokenPreloadScanner::processPossibleTemplateTag):
57678        (WebCore::TokenPreloadScanner::processPossibleStyleTag):
57679        (WebCore::TokenPreloadScanner::processPossibleBaseTag):
57680        (WebCore::TokenPreloadScanner::scan):
57681        (WebCore::HTMLPreloadScanner::scan):
57682        * html/parser/HTMLPreloadScanner.h:
57683        (TokenPreloadScanner):
57684
576852013-02-25  Mark Lam  <mark.lam@apple.com>
57686
57687        Changed DatabaseTracker::getMaxSizeForDatabase() to return the previous
57688        database size instead of 0 when the quota limit has been reached.
57689        https://bugs.webkit.org/show_bug.cgi?id=110557.
57690
57691        Reviewed by Geoffrey Garen.
57692
57693        Testing of concurrent multi-process consumption of database quota shows that
57694        returning a value of 0 when the quota is exceeded still allows some databases
57695        to run away with unbounded growth. However, if getMaxSizeForDatabase() returns
57696        the existing database size, the underlying sqlite3 database will successfully
57697        reject new growth.
57698
57699        The value returned by DatabaseTracker::getMaxSizeForDatabase() is used to set
57700        the SQLite3 database size using a sql command "PRAGMA max_page_count = <size>".
57701        The SQLite3 documentation on this pragma says, "The maximum page count cannot
57702        be reduced below the current database size."
57703
57704        It is undefined what setting it to a reduced size will do. So, we're changing
57705        getMaxSizeForDatabase() to return the existing size instead.
57706
57707        No new tests.
57708
57709        * Modules/webdatabase/DatabaseTracker.cpp:
57710        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
57711
577122013-02-25  Tony Chang  <tony@chromium.org>
57713
57714        Refactor logic for relaying out children out of RenderBlock::styleDidChange
57715        https://bugs.webkit.org/show_bug.cgi?id=110661
57716
57717        Reviewed by David Hyatt.
57718
57719        Instead of having styleDidChange need to know which children to mark as needing layout,
57720        use a bool to keep track of border and padding width changes so at layout time, we know
57721        we need to set relayoutChildren=true.
57722
57723        We steal a bit from m_lineHeight reducing the possible line height from around 500 million pixels
57724        to 250 million pixels.
57725
57726        No new tests, this should be covered by fast/block/positioning/border-change-relayout-test.html and
57727        fast/block/dynamic-padding-border.html.
57728
57729        * rendering/RenderBlock.cpp:
57730        (WebCore::RenderBlock::RenderBlock): Fix indent and initialize m_hasBorderOrPaddingLogicalWidthChanged.
57731        (WebCore::RenderBlock::styleDidChange): Remove logic for setting children as needing layout.
57732        (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Return true if border or padding width changed.
57733        * rendering/RenderBlock.h:
57734        (RenderBlock): Steal a bit from m_lineHeight and give it to m_hasBorderOrPaddingLogicalWidthChanged.
57735
577362013-02-25  Alexis Menard  <alexis@webkit.org>
57737
57738        transition-property property doesn't accept "all, <IDENT>".
57739        https://bugs.webkit.org/show_bug.cgi?id=110074
57740
57741        Reviewed by Dean Jackson.
57742
57743        http://dev.w3.org/csswg/css3-transitions/#transition-property-property
57744        allows all, <IDENT> as a value for the transition-property property. In
57745        fact thanks to http://trac.webkit.org/changeset/143019 we correctly
57746        implemented that behavior for transition shorthand property while
57747        fixing bugs on the previous implementation. We did introduce a
57748        AnimationParseContext to track whether the parsing of the
57749        transition-property was finished or not in relation to the keyword.
57750        This patch extend that mechanism to the longhand by renaming the
57751        boolean and the functions to use it in the context class and set it
57752        correctly while parsing the longhand property.
57753
57754        Test: LayoutTests/transitions/transitions-parsing.html
57755
57756        * css/CSSParser.cpp:
57757        (WebCore::AnimationParseContext::AnimationParseContext):
57758        (WebCore::AnimationParseContext::commitAnimationPropertyKeyword):
57759        (WebCore::AnimationParseContext::animationPropertyKeywordAllowed):
57760        (AnimationParseContext):
57761        (WebCore::CSSParser::parseAnimationShorthand):
57762        (WebCore::CSSParser::parseTransitionShorthand):
57763        (WebCore::CSSParser::parseAnimationProperty): We can remove the
57764        condition inShorthand() here, if 'none' is parsed then no more keyword
57765        can appear, if 'all' is parsed then we can continue the parsing but
57766        invalidate the property if another keyword is encountered. These
57767        conditions are valid for the shorthand and the longhand.
57768
577692013-02-25  No'am Rosenthal  <noam@webkit.org>
57770
57771        [Texmap] LayoutTests/compositing/animation/state-at-end-event-transform-layer.html shows a red square where it shouldn't
57772        https://bugs.webkit.org/show_bug.cgi?id=110685
57773
57774        Reviewed by Martin Robinson.
57775
57776        Removed m_shouldUpdateCurrentTransformFromGraphicsLayer etc., as they don't do
57777        what they're supposed to do. No flickers observed.
57778
57779        LayoutTests/compositing/animation/state-at-end-event-transform-layer.html now works correctly.
57780
57781        * platform/graphics/texmap/TextureMapperLayer.cpp:
57782        (WebCore::TextureMapperLayer::setAnimatedTransform):
57783        (WebCore::TextureMapperLayer::setAnimatedOpacity):
57784        (WebCore::TextureMapperLayer::setAnimatedFilters):
57785        (WebCore::TextureMapperLayer::syncAnimations):
57786        * platform/graphics/texmap/TextureMapperLayer.h:
57787        (WebCore::TextureMapperLayer::TextureMapperLayer):
57788        (TextureMapperLayer):
57789
577902013-02-25  Jer Noble  <jer.noble@apple.com>
57791
57792        AVFoundation.framework and QTKit.framework are lazy-loaded on every WebProcess launch
57793        https://bugs.webkit.org/show_bug.cgi?id=110725
57794
57795        Reviewed by Eric Carlson.
57796
57797        When settings are changed, do not re-query the media engines (which causes their respective
57798        frameworks to load). Instead, merely clear any previously loaded media engines so that
57799        the media engine list will be re-queried the next time installedMediaEngines() is called.
57800
57801        (WebCore::MediaPlayer::resetMediaEngines): Renamed from requeryMediaEngines.
57802        * platform/graphics/MediaPlayer.h:
57803        * html/HTMLMediaElement.cpp:
57804        (WebCore::HTMLMediaElement::resetMediaEngines): Ditto.
57805        * html/HTMLMediaElement.h:
57806        * page/Settings.cpp:
57807        (WebCore::Settings::setAVFoundationEnabled): Call renamed method.
57808        (WebCore::Settings::setQTKitEnabled):  Ditto.
57809        * platform/graphics/MediaPlayer.cpp:
57810        (WebCore::installedMediaEngines): Only clear out previously queried engines.
57811
578122013-02-25  Martin Robinson  <mrobinson@igalia.com>
57813
57814        Try to fix the Windows gyp build after r143937
57815
57816        * WebCore.gypi: Update the filename in the source list.
57817
578182013-02-25  Julien Chaffraix  <jchaffraix@webkit.org>
57819
57820        [CSS Grid Layout] Refactor RenderStyle's grid position storage in preparation to supporting spanning
57821        https://bugs.webkit.org/show_bug.cgi?id=110651
57822
57823        Reviewed by Ojan Vafai.
57824
57825        The current code stores grid-{row|column} as a single GridPosition value. While this works well currently,
57826        we want to be able to handle 2 GridPosition as this enables row / column spanning.
57827
57828        That's what this refactoring achieves: it replaces the internal storage by a GridPositions that contains a 
57829        single GridPosition for now. The rest is mechanical updates.
57830
57831        Refactoring covered by existing tests.
57832
57833        * css/CSSComputedStyleDeclaration.cpp:
57834        (WebCore::valueForGridPositions):
57835        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
57836        Added the simple wrapper valueForGridPositions and updated the rest of the code.
57837
57838        * css/StyleResolver.cpp:
57839        (WebCore::createGridPositions):
57840        (WebCore::StyleResolver::applyProperty):
57841        Ditto with createGridPositions.
57842
57843        * rendering/RenderGrid.cpp:
57844        (WebCore::RenderGrid::maximumIndexInDirection):
57845        (WebCore::RenderGrid::placeItemsOnGrid):
57846        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
57847        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
57848        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
57849        (WebCore::RenderGrid::autoPlacementMajorAxisPositionsForChild):
57850        (WebCore::RenderGrid::autoPlacementMinorAxisPositionsForChild):
57851        Updated the code after adding the indirection: s/GridPosition/GridPositions/ and
57852        use the firstPosition helper.
57853
57854        * rendering/RenderGrid.h:
57855        * rendering/style/GridPosition.h:
57856        (WebCore::GridPositions::GridPositions):
57857        (WebCore::GridPositions::firstPosition):
57858        (WebCore::GridPositions::operator==):
57859        Added this class to add the indirection. For now, it only wraps the single GridPosition.
57860
57861        * rendering/style/RenderStyle.h:
57862        * rendering/style/StyleGridItemData.h:
57863        Updated to store / take / return a GridPositions.
57864
578652013-02-25  Dimitri Glazkov  <dglazkov@chromium.org>
57866
57867        Revert r143840 because it caused flaky crashes.
57868        https://bugs.webkit.org/show_bug.cgi?id=110766
57869
578702013-02-25  Alexey Proskuryakov  <ap@apple.com>
57871
57872        Remove an obsolete workaround for relaxing 3rd party cookie policy
57873        https://bugs.webkit.org/show_bug.cgi?id=110664
57874
57875        Reviewed by Benjamin Poulain.
57876
57877        Removed shouldRelaxThirdPartyCookiePolicy(). This workaround is no longer needed,
57878        because CFNetwork performs the same check starting with 10.6.8.
57879
57880        Also, the workaround was not quite correct and harmful for performance, as it
57881        was always changing main document URL to an untrue value, which caused ResourceRequest
57882        regeneration.
57883
57884        * platform/network/ResourceHandle.h:
57885        * platform/network/cf/ResourceHandleCFNet.cpp:
57886        (WebCore::ResourceHandle::createCFURLConnection):
57887        (WebCore::ResourceHandle::start):
57888        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
57889        * platform/network/mac/ResourceHandleMac.mm:
57890        (WebCore::ResourceHandle::createNSURLConnection):
57891        (WebCore::ResourceHandle::start):
57892        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
57893
578942013-02-25  Vsevolod Vlasov  <vsevik@chromium.org>
57895
57896        WebInspector: Do not keep track of resources unless they have a valid loader identifier.
57897        https://bugs.webkit.org/show_bug.cgi?id=110761
57898
57899        Reviewed by Pavel Feldman.
57900
57901        * inspector/NetworkResourcesData.cpp:
57902        (WebCore::NetworkResourcesData::responseReceived):
57903        (WebCore::NetworkResourcesData::setResourceType):
57904        (WebCore::NetworkResourcesData::resourceType):
57905        (WebCore::NetworkResourcesData::setResourceContent):
57906        (WebCore::NetworkResourcesData::maybeAddResourceData):
57907        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
57908        (WebCore::NetworkResourcesData::addCachedResource):
57909        (WebCore::NetworkResourcesData::addResourceSharedBuffer):
57910        (WebCore::NetworkResourcesData::data):
57911        (WebCore::NetworkResourcesData::xhrReplayData):
57912        (WebCore::NetworkResourcesData::setXHRReplayData):
57913        (WebCore::NetworkResourcesData::reuseXHRReplayData):
57914        (WebCore::NetworkResourcesData::resourceDataForRequestId):
57915        (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
57916        (WebCore::NetworkResourcesData::ensureFreeSpace):
57917        * inspector/NetworkResourcesData.h:
57918        (NetworkResourcesData):
57919
579202013-02-25  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
57921
57922        [EFL][GTK] Move text selection/focus notification for a11y from gtk to atk directory
57923        https://bugs.webkit.org/show_bug.cgi?id=110221
57924
57925        Reviewed by Martin Robinson.
57926
57927        Share implementation between efl and gtk.
57928        Update build with changes made.
57929
57930        * GNUmakefile.list.am: Change WebCore/editing/gtk/FrameSelectionGtk.cpp to WebCore/editing/atk/FrameSelectionAtk.cpp to build.
57931        * PlatformEfl.cmake: Add WebCore/editing/atk to include directories, add Webcore/editing/atk/FrameSelectionAtk.cpp to build.
57932        * editing/FrameSelection.h: Omit notifyAccessibilityForSelectionChange() stub for EFL port.
57933        (WebCore):
57934        * editing/atk/FrameSelectionAtk.cpp: Renamed from Source/WebCore/editing/gtk/FrameSelectionGtk.cpp.
57935        (WebCore):
57936        (WebCore::emitTextSelectionChange):
57937        (WebCore::maybeEmitTextFocusChange):
57938        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
57939
579402013-02-25  Alpha Lam  <hclam@chromium.org>
57941
57942        GIFImageReader to read from source data directly
57943        https://bugs.webkit.org/show_bug.cgi?id=109662
57944
57945        Reviewed by Stephen White.
57946
57947        This is the first patch to improve GIF image decoding.
57948
57949        GIFImageReader has an internal 256 bytes buffer to saving incoming
57950        bytes. This mechanism is out-dated because WebKit holds the entire
57951        file in memory and it is not necessary to hold data in an intermediate
57952        buffer.
57953
57954        This is also a blocker for later work to parse and decode GIF
57955        incrementally.
57956
57957        This change removed the imtermediate 'hold' buffer and uses an index
57958        for data position to keep track of parsing of the GIF file. Buffer for
57959        global colormap and local colormap are also removed because they can be
57960        referenced from the data stream.
57961
57962        This change is tested by:
57963
57964        Layout tests
57965        All tests passed under fast/images.
57966
57967        Unit tests
57968        Added GIFImageDecoderTest for Chromium.
57969
57970        Local testing
57971        I tested this implementation against a set of 50k GIF images and
57972        there's no crashes and produces bit-exact results as previous code.
57973
57974        * platform/image-decoders/gif/GIFImageDecoder.cpp:
57975        (WebCore::GIFImageDecoder::setData):
57976        (WebCore::GIFImageDecoder::frameCount):
57977        (WebCore::GIFImageDecoder::haveDecodedRow):
57978        (WebCore::GIFImageDecoder::decode):
57979        * platform/image-decoders/gif/GIFImageReader.cpp:
57980        (GIFImageReader::doLZW):
57981        (GIFImageReader::decode):
57982        (GIFImageReader::decodeInternal):
57983        (GIFImageReader::setRemainingBytes):
57984        * platform/image-decoders/gif/GIFImageReader.h:
57985        (GIFFrameContext):
57986        (GIFFrameContext::GIFFrameContext):
57987        (GIFFrameContext::~GIFFrameContext):
57988        (GIFImageReader::GIFImageReader):
57989        (GIFImageReader::~GIFImageReader):
57990        (GIFImageReader::setData):
57991        (GIFImageReader):
57992        (GIFImageReader::globalColormap):
57993        (GIFImageReader::localColormap):
57994        (GIFImageReader::localColormapSize):
57995        (GIFImageReader::data):
57996        (GIFImageReader::colormap):
57997
579982013-02-25  Sergio Villar Senin  <svillar@igalia.com>
57999
58000        [soup] "Too many redirects" error loading chat in plus.google.com
58001        https://bugs.webkit.org/show_bug.cgi?id=64575
58002
58003        Reviewed by Martin Robinson.
58004
58005        Set the firstPartyForCookies for the new request on redirects to
58006        the URL used for redirection.
58007
58008        Test: http/tests/cookies/set-cookie-on-redirect.html
58009
58010        * platform/network/soup/ResourceHandleSoup.cpp:
58011        (WebCore::doRedirect):
58012
580132013-02-25  Andreas Kling  <akling@apple.com>
58014
58015        Reduce amount of code that includes StylePropertySet.h
58016        <http://webkit.org/b/101149>
58017
58018        Reviewed by Antti Koivisto.
58019
58020        StylePropertySet.h and dependents were getting included by the majority of WebKit
58021        through either StyledElement.h or CSSStyleDeclaration.h. This change removes those includes
58022        and moves inclusion to .cpp files instead. After this change, it's possible to hack most
58023        of WebCore/css/ and rebuild <100 files instead of >1000.
58024
58025        The only real code change in here is changing CSSStyleDeclaration::cssPropertyMatches()
58026        to take a CSSPropertyID/CSSValue* combo instead of a StylePropertySet::Reference.
58027
58028        * css/CSSComputedStyleDeclaration.cpp:
58029        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
58030        * css/CSSComputedStyleDeclaration.h:
58031        (CSSComputedStyleDeclaration):
58032        * css/CSSStyleDeclaration.h:
58033        (CSSStyleDeclaration):
58034        * css/PropertySetCSSStyleDeclaration.cpp:
58035        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
58036        * css/PropertySetCSSStyleDeclaration.h:
58037        * css/SelectorChecker.h:
58038        * css/SelectorCheckerFastPath.cpp:
58039        * css/SelectorFilter.cpp:
58040        * css/SelectorFilter.h:
58041        * css/StylePropertySet.cpp:
58042        (WebCore::StylePropertySet::propertyMatches):
58043        (WebCore::StylePropertySet::removeEquivalentProperties):
58044        * css/StylePropertySet.h:
58045        * css/StyleResolver.cpp:
58046        (WebCore::StyleResolver::MatchedProperties::MatchedProperties):
58047        (WebCore::StyleResolver::MatchedProperties::~MatchedProperties):
58048        * css/StyleResolver.h:
58049        (MatchedProperties):
58050        * css/StyleRule.cpp:
58051        * css/ViewportStyleResolver.cpp:
58052        (WebCore::ViewportStyleResolver::~ViewportStyleResolver):
58053        * css/ViewportStyleResolver.h:
58054        (ViewportStyleResolver):
58055        * css/WebKitCSSKeyframeRule.cpp:
58056        (WebCore::StyleKeyframe::StyleKeyframe):
58057        (WebCore::StyleKeyframe::~StyleKeyframe):
58058        * css/WebKitCSSKeyframeRule.h:
58059        (StyleKeyframe):
58060        * dom/Attr.cpp:
58061        * dom/Document.cpp:
58062        * dom/Element.cpp:
58063        * dom/StyledElement.cpp:
58064        (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
58065        * dom/StyledElement.h:
58066        (StyledElement):
58067        * editing/FrameSelection.cpp:
58068        * editing/RemoveCSSPropertyCommand.cpp:
58069        (WebCore::RemoveCSSPropertyCommand::~RemoveCSSPropertyCommand):
58070        * editing/RemoveCSSPropertyCommand.h:
58071        (RemoveCSSPropertyCommand):
58072        * editing/RemoveFormatCommand.cpp:
58073        * html/HTMLBodyElement.cpp:
58074        * html/HTMLElement.cpp:
58075        (WebCore::HTMLElement::addHTMLLengthToStyle):
58076        (WebCore::HTMLElement::addHTMLColorToStyle):
58077        * html/HTMLElement.h:
58078        (HTMLElement):
58079        * html/HTMLFontElement.cpp:
58080        * html/HTMLHRElement.cpp:
58081        * html/HTMLPreElement.cpp:
58082        * html/HTMLTableElement.cpp:
58083        * html/HTMLTablePartElement.cpp:
58084        * html/canvas/CanvasStyle.cpp:
58085        * html/shadow/MediaControlElementTypes.cpp:
58086        * inspector/InspectorStyleSheet.cpp:
58087        * page/PageSerializer.cpp:
58088        * rendering/RenderTableCell.cpp:
58089        * svg/SVGAnimateElement.cpp:
58090        * svg/SVGElementRareData.h:
58091        * svg/SVGFontFaceElement.cpp:
58092
580932013-02-25  Alexei Filippov  <alph@chromium.org>
58094
58095        Web Inspector: Remove CPU profile from a group causes exception
58096        https://bugs.webkit.org/show_bug.cgi?id=110466
58097
58098        Reviewed by Yury Semikhatsky.
58099
58100        WebInspector.ProfilesPanel._removeProfileHandle did not handle
58101        profile removal from a group. The fix takes care of this case.
58102
58103        Test: inspector/profiler/cpu-profiler-profile-removal.html
58104
58105        * inspector/front-end/ProfilesPanel.js:
58106        (WebInspector.ProfilesPanel.prototype.addProfileHeader):
58107        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
58108
581092013-02-23  Ilya Tikhonovsky  <loislo@chromium.org>
58110
58111        Web Inspector: Native Memory Instrumentation: replace String with const char* in MemoryObjectInfo
58112        https://bugs.webkit.org/show_bug.cgi?id=110599
58113
58114        Reviewed by Yury Semikhatsky.
58115
58116        Due to potentially dynamic nature of names and classNames we need to make a copy of the strings
58117        that were given us via MemoryInstrumentation calls.
58118        So I extended client api with registerString method that pushes the strings
58119        down to the serializer.
58120
58121        * css/InspectorCSSOMWrappers.h:
58122        * inspector/HeapGraphSerializer.cpp:
58123        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
58124        (WebCore::HeapGraphSerializer::reportNodeImpl):
58125        (WebCore::HeapGraphSerializer::reportEdgeImpl):
58126        (WebCore::HeapGraphSerializer::registerString):
58127        (WebCore::HeapGraphSerializer::registerTypeString):
58128        (WebCore::HeapGraphSerializer::addRootNode):
58129        * inspector/HeapGraphSerializer.h:
58130        (HeapGraphSerializer):
58131        * inspector/MemoryInstrumentationImpl.cpp:
58132        (WebCore::MemoryInstrumentationClientImpl::registerString):
58133        (WebCore):
58134        * inspector/MemoryInstrumentationImpl.h:
58135        (MemoryInstrumentationClientImpl):
58136        * loader/cache/CachedResource.cpp:
58137        (WebCore::CachedResource::reportMemoryUsage):
58138
581392013-02-25  Keishi Hattori  <keishi@webkit.org>
58140
58141        Add a scrollbar class for the new calendar picker
58142        https://bugs.webkit.org/show_bug.cgi?id=110589
58143
58144        Reviewed by Kent Tamura.
58145
58146        Adding a scrollbar to be used in the new calendar picker (Bug 109439).
58147
58148        No new tests. Code is not used yet.
58149
58150        * Resources/pagepopups/calendarPicker.js:
58151        (ScrubbyScrollBar):
58152        (ScrubbyScrollBar.prototype.height):
58153        (ScrubbyScrollBar.prototype.setHeight):
58154        (ScrubbyScrollBar.prototype.setThumbHeight): Sets the height of the scroll bar thumb.
58155        (ScrubbyScrollBar.prototype._setThumbPositionFromEvent): Sets the thumb position from a mouse event.
58156        (ScrubbyScrollBar.prototype.onMouseDown):
58157        (ScrubbyScrollBar.prototype.onWindowMouseMove):
58158        (ScrubbyScrollBar.prototype.onWindowMouseUp):
58159        (ScrubbyScrollBar.prototype.onThumbStyleTopAnimationStep): Animates the thumb back to the center position.
58160        (ScrubbyScrollBar.prototype.onScrollTimer): Fires repeatedly while the thumb is being dragged.
58161
581622013-02-25  Ilya Tikhonovsky  <loislo@chromium.org>
58163
58164        Unreviewed. Fix of closure type annotations.
58165
58166        * inspector/front-end/UISourceCode.js:
58167        * inspector/front-end/utilities.js:
58168
581692013-02-25  Eugene Klyuchnikov  <eustas@chromium.org>
58170
58171        Web Inspector: [Network] Timeline bars and dividers are positioned in different coordinate systems.
58172        https://bugs.webkit.org/show_bug.cgi?id=109943
58173
58174        Reviewed by Pavel Feldman.
58175
58176        Look at network log: red bar (on load) is positioned to the right of
58177        the last required load.
58178        
58179        This is incorrect. For exmaple, in case of short event it should be
58180        positioned in the center of the bar.
58181
58182        * inspector/front-end/DataGrid.js:
58183        Fix - hidden columns can have non-zero width.
58184        * inspector/front-end/NetworkPanel.js: Use correct width for calculator.
58185        * inspector/front-end/networkLogView.css: Removed parasite paddinds.
58186        Extracted common absolute "paddings".
58187
581882013-02-25  Keishi Hattori  <keishi@webkit.org>
58189
58190        Add list view for new calendar picker
58191        https://bugs.webkit.org/show_bug.cgi?id=110140
58192
58193        Reviewed by Kent Tamura.
58194
58195        Adding list view class to be used in the new calendar picker (Bug 109439).
58196
58197        No new tests. Code is not yet used.
58198
58199        * Resources/pagepopups/calendarPicker.js:
58200        (ListCell): One row inside the list view. We reuse
58201        list cells to avoid animation hiccups caused by memory allocation.
58202        (ListCell.prototype._recycleBin): Returns array to
58203        store thrown away list cells so we can reuse them.
58204        (ListCell.prototype.throwAway): Hides the cell and puts it in the recycle bin.
58205        (ListCell.prototype.show):
58206        (ListCell.prototype.hide): Hide the cell when we don't need the cell any more.
58207        (ListCell.prototype.width):
58208        (ListCell.prototype.setWidth):
58209        (ListCell.prototype.position):
58210        (ListCell.prototype.setPosition): Sets the CSS transform to position the cell.
58211        (ListCell.prototype.setSelected): Adds selected CSS class.
58212        (ListView): Shows a scrolling list.
58213        (ListView.prototype.onAnimationFrameWillFinish): Calls updateCells if the cells need to be updated.
58214        (ListView.prototype.setNeedsUpdateCells): Mark the cells as need to be updated.
58215        (ListView.prototype.cellAtRow): Returns the cell at a given row. If the cell is not visible and doesn't exist, returns undefined.
58216        (ListView.prototype.rowAtScrollOffset): The row that is displayed at the given scroll offset.
58217        (ListView.prototype.scrollOffsetForRow): The scroll offset for the top of a given row.
58218        (ListView.prototype.addCellIfNecessary): Adds the cell for a given row.
58219        (ListView.prototype.prepareNewCell): Prepares a new or recycled cell for a given row.
58220        (ListView.prototype.throwAwayCell): Throws a way a cell.
58221        (ListView.prototype.firstVisibleRow): The first visible row at the top of the view.
58222        (ListView.prototype.lastVisibleRow): The last visible row at the bottom of the view.
58223        (ListView.prototype.scrollViewDidChangeContentOffset):
58224        (ListView.prototype.scrollViewDidChangeHeight):
58225        (ListView.prototype.scrollViewDidChangePartition):
58226        (ListView.prototype.updateCells): Updates all the cells that are visible.
58227        (ListView.prototype.width):
58228        (ListView.prototype.setWidth):
58229        (ListView.prototype.height):
58230        (ListView.prototype.setHeight):
58231        (ListView.prototype.onClick): Clicking on a row selects it.
58232        (ListView.prototype.select):
58233        (ListView.prototype.deselect):
58234        (ListView.prototype.scrollToRow): Scrolls to a given row.
58235
582362013-02-25  Alexei Filippov  <alph@chromium.org>
58237
58238        Web Inspector: move profile type specific code out of ProfilesPanel (refactor)
58239        https://bugs.webkit.org/show_bug.cgi?id=110597
58240
58241        Reviewed by Yury Semikhatsky.
58242
58243        Move profile type specific functionality out of ProfilesPanel class.
58244        This is a first part of WebInspector.ProfilesPanel refactoring.
58245
58246        No new tests as the functionality isn't changed.
58247
58248        * English.lproj/localizedStrings.js:
58249        * inspector/front-end/CPUProfileView.js:
58250        (WebInspector.CPUProfileType):
58251        (WebInspector.CPUProfileType.prototype.addProfileHeader):
58252        (WebInspector.CPUProfileType.prototype.removeProfile):
58253        (WebInspector.CPUProfileType.prototype._requestProfilesFromBackend):
58254        (WebInspector.CPUProfileType.prototype.resetProfiles):
58255        (WebInspector.CPUProfileType.prototype.addHeapSnapshotChunk):
58256        (WebInspector.CPUProfileType.prototype.finishHeapSnapshot):
58257        (WebInspector.CPUProfileType.prototype.reportHeapSnapshotProgress):
58258        * inspector/front-end/CSSSelectorProfileView.js:
58259        (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
58260        (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
58261        (WebInspector.CSSSelectorProfileType.prototype._stopRecordingProfile):
58262        * inspector/front-end/CanvasProfileView.js:
58263        (WebInspector.CanvasProfileType.prototype.buttonClicked):
58264        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
58265        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
58266        (WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
58267        (WebInspector.CanvasProfileType.prototype._reset):
58268        (WebInspector.CanvasProfileType.prototype.removeProfile):
58269        (WebInspector.CanvasProfileHeader.prototype.dispose):
58270        * inspector/front-end/HeapSnapshotView.js:
58271        (WebInspector.HeapSnapshotView.prototype._profiles):
58272        (WebInspector.HeapSnapshotProfileType):
58273        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
58274        (WebInspector.HeapSnapshotProfileType.prototype.addProfileHeader):
58275        (WebInspector.HeapSnapshotProfileType.prototype.addHeapSnapshotChunk):
58276        (WebInspector.HeapSnapshotProfileType.prototype.finishHeapSnapshot):
58277        (WebInspector.HeapSnapshotProfileType.prototype.reportHeapSnapshotProgress):
58278        (WebInspector.HeapSnapshotProfileType.prototype.resetProfiles):
58279        (WebInspector.HeapSnapshotProfileType.prototype.removeProfile):
58280        (WebInspector.HeapSnapshotProfileType.prototype._requestProfilesFromBackend):
58281        (WebInspector.HeapProfileHeader.prototype._updateTransferProgress):
58282        * inspector/front-end/NativeMemorySnapshotView.js:
58283        (WebInspector.NativeSnapshotProfileType):
58284        (WebInspector.NativeSnapshotProfileType.prototype.addNativeSnapshotChunk):
58285        * inspector/front-end/ProfilesPanel.js:
58286        (WebInspector.ProfileType):
58287        (WebInspector.ProfileType.prototype.buttonClicked):
58288        (WebInspector.ProfileType.prototype.get description):
58289        (WebInspector.ProfileType.prototype.getProfiles):
58290        (WebInspector.ProfileType.prototype.getProfile):
58291        (WebInspector.ProfileType.prototype._makeKey):
58292        (WebInspector.ProfileType.prototype.addProfile):
58293        (WebInspector.ProfileType.prototype.removeProfile):
58294        (WebInspector.ProfileType.prototype.findTemporaryProfile):
58295        (WebInspector.ProfileType.prototype._reset):
58296        (WebInspector.ProfileType.prototype._requestProfilesFromBackend):
58297        (WebInspector.ProfileHeader):
58298        (WebInspector.ProfileHeader.prototype.dispose):
58299        (WebInspector.ProfilesPanel):
58300        (WebInspector.ProfilesPanel.prototype._loadFromFile):
58301        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
58302        (WebInspector.ProfilesPanel.prototype._populateAllProfiles):
58303        (WebInspector.ProfilesPanel.prototype.wasShown):
58304        (WebInspector.ProfilesPanel.prototype._profilerWasEnabled):
58305        (WebInspector.ProfilesPanel.prototype._reset):
58306        (WebInspector.ProfilesPanel.prototype._registerProfileType.onAddProfileHeader):
58307        (WebInspector.ProfilesPanel.prototype._registerProfileType.onRemoveProfileHeader):
58308        (WebInspector.ProfilesPanel.prototype._registerProfileType.onProgressUpdated):
58309        (WebInspector.ProfilesPanel.prototype._registerProfileType):
58310        (WebInspector.ProfilesPanel.prototype._addProfileHeader):
58311        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
58312        (WebInspector.ProfilesPanel.prototype._createTemporaryProfile):
58313        (WebInspector.ProfilesPanel.prototype._removeTemporaryProfile):
58314        (WebInspector.ProfilesPanel.prototype.getProfile):
58315        (WebInspector.ProfilesPanel.prototype.showProfile):
58316        (WebInspector.ProfilesPanel.prototype._getAllProfiles):
58317        (WebInspector.ProfilesPanel.prototype._searchableViews):
58318        (WebInspector.ProfilesPanel.prototype.searchCanceled):
58319        (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
58320        (WebInspector.ProfilesPanel.prototype._reportProfileProgress):
58321
583222013-02-25  Ilya Tikhonovsky  <loislo@chromium.org>
58323
58324        Unreviewed fix of type annotation for this._liveLocations.
58325
58326        * inspector/front-end/UISourceCode.js:
58327        (WebInspector.UISourceCode):
58328
583292013-02-25  Kent Tamura  <tkent@chromium.org>
58330
58331        Fix style errors in WebCore/editing/{htmlediting,markup,visible_units}.*
58332        https://bugs.webkit.org/show_bug.cgi?id=110721
58333
58334        Reviewed by Ryosuke Niwa.
58335
58336        No new tests. This should not make any bahevior changes.
58337
58338        * editing/htmlediting.cpp:
58339        (WebCore::lowestEditableAncestor):
58340        (WebCore):
58341        (WebCore::isSpecialElement):
58342        (WebCore::enclosingListChild):
58343        (WebCore::canMergeLists):
58344        (WebCore::tabSpanNode):
58345        (WebCore::isNodeRendered):
58346        (WebCore::caretMaxOffset):
58347        * editing/htmlediting.h:
58348        (WebCore):
58349        * editing/markup.cpp:
58350        (WebCore::StyledMarkupAccumulator::appendElement):
58351        * editing/markup.h:
58352        (WebCore):
58353        * editing/visible_units.cpp:
58354        (WebCore::previousRootInlineBoxCandidatePosition):
58355        (WebCore::nextRootInlineBoxCandidatePosition):
58356        (WebCore::wordBreakIteratorForMinOffsetBoundary):
58357        (WebCore::previousBoundary):
58358        (WebCore::endOfLine):
58359        (WebCore::previousLinePosition):
58360        (WebCore::nextLinePosition):
58361        (WebCore::nextSentencePositionBoundary):
58362        (WebCore::startOfParagraph):
58363        (WebCore::endOfParagraph):
58364
583652013-02-24  Ilya Tikhonovsky  <loislo@chromium.org>
58366
58367        Web Inspector: Improve speed of Linkifier.reset operation.
58368        https://bugs.webkit.org/show_bug.cgi?id=110696
58369
58370        Reviewed by Yury Semikhatsky.
58371
58372        Linkifier calls Location.dispose N times and each dispose method calls Array.remove
58373        which scans entire array and does splice. So the complexity of Linkifier.reset
58374        is O(N^2). I replaced the arrays with Set and got O(N) complexity.
58375
58376        Drive by fix: The identifier generator was slightly changed.
58377        Now it produces identifiers that couldn't be converted into a number.
58378        So the engine will never convert Set/Map object into an array.
58379
58380        * inspector/front-end/Script.js:
58381        (WebInspector.Script):
58382        (WebInspector.Script.prototype.updateLocations):
58383        (WebInspector.Script.prototype.createLiveLocation):
58384        * inspector/front-end/UISourceCode.js:
58385        (WebInspector.UISourceCode):
58386        (WebInspector.UISourceCode.prototype.addLiveLocation):
58387        (WebInspector.UISourceCode.prototype.updateLiveLocations):
58388        * inspector/front-end/utilities.js:
58389
583902013-02-24  Sheriff Bot  <webkit.review.bot@gmail.com>
58391
58392        Unreviewed, rolling out r143797.
58393        http://trac.webkit.org/changeset/143797
58394        https://bugs.webkit.org/show_bug.cgi?id=110724
58395
58396        Causes assertion failures in multiple tests. (Requested by
58397        vsevik on #webkit).
58398
58399        * dom/DocumentParser.h:
58400        (DocumentParser):
58401        * html/parser/HTMLDocumentParser.cpp:
58402        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
58403        * html/parser/HTMLDocumentParser.h:
58404        (HTMLDocumentParser):
58405        (WebCore::HTMLDocumentParser::shouldUseThreading):
58406        * loader/DocumentWriter.cpp:
58407        (WebCore::DocumentWriter::replaceDocument):
58408
584092013-02-24  Hajime Morrita  <morrita@google.com>
58410
58411        Rollout r143556, it regressed html5-full-render perf.
58412        https://bugs.webkit.org/show_bug.cgi?id=110719
58413
58414        Unreviewed rollout.
58415        
58416        * css/BasicShapeFunctions.cpp:
58417        (WebCore::convertToLength):
58418        (WebCore::basicShapeForValue):
58419        * css/BasicShapeFunctions.h:
58420        (WebCore):
58421        * css/CSSGradientValue.cpp:
58422        (WebCore::CSSGradientValue::gradientWithStylesResolved):
58423        * css/CSSGradientValue.h:
58424        (CSSGradientValue):
58425        * css/CSSToStyleMap.cpp:
58426        (WebCore::CSSToStyleMap::style):
58427        (WebCore::CSSToStyleMap::rootElementStyle):
58428        (WebCore::CSSToStyleMap::useSVGZoomRules):
58429        (WebCore::CSSToStyleMap::styleImage):
58430        * css/CSSToStyleMap.h:
58431        (WebCore):
58432        (WebCore::CSSToStyleMap::CSSToStyleMap):
58433        (CSSToStyleMap):
58434        * css/SVGCSSStyleSelector.cpp:
58435        (WebCore::StyleResolver::applySVGProperty):
58436        * css/StyleBuilder.cpp:
58437        (WebCore::ApplyPropertyExpanding::applyInheritValue):
58438        (WebCore::ApplyPropertyExpanding::applyInitialValue):
58439        (WebCore::ApplyPropertyExpanding::applyValue):
58440        (WebCore::ApplyPropertyDefaultBase::applyInheritValue):
58441        (WebCore::ApplyPropertyDefaultBase::applyInitialValue):
58442        (WebCore::ApplyPropertyDefaultBase::applyValue):
58443        (WebCore::ApplyPropertyDefault::applyValue):
58444        (WebCore::ApplyPropertyNumber::applyValue):
58445        (WebCore::ApplyPropertyStyleImage::applyValue):
58446        (WebCore::ApplyPropertyAuto::applyInheritValue):
58447        (WebCore::ApplyPropertyAuto::applyInitialValue):
58448        (WebCore::ApplyPropertyAuto::applyValue):
58449        (WebCore::ApplyPropertyClip::convertToLength):
58450        (WebCore::ApplyPropertyClip::applyInheritValue):
58451        (WebCore::ApplyPropertyClip::applyInitialValue):
58452        (WebCore::ApplyPropertyClip::applyValue):
58453        (WebCore::ApplyPropertyColor::applyInheritValue):
58454        (WebCore::ApplyPropertyColor::applyInitialValue):
58455        (WebCore::ApplyPropertyColor::applyValue):
58456        (WebCore::ApplyPropertyColor::applyColorValue):
58457        (WebCore::ApplyPropertyDirection::applyValue):
58458        (WebCore::ApplyPropertyLength::applyValue):
58459        (WebCore::ApplyPropertyString::applyValue):
58460        (WebCore::ApplyPropertyBorderRadius::applyValue):
58461        (WebCore::ApplyPropertyFillLayer::applyInheritValue):
58462        (WebCore::ApplyPropertyFillLayer::applyInitialValue):
58463        (WebCore::ApplyPropertyFillLayer::applyValue):
58464        (WebCore::ApplyPropertyComputeLength::applyValue):
58465        (WebCore::ApplyPropertyFont::applyInheritValue):
58466        (WebCore::ApplyPropertyFont::applyInitialValue):
58467        (WebCore::ApplyPropertyFont::applyValue):
58468        (WebCore::ApplyPropertyFontSize::applyInheritValue):
58469        (WebCore::ApplyPropertyFontSize::applyInitialValue):
58470        (WebCore::ApplyPropertyFontSize::applyValue):
58471        (WebCore::ApplyPropertyFontWeight::applyValue):
58472        (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
58473        (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
58474        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
58475        (WebCore::ApplyPropertyBorderImage::applyValue):
58476        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
58477        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
58478        (WebCore::ApplyPropertyBorderImageModifier::applyValue):
58479        (WebCore::ApplyPropertyBorderImageSource::applyValue):
58480        (WebCore::ApplyPropertyCounter::emptyFunction):
58481        (WebCore::ApplyPropertyCounter::applyInheritValue):
58482        (WebCore::ApplyPropertyCounter::applyValue):
58483        (WebCore::ApplyPropertyCursor::applyInheritValue):
58484        (WebCore::ApplyPropertyCursor::applyInitialValue):
58485        (WebCore::ApplyPropertyCursor::applyValue):
58486        (WebCore::ApplyPropertyTextAlign::applyValue):
58487        (WebCore::ApplyPropertyTextDecoration::applyValue):
58488        (WebCore::ApplyPropertyLineHeight::applyValue):
58489        (WebCore::ApplyPropertyPageSize::applyInheritValue):
58490        (WebCore::ApplyPropertyPageSize::applyInitialValue):
58491        (WebCore::ApplyPropertyPageSize::applyValue):
58492        (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
58493        (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
58494        (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
58495        (WebCore::ApplyPropertyAnimation::map):
58496        (WebCore::ApplyPropertyAnimation::applyInheritValue):
58497        (WebCore::ApplyPropertyAnimation::applyInitialValue):
58498        (WebCore::ApplyPropertyAnimation::applyValue):
58499        (WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
58500        (WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
58501        (WebCore::ApplyPropertyOutlineStyle::applyValue):
58502        (WebCore::ApplyPropertyResize::applyValue):
58503        (WebCore::ApplyPropertyVerticalAlign::applyValue):
58504        (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
58505        (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
58506        (WebCore::ApplyPropertyAspectRatio::applyValue):
58507        (WebCore::ApplyPropertyZoom::resetEffectiveZoom):
58508        (WebCore::ApplyPropertyZoom::applyInheritValue):
58509        (WebCore::ApplyPropertyZoom::applyInitialValue):
58510        (WebCore::ApplyPropertyZoom::applyValue):
58511        (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
58512        (WebCore::ApplyPropertyDisplay::applyInheritValue):
58513        (WebCore::ApplyPropertyDisplay::applyInitialValue):
58514        (WebCore::ApplyPropertyDisplay::applyValue):
58515        (WebCore::ApplyPropertyClipPath::applyValue):
58516        (WebCore::ApplyPropertyExclusionShape::applyValue):
58517        (WebCore::ApplyPropertyImageResolution::applyInheritValue):
58518        (WebCore::ApplyPropertyImageResolution::applyInitialValue):
58519        (WebCore::ApplyPropertyImageResolution::applyValue):
58520        * css/StyleBuilder.h:
58521        (WebCore):
58522        (PropertyHandler):
58523        (WebCore::PropertyHandler::applyInheritValue):
58524        (WebCore::PropertyHandler::applyInitialValue):
58525        (WebCore::PropertyHandler::applyValue):
58526        * css/StyleResolver.cpp:
58527        (WebCore):
58528        (WebCore::StyleResolver::StyleResolver):
58529        (WebCore::StyleResolver::collectMatchingRules):
58530        (WebCore::StyleResolver::collectMatchingRulesForRegion):
58531        (WebCore::StyleResolver::sortAndTransferMatchedRules):
58532        (WebCore::StyleResolver::matchScopedAuthorRules):
58533        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
58534        (WebCore::StyleResolver::matchHostRules):
58535        (WebCore::StyleResolver::matchAuthorRules):
58536        (WebCore::StyleResolver::matchUserRules):
58537        (WebCore::StyleResolver::matchUARules):
58538        (WebCore::StyleResolver::collectMatchingRulesForList):
58539        (WebCore::StyleResolver::sortMatchedRules):
58540        (WebCore::StyleResolver::matchAllRules):
58541        (WebCore::StyleResolver::initElement):
58542        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
58543        (WebCore::StyleResolver::canShareStyleWithControl):
58544        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
58545        (WebCore::StyleResolver::canShareStyleWithElement):
58546        (WebCore::StyleResolver::findSiblingForStyleSharing):
58547        (WebCore::StyleResolver::locateSharedStyle):
58548        (WebCore::StyleResolver::styleForElement):
58549        (WebCore::StyleResolver::styleForKeyframe):
58550        (WebCore::StyleResolver::keyframeStylesForAnimation):
58551        (WebCore::StyleResolver::pseudoStyleForElement):
58552        (WebCore::StyleResolver::styleForPage):
58553        (WebCore::StyleResolver::defaultStyleForElement):
58554        (WebCore::StyleResolver::adjustRenderStyle):
58555        (WebCore::StyleResolver::updateFont):
58556        (WebCore::StyleResolver::pseudoStyleRulesForElement):
58557        (WebCore::StyleResolver::ruleMatches):
58558        (WebCore::StyleResolver::checkRegionSelector):
58559        (WebCore::StyleResolver::applyProperties):
58560        (WebCore::StyleResolver::applyMatchedProperties):
58561        (WebCore::StyleResolver::isLeftPage):
58562        (WebCore::StyleResolver::applyPropertyToStyle):
58563        (WebCore::StyleResolver::applyPropertyToCurrentStyle):
58564        (WebCore::StyleResolver::useSVGZoomRules):
58565        (WebCore::StyleResolver::resolveVariables):
58566        (WebCore::StyleResolver::applyProperty):
58567        (WebCore::StyleResolver::styleImage):
58568        (WebCore::StyleResolver::cachedOrPendingFromValue):
58569        (WebCore::StyleResolver::generatedOrPendingFromValue):
58570        (WebCore::StyleResolver::setOrPendingFromValue):
58571        (WebCore::StyleResolver::cursorOrPendingFromValue):
58572        (WebCore::StyleResolver::checkForTextSizeAdjust):
58573        (WebCore::StyleResolver::checkForZoomChange):
58574        (WebCore::StyleResolver::checkForGenericFamilyChange):
58575        (WebCore::StyleResolver::initializeFontStyle):
58576        (WebCore::StyleResolver::setFontSize):
58577        (WebCore::StyleResolver::colorFromPrimitiveValue):
58578        (WebCore::StyleResolver::loadPendingSVGDocuments):
58579        (WebCore::StyleResolver::styleShader):
58580        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
58581        (WebCore::StyleResolver::loadPendingShaders):
58582        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
58583        (WebCore::StyleResolver::parseCustomFilterParameter):
58584        (WebCore::StyleResolver::parseCustomFilterParameterList):
58585        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
58586        (WebCore::StyleResolver::createCustomFilterOperation):
58587        (WebCore::StyleResolver::createFilterOperations):
58588        (WebCore::StyleResolver::loadPendingImage):
58589        (WebCore::StyleResolver::loadPendingImages):
58590        (WebCore::StyleResolver::loadPendingResources):
58591        (WebCore::StyleResolver::reportMemoryUsage):
58592        * css/StyleResolver.h:
58593        (WebCore::StyleResolver::style):
58594        (WebCore::StyleResolver::parentStyle):
58595        (WebCore::StyleResolver::rootElementStyle):
58596        (WebCore::StyleResolver::element):
58597        (WebCore::StyleResolver::hasParentNode):
58598        (StyleResolver):
58599        (WebCore::StyleResolver::isRightPage):
58600        (WebCore::StyleResolver::State::State):
58601        (WebCore::StyleResolver::State::document):
58602        (State):
58603        (WebCore::StyleResolver::applyPropertyToRegularStyle):
58604        (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
58605        (WebCore::StyleResolver::styleMap):
58606        (WebCore::StyleResolver::fontDescription):
58607        (WebCore::StyleResolver::parentFontDescription):
58608        (WebCore::StyleResolver::setFontDescription):
58609        (WebCore::StyleResolver::setZoom):
58610        (WebCore::StyleResolver::setEffectiveZoom):
58611        (WebCore::StyleResolver::setTextSizeAdjust):
58612        (WebCore::StyleResolver::setWritingMode):
58613        (WebCore::StyleResolver::setTextOrientation):
58614        * html/canvas/CanvasRenderingContext2D.cpp:
58615        (WebCore::CanvasRenderingContext2D::setFont):
58616
586172013-02-24  Eric Carlson  <eric.carlson@apple.com>
58618
58619        [Mac] cleanup MediaPlayerPrivateAVFoundation and InbandTextTrackPrivateAVF
58620        https://bugs.webkit.org/show_bug.cgi?id=110716
58621
58622        Reviewed by Alexey Proskuryakov.
58623
58624        No new tests, no functionality changed.
58625
58626        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
58627        (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Take AVFInbandTrackParent*
58628            instead of MediaPlayerPrivateAVFoundation*.
58629        (WebCore::InbandTextTrackPrivateAVF::processCue): Pass new cues directly to the client.
58630        (WebCore::InbandTextTrackPrivateAVF::disconnect): m_player -> m_owner.
58631        (WebCore::InbandTextTrackPrivateAVF::setMode):  m_player -> m_owner.
58632        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
58633
58634        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
58635        (WebCore::MediaPlayerPrivateAVFoundation::addGenericCue): Delete, no longer needed.
58636        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
58637
58638        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: Don't include 
58639            CachedResourceClient.h, it isn't needed.
58640
586412013-02-24  Kihong Kwon  <kihong.kwon@samsung.com>
58642
58643        Add an ASSERT to didChangeDeviceProximity
58644        https://bugs.webkit.org/show_bug.cgi?id=110317
58645
58646        Reviewed by Hajime Morrita.
58647
58648        Add An ASSERT to didChangeDeviceProximity function to check range of value.
58649
58650        Change exist test cases.
58651
58652        * Modules/proximity/DeviceProximityController.cpp:
58653        (WebCore::DeviceProximityController::didChangeDeviceProximity):
58654
586552013-02-24  Alexey Proskuryakov  <ap@apple.com>
58656
58657        Clarify meaning of default default encoding localizable string
58658        https://bugs.webkit.org/show_bug.cgi?id=110714
58659
58660        Reviewed by Eric Carlson.
58661
58662        * English.lproj/Localizable.strings: This string is only used on Windows, and it's
58663        very confusing to everyone involved.
58664
586652013-02-24  Mike West  <mkwst@chromium.org>
58666
58667        CSP 1.1: Experiment with 'reflected-xss' directive.
58668        https://bugs.webkit.org/show_bug.cgi?id=104479
58669
58670        Reviewed by Adam Barth.
58671
58672        Content Security Policy 1.1 defines a 'reflected-xss' directive that
58673        works in much the same way as WebKit's current 'X-XSS-Protection'
58674        header[1]. This patch implements the new directive by parsing it
58675        inside ContentSecurityPolicy, and exposing that state to XSSAuditor.
58676
58677        XSSAuditor now grabs the CSP directive's state, and mixes it with the
58678        X-XSS-Protection header's state to determine how the page should be
58679        handled. Moreover, both headers' states are now expressed in terms of
58680        ContentSecurityPolicy::ReflectedXSSDisposition.
58681
58682        [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#reflected-xss--experimental
58683
58684        Tests: http/tests/security/contentSecurityPolicy/1.1/reflected-xss-allow.html
58685               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-allow.html
58686               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-block.html
58687               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-filter.html
58688               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-invalid.html
58689               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-unset.html
58690               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-allow.html
58691               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-block.html
58692               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-filter.html
58693               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-invalid.html
58694               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-unset.html
58695               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-allow.html
58696               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-block.html
58697               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-filter.html
58698               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-invalid.html
58699               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-unset.html
58700               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-allow.html
58701               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-block.html
58702               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-filter.html
58703               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-invalid.html
58704               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-unset.html
58705               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-allow.html
58706               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-block.html
58707               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-filter.html
58708               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-invalid.html
58709               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-unset.html
58710               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-block.html
58711               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-empty.html
58712               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-filter.html
58713               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-invalid.html
58714               http/tests/security/contentSecurityPolicy/1.1/reflected-xss-parsing.html
58715
58716        * html/parser/XSSAuditor.cpp:
58717        (WebCore::combineXSSProtectionHeaderAndCSP):
58718            Given both headers' states, return the state which the XSSAuditor
58719            should use when parsing a page. Blocking overrides filtering, which
58720            overrides disabling.
58721        (WebCore):
58722        (WebCore::XSSAuditor::init):
58723            Process the 'X-XSS-Protection' header before grabbing the CSP
58724            header's state. Both are passed into the new
58725            combineXSSProtectionHeaderAndCSP method to generate the final
58726            state that ought to be used.
58727        (WebCore::XSSAuditor::XSSAuditor):
58728        (WebCore::XSSAuditor::filterToken):
58729        * html/parser/XSSAuditor.h:
58730            Switch to ContentSecurityPolicy::ReflectedXSSDisposition internally
58731            in XSSAuditor.
58732        * page/ContentSecurityPolicy.cpp:
58733        (WebCore::CSPDirectiveList::reflectedXSSDisposition):
58734            Enum defining the possible state of the 'reflected-xss' CSP directive.
58735        (CSPDirectiveList):
58736        (WebCore::CSPDirectiveList::CSPDirectiveList):
58737        (WebCore::CSPDirectiveList::parseReflectedXSS):
58738            Given a 'reflected-xss' directive's value, set the
58739            ReflectedXSSDisposition into a new property on the CSPDirectiveList.
58740        (WebCore):
58741        (WebCore::CSPDirectiveList::addDirective):
58742            Accept 'reflected-xss' as a valid directive if we're in
58743            experimental mode.
58744        (WebCore::ContentSecurityPolicy::reflectedXSSDisposition):
58745            Expose the directive's state via the public API.
58746        (WebCore::ContentSecurityPolicy::reportInvalidReflectedXSS):
58747            Generate console errors when invalid reflected-xss directive values
58748            are encounted during parsing.
58749        * page/ContentSecurityPolicy.h:
58750        * platform/network/HTTPParsers.cpp:
58751        (WebCore::parseXSSProtectionHeader):
58752        * platform/network/HTTPParsers.h:
58753        (WebCore):
58754            Start using ContentSecurityPolicy::ReflectedXSSDisposition rather
58755            than the XSSProtectionDisposition enum.
58756
587572013-02-24  Zan Dobersek  <zdobersek@igalia.com>
58758
58759        Updating GObject bindings baselines after r143863.
58760
58761        Unreviewed.
58762
58763        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
58764        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
58765        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
58766        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
58767        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
58768        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
58769        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
58770        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
58771        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
58772        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
58773        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
58774        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
58775        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
58776        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
58777        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
58778
587792013-02-24  Zan Dobersek  <zdobersek@igalia.com>
58780
58781        [GTK] Stop generating UserAgentGtk.h
58782        https://bugs.webkit.org/show_bug.cgi?id=110582
58783
58784        Reviewed by Martin Robinson.
58785
58786        No new tests - no new functionality.
58787
58788        * GNUmakefile.list.am: Move the UserAgentGtk.h build target from the derived sources list to
58789        the list of the WebCore platform sources.
58790        * platform/gtk/UserAgentGtk.cpp:
58791        (WebCore::standardUserAgent): Rename WEBKIT_USER_AGENT_(MAJOR|MINOR)_VERSION to
58792        USER_AGENT_GTK_(MAJOR|MINOR)_VERSION.
58793        * platform/gtk/UserAgentGtk.h: Renamed from Source/WebCore/platform/gtk/UserAgentGtk.h.in.
58794        Same as the input file expect for removed WEBKIT_USER_AGENT_(MAJOR|MINOR)_VERSION defines that
58795        are now replaced by using the USER_AGENT_GTK_(MAJOR|MINOR)_VERSION defines placed in autotoolsconfig.h.
58796
587972013-02-24  Gustavo Noronha Silva  <gns@gnome.org>
58798
58799        [GTK] GTK+ 2 build broken since GTK_API_VERSION_2 moved to autoconfig.h
58800        https://bugs.webkit.org/show_bug.cgi?id=110702
58801
58802        Reviewed by Martin Robinson.
58803
58804        No tests. Build fix, no behaviour change.
58805
58806        * platform/gtk/GtkVersioning.h: include the autotoolsconfig.h header,
58807        which contains the GTK_API_VERSION_2 define now.
58808
588092013-02-24  Andreas Kling  <akling@apple.com>
58810
58811        StyledElement: Don't expose a mutable direct interface to the inline style.
58812        <http://webkit.org/b/110711>
58813
58814        Reviewed by Antti Koivisto.
58815
58816        Remove the ability to grab at a mutable StylePropertySet* for a StyledElement's inline style
58817        from the outside world. It's now private and returns MutableStylePropertySet* for future convenience.
58818
58819        Three paths to changing the inline style remain:
58820
58821            - Setting the "style" attribute
58822            - Via CSSOM (element.style)
58823            - setInlineStyleProperty/removeInlineStyleProperty helpers
58824
58825        * dom/StyledElement.cpp:
58826        (WebCore::StyledElement::ensureMutableInlineStyle):
58827        * dom/StyledElement.h:
58828        (StyledElement):
58829        * editing/ApplyStyleCommand.cpp:
58830        (WebCore::copyStyleOrCreateEmpty):
58831        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
58832        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
58833        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
58834        * editing/ReplaceSelectionCommand.cpp:
58835        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
58836        * html/canvas/CanvasStyle.cpp:
58837        (WebCore::currentColor):
58838
588392013-02-24  Keishi Hattori  <keishi@webkit.org>
58840
58841        Add methods to date types for new calendar picker
58842        https://bugs.webkit.org/show_bug.cgi?id=110454
58843
58844        Reviewed by Kent Tamura.
58845
58846        Adding some methods to date types as part of the calendar picker redesign (Bug 109439).
58847
58848        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-date-types.html
58849
58850        * Resources/pagepopups/calendarPicker.js:
58851        (createUTCDate):
58852        (DateType): Base class for Day, Week and Month.
58853        (Day): Simplified constructor to only accept year, month, date.
58854        (Day.createFromValue): Creates a new Day from a value.
58855        (Day.createFromDate): Throw an error if the given date is invalid.
58856        (Day.createFromDay):
58857        (Day.prototype.equals): Accept non Day objects.
58858        (Day.prototype.previous): Modified to take an offset value.
58859        (Day.prototype.next): Ditto.
58860        (Day.prototype.firstDay): Returns the first day in the range. For Day's case, returns itself.
58861        (Day.prototype.middleDay): Returns the middle day in the range. For Day's case, returns itself.
58862        (Day.prototype.lastDay): Returns the middle day in the range. For Day's case, returns itself.
58863        (Day.prototype.valueOf):
58864        (Day.prototype.weekDay): Returns the week day.
58865        (Week): Simplified constructor to only accept year, month, date.
58866        (Week.createFromValue):
58867        (Week.createFromDate):
58868        (Week.createFromDay):
58869        (Week.weekOneStartDateForYear):
58870        (Week.weekOneStartDayForYear):
58871        (Week._numberOfWeeksSinceDate):
58872        (Week.prototype.equals):
58873        (Week.prototype.previous):
58874        (Week.prototype.next):
58875        (Week.prototype.firstDay): Returns the first day in the week.
58876        (Week.prototype.middleDay): Returns the the day for Thursday.
58877        (Week.prototype.lastDay): Returns the last day in the week.
58878        (Week.prototype.valueOf):
58879        (Month):
58880        (Month.createFromValue):
58881        (Month.createFromDate):
58882        (Month.createFromDay):
58883        (Month.prototype.containsDay):
58884        (Month.prototype.equals):
58885        (Month.prototype.previous):
58886        (Month.prototype.next):
58887        (Month.prototype.firstDay): Returns the first day in the month.
58888        (Month.prototype.middleDay): Returns the middle day in the month.
58889        (Month.prototype.lastDay): Returns the last day in the month.
58890        (Month.prototype.valueOf):
58891        (Month.prototype.toLocaleString): Moved location.
58892        (Month.prototype.toShortLocaleString): Returns the month string in short format.
58893        (CalendarPicker): Use createFromValue.
58894        (YearMonthController.prototype.setMonth): Ditto.
58895        (YearMonthController.prototype.moveRelatively): Ditto.
58896
588972013-02-24  Hajime Morrita  <morrita@google.com>
58898
58899        [Custom Elements] Implement bare-bone document.register()
58900        https://bugs.webkit.org/show_bug.cgi?id=100229
58901
58902        Reviewed by Adam Barth.
58903
58904        This change implements a prefixed version of document.register(), with minimal feature support.
58905        - The feature is guarded by ENABLE(CUSTOM_ELEMENTS) and RuntimeEnabledFeatures::customDOMElementsEnabled().
58906        - This bare-bone version only recognizes "name" and "prototype" parameters. It doesn't support default value of "prototype" parameter.
58907        - Currently only V8 is supported. JSC binding needs its own binding implementation.
58908
58909        = Major new classes under dom/:
58910
58911        The dom module gets two new classes:
58912        - CustomElementConstructor: A return value of document.register()
58913          which holds the custom element definition.
58914        - CustomElementRegistry: A collection of CustomElementConstructor objects.
58915          CustomElementRegistry instance is created per Document and is owned by the Document.
58916
58917        CustomElementConstructor knows the definition of each custom
58918        element, which is registered by document.register(). The name and
58919        other options are held by this object. CustomElementRegistry owns a set
58920        of the registered constructors. The registry guarantees invariants
58921        like validity and uniqueness of the element names.
58922
58923        = A change on make_names.pl
58924
58925        This change tweaks make_names.pl (or generated HTMLElementFactory)
58926        to hook the creations of unknown elements. Some of element names
58927        which come to the fallback path can be one of registered custom
58928        element.
58929
58930        = [V8WrapAsFunction] extended attribute:
58931
58932        The document.register() API returns a constructor
58933        function. However, the V8 binding currently doesn't support it. To
58934        make it possible, this change introduces "V8WrapAsFunction"
58935        extended attribute for annotating CustomElementConstructor IDL
58936        interface.
58937
58938        V8WrapAsFunction wraps the annotated interface with a JavaScript
58939        function, which calls the original object as a function, or as a
58940        constructor depends on the context.
58941
58942        With this wrapper function, there are two levels of indirection
58943        between native C++ object and author-visible JS function:
58944
58945        [JS Adaptor Function] <-(hidden property)-> [JS Wrapper Object] -(internal field)-> [C++ Native object]
58946
58947        The code generator generates the binding code which deals with
58948        this indirection.  Also, there is a set of helper functions in
58949        V8AdaptorFunction.h/cpp which takes care of this indirection.
58950        V8DOMWrapper.cpp/h works as a facade for these APIs and is used from
58951        the generated code.
58952
58953        This redundancy comes from limitations of both V8 bindings and V8
58954        embedding API. See bug 108138 for details.
58955
58956        = V8HTMLCustomElement
58957
58958        Unlike built-in HTML elements, any custom element has no
58959        corresponding C++ class. Instead, document.register() should allow
58960        passing a prototype object for the elements being registered.
58961
58962        V8HTMLCustomElement handles this lack of native class.  It behaves
58963        like a native side proxy of non-native HTMLElement subclasses.  It
58964        connects each custom element to an appropriate native element,
58965        which is HTMLElement at this time. This restriction will be
58966        relaxed later. See Bug 110436 for details.
58967
58968        = Custom DOM elements and multiple worlds
58969
58970        In this patch, custom element registration and instantiation is not allowed
58971        in non-main world and document.register() API just fails there.
58972
58973        Reviewed by Adam Barth.
58974
58975        Tests: fast/dom/custom/document-register-basic.html
58976               fast/dom/custom/document-register-reentrant-null-constructor.html
58977               fast/dom/custom/document-register-reentrant-returning-fake.html
58978               fast/dom/custom/document-register-reentrant-throwing-constructor.html
58979
58980        * DerivedSources.make:
58981        * WebCore.gypi:
58982        * bindings/generic/RuntimeEnabledFeatures.cpp:
58983        * bindings/generic/RuntimeEnabledFeatures.h:
58984        (RuntimeEnabledFeatures):
58985        (WebCore::RuntimeEnabledFeatures::customDOMElementsEnabled):
58986        (WebCore::RuntimeEnabledFeatures::setCustomDOMElements):
58987        * bindings/scripts/CodeGeneratorV8.pm:
58988        (GenerateHeader):
58989        * bindings/scripts/IDLAttributes.txt:
58990        * bindings/v8/CustomElementHelpers.cpp: Added.
58991        (WebCore::CustomElementHelpers::initializeConstructorWrapper):
58992        (WebCore::hasNoBuiltinsInPrototype):
58993        (WebCore::CustomElementHelpers::isValidPrototypeParameter):
58994        (WebCore::CustomElementHelpers::isFeatureAllowed):
58995        * bindings/v8/CustomElementHelpers.h: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
58996        (CustomElementHelpers):
58997        * bindings/v8/V8AdaptorFunction.cpp: Added.
58998        (WebCore::V8AdaptorFunction::getTemplate):
58999        (WebCore::V8AdaptorFunction::configureTemplate):
59000        (WebCore::V8AdaptorFunction::invocationCallback):
59001        (WebCore::V8AdaptorFunction::wrap):
59002        * bindings/v8/V8AdaptorFunction.h: Added.
59003        (V8AdaptorFunction):
59004        (WebCore::V8AdaptorFunction::unwrap):
59005        (WebCore::V8AdaptorFunction::get):
59006        * bindings/v8/V8DOMConfiguration.cpp:
59007        (WebCore::V8DOMConfiguration::configureTemplate):
59008        * bindings/v8/V8DOMWrapper.cpp:
59009        (WebCore::V8DOMWrapper::toFunction):
59010        (WebCore::V8DOMWrapper::fromFunction):
59011        * bindings/v8/V8DOMWrapper.h:
59012        (V8DOMWrapper):
59013        * bindings/v8/V8HTMLCustomElement.cpp: Added.
59014        (WebCore::V8HTMLCustomElement::createWrapper):
59015        * bindings/v8/V8HTMLCustomElement.h: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
59016        (V8HTMLCustomElement):
59017        (WebCore::V8HTMLCustomElement::toV8):
59018        (WebCore::HTMLCustomElement::toV8):
59019        * bindings/v8/V8HiddenPropertyName.h:
59020        * bindings/v8/custom/V8CustomElementConstructorCustom.cpp: Added.
59021        (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
59022        * dom/CustomElementConstructor.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
59023        (WebCore::CustomElementConstructor::create):
59024        (WebCore::CustomElementConstructor::CustomElementConstructor):
59025        (WebCore::CustomElementConstructor::~CustomElementConstructor):
59026        (WebCore::CustomElementConstructor::createElement):
59027        * dom/CustomElementConstructor.h: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
59028        (CustomElementConstructor):
59029        (WebCore::CustomElementConstructor::document):
59030        (WebCore::CustomElementConstructor::tagName):
59031        (WebCore::CustomElementConstructor::name):
59032        * dom/CustomElementConstructor.idl: Added.
59033        * dom/CustomElementRegistry.cpp: Added.
59034        (WebCore::CustomElementRegistry::CustomElementRegistry):
59035        (WebCore::CustomElementRegistry::~CustomElementRegistry):
59036        (WebCore::CustomElementRegistry::constructorOf):
59037        (WebCore::CustomElementRegistry::isValidName):
59038        (WebCore::CustomElementRegistry::registerElement):
59039        (WebCore::CustomElementRegistry::find):
59040        (WebCore::CustomElementRegistry::createElement):
59041        (WebCore::CustomElementRegistry::document):
59042        * dom/CustomElementRegistry.h: Added.
59043        (CustomElementRegistry):
59044        * dom/Document.cpp:
59045        (WebCore::Document::removedLastRef):
59046        (WebCore::Document::registerElement):
59047        (WebCore::Document::registry):
59048        * dom/Document.h:
59049        (Document):
59050        * dom/make_names.pl:
59051        (printWrapperFactoryCppFile):
59052        * html/HTMLDocument.idl:
59053
590542013-02-24  Eugene Klyuchnikov  <eustas@chromium.org>
59055
59056        Web Inspector: [Timeline] Shrink CPU bars to make it easier to see frame information popup.
59057        https://bugs.webkit.org/show_bug.cgi?id=110561
59058
59059        Reviewed by Pavel Feldman.
59060
59061        Area that causes frame information popup is overly "shaded" by CPU bars.
59062
59063        * inspector/front-end/timelinePanel.css:
59064        (.timeline-cpu-bars .timeline-graph-bar): Reduce height and opacity.
59065
590662013-02-24  Andreas Kling  <akling@apple.com>
59067
59068        Reduce include graph of JSDOMBinding.h
59069        <http://webkit.org/b/110709>
59070
59071        Reviewed by Antti Koivisto.
59072
59073        Move WebCore::root(Foo*) to the custom JSFooCustom.h headers.
59074        This reduces the number of headers pulled in by JSDOMBinding.h.
59075
59076        * WebCore.xcodeproj/project.pbxproj:
59077        * bindings/js/JSCSSRuleCustom.cpp:
59078        * bindings/js/JSCSSRuleCustom.h: Added.
59079        (WebCore::root):
59080        * bindings/js/JSCSSRuleListCustom.cpp:
59081        * bindings/js/JSCSSStyleDeclarationCustom.h:
59082        (WebCore::root):
59083        * bindings/js/JSDOMBinding.h:
59084        * bindings/js/JSMediaListCustom.h: Added.
59085        (WebCore::root):
59086        * bindings/js/JSMutationObserverCustom.cpp:
59087        * bindings/js/JSNodeCustom.h:
59088        (WebCore::root):
59089        * bindings/js/JSSVGElementInstanceCustom.cpp:
59090        * bindings/js/JSStyleSheetCustom.h: Added.
59091        (WebCore::root):
59092        * bindings/js/JSTextTrackCustom.h:
59093        * bindings/js/JSTextTrackListCustom.cpp:
59094        * bindings/js/JSXPathResultCustom.cpp:
59095        * bindings/js/SerializedScriptValue.cpp:
59096        * bindings/scripts/CodeGeneratorGObject.pm:
59097        (Generate):
59098        * bindings/scripts/CodeGeneratorJS.pm:
59099        (GenerateImplementation):
59100        * bindings/scripts/CodeGeneratorObjC.pm:
59101        (AddIncludesForType):
59102        * css/CSSRule.idl:
59103        * css/CSSStyleDeclaration.idl:
59104        * css/MediaList.idl:
59105        * css/StyleSheet.idl:
59106        * editing/mac/EditorMac.mm:
59107
591082013-02-23  Alexey Proskuryakov  <ap@apple.com>
59109
59110        ResourceRequestBase unnecessarily updates when nothing changes
59111        https://bugs.webkit.org/show_bug.cgi?id=110665
59112
59113        Reviewed by Dan Bernstein.
59114
59115        Don't mark platform data for update if nothing really changed. This avoids ever doing
59116        doUpdatePlatformRequest() in NetworkProcess during normal browsing for me, which is
59117        good for performance.
59118
59119        * platform/network/ResourceRequestBase.cpp:
59120        (WebCore::ResourceRequestBase::removeCredentials):
59121        (WebCore::ResourceRequestBase::setCachePolicy):
59122        (WebCore::ResourceRequestBase::setTimeoutInterval):
59123        (WebCore::ResourceRequestBase::setFirstPartyForCookies):
59124        (WebCore::ResourceRequestBase::setHTTPMethod):
59125        (WebCore::ResourceRequestBase::clearHTTPAuthorization):
59126        (WebCore::ResourceRequestBase::setAllowCookies):
59127        (WebCore::ResourceRequestBase::setPriority):
59128
591292013-02-23  Philip Rogers  <pdr@google.com>
59130
59131        Prevent crash in animated transform lists
59132        https://bugs.webkit.org/show_bug.cgi?id=110704
59133
59134        Reviewed by Abhishek Arya.
59135
59136        This change prevents accessing values off the end of toAtEndOfDuration by adding a check
59137        for this case. Similar checks were added in r116458 but the author failed to catch this
59138        case. WK110706 has been filed to handle this case in general.
59139
59140        This change also makes a trivial change that marks effectiveFrom as const.
59141
59142        Test: svg/animations/animateTransform-list-crash.html
59143
59144        * svg/SVGAnimatedTransformList.cpp:
59145        (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
59146
591472013-02-23  Dimitri Glazkov  <dglazkov@chromium.org>
59148
59149        SelectorChecker should not know about SelectorCheckerFastPath.
59150        https://bugs.webkit.org/show_bug.cgi?id=110663
59151
59152        Both SelectorChecker and it's speedy cousin unfortunately include each other.
59153        Luckily, the particular way in which SelectorQuery uses SelectorChecker yields
59154        to a fairly simple decoupling. Now only the cousin knows of SelectorChecker.
59155
59156        Reviewed by Antti Koivisto.
59157
59158        No new functionality, covered by existing tests.
59159
59160        * css/SelectorChecker.cpp:
59161        (WebCore::SelectorChecker::matches): Removed.
59162        * css/SelectorChecker.h:
59163        (SelectorChecker): Updated the decls to remove fast-path flag.
59164        * dom/SelectorQuery.cpp:
59165        (WebCore::SelectorDataList::selectorMatches): Added a helper just for SelectorQuery.
59166        (WebCore::SelectorDataList::matches): Changed the callsite to use new helper.
59167        (WebCore::SelectorDataList::execute): Ditto.
59168        * dom/SelectorQuery.h:
59169        (SelectorDataList): Updated decls.
59170
591712013-02-23  Eric Carlson  <eric.carlson@apple.com>
59172
59173        [Mac] user preference caption style applied incorrectly
59174        https://bugs.webkit.org/show_bug.cgi?id=110707
59175        <rdar://problem/13281096>
59176
59177        Reviewed by Maciej Stachowiak.
59178
59179        * html/shadow/MediaControlElements.cpp:
59180        (WebCore::MediaControlTextTrackContainerElement::textTrackContainerElementShadowPseudoId): New
59181            static function so the pseudo ID is available.
59182        (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Call textTrackContainerElementShadowPseudoId.
59183        * html/shadow/MediaControlElements.h:
59184
59185        * page/CaptionUserPreferencesMac.mm:
59186        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Style the text track container
59187            element for cue color, edge style, and font name.
59188
591892013-02-22  Kentaro Hara  <haraken@chromium.org>
59190
59191        [V8] Generate xxxAttrGetterCallback()
59192        https://bugs.webkit.org/show_bug.cgi?id=110676
59193
59194        Reviewed by Adam Barth.
59195
59196        This is one of steps to insert TRACE_EVENT_STATE() macros
59197        into DOM bindings. This patch introduces an indirection
59198        function for xxxAttrGetter(), like this:
59199
59200        // For non-custom getters
59201        Handle<Value> xxxAttrGetterCallback(...) {
59202          return xxxAttrGetter(...);
59203        }
59204
59205        // For custom getters.
59206        Handle<Value> xxxAttrGetterCallback(...) {
59207          return xxxAttrGetterCustom(...);
59208        }
59209
59210        No tests. No change in behavior.
59211
59212        * bindings/scripts/CodeGeneratorV8.pm:
59213        (GenerateDomainSafeFunctionGetter):
59214        (GenerateNormalAttrGetterCallback):
59215        (GenerateNormalAttrGetter):
59216        (GenerateSingleBatchedAttribute):
59217        (GenerateNonStandardFunction):
59218        (GenerateImplementation):
59219        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
59220        (WebCore::TestActiveDOMObjectV8Internal::excitingAttrAttrGetterCallback):
59221        (TestActiveDOMObjectV8Internal):
59222        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetterCallback):
59223        (WebCore):
59224        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
59225        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
59226        (WebCore::TestEventConstructorV8Internal::attr1AttrGetterCallback):
59227        (TestEventConstructorV8Internal):
59228        (WebCore::TestEventConstructorV8Internal::attr2AttrGetterCallback):
59229        (WebCore):
59230        * bindings/scripts/test/V8/V8TestException.cpp:
59231        (WebCore::TestExceptionV8Internal::nameAttrGetterCallback):
59232        (TestExceptionV8Internal):
59233        (WebCore):
59234        * bindings/scripts/test/V8/V8TestInterface.cpp:
59235        (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetterCallback):
59236        (TestInterfaceV8Internal):
59237        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetterCallback):
59238        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetterCallback):
59239        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetterCallback):
59240        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetterCallback):
59241        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetterCallback):
59242        (WebCore):
59243        * bindings/scripts/test/V8/V8TestObj.cpp:
59244        (WebCore::TestObjV8Internal::readOnlyLongAttrAttrGetterCallback):
59245        (TestObjV8Internal):
59246        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetterCallback):
59247        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetterCallback):
59248        (WebCore::TestObjV8Internal::staticReadOnlyLongAttrAttrGetterCallback):
59249        (WebCore::TestObjV8Internal::staticStringAttrAttrGetterCallback):
59250        (WebCore::TestObjV8Internal::enumAttrAttrGetterCallback):
59251        (WebCore::TestObjV8Internal::shortAttrAttrGetterCallback):
59252        (WebCore::TestObjV8Internal::unsignedShortAttrAttrGetterCallback):
59253        (WebCore::TestObjV8Internal::longAttrAttrGetterCallback):
59254        (WebCore::TestObjV8Internal::longLongAttrAttrGetterCallback):
59255        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrGetterCallback):
59256        (WebCore::TestObjV8Internal::stringAttrAttrGetterCallback):
59257        (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
59258        (WebCore::TestObjV8Internal::testObjAttrAttrGetterCallback):
59259        (WebCore::TestObjV8Internal::XMLObjAttrAttrGetterCallback):
59260        (WebCore::TestObjV8Internal::createAttrGetterCallback):
59261        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetterCallback):
59262        (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrGetterCallback):
59263        (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrGetterCallback):
59264        (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrGetterCallback):
59265        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetterCallback):
59266        (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrGetterCallback):
59267        (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrGetterCallback):
59268        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetterCallback):
59269        (WebCore::TestObjV8Internal::typedArrayAttrAttrGetterCallback):
59270        (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrGetterCallback):
59271        (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrGetterCallback):
59272        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetterCallback):
59273        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetterCallback):
59274        (WebCore::TestObjV8Internal::customAttrAttrGetterCallback):
59275        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetterCallback):
59276        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrGetterCallback):
59277        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetterCallback):
59278        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrGetterCallback):
59279        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetterCallback):
59280        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetterCallback):
59281        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetterCallback):
59282        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetterCallback):
59283        (WebCore::TestObjV8Internal::conditionalAttr1AttrGetterCallback):
59284        (WebCore::TestObjV8Internal::conditionalAttr2AttrGetterCallback):
59285        (WebCore::TestObjV8Internal::conditionalAttr3AttrGetterCallback):
59286        (WebCore::TestObjV8Internal::cachedAttribute1AttrGetterCallback):
59287        (WebCore::TestObjV8Internal::cachedAttribute2AttrGetterCallback):
59288        (WebCore::TestObjV8Internal::anyAttributeAttrGetterCallback):
59289        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrGetterCallback):
59290        (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrGetterCallback):
59291        (WebCore::TestObjV8Internal::enabledPerContextAttr1AttrGetterCallback):
59292        (WebCore::TestObjV8Internal::enabledPerContextAttr2AttrGetterCallback):
59293        (WebCore::TestObjV8Internal::floatArrayAttrGetterCallback):
59294        (WebCore::TestObjV8Internal::doubleArrayAttrGetterCallback):
59295        (WebCore::TestObjV8Internal::contentDocumentAttrGetterCallback):
59296        (WebCore::TestObjV8Internal::mutablePointAttrGetterCallback):
59297        (WebCore::TestObjV8Internal::immutablePointAttrGetterCallback):
59298        (WebCore::TestObjV8Internal::strawberryAttrGetterCallback):
59299        (WebCore::TestObjV8Internal::strictFloatAttrGetterCallback):
59300        (WebCore::TestObjV8Internal::descriptionAttrGetterCallback):
59301        (WebCore::TestObjV8Internal::idAttrGetterCallback):
59302        (WebCore::TestObjV8Internal::hashAttrGetterCallback):
59303        (WebCore::TestObjV8Internal::replaceableAttributeAttrGetterCallback):
59304        (WebCore):
59305        (WebCore::ConfigureV8TestObjTemplate):
59306        (WebCore::V8TestObj::installPerContextProperties):
59307        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
59308        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetterCallback):
59309        (TestSerializedScriptValueInterfaceV8Internal):
59310        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetterCallback):
59311        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetterCallback):
59312        (WebCore::TestSerializedScriptValueInterfaceV8Internal::portsAttrGetterCallback):
59313        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetterCallback):
59314        (WebCore):
59315        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
59316        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetterCallback):
59317        (TestTypedefsV8Internal):
59318        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetterCallback):
59319        (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrGetterCallback):
59320        (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrGetterCallback):
59321        (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrGetterCallback):
59322        (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrGetterCallback):
59323        (WebCore):
59324
593252013-02-23  Kentaro Hara  <haraken@chromium.org>
59326
59327        WebCore fails to link in Chromium official build
59328        https://bugs.webkit.org/show_bug.cgi?id=110701
59329
59330        Reviewed by Abhishek Arya.
59331
59332        This is a follow-up fix for r143853. In WebCore.gyp, we need to
59333        increase the shard of 'webcore_rendering' as well.
59334
59335        No tests. No change in behavior.
59336
59337        * WebCore.gyp/WebCore.gyp:
59338
593392013-02-23  Kentaro Hara  <haraken@chromium.org>
59340
59341        Unreviewed, rolling out r143844.
59342        http://trac.webkit.org/changeset/143844
59343        https://bugs.webkit.org/show_bug.cgi?id=110241
59344
59345        It broke Chromium Mac Release Build
59346
59347        * WebCore.gyp/WebCore.gyp:
59348        * WebCore.gyp/WebCoreGTK.gyp: Removed.
59349        * WebCore.gypi:
59350
593512013-02-23  Adam Barth  <abarth@webkit.org>
59352
59353        WebCore fails to link in Chromium official build
59354        https://bugs.webkit.org/show_bug.cgi?id=110697
59355
59356        Reviewed by Eric Seidel.
59357
59358        Apparently we need to use more shards to work around linker limitations
59359        on Windows again.
59360
59361        * WebCore.gyp/WebCore.gyp:
59362
593632013-02-23  Kentaro Hara  <haraken@chromium.org>
59364
59365        [V8] Rename constructorCallbackCustom() to constructorCustom()
59366        https://bugs.webkit.org/show_bug.cgi?id=110671
59367
59368        Reviewed by Adam Barth.
59369
59370        his is one of steps to insert TRACE_EVENT_STATE() macros
59371        into DOM bindings.
59372        See https://bugs.webkit.org/show_bug.cgi?id=110667#c0
59373
59374        In the new world, "Callback" is used to indicate that it
59375        is a function called back by V8. Currently "Callback" is
59376        used for both V8 callbacks, DOM methods and DOM constructors.
59377        This patch fixes the inconsistency.
59378
59379        No tests. No change in behavior.
59380
59381        * bindings/scripts/CodeGeneratorV8.pm:
59382        (GenerateHeader):
59383        (GenerateCustomConstructorCallback):
59384        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
59385        (WebCore::V8ArrayBuffer::constructorCustom):
59386        * bindings/v8/custom/V8AudioContextCustom.cpp:
59387        (WebCore::V8AudioContext::constructorCustom):
59388        * bindings/v8/custom/V8BlobCustom.cpp:
59389        (WebCore::V8Blob::constructorCustom):
59390        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
59391        (WebCore::V8DOMFormData::constructorCustom):
59392        * bindings/v8/custom/V8DataViewCustom.cpp:
59393        (WebCore::V8DataView::constructorCustom):
59394        * bindings/v8/custom/V8MessageChannelCustom.cpp:
59395        (WebCore::V8MessageChannel::constructorCustom):
59396        * bindings/v8/custom/V8MutationObserverCustom.cpp:
59397        (WebCore::V8MutationObserver::constructorCustom):
59398        * bindings/v8/custom/V8WebKitPointCustom.cpp:
59399        (WebCore::V8WebKitPoint::constructorCustom):
59400        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
59401        (WebCore::V8XMLHttpRequest::constructorCustom):
59402
594032013-02-23  Kentaro Hara  <haraken@chromium.org>
59404
59405        [V8] Rename xxxCallback() to xxxMethod(), and xxxCallbackCustom() to xxxMethodCustom()
59406        https://bugs.webkit.org/show_bug.cgi?id=110669
59407
59408        Reviewed by Adam Barth.
59409
59410        This is one of steps to insert TRACE_EVENT_STATE()
59411        macros into DOM bindings.
59412        See https://bugs.webkit.org/show_bug.cgi?id=110667#c0
59413
59414        In the new world, "Callback" is used to refer that it
59415        is a function called back by V8. Currently "Callback" is
59416        used for both V8 callbacks, DOM methods and DOM constructors.
59417        This patch fixes the inconsistency.
59418
59419        No tests. No change in behavior.
59420
59421        * bindings/scripts/CodeGeneratorV8.pm:
59422        (GenerateHeader):
59423        (GenerateDomainSafeFunctionGetter):
59424        (GenerateOverloadedFunctionCallback):
59425        (GenerateFunctionCallback):
59426        (GenerateNonStandardFunction):
59427        (GenerateImplementation):
59428        * bindings/scripts/test/V8/V8Float64Array.cpp:
59429        (WebCore::Float64ArrayV8Internal::fooMethod):
59430        (WebCore::Float64ArrayV8Internal::setMethod):
59431        (WebCore):
59432        (WebCore::ConfigureV8Float64ArrayTemplate):
59433        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
59434        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethod):
59435        (WebCore::TestActiveDOMObjectV8Internal::postMessageMethod):
59436        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
59437        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
59438        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
59439        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionMethod):
59440        (WebCore):
59441        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
59442        (WebCore::TestEventTargetV8Internal::itemMethod):
59443        (WebCore::TestEventTargetV8Internal::addEventListenerMethod):
59444        (WebCore::TestEventTargetV8Internal::removeEventListenerMethod):
59445        (WebCore::TestEventTargetV8Internal::dispatchEventMethod):
59446        (WebCore):
59447        (WebCore::ConfigureV8TestEventTargetTemplate):
59448        * bindings/scripts/test/V8/V8TestInterface.cpp:
59449        (WebCore::TestInterfaceV8Internal::supplementalMethod1Method):
59450        (WebCore::TestInterfaceV8Internal::supplementalMethod2Method):
59451        (WebCore::TestInterfaceV8Internal::supplementalMethod3Method):
59452        (WebCore::TestInterfaceV8Internal::supplementalMethod4Method):
59453        (WebCore):
59454        (WebCore::ConfigureV8TestInterfaceTemplate):
59455        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
59456        (WebCore::TestMediaQueryListListenerV8Internal::methodMethod):
59457        (WebCore):
59458        * bindings/scripts/test/V8/V8TestObj.cpp:
59459        (WebCore::TestObjV8Internal::voidMethodMethod):
59460        (WebCore::TestObjV8Internal::voidMethodWithArgsMethod):
59461        (WebCore::TestObjV8Internal::longMethodMethod):
59462        (WebCore::TestObjV8Internal::longMethodWithArgsMethod):
59463        (WebCore::TestObjV8Internal::objMethodMethod):
59464        (WebCore::TestObjV8Internal::objMethodWithArgsMethod):
59465        (WebCore::TestObjV8Internal::methodWithSequenceArgMethod):
59466        (WebCore::TestObjV8Internal::methodReturningSequenceMethod):
59467        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethod):
59468        (WebCore::TestObjV8Internal::serializedValueMethod):
59469        (WebCore::TestObjV8Internal::optionsObjectMethod):
59470        (WebCore::TestObjV8Internal::methodWithExceptionMethod):
59471        (WebCore::TestObjV8Internal::customMethodMethod):
59472        (WebCore::TestObjV8Internal::customMethodWithArgsMethod):
59473        (WebCore::TestObjV8Internal::addEventListenerMethod):
59474        (WebCore::TestObjV8Internal::removeEventListenerMethod):
59475        (WebCore::TestObjV8Internal::withScriptStateVoidMethod):
59476        (WebCore::TestObjV8Internal::withScriptStateObjMethod):
59477        (WebCore::TestObjV8Internal::withScriptStateVoidExceptionMethod):
59478        (WebCore::TestObjV8Internal::withScriptStateObjExceptionMethod):
59479        (WebCore::TestObjV8Internal::withScriptExecutionContextMethod):
59480        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateMethod):
59481        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionMethod):
59482        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesMethod):
59483        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackMethod):
59484        (WebCore::TestObjV8Internal::methodWithOptionalArgMethod):
59485        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgMethod):
59486        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsMethod):
59487        (WebCore::TestObjV8Internal::methodWithOptionalStringMethod):
59488        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedMethod):
59489        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringMethod):
59490        (WebCore::TestObjV8Internal::methodWithCallbackArgMethod):
59491        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgMethod):
59492        (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgMethod):
59493        (WebCore::TestObjV8Internal::conditionalMethod1Method):
59494        (WebCore::TestObjV8Internal::conditionalMethod2Method):
59495        (WebCore::TestObjV8Internal::conditionalMethod3Method):
59496        (WebCore::TestObjV8Internal::overloadedMethod1Method):
59497        (WebCore::TestObjV8Internal::overloadedMethod2Method):
59498        (WebCore::TestObjV8Internal::overloadedMethod3Method):
59499        (WebCore::TestObjV8Internal::overloadedMethod4Method):
59500        (WebCore::TestObjV8Internal::overloadedMethod5Method):
59501        (WebCore::TestObjV8Internal::overloadedMethod6Method):
59502        (WebCore::TestObjV8Internal::overloadedMethod7Method):
59503        (WebCore::TestObjV8Internal::overloadedMethod8Method):
59504        (WebCore::TestObjV8Internal::overloadedMethod9Method):
59505        (WebCore::TestObjV8Internal::overloadedMethod10Method):
59506        (WebCore::TestObjV8Internal::overloadedMethod11Method):
59507        (WebCore::TestObjV8Internal::overloadedMethodMethod):
59508        (WebCore::TestObjV8Internal::classMethodMethod):
59509        (WebCore::TestObjV8Internal::classMethodWithOptionalMethod):
59510        (WebCore::TestObjV8Internal::classMethod2Method):
59511        (WebCore::TestObjV8Internal::overloadedMethod12Method):
59512        (WebCore::TestObjV8Internal::classMethodWithClampMethod):
59513        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Method):
59514        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Method):
59515        (WebCore::TestObjV8Internal::enabledPerContextMethod1Method):
59516        (WebCore::TestObjV8Internal::enabledPerContextMethod2Method):
59517        (WebCore::TestObjV8Internal::stringArrayFunctionMethod):
59518        (WebCore::TestObjV8Internal::domStringListFunctionMethod):
59519        (WebCore::TestObjV8Internal::getSVGDocumentMethod):
59520        (WebCore::TestObjV8Internal::convert1Method):
59521        (WebCore::TestObjV8Internal::convert2Method):
59522        (WebCore::TestObjV8Internal::convert4Method):
59523        (WebCore::TestObjV8Internal::convert5Method):
59524        (WebCore::TestObjV8Internal::mutablePointFunctionMethod):
59525        (WebCore::TestObjV8Internal::immutablePointFunctionMethod):
59526        (WebCore::TestObjV8Internal::orangeMethod):
59527        (WebCore::TestObjV8Internal::strictFunctionMethod):
59528        (WebCore::TestObjV8Internal::variadicStringMethodMethod):
59529        (WebCore::TestObjV8Internal::variadicDoubleMethodMethod):
59530        (WebCore::TestObjV8Internal::variadicNodeMethodMethod):
59531        (WebCore):
59532        (WebCore::ConfigureV8TestObjTemplate):
59533        (WebCore::V8TestObj::installPerContextPrototypeProperties):
59534        * bindings/scripts/test/V8/V8TestObj.h:
59535        (V8TestObj):
59536        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
59537        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListMethod):
59538        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListMethod):
59539        (WebCore):
59540        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
59541        (WebCore::TestTypedefsV8Internal::funcMethod):
59542        (WebCore::TestTypedefsV8Internal::multiTransferListMethod):
59543        (WebCore::TestTypedefsV8Internal::setShadowMethod):
59544        (WebCore::TestTypedefsV8Internal::methodWithSequenceArgMethod):
59545        (WebCore::TestTypedefsV8Internal::nullableArrayArgMethod):
59546        (WebCore::TestTypedefsV8Internal::funcWithClampMethod):
59547        (WebCore::TestTypedefsV8Internal::immutablePointFunctionMethod):
59548        (WebCore::TestTypedefsV8Internal::stringArrayFunctionMethod):
59549        (WebCore::TestTypedefsV8Internal::stringArrayFunction2Method):
59550        (WebCore::TestTypedefsV8Internal::methodWithExceptionMethod):
59551        (WebCore):
59552        (WebCore::ConfigureV8TestTypedefsTemplate):
59553        * bindings/v8/custom/V8ClipboardCustom.cpp:
59554        (WebCore::V8Clipboard::clearDataMethodCustom):
59555        (WebCore::V8Clipboard::setDragImageMethodCustom):
59556        * bindings/v8/custom/V8ConsoleCustom.cpp:
59557        (WebCore::V8Console::traceMethodCustom):
59558        (WebCore::V8Console::assertMethodCustom):
59559        (WebCore::V8Console::profileMethodCustom):
59560        (WebCore::V8Console::profileEndMethodCustom):
59561        * bindings/v8/custom/V8CryptoCustom.cpp:
59562        (WebCore::V8Crypto::getRandomValuesMethodCustom):
59563        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
59564        (WebCore::V8DOMFormData::appendMethodCustom):
59565        * bindings/v8/custom/V8DOMWindowCustom.cpp:
59566        (WebCore::V8DOMWindow::addEventListenerMethodCustom):
59567        (WebCore::V8DOMWindow::removeEventListenerMethodCustom):
59568        (WebCore::V8DOMWindow::postMessageMethodCustom):
59569        (WebCore::V8DOMWindow::toStringMethodCustom):
59570        (WebCore::V8DOMWindow::releaseEventsMethodCustom):
59571        (WebCore::V8DOMWindow::captureEventsMethodCustom):
59572        (WebCore::V8DOMWindow::showModalDialogMethodCustom):
59573        (WebCore::V8DOMWindow::openMethodCustom):
59574        (WebCore::V8DOMWindow::setTimeoutMethodCustom):
59575        (WebCore::V8DOMWindow::setIntervalMethodCustom):
59576        * bindings/v8/custom/V8DataViewCustom.cpp:
59577        (WebCore::V8DataView::getInt8MethodCustom):
59578        (WebCore::V8DataView::getUint8MethodCustom):
59579        (WebCore::V8DataView::setInt8MethodCustom):
59580        (WebCore::V8DataView::setUint8MethodCustom):
59581        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
59582        (WebCore::V8DedicatedWorkerContext::postMessageMethodCustom):
59583        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
59584        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventMethodCustom):
59585        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
59586        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventMethodCustom):
59587        * bindings/v8/custom/V8DocumentCustom.cpp:
59588        (WebCore::V8Document::evaluateMethodCustom):
59589        (WebCore::V8Document::createTouchListMethodCustom):
59590        * bindings/v8/custom/V8GeolocationCustom.cpp:
59591        (WebCore::V8Geolocation::getCurrentPositionMethodCustom):
59592        (WebCore::V8Geolocation::watchPositionMethodCustom):
59593        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
59594        (WebCore::V8HTMLAllCollection::itemMethodCustom):
59595        (WebCore::V8HTMLAllCollection::namedItemMethodCustom):
59596        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
59597        (WebCore::V8HTMLCanvasElement::getContextMethodCustom):
59598        (WebCore::V8HTMLCanvasElement::toDataURLMethodCustom):
59599        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
59600        (WebCore::V8HTMLDocument::writeMethodCustom):
59601        (WebCore::V8HTMLDocument::writelnMethodCustom):
59602        (WebCore::V8HTMLDocument::openMethodCustom):
59603        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
59604        (WebCore::V8HTMLFormControlsCollection::namedItemMethodCustom):
59605        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
59606        (WebCore::v8HTMLImageElementConstructorMethodCustom):
59607        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
59608        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
59609        (WebCore::V8HTMLInputElement::setSelectionRangeMethodCustom):
59610        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
59611        (WebCore::V8HTMLOptionsCollection::namedItemMethodCustom):
59612        (WebCore::V8HTMLOptionsCollection::removeMethodCustom):
59613        (WebCore::V8HTMLOptionsCollection::addMethodCustom):
59614        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
59615        (WebCore::V8HTMLSelectElement::removeMethodCustom):
59616        * bindings/v8/custom/V8HistoryCustom.cpp:
59617        (WebCore::V8History::pushStateMethodCustom):
59618        (WebCore::V8History::replaceStateMethodCustom):
59619        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
59620        (WebCore::V8InjectedScriptHost::inspectedObjectMethodCustom):
59621        (WebCore::V8InjectedScriptHost::internalConstructorNameMethodCustom):
59622        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionMethodCustom):
59623        (WebCore::V8InjectedScriptHost::typeMethodCustom):
59624        (WebCore::V8InjectedScriptHost::functionDetailsMethodCustom):
59625        (WebCore::V8InjectedScriptHost::getInternalPropertiesMethodCustom):
59626        (WebCore::V8InjectedScriptHost::getEventListenersMethodCustom):
59627        (WebCore::V8InjectedScriptHost::inspectMethodCustom):
59628        (WebCore::V8InjectedScriptHost::databaseIdMethodCustom):
59629        (WebCore::V8InjectedScriptHost::storageIdMethodCustom):
59630        (WebCore::V8InjectedScriptHost::evaluateMethodCustom):
59631        (WebCore::V8InjectedScriptHost::setFunctionVariableValueMethodCustom):
59632        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
59633        (WebCore::V8InspectorFrontendHost::platformMethodCustom):
59634        (WebCore::V8InspectorFrontendHost::portMethodCustom):
59635        (WebCore::V8InspectorFrontendHost::showContextMenuMethodCustom):
59636        (WebCore::V8InspectorFrontendHost::recordActionTakenMethodCustom):
59637        (WebCore::V8InspectorFrontendHost::recordPanelShownMethodCustom):
59638        (WebCore::V8InspectorFrontendHost::recordSettingChangedMethodCustom):
59639        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
59640        (WebCore::V8JavaScriptCallFrame::evaluateMethodCustom):
59641        (WebCore::V8JavaScriptCallFrame::restartMethodCustom):
59642        (WebCore::V8JavaScriptCallFrame::setVariableValueMethodCustom):
59643        (WebCore::V8JavaScriptCallFrame::scopeTypeMethodCustom):
59644        * bindings/v8/custom/V8LocationCustom.cpp:
59645        (WebCore::V8Location::reloadAttrGetterCustom):
59646        (WebCore::V8Location::replaceAttrGetterCustom):
59647        (WebCore::V8Location::assignAttrGetterCustom):
59648        (WebCore::V8Location::reloadMethodCustom):
59649        (WebCore::V8Location::replaceMethodCustom):
59650        (WebCore::V8Location::assignMethodCustom):
59651        (WebCore::V8Location::valueOfMethodCustom):
59652        (WebCore::V8Location::toStringMethodCustom):
59653        * bindings/v8/custom/V8MessageEventCustom.cpp:
59654        (WebCore::V8MessageEvent::initMessageEventMethodCustom):
59655        (WebCore::V8MessageEvent::webkitInitMessageEventMethodCustom):
59656        * bindings/v8/custom/V8MessagePortCustom.cpp:
59657        (WebCore::V8MessagePort::postMessageMethodCustom):
59658        * bindings/v8/custom/V8NodeCustom.cpp:
59659        (WebCore::V8Node::insertBeforeMethodCustom):
59660        (WebCore::V8Node::replaceChildMethodCustom):
59661        (WebCore::V8Node::removeChildMethodCustom):
59662        (WebCore::V8Node::appendChildMethodCustom):
59663        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
59664        (WebCore::V8NotificationCenter::requestPermissionMethodCustom):
59665        * bindings/v8/custom/V8NotificationCustom.cpp:
59666        (WebCore::V8Notification::requestPermissionMethodCustom):
59667        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
59668        (WebCore::V8SQLResultSetRowList::itemMethodCustom):
59669        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
59670        (WebCore::V8SQLTransaction::executeSqlMethodCustom):
59671        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
59672        (WebCore::V8SQLTransactionSync::executeSqlMethodCustom):
59673        * bindings/v8/custom/V8SVGLengthCustom.cpp:
59674        (WebCore::V8SVGLength::convertToSpecifiedUnitsMethodCustom):
59675        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
59676        (WebCore::V8WebGLRenderingContext::getAttachedShadersMethodCustom):
59677        (WebCore::V8WebGLRenderingContext::getBufferParameterMethodCustom):
59678        (WebCore::V8WebGLRenderingContext::getExtensionMethodCustom):
59679        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterMethodCustom):
59680        (WebCore::V8WebGLRenderingContext::getParameterMethodCustom):
59681        (WebCore::V8WebGLRenderingContext::getProgramParameterMethodCustom):
59682        (WebCore::V8WebGLRenderingContext::getRenderbufferParameterMethodCustom):
59683        (WebCore::V8WebGLRenderingContext::getShaderParameterMethodCustom):
59684        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsMethodCustom):
59685        (WebCore::V8WebGLRenderingContext::getTexParameterMethodCustom):
59686        (WebCore::V8WebGLRenderingContext::getUniformMethodCustom):
59687        (WebCore::V8WebGLRenderingContext::getVertexAttribMethodCustom):
59688        (WebCore::V8WebGLRenderingContext::uniform1fvMethodCustom):
59689        (WebCore::V8WebGLRenderingContext::uniform1ivMethodCustom):
59690        (WebCore::V8WebGLRenderingContext::uniform2fvMethodCustom):
59691        (WebCore::V8WebGLRenderingContext::uniform2ivMethodCustom):
59692        (WebCore::V8WebGLRenderingContext::uniform3fvMethodCustom):
59693        (WebCore::V8WebGLRenderingContext::uniform3ivMethodCustom):
59694        (WebCore::V8WebGLRenderingContext::uniform4fvMethodCustom):
59695        (WebCore::V8WebGLRenderingContext::uniform4ivMethodCustom):
59696        (WebCore::V8WebGLRenderingContext::uniformMatrix2fvMethodCustom):
59697        (WebCore::V8WebGLRenderingContext::uniformMatrix3fvMethodCustom):
59698        (WebCore::V8WebGLRenderingContext::uniformMatrix4fvMethodCustom):
59699        (WebCore::V8WebGLRenderingContext::vertexAttrib1fvMethodCustom):
59700        (WebCore::V8WebGLRenderingContext::vertexAttrib2fvMethodCustom):
59701        (WebCore::V8WebGLRenderingContext::vertexAttrib3fvMethodCustom):
59702        (WebCore::V8WebGLRenderingContext::vertexAttrib4fvMethodCustom):
59703        * bindings/v8/custom/V8WorkerContextCustom.cpp:
59704        (WebCore::V8WorkerContext::importScriptsMethodCustom):
59705        (WebCore::V8WorkerContext::setTimeoutMethodCustom):
59706        (WebCore::V8WorkerContext::setIntervalMethodCustom):
59707        * bindings/v8/custom/V8WorkerCustom.cpp:
59708        (WebCore::V8Worker::postMessageMethodCustom):
59709        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
59710        (WebCore::V8XMLHttpRequest::openMethodCustom):
59711        (WebCore::V8XMLHttpRequest::sendMethodCustom):
59712        * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
59713        (WebCore::V8XSLTProcessor::setParameterMethodCustom):
59714        (WebCore::V8XSLTProcessor::getParameterMethodCustom):
59715        (WebCore::V8XSLTProcessor::removeParameterMethodCustom):
59716
597172013-02-23  Dimitri Glazkov  <dglazkov@chromium.org>
59718
59719        Scrollbar style resolution arguments should not passed via statics.
59720        https://bugs.webkit.org/show_bug.cgi?id=110690
59721
59722        Use PseudoStyleRequest to pass scrollbar params for style resolve.
59723
59724        Reviewed by Eric Seidel.
59725
59726        No change in functionality, covered by existing tests.
59727
59728        * css/SelectorChecker.cpp:
59729        (WebCore::SelectorChecker::match): Changed to use context params, rather than statics.
59730        (WebCore::SelectorChecker::checkOne): Changed to pass context to checkScrollbarPseudoClass.
59731        (WebCore::SelectorChecker::checkScrollbarPseudoClass): Changed to use context params, rather than statics.
59732        * css/SelectorChecker.h:
59733        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): Added scrollbar style args.
59734        (SelectorCheckingContext): Ditto.
59735        * css/StyleResolver.cpp:
59736        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use PseudoStyleRequest.
59737        (WebCore::StyleResolver::State::initForStyleResolve): Ditto.
59738        (WebCore::StyleResolver::pseudoStyleForElement): Ditto.
59739        (WebCore::StyleResolver::ruleMatches): Ditto and added stuffing scrollbar style resolve args into SelectorCheckingContext.
59740        * css/StyleResolver.h:
59741        (PseudoStyleRequest): Added.
59742        (State): Changed to hold and use PseudoStyleRequest instead of just PseudoId
59743        * dom/Element.cpp:
59744        (WebCore::Element::pseudoStyleCacheIsInvalid): Changed to use PseudoStyleRequest.
59745        * page/FrameView.cpp: Ditto.
59746        (WebCore::FrameView::updateScrollCorner): Ditto.
59747        * rendering/RenderLayer.cpp:
59748        (WebCore::RenderLayer::updateScrollCornerStyle): Ditto.
59749        (WebCore::RenderLayer::updateResizerStyle): Ditto.
59750        * rendering/RenderObject.cpp:
59751        (WebCore::RenderObject::selectionBackgroundColor): Ditto.
59752        (WebCore::RenderObject::selectionColor): Ditto.
59753        (WebCore::firstLineStyleForCachedUncachedType): Ditto.
59754        (WebCore::RenderObject::getCachedPseudoStyle): Ditto.
59755        (WebCore::RenderObject::getUncachedPseudoStyle): Ditto.
59756        * rendering/RenderObject.h:
59757        (RenderObject): Ditto.
59758        * rendering/RenderScrollbar.cpp:
59759        (WebCore::RenderScrollbar::getScrollbarPseudoStyle): Ditto.
59760        * rendering/RenderScrollbar.h:
59761        (RenderScrollbar): Removed static members that are now obsolete.
59762
597632013-02-23  Adam Barth  <abarth@webkit.org>
59764
59765        Threaded HTML parser should pass fast/parser/parser-yield-timing.html
59766        https://bugs.webkit.org/show_bug.cgi?id=110647
59767
59768        Reviewed by Eric Seidel.
59769
59770        Previously, the threaded HTML parser would run for an arbitrary amount
59771        of time without yielding after speculation succeeded. This might be the
59772        cause of the good DOMContentLoaded numbers.
59773
59774        Note: This patch also demonstrates that the ParseHTML_max numbers
59775        aren't correct currently because they're measuring the interior of this
59776        loop instead of all the time spent in the loop. We should move the
59777        instrumentation in a followup patch.
59778
59779         * html/parser/HTMLDocumentParser.cpp:
59780        (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
59781        (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
59782        (WebCore):
59783        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
59784        * html/parser/HTMLDocumentParser.h:
59785        (HTMLDocumentParser):
59786        * html/parser/HTMLParserScheduler.cpp:
59787
597882013-02-23  Martin Robinson  <mrobinson@igalia.com>
59789
59790        [GTK] Allow sharing the WebCore include list with the Chromium build
59791        https://bugs.webkit.org/show_bug.cgi?id=110241
59792
59793        Reviewed by Dirk Pranke.
59794
59795        * WebCore.gyp/WebCore.gyp: Moved shared include directories to
59796        WebCore.gypi.
59797        * WebCore.gyp/WebCoreGTK.gyp: Added. A skeleton gyp file for WebCoreGTK+.
59798        * WebCore.gypi: Added shared include directories.
59799
598002013-02-23  Andreas Kling  <akling@apple.com>
59801
59802        StyledElement: Tweak signature of collectStyleForPresentationAttribute().
59803        <http://webkit.org/b/110687>
59804
59805        Reviewed by Antti Koivisto.
59806
59807        Out with the old:
59808            collectStyleForPresentationAttribute(const Attribute&, StylePropertySet*)
59809
59810        In with the new:
59811            collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*)
59812
59813        This is primarily about switching to using MutableStylePropertySet* in preparation for
59814        removing mutating functions from the StylePropertySet base class.
59815
598162013-02-23  Kondapally Kalyan  <kalyan.kondapally@intel.com>
59817
59818        [EFL][WebGL] Refactor GLPlatformSurface.
59819        https://bugs.webkit.org/show_bug.cgi?id=110616
59820
59821        Reviewed by Kenneth Rohde Christiansen.
59822
59823        Covered by existing WebGL tests.
59824 
59825        With recent changes, there is a clear separation between 
59826        transport surface and off-screen surface. PlatformSurface 
59827        has the logic to render content to transport surface. 
59828        We currently rely on EXT_framebuffer_blit for this. This 
59829        extension is not exposed on GLES2.0. PlatformSurface was 
59830        supposed to be an abstraction layer without any knowledge 
59831        of the type of surface. This patch addresses the issues 
59832        in PlatformSurface class. We use shaders to draw texture 
59833        content to the surface. Any transport surface related 
59834        code in PlatformSurface is moved to GLTransportSurface class.
59835
59836        * PlatformEfl.cmake:
59837        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
59838        (WebCore::GraphicsContext3DPrivate::didResizeCanvas):
59839        * platform/graphics/surfaces/GLTransportSurface.cpp: Added.
59840        (WebCore):
59841        (WebCore::GLTransportSurface::GLTransportSurface):
59842        (WebCore::GLTransportSurface::~GLTransportSurface):
59843        (WebCore::GLTransportSurface::updateContents):
59844        (WebCore::GLTransportSurface::setGeometry):
59845        (WebCore::GLTransportSurface::destroy):
59846        (WebCore::GLTransportSurface::draw):
59847        (WebCore::GLTransportSurface::bindArrayBuffer):
59848        (WebCore::GLTransportSurface::updateTransformationMatrix):
59849        (WebCore::GLTransportSurface::initializeShaderProgram):
59850        * platform/graphics/surfaces/GLTransportSurface.h:
59851        (WebCore):
59852        (GLTransportSurface):
59853        * platform/graphics/surfaces/egl/EGLSurface.cpp:
59854        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
59855        (WebCore::EGLWindowTransportSurface::destroy):
59856        (WebCore::EGLWindowTransportSurface::setGeometry):
59857        * platform/graphics/surfaces/egl/EGLSurface.h:
59858        * platform/graphics/surfaces/glx/GLXSurface.cpp:
59859        (WebCore::GLXTransportSurface::GLXTransportSurface):
59860        (WebCore::GLXTransportSurface::setGeometry):
59861        (WebCore::GLXTransportSurface::destroy):
59862        (WebCore::GLXOffScreenSurface::freeResources):
59863        * platform/graphics/surfaces/glx/GLXSurface.h:
59864
598652013-02-23  Hajime Morrita  <morrita@google.com>
59866
59867        ShadowRoot needs guardRef() and guardDeref()
59868        https://bugs.webkit.org/show_bug.cgi?id=109777
59869
59870        Reviewed by Dimitri Glazkov.
59871
59872        This change moves m_guardRefCount from Document to TreeScope,
59873        which allows ShadowRoot to be guarded by guardRef() mechanism as
59874        Document. After r137524, Node referes TreeScope instead of
59875        Document. This is natural consequence of the change: It no longer
59876        makes sense to guardRef() Document pointer from Node.
59877
59878        Detail:
59879
59880        - Document::m_guardRefCount and related funcdtions are moved to TreeScope
59881        - Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
59882          TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
59883        - Moved guardRef() and guardDeref() calls to TreeScope and Node.
59884          Note that there are two "guarded" TreeScope references. One is
59885          Node::m_treeScope and another is TreeScope::m_parentTreeScope.
59886          The guarded-ref management is now encapsulated in these two classes.
59887
59888        No new tests. Covered by existing tests.
59889
59890        * WebCore.exp.in:
59891        * dom/Document.cpp:
59892        (WebCore::Document::Document):
59893        (WebCore::Document::~Document):
59894        (WebCore::Document::dispose): Extracted from removedLastRef()
59895        * dom/Document.h:
59896        (WebCore::Node::isTreeScope):
59897        (WebCore::Node::Node):
59898        * dom/DocumentFragment.cpp:
59899        (WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
59900        (WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
59901        * dom/Node.cpp:
59902        (WebCore::Node::~Node):
59903        (WebCore::Node::removedLastRef):
59904        * dom/Node.h:
59905        (WebCore::Node::setTreeScope):
59906        * dom/ShadowRoot.cpp:
59907        (WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
59908        (WebCore::ShadowRoot::dispose): Added.
59909        * dom/ShadowRoot.h:
59910        (ShadowRoot):
59911        * dom/TreeScope.cpp:
59912        (SameSizeAsTreeScope):
59913        (WebCore::TreeScope::TreeScope):
59914        (WebCore::TreeScope::~TreeScope):
59915        (WebCore::TreeScope::dispose): Added.
59916        (WebCore::TreeScope::setParentTreeScope):
59917        (WebCore::TreeScope::deletionHasBegun):
59918        (WebCore::TreeScope::beginDeletion):
59919        (WebCore::TreeScope::refCount): Added.
59920        * dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
59921        (WebCore::TreeScope::guardRef): Pulled up from Document.
59922        (WebCore::TreeScope::guardDeref): Ditto.
59923        (WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
59924        (WebCore::TreeScope::deletionHasBegun): Added.
59925        (WebCore::TreeScope::beginDeletion): Added.
59926        (WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
59927        * dom/TreeScopeAdopter.cpp:
59928        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
59929        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
59930
599312013-02-23  Alexey Proskuryakov  <ap@apple.com>
59932
59933        Don't include ResourceHandle.h in ResourceLoaderOptions.h
59934        https://bugs.webkit.org/show_bug.cgi?id=110662
59935
59936        Reviewed by Tim Horton.
59937
59938        * loader/ResourceLoaderOptions.h: Include ResourceHandleTypes.h instead.
59939
599402013-02-23  Jason Anderssen  <janderssen@gmail.com>
59941
59942        Move setAutofilled from TestRunner to WebCore
59943        https://bugs.webkit.org/show_bug.cgi?id=110521
59944
59945        Reviewed by Benjamin Poulain.
59946
59947        * testing/Internals.cpp:
59948        (WebCore):
59949        (WebCore::Internals::setAutofilled):
59950        * testing/Internals.h:
59951        (Internals):
59952        * testing/Internals.idl:
59953
599542013-02-22  Andreas Kling  <akling@apple.com>
59955
59956        Attr: Simplify modification callbacks.
59957        <http://webkit.org/b/110598>
59958
59959        Reviewed by Antti Koivisto.
59960
59961        Instead of Attr being a friend of Element and grabbing at various internal storage and callbacks,
59962        let Attr simply call Element::setAttribute() when its value is changed, and do all that business
59963        from Element.
59964
59965        * dom/Element.h:
59966        * dom/Element.cpp:
59967        (WebCore::Element::setAttributeInternal):
59968
59969            Call Attr::recreateTextChildAfterAttributeValueChanged() after modifying an attribute value instead
59970            of doing the modification through the Attr node.
59971
59972        * dom/Attr.h:
59973        * dom/Attr.cpp:
59974        (WebCore::Attr::Attr):
59975        (WebCore::Attr::childrenChanged):
59976
59977            Added an m_inChildrenChanged flag so we can prevent infinite callback recursion in childrenChanged().
59978
59979        (WebCore::Attr::setValue):
59980
59981            Call Element::setAttribute() instead of modifying the attribute storage directly.
59982
59983        (WebCore::Attr::recreateTextChildAfterAttributeValueChanged):
59984
59985            Factored out the "remove all children / create a new text child with attribute value" logic into
59986            a separate function.
59987
599882013-02-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
59989
59990        [EFL] Use EINA_LOG instead of fprintf 
59991        https://bugs.webkit.org/show_bug.cgi?id=110313
59992
59993        Reviewed by Laszlo Gombos.
59994
59995        Replace fprintf with EINA_LOG.
59996
59997        * platform/efl/NetworkInfoProviderEfl.cpp:
59998        (WebCore::NetworkInfoProviderEfl::startUpdating):
59999        * platform/graphics/efl/CairoUtilitiesEfl.cpp:
60000        (WebCore::evasObjectFromCairoImageSurface):
60001
600022013-02-22  Tony Gentilcore  <tonyg@chromium.org>
60003
60004        Threaded HTML parser fails resources/plain-text-unsafe.dat
60005        https://bugs.webkit.org/show_bug.cgi?id=110538
60006
60007        Reviewed by Eric Seidel.
60008
60009        With this patch, the background HTML parser passes all tests in plain-text-unsafe.dat.
60010
60011        No new tests because covered by existing tests.
60012
60013        * html/parser/BackgroundHTMLParser.cpp:
60014        (WebCore::tokenExitsSVG):
60015        (WebCore):
60016        (WebCore::tokenExitsMath):
60017        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
60018
600192013-02-22  Tony Gentilcore  <tonyg@chromium.org>
60020
60021        Correct InspectorInstrumentation for background HTML parser
60022        https://bugs.webkit.org/show_bug.cgi?id=110678
60023
60024        Reviewed by Adam Barth.
60025
60026        resumeParsingAfterScriptExecution potentially calls processParsedChunkFromBackgroundParser multiple times
60027        without yielding. So it is not correct to count each of those as a separate ParseHTML event.
60028
60029        This patch moves the instrumentation outside of the loop.
60030
60031        No new tests because no new functionality.
60032
60033        * html/parser/HTMLDocumentParser.cpp:
60034        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
60035        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
60036        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
60037
600382013-02-22  Aaron Colwell  <acolwell@chromium.org>
60039
60040        Factor MediaSource methods out of MediaPlayer & MediaPlayerPrivate and into a new MediaSourcePrivate interface.
60041        https://bugs.webkit.org/show_bug.cgi?id=109857
60042
60043        Reviewed by Adam Barth.
60044
60045        This is a simple refactor that moves MediaSource related methods out of MediaPlayer & MediaPlayerPrivate
60046        so that the MediaSource implementation can be updated without further polluting these interfaces.
60047        MediaSourcePrivate is the new WebCore interface that ports must implement to support the MediaSource API.
60048
60049        No new tests. No user visible behavior has changed.
60050
60051        * Modules/mediasource/MediaSource.cpp:
60052        (WebCore::MediaSource::MediaSource):
60053        (WebCore::MediaSource::duration):
60054        (WebCore::MediaSource::setDuration):
60055        (WebCore::MediaSource::addSourceBuffer):
60056        (WebCore::MediaSource::removeSourceBuffer):
60057        (WebCore::MediaSource::setReadyState):
60058        (WebCore::MediaSource::endOfStream):
60059        (WebCore::MediaSource::buffered):
60060        (WebCore::MediaSource::append):
60061        (WebCore::MediaSource::abort):
60062        (WebCore::MediaSource::setTimestampOffset):
60063        (WebCore::MediaSource::setPrivateAndOpen):
60064        (WebCore):
60065        (WebCore::MediaSource::hasPendingActivity):
60066        (WebCore::MediaSource::stop):
60067        * Modules/mediasource/MediaSource.h:
60068        (MediaSource):
60069        * html/HTMLMediaElement.cpp:
60070        (WebCore::HTMLMediaElement::HTMLMediaElement):
60071        (WebCore::HTMLMediaElement::loadResource):
60072        (WebCore::HTMLMediaElement::createMediaPlayer):
60073        (WebCore::HTMLMediaElement::reportMemoryUsage):
60074        * html/HTMLMediaElement.h:
60075        (HTMLMediaElement):
60076        * platform/graphics/MediaPlayer.cpp:
60077        (NullMediaPlayerPrivate):
60078        (WebCore::NullMediaPlayerPrivate::load):
60079        (WebCore::MediaPlayer::load):
60080        (WebCore):
60081        (WebCore::MediaPlayer::loadWithNextMediaEngine):
60082        * platform/graphics/MediaPlayer.h:
60083        (WebCore):
60084        (MediaPlayerClient):
60085        (MediaPlayer):
60086        * platform/graphics/MediaPlayerPrivate.h:
60087        (MediaPlayerPrivateInterface):
60088        * platform/graphics/MediaSourcePrivate.h: Added.
60089        (WebCore):
60090        (MediaSourcePrivate): Contains the MediaSource methods extracted from MediaPlayer.
60091        (WebCore::MediaSourcePrivate::MediaSourcePrivate):
60092        (WebCore::MediaSourcePrivate::~MediaSourcePrivate):
60093
600942013-02-22  Beth Dakin  <bdakin@apple.com>
60095
60096        RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
60097        https://bugs.webkit.org/show_bug.cgi?id=110673
60098        -and corresponding-
60099        <rdar://problem/13258596>
60100
60101        Reviewed by Sam Weinig.
60102
60103        FrameLoaderClient::didChangeScrollOffset() doesn't get called for web pages that
60104        have overflow on the body. We can easily address this by calling it at the 
60105        end of RenderLayer::scrollTo().
60106
60107        * rendering/RenderLayer.cpp:
60108        (WebCore::RenderLayer::scrollTo):
60109
601102013-02-22  Ryosuke Niwa  <rniwa@webkit.org>
60111
60112        WebKit can erroneously strip font-size CSS property from font element with size attribute
60113        https://bugs.webkit.org/show_bug.cgi?id=110657
60114
60115        Reviewed by Justin Garcia.
60116
60117        The bug was caused by ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
60118        erroneously removing style attributes even on an element such as font that implicitly adds
60119        editing style.
60120
60121        Fixed the bug by removing these elements or attributes when they conflict with the inline
60122        style of the element. This is always safe because implicit style of an element is always
60123        overridden by that of inline style.
60124
60125        Note that when the font element becomes "empty" (i.e. doesn't have any attributes), then
60126        we also want to delete this font element as it doesn't contribute anything to the style.
60127
60128        Test: editing/pasteboard/insert-u-with-text-decoration-none.html
60129              editing/pasteboard/insert-font-with-size-and-css.html
60130
60131        * editing/ApplyStyleCommand.cpp:
60132        (WebCore::isEmptyFontTag): Added ShouldStyleAttributeBeEmpty as an argument. This will
60133        allow removeRedundantStylesAndKeepStyleSpanInline to ignore style attribute when we know
60134        the attribute can be removed.
60135
60136        * editing/ApplyStyleCommand.h: Expose isEmptyFontTag and ShouldStyleAttributeBeEmpty.
60137
60138        * editing/ReplaceSelectionCommand.cpp:
60139        (WebCore::ReplaceSelectionCommand::InsertedNodes::didReplaceNode): Added.
60140        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): See above.
60141        * editing/ReplaceSelectionCommand.h:
60142        (InsertedNodes): Added a declaration of didReplaceNode.
60143
601442013-02-22  Laszlo Gombos  <l.gombos@samsung.com>
60145
60146        Remove unused make variable from DerivedSources.make
60147        https://bugs.webkit.org/show_bug.cgi?id=110306
60148
60149        Reviewed by Alexey Proskuryakov.
60150
60151        r107026 removed the last piece of logic that was guarded with
60152        ENABLE_DASHBOARD_SUPPORT, so now it can be removed from
60153        DerivedSources.make. 
60154
60155        Also combined the way ENABLE_ORIENTATION_EVENTS is set to 0
60156        to make it more readable.
60157
60158        No new tests, no new functionality.
60159
60160        * DerivedSources.make:
60161
601622013-02-22  Dimitri Glazkov  <dglazkov@chromium.org>
60163
60164        REGRESSION(r130089): Scrollbar thumb no longer re-rendered on hover
60165        https://bugs.webkit.org/show_bug.cgi?id=109230
60166
60167        In r130089, I accidentally removed the extra check that made scrollbar
60168        parts styles sad. I put it back and made them happy.
60169
60170        Reviewed by Eric Seidel.
60171
60172        Test: fast/css/pseudo-element-selector-scrollbar-hover.html
60173
60174        * css/SelectorChecker.cpp:
60175        (WebCore::SelectorChecker::match): Added the check back.
60176
601772013-02-22  Tim Horton  <timothy_horton@apple.com>
60178
60179        [WK2] The root and page overlay layers should be the size of the view, not the content
60180        https://bugs.webkit.org/show_bug.cgi?id=110660
60181        <rdar://problem/13096456>
60182
60183        Reviewed by Simon Fraser.
60184
60185        * WebCore.exp.in:
60186
601872013-02-22  Anders Carlsson  <andersca@apple.com>
60188
60189        pluginLoadStrategy should take a WKDictionaryRef for extensibility
60190        https://bugs.webkit.org/show_bug.cgi?id=110656
60191        <rdar://problem/13265303>
60192
60193        Reviewed by Jessie Berlin.
60194
60195        Export a symbol needed by WebKit2.
60196
60197        * WebCore.exp.in:
60198
601992013-02-22  Levi Weintraub  <leviw@chromium.org>
60200
60201        Add descriptive names for different addMidpoint use cases
60202        https://bugs.webkit.org/show_bug.cgi?id=110644
60203
60204        Reviewed by Ryosuke Niwa.
60205
60206        Midpoints are used to delineate ranges where we don't add line boxes for contents (collapsed spaces),
60207        and to explicitly split a RenderText into multiple text runs so that text paragraph seperators get
60208        their own line boxes. This patch encapsulates the different cases where midpoints are added to
60209        lineMidpointState into 4 helper functions to make it clearer what's going on in each case.
60210
60211        No new tests. No change in functionality.
60212
60213        * rendering/RenderBlockLineLayout.cpp:
60214        (WebCore::deprecatedAddMidpoint): Original function simply adds a midpoint to the lineMidpointState.
60215        Renaming to deprecated to discourage callers.
60216        (WebCore::startIgnoringSpaces): Adds a midpoint to start collapsing subsequent spaces. Asserts that
60217        we have an even number of midpoints.
60218        (WebCore::stopIgnoringSpaces): Adds the corresponding midpoint from startIgnoringSpaces and asserts
60219        that it's an odd number.
60220        (WebCore::ensureLineBoxInsideIgnoredSpaces): When ignoring spaces and we come across a RenderInline
60221        that needs a line box, this function adds a pair of midpoints which ensures we'll later add a line
60222        box for it.
60223        (WebCore::ensureCharacterGetsLineBox): Adds a pair of midpoints in a text renderer to mark that
60224        the current character needs its own line box. This is used by svg for absolutely positioned
60225        characters, or for text paragraph seperators.
60226
602272013-02-22  Justin Schuh  <jschuh@chromium.org>
60228
60229        RenderArena masking has low entropy
60230        https://bugs.webkit.org/show_bug.cgi?id=110394
60231
60232        Reviewed by Oliver Hunt.
60233
60234        No new tests. This is a hardening measure.
60235
60236        * rendering/RenderArena.cpp:
60237        (WebCore::RenderArena::RenderArena):
60238
602392013-02-22  Min Qin  <qinmin@chromium.org>
60240
60241        Fix the overlay play button position on android
60242        https://bugs.webkit.org/show_bug.cgi?id=110638
60243
60244        Reviewed by Ojan Vafai.
60245
60246        Because we are using flex box, specifying the height is not necessary.
60247        Setting height to 100% will make the enclosure go outside the control panel.
60248        There are no media layout test expecations for android, will do that in another patch.
60249
60250        * css/mediaControlsChromiumAndroid.css:
60251        (video::-webkit-media-controls-overlay-enclosure):
60252
602532013-02-22  Kentaro Hara  <haraken@chromium.org>
60254
60255        Unreviewed build fix. Added missing #if PLATFORM(CHROMIUM).
60256
60257        * dom/Document.cpp:
60258        (WebCore::Document::recalcStyle):
60259        * page/FrameView.cpp:
60260        (WebCore::FrameView::layout):
60261
602622013-02-22  Kentaro Hara  <haraken@chromium.org>
60263
60264        Document::styleRecalc() and FrameView::layout() should be traced
60265        https://bugs.webkit.org/show_bug.cgi?id=110646
60266
60267        Reviewed by Ojan Vafai.
60268
60269        Document::styleRecalc() and FrameView::layout() are key factors
60270        for web page rendering performance. We should add TRACE_EVENT()
60271        macros to these functions.
60272
60273        * dom/Document.cpp:
60274        (WebCore::Document::recalcStyle):
60275        * page/FrameView.cpp:
60276        (WebCore::FrameView::layout):
60277
602782013-02-22  Eric Seidel  <eric@webkit.org>
60279
60280        Teach the html5lib tests how to test the threaded HTML parser
60281        https://bugs.webkit.org/show_bug.cgi?id=110643
60282
60283        Reviewed by Adam Barth.
60284
60285        This adds a way to force data: url parsing to go through
60286        the threaded parser, to enable us to test the threaded parser
60287        using the html5lib test harness.
60288
60289        * html/parser/HTMLParserOptions.cpp:
60290        (WebCore::HTMLParserOptions::HTMLParserOptions):
60291        * page/Settings.in:
60292
602932013-02-21  Ojan Vafai  <ojan@chromium.org>
60294
60295        Increase the max preferred width of tables to 1000000
60296        https://bugs.webkit.org/show_bug.cgi?id=110545
60297
60298        Reviewed by Emil A Eklund.
60299
60300        Test: fast/table/large-shrink-wrapped-width.html
60301
60302        The old limit of 15000 was picked arbitrarily to avoid overflow.
60303        No need to pick such a small number.
60304
60305        * rendering/AutoTableLayout.cpp:
60306        (WebCore::AutoTableLayout::computeInstrinsicLogicalWidths):
60307        As best I can tell, this code is just wrong. Removing this makes the
60308        new test pass and doesn't cause any test failure. While we have many
60309        tests that hit this codepath, this code would only
60310        show a difference in the cases where the available container width is
60311        greater then 15000, and I don't think we have any tests that hit that case
60312        other than this new one.
60313        * rendering/TableLayout.h:
60314
603152013-02-22  Adam Barth  <abarth@webkit.org>
60316
60317        Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-javascript-url.html
60318        https://bugs.webkit.org/show_bug.cgi?id=110637
60319
60320        Reviewed by Eric Seidel.
60321
60322        With the main thread parser, we always parse the first chunk of content
60323        returned as the result of evaluating a JavaScript URL synchronously. In
60324        particular, if the first chunk has an inline script, we'll execute it
60325        synchronously.
60326
60327        Previous to this patch, the threaded parser would always parse this
60328        content asynchronously. It's conceivable that there could be some
60329        content relying on the synchronous behavior, so this patch introduces
60330        the notion of "pinning" a parser to the main thread and uses that
60331        concept to force the result of JavaScript URLs to be parsed on the main
60332        thread (which is probably desirable anyway because they're likely to be
60333        quite short).
60334
60335        This patch fixes fast/parser/iframe-sets-parent-to-javascript-url.html
60336        and fast/dom/javascript-url-crash-function.html with the threaded
60337        parser with --enable-threaded-html-parser.
60338
60339        * dom/DocumentParser.h:
60340        (WebCore::DocumentParser::pinToMainThread):
60341        (DocumentParser):
60342        * html/parser/HTMLDocumentParser.cpp:
60343        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
60344        (WebCore):
60345        (WebCore::HTMLDocumentParser::pinToMainThread):
60346        * html/parser/HTMLDocumentParser.h:
60347        (HTMLDocumentParser):
60348        (WebCore::HTMLDocumentParser::shouldUseThreading):
60349        * loader/DocumentWriter.cpp:
60350        (WebCore::DocumentWriter::replaceDocument):
60351
603522013-02-22  Joe Mason  <jmason@rim.com>
60353
60354        [BlackBerry] Reread cookies when retrying a request with new auth credentials
60355        https://bugs.webkit.org/show_bug.cgi?id=110628
60356
60357        Reviewed by George Staikos.
60358
60359        Internal PR: 298805
60360        Internally Reviewed By: Leo Yang
60361
60362        The "isRedirect" parameter of initializePlatformRequest is only used to decide whether to
60363        reread cookies. Since we must reread cookies when resending a request with new auth
60364        credentials as well, rename this to "rereadCookies".
60365
60366        The only caller which sets this parameter rather than using the default value is
60367        NetworkManager::startJob, which also has other processing on redirect. So add a new
60368        "rereadCookies" parameter to startJob and ensure it is always set to true on a redirect, but
60369        can also be set to true on a non-redirect. And when startJob is called due to new auth
60370        credentials, set it to true.
60371
60372        * platform/network/blackberry/NetworkJob.cpp:
60373        (WebCore::NetworkJob::startNewJobWithRequest): Add rereadCookies parameter, pass it to
60374        startJob.
60375        (WebCore::NetworkJob::handleRedirect): Set new rereadCookies param of startNewJob to true.
60376        (WebCore::NetworkJob::notifyChallengeResult): Set new rereadCookies param of startNewJob to
60377        true.
60378        * platform/network/blackberry/NetworkJob.h:
60379        (NetworkJob): Add rereadCookies parameter to startNewJobWithRequest.
60380        * platform/network/blackberry/NetworkManager.cpp:
60381        (WebCore::NetworkManager::startJob): Add rereadCookies parameter, pass it instead of
60382        redirectCount to initializePlatformRequest.
60383        * platform/network/blackberry/NetworkManager.h:
60384        (NetworkManager): Add rereadCookies parameter to startJob.
60385        * platform/network/blackberry/ResourceRequest.h:
60386        (ResourceRequest): Rename isRedirect parameter to rereadCookies.
60387        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
60388        (WebCore::ResourceRequest::initializePlatformRequest): Rename isRedirect to rereadCookies.
60389
603902013-02-22  Benjamin Poulain  <bpoulain@apple.com>
60391
60392        Use CFNotificationCenter instead of NSNotificationCenter for SharedTimerIOS
60393        https://bugs.webkit.org/show_bug.cgi?id=110544
60394
60395        Reviewed by Daniel Bates.
60396
60397        Previously, we were instantiating the Obj-C object WebCoreResumeNotifierIOS
60398        with the only purpose of forwarding one notification to a C function.
60399
60400        This patch updates the code to use CFNotificationCenter to dispatch the notification
60401        without the intermediary object.
60402
60403        * platform/ios/SharedTimerIOS.mm:
60404        (WebCore::applicationDidBecomeActive):
60405        (WebCore::setSharedTimerFireInterval):
60406
604072013-02-22  Kenneth Russell  <kbr@google.com>
60408
60409        Uint8ClampedArray constructor is wrong in WorkerContext.idl
60410        https://bugs.webkit.org/show_bug.cgi?id=110634
60411
60412        Reviewed by Adam Barth.
60413
60414        Tests: fast/canvas/webgl/typed-arrays-in-workers.html
60415               webgl/conformance/typedarrays/typed-arrays-in-workers.html
60416
60417        * workers/WorkerContext.idl:
60418
604192013-02-21  Mark Lam  <mark.lam@apple.com>
60420
60421        Add some checks to DatabaseTracker::getMaxSizeForDatabase() to ensure
60422        that it returns a sane value.
60423        https://bugs.webkit.org/show_bug.cgi?id=110557.
60424
60425        Reviewed by Geoffrey Garen.
60426
60427        No layout test, but there is a quota-test.html attached to bugzilla.
60428        The test is a webpage that can be loaded into multiple tabs to
60429        consuming storage space. Once the test webpages are loaded, you will
60430        need to monitor the database directory and its files to confirm that
60431        growth is bounded. Also try reloading the test in the tabs. At no
60432        time should any database file ever exceed the quota.
60433
60434        * Modules/webdatabase/DatabaseTracker.cpp:
60435        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
60436
604372013-02-22  James Simonsen  <simonjam@chromium.org>
60438
60439        Preloads should be cleared when JavaScript cancels loading prematurely.
60440        https://bugs.webkit.org/show_bug.cgi?id=110388
60441
60442        Reviewed by Antti Koivisto.
60443
60444        If a page preloads a resource, but JavaScript aborts parsing for any reason (for example, a
60445        redirect or document.write()), the resource is forever marked a preload and won't be reloaded
60446        even if it's explicitly marked no-cache and the page is reloaded.
60447
60448        Test: http/tests/cache/preload-cleared-after-parrsing-canceled-by-js.html
60449
60450        * dom/Document.cpp:
60451        (WebCore::Document::implicitClose):
60452        (WebCore::Document::finishedParsing):
60453
604542013-02-22  Antoine Quint  <graouts@apple.com>
60455
60456        Expose a list of all reasons that qualify a RenderLayer to be composited
60457        https://bugs.webkit.org/show_bug.cgi?id=110505
60458
60459        Expose the various reasons that can qualify a RenderLayer to be composited
60460        via a new bitmask returned by the reasonForCompositing() method on
60461        RenderLayerCompositor. This method already existed and was used for logging
60462        purposes, but the previous functionality is now accessed via the
60463        logReasonForCompositing() method.
60464
60465        This will allow the the InspectorLayerTreeAgent to provide this information
60466        to the front-end on a per-layer basis as requested by the front-end.
60467
60468        Reviewed by Simon Fraser.
60469
60470        No new tests.
60471
60472        * rendering/RenderLayerCompositor.cpp:
60473        (WebCore::RenderLayerCompositor::logLayerInfo):
60474        (WebCore::RenderLayerCompositor::reasonsForCompositing):
60475        (WebCore):
60476        (WebCore::RenderLayerCompositor::logReasonsForCompositing):
60477        * rendering/RenderLayerCompositor.h:
60478        (RenderLayerCompositor):
60479
604802013-02-22  Beth Dakin  <bdakin@apple.com>
60481
60482        ScrollingStateTree::rootStateNode() should be null-checked since it can be null
60483        https://bugs.webkit.org/show_bug.cgi?id=110631
60484
60485        Reviewed by Simon Fraser.
60486
60487        This is a speculative fix for <rdar://problem/13233090> and 
60488        <rdar://problem/12519348>. It is totally possible for rootStateNode() to be null, 
60489        so we should null-check it.
60490
60491        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
60492        (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
60493        (WebCore::ScrollingCoordinatorMac::syncChildPositions):
60494
604952013-02-22  Mike Reed  <reed@google.com>
60496
60497        Check for null-device when calling createCompatibleDevice
60498        https://bugs.webkit.org/show_bug.cgi?id=107981
60499
60500        Reviewed by James Robinson.
60501
60502        No new tests. Current tests provided coverage. Site in the wild triggered the failure
60503        (cairo failed to allocate a huge surface).
60504
60505        * platform/graphics/skia/ImageBufferSkia.cpp:
60506        (WebCore::ImageBuffer::ImageBuffer):
60507
605082013-02-22  Chris Rogers  <crogers@google.com>
60509
60510        AudioDestination::create() needs extra device identification information for live/local input streams
60511        https://bugs.webkit.org/show_bug.cgi?id=109494
60512
60513        Reviewed by James Robinson.
60514
60515        AudioDestination::create() supports live/local audio input.  But, since there may be multiple
60516        audio input devices available, an identifier for the requested input device needs to be
60517        passed in.  The embedder may then use this information so that the proper audio hardware is
60518        accessed.
60519
60520        * Modules/webaudio/AudioContext.cpp:
60521        (WebCore::AudioContext::createMediaStreamSource):
60522        * Modules/webaudio/AudioDestinationNode.h:
60523        (AudioDestinationNode):
60524        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
60525        (WebCore::DefaultAudioDestinationNode::initialize):
60526        (WebCore::DefaultAudioDestinationNode::createDestination):
60527        (WebCore::DefaultAudioDestinationNode::enableInput):
60528        * Modules/webaudio/DefaultAudioDestinationNode.h:
60529        (DefaultAudioDestinationNode):
60530        * Modules/webaudio/OfflineAudioDestinationNode.h:
60531        * platform/audio/AudioDestination.h:
60532        (AudioDestination):
60533        * platform/audio/chromium/AudioDestinationChromium.cpp:
60534        (WebCore::AudioDestination::create):
60535        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
60536        * platform/audio/chromium/AudioDestinationChromium.h:
60537        (AudioDestinationChromium):
60538        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
60539        (WebCore::AudioDestination::create):
60540        * platform/audio/mac/AudioDestinationMac.cpp:
60541        (WebCore::AudioDestination::create):
60542        * platform/chromium/support/WebMediaStreamSource.cpp:
60543        (WebKit::WebMediaStreamSource::deviceId):
60544        (WebKit):
60545        (WebKit::WebMediaStreamSource::setDeviceId):
60546        * platform/mediastream/MediaStreamSource.h:
60547        (WebCore::MediaStreamSource::deviceId):
60548        (WebCore::MediaStreamSource::setDeviceId):
60549        (MediaStreamSource):
60550
605512013-02-22  Ryosuke Niwa  <rniwa@webkit.org>
60552
60553        Binding tests rebaseline after r143737.
60554
60555        * bindings/scripts/test/V8/V8Float64Array.cpp:
60556        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
60557        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
60558        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
60559        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
60560        * bindings/scripts/test/V8/V8TestException.cpp:
60561        * bindings/scripts/test/V8/V8TestInterface.cpp:
60562        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
60563        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
60564        * bindings/scripts/test/V8/V8TestNode.cpp:
60565        * bindings/scripts/test/V8/V8TestObj.cpp:
60566        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
60567        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
60568        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
60569
605702013-02-22  Kunihiko Sakamoto  <ksakamoto@chromium.org>
60571
60572        INPUT_MULTIPLE_FIELDS_UI: Unable to enter "24" to hour field
60573        https://bugs.webkit.org/show_bug.cgi?id=110431
60574
60575        Reviewed by Kent Tamura.
60576
60577        Fixed a bug that hour-field does not accept "24" as a valid input when hour format is 1-24.
60578        To test <input> against different time formats, added "pattern" attribute to DateTimeEditElement.
60579
60580        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
60581
60582        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
60583        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Overwrites layoutParameters.dateTimeFormat by pattern attribute of DateTimeEditElement (if exists).
60584        * html/shadow/DateTimeFieldElements.cpp:
60585        (WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState): Fixed a bug where AM/PM value was passed to setHour().
60586        (WebCore::DateTimeHourFieldElement::setValueAsInteger): Clamps the given value to 0-24 when the range of the field is 1-12 or 1-24. Renamed the parameter as it may not be an hour23 value (0-23).
60587
605882013-02-21  Zoltan Horvath  <zoltan@webkit.org>
60589
60590        [CSS Regions] Region boxes should respect -shape-inside CSS property
60591        https://bugs.webkit.org/show_bug.cgi?id=107880
60592
60593        Reviewed by David Hyatt.
60594
60595        The shape-inside CSS property modifies the shape of the inner inline flow content from rectangular content box
60596        to an arbitrary geometry. The detailed documentation is located in the CSS-Exclusions specification:
60597        http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property. This change adds support for the shape-inside property
60598        on CSS Regions.
60599
60600        Test: fast/regions/shape-inside-on-regions.html
60601
60602        * rendering/ExclusionShapeInfo.cpp:
60603        (WebCore):
60604        (WebCore::::logicalTopOffset): Shape dimension should be relative to the current region.
60605        * rendering/ExclusionShapeInfo.h:
60606        (ExclusionShapeInfo):
60607        (WebCore::::logicalTopOffset): Move the implementation to ExclusionShapeInfo.cpp.
60608        * rendering/RenderBlockLineLayout.cpp:
60609        (WebCore::logicalHeightForLine): Move the function prior to layoutExclusionShapeInsideInfo, since we need to use it there.
60610        (WebCore):
60611        (WebCore::layoutExclusionShapeInsideInfo): Add support for cases when shape-inside is a region-block property.
60612        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Update the exclusion shape information for every line, since the content
60613        could flow through several region containers which can have different shape-inside properties.
60614
606152013-02-21  Ojan Vafai  <ojan@chromium.org>
60616
60617        Add computeInstrinsicLogicalWidths functions to TableLayout subclasses
60618        https://bugs.webkit.org/show_bug.cgi?id=110520
60619
60620        Reviewed by Tony Chang.
60621
60622        This is just a refactor in preparation for adding RenderTable::computeIntinsicLogicalWidths.
60623        No change in behavior.
60624
60625        Split the computePreferredLogicalWidths functions into a computeIntinsicLogicalWidths
60626        and a applyPreferredLogicalWidthQuirks. Also, move the addition of bordersPaddingAndSpacing
60627        into RenderTable since both TableLayout subclasses need this.
60628
60629        This has the added readability benefit of better isolating the quirks that each table layout
60630        mode requires.
60631
60632        * rendering/AutoTableLayout.cpp:
60633        (WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
60634        (WebCore::AutoTableLayout::applyPreferredLogicalWidthQuirks):
60635        * rendering/AutoTableLayout.h:
60636        (AutoTableLayout):
60637        * rendering/FixedTableLayout.cpp:
60638        (WebCore::FixedTableLayout::computeIntrinsicLogicalWidths):
60639        (WebCore::FixedTableLayout::applyPreferredLogicalWidthQuirks):
60640        * rendering/FixedTableLayout.h:
60641        (FixedTableLayout):
60642        * rendering/RenderTable.cpp:
60643        (WebCore::RenderTable::computePreferredLogicalWidths):
60644        * rendering/TableLayout.h:
60645        (TableLayout):
60646
606472013-02-22  David Hyatt  <hyatt@apple.com>
60648
60649        [New Multicolumn] Correctly track whether or not a layer is paginated.
60650        https://bugs.webkit.org/show_bug.cgi?id=110625.
60651
60652        Taking the first step towards implementing the correct spec-compliant painting
60653        model for the new multi-column layout. Add code to make sure the paginated
60654        bits in RenderLayer get propagated correctly for the new layout.
60655        
60656        The main difference in bit propagation between the old multicolumn layout and
60657        the new multicolumn layout is that the old layout only tracked pagination "roots",
60658        since it has a broken layer painting model. It incorrectly treats a pagination
60659        "root" inside a multi-column block as establishing a stacking context in each
60660        column. This is incorrect.
60661        
60662        The new multicolumn code is going to paint each paginated layer individually,
60663        and this means the bits can't just be about roots. Instead they have to be set
60664        on every layer that may be split across columns, without regard for whether parent
60665        layers are also split or not. This is actually a simpler bit propagation model
60666        than the old code.
60667
60668        Reviewed by Beth Dakin.
60669
60670        * rendering/RenderLayer.cpp:
60671        (WebCore::RenderLayer::updateLayerPositions):
60672        Add code to set the m_isPaginated bit for in-flow RenderFlowThreads. This includes
60673        only RenderMultiColumnFlowThread for now, but eventually it will also include
60674        RenderPageFlowThread.
60675
60676        (WebCore::RenderLayer::useRegionBasedColumns):
60677        Add a helper method to check if region-based columns are turned on, since we're
60678        not attempting to alter the old column pagination model.
60679
60680        (WebCore::RenderLayer::updatePagination):
60681        Added the code to propagate bits under the new model. Whether or not you're paginated
60682        just depends on whether or not your enclosing layer along the containing block chain
60683        is paginated.
60684
60685        (WebCore::RenderLayer::paintList):
60686        (WebCore::RenderLayer::hitTestList):
60687        Add code that avoids the old multi-column pagination model when the new column model
60688        is enabled. For now there is no code in the new model that does anything with the bits,
60689        but we're avoiding calling the old code, since it is broken for the new columns.
60690
60691        * rendering/RenderLayer.h:
60692        (RenderLayer):
60693        Added the useRegionBasedColumns method to check the Setting.
60694
60695        * rendering/RenderMultiColumnFlowThread.h:
60696        * rendering/RenderObject.h:
60697        (WebCore::RenderObject::isInFlowRenderFlowThread):
60698        (RenderObject):
60699        Implement isInFlowRenderFlowThread, a virtual function for asking if a renderer is
60700        an in-flow RenderFlowThread, which means that it is going to need paginated layers
60701        because the flow thread has to split across "pages" that do not establish stacking
60702        contexts.
60703
607042013-02-22  Bem Jones-Bey  <bjonesbe@adobe.com>
60705
60706        text-overflow:ellipsis is not applied when the block contains nested blocks
60707        https://bugs.webkit.org/show_bug.cgi?id=101879
60708
60709        Reviewed by Eric Seidel.
60710
60711        Since text-overflow is not an inherited property, the anonymous blocks
60712        don't know they should ellipse. This causes the anonymous blocks
60713        created in the nested block situation to check their parent to find
60714        out if they should ellipse.
60715
60716        Test: fast/css/text-overflow-ellipsis-anonymous-blocks.html
60717
60718        * rendering/RenderBlockLineLayout.cpp:
60719        (WebCore::RenderBlock::layoutInlineChildren):
60720
607212013-02-22  Eric Seidel  <eric@webkit.org>
60722
60723        REGRESSION(r143664, r143681): http/tests/security/feed-urls-from-remote.html fails
60724        https://bugs.webkit.org/show_bug.cgi?id=110554
60725
60726        Reviewed by Adam Barth.
60727
60728        Will fix http/tests/security/feed-urls-from-remote.html for Mac WK1.
60729
60730        * loader/DocumentLoader.cpp:
60731        (WebCore::DocumentLoader::isLoading):
60732
607332013-02-22  Mark Rowe  <mrowe@apple.com>
60734
60735        Build fix after r143637.
60736
60737        * WebCore.exp.in: Unconditionally export ScriptController::javaScriptContext.
60738        * bindings/js/ScriptController.h: Unconditionally define javaScriptContext for Mac builds.
60739        * bindings/js/ScriptControllerMac.mm:
60740        (WebCore::ScriptController::javaScriptContext): Move the #if inside the function, and return 0 when false.
60741
607422013-02-22  Anton Vayvod  <avayvod@chromium.org>
60743
60744        [TextAutosizing] Refactoring to eliminate boolean parameter.
60745        https://bugs.webkit.org/show_bug.cgi?id=110490
60746
60747        Reviewed by Julien Chaffraix.
60748
60749        A follow-up to the recent change that introduced a boolean parameter to
60750        processClusterInternal method of TextAutosizer. Boolean parameters are discouraged by the
60751        WebKit style guide. See http://trac.webkit.org/changeset/142866
60752
60753        Refactoring so no new tests.
60754
60755        * rendering/TextAutosizer.cpp:
60756        (WebCore::TextAutosizer::clusterMultiplier):
60757
60758                Calculates the font size multiplier for the specified cluster.
60759
60760        (WebCore::TextAutosizer::processClusterInternal):
60761
60762                Accepts the font size multiplier instead of |shouldBeAutosized|.
60763
60764        (WebCore::TextAutosizer::processCluster):
60765        (WebCore::TextAutosizer::processCompositeCluster):
60766
60767                Both methods above now calculate the multiplier and then pass it to
60768                processClusterInternal.
60769
60770        * rendering/TextAutosizer.h:
60771
60772                Updated method declarations.
60773
607742013-02-22  Carlos Garcia Campos  <cargarcia@rim.com>
60775
60776        [BlackBerry] Use KURL::protocolIsInHTTPFamily instead of KURL::protocolInHTTPFamily
60777        https://bugs.webkit.org/show_bug.cgi?id=110581
60778
60779        Reviewed by Rob Buis.
60780
60781        KURL::protocolInHTTPFamily() was removed in r109670.
60782
60783        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
60784        (WebCore::ResourceRequest::clearHTTPContentLength):
60785        (WebCore::ResourceRequest::clearHTTPContentType):
60786
607872013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
60788
60789        Unreviewed build-fix after r143744.
60790
60791        * dom/Document.cpp:
60792        (WebCore::Document::updateHoverActiveState):
60793
607942013-02-22  Andrey Adaikin  <aandrey@chromium.org>
60795
60796        Web Inspector: [Canvas] throttle replayTraceLog messages to backend
60797        https://bugs.webkit.org/show_bug.cgi?id=110591
60798
60799        Reviewed by Pavel Feldman.
60800
60801        The replayTraceLog message may be quite expensive. So, while such a request is processed by the
60802        backend, user may well generate a dozen of new ones simply by walking through the DataGrid.
60803        We should actually send to the backend only the last event from the queue.
60804
60805        * inspector/front-end/CanvasProfileView.js:
60806        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
60807        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
60808
608092013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
60810
60811        Multiple Layout Test crashes (ASSERT) on chromium linux debug after r143727
60812        https://bugs.webkit.org/show_bug.cgi?id=110609
60813
60814        Reviewed by Antonio Gomes.
60815
60816        Revert r128869. InnerNode may now again be from a child document, 
60817        and should be handled and not asserted against.
60818
60819        * dom/Document.cpp:
60820        (WebCore::Document::updateHoverActiveState):
60821
608222013-02-22  Andreas Kling  <akling@apple.com>
60823
60824        Element: Make updateName/updateId/updateLabel private.
60825        <http://webkit.org/b/110603>
60826
60827        Reviewed by Antti Koivisto.
60828
60829        These methods are only called from inside Element so make them private and
60830        move them to the .cpp file.
60831
60832        * dom/Element.cpp:
60833        (WebCore::Element::updateName):
60834        (WebCore::Element::updateId):
60835        * dom/Element.h:
60836
608372013-02-21  Zhenyao Mo  <zmo@google.com>
60838
60839        Roll ANGLE to r1833
60840        https://bugs.webkit.org/show_bug.cgi?id=110513
60841
60842        Reviewed by Kenneth Russell.
60843
60844        * CMakeLists.txt:
60845        * GNUmakefile.list.am:
60846
608472013-02-22  Carlos Garcia Campos  <cargarcia@rim.com>
60848
60849        [BlackBerry] Rename first/second to key/value in HashMap iterators
60850        https://bugs.webkit.org/show_bug.cgi?id=110577
60851
60852        Reviewed by Rob Buis.
60853
60854        Iterators were renamed to key/value in r130612.
60855
60856        * platform/blackberry/AuthenticationChallengeManager.cpp:
60857        (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
60858        * platform/network/blackberry/NetworkJob.cpp:
60859        (WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
60860
608612013-02-22  Kentaro Hara  <haraken@chromium.org>
60862
60863        [V8] Add comments to checkTypeOrDieTrying()
60864        https://bugs.webkit.org/show_bug.cgi?id=110553
60865
60866        Reviewed by Adam Barth.
60867
60868        It is mysterious how the check is helpful. We need comments.
60869
60870        No tests. Just added comments.
60871
60872        * bindings/scripts/CodeGeneratorV8.pm:
60873        (GenerateImplementation):
60874        * bindings/v8/ScriptWrappable.h:
60875        (ScriptWrappable):
60876
608772013-02-22  Jessie Berlin  <jberlin@apple.com>
60878
60879        32-bit build fix after r143706
60880
60881        * fileapi/FileReaderLoader.cpp:
60882        (WebCore::FileReaderLoader::didReceiveData):
60883
608842013-02-22  Andrey Adaikin  <aandrey@chromium.org>
60885
60886        Web Inspector: [Canvas] do no show a single frame node in data grid
60887        https://bugs.webkit.org/show_bug.cgi?id=110473
60888
60889        Reviewed by Pavel Feldman.
60890
60891        In a single canvas frame capture mode do not show the single "Frame #1" node.
60892        Drive-by: Fix a wrong "this" pointer.
60893
60894        * inspector/front-end/CanvasProfileView.js:
60895        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
60896        (WebInspector.CanvasProfileView.prototype.appendDrawCallGroup):
60897        (WebInspector.CanvasProfileView.prototype._flattenSingleFrameNode):
60898
608992013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
60900
60901        Multiple Layout Test crashes (ASSERT) on chromium linux debug after r143727
60902        https://bugs.webkit.org/show_bug.cgi?id=110609
60903
60904        Reviewed by Antonio Gomes.
60905
60906        Point based hit tests should not append but assign HitTestResults.
60907
60908        * rendering/RenderFrameBase.cpp:
60909        (WebCore::RenderFrameBase::nodeAtPoint):
60910
609112013-02-22  Andrey Lushnikov  <lushnikov@chromium.org>
60912
60913        Web Inspector: show source location after drawer views
60914        https://bugs.webkit.org/show_bug.cgi?id=110156
60915
60916        Reviewed by Pavel Feldman.
60917
60918        - Add statusBarText method
60919        - Add #drawer-view-anchor, which determines layout position of
60920        drawerView
60921        - Fix layout in #panel-status-bar to avoid floating elements.
60922
60923        No new tests.
60924
60925        * inspector/front-end/Panel.js:
60926        (WebInspector.Panel.prototype.wasShown): Add statusBarItems before
60927        drawer-view-anchor and statusBarText after.
60928        (WebInspector.Panel.prototype.willHide): Remove statusBarText from DOM in the
60929        way it's done for statusBarItems
60930        * inspector/front-end/ScriptsPanel.js:
60931        (WebInspector.ScriptsPanel.prototype.statusBarText): Added.
60932        * inspector/front-end/SourceFrame.js:
60933        (WebInspector.SourceFrame.prototype.statusBarText): Added.
60934        (WebInspector.SourceFrame.prototype.statusBarItems):
60935        * inspector/front-end/TimelinePanel.js:
60936        (WebInspector.TimelinePanel.prototype.get statusBarItems):
60937        * inspector/front-end/View.js:
60938        (WebInspector.View.prototype.statusBarText):
60939        * inspector/front-end/inspector.css:
60940        (#drawer-view-anchor):
60941        (.source-frame-cursor-position):
60942        * inspector/front-end/inspector.html:
60943        * inspector/front-end/inspector.js:
60944        (WebInspector.showViewInDrawer):
60945        * inspector/front-end/timelinePanel.css:
60946        (.timeline-records-stats):
60947        (.timeline-records-stats-container):
60948
609492013-02-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
60950
60951        Allow child-frame content in hit-tests.
60952        https://bugs.webkit.org/show_bug.cgi?id=95204
60953
60954        Reviewed by Julien Chaffraix.
60955
60956        Refactors how EventHandler::hitTestResultAtPoint handles child-frame content,
60957        it is now handled by the hit test itself controlled by the AllowChildFrameContent
60958        flag in HitTestRequest.
60959
60960        This means that area-based hit-tests can now return elements from all the child frames
60961        they intersect instead of just the one frame containing the center point. The improved
60962        results from area-based hit-tests will among other things also improve touch adjustment
60963        near frame boundaries.
60964
60965        Tests: fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html
60966
60967        * page/EventHandler.cpp:
60968        (WebCore::EventHandler::hitTestResultAtPoint):
60969            Recursion into child-frames have been moved to RenderFrameBase::nodeAtPoint, so
60970            now hitTestResultAtPoint just needs to set AllowChildFrameContent.
60971        * page/TouchAdjustment.cpp:
60972        (WebCore::TouchAdjustment::parentShadowHostOrOwner):
60973            New function to iterate up across frame boundaries.
60974        (WebCore::TouchAdjustment::compileSubtargetList):
60975            We need to iterate up across frame boundaries to avoid iframes competing with their
60976            own content for touch adjustment.
60977        * rendering/HitTestRequest.h:
60978        (WebCore::HitTestRequest::allowsChildFrameContent):
60979        (WebCore::HitTestRequest::isChildFrameHitTest):
60980        * rendering/HitTestResult.cpp:
60981        (WebCore::HitTestResult::HitTestResult):
60982        (WebCore::HitTestResult::operator=):
60983        (WebCore::HitTestResult::append):
60984        (WebCore::HitTestResult::dictationAlternatives):
60985        * rendering/HitTestResult.h:
60986        (WebCore::HitTestResult::pointInMainFrame):
60987        (WebCore::HitTestResult::pointInInnerNodeFrame):
60988        (HitTestResult):
60989            m_hitTestLocation is now in main frame coordinates, which make m_pointInMainFrame
60990            unnecessary, but requires the introduction of m_pointInInnerFrame, to remember
60991            the coordinates of inner-node in its own frame.
60992        * rendering/RenderFrameBase.cpp:
60993        (WebCore::RenderFrameBase::nodeAtPoint):
60994            The recursion into child-frames is now handled here instead of in hitTestResultAtPoint, this
60995            allows us to recurse into multiple frames, instead of just one.
60996        * rendering/RenderFrameBase.h:
60997        (RenderFrameBase):
60998        * rendering/RenderLayer.cpp:
60999        (WebCore::RenderLayer::hitTest):
61000            RenderLayer should not lie about being hit if the request is child-frame request.
61001        * testing/Internals.cpp:
61002        (WebCore::Internals::nodesFromRect):
61003        * testing/Internals.h:
61004        (Internals):
61005        * testing/Internals.idl:
61006            Extended so nodesFromRect with child-frame content can be tested.
61007
610082013-02-22  Andreas Kling  <akling@apple.com>
61009
61010        ShareableElementData should use zero-length array for storage.
61011        <http://webkit.org/b/109959>
61012
61013        Reviewed by Anders Carlsson.
61014
61015        Use a zero-length Attribute array instead of always casting from void* to an array.
61016        It was done this way originally because I didn't know we could sidestep the MSVC
61017        build error with some #pragma hackery and a default constructor for Attribute.
61018
61019        * dom/Attribute.cpp:
61020        (WebCore::Attribute::Attribute):
61021        * dom/DocumentSharedObjectPool.cpp:
61022        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
61023        * dom/Element.cpp:
61024        (WebCore::sizeForShareableElementDataWithAttributeCount):
61025        (WebCore::ShareableElementData::ShareableElementData):
61026        (WebCore::ShareableElementData::~ShareableElementData):
61027        (WebCore::UniqueElementData::UniqueElementData):
61028        * dom/Element.h:
61029        (ShareableElementData):
61030        (WebCore::ElementData::attributeItem):
61031
610322013-02-22  Andreas Kling  <akling@apple.com>
61033
61034        Remove unused declaration: Element::removeCachedHTMLCollection()
61035
61036        Not reviewed by Antti Koivisto.
61037
61038        * dom/Element.h:
61039        (Element):
61040
610412013-02-22  Keishi Hattori  <keishi@webkit.org>
61042
61043        Add scroll view for new calendar picker
61044        https://bugs.webkit.org/show_bug.cgi?id=110137
61045
61046        Reviewed by Kent Tamura.
61047
61048        Adding a scroll view class as part of the new calendar picker (Bug 109439).
61049
61050        No new tests. Code not yet used.
61051
61052        * Resources/pagepopups/calendarPicker.js:
61053        (View):
61054        (View.prototype.offsetRelativeTo): Returns the offset position of this view relative to the given ancestor element.
61055        (View.prototype.attachTo): Attaches view to a node or view.
61056        (View.prototype.bindCallbackMethods): Binds all methods starting with "on" to this.
61057        (ScrollView): A custom scroll view that can contain extremely long content. CSS values have a limit. This can go beyond that.
61058        (ScrollView.prototype.setWidth): Sets the view width.
61059        (ScrollView.prototype.width):
61060        (ScrollView.prototype.setHeight):Sets the view height.
61061        (ScrollView.prototype.height):
61062        (ScrollView.prototype.onScrollAnimatorStep): Callback for scroll animator step.
61063        (ScrollView.prototype.scrollTo): Scrolls to a certain offset.
61064        (ScrollView.prototype.scrollBy): Scrolls by a certain amount.
61065        (ScrollView.prototype.contentOffset): Current content offset.
61066        (ScrollView.prototype.onMouseWheel): Scroll with the mouse wheel.
61067        (ScrollView.prototype.setContentOffset): Sets the content offset.
61068        (ScrollView.prototype.contentPositionForContentOffset): Returns where the content element should be positioned.
61069
610702013-02-22  Alexander Pavlov  <apavlov@chromium.org>
61071
61072        Web Inspector: InspectorPageAgent::disable() should not update view metrics regardless of the override state
61073        https://bugs.webkit.org/show_bug.cgi?id=110593
61074
61075        Reviewed by Vsevolod Vlasov.
61076
61077        InspectorPageAgent::disable() now checks if the device metrics are overridden before
61078        telling the client to disable the override.
61079
61080        * inspector/InspectorPageAgent.cpp:
61081        (WebCore::InspectorPageAgent::disable):
61082        (WebCore::InspectorPageAgent::setDeviceMetricsOverride):
61083        (WebCore::InspectorPageAgent::deviceMetricsChanged):
61084        * inspector/InspectorPageAgent.h:
61085        (InspectorPageAgent):
61086
610872013-02-22  Zan Dobersek  <zdobersek@igalia.com>
61088
61089        Unreviewed, rolling out r143695.
61090        http://trac.webkit.org/changeset/143695
61091        https://bugs.webkit.org/show_bug.cgi?id=110554
61092
61093        Crashes in DocumentLoader::checkLoadComplete on AppleMac WK1, EFL, GTK.
61094
61095        * loader/DocumentLoader.cpp:
61096        (WebCore::DocumentLoader::isLoading):
61097
610982013-02-22  Balazs Kelemen  <kbalazs@webkit.org>
61099
61100        [CoordGfx] Minor cleanup in CoordinatedGraphicsScene::paintToGraphicsContext
61101        https://bugs.webkit.org/show_bug.cgi?id=109824
61102
61103        Reviewed by Andreas Kling.
61104
61105        Avoid ugly ifdefs by using PlatformGraphicsContext.
61106
61107        No new tests, only refactoring.
61108
61109        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
61110        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
61111        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
61112        (CoordinatedGraphicsScene):
61113
611142013-02-22  Carlos Garcia Campos  <cgarcia@igalia.com>
61115
61116        Unreviewed. Fix make distcheck.
61117
61118        * GNUmakefile.am: Add CodeGeneratorInspectorStrings.py to
61119        EXTRA_DIST.
61120
611212013-02-22  Andreas Kling  <akling@apple.com>
61122
61123        GlyphPage: ALWAYS_INLINE all performance-relevant getters.
61124
61125        REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler
61126        <http://webkit.org/b/108835>
61127
61128        Reviewed by Antti Koivisto.
61129
61130        Unreviewed desperate hack. Since I can't reproduce the problem and it's only showing
61131        up on two bots, one Linux and one Snow Leopard, I'm thinking it may be GCC related.
61132        Let's see what happens if we tell it to force inline all the GlyphPage getters.
61133
61134        * platform/graphics/GlyphPage.h:
61135        (WebCore::GlyphPage::indexForCharacter):
61136        (WebCore::GlyphPage::glyphDataForCharacter):
61137        (WebCore::GlyphPage::glyphDataForIndex):
61138        (WebCore::GlyphPage::glyphAt):
61139        (WebCore::GlyphPage::fontDataForCharacter):
61140
611412013-02-22  Zach Kuznia  <zork@chromium.org>
61142
61143        Update FileReaderLoader to allow specifying a range and reading as a blob.
61144        https://bugs.webkit.org/show_bug.cgi?id=110556
61145
61146        This is part of a series of patches to implement Stream support.  See:
61147        https://bugs.webkit.org/show_bug.cgi?id=110194
61148
61149        Reviewed by Hajime Morrita.
61150
61151        Tests: will be added when js binding is added.
61152
61153        * fileapi/FileReaderLoader.cpp:
61154        * fileapi/FileReaderLoader.h:
61155
611562013-02-22  Kondapally Kalyan  <kalyan.kondapally@intel.com>
61157
61158        [WebGL][EFL] Support for creating surface with alpha disabled.
61159        https://bugs.webkit.org/show_bug.cgi?id=110067
61160
61161        Reviewed by Kenneth Rohde Christiansen.
61162
61163        Covered by compositing/webgl/webgl-no-alpha.html
61164
61165        We currently always create a surface supporting alpha channel. 
61166        With this patch we create the surface with alpha only if
61167        required.
61168
61169        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
61170        (WebCore::GraphicsContext3DPrivate::initialize):
61171        * platform/graphics/efl/GraphicsContext3DPrivate.h:
61172        (GraphicsContext3DPrivate):
61173        * platform/graphics/opengl/GLPlatformSurface.cpp:
61174        (WebCore::GLPlatformSurface::createOffScreenSurface):
61175        (WebCore::GLPlatformSurface::createTransportSurface):
61176        (WebCore::GLPlatformSurface::GLPlatformSurface):
61177        (WebCore::GLPlatformSurface::attributes):
61178        (WebCore):
61179        * platform/graphics/opengl/GLPlatformSurface.h:
61180        * platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
61181        (WebCore):
61182        (WebCore::EGLConfigSelector::EGLConfigSelector):
61183        (WebCore::EGLConfigSelector::pBufferContextConfig):
61184        (WebCore::EGLConfigSelector::surfaceContextConfig):
61185        * platform/graphics/surfaces/egl/EGLConfigSelector.h:
61186        (EGLConfigSelector):
61187        * platform/graphics/surfaces/egl/EGLSurface.cpp:
61188        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
61189        * platform/graphics/surfaces/egl/EGLSurface.h:
61190        (EGLWindowTransportSurface):
61191        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
61192        (WebCore):
61193        (WebCore::GLXConfigSelector::GLXConfigSelector):
61194        (WebCore::GLXConfigSelector::pixmapContextConfig):
61195        (WebCore::GLXConfigSelector::surfaceContextConfig):
61196        (WebCore::GLXConfigSelector::surfaceClientConfig):
61197        (WebCore::GLXConfigSelector::validateAttributes):
61198        (WebCore::GLXConfigSelector::findMatchingConfig):
61199        (WebCore::GLXConfigSelector::findMatchingConfigWithVisualId):
61200        (GLXConfigSelector):
61201        * platform/graphics/surfaces/glx/GLXContext.cpp:
61202        (WebCore::GLXOffScreenContext::initialize):
61203        * platform/graphics/surfaces/glx/GLXSurface.cpp:
61204        (WebCore::GLXTransportSurface::GLXTransportSurface):
61205        (WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
61206        (WebCore::GLXOffScreenSurface::initialize):
61207        * platform/graphics/surfaces/glx/GLXSurface.h:
61208        (GLXTransportSurface):
61209        (GLXOffScreenSurface):
61210        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
61211        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
61212        (WebCore::GraphicsSurfacePrivate::createPixmap):
61213
612142013-02-22  Pavel Feldman  <pfeldman@chromium.org>
61215
61216        Web Inspector: allow opting out from vertical split in the dock-to-right mode
61217        https://bugs.webkit.org/show_bug.cgi?id=110564
61218
61219        Reviewed by Vsevolod Vlasov.
61220
61221        * English.lproj/localizedStrings.js:
61222        * inspector/front-end/ElementsPanel.js:
61223        (WebInspector.ElementsPanel.prototype._splitVertically):
61224        * inspector/front-end/ScriptsPanel.js:
61225        * inspector/front-end/Settings.js:
61226        (WebInspector.Settings):
61227        * inspector/front-end/SettingsScreen.js:
61228        (WebInspector.GenericSettingsTab):
61229
612302013-02-21  Claudio Saavedra  <csaavedra@igalia.com>
61231
61232        [GTK] Control+Shift+Up/Down selection works backwards
61233        https://bugs.webkit.org/show_bug.cgi?id=110459
61234
61235        Reviewed by Martin Robinson.
61236
61237        * platform/gtk/KeyBindingTranslator.cpp:
61238        (WebCore): The translation table for paragraph selection
61239        commands is backwards, fix it.
61240
612412013-02-21  Eric Seidel  <eric@webkit.org>
61242
61243        REGRESSION(r143664, r143681): http/tests/security/feed-urls-from-remote.html fails
61244        https://bugs.webkit.org/show_bug.cgi?id=110554
61245
61246        Reviewed by Ryosuke Niwa.
61247
61248        Will fix http/tests/security/feed-urls-from-remote.html for Mac WK1.
61249
61250        * loader/DocumentLoader.cpp:
61251        (WebCore::DocumentLoader::isLoading):
61252
612532013-02-21  Alec Flett  <alecflett@chromium.org>
61254
61255        IndexedDB: Implement SharedBuffer version of put() / onSuccess()
61256        https://bugs.webkit.org/show_bug.cgi?id=110398
61257
61258        Reviewed by Tony Chang.
61259
61260        This avoids all unnecessary data copies within the context of
61261        IndexedDB proper, and removes all references to
61262        SerializedScriptValue from the IndexedDB "backend".
61263
61264        No new tests because this is just a refactor.
61265
61266        * bindings/v8/IDBBindingUtilities.cpp:
61267        (WebCore::deserializeIDBValueBuffer): New version of deserializeIDBValue which takes SharedBuffer.
61268
612692013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
61270
61271        Unreviewed, rolling out r143691.
61272        http://trac.webkit.org/changeset/143691
61273        https://bugs.webkit.org/show_bug.cgi?id=110559
61274
61275        Breaks compilation on mac. (Requested by vsevik on #webkit).
61276
61277        * rendering/RenderLayerCompositor.cpp:
61278        (WebCore::RenderLayerCompositor::logLayerInfo):
61279        (WebCore):
61280        (WebCore::RenderLayerCompositor::reasonForCompositing):
61281        * rendering/RenderLayerCompositor.h:
61282        (RenderLayerCompositor):
61283
612842013-02-21  Philip Rogers  <pdr@google.com>
61285
61286        Remove deep copy of ImageBuffer in tiled SVG backgrounds
61287        https://bugs.webkit.org/show_bug.cgi?id=110549
61288
61289        Reviewed by Dirk Schulze.
61290
61291        SVGImage::drawPatternForContainer creates a temporary ImageBuffer for stamping out tiled
61292        backgrounds. Previously this ImageBuffer was unnecessarily deep-copied! This patch uses a
61293        shallow copy, taking advantage of the fact that the temporary ImageBuffer is never modified.
61294
61295        This patch is covered with existing tests.
61296
61297        * svg/graphics/SVGImage.cpp:
61298        (WebCore::SVGImage::drawPatternForContainer):
61299
613002013-02-21  Antoine Quint  <graouts@apple.com>
61301
61302        Expose a list of all reasons that qualify a RenderLayer to be composited
61303        https://bugs.webkit.org/show_bug.cgi?id=110505
61304
61305        Expose the various reasons that can qualify a RenderLayer to be composited
61306        via a new bitmask returned by the reasonForCompositing() method on
61307        RenderLayerCompositor. This method already existed and was used for logging
61308        purposes, but the previous functionality is now accessed via the
61309        logReasonForCompositing() method.
61310
61311        This will allow the the InspectorLayerTreeAgent to provide this information
61312        to the front-end on a per-layer basis as requested by the front-end.
61313
61314        Reviewed by Simon Fraser.
61315
61316        No new tests.
61317
61318        * rendering/RenderLayerCompositor.cpp:
61319        (WebCore::RenderLayerCompositor::logLayerInfo):
61320        (WebCore::RenderLayerCompositor::reasonsForCompositing):
61321        (WebCore):
61322        (WebCore::RenderLayerCompositor::logReasonsForCompositing):
61323        * rendering/RenderLayerCompositor.h:
61324        (RenderLayerCompositor):
61325
613262013-02-21  Takashi Sakamoto  <tasak@google.com>
61327
61328        RenderTable::paintBoxDecorations sometimes draws box-shadow twice.
61329        https://bugs.webkit.org/show_bug.cgi?id=110196
61330
61331        Reviewed by Simon Fraser.
61332
61333        When RenderTable::paintBoxDecorations draws box-shadow, paintBackground
61334        should not draw box-shadow. So we have to provide bleedAvoidance
61335        parameter for RenderBox::paintBackground.
61336
61337        Test: fast/css/table-border-radius-with-box-shadow.html
61338
61339        * rendering/RenderTable.cpp:
61340        (WebCore::RenderTable::paintBoxDecorations):
61341        Provide bleedAvoidance, which determineBackgroundBleedAvoidance
61342        returns, for paintBackground.
61343
613442013-02-21  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
61345
61346        Allow to retrieve the request data from abstract TextCheckingRequest to be accessible for WK2
61347        https://bugs.webkit.org/show_bug.cgi?id=110208
61348
61349        Reviewed by Hajime Morrita.
61350
61351        The WebCore changes are required to implement asynchronous spell checking in WK2.
61352        The idea of asynchronous spell checking in WK1 is to pass the pointer to the abstract object
61353        to the client who is able to verify the given text and notify the WebCore about results.
61354        WK2 will extract the request data and pass it (with additional information) to the UIProcess.
61355
61356        No new tests, covered by editing/spelling tests.
61357
61358        * editing/Editor.cpp:
61359        (WebCore::Editor::markAndReplaceFor):
61360        Extract the request data as it is the member of 'TextCheckingRequest'.
61361
61362        * editing/SpellChecker.cpp:
61363        (WebCore):
61364        (WebCore::SpellCheckRequest::didCancel):
61365        (WebCore::SpellCheckRequest::setCheckerAndSequence):
61366        (WebCore::SpellChecker::requestCheckingFor):
61367        (WebCore::SpellChecker::enqueueRequest):
61368        (WebCore::SpellChecker::didCheck):
61369        (WebCore::SpellChecker::didCheckSucceed):
61370        * platform/text/TextChecking.h:
61371        (WebCore):
61372        (TextCheckingRequestData):
61373        Introduce a new 'TextCheckingRequestData' class to keep the request data and to
61374        easy extract it from the 'TextCheckingRequest'.
61375
61376        (WebCore::TextCheckingRequestData::TextCheckingRequestData):
61377        (TextCheckingRequest):
61378        (WebCore::TextCheckingRequest::~TextCheckingRequest):
61379
613802013-02-21  Brady Eidson  <beidson@apple.com>
61381
61382        Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
61383
61384        Rubberstamped by Geoff Garen.
61385
61386        * loader/cache/MemoryCache.cpp:
61387        (WebCore::MemoryCache::lruListFor): Remove the inline fastlog2 and use WTF::fastlog2.
61388
613892013-02-21  Dimitri Glazkov  <dglazkov@chromium.org>
61390
61391        Split SelectorChecker's fast-checking logic into its own class.
61392        https://bugs.webkit.org/show_bug.cgi?id=106860
61393
61394        Reviewed by Antti Koivisto.
61395
61396        No functional changes, covered by existing tests.
61397
61398        * CMakeLists.txt: Added new class to existing build system.
61399        * GNUmakefile.list.am: Ditto.
61400        * Target.pri: Ditto.
61401        * WebCore.gypi: Ditto.
61402        * WebCore.xcodeproj/project.pbxproj: Ditto.
61403        * css/CSSAllInOne.cpp: Ditto.
61404        * css/RuleSet.cpp:
61405        (WebCore::RuleData::RuleData): Changed to use SelectorCheckerFastPath.
61406        * css/SelectorChecker.cpp:
61407        (WebCore::SelectorChecker::matches): Ditto.
61408        * css/SelectorChecker.h:
61409        (SelectorChecker): Move fast path code into SelectorCheckerFastPath.
61410        * css/SelectorCheckerFastPath.cpp: Added.
61411        * css/SelectorCheckerFastPath.h: Added.
61412        * css/StyleResolver.cpp:
61413        (WebCore::StyleResolver::ruleMatches): Changed to use SelectorCheckerFastPath.
61414        * dom/SelectorQuery.cpp:
61415        (WebCore::SelectorDataList::initialize): Ditto.
61416
614172013-02-21  Tony Gentilcore  <tonyg@chromium.org>
61418
61419        Invalidate outstanding checkpoints for the background input stream and preload scanner
61420        https://bugs.webkit.org/show_bug.cgi?id=110537
61421
61422        Reviewed by Adam Barth.
61423
61424        fast/tokenizer/write-before-load.html caused duplicate didFailSpeculation() calls for the same checkpoint.
61425        One was triggered by processParsedChunkFromBackgroundParser and the other by resumeParsingAfterScriptExecution.
61426        This change ensures that after we send a checkpoint, it is cleared so it won't be sent again until the next
61427        processParsedChunkFromBackgroundParser().
61428
61429        No new tests because no new functionality.
61430
61431        * html/parser/BackgroundHTMLInputStream.cpp:
61432        (WebCore::BackgroundHTMLInputStream::rewindTo):
61433        * html/parser/HTMLDocumentParser.cpp:
61434        (WebCore::HTMLDocumentParser::didFailSpeculation):
61435        * html/parser/HTMLPreloadScanner.cpp:
61436        (WebCore::TokenPreloadScanner::rewindTo):
61437
614382013-02-21  Dean Jackson  <dino@apple.com>
61439
61440        Followup commit for https://bugs.webkit.org/show_bug.cgi?id=110541
61441        from a comment by Jon Lee.
61442
61443        * html/HTMLPlugInImageElement.cpp:
61444        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Logic
61445        in conditional was unnecessarily complex.
61446
614472013-02-21  Ojan Vafai  <ojan@chromium.org>
61448
61449        Clean up computePreferredLogicalWidths functions in TableLayout subclasses
61450        https://bugs.webkit.org/show_bug.cgi?id=110515
61451
61452        Reviewed by Tony Chang.
61453
61454        No change in behavior. This is just a cleanup in preparation for other
61455        refactoring to this code.
61456
61457        * rendering/FixedTableLayout.cpp:
61458        (WebCore::FixedTableLayout::calcWidthArray):
61459        Move a FIXME here from computePreferredLogicalWidths. It makes more sense here.
61460        (WebCore::FixedTableLayout::computePreferredLogicalWidths):
61461        -Remove outdated or unhelpful comments.
61462        -Isolate the fixed width codepath to make it a bit less convoluted.
61463        (WebCore::FixedTableLayout::layout):
61464        * rendering/FixedTableLayout.h:
61465        The argument to calcWidthArray is never used. Remove it.
61466
614672013-02-21  Eric Seidel  <eric@webkit.org>
61468
61469        LayoutTests/fast/encoding/parser-tests-*.html timeout with threaded HTML parser
61470        https://bugs.webkit.org/show_bug.cgi?id=109995
61471
61472        Unreviewed speculative fix for Mac WK1.
61473
61474        It appears that m_frame can be null for Mac WK1.
61475
61476        * loader/DocumentLoader.cpp:
61477        (WebCore::DocumentLoader::isLoading):
61478
614792013-02-21  Dean Jackson  <dino@apple.com>
61480
61481        Better sizing model for Snapshotted plugins
61482        https://bugs.webkit.org/show_bug.cgi?id=110541
61483
61484        Reviewed by Simon Fraser.
61485
61486        Clarify the way we apply sizing rules to snapshotted plug-ins. In
61487        testing we've found that plug-ins smaller than 40px in either
61488        dimension should never be frozen. Also, larger plugins should
61489        be explicitly marked, because often they are the single dominant
61490        element on the page.
61491
61492        As a drive-by, I removed the flag that indicated whether or not
61493        the label should show automatically. It wasn't being used. This is
61494        all determined from the shadow root and its CSS now.
61495
61496        * html/HTMLPlugInImageElement.cpp:
61497        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New values for size thresholds.
61498        (WebCore::HTMLPlugInImageElement::createRenderer): Remove call to setShouldShowSnapshotLabelAutomatically.
61499        (WebCore::classNameForShadowRoot): Remove logging and clearly assign sizing classes.
61500        (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): We don't need the page size any more.
61501        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use new constant names.
61502        * html/HTMLPlugInImageElement.h:
61503        (HTMLPlugInImageElement): Remove setShouldShowSnapshotLabelAutomatically.
61504
615052013-02-21  Benjamin Poulain  <benjamin@webkit.org>
61506
61507        Fix the build after r143664.
61508
61509        Unreviewed.
61510
61511        * WebCore.exp.in:
61512
615132013-02-21  Eric Seidel  <eric@webkit.org>
61514
61515        tables/mozilla/bugs/bug8950.html fails with threaded parser due to attribute duplication
61516        https://bugs.webkit.org/show_bug.cgi?id=110532
61517
61518        Reviewed by Adam Barth.
61519
61520        This is a very basic failure which we should have caught earlier with the html5lib parser
61521        tests, except those use document.write and thus avoid the threaded parser.
61522
61523        AtomicHTMLToken expects its attributes to be unique.  We were not doing that for the
61524        CompactHTMLToken path, and this ancient mozilla table test caught that.
61525
61526        Fixes tables/mozilla/bugs/bug8950.html.
61527
61528        * html/parser/AtomicHTMLToken.h:
61529        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
61530        (WebCore::AtomicHTMLToken::initializeAttributes):
61531
615322013-02-21  Adam Barth  <abarth@webkit.org>
61533
61534        Threaded HTML Parser fails fast/dom/Document/readystate.html
61535        https://bugs.webkit.org/show_bug.cgi?id=110529
61536
61537        Reviewed by Eric Seidel.
61538
61539        We need to create the tokenizer even when we finish a script-created
61540        parser. Most of the time, the tokenizer has already been created at
61541        this point because it is created by calls to document.write.
61542
61543        Test: fast/parser/body-should-exist-after-open-close.html
61544
61545        * html/parser/HTMLDocumentParser.cpp:
61546        (WebCore::HTMLDocumentParser::finish):
61547
615482013-02-21  Emil A Eklund  <eae@chromium.org>
61549
61550        Lots of LayoutUnit assertions when loading a Wikipedia article
61551        https://bugs.webkit.org/show_bug.cgi?id=110270
61552
61553        Reviewed by Levi Weintraub.
61554        
61555        Change RenderBlock::adjustRectForColumns to ensure that the
61556        endColumn calculation does not overflow.
61557
61558        No new tests, covered by existing tests.
61559
61560        * rendering/RenderBlock.cpp:
61561        (WebCore::RenderBlock::adjustRectForColumns):
61562        Make the endOffset value be no less than the beforeBorderPadding
61563        value to ensure that endColumn is not negative.
61564
615652013-02-21  Eric Seidel  <eric@webkit.org>
61566
61567        LayoutTests/fast/encoding/parser-tests-*.html timeout with threaded HTML parser
61568        https://bugs.webkit.org/show_bug.cgi?id=109995
61569
61570        Reviewed by Adam Barth.
61571
61572        In the case where during main document onload, we
61573        load a new iframe, and then from within that iframe
61574        we run script to remove the iframe and call testRunner.notifyDone()
61575        the notifyDone() will not correctly dump because
61576        the testRunner does not yet realize that the main resource
61577        has completed loading.
61578
61579        In the main-thread parser, the testRunner does correctly know
61580        that the main thread has completed, because removing the iframe
61581        causes a didFailLoad callback to the embedder, because when
61582        the iframe is being removed, the DocumentLoader for that iframe
61583        is still on the stack and believe's its loading
61584        (because it has a MainResourceLoader which is also on the stack
61585        delivering us the bytes which contain this inline script).
61586
61587        In the threaded-parser case, the DocumentLoader and MainResourceLoader
61588        are no longer on the stack, as we are parsing the iframe asynchronously
61589        after all the bytes have been delivered, and the MainResourceLoader destroyed.
61590        Thus when DocumentLoader::stopLoading() is called, loading() returns
61591        false, and it returns early.  One might argue that we should remove that
61592        early return entirely, but it seemed safer to extend the idea of
61593        when we're loading to include the time when the parser is active.
61594
61595        This patch solves this by teaching the DocumentLoader that it is still
61596        "loading" so long as the parser is still active.
61597
61598        Also added a call to DocumentLoader::checkLoadComplete from
61599        Document::decrementActiveParserCount which seemed to cause
61600        http/tests/multipart/policy-ignore-crash.php to pass.
61601
61602        This causes http/tests/security/feed-urls-from-remote.html to timeout
61603        on chromium (but no other platforms that I'm aware of).  I believe this
61604        is due to a bug in our DRT implementation in the policyDelegate case
61605        (which AFAIK is not a codepath which Chromium actually uses in the wild).
61606        The test already times out on TOT if you remove the setCustomPolicyDelegate calls!
61607
61608        * loader/DocumentLoader.cpp:
61609        (WebCore::DocumentLoader::isLoading):
61610        (WebCore):
61611        * loader/DocumentLoader.h:
61612        (DocumentLoader):
61613
616142013-02-21  Erik Arvidsson  <arv@chromium.org>
61615
61616        Nodes should not have attributes property
61617        https://bugs.webkit.org/show_bug.cgi?id=110510
61618
61619        Reviewed by Adam Barth.
61620
61621        According to http://dom.spec.whatwg.org/ attributes and hasAttributes
61622        should be defined on Element and not on Node.
61623
61624        Test: fast/dom/Text/text-should-not-have-attributes.html
61625
61626        * dom/Element.idl:
61627        * dom/Node.idl:
61628
616292013-02-21  Tony Gentilcore  <tonyg@chromium.org>
61630
61631        Make BackgroundHTMLParser rewind the preload scanner instead of clear it
61632        https://bugs.webkit.org/show_bug.cgi?id=110517
61633
61634        Reviewed by Adam Barth.
61635
61636        No new tests becuase no new functionality.
61637
61638        * html/parser/BackgroundHTMLParser.cpp:
61639        (WebCore::BackgroundHTMLParser::resumeFrom):
61640        (WebCore::BackgroundHTMLParser::pumpTokenizer):
61641        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
61642        * html/parser/BackgroundHTMLParser.h:
61643        (Checkpoint):
61644        * html/parser/HTMLDocumentParser.cpp:
61645        (WebCore::HTMLDocumentParser::didFailSpeculation):
61646        * html/parser/HTMLDocumentParser.h:
61647        (ParsedChunk):
61648        * html/parser/HTMLPreloadScanner.cpp:
61649        (WebCore::TokenPreloadScanner::createCheckpoint):
61650        (WebCore):
61651        (WebCore::TokenPreloadScanner::rewindTo):
61652        * html/parser/HTMLPreloadScanner.h:
61653        (WebCore):
61654        (TokenPreloadScanner):
61655        (WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
61656        (Checkpoint):
61657
616582013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
61659
61660        Unreviewed, rolling out r143536.
61661        http://trac.webkit.org/changeset/143536
61662        https://bugs.webkit.org/show_bug.cgi?id=110523
61663
61664        Causing a bunch of tests to fail on Windows, requires
61665        rebaselining (Requested by rfong on #webkit).
61666
61667        * config.h:
61668        * page/Settings.cpp:
61669        (WebCore):
61670        (WebCore::Settings::setShouldPaintNativeControls):
61671        * page/Settings.h:
61672        (Settings):
61673        (WebCore::Settings::shouldPaintNativeControls):
61674        * platform/win/ScrollbarThemeWin.cpp:
61675        (WebCore):
61676        * rendering/RenderThemeWin.cpp:
61677        (WebCore):
61678
616792013-02-21  Simon Fraser  <simon.fraser@apple.com>
61680
61681        Don't make an overhang shadow layer when the WKView has a transparent background
61682        https://bugs.webkit.org/show_bug.cgi?id=110429
61683
61684        Reviewed by Anders Carlsson.
61685
61686        When in coordinated scrolling mode, RenderLayerCompositor makes a layer to show
61687        the shadow around the content when rubber-banding. However, if the view is
61688        transparent, we don't want to make this layer, since it darkens the entire view.
61689
61690        * rendering/RenderLayerBacking.cpp:
61691        (WebCore::RenderLayerBacking::updateRootLayerConfiguration): Code was moved
61692        into viewHasTransparentBackground(), so just call that here.
61693        * rendering/RenderLayerCompositor.cpp:
61694        (WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't make
61695        a shadow layer when the view is transparent.
61696        (WebCore::RenderLayerCompositor::viewHasTransparentBackground): Return
61697        true if the view is transparent or has a non-opaque background color,
61698        and optionally return that color.
61699        * rendering/RenderLayerCompositor.h:
61700
617012013-02-21  Simon Fraser  <simon.fraser@apple.com>
61702
61703        [Safari] Crash with opacity + drop shadow filter + child element extending beyond filter outsets
61704        https://bugs.webkit.org/show_bug.cgi?id=107467
61705
61706        Reviewed by Dean Jackson.
61707        
61708        The filter code plays games with the current GraphicsContext, replacing the current
61709        context with one which will get filtered.
61710        
61711        This doesn't play nicely with the RenderLayer code which lazily starts transparency
61712        layers. If we don't start a transparency layer until painting a child of the filtered
61713        layer, then the transparency layer is started using the wrong context.
61714        
61715        Fix by eagerly starting transparency layers if we have both a filter and opacity.
61716
61717        Test: css3/filters/filter-with-opacity-and-children.html
61718
61719        * rendering/RenderLayer.cpp:
61720        (WebCore::RenderLayer::paintLayerContents):
61721
617222013-02-21  Tony Chang  <tony@chromium.org>
61723
61724        Autogenerate Settings that call setNeedsRecalcStyleInAllFrames when set
61725        https://bugs.webkit.org/show_bug.cgi?id=109989
61726
61727        Reviewed by Ryosuke Niwa.
61728
61729        Start generating the code for settings that call m_page->setNeedsRecalcStyleInAllFrames()
61730        when the value is changed. This allows us to generate 10 more settings. As a follow up, we
61731        can remove some methods from DRT/WTR after this.
61732
61733        No new tests, this is a build refactor and should not impact any test results.
61734
61735        * page/Settings.cpp:
61736        (WebCore::Settings::Settings): Remove member variables. Add SETTINGS_SETTER_BODIES macro that
61737        has the generated setter bodies.
61738        * page/Settings.h:
61739        (Settings): Remove code that is now generated.
61740        * page/Settings.in: Add new entries with setNeedsStyleRecalcWhenSetting=1
61741        * page/make_settings.pl:
61742        (defaultItemFactory): Add setNeedsStyleRecalcWhenSetting flag.
61743        (generateSettingsMacrosHeader): Print macro for setter bodies.
61744        (printConditionalMacros): Add setter body code.
61745        (printGettersAndSetters): Pass in setNeedsStyleRecalcWhenSetting so we know whether to inline the
61746        setter in the header or not.
61747        (printGetterAndSetter): Ditto.
61748        (printSetterBodies): Print macro for setter bodies.
61749        (printSetterBody): Print setter body for a single setting.
61750
617512013-02-21  Dean Jackson  <dino@apple.com>
61752
61753        Plug-in snapshotting code always accepts first snapshot
61754        https://bugs.webkit.org/show_bug.cgi?id=110495
61755
61756        Reviewed by Tim Horton.
61757
61758        When we detect a plugin that can be snapshotted we start capturing
61759        images until we find one that we believe isn't blank, or we timeout.
61760        I introduced a regression recently where we swap renderers as
61761        soon as the snapshot arrives, whether or not is is blank.
61762
61763        The fix was to have the embedder (currently only WK2) be the one
61764        who tells the HTMLPlugInElement to start displaying snapshots.
61765
61766        I also reduced the number of snapshot attempts we will make before
61767        giving up. We don't want to sit around for 66 seconds displaying nothing.
61768
61769        * html/HTMLPlugInElement.h:
61770        (WebCore::HTMLPlugInElement::setDisplayState): Make this a virtual function.
61771        * html/HTMLPlugInImageElement.cpp:
61772        (WebCore::HTMLPlugInImageElement::setDisplayState): Override to call the
61773            base class version, but swap renderers if we should move to the snapshot.
61774        (WebCore::HTMLPlugInImageElement::updateSnapshot): Don't swap renderers here any more.
61775        * html/HTMLPlugInImageElement.h: New virtual version of setDisplayState.
61776
617772013-02-21  Tony Gentilcore  <tonyg@chromium.org>
61778
61779        Tune BackgroundHTMLParser's pendingTokenLimit based on a benchmark
61780        https://bugs.webkit.org/show_bug.cgi?id=110408
61781
61782        Reviewed by Adam Barth.
61783
61784        This constant was tuned by running the top 25 sites in Telemetry on a Nexus 7 device.
61785        The new value decreases the maximum time spent parsing by 40% without significantly impacting total parse time or DOMContentLoaded.
61786
61787        No new tests because no new functionality.
61788
61789        * html/parser/BackgroundHTMLParser.cpp:
61790        (WebCore):
61791
617922013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
61793
61794        Unreviewed, rolling out r143419.
61795        http://trac.webkit.org/changeset/143419
61796        https://bugs.webkit.org/show_bug.cgi?id=110507
61797
61798        Broke border-image on Mac (Requested by jpfau on #webkit).
61799
61800        * platform/graphics/GraphicsContext.cpp:
61801        (WebCore::GraphicsContext::drawTiledImage):
61802        * platform/graphics/GraphicsContext.h:
61803        (GraphicsContext):
61804        * platform/graphics/Image.cpp:
61805        (WebCore::Image::drawTiled):
61806        * platform/graphics/Image.h:
61807        (Image):
61808        * rendering/RenderBoxModelObject.cpp:
61809        (WebCore::RenderBoxModelObject::paintNinePieceImage):
61810
618112013-02-21  Tom Sepez  <tsepez@chromium.org>
61812
61813        XSSAuditor should block pages by redirecting to a sandboxed data: URL.
61814        https://bugs.webkit.org/show_bug.cgi?id=110406
61815
61816        Reviewed by Adam Barth.
61817
61818        Patch originally by mkwst@chromium.org. 
61819        Tests: http/tests/security/xssAuditor/block-does-not-leak-location.html
61820               http/tests/security/xssAuditor/block-does-not-leak-referrer.html
61821               http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html
61822
61823        * html/parser/XSSAuditorDelegate.cpp:
61824        (WebCore::XSSAuditorDelegate::didBlockScript):
61825            When blocking entire pages via the XSSAuditor, redirect to a data:
61826            URL to ensure that requests for properties don't leak information.
61827        
618282013-02-21  Christian Biesinger  <cbiesinger@chromium.org>
61829
61830        Convert buttons from DeprecatedFlexBox to nondeprecated FlexibleBox
61831        https://bugs.webkit.org/show_bug.cgi?id=109994
61832
61833        Reviewed by Ojan Vafai.
61834
61835        Covered by existing tests for <button> and <input
61836        type="button|submit|reset">
61837
61838        * css/html.css:
61839        (input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
61840        Convert from box-align to align-items. We are using flex-start here in
61841        conjunction with an auto margin for correct centering. See
61842        RenderButton.cpp below for the margin & more explanation.
61843
61844        * rendering/RenderBlock.cpp:
61845        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
61846        Add a case for creating a non-deprecated flex box.
61847
61848        * rendering/RenderButton.cpp:
61849        (WebCore::RenderButton::RenderButton):
61850        (WebCore::RenderButton::addChild):
61851        (WebCore::RenderButton::removeChild):
61852        Forward to new base class
61853        (WebCore::RenderButton::styleWillChange):
61854        (WebCore::RenderButton::setupInnerStyle):
61855        We are now using flexbox properties.
61856        - min-width is needed for correct shrinking of the contents
61857        - margin-top and margin-bottom are used for correct centering. We
61858        can't use align-items: center because results are incorrect when the
61859        content overflows. See LayoutTests/fast/forms/control-clip.html
61860
61861        * rendering/RenderButton.h:
61862        Inherit from RenderFlexibleBox
61863
61864        * rendering/RenderFlexibleBox.cpp:
61865        (WebCore::RenderFlexibleBox::createAnonymous):
61866        (WebCore):
61867        * rendering/RenderFlexibleBox.h:
61868        (RenderFlexibleBox):
61869        Add a createAnonymous function to RenderFlexibleBox.
61870
618712013-02-21  John Mellor  <johnme@chromium.org>
61872
61873        [chromium] Simplify computation of screenRect/windowRect.
61874        https://bugs.webkit.org/show_bug.cgi?id=110456
61875
61876        Reviewed by Adam Barth.
61877
61878        This patch removes applyDeviceScaleFactorInCompositor checks
61879        added by http://trac.webkit.org/changeset/139356 because
61880        Chrome for Android now sizes its screen and window in DIP
61881        units (like other platforms), so they are no longer necessary.
61882
61883        No new tests, since this is just removing an unused codepath.
61884
61885        * platform/chromium/PlatformScreenChromium.cpp:
61886        (WebCore::screenRect):
61887        (WebCore::screenAvailableRect):
61888        * rendering/TextAutosizer.cpp:
61889        (WebCore::TextAutosizer::processSubtree):
61890
618912013-02-21  Beth Dakin  <bdakin@apple.com>
61892
61893        Out-of-view fixed position check should not be affected by page scale at all on Mac
61894        https://bugs.webkit.org/show_bug.cgi?id=110294
61895        -and corresponding-
61896        <rdar://problem/13247582>
61897
61898        Reviewed by Simon Fraser.
61899
61900        Don't scale the layerBounds. Generally, the layerBounds should be relative to the 
61901        viewBounds which are also unscaled. Chromium used to want this behavior, but it is 
61902        covered by their pageScaleFactorAppliedInCompositor implementation now.
61903
61904        * rendering/RenderLayerCompositor.cpp:
61905        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
61906
619072013-02-21  Philip Rogers  <pdr@google.com>
61908
61909        Stop starting animations when leaving a page
61910        https://bugs.webkit.org/show_bug.cgi?id=110257
61911
61912        Reviewed by Stephen Chenney.
61913
61914        SVGImage::resetAnimation() incorrectly started animations which could cause a crash
61915        when leaving the page. This patch fixes resetAnimation to only stop the animation,
61916        similar to BitmapImage::resetAnimation().
61917
61918        Additionally, this patch removes an unneeded call to Document::updateStyleForAllDocuments()
61919        that was present in the animation loop. This makes the animation code more resistant to
61920        similar bugs in the future.
61921
61922        Both of these changes are functionally covered with existing tests.
61923
61924        Test: svg/animations/reset-animation-crash.html
61925
61926        * svg/animation/SMILTimeContainer.cpp:
61927        (WebCore::SMILTimeContainer::updateAnimations):
61928        * svg/graphics/SVGImage.cpp:
61929        (WebCore::SVGImage::resetAnimation):
61930
619312013-02-19  Mark Hahnenberg  <mhahnenberg@apple.com>
61932
61933        Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
61934        https://bugs.webkit.org/show_bug.cgi?id=106059
61935
61936        Reviewed by Geoffrey Garen.
61937
61938        * WebCore.exp.in:
61939        * bindings/js/JSDOMWindowShell.cpp:
61940        (WebCore::JSDOMWindowShell::setWindow): Since we're basically abandoning a JSDOMWindow here, we call
61941        garbageCollectSoon().
61942        * bindings/js/JSDOMWindowShell.h:
61943        * bindings/js/ScriptController.h: New function to get the JSContext for the global object of the current main world.
61944        * bindings/js/ScriptControllerMac.mm: 
61945        (WebCore::ScriptController::javaScriptContext): Ditto.
61946        * bindings/objc/WebScriptObject.h: Added ifdef guards. Also new convenience conversion function for the JSC Obj-C API.
61947        * bindings/objc/WebScriptObject.mm: JSC::JSValue and JSValue conflict with one another, so we have to be more specific.
61948        (-[WebScriptObject _globalContextRef]): Useful helper function for getting the JSGlobalContextRef of a particular WebScriptObject.
61949        (-[WebScriptObject callWebScriptMethod:withArguments:]):
61950        (-[WebScriptObject evaluateWebScript:]):
61951        (-[WebScriptObject valueForKey:]):
61952        (-[WebScriptObject webScriptValueAtIndex:]):
61953        (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
61954        (-[WebScriptObject JSValue]): Implementation of convenience WebScriptObject conversion function to new Objective-C API.
61955        * bindings/objc/WebScriptObjectPrivate.h:
61956
619572013-02-21  Kentaro Hara  <haraken@chromium.org>
61958
61959        [V8] Rename add{Node,Object}ToGroup() to add{Node,Object}WrapperToGroup()
61960        https://bugs.webkit.org/show_bug.cgi?id=110404
61961
61962        Reviewed by Adam Barth.
61963
61964        The current function name is confusing
61965        (See discussion in bug 110396). We should rename the functions
61966        so that it becomes clear that "Node"/"Object" refers to a type
61967        of a wrapper in the second argument.
61968
61969        No tests. No change in behavior.
61970
61971        * bindings/v8/V8GCController.cpp:
61972        (WebCore::WrapperGrouper::addObjectWrapperToGroup):
61973        (WebCore::WrapperGrouper::addNodeWrapperToGroup):
61974
619752013-02-21  Vivek Galatage  <vivek.vg@samsung.com>
61976
61977        [JS Binding] ScriptObject default constructor should initialize the Script State to 0
61978        https://bugs.webkit.org/show_bug.cgi?id=110177
61979
61980        Reviewed by Geoffrey Garen.
61981
61982        Adding the initialization of ScriptState to 0.
61983
61984        * bindings/js/ScriptObject.h:
61985        (WebCore::ScriptObject::ScriptObject):
61986
619872013-02-21  Nate Chapin  <japhet@chromium.org>
61988
61989        REGRESSION: Crash in MainResourceLoader::setDataBufferingPolicy when sharing an html5 video via email
61990        https://bugs.webkit.org/show_bug.cgi?id=110075
61991
61992        Reviewed by Alexey Proskuryakov.
61993
61994        Test: webarchive/loading/video-in-webarchive.html
61995
61996        * loader/MainResourceLoader.cpp:
61997        (WebCore::MainResourceLoader::continueAfterContentPolicy): isStopping()
61998            isn't accurate to determine whether a SubstituteData load should
61999            continue, as this point in the code shouldn't be reachable from any point
62000            where isStopping() would return true. DocumentLoader might have completely
62001            stopped and believe that MainResourceLoader is complete, though. Don't
62002            continue in that case. 
62003        (WebCore::MainResourceLoader::setDataBufferingPolicy): m_resource can be null
62004            in a reasonable case, handle it rather than asserting that it can't be null.
62005
620062013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
62007
62008        Unreviewed, rolling out r143616.
62009        http://trac.webkit.org/changeset/143616
62010        https://bugs.webkit.org/show_bug.cgi?id=110491
62011
62012        Caused a test failure on Chromium Mac. (Requested by vollick
62013        on #webkit).
62014
62015        * page/FrameView.cpp:
62016        (WebCore::FrameView::visibleContentsResized):
62017        * page/FrameView.h:
62018        (FrameView):
62019        * page/Page.cpp:
62020        (WebCore::Page::setPageScaleFactor):
62021
620222013-02-21  Robert Hogan  <robert@webkit.org>
62023
62024        Overflow can be cleared just before it is computed
62025        https://bugs.webkit.org/show_bug.cgi?id=110361
62026
62027        Reviewed by David Hyatt.
62028
62029        Overflow can be cleared just before it is computed in a lot of places because overflow computation happens all at once
62030        now rather than cumulatively during layout. Any object that doesn't use computeOverflow() will still need to clear it manually
62031        though.
62032
62033        No new tests, refactoring.
62034
62035        * rendering/RenderBlock.cpp:
62036        (WebCore::RenderBlock::layoutBlock):
62037        (WebCore::RenderBlock::computeOverflow):
62038        (WebCore::RenderBlock::simplifiedLayout):
62039        * rendering/RenderBlockLineLayout.cpp:
62040        (WebCore::RenderBlock::layoutInlineChildren):
62041        * rendering/RenderDeprecatedFlexibleBox.cpp:
62042        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
62043        * rendering/RenderFlexibleBox.cpp:
62044        (WebCore::RenderFlexibleBox::layoutBlock):
62045        * rendering/RenderGrid.cpp:
62046        (WebCore::RenderGrid::layoutBlock):
62047        * rendering/RenderRubyRun.cpp:
62048        (WebCore::RenderRubyRun::layout):
62049        * rendering/RenderTable.cpp:
62050        (WebCore::RenderTable::layout):
62051        * rendering/RenderTextControlSingleLine.cpp:
62052        (WebCore::RenderTextControlSingleLine::layout):
62053
620542013-02-21  Alok Priyadarshi  <alokp@chromium.org>
62055
62056        Mark GraphicsLayers as opaque when possible
62057        https://bugs.webkit.org/show_bug.cgi?id=70634
62058
62059        Reviewed by Simon Fraser.
62060
62061        Mark layers as opaque in a very simple case - the main renderer has an
62062        opaque background and covers the entire composited bounds.
62063        RenderLayer::contentsOpaqueInRect has been implemented conservatively,
62064        i.e. it errs towards returning false negative.
62065
62066        Tests: compositing/contents-opaque/contents-opaque-background-clip.html
62067               compositing/contents-opaque/contents-opaque-background-color.html
62068               compositing/contents-opaque/contents-opaque-layer-opacity.html
62069               compositing/contents-opaque/contents-opaque-layer-transform.html
62070
62071        * rendering/RenderBox.cpp:
62072        (WebCore::RenderBox::backgroundIsOpaqueInRect):
62073        (WebCore):
62074        * rendering/RenderBox.h:
62075        (RenderBox):
62076        * rendering/RenderBoxModelObject.h:
62077        (WebCore::RenderBoxModelObject::backgroundIsOpaqueInRect):
62078        (WebCore::RenderBoxModelObject::foregroundIsOpaqueInRect):
62079        (RenderBoxModelObject):
62080        * rendering/RenderLayer.cpp:
62081        (WebCore::RenderLayer::contentsOpaqueInRect):
62082        (WebCore):
62083        (WebCore::RenderLayer::listContentsOpaqueInRect):
62084        * rendering/RenderLayer.h:
62085        (RenderLayer):
62086        * rendering/RenderLayerBacking.cpp:
62087        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
62088        * rendering/RenderLayerModelObject.h:
62089        (RenderLayerModelObject):
62090
620912013-02-21  Julien Chaffraix  <jchaffraix@webkit.org>
62092
62093        [CSS Grid Layout] Implement grid growth during auto placement
62094        https://bugs.webkit.org/show_bug.cgi?id=110418
62095
62096        Reviewed by Ojan Vafai.
62097
62098        This change implements the last remaining piece of the auto placement algorithm:
62099        growing the grid mid-placement. With that landed, we should handle all cases properly.
62100
62101        Change covered by : fast/css-grid-layout/grid-item-addition-auto-placement.html
62102                            fast/css-grid-layout/grid-item-removal-auto-placement.html
62103
62104
62105        * rendering/RenderGrid.cpp:
62106        (WebCore::RenderGrid::growGrid):
62107        Added this helper function to grow the grid one item in a direction.
62108
62109        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
62110        Updated this function to grow in the minor axis direction and insert in the
62111        newly created grid area.
62112
62113        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
62114        Updated this function to grow in the major axis direction and insert in the
62115        newly create grid area. Unfortunately this code cannot use the iterator to find
62116        the new position as the (auto, auto) case iterates orthogonally to the major axis
62117        direction, which we just grew.
62118
62119        * rendering/RenderGrid.h:
62120        Added growGrid.
62121
621222013-02-21  Martin Robinson  <mrobinson@igalia.com>
62123
62124        A couple more 'make dist' fixes for WebKitGTK+.
62125
62126        * GNUmakefile.list.am: Add a missing file to the source list.
62127
621282013-02-21  Andrei Bucur  <abucur@adobe.com>
62129
62130        -webkit-margin-collapse: separate doesn't work correctly for before margins
62131        https://bugs.webkit.org/show_bug.cgi?id=109956
62132
62133        Reviewed by David Hyatt.
62134
62135        The collapsing code for "-webkit-margin-collapse: separate" assumed the margin value inside
62136        marginInfo always contributes to the position of the child. This is valid only if the collapse
62137        doesn't happen at the before side of the container. In that case, the child needs to be positioned 
62138        at the margin value specified in the style sheet.
62139
62140        Test: fast/block/margin-collapse/webkit-margin-collapse-separate-position.html
62141
62142        * rendering/RenderBlock.cpp:
62143        (WebCore::RenderBlock::collapseMargins):
62144
621452013-02-21  Tien-Ren Chen  <trchen@chromium.org>
62146
62147        Need to re-layout fixed position elements after scale when using settings()->fixedElementsLayoutRelativeToFrame()
62148        https://bugs.webkit.org/show_bug.cgi?id=105486
62149
62150        Reviewed by James Robinson.
62151
62152        In settings()->fixedElementsLayoutRelativeToFrame() mode, fixed-position
62153        elements are layout relative to the current visible viewport, which can
62154        be different from the layout viewport when using fixed-layout mode.
62155        We need to re-layout fixed-position elements in case of visible content
62156        size changes.
62157
62158        The test is currently chromium-specific due to difficulties to make this
62159        test works on Mac. The mac port seems to work very differently with
62160        visible content size when a page is scaled. And there is no reliable way
62161        to hide scrollbars in mac-wk1 that doesn't cause a side effect.
62162
62163        Test: platform/chromium/fast/repaint/relayout-fixed-position-after-scale.html
62164
62165        * page/FrameView.cpp:
62166        (WebCore::FrameView::visibleContentsResized):
62167        * page/FrameView.h:
62168        (FrameView):
62169        * page/Page.cpp:
62170        (WebCore::Page::setPageScaleFactor):
62171
621722013-02-21  Xan Lopez  <xlopez@rim.com>
62173
62174        [BlackBerry] LayerFilterRenderer: fix inclusion of Vector.h
62175        https://bugs.webkit.org/show_bug.cgi?id=110476
62176
62177        Reviewed by Rob Buis.
62178
62179        Added in r124242. The include line should be wtf/Vector.h
62180
62181        * platform/graphics/blackberry/LayerFilterRenderer.cpp:
62182
621832013-02-21  David Hyatt  <hyatt@apple.com>
62184
62185        [New Multicolumn] Remove unneeded layout method in RenderMultiColumnFlowThread.
62186        https://bugs.webkit.org/show_bug.cgi?id=110477.
62187
62188        Reviewed by Antti Koivisto.
62189
62190        I forgot that both the sets and the flow thread lay out before the containing
62191        RenderMultiColumnBlock has finished. That means it hasn't computed its overflow yet.
62192        Therefore there is no need to force it to compute its overflow from inside
62193        RenderMultiColumnFlowThread::layout, because the minute RenderMultiColumnFlowThread
62194        finishes its layout, the block will compute its overflow anyway.
62195
62196        * rendering/RenderMultiColumnFlowThread.cpp:
62197        (WebCore):
62198        * rendering/RenderMultiColumnFlowThread.h:
62199        (RenderMultiColumnFlowThread):
62200
622012013-02-21  Martin Robinson  <mrobinson@igalia.com>
62202
62203        [GTK] Move feature overriding to the configure phase
62204        https://bugs.webkit.org/show_bug.cgi?id=110293
62205
62206        Reviewed by Gustavo Noronha Silva.
62207
62208        * GNUmakefile.am: No longer include GNUmakefile.features.am. We don't
62209        have to process the result of this file or do any modification of
62210        feature_defines_override, because this variable is gone.
62211
622122013-02-21  Andrey Adaikin  <aandrey@chromium.org>
62213
62214        Unreviewed. Rolling out an unindented change from r143580.
62215
62216        * inspector/Inspector.json:
62217
622182013-02-21  Andreas Kling  <akling@apple.com>
62219
62220        GlyphPage: Bake per-glyph font data array into same allocation as GlyphPage.
62221
62222        A hopeful fix for REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler
62223        <http://webkit.org/b/108835>
62224
62225        Reviewed by Antti Koivisto.
62226
62227        Rewire GlyphPage so that we have to decide at creation time whether there will be a per-glyph
62228        array of SimpleFontData* or not. This removes one allocation and one step of indirection for
62229        pages with glyphs from mixed fonts.
62230
62231        * platform/graphics/GlyphPage.h:
62232        (WebCore::GlyphPage::createForMixedFontData):
62233        (WebCore::GlyphPage::createForSingleFontData):
62234        (WebCore::GlyphPage::createCopiedSystemFallbackPage):
62235        (WebCore::GlyphPage::~GlyphPage):
62236        (WebCore::GlyphPage::glyphDataForIndex):
62237        (WebCore::GlyphPage::fontDataForCharacter):
62238        (WebCore::GlyphPage::setGlyphDataForIndex):
62239        (WebCore::GlyphPage::removeFontDataFromSystemFallbackPage):
62240        (WebCore::GlyphPage::GlyphPage):
62241        (WebCore::GlyphPage::hasPerGlyphFontData):
62242        (GlyphPage):
62243        * platform/graphics/GlyphPageTreeNode.cpp:
62244        (WebCore::GlyphPageTreeNode::initializePage):
62245
622462013-02-21  Xan Lopez  <xlopez@rim.com>
62247
62248        [BlackBerry] MediaPlayerPrivateBlackBerry: include Logging.h
62249        https://bugs.webkit.org/show_bug.cgi?id=110455
62250
62251        Reviewed by Eric Carlson.
62252
62253        LOG is used in this file, so it is needed.
62254
62255        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
62256
622572013-02-21  Keishi Hattori  <keishi@webkit.org>
62258
62259        Add animation class for new calendar picker
62260        https://bugs.webkit.org/show_bug.cgi?id=110132
62261
62262        Reviewed by Kent Tamura.
62263
62264        Adding animation related classes as part of the calendar picker
62265        redesign(Bug 109439).
62266
62267        No new tests. Code is not used yet.
62268
62269        * Resources/pagepopups/calendarPicker.js:
62270        (AnimationTimingFunction.Linear): Parameter t should be a number between 0 and 1.
62271        (AnimationTimingFunction.EaseInOut): Ditto.
62272        (AnimationManager): All animators are managed by this class so we
62273        can dispatch "animationFrameWillFinish" event after all the updates.
62274        (AnimationManager.prototype._startAnimation):
62275        (AnimationManager.prototype._stopAnimation):
62276        (AnimationManager.prototype.add): Adds an animator to the list of running animators.
62277        (AnimationManager.prototype.remove): Removes an animator.
62278        (AnimationManager.prototype._animationFrameCallback): Callback for requestAnimationFrame.
62279        (AnimationManager.prototype._needsAnimationFrame): Returns true if we should request the next animation frame.
62280        (AnimationManager.prototype.on): If we add a callback, request animation frame.
62281        (AnimationManager.prototype.removeListener):
62282        (Animator): Animates between the from value and to value.
62283        (Animator.prototype.setFrom): Sets the from value.
62284        (Animator.prototype.setTo): Sets the to value.
62285        (Animator.prototype.start):
62286        (Animator.prototype.stop):
62287        (Animator.prototype.onAnimationFrame): Called by AnimationManager.
62288
622892013-02-21  Andrey Adaikin  <aandrey@chromium.org>
62290
62291        Web Inspector: [Canvas] UI: more intuitive control buttons
62292        https://bugs.webkit.org/show_bug.cgi?id=110327
62293
62294        Reviewed by Pavel Feldman.
62295
62296        Tweaks to the CanvasProfiler replay control buttons.
62297        - NextDrawCall forward button (StepOver) should jump up to the last expanded node, otherwise a noop is not intuitive unless the last node is selected.
62298        - NextDrawCall/PrevDrawCall buttons should not skip draw call nodes themselves.
62299
62300        * inspector/front-end/CanvasProfileView.js:
62301        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
62302
623032013-02-21  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
62304
62305        Make SpellCheckRequest's constructor private.
62306        https://bugs.webkit.org/show_bug.cgi?id=110462
62307
62308        Reviewed by Antonio Gomes.
62309
62310        It's no need to expose SpellCheckRequest's constructor.
62311        There is SpellCheckRequest::create() method which is
62312        responsible for creating SpellCheckRequest object.
62313
62314        No new tests, no behavior change.
62315
62316        * editing/SpellChecker.h:
62317        (SpellCheckRequest):
62318
623192013-02-21  Andrey Adaikin  <aandrey@chromium.org>
62320
62321        Web Inspector: [Canvas] Remove arrays of DataGrid nodes from the View
62322        https://bugs.webkit.org/show_bug.cgi?id=110325
62323
62324        Reviewed by Pavel Feldman.
62325
62326        Remove arrays of DataGrid nodes from the CanvasProfileView and use live DataGrid instead.
62327        This is a prerequisite to support a non-fixed layered tree in the grid (for example, to hide
62328        a single frame group node, or to combine several draw call groups into a pattern group).
62329        Drive-by: added an assert to injected canvas module.
62330
62331        * inspector/InjectedScriptCanvasModuleSource.js:
62332        * inspector/front-end/CanvasProfileView.js:
62333        (WebInspector.CanvasProfileView):
62334        (WebInspector.CanvasProfileView.prototype.dispose):
62335        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
62336        (WebInspector.CanvasProfileView.prototype._requestTraceLog):
62337        (WebInspector.CanvasProfileView.prototype._selectedCallIndex):
62338        (WebInspector.CanvasProfileView.prototype._peekLastRecursively):
62339        (WebInspector.CanvasProfileView.prototype._appendCallNodes):
62340        (WebInspector.CanvasProfileView.prototype.):
62341        (WebInspector.CanvasProfileView.prototype.splitDrawCallGroup):
62342        (WebInspector.CanvasProfileView.prototype._appendCallNodesToFrameNode):
62343
623442013-02-21  Alexander Pavlov  <apavlov@chromium.org>
62345
62346        Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
62347        Re-landing r143581 with a build fix for Windows.
62348        https://bugs.webkit.org/show_bug.cgi?id=109572
62349
62350        Reviewed by Vsevolod Vlasov.
62351
62352        This is a complete rework of the DOMStorage domain of the Web Inspector protocol. The most notable changes:
62353        - Session and local DOM storages are considered to implicitly exist for each SecurityOrigin in the page
62354          (previously, only those that were lazily created by DOMWindow would exist).
62355        - Consequently, the addDOMStorage event is gone.
62356        - StorageId is now an object rather than an opaque numeric identifier.
62357        - DOM storage modifiers no longer return a boolean indicating if the operation was successful.
62358          Clients should rely on the returned error message instead.
62359
62360        Implementation changes:
62361        - InspectorDOMStorageResource would rely on the frame for which it was created throughout its lifetime.
62362          As such, the frame removal from the page would break the respective DOM storage inspection.
62363          Since this concept was entirely flawed, InspectorDOMStorageResource has been removed. Instead, a StorageArea
62364          is retrieved based on the security origin specified by the client.
62365        - DOM storages can now be dynamically removed (upon the respective SecurityOrigin removal) in the frontend.
62366
62367        * CMakeLists.txt: Remove InspectorDOMStorageResource.
62368        * GNUmakefile.list.am: Ditto.
62369        * Target.pri: Ditto.
62370        * WebCore.gypi: Ditto.
62371        * WebCore.order: Ditto.
62372        * WebCore.vcproj/WebCore.vcproj: Ditto.
62373        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
62374        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
62375        * WebCore.xcodeproj/project.pbxproj: Ditto.
62376        * dom/WebCoreMemoryInstrumentation.cpp: Ditto.
62377        * dom/WebCoreMemoryInstrumentation.h: Ditto.
62378        * inspector/InjectedScriptSource.js: Account for the structured StorageId.
62379        * inspector/Inspector.json: Update structures and API methods.
62380          Do not return boolean success flag and make use of the error message instead.
62381        * inspector/InspectorAllInOne.cpp: Remove InspectorDOMStorageResource.
62382        * inspector/InspectorController.cpp:
62383        (WebCore::InspectorController::InspectorController): Add InspectorPageAgent into InspectorDOMStorageAgent.
62384        * inspector/InspectorDOMStorageAgent.cpp: Mostly remove InspectorDOMStorageResource usages.
62385        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
62386        (WebCore::InspectorDOMStorageAgent::clearFrontend):
62387        (WebCore::InspectorDOMStorageAgent::isEnabled):
62388        (WebCore::InspectorDOMStorageAgent::enable):
62389        (WebCore::InspectorDOMStorageAgent::disable):
62390        (WebCore::InspectorDOMStorageAgent::getDOMStorageItems): Renamed.
62391        (WebCore::toErrorString): Stringify ExceptionCode.
62392        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
62393        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
62394        (WebCore::InspectorDOMStorageAgent::storageId): Make it structured rather than a plain string.
62395        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
62396        (WebCore::InspectorDOMStorageAgent::findStorageArea): Added.
62397        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): Remove InspectorDOMStorageResource map.
62398        * inspector/InspectorDOMStorageAgent.h:
62399        (WebCore::InspectorDOMStorageAgent::create): Update signature.
62400        (InspectorDOMStorageAgent):
62401        * inspector/InspectorDOMStorageResource.cpp: Removed.
62402        * inspector/InspectorDOMStorageResource.h: Removed.
62403        * inspector/InspectorInstrumentation.cpp:
62404        (WebCore::InspectorInstrumentation::didCommitLoadImpl): Do not call the removed clearResources().
62405        * inspector/InspectorInstrumentation.h:
62406        * inspector/InspectorPageAgent.cpp:
62407        (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin): Added.
62408        * inspector/InspectorPageAgent.h:
62409        (InspectorPageAgent):
62410        * inspector/front-end/DOMStorage.js: Entirely reworked to use the SecurityOriginAdded/Removed events.
62411        (WebInspector.DOMStorage):
62412        (WebInspector.DOMStorage.storageId):
62413        (WebInspector.DOMStorage.prototype.get id):
62414        (WebInspector.DOMStorage.prototype.get securityOrigin):
62415        (WebInspector.DOMStorage.prototype.getItems):
62416        (WebInspector.DOMStorage.prototype.setItem):
62417        (WebInspector.DOMStorage.prototype.removeItem):
62418        (WebInspector.DOMStorageModel):
62419        (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
62420        (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
62421        (WebInspector.DOMStorageModel.prototype._storageKey):
62422        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
62423        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
62424        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
62425        (WebInspector.DOMStorageModel.prototype.storageForId):
62426        (WebInspector.DOMStorageModel.prototype.storages):
62427        * inspector/front-end/DOMStorageItemsView.js: Rename Entries -> Items to avoid confusion.
62428        (WebInspector.DOMStorageItemsView.prototype._update):
62429        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
62430        (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
62431        * inspector/front-end/ResourcesPanel.js: Follow the updated DOMStorage model.
62432        (WebInspector.ResourcesPanel):
62433        (WebInspector.ResourcesPanel.prototype._initialize):
62434        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
62435        (WebInspector.ResourcesPanel.prototype._domStorageRemoved):
62436        (WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
62437        (WebInspector.DOMStorageTreeElement):
62438        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
62439        * page/DOMWindow.cpp: Remove instrumentation calls.
62440        (WebCore::DOMWindow::sessionStorage):
62441        (WebCore::DOMWindow::localStorage):
62442
624432013-02-21  Carlos Garcia Campos  <cgarcia@igalia.com>
62444
62445        Unreviewed. Fix make distcheck.
62446
62447        * GNUmakefile.list.am: Add missing files to compilation.
62448
624492013-02-21  Alberto Garcia  <albgarcia@rim.com>
62450
62451        [BlackBerry] Fix access to ResourceHandle::context
62452        https://bugs.webkit.org/show_bug.cgi?id=110443
62453
62454        Reviewed by Carlos Garcia Campos.
62455
62456        This changed in r141981.
62457
62458        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
62459        (WebCore::ResourceHandle::start):
62460
624612013-02-21  Alberto Garcia  <albgarcia@rim.com>
62462
62463        [BlackBerry] GraphicsLayerBlackBerry: rename showDebugBorder to isShowingDebugBorder
62464        https://bugs.webkit.org/show_bug.cgi?id=110453
62465
62466        Reviewed by Carlos Garcia Campos.
62467
62468        This changed in r133517.
62469
62470        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
62471        (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
62472
624732013-02-21  Peter Rybin  <prybin@chromium.org>
62474
62475        Web Inspector: take large strings out of CodeGeneratorInspector.py
62476        https://bugs.webkit.org/show_bug.cgi?id=110159
62477
62478        Reviewed by Yury Semikhatsky.
62479
62480        Python script is refactored.
62481
62482        * inspector/CodeGeneratorInspector.py:
62483        * inspector/CodeGeneratorInspectorStrings.py: Added.
62484        (InspectorFrontend_h):
62485        (InspectorFrontendChannel):
62486        (InspectorArray):
62487        (InspectorObject):
62488        (String):
62489        (InspectorFrontend):
62490        (InspectorBackendDispatcher_h):
62491        (InspectorAgent):
62492        (InspectorBackendDispatcherImpl):
62493        (InspectorBackendDispatcher):
62494        (CallbackBase):
62495        (void):
62496        (HashMap):
62497        (OptOutput):
62498        (ExactlyInt):
62499        (RuntimeCastHelper):
62500        (provides):
62501        (typename):
62502        (Array):
62503        (Builder):
62504
625052013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
62506
62507        Unreviewed, rolling out r143581.
62508        http://trac.webkit.org/changeset/143581
62509        https://bugs.webkit.org/show_bug.cgi?id=110457
62510
62511        Breaks Windows builds (compile + link) (Requested by apavlov
62512        on #webkit).
62513
62514        * CMakeLists.txt:
62515        * GNUmakefile.list.am:
62516        * Target.pri:
62517        * WebCore.gypi:
62518        * WebCore.order:
62519        * WebCore.vcproj/WebCore.vcproj:
62520        * WebCore.vcxproj/WebCore.vcxproj:
62521        * WebCore.vcxproj/WebCore.vcxproj.filters:
62522        * WebCore.xcodeproj/project.pbxproj:
62523        * dom/WebCoreMemoryInstrumentation.cpp:
62524        (WebCore):
62525        * dom/WebCoreMemoryInstrumentation.h:
62526        (WebCoreMemoryTypes):
62527        * inspector/InjectedScriptSource.js:
62528        (.):
62529        * inspector/Inspector.json:
62530        * inspector/InspectorAllInOne.cpp:
62531        * inspector/InspectorController.cpp:
62532        (WebCore::InspectorController::InspectorController):
62533        * inspector/InspectorDOMStorageAgent.cpp:
62534        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
62535        (WebCore::InspectorDOMStorageAgent::clearFrontend):
62536        (WebCore::InspectorDOMStorageAgent::restore):
62537        (WebCore::InspectorDOMStorageAgent::enable):
62538        (WebCore::InspectorDOMStorageAgent::disable):
62539        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
62540        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
62541        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
62542        (WebCore::InspectorDOMStorageAgent::storageId):
62543        (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
62544        (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
62545        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
62546        (WebCore::InspectorDOMStorageAgent::clearResources):
62547        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
62548        * inspector/InspectorDOMStorageAgent.h:
62549        (WebCore):
62550        (WebCore::InspectorDOMStorageAgent::create):
62551        (InspectorDOMStorageAgent):
62552        * inspector/InspectorDOMStorageResource.cpp: Added.
62553        (WebCore):
62554        (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
62555        (WebCore::InspectorDOMStorageResource::isSameOriginAndType):
62556        (WebCore::InspectorDOMStorageResource::bind):
62557        (WebCore::InspectorDOMStorageResource::unbind):
62558        (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
62559        * inspector/InspectorDOMStorageResource.h: Added.
62560        (WebCore):
62561        (InspectorDOMStorageResource):
62562        (WebCore::InspectorDOMStorageResource::create):
62563        (WebCore::InspectorDOMStorageResource::id):
62564        (WebCore::InspectorDOMStorageResource::storageArea):
62565        (WebCore::InspectorDOMStorageResource::frame):
62566        * inspector/InspectorInstrumentation.cpp:
62567        (WebCore):
62568        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
62569        (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
62570        * inspector/InspectorInstrumentation.h:
62571        (InspectorInstrumentation):
62572        (WebCore::InspectorInstrumentation::didUseDOMStorage):
62573        (WebCore):
62574        * inspector/InspectorPageAgent.cpp:
62575        * inspector/InspectorPageAgent.h:
62576        (InspectorPageAgent):
62577        * inspector/front-end/DOMStorage.js:
62578        (WebInspector.DOMStorage):
62579        (WebInspector.DOMStorage.prototype.get id):
62580        (WebInspector.DOMStorage.prototype.get domain):
62581        (WebInspector.DOMStorage.prototype.getEntries):
62582        (WebInspector.DOMStorage.prototype.setItem):
62583        (WebInspector.DOMStorage.prototype.removeItem):
62584        (WebInspector.DOMStorageModel):
62585        (WebInspector.DOMStorageModel.prototype._addDOMStorage):
62586        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
62587        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
62588        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
62589        (WebInspector.DOMStorageModel.prototype.storageForId):
62590        (WebInspector.DOMStorageModel.prototype.storages):
62591        (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
62592        * inspector/front-end/DOMStorageItemsView.js:
62593        (WebInspector.DOMStorageItemsView.prototype._update):
62594        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
62595        (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
62596        * inspector/front-end/ResourcesPanel.js:
62597        (WebInspector.ResourcesPanel):
62598        (WebInspector.ResourcesPanel.prototype._initialize):
62599        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
62600        (WebInspector.ResourcesPanel.prototype._addDOMStorage):
62601        (WebInspector.DOMStorageTreeElement):
62602        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
62603        * page/DOMWindow.cpp:
62604        (WebCore::DOMWindow::sessionStorage):
62605        (WebCore::DOMWindow::localStorage):
62606
626072013-02-21  Vsevolod Vlasov  <vsevik@chromium.org>
62608
62609        Web Inspector: Get rid of parsedURL in uiSourceCode, use name and path for displayName instead.
62610        https://bugs.webkit.org/show_bug.cgi?id=110335
62611
62612        Reviewed by Alexander Pavlov.
62613
62614        Replaced UISourceCode.parsedURL with UISourceCode.displayName().
62615
62616        * inspector/front-end/NavigatorView.js:
62617        (WebInspector.NavigatorView.prototype._updateScriptTitle):
62618        (WebInspector.NavigatorView.prototype.getOrCreateFolderTreeElement):
62619        (WebInspector.NavigatorFolderTreeElement):
62620        * inspector/front-end/ResourceUtils.js:
62621        (WebInspector.displayNameForURL):
62622        * inspector/front-end/RevisionHistoryView.js:
62623        (WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
62624        * inspector/front-end/UISourceCode.js:
62625        (WebInspector.UISourceCode):
62626        (WebInspector.UISourceCode.prototype.displayName):
62627        (WebInspector.UISourceCode.prototype.urlChanged):
62628
626292013-02-21  Alexander Pavlov  <apavlov@chromium.org>
62630
62631        Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
62632        https://bugs.webkit.org/show_bug.cgi?id=109572
62633
62634        Reviewed by Vsevolod Vlasov.
62635
62636        * CMakeLists.txt:
62637        * GNUmakefile.list.am:
62638        * Target.pri:
62639        * WebCore.gypi:
62640        * WebCore.order:
62641        * WebCore.vcproj/WebCore.vcproj:
62642        * WebCore.vcxproj/WebCore.vcxproj:
62643        * WebCore.vcxproj/WebCore.vcxproj.filters:
62644        * WebCore.xcodeproj/project.pbxproj:
62645        * dom/WebCoreMemoryInstrumentation.cpp:
62646        (WebCore):
62647        * dom/WebCoreMemoryInstrumentation.h:
62648        (WebCoreMemoryTypes):
62649        * inspector/InjectedScriptSource.js:
62650        (.):
62651        * inspector/Inspector.json:
62652        * inspector/InspectorAllInOne.cpp:
62653        * inspector/InspectorController.cpp:
62654        (WebCore::InspectorController::InspectorController):
62655        * inspector/InspectorDOMStorageAgent.cpp:
62656        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
62657        (WebCore::InspectorDOMStorageAgent::clearFrontend):
62658        (WebCore::InspectorDOMStorageAgent::isEnabled):
62659        (WebCore::InspectorDOMStorageAgent::enable):
62660        (WebCore::InspectorDOMStorageAgent::disable):
62661        (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
62662        (WebCore::toErrorString):
62663        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
62664        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
62665        (WebCore::InspectorDOMStorageAgent::storageId):
62666        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
62667        (WebCore::InspectorDOMStorageAgent::findStorageArea):
62668        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
62669        * inspector/InspectorDOMStorageAgent.h:
62670        (WebCore):
62671        (WebCore::InspectorDOMStorageAgent::create):
62672        (InspectorDOMStorageAgent):
62673        * inspector/InspectorDOMStorageResource.cpp: Removed.
62674        * inspector/InspectorDOMStorageResource.h: Removed.
62675        * inspector/InspectorInstrumentation.cpp:
62676        (WebCore):
62677        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
62678        * inspector/InspectorInstrumentation.h:
62679        (InspectorInstrumentation):
62680        * inspector/InspectorPageAgent.cpp:
62681        (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
62682        (WebCore):
62683        * inspector/InspectorPageAgent.h:
62684        (InspectorPageAgent):
62685        * inspector/front-end/DOMStorage.js:
62686        (WebInspector.DOMStorage):
62687        (WebInspector.DOMStorage.storageId):
62688        (WebInspector.DOMStorage.prototype.get id):
62689        (WebInspector.DOMStorage.prototype.get securityOrigin):
62690        (WebInspector.DOMStorage.prototype.getItems):
62691        (WebInspector.DOMStorage.prototype.setItem):
62692        (WebInspector.DOMStorage.prototype.removeItem):
62693        (WebInspector.DOMStorageModel):
62694        (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
62695        (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
62696        (WebInspector.DOMStorageModel.prototype._storageKey):
62697        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
62698        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
62699        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
62700        (WebInspector.DOMStorageModel.prototype.storageForId):
62701        (WebInspector.DOMStorageModel.prototype.storages):
62702        * inspector/front-end/DOMStorageItemsView.js:
62703        (WebInspector.DOMStorageItemsView.prototype._update):
62704        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
62705        (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
62706        * inspector/front-end/ResourcesPanel.js:
62707        (WebInspector.ResourcesPanel):
62708        (WebInspector.ResourcesPanel.prototype._initialize):
62709        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
62710        (WebInspector.ResourcesPanel.prototype._domStorageRemoved):
62711        (WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
62712        (WebInspector.DOMStorageTreeElement):
62713        (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
62714        * page/DOMWindow.cpp:
62715        (WebCore::DOMWindow::sessionStorage):
62716        (WebCore::DOMWindow::localStorage):
62717
627182013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>
62719
62720        Web Inspector: [Console] Add console API message types for profile/profileEnd.
62721        https://bugs.webkit.org/show_bug.cgi?id=109790
62722
62723        Reviewed by Pavel Feldman.
62724
62725        With profile/profileEnd message types we will gain more control over
62726        output messages.
62727
62728        * English.lproj/localizedStrings.js: Added corresponging strings.
62729        * inspector/ConsoleAPITypes.h: Added enum members.
62730        * inspector/Inspector.json: Ditto.
62731        * inspector/front-end/ConsoleModel.js: Ditto.
62732        * inspector/ConsoleMessage.cpp:
62733        (WebCore::messageTypeValue): Added cases.
62734        * inspector/InspectorProfilerAgent.cpp: Adopted changes.
62735        * inspector/front-end/inspector.js: Ditto.
62736        * inspector/front-end/ConsoleMessage.js:
62737        Added message generators for introduced message types.
62738        * inspector/front-end/ProfilesPanel.js:
62739        Turned showProfileForURL(url) to showProfile(typeId, uid).
62740        * inspector/front-end/ProfilesPanelDescriptor.js:
62741        (WebInspector.ProfilesPanelDescriptor.resolveProfileTitle): Added.
62742        * inspector/front-end/ResourceUtils.js: Removed linkifier plugins.
62743
627442013-02-21  Tamas Czene  <tczene@inf.u-szeged.hu>
62745
62746        OpenCL implementation of FEMerge filter.
62747        https://bugs.webkit.org/show_bug.cgi?id=110193
62748
62749        Reviewed by Zoltan Herczeg.
62750
62751        In case of odd number of parameters the first parameter is copied to the destination image and
62752        the rest of the parameters are merged in pairs.
62753
62754        * Target.pri:
62755        * platform/graphics/filters/FEMerge.h:
62756        (FEMerge):
62757        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
62758        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
62759        (FilterContextOpenCL):
62760        * platform/graphics/gpu/opencl/OpenCLFEMerge.cpp: Added.
62761        (WebCore):
62762        (WebCore::FilterContextOpenCL::compileFEMerge):
62763        (WebCore::FilterContextOpenCL::copy): This is a simple copy method.
62764        (WebCore::FilterContextOpenCL::applyFEMerge):
62765        (WebCore::FEMerge::platformApplyOpenCL):
62766
627672013-02-21  Keishi Hattori  <keishi@webkit.org>
62768
62769        Add event dispatch class for the new calendar picker
62770        https://bugs.webkit.org/show_bug.cgi?id=110131
62771
62772        Reviewed by Kent Tamura.
62773
62774        Adding event dispatcher class as part of the new calendar picker patch at Bug 109439.
62775
62776        No new tests. Code is not yet used.
62777
62778        * Resources/pagepopups/calendarPicker.js:
62779        (EventEmitter):
62780        (EventEmitter.prototype.on): Adds a callback for an event.
62781        (EventEmitter.prototype.hasListener): Returns true if more than one listeners exist for an event type.
62782        (EventEmitter.prototype.removeListener): Removes an event listener.
62783        (EventEmitter.prototype.dispatchEvent): Dispatches an event to all callbacks. Takes variable number of arguments.
62784
627852013-02-21  Ken Kania  <kkania@chromium.org>
62786
62787        Web Inspector: Add command for selecting files for file input element
62788        https://bugs.webkit.org/show_bug.cgi?id=109308
62789
62790        Reviewed by Pavel Feldman.
62791
62792        Test: inspector-protocol/dom/setFileInputFiles.html
62793
62794        * inspector/Inspector.json:
62795        * inspector/InspectorClient.h:
62796        (WebCore::InspectorClient::canSetFileInputFiles):
62797        (InspectorClient):
62798        * inspector/InspectorController.cpp:
62799        (WebCore::InspectorController::InspectorController):
62800        * inspector/InspectorDOMAgent.cpp:
62801        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
62802        (WebCore::InspectorDOMAgent::setFileInputFiles):
62803        (WebCore):
62804        * inspector/InspectorDOMAgent.h:
62805        (WebCore):
62806        (WebCore::InspectorDOMAgent::create):
62807        (InspectorDOMAgent):
62808
628092013-02-21  Pan Deng  <pan.deng@intel.com>
62810
62811        [Web Inspector]Add WebSocket networking events in Timeline panel.
62812        https://bugs.webkit.org/show_bug.cgi?id=105527.
62813
62814        Reviewed by Pavel Feldman.
62815
62816        This patch add four WebSocket networking events in Timeline panel. The Events
62817        are CreateWebSocket, SendWebSocketHandshakeRequest, ReceiveWebSocketHandShakeResponse
62818        and DestoryWebSocket. Thanks to Kitamura san's previous work.
62819
62820        Test: http/tests/inspector/websocket/timeline-websocket-event.html
62821
62822        * English.lproj/localizedStrings.js:
62823        * Modules/websockets/WebSocketChannel.cpp: Add protocol information
62824        (WebCore::WebSocketChannel::connect):
62825        * inspector/InspectorInstrumentation.cpp:
62826        (WebCore):
62827        (WebCore::InspectorInstrumentation::didCreateWebSocketImpl): Add Timeline agent instrumentation for websocket
62828        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl): Ditto
62829        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl): Ditto
62830        (WebCore::InspectorInstrumentation::didCloseWebSocketImpl): Ditto
62831        * inspector/InspectorInstrumentation.h:
62832        (InspectorInstrumentation):
62833        (WebCore::InspectorInstrumentation::didCreateWebSocket):
62834        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
62835        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
62836        (WebCore::InspectorInstrumentation::didCloseWebSocket):
62837        * inspector/InspectorTimelineAgent.cpp:
62838        (TimelineRecordType):
62839        (WebCore):
62840        (WebCore::InspectorTimelineAgent::didCreateWebSocket): Add Timeline record for websocket create
62841        (WebCore::InspectorTimelineAgent::addWebSocketRecord): Add general websocket record
62842        (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest): Add Timeline record for websocket handshake request send
62843        (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse): Add Timeline record for websocket handshake response receive
62844        (WebCore::InspectorTimelineAgent::didDestroyWebSocket): Add Timeline record for websocket destroy
62845        * inspector/InspectorTimelineAgent.h:
62846        (WebCore):
62847        (InspectorTimelineAgent):
62848        * inspector/TimelineRecordFactory.h:
62849        (TimelineRecordFactory):
62850        (WebCore::TimelineRecordFactory::createWebSocketCreateData):
62851        (WebCore::TimelineRecordFactory::createGenericWebSocketData):
62852        * inspector/front-end/TimelineModel.js: Add Timeline record type for websocket
62853        * inspector/front-end/TimelinePresentationModel.js:
62854        (WebInspector.TimelinePresentationModel._initRecordStyles):
62855        (WebInspector.TimelinePresentationModel.prototype.reset): Add slot to store WebSocket Create record
62856        (WebInspector.TimelinePresentationModel.Record):
62857        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview): Add PopupContent for websocket record, including url and protocol
62858
628592013-02-21  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
62860
62861        [Qt] Fix pkg-config dependencies of QtWebKit itself
62862
62863        Reviewed by Simon Hausmann.
62864
62865        Don't override QMAKE_PKGCONFIG_REQUIRES needlessly.
62866
62867        * WebCore.pri:
62868
628692013-02-21  Nils Barth  <nbarth@google.com>
62870
62871        File upload control doesn't apply CSS vertical padding or border to file name
62872        https://bugs.webkit.org/show_bug.cgi?id=109011
62873
62874        Reviewed by Hajime Morrita.
62875
62876        Test: fast/forms/file/file-vertical-padding-border.html
62877
62878        * rendering/RenderFileUploadControl.cpp:
62879            Add borderTop() and paddingTop() when computing position.
62880        (WebCore::RenderFileUploadControl::paintObject):
62881
628822013-02-20  Alexey Proskuryakov  <ap@apple.com>
62883
62884        Stop hardcoding knowledge about blob protocol in ResourceHandle
62885        https://bugs.webkit.org/show_bug.cgi?id=110382
62886
62887        Reviewed by Anders Carlsson.
62888
62889        * platform/network/BlobRegistry.h:
62890        * platform/network/chromium/BlobRegistryProxy.h:
62891        Removed loadResourceSynchronously(). Chromium did not even implement it, and
62892        cross-platform code doesn't need it any more either.
62893
62894        * platform/network/BlobRegistryImpl.cpp:
62895        (WebCore::loadResourceSynchronously): A function to load a blob synchronously,
62896        suitable for being in a ResourceHandle map.
62897        (WebCore::registerBlobResourceHandleConstructor): Register loadResourceSynchronously too.
62898        (WebCore::BlobRegistryImpl::createResourceHandle): Don't make policy decisions here,
62899        it's just a registry. Moved code for checking request method down to BlobResourceHandle.
62900
62901        * platform/network/BlobRegistryImpl.h: Removed BlobRegistryImpl::loadResourceSynchronously().
62902        A registry shouldn't load resources, and it already has enough accessors to implement
62903        this externally.
62904
62905        * platform/network/BlobResourceHandle.h:
62906        * platform/network/BlobResourceHandle.cpp:
62907        (WebCore::BlobResourceHandle::createAsync): Renamed from create(), to make it clear
62908        that it's not OK to call from synchronous loader. Moved method check here.
62909        (WebCore::BlobResourceHandle::loadResourceSynchronously): Moved method check here.
62910        We used to fall through to NSURLConnection based loader when method was not GET,
62911        which of course resulted in an error eventually, but was just wrong.
62912
62913        * platform/network/ResourceHandle.cpp:
62914        (WebCore::builtinResourceHandleSynchronousLoaderMap): Added a map for synchronous case.
62915        (WebCore::ResourceHandle::registerBuiltinSynchronousLoader): Ditto.
62916        (WebCore::ResourceHandle::loadResourceSynchronously): We no longer need to hardcode
62917        knowledge about blobRegistry and blobs here.
62918
62919        * platform/network/ResourceHandle.h: Added registerBuiltinSynchronousLoader().
62920
62921        * platform/network/chromium/ResourceHandle.h: Removed loadResourceSynchronously(),
62922        which was not implemented for Chromium.
62923
629242013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>
62925
62926        Web Inspector: TabbedEditorContainer and OpenResourceDialog should show uiSourceCode path and name instead of parsedURL
62927        https://bugs.webkit.org/show_bug.cgi?id=110334
62928
62929        Reviewed by Alexander Pavlov.
62930
62931        Introduced uiSourceCode.name() that returns a name based on uiSourceCode path.
62932        OpenResourceDialog now shows uiSourceCode workspace path as a subtitle.
62933        TabbedEditorContainer now shows uiSourceCode name in the tab header.
62934
62935        * inspector/front-end/FilteredItemSelectionDialog.js:
62936        (WebInspector.OpenResourceDialog.filterOutEmptyURLs):
62937        (WebInspector.OpenResourceDialog):
62938        (WebInspector.OpenResourceDialog.prototype.itemTitleAt):
62939        (WebInspector.OpenResourceDialog.prototype.itemSubtitleAt):
62940        (WebInspector.OpenResourceDialog.prototype.itemKeyAt):
62941        * inspector/front-end/NavigatorView.js:
62942        (WebInspector.NavigatorView.prototype._updateScriptTitle):
62943        * inspector/front-end/TabbedEditorContainer.js:
62944        (WebInspector.TabbedEditorContainer.prototype._titleForFile):
62945        * inspector/front-end/UISourceCode.js:
62946        (WebInspector.UISourceCode.prototype.name):
62947
629482013-02-20  Pavel Feldman  <pfeldman@chromium.org>
62949
62950        Web Inspector: debugger buttons are scrolled along with the sidebar content.
62951        https://bugs.webkit.org/show_bug.cgi?id=110434
62952
62953        Reviewed by Vsevolod Vlasov.
62954
62955        * inspector/front-end/scriptsPanel.css:
62956        (div.sidebar-pane-stack#scripts-debug-sidebar-contents, #scripts-sidebar-stack-pane):
62957
629582013-02-20  Wei James  <james.wei@intel.com>
62959
62960        ChannelMergerNode may need check for deferred updating of output channels
62961        https://bugs.webkit.org/show_bug.cgi?id=108863
62962
62963        There can in rare cases be a slight delay before the output bus is updated
62964        to the new number of channels because of tryLocks() in the context's
62965        updating system. So need to check the channel number before processing.
62966
62967        Reviewed by Chris Rogers.
62968
62969        * Modules/webaudio/ChannelMergerNode.cpp:
62970        (WebCore::ChannelMergerNode::ChannelMergerNode):
62971        (WebCore::ChannelMergerNode::process):
62972        (WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
62973        * Modules/webaudio/ChannelMergerNode.h:
62974        (ChannelMergerNode):
62975
629762013-02-20  Pan Deng  <pan.deng@intel.com>
62977
62978        [Web Inspector] Fix Sort by Initiator functionality of Network Panel.
62979        https://bugs.webkit.org/show_bug.cgi?id=109135.
62980
62981        Reviewed by Pavel Feldman.
62982
62983        A refactor for request initiator types, and the sort by Initiator functionality 
62984        was changed to sort by url and line number that displayed in initiator cell.
62985
62986        No new tests.
62987
62988        * inspector/front-end/NetworkPanel.js:
62989        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell): save initiator displayedURL and displayedLineNumber
62990        (WebInspector.NetworkDataGridNode.InitiatorComparator):
62991        * inspector/front-end/NetworkRequest.js:
62992
629932013-02-20  Eric Seidel  <eric@webkit.org>
62994
62995        WebVTTParser copies character buffer more often than necessary
62996        https://bugs.webkit.org/show_bug.cgi?id=103319
62997
62998        Reviewed by Eric Carlson.
62999
63000        Previously this codepath was creating a String just to parse the timestamp
63001        and then if the timestamp was valid, was creating a second string.
63002        I've fixed it to only create one string and use it in both places.
63003        I also fixed this codepath to use 8bit strings when possible, per the FIXME.
63004
63005        * html/track/WebVTTParser.cpp:
63006        (WebCore::WebVTTParser::constructTreeFromToken):
63007
630082013-02-20  Mike West  <mkwst@chromium.org>
63009
63010        Mouseup event does not fire on Scroll Bar
63011        https://bugs.webkit.org/show_bug.cgi?id=25811
63012
63013        Reviewed by Tony Chang.
63014
63015        Currently, clicking on a scrollbar fires a mousedown event, but not a
63016        mouseup event. This causes problems for code like jQuery UI's
63017        draggable[1], as the drag starts, but is never cancelled. Other use
63018        cases are noted in the slightly old Chromium bug[2].
63019
63020        If a mouseup event is received after a mousedown event on a scrollbar,
63021        this patch dispatches a mouseup event on the same node the mousedown
63022        event dispatched on. This matches Gecko's behavior.
63023
63024        [1]: http://bugs.jqueryui.com/ticket/6925
63025        [2]: http://crbug.com/14204
63026
63027        Tests: fast/scrolling/scrollbar-mousedown-mouseup.html
63028               fast/scrolling/scrollbar-mousedown-move-mouseup.html
63029
63030        * page/EventHandler.cpp:
63031        (WebCore::EventHandler::handleMouseReleaseEvent):
63032            If a mouseup event follow a mousedown event on a scrollbar,
63033            dispatch an event on the same node from which the mousedown event
63034            was triggered.
63035
630362013-02-20  Takashi Sakamoto  <tasak@google.com>
63037
63038        [Refactoring] Make m_state an on-stack object
63039        https://bugs.webkit.org/show_bug.cgi?id=109909
63040
63041        Reviewed by Antti Koivisto.
63042
63043        Mode m_state, an instance of StyleResolver::State, an on-stack object.
63044        The state is only required in styleForElement, styleForKeyframe and
63045        so on. No need to keep the state outside of those methods.
63046
63047        No new tests, because just refactoring.
63048
63049        * css/BasicShapeFunctions.cpp:
63050        (WebCore::convertToLength):
63051        (WebCore::basicShapeForValue):
63052        * css/BasicShapeFunctions.h:
63053        (WebCore):
63054        Replaced StyleResolver* with StyleResolver::State&.
63055        * css/CSSGradientValue.cpp:
63056        (WebCore::CSSGradientValue::gradientWithStylesResolved):
63057        * css/CSSGradientValue.h:
63058        (CSSGradientValue):
63059        Replaced StyleResolver* with StyleResolver::State&.
63060        * css/CSSToStyleMap.cpp:
63061        (WebCore::CSSToStyleMap::style):
63062        (WebCore::CSSToStyleMap::rootElementStyle):
63063        (WebCore::CSSToStyleMap::useSVGZoomRules):
63064        (WebCore::CSSToStyleMap::styleImage):
63065        * css/CSSToStyleMap.h:
63066        (WebCore):
63067        (WebCore::CSSToStyleMap::CSSToStyleMap):
63068        (CSSToStyleMap):
63069        Replaced StyleResolver* with StyleResolver::State&.
63070        * css/SVGCSSStyleSelector.cpp:
63071        (WebCore::StyleResolver::applySVGProperty):
63072        Replaced m_state with state which is given as an argument of
63073        applySVGProperty.
63074        * css/StyleBuilder.cpp:
63075        (WebCore::ApplyPropertyExpanding::applyInheritValue):
63076        (WebCore::ApplyPropertyExpanding::applyInitialValue):
63077        (WebCore::ApplyPropertyExpanding::applyValue):
63078        (WebCore::ApplyPropertyDefaultBase::applyInheritValue):
63079        (WebCore::ApplyPropertyDefaultBase::applyInitialValue):
63080        (WebCore::ApplyPropertyDefaultBase::applyValue):
63081        (WebCore::ApplyPropertyDefault::applyValue):
63082        (WebCore::ApplyPropertyNumber::applyValue):
63083        (WebCore::ApplyPropertyStyleImage::applyValue):
63084        (WebCore::ApplyPropertyAuto::applyInheritValue):
63085        (WebCore::ApplyPropertyAuto::applyInitialValue):
63086        (WebCore::ApplyPropertyAuto::applyValue):
63087        (WebCore::ApplyPropertyClip::convertToLength):
63088        (WebCore::ApplyPropertyClip::applyInheritValue):
63089        (WebCore::ApplyPropertyClip::applyInitialValue):
63090        (WebCore::ApplyPropertyClip::applyValue):
63091        (WebCore::ApplyPropertyColor::applyInheritValue):
63092        (WebCore::ApplyPropertyColor::applyInitialValue):
63093        (WebCore::ApplyPropertyColor::applyValue):
63094        (WebCore::ApplyPropertyColor::applyColorValue):
63095        (WebCore::ApplyPropertyDirection::applyValue):
63096        (WebCore::ApplyPropertyLength::applyValue):
63097        (WebCore::ApplyPropertyString::applyValue):
63098        (WebCore::ApplyPropertyBorderRadius::applyValue):
63099        (WebCore::ApplyPropertyFillLayer::applyInheritValue):
63100        (WebCore::ApplyPropertyFillLayer::applyInitialValue):
63101        (WebCore::ApplyPropertyFillLayer::applyValue):
63102        (WebCore::ApplyPropertyComputeLength::applyValue):
63103        (WebCore::ApplyPropertyFont::applyInheritValue):
63104        (WebCore::ApplyPropertyFont::applyInitialValue):
63105        (WebCore::ApplyPropertyFont::applyValue):
63106        (WebCore::ApplyPropertyFontSize::applyInheritValue):
63107        (WebCore::ApplyPropertyFontSize::applyInitialValue):
63108        (WebCore::ApplyPropertyFontSize::applyValue):
63109        (WebCore::ApplyPropertyFontWeight::applyValue):
63110        (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
63111        (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
63112        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
63113        (WebCore::ApplyPropertyBorderImage::applyValue):
63114        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
63115        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
63116        (WebCore::ApplyPropertyBorderImageModifier::applyValue):
63117        (WebCore::ApplyPropertyBorderImageSource::applyValue):
63118        (WebCore::ApplyPropertyCounter::emptyFunction):
63119        (WebCore::ApplyPropertyCounter::applyInheritValue):
63120        (WebCore::ApplyPropertyCounter::applyValue):
63121        (WebCore::ApplyPropertyCursor::applyInheritValue):
63122        (WebCore::ApplyPropertyCursor::applyInitialValue):
63123        (WebCore::ApplyPropertyCursor::applyValue):
63124        (WebCore::ApplyPropertyTextAlign::applyValue):
63125        (WebCore::ApplyPropertyTextDecoration::applyValue):
63126        (WebCore::ApplyPropertyLineHeight::applyValue):
63127        (WebCore::ApplyPropertyPageSize::applyInheritValue):
63128        (WebCore::ApplyPropertyPageSize::applyInitialValue):
63129        (WebCore::ApplyPropertyPageSize::applyValue):
63130        (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
63131        (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
63132        (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
63133        (WebCore::ApplyPropertyAnimation::map):
63134        (WebCore::ApplyPropertyAnimation::applyInheritValue):
63135        (WebCore::ApplyPropertyAnimation::applyInitialValue):
63136        (WebCore::ApplyPropertyAnimation::applyValue):
63137        (WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
63138        (WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
63139        (WebCore::ApplyPropertyOutlineStyle::applyValue):
63140        (WebCore::ApplyPropertyResize::applyValue):
63141        (WebCore::ApplyPropertyVerticalAlign::applyValue):
63142        (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
63143        (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
63144        (WebCore::ApplyPropertyAspectRatio::applyValue):
63145        (WebCore::ApplyPropertyZoom::resetEffectiveZoom):
63146        (WebCore::ApplyPropertyZoom::applyInheritValue):
63147        (WebCore::ApplyPropertyZoom::applyInitialValue):
63148        (WebCore::ApplyPropertyZoom::applyValue):
63149        (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
63150        (WebCore::ApplyPropertyDisplay::applyInheritValue):
63151        (WebCore::ApplyPropertyDisplay::applyInitialValue):
63152        (WebCore::ApplyPropertyDisplay::applyValue):
63153        (WebCore::ApplyPropertyClipPath::applyValue):
63154        (WebCore::ApplyPropertyExclusionShape::applyValue):
63155        (WebCore::ApplyPropertyImageResolution::applyInheritValue):
63156        (WebCore::ApplyPropertyImageResolution::applyInitialValue):
63157        (WebCore::ApplyPropertyImageResolution::applyValue):
63158        * css/StyleBuilder.h:
63159        (WebCore):
63160        (PropertyHandler):
63161        (WebCore::PropertyHandler::applyInheritValue):
63162        (WebCore::PropertyHandler::applyInitialValue):
63163        (WebCore::PropertyHandler::applyValue):
63164        Replaced StyleResolver* with StyleResolver::State&.
63165        * css/StyleResolver.cpp:
63166        (WebCore):
63167        (WebCore::StyleResolver::StyleResolver):
63168        Removed m_styleMap. Now m_styleMap is an on-stack object.
63169        (WebCore::StyleResolver::collectMatchingRules):
63170        (WebCore::StyleResolver::collectMatchingRulesForRegion):
63171        (WebCore::StyleResolver::sortAndTransferMatchedRules):
63172        (WebCore::StyleResolver::matchScopedAuthorRules):
63173        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
63174        (WebCore::StyleResolver::matchHostRules):
63175        (WebCore::StyleResolver::matchAuthorRules):
63176        (WebCore::StyleResolver::matchUserRules):
63177        (WebCore::StyleResolver::matchUARules):
63178        (WebCore::StyleResolver::collectMatchingRulesForList):
63179        (WebCore::StyleResolver::sortMatchedRules):
63180        (WebCore::StyleResolver::matchAllRules):
63181        (WebCore::StyleResolver::initElement):
63182        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
63183        (WebCore::StyleResolver::canShareStyleWithControl):
63184        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
63185        (WebCore::StyleResolver::canShareStyleWithElement):
63186        (WebCore::StyleResolver::findSiblingForStyleSharing):
63187        (WebCore::StyleResolver::locateSharedStyle):
63188        (WebCore::StyleResolver::styleForElement):
63189        (WebCore::StyleResolver::styleForKeyframe):
63190        (WebCore::StyleResolver::keyframeStylesForAnimation):
63191        (WebCore::StyleResolver::pseudoStyleForElement):
63192        (WebCore::StyleResolver::styleForPage):
63193        (WebCore::StyleResolver::defaultStyleForElement):
63194        (WebCore::StyleResolver::adjustRenderStyle):
63195        (WebCore::StyleResolver::updateFont):
63196        (WebCore::StyleResolver::pseudoStyleRulesForElement):
63197        (WebCore::StyleResolver::ruleMatches):
63198        (WebCore::StyleResolver::checkRegionSelector):
63199        (WebCore::StyleResolver::applyProperties):
63200        (WebCore::StyleResolver::applyMatchedProperties):
63201        (WebCore::StyleResolver::isLeftPage):
63202        (WebCore::StyleResolver::applyPropertyWithNullCheck):
63203        (WebCore::StyleResolver::applyFontPropertyToStyle):
63204        (WebCore::StyleResolver::resolveVariables):
63205        (WebCore::StyleResolver::applyProperty):
63206        (WebCore::StyleResolver::styleImage):
63207        (WebCore::StyleResolver::cachedOrPendingFromValue):
63208        (WebCore::StyleResolver::generatedOrPendingFromValue):
63209        (WebCore::StyleResolver::setOrPendingFromValue):
63210        (WebCore::StyleResolver::cursorOrPendingFromValue):
63211        (WebCore::StyleResolver::checkForTextSizeAdjust):
63212        (WebCore::StyleResolver::checkForZoomChange):
63213        (WebCore::StyleResolver::checkForGenericFamilyChange):
63214        (WebCore::StyleResolver::initializeFontStyle):
63215        (WebCore::StyleResolver::setFontSize):
63216        (WebCore::StyleResolver::colorFromPrimitiveValue):
63217        (WebCore::StyleResolver::loadPendingSVGDocuments):
63218        (WebCore::StyleResolver::styleShader):
63219        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
63220        (WebCore::StyleResolver::loadPendingShaders):
63221        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
63222        (WebCore::StyleResolver::parseCustomFilterParameter):
63223        (WebCore::StyleResolver::parseCustomFilterParameterList):
63224        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
63225        (WebCore::StyleResolver::createCustomFilterOperation):
63226        (WebCore::StyleResolver::createFilterOperations):
63227        (WebCore::StyleResolver::loadPendingImage):
63228        (WebCore::StyleResolver::loadPendingImages):
63229        (WebCore::StyleResolver::loadPendingResources):
63230        Just replaced m_state with state and added one more parameter to
63231        provide the state.
63232        (WebCore::StyleResolver::reportMemoryUsage):
63233        Since m_state was removed, removed a code for reporting m_state's
63234        memory usage.
63235        * css/StyleResolver.h:
63236        (StyleResolver):
63237        (WebCore::StyleResolver::isRightPage):
63238        (WebCore::StyleResolver::State::State):
63239        (WebCore::StyleResolver::State::document):
63240        Since State::m_element is not always available (sometimes, 0),
63241        added m_document to State and modified to return the m_document.
63242        (WebCore::StyleResolver::State::useSVGZoomRules):
63243        Moved StyleResolver to State.
63244        (State):
63245        * html/canvas/CanvasRenderingContext2D.cpp:
63246        (WebCore::CanvasRenderingContext2D::setFont):
63247        Moved the code, updating a style by using a given StylePropertySet,
63248        to StyleResolver.
63249
632502013-02-20  Ojan Vafai  <ojan@chromium.org>
63251
63252        AutoTableLayout applies min-width redundantly with RenderTable
63253        https://bugs.webkit.org/show_bug.cgi?id=110426
63254
63255        Reviewed by Emil A Eklund.
63256
63257        * rendering/AutoTableLayout.cpp:
63258        (WebCore::AutoTableLayout::computePreferredLogicalWidths):
63259        This code used to do something, but has since been superceded by
63260        code in RenderTable::computePreferredLogicalWidths.
63261
632622013-02-20  Dirk Schulze  <krit@webkit.org>
63263
63264        Enable CANVAS_PATH flag
63265        https://bugs.webkit.org/show_bug.cgi?id=108508
63266
63267        Uneviewed attempt to fix Qt minimal build.
63268
63269        * html/canvas/DOMPath.h:
63270        (WebCore::DOMPath::DOMPath):
63271
63272\2013-02-20  Mark Lam  <mark.lam@apple.com>
63273
63274        Rename DatabaseBackendAsync to DatabaseBackend.
63275        https://bugs.webkit.org/show_bug.cgi?id=110422.
63276
63277        Reviewed by Geoffrey Garen.
63278
63279        This is a purely cosmetic change to make the naming consistent with
63280        the front-end Database.
63281
63282        No new tests.
63283
63284        * CMakeLists.txt:
63285        * GNUmakefile.list.am:
63286        * Modules/webdatabase/ChangeVersionWrapper.cpp:
63287        (WebCore::ChangeVersionWrapper::performPreflight):
63288        (WebCore::ChangeVersionWrapper::performPostflight):
63289        * Modules/webdatabase/Database.cpp:
63290        (WebCore::Database::Database):
63291        (WebCore::Database::from):
63292        (WebCore::Database::backend):
63293        * Modules/webdatabase/Database.h:
63294        * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.cpp.
63295        (WebCore::DatabaseBackend::DatabaseBackend):
63296        (WebCore::DatabaseBackend::openAndVerifyVersion):
63297        (WebCore::DatabaseBackend::performOpenAndVerify):
63298        (WebCore::DatabaseBackend::close):
63299        (WebCore::DatabaseBackend::runTransaction):
63300        (WebCore::DatabaseBackend::inProgressTransactionCompleted):
63301        (WebCore::DatabaseBackend::scheduleTransaction):
63302        (WebCore::DatabaseBackend::scheduleTransactionStep):
63303        (WebCore::DatabaseBackend::transactionClient):
63304        (WebCore::DatabaseBackend::transactionCoordinator):
63305        * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.h.
63306        * Modules/webdatabase/DatabaseBackendAsync.cpp: Removed.
63307        * Modules/webdatabase/DatabaseBackendAsync.h: Removed.
63308        * Modules/webdatabase/DatabaseBackendBase.cpp:
63309        (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
63310        * Modules/webdatabase/DatabaseManager.cpp:
63311        * Modules/webdatabase/DatabaseServer.cpp:
63312        * Modules/webdatabase/DatabaseTask.cpp:
63313        (WebCore::DatabaseTask::DatabaseTask):
63314        (WebCore::DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask):
63315        (WebCore::DatabaseBackend::DatabaseOpenTask::doPerformTask):
63316        (WebCore::DatabaseBackend::DatabaseOpenTask::debugTaskName):
63317        (WebCore::DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask):
63318        (WebCore::DatabaseBackend::DatabaseCloseTask::doPerformTask):
63319        (WebCore::DatabaseBackend::DatabaseCloseTask::debugTaskName):
63320        (WebCore::DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask):
63321        (WebCore::DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask):
63322        (WebCore::DatabaseBackend::DatabaseTransactionTask::doPerformTask):
63323        (WebCore::DatabaseBackend::DatabaseTransactionTask::debugTaskName):
63324        (WebCore::DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask):
63325        (WebCore::DatabaseBackend::DatabaseTableNamesTask::doPerformTask):
63326        (WebCore::DatabaseBackend::DatabaseTableNamesTask::debugTaskName):
63327        * Modules/webdatabase/DatabaseTask.h:
63328        (WebCore::DatabaseTask::database):
63329        (DatabaseTask):
63330        (WebCore::DatabaseBackend::DatabaseOpenTask::create):
63331        (DatabaseBackend::DatabaseOpenTask):
63332        (WebCore::DatabaseBackend::DatabaseCloseTask::create):
63333        (DatabaseBackend::DatabaseCloseTask):
63334        (WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
63335        (DatabaseBackend::DatabaseTableNamesTask):
63336        * Modules/webdatabase/DatabaseThread.cpp:
63337        (WebCore::DatabaseThread::recordDatabaseOpen):
63338        (WebCore::DatabaseThread::recordDatabaseClosed):
63339        (WebCore::SameDatabasePredicate::SameDatabasePredicate):
63340        (SameDatabasePredicate):
63341        (WebCore::DatabaseThread::unscheduleDatabaseTasks):
63342        * Modules/webdatabase/DatabaseThread.h:
63343        * Modules/webdatabase/SQLStatementBackend.cpp:
63344        (WebCore::SQLStatementBackend::execute):
63345        (WebCore::SQLStatementBackend::setDatabaseDeletedError):
63346        (WebCore::SQLStatementBackend::setVersionMismatchedError):
63347        (WebCore::SQLStatementBackend::setFailureDueToQuota):
63348        * Modules/webdatabase/SQLStatementBackend.h:
63349        * Modules/webdatabase/SQLTransactionBackend.cpp:
63350        (WebCore::SQLTransactionBackend::create):
63351        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
63352        * Modules/webdatabase/SQLTransactionBackend.h:
63353        (WebCore::SQLTransactionBackend::database):
63354        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
63355        (WebCore::getDatabaseIdentifier):
63356        * Target.pri:
63357        * WebCore.gypi:
63358        * WebCore.vcproj/WebCore.vcproj:
63359        * WebCore.vcxproj/WebCore.vcxproj:
63360        * WebCore.vcxproj/WebCore.vcxproj.filters:
63361        * WebCore.xcodeproj/project.pbxproj:
63362
633632013-02-20  David Kilzer  <ddkilzer@apple.com>
63364
63365        Upstream SharedTimerIOS.mm
63366        <http://webkit.org/b/110161>
63367
63368        Reviewed by Benjamin Poulain.
63369
63370        * Configurations/WebCore.xcconfig:
63371        (EXCLUDED_SOURCE_FILE_NAMES_iphoneos): Add SharedTimerMac.mm.
63372        * WebCore.xcodeproj/project.pbxproj: Add SharedTimerIOS.mm.
63373        * platform/ios/SharedTimerIOS.mm: Add.
63374        (WebCore):
63375        (-[WebCoreResumeNotifierIOS init]):
63376        (-[WebCoreResumeNotifierIOS dealloc]):
63377        (-[WebCoreResumeNotifierIOS didWake]):
63378        (WebCore::setSharedTimerFiredFunction):
63379        (WebCore::timerFired):
63380        (WebCore::setSharedTimerFireInterval):
63381        (WebCore::stopSharedTimer):
63382
633832013-02-20  Ojan Vafai  <ojan@chromium.org>
63384
63385        Speculative fix for EFL and Windows compilers not realizing
63386        that all possible cases have a return value from this switch.
63387
63388        * rendering/RenderBox.cpp:
63389        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
63390
633912013-02-20  David Hyatt  <hyatt@apple.com>
63392
63393        [New Multicolumn] Fix overflow computation for column blocks.
63394        https://bugs.webkit.org/show_bug.cgi?id=110392.
63395
63396        Reviewed by Simon Fraser.
63397
63398        * rendering/RenderBox.cpp:
63399        (WebCore::RenderBox::addOverflowFromChild):
63400        Exclude in-flow RenderFlowThreads from overflow propagation.
63401
63402        * rendering/RenderMultiColumnSet.h:
63403        * rendering/RenderRegion.h:
63404        (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
63405         * rendering/RenderRegionSet.h:
63406        (RenderRegionSet):
63407        Override shouldHaveAutoLogicalHeight to always be false
63408        for region sets and for columns. Eventually we're going to try
63409        to leverage this code to do column balancing, and that's why
63410        RenderMultiColumnSet has a unique override.
63411
634122013-02-20  Brandon Jones  <bajones@google.com>
63413 
63414        Printing WebGL canvases in Chrome uses stale data after first print
63415        https://bugs.webkit.org/show_bug.cgi?id=110003
63416 
63417        Reviewed by Kenneth Russell.
63418 
63419        Unable to validate printed content automatically. No regression in existing WebGL tests.
63420 
63421         * html/canvas/WebGLRenderingContext.cpp:
63422         (WebCore):
63423         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
63424
634252013-02-20  Christian Biesinger  <cbiesinger@chromium.org>
63426
63427        Incorrect rendering for flex boxes with percentage height in a table cell
63428        https://bugs.webkit.org/show_bug.cgi?id=110389
63429
63430        Reviewed by Tony Chang.
63431
63432        Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
63433               css3/flexbox/flex-percentage-height-in-table.html
63434
63435        * rendering/RenderFlexibleBox.cpp:
63436        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
63437        Always update the logical height of the flex box, not just when it is
63438        auto. If necessary, the later updateLogicalHeight() call will adjust
63439        it.
63440
634412013-02-20  Philip Rogers  <pdr@google.com>
63442
63443        Account for transform in SVG background images
63444        https://bugs.webkit.org/show_bug.cgi?id=110295
63445
63446        Reviewed by Dirk Schulze.
63447
63448        Tiled SVG background images are rendererd by drawing the SVG content into a temporary
63449        image buffer, then stamping out a tiled pattern using this buffer. Previously the
63450        image buffer did not account for CSS transforms which could result in pixelated backgrounds.
63451
63452        This patch takes advantage of the context's transform when sizing the temporary tiling
63453        image buffer. Because the context's transform also includes scale, this patch simplifies
63454        the SVG image code to no longer track scale.
63455
63456        Test: svg/as-background-image/svg-transformed-background.html
63457
63458        * loader/cache/CachedImage.cpp:
63459        (WebCore):
63460        (WebCore::CachedImage::imageForRenderer):
63461
63462            CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
63463            refactored into just "imageForRenderer". Previously there were two versions of
63464            lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.
63465
63466        * loader/cache/CachedImage.h:
63467        * svg/graphics/SVGImage.cpp:
63468        (WebCore::SVGImage::drawPatternForContainer):
63469
63470            To create the temporary tiling image buffer, the final size in screen coordinates is
63471            needed. This is now computed using the current context's CTM. Because the CTM
63472            already includes the page scale, all page scale tracking can be removed.
63473
63474            The adjustments to srcRect and the pattern transform are the same as before, just
63475            refactored to use imageBufferScale which has x and y components.
63476
63477        * svg/graphics/SVGImage.h:
63478        * svg/graphics/SVGImageCache.cpp:
63479        (WebCore::SVGImageCache::setContainerSizeForRenderer):
63480
63481            Because the page scale needed to be cached between calls to
63482            setContainerSizeForRenderer, this function was written to modify an existing cache
63483            entry. Because the page scale no longer needs to be tracked, this code has been
63484            simplified to re-write any existing cache entry.
63485
63486        (WebCore::SVGImageCache::imageSizeForRenderer):
63487
63488            This function has been simplified by calling SVGImageForContainer::size() instead
63489            of computing this value manually. The value returned remains the same, containing
63490            the container size multiplied by zoom.
63491
63492        (WebCore::SVGImageCache::imageForRenderer):
63493
63494            Previously we set the page scale on every call to imageForRenderer. Because page scale
63495            no longer needs to be tracked, this function has been simplified to simply return
63496            the cached SVGImageForContainer.
63497
63498        * svg/graphics/SVGImageForContainer.cpp:
63499        (WebCore::SVGImageForContainer::drawPattern):
63500        * svg/graphics/SVGImageForContainer.h:
63501        (WebCore::SVGImageForContainer::create):
63502        (WebCore::SVGImageForContainer::SVGImageForContainer):
63503        (SVGImageForContainer):
63504
635052013-02-20  Jer Noble  <jer.noble@apple.com>
63506
63507        Crash in com.apple.WebKit2.WebProcessService at com.apple.avfoundation: __73-[AVAssetResourceLoader _attemptDelegateHandlingOfRequestWithDictionary:]_block_invoke + 51
63508        https://bugs.webkit.org/show_bug.cgi?id=110385
63509
63510        Reviewed by Eric Carlson.
63511
63512        Ensure AVFoundation does not attempt to message a dead object by explicitly disassociating
63513        the AVAssetResourceLoaderDelegate on MediaPlayerPrivateAVFoundationObjC destruction.
63514
63515        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
63516        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
63517
635182013-02-20  Ojan Vafai  <ojan@chromium.org>
63519
63520        Positioned, replaced elements with intrinsic width keywords compute the wrong width
63521        https://bugs.webkit.org/show_bug.cgi?id=110393
63522
63523        Reviewed by Emil A Eklund.
63524
63525        Test: fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html
63526
63527        * rendering/RenderBox.cpp:
63528        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
63529        Add the intrinsic size keywords to the switch. Confusingly, we have to
63530        subtract the border and padding since the callers expect the content width.
63531
63532        * rendering/RenderReplaced.cpp:
63533        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
63534        Don't do the intrinsic ratio calculation if the width is an
63535        intrinsic width keyword, as per, http://dev.w3.org/csswg/css3-sizing/#replaced-intrinsic.
63536
63537        (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
63538        (WebCore::RenderReplaced::computePreferredLogicalWidths):
63539        The old code was trying to apply the intrinsic ratio calculation to
63540        the intrinsic width, which is wrong per spec.
63541
635422013-02-20  Alec Flett  <alecflett@chromium.org>
63543
63544        LevelDB: Remove excess vector copy
63545        https://bugs.webkit.org/show_bug.cgi?id=110399
63546
63547        Reviewed by Tony Chang.
63548
63549        Remove an extra copy introduced by the makeVector function.
63550
63551        No new tests, this is covered by existing tests.
63552
63553        * platform/leveldb/LevelDBDatabase.cpp:
63554        (WebCore::LevelDBDatabase::safeGet):
63555
635562013-02-20  Simon Fraser  <simon.fraser@apple.com>
63557
63558        Zoomed, slow-scrolling pages keep recreating tiles when scrolled
63559        https://bugs.webkit.org/show_bug.cgi?id=110379
63560
63561        Reviewed by Tim Horton.
63562
63563        On slow-scrolling pages the TileCache makes the tiles the size of
63564        the visible rect to minimize per-tile painting overhead. If the size
63565        of that rect changes, the TileCache re-creates all the tiles.
63566        
63567        This was a problem whem zoomed, because mapping the visible rect
63568        through the scale transform and then rounding it would cause the
63569        size to keep changing, causing lots of tile re-creation.
63570        
63571        Fix by carrying the visibleRect around as a FloatRect, and doing
63572        the same for the exposedRect. We then only expand to integers
63573        when computing the tile size. This also fixes an issue where we could
63574        sometimes make extra tiles because of fractional bits of tiles at the edges,
63575        as shown by the test result change.
63576
63577        * platform/graphics/TiledBacking.h:
63578        * platform/graphics/ca/GraphicsLayerCA.cpp:
63579        (WebCore::GraphicsLayerCA::updateVisibleRect):
63580        * platform/graphics/ca/mac/TileCache.h:
63581        * platform/graphics/ca/mac/TileCache.mm:
63582        (WebCore::TileCache::setVisibleRect):
63583        (WebCore::TileCache::setExposedRect):
63584        (WebCore::TileCache::prepopulateRect):
63585        (WebCore::TileCache::computeTileCoverageRect):
63586        (WebCore::TileCache::tileSizeForCoverageRect):
63587        (WebCore::TileCache::blankPixelCountForTiles):
63588        (WebCore::TileCache::revalidateTiles):
63589        (WebCore::TileCache::ensureTilesForRect):
63590        * platform/graphics/ca/mac/WebTileLayer.mm:
63591        (-[WebTileLayer logFilledFreshTile]):
63592
635932013-02-20  Julien Chaffraix  <jchaffraix@webkit.org>
63594
63595        [CSS Grid Layout] Implement the auto-placement algorithm without grid growth
63596        https://bugs.webkit.org/show_bug.cgi?id=110277
63597
63598        Reviewed by Tony Chang.
63599
63600        Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
63601               fast/css-grid-layout/grid-item-removal-auto-placement-update.html
63602               fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)
63603
63604        This change implements most of the auto-placement algorithm per
63605        http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo
63606
63607        To limit the size of the code change, it doesn't implement growing the grid if there
63608        are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
63609        one, like what grid-auto-flow: none would do (which explains the test failures).
63610
63611        * rendering/RenderGrid.cpp:
63612        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
63613        Added this function to return the GridCoordinate of the next empty grid area along
63614        the iterator's direction.
63615
63616        (WebCore::RenderGrid::placeItemsOnGrid):
63617        Split this function into the different steps below. For efficiency, collect the auto vs specified
63618        major axis grid items in different Vectors.
63619
63620        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
63621        Added this function that implements part of step 1 of the algorithm (the grid items without
63622        auto row / column are already handled in placeItemsOnGrid).
63623
63624        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
63625        Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.
63626
63627        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
63628        Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
63629        it either walks along the major axis once or several times until it finds an empty grid area
63630        for the grid item.
63631
63632        (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
63633        (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
63634        (WebCore::RenderGrid::autoPlacementMajorAxisDirection):
63635        (WebCore::RenderGrid::autoPlacementMinorAxisDirection):
63636        Added these helper functions that return minor / major axis positions & direction.
63637
63638        * rendering/RenderGrid.h:
63639        Added the previous new RenderGrid functions.
63640
636412013-02-20  Vincent Scheib  <scheib@chromium.org>
63642
63643        Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
63644        https://bugs.webkit.org/show_bug.cgi?id=110374
63645
63646        Reviewed by Adam Barth.
63647
63648        The fullscreen API also includes a new HTML attribute for iframes
63649        which permits its use. That attribute, 'allowfullcreen' is now
63650        included in the HTML specification [1] and is stable enough
63651        to remove the webkit prefix.
63652
63653        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen
63654
63655        Tests: fullscreen/full-screen-enabled-prefixed.html
63656               fullscreen/full-screen-iframe-allowed-prefixed.html
63657               fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html
63658
63659        * dom/Document.cpp:
63660        (WebCore::isAttributeOnAllOwners):
63661        (WebCore::Document::fullScreenIsAllowedForElement):
63662        (WebCore::Document::webkitFullscreenEnabled):
63663        * html/HTMLAttributeNames.in:
63664
636652013-02-20  Roger Fong  <roger_fong@apple.com>
63666
63667        Unreviewed. Remove references to SAFARI_THEME from Windows Solution.
63668        <rdar://problem/13258710>
63669
63670        * config.h:
63671        * page/Settings.cpp:
63672        * page/Settings.h:
63673        * platform/win/ScrollbarThemeWin.cpp:
63674        * rendering/RenderThemeWin.cpp:
63675
636762013-02-20  Roger Fong  <roger_fong@apple.com>
63677
63678        Get VS2010 Solution B&I ready.
63679        <rdar://problem/1322988>
63680
63681        Rubberstamped by Timothy Horton.
63682
63683        Add Production configuration. 
63684        Add a WebCore submit solution with a DebugSuffix configuration. 
63685        Modify WebCore.make as necessary.
63686        
63687        * DerivedSources.make:
63688        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
63689        * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
63690        * WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Added.
63691        * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props:
63692        * WebCore.vcxproj/WebCore.make: Added.
63693        * WebCore.vcxproj/WebCore.sln: Removed.
63694        * WebCore.vcxproj/WebCore.submit.sln: Copied from Source/WebCore/WebCore.vcxproj/WebCore.sln.
63695        * WebCore.vcxproj/WebCore.vcxproj:
63696        * WebCore.vcxproj/WebCoreGenerated.vcxproj:
63697        * WebCore.vcxproj/WebCoreGeneratedProduction.props: Added.
63698        * WebCore.vcxproj/WebCoreGeneratedRelease.props:
63699        * WebCore.vcxproj/WebCoreProduction.props: Added.
63700        * WebCore.vcxproj/WebCoreRelease.props:
63701        * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
63702
637032013-02-20  Adam Klein  <adamk@chromium.org>
63704
63705        [v8] Fix an erroneous WrapperGrouper call in preparation for refactoring
63706        https://bugs.webkit.org/show_bug.cgi?id=110396
63707
63708        Reviewed by Kentaro Hara.
63709
63710        This is in preparation for a refactor to expose a simplified
63711        WrapperGrouper interface to V8 wrapper classes enabling them to
63712        specify multiple roots per wrapper object. 
63713
63714        * bindings/v8/V8GCController.cpp: Since MutationObservers are not Nodes, the correct call here is addObjectToGroup, as it is for all other non-Node wrappers.
63715
637162013-02-20  Levi Weintraub  <leviw@chromium.org>
63717
63718        Line layout (but not pref widths) double-counts word spacing when between inlines
63719        https://bugs.webkit.org/show_bug.cgi?id=110381
63720
63721        Reviewed by Emil A Eklund.
63722
63723        When a word break with a space occurs between inlines and word-spacing is non-zero,
63724        line layout incorrectly committed the word-spacing value to the line twice, causing
63725        wrapping in inline-blocks. To fix this, clear the word-spacing value when between
63726        words and ignoring spaces, as we will already have added the word-spacing to the
63727        line.
63728
63729        Test: fast/text/word-space-between-inlines.html
63730
63731        * rendering/RenderBlockLineLayout.cpp:
63732        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
63733
637342013-02-20  Nate Chapin  <japhet@chromium.org>
63735
63736        Crash in WebCore::FrameLoader::checkCompleted()
63737        https://bugs.webkit.org/show_bug.cgi?id=110237
63738
63739        Reviewed by Abhishek Arya.
63740
63741        Test: http/tests/misc/delete-frame-during-readystatechange.html
63742
63743        * loader/FrameLoader.cpp:
63744        (WebCore::FrameLoader::checkCompleted): Protect before setReadyState() is called.
63745
637462013-02-20  David Grogan  <dgrogan@chromium.org>
63747
63748        IndexedDB: Limit LevelDB's max open files
63749        https://bugs.webkit.org/show_bug.cgi?id=109993
63750
63751        Reviewed by Tony Chang.
63752
63753        LevelDB keeps up to 1000 (by default) data files open at a time to
63754        avoid having to open() them. This has caused chromium to hit the
63755        process-wide open file limit. This patch changes max_open_files to 20,
63756        as that's the minimum permitted by LevelDB and we have no reason to
63757        think that performance will suffer because of the extra open calls.
63758
63759        No new tests - a chromium browser test that tracks the open LevelDB
63760        files is plausible but is blocked on http://crbug.com/177249/.
63761
63762        * platform/leveldb/LevelDBDatabase.cpp:
63763        (WebCore::openDB):
63764
637652013-02-20  David Hyatt  <hyatt@apple.com>
63766
63767        [New Multicolumn] Resize RenderMultiColumnSets around their columns.
63768        https://bugs.webkit.org/show_bug.cgi?id=110378.
63769
63770        Reviewed by Dirk Schulze.
63771
63772        Test: fast/multicol/newmulticol/positioned-with-constrained-height.html.
63773
63774        * rendering/RenderBlock.h:
63775        (RenderBlock):
63776        Make computeOverflow public so that RenderMultiColumnFlowThread can
63777        access it.
63778
63779        * rendering/RenderMultiColumnFlowThread.cpp:
63780        (WebCore::RenderMultiColumnFlowThread::layout):
63781        Subclass layout to recompute the overflow for RenderMultiColumnBlock
63782        after the flow thread has finished layout. This way it can account
63783        for changes in RenderMultiColumnSets without having to do a second
63784        layout pass.
63785
63786        * rendering/RenderMultiColumnFlowThread.h:
63787        (RenderMultiColumnFlowThread):
63788        Override layout().
63789
63790        * rendering/RenderMultiColumnSet.cpp:
63791        (WebCore::RenderMultiColumnSet::columnCount):
63792        Clean up a comment that referred to portions as region rects still.
63793
63794        (WebCore::RenderMultiColumnSet::setFlowThreadPortionRect):
63795        * rendering/RenderMultiColumnSet.h:
63796        * rendering/RenderRegion.h:
63797        (WebCore::RenderRegion::setFlowThreadPortionRect):
63798        Make setFlowThreadPortionRect virtual and actually mutate the size
63799        and position of RenderMultiColumnSets so that they enclose their
63800        column rects.
63801
638022013-02-20  Dirk Schulze  <krit@webkit.org>
63803
63804        Enable CANVAS_PATH flag
63805        https://bugs.webkit.org/show_bug.cgi?id=108508
63806
63807        Reviewed by Simon Fraser.
63808
63809        Enable CANVAS_PATH flag on trunk.
63810
63811        Existing tests cover the feature.
63812
63813        * Configurations/FeatureDefines.xcconfig:
63814
638152013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
63816
63817        Unreviewed, rolling out r143441.
63818        http://trac.webkit.org/changeset/143441
63819        https://bugs.webkit.org/show_bug.cgi?id=110376
63820
63821        May be causing chromium content_browsertests failures.
63822        (Requested by vollick on #webkit).
63823
63824        * bindings/v8/ScriptValue.cpp:
63825        (WebCore::ScriptValue::serialize):
63826        (WebCore::ScriptValue::getString):
63827        (WebCore::ScriptValue::toString):
63828        (WebCore::ScriptValue::toInspectorValue):
63829        * bindings/v8/ScriptValue.h:
63830        (WebCore::ScriptValue::ScriptValue):
63831        (WebCore::ScriptValue::operator=):
63832        (WebCore::ScriptValue::operator==):
63833        (WebCore::ScriptValue::isEqual):
63834        (WebCore::ScriptValue::isFunction):
63835        (WebCore::ScriptValue::isNull):
63836        (WebCore::ScriptValue::isUndefined):
63837        (WebCore::ScriptValue::isObject):
63838        (WebCore::ScriptValue::hasNoValue):
63839        (WebCore::ScriptValue::clear):
63840        (WebCore::ScriptValue::v8Value):
63841        (ScriptValue):
63842        * bindings/v8/SharedPersistent.h:
63843        (WebCore):
63844        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
63845        (WebCore::InjectedScriptHost::scriptValueAsNode):
63846        * bindings/v8/custom/V8MessageEventCustom.cpp:
63847        (WebCore::V8MessageEvent::dataAttrGetterCustom):
63848
638492013-02-15  Dirk Schulze  <krit@webkit.org>
63850
63851        [Chromium] Add runtime flag for CanvasPath
63852        https://bugs.webkit.org/show_bug.cgi?id=109997
63853
63854        Reviewed by Adam Barth.
63855
63856        Add runtime flag for Chromium.
63857
63858        * bindings/generic/RuntimeEnabledFeatures.cpp:
63859        (WebCore):
63860        * bindings/generic/RuntimeEnabledFeatures.h:
63861        (RuntimeEnabledFeatures):
63862        (WebCore::RuntimeEnabledFeatures::setCanvasPathEnabled):
63863        (WebCore::RuntimeEnabledFeatures::canvasPathEnabled):
63864        * html/canvas/DOMPath.idl:
63865        * page/DOMWindow.idl:
63866
638672013-02-20  Laszlo Gombos  <l.gombos@samsung.com>
63868
63869        Remove unnecessary includes for Platform.h from headers
63870        https://bugs.webkit.org/show_bug.cgi?id=110300
63871
63872        Reviewed by Alexey Proskuryakov.
63873
63874        wtf/Platform.h only need to be included in a few places directly
63875        as it is included in config.h. Remove the unnecessay duplicate as
63876        it can be confusing.
63877
63878        No new tests, no change in functionality.
63879
63880        * platform/SecureTextInput.h:
63881        * platform/audio/Biquad.h:
63882        * platform/audio/FFTFrame.h:
63883        * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
63884        * platform/graphics/cpu/arm/filters/NEONHelpers.h:
63885        * platform/graphics/filters/FELighting.h:
63886
638872013-02-20  Florin Malita  <fmalita@chromium.org>
63888
63889        [SVG] Update of element referenced by multiple 'use' nodes is absurdly slow
63890        https://bugs.webkit.org/show_bug.cgi?id=97905
63891
63892        Reviewed by Dirk Schulze.
63893
63894        Rebuilding the shadow and instance trees of dependent use nodes recursively can be
63895        extremely inefficient with non-trivial dependency graphs (the trees are not constructed
63896        in topological order).
63897
63898        To avoid redundant buildShadowAndInstanceTree() invokations, separate the invalidation
63899        phase from the actual tree (re)building phase, and only descend into the dependency DAG
63900        during the invalidation phase (recursion also stops at nodes that have been previously
63901        invalidated).
63902
63903        No new tests: functional coverage provided by existing tests, perfomance tracked by
63904        PerformanceTests/SVG/SvgNestedUse.html.
63905
63906        * svg/SVGUseElement.cpp:
63907        (WebCore::SVGUseElement::buildPendingResource):
63908        (WebCore::SVGUseElement::buildShadowAndInstanceTree):
63909        (WebCore::SVGUseElement::invalidateShadowTree):
63910        (WebCore):
63911        (WebCore::SVGUseElement::invalidateDependentShadowTrees):
63912        * svg/SVGUseElement.h:
63913        (SVGUseElement):
63914
639152013-02-20  Tim Horton  <timothy_horton@apple.com>
63916
63917        RenderLayerBacking should initialize TiledBacking's isInWindow state with Page's isInWindow, not isOnscreen
63918        https://bugs.webkit.org/show_bug.cgi?id=110370
63919        <rdar://problem/13254006>
63920
63921        Reviewed by Simon Fraser.
63922
63923        * rendering/RenderLayerBacking.cpp:
63924        (WebCore::RenderLayerBacking::RenderLayerBacking):
63925
639262013-02-20  Mark Lam  <mark.lam@apple.com>
63927
63928        Cleanup the SQLTransaction and SQLTransactionBackend state dispatch
63929        to only honor a state transition request if the associated database
63930        hasn't been interrupted.
63931        https://bugs.webkit.org/show_bug.cgi?id=110247.
63932
63933        Reviewed by Antti Koivisto.
63934
63935        No new tests.
63936
63937        * Modules/webdatabase/SQLTransaction.cpp:
63938        (WebCore::SQLTransaction::performPendingCallback):
63939        (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
63940        * Modules/webdatabase/SQLTransaction.h:
63941        * Modules/webdatabase/SQLTransactionBackend.cpp:
63942        (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
63943        (WebCore::SQLTransactionBackend::performNextStep):
63944        * Modules/webdatabase/SQLTransactionBackend.h:
63945
639462013-02-20  Alexey Proskuryakov  <ap@apple.com>
63947
63948        ResourceHandle::loadResourceSynchronously should have blob support in cross-platform code
63949        https://bugs.webkit.org/show_bug.cgi?id=110364
63950
63951        Reviewed by Anders Carlsson.
63952
63953        * platform/network/ResourceHandle.h:
63954        * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::loadResourceSynchronously):
63955        Added a cross-platform version to keep blob-related logic in one place.
63956
63957        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
63958        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63959        * platform/network/cf/ResourceHandleCFNet.cpp:
63960        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63961        * platform/network/curl/ResourceHandleCurl.cpp:
63962        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63963        * platform/network/mac/ResourceHandleMac.mm:
63964        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63965        * platform/network/qt/ResourceHandleQt.cpp:
63966        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63967        * platform/network/soup/ResourceHandleSoup.cpp:
63968        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63969        * platform/network/win/ResourceHandleWin.cpp:
63970        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
63971        Renamed loadResourceSynchronously to platformLoadResourceSynchronously,
63972        removed blob handling from platforms that had it.
63973
639742013-02-20  David Hyatt  <hyatt@apple.com>
63975
63976        [New Multicolumn] RenderMultiColumnFlowThreads should establish a BFC.
63977        https://bugs.webkit.org/show_bug.cgi?id=110366.
63978
63979        Reviewed by Antti Koivisto.
63980
63981        RenderFlowThreads should establish a block formatting context always.
63982        CSS Regions have named flow thread that they absolutely position, and so
63983        they got this for free by being absolutely positioned.
63984        
63985        RenderMultiColumnFlowThreads, however, are relative positioned, so we need
63986        to just add an isRenderFlowThread case specifically so we're not dependent
63987        on the positioning scheme used for the flow thread to establish the BFC.
63988        
63989        Test: fast/multicol/newmulticol/float-*.html.
63990
63991        * rendering/RenderBlock.cpp:
63992        (WebCore::RenderBlock::MarginInfo::MarginInfo):
63993
639942013-02-20  David Hyatt  <hyatt@apple.com>
63995
63996        [New Multicolumn] Column gap is computed incorrectly.
63997        https://bugs.webkit.org/show_bug.cgi?id=110360.
63998
63999        Reviewed by Simon Fraser.
64000
64001        Test: fast/multicol/newmulticol/layers-split-across-columns.html.
64002
64003        * rendering/RenderMultiColumnSet.cpp:
64004        (WebCore::RenderMultiColumnSet::columnGap):
64005        Make sure we ask the RenderMultiColumnBlock for the gap rather than our
64006        own style, since we don't actually have the gap value in our style.
64007        
64008        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
64009        * rendering/RenderMultiColumnSet.h:
64010        Fix another spot where the columnGap was an int. It should be a LayoutUnit.
64011
640122013-02-20  Robert Hogan  <robert@webkit.org>
64013
64014        No caret on empty contenteditable element with negative text-indent
64015        https://bugs.webkit.org/show_bug.cgi?id=108633
64016
64017        Reviewed by Ryosuke Niwa.
64018
64019        Test: fast/repaint/paint-caret-in-div-with-negative-indent.html
64020
64021        When an editable element has a negative text indent we won't paint the caret when the
64022        element is empty because it falls outside the element's border box. To ensure the caret is painted,
64023        account for any negative indent with our overflow.
64024
64025        * rendering/RenderBlock.cpp:
64026        (WebCore::RenderBlock::computeOverflow):
64027
640282013-02-20  Ojan Vafai  <ojan@chromium.org>
64029
64030        Remove stretchesToMinIntrinsicLogicalWidth
64031        https://bugs.webkit.org/show_bug.cgi?id=110266
64032
64033        Reviewed by Emil Eklund.
64034
64035        This was only used by fieldsets and now we have a way to express this
64036        concept in CSS.
64037
64038        * WebCore.order:
64039        * css/html.css:
64040        Make fieldsets min-width: -webkit-min-content.
64041
64042        * rendering/RenderBox.cpp:
64043        (WebCore::RenderBox::computeLogicalWidthInRegion):
64044        (WebCore::RenderBox::computePositionedLogicalWidth):
64045        * rendering/RenderBox.h:
64046        Remove all calls to stretchesToMinIntrinsicLogicalWidth.
64047
640482013-02-20  Ojan Vafai  <ojan@chromium.org>
64049
64050        Make intrinsic width values work for positioned elements
64051        https://bugs.webkit.org/show_bug.cgi?id=110264
64052
64053        Reviewed by Tony Chang.
64054
64055        Tests: fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html
64056               fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html
64057
64058        * rendering/RenderBox.cpp:
64059        (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
64060        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
64061        Move the computation of intrinsic widths out into a helper function so that
64062        computePositionedLogicalWidthUsing can use it. As per the current spec,
64063        fill-available measures shrink to avoid floats. http://dev.w3.org/csswg/css3-sizing/
64064
64065        (WebCore::RenderBox::computePositionedLogicalWidth):
64066        Compute intrinsic min-widths in addition to non-zero ones. Intrinsic widths
64067        return true for isZero. width and max-width don't need modifying since they already
64068        call computePositionedLogicalWidthUsing for intrinsic widths.
64069
64070        (WebCore::RenderBox::computePositionedLogicalWidthUsing):
64071        Compute intrinsic widths and use a Fixed length for the rest of the positioned width
64072        computation. Doesn't include bordersPlusPadding because the caller, expected the content
64073        width and adds in the bordersPlusPadding later.
64074
64075        * rendering/RenderBox.h:
64076
640772013-02-20  Robert Hogan  <robert@webkit.org>
64078
64079        input element with placeholder text and width set to 100% on focus causes overflow even after losing focus
64080        https://bugs.webkit.org/show_bug.cgi?id=109020
64081
64082        Reviewed by David Hyatt.
64083
64084        Tests: fast/forms/input-placeholder-layout-view.html
64085               fast/forms/textarea-placeholder-layout-view.html
64086
64087        Placeholder elements don't affect layout so shouldn't contribute overflow either.
64088
64089        * rendering/RenderTextControlSingleLine.cpp:
64090        (WebCore::RenderTextControlSingleLine::layout):
64091
640922013-02-20  Mark Lam  <mark.lam@apple.com>
64093
64094        Rename DatabaseBackend to DatabaseBackendBase.
64095        https://bugs.webkit.org/show_bug.cgi?id=110303.
64096
64097        Rubber stamped by Alexey Proskuryakov.
64098
64099        This is a purely cosmetic change to make the naming consistent with
64100        the front-end DatabaseBase.
64101
64102        No new tests.
64103
64104        * CMakeLists.txt:
64105        * GNUmakefile.list.am:
64106        * Modules/webdatabase/AbstractDatabaseServer.h:
64107        * Modules/webdatabase/Database.cpp:
64108        (WebCore::Database::create):
64109        (WebCore::Database::version):
64110        * Modules/webdatabase/Database.h:
64111        (Database):
64112        * Modules/webdatabase/DatabaseBackend.cpp: Removed.
64113        * Modules/webdatabase/DatabaseBackend.h: Removed.
64114        * Modules/webdatabase/DatabaseBackendAsync.cpp:
64115        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
64116        (WebCore::DatabaseBackendAsync::performOpenAndVerify):
64117        * Modules/webdatabase/DatabaseBackendAsync.h:
64118        * Modules/webdatabase/DatabaseBackendBase.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.cpp.
64119        (WebCore::DatabaseBackendBase::databaseInfoTableName):
64120        (WebCore::DatabaseBackendBase::DatabaseBackendBase):
64121        (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
64122        (WebCore::DatabaseBackendBase::closeDatabase):
64123        (WebCore::DatabaseBackendBase::version):
64124        (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
64125        (DoneCreatingDatabaseOnExitCaller):
64126        (WebCore::DatabaseBackendBase::performOpenAndVerify):
64127        (WebCore::DatabaseBackendBase::securityOrigin):
64128        (WebCore::DatabaseBackendBase::stringIdentifier):
64129        (WebCore::DatabaseBackendBase::displayName):
64130        (WebCore::DatabaseBackendBase::estimatedSize):
64131        (WebCore::DatabaseBackendBase::fileName):
64132        (WebCore::DatabaseBackendBase::details):
64133        (WebCore::DatabaseBackendBase::getVersionFromDatabase):
64134        (WebCore::DatabaseBackendBase::setVersionInDatabase):
64135        (WebCore::DatabaseBackendBase::setExpectedVersion):
64136        (WebCore::DatabaseBackendBase::getCachedVersion):
64137        (WebCore::DatabaseBackendBase::setCachedVersion):
64138        (WebCore::DatabaseBackendBase::getActualVersionForTransaction):
64139        (WebCore::DatabaseBackendBase::disableAuthorizer):
64140        (WebCore::DatabaseBackendBase::enableAuthorizer):
64141        (WebCore::DatabaseBackendBase::setAuthorizerReadOnly):
64142        (WebCore::DatabaseBackendBase::setAuthorizerPermissions):
64143        (WebCore::DatabaseBackendBase::lastActionChangedDatabase):
64144        (WebCore::DatabaseBackendBase::lastActionWasInsert):
64145        (WebCore::DatabaseBackendBase::resetDeletes):
64146        (WebCore::DatabaseBackendBase::hadDeletes):
64147        (WebCore::DatabaseBackendBase::resetAuthorizer):
64148        (WebCore::DatabaseBackendBase::maximumSize):
64149        (WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
64150        (WebCore::DatabaseBackendBase::interrupt):
64151        (WebCore::DatabaseBackendBase::isInterrupted):
64152        (WebCore::DatabaseBackendBase::reportOpenDatabaseResult):
64153        (WebCore::DatabaseBackendBase::reportChangeVersionResult):
64154        (WebCore::DatabaseBackendBase::reportStartTransactionResult):
64155        (WebCore::DatabaseBackendBase::reportCommitTransactionResult):
64156        (WebCore::DatabaseBackendBase::reportExecuteStatementResult):
64157        (WebCore::DatabaseBackendBase::reportVacuumDatabaseResult):
64158        * Modules/webdatabase/DatabaseBackendBase.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.h.
64159        (DatabaseBackendBase):
64160        * Modules/webdatabase/DatabaseBackendSync.cpp:
64161        (WebCore::DatabaseBackendSync::DatabaseBackendSync):
64162        * Modules/webdatabase/DatabaseBackendSync.h:
64163        * Modules/webdatabase/DatabaseBase.h:
64164        * Modules/webdatabase/DatabaseManager.cpp:
64165        (WebCore::DatabaseManager::openDatabaseBackend):
64166        (WebCore::DatabaseManager::openDatabase):
64167        (WebCore::DatabaseManager::openDatabaseSync):
64168        (WebCore::DatabaseManager::getMaxSizeForDatabase):
64169        * Modules/webdatabase/DatabaseManager.h:
64170        (DatabaseManager):
64171        * Modules/webdatabase/DatabaseServer.cpp:
64172        (WebCore::DatabaseServer::openDatabase):
64173        (WebCore::DatabaseServer::createDatabase):
64174        (WebCore::DatabaseServer::getMaxSizeForDatabase):
64175        * Modules/webdatabase/DatabaseServer.h:
64176        * Modules/webdatabase/DatabaseSync.cpp:
64177        (WebCore::DatabaseSync::create):
64178        * Modules/webdatabase/DatabaseSync.h:
64179        (DatabaseSync):
64180        * Modules/webdatabase/DatabaseTracker.cpp:
64181        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
64182        (WebCore::DatabaseTracker::databaseChanged):
64183        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
64184        (WebCore::DatabaseTracker::doneCreatingDatabase):
64185        (WebCore::DatabaseTracker::addOpenDatabase):
64186        (WebCore::DatabaseTracker::removeOpenDatabase):
64187        (WebCore::DatabaseTracker::getOpenDatabases):
64188        (WebCore::DatabaseTracker::deleteDatabaseFile):
64189        * Modules/webdatabase/DatabaseTracker.h:
64190        (DatabaseTracker):
64191        * Modules/webdatabase/OriginQuotaManager.cpp:
64192        (WebCore::OriginQuotaManager::markDatabase):
64193        * Modules/webdatabase/OriginQuotaManager.h:
64194        (OriginQuotaManager):
64195        * Modules/webdatabase/SQLTransactionClient.cpp:
64196        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
64197        (WebCore::SQLTransactionClient::didExecuteStatement):
64198        (WebCore::SQLTransactionClient::didExceedQuota):
64199        * Modules/webdatabase/SQLTransactionClient.h:
64200        (SQLTransactionClient):
64201        * Modules/webdatabase/chromium/DatabaseObserver.h:
64202        (DatabaseObserver):
64203        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
64204        (WebCore::DatabaseTracker::addOpenDatabase):
64205        (WebCore::NotifyDatabaseObserverOnCloseTask::create):
64206        (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
64207        (NotifyDatabaseObserverOnCloseTask):
64208        (WebCore::DatabaseTracker::removeOpenDatabase):
64209        (WebCore::DatabaseTracker::prepareToOpenDatabase):
64210        (WebCore::DatabaseTracker::failedToOpenDatabase):
64211        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
64212        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
64213        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
64214        (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
64215        (WebCore::DatabaseTracker::closeOneDatabaseImmediately):
64216        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
64217        (WebCore::NotifyDatabaseChangedTask::create):
64218        (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
64219        (NotifyDatabaseChangedTask):
64220        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
64221        (WebCore::SQLTransactionClient::didExecuteStatement):
64222        (WebCore::SQLTransactionClient::didExceedQuota):
64223        * Target.pri:
64224        * WebCore.gypi:
64225        * WebCore.vcproj/WebCore.vcproj:
64226        * WebCore.vcxproj/WebCore.vcxproj:
64227        * WebCore.vcxproj/WebCore.vcxproj.filters:
64228        * WebCore.xcodeproj/project.pbxproj:
64229
642302013-02-20  Eric Carlson  <eric.carlson@apple.com>
64231
64232        iOS does not use CaptionUserPreferencesMac
64233        https://bugs.webkit.org/show_bug.cgi?id=110259
64234
64235        Reviewed by Dean Jackson.
64236
64237        * page/CaptionUserPreferencesMac.h: Add PLATFORM(IOS) guard
64238        * page/CaptionUserPreferencesMac.mm: Ditto.
64239
64240        * page/PageGroup.cpp:
64241        (WebCore::PageGroup::captionPreferences): Ditto.
64242
642432013-02-19  David Hyatt  <hyatt@apple.com>
64244
64245        [New Multicolumn] Make layers paint properly in columns.
64246        https://bugs.webkit.org/show_bug.cgi?id=110296.
64247
64248        Reviewed by Sam Weinig.
64249
64250        Construct the style for the RenderMultiColumnFlowThread such that it
64251        establishes a stacking context (by being position:relative
64252        with a z-index of 0). This causes the layer collection code
64253        to correctly ignore the RenderFlowThread layers during normal
64254        painting.
64255        
64256        Fix more clipping bugs to eliminate subpixel layout differences
64257        between old and new multicolumn.
64258
64259        Test: fast/multicol/newmulticol/layers-in-multicol.html
64260
64261        * rendering/RenderMultiColumnBlock.cpp:
64262        (WebCore::createMultiColumnFlowThreadStyle):
64263        (WebCore):
64264        (WebCore::RenderMultiColumnBlock::addChild):
64265        Use a custom style (similar to what normal RenderFlowThreads do)
64266        for the RenderMultiColumnFlowThread that makes it a stacking
64267        context.
64268        
64269        * rendering/RenderMultiColumnSet.cpp:
64270        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
64271        Fix the overflow calculations out the leftmost and rightmost
64272        columns to actually look at the physical placement of the columns.
64273        The old code was backwards for RTL.
64274        
64275        * rendering/RenderRegion.cpp:
64276        (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
64277        Fix the clipping done by overflowRectForFlowThreadPortion to min
64278        and max with the passed-in portion rect so that subclasses that
64279        inflate the rect prior to passing it into the method don't have that
64280        inflation discarded.
64281
642822013-02-20  Alexander Pavlov  <apavlov@chromium.org>
64283
64284        Web Inspector: CSSProperty.status defaults to "style" not "active"
64285        https://bugs.webkit.org/show_bug.cgi?id=110348
64286
64287        Reviewed by Timothy Hatcher.
64288
64289        * inspector/Inspector.json: Fix the default property status to be "style" in the description.
64290
642912013-02-20  Dan Carney  <dcarney@google.com>
64292
64293        [v8] potentially disposed handle returned for npapi object
64294        https://bugs.webkit.org/show_bug.cgi?id=110331
64295
64296        Reviewed by Kentaro Hara.
64297
64298        No new tests. No change in functionality.
64299
64300        * bindings/v8/V8NPUtils.cpp:
64301        (WebCore::convertNPVariantToV8Object):
64302
643032013-02-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>  and  Martin Robinson  <mrobinson@igalia.com>
64304
64305        [Gtk] HTML5 Media controls require a design refresh
64306        https://bugs.webkit.org/show_bug.cgi?id=83869
64307
64308        Created new controls that depend less on Gtk and more in CSS.
64309
64310        Reviewed by Philippe Normand.
64311
64312        * GNUmakefile.list.am: Added compilation for MediaControlsGtk.cpp
64313        and MediaControlsGtk.h
64314        * css/mediaControlsGtk.css: Taken from Chromium and adapted for
64315        WebKitGtk+.
64316        * html/shadow/MediaControlsGtk.cpp: Added.
64317        (WebCore): Added MediaControlsGtk class.
64318        (WebCore::MediaControlsGtk::MediaControlsGtk): Class constructor
64319        (WebCore::MediaControls::create): Creates the Gtk+ controls
64320        components.
64321        (WebCore::MediaControlsGtk::createControls): Creates the Gtk+
64322        controls components.
64323        (WebCore::MediaControlsGtk::initializeControls): Initializes all
64324        media controls.
64325        (WebCore::MediaControlsGtk::setMediaController): Sets the media
64326        controller.
64327        (WebCore::MediaControlsGtk::reset): Resets the controllers.
64328        (WebCore::MediaControlsGtk::playbackStarted): Invoked when the
64329        playback starts
64330        (WebCore::MediaControlsGtk::updateCurrentTimeDisplay): Updates the
64331        controls when the current time shall be updated.
64332        (WebCore::MediaControlsGtk::changedMute): Updates the controls
64333        then the mute changes.
64334        (WebCore::MediaControlsGtk::showVolumeSlider): Invoked when the
64335        volume slider is meant to be shown.
64336        (WebCore::MediaControlsGtk::createTextTrackDisplay): Creates the
64337        track display. Though it is not used by us, it needs to be created
64338        to prevent immediate crashes when loading a video.
64339        * html/shadow/MediaControlsGtk.h: Added.
64340        (WebCore): Added the MediaControlsGtk class.
64341        (MediaControlsGtk): Added the MediaControlsGtk class.
64342        * platform/gtk/RenderThemeGtk.cpp:
64343        (WebCore): Added getStockSymbolicIconForWidgetType function
64344        signature to load symbolic icons.
64345        (WebCore::supportsFocus): Added media control widgets to support
64346        focus so that the focus ring is not painted by WebCore.
64347        (WebCore::RenderThemeGtk::paintMediaButton): Added the symbolic
64348        icon support. It supports now normal and symbolic icons at the
64349        same time.
64350        (WebCore::RenderThemeGtk::paintMediaFullscreenButton): Added the
64351        symbolic icon support.
64352        (WebCore::RenderThemeGtk::paintMediaMuteButton): Added the
64353        symbolic icon support.
64354        (WebCore::RenderThemeGtk::paintMediaPlayButton): Added the
64355        symbolic icon support.
64356        (WebCore::RenderThemeGtk::paintMediaSeekBackButton): Added the
64357        symbolic icon support.
64358        (WebCore::RenderThemeGtk::paintMediaSeekForwardButton): Added the
64359        symbolic icon support.
64360        (WebCore::borderRadiiFromStyle): Created the radii info from the
64361        style.
64362        (WebCore::RenderThemeGtk::paintMediaSliderTrack): Removed the
64363        background and the Gtk widget support as it is painted with
64364        CSS. Also paint the time ranges with the CSS style.
64365        (WebCore::RenderThemeGtk::paintMediaSliderThumb): Paint slider
64366        thumb according to the CSS parameters.
64367        (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
64368        Delegates in the CSS.
64369        (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack): Fills the
64370        track up to the volume level and delegates the border in the CSS.
64371        (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb): Delegates
64372        in the paintMediaSliderThumb method so the thumb is painted the
64373        same with the CSS parameters.
64374        (WebCore::RenderThemeGtk::paintMediaCurrentTime): Removed the Gtk
64375        background to use only CSS.
64376        * platform/gtk/RenderThemeGtk.h:
64377        (RenderThemeGtk): Changed paintMediaButton to support the symbolic
64378        and normal icons at the same time.
64379        * platform/gtk/RenderThemeGtk2.cpp:
64380        (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
64381        the thumb size and letting the CSS decide that for media slider.
64382        (WebCore::getStockSymbolicIconForWidgetType): Implemented as a
64383        fallback to the normal stock icons.
64384        * platform/gtk/RenderThemeGtk3.cpp:
64385        (WebCore):
64386        (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
64387        the thumb size and letting the CSS decide that for the media
64388        sliders.
64389        (WebCore::getStockSymbolicIconForWidgetType): Added this function
64390        to load symbolic icons. It falls back to normal icons if the
64391        symbolic is not found.
64392
643932013-02-20  Andras Becsi  <andras.becsi@digia.com>
64394
64395        [Qt] Rename AncestorChainWalker.h to EventPathWalker.h in the project file.
64396
64397        Unreviewed gardening.
64398
64399        AncestorChainWalker has been renamed to EventPathWalker in r143422.
64400        Rename the header in the project file as well so that it shows up in QtCreator.
64401
64402        No new tests needed.
64403
64404        * Target.pri:
64405
644062013-02-20  Ilya Tikhonovsky  <loislo@chromium.org>
64407
64408        Web Inspector: fix for frontend closure compile errors.
64409        https://bugs.webkit.org/show_bug.cgi?id=110329
64410
64411        Reviewed by Vsevolod Vlasov.
64412
64413        It has no tests because it has no code changes.
64414
64415        * inspector/front-end/HeapSnapshot.js:
64416        (HeapSnapshotMetainfo):
64417        * inspector/front-end/NativeMemorySnapshotView.js:
64418        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
64419        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
64420
644212013-02-20  Florin Malita  <fmalita@chromium.org>
64422
64423        Clear SVGPathSeg role on removal.
64424        https://bugs.webkit.org/show_bug.cgi?id=110058
64425
64426        Reviewed by Dirk Schulze.
64427
64428        SVGPathSegListPropertyTearOff::initialize() and SVGPathSegListPropertyTearOff::replaceItem()
64429        need to clear the context and role for segments being expunged from the list, similarly to
64430        removeItem(). Otherwise, processIncomingListItemValue() can get confused and attempt to
64431        remove stale segments.
64432
64433        Test: svg/dom/SVGPathSegList-crash.html
64434
64435        * svg/properties/SVGPathSegListPropertyTearOff.cpp:
64436        (WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):
64437        (WebCore::SVGPathSegListPropertyTearOff::clear):
64438        (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
64439        (WebCore):
64440        * svg/properties/SVGPathSegListPropertyTearOff.h:
64441        (WebCore::SVGPathSegListPropertyTearOff::initialize):
64442        (SVGPathSegListPropertyTearOff):
64443
644442013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
64445
64446        Unreviewed, rolling out r143434.
64447        http://trac.webkit.org/changeset/143434
64448        https://bugs.webkit.org/show_bug.cgi?id=110326
64449
64450        added reftest fails on chromium mac 10.6 (Requested by
64451        toyoshim on #webkit).
64452
64453        * rendering/RenderFileUploadControl.cpp:
64454        (WebCore::RenderFileUploadControl::paintObject):
64455
644562013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
64457
64458        Web Inspector: Make UISourceCode.path() an array of path segments.
64459        https://bugs.webkit.org/show_bug.cgi?id=110229
64460
64461        Reviewed by Pavel Feldman.
64462
64463        * inspector/front-end/FileSystemProjectDelegate.js:
64464        (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
64465        (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
64466        (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
64467        (WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
64468        (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
64469        (WebInspector.FileSystemProjectDelegate.prototype.populate):
64470        * inspector/front-end/SimpleWorkspaceProvider.js:
64471        (WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
64472        (WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
64473        (WebInspector.SimpleProjectDelegate.prototype.addFile):
64474        (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
64475        (WebInspector.SimpleProjectDelegate.prototype.removeFile):
64476        (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
64477        (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
64478        (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
64479        * inspector/front-end/UISourceCode.js:
64480        (WebInspector.UISourceCode.prototype.uri):
64481        * inspector/front-end/Workspace.js:
64482        (WebInspector.Project.prototype._fileAdded):
64483        (WebInspector.Project.prototype._fileRemoved):
64484        (WebInspector.Project.prototype.uiSourceCode):
64485        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
64486        (WebInspector.Workspace.prototype.urlForPath):
64487
644882013-02-20  Yury Semikhatsky  <yurys@chromium.org>
64489
64490        Web Inspector: fix message for non-existent domain warning
64491        https://bugs.webkit.org/show_bug.cgi?id=110315
64492
64493        Reviewed by Alexander Pavlov.
64494
64495        Only send (Heap)Profiler.resetProfiles event if the client has
64496        requested profile headers before.
64497
64498        * inspector/InspectorHeapProfilerAgent.cpp:
64499        (HeapProfilerAgentState):
64500        (WebCore):
64501        (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
64502        (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
64503        (WebCore::InspectorHeapProfilerAgent::clearFrontend):
64504        (WebCore::InspectorHeapProfilerAgent::restore):
64505        (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
64506        * inspector/InspectorHeapProfilerAgent.h:
64507        (InspectorHeapProfilerAgent):
64508        * inspector/InspectorProfilerAgent.cpp:
64509        (ProfilerAgentState):
64510        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
64511        (WebCore::InspectorProfilerAgent::addProfile):
64512        (WebCore::InspectorProfilerAgent::disable):
64513        (WebCore::InspectorProfilerAgent::getProfileHeaders):
64514        (WebCore):
64515        (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
64516        (WebCore::InspectorProfilerAgent::restore):
64517        * inspector/InspectorProfilerAgent.h:
64518        (InspectorProfilerAgent):
64519
645202013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
64521
64522        Web Inspector: Move workspace specific code from FileMapping to workspace.
64523        https://bugs.webkit.org/show_bug.cgi?id=110219
64524
64525        Reviewed by Pavel Feldman.
64526
64527        Extracted workspace specific code from FileMapping to Workspace.
64528        This allows to reduce usage of uri and eventually make UISourceCode.path an array of path segments.
64529
64530        Test: inspector/workspace-mapping.html
64531
64532        * inspector/front-end/CSSStyleModel.js:
64533        (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
64534        * inspector/front-end/CompilerScriptMapping.js:
64535        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
64536        (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
64537        (WebInspector.CompilerScriptMapping.prototype.get addScript):
64538        * inspector/front-end/FileMapping.js:
64539        (WebInspector.FileMapping):
64540        (WebInspector.FileMapping.prototype.mappingEntryForURL):
64541        (WebInspector.FileMapping.prototype.mappingEntryForPath):
64542        * inspector/front-end/FileSystemMapping.js:
64543        (WebInspector.FileSystemMapping.prototype.fileSystemPathForPrefix):
64544        (WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
64545        (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
64546        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
64547        * inspector/front-end/FileSystemProjectDelegate.js:
64548        (WebInspector.FileSystemProjectDelegate):
64549        (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
64550        (WebInspector.FileSystemProjectDelegate.prototype.populate):
64551        (WebInspector.FileSystemWorkspaceProvider):
64552        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
64553        * inspector/front-end/IsolatedFileSystemManager.js:
64554        (WebInspector.IsolatedFileSystemManager):
64555        * inspector/front-end/NetworkUISourceCodeProvider.js:
64556        (WebInspector.NetworkUISourceCodeProvider):
64557        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
64558        * inspector/front-end/ResourceScriptMapping.js:
64559        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
64560        * inspector/front-end/ResourceUtils.js:
64561        (WebInspector.displayNameForURL):
64562        * inspector/front-end/SASSSourceMapping.js:
64563        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
64564        (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
64565        (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
64566        * inspector/front-end/ScriptsPanel.js:
64567        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
64568        * inspector/front-end/SimpleWorkspaceProvider.js:
64569        (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
64570        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
64571        * inspector/front-end/StylesSourceMapping.js:
64572        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
64573        (WebInspector.StylesSourceMapping.prototype._resourceAdded):
64574        (WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
64575        (WebInspector.StyleContentBinding):
64576        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
64577        * inspector/front-end/Workspace.js:
64578        (WebInspector.Workspace):
64579        (WebInspector.Workspace.prototype.hasMappingForURL):
64580        (WebInspector.Workspace.prototype._fileSystemPathForEntry):
64581        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
64582        (WebInspector.Workspace.prototype.urlForPath):
64583        * inspector/front-end/inspector.js:
64584
645852013-02-20  Alexander Pavlov  <apavlov@chromium.org>
64586
64587        Web Inspector: Introduce SecurityOriginAdded and SecurityOriginRemoved events into ResourceTreeModel
64588        https://bugs.webkit.org/show_bug.cgi?id=110232
64589
64590        Reviewed by Vsevolod Vlasov.
64591
64592        * inspector/front-end/ResourceTreeModel.js:
64593        (WebInspector.ResourceTreeModel):
64594        (WebInspector.ResourceTreeModel.prototype._addFrame):
64595        (WebInspector.ResourceTreeModel.prototype._addSecurityOrigin): Added.
64596        (WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin): Added.
64597        (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached): Added.
64598        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
64599        (WebInspector.ResourceTreeModel.prototype._frameDetached):
64600
646012013-02-20  Dan Carney  <dcarney@google.com>
64602
64603        [v8] ScriptValue has dangerous copy semantics
64604        https://bugs.webkit.org/show_bug.cgi?id=110206
64605
64606        Reviewed by Kentaro Hara.
64607
64608        Update ScriptValue to used a SharedPersistent,
64609        making it impossible to return dead references.
64610
64611        No new tests. No change in functionality.
64612
64613        * bindings/v8/ScriptValue.cpp:
64614        (WebCore::ScriptValue::serialize):
64615        (WebCore::ScriptValue::getString):
64616        (WebCore::ScriptValue::toString):
64617        (WebCore::ScriptValue::toInspectorValue):
64618        * bindings/v8/ScriptValue.h:
64619        (WebCore::ScriptValue::ScriptValue):
64620        (WebCore::ScriptValue::operator=):
64621        (WebCore::ScriptValue::operator==):
64622        (WebCore::ScriptValue::isEqual):
64623        (WebCore::ScriptValue::isFunction):
64624        (WebCore::ScriptValue::isNull):
64625        (WebCore::ScriptValue::isUndefined):
64626        (WebCore::ScriptValue::isObject):
64627        (WebCore::ScriptValue::hasNoValue):
64628        (WebCore::ScriptValue::clear):
64629        (ScriptValue):
64630        (WebCore::ScriptValue::v8Value):
64631        (WebCore::ScriptValue::v8ValueRaw):
64632        * bindings/v8/SharedPersistent.h:
64633        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
64634        (WebCore::InjectedScriptHost::scriptValueAsNode):
64635        * bindings/v8/custom/V8MessageEventCustom.cpp:
64636        (WebCore::V8MessageEvent::dataAttrGetterCustom):
64637
646382013-02-20  Andrey Lushnikov  <lushnikov@chromium.org>
64639
64640        Web Inspector: highlight undefined word in JavaScript
64641        https://bugs.webkit.org/show_bug.cgi?id=109585
64642
64643        Reviewed by Vsevolod Vlasov.
64644
64645        Test enhancement: inspector/syntax-highlight-javascript.html
64646
64647        Add global object value properties to tokenizer and add a css style
64648        class to highlight "undefined" with gray color.
64649
64650        * inspector/front-end/SourceJavaScriptTokenizer.js:
64651        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
64652        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
64653        * inspector/front-end/inspectorSyntaxHighlight.css:
64654        (.webkit-javascript-undef):
64655
646562013-02-20  Mike West  <mkwst@chromium.org>
64657
64658        Use EventPathWalker rather than parentNode() to normalize event targets in EventHandler.
64659        https://bugs.webkit.org/show_bug.cgi?id=110037
64660
64661        Reviewed by Ryosuke Niwa.
64662
64663        We need to teach EventHandler about Shadow DOM in a few places in order
64664        to ensure that we properly target events dispatched upon text nodes.
64665        Rather than naively grabbing the text node's direct parent via
64666        parentNode(), we need to account for the case in which the text node is
64667        distributed[1] to an insertion point inside a shadow host.
64668        EventPathWalker::parent understands these relationships, and should
64669        be used when dealing with mouse, drag, and touch events.
64670
64671        [1]: http://www.w3.org/TR/shadow-dom/#dfn-distribution
64672
64673        * page/EventHandler.cpp:
64674        (WebCore::EventHandler::handleMouseDraggedEvent):
64675        (WebCore::EventHandler::handleTouchEvent):
64676        (WebCore::EventHandler::passGestureEventToWidgetIfPossible):
64677        (WebCore::EventHandler::updateDragAndDrop):
64678            Refactor parentNode callsites to use EventPathWalker::parent().
64679
646802013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>
64681
64682        Web Inspector: [Regression] Search in ProfilesPanel is broken
64683        https://bugs.webkit.org/show_bug.cgi?id=110312
64684
64685        Reviewed by Pavel Feldman.
64686
64687        * inspector/front-end/CPUProfileView.js:
64688        (WebInspector.CPUProfileView.prototype.matchesQuery):
64689        (WebInspector.CPUProfileView.prototype.performSearch):
64690
646912013-02-20  Eugene Klyuchnikov  <eustas@chromium.org>
64692
64693        Web Inspector: View.markAsRoot should never be invoked on attached view.
64694        https://bugs.webkit.org/show_bug.cgi?id=110224
64695
64696        Reviewed by Pavel Feldman.
64697
64698        This will cause CSS loading problems after "show".
64699
64700        * inspector/front-end/Drawer.js:
64701        Ensure child view is detached before marked as root.
64702        * inspector/front-end/View.js:
64703        (WebInspector.View.prototype.markAsRoot): Added assertion.
64704
647052013-02-20  Nils Barth  <nbarth@google.com>
64706
64707        File upload control doesn't apply CSS vertical padding or border to file name
64708        https://bugs.webkit.org/show_bug.cgi?id=109011
64709
64710        Reviewed by Hajime Morrita.
64711
64712        Test: fast/forms/file/file-vertical-padding-border.html
64713
64714        * rendering/RenderFileUploadControl.cpp:
64715            Add borderTop() and paddingTop() when computing position.
64716        (WebCore::RenderFileUploadControl::paintObject):
64717
647182013-02-19  Andrey Adaikin  <aandrey@chromium.org>
64719
64720        Few methods in WebGLRenderingContext.idl have incorrect signatures
64721        https://bugs.webkit.org/show_bug.cgi?id=110305
64722
64723        Reviewed by Kentaro Hara.
64724
64725        * html/canvas/WebGLRenderingContext.idl:
64726
647272013-02-19  Tim Horton  <timothy_horton@apple.com>
64728
64729        Clarify isInWindow vs. isVisible path through to RenderLayerCompositor
64730        https://bugs.webkit.org/show_bug.cgi?id=110261
64731        <rdar://problem/13196122>
64732
64733        Reviewed by Simon Fraser.
64734
64735        Remove RenderLayerCompositor::willMoveOffscreen/didMoveOnscreen.
64736        Add RenderLayerCompositor::setIsInWindow, and pipe in-window changes through from Page::setIsInWindow.
64737        Adjust a few Document functions that previously called RenderView::didMoveOnscreen/willMoveOffscreen to use setIsInWindow instead, since in-window state changes are occurring when attaching and detaching documents.
64738
64739        * WebCore.exp.in: Export Page::setIsInWindow.
64740        * dom/Document.cpp:
64741        (WebCore::Document::attach): Use setIsInWindow instead of didMoveOnscreen.
64742        (WebCore::Document::documentWillBecomeInactive): Use setIsInWindow instead of willMoveOffscreen.
64743        (WebCore::Document::documentDidResumeFromPageCache): Use setIsInWindow instead of didMoveOnscreen.
64744        * page/FrameView.cpp:
64745        (WebCore::FrameView::didMoveOnscreen):
64746        (WebCore::FrameView::willMoveOffscreen):
64747        RenderView doesn't care about moving on/offscreen, just in-window state.
64748        (WebCore::FrameView::setIsInWindow): Added. Forward isInWindow changes to our RenderView.
64749        * page/FrameView.h:
64750        (FrameView): Add setIsInWindow.
64751        * page/Page.cpp:
64752        (WebCore::Page::setIsInWindow): Added. Forward isInWindow changes to the Page's FrameViews.
64753        * page/Page.h:
64754        (Page): Add setIsInWindow.
64755        (WebCore::Page::isInWindow):
64756        * rendering/RenderLayerCompositor.cpp:
64757        (WebCore::RenderLayerCompositor::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
64758        since that's the only change we actually care about.
64759        * rendering/RenderLayerCompositor.h:
64760        (RenderLayerCompositor): Add setIsInWindow.
64761        * rendering/RenderView.cpp:
64762        (WebCore::RenderView::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
64763        since that's the only change RenderLayerCompositor actually cares about.
64764        * rendering/RenderView.h:
64765        (RenderView): Add setIsInWindow.
64766
647672013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>
64768
64769        Web Inspector: Cleanup and add JSDocs to SuggestBox
64770        https://bugs.webkit.org/show_bug.cgi?id=110202
64771
64772        Reviewed by Pavel Feldman.
64773
64774        SuggestBox contains some obsolete/unused code and not fully
64775        covered with JSDocs.
64776
64777        * inspector/front-end/SuggestBox.js:
64778        (WebInspector.SuggestBox.prototype.visible):
64779        Replaced getter with function.
64780        (WebInspector.SuggestBox.prototype._onScrollOrResize):
64781        Use camel-case for function names.
64782        (WebInspector.SuggestBox.prototype._onBoxMouseDown): Ditto.
64783        (WebInspector.SuggestBox.prototype.updateSuggestions):
64784        Removed unused code.
64785        (WebInspector.SuggestBox.prototype.hide): Adopt changes.
64786        (WebInspector.SuggestBox.prototype._applySuggestion): Ditto.
64787        * inspector/front-end/TextPrompt.js:
64788        (WebInspector.TextPrompt.prototype.isSuggestBoxVisible): Ditto.
64789
647902013-02-19  Hayato Ito <hayato@chromium.org>
64791
64792        Calculate EventPath in EventDispatcher's constructor.
64793        https://bugs.webkit.org/show_bug.cgi?id=109905
64794
64795        Reviewed by Dimitri Glazkov.
64796
64797        This patch calculates an EventPath in EventDispatcher's
64798        constructor and removes EventDispatcher::ensureEventPath().
64799        We don't have any reason to initialize an EventPath lazily.
64800
64801        No tests. No change in behavior.
64802
64803        * dom/EventDispatcher.cpp:
64804        (WebCore::EventDispatcher::EventDispatcher):
64805        (WebCore::EventDispatcher::dispatch):
64806        * dom/EventDispatcher.h:
64807        (WebCore::EventDispatcher::eventPath):
64808        (EventDispatcher):
64809        * dom/FocusEvent.cpp:
64810        (WebCore::FocusEventDispatchMediator::dispatchEvent):
64811        (WebCore::BlurEventDispatchMediator::dispatchEvent):
64812        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
64813        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
64814        * dom/MouseEvent.cpp:
64815        (WebCore::MouseEventDispatchMediator::dispatchEvent):
64816
648172013-02-19  Simon Fraser  <simon.fraser@apple.com>
64818
64819        Fix TileCache tile size when zoomed on slow-scrolling site
64820        https://bugs.webkit.org/show_bug.cgi?id=110289
64821
64822        Reviewed by Tim Horton.
64823        
64824        In slow scrolling mode, we use the tile coverage rect as the tile size
64825        (so a single tile covers the viewport). When zoomed, the tile coverage rect
64826        shrinks relative to the TileCache, so scale the tile size back up.
64827
64828        Test: platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed.html
64829
64830        * platform/graphics/ca/mac/TileCache.mm:
64831        (WebCore::TileCache::tileSizeForCoverageRect):
64832
648332013-02-19  Hayato Ito  <hayato@chromium.org>
64834
64835        Rename AncestorChainWalker.
64836        https://bugs.webkit.org/show_bug.cgi?id=110146
64837
64838        Reviewed by Dimitri Glazkov.
64839
64840        Rename AncestorChainWalker to EventPathWalker.
64841        The term of EventPath is used in DOM Core spec.  EventPath was
64842        already introduced into a EventContext.h in r112055. We should
64843        spread this term into the Walker class since they share the same
64844        purpose.
64845
64846        No new tests, no behavior change.
64847
64848        * CMakeLists.txt:
64849        * GNUmakefile.list.am:
64850        * Target.pri:
64851        * WebCore.gypi:
64852        * WebCore.xcodeproj/project.pbxproj:
64853        * dom/DOMAllInOne.cpp:
64854        * dom/EventDispatcher.cpp:
64855        * dom/EventPathWalker.cpp: Renamed from Source/WebCore/dom/AncestorChainWalker.cpp.
64856        (WebCore):
64857        (WebCore::EventPathWalker::EventPathWalker):
64858        (WebCore::EventPathWalker::parent): parent() is now a static function to cover simple use cases.
64859        (WebCore::EventPathWalker::moveToParent): Renamed from parent().
64860        * dom/EventPathWalker.h: Renamed from Source/WebCore/dom/AncestorChainWalker.h.
64861        (WebCore):
64862        (EventPathWalker):
64863        (WebCore::EventPathWalker::node):
64864        (WebCore::EventPathWalker::isVisitingInsertionPointInReprojection): Renamed from isCrossingInsertionPoint().
64865        * dom/EventRetargeter.cpp:
64866        (WebCore::EventRetargeter::calculateEventPath):
64867        (WebCore::EventRetargeter::buildRelatedNodeMap):
64868        * dom/TreeScope.cpp:
64869        (WebCore::TreeScope::focusedNode):
64870        * html/HTMLLIElement.cpp:
64871        (WebCore::HTMLLIElement::attach):
64872        * page/EventHandler.cpp:
64873        (WebCore::EventHandler::updateMouseEventTargetNode):
64874        (WebCore::EventHandler::handleWheelEvent):
64875
648762013-02-19  Dean Jackson  <dino@apple.com>
64877
64878        Snapshotted plugin label should not be selectable
64879        https://bugs.webkit.org/show_bug.cgi?id=110286
64880
64881        Reviewed by Simon Fraser.
64882
64883        Update the CSS to make it clear that you should click
64884        on a snapshot (use the finger pointer) and disable
64885        text selection.
64886
64887        * css/plugIns.css:
64888        (embed::-webkit-snapshotted-plugin-content .snapshot-container .snapshot-label):
64889
648902013-02-19  Hans Muller  <hmuller@adobe.com>
64891
64892        [CSS Exclusions] Enable shape-inside support for ellipses
64893        https://bugs.webkit.org/show_bug.cgi?id=109868
64894
64895        Reviewed by Dirk Schulze.
64896
64897        This change is very similar to the one recently made for circles:
64898        removed the test that disabled ellipse values for shape-inside.
64899        The remaining support for ellipses, which is based on rounded rectangles
64900        whose width/height is equal to their radiusX/radiusY, has not changed.
64901
64902        Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
64903
64904        * rendering/ExclusionShapeInsideInfo.h:
64905        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
64906
649072013-02-19  Uday Kiran  <udaykiran@motorola.com>
64908
64909        'round' not implemented in border-image
64910        https://bugs.webkit.org/show_bug.cgi?id=14185
64911
64912        Reviewed by David Hyatt.
64913
64914        Add rendering support for 'round' keyword of border-image-repeat CSS property
64915        http://dev.w3.org/csswg/css3-background/#border-image-repeat
64916        Rebased original patch by Benjamin Otte <otte@gnome.org> and made few fixes.
64917
64918        Test: fast/borders/border-image-02.html
64919
64920        * platform/graphics/GraphicsContext.cpp:
64921        (WebCore::GraphicsContext::drawTiledImage):
64922        * platform/graphics/GraphicsContext.h:
64923        (GraphicsContext):
64924        * platform/graphics/Image.cpp:
64925        (WebCore::Image::drawTiled):
64926        * platform/graphics/Image.h:
64927        (Image):
64928        * rendering/RenderBoxModelObject.cpp:
64929        (WebCore::RenderBoxModelObject::paintNinePieceImage): For 'round' keyword,
64930        the image is tiled (repeated) to fill the area. If it does not fill the area
64931        with a whole number of tiles, the image is rescaled so that it does.
64932
649332013-02-19  Conrad Shultz  <conrad_shultz@apple.com>
64934
64935        Allow UI clients to handle vertical wheel events.
64936        https://bugs.webkit.org/show_bug.cgi?id=110006
64937
64938        Reviewed by Tim Horton.
64939
64940        Add API to allow matching changes in WebKit2 to control rubber-banding behavior at vertical page extrema.
64941        If rubber-banding is disabled during a scroll event that would otherwise trigger rubber-banding, dispatch
64942        didNotHandleWheelEvent() to the page UI client.
64943
64944        * WebCore.exp.in:
64945        Export new rubber-banding API.
64946
64947        * page/Page.cpp:
64948        (WebCore):
64949        (WebCore::Page::rubberBandsAtBottom):
64950        Proxy for the corresponding function in ScrollingCoordinator.
64951        (WebCore::Page::setRubberBandsAtBottom):
64952        Ditto.
64953        (WebCore::Page::rubberBandsAtTop):
64954        Ditto.
64955        (WebCore::Page::setRubberBandsAtTop):
64956        Ditto.
64957
64958        * page/Page.h:
64959        (Page):
64960        Declare new rubber-banding API (above).
64961
64962        * page/scrolling/ScrollingCoordinator.h:
64963        (WebCore::ScrollingCoordinator::rubberBandsAtBottom):
64964        Stub API implementation.
64965        (WebCore::ScrollingCoordinator::setRubberBandsAtBottom):
64966        Ditto.
64967        (WebCore::ScrollingCoordinator::rubberBandsAtTop):
64968        Ditto.
64969        (WebCore::ScrollingCoordinator::setRubberBandsAtTop):
64970        Ditto.
64971
64972        * page/scrolling/ScrollingTree.cpp:
64973        (WebCore::ScrollingTree::ScrollingTree):
64974        Initialize new member variables.
64975        (WebCore::ScrollingTree::setMainFramePinState):
64976        Set top/bottom pinned states.
64977        (WebCore::ScrollingTree::rubberBandsAtBottom):
64978        New accessor function.
64979        (WebCore::ScrollingTree::setRubberBandsAtBottom):
64980        New mutator function.
64981        (WebCore::ScrollingTree::rubberBandsAtTop):
64982        New accessor function.
64983        (WebCore::ScrollingTree::setRubberBandsAtTop):
64984        New mutator function.
64985        (WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
64986        Start a vertical swipe event if the frame is pinned at the top or bottom and associated rubber-banding is disabled.
64987
64988        * page/scrolling/ScrollingTree.h:
64989        (ScrollingTree):
64990        Declare new rubber-banding API and associated member variables.
64991
64992        * page/scrolling/mac/ScrollingCoordinatorMac.h:
64993        (ScrollingCoordinatorMac):
64994        Declare API overrides.
64995
64996        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
64997        (WebCore::ScrollingCoordinatorMac::rubberBandsAtBottom):
64998        Method override; proxy to corresponding function in ScrollingTree.
64999        (WebCore::ScrollingCoordinatorMac::setRubberBandsAtBottom):
65000        Ditto.
65001        (WebCore::ScrollingCoordinatorMac::rubberBandsAtTop):
65002        Ditto.
65003        (WebCore::ScrollingCoordinatorMac::setRubberBandsAtTop):
65004        Ditto.
65005
65006        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
65007        (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
65008        Remove trailing whitespace.
65009        (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
65010        Calculate and pass vertical pinning state to ScrollingTree::setMainFramePinState().
65011
650122013-02-19  Simon Fraser  <simon.fraser@apple.com>
65013
65014        Rubber-banding should not affect the visibleRect of the TileCache
65015        https://bugs.webkit.org/show_bug.cgi?id=110278
65016
65017        Reviewed by Beth Dakin.
65018        
65019        When rubber-banding a slow-scrolling page, or image document, we would constantly re-create
65020        the bottom tile because of the logic that adapts the tile size to the visible rect when slow
65021        scrolling.
65022        
65023        Avoid that by ensuring that the visibleRect is not affected by rubber-banding. This is done
65024        via a GraphicsLayerClient function that allows RenderLayerCompositor to provide a custom
65025        position for the scroll layer. We constrain that scroll position to remove the overhang that
65026        results from rubber-banding.
65027
65028        I wasn't able to make a test for this, even with internals.setScrollViewPosition().
65029
65030        * platform/graphics/GraphicsLayerClient.h:
65031        (GraphicsLayerClient):
65032        (WebCore::GraphicsLayerClient::customPositionForVisibleRectComputation):
65033        * platform/graphics/ca/GraphicsLayerCA.cpp:
65034        (WebCore::GraphicsLayerCA::computeVisibleRect):
65035        * rendering/RenderLayerCompositor.cpp:
65036        (WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
65037        * rendering/RenderLayerCompositor.h:
65038
650392013-02-19  Tony Gentilcore  <tonyg@chromium.org>
65040
65041        Fix crash in preloading scanning base tags with no href attribute for background parser
65042        https://bugs.webkit.org/show_bug.cgi?id=110276
65043
65044        Reviewed by Eric Seidel.
65045
65046        Previously a <base> tag without an href attribute (like the one in fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html)
65047        would crash the background parser's preload scanner.
65048
65049        To fix that, we only call stripLeadingAndTrailingHTMLSpaces() if the href attribute is non-null. This matches the main thread parser.
65050
65051        Along with this, I decided to templatize updatePredictedBaseURL() so that the main and background parser can share the same impl.
65052
65053        This required making CompactHTMLToken and HTMLToken a little more similar:
65054        1. Give HTMLToken a getAttributeItem() method.
65055        2. Move CompactAttribute to CompactHTMLToken::Attribute and make it a struct.
65056
65057        No new tests because covered by existing tests.
65058
65059        * html/parser/AtomicHTMLToken.h:
65060        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
65061        * html/parser/CompactHTMLToken.cpp:
65062        (SameSizeAsCompactHTMLToken):
65063        (WebCore::CompactHTMLToken::CompactHTMLToken):
65064        (WebCore::CompactHTMLToken::getAttributeItem):
65065        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
65066        * html/parser/CompactHTMLToken.h:
65067        (WebCore::CompactHTMLToken::Attribute::Attribute):
65068        (Attribute):
65069        (WebCore::CompactHTMLToken::attributes):
65070        (CompactHTMLToken):
65071        (WebCore::CompactHTMLToken::publicIdentifier):
65072        (WebCore::CompactHTMLToken::systemIdentifier):
65073        * html/parser/HTMLParserIdioms.h:
65074        (WebCore):
65075        (WebCore::stripLeadingAndTrailingHTMLSpaces):
65076        * html/parser/HTMLPreloadScanner.cpp:
65077        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
65078        (WebCore):
65079        (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
65080        * html/parser/HTMLPreloadScanner.h:
65081        * html/parser/HTMLToken.h:
65082        (WebCore::HTMLToken::getAttributeItem):
65083        (HTMLToken):
65084
650852013-02-19  Mark Lam  <mark.lam@apple.com>
65086
65087        Introducing AbstractSQLTransaction and AbstractSQLTransactionBackend.
65088        https://bugs.webkit.org/show_bug.cgi?id=110273.
65089
65090        Reviewed by Anders Carlsson.
65091
65092        This is part of the webdatabase refactoring for webkit2.
65093        - Also changed the frontend and backend to only refer to the
65094          abstract interface of each other.
65095
65096        No new tests.
65097
65098        * Modules/webdatabase/AbstractSQLTransaction.h: Added.
65099        (AbstractSQLTransaction):
65100        (WebCore::AbstractSQLTransaction::~AbstractSQLTransaction):
65101        * Modules/webdatabase/AbstractSQLTransactionBackend.h: Added.
65102        (AbstractSQLTransactionBackend):
65103        (WebCore::AbstractSQLTransactionBackend::~AbstractSQLTransactionBackend):
65104        * Modules/webdatabase/SQLTransaction.cpp:
65105        (WebCore::SQLTransaction::hasCallback):
65106        (WebCore::SQLTransaction::hasSuccessCallback):
65107        (WebCore::SQLTransaction::hasErrorCallback):
65108        (WebCore::SQLTransaction::setBackend):
65109        * Modules/webdatabase/SQLTransaction.h:
65110        (SQLTransaction):
65111        * Modules/webdatabase/SQLTransactionBackend.cpp:
65112        (WebCore::SQLTransactionBackend::create):
65113        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
65114        * Modules/webdatabase/SQLTransactionBackend.h:
65115        (SQLTransactionBackend):
65116        * Modules/webdatabase/SQLTransactionStateMachine.h:
65117
651182013-02-19  Emil A Eklund  <eae@chromium.org>
65119
65120        Change computeStickyPositionConstraints to use LayoutBoxExtent for margins
65121        https://bugs.webkit.org/show_bug.cgi?id=108872
65122
65123        Reviewed by Levi Weintraub.
65124        
65125        Change RenderBoxModelObject::computeStickyPositionConstraints to
65126        use a LayoutBoxExtent to represent margins.
65127
65128        No new tests, no change in functionality.
65129
65130        * platform/graphics/LayoutRect.h:
65131        (WebCore::LayoutRect::contract):
65132        Add version contract methods that takes a LayoutBoxExtent object.
65133        
65134        * platform/graphics/LayoutSize.h:
65135        (WebCore::LayoutSize::shrink):
65136        Add shrink method.
65137        
65138        * rendering/RenderBoxModelObject.cpp:
65139        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
65140        Change to use a LayoutBoxExtent object to represent margins.
65141
651422013-02-19  Tony Gentilcore  <tonyg@chromium.org>
65143
65144        Disable ASSERT(!hasInsertionPoint()) for background parser
65145        https://bugs.webkit.org/show_bug.cgi?id=110251
65146
65147        Reviewed by Adam Barth.
65148
65149        The background parser crashes about 10 layout tests by hitting ASSERT(!hasInsertionPoint()).
65150        Now, finish() is the thing that closes the HTMLInputStream which removes the insertion point.
65151        In these tests, a document.open() calls insert() which clears the HTMLInputStream which causes
65152        there to be an insertion point again.
65153
65154        With the main thread parser, insert() is called before finish() so the ASSERT passes.
65155        However, with the threaded parser, finish() is called before insert(), so we fail the ASSERT.
65156
65157        This patch disables the ASSERT for the background parser because m_input isn't really relevant.
65158        This causes us to pass the tests. However, there is a risk that now hasInsertionPoint() may be incorrect
65159        and Document has a non-debug branch that tests hasInsertionPoint().
65160
65161        No new tests because covered by existing tests.
65162
65163        * html/parser/HTMLDocumentParser.cpp:
65164        (WebCore::HTMLDocumentParser::prepareToStopParsing):
65165        (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):
65166
651672013-02-19  Hans Muller  <hmuller@adobe.com>
65168
65169        [CSS Exclusions] Enable shape-inside support for ellipses
65170        https://bugs.webkit.org/show_bug.cgi?id=109868
65171
65172        Reviewed by Dirk Schulze.
65173
65174        This change is very similar to the one recently made for circles:
65175        removed the test that disabled ellipse values for shape-inside.
65176        The remaining support for ellipses, which is based on rounded rectangles
65177        whose width/height is equal to their radiusX/radiusY, has not changed.
65178
65179        Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
65180
65181        * rendering/ExclusionShapeInsideInfo.h:
65182        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
65183
651842013-02-19  Simon Fraser  <simon.fraser@apple.com>
65185
65186        Separate constraining for overhang from fixed-position zooming behavior in scrollOffsetForFixedPosition()
65187        https://bugs.webkit.org/show_bug.cgi?id=110267
65188
65189        Reviewed by Beth Dakin.
65190
65191        The static scrollOffsetForFixedPosition() function in ScrollingCoordinator did two things;
65192        it constrained the scroll position when rubber-banding, and applied the special scaling for
65193        fixed position when zoomed.
65194        
65195        Separate these out so that we can use the rubber-banding constrained elsewhere.
65196
65197        * page/FrameView.cpp:
65198        (WebCore::FrameView::scrollOffsetForFixedPosition): The static function is here now.
65199        * page/FrameView.h:
65200        * page/scrolling/ScrollingCoordinator.cpp: Code moved to FrameView.
65201        * page/scrolling/ScrollingCoordinator.h:
65202        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
65203        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): scrollOffsetForFixedPosition()
65204        is now on FrameView.
65205        * platform/ScrollableArea.cpp:
65206        (WebCore::constrainedScrollPosition): Helper to constrain one axis for overhang.
65207        (WebCore::ScrollableArea::constrainScrollPositionForOverhang): Static function that
65208        can be called by FrameView::scrollOffsetForFixedPosition().
65209        * platform/ScrollableArea.h: Static function constrainScrollPositionForOverhang()
65210        so we can call it from another thread. Also a member fuction of the same name, which takes
65211        the scrollPosition as input (so we can feed it a layer position in a later patch).
65212
652132013-02-19  Tony Gentilcore  <tonyg@chromium.org>
65214
65215        Fix checkThatTokensAreSafeToSendToAnotherThread() now that the preload scanner is enabled
65216        https://bugs.webkit.org/show_bug.cgi?id=110258
65217
65218        Reviewed by Adam Barth.
65219
65220        We were hitting this ASSERT on numerous tests with the background parser enabled. This copy fixes the assertion.
65221
65222        No new tests becuase covered by existing tests.
65223
65224        * html/parser/HTMLResourcePreloader.h:
65225        (WebCore::PreloadRequest::setCharset):
65226
652272013-02-19  Tony Gentilcore  <tonyg@chromium.org>
65228
65229        Fix typo: inititatorFor->initiatorFor
65230        https://bugs.webkit.org/show_bug.cgi?id=110260
65231
65232        Reviewed by Adam Barth.
65233
65234        No new tests because no changed functionality.
65235
65236        * html/parser/HTMLPreloadScanner.cpp:
65237        (WebCore::TokenPreloadScanner::initiatorFor):
65238        (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
65239        * html/parser/HTMLPreloadScanner.h:
65240
652412013-02-19  Tony Chang  <tony@chromium.org>
65242
65243        Convert 3 settings to use Settings.in
65244        https://bugs.webkit.org/show_bug.cgi?id=109875
65245
65246        Reviewed by Ryosuke Niwa.
65247
65248        Convert mediaEnabled, applicationChromeMode and DOMPasteAllowed to
65249        use Settings.in. They previously had inconsistently named setters.
65250
65251        No new tests, this is a refactoring.
65252
65253        * Source/WebCore/WebCore.exp.in: Remove symbols that are now inlined from exports.
65254        * Source/WebCore/WebCore.order: Remove symbols that no longer exist.
65255        * dom/make_names.pl:
65256        (printConstructorInterior): Rename isMediaEnabled to mediaEnabled.
65257        (printWrapperFunctions): Rename isMediaEnabled to mediaEnabled.
65258        * editing/EditorCommand.cpp:
65259        (WebCore::supportedPaste): Rename isDOMPasteAllowed to DOMPasteAllowed.
65260        * page/Settings.cpp:
65261        (WebCore::Settings::Settings): Remove custom code.
65262        * page/Settings.h:
65263        (Settings): Remove custom code.
65264        * page/Settings.in: Add entries for mediaEnabled, applicationChromeMode and DOMPasteAllowed.
65265        * page/make_settings.pl:
65266        (setterFunctionName): Expand uppercase rules to include DOM.
65267        * rendering/RenderTheme.cpp:
65268        (WebCore::RenderTheme::isDefault): Rename inApplicationChromeMode to applicationChromeMode.
65269        * rendering/RenderThemeWin.cpp:
65270        (WebCore::documentIsInApplicationChromeMode): Rename inApplicationChromeMode to applicationChromeMode.
65271
652722013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
65273
65274        [CSS Grid Layout] Refactor the code in preparation of auto placement support
65275        https://bugs.webkit.org/show_bug.cgi?id=110244
65276
65277        Reviewed by Ojan Vafai.
65278
65279        Test: fast/css-grid-layout/grid-auto-flow-resolution.html
65280
65281        In order to support auto placement, we need to iterate over the grid items with
65282        auto row / column several times. This changes makes us do that in a very simple,
65283        not-yet-conformant way. While touching this code, the distinction between grid-auto-flow
65284        none and row / column was better drawn (and enforced).
65285
65286        * rendering/RenderGrid.cpp:
65287        (WebCore::RenderGrid::resolveGridPositionFromStyle):
65288        Made it illegal to call resolveGridPositionFromStyle if the grid track is auto and
65289        grid-auto-flow is not none. This would catch bad use of the function.
65290
65291        (WebCore::RenderGrid::maximumIndexInDirection):
65292        Updated to bail out if the grid track is auto. Also improved the comment.
65293
65294        (WebCore::RenderGrid::placeItemsOnGrid):
65295        Updated the function to do several iterations. Also handled the grid-auto-flow: none
65296        case differently as it shouldn't need the extra iteration(s).
65297
652982013-02-19  David Hyatt  <hyatt@apple.com>
65299
65300        [New Multicolumn] REGRESSION: RenderMultiColumnSets broken by the RenderRegion -> RenderBlock subclassing.
65301        https://bugs.webkit.org/show_bug.cgi?id=110239.
65302
65303        Reviewed by Simon Fraser.
65304
65305        Test: fast/multicol/newmulticol/column-rules-fixed-height.html
65306
65307        * rendering/RenderBlock.cpp:
65308        (WebCore::RenderBlock::columnRectAt):
65309        Make sure the columnGap() in the old multicolumn code is always expressed as a LayoutUnit. This was the
65310        one place where it was still an int.
65311
65312        * rendering/RenderFlowThread.cpp:
65313        (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
65314        Rework the painting of flow thread portions to account for the fact that regions paint at an integral
65315        translation. This means you have to construct clipping around that integral destination. Subpixel layout
65316        regions did not clip correctly as a result of this issue.
65317
65318        * rendering/RenderMultiColumnSet.cpp:
65319        (WebCore::RenderMultiColumnSet::columnRectAt):
65320        Fix the same bug with columnGap() that the old column code has, i.e., one spot where it was an int.
65321
65322        (WebCore::RenderMultiColumnSet::paintObject):
65323        RenderMultiColumnSet should be using paintObject and not paint and it needs to check for visibility
65324        and phases now that it is a RenderBlock subclass.
65325
65326        (WebCore::RenderMultiColumnSet::paintColumnRules):
65327        Fix the bug that Opera guys fixed in the old multi-column code. They didn't patch the new code, so this
65328        takes care of that.
65329
65330        * rendering/RenderMultiColumnSet.h:
65331        (RenderMultiColumnSet):
65332        Change to use paintObject instead of paint.
65333
653342013-02-19  Branimir Lambov  <blambov@google.com>
65335
65336        Fix 'slice' aspect ratio calculation
65337        https://bugs.webkit.org/show_bug.cgi?id=99984
65338
65339        Reviewed by Dirk Schulze.
65340
65341        Previously the calculation for the 'slice' aspect ratio would incorrectly calculate the
65342        source rect location based on the destination rect offset. This caused our source rect to be
65343        incorrect, and sometimes render outside the visible area completely. After this patch
65344        our implementation matches the implementation of both Gecko and Presto.
65345
65346        The relevant spec section:
65347        http://www.w3.org/TR/SVG/single-page.html#coords-PreserveAspectRatioAttribute
65348
65349        Tests: svg/as-image/image-preserveAspectRatio-all.svg
65350               svg/filters/feImage-preserveAspectRatio-all.svg
65351
65352        * svg/SVGPreserveAspectRatio.cpp:
65353        (WebCore::SVGPreserveAspectRatio::transformRect):
65354
653552013-02-19  Kentaro Hara  <haraken@google.com>
65356
65357        [V8] ScriptRunner::runCompiledScript() should return Handle<Value>() when OOM occurs
65358        https://bugs.webkit.org/show_bug.cgi?id=110254
65359
65360        Reviewed by Adam Barth.
65361
65362        Chromium bug: https://code.google.com/p/chromium/issues/detail?id=176951
65363
65364        Currently ScriptRunner::runCompiledScript() calls
65365        ASSERT(script.IsEmpty()) when OOM occurs. The Chromium bug is
65366        hitting the ASSERT(). The ASSERT() does not make sense at all.
65367        Instead, we should return an empty handle when OOM occurs.
65368
65369        No tests. The bug happens only when OOM occurs.
65370
65371        * bindings/v8/ScriptRunner.cpp:
65372        (WebCore::ScriptRunner::runCompiledScript):
65373
653742013-02-19  Elliott Sprehn  <esprehn@chromium.org>
65375
65376        Support both MutationObserver and WebKitMutationObserver
65377        https://bugs.webkit.org/show_bug.cgi?id=109776
65378
65379        Reviewed by Ojan Vafai.
65380
65381        We should allow new MutationObserver now that we support parser generated
65382        mutations. This leaves the old prefixed constructor in until we decide
65383        people don't depend on it.
65384
65385        Test: fast/dom/MutationObserver/mutation-observer-prefix.html
65386
65387        * page/DOMWindow.idl:
65388
653892013-02-19  Elliott Sprehn  <esprehn@chromium.org>
65390
65391        Remove RenderText::updateText
65392        https://bugs.webkit.org/show_bug.cgi?id=109991
65393
65394        Reviewed by Eric Seidel.
65395
65396        There's no reason for the generic RenderText::updateText virtual hook
65397        anymore now that r143060 made RenderQuote stop setting dirty bits during
65398        layout since the hook is only used by RenderCounter.
65399
65400        Instead add updateCounterIfNeeded and make it clear this is a hack for
65401        counters.
65402
65403        * rendering/RenderBlockLineLayout.cpp:
65404        (WebCore::updateCounterIfNeeded): Added, not handles the counter specific hack.
65405        (WebCore::dirtyLineBoxesForRenderer):
65406        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
65407        * rendering/RenderCounter.cpp:
65408        (WebCore::RenderCounter::updateCounter):
65409        * rendering/RenderCounter.h:
65410        (RenderCounter):
65411        * rendering/RenderQuote.cpp:
65412        (WebCore::RenderQuote::styleDidChange):
65413        (WebCore::RenderQuote::updateDepth):
65414        * rendering/RenderQuote.h:
65415        (RenderQuote):
65416        * rendering/RenderText.h:
65417        (RenderText):
65418
654192013-02-19  Tony Chang  <tony@chromium.org>
65420
65421        Border changes on tables with collapsed borders doesn't relayout table cells
65422        https://bugs.webkit.org/show_bug.cgi?id=109774
65423
65424        Reviewed by David Hyatt.
65425
65426        Test: fast/table/border-collapsing/dynamic-border-width-change.html
65427
65428        Changes to border top and border bottom on table rows also changes the size
65429        of the table cell causing a relayout to be needed.
65430
65431        * rendering/RenderTableRow.cpp:
65432        (WebCore::borderWidthChanged): Also include border top and bottom.
65433        (WebCore::RenderTableRow::styleDidChange): Remove logical from the helper function name.
65434
654352013-02-19  Kentaro Hara  <haraken@chromium.org>
65436
65437        Unreviewed. Rebaselined run-bindings-tests.
65438
65439        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
65440        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
65441        * bindings/scripts/test/JS/JSTestObj.cpp:
65442        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
65443
654442013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
65445
65446        [GTK][AC] Implement matrix transform animation with clutter ac backend
65447        https://bugs.webkit.org/show_bug.cgi?id=109848
65448
65449        Reviewed by Gustavo Noronha Silva.
65450
65451        Clutter 1.12 doesn't support additive transform animations yet, so the combination
65452        of two or more transformations(such as rotation after translation) runs unexpectedly.
65453        So we use a matrix transformation instead for the case.
65454
65455        Covered by existing animation tests.
65456
65457        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
65458        (WebCore::getValueFunctionNameForTransformOperation):
65459        (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
65460        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
65461        (WebCore::toClutterActorPropertyString): Add actor property "transform"
65462        (WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
65463        (WebCore):
65464        (WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
65465        (WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
65466        (WebCore::PlatformClutterAnimation::setToValue): ditto.
65467        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
65468        (WebCore::PlatformClutterAnimation::addTransformTransition):
65469        * platform/graphics/clutter/PlatformClutterAnimation.h:
65470        (PlatformClutterAnimation):
65471        * platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
65472        (WebCore::TransformationMatrix::TransformationMatrix):
65473        (WebCore):
65474        * platform/graphics/transforms/TransformationMatrix.h:
65475        (TransformationMatrix):
65476
654772013-02-19  Kassy Coan  <kassycoan@chromium.org>
65478
65479        Update FeatureObserver on top level navigation in addition to page destruction.
65480        https://bugs.webkit.org/show_bug.cgi?id=109874
65481
65482        Reviewed by Adam Barth.
65483
65484        No new tests. Only effect is to histogram more frequently.
65485
65486        * loader/FrameLoader.cpp:
65487        (WebCore::FrameLoader::dispatchDidCommitLoad):
65488        * page/FeatureObserver.cpp:
65489        (WebCore::FeatureObserver::~FeatureObserver):
65490        (WebCore):
65491        (WebCore::FeatureObserver::updateMeasurements):
65492        (WebCore::FeatureObserver::didCommitLoad):
65493        * page/FeatureObserver.h:
65494        (FeatureObserver):
65495
654962013-02-19  Morten Stenshorne  <mstensho@opera.com>
65497
65498        Remove unnecessary (and problematic) copy-constructor from LayoutUnit
65499        https://bugs.webkit.org/show_bug.cgi?id=110121
65500
65501        This copy constructor does what a default copy constructor would do, so
65502        it's not necessary. Furthermore, this copy constructor is the only
65503        reason why LayoutUnit becomes non-POD, and that triggers a gdb bug,
65504        making it impossible to do things like "print location()" when inside
65505        some RenderBlock, for instance.
65506
65507        Gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=15154 reported.
65508
65509        Reviewed by Benjamin Poulain.
65510
65511        No tests. Apart from dealing with buggy debuggers, this is just code cleanup.
65512
65513        * platform/LayoutUnit.h:
65514
655152013-02-19  Emil A Eklund  <eae@chromium.org>
65516
65517        LayoutUnit::epsilon shouldn't be necessary to place floats
65518        https://bugs.webkit.org/show_bug.cgi?id=94000
65519
65520        Reviewed by Levi Weintraub.
65521        
65522        Currently, to get float placement correct, we need to have an
65523        epsilon tolerance in RenderBlock::computeLogicalLocationForFloat
65524        for the width of the line to fit them on. This really shouldn't
65525        be necessary, and probably indicates we're losing precision
65526        elsewhere.
65527        
65528        Remove epsilon as it no longer appears to be needed. All layout
65529        tests pass without it.
65530
65531        No new tests, covered by existing tests.
65532
65533        * rendering/RenderBlock.cpp:
65534        (WebCore::RenderBlock::computeLogicalLocationForFloat):
65535
655362013-02-19  Tim Volodine  <timvolodine@chromium.org>
65537
65538        Text Autosizing: prevent oscillation of font sizes during autosizing
65539        https://bugs.webkit.org/show_bug.cgi?id=108205
65540
65541        Reviewed by Kenneth Rohde Christiansen.
65542
65543        On some websites autosized font-sizes oscillate due to layouts caused by
65544        hovering or incremental page loading (and on other sites font sizes do
65545        eventually stabilize, but it takes many layouts before they reach a steady
65546        size). To prevent all these cases, we no longer allow the autosizing
65547        multiplier to change after it has been set (to a value other than 1).
65548
65549        This won't always give exactly the same results, but testing on 2000 top
65550        sites shows that this makes little difference in practice, and it prevents
65551        these very jarring cases. As a happy side-effect, this speeds up layouts
65552        as font sizes change less.
65553
65554        Test: fast/text-autosizing/oscillation-javascript-fontsize-change.html
65555
65556        * page/FrameView.cpp:
65557        (WebCore::FrameView::setFrameRect):
65558        * page/Settings.cpp:
65559        (WebCore::Settings::setTextAutosizingFontScaleFactor):
65560        * rendering/TextAutosizer.cpp:
65561        (WebCore::TextAutosizer::recalculateMultipliers):
65562        (WebCore):
65563        (WebCore::TextAutosizer::processContainer):
65564        * rendering/TextAutosizer.h:
65565        (TextAutosizer):
65566
655672013-02-19  Youenn Fablet  <youennf@gmail.com>
65568
65569        [EFL][DRT] http/tests/loading/307-after-303-after-post.html times out
65570        https://bugs.webkit.org/show_bug.cgi?id=93214
65571
65572        Ensured that GET verb is consistently used for any request
65573        coming after a redirection that triggers switching to GET.
65574
65575        Reviewed by Martin Robinson.
65576
65577        * platform/network/soup/ResourceHandleSoup.cpp:
65578        (WebCore::doRedirect):
65579
655802013-02-19  Andras Becsi  <andras.becsi@digia.com>
65581
65582        [Qt] Fix compilation if Qt was configured with -no-rtti
65583        https://bugs.webkit.org/show_bug.cgi?id=110234
65584
65585        Reviewed by Noam Rosenthal.
65586
65587        Availability of dynamic_cast should be checked.
65588
65589        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
65590        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
65591
655922013-02-18  Alexey Proskuryakov  <ap@apple.com>
65593
65594        Unregistered blob URLs have incorrect MIME type
65595        https://bugs.webkit.org/show_bug.cgi?id=110166
65596
65597        Reviewed by Sam Weinig.
65598
65599        * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::shouldUseInnerURL): Added a FIXME.
65600
65601        * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnError):
65602        Pass an accurate MIME type (for a delegate to see).
65603
656042013-02-19  Joshua Bell  <jsbell@chromium.org>
65605
65606        IndexedDB: additional checks on LevelDB decoding
65607        https://bugs.webkit.org/show_bug.cgi?id=109711
65608
65609        Reviewed by Tony Chang.
65610
65611        Watch out for decoding errors caused by corrupted data, and exit various
65612        decode/compare operations earlier.
65613
65614        Covered by existing LayoutTests and Chromium's webkit_unit_tests
65615
65616        * Modules/indexeddb/IDBLevelDBCoding.cpp:
65617        (WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
65618        (WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
65619        (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
65620        (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
65621        (WebCore::IDBLevelDBCoding::compare): Plumb through "ok".
65622        (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
65623        (WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
65624        (WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
65625        * Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.
65626
656272013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
65628
65629        [GTK][AC] Implement keyframe animations with clutter ac backend
65630        https://bugs.webkit.org/show_bug.cgi?id=110057
65631
65632        Reviewed by Gustavo Noronha Silva.
65633
65634        This patch brings accelerated keyframe animation with clutter to WebKitGtk+.
65635        Changes of GraphicsLayerClutter are based on GraphicsLayerCA. But major changes
65636        of PlatformClutterAnimation are implemented with clutter keyframe transition apis.
65637        See http://developer.gnome.org/clutter/stable/ClutterKeyframeTransition.html
65638
65639        Covered by existing animation tests.
65640
65641        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
65642        (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
65643        (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
65644        (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
65645        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
65646        (WebCore::toClutterActorPropertyString):
65647        (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
65648        (WebCore::PlatformClutterAnimation::setTimingFunction):
65649        (WebCore::PlatformClutterAnimation::setValues):
65650        (WebCore::PlatformClutterAnimation::setKeyTimes):
65651        (WebCore::PlatformClutterAnimation::setTimingFunctions):
65652        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
65653        (WebCore):
65654        (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
65655        (WebCore::PlatformClutterAnimation::addOpacityTransition):
65656        (WebCore::PlatformClutterAnimation::addTransformTransition):
65657        (WebCore::PlatformClutterAnimation::addAnimationForKey):
65658        (WebCore::PlatformClutterAnimation::removeAnimationForKey):
65659        * platform/graphics/clutter/PlatformClutterAnimation.h:
65660        (PlatformClutterAnimation):
65661
656622013-02-19  Claudio Saavedra  <csaavedra@igalia.com>
65663
65664        [harfbuzz] Crash in harfbuzz related code
65665        https://bugs.webkit.org/show_bug.cgi?id=110145
65666
65667        Reviewed by Martin Robinson.
65668
65669        Patch by Behdad Esfahbod <behdad@google.com>
65670
65671        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
65672        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Ask harfbuzz
65673        to guess the segment properties.
65674
656752013-02-19  Pavel Podivilov  <podivilov@chromium.org>
65676
65677        Web Inspector: release backtrace object group on each step.
65678        https://bugs.webkit.org/show_bug.cgi?id=110223
65679
65680        Reviewed by Pavel Feldman.
65681
65682        * inspector/InspectorDebuggerAgent.cpp:
65683        (WebCore):
65684        (WebCore::InspectorDebuggerAgent::stepOver):
65685        (WebCore::InspectorDebuggerAgent::stepInto):
65686        (WebCore::InspectorDebuggerAgent::stepOut):
65687
656882013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
65689
65690        Unreviewed, rolling out r142975.
65691        http://trac.webkit.org/changeset/142975
65692        https://bugs.webkit.org/show_bug.cgi?id=110225
65693
65694        Introduces hard-to-reproduce crashes upon inspected page
65695        navigation on Mac (Requested by apavlov on #webkit).
65696
65697        * dom/DocumentStyleSheetCollection.cpp:
65698        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
65699        * inspector/Inspector.json:
65700        * inspector/InspectorCSSAgent.cpp:
65701        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
65702        (WebCore::InspectorCSSAgent::clearFrontend):
65703        (WebCore::InspectorCSSAgent::enable):
65704        (WebCore::InspectorCSSAgent::getAllStyleSheets):
65705        (WebCore::InspectorCSSAgent::collectStyleSheets):
65706        (WebCore::InspectorCSSAgent::bindStyleSheet):
65707        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
65708        (WebCore::InspectorCSSAgent::detectOrigin):
65709        (WebCore::InspectorCSSAgent::buildObjectForRule):
65710        * inspector/InspectorCSSAgent.h:
65711        (InspectorCSSAgent):
65712        * inspector/InspectorInstrumentation.cpp:
65713        (WebCore):
65714        * inspector/InspectorInstrumentation.h:
65715        (WebCore):
65716        (InspectorInstrumentation):
65717        * inspector/front-end/CSSStyleModel.js:
65718        (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
65719        (WebInspector.CSSStyleModelResourceBinding.prototype.):
65720        (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
65721        (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
65722        (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetIdForResource):
65723        (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
65724        (WebInspector.CSSStyleModelResourceBinding.prototype.headersLoaded):
65725        (WebInspector.CSSStyleModelResourceBinding.prototype._requestViaInspectorResource):
65726        (WebInspector.CSSStyleModelResourceBinding.prototype._getOrCreateInspectorResource):
65727        (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
65728        * inspector/front-end/SASSSourceMapping.js:
65729        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
65730        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
65731        * inspector/front-end/StylesSidebarPane.js:
65732        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
65733        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
65734        * inspector/front-end/StylesSourceMapping.js:
65735        (WebInspector.StyleContentBinding.prototype.callback):
65736        (WebInspector.StyleContentBinding.prototype.setStyleContent):
65737        (WebInspector.StyleContentBinding.prototype.):
65738        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
65739
657402013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
65741
65742        RenderGrid::computedUsedBreadthOfGridTracks can read past m_grid's size
65743        https://bugs.webkit.org/show_bug.cgi?id=110126
65744
65745        Reviewed by Ojan Vafai.
65746
65747        The issue comes from how we store the column information inside m_grid.
65748        Because m_grid is a Vector of rows, we could lose the column information
65749        if we had no row, no grid item but some columns defined in CSS. As the
65750        logic would assume that our row / column size would be greater than what
65751        the style defines explicitely, we would access past our Vector's boundary.
65752
65753        The fix is to ensure that we have at least a row so that we can store the
65754        column information in every case. This fix is overly broad as it also forces
65755        the grid to have one column, which shouldn't be an issue.
65756
65757        Test: fast/css-grid-layout/grid-element-empty-row-column.html
65758
65759        * rendering/RenderGrid.cpp:
65760        (WebCore::RenderGrid::maximumIndexInDirection):
65761        Forced this function to return at least one as the maximum index so that
65762        m_grid has at least one row / column.
65763
65764        (WebCore::RenderGrid::placeItemsOnGrid):
65765        Added a ASSERT that m_grid is bigger than the explicit grid-rows / grid-columns.
65766        Also changed an existing ASSERT to use gridWasPopulated for consistency and changed
65767        the code not to call gridRowCount as it would ASSERT (we are in the middle of populating
65768        the grid).
65769
65770        * rendering/RenderGrid.h:
65771        (WebCore::RenderGrid::gridWasPopulated):
65772        Added this helper function.
65773
65774        (WebCore::RenderGrid::gridColumnCount):
65775        Replaced a now unneeded branch with an ASSERT. As placeItemsOnGrid should be called
65776        prior to read m_grid, this change should be fine.
65777
65778        (WebCore::RenderGrid::gridRowCount):
65779        Added an ASSERT.
65780
657812013-02-19  Sergio Villar Senin  <svillar@igalia.com>
65782
65783        [Soup] Use synchronous calls to close completely processed streams
65784        https://bugs.webkit.org/show_bug.cgi?id=107432
65785
65786        Reviewed by Martin Robinson.
65787
65788        There is no need to close already processed streams in asynchronous
65789        calls since they won't block. Using the synchronous call will save
65790        us some code and unnecessary asynchronous burden. This is kind of
65791        a code refactor so no new tests needed.
65792
65793        * platform/network/soup/ResourceHandleSoup.cpp:
65794        (WebCore):
65795        (WebCore::redirectSkipCallback):
65796        (WebCore::readCallback):
65797
657982013-02-19  Andrey Adaikin  <aandrey@chromium.org>
65799
65800        Web Inspector: [Canvas] use timeline's didBeginFrame for marking frame end calls
65801        https://bugs.webkit.org/show_bug.cgi?id=110130
65802
65803        Reviewed by Pavel Feldman.
65804
65805        In Web Inspector canvas profiler use timeline's didBeginFrame for marking frame end calls instead of an ad-hoc timeout-based solution.
65806
65807        * inspector/InjectedScriptCanvasModule.cpp:
65808        (WebCore::InjectedScriptCanvasModule::markFrameEnd):
65809        (WebCore):
65810        * inspector/InjectedScriptCanvasModule.h:
65811        (InjectedScriptCanvasModule):
65812        * inspector/InjectedScriptCanvasModuleSource.js:
65813        (.):
65814        * inspector/InspectorCanvasAgent.cpp:
65815        (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
65816        (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
65817        (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
65818        (WebCore::InspectorCanvasAgent::frameNavigated):
65819        (WebCore::InspectorCanvasAgent::didBeginFrame):
65820        (WebCore):
65821        * inspector/InspectorCanvasAgent.h:
65822        (InspectorCanvasAgent):
65823        * inspector/InspectorController.cpp:
65824        (WebCore::InspectorController::didBeginFrame):
65825
658262013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
65827
65828        Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.
65829        https://bugs.webkit.org/show_bug.cgi?id=110204
65830
65831        Reviewed by Pavel Feldman.
65832
65833        Extracted FileSystemWorkspaceProvider from IsolatedFileSystemManager to take care of managing workspace projects and projectDelegates.
65834        Replaced FileMapping.urlForURI with urlForPath method that does not need any information about workspace structure anymore.
65835
65836        Test: inspector/file-system-project.html
65837
65838        * inspector/front-end/FileMapping.js:
65839        (WebInspector.FileMapping.prototype.urlForPath):
65840        * inspector/front-end/FileSystemProjectDelegate.js:
65841        (WebInspector.FileSystemProjectDelegate):
65842        (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
65843        (WebInspector.FileSystemProjectDelegate.prototype.populate):
65844        (WebInspector.FileSystemWorkspaceProvider):
65845        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
65846        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
65847        * inspector/front-end/IsolatedFileSystem.js:
65848        (WebInspector.IsolatedFileSystem):
65849        (WebInspector.IsolatedFileSystem.prototype.name):
65850        (WebInspector.IsolatedFileSystem.prototype.rootURL):
65851        * inspector/front-end/IsolatedFileSystemManager.js:
65852        (WebInspector.IsolatedFileSystemManager):
65853        (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
65854        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
65855        (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
65856        (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
65857        * inspector/front-end/inspector.js:
65858
658592013-02-19  Andrey Adaikin  <aandrey@chromium.org>
65860
65861        Web Inspector: [Canvas] do not replace replay image with spinner icon
65862        https://bugs.webkit.org/show_bug.cgi?id=110213
65863
65864        Reviewed by Pavel Feldman.
65865
65866        Otherwise it's visually hard to see changes in the replay image. Instead show a small spinner icon in the bottom right corner.
65867
65868        * inspector/front-end/CanvasProfileView.js:
65869        (WebInspector.CanvasProfileView):
65870        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
65871        * inspector/front-end/canvasProfiler.css:
65872        (#canvas-replay-image-container):
65873        (.canvas-debug-info):
65874        (.canvas-spinner-icon):
65875
658762013-02-19  Andrey Adaikin  <aandrey@chromium.org>
65877
65878        Web Inspector: [Canvas] UI: tweak replay control buttons behavior
65879        https://bugs.webkit.org/show_bug.cgi?id=110207
65880
65881        Reviewed by Pavel Feldman.
65882
65883        New behavior for control buttons in the Canvas profiler.
65884        - The NextCall button (~StepInto) on a node group should expand it and move into its first child (instead of expanding and moving into the next node group)
65885        - The NextDrawCall button (~StepOver) should move to a next node that has children (instead of just iterating call group nodes, ignoring frame nodes).
65886        - The ReplayLast button should select the last expanded node (instead of always selecting last frame group node).
65887
65888        * inspector/front-end/CanvasProfileView.js:
65889        (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
65890        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
65891        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
65892
658932013-02-19  Andrei Bucur  <abucur@adobe.com>
65894
65895        [CSS Regions] Assertion in RenderFlowThread::removeRenderBoxRegionInfo
65896        https://bugs.webkit.org/show_bug.cgi?id=109914
65897
65898        Reviewed by David Hyatt.
65899
65900        This patch moves a part of the invalidation operations inside the RenderFlowThread::invalidateRegions call. The maps
65901        are cleared anyway at layout time but doing this earlier makes sure the flow thread is in a more consistent state
65902        (the RenderFlowThread object has both the region chain invalidated and the regions information cleared).
65903
65904        RenderFlowThread::removeRenderBoxRegionInfo will check if the region chain is invalidated. If true, it means the
65905        flow thread has a layout scheduled and the regions information is not yet reliable. In this case we just return from the
65906        function and wait for the layout to cleanup the box information.
65907
65908        Test: fast/regions/remove-box-info-assert.html
65909
65910        * rendering/RenderFlowThread.cpp:
65911        (WebCore::RenderFlowThread::removeRegionFromThread):
65912        (WebCore::RenderFlowThread::invalidateRegions):
65913        (WebCore):
65914        (WebCore::RenderFlowThread::layout):
65915        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
65916        * rendering/RenderFlowThread.h:
65917        * rendering/RenderNamedFlowThread.cpp:
65918        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
65919
659202013-02-19  Alberto Garcia  <agarcia@igalia.com>
65921
65922        Fix build broekn by r142988.
65923        https://bugs.webkit.org/show_bug.cgi?id=109530
65924
65925        Unreviewed. Build fix.
65926
65927        Properly add shortMonthFormat() to the LocaleNone class.
65928
65929        * platform/text/LocaleNone.cpp:
65930        (LocaleNone):
65931        (WebCore::LocaleNone::shortMonthFormat):
65932
659332013-02-19  Anton Vayvod  <avayvod@chromium.org>
65934
65935        [Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.
65936        https://bugs.webkit.org/show_bug.cgi?id=109825
65937
65938        Enhancement of the approach introduced in https://bugs.webkit.org/show_bug.cgi?id=109573.
65939        Instead of using the same text size multiplier for all narrow descendants of any autosizing
65940        cluster, group the descendants by how much narrower they are than the cluster's
65941        |blockContainingAllText| and process each group separately with a different multiplier for
65942        each one.
65943        For example, we want nested comments on the page to be autosized as a group but separately
65944        from a sidebar on the same page.
65945
65946        Reviewed by Kenneth Rohde Christiansen.
65947
65948        Updated the existing test to verify the patch.
65949
65950        * rendering/TextAutosizer.cpp:
65951        (WebCore::TextAutosizer::processClusterInternal):
65952
65953            Splits the narrow descendants of the autosizing cluster into groups before processing
65954            each group individually.
65955
65956        (WebCore::TextAutosizer::getNarrowDescendantsGroupedByWidth):
65957
65958            Sorts the narrow descendants of the given cluster into groups, combining them by the
65959            difference between their content widths. If sorted by width, two consecutive nodes
65960            belong to the same group if their width difference is no greater than 100 CSS units.
65961
65962        * rendering/TextAutosizer.h:
65963
65964            New method definitions.
65965
659662013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
65967
65968        Web Inspector: Native Memory Instrumentation: show user provided name property of the heap snapshot node.
65969        https://bugs.webkit.org/show_bug.cgi?id=110124
65970
65971        Reviewed by Yury Semikhatsky.
65972
65973        Publish userProvidedName into grid node.
65974
65975        * inspector/front-end/HeapSnapshotGridNodes.js:
65976        (WebInspector.HeapSnapshotGenericObjectNode):
65977        (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
65978        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
65979        * inspector/front-end/HeapSnapshotProxy.js:
65980        (WebInspector.HeapSnapshotWorker):
65981        * inspector/front-end/NativeHeapSnapshot.js:
65982        (WebInspector.NativeHeapSnapshotNode.prototype.serialize):
65983
659842013-02-19  Arpita Bahuguna  <a.bah@samsung.com>
65985
65986        Caret is not displayed when trying to focus inside a contenteditable element containing an empty block.
65987        https://bugs.webkit.org/show_bug.cgi?id=108053
65988
65989        Reviewed by Ryosuke Niwa.
65990
65991        Test: editing/selection/caret-in-div-containing-empty-block.html
65992
65993        * rendering/RenderBox.cpp:
65994        (WebCore::RenderBox::localCaretRect):
65995        When trying to compute the caret rect for the contenteditable div, the
65996        border and the padding were not considered. Because of this, for the
65997        given test case, which had a border defined on the containing div, the
65998        caret was being painted just atop the border, thereby masking it.
65999
66000        Have modified the code to ensure that the computed caret rect takes
66001        into account the border and padding (if any) specified on the box, but only
66002        if the node doesn't have content that shall be skipped for editing.
66003
66004        We do not add border and padding while computing the caret rect for any
66005        element that either has no content or has content that shall be skipped
66006        for editing purposes. This holds true for table elements as well.
66007
66008        This helps avoid the caret displacement previsouly observed before/after
66009        any controls placed within the contenteditable box, when considering
66010        border and padding in computation of the caret rect.
66011
660122013-02-19  Mihnea Ovidenie  <mihnea@adobe.com>
66013
66014        CSSRegions: crash positioned object with inline containing block in flow thread
66015        https://bugs.webkit.org/show_bug.cgi?id=108307
66016
66017        Reviewed by David Hyatt.
66018
66019        The fix for https://bugs.webkit.org/show_bug.cgi?id=69896 allowed positioned blocks work
66020        with variable width regions. However, the information needed for that is available only
66021        when the container used for positioning is a block.
66022
66023        This patch ensures we are using this solution only when the container used for positioning
66024        is a block. This needs to be revisited when we will extend support for other types of boxes
66025        as mentioned in RenderBox::renderBoxRegionInfo.
66026
66027        Test: fast/regions/positioned-object-inline-cb-crash.html
66028
66029        * rendering/RenderBox.cpp:
66030        (WebCore::RenderBox::renderBoxRegionInfo):
66031        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
66032        (WebCore::RenderBox::computePositionedLogicalWidth): Make sure we are using containerBlocks
66033        that are blocks. Add an assert that the type of containerBlock we are using can have
66034        computed RenderBoxRegionInfo.
66035        (WebCore::RenderBox::computePositionedLogicalHeight):
66036        * rendering/RenderBoxModelObject.h:
66037        (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion): This helper method
66038        will return the boxes that may have computed RenderBoxRegionInfo. Currently,
66039        returns true for blocks only.
66040
660412013-02-19  Ryosuke Niwa  <rniwa@webkit.org>
66042
66043        Yet anther JSC build fix after r143304.
66044
66045        * bindings/js/JSDOMBinding.h:
66046        (WebCore::argumentOrNull):
66047
660482013-02-19  Kentaro Hara  <haraken@chromium.org>
66049
66050        Unreviewed build fix. Fixed warning caused by r143305.
66051
66052        * bindings/scripts/CodeGeneratorJS.pm:
66053        (GenerateParametersCheck):
66054        * bindings/scripts/CodeGeneratorV8.pm:
66055        (GenerateParametersCheck):
66056
660572013-02-19  Kentaro Hara  <haraken@chromium.org>
66058
66059        Unreviewed build fix after r143304.
66060
66061        * bindings/js/JSDOMBinding.h:
66062        (WebCore::argumentOrNull):
66063
660642013-02-19  Kentaro Hara  <haraken@chromium.org>
66065
66066        [V8] Remove redundant usage of MAYBE_MISSING_PARAMETER() macro
66067        https://bugs.webkit.org/show_bug.cgi?id=109899
66068
66069        Reviewed by Adam Barth.
66070
66071        Currently:
66072
66073        - MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined) returns args[index].
66074        - MAYBE_MISSING_PARAMETER(args, index, DefaultIsNullString) returns Local<Value>()
66075        if args[index] is missing (i.e. the length of |args| is less than |index|).
66076        It returns args[index] otherwise.
66077
66078        No one other than CodeGeneratorV8.pm uses
66079        MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined). Instead, we simply use
66080        args[index]. We should remove the redundant usage from CodeGeneratorV8.pm too.
66081        The long-name macro has been making generated code less readable.
66082
66083        In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
66084
66085        No tests. No change in behavior.
66086
66087        * bindings/scripts/CodeGeneratorV8.pm:
66088        (GenerateParametersCheck):
66089        * bindings/scripts/test/V8/V8Float64Array.cpp:
66090        (WebCore::Float64ArrayV8Internal::fooCallback):
66091        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
66092        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
66093        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
66094        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
66095        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
66096        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
66097        (WebCore::TestEventTargetV8Internal::itemCallback):
66098        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
66099        * bindings/scripts/test/V8/V8TestInterface.cpp:
66100        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
66101        (WebCore::V8TestInterface::constructorCallback):
66102        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
66103        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
66104        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
66105        (WebCore::V8TestNamedConstructorConstructorCallback):
66106        * bindings/scripts/test/V8/V8TestObj.cpp:
66107        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
66108        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
66109        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
66110        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
66111        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
66112        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
66113        (WebCore::TestObjV8Internal::optionsObjectCallback):
66114        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
66115        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
66116        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
66117        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
66118        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
66119        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
66120        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
66121        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
66122        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
66123        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
66124        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
66125        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
66126        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
66127        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
66128        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
66129        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
66130        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
66131        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
66132        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
66133        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
66134        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
66135        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
66136        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
66137        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
66138        (WebCore::TestObjV8Internal::domStringListFunctionCallback):
66139        (WebCore::TestObjV8Internal::convert1Callback):
66140        (WebCore::TestObjV8Internal::convert2Callback):
66141        (WebCore::TestObjV8Internal::convert4Callback):
66142        (WebCore::TestObjV8Internal::convert5Callback):
66143        (WebCore::TestObjV8Internal::strictFunctionCallback):
66144        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
66145        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
66146        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
66147        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
66148        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
66149        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
66150        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
66151        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
66152        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
66153        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
66154        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
66155        (WebCore::TestTypedefsV8Internal::funcCallback):
66156        (WebCore::TestTypedefsV8Internal::setShadowCallback):
66157        (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
66158        (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
66159        (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
66160        (WebCore::TestTypedefsV8Internal::stringArrayFunction2Callback):
66161        (WebCore::V8TestTypedefs::constructorCallback):
66162        * bindings/v8/V8BindingMacros.h:
66163        (WebCore):
66164        * bindings/v8/custom/V8HistoryCustom.cpp:
66165        (WebCore::V8History::pushStateCallbackCustom):
66166        (WebCore::V8History::replaceStateCallbackCustom):
66167
661682013-02-19  Kentaro Hara  <haraken@chromium.org>
66169
66170        [JSC] MAYBE_MISSING_PARAMETER(..., DefaultIsNullString) macro is redundant
66171        https://bugs.webkit.org/show_bug.cgi?id=109902
66172
66173        Reviewed by Adam Barth.
66174
66175        Currently:
66176
66177        - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined)
66178          returns exec->argument(index).
66179        - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsNullString)
66180          returns JSValue() if exec->argument(index) is missing
66181          (i.e. the length of the argument is less than index).
66182          It returns exec->argument(index) otherwise.
66183
66184        No one other than CodeGeneratorJS.pm uses
66185        MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined).
66186        Instead, we simply use exec->argument(index). We should remove
66187        the redundant usage in CodeGeneratorJS.pm too. The long-name macro
66188        has been making generated code less readable.
66189
66190        In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
66191
66192        c.f. corresponding V8 bug: https://bugs.webkit.org/show_bug.cgi?id=109899
66193
66194        No tests. No change in behavior.
66195
66196        * bindings/js/JSDOMBinding.h:
66197        (WebCore):
66198        * bindings/scripts/CodeGeneratorJS.pm:
66199        (GenerateParametersCheck):
66200        * bindings/scripts/test/JS/JSFloat64Array.cpp:
66201        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
66202        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
66203        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
66204        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
66205        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
66206        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
66207        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
66208        (WebCore::jsTestEventTargetPrototypeFunctionItem):
66209        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
66210        * bindings/scripts/test/JS/JSTestInterface.cpp:
66211        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
66212        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
66213        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
66214        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
66215        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
66216        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
66217        * bindings/scripts/test/JS/JSTestObj.cpp:
66218        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
66219        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
66220        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
66221        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
66222        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
66223        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
66224        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
66225        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
66226        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
66227        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
66228        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
66229        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
66230        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
66231        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
66232        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
66233        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
66234        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
66235        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
66236        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
66237        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
66238        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
66239        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
66240        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
66241        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
66242        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
66243        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
66244        (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
66245        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
66246        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
66247        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
66248        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
66249        (WebCore::jsTestObjPrototypeFunctionConvert1):
66250        (WebCore::jsTestObjPrototypeFunctionConvert2):
66251        (WebCore::jsTestObjPrototypeFunctionConvert4):
66252        (WebCore::jsTestObjPrototypeFunctionConvert5):
66253        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
66254        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
66255        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
66256        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
66257        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
66258        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
66259        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
66260        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
66261        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
66262        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
66263        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
66264        (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
66265        (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList):
66266        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
66267        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
66268        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
66269        (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
66270        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
66271        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
66272        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
66273        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
66274        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
66275
662762013-02-18  Hayato Ito  <hayato@chromium.org>
66277
66278        Make EventDispatcher take an Event object in its constructor.
66279        https://bugs.webkit.org/show_bug.cgi?id=109898
66280
66281        Reviewed by Dimitri Glazkov.
66282
66283        Re-landing r143145, which caused a crash when deltaX and deltaY of a PlatformWheelEvent are both zero.
66284
66285        Fixed a crash by early exiting in EventDispatcher::dispatchEvent(Node*, PassRefPtr<EventDispatcher*>)
66286        if mediator's event() returns null.
66287
66288        Also Added a layout test to catch this kind of crash in the future.
66289
66290        Test: fast/events/platform-wheelevent-with-delta-zero-crash.html
66291
66292        * dom/EventDispatchMediator.cpp:
66293        (WebCore::EventDispatchMediator::dispatchEvent):
66294        * dom/EventDispatcher.cpp:
66295        (WebCore::EventDispatcher::dispatchEvent):
66296        (WebCore::EventDispatcher::EventDispatcher):
66297        (WebCore::EventDispatcher::ensureEventPath):
66298        (WebCore::EventDispatcher::dispatchSimulatedClick):
66299        (WebCore::EventDispatcher::dispatch):
66300        (WebCore::EventDispatcher::dispatchEventPreProcess):
66301        (WebCore::EventDispatcher::dispatchEventAtCapturing):
66302        (WebCore::EventDispatcher::dispatchEventAtTarget):
66303        (WebCore::EventDispatcher::dispatchEventAtBubbling):
66304        (WebCore::EventDispatcher::dispatchEventPostProcess):
66305        * dom/EventDispatcher.h:
66306        (EventDispatcher):
66307        (WebCore::EventDispatcher::node):
66308        (WebCore::EventDispatcher::event):
66309        * dom/FocusEvent.cpp:
66310        (WebCore::FocusEventDispatchMediator::dispatchEvent):
66311        (WebCore::BlurEventDispatchMediator::dispatchEvent):
66312        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
66313        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
66314        * dom/GestureEvent.cpp:
66315        (WebCore::GestureEventDispatchMediator::dispatchEvent):
66316        * dom/MouseEvent.cpp:
66317        (WebCore::MouseEventDispatchMediator::dispatchEvent):
66318        * dom/WheelEvent.cpp:
66319        (WebCore::WheelEventDispatchMediator::dispatchEvent):
66320        Assert event() rather than an early exit since this code path should be hit only when event() is non-null.
66321
663222013-02-18  Takashi Sakamoto  <tasak@google.com>
66323
66324        :before/:after pseudo elements do not always apply to the proper element
66325        https://bugs.webkit.org/show_bug.cgi?id=93925
66326
66327        Reviewed by Dimitri Glazkov.
66328
66329        Disable sharing a style with siblings if :after or :before pseudo style
66330        is unique.
66331
66332        Test: fast/css/before-after-pseudo-class.html
66333
66334        * css/StyleResolver.cpp:
66335        (WebCore::StyleResolver::canShareStyleWithElement):
66336        Added a new condition, hasUniquePseudoStyle.
66337        * rendering/style/RenderStyle.cpp:
66338        (WebCore::RenderStyle::hasUniquePseudoStyle):
66339        Added to check whether any pseudo style has unique bit or not.
66340        (WebCore):
66341        * rendering/style/RenderStyle.h:
66342
663432013-02-18  Andy Estes  <aestes@apple.com>
66344
66345        Focusing a new frame (via window.focus()) should blur the active element in the current frame
66346        https://bugs.webkit.org/show_bug.cgi?id=110172
66347
66348        Reviewed by Ryosuke Niwa.
66349
66350        When a change in the focused node crosses a frame boundary, WebKit
66351        doesn't always succeed in blurring the old focused node before focusing
66352        the new one.
66353
66354        Each document remembers its focused node, and a Page-scoped
66355        FocusController remembers the focused frame. If a new focused node is
66356        in a different frame than the focused frame, FocusController tells the
66357        old frame's document to clear its focused node before focusing the new
66358        one (and remembering the new frame).
66359
66360        Unfortunately, web content can confuse FocusController by calling
66361        window.focus() at the wrong time. Since window.focus() changes
66362        FocusController's focused frame without focusing a new node,
66363        FocusController won't think that a frame boundary is being crossed if a
66364        node in this frame is later focused. Therefore it won't clear the old
66365        frame's focused node (it won't even know which frame contained the old
66366        focused node), causing at least two bugs:
66367
66368        1) The node in the old frame will not receive a blur event.
66369        2) Calling document.activeElement on the main frame will return the
66370           previously focused node, but the HTML5 spec says it should return
66371           the frame owner element if a subframe has focus.
66372
66373        Fix both of these bugs by explicitly clearing the current frame's
66374        focused node if window.focus() changes the focused frame. This fix
66375        carries some compatibility risk by changing a long-standing behavior
66376        of the engine (we've had this bug since the beginning of the project,
66377        AFAICT). On the upside, it matches the behavior of both Firefox and IE,
66378        matches what HTML5 says about subframe focus, and fixes at least one
66379        well-known enterprise web app.
66380
66381        Tests: fast/dom/HTMLDocument/active-element-frames.html
66382               fast/frames/frame-focus-blurs-active-element.html
66383
66384        * page/DOMWindow.cpp:
66385        (WebCore::DOMWindow::focus): If the frame being focused is not the same
66386        as the currently focused frame, clear the currently focused frame's
66387        focused node.
66388
663892013-02-18  Simon Fraser  <simon.fraser@apple.com>
66390
66391        Clean up the boolean argument to visibleContentRect
66392        https://bugs.webkit.org/show_bug.cgi?id=110167
66393
66394        Reviewed by Simon Fraser.
66395
66396        Replace the boolean argument to visibleContentRect() with
66397        an enum.
66398
66399        No behavior change.
66400
66401        * WebCore.exp.in:
66402        * dom/Document.cpp:
66403        (WebCore::Document::viewportSize):
66404        * inspector/InspectorOverlay.cpp:
66405        (WebCore::InspectorOverlay::update):
66406        * page/DOMWindow.cpp:
66407        (WebCore::DOMWindow::innerHeight):
66408        (WebCore::DOMWindow::innerWidth):
66409        * page/FrameView.cpp:
66410        (WebCore::FrameView::calculateScrollbarModesForLayout):
66411        (WebCore::FrameView::layout):
66412        (WebCore::FrameView::performPostLayoutTasks):
66413        (WebCore::FrameView::windowClipRect):
66414        * page/SpatialNavigation.cpp:
66415        (WebCore::canScrollInDirection):
66416        * platform/ScrollView.cpp:
66417        (WebCore::ScrollView::unscaledVisibleContentSize):
66418        (WebCore::ScrollView::visibleContentRect):
66419        (WebCore::ScrollView::layoutSize):
66420        (WebCore::ScrollView::updateScrollbars):
66421        (WebCore::ScrollView::paint):
66422        * platform/ScrollView.h:
66423        * platform/ScrollableArea.cpp:
66424        (WebCore::ScrollableArea::visibleContentRect):
66425        * platform/ScrollableArea.h:
66426        * rendering/RenderDialog.cpp:
66427        (WebCore::RenderDialog::layout):
66428        * rendering/RenderLayer.cpp:
66429        (WebCore::RenderLayer::maximumScrollPosition):
66430        (WebCore::RenderLayer::visibleContentRect):
66431        * rendering/RenderLayer.h:
66432        * rendering/RenderLayerCompositor.cpp:
66433        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
66434        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
66435
664362013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
66437
66438        That didn't work either. Just make it public. This is why I hate nested classes. They just don't work.
66439
66440        * rendering/RenderBlock.h:
66441        (RenderBlock):
66442
664432013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
66444
66445        Windows build fix. Apparently Visual Studio still has a lot of bugs with respect to nested classes.
66446        Work around it by directly instantiating the class inside createFloatingObjects.
66447
66448        * rendering/RenderBlock.cpp:
66449        (WebCore::RenderBlock::createFloatingObjects): Directly instantiate FloatingObjects.
66450        * rendering/RenderBlock.h:
66451        (RenderBlock): Moved the declaration of createFloatingObjects up.
66452        (FloatingObjects::FloatingObjects):
66453
664542013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
66455
66456        Merge handleSpecialChild into layoutBlockChildren
66457        https://bugs.webkit.org/show_bug.cgi?id=110165
66458
66459        Reviewed by Darin Adler.
66460
66461        Merge handleSpecialChild, handlePositionedChild, and handleFloatingChild into layoutBlockChildren
66462        to make the semantics of the code clear and to get rid of the outdated comment about how there are
66463        four types of four types of special children.
66464
66465        * rendering/RenderBlock.cpp:
66466        (WebCore::RenderBlock::layoutBlockChildren):
66467        * rendering/RenderBlock.h:
66468        (RenderBlock):
66469
664702013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
66471
66472        Encapsulate FloatingObject's constructor inside create
66473        https://bugs.webkit.org/show_bug.cgi?id=110169
66474
66475        Reviewed by Darin Adler.
66476
66477        Added FloatingObject::create and made FloatingObject's constructor private.
66478        Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
66479
66480        * rendering/RenderBlock.cpp:
66481        (WebCore::RenderBlock::insertFloatingObject):
66482        (WebCore::RenderBlock::addOverhangingFloats):
66483        (WebCore::RenderBlock::addIntrudingFloats):
66484        (WebCore::RenderBlock::ensureFloatingObjects):
66485        (WebCore::RenderBlock::FloatingObjects::create):
66486        (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
66487        * rendering/RenderBlock.h:
66488        (FloatingObjects):
66489        (RenderBlock):
66490
664912013-02-18  Anders Carlsson  <andersca@apple.com>
66492
66493        Add a DefaultHash for RefPtr<SecurityOrigin>
66494        https://bugs.webkit.org/show_bug.cgi?id=110170
66495
66496        Reviewed by Andreas Kling.
66497
66498        Remove all explicit uses of SecurityOriginHash.
66499
66500        * Modules/webdatabase/DatabaseTracker.h:
66501        * Modules/webdatabase/OriginQuotaManager.h:
66502        * loader/appcache/ApplicationCacheStorage.cpp:
66503        (WebCore::ApplicationCacheStorage::getOriginsWithCache):
66504        * loader/cache/MemoryCache.h:
66505        * page/SecurityOriginHash.h:
66506        * storage/StorageNamespaceImpl.h:
66507        (StorageNamespaceImpl):
66508
665092013-02-18  David Hyatt  <hyatt@apple.com>
66510
66511        Padding and border changes don't trigger the relayout of children in some cases.
66512        https://bugs.webkit.org/show_bug.cgi?id=109639.
66513
66514        Reviewed by Ryosuke Niwa.
66515
66516        The fix for this bug was way too general and involved putting code into RenderBox. Since
66517        RenderBox makes no assumptions about what kind of layout system might derive from it, it
66518        was incorrect to just mark all children as needing layout whenever borders and padding
66519        changed widths.
66520        
66521        This patch takes the two cases handled by the original code and makes them more
66522        specialized down in subclasses, i.e., RenderBlock and RenderTableRow. RenderBlock has
66523        been refined to only check if children aren't inline and to also not invalidate
66524        floats or irrelevant positioned objects that might not even have this block as their
66525        containing block.
66526        
66527        The RenderTableRow code is specialized to only care about collapsing borders and
66528        to only check borders rather than padding. It also requires that a child be a cell
66529        in order to do the invalidation.
66530
66531        Covered by existing tests, since this is just specializing the code to more precisely
66532        cover the test cases that have already been written.
66533
66534        Longer term, it should be layout code that figures this stuff out rather than style
66535        change code, but that involves more dramatic changes that can wait.
66536
66537        Test: fast/block/positioning/border-change-relayout-test.html
66538
66539        * rendering/RenderBlock.cpp:
66540        (WebCore::borderOrPaddingLogicalWidthChanged):
66541        (WebCore):
66542        (WebCore::RenderBlock::styleDidChange):
66543        * rendering/RenderBox.cpp:
66544        (WebCore):
66545        (WebCore::RenderBox::styleDidChange):
66546        * rendering/RenderTableRow.cpp:
66547        (WebCore::borderLogicalWidthChanged):
66548        (WebCore):
66549        (WebCore::RenderTableRow::styleDidChange):
66550
665512013-02-18  Mark Lam  <mark.lam@apple.com>
66552
66553        Small follow up to r143271: Fix SQLTransaction leak.
66554        https://bugs.webkit.org/show_bug.cgi?id=110052.
66555
66556        Reviewed by Geoffrey Garen.
66557
66558        Applied Geoff's suggestion nullify m_frontend sooner for greater
66559        code clarity. Also added some comments about m_frontend.
66560
66561        No new tests.
66562
66563        * Modules/webdatabase/SQLTransactionBackend.cpp:
66564        (WebCore::SQLTransactionBackend::doCleanup):
66565        * Modules/webdatabase/SQLTransactionBackend.h:
66566        (SQLTransactionBackend):
66567
665682013-02-18  Geoffrey Garen  <ggaren@apple.com>
66569
66570        Shrank the SourceProvider cache
66571        https://bugs.webkit.org/show_bug.cgi?id=110158
66572
66573        Reviewed by Oliver Hunt.
66574
66575        Test: fast/js/regress/nested-function-parsing.html
66576
66577        No need to keep statistics on cache size, since we're going to throw it
66578        away no matter what.
66579
66580        * WebCore.order:
66581        * bindings/js/CachedScriptSourceProvider.h:
66582        (CachedScriptSourceProvider):
66583        (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
66584        * loader/cache/CachedScript.cpp:
66585        (WebCore::CachedScript::destroyDecodedData):
66586        (WebCore):
66587        (WebCore::CachedScript::reportMemoryUsage):
66588        * loader/cache/CachedScript.h:
66589        (CachedScript):
66590
665912013-02-18  peavo@outlook.com  <peavo@outlook.com>
66592
66593        [Curl] The function cookiesForDOM() does not behave correctly.
66594        https://bugs.webkit.org/show_bug.cgi?id=109923
66595
66596        Reviewed by Brent Fulgham.
66597
66598        The cookiesForDOM() function should return a list of matching cookies, both persistent and session cookies.
66599
66600        * platform/network/curl/CookieJarCurl.cpp:
66601        (WebCore::readCurlCookieToken): Added function to read next token from Curl cookie string.
66602        (WebCore::addMatchingCurlCookie): Added function to add matching cookies to cookie list.
66603        (WebCore::setCookiesFromDOM): Add domain and path from url to cookie if not already set.
66604        (WebCore::cookiesForDOM): Return a list of matching cookies, both session and persistent cookies.
66605
666062013-02-17  Mark Lam  <mark.lam@apple.com>
66607
66608        Fix SQLTransaction leak.
66609        https://bugs.webkit.org/show_bug.cgi?id=110052.
66610
66611        Reviewed by Geoffrey Garen.
66612
66613        With https://bugs.webkit.org/show_bug.cgi?id=104750, there is now a circular
66614        reference between SQLTransaction and its backend. The clean up process needs
66615        to be fixed to explicitly break this reference cycle.
66616
66617        The 5 phases of the SQLTransaction (and backend) phases and their clean up
66618        actions are:
66619
66620        Phase 1. After Birth, before scheduling
66621        - During shutdown, DatabaseThread::databaseThread() calls
66622          DatabaseBackendAsync::close(). DatabaseBackendAsync::close() iterates
66623          DatabaseBackendAsync::m_transactionQueue and calls
66624          SQLtransactionBackend::notifyDatabaseThreadIsShuttingDown() on each
66625          transaction there.
66626
66627        Phase 2. After scheduling, before state AcquireLock
66628        - ~DatabaseTask() calls SQLtransactionBackend's
66629          notifyDatabaseThreadIsShuttingDown().
66630
66631        Phase 3. After state AcquireLock, before "lockAcquired"
66632        - During shutdown, DatabaseThread::databaseThread() calls
66633          SQLTransactionCoordinator::shutdown(), which calls
66634          SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown().
66635
66636        Phase 4: After "lockAcquired", before state CleanupAndTerminate
66637        - Same as Phase 3.
66638
66639        Phase 5: After state CleanupAndTerminate
66640        - state CleanupAndTerminate calls SQLTransactionBackend::doCleanup().
66641
66642        See comment at the top of SQLTransactionBackend.cpp for more details.
66643
66644        Other supporting changes:
66645        - Moved Database::close() to the DatabaseBackendAsync.
66646        - Moved the "if already cleaned up" check from SQLTransactionBackend's
66647          notifyDatabaseThreadIsShuttingDown() to doCleanup().
66648        - Added a check to prevent SQLTransactionCoordinator's releaseLock()
66649          from running when it's shutting down.
66650
66651        No new tests.
66652
66653        * Modules/webdatabase/Database.cpp:
66654        * Modules/webdatabase/Database.h:
66655        * Modules/webdatabase/DatabaseBackendAsync.cpp:
66656        (WebCore::DatabaseBackendAsync::close): Move from Database.cpp.
66657        * Modules/webdatabase/DatabaseBackendAsync.h:
66658        * Modules/webdatabase/DatabaseTask.cpp:
66659        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
66660        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::~DatabaseTransactionTask):
66661        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
66662        * Modules/webdatabase/DatabaseTask.h:
66663        (DatabaseBackendAsync::DatabaseTransactionTask):
66664        * Modules/webdatabase/DatabaseThread.cpp:
66665        (WebCore::DatabaseThread::databaseThread):
66666        * Modules/webdatabase/SQLTransactionBackend.cpp:
66667        (WebCore::SQLTransactionBackend::doCleanup):
66668        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
66669        (WebCore::SQLTransactionBackend::cleanupAndTerminate):
66670        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
66671        (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
66672        (WebCore::SQLTransactionCoordinator::acquireLock):
66673        (WebCore::SQLTransactionCoordinator::releaseLock):
66674        (WebCore::SQLTransactionCoordinator::shutdown):
66675        * Modules/webdatabase/SQLTransactionCoordinator.h:
66676        (SQLTransactionCoordinator):
66677
666782013-02-18  David Kilzer  <ddkilzer@apple.com>
66679
66680        Fix WebCore Xcode project
66681
66682        * WebCore.xcodeproj/project.pbxproj: Fix path for CDMPrivate.h.
66683
666842013-02-18  Julien Chaffraix  <jchaffraix@webkit.org>
66685
66686        [CSS Grid Layout] Refactor grid position resolution code to support an internal grid representation
66687        https://bugs.webkit.org/show_bug.cgi?id=109718
66688
66689        Reviewed by Ojan Vafai.
66690
66691        In order to support auto placement (where we can't infer a grid item's position from its style),
66692        we need to have 2 code paths:
66693        - One that places the elements on the grid representation.
66694        - One that reuse the grid representation to return the position.
66695
66696        This code path implements this split so that we can add auto placement in a follow-up patch(es).
66697        Also in order to avoid a O(n^2) behavior [walking over our grid to find a grid item's position],
66698        the cached position code path needed an efficient way to find the grid items -> position mapping.
66699
66700        Refactoring, covered by existing tests.
66701
66702        * rendering/RenderGrid.cpp:
66703        (WebCore::RenderGrid::cachedGridCoordinate):
66704        (WebCore::RenderGrid::resolveGridPositionFromStyle):
66705        These methods implements the above split. The first one
66706        reuses our cached information whereas the other one is
66707        used to build the cache.
66708
66709        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
66710        (WebCore::RenderGrid::layoutGridItems):
66711        Added some code to clear the grid items' position.
66712
66713        (WebCore::RenderGrid::findChildLogicalPosition):
66714        (WebCore::RenderGrid::logicalContentHeightForChild):
66715        Updated these functions to use cachedGridPosition.
66716
66717        (WebCore::RenderGrid::maximumIndexInDirection):
66718        Added a comment about why we don't use cachedGridPosition.
66719
66720        (WebCore::RenderGrid::insertItemIntoGrid):
66721        Added this helper function to insert into the grid and
66722        cache the position in the reverse lookup map.
66723
66724        (WebCore::RenderGrid::placeItemsOnGrid):
66725        Updated to call insertItemIntoGrid. Also added an ASSERT
66726        similar to m_grid.
66727
66728        (WebCore::RenderGrid::clearGrid):
66729        Added this helper function to clear our grid structure.
66730
66731        * rendering/RenderGrid.h:
66732        (GridCoordinate):
66733        (WebCore::RenderGrid::GridCoordinate::GridCoordinate):
66734        Added this POD to hold the coordinates in our reverse map.
66735
667362013-02-18  Stephen Chenney  <schenney@chromium.org>
66737
66738        feFlood incorrectly applied color-interpolation-filters
66739        https://bugs.webkit.org/show_bug.cgi?id=109985
66740
66741        Reviewed by Dirk Schulze.
66742
66743        The SVG spec defines the color-interpolation-filters property for all
66744        filter effect elements in order to control cases where a color is
66745        based on some arithmetic computation on other colors. For example,
66746        when computing gradients or blending colors. feFlood simply fills a
66747        region with the given color, and that given color is always defined to
66748        be in sRGB space, so the feFlood result should always be sRGB.
66749
66750        The new behavior matches both Opera and Firefox.
66751
66752        Tests: svg/filters/feFlood-color-interpolation-expected.svg
66753               svg/filters/feFlood-color-interpolation.svg
66754
66755        * platform/graphics/filters/FEFlood.cpp:
66756        (WebCore::FEFlood::platformApplySoftware): Force the color mode to be
66757        sRGB before returning.
66758
667592013-02-18  Mark Lam  <mark.lam@apple.com>
66760
66761        Introduced AbstractSQLStatement and AbstractSQLStatementBackend.
66762        https://bugs.webkit.org/show_bug.cgi?id=110148.
66763
66764        Reviewed by Geoff Garen.
66765
66766        This is part of the webdatabase refactoring for webkit2.
66767        - Also changed the frontend and backend to only refer to the
66768          abstract interface of each other.
66769
66770        No new tests.
66771
66772        * GNUmakefile.list.am:
66773        * Modules/webdatabase/AbstractSQLStatement.h: Added.
66774        (AbstractSQLStatement):
66775        (WebCore::AbstractSQLStatement::~AbstractSQLStatement):
66776        * Modules/webdatabase/AbstractSQLStatementBackend.h: Added.
66777        (AbstractSQLStatementBackend):
66778        (WebCore::AbstractSQLStatementBackend::~AbstractSQLStatementBackend):
66779        * Modules/webdatabase/SQLStatement.cpp:
66780        (WebCore::SQLStatement::setBackend):
66781        * Modules/webdatabase/SQLStatement.h:
66782        (SQLStatement):
66783        * Modules/webdatabase/SQLStatementBackend.cpp:
66784        (WebCore::SQLStatementBackend::create):
66785        (WebCore::SQLStatementBackend::SQLStatementBackend):
66786        (WebCore::SQLStatementBackend::frontend):
66787        * Modules/webdatabase/SQLStatementBackend.h:
66788        (SQLStatementBackend):
66789        * Modules/webdatabase/SQLTransaction.cpp:
66790        (WebCore::SQLTransaction::deliverStatementCallback):
66791        * Modules/webdatabase/SQLTransactionBackend.cpp:
66792        (WebCore::SQLTransactionBackend::currentStatement):
66793        (WebCore::SQLTransactionBackend::executeSQL):
66794        * Modules/webdatabase/SQLTransactionBackend.h:
66795        (SQLTransactionBackend):
66796        * Target.pri:
66797        * WebCore.gypi:
66798        * WebCore.vcproj/WebCore.vcproj:
66799        * WebCore.vcxproj/WebCore.vcxproj:
66800        * WebCore.vcxproj/WebCore.vcxproj.filters:
66801        * WebCore.xcodeproj/project.pbxproj:
66802
668032013-02-18  David Kilzer  <ddkilzer@apple.com>
66804
66805        BUILD FIX (r143230): Fix renamed header and implementation of -[WebAccessibilityObjectWrapper accessibilityPostedNotification:]
66806        <http://webkit.org/b/110077>
66807
66808        Fixes the following build failures:
66809
66810            AccessibilityObjectIOS.mm:35:9: fatal error: 'AccessibilityObjectWrapperIOS.h' file not found
66811            #import "AccessibilityObjectWrapperIOS.h"
66812                    ^
66813            1 error generated.
66814
66815            WebAccessibilityObjectWrapperIOS.mm:2051:35: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
66816                if (AXNotificationCallback && notificationString)
66817                                              ^~~~~~~~~~~~~~~~~~
66818                                              notificationType
66819            WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
66820            - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
66821                                                                                            ^
66822            WebAccessibilityObjectWrapperIOS.mm:2052:38: error: use of undeclared identifier 'notificationString'; did you mean 'notificationType'?
66823                    AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
66824                                                 ^~~~~~~~~~~~~~~~~~
66825                                                 notificationType
66826            WebAccessibilityObjectWrapperIOS.mm:2049:81: note: 'notificationType' declared here
66827            - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
66828                                                                                            ^
66829            WebAccessibilityObjectWrapperIOS.mm:2052:38: error: cannot initialize a parameter of type 'NSString *' with an lvalue of type 'WebCore::AXObjectCache::AXNotification'
66830                    AXNotificationCallback(self, notificationString, AXPostedNotificationContext);
66831                                                 ^~~~~~~~~~~~~~~~~~
66832            WebAccessibilityObjectWrapperIOS.mm:2049:81: error: conflicting parameter types in implementation of 'accessibilityPostedNotification:': 'NSString *' vs 'WebCore::AXObjectCache::AXNotification' [-Werror,-Wmismatched-parameter-types]
66833            - (void)accessibilityPostedNotification:(WebCore::AXObjectCache::AXNotification)notificationType
66834                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
66835            WebAccessibilityObjectWrapperBase.h:48:53: note: previous definition is here
66836            - (void)accessibilityPostedNotification:(NSString *)notificationName;
66837                                                     ~~~~~~~~~~ ^
66838            4 errors generated.
66839
66840        * accessibility/ios/AccessibilityObjectIOS.mm: Fix name of
66841        included header.
66842        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
66843        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
66844        Fix implementation to match declaration.
66845
66846        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
66847        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
66848        * accessibility/ios/AXObjectCacheIOS.mm:
66849        - Clean up #endif comments.
66850
668512013-02-18  Jer Noble  <jer.noble@apple.com>
66852
66853        EME: Add a CDMPrivate implementation using AVFoundation.
66854        https://bugs.webkit.org/show_bug.cgi?id=109739
66855
66856        Reviewed by Eric Carlson.
66857
66858        Add a CDMPrivate implementation using AVFoundation, similar to the EME v1 implementation
66859        in MediaPlayerPrivateAVFoundationObjC. This requires passing the AVAssetResourceLoadingRequest
66860        from the MediaPlayerPrivateAVFoundationObjC instance to CDMSessionAVFoundation. To do so
66861        without adding platform-specific API to MediaPlayer, add a static map from MediaPlayer ->
66862        MediaPlayerPrivateAVFoundationObjC instances to be used to vend the AVAssetResourceLoadingRequest
66863        to CDMSessionAVFoundation.
66864
66865        * Modules/encryptedmedia/CDM.cpp:
66866        (WebCore::installedCDMFactories): Add the factory for CDMPrivateAVFoundation.
66867        * Modules/encryptedmedia/CDM.h:
66868        * Modules/encryptedmedia/CDMPrivateAVFoundation.h: Added.
66869        (WebCore::CDMPrivateAVFoundation::create): Simple factory method.
66870        (WebCore::CDMPrivateAVFoundation::~CDMPrivateAVFoundation): Simple virtual destructor.
66871        (WebCore::CDMPrivateAVFoundation::cdm): Simple getter.
66872        (WebCore::CDMPrivateAVFoundation::CDMPrivateAVFoundation): Simple constructor.
66873        * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Added.
66874        (WebCore::CDMSessionAVFoundation::~CDMSessionAVFoundation): Simple destructor.
66875        (WebCore::CDMPrivateAVFoundation::supportsKeySytem): Check whether the given key system is supported.
66876        (WebCore::CDMPrivateAVFoundation::supportsMIMEType): Check whether the given MIME type is supported.
66877        (WebCore::CDMPrivateAVFoundation::createSession): Return a new CDMSessionAVFoundation.
66878        (WebCore::CDMSessionAVFoundation::CDMSessionAVFoundation): Simple constructor.
66879        (WebCore::CDMSessionAVFoundation::generateKeyRequest): Retrieve the AVAssetResourceLoadingRequest
66880            from the MediaPlayer, and use it to generate a key request.
66881        (WebCore::CDMSessionAVFoundation::releaseKeys): No-op.
66882        (WebCore::CDMSessionAVFoundation::update): Add the passed in key to the AVAssetResourceLoadingRequest.
66883        * WebCore.xcodeproj/project.pbxproj:
66884        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
66885        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
66886        (WebCore::playerToPrivateMap): Lazily instantiate static map.
66887        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Register with the playerToPrivateMap.
66888        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Unregister from same.
66889        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Also send keyNeeded event in ENCRYPTED_MEDIA_V2.
66890        (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData): Convert this 
66891            method from file-static to class static.
66892        (WebCore::MediaPlayerPrivateAVFoundationObjC::takeRequestForPlayerAndKeyURI): Pull the AVAssetResourceLoadingRequest
66893            from m_keyURIToRequestMap and return it, if present.
66894
668952013-02-18  Philip Rogers  <pdr@google.com>
66896
66897        Fix scaling of tiled SVG backgrounds on high-dpi displays
66898        https://bugs.webkit.org/show_bug.cgi?id=110047
66899
66900        Reviewed by Dirk Schulze.
66901
66902        This patch fixes the scaling of SVG when used for drawing patterns. Tiled/patterend SVG
66903        images are first drawn into an image buffer and then the image buffer is used to stamp
66904        out tiles. Because it is a raster source, the size of the image buffer needs to
66905        be scaled to the final resolution of the device. After scaling the image buffer, the
66906        source rect and pattern transforms need to be adjusted so they align in device pixel
66907        coordinates. This adjustment was not done before this patch, causing pixelated rendering.
66908
66909        Additionally, a FIXME has been added due to webkit.org/b/110065 and the image buffer
66910        has been manually scaled (using "zoomedAndScaledContainerRect") instead of relying
66911        on the ImageBuffer's resolutionScale parameter.
66912
66913        Test: svg/as-background-image/tiled-background-image.html
66914
66915        * svg/graphics/SVGImage.cpp:
66916        (WebCore::SVGImage::drawPatternForContainer):
66917
66918            Note that fixing the FIXME does not change that the source rect and transform need
66919            to be adjusted for page scale.
66920
669212013-02-18  David Hyatt  <hyatt@apple.com>
66922
66923        Make seamless iframes paginate properly in their enclosing document's pagination context.
66924        https://bugs.webkit.org/show_bug.cgi?id=106125
66925        <rdar://problem/12922720> Text in iframe is clipped while printing
66926
66927        Reviewed by Simon Fraser.
66928
66929        Added new tests in fast/multicol and fast/region.
66930
66931        * rendering/RenderBlock.cpp:
66932        (WebCore::RenderBlock::clampToStartAndEndRegions):
66933        Don't clamp when the RenderView is the containing block of an object in a RenderFlowThread.
66934
66935        * rendering/RenderObject.cpp:
66936        (WebCore::RenderObject::containerForRepaint):
66937        Don't attempt any repaint container antics when we're in a seamless iframe, since the ancestor
66938        document will actually do the handoff into the flow thread.
66939
66940        * rendering/RenderView.cpp:
66941        (WebCore::enclosingSeamlessRenderer):
66942        Heper function to test for an enclosing seamless iframe.
66943        
66944        (WebCore::RenderView::addChild):
66945        Subclass addChild on RenderView to properly set the inRenderFlowThread state for a seamless
66946        child document so thta it will check regions.
66947
66948        (WebCore::RenderView::initializeLayoutState):
66949        New helper method for setting up the initial layout state of a RenderView. If inside a seamless
66950        paginated ancestor, set up the appropriate pagination information so the child document
66951        knows about it. This method will expand to inherit info about line grids and exclusions eventually
66952        also.
66953
66954        (WebCore::RenderView::layout):
66955        Now calls initializeLayoutState to set up the layout state.
66956
66957        * rendering/RenderView.h:
66958        (WebCore::RenderView::pageLogicalHeight):
66959        (WebCore::RenderView::setPageLogicalHeight):
66960        (RenderView):
66961        Fix the type of the page logical height methods to be LayoutUnit instead of unsigned.
66962
669632013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
66964
66965        Unreviewed, rolling out r143145.
66966        http://trac.webkit.org/changeset/143145
66967        https://bugs.webkit.org/show_bug.cgi?id=110143
66968
66969        Causes frequent crashes. (Requested by eric_carlson on
66970        #webkit).
66971
66972        * dom/EventDispatchMediator.cpp:
66973        (WebCore::EventDispatchMediator::dispatchEvent):
66974        * dom/EventDispatcher.cpp:
66975        (WebCore::EventDispatcher::dispatchEvent):
66976        (WebCore::EventDispatcher::EventDispatcher):
66977        (WebCore::EventDispatcher::ensureEventPath):
66978        (WebCore::EventDispatcher::dispatchSimulatedClick):
66979        (WebCore::EventDispatcher::dispatchEventPreProcess):
66980        (WebCore::EventDispatcher::dispatchEventAtCapturing):
66981        (WebCore::EventDispatcher::dispatchEventAtTarget):
66982        (WebCore::EventDispatcher::dispatchEventAtBubbling):
66983        (WebCore::EventDispatcher::dispatchEventPostProcess):
66984        * dom/EventDispatcher.h:
66985        (EventDispatcher):
66986        (WebCore::EventDispatcher::node):
66987        (WebCore):
66988        * dom/FocusEvent.cpp:
66989        (WebCore::FocusEventDispatchMediator::dispatchEvent):
66990        (WebCore::BlurEventDispatchMediator::dispatchEvent):
66991        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
66992        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
66993        * dom/GestureEvent.cpp:
66994        (WebCore::GestureEventDispatchMediator::dispatchEvent):
66995        * dom/MouseEvent.cpp:
66996        (WebCore::MouseEventDispatchMediator::dispatchEvent):
66997
669982013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
66999
67000        [Soup] Free cookies explicitly in loops instead of using GOwnPtr
67001        https://bugs.webkit.org/show_bug.cgi?id=110103
67002
67003        Reviewed by Martin Robinson.
67004
67005        Free cookies explicitly in loops instead of using GOwnPtr for this.
67006        Until now, the code was mixing both styles. This patch makes the
67007        code consistent one way. Adopting list items with GOwnPtr for the
67008        sole purpose to free them makes the freeing less obvious and may
67009        lead to mistakes if someone refactors the code and calls "break;"
67010        to abort loop iteration.
67011
67012        No new tests, no behavior change.
67013
67014        * platform/network/soup/CookieJarSoup.cpp:
67015        (WebCore::getRawCookies):
67016        (WebCore::deleteCookie):
67017        (WebCore::getHostnamesWithCookies):
67018
670192013-02-18  Joseph Pecoraro  <pecoraro@apple.com>
67020
67021        [JSC]: ASSERT in KURL(ParsedURLStringTag) under sourceMapURLForScript
67022        https://bugs.webkit.org/show_bug.cgi?id=109987
67023
67024        Reviewed by Pavel Feldman.
67025
67026        Improved an existing test to cover this.
67027
67028        * bindings/js/ScriptDebugServer.cpp:
67029        (WebCore::ScriptDebugServer::dispatchDidParseSource):
67030        Remove the sourceURL parsing and script.url replacement from the JSC
67031        implementation of ScriptDebugServer. The WebCore inspector code that
67032        this was added for already does this, at a more appropriate time.
67033
670342013-02-18  Mike West  <mkwst@chromium.org>
67035
67036        compareDocumentPosition reports disconnected nodes as following each other
67037        https://bugs.webkit.org/show_bug.cgi?id=108274
67038
67039        Reviewed by Dimitri Glazkov.
67040
67041        jQuery has had to implement their own sorting mechanism in Sizzle[1] due
67042        to Node::compareDocumentPosition always reporting disconnected nodes
67043        as following each other. According to spec[2], we should instead be
67044        indicating that the result is (a) disconnected, (b) implementation
67045        specific, and (c) deterministically ordered.
67046
67047        [1]: https://github.com/jquery/sizzle/commit/1c8aec91284af8d8c14447976235d5dd72b0d75e
67048        [2]: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition
67049
67050        Test: fast/dom/compare-document-position-disconnected-nodes.html
67051
67052        * dom/Node.cpp:
67053        (WebCore::Node::compareDocumentPosition):
67054            After walking the parentNode chain of both Nodes, compare the root.
67055            If the Nodes don't share a root, they're in distinct trees, and
67056            should return as described above. We determine which element
67057            "preceeds" the other in an arbitrary fashion via pointer comparison.
67058
670592013-02-18  Andrey Adaikin  <aandrey@chromium.org>
67060
67061        Web Inspector: [Canvas] fix replay log grouping by frames
67062        https://bugs.webkit.org/show_bug.cgi?id=110122
67063
67064        Reviewed by Pavel Feldman.
67065
67066        Bug: log grouping by frames did not work if a frame end call is not a draw call.
67067        Drive-by: Last draw call group may not contain a draw call. In this case merge it into the previous group.
67068
67069        * inspector/front-end/CanvasProfileView.js:
67070        (WebInspector.CanvasProfileView.prototype._appendCallNode):
67071        (WebInspector.CanvasProfileView.prototype._maybeMergeLastDrawCallGroups):
67072
670732013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
67074
67075        [Soup] Superfluous HashMap check in SocketStreamHandleSoup::getHandleFromId()
67076        https://bugs.webkit.org/show_bug.cgi?id=110107
67077
67078        Reviewed by Martin Robinson.
67079
67080        Remove Superfluous HashMap::contains() call in SocketStreamHandleSoup::getHandleFromId()
67081        as HashMap::get() will already return 0 in this case anyway.
67082
67083        No new tests, no behavior change.
67084
67085        * platform/network/soup/SocketStreamHandleSoup.cpp:
67086        (WebCore):
67087        (WebCore::getHandleFromId):
67088
670892013-02-18  Zan Dobersek  <zdobersek@igalia.com>
67090
67091        Stop placing std::isfinite and std::signbit inside the global scope
67092        https://bugs.webkit.org/show_bug.cgi?id=109817
67093
67094        Reviewed by Darin Adler.
67095
67096        Prefix calls to the isfinite and signbit methods with std:: as the two
67097        methods are no longer being imported into the global scope.
67098
67099        No new tests as there's no change in functionality.
67100
67101        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
67102        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
67103        * bindings/js/JSDOMBinding.cpp:
67104        (WebCore::jsDateOrNull):
67105        * bindings/js/JSDOMBinding.h:
67106        (WebCore::finiteInt32Value):
67107        * bindings/v8/V8Binding.h:
67108        (WebCore::v8DateOrNull):
67109        * css/CSSPrimitiveValue.cpp:
67110        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
67111        * html/BaseDateAndTimeInputType.cpp:
67112        (WebCore::BaseDateAndTimeInputType::parseToNumber):
67113        * html/HTMLInputElement.cpp:
67114        (WebCore::HTMLInputElement::setValueAsNumber):
67115        * html/HTMLMeterElement.cpp:
67116        (WebCore::HTMLMeterElement::setMin):
67117        (WebCore::HTMLMeterElement::setMax):
67118        (WebCore::HTMLMeterElement::setValue):
67119        (WebCore::HTMLMeterElement::setLow):
67120        (WebCore::HTMLMeterElement::setHigh):
67121        (WebCore::HTMLMeterElement::setOptimum):
67122        * html/HTMLProgressElement.cpp:
67123        (WebCore::HTMLProgressElement::value):
67124        (WebCore::HTMLProgressElement::setValue):
67125        (WebCore::HTMLProgressElement::max):
67126        (WebCore::HTMLProgressElement::setMax):
67127        * html/MonthInputType.cpp:
67128        (WebCore::MonthInputType::valueAsDate):
67129        (WebCore::MonthInputType::defaultValueForStepUp):
67130        (WebCore::MonthInputType::parseToNumber):
67131        * html/NumberInputType.cpp:
67132        (WebCore::NumberInputType::typeMismatchFor):
67133        (WebCore::NumberInputType::sanitizeValue):
67134        (WebCore::NumberInputType::hasBadInput):
67135        * html/RangeInputType.cpp:
67136        (WebCore::RangeInputType::typeMismatchFor):
67137        * html/TimeInputType.cpp:
67138        (WebCore::TimeInputType::defaultValueForStepUp):
67139        * html/canvas/CanvasPathMethods.cpp:
67140        (WebCore::CanvasPathMethods::moveTo):
67141        (WebCore::CanvasPathMethods::lineTo):
67142        (WebCore::CanvasPathMethods::quadraticCurveTo):
67143        (WebCore::CanvasPathMethods::bezierCurveTo):
67144        (WebCore::CanvasPathMethods::arcTo):
67145        (WebCore::CanvasPathMethods::arc):
67146        (WebCore::CanvasPathMethods::rect):
67147        * html/canvas/CanvasRenderingContext2D.cpp:
67148        (WebCore::CanvasRenderingContext2D::setLineWidth):
67149        (WebCore::CanvasRenderingContext2D::setMiterLimit):
67150        (WebCore::CanvasRenderingContext2D::setShadowOffsetX):
67151        (WebCore::CanvasRenderingContext2D::setShadowOffsetY):
67152        (WebCore::CanvasRenderingContext2D::setShadowBlur):
67153        (WebCore::lineDashSequenceIsValid):
67154        (WebCore::CanvasRenderingContext2D::setLineDashOffset):
67155        (WebCore::CanvasRenderingContext2D::scale):
67156        (WebCore::CanvasRenderingContext2D::rotate):
67157        (WebCore::CanvasRenderingContext2D::translate):
67158        (WebCore::CanvasRenderingContext2D::transform):
67159        (WebCore::CanvasRenderingContext2D::setTransform):
67160        (WebCore::validateRectForCanvas):
67161        (WebCore::CanvasRenderingContext2D::isPointInPath):
67162        (WebCore::CanvasRenderingContext2D::isPointInStroke):
67163        (WebCore::CanvasRenderingContext2D::drawImage):
67164        (WebCore::CanvasRenderingContext2D::createLinearGradient):
67165        (WebCore::CanvasRenderingContext2D::createRadialGradient):
67166        (WebCore::CanvasRenderingContext2D::createImageData):
67167        (WebCore::CanvasRenderingContext2D::getImageData):
67168        (WebCore::CanvasRenderingContext2D::putImageData):
67169        (WebCore::CanvasRenderingContext2D::drawTextInternal):
67170        * html/parser/HTMLParserIdioms.cpp:
67171        (WebCore::parseToDoubleForNumberType):
67172        * html/shadow/MediaControlElements.cpp:
67173        (WebCore::MediaControlTimelineElement::setDuration):
67174        * html/shadow/MediaControls.cpp:
67175        (WebCore::MediaControls::reset):
67176        * html/shadow/MediaControlsApple.cpp:
67177        (WebCore::MediaControlsApple::reset):
67178        * html/shadow/MediaControlsBlackBerry.cpp:
67179        (WebCore::MediaControlFullscreenTimelineElement::setDuration):
67180        (WebCore::MediaControlsBlackBerry::reset):
67181        * inspector/InspectorValues.cpp:
67182        (WebCore::InspectorBasicValue::writeJSON):
67183        * loader/cache/CachedResource.cpp:
67184        (WebCore::CachedResource::currentAge):
67185        (WebCore::CachedResource::freshnessLifetime):
67186        * page/DOMWindow.cpp:
67187        (WebCore::DOMWindow::adjustWindowRect):
67188        * platform/DateComponents.cpp:
67189        (WebCore::DateComponents::setMillisecondsSinceEpochForDate):
67190        (WebCore::DateComponents::setMillisecondsSinceEpochForDateTime):
67191        (WebCore::DateComponents::setMillisecondsSinceEpochForMonth):
67192        (WebCore::DateComponents::setMillisecondsSinceMidnight):
67193        (WebCore::DateComponents::setMonthsSinceEpoch):
67194        (WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
67195        * platform/Decimal.cpp:
67196        (WebCore::Decimal::fromDouble):
67197        * platform/FileSystem.h:
67198        (WebCore::isValidFileTime):
67199        * platform/LocalizedStrings.cpp:
67200        (WebCore::localizedMediaTimeDescription):
67201        * platform/graphics/cairo/CairoUtilities.cpp:
67202        (WebCore::drawPatternToCairoContext):
67203        * platform/graphics/cairo/PathCairo.cpp:
67204        (WebCore::Path::addArc):
67205        (WebCore::Path::contains):
67206        * platform/graphics/cg/PathCG.cpp:
67207        (WebCore::Path::addArc):
67208        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
67209        (WebCore::FullscreenVideoControllerGStreamer::timeToString):
67210        * platform/graphics/openvg/PathOpenVG.cpp:
67211        (WebCore::Path::addArc):
67212        * platform/graphics/skia/SkiaUtils.h:
67213        (WebCore::WebCoreFloatToSkScalar):
67214        (WebCore::WebCoreDoubleToSkScalar):
67215        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
67216        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::maxTimeSeekable):
67217        * platform/gtk/LocalizedStringsGtk.cpp:
67218        (WebCore::localizedMediaTimeDescription):
67219        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
67220        (timeToString):
67221        * platform/network/ResourceResponseBase.cpp:
67222        (WebCore::parseDateValueInHeader):
67223        * platform/qt/LocalizedStringsQt.cpp:
67224        (WebCore::localizedMediaTimeDescription):
67225        * rendering/RenderFlexibleBox.cpp:
67226        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
67227        * rendering/RenderMediaControlsChromium.cpp:
67228        (WebCore::formatChromiumMediaControlsTime):
67229        * rendering/RenderTheme.cpp:
67230        (WebCore::RenderTheme::formatMediaControlsTime):
67231        * rendering/style/RenderStyle.cpp:
67232        (WebCore::RenderStyle::setFontSize):
67233        * svg/SVGPathParser.cpp:
67234        (WebCore::SVGPathParser::decomposeArcToCubic):
67235        * xml/XPathFunctions.cpp:
67236        (WebCore::XPath::FunRound::round):
67237        * xml/XPathValue.cpp:
67238        (WebCore::XPath::Value::toString):
67239
672402013-02-18  Chris Fleizach  <cfleizach@apple.com>
67241
67242        AX: Make iOS wrapper use the WebAccessibilityObjectBase wrapper
67243        https://bugs.webkit.org/show_bug.cgi?id=110077
67244
67245        Reviewed by David Kilzer.
67246
67247        Make the iOS wrapper a subclass of the shared wrapper so that iOS can re-use code from the Mac.
67248        Rename the iOS file to reflect the class name.
67249
67250        * WebCore.xcodeproj/project.pbxproj:
67251        * accessibility/ios/AXObjectCacheIOS.mm:
67252        (WebCore::AXObjectCache::attachWrapper):
67253        (WebCore::AXObjectCache::postPlatformNotification):
67254        * accessibility/ios/AccessibilityObjectWrapperIOS.h: Removed.
67255        * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Removed.
67256        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.h.
67257        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: Copied from Source/WebCore/accessibility/ios/AccessibilityObjectWrapperIOS.mm.
67258        (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
67259        (-[WebAccessibilityObjectWrapper attachmentView]):
67260        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
67261
672622013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
67263
67264        Unreviewed, rolling out r143210.
67265        http://trac.webkit.org/changeset/143210
67266        https://bugs.webkit.org/show_bug.cgi?id=110128
67267
67268        Still causing some test timeouts (Requested by anttik on
67269        #webkit).
67270
67271        * platform/SharedTimer.h:
67272        (SharedTimer):
67273        (WebCore):
67274        (WebCore::MainThreadSharedTimer::stop):
67275        * platform/ThreadTimers.cpp:
67276        (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
67277        * platform/mac/SharedTimerMac.mm:
67278        (WebCore):
67279        (WebCore::PowerObserver::restartSharedTimer):
67280        (WebCore::setSharedTimerFireInterval):
67281        (WebCore::stopSharedTimer):
67282
672832013-02-18  Vladislav Kaznacheev  <kaznacheev@chromium.org>
67284
67285        Web Inspector: Disable hiding the debugger when it is below the source code
67286        https://bugs.webkit.org/show_bug.cgi?id=110106
67287
67288        Reviewed by Pavel Feldman.
67289
67290        When the "Split horizontally" option is checked in the Sources panel the button responsible for the sidebar
67291        visibility is hidden and the sidebar is force-shown. Also set the "Split sidebar" option default to true.
67292
67293        No new tests.
67294
67295        * inspector/front-end/ScriptsPanel.js:
67296        (WebInspector.ScriptsPanel):
67297        * inspector/front-end/scriptsPanel.css:
67298        (.split-view-horizontal #scripts-debug-sidebar-resizer-widget):
67299
673002013-02-18  Bear Travis  <betravis@adobe.com>
67301
67302        [CSS Exclusions] Support outside-shape layout for shape-inside property
67303        https://bugs.webkit.org/show_bug.cgi?id=102571
67304
67305        Reviewed by David Hyatt.
67306
67307        A shape-inside value of 'outside-shape' should resolve to the value of
67308        the shape-outside property for layout. This patch introduces a helper
67309        method to resolve shape-inside in RenderStyle, and replaces calls to
67310        RenderStyle::shapeInside() when the resolved (layout) value should be
67311        used.
67312
67313        Test: fast/exclusions/shape-inside/shape-inside-outside-shape.html
67314
67315        * rendering/ExclusionShapeInfo.cpp:
67316        (WebCore::::computedShape): Use the resolved shape-inside getter.
67317        * rendering/ExclusionShapeInsideInfo.h:
67318        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Ditto.
67319        (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Ditto.
67320        * rendering/RenderBlock.cpp:
67321        (WebCore::RenderBlock::styleDidChange): Ditto.
67322        (WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
67323        * rendering/style/RenderStyle.h: Add the resolved shape inside getter.
67324
673252013-02-18  Pavel Feldman  <pfeldman@chromium.org>
67326
67327        Web Inspector: hide vertical-sidebar-split in dock-to-right mode behind single experimental flag.
67328        https://bugs.webkit.org/show_bug.cgi?id=110119
67329
67330        Reviewed by Vsevolod Vlasov.
67331
67332        Removed context menus, made it toggle automatically upon dock orientation change.
67333
67334        * inspector/front-end/DockController.js:
67335        (WebInspector.DockController.prototype._toggleDockState):
67336        * inspector/front-end/ElementsPanel.js:
67337        (WebInspector.ElementsPanel):
67338        (WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
67339        (WebInspector.ElementsPanel.prototype._dockSideChanged):
67340        (WebInspector.ElementsPanel.prototype._setVerticalSplit):
67341        * inspector/front-end/ScriptsPanel.js:
67342        (WebInspector.ScriptsPanel):
67343        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
67344        (WebInspector.ScriptsPanel.prototype._dockSideChanged):
67345        * inspector/front-end/Settings.js:
67346        (WebInspector.ExperimentsSettings):
67347        * inspector/front-end/inspector.css:
67348        * inspector/front-end/scriptsPanel.css:
67349        (#scripts-sidebar-stack-pane):
67350        (div.sidebar-pane-stack#scripts-debug-sidebar-contents):
67351        * inspector/front-end/tabbedPane.css:
67352        (.tabbed-pane):
67353
673542013-02-18  ChangSeok Oh  <shivamidow@gmail.com>
67355
67356        [GTK] Fix nits for configuration
67357        https://bugs.webkit.org/show_bug.cgi?id=110083
67358
67359        Reviewed by Martin Robinson.
67360
67361        Remove trailing white space. It has caused annoying warning while configuration.
67362
67363        No new tests since no funtionality change.
67364
67365        * GNUmakefile.list.am:
67366
673672013-02-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
67368
67369        [WebGL][EFL] Refactor GraphicsContext3DPrivate to add support for SharedContext.
67370        https://bugs.webkit.org/show_bug.cgi?id=109988
67371
67372        Reviewed by Kenneth Rohde Christiansen.
67373
67374        Covered by existing WebGL tests.
67375
67376        This patch refactors PlatformContext and GraphicsContext3DPrivate to
67377        add support for Shared Context. This would help share GL resources
67378        between transport surface and offscreen surface without having to worry
67379        about the context state. So far, we used the same drawable as transport
67380        surface and offscreen surface. After this patch we use pixmap surface as
67381        offscreen surface and use shared context to render texture content to
67382        transport surface. This would also align as to how shared surface is implemented
67383        on EFL and Qt ports.
67384
67385        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
67386        (WebCore::GraphicsContext3D::GraphicsContext3D):
67387        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
67388        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
67389        (WebCore):
67390        (WebCore::GraphicsContext3DPrivate::initialize):
67391        (WebCore::GraphicsContext3DPrivate::makeSharedContextCurrent):
67392        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
67393        * platform/graphics/efl/GraphicsContext3DPrivate.h:
67394        (GraphicsContext3DPrivate):
67395        * platform/graphics/opengl/GLPlatformContext.cpp:
67396        (WebCore::GLPlatformContext::initialize):
67397        * platform/graphics/opengl/GLPlatformContext.h:
67398        Needed changes to take shared context into use.
67399
67400        * platform/graphics/opengl/GLPlatformSurface.cpp:
67401        (WebCore::GLPlatformSurface::createOffScreenSurface):
67402        (WebCore::GLPlatformSurface::updateContents):
67403        * platform/graphics/opengl/GLPlatformSurface.h:
67404        (GLPlatformSurface):
67405        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
67406        (WebCore::GLXConfigSelector::GLXConfigSelector):
67407        (WebCore::GLXConfigSelector::visualInfo):
67408        (WebCore::GLXConfigSelector::pixmapContextConfig):
67409        (GLXConfigSelector):
67410        (WebCore::GLXConfigSelector::reset):
67411        * platform/graphics/surfaces/glx/GLXContext.cpp:
67412        Added support to query configiration supporting
67413        pixmap surface.
67414
67415        (WebCore::GLXOffScreenContext::initialize):
67416        * platform/graphics/surfaces/glx/GLXContext.h:
67417        (GLXOffScreenContext):
67418        * platform/graphics/surfaces/glx/GLXSurface.cpp:
67419        (WebCore::GLXTransportSurface::GLXTransportSurface):
67420        (WebCore::GLXTransportSurface::swapBuffers):
67421        (WebCore::GLXOffScreenSurface::GLXOffScreenSurface):
67422        (WebCore::GLXOffScreenSurface::~GLXOffScreenSurface):
67423        (WebCore::GLXOffScreenSurface::initialize):
67424        (WebCore::GLXOffScreenSurface::configuration):
67425        (WebCore::GLXOffScreenSurface::destroy):
67426        (WebCore::GLXOffScreenSurface::freeResources):
67427        (WebCore::GLXOffScreenSurface::setGeometry):
67428        Renamed GLXPBuffer surface as GLXOffScreenSurface.
67429
67430        * platform/graphics/surfaces/glx/GLXSurface.h:
67431        (GLXTransportSurface):
67432        (GLXOffScreenSurface):
67433        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
67434        (WebCore::GraphicsSurfacePrivate::createSurface):
67435        * platform/graphics/surfaces/glx/X11Helper.cpp:
67436        (WebCore::X11Helper::createPixmap):
67437        (WebCore):
67438        (WebCore::X11Helper::destroyPixmap):
67439        (WebCore::X11Helper::createOffScreenWindow):
67440        * platform/graphics/surfaces/glx/X11Helper.h:
67441        (X11Helper):
67442        Added functions to create and destroy pixmap.
67443
674442013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
67445
67446        Web Inspector: Native Memory Instrumentation: Generate meta information for HeapSnapshot parser.
67447        https://bugs.webkit.org/show_bug.cgi?id=110104
67448
67449        Reviewed by Yury Semikhatsky.
67450
67451        The format of Native heap snapshot is slightly different so it should provide its own meta information.
67452
67453
67454        * inspector/HeapGraphSerializer.cpp:
67455        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
67456        (WebCore::HeapGraphSerializer::finish):
67457        (WebCore::HeapGraphSerializer::reportMemoryUsage):
67458        (WebCore::HeapGraphSerializer::registerTypeString):
67459        (WebCore):
67460        * inspector/HeapGraphSerializer.h:
67461        (HeapGraphSerializer):
67462        * inspector/Inspector.json:
67463        * inspector/InspectorMemoryAgent.cpp:
67464        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
67465        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
67466        * inspector/InspectorMemoryAgent.h:
67467        (InspectorMemoryAgent):
67468        * inspector/front-end/HeapSnapshot.js:
67469        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
67470        * inspector/front-end/NativeHeapSnapshot.js:
67471        (WebInspector.NativeHeapSnapshot):
67472
674732013-02-18  Carlos Garcia Campos  <cgarcia@igalia.com>
67474
67475        [GTK] Force single header includes in GObject DOM bindings
67476        https://bugs.webkit.org/show_bug.cgi?id=104676
67477
67478        Reviewed by Xan Lopez.
67479
67480        Only including <webkitdom/webkitdom.h> should be allowed from
67481        apps.
67482
67483        * bindings/scripts/CodeGeneratorGObject.pm:
67484        (GenerateHeader):
67485        * bindings/scripts/gobject-generate-headers.pl:
67486        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
67487        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
67488        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
67489        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
67490        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
67491        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
67492        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
67493        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
67494        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
67495        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
67496        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
67497        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
67498        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
67499        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
67500
675012013-02-16  Antti Koivisto  <antti@apple.com>
67502
67503        Reschedule shared CFRunLoopTimer instead of reconstructing it
67504        https://bugs.webkit.org/show_bug.cgi?id=109765
67505
67506        Reviewed by Andreas Kling.
67507
67508        Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.
67509
67510        * platform/SharedTimer.h:
67511        (WebCore::SharedTimer::willEnterNestedEventLoop):
67512        (WebCore):
67513        (MainThreadSharedTimer):
67514        (WebCore::MainThreadSharedTimer::willEnterNestedEventLoop):
67515        * platform/ThreadTimers.cpp:
67516        (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
67517        * platform/mac/SharedTimerMac.mm:
67518        (WebCore):
67519        (WebCore::PowerObserver::clearSharedTimer):
67520        (WebCore::ensurePowerObserver):
67521        (WebCore::sharedTimer):
67522        (WebCore::reinsertSharedTimer):
67523        
67524            Before entering nested runloop (used for inspector debugger mostly) reconstruct and reinsert the timer. For some reason
67525            the timer doesn't fire otherwise.
67526
67527        (WebCore::setSharedTimerFireInterval):
67528        (WebCore::stopSharedTimer):
67529
675302013-02-18  Alexander Pavlov  <apavlov@chromium.org>
67531
67532        Web Inspector: [Resources] Only remember the tree element selection if explicitly made by user
67533        https://bugs.webkit.org/show_bug.cgi?id=110105
67534
67535        Reviewed by Pavel Feldman.
67536
67537        This change instructs the Resources panel to remember the selected tree element only if it has been
67538        selected by the user (not automatically, like selecting a parent when its child is removed).
67539        All onselect() overrides pass the selectedByUser argument value
67540        to BaseStorageTreeElement.prototype.onselect.
67541        Drive-by: Use === comparisons everywhere.
67542
67543        * inspector/front-end/ResourcesPanel.js:
67544        (WebInspector.ResourcesPanel.prototype._reset): Do not detach [immutable] category views.
67545        (WebInspector.BaseStorageTreeElement.prototype.onselect): Remember itemURL on user gesture only.
67546        (WebInspector.StorageCategoryTreeElement.prototype.onselect):
67547        (WebInspector.FrameTreeElement.prototype.onselect):
67548        (WebInspector.FrameResourceTreeElement.prototype.onselect):
67549        (WebInspector.DatabaseTreeElement.prototype.onselect):
67550        (WebInspector.DatabaseTableTreeElement.prototype.onselect):
67551        (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
67552        (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
67553        (WebInspector.IDBIndexTreeElement.prototype.onselect):
67554        (WebInspector.DOMStorageTreeElement):
67555        (WebInspector.DOMStorageTreeElement.prototype.onselect):
67556        (WebInspector.CookieTreeElement.prototype.onselect):
67557        (WebInspector.ApplicationCacheManifestTreeElement.prototype.onselect):
67558        (WebInspector.ApplicationCacheFrameTreeElement.prototype.onselect):
67559        (WebInspector.FileSystemTreeElement.prototype.onselect):
67560        (WebInspector.FileSystemTreeElement.prototype.clear):
67561        (WebInspector.ResourcesSearchController.prototype.nextSearchResult):
67562
675632013-02-18  Vladislav Kaznacheev  <kaznacheev@chromium.org>
67564
67565        Web Inspector: Color picker should not be available in Computed Styles pane
67566        https://bugs.webkit.org/show_bug.cgi?id=109697
67567
67568        Reviewed by Pavel Feldman.
67569
67570        Refactored PropertiesSection and TreeElement inheritors in StylesSidebarPane.js for cleaner separation
67571        of read-only and editable properties.
67572
67573        * inspector/front-end/StylesSidebarPane.js:
67574        (WebInspector.StylePropertiesSection.prototype.onpopulate):
67575        (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
67576        (WebInspector.ComputedStylePropertiesSection):
67577        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
67578        (WebInspector.BlankStylePropertiesSection):
67579        (WebInspector.StylePropertyTreeElementBase):
67580        (WebInspector.StylePropertyTreeElementBase.prototype.node):
67581        (WebInspector.StylePropertyTreeElementBase.prototype.editablePane):
67582        (WebInspector.StylePropertyTreeElementBase.prototype.onattach):
67583        (WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.linkifyURL):
67584        (WebInspector.StylePropertyTreeElementBase.prototype.updateTitle.):
67585        (WebInspector.StylePropertyTreeElementBase.prototype):
67586        (.event):
67587        (.isRevert):
67588
675892013-02-18  Andrey Adaikin  <aandrey@chromium.org>
67590
67591        Web Inspector: [Canvas] group replay log calls by frames
67592        https://bugs.webkit.org/show_bug.cgi?id=110101
67593
67594        Reviewed by Pavel Feldman.
67595
67596        Group canvas replay log by frames, then by draw calls.
67597
67598        * inspector/InjectedScriptCanvasModuleSource.js:
67599        (.):
67600        * inspector/Inspector.json:
67601        * inspector/front-end/CanvasProfileView.js:
67602        (WebInspector.CanvasProfileView):
67603        (WebInspector.CanvasProfileView.prototype.dispose):
67604        (WebInspector.CanvasProfileView.prototype._appendCallNode):
67605        (WebInspector.CanvasProfileView.prototype._appendDrawCallGroup):
67606
676072013-02-18  Christophe Dumez  <ch.dumez@sisa.samsung.com>
67608
67609        [Soup] CookieJarSoup::deleteCookie() should stop looking for the cookie after it is removed
67610        https://bugs.webkit.org/show_bug.cgi?id=110100
67611
67612        Reviewed by Kenneth Rohde Christiansen.
67613
67614        CookieJarSoup::deleteCookie() retrieves the list of cookies that apply to a given URL, then
67615        iterates through the cookies to find the one with the right name and delete it. However, the
67616        current implementation keeps on comparing cookie names after the cookie was removed. This
67617        patch introduces a "wasDeleted" boolean to stop comparing cookie names after the cookie was
67618        deleted. Note that we cannot break as soon as the cookie is found as we need to keep iterating
67619        so that the cookies get freed by GOwnPtr.
67620
67621        No new tests, no behavior change.
67622
67623        * platform/network/soup/CookieJarSoup.cpp:
67624        (WebCore::deleteCookie):
67625
676262013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
67627
67628        Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
67629        https://bugs.webkit.org/show_bug.cgi?id=109691
67630
67631        Reviewed by Pavel Feldman.
67632
67633        Separate project of certain type is now created for each domain.
67634        UISourceCode path represents a path in the project now.
67635        UISourceCode uri is now calculated based on project id and path.
67636        It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
67637
67638        * inspector/front-end/FileSystemProjectDelegate.js:
67639        (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
67640        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
67641        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
67642        (WebInspector.FileSystemProjectDelegate.prototype._populate):
67643        (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
67644        * inspector/front-end/ScriptSnippetModel.js:
67645        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
67646        * inspector/front-end/SimpleWorkspaceProvider.js:
67647        (WebInspector.SimpleProjectDelegate):
67648        (WebInspector.SimpleProjectDelegate.projectId):
67649        (WebInspector.SimpleProjectDelegate.prototype.id):
67650        (WebInspector.SimpleProjectDelegate.prototype.displayName):
67651        (WebInspector.SimpleProjectDelegate.prototype.addFile):
67652        (WebInspector.SimpleWorkspaceProvider):
67653        (WebInspector.SimpleWorkspaceProvider.splitURL):
67654        (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
67655        (WebInspector.SimpleWorkspaceProvider.uriForURL):
67656        (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
67657        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
67658        (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
67659        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
67660        (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
67661        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
67662        * inspector/front-end/UISourceCode.js:
67663        (WebInspector.UISourceCode.uri):
67664        (WebInspector.UISourceCode.path):
67665        (WebInspector.UISourceCode.prototype.uri):
67666        * inspector/front-end/Workspace.js:
67667        (WebInspector.Project.prototype._fileAdded):
67668        (WebInspector.Project.prototype._fileRemoved):
67669        (WebInspector.Project.prototype.uiSourceCodeForURI):
67670
676712013-02-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
67672
67673        [EFL] Rebaseline failure media tests after r142947
67674        https://bugs.webkit.org/show_bug.cgi?id=109904
67675
67676        Reviewed by Kenneth Rohde Christiansen.
67677
67678        * css/mediaControlsEfl.css: Align time text vertically.
67679        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
67680
676812013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
67682
67683        Web Inspector: Extract FileSystemUtils from FileSystemProjectDelegate as IsolatedFileSystem class.
67684        https://bugs.webkit.org/show_bug.cgi?id=110086
67685
67686        Reviewed by Pavel Feldman.
67687
67688        Extracted IsolatedFileSystem class that could be mocked for tests now.
67689        Renamed IsolatedFileSystemModel to IsolatedFileSystemManager.
67690
67691        * WebCore.gypi:
67692        * WebCore.vcproj/WebCore.vcproj:
67693        * inspector/compile-front-end.py:
67694        * inspector/front-end/FileSystemProjectDelegate.js:
67695        (WebInspector.FileSystemProjectDelegate):
67696        (WebInspector.FileSystemProjectDelegate.prototype.id):
67697        (WebInspector.FileSystemProjectDelegate.prototype.displayName):
67698        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
67699        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
67700        (WebInspector.FileSystemProjectDelegate.prototype._populate):
67701        * inspector/front-end/IsolatedFileSystem.js: Added.
67702        (WebInspector.IsolatedFileSystem):
67703        (WebInspector.IsolatedFileSystem.errorMessage):
67704        (WebInspector.IsolatedFileSystem.prototype.id):
67705        (WebInspector.IsolatedFileSystem.prototype.path):
67706        (WebInspector.IsolatedFileSystem.prototype._requestFileSystem):
67707        (WebInspector.IsolatedFileSystem.prototype.fileSystemLoaded):
67708        (WebInspector.IsolatedFileSystem.prototype.innerCallback):
67709        (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
67710        (WebInspector.IsolatedFileSystem.prototype.fileEntryLoaded):
67711        (WebInspector.IsolatedFileSystem.prototype.fileLoaded):
67712        (WebInspector.IsolatedFileSystem.prototype.readerLoadEnd):
67713        (WebInspector.IsolatedFileSystem.prototype.errorHandler):
67714        (WebInspector.IsolatedFileSystem.prototype.requestFileContent):
67715        (WebInspector.IsolatedFileSystem.prototype.fileWriterCreated.fileTruncated):
67716        (WebInspector.IsolatedFileSystem.prototype.fileWriterCreated):
67717        (WebInspector.IsolatedFileSystem.prototype.writerEnd):
67718        (WebInspector.IsolatedFileSystem.prototype.setFileContent):
67719        (WebInspector.IsolatedFileSystem.prototype.):
67720        (WebInspector.IsolatedFileSystem.prototype.toArray):
67721        (WebInspector.IsolatedFileSystem.prototype._readDirectory):
67722        (WebInspector.IsolatedFileSystem.prototype._requestEntries):
67723        * inspector/front-end/IsolatedFileSystemManager.js: Renamed from Source/WebCore/inspector/front-end/IsolatedFileSystemModel.js.
67724        (WebInspector.IsolatedFileSystemManager):
67725        (WebInspector.IsolatedFileSystemManager.prototype.mapping):
67726        (WebInspector.IsolatedFileSystemManager.prototype.supportsFileSystems):
67727        (WebInspector.IsolatedFileSystemManager.prototype._requestFileSystems):
67728        (WebInspector.IsolatedFileSystemManager.prototype.addFileSystem):
67729        (WebInspector.IsolatedFileSystemManager.prototype.removeFileSystem):
67730        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemsLoaded):
67731        (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
67732        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemPaths):
67733        (WebInspector.IsolatedFileSystemManager.prototype._processPendingFileSystemRequests):
67734        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemAdded):
67735        (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
67736        (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
67737        (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
67738        (WebInspector.IsolatedFileSystemDispatcher):
67739        (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemsLoaded):
67740        (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemRemoved):
67741        (WebInspector.IsolatedFileSystemDispatcher.prototype.fileSystemAdded):
67742        * inspector/front-end/SettingsScreen.js:
67743        (WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
67744        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
67745        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
67746        * inspector/front-end/WebKit.qrc:
67747        * inspector/front-end/inspector.html:
67748        * inspector/front-end/inspector.js:
67749
677502013-02-18  Huang Dongsung  <luxtella@company100.net>
67751
67752        [EFL][WK2] compositing/layer-creation/fixed-position-out-of-view-scaled.html is flaky
67753        https://bugs.webkit.org/show_bug.cgi?id=110059
67754
67755        Reviewed by Kenneth Rohde Christiansen.
67756
67757        Remove the ASSERT check in TextureMapperLayer. This assertion seems
67758        valid because CoordinatedGraphicsScene::adjustPositionForFixedLayers() calls
67759        TextureMapperLayer::setScrollPositionDeltaIfNeeded() when the graphics
67760        layer is a fixed position layer. However, the assertion can be failed
67761        because it is possible that TextureMapperLayer is a non-fixed position
67762        layer when the graphics layer that holds the TextureMapperLayer is a
67763        fixed position layer. When CoordinatedGraphicsScene flushes,
67764        TextureMapperLayer becomes a fixed position layer.
67765
67766        No new tests. No change in behavior.
67767
67768        * platform/graphics/texmap/TextureMapperLayer.cpp:
67769        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
67770
677712013-02-18  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
67772
67773        [WK2][EFL] Unified text checker implementation
67774        https://bugs.webkit.org/show_bug.cgi?id=107682
67775
67776        Reviewed by Anders Carlsson.
67777
67778        No new tests, covered by editing/spelling tests.
67779
67780        * platform/text/TextChecking.h:
67781        (WebCore):
67782        Enabling unified text checker feature for WebKit-EFL.
67783
677842013-02-18  Nico Weber  <thakis@chromium.org>
67785
67786        [chromium/clang] Remove -Wno-return-type-c-linkage
67787        https://bugs.webkit.org/show_bug.cgi?id=110098
67788
67789        Reviewed by Jochen Eisinger.
67790
67791        The one instance where this triggered was removed in
67792        http://trac.webkit.org/changeset/141184 . A clang that has this
67793        warning landed in chromium r182694, so it should be safe to turn
67794        the warning on now.
67795
67796        * WebCore.gyp/WebCore.gyp:
67797
677982013-02-18  Pavel Feldman  <pfeldman@chromium.org>
67799
67800        Web Inspector: provide basic console.table implementation (no [,columns] support)
67801        https://bugs.webkit.org/show_bug.cgi?id=109453
67802
67803        Reviewed by Vsevolod Vlasov.
67804
67805        Test: inspector/console/console-format-table.html
67806
67807        Using console preview infrastructure to support console.table.
67808
67809        * English.lproj/localizedStrings.js:
67810        * inspector/ConsoleAPITypes.h:
67811        * inspector/ConsoleMessage.cpp:
67812        (WebCore::messageTypeValue):
67813        (WebCore::ConsoleMessage::addToFrontend):
67814        * inspector/InjectedScript.cpp:
67815        (WebCore::InjectedScript::wrapObject):
67816        (WebCore):
67817        (WebCore::InjectedScript::wrapTable):
67818        * inspector/InjectedScript.h:
67819        (InjectedScript):
67820        * inspector/InjectedScriptSource.js:
67821        (.):
67822        * inspector/Inspector.json:
67823        * inspector/InspectorDOMAgent.cpp:
67824        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
67825        * inspector/front-end/ConsoleMessage.js:
67826        (WebInspector.ConsoleMessageImpl):
67827        (WebInspector.ConsoleMessageImpl.prototype.willHide):
67828        (WebInspector.ConsoleMessageImpl.prototype._format):
67829        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
67830        (WebInspector.ConsoleMessageImpl.prototype._renderPropertyPreview):
67831        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
67832        * inspector/front-end/ConsoleModel.js:
67833        * inspector/front-end/ConsoleView.js:
67834        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
67835        (WebInspector.ConsoleView.prototype._consoleCleared):
67836        (WebInspector.ConsoleView.prototype._updateMessageList):
67837        (WebInspector.ConsoleCommand.prototype.wasShown):
67838        (WebInspector.ConsoleCommand.prototype.willHide):
67839        (WebInspector.ConsoleGroup.prototype.addMessage):
67840        * inspector/front-end/DataGrid.js:
67841        (.sortDataGrid.comparator):
67842        (.sortDataGrid):
67843        (WebInspector.DataGrid.createSortableDataGrid):
67844        (WebInspector.DataGrid.prototype.renderInline):
67845        * inspector/front-end/DatabaseQueryView.js:
67846        (WebInspector.DatabaseQueryView.prototype._queryFinished):
67847        * inspector/front-end/dataGrid.css:
67848        (.data-grid.inline):
67849        (.data-grid.inline td.corner):
67850        * inspector/front-end/resourcesPanel.css:
67851        (.storage-view > .data-grid):
67852        * page/Console.cpp:
67853        (WebCore::Console::table):
67854        (WebCore):
67855        * page/Console.h:
67856        (Console):
67857        * page/Console.idl:
67858
678592013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
67860
67861        Web Inspector: JavaScriptSourceFrame should inherit UISourceCodeFrame
67862        https://bugs.webkit.org/show_bug.cgi?id=110091
67863
67864        Reviewed by Pavel Feldman.
67865
67866        Removed duplicated code from JavaScriptSourceFrame and made it inherit UISourceCodeFrame.
67867
67868        * inspector/front-end/JavaScriptSourceFrame.js:
67869        (WebInspector.JavaScriptSourceFrame):
67870        (WebInspector.JavaScriptSourceFrame.prototype.onUISourceCodeContentChanged):
67871        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
67872        * inspector/front-end/ScriptsPanel.js:
67873        * inspector/front-end/UISourceCodeFrame.js:
67874        (WebInspector.UISourceCodeFrame.prototype.canEditSource):
67875        (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
67876        (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
67877        (WebInspector.UISourceCodeFrame.prototype.onUISourceCodeContentChanged):
67878        (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
67879
678802013-02-18  Vsevolod Vlasov  <vsevik@chromium.org>
67881
67882        Web Inspector: Remove unused _files field in FileSystemProjectDelegate
67883        https://bugs.webkit.org/show_bug.cgi?id=110082
67884
67885        Reviewed by Pavel Feldman.
67886
67887        * inspector/front-end/FileSystemProjectDelegate.js:
67888        (WebInspector.FileSystemProjectDelegate):
67889        (WebInspector.FileSystemProjectDelegate.prototype._addFile):
67890        (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
67891
678922013-02-18  Pavel Feldman  <pfeldman@chromium.org>
67893
67894        Web Inspector: allow 0 as a formatted parameter in console message.
67895        https://bugs.webkit.org/show_bug.cgi?id=110096
67896
67897        Reviewed by Vsevolod Vlasov.
67898
67899        * inspector/front-end/ConsoleMessage.js:
67900        (WebInspector.ConsoleMessageImpl.prototype.append):
67901        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
67902
679032013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
67904
67905        Unreviewed speculative fix for Chromium Mac.
67906
67907        * WebCore.gypi:
67908
679092013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
67910
67911        Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
67912        https://bugs.webkit.org/show_bug.cgi?id=109554
67913
67914        In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
67915        can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
67916
67917        Drive by fix: I introduced a client interface for the HeapGraphSerializer.
67918        It helps me to do the tests for the serializer.
67919
67920        Reviewed by Yury Semikhatsky.
67921
67922        It is covered by newly added tests in TestWebKitAPI.
67923
67924        * inspector/HeapGraphSerializer.cpp:
67925        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
67926        (WebCore::HeapGraphSerializer::pushUpdate):
67927        (WebCore::HeapGraphSerializer::reportNode):
67928        (WebCore::HeapGraphSerializer::toNodeId):
67929        (WebCore::HeapGraphSerializer::addRootNode):
67930        * inspector/HeapGraphSerializer.h:
67931        (HeapGraphSerializer):
67932        (Client):
67933        (WebCore::HeapGraphSerializer::Client::~Client):
67934        * inspector/InspectorMemoryAgent.cpp:
67935        (WebCore):
67936        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
67937
679382013-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
67939
67940        Unreviewed, rolling out r143100.
67941        http://trac.webkit.org/changeset/143100
67942        https://bugs.webkit.org/show_bug.cgi?id=110088
67943
67944        Breaks file system support in workspace. (Requested by vsevik
67945        on #webkit).
67946
67947        * inspector/front-end/ScriptSnippetModel.js:
67948        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
67949        * inspector/front-end/SimpleWorkspaceProvider.js:
67950        (WebInspector.SimpleProjectDelegate):
67951        (WebInspector.SimpleProjectDelegate.prototype.id):
67952        (WebInspector.SimpleProjectDelegate.prototype.displayName):
67953        (WebInspector.SimpleProjectDelegate.prototype.addFile):
67954        (WebInspector.SimpleWorkspaceProvider):
67955        (WebInspector.SimpleWorkspaceProvider.uriForURL):
67956        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
67957        (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
67958        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
67959        * inspector/front-end/UISourceCode.js:
67960        (WebInspector.UISourceCode.prototype.uri):
67961        * inspector/front-end/Workspace.js:
67962        (WebInspector.Project.prototype._fileAdded):
67963        (WebInspector.Project.prototype._fileRemoved):
67964        (WebInspector.Project.prototype.uiSourceCodeForURI):
67965        (WebInspector.Workspace.prototype.projectForUISourceCode):
67966
679672013-02-15  Eugene Klyuchnikov  <eustas@chromium.org>
67968
67969        Web Inspector: Introduce ProfilesPanelDescriptor.
67970        https://bugs.webkit.org/show_bug.cgi?id=109906
67971
67972        Reviewed by Pavel Feldman.
67973
67974        Some constants/methods should be accesible before ProfilesPanel
67975        is instantiated.
67976
67977        Extracted methods to check if profile is "user-initiated" and what is
67978        its index.
67979
67980        Also profile URL regexp moved to ProfilesPanelDescriptor.
67981
67982        * inspector/front-end/ProfilesPanelDescriptor.js: Added.
67983        * WebCore.gypi: Added ProfilesPanelDescriptor.js
67984        * WebCore.vcproj/WebCore.vcproj: Ditto.
67985        * inspector/compile-front-end.py: Ditto.
67986        * inspector/front-end/WebKit.qrc: Ditto.
67987        * inspector/front-end/inspector.html: Ditto.
67988        * inspector/front-end/HeapSnapshotView.js: Adopted changes.
67989        * inspector/front-end/ProfilesPanel.js: Ditto.
67990        * inspector/front-end/externs.js: Ditto.
67991        * inspector/front-end/inspector.js: Ditto.
67992
679932013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>
67994
67995        Stop passing around SelectorChecker in SelectorQuery, now that it's stack-allocated.
67996        https://bugs.webkit.org/show_bug.cgi?id=110038
67997
67998        Reviewed by Andreas Kling.
67999
68000        No functional changes, covered by existing tests.
68001
68002        * dom/SelectorQuery.cpp:
68003        (WebCore::SelectorDataList::matches): Moved instantiation of SelectorChecker in here.
68004        (WebCore::SelectorDataList::queryAll): Got rid of unneeded SelectorChecker arg.
68005        (WebCore::SelectorDataList::queryFirst): Ditto.
68006        (WebCore::SelectorDataList::execute): Moved instantiation of SelectorChecker in here.
68007        (WebCore::SelectorQuery::matches): Removed instantiation of SelectorChecker here.
68008        (WebCore::SelectorQuery::queryAll): Ditto.
68009        (WebCore::SelectorQuery::queryFirst): Ditto.
68010        * dom/SelectorQuery.h:
68011        (WebCore): Tweaked headers to make SelectorChecker just an implementation detail.
68012        (SelectorDataList): Tweaked decls to remove SelectorChecker args.
68013
680142013-02-17  Dimitri Glazkov  <dglazkov@chromium.org>
68015
68016        Stop passing around SelectorChecker in ContentSelectorQuery.
68017        https://bugs.webkit.org/show_bug.cgi?id=110041
68018
68019        Now that SelectorChecker has no interesting state, we can simplify ContentSelectorQuery and get rid of a class.
68020
68021        Reviewed by Andreas Kling.
68022
68023        No functional changes, covered by existing tests.
68024
68025        * html/shadow/ContentSelectorQuery.cpp:
68026        (WebCore::ContentSelectorDataList::checkContentSelector): Zapped ContentSelectorChecker and moved its only remaining method here.
68027        (WebCore::ContentSelectorDataList::matches): Removed SelectorChecker argument.
68028        (WebCore::ContentSelectorQuery::ContentSelectorQuery): Removed an unnecessary member.
68029        (WebCore::ContentSelectorQuery::matches): Removed unnecessary argument.
68030        * html/shadow/ContentSelectorQuery.h:
68031        (WebCore): Cleaned up the file.
68032        (ContentSelectorDataList): Updated decls.
68033        (ContentSelectorQuery): Ditto.
68034
680352013-02-17  Mike West  <mkwst@chromium.org>
68036
68037        WheelEvent should not target text nodes.
68038        https://bugs.webkit.org/show_bug.cgi?id=109939
68039
68040        Reviewed by Darin Adler.
68041
68042        WheelEvent, like other mouse events, should not target text nodes.
68043        EventHandler correctly handles other mouse events by retargeting
68044        events to text nodes' parents; this patch adds that logic to the
68045        WheelEvent handler.
68046
68047        This should allow jQuery to stop working around WebKit's behavior[1].
68048
68049        [1]: https://github.com/jquery/jquery/commit/c61150427fc8ccc8e884df8f221a6c9bb5477929
68050
68051        Test: fast/events/wheelevent-in-text-node.html
68052
68053        * page/EventHandler.cpp:
68054        (WebCore::EventHandler::handleWheelEvent):
68055            If a WheelEvent's hit test lands on a text node, retarget the
68056            event to the text node's parent. Do this before latching the node.
68057
680582013-02-17  Filip Pizlo  <fpizlo@apple.com>
68059
68060        Move all Structure out-of-line inline methods to StructureInlines.h
68061        https://bugs.webkit.org/show_bug.cgi?id=110024
68062
68063        Rubber stamped by Sam Weinig.
68064
68065        No new tests because no new behavior. Just rewiring includes.
68066
68067        * ForwardingHeaders/parser/SourceProviderCache.h: Added.
68068        * loader/cache/CachedScript.cpp:
68069
680702013-02-17  Hayato Ito  <hayato@chromium.org>
68071
68072        Make EventDispatcher take an Event object in its constructor.
68073        https://bugs.webkit.org/show_bug.cgi?id=109898
68074
68075        Reviewed by Dimitri Glazkov.
68076
68077        That makes EventDispatcher more RAII-like so that we can calculate
68078        an EventPath in its constructor.  I'll remove
68079        EventDispatcher::ensureEventPath() in a following patch.
68080
68081        No tests. No change in behavior.
68082
68083        * dom/EventDispatchMediator.cpp:
68084        (WebCore::EventDispatchMediator::dispatchEvent):
68085        * dom/EventDispatcher.cpp:
68086        (WebCore::EventDispatcher::dispatchEvent):
68087        (WebCore::EventDispatcher::EventDispatcher):
68088        (WebCore::EventDispatcher::ensureEventPath):
68089        (WebCore::EventDispatcher::dispatchSimulatedClick):
68090        (WebCore::EventDispatcher::dispatch):
68091        (WebCore::EventDispatcher::dispatchEventPreProcess):
68092        (WebCore::EventDispatcher::dispatchEventAtCapturing):
68093        (WebCore::EventDispatcher::dispatchEventAtTarget):
68094        (WebCore::EventDispatcher::dispatchEventAtBubbling):
68095        (WebCore::EventDispatcher::dispatchEventPostProcess):
68096        * dom/EventDispatcher.h:
68097        (EventDispatcher):
68098        (WebCore::EventDispatcher::node):
68099        (WebCore::EventDispatcher::event):
68100        * dom/FocusEvent.cpp:
68101        (WebCore::FocusEventDispatchMediator::dispatchEvent):
68102        (WebCore::BlurEventDispatchMediator::dispatchEvent):
68103        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
68104        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
68105        * dom/GestureEvent.cpp:
68106        (WebCore::GestureEventDispatchMediator::dispatchEvent):
68107        * dom/MouseEvent.cpp:
68108        (WebCore::MouseEventDispatchMediator::dispatchEvent):
68109
681102013-02-17  Philip Rogers  <pdr@google.com>
68111
68112        Fix non-root SVG viewport under zoom
68113        https://bugs.webkit.org/show_bug.cgi?id=99453
68114
68115        Reviewed by Dirk Schulze.
68116
68117        The root SVG element handles zoom differently than other SVG nodes because it needs
68118        to translate between CSS (where zoom is applied to all units) and SVG (where zoom is only
68119        applied at the top level). A good description of this difference can be found here:
68120        http://trac.webkit.org/browser/trunk/Source/WebCore/css/StyleResolver.cpp?rev=142855#L2598
68121
68122        SVG elements can appear as children in the SVG tree as well, and in this mode
68123        SVGSVGElement should not consider the current zoom level. This patch fixes a bug
68124        where non-root viewport calculations were removing zoom.
68125
68126        Test: svg/custom/symbol-zoom.html
68127
68128        * svg/SVGSVGElement.cpp:
68129        (WebCore::SVGSVGElement::currentViewportSize):
68130            This change removes the unnecessary zoom calculation for non-root nodes. This is similar
68131            to how zoom is handled elsewhere, e.g., SVGSVGElement::localCoordinateSpaceTransform.
68132
681332013-02-17  Chris Fleizach  <cfleizach@apple.com>
68134
68135        AX: Upstream iOS Accessibility files
68136        https://bugs.webkit.org/show_bug.cgi?id=110071
68137
68138        Reviewed by David Kilzer.
68139
68140        Upstream the iOS Accessibility files for WebCore. 
68141
68142        * WebCore.xcodeproj/project.pbxproj:
68143        * accessibility/ios: Added.
68144        * accessibility/ios/AXObjectCacheIOS.mm: Added.
68145        (WebCore):
68146        (WebCore::AXObjectCache::detachWrapper):
68147        (WebCore::AXObjectCache::attachWrapper):
68148        (WebCore::AXObjectCache::postPlatformNotification):
68149        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
68150        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
68151        (WebCore::AXObjectCache::handleFocusedUIElementChanged):
68152        (WebCore::AXObjectCache::handleScrolledToAnchor):
68153        * accessibility/ios/AccessibilityObjectIOS.mm: Added.
68154        (-[WAKView accessibilityIsIgnored]):
68155        (WebCore):
68156        (WebCore::AccessibilityObject::detachFromParent):
68157        (WebCore::AccessibilityObject::overrideAttachmentParent):
68158        (WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
68159        (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
68160        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
68161        * accessibility/ios/AccessibilityObjectWrapperIOS.h: Added.
68162        (WAKView):
68163        * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Added.
68164        (AccessibilityUnignoredAncestor):
68165        (-[WebAccessibilityTextMarker initWithTextMarker:cache:]):
68166        (-[WebAccessibilityTextMarker initWithData:cache:]):
68167        (-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
68168        (+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]):
68169        (-[WebAccessibilityTextMarker dataRepresentation]):
68170        (-[WebAccessibilityTextMarker visiblePosition]):
68171        (-[WebAccessibilityTextMarker description]):
68172        (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
68173        (-[WebAccessibilityObjectWrapper detach]):
68174        (-[WebAccessibilityObjectWrapper dealloc]):
68175        (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]):
68176        (-[WebAccessibilityObjectWrapper accessibilityObject]):
68177        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
68178        (-[WebAccessibilityObjectWrapper accessibilityPostProcessHitTest:]):
68179        (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
68180        (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
68181        (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
68182        (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
68183        (-[WebAccessibilityObjectWrapper accessibilityLanguage]):
68184        (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
68185        (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
68186        (-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
68187        (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
68188        (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
68189        (-[WebAccessibilityObjectWrapper accessibilityTraits]):
68190        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
68191        (-[WebAccessibilityObjectWrapper isAccessibilityElement]):
68192        (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
68193        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
68194        (-[WebAccessibilityObjectWrapper tableCellParent]):
68195        (-[WebAccessibilityObjectWrapper tableParent]):
68196        (-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
68197        (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
68198        (-[WebAccessibilityObjectWrapper accessibilityElementForRow:andColumn:]):
68199        (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
68200        (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
68201        (-[WebAccessibilityObjectWrapper accessibilityPlaceholderValue]):
68202        (-[WebAccessibilityObjectWrapper accessibilityValue]):
68203        (-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
68204        (-[WebAccessibilityObjectWrapper accessibilityHint]):
68205        (-[WebAccessibilityObjectWrapper accessibilityURL]):
68206        (-[WebAccessibilityObjectWrapper _convertIntRectToScreenCoordinates:]):
68207        (-[WebAccessibilityObjectWrapper accessibilityElementRect]):
68208        (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
68209        (-[WebAccessibilityObjectWrapper accessibilityFrame]):
68210        (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
68211        (-[WebAccessibilityObjectWrapper accessibilityContainer]):
68212        (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
68213        (-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):
68214        (-[WebAccessibilityObjectWrapper _accessibilityNextElementsWithCount:]):
68215        (-[WebAccessibilityObjectWrapper _accessibilityPreviousElementsWithCount:]):
68216        (-[WebAccessibilityObjectWrapper accessibilityRequired]):
68217        (-[WebAccessibilityObjectWrapper accessibilityFlowToElements]):
68218        (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
68219        (-[WebAccessibilityObjectWrapper isAttachment]):
68220        (-[WebAccessibilityObjectWrapper _accessibilityActivate]):
68221        (-[WebAccessibilityObjectWrapper attachmentView]):
68222        (rendererForView):
68223        (-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
68224        (-[WebAccessibilityObjectWrapper postFocusChangeNotification]):
68225        (-[WebAccessibilityObjectWrapper postSelectedTextChangeNotification]):
68226        (-[WebAccessibilityObjectWrapper postLayoutChangeNotification]):
68227        (-[WebAccessibilityObjectWrapper postLiveRegionChangeNotification]):
68228        (-[WebAccessibilityObjectWrapper postLoadCompleteNotification]):
68229        (-[WebAccessibilityObjectWrapper postChildrenChangedNotification]):
68230        (-[WebAccessibilityObjectWrapper postInvalidStatusChangedNotification]):
68231        (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
68232        (-[WebAccessibilityObjectWrapper accessibilityModifySelection:increase:]):
68233        (-[WebAccessibilityObjectWrapper accessibilityIncreaseSelection:]):
68234        (-[WebAccessibilityObjectWrapper accessibilityDecreaseSelection:]):
68235        (-[WebAccessibilityObjectWrapper accessibilityMoveSelectionToMarker:]):
68236        (-[WebAccessibilityObjectWrapper accessibilityIncrement]):
68237        (-[WebAccessibilityObjectWrapper accessibilityDecrement]):
68238        (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]):
68239        (-[WebAccessibilityObjectWrapper stringForTextMarkers:]):
68240        (blockquoteLevel):
68241        (AXAttributeStringSetBlockquoteLevel):
68242        (AXAttributeStringSetHeadingLevel):
68243        (AXAttributeStringSetFont):
68244        (AXAttributeStringSetNumber):
68245        (AXAttributeStringSetStyle):
68246        (AXAttributedStringAppendText):
68247        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
68248        (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
68249        (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
68250        (-[WebAccessibilityObjectWrapper positionForTextMarker:]):
68251        (-[WebAccessibilityObjectWrapper textMarkerRange]):
68252        (-[WebAccessibilityObjectWrapper elementTextRange]):
68253        (-[WebAccessibilityObjectWrapper accessibilityObjectForTextMarker:]):
68254        (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
68255        (-[WebAccessibilityObjectWrapper textMarkerForPosition:]):
68256        (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
68257        (-[WebAccessibilityObjectWrapper stringForRange:]):
68258        (-[WebAccessibilityObjectWrapper attributedStringForRange:]):
68259        (-[WebAccessibilityObjectWrapper elementsForRange:]):
68260        (-[WebAccessibilityObjectWrapper selectionRangeString]):
68261        (-[WebAccessibilityObjectWrapper selectedTextMarker]):
68262        (-[WebAccessibilityObjectWrapper lineEndMarkerForMarker:]):
68263        (-[WebAccessibilityObjectWrapper lineStartMarkerForMarker:]):
68264        (-[WebAccessibilityObjectWrapper nextMarkerForMarker:]):
68265        (-[WebAccessibilityObjectWrapper previousMarkerForMarker:]):
68266        (-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
68267        (-[WebAccessibilityObjectWrapper textMarkerForPoint:]):
68268        (-[WebAccessibilityObjectWrapper accessibilityIdentifier]):
68269        (-[WebAccessibilityObjectWrapper accessibilitySpeechHint]):
68270        (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
68271        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionStatus]):
68272        (-[WebAccessibilityObjectWrapper accessibilityARIARelevantStatus]):
68273        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
68274        (-[WebAccessibilityObjectWrapper accessibilityInvalidStatus]):
68275        (-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
68276        (-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
68277        (-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
68278        (-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
68279        (-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
68280        (-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
68281        (-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
68282        (-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
68283        (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
68284        (-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
68285        (-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
68286        (-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
68287        (-[WebAccessibilityObjectWrapper accessibilityMathType]):
68288        (-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]):
68289        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
68290        (-[WebAccessibilityObjectWrapper description]):
68291
682922013-02-17  Chris Fleizach  <cfleizach@apple.com>
68293
68294        AX: rename WebAccessibilityObjectWrapper to WebAccessibilityObjectWrapperBase
68295        https://bugs.webkit.org/show_bug.cgi?id=110061
68296
68297        Reviewed by David Kilzer.
68298
68299        Rename the base accessibility wrapper class so that the iOS class can share the same name.
68300
68301        * WebCore.xcodeproj/project.pbxproj:
68302        * accessibility/mac/AXObjectCacheMac.mm:
68303        (WebCore::AXObjectCache::attachWrapper):
68304        * accessibility/mac/WebAccessibilityObjectWrapper.h: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h.
68305        * accessibility/mac/WebAccessibilityObjectWrapper.mm: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.
68306        * accessibility/mac/WebAccessibilityObjectWrapperBase.h: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.h.
68307        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm.
68308        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
68309        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Removed.
68310
683112013-02-17  Andreas Kling  <akling@apple.com>
68312
68313        REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler.
68314        <http://webkit.org/b/108835>
68315
68316        Reviewed by Ojan Vafai.
68317
68318        Streamline the case where GlyphPage has a per-glyph SimpleFontData* lookup table to allow
68319        taking earlier branches on pages with lots of mixed-font text.
68320        We accomplish this by explicitly storing a null SimpleFontData* for glyph #0 in the per-glyph
68321        lookup table instead of relying on "if (!glyph)" checks in getters.
68322
68323        This is a speculative optimization, I can't get stable enough numbers locally to tell if this
68324        will resolve the issue on the bots.
68325
68326        * platform/graphics/GlyphPage.h:
68327        (WebCore::GlyphPage::glyphDataForIndex):
68328        (WebCore::GlyphPage::fontDataForCharacter):
68329        (WebCore::GlyphPage::setGlyphDataForIndex):
68330
683312013-02-17  Chris Fleizach  <cfleizach@apple.com>
68332
68333        WebSpeech: plumb through a method to generate fake speech jobs for testing
68334        https://bugs.webkit.org/show_bug.cgi?id=107351
68335
68336        Reviewed by Adam Barth.
68337
68338        We can't reliably use the platforms synthesizer to test speech synthesis internals.
68339        This patch adds an Internals method to enable a mock synthesizer, which is inherits
68340        from the PlatformSpeechSythesizer.
68341
68342        The fake synthesizer goes through all the motions of a real synthesizer but doesn't do anything.
68343        A bunch of changes were needed here to make PlatformSpeechSynthesizer subclassable so that the
68344        right virtual are used.
68345
68346        The Mock synthesizer only lives in WebCoreTestSupport. Because PlatformSpeechSynthesizer uses
68347        a RetainPtr, I needed to make WebCoreTestSupport link CoreFoundation
68348
683492013-02-17  Csaba Osztrogonác  <ossy@webkit.org>
68350
68351        [Qt] Unreviewed buildfix for !USE(LIBXML) builds after r143112.
68352
68353        * xml/parser/XMLDocumentParserQt.cpp:
68354        (WebCore::XMLDocumentParser::XMLDocumentParser):
68355
683562013-02-17  Andreas Kling  <akling@apple.com>
68357
68358        Optimize GlyphPage for case where all glyphs are available in the same font.
68359        <http://webkit.org/b/108835>
68360        <rdar://problem/13157042>
68361
68362        Reviewed by Antti Koivisto.
68363
68364        Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
68365        the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
68366
68367        If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
68368        is allocated transparently.
68369
68370        This was landed before with some bogus branch prediction hints and didn't fare well on
68371        page cyclers (intl2 specifically.) These have been removed this time around, and will
68372        hopefully be regression-free.
68373
68374        4.98 MB progression on Membuster3.
68375
68376        * platform/graphics/GlyphPageTreeNode.cpp:
68377        (WebCore::GlyphPageTreeNode::initializePage):
68378        * platform/graphics/GlyphPage.h:
68379        (WebCore::GlyphPage::createUninitialized):
68380        (WebCore::GlyphPage::createZeroedSystemFallbackPage):
68381        (WebCore::GlyphPage::createCopiedSystemFallbackPage):
68382
68383            There are now three ways of constructing a GlyphPage, two of them are only used for
68384            creating system fallback pages.
68385
68386        (WebCore::GlyphPage::setGlyphDataForIndex):
68387
68388            Hold off creating a SimpleFontData* array until we're sure there are two different
68389            SimpleFontData* backing the glyphs in this page.
68390            We don't store font data for glyph #0, instead we let the getters always return null for it.
68391
68392        (WebCore::GlyphPage::~GlyphPage):
68393
68394            Free the SimpleFontData* array if needed.
68395
68396        (WebCore::GlyphPage::glyphDataForCharacter):
68397        (WebCore::GlyphPage::glyphDataForIndex):
68398        (WebCore::GlyphPage::fontDataForCharacter):
68399
68400            The font data for glyph #0 is always a null pointer now.
68401
68402        (WebCore::GlyphPage::clearForFontData):
68403
68404            Updated for new storage format.
68405
68406        * rendering/svg/SVGTextRunRenderingContext.cpp:
68407        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
68408
68409            Fix bug where non-zero glyph was temporarily associated with null font data,
68410            which triggered the new assertion in setGlyphDataForIndex().
68411
684122013-02-16  Andreas Kling  <akling@apple.com>
68413
68414        Remove multi-threading gunk from WebKit2's PluginInfoStore.
68415        <http://webkit.org/b/110046>
68416
68417        Reviewed by Alexey Proskuryakov.
68418
68419        Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.
68420
68421        * plugins/PluginData.h:
68422        (MimeClassInfo):
68423        (PluginInfo):
68424
684252013-02-16  Alexey Proskuryakov  <ap@apple.com>
68426
68427        Identifier generated twice in FrameLoader::loadResourceSynchronously()
68428        https://bugs.webkit.org/show_bug.cgi?id=110022
68429
68430        Reviewed by Darin Adler.
68431
68432        * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
68433        Fix an apparent refactoring mistake.
68434
684352013-02-16  Andreas Kling  <akling@apple.com>
68436
68437        [JSC] Remove custom mark function for NamedNodeMap.
68438        <http://webkit.org/b/110029>
68439
68440        Reviewed by Darin Adler.
68441
68442        NamedNodeMap refs and unrefs its Element owner, so there's no need for the wrapper to keep the Element alive.
68443
68444        Covered by fast/dom/Attr/access-after-element-destruction.html
68445
68446        * bindings/js/JSNamedNodeMapCustom.cpp:
68447        * dom/NamedNodeMap.idl:
68448
684492013-02-16  Peter Nelson  <peter@peterdn.com>
68450
68451        REGRESSION(r143076): Crash when calling removeNamedItem or removeNamedItemNS with a non-existent attribute of newly created element.
68452        <http://webkit.org/b/110019>
68453
68454        Reviewed by Andreas Kling.
68455
68456        Now checks Element::hasAttributes() before calling Element::getAttributeItemIndex().
68457
68458        Test: http/tests/misc/acid3.html
68459
68460        * dom/NamedNodeMap.cpp:
68461        (WebCore::NamedNodeMap::removeNamedItem):
68462        (WebCore::NamedNodeMap::removeNamedItemNS):
68463
684642013-02-16  Andreas Kling  <akling@apple.com>
68465
68466        Element: Devirtualize attribute synchronization functions.
68467        <http://webkit.org/b/110033>
68468
68469        Reviewed by Darin Adler.
68470
68471        Devirtualize the functions that perform re-serialization of lazy attributes and give
68472        them "synchronize"-style names:
68473
68474            - SVGElement::synchronizeAnimatedSVGAttribute()
68475            - StyledElement::synchronizeStyleAttributeInternal()
68476
68477        * dom/Element.cpp:
68478        (WebCore::Element::synchronizeAllAttributes):
68479        (WebCore::Element::synchronizeAttribute):
68480        * dom/Element.h:
68481        * dom/StyledElement.cpp:
68482        (WebCore::StyledElement::synchronizeStyleAttribute):
68483        * dom/StyledElement.h:
68484        (StyledElement):
68485        * rendering/svg/RenderSVGResourceGradient.cpp:
68486        (WebCore::RenderSVGResourceGradient::applyResource):
68487        * rendering/svg/RenderSVGResourcePattern.cpp:
68488        (WebCore::RenderSVGResourcePattern::buildPattern):
68489        * svg/SVGElement.cpp:
68490        (WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
68491        * svg/SVGElement.h:
68492        (SVGElement):
68493
684942013-02-16  Andreas Kling  <akling@apple.com>
68495
68496        Element: Avoid unrelated attribute synchronization on other attribute access.
68497        <http://webkit.org/b/110025>
68498
68499        Reviewed by Darin Adler.
68500
68501        We've been extremely trigger happy with re-serializing the style attribute (and SVG animatables)
68502        whenever any Element attribute API was used. This patch narrows this down to (almost always)
68503        only synchronizing an attribute when someone specifically wants to read/update it.
68504
68505        Also removed two more confusing ElementData accessors:
68506
68507            - Element::elementDataWithSynchronizedAttributes()
68508            - Element::ensureElementDataWithSynchronizedAttributes()
68509
68510        * dom/Element.h:
68511        * dom/Element.cpp:
68512        (WebCore::Element::hasAttributes):
68513        (WebCore::Element::hasEquivalentAttributes):
68514        (WebCore::Element::cloneAttributesFromElement):
68515        (WebCore::Element::synchronizeAllAttributes):
68516
68517            Renamed updateInvalidAttributes() to synchronizeAllAttributes().
68518            This function should only be used when we need every single attribute to be up-to-date.
68519
68520        (WebCore::Element::synchronizeAttribute):
68521
68522            Broke out logic for synchronizing a specific attribute, given either a full QualifiedName
68523            or a localName.
68524
68525        (WebCore::Element::setSynchronizedLazyAttribute):
68526
68527            Don't call ensureUniqueElementData() indisciminately here. This avoids converting the attribute
68528            storage when re-serializing the inline style yields the same CSS text that was already in the
68529            style attribute.
68530
68531        (WebCore::Element::hasAttribute):
68532        (WebCore::Element::hasAttributeNS):
68533        (WebCore::Element::getAttribute):
68534        (WebCore::Element::getAttributeNode):
68535        (WebCore::Element::getAttributeNodeNS):
68536        (WebCore::Element::setAttribute):
68537        (WebCore::Element::setAttributeNode):
68538        (WebCore::Element::removeAttributeNode):
68539
68540            Only synchronize the attribute in question.
68541
68542        * dom/Node.cpp:
68543        (WebCore::Node::compareDocumentPosition):
68544
68545            Call synchronizeAllAttributes() when comparing two Attr nodes on the same Element instead
68546            of relying on the side-effects of another function doing this.
68547
685482013-02-16  Seokju Kwon  <seokju.kwon@gmail.com>
68549
68550        Fix build warnings after r139853
68551        https://bugs.webkit.org/show_bug.cgi?id=109929
68552
68553        Reviewed by Alexey Proskuryakov.
68554
68555        Use UNUSED_PARAM macro to fix build warning -Wunused-parameter
68556        when INSPECTOR is disabled.
68557
68558        No new tests, no behavior change.
68559
68560        * inspector/InspectorInstrumentation.h:
68561        (WebCore::InspectorInstrumentation::frameStartedLoading):
68562        (WebCore::InspectorInstrumentation::frameStoppedLoading):
68563        (WebCore::InspectorInstrumentation::frameScheduledNavigation):
68564        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
68565
685662013-02-16  Sheriff Bot  <webkit.review.bot@gmail.com>
68567
68568        Unreviewed, rolling out r142734.
68569        http://trac.webkit.org/changeset/142734
68570        https://bugs.webkit.org/show_bug.cgi?id=110018
68571
68572        "Triggered crashes on lots of websites" (Requested by ggaren
68573        on #webkit).
68574
68575        * bindings/js/JSLocationCustom.cpp:
68576        (WebCore::JSLocation::getOwnPropertySlotDelegate):
68577
685782013-02-16  Robert Hogan  <robert@webkit.org>
68579
68580        percentage top value of position:relative element not calculated using parent's min-height unless height set
68581        https://bugs.webkit.org/show_bug.cgi?id=14762
68582
68583        Reviewed by Julien Chaffraix.
68584
68585        Percentage height "is calculated with respect to the height of the generated box's containing block" says  
68586        http://www.w3.org/TR/CSS21/visudet.html#the-height-property and "If the height of the containing block is not 
68587        specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the
68588        value computes to 'auto'." So when calculating the used height of a replaced element do not crawl through ancestor 
68589        blocks except when traversing anonymous blocks. Ensure that anonymous table cells are not skipped through though.
68590
68591        http://www.w3.org/TR/CSS21/tables.html#height-layout adds "In CSS 2.1, the height of a cell box is the minimum 
68592        height required by the content." This height is decided by allowing table cells to report their height as auto.
68593        It's not clear why http://trac.webkit.org/changeset/91242 decided it should no longer do this - doing so caused
68594        us to regress in our rendering of computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html.
68595
68596        Tests: fast/block/percent-top-parent-respects-min-height.html
68597               fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr.html
68598               fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html
68599               fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr.html
68600               fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html
68601
68602        * rendering/RenderBoxModelObject.cpp:
68603        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
68604        (WebCore):
68605        (WebCore::RenderBoxModelObject::relativePositionOffset):
68606        * rendering/RenderBoxModelObject.h:
68607        (RenderBoxModelObject):
68608        * rendering/RenderReplaced.cpp:
68609        (WebCore::RenderReplaced::hasReplacedLogicalHeight):
68610
686112013-02-16  Stephen White  <senorblanco@chromium.org>
68612
68613        [skia] FEOffset should have a Skia implementation.
68614        https://bugs.webkit.org/show_bug.cgi?id=109831
68615
68616        Reviewed by James Robinson.
68617
68618        Covered by css3/filters/effect-reference.html and -hw.html.
68619
68620        * WebCore.gypi:
68621        * platform/graphics/filters/FEOffset.h:  Implement createImageFilter()
68622        for the Skia path.
68623        * platform/graphics/filters/skia/FEOffsetSkia.cpp: Added.
68624        (WebCore::FEOffset::createImageFilter):
68625        Instantiate an SkOffsetImageFilter when building the Skia DAG.
68626
686272013-02-16  Vsevolod Vlasov  <vsevik@chromium.org>
68628
68629        Web Inspector: Create separate project for each domain for UISourceCode based on browser resources.
68630        https://bugs.webkit.org/show_bug.cgi?id=109691
68631
68632        Reviewed by Pavel Feldman.
68633
68634        Separate project of certain type is now created for each domain.
68635        UISourceCode path represents a path in the project now.
68636        UISourceCode uri is now calculated based on project id and path.
68637        It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
68638
68639        * inspector/front-end/ScriptSnippetModel.js:
68640        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
68641        * inspector/front-end/SimpleWorkspaceProvider.js:
68642        (WebInspector.SimpleProjectDelegate):
68643        (WebInspector.SimpleProjectDelegate.projectId):
68644        (WebInspector.SimpleProjectDelegate.prototype.id):
68645        (WebInspector.SimpleProjectDelegate.prototype.displayName):
68646        (WebInspector.SimpleProjectDelegate.prototype.addFile):
68647        (WebInspector.SimpleWorkspaceProvider):
68648        (WebInspector.SimpleWorkspaceProvider.splitURL):
68649        (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
68650        (WebInspector.SimpleWorkspaceProvider.uriForURL):
68651        (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
68652        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
68653        (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
68654        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
68655        (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
68656        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
68657        * inspector/front-end/UISourceCode.js:
68658        (WebInspector.UISourceCode.uri):
68659        (WebInspector.UISourceCode.path):
68660        (WebInspector.UISourceCode.prototype.uri):
68661        * inspector/front-end/Workspace.js:
68662        (WebInspector.Project.prototype._fileAdded):
68663        (WebInspector.Project.prototype._fileRemoved):
68664        (WebInspector.Project.prototype.uiSourceCodeForURI):
68665
686662013-02-15  Chris Fleizach  <cfleizach@apple.com>
68667
68668        AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
68669        https://bugs.webkit.org/show_bug.cgi?id=109849
68670
68671        Reviewed by David Kilzer.
68672
68673        Split up the WebAccessibilityObjectWrapper so that iOS can share more 
68674        code with MacOS. I imagine over time, more code will move into this base class,
68675        but for now this will be a good start.
68676
68677        A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
68678        of that. iOS will be able to do the same.
68679
68680        * WebCore.xcodeproj/project.pbxproj:
68681        * accessibility/mac/AXObjectCacheMac.mm:
68682        (WebCore::AXObjectCache::attachWrapper):
68683        * accessibility/mac/WebAccessibilityObjectWrapper.h:
68684        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
68685        (-[WebAccessibilityObjectWrapper detach]):
68686        (-[WebAccessibilityObjectWrapper attachmentView]):
68687        (-[WebAccessibilityObjectWrapper accessibilityObject]):
68688        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
68689        (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
68690        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
68691        (-[WebAccessibilityObjectWrapper accessibilityDescription]):
68692        (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
68693        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
68694        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added.
68695        (std):
68696        (-[WebAccessibilityObjectWrapperMac detach]):
68697        (-[WebAccessibilityObjectWrapperMac attachmentView]):
68698        (CFAutoreleaseHelper):
68699        (AXObjectIsTextMarker):
68700        (AXObjectIsTextMarkerRange):
68701        (AXTextMarkerRange):
68702        (AXTextMarkerRangeStart):
68703        (AXTextMarkerRangeEnd):
68704        (SearchKeyEntry):
68705        (createAccessibilitySearchKeyMap):
68706        (accessibilitySearchKeyForString):
68707        (textMarkerForVisiblePosition):
68708        (-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
68709        (visiblePositionForTextMarker):
68710        (-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
68711        (visiblePositionForStartOfTextMarkerRange):
68712        (visiblePositionForEndOfTextMarkerRange):
68713        (textMarkerRangeFromMarkers):
68714        (AXAttributedStringRangeIsValid):
68715        (AXAttributeStringSetFont):
68716        (CreateCGColorIfDifferent):
68717        (AXAttributeStringSetColor):
68718        (AXAttributeStringSetNumber):
68719        (AXAttributeStringSetStyle):
68720        (AXAttributeStringSetBlockquoteLevel):
68721        (AXAttributeStringSetSpelling):
68722        (AXAttributeStringSetHeadingLevel):
68723        (AXAttributeStringSetElement):
68724        (AXAttributedStringAppendText):
68725        (nsStringForReplacedNode):
68726        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
68727        (textMarkerRangeFromVisiblePositions):
68728        (-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
68729        (-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
68730        (-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
68731        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
68732        (-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
68733        (-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
68734        (-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
68735        (convertToVector):
68736        (convertToNSArray):
68737        (-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
68738        (-[WebAccessibilityObjectWrapperMac position]):
68739        (createAccessibilityRoleMap):
68740        (roleValueToNSString):
68741        (-[WebAccessibilityObjectWrapperMac role]):
68742        (-[WebAccessibilityObjectWrapperMac subrole]):
68743        (-[WebAccessibilityObjectWrapperMac roleDescription]):
68744        (-[WebAccessibilityObjectWrapperMac scrollViewParent]):
68745        (-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
68746        (-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
68747        (-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
68748        (-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
68749        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
68750        (-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
68751        (-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
68752        (-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
68753        (-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
68754        (-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
68755        (-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
68756        (-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
68757        (-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
68758        (-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
68759        (-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
68760        (-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
68761        (-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
68762        (rendererForView):
68763        (-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
68764        (-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
68765        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
68766        (-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
68767        (-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
68768        (-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
68769        (-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
68770        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
68771        (-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
68772        (-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
68773        (-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
68774        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
68775        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
68776        ([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
68777        (-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):
68778
687792013-02-15  Eric Carlson  <eric.carlson@apple.com>
68780
68781        [Mac] remove wkCaptionAppearance from WebKitSystemInterface
68782        https://bugs.webkit.org/show_bug.cgi?id=109996
68783
68784        Reviewed by Simon Fraser.
68785
68786        * platform/mac/WebCoreSystemInterface.h:
68787        * platform/mac/WebCoreSystemInterface.mm:
68788
687892013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
68790
68791        Unreviewed, rolling out r143088.
68792        http://trac.webkit.org/changeset/143088
68793        https://bugs.webkit.org/show_bug.cgi?id=110000
68794
68795        Breaks the build (Requested by dgorbik on #webkit).
68796
68797        * platform/mac/WebCoreSystemInterface.h:
68798        * platform/mac/WebCoreSystemInterface.mm:
68799
688002013-02-15  Chris Rogers  <crogers@google.com>
68801
68802        Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing
68803        https://bugs.webkit.org/show_bug.cgi?id=109983
68804
68805        Reviewed by Kenneth Russell.
68806
68807        The Web Audio spec has a more detailed explanation for how channels are to be up and down-mixed:
68808        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
68809
68810        This patch adds the initial support for handling ChannelInterpretation, although no
68811        new JS API is yet implemented.
68812
68813        No new tests since no new APIs have yet been exposed.
68814
68815        * platform/audio/AudioBus.cpp:
68816        (WebCore::AudioBus::copyFrom):
68817        (WebCore):
68818        (WebCore::AudioBus::sumFrom):
68819        (WebCore::AudioBus::speakersCopyFrom):
68820        (WebCore::AudioBus::speakersSumFrom):
68821        (WebCore::AudioBus::discreteCopyFrom):
68822        (WebCore::AudioBus::discreteSumFrom):
68823        * platform/audio/AudioBus.h:
68824        (AudioBus):
68825
688262013-02-15  Tony Chang  <tony@chromium.org>
68827
68828        Padding and border changes doesn't trigger relayout of children
68829        https://bugs.webkit.org/show_bug.cgi?id=109639
68830
68831        Reviewed by Kent Tamura.
68832
68833        In RenderBlock::layoutBlock, we only relayout our children if our logical width
68834        changes. This misses cases where our logical width doesn't change (i.e., padding
68835        or border changes), but our content width does change.
68836
68837        Also convert the needsLayout ASSERT into the if statement. This is because
68838        RenderScrollbarPart can change border widths and not need a layout if the scrollbar
68839        doesn't have a parent. In this case, we don't need to set any children for layout.
68840
68841        This is a more general case of bug 104997.
68842
68843        Test: fast/block/dynamic-padding-border.html
68844
68845        * rendering/RenderBox.cpp:
68846        (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
68847        (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
68848        even without border-box box sizing.
68849
688502013-02-15  Mark Lam  <mark.lam@apple.com>
68851
68852        Split SQLStatement work between the frontend and backend.
68853        https://bugs.webkit.org/show_bug.cgi?id=104751.
68854
68855        Reviewed by Geoffrey Garen.
68856
68857        This is part of the webdatabase refactoring for webkit2.
68858
68859        1. Copied SQLTransaction to SQLTransactionBackend, and then reduce the
68860           2 to only handle frontend and backend work respectively.
68861
68862        2. Changed how statements are created.
68863
68864           - SQLTransaction::executeSQL() first creates a SQLStatement frontend
68865             which encapsulates the 2 script callbacks. It then passes the
68866             SQLStatement to the backend database to create the
68867             SQLStatementBackend.
68868           - The SQLStatementBackend manages all sqlite work.
68869
68870        3. Remove the Database::reportExecuteStatementResult() wrapper because
68871           it is only needed in the backend now.
68872
68873        4. Added new files to the build / project files.
68874
68875        5. Updated / added comments about how the SQLStatement life-cycle works.
68876
68877        No new tests.
68878
68879        * CMakeLists.txt:
68880        * GNUmakefile.list.am:
68881        * Modules/webdatabase/Database.cpp:
68882        * Modules/webdatabase/Database.h:
68883        (Database):
68884        (WebCore::Database::reportCommitTransactionResult):
68885        * Modules/webdatabase/DatabaseBackend.h:
68886        (DatabaseBackend):
68887        * Modules/webdatabase/SQLStatement.cpp:
68888        (WebCore::SQLStatement::create):
68889        (WebCore::SQLStatement::SQLStatement):
68890        (WebCore::SQLStatement::setBackend):
68891        (WebCore::SQLStatement::hasCallback):
68892        (WebCore::SQLStatement::hasErrorCallback):
68893        (WebCore::SQLStatement::performCallback):
68894        * Modules/webdatabase/SQLStatement.h:
68895        (SQLStatement):
68896        * Modules/webdatabase/SQLStatementBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.cpp.
68897        (WebCore::SQLStatementBackend::create):
68898        (WebCore::SQLStatementBackend::SQLStatementBackend):
68899        (WebCore::SQLStatementBackend::frontend):
68900        (WebCore::SQLStatementBackend::sqlError):
68901        (WebCore::SQLStatementBackend::sqlResultSet):
68902        (WebCore::SQLStatementBackend::execute):
68903        (WebCore::SQLStatementBackend::setDatabaseDeletedError):
68904        (WebCore::SQLStatementBackend::setVersionMismatchedError):
68905        (WebCore::SQLStatementBackend::setFailureDueToQuota):
68906        (WebCore::SQLStatementBackend::clearFailureDueToQuota):
68907        (WebCore::SQLStatementBackend::lastExecutionFailedDueToQuota):
68908        * Modules/webdatabase/SQLStatementBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLStatement.h.
68909        (SQLStatementBackend):
68910        (WebCore::SQLStatementBackend::hasStatementCallback):
68911        (WebCore::SQLStatementBackend::hasStatementErrorCallback):
68912        * Modules/webdatabase/SQLTransaction.cpp:
68913        (WebCore::SQLTransaction::deliverStatementCallback):
68914        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
68915        (WebCore::SQLTransaction::executeSQL):
68916        * Modules/webdatabase/SQLTransactionBackend.cpp:
68917        (WebCore::SQLTransactionBackend::doCleanup):
68918        (WebCore::SQLTransactionBackend::currentStatement):
68919        (WebCore::SQLTransactionBackend::enqueueStatementBackend):
68920        (WebCore::SQLTransactionBackend::executeSQL):
68921        (WebCore::SQLTransactionBackend::runStatements):
68922        (WebCore::SQLTransactionBackend::getNextStatement):
68923        (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
68924        (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
68925        * Modules/webdatabase/SQLTransactionBackend.h:
68926        (SQLTransactionBackend):
68927        * Target.pri:
68928        * WebCore.gypi:
68929        * WebCore.vcproj/WebCore.vcproj:
68930        * WebCore.vcxproj/WebCore.vcxproj:
68931        * WebCore.vcxproj/WebCore.vcxproj.filters:
68932        * WebCore.xcodeproj/project.pbxproj:
68933
689342013-02-15  Elliott Sprehn  <esprehn@chromium.org>
68935
68936        Rename HasCustomCallbacks to HasCustomStyleCallbacks
68937        https://bugs.webkit.org/show_bug.cgi?id=109982
68938
68939        Reviewed by Eric Seidel.
68940
68941        Now that inside ChildFrameDisconnector we only call isFrameOwnerElement()
68942        on elements that report having descendants (or themselves) have connected
68943        frames we don't need to be as agressive about avoiding the virtual call
68944        to isFrameOwnerElement() which lets us rename hasCustomCallbacks to
68945        hasCustomStyleCallbacks to better reflect it's purpose.
68946
68947        * dom/ContainerNodeAlgorithms.h:
68948        (WebCore::ChildFrameDisconnector::collectFrameOwners):
68949        * dom/Element.cpp:
68950        (WebCore::Element::styleForRenderer):
68951        (WebCore::Element::recalcStyle):
68952        (WebCore::Element::willRecalcStyle):
68953        (WebCore::Element::didRecalcStyle):
68954        (WebCore::Element::customStyleForRenderer):
68955        * dom/Node.h:
68956        (WebCore::Node::pseudoId):
68957        (WebCore::Node::hasCustomStyleCallbacks):
68958        (WebCore::Node::customPseudoId):
68959        (WebCore::Node::setHasCustomStyleCallbacks):
68960        * dom/PseudoElement.cpp:
68961        (WebCore::PseudoElement::PseudoElement):
68962        * dom/ShadowRoot.cpp:
68963        (WebCore::ShadowRoot::recalcStyle):
68964        * html/HTMLFormControlElement.cpp:
68965        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
68966        * html/HTMLFrameOwnerElement.cpp:
68967        (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
68968        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
68969        * html/HTMLFrameSetElement.cpp:
68970        (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
68971        * html/HTMLIFrameElement.cpp:
68972        (WebCore::HTMLIFrameElement::HTMLIFrameElement):
68973        * html/HTMLInputElement.cpp:
68974        (WebCore::HTMLInputElement::HTMLInputElement):
68975        * html/HTMLMediaElement.cpp:
68976        (WebCore::HTMLMediaElement::HTMLMediaElement):
68977        * html/HTMLOptGroupElement.cpp:
68978        (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
68979        * html/HTMLOptionElement.cpp:
68980        (WebCore::HTMLOptionElement::HTMLOptionElement):
68981        * html/HTMLPlugInImageElement.cpp:
68982        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
68983        * html/shadow/DateTimeEditElement.cpp:
68984        (WebCore::DateTimeEditElement::DateTimeEditElement):
68985        * html/shadow/TextControlInnerElements.cpp:
68986        (WebCore::TextControlInnerElement::TextControlInnerElement):
68987        (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
68988        * html/shadow/TextFieldDecorationElement.cpp:
68989        (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
68990        * svg/SVGElement.cpp:
68991        (WebCore::SVGElement::SVGElement):
68992        * svg/SVGUseElement.cpp:
68993        (WebCore::SVGUseElement::SVGUseElement):
68994
689952013-02-15  Eric Carlson  <eric.carlson@apple.com>
68996
68997        [Mac] remove wkCaptionAppearance from WebKitSystemInterface
68998        https://bugs.webkit.org/show_bug.cgi?id=109996
68999
69000        Reviewed by Simon Fraser.
69001
69002        * platform/mac/WebCoreSystemInterface.h:
69003        * platform/mac/WebCoreSystemInterface.mm:
69004
690052013-02-15  Andreas Kling  <akling@apple.com>
69006
69007        Calling DOM Element.attributes shouldn't force creation of ElementData.
69008        <http://webkit.org/b/109976>
69009
69010        Reviewed by Darin Adler.
69011
69012        Don't create ElementData for an Element unnecessarily just because someone calls .attributes on it.
69013        Previously, JS like this would create empty ElementData when 'element' has no attributes:
69014
69015            for (i = 0; i < element.attributes.length; ++i)
69016                doStuff(element.attributes[i]);
69017
69018        Make NamedNodeMap::length() short-circuit and return 0 if !Element::hasAttributes().
69019
69020        * dom/Element.cpp:
69021        (WebCore::Element::attributes):
69022        * dom/NamedNodeMap.cpp:
69023        (WebCore::NamedNodeMap::length):
69024
690252013-02-15  Kentaro Hara  <haraken@chromium.org>
69026
69027        [V8] An "EvenTarget" type in IDL should be converted to EventTarget*, not to Node*
69028        https://bugs.webkit.org/show_bug.cgi?id=109895
69029
69030        Reviewed by Adam Barth.
69031
69032        Currently an "EventTarget" type in IDL is converted to Node*.
69033        This is wrong because there are non-Node interfaces that inherit
69034        a EventTarget. We should convert an "EventTarget" type to EventTarget*.
69035        This will fix FIXMEs in CodeGeneratorV8.pm.
69036
69037        * bindings/scripts/CodeGeneratorV8.pm:
69038        (GetNativeType):
69039        (JSValueToNative):
69040
690412013-02-15  Simon Fraser  <simon.fraser@apple.com>
69042
69043        REGRESSION (r142505?): Crashes in WebCore::ScrollingStateNode::appendChild when using back/forward buttons
69044        https://bugs.webkit.org/show_bug.cgi?id=109826
69045        <rdar://problem/13216100>
69046
69047        Reviewed by Beth Dakin.
69048
69049        Fix a crash when going Back on some pages with fixed position elements.
69050        
69051        When a page was being restored from the page cache, and a layout from
69052        FrameLoader::commitProvisionalLoad() caused us to try to register the fixed
69053        position layer before the main scrolling layer, we'd crash trying to dereference
69054        the root node.
69055        
69056        Fix by bailing from ScrollingStateTree::attachNode() if we can't find the parent
69057        node.
69058
69059        Test: platform/mac-wk2/tiled-drawing/null-parent-back-crash.html
69060
69061        * page/scrolling/ScrollingStateTree.cpp:
69062        (WebCore::ScrollingStateTree::attachNode):
69063        (WebCore::ScrollingStateTree::stateNodeForID):
69064        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
69065        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
69066
690672013-02-15  Simon Fraser  <simon.fraser@apple.com>
69068
69069        Constrain fixed layers to the viewport, not the document
69070        https://bugs.webkit.org/show_bug.cgi?id=109646
69071
69072        Reviewed by Beth Dakin.
69073        
69074        It's bad to constrain position:fixed compositing layers to the
69075        document rect, because their bounds will change every time the scroll
69076        position changes, and we're not good currently at synchronizing scrolling
69077        thread layer updates with main thread layer updates, so jiggles ensue.
69078        
69079        Fix by constraining position:fixed layers to the viewport.
69080
69081        Test: compositing/geometry/limit-layer-bounds-fixed.html
69082
69083        * rendering/RenderLayerBacking.cpp:
69084        (WebCore::RenderLayerBacking::updateCompositedBounds):
69085
690862013-02-13  Jer Noble  <jer.noble@apple.com>
69087
69088        Add a CDMClient class which allows the CDM to query for the currently attached MediaPlayer.
69089        https://bugs.webkit.org/show_bug.cgi?id=109702
69090
69091        Reviewed by Eric Carlson.
69092
69093        Some CDM implementations will need to work closely with an associated
69094        MediaPlayer in order to generate key requests and provide keys. Add a
69095        client protocol to be implemented by the MediaKeys object which can
69096        provide access to the associated MediaPlayer if present.
69097
69098        * Modules/encryptedmedia/CDM.cpp:
69099        (WebCore::CDM::CDM): Initialize the m_client ivar.
69100        (WebCore::CDM::mediaPlayer): Pass to the client, if present.
69101        * Modules/encryptedmedia/CDM.h:
69102        (WebCore::CDM::client): Simple getter.
69103        (WebCore::CDM::setClient): Simple setter.
69104        * Modules/encryptedmedia/MediaKeys.cpp:
69105        (WebCore::MediaKeys::MediaKeys): Initialize the m_mediaElement ivar
69106            and call setClient() on the passed in CDM.
69107        (WebCore::MediaKeys::setMediaElement): Simple setter.
69108        (WebCore::MediaKeys::cdmMediaPlayer): Retrieve the MediaPlayer from
69109            the m_mediaElement if present.
69110        * Modules/encryptedmedia/MediaKeys.h:
69111        * html/HTMLMediaElement.cpp:
69112        (WebCore::HTMLMediaElement::~HTMLMediaElement): Call setMediaKeys(0)
69113            to clear the mediaElement in any associated MediaKeys.
69114        (WebCore::HTMLMediaElement::setMediaKeys): Clear the mediaElement on
69115            any associated MediaKeys, and set the mediaElement on the newly
69116            associated MediaKeys.
69117
691182013-02-15  Simon Fraser  <simon.fraser@apple.com>
69119
69120        drop-shadow filter with overflow:hidden child misbehaves
69121        https://bugs.webkit.org/show_bug.cgi?id=109783
69122
69123        Reviewed by Dean Jackson.
69124        
69125        The change in r112745 was not sufficient; it failed to account
69126        for descendant layers that needed to not clipping to avoid artefacts
69127        with filters like drop-shadow.
69128
69129        Test: css3/filters/filter-repaint-shadow-layer-child.html
69130
69131        * rendering/RenderLayer.cpp:
69132        (WebCore::RenderLayer::paintLayerContents): Remove the useClipRect bool.
69133        Replace it with a clipToDirtyRect member on the LayerPaintingInfo, which
69134        gets passed to descendants. Remove some "Restore the clip" comments that added
69135        nothing.
69136        * rendering/RenderLayer.h:
69137        (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
69138        (LayerPaintingInfo):
69139
691402013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
69141
69142        Unreviewed, rolling out r143066.
69143        http://trac.webkit.org/changeset/143066
69144        https://bugs.webkit.org/show_bug.cgi?id=109986
69145
69146        Broke the Apple Lion build (among others). (Requested by
69147        ddkilzer on #webkit).
69148
69149        * accessibility/mac/AXObjectCacheMac.mm:
69150        (WebCore::AXObjectCache::attachWrapper):
69151        * accessibility/mac/WebAccessibilityObjectWrapper.h:
69152        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
69153        (-[WebAccessibilityObjectWrapper unregisterUniqueIdForUIElement]):
69154        (-[WebAccessibilityObjectWrapper detach]):
69155        (-[WebAccessibilityObjectWrapper accessibilityObject]):
69156        (-[WebAccessibilityObjectWrapper attachmentView]):
69157        (CFAutoreleaseHelper):
69158        (AXObjectIsTextMarker):
69159        (AXObjectIsTextMarkerRange):
69160        (AXTextMarkerRange):
69161        (AXTextMarkerRangeStart):
69162        (AXTextMarkerRangeEnd):
69163        (SearchKeyEntry):
69164        (createAccessibilitySearchKeyMap):
69165        (accessibilitySearchKeyForString):
69166        (textMarkerForVisiblePosition):
69167        (-[WebAccessibilityObjectWrapper textMarkerForVisiblePosition:]):
69168        (visiblePositionForTextMarker):
69169        (-[WebAccessibilityObjectWrapper visiblePositionForTextMarker:]):
69170        (visiblePositionForStartOfTextMarkerRange):
69171        (visiblePositionForEndOfTextMarkerRange):
69172        (textMarkerRangeFromMarkers):
69173        (AXAttributedStringRangeIsValid):
69174        (AXAttributeStringSetFont):
69175        (CreateCGColorIfDifferent):
69176        (AXAttributeStringSetColor):
69177        (AXAttributeStringSetNumber):
69178        (AXAttributeStringSetStyle):
69179        (AXAttributeStringSetBlockquoteLevel):
69180        (AXAttributeStringSetSpelling):
69181        (AXAttributeStringSetHeadingLevel):
69182        (AXAttributeStringSetElement):
69183        (AXAttributedStringAppendText):
69184        (nsStringForReplacedNode):
69185        (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
69186        (textMarkerRangeFromVisiblePositions):
69187        (-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):
69188        (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
69189        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
69190        (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
69191        (-[WebAccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
69192        (-[WebAccessibilityObjectWrapper renderWidgetChildren]):
69193        (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
69194        (convertToVector):
69195        (convertToNSArray):
69196        (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
69197        (-[WebAccessibilityObjectWrapper position]):
69198        (createAccessibilityRoleMap):
69199        (roleValueToNSString):
69200        (-[WebAccessibilityObjectWrapper role]):
69201        (-[WebAccessibilityObjectWrapper subrole]):
69202        (-[WebAccessibilityObjectWrapper roleDescription]):
69203        (-[WebAccessibilityObjectWrapper scrollViewParent]):
69204        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
69205        (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
69206        (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
69207        (-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
69208        (-[WebAccessibilityObjectWrapper accessibilityIsIgnored]):
69209        (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
69210        (-[WebAccessibilityObjectWrapper accessibilityPerformPressAction]):
69211        (-[WebAccessibilityObjectWrapper accessibilityPerformIncrementAction]):
69212        (-[WebAccessibilityObjectWrapper accessibilityPerformDecrementAction]):
69213        (-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
69214        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
69215        (-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
69216        (-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
69217        (rendererForView):
69218        (-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
69219        (-[WebAccessibilityObjectWrapper accessibilityActionDescription:]):
69220        (-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]):
69221        (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
69222        (-[WebAccessibilityObjectWrapper _indexForTextMarker:]):
69223        (-[WebAccessibilityObjectWrapper _textMarkerForIndex:]):
69224        (-[WebAccessibilityObjectWrapper doAXRTFForRange:]):
69225        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
69226        (-[WebAccessibilityObjectWrapper accessibilitySupportsOverriddenAttributes]):
69227        (-[WebAccessibilityObjectWrapper accessibilityShouldUseUniqueId]):
69228        (-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
69229        (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
69230        (-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
69231        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
69232        * accessibility/mac/WebAccessibilityObjectWrapperMac.m: Removed.
69233
692342013-02-15  Emil A Eklund  <eae@chromium.org>
69235
69236        Change MouseRelatedEvent to use LayoutPoint::scale
69237        https://bugs.webkit.org/show_bug.cgi?id=109979
69238
69239        Reviewed by Dimitri Glazkov.
69240        
69241        Change MouseRelatedEvent::MouseRelatedEvent to use LayoutPoint::
69242        scale to adjust location and scroll offset for scale factor and
69243        zooming.
69244
69245        No new tests, no change in functionality.
69246
69247        * dom/MouseRelatedEvent.cpp:
69248        (WebCore::MouseRelatedEvent::MouseRelatedEvent):
69249
692502013-02-15  Chris Fleizach  <cfleizach@apple.com>
69251
69252        AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS
69253        https://bugs.webkit.org/show_bug.cgi?id=109849
69254
69255        Reviewed by David Kilzer.
69256
69257        Split up the WebAccessibilityObjectWrapper so that iOS can share more 
69258        code with MacOS. I imagine over time, more code will move into this base class,
69259        but for now this will be a good start.
69260
69261        A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
69262        of that. iOS will be able to do the same.
69263
69264        * WebCore.xcodeproj/project.pbxproj:
69265        * accessibility/mac/AXObjectCacheMac.mm:
69266        (WebCore::AXObjectCache::attachWrapper):
69267        * accessibility/mac/WebAccessibilityObjectWrapper.h:
69268        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
69269        (-[WebAccessibilityObjectWrapper detach]):
69270        (-[WebAccessibilityObjectWrapper attachmentView]):
69271        (-[WebAccessibilityObjectWrapper accessibilityObject]):
69272        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
69273        (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
69274        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
69275        (-[WebAccessibilityObjectWrapper accessibilityDescription]):
69276        (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
69277        * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
69278        * accessibility/mac/WebAccessibilityObjectWrapperMac.m: Added.
69279        (std):
69280        (-[WebAccessibilityObjectWrapperMac detach]):
69281        (-[WebAccessibilityObjectWrapperMac attachmentView]):
69282        (CFAutoreleaseHelper):
69283        (AXObjectIsTextMarker):
69284        (AXObjectIsTextMarkerRange):
69285        (AXTextMarkerRange):
69286        (AXTextMarkerRangeStart):
69287        (AXTextMarkerRangeEnd):
69288        (SearchKeyEntry):
69289        (createAccessibilitySearchKeyMap):
69290        (accessibilitySearchKeyForString):
69291        (textMarkerForVisiblePosition):
69292        (-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
69293        (visiblePositionForTextMarker):
69294        (-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
69295        (visiblePositionForStartOfTextMarkerRange):
69296        (visiblePositionForEndOfTextMarkerRange):
69297        (textMarkerRangeFromMarkers):
69298        (AXAttributedStringRangeIsValid):
69299        (AXAttributeStringSetFont):
69300        (CreateCGColorIfDifferent):
69301        (AXAttributeStringSetColor):
69302        (AXAttributeStringSetNumber):
69303        (AXAttributeStringSetStyle):
69304        (AXAttributeStringSetBlockquoteLevel):
69305        (AXAttributeStringSetSpelling):
69306        (AXAttributeStringSetHeadingLevel):
69307        (AXAttributeStringSetElement):
69308        (AXAttributedStringAppendText):
69309        (nsStringForReplacedNode):
69310        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
69311        (textMarkerRangeFromVisiblePositions):
69312        (-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
69313        (-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
69314        (-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
69315        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
69316        (-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
69317        (-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
69318        (-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
69319        (convertToVector):
69320        (convertToNSArray):
69321        (-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
69322        (-[WebAccessibilityObjectWrapperMac position]):
69323        (createAccessibilityRoleMap):
69324        (roleValueToNSString):
69325        (-[WebAccessibilityObjectWrapperMac role]):
69326        (-[WebAccessibilityObjectWrapperMac subrole]):
69327        (-[WebAccessibilityObjectWrapperMac roleDescription]):
69328        (-[WebAccessibilityObjectWrapperMac scrollViewParent]):
69329        (-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
69330        (-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
69331        (-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
69332        (-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
69333        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
69334        (-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
69335        (-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
69336        (-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
69337        (-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
69338        (-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
69339        (-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
69340        (-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
69341        (-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
69342        (-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
69343        (-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
69344        (-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
69345        (-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
69346        (rendererForView):
69347        (-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
69348        (-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
69349        (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
69350        (-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
69351        (-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
69352        (-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
69353        (-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
69354        (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
69355        (-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
69356        (-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
69357        (-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
69358        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
69359        (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
69360        ([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
69361        (-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):
69362
693632013-02-15  Elliott Sprehn  <esprehn@chromium.org>
69364
69365        RenderQuote should not mark renderers as needing layout during layout
69366        https://bugs.webkit.org/show_bug.cgi?id=109876
69367
69368        Reviewed by Ojan Vafai.
69369
69370        Marking RenderQuotes as needing pref width recalcs and layouts during a
69371        layout is dangerous since an ancestor may mark itself as having completed
69372        layout, but then some subtree still thinks it needs layout.
69373
69374        Instead, since the only time we create RenderQuote instances is inside
69375        PseudoElement, we can call attachQuote inside PseudoElement::attach during
69376        the regular tree mutating cycle. We can then use RenderQuote::styleDidChange
69377        to update the kind of quotes on normal style changes.
69378
69379        This makes RenderQuote behave much more similarly to DOM nodes and means
69380        we no longer need to set dirty bits during layout.
69381
69382        Test: fast/css-generated-content/quote-layout-focus-crash.html
69383
69384        * dom/PseudoElement.cpp:
69385        (WebCore::PseudoElement::attach): Now call attachQuote().
69386        * rendering/RenderQuote.cpp:
69387        (WebCore::RenderQuote::~RenderQuote):
69388        (WebCore::RenderQuote::willBeRemovedFromTree):
69389        (WebCore::RenderQuote::styleDidChange):
69390        (WebCore::RenderQuote::updateText):
69391        (WebCore::RenderQuote::attachQuote):
69392        (WebCore::RenderQuote::detachQuote):
69393        (WebCore::RenderQuote::updateDepth):
69394        * rendering/RenderQuote.h:
69395        (RenderQuote):
69396
693972013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
69398
69399        Unreviewed, rolling out r143044.
69400        http://trac.webkit.org/changeset/143044
69401        https://bugs.webkit.org/show_bug.cgi?id=109974
69402
69403        broke windows build (Requested by kling on #webkit).
69404
69405        * dom/DocumentSharedObjectPool.cpp:
69406        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
69407        * dom/Element.cpp:
69408        (WebCore::sizeForShareableElementDataWithAttributeCount):
69409        (WebCore::ShareableElementData::ShareableElementData):
69410        (WebCore::ShareableElementData::~ShareableElementData):
69411        (WebCore::UniqueElementData::UniqueElementData):
69412        * dom/Element.h:
69413        (WebCore::ShareableElementData::immutableAttributeArray):
69414        (ShareableElementData):
69415        (WebCore::ElementData::attributeItem):
69416
694172013-02-15  Adam Barth  <abarth@webkit.org>
69418
69419        Enable the preload scanner on the background parser thread
69420        https://bugs.webkit.org/show_bug.cgi?id=108027
69421
69422        Reviewed by Tony Gentilcore.
69423
69424        The patch causes us to pass all the fast/preloader tests with the
69425        threaded parser enabled.
69426
69427        This patch wires up the BackgroundHTMLParser to the
69428        TokenPreloadScanner.  Currently, we bail out of preload scanning if we
69429        encounter a document.write becaues we don't know how to rewind the
69430        preload scanner, but that's something we can tune in the future.
69431
69432        The BackgroundHTMLParser delivers the preloads to the
69433        HTMLDocumentParser together with the token stream. If the
69434        HTMLDocumentParser isn't able to use the token stream immediately, it
69435        kicks off the preloads.
69436
69437        * html/parser/BackgroundHTMLParser.cpp:
69438        (WebCore::checkThatPreloadsAreSafeToSendToAnotherThread):
69439        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
69440        (WebCore::BackgroundHTMLParser::resumeFrom):
69441        (WebCore::BackgroundHTMLParser::pumpTokenizer):
69442        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
69443        * html/parser/BackgroundHTMLParser.h:
69444        (Configuration):
69445            - We need to add a struct for the create function because the
69446              number of arguments exceeds the limits of Functional.h.
69447        (BackgroundHTMLParser):
69448        (WebCore::BackgroundHTMLParser::create):
69449        * html/parser/CSSPreloadScanner.cpp:
69450        (WebCore::CSSPreloadScanner::scanCommon):
69451        (WebCore::CSSPreloadScanner::scan):
69452        (WebCore::CSSPreloadScanner::emitRule):
69453            - We need to use a new string here so that the string is safe to
69454              send to another thread.
69455        * html/parser/CSSPreloadScanner.h:
69456        (CSSPreloadScanner):
69457        * html/parser/HTMLDocumentParser.cpp:
69458        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
69459        (WebCore::HTMLDocumentParser::startBackgroundParser):
69460            - Following the example of the XSSAuditor, we create the
69461              TokenPreloadScanner on the main thread and then send it to the
69462              background thread for operation.
69463        * html/parser/HTMLDocumentParser.h:
69464        (WebCore):
69465        (ParsedChunk):
69466        * html/parser/HTMLParserOptions.h:
69467        (HTMLParserOptions):
69468            - We need to add a default constructor so that the
69469              HTMLDocumentParser can create an empty
69470              BackgroundHTMLParser::Configuration struct.
69471        * html/parser/HTMLPreloadScanner.cpp:
69472        (WebCore::TokenPreloadScanner::scan):
69473        (WebCore::TokenPreloadScanner::scanCommon):
69474        (WebCore::HTMLPreloadScanner::scan):
69475        * html/parser/HTMLPreloadScanner.h:
69476        (TokenPreloadScanner):
69477        (WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
69478        * html/parser/HTMLResourcePreloader.cpp:
69479        (WebCore::HTMLResourcePreloader::takeAndPreload):
69480        (WebCore):
69481        * html/parser/HTMLResourcePreloader.h:
69482        (WebCore::PreloadRequest::PreloadRequest):
69483        (WebCore):
69484        (HTMLResourcePreloader):
69485
694862013-02-15  Ryosuke Niwa  <rniwa@webkit.org>
69487
69488        Build fix after r143030. We need to keep updatedRange around until createMarkupInternal returns.
69489
69490        * editing/markup.cpp:
69491        (WebCore::createMarkup):
69492
694932013-02-15  Rik Cabanier  <cabanier@adobe.com>
69494
69495        Add platform support for -webkit-background-blend-mode to CG context
69496        https://bugs.webkit.org/show_bug.cgi?id=108549
69497
69498        Reviewed by Dean Jackson.
69499
69500        Tests: css3/compositing/effect-background-blend-mode-stacking.html
69501               css3/compositing/effect-background-blend-mode.html
69502
69503        This patch adds support for blending on background images to the Core Graphics port of WebKit.
69504
69505        * platform/graphics/CrossfadeGeneratedImage.cpp: Added interface change for blending.
69506        (WebCore::CrossfadeGeneratedImage::drawPattern):
69507        * platform/graphics/CrossfadeGeneratedImage.h: Added interface change for blending.
69508        (CrossfadeGeneratedImage):
69509        * platform/graphics/GeneratedImage.h: Added interface change for blending.
69510        (GeneratedImage):
69511        * platform/graphics/GeneratorGeneratedImage.cpp: Added interface change for blending.
69512        (WebCore::GeneratorGeneratedImage::drawPattern):
69513        * platform/graphics/GeneratorGeneratedImage.h: Added interface change for blending.
69514        (GeneratorGeneratedImage):
69515        * platform/graphics/GraphicsContext.cpp: Added interface change for blending and passes blend mode to image object.
69516        (WebCore::GraphicsContext::drawTiledImage):
69517        (WebCore::GraphicsContext::blendModeOperation):
69518        (WebCore):
69519        * platform/graphics/GraphicsContext.h: Added interface change for blending.
69520        (GraphicsContext):
69521        * platform/graphics/Image.cpp: Added interface change for blending and passed it to graphics layer.
69522        (WebCore::Image::drawTiled):
69523        * platform/graphics/Image.h: Added interface change for blending.
69524        (Image):
69525        * platform/graphics/cg/ImageCG.cpp: Added interface change for blending and passed it to OS.
69526        (WebCore::Image::drawPattern):
69527        * rendering/RenderBoxModelObject.cpp: Passed blend mode when drawing background images.
69528        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
69529        * platform/graphics/cairo/ImageCairo.cpp: Added interface change for blending.
69530        (WebCore::Image::drawPattern):
69531        * platform/graphics/qt/ImageQt.cpp: Added interface change for blending.
69532        (WebCore::Image::drawPattern):
69533        * platform/graphics/skia/ImageSkia.cpp: Added interface change for blending.
69534        (WebCore::Image::drawPattern):
69535        * rendering/RenderBoxModelObject.cpp: Added interface change for blending.
69536        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
69537        * svg/graphics/SVGImageForContainer.cpp: Added interface change for blending.
69538        (WebCore::SVGImageForContainer::drawPattern):
69539        * svg/graphics/SVGImageForContainer.h: Added interface change for blending.
69540
695412013-02-14  Emil A Eklund  <eae@chromium.org>
69542
69543        Clamp span value in RenderTableCell::parse[Col|Row]SpanFromDOM
69544        https://bugs.webkit.org/show_bug.cgi?id=109878
69545
69546        Reviewed by Abhishek Arya.
69547
69548        Test: fast/table/colspan-huge-number.html
69549        
69550        Clamp colspan and rowspan values to their respective maximum
69551        supported values.
69552
69553        * rendering/RenderTableCell.cpp:
69554        (WebCore::RenderTableCell::parseColSpanFromDOM):
69555        (WebCore::RenderTableCell::parseRowSpanFromDOM):
69556
695572013-02-15  Andreas Kling  <akling@apple.com>
69558
69559        ShareableElementData should use zero-length array for storage.
69560        <http://webkit.org/b/109959>
69561
69562        Reviewed by Anders Carlsson.
69563
69564        Use a zero-length Attribute array instead of always casting from void* to an array.
69565        It was done this way originally because I didn't know we could sidestep the MSVC
69566        build error with some #pragma hackery.
69567
69568        * dom/DocumentSharedObjectPool.cpp:
69569        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
69570        * dom/Element.cpp:
69571        (WebCore::sizeForShareableElementDataWithAttributeCount):
69572        (WebCore::ShareableElementData::ShareableElementData):
69573        (WebCore::ShareableElementData::~ShareableElementData):
69574        (WebCore::UniqueElementData::UniqueElementData):
69575        * dom/Element.h:
69576        (ShareableElementData):
69577        (WebCore::ElementData::attributeItem):
69578
695792013-02-14  Ojan Vafai  <ojan@chromium.org>
69580
69581        Implement RenderGrid::computeIntrinsicLogicalWidths
69582        https://bugs.webkit.org/show_bug.cgi?id=109881
69583
69584        Reviewed by Tony Chang.
69585
69586        For now this is not observable due to the FIXMEs for unimplemented bits
69587        of computePreferredLogicalWidths. But, soon, I'll be removing the computePreferredLogicalWidths
69588        override entirely and instead use RenderBlock's, which will also address the
69589        RenderGrid FIXMEs.
69590
69591        * rendering/RenderGrid.cpp:
69592        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
69593        const_cast the usages of m_grid. Alternately, we could stack allocate it, but there's disagreement on
69594        whether that's the right choice. See https://bugs.webkit.org/show_bug.cgi?id=109880.
69595
69596        (WebCore::RenderGrid::computePreferredLogicalWidths):
69597        * rendering/RenderGrid.h:
69598
69599
696002013-02-15  Xueqing Huang  <huangxueqing@baidu.com>
69601
69602        Flexbox should ignore firstLine pseudo element.
69603        https://bugs.webkit.org/show_bug.cgi?id=104485
69604
69605        Reviewed by Tony Chang.
69606
69607        Spec[1] said that "None of the properties defined in this module
69608        apply to '::first-line' or '::first-letter' pseudo-elements." and
69609        css2[2] define "The :first-line pseudo-element can only be attached
69610        to a block container element." 
69611        [1]http://dev.w3.org/csswg/css3-flexbox/#display-flex
69612        [2]http://www.w3.org/TR/CSS2/selector.html#first-line-pseudo
69613
69614        tests:
69615        css3/flexbox/flexbox-ignore-firstLine.html
69616        css3/flexbox/flexitem-firstLine-valid.html
69617        css3/flexbox/inline-flexbox-ignore-firstLine.html 
69618
69619        * rendering/RenderBlock.cpp:
69620        (WebCore::RenderBlock::firstLineBlock):
69621
696222013-02-15  Alec Flett  <alecflett@chromium.org>
69623
69624        IndexedDB: Implement SharedBuffer version of put()
69625        https://bugs.webkit.org/show_bug.cgi?id=109092
69626
69627        Reviewed by Adam Barth.
69628
69629        Switch IDBDatabaseBackendInterface::put over
69630        to SharedBuffer, to avoid buffer copies of the value.
69631
69632        No new tests, this is a refactor.
69633
69634        * Modules/indexeddb/IDBBackingStore.cpp:
69635        (WebCore::IDBBackingStore::putRecord):
69636        * Modules/indexeddb/IDBBackingStore.h:
69637        (WebCore):
69638        (IDBBackingStore):
69639        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
69640        (WebCore::PutOperation::create):
69641        (WebCore::PutOperation::PutOperation):
69642        (PutOperation):
69643        (WebCore::IDBDatabaseBackendImpl::put):
69644        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
69645        (IDBDatabaseBackendImpl):
69646        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
69647        (WebCore):
69648        * Modules/indexeddb/IDBObjectStore.cpp:
69649        (WebCore::IDBObjectStore::put):
69650
696512013-02-15  Anders Carlsson  <andersca@apple.com>
69652
69653        Implement StorageAreaProxy::length
69654        https://bugs.webkit.org/show_bug.cgi?id=109962
69655
69656        Reviewed by Andreas Kling.
69657
69658        Export a symbol needed by WebKit2.
69659
69660        * WebCore.exp.in:
69661
696622013-02-15  Anders Carlsson  <andersca@apple.com>
69663
69664        Remove const from a bunch of StorageArea member functions
69665        https://bugs.webkit.org/show_bug.cgi?id=109957
69666
69667        Reviewed by Beth Dakin.
69668
69669        StorageArea is an abstract base class, and its subclasses might want to mutate the object
69670        when certain member functions are called so remove const from all member functions.
69671
69672        * storage/StorageArea.h:
69673        (WebCore):
69674        (StorageArea):
69675        (WebCore::StorageArea::~StorageArea):
69676        (WebCore::StorageArea::incrementAccessCount):
69677        (WebCore::StorageArea::decrementAccessCount):
69678        (WebCore::StorageArea::closeDatabaseIfIdle):
69679        * storage/StorageAreaImpl.cpp:
69680        (WebCore::StorageAreaImpl::canAccessStorage):
69681        (WebCore::StorageAreaImpl::length):
69682        (WebCore::StorageAreaImpl::key):
69683        (WebCore::StorageAreaImpl::getItem):
69684        (WebCore::StorageAreaImpl::contains):
69685        (WebCore::StorageAreaImpl::memoryBytesUsedByCache):
69686        * storage/StorageAreaImpl.h:
69687        (StorageAreaImpl):
69688
696892013-02-13  Ryosuke Niwa  <rniwa@webkit.org>
69690
69691        DeleteButtonController::enable and disable should be called via a RAII object
69692        https://bugs.webkit.org/show_bug.cgi?id=109550
69693
69694        Reviewed by Enrica Casucci.
69695
69696        Added DeleteButtonControllerDisableScope, a friend class of DeleteButtonController,
69697        and made DeleteButtonController::enable/disable private.
69698
69699        * dom/ContainerNode.cpp:
69700        * editing/CompositeEditCommand.cpp:
69701        (WebCore::EditCommandComposition::unapply):
69702        (WebCore::EditCommandComposition::reapply):
69703        (WebCore::CompositeEditCommand::apply):
69704        * editing/DeleteButtonController.h:
69705        (WebCore):
69706        (DeleteButtonController):
69707        (DeleteButtonControllerDisableScope):
69708        (WebCore::DeleteButtonControllerDisableScope::DeleteButtonControllerDisableScope):
69709        (WebCore::DeleteButtonControllerDisableScope::~DeleteButtonControllerDisableScope):
69710        * editing/markup.cpp:
69711        (WebCore::createMarkup):
69712        (WebCore::createFragmentFromNodes):
69713
697142013-02-15  Max Vujovic  <mvujovic@adobe.com>
69715
69716        Add code from other branch.
69717
69718        [CSS Shaders] Parse src property in @-webkit-filter at-rules
69719        https://bugs.webkit.org/show_bug.cgi?id=109770
69720
69721        Reviewed by Dean Jackson.
69722
69723        This patch implements the parsing for the CSS src property in @-webkit-filter at-rules.
69724
69725        The Filter Effects spec [1] specifies its syntax:
69726            src: [ <uri> [format(<string>)]?]#
69727
69728        In practice, it can look like:
69729            src: url(shader.vs) format('x-shader/x-vertex'),
69730                 url(shader.fs) format('x-shader/x-fragment');
69731
69732        This src property is similar to the src property in CSS font-face rules, but a little
69733        different. The CSS Fonts spec [2] specifies:
69734            src: [ <uri> [format(<string>#)]? | <font-face-name> ]#
69735            The syntax for a <font-face-name> is a unique font face name enclosed by "local("
69736            and ")".
69737
69738        Unlike the filter src property, the font face src property accepts the local function
69739        [e.g. src: local("SomeFont");]. Also, the font face src property accepts a list of strings
69740        instead of just one string in its format function.
69741
69742        [1]: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#custom-filter-src
69743        [2]: http://www.w3.org/TR/css3-fonts/#src-desc
69744
69745        Tests: css3/filters/custom-with-at-rule-syntax/parsing-src-property-invalid.html
69746               css3/filters/custom-with-at-rule-syntax/parsing-src-property-valid.html
69747
69748        * css/CSSGrammar.y.in:
69749            Set (and unset) a flag called "m_inFilterRule", which tells us if we are in a
69750            @-webkit-filter at-rule or in a @font-face at-rule when we encounter a src property.
69751            We parse the two variants of the src property separately so that we can create different
69752            objects (WebKitCSSShaderValue vs. CSSFontFaceSrcValue) and because their syntax is a
69753            little different.
69754        * css/CSSParser.cpp:
69755        (WebCore::CSSParser::CSSParser):
69756        (WebCore::CSSParser::parseValue):
69757        (WebCore::CSSParser::parseFilterRuleSrcUriAndFormat):
69758            Parses a URI and format pair found in the @-webkit-filter src property.
69759        (WebCore::CSSParser::parseFilterRuleSrc):
69760            Parse the @-webkit-filter src property.
69761        * css/CSSParser.h:
69762        (CSSParser):
69763        * css/WebKitCSSShaderValue.cpp:
69764        (WebCore::WebKitCSSShaderValue::customCssText):
69765            WebKitCSSShaderValue now has an m_format member, which needs to be included in its
69766            cssText.
69767        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
69768        * css/WebKitCSSShaderValue.h:
69769        (WebCore::WebKitCSSShaderValue::format):
69770        (WebCore::WebKitCSSShaderValue::setFormat):
69771        (WebKitCSSShaderValue):
69772
697732013-02-15  Eric Carlson  <eric.carlson@apple.com>
69774
69775        Crash occurs at WebCore::TextTrackList::length() when enabling closed captions in movie
69776        https://bugs.webkit.org/show_bug.cgi?id=109886
69777
69778        Reviewed by Dean Jackson.
69779
69780        No new tests, media/media-captions.html does not crash with this change.
69781
69782        * html/HTMLMediaElement.cpp:
69783        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Early return when
69784            m_textTracks is NULL.
69785
697862013-02-15  Adam Barth  <abarth@webkit.org>
69787
69788        TokenPreloadScanner should be able to scan CompactHTMLTokens
69789        https://bugs.webkit.org/show_bug.cgi?id=109861
69790
69791        Reviewed by Eric Seidel.
69792
69793        This patch moves the main scanning logic for the TokenPreloadScanner to
69794        a templated scanCommon routine that can scan either an HTMLToken or a
69795        CompactHTMLToken. This patch will let the BackgroundHTMLParser preload
69796        scan its CompactHTMLTokens.
69797
69798        * html/parser/CSSPreloadScanner.cpp:
69799        (WebCore):
69800        (WebCore::CSSPreloadScanner::scanCommon):
69801        (WebCore::CSSPreloadScanner::scan):
69802        * html/parser/CSSPreloadScanner.h:
69803        (CSSPreloadScanner):
69804            - Tweak the CSSPreloadScanner API slightly to make it easier to
69805              call from templated code.
69806        * html/parser/HTMLPreloadScanner.cpp:
69807        (WebCore::TokenPreloadScanner::tagIdFor):
69808        (WebCore):
69809        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
69810        (TokenPreloadScanner::StartTagScanner):
69811        (WebCore::TokenPreloadScanner::scan):
69812        (WebCore::TokenPreloadScanner::scanCommon):
69813        (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
69814        (WebCore::HTMLPreloadScanner::scan):
69815        * html/parser/HTMLPreloadScanner.h:
69816        (TokenPreloadScanner):
69817
698182013-02-15  Alexis Menard  <alexis@webkit.org>
69819
69820        WebKit shouldn't accept "none, none" in transition shorthand property.
69821        https://bugs.webkit.org/show_bug.cgi?id=108751
69822
69823        Reviewed by Dean Jackson.
69824
69825        http://dev.w3.org/csswg/css3-transitions/#transition-shorthand-property
69826        specifies that if there is more than one transition defined in the
69827        shorthand and any of them has a value of 'none' then the declaration is
69828        invalid. This patch fixes the problem by passing a parsing context to
69829        track if a keyword has been set for the transition-property and if so
69830        then use it to invalidate or not the declaration.
69831
69832        Test: transitions/transitions-parsing.html
69833
69834        * css/CSSParser.cpp:
69835        (AnimationParseContext):
69836        (WebCore::AnimationParseContext::AnimationParseContext):
69837        (WebCore::AnimationParseContext::commitFirstAnimation): track whether
69838        it's the first <single-transition/animation> or not defined in the
69839        shorthand.
69840        (WebCore::AnimationParseContext::hasCommittedFirstAnimation):
69841        (WebCore::AnimationParseContext::commitAnimationPropertyKeywordInShorthand):
69842        In the shorthand as soon as a keyword has been found then the parsing
69843        is 'finished', if any other animation/transition declaration part of
69844        the shorthand are with a keyword then it's invalid.
69845        (WebCore::AnimationParseContext::animationPropertyKeywordInShorthandAllowed):
69846        (WebCore::AnimationParseContext::hasSeenAnimationPropertyKeyword):
69847        (WebCore::AnimationParseContext::sawAnimationPropertyKeyword):
69848        (WebCore):
69849        (WebCore::CSSParser::parseValue):
69850        (WebCore::CSSParser::parseAnimationShorthand):
69851        (WebCore::CSSParser::parseTransitionShorthand):
69852        (WebCore::CSSParser::parseAnimationProperty):
69853        * css/CSSParser.h:
69854        (WebCore):
69855
698562013-02-15  Andreas Kling  <akling@apple.com>
69857
69858        ElementData: Move leafy things out of the base class.
69859        <http://webkit.org/b/109888>
69860
69861        Reviewed by Antti Koivisto.
69862
69863        - Moved functions for mutating/adding/removing attributes into UniqueElementData.
69864          Attempts to modify shared element data will now fail at compile-time.
69865
69866        - Removed mutableAttributeVector() and have call sites access the vector directly.
69867
69868        - Move immutableAttributeArray() to ShareableElementData.
69869
69870        - Move some function bodies from Element.h to Element.cpp since all clients are in there.
69871
69872        * dom/Element.cpp:
69873        (WebCore::Element::addAttributeInternal):
69874        (WebCore::ShareableElementData::ShareableElementData):
69875        (WebCore::UniqueElementData::makeShareableCopy):
69876        (WebCore::UniqueElementData::addAttribute):
69877        (WebCore::UniqueElementData::removeAttribute):
69878        (WebCore::ElementData::reportMemoryUsage):
69879        (WebCore::UniqueElementData::getAttributeItem):
69880        (WebCore::UniqueElementData::attributeItem):
69881        * dom/Element.h:
69882        (ElementData):
69883        (WebCore::ShareableElementData::immutableAttributeArray):
69884        (ShareableElementData):
69885        (UniqueElementData):
69886        (WebCore::ElementData::length):
69887        (WebCore::ElementData::attributeItem):
69888
698892013-02-15  Hans Muller  <hmuller@adobe.com>
69890
69891        [CSS Exclusions] Enable shape-inside support for circles
69892        https://bugs.webkit.org/show_bug.cgi?id=109713
69893
69894        Reviewed by Dirk Schulze.
69895
69896        Removed the test that disabled circle values for shape-inside.
69897        The remaining support for circles, which is based on rounded rectangles
69898        whose width/height is equal to their radiusX/radiusY, has not changed.
69899
69900        Test: fast/exclusions/shape-inside/shape-inside-circle.html
69901
69902        * rendering/ExclusionShapeInsideInfo.h:
69903        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Now only disallows ellipse.
69904
699052013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
69906
69907        [Soup] Leverage new soup_cookie_jar_get_cookie_list() API
69908        https://bugs.webkit.org/show_bug.cgi?id=109931
69909
69910        Reviewed by Kenneth Rohde Christiansen.
69911
69912        In several cases, the CookieJarSoup implementation was retrieving / copying ALL the
69913        cookies using soup_cookie_jar_all_cookies() and then using soup_cookie_applies_to_uri()
69914        to filter out cookies it is not interested in. This was inefficient.
69915
69916        In libsoup 2.40, soup_cookie_jar_get_cookie_list() was introduced to retrieve only the
69917        cookies that apply to a given URI. This patch leverages this new API in CookieJarSoup's
69918        getRawCookies() and deleteCookie(). This way, only the cookies we are interested in
69919        are retrieved and copied. Libsoup does not need to iterate over all the cookies itself
69920        because it keeps the cookies in a hash table using the host names as key.
69921
69922        No new tests, no behavior change.
69923
69924        * platform/network/soup/CookieJarSoup.cpp:
69925        (WebCore::getRawCookies):
69926        (WebCore::deleteCookie):
69927
699282013-02-15  Vladislav Kaznacheev  <kaznacheev@chromium.org>
69929
69930        Web Inspector: Added an option to split Elements and Sources sidebars in two panes.
69931        https://bugs.webkit.org/show_bug.cgi?id=109298.
69932
69933        Reviewed by Vsevolod Vlasov.
69934
69935        Introduced the "Split sidebar" context menu option that splits the horizontal sidebar into two panes.
69936        The width split ratio is 1:1 by default and is preserved when the Inspector window is resized.
69937        Elements sidebar is split into two tabbed panes, Sources sidebar is split into a pane stack and a tabbed pane.
69938
69939        No new tests.
69940
69941        * inspector/front-end/DOMBreakpointsSidebarPane.js:
69942        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
69943        * inspector/front-end/ElementsPanel.js:
69944        (WebInspector.ElementsPanel.get this):
69945        (WebInspector.ElementsPanel):
69946        (WebInspector.ElementsPanel.prototype._sidebarContextMenuEventFired):
69947        (WebInspector.ElementsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
69948        (WebInspector.ElementsPanel.prototype.get _arrangeSidebarPanes.get this):
69949        (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
69950        * inspector/front-end/ExtensionServer.js:
69951        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
69952        * inspector/front-end/ScriptsPanel.js:
69953        (WebInspector.ScriptsPanel):
69954        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
69955        (WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
69956        (WebInspector.ScriptsPanel.prototype._sidebarContextMenuEventFired):
69957        (WebInspector.ScriptsPanel.prototype._populateContextMenuForSidebar.toggleSetting):
69958        (WebInspector.ScriptsPanel.prototype.get _arrangeSidebarPanes.get this):
69959        * inspector/front-end/SidebarPane.js:
69960        (WebInspector.SidebarPane):
69961        (WebInspector.SidebarPane.prototype.expand):
69962        (WebInspector.SidebarPane.prototype.onContentReady):
69963        (WebInspector.SidebarPane.prototype._setExpandCallback):
69964        (WebInspector.SidebarPane.prototype.wasShown):
69965        (WebInspector.SidebarPaneTitle):
69966        (WebInspector.SidebarPaneTitle.prototype._expand):
69967        (WebInspector.SidebarPaneTitle.prototype._collapse):
69968        (WebInspector.SidebarPaneTitle.prototype._toggleExpanded):
69969        (WebInspector.SidebarPaneTitle.prototype._onTitleKeyDown):
69970        (WebInspector.SidebarPaneStack):
69971        (WebInspector.SidebarPaneStack.prototype.addPane):
69972        (WebInspector.SidebarTabbedPane):
69973        (WebInspector.SidebarTabbedPane.prototype.addPane):
69974        * inspector/front-end/SidebarView.js:
69975        * inspector/front-end/SplitView.js:
69976        (WebInspector.SplitView):
69977        (WebInspector.SplitView.prototype.get mainElement):
69978        (WebInspector.SplitView.prototype.get sidebarElement):
69979
699802013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>
69981
69982        Web Inspector: Several consecutive Backspace or Delete strikes should not be marked as undoable state.
69983        https://bugs.webkit.org/show_bug.cgi?id=109915
69984
69985        Reviewed by Pavel Feldman.
69986
69987        Extracted _isEditRangeUndoBoundary() and _isEditRangeAdjacentToLastCommand() in TextEditorModel
69988        to detect if markUndoableState() call is needed before and after editRange.
69989
69990        * inspector/front-end/TextEditorModel.js:
69991        (WebInspector.TextRange.prototype.immediatelyPrecedes):
69992        (WebInspector.TextRange.prototype.immediatelyFollows):
69993        (WebInspector.TextEditorModel.endsWithBracketRegex.):
69994
699952013-02-15  Andrey Adaikin  <aandrey@chromium.org>
69996
69997        Fix inconsistency in WebGLRenderingContext.idl for getAttribLocation
69998        https://bugs.webkit.org/show_bug.cgi?id=109892
69999
70000        Reviewed by Kentaro Hara.
70001
70002        * html/canvas/WebGLRenderingContext.idl:
70003
700042013-02-15  Andrey Adaikin  <aandrey@chromium.org>
70005
70006        Web Inspector: [Canvas] show replay log grouped by draw calls
70007        https://bugs.webkit.org/show_bug.cgi?id=109592
70008
70009        Reviewed by Pavel Feldman.
70010
70011        Show canvas capturing log grouped by drawing calls.
70012        Drive-by: extended Array.prototype with a handy peekLast function.
70013        Drive-by: removed code dups in few places.
70014
70015        * inspector/front-end/CanvasProfileView.js:
70016        (WebInspector.CanvasProfileView):
70017        (WebInspector.CanvasProfileView.prototype.dispose):
70018        (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
70019        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
70020        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
70021        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
70022        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
70023        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
70024        (WebInspector.CanvasProfileView.prototype._selectedCallIndex):
70025        (WebInspector.CanvasProfileView.prototype._selectedDrawCallGroupIndex):
70026        (WebInspector.CanvasProfileView.prototype._appendCallNode):
70027        * inspector/front-end/DataGrid.js:
70028        (WebInspector.DataGrid.prototype.setColumnVisible):
70029        (WebInspector.DataGridNode.prototype.set hasChildren):
70030        (WebInspector.DataGridNode.prototype.set revealed):
70031        (WebInspector.DataGridNode.prototype.get leftPadding):
70032        * inspector/front-end/externs.js:
70033        (Array.prototype.peekLast):
70034        * inspector/front-end/utilities.js:
70035
700362013-02-15  Yury Semikhatsky  <yurys@chromium.org>
70037
70038        Web Inspector: highlight record revealed in Timeline
70039        https://bugs.webkit.org/show_bug.cgi?id=109930
70040
70041        Reviewed by Pavel Feldman.
70042
70043        Revealed timeline record is now highlighted with yellow background
70044        that fades out in 2 seconds.
70045
70046        * inspector/front-end/TimelinePanel.js:
70047        (WebInspector.TimelinePanel.prototype._revealRecord):
70048        (WebInspector.TimelinePanel.prototype._refreshRecords):
70049        (WebInspector.TimelinePanel.prototype._clearRecordHighlight):
70050        * inspector/front-end/timelinePanel.css:
70051        (.highlighted-timeline-record):
70052        (@-webkit-keyframes timeline_record_highlight):
70053        (to):
70054
700552013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>
70056
70057        Web Inspector: Pass original selection to textModel to correctly restore it after undo.
70058        https://bugs.webkit.org/show_bug.cgi?id=109911
70059
70060        Reviewed by Pavel Feldman.
70061
70062        We can distinguish backspace pressed with and without selection now.
70063
70064        * inspector/front-end/DefaultTextEditor.js:
70065        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
70066        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):
70067        * inspector/front-end/TextEditorModel.js:
70068        (WebInspector.TextEditorCommand):
70069        (WebInspector.TextEditorModel.endsWithBracketRegex.):
70070
700712013-02-15  Joe Mason  <jmason@rim.com>
70072
70073        [BlackBerry] Remove redundant requireAuth parameter of NetworkJob::notifyAuthReceived
70074        https://bugs.webkit.org/show_bug.cgi?id=109855
70075
70076        Reviewed by Yong Li.
70077
70078        Internal PR: 296697
70079        Internally Reviewed By: Leo Yang
70080
70081        Code cleanup: The requireAuth parameter of NetworkJob::notifyAuthReceived is redundant as its value
70082        can be determined from "result" - if result is AuthResultRetry, requireAuth is false, otherwise it
70083        is true.
70084
70085        No new tests as there is no behaviour change.
70086
70087        * platform/network/blackberry/NetworkJob.cpp:
70088        (WebCore::NetworkJob::notifyAuthReceived):
70089        * platform/network/blackberry/NetworkJob.h:
70090        (NetworkJob):
70091
700922013-02-15  Vsevolod Vlasov  <vsevik@chromium.org>
70093
70094        Web Inspector: Redo in text editor should always collapse selection to end.
70095        https://bugs.webkit.org/show_bug.cgi?id=109907
70096
70097        Reviewed by Pavel Feldman.
70098
70099        * inspector/front-end/TextEditorModel.js:
70100        (WebInspector.TextEditorModel.endsWithBracketRegex.):
70101
701022013-02-15  Dan Carney  <dcarney@google.com>
70103
70104        [v8] persistent handle dispose before last use
70105        https://bugs.webkit.org/show_bug.cgi?id=109927
70106
70107        Reviewed by Jochen Eisinger.
70108
70109        No new tests. No change in functionality.
70110
70111        * bindings/v8/ScriptWrappable.h:
70112        (WebCore::ScriptWrappable::weakCallback):
70113
701142013-02-15  Keishi Hattori  <keishi@webkit.org>
70115
70116        PagePopupController.formatMonth should support short month format
70117        https://bugs.webkit.org/show_bug.cgi?id=109530
70118
70119        Reviewed by Kent Tamura.
70120
70121        PagePopupController.formatMonth should support short month format so we
70122        can use it in the new calendar picker.
70123
70124        Tested by LocaleMacTest::formatMonth.
70125
70126        * page/PagePopupController.cpp:
70127        (WebCore::PagePopupController::formatMonth): Take an extra bool argument to switch to short month format.
70128        * page/PagePopupController.h:
70129        (PagePopupController):
70130        * page/PagePopupController.idl:
70131        * platform/text/LocaleICU.cpp:
70132        (WebCore::LocaleICU::shortMonthFormat):
70133        (WebCore):
70134        * platform/text/LocaleICU.h:
70135        (LocaleICU):
70136        * platform/text/LocaleNone.cpp:
70137        (WebCore::shortMonthFormat):
70138        (WebCore):
70139        * platform/text/PlatformLocale.cpp:
70140        (WebCore::DateTimeStringBuilder::visitField):
70141        (WebCore::Locale::formatDateTime):
70142        * platform/text/PlatformLocale.h:
70143        (Locale):
70144        * platform/text/mac/LocaleMac.h:
70145        (LocaleMac):
70146        * platform/text/mac/LocaleMac.mm:
70147        (WebCore::LocaleMac::shortMonthFormat):
70148        (WebCore):
70149        * platform/text/win/LocaleWin.cpp:
70150        (WebCore::LocaleWin::shortMonthFormat): Windows doesn't have a short
70151        month format so we just replace MMMM with MMM.
70152        (WebCore):
70153        * platform/text/win/LocaleWin.h:
70154        (LocaleWin):
70155
701562013-02-15  Keishi Hattori  <keishi@webkit.org>
70157
70158        Add setValue and closePopup methods to PagePopupController
70159        https://bugs.webkit.org/show_bug.cgi?id=109897
70160
70161        Reviewed by Kent Tamura.
70162
70163        The new calendar picker (Bug 109439) needs to set a value without
70164        closing the popup. We can't do that with the existing
70165        setValueAndClosePopup.
70166
70167        No new tests. Existing calendar picker and color suggestion picker tests
70168        that closing and setting values work properly.
70169
70170        * Resources/pagepopups/pickerCommon.js:
70171        (Picker.prototype.submitValue): Stop using setValueAndClosePopup.
70172        (Picker.prototype.handleCancel): Ditto.
70173        * page/PagePopupClient.h:
70174        (PagePopupClient):
70175        * page/PagePopupController.cpp:
70176        (WebCore::PagePopupController::setValue): Sets value to element without closing popup.
70177        (WebCore):
70178        (WebCore::PagePopupController::closePopup): Just closes popup.
70179        * page/PagePopupController.h:
70180        (PagePopupController):
70181        * page/PagePopupController.idl:
70182
701832013-02-15  Mihnea Ovidenie  <mihnea@adobe.com>
70184
70185        [CSS Regions] RenderRegion should inherit from RenderBlock
70186        https://bugs.webkit.org/show_bug.cgi?id=74132
70187
70188        Reviewed by Julien Chaffraix.
70189
70190        Change the base class for RenderRegion to be RenderBlock instead of RenderReplaced.
70191        Per spec http://dev.w3.org/csswg/css3-regions/#the-flow-from-property, a region is a non-replaced block container.
70192        This change is covered by the existing regions tests (in fast/region and fast/repaint).
70193
70194        The RenderFlowThread object is a self-painting layer (it requires layer and is positioned).
70195        Because of that, the RenderFlowThread object is responsible for painting its children,
70196        the collected objects. When the RenderRegion::paintObject is called during paint, it delegates painting
70197        of content collected inside the flow thread to the associated RenderFlowThread object.
70198        Since we do not want to paint the flow thread content multiple times (for each paint phase
70199        in which the RenderRegion::paintObject is called), we allow RenderFlowThread painting only for
70200        selection and foreground paint phases.
70201
70202        * rendering/RenderBox.cpp: Clean-up the code from regions specific stuff, now that the regions are render blocks.
70203        (WebCore::RenderBox::computePositionedLogicalWidth):
70204        (WebCore::RenderBox::computePositionedLogicalHeight):
70205        * rendering/RenderLayerBacking.cpp: A region should always render content from its associated flow thread,
70206        even when it does not have children of its own.
70207        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
70208        * rendering/RenderMultiColumnSet.cpp: Make changes to match the new inheritance for RenderRegion.
70209        (WebCore::RenderMultiColumnSet::paint):
70210        (WebCore::RenderMultiColumnSet::paintColumnRules):
70211        * rendering/RenderMultiColumnSet.h:
70212        * rendering/RenderRegion.cpp:
70213        (WebCore::RenderRegion::RenderRegion):
70214        (WebCore::RenderRegion::paintObject):
70215        (WebCore::RenderRegion::styleDidChange):
70216        (WebCore::RenderRegion::layoutBlock):
70217        (WebCore::RenderRegion::insertedIntoTree):
70218        (WebCore::RenderRegion::willBeRemovedFromTree):
70219        (WebCore::RenderRegion::computePreferredLogicalWidths): Use this method instead of min/maxPreferredLogicalWidth.
70220        (WebCore::RenderRegion::updateLogicalHeight):
70221        * rendering/RenderRegion.h: For now, assume the region is not allowed to have children.
70222        When we will implement the processing model for pseudo-elements http://dev.w3.org/csswg/css3-regions/#processing-model,
70223        we will have to remove this function. By having this function return false i was able to leave some tests unchanged.
70224
702252013-02-15  Andrey Lushnikov  <lushnikov@chromium.org>
70226
70227        Web Inspector: implement smart braces functionality
70228        https://bugs.webkit.org/show_bug.cgi?id=109200
70229
70230        Reviewed by Pavel Feldman.
70231
70232        - implement SmartBraceController which will handle character insertions
70233        and override them if brace character was inserted. Additionally it
70234        should handle Backspace key and override it if a cursor is located
70235        inside of a bracket pair.
70236        - guard smart brace functionality via experiment checkbox.
70237
70238        New test: inspector/editor/text-editor-smart-braces.html
70239
70240        * inspector/front-end/DefaultTextEditor.js:
70241        (WebInspector.TextEditorMainPanel):
70242        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
70243        (WebInspector.TextEditorMainPanel.prototype._handleKeyPress):
70244        (WebInspector.TextEditorMainPanel.SmartBraceController):
70245        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerShortcuts):
70246        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype.registerCharOverrides):
70247        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBackspace):
70248        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleBracePairInsertion):
70249        (WebInspector.TextEditorMainPanel.SmartBraceController.prototype._handleClosingBraceOverride):
70250        * inspector/front-end/Settings.js:
70251        (WebInspector.ExperimentsSettings):
70252
702532013-02-15  Andrei Bucur  <abucur@adobe.com>
70254
70255        [CSS Regions][Mac] fast/regions/full-screen-video-from-region.html hits an assertion in RenderFlowThread::removeRenderBoxRegionInfo
70256        https://bugs.webkit.org/show_bug.cgi?id=106075
70257
70258        Reviewed by Tony Chang.
70259
70260        The crash is caused by two issues.
70261
70262        The first problem is how a block inside a flow thread determines if the children needs relayout or not.
70263        When the region chain is invalidated, the information is lost so we need to return true, even for the
70264        enclosing RenderFlowThread. Because the video renderer is the first child of the flow thread this doesn't
70265        happen.
70266
70267        The patch implements this behaviour by inspecting both if the region chain has changed and
70268        if the block has no range computed yet.
70269
70270        The second problem is RenderMedia not inheriting from RenderBlock. The logic of child relayout doesn't apply
70271        to it. In the test case, when the full screen button is pressed, the region changes width to fill the viewport,
70272        the chain is invalidated and the box info hash map is cleared. When the video is laid out again (after fixing
70273        the first issue) it has the same size so the controls don't do a layout. They remain without box info inside
70274        the flow thread, thus causing the assertion.
70275
70276        The patch forces the controls to relayout if the region chain was invalidated. We can't use the
70277        logicalWidthChangedInRegions method because it is block specific. This will be fixed in a later patch.
70278
70279        Tests: No new tests. fast/regions/full-screen-video-from-region.html no longer crashes.
70280
70281        * rendering/RenderBlock.cpp:
70282        (WebCore::RenderBlock::checkForPaginationLogicalHeightChange):
70283        * rendering/RenderFlowThread.cpp:
70284        (WebCore::RenderFlowThread::RenderFlowThread):
70285        (WebCore::RenderFlowThread::layout):
70286        (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
70287        * rendering/RenderFlowThread.h: Renamed pageLogicalHeightChanged to pageLogicalSizeChanged.
70288        * rendering/RenderMedia.cpp:
70289        (WebCore::RenderMedia::layout):
70290
702912013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
70292
70293        [CoordGfx] Regression from r135212: big layers with transform animations sometime fail to render tiles
70294        https://bugs.webkit.org/show_bug.cgi?id=109179
70295
70296        Reviewed by Jocelyn Turcotte.
70297
70298        Fix adjustForContentsRect logic for AC layers that are higher or wider than the visible rect.
70299
70300        Force updates of the visible rect while it is animating, and until we have done one last update after
70301        it stops animating.
70302
70303        Test: compositing/transitions/transform-on-large-layer.html
70304
70305        * platform/graphics/TiledBackingStore.cpp:
70306        (WebCore::TiledBackingStore::adjustForContentsRect):
70307        (WebCore::TiledBackingStore::computeCoverAndKeepRect):
70308        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
70309        (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
70310        (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
70311        (WebCore::CoordinatedGraphicsLayer::computePixelAlignment):
70312        (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
70313        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
70314        (CoordinatedGraphicsLayer):
70315
703162013-02-15  Sheriff Bot  <webkit.review.bot@gmail.com>
70317
70318        Unreviewed, rolling out r142876.
70319        http://trac.webkit.org/changeset/142876
70320        https://bugs.webkit.org/show_bug.cgi?id=109920
70321
70322        Broke relative URL linkification in the computed styles pane
70323        (Requested by apavlov on #webkit).
70324
70325        * inspector/front-end/StylesSidebarPane.js:
70326        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
70327
703282013-02-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>
70329
70330        Simplify hitTestResultAtPoint and nodesFromRect APIs
70331        https://bugs.webkit.org/show_bug.cgi?id=95720
70332
70333        Reviewed by Julien Chaffraix.
70334
70335        The existing API was overloaded and could be simplified by passing all the bool arguments in 
70336        a HitTestRequest argument. This should also help clarify the call as the enum values explicitely
70337        state what they do.
70338
70339        * WebCore.exp.in:
70340        * WebCore.order:
70341        * dom/Document.cpp:
70342        (WebCore::Document::nodesFromRect):
70343        * dom/Document.h:
70344        (Document):
70345        * page/ContextMenuController.cpp:
70346        (WebCore::ContextMenuController::createContextMenu):
70347        * page/DragController.cpp:
70348        (WebCore::DragController::canProcessDrag):
70349        (WebCore::DragController::startDrag):
70350        * page/EventHandler.cpp:
70351        (WebCore::EventHandler::hitTestResultAtPoint):
70352        (WebCore::EventHandler::handleMousePressEvent):
70353        (WebCore::EventHandler::handleGestureEvent):
70354        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
70355        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
70356        (WebCore::EventHandler::bestContextMenuNodeForTouchPoint):
70357        (WebCore::EventHandler::bestZoomableAreaForTouchPoint):
70358        (WebCore::EventHandler::handleTouchEvent):
70359        * page/EventHandler.h:
70360        (WebCore):
70361        (EventHandler):
70362        * page/FocusController.cpp:
70363        (WebCore::updateFocusCandidateIfNeeded):
70364        * page/Frame.cpp:
70365        (WebCore::Frame::visiblePositionForPoint):
70366        (WebCore::Frame::documentAtPoint):
70367        * page/TouchDisambiguation.cpp:
70368        (WebCore::findGoodTouchTargets):
70369        * rendering/HitTestRequest.h:
70370        (WebCore::HitTestRequest::allowsFrameScrollbars):
70371        * testing/Internals.cpp:
70372        (WebCore::Internals::nodesFromRect):
70373
703742013-02-14  Pavel Feldman  <pfeldman@chromium.org>
70375
70376        Web Inspector: make component-based compile-front-end happy
70377        https://bugs.webkit.org/show_bug.cgi?id=109798
70378
70379        Reviewed by Vsevolod Vlasov.
70380
70381        * inspector/Inspector.json:
70382        * inspector/InspectorDebuggerAgent.cpp:
70383        (WebCore::InspectorDebuggerAgent::setVariableValue):
70384        * inspector/InspectorDebuggerAgent.h:
70385        (InspectorDebuggerAgent):
70386        * inspector/compile-front-end.py:
70387        * inspector/front-end/AuditResultView.js:
70388        * inspector/front-end/CPUProfileView.js:
70389        * inspector/front-end/DataGrid.js:
70390        * inspector/front-end/InspectorFrontendAPI.js:
70391        (InspectorFrontendAPI.loadTimelineFromURL):
70392
703932013-02-14  Alexander Pavlov  <apavlov@chromium.org>
70394
70395        Web Inspector: Implement tracking of active stylesheets in the frontend
70396        https://bugs.webkit.org/show_bug.cgi?id=105828
70397
70398        Reviewed by Pavel Feldman.
70399
70400        - This change introduces the CSS.styleSheetAdded() and CSS.styleSheetRemoved() events
70401        that update the frontend with all active stylesheet changes in the inspected page.
70402        As such, fetching stylesheet headers from the backend manually is no longer needed,
70403        and many asynchronous methods have been turned into normal accessors.
70404        - One notable change to the stylesheet binding process is that when a via-inspector stylesheet
70405        is created, it is instantly reported through the instrumentation, and the viaInspectorStyleSheet() method
70406        is [indirectly] called recursively from bindStyleSheet(). Thus, the actual creation and registration
70407        of the respective InspectorStyleSheet have been moved into bindStyleSheet(),
70408        which relies upon the m_creatingViaInspectorStyleSheet flag.
70409
70410        Test: inspector/styles/stylesheet-tracking.html
70411
70412        * dom/DocumentStyleSheetCollection.cpp:
70413        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Instrumented.
70414        * inspector/Inspector.json: Add events, update the CSS domain description.
70415        * inspector/InspectorCSSAgent.cpp:
70416        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
70417        (WebCore::InspectorCSSAgent::clearFrontend):
70418        (WebCore::InspectorCSSAgent::enable): Push all existing stylesheet headers into the frontend.
70419        (WebCore::InspectorCSSAgent::activeStyleSheetsUpdated): Push added/removed stylesheet into the frontend.
70420        (WebCore::InspectorCSSAgent::getAllStyleSheets): Slightly refactored to make use of collectAllStyleSheets().
70421        (WebCore::InspectorCSSAgent::collectAllStyleSheets): Added to collect InspectorStyleSheets rather than headers.
70422        (WebCore::InspectorCSSAgent::collectStyleSheets):
70423        (WebCore::InspectorCSSAgent::bindStyleSheet): Binds via-inspector stylesheets, too.
70424        (WebCore::InspectorCSSAgent::unbindStyleSheet): Now we can unbind stylesheets upon their removal from the document.
70425        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet): Modifies m_creatingViaInspectorStyleSheet when necessary.
70426        (WebCore::InspectorCSSAgent::detectOrigin): Modified to make use of m_creatingViaInspectorStyleSheet.
70427        (WebCore::InspectorCSSAgent::buildObjectForRule): Removed extraneous bound InspectorStyleSheet 0-check.
70428        * inspector/InspectorCSSAgent.h:
70429        * inspector/InspectorInstrumentation.cpp: Instrumentation of active stylesheet set updates.
70430        (WebCore::InspectorInstrumentation::activeStyleSheetsUpdatedImpl):
70431        * inspector/InspectorInstrumentation.h: Ditto.
70432        (WebCore::InspectorInstrumentation::activeStyleSheetsUpdated):
70433        * inspector/front-end/CSSStyleModel.js:
70434        (WebInspector.CSSStyleModel.prototype.styleSheetHeaders):
70435        (WebInspector.CSSStyleModel.prototype._styleSheetAdded): Added.
70436        (WebInspector.CSSStyleModel.prototype._styleSheetRemoved): Added.
70437        (WebInspector.CSSStyleModel.prototype.viaInspectorResourceForRule):
70438        (WebInspector.CSSStyleModelResourceBinding.prototype._setHeaderForStyleSheetId):
70439        (WebInspector.CSSStyleModelResourceBinding.prototype.resourceURLForStyleSheetId):
70440        (WebInspector.CSSStyleModelResourceBinding.prototype.styleSheetIdForResource):
70441        (WebInspector.CSSStyleModelResourceBinding.prototype._headerKey): Calculate the (frameID + URL) key for CSSStyleSheetHeader.
70442        (WebInspector.CSSStyleModelResourceBinding.prototype._createInspectorResource):
70443        (WebInspector.CSSStyleModelResourceBinding.prototype._inspectorResource):
70444        (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
70445        (WebInspector.CSSDispatcher.prototype.styleSheetAdded): Added.
70446        (WebInspector.CSSDispatcher.prototype.styleSheetRemoved): Added.
70447        * inspector/front-end/SASSSourceMapping.js: Get rid of async implementations.
70448        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
70449        * inspector/front-end/StylesSidebarPane.js: Ditto.
70450        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
70451        * inspector/front-end/StylesSourceMapping.js: Ditto.
70452        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
70453
704542013-02-15  Andrei Bucur  <abucur@adobe.com>
70455
70456        Implement the -webkit-margin-collapse properties correct rendering
70457        https://bugs.webkit.org/show_bug.cgi?id=108168
70458
70459        Reviewed by David Hyatt.
70460
70461        The patch implements the correct behavior for the -webkit-margin-collapse properties:
70462        - a value of "discard" on a margin will truncate all the margins collapsing with it;
70463        - a value of "separate" will prevent the margin to collapse;
70464        - a value of "collapse" is the default collapse behavior.
70465
70466        The implementation is aware of multiple writing-modes:
70467        - if the writing mode of a child is parallel with the writing mode of the container and has the same direction,
70468        the -webkit-margin-collapse properties on the child are left as is;
70469        - if the writing mode of a child is parallel with the writing mode of the container but has a different direction,
70470        the -webkit-margin-collapse properties on the child are reversed;
70471        - if the writing mode of a child is perpendicular on the writing mode of the container,
70472        the -webkit-margin-collapse properties on the child are ignored;
70473
70474        I. The "discard" value implementation
70475        There are two new bits (before and after) added on the RenderBlockRareData structure specifying if the margins
70476        of the block will be discarded or not. We can't rely only on the value from style() because
70477        it's possible a block to discard it's margins because it has collapsed with a children that
70478        specified "discard" for -webkit-margin-collapse. However, the bits are set only if it is
70479        required.
70480        Another bit is added on the MarginInfo structure specifying if the margin has to be discarded or not. When
70481        collapsing at the before side of a block it will hold information if the container block needs to discard
70482        or not. If the collapsing happens between siblings/with after side of the container it will tell if the previous
70483        child discards the margin or not. The self collapsing blocks are a special case. If any of its margins
70484        discards then both its margins discard and all the other margins collapsing with it.
70485        To ensure an optimal behavior it is asserted margin values can't be set on the MarginInfo object if the
70486        discard flag is active. If this happens it may indicate someone ignored the possibility of the margin being
70487        discarded altogether and incorrectly updated the margin values.
70488        Float clearing also needs to change because it may force margins to stop collapsing. If this happens the discard
70489        flags and margins needs to be restored to their values before the collapse.
70490
70491        II. The "separate" value implementation
70492        The implementation for separate was not changed too much. I've added new accessor methods for the property
70493        that take writing mode into consideration and I've removed some code that didn't work correctly in layoutBlockChild.
70494        The problem was the marginInfo structure was cleared if the child was specifying the "separate" value for before.
70495        This is wrong because you lose the margin information of the previous child/before side.
70496
70497        Tests: fast/block/margin-collapse/webkit-margin-collapse-container.html
70498               fast/block/margin-collapse/webkit-margin-collapse-floats.html
70499               fast/block/margin-collapse/webkit-margin-collapse-siblings-bt.html
70500               fast/block/margin-collapse/webkit-margin-collapse-siblings.html
70501
70502        * rendering/RenderBlock.cpp:
70503        (WebCore::RenderBlock::MarginInfo::MarginInfo):
70504        (WebCore::RenderBlock::layoutBlock):
70505        (WebCore::RenderBlock::collapseMargins):
70506        (WebCore::RenderBlock::clearFloatsIfNeeded):
70507        (WebCore::RenderBlock::marginBeforeEstimateForChild):
70508        (WebCore::RenderBlock::estimateLogicalTopPosition):
70509        (WebCore::RenderBlock::setCollapsedBottomMargin):
70510        (WebCore::RenderBlock::handleAfterSideOfBlock):
70511        (WebCore::RenderBlock::layoutBlockChild):
70512        (WebCore::RenderBlock::setMustDiscardMarginBefore):
70513        (WebCore):
70514        (WebCore::RenderBlock::setMustDiscardMarginAfter):
70515        (WebCore::RenderBlock::mustDiscardMarginBefore):
70516        (WebCore::RenderBlock::mustDiscardMarginAfter):
70517        (WebCore::RenderBlock::mustDiscardMarginBeforeForChild):
70518        (WebCore::RenderBlock::mustDiscardMarginAfterForChild):
70519        (WebCore::RenderBlock::mustSeparateMarginBeforeForChild):
70520        (WebCore::RenderBlock::mustSeparateMarginAfterForChild):
70521        * rendering/RenderBlock.h:
70522        (RenderBlock):
70523        (WebCore::RenderBlock::initMaxMarginValues):
70524        (MarginInfo):
70525        (WebCore::RenderBlock::MarginInfo::setPositiveMargin):
70526        (WebCore::RenderBlock::MarginInfo::setNegativeMargin):
70527        (WebCore::RenderBlock::MarginInfo::setPositiveMarginIfLarger):
70528        (WebCore::RenderBlock::MarginInfo::setNegativeMarginIfLarger):
70529        (WebCore::RenderBlock::MarginInfo::setMargin):
70530        (WebCore::RenderBlock::MarginInfo::setCanCollapseMarginAfterWithChildren):
70531        (WebCore::RenderBlock::MarginInfo::setDiscardMargin):
70532        (WebCore::RenderBlock::MarginInfo::discardMargin):
70533        (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
70534        (WebCore::RenderBlock::RenderBlockRareData::positiveMarginBeforeDefault):
70535        (RenderBlockRareData):
70536        * rendering/style/RenderStyle.h:
70537
705382013-02-14  Yury Semikhatsky  <yurys@chromium.org>
70539
70540        Web Inspector: always show memory size in Mb on the native memory graph
70541        https://bugs.webkit.org/show_bug.cgi?id=109813
70542
70543        Reviewed by Pavel Feldman.
70544
70545        Memory size vlue is alway shown in Mb on the native memory graph.
70546
70547        * inspector/front-end/NativeMemoryGraph.js:
70548        (WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
70549
705502013-02-14  Andrey Adaikin  <aandrey@chromium.org>
70551
70552        Use GL typedefs in WebGLRenderingContext.idl
70553        https://bugs.webkit.org/show_bug.cgi?id=109060
70554
70555        Reviewed by Kenneth Russell.
70556
70557        Use GL typedefs in WebGLRenderingContext.idl according to the specs.
70558        Added a FIXME about inconsistency with the current WebGL spec for getAttribLocation.
70559
70560        Tested manually that generators V8, JS, ObjC, GObject, CPP produce same output.
70561
70562        * html/canvas/WebGLRenderingContext.idl:
70563
705642013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
70565
70566        Web Inspector: Copy-pasting selected text over itself should be an undoable state.
70567        https://bugs.webkit.org/show_bug.cgi?id=109830
70568
70569        Reviewed by Pavel Feldman.
70570
70571        * inspector/front-end/TextEditorModel.js:
70572        (WebInspector.TextEditorModel.endsWithBracketRegex.):
70573
705742013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
70575
70576        Unreviewed, rolling out r142889.
70577        http://trac.webkit.org/changeset/142889
70578        https://bugs.webkit.org/show_bug.cgi?id=109891
70579
70580        It caused an assertion failure in scrollbars/overflow-
70581        scrollbar-combinations.html (Requested by tkent on #webkit).
70582
70583        * rendering/RenderBox.cpp:
70584        (WebCore::borderWidthChanged):
70585        (WebCore::RenderBox::styleDidChange):
70586
705872013-02-14  Arpita Bahuguna  <arpitabahuguna@gmail.com>
70588
70589        Caret positioned at the end of a text line (followed by an empty block) in vertical writing mode disappears when pressing the right/down arrow key.
70590        https://bugs.webkit.org/show_bug.cgi?id=106452
70591
70592        Reviewed by Ryosuke Niwa.
70593
70594        Pressing the down or the right arrow key at the end of a text line in
70595        vertical writing mode would make the caret dissapear. This occurs only
70596        when the text line is followed by an empty block.
70597
70598        When trying to compute the next position for placing the caret (for
70599        down/right key), we try to ascertain whether the renderer (in this
70600        case the empty block) is a valid candidate or not. For blockFlow
70601        elements we check against their height.
70602        In vertical writing mode though we would fail such a check since we
70603        should instead be comparing against the renderer's width and not
70604        it's height. Thus, a valid position for the placement of the caret
70605        was not found in such a case.
70606
70607        Test: editing/selection/caret-at-end-of-text-line-followed-by-empty-block-in-vertical-mode.html
70608
70609        * dom/Position.cpp:
70610        (WebCore::Position::isCandidate):
70611        * dom/PositionIterator.cpp:
70612        (WebCore::PositionIterator::isCandidate):
70613        Instead of checking against the height(), check against the
70614        logicalHeight() of the renderer has been added. logicalHeight()
70615        on blockFlow renderer's returns a value in accordance with
70616        the writing mode.
70617
706182013-02-14  Ryosuke Niwa  <rniwa@webkit.org>
70619
70620        Windows build fix after r142957.
70621
70622        * dom/DOMAllInOne.cpp:
70623
706242013-02-14  Ryosuke Niwa  <rniwa@webkit.org>
70625
70626        Fix a typo introduced in r142705.
70627
70628        Without this fix, text-input-controller.html can fail when DeleteButtonController is enabled.
70629        e.g. "run-webkit-tests platform/mac/editing/deleting/deletionUI-single-instance.html
70630            platform/mac/editing/input/text-input-controller.html --child-processes=1"
70631
70632        * editing/Editor.cpp:
70633        (WebCore::Editor::avoidIntersectionWithDeleteButtonController):
70634
706352013-02-14  Hayato Ito  <hayato@chromium.org>
70636
70637        Factor Event retargeting code.
70638        https://bugs.webkit.org/show_bug.cgi?id=109156
70639
70640        Reviewed by Dimitri Glazkov.
70641
70642        To supoort Touch event retargeting (bug 107800), we have to factor
70643        event retargeting code so that it can support not only MouseEvent,
70644        but also other events.
70645
70646        New class, EventRetargeter, was introduced. From now,
70647        EventDispatchMediator (and its subclasses) should call, if event
70648        retargeting is required, an appropriate function provided in
70649        EventRetargeter rather than calling
70650        EventDispatcher::adjustRelatedTarget(), which was removed in this
70651        patch.
70652
70653        No tests. No change in behavior.
70654
70655        * CMakeLists.txt:
70656        * GNUmakefile.list.am:
70657        * Target.pri:
70658        * WebCore.gypi:
70659        * WebCore.xcodeproj/project.pbxproj:
70660        * dom/EventDispatchMediator.cpp:
70661        * dom/EventDispatcher.cpp:
70662        (WebCore):
70663        (WebCore::EventDispatcher::ensureEventPath): Changed to return an EventPath, which will be used by EventRetargeter.
70664        (WebCore::EventDispatcher::dispatchScopedEvent):
70665        (WebCore::EventDispatcher::dispatchEvent):
70666        (WebCore::EventDispatcher::dispatchEventPostProcess):
70667        * dom/EventDispatcher.h:
70668        (WebCore):
70669        (EventDispatcher):
70670        * dom/EventRetargeter.cpp: Added.
70671        (WebCore):
70672        (WebCore::inTheSameScope):
70673        (WebCore::determineDispatchBehavior):
70674        (WebCore::EventRetargeter::calculateEventPath): Factored out from EventDispatcher::ensureEventPath().
70675        (WebCore::EventRetargeter::adjustForMouseEvent):
70676        (WebCore::EventRetargeter::adjustForFocusEvent):
70677        (WebCore::EventRetargeter::adjustForRelatedTarget):
70678        (WebCore::EventRetargeter::calculateAdjustedNodes): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
70679        (WebCore::EventRetargeter::buildRelatedNodeMap): Factored out from EventRelatedTargetAjuster::adjustRelatedTarget().
70680        (WebCore::EventRetargeter::findRelatedNode):
70681        * dom/EventRetargeter.h: Added.
70682        (WebCore):
70683        (EventRetargeter):
70684        (WebCore::EventRetargeter::eventTargetRespectingTargetRules):
70685        * dom/FocusEvent.cpp:
70686        (WebCore::FocusEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForFocusEvent().
70687        (WebCore::BlurEventDispatchMediator::dispatchEvent): Ditto.
70688        (WebCore::FocusInEventDispatchMediator::dispatchEvent): Ditto.
70689        (WebCore::FocusOutEventDispatchMediator::dispatchEvent): Ditto.
70690        * dom/MouseEvent.cpp:
70691        (WebCore::MouseEventDispatchMediator::dispatchEvent): Changed to call EventRetargeter::adjustForMouseEvent().
70692
706932013-02-14  Simon Fraser  <simon.fraser@apple.com>
70694
70695        Reverting r142861. Hit testing inside of style recalc is fundamentally wrong
70696
70697        * page/EventHandler.cpp:
70698        (WebCore::EventHandler::selectCursor):
70699        (WebCore::EventHandler::handleMouseMoveEvent):
70700        * page/EventHandler.h:
70701        * rendering/RenderObject.cpp:
70702        (WebCore::RenderObject::setStyle):
70703        (WebCore::areNonIdenticalCursorListsEqual):
70704        (WebCore::areCursorsEqual):
70705        (WebCore::RenderObject::styleDidChange):
70706
707072013-02-14  Florin Malita  <fmalita@chromium.org>
70708
70709        [SVG] Cached filter results are not invalidated on repaint rect change
70710        https://bugs.webkit.org/show_bug.cgi?id=106221
70711
70712        Reviewed by Dean Jackson.
70713
70714        Since the cached filter results are not invalidated for different repaint rects, we need
70715        to render the content of the whole filter region upfront (otherwise elements not visible
70716        during the initial paint due to scrolling/window size/etc. are never redrawn).
70717
70718        Tests: svg/filters/filter-hidden-content-expected.svg
70719               svg/filters/filter-hidden-content.svg
70720
70721        * rendering/svg/RenderSVGResourceFilter.cpp:
70722        (WebCore::RenderSVGResourceFilter::applyResource):
70723        (WebCore::RenderSVGResourceFilter::drawingRegion):
70724        (WebCore):
70725        * rendering/svg/RenderSVGResourceFilter.h:
70726        (FilterData):
70727        (RenderSVGResourceFilter):
70728        Track the filter drawing region in FilterData.
70729
70730        * rendering/svg/SVGRenderingContext.cpp:
70731        (WebCore::SVGRenderingContext::~SVGRenderingContext):
70732        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
70733        * rendering/svg/SVGRenderingContext.h:
70734        Update paintInfo.rect to cover the whole drawing region while rendering filter content, and
70735        restore it when done.
70736
707372013-02-14  Jinwoo Song  <jinwoo7.song@samsung.com>
70738
70739        [EFL] Correct the mismatched cursor map
70740        https://bugs.webkit.org/show_bug.cgi?id=109655
70741
70742        Reviewed by Laszlo Gombos.
70743
70744        Correct the mismatched ECORE_X_CURSOR values in the cursor map.
70745
70746        * platform/efl/EflScreenUtilities.cpp:
70747        (WebCore::CursorMap::CursorMap):
70748
707492013-02-14  Kentaro Hara  <haraken@chromium.org>
70750
70751        Unreviewed. Rebaselined run-bindings-tests.
70752
70753        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
70754        (WebDOMTestObj::anyAttribute):
70755        (WebDOMTestObj::setAnyAttribute):
70756        * bindings/scripts/test/CPP/WebDOMTestObj.h:
70757        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
70758        (webkit_dom_test_obj_get_any_attribute):
70759        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
70760        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
70761        * bindings/scripts/test/V8/V8TestTypedefs.cpp:
70762        (WebCore::TestTypedefsV8Internal::funcWithClampCallback):
70763
707642013-02-14  Christian Biesinger  <cbiesinger@chromium.org>
70765
70766        Convert media controls from DeprecatedFlexibleBox to FlexibleBox
70767        https://bugs.webkit.org/show_bug.cgi?id=109775
70768
70769        Reviewed by Ojan Vafai.
70770
70771        Covered by existing tests in media/.
70772
70773        * css/mediaControls.css:
70774        * css/mediaControlsBlackBerry.css:
70775        * css/mediaControlsChromium.css:
70776        * css/mediaControlsChromiumAndroid.css:
70777        * css/mediaControlsEfl.css:
70778        * css/mediaControlsGtk.css:
70779        * css/mediaControlsQt.css:
70780        * css/mediaControlsQuickTime.css:
70781        Automated search and replace of old flexbox CSS rules to new ones.
70782        Minor tuning of the chromium rules.
70783
70784        * rendering/RenderMediaControlElements.cpp:
70785        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
70786        (WebCore::RenderMediaControlTimeDisplay::layout):
70787        * rendering/RenderMediaControlElements.h:
70788        Make media controls inherit from RenderFlexibleBox
70789
707902013-02-14  Roger Fong  <roger_fong@apple.com>
70791
70792        Build fix for Windows.
70793
70794        * Modules/webdatabase/SQLTransactionStateMachine.cpp:
70795        (WebCore::nameForSQLTransactionState):
70796
707972013-02-14  Dean Jackson  <dino@apple.com>
70798
70799        Inspector doesn't show rules from pluginsStyleSheet
70800        https://bugs.webkit.org/show_bug.cgi?id=109872
70801
70802        Reviewed by Darin Adler.
70803
70804        Make sure getWrapperForRuleInSheets collects the rules
70805        from CSSDefaultStyleSheets::plugInsStyleSheet.
70806
70807        Making a test for this is difficult because the rules in
70808        this sheet only apply to snapshotted plugins at the moment,
70809        which are disabled in DRT, and would require a fairly long
70810        timeout in the test.
70811
70812        * css/InspectorCSSOMWrappers.cpp:
70813        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
70814
708152013-02-14  Hayato Ito  <hayato@chromium.org>
70816
70817        Recover edge names used in MemoryInstrumentation for DocumentRuleSets.
70818        https://bugs.webkit.org/show_bug.cgi?id=109800
70819
70820        Reviewed by Hajime Morita.
70821
70822        This is a following patch for r142573.
70823        r142563 accidentally removes edge names for MemoryInstrumentation. We should recover edge names.
70824
70825        No tests. No change in behavior.
70826
70827        * css/DocumentRuleSets.cpp:
70828        (WebCore::DocumentRuleSets::reportMemoryUsage):
70829
708302013-02-14  Hajime Morrita  <morrita@google.com>
70831
70832        [V8] Assertion failure on an exception is thrown
70833        https://bugs.webkit.org/show_bug.cgi?id=109129
70834
70835        An assertion in V8AbstractEventListener is wrong. This change turns it into an error check.
70836
70837        Reviewed by Kentaro Hara.
70838
70839        Test: fast/events/onerror-no-constructor.html
70840
70841        * bindings/v8/V8AbstractEventListener.cpp:
70842        (WebCore::V8AbstractEventListener::handleEvent):
70843
708442013-02-14  Kentaro Hara  <haraken@chromium.org>
70845
70846        [V8] CodeGeneratorV8.pm can assume that DOMWindow has [CheckSecurity]
70847        https://bugs.webkit.org/show_bug.cgi?id=109788
70848
70849        Reviewed by Adam Barth.
70850
70851        There is code like this:
70852
70853          if ($extendedAttr{"CheckSecurity"} || $interfaceName eq "DOMWindow")
70854
70855        This check is redundant. DOMWindow has [CheckSecurity]. We can remove the
70856        DOMWindow check.
70857
70858        No tests. No change in behavior.
70859
70860        * bindings/scripts/CodeGeneratorV8.pm:
70861        (GenerateReplaceableAttrSetter):
70862        (GenerateFunctionCallback):
70863        (GenerateNonStandardFunction):
70864        (GenerateImplementation):
70865
708662013-02-14  Joshua Bell  <jsbell@chromium.org>
70867
70868        [V8] IndexedDB: Remove unused creationContext paramter from idbKeyToV8Value
70869        https://bugs.webkit.org/show_bug.cgi?id=109870
70870
70871        Reviewed by Kentaro Hara.
70872
70873        This parameter was left over from when the function was toV8(IDBKey). Remove it.
70874
70875        No new tests - just removing dead code.
70876
70877        * bindings/v8/IDBBindingUtilities.cpp:
70878        (WebCore::idbKeyToV8Value): Remove unused parameter.
70879        (WebCore::injectIDBKeyIntoScriptValue): No need for dummy handle.
70880        (WebCore::idbKeyToScriptValue): No need for dummy handle.
70881
708822013-02-14  Kondapally Kalyan  <kalyan.kondapally@intel.com>
70883
70884        [WebGL][Qt] regression:r142786 Qt Build fix for Arm and Windows.
70885        https://bugs.webkit.org/show_bug.cgi?id=109797
70886
70887        Reviewed by Csaba Osztrogonác.
70888
70889        After r142786, we use OpenGLShims to load necessary GL functions
70890        exposed by ARB_vertex_array_object extension. Qt uses OpenGLShims
70891        to load functions with GLES too. This patch adds support for loading the
70892        equivalent functions on GLES exposed by OES_vertex_array_object.
70893        
70894        * platform/graphics/OpenGLShims.cpp:
70895        (WebCore::initializeOpenGLShims):
70896        * platform/graphics/OpenGLShims.h:
70897
708982013-02-14  Alexey Proskuryakov  <ap@apple.com>
70899
70900        <rdar://problem/13210723> CORS preflight broken with NetworkProcess
70901        https://bugs.webkit.org/show_bug.cgi?id=109753
70902
70903        Reviewed by Brady Eidson.
70904
70905        * loader/DocumentThreadableLoader.h:
70906        * loader/DocumentThreadableLoader.cpp:
70907        (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
70908        (WebCore::DocumentThreadableLoader::cancel):
70909        (WebCore::DocumentThreadableLoader::didReceiveResponse):
70910        (WebCore::DocumentThreadableLoader::dataReceived):
70911        (WebCore::DocumentThreadableLoader::didReceiveData):
70912        (WebCore::DocumentThreadableLoader::notifyFinished):
70913        (WebCore::DocumentThreadableLoader::didFinishLoading):
70914        (WebCore::DocumentThreadableLoader::didFail):
70915        (WebCore::DocumentThreadableLoader::preflightFailure): Notify InspectorInstrumentation
70916        immediately. In addition to keeping up eith other changes, this means that an accurate
70917        error will be passed now, not a cancellation.
70918        (WebCore::DocumentThreadableLoader::loadRequest):
70919        Get rid of m_preflightRequestIdentifier. Every loader has an identifier, and tracking
70920        identifiers twice is wrong.
70921        Pass identifier explicitly to more internal functions, so that they would not have to
70922        second-guess callers.
70923
70924        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSendRequest):
70925        Create an identifier for all loaders, not just those that we expect to have client
70926        callbacks about. Both Inspector and NetworkProcess need identifiers everywhere.
70927
70928        * loader/TextTrackLoader.cpp: (WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource):
70929        * loader/TextTrackLoader.h:
70930        * loader/cache/CachedResourceClient.h:
70931        (WebCore::CachedResourceClient::deprecatedDidReceiveCachedResource):
70932        * loader/cache/CachedTextTrack.cpp: (WebCore::CachedTextTrack::data):
70933        Renamed didReceiveData to avoid conflict with the new DocumentThreadableLoader::didReceiveData.
70934        And we should really get rid of this CachedResourceClient function anyway.
70935
709362013-02-14  Kentaro Hara  <haraken@chromium.org>
70937
70938        Replace 'DOMObject' with 'any'
70939        https://bugs.webkit.org/show_bug.cgi?id=109793
70940
70941        Reviewed by Dimitri Glazkov.
70942
70943        In the Web IDL spec, there is no type named 'DOMObject'.
70944        It should be 'any'. We should replace all 'DOMObject's in WebKit IDLs with 'any's.
70945
70946        * Modules/webdatabase/SQLResultSetRowList.idl:
70947        * bindings/scripts/CodeGeneratorCPP.pm:
70948        (GetClassName):
70949        (AddIncludesForType):
70950        * bindings/scripts/CodeGeneratorGObject.pm:
70951        (GenerateFunction):
70952        * bindings/scripts/CodeGeneratorJS.pm:
70953        (AddIncludesForType):
70954        (GenerateImplementation):
70955        (JSValueToNative):
70956        (NativeToJSValue):
70957        * bindings/scripts/CodeGeneratorV8.pm:
70958        (GetNativeType):
70959        (JSValueToNative):
70960        (GetV8HeaderName):
70961        * dom/CustomEvent.idl:
70962        * dom/MessageEvent.idl:
70963        * dom/PopStateEvent.idl:
70964        * fileapi/FileReader.idl:
70965        * html/HTMLCanvasElement.idl:
70966        * html/HTMLElement.idl:
70967        * html/canvas/DataView.idl:
70968        * inspector/InjectedScriptHost.idl:
70969        * inspector/InspectorFrontendHost.idl:
70970        * inspector/JavaScriptCallFrame.idl:
70971        * page/DOMWindow.idl:
70972        * page/Location.idl:
70973
709742013-02-14  Kentaro Hara  <haraken@chromium.org>
70975
70976        [V8] Remove GenerateEventListenerCallback() from CodeGeneratorV8.pm
70977        https://bugs.webkit.org/show_bug.cgi?id=109786
70978
70979        Reviewed by Adam Barth.
70980
70981        Some code is duplicated between GenerateEventListenerCallback()
70982        and GenerateFunctionCallback(). By inlining GenerateEventListenerCallback()
70983        into GenerateFunctionCallback(), we can remove the duplication.
70984
70985        No tests. No change in behavior.
70986
70987        * bindings/scripts/CodeGeneratorV8.pm:
70988        (GenerateFunctionCallback):
70989
709902013-02-14  Ojan Vafai  <ojan@chromium.org>
70991
70992        Intrinsic and preferred widths on replaced elements are wrong in many cases
70993        https://bugs.webkit.org/show_bug.cgi?id=109859
70994
70995        Reviewed by Levi Weintraub.
70996
70997        Test: fast/replaced/preferred-widths.html
70998
70999        * rendering/RenderReplaced.cpp:
71000        (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
71001        Separate out computing the intrinsic widths. Eventually,
71002        we should be able to share computePreferredLogicalWidth implementations
71003        for all replaced elements and form controls since only the intrinsic width
71004        changes.
71005
71006        (WebCore::RenderReplaced::computePreferredLogicalWidths):
71007        -Apply min-width and max-width constraints and then add borderAndPaddingLogicalWidth
71008        at the end to make sure it's always applied. This matches all our other
71009        computePreferredLogicalWidths override and makes use match Gecko's/Opera's rendering.
71010        -Only set the minPreferredLogicalWidth to 0 if the width or max-width is a percent value.
71011        Doing it for height values and for min-width doesn't make any sense and doesn't
71012        match other browsers. Doing this for max-width still doesn't match other browsers,
71013        but it sounds like Gecko at least would like to change that.
71014
71015        * rendering/RenderReplaced.h:
71016        (WebCore::RenderReplaced::hasRelativeIntrinsicLogicalWidth):
71017        * rendering/svg/RenderSVGRoot.cpp:
71018        (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth):
71019        Add a way to check if the logicalWidth is relative so that we only check
71020        the width in computePreferredLogicalWidths instead of also checking the height.
71021
71022        * rendering/svg/RenderSVGRoot.h:
71023
710242013-02-14  Stephen Chenney  <schenney@chromium.org>
71025
71026        Crash when selecting a HarfBuzz text run with SVG fonts included
71027        https://bugs.webkit.org/show_bug.cgi?id=109833
71028
71029        Reviewed by Tony Chang.
71030
71031        There is an assert in SimpleFontData::applyTransforms that should not
71032        be there, as the code is valid for SVG fonts. If we get past this,
71033        then the HarfBuzz text run shaping code assumes that font data has a
71034        SkTypeface member, and SVG fonts do not. So we crash there too.
71035
71036        For now, we fix the crashes. This still leaves incorrect selection
71037        rectangles in this situation, on all platforms, tracked in
71038        https://bugs.webkit.org/show_bug.cgi?id=108133
71039
71040        Test: svg/css/font-face-crash.html
71041
71042        * platform/graphics/SimpleFontData.h:
71043        (WebCore::SimpleFontData::applyTransforms): Remove ASSERT_NOT_REACHED as the code can legally be reached for SVG fonts.
71044        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
71045        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Check for SVG fonts in the text run, and abort if we find them.
71046
710472013-02-13 Joe Mason <jmason@rim.com>
71048
71049        [BlackBerry] Notify platform layer of failing to get authentication credentials
71050        https://bugs.webkit.org/show_bug.cgi?id=109751
71051
71052        Reviewed by Yong Li.
71053        Reviewed internally by Leo Yang
71054        Internal PR: 181302
71055
71056        The BlackBerry platform network layer needs to know if a stream failed to get authentication credentials.
71057        This patch is using newly added stream API to do it.
71058
71059        No functionality changed no new tests.
71060
71061        * platform/network/blackberry/NetworkJob.cpp:
71062        (WebCore::NetworkJob::notifyAuthReceived):
71063        (WebCore::NetworkJob::sendRequestWithCredentials):
71064        (WebCore::NetworkJob::notifyChallengeResult):
71065        * platform/network/blackberry/NetworkJob.h:
71066        * platform/network/blackberry/NetworkManager.cpp:
71067        (WebCore::protectionSpaceToPlatformAuth):
71068        (WebCore):
71069        (WebCore::setAuthCredentials):
71070        * platform/network/blackberry/NetworkManager.h:
71071        (WebCore):
71072
710732013-02-14  Kondapally Kalyan  <kalyan.kondapally@intel.com>
71074
71075        [GTK] Fix indentation in GNUmakefile.list.am.
71076        https://bugs.webkit.org/show_bug.cgi?id=109854
71077
71078        Reviewed by Martin Robinson.
71079
71080        This patch fixes indentation in GNUmakefile.list.am.
71081
71082        * GNUmakefile.list.am:
71083
710842013-02-14  Tony Chang  <tony@chromium.org>
71085
71086        Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
71087        https://bugs.webkit.org/show_bug.cgi?id=96934
71088
71089        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
71090        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
71091
710922013-02-14  Abhishek Arya  <inferno@chromium.org>
71093
71094        Bad cast in RenderBlock::splitBlocks.
71095        https://bugs.webkit.org/show_bug.cgi?id=108691
71096
71097        Reviewed by Levi Weintraub.
71098
71099        Test: fast/multicol/remove-child-split-flow-crash.html
71100
71101        * rendering/RenderBlock.cpp:
71102        (WebCore):
71103        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): rename gIsInColumnFlowSplit to gColumnFlowSplitEnabled
71104        and use it to decide when to do the column flow split or not.
71105        (WebCore::RenderBlock::removeChild): Do not allow column flow split inside removeChild
71106        since we might be merging anonymous blocks.
71107
711082013-02-14  Mark Lam  <mark.lam@apple.com>
71109
71110        Split SQLTransaction work between the frontend and backend.
71111        https://bugs.webkit.org/show_bug.cgi?id=104750.
71112
71113        Reviewed by Sam Weinig.
71114
71115        This is part of the webdatabase refactoring for webkit2.
71116
71117        1. Changed how transactions are created.
71118
71119           - Database::runTransaction() first creates a SQLTransaction frontend
71120             which encapsulates the 3 script callbacks. It then passes the
71121             SQLTransaction to the backend database to create the
71122             SQLTransactionBackend.
71123           - The SQLTransactionBackend manages all SQLiteTransaction work.
71124
71125        2. Introduced SQLTransactionState and SQLTransactionStateMachine.
71126
71127           - Instead of tracking the transaction phases as "steps" in m_nextStep,
71128             we now use m_nextState which is of enum class SQLTransactionState.
71129             Unlike m_nextStep which is a pointer to a "step" function,
71130             m_nextState is a state variable which is used to index into a
71131             state dispatch table.
71132
71133           - Both SQLTransaction and SQLTransactionBackend now extends
71134             SQLTransactionStateMachine, and uses its dispatch mechanism based on
71135             the SQLTransactionState.
71136
71137           - Instead of having 1 state machine instances, there are 2: 1 in the
71138             frontend, and 1 in the backend. The 2 have mirrored states, and
71139             transfers work to the other state machine when needed.
71140
71141           - Previously, state functions can be called inline from other states.
71142             They are now only called from the state machines runStateMachine()
71143             method. This makes it possible to isolate the state transition
71144             mechanism going between the sides (frontend and backend) to 2
71145             functions only: SQLTransaction::sendToBackendState() and
71146             SQLTransactionBackend::sendToFrontendState().
71147
71148        3. Consolidated cleanup work (mostly) to a unified cleanup function.
71149
71150        4. Changed the frontend Database::runTransaction() to use a
71151           ChangeVersionData* (instead of a ChangeVersionWrapper ref ptr).
71152
71153           - This is necessary because ChangeVersionWrapper contains functionality
71154             used in processing a transaction (to be invoked in the backend).
71155             Instead, what we want is to simply pass the 2 old and new version
71156             strings to the backend. The new ChangeVersionData simply packages up
71157             these 2 strings.
71158           - This makes ChangeVersionData easy to serialize for IPC messaging later.
71159
71160        5. Moved some transaction functions back to the frontend SQLTransaction
71161           because they belong there.
71162
71163        6. Moved some Database functions to its DatabaseBackendAsync backend
71164           now that the transaction has been split up.
71165
71166           - This is driven naturally by those functions being used exclusively
71167             in the backend for transaction work.
71168           - SQLTransactionClient, SQLTransactionCoordinator, and
71169             SQLTransactionWrapper are now exclusively backend data structures.
71170             SQLTransactionClient still has some frontend "pollution" that I'll
71171             fix later.
71172
71173        7. Made the few database report functions used only by Chromium conditional
71174           on PLATFORM(chromium).
71175
71176           - The report functions gets re-routed to Chromium's DatabaseObserver
71177             which further routes them elsewhere. It is unclear how Chromium uses
71178             these routed messages, and I am therefore not able to determine how
71179             they should work in a frontend/backend world. So, I'm #ifdef'ing
71180             them out. They still work like in the old way for Chromium.
71181
71182        8. Added new files to the build / project files.
71183
71184        9. Updated / added comments about how the transaction and its states work.
71185
71186        No new tests.
71187
71188        * CMakeLists.txt:
71189        * GNUmakefile.list.am:
71190        * Modules/webdatabase/AbstractDatabaseServer.h:
71191        * Modules/webdatabase/ChangeVersionData.h: Added.
71192        (ChangeVersionData):
71193        (WebCore::ChangeVersionData::ChangeVersionData):
71194        (WebCore::ChangeVersionData::oldVersion):
71195        (WebCore::ChangeVersionData::newVersion):
71196        * Modules/webdatabase/ChangeVersionWrapper.cpp:
71197        (WebCore::ChangeVersionWrapper::performPreflight):
71198        (WebCore::ChangeVersionWrapper::performPostflight):
71199        (WebCore::ChangeVersionWrapper::handleCommitFailedAfterPostflight):
71200        * Modules/webdatabase/ChangeVersionWrapper.h:
71201        (ChangeVersionWrapper):
71202        * Modules/webdatabase/Database.cpp:
71203        (WebCore::Database::Database):
71204        (WebCore::Database::close):
71205        (WebCore::Database::changeVersion):
71206        (WebCore::Database::transaction):
71207        (WebCore::Database::readTransaction):
71208        (WebCore::Database::runTransaction):
71209        (WebCore::Database::reportStartTransactionResult):
71210        (WebCore::Database::reportCommitTransactionResult):
71211        (WebCore::Database::reportExecuteStatementResult):
71212        * Modules/webdatabase/Database.h:
71213        (WebCore::Database::databaseContext):
71214        (Database):
71215        (WebCore::Database::reportStartTransactionResult):
71216        (WebCore::Database::reportCommitTransactionResult):
71217        (WebCore::Database::reportExecuteStatementResult):
71218        * Modules/webdatabase/DatabaseBackend.cpp:
71219        * Modules/webdatabase/DatabaseBackend.h:
71220        (DatabaseBackend):
71221        (WebCore::DatabaseBackend::reportOpenDatabaseResult):
71222        (WebCore::DatabaseBackend::reportChangeVersionResult):
71223        (WebCore::DatabaseBackend::reportStartTransactionResult):
71224        (WebCore::DatabaseBackend::reportCommitTransactionResult):
71225        (WebCore::DatabaseBackend::reportExecuteStatementResult):
71226        (WebCore::DatabaseBackend::reportVacuumDatabaseResult):
71227        * Modules/webdatabase/DatabaseBackendAsync.cpp:
71228        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
71229        (WebCore::DatabaseBackendAsync::runTransaction):
71230        (WebCore::DatabaseBackendAsync::inProgressTransactionCompleted): Moved from frontend.
71231        (WebCore::DatabaseBackendAsync::scheduleTransaction): Moved from frontend.
71232        (WebCore::DatabaseBackendAsync::scheduleTransactionStep): Moved from frontend.
71233        (WebCore::DatabaseBackendAsync::transactionClient): Moved from frontend.
71234        (WebCore::DatabaseBackendAsync::transactionCoordinator): Moved from frontend.
71235        * Modules/webdatabase/DatabaseBackendAsync.h:
71236        (DatabaseBackendAsync):
71237        * Modules/webdatabase/DatabaseBackendContext.cpp:
71238        (WebCore::DatabaseBackendContext::frontend):
71239        * Modules/webdatabase/DatabaseBackendContext.h:
71240        (DatabaseBackendContext):
71241        * Modules/webdatabase/DatabaseManager.cpp:
71242        * Modules/webdatabase/DatabaseManager.h:
71243        (DatabaseManager):
71244        * Modules/webdatabase/DatabaseServer.cpp:
71245        * Modules/webdatabase/DatabaseServer.h:
71246        * Modules/webdatabase/DatabaseTask.cpp:
71247        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
71248        * Modules/webdatabase/SQLTransaction.cpp:
71249        (WebCore::SQLTransaction::create):
71250        (WebCore::SQLTransaction::SQLTransaction):
71251        (WebCore::SQLTransaction::setBackend):
71252        (WebCore::SQLTransaction::stateFunctionFor):
71253        (WebCore::SQLTransaction::requestTransitToState):
71254        (WebCore::SQLTransaction::nextStateForTransactionError):
71255            - was handleTransactionError(). There's also a backend version.
71256        (WebCore::SQLTransaction::deliverTransactionCallback): Moved from backend.
71257        (WebCore::SQLTransaction::deliverTransactionErrorCallback): Moved from backend.
71258        (WebCore::SQLTransaction::deliverStatementCallback): Moved from backend.
71259        (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Moved from backend.
71260        (WebCore::SQLTransaction::deliverSuccessCallback): Moved from backend.
71261        (WebCore::SQLTransaction::unreachableState):
71262        (WebCore::SQLTransaction::sendToBackendState):
71263        (WebCore::SQLTransaction::performPendingCallback): Moved from backend.
71264        (WebCore::SQLTransaction::executeSQL): Moved from backend.
71265        (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
71266        (WebCore::SQLTransaction::clearCallbackWrappers):
71267        * Modules/webdatabase/SQLTransaction.h:
71268        (SQLTransaction):
71269        (WebCore::SQLTransaction::database):
71270        (WebCore::SQLTransaction::hasCallback):
71271        (WebCore::SQLTransaction::hasSuccessCallback):
71272        (WebCore::SQLTransaction::hasErrorCallback):
71273        * Modules/webdatabase/SQLTransactionBackend.cpp:
71274        (WebCore::SQLTransactionBackend::create):
71275        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
71276        (WebCore::SQLTransactionBackend::doCleanup):
71277        (WebCore::SQLTransactionBackend::transactionError):
71278        (WebCore::SQLTransactionBackend::setShouldRetryCurrentStatement):
71279        (WebCore::SQLTransactionBackend::stateFunctionFor):
71280        (WebCore::SQLTransactionBackend::enqueueStatement):
71281        (WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
71282        (WebCore::SQLTransactionBackend::performNextStep):
71283        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
71284        (WebCore::SQLTransactionBackend::acquireLock):
71285        (WebCore::SQLTransactionBackend::lockAcquired):
71286        (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
71287        (WebCore::SQLTransactionBackend::runStatements):
71288        (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
71289            - was runCurrentStatement().
71290        (WebCore::SQLTransactionBackend::nextStateForCurrentStatementError):
71291            - was handleCurrentStatementError().
71292        (WebCore::SQLTransactionBackend::postflightAndCommit):
71293        (WebCore::SQLTransactionBackend::cleanupAndTerminate):
71294        (WebCore::SQLTransactionBackend::nextStateForTransactionError):
71295            - was handleTransactionError(). There's also a frontend version.
71296        (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
71297        (WebCore::SQLTransactionBackend::requestTransitToState):
71298        (WebCore::SQLTransactionBackend::unreachableState):
71299        (WebCore::SQLTransactionBackend::sendToFrontendState):
71300        * Modules/webdatabase/SQLTransactionBackend.h:
71301        (SQLTransactionWrapper):
71302        (SQLTransactionBackend):
71303        (WebCore::SQLTransactionBackend::database):
71304        * Modules/webdatabase/SQLTransactionClient.cpp:
71305        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
71306        (WebCore::SQLTransactionClient::didExecuteStatement):
71307        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
71308        (WebCore::getDatabaseIdentifier):
71309        * Modules/webdatabase/SQLTransactionState.h: Added.
71310        * Modules/webdatabase/SQLTransactionStateMachine.cpp: Added.
71311        (WebCore::nameForSQLTransactionState):
71312            - was debugStepName().
71313        * Modules/webdatabase/SQLTransactionStateMachine.h: Added.
71314        (SQLTransactionStateMachine):
71315        (WebCore::SQLTransactionStateMachine::~SQLTransactionStateMachine):
71316        (WebCore::::SQLTransactionStateMachine):
71317        (WebCore::::setStateToRequestedState):
71318        (WebCore::::runStateMachine):
71319        * Target.pri:
71320        * WebCore.gypi:
71321        * WebCore.vcproj/WebCore.vcproj:
71322        * WebCore.vcxproj/WebCore.vcxproj:
71323        * WebCore.vcxproj/WebCore.vcxproj.filters:
71324        * WebCore.xcodeproj/project.pbxproj:
71325        * inspector/InspectorDatabaseAgent.cpp:
71326
713272013-02-14  Jer Noble  <jer.noble@apple.com>
71328
71329        EME: replace MediaKeySession.addKey() -> update()
71330        https://bugs.webkit.org/show_bug.cgi?id=109461
71331
71332        Reviewed by Eric Carlson.
71333
71334        No new tests; updated media/encrypted-media/encrypted-media-v2-syntax.html test.
71335
71336        In the latest draft of the Encrypted Media Spec, the addKeys() method has been replaced
71337        with update().
71338
71339        * Modules/encryptedmedia/CDM.h:
71340        * Modules/encryptedmedia/MediaKeySession.cpp:
71341        (WebCore::MediaKeySession::update):
71342        (WebCore::MediaKeySession::addKeyTimerFired):
71343        * Modules/encryptedmedia/MediaKeySession.h:
71344        * Modules/encryptedmedia/MediaKeySession.idl:
71345        * html/HTMLMediaElement.cpp:
71346        (WebCore::HTMLMediaElement::webkitAddKey):
71347        * testing/MockCDM.cpp:
71348        (WebCore::MockCDMSession::update):
71349
713502013-02-14  Tony Chang  <tony@chromium.org>
71351
71352        Unreviewed, set svn:eol-style CRLF for .sln files.
71353
71354        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
71355        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
71356
713572013-02-14  Eric Carlson  <eric.carlson@apple.com>
71358
71359        [Mac] adjust caption color user preference calculation
71360        https://bugs.webkit.org/show_bug.cgi?id=109840
71361
71362        Reviewed by Dean Jackson.
71363
71364        No new tests, it isn't possible to test this with DRT.
71365
71366        * page/CaptionUserPreferencesMac.mm:
71367        (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): The color is "important" if either the
71368            color or opacity are supposed to override.
71369        (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Ditto.
71370        (WebCore::CaptionUserPreferencesMac::captionsTextColor): Ditto.
71371
71372        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
71373        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
71374
713752013-02-14  Cosmin Truta  <ctruta@rim.com>
71376
71377        Numeric identifiers of events are not guaranteed to be unique
71378        https://bugs.webkit.org/show_bug.cgi?id=103259
71379
71380        Reviewed by Alexey Proskuryakov.
71381
71382        The results of setTimeout, setInterval and navigator.geolocation.watchPosition
71383        are positive integer values extracted from a simple circular sequential number
71384        generator, whose uniqueness can be guaranteed for no more than 2^31 calls to
71385        any of these functions. In order to provide this guarantee beyond this limit,
71386        we repeatedly ask for the next sequential id until we get one that's not used
71387        already.
71388
71389        This solution works instantly under normal circumstances, when there are few
71390        live timeout ids or geolocation ids at any given moment. Handling millions of
71391        live ids will require another solution.
71392
71393        No new tests. Brief tests of uniqueness already exist.
71394        Moreover, reproducing this particular issue would require 2^31 set/clear
71395        function calls, which is prohibitively expensive.
71396
71397        * Modules/geolocation/Geolocation.cpp:
71398        (WebCore::Geolocation::Watchers::add): Rename from Watchers::set; return false if watch id already exists.
71399        (WebCore::Geolocation::watchPosition): Repeat until the new watch id is unique.
71400        * Modules/geolocation/Geolocation.h:
71401        (Watchers): Rename Watchers::set to Watchers::add.
71402        * Modules/geolocation/Geolocation.idl: Rename the argument of Geolocation::clearWatch to WatchID.
71403        * dom/ScriptExecutionContext.cpp:
71404        (WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
71405        (WebCore::ScriptExecutionContext::circularSequentialID): Rename from newUniqueID; remove FIXME note.
71406        * dom/ScriptExecutionContext.h:
71407        (ScriptExecutionContext): Rename ScriptExecutionContext::newUniqueID to ScriptExecutionContext::circularSequentialID.
71408        (WebCore::ScriptExecutionContext::addTimeout): Return false (do not assert) if timeout id already exists.
71409        * page/DOMTimer.cpp:
71410        (WebCore::DOMTimer::DOMTimer): Repeat until the new timeout id is unique.
71411
714122013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
71413
71414        Unreviewed, rolling out r142825.
71415        http://trac.webkit.org/changeset/142825
71416        https://bugs.webkit.org/show_bug.cgi?id=109856
71417
71418        Causes some inspector tests to time out (Requested by anttik
71419        on #webkit).
71420
71421        * platform/mac/SharedTimerMac.mm:
71422        (WebCore):
71423        (WebCore::PowerObserver::restartSharedTimer):
71424        (WebCore::setSharedTimerFireInterval):
71425        (WebCore::stopSharedTimer):
71426
714272013-02-14  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
71428
71429        Support the ch unit from css3-values
71430        https://bugs.webkit.org/show_bug.cgi?id=85755
71431
71432        Reviewed by David Hyatt.
71433
71434        Original patch by Sumedha Widyadharma <sumedha.widyadharma@basyskom.com>.
71435
71436        Test: fast/css/css3-ch-unit.html
71437
71438        * css/CSSCalculationValue.cpp:
71439        (WebCore::unitCategory):
71440        * css/CSSGrammar.y.in:
71441        * css/CSSParser.cpp:
71442        (WebCore::CSSParser::validUnit):
71443        (WebCore::CSSParser::createPrimitiveNumericValue):
71444        (WebCore::CSSParser::parseValidPrimitive):
71445        (WebCore::CSSParser::detectNumberToken):
71446        * css/CSSParserValues.cpp:
71447        (WebCore::CSSParserValue::createCSSValue):
71448        * css/CSSPrimitiveValue.cpp:
71449        (WebCore::isValidCSSUnitTypeForDoubleConversion):
71450        (WebCore::CSSPrimitiveValue::cleanup):
71451        (WebCore::CSSPrimitiveValue::computeLengthDouble):
71452        (WebCore::CSSPrimitiveValue::customCssText):
71453        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
71454        * css/CSSPrimitiveValue.h:
71455        (WebCore::CSSPrimitiveValue::isFontRelativeLength):
71456        (WebCore::CSSPrimitiveValue::isLength):
71457        * platform/graphics/FontMetrics.h:
71458        (WebCore::FontMetrics::FontMetrics):
71459        (WebCore::FontMetrics::zeroWidth):
71460        (WebCore::FontMetrics::setZeroWidth):
71461        (FontMetrics):
71462        (WebCore::FontMetrics::hasZeroWidth):
71463        (WebCore::FontMetrics::setHasZeroWidth):
71464        * platform/graphics/SimpleFontData.cpp:
71465        (WebCore::SimpleFontData::platformGlyphInit):
71466        * platform/graphics/SimpleFontData.h:
71467        (WebCore::SimpleFontData::zeroGlyph):
71468        (WebCore::SimpleFontData::setZeroGlyph):
71469        (SimpleFontData):
71470        * platform/graphics/qt/SimpleFontDataQt.cpp:
71471        (WebCore::SimpleFontData::platformInit):
71472
714732013-02-14  David Kilzer  <ddkilzer@apple.com>
71474
71475        [Mac] Clean up WARNING_CFLAGS
71476        <http://webkit.org/b/109747>
71477        <rdar://problem/13208373>
71478
71479        Reviewed by Mark Rowe.
71480
71481        * Configurations/Base.xcconfig: Use
71482        GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
71483        -Wshorten-64-to-32 rather than WARNING_CFLAGS.
71484
714852013-02-14  Christophe Dumez  <ch.dumez@sisa.samsung.com>
71486
71487        Add addHTTPHeaderField() method to ResourceResponse
71488        https://bugs.webkit.org/show_bug.cgi?id=109844
71489
71490        Reviewed by Adam Barth.
71491
71492        ResourceRequestBase provides both setHTTPHeaderField() and addHTTPHeaderField(). However,
71493        ResourceResponseBase only provides setHTTPHeaderField(). This is a bit inconsistent. As a
71494        result, the addHTTPHeaderField() functionality's implementation is duplicated in several
71495        ports (at least chromium and soup).
71496
71497        This patch introduces addHTTPHeaderField() to ResourceResponseBase and makes use of it
71498        in Chromium and Soup backends.
71499
71500        No new tests, no behavior change.
71501
71502        * platform/chromium/support/WebURLResponse.cpp:
71503        (WebKit::WebURLResponse::addHTTPHeaderField): Use ResourceResponseBase::addHTTPHeaderField().
71504        * platform/network/ResourceResponseBase.cpp:
71505        (WebCore::ResourceResponseBase::updateHeaderParsedState): Move headers' parsed state update code
71506        from setHTTPHeaderField() to a new updateHeaderParsedState() method to avoid code duplication.
71507        (WebCore):
71508        (WebCore::ResourceResponseBase::setHTTPHeaderField):
71509        (WebCore::ResourceResponseBase::addHTTPHeaderField):
71510        * platform/network/ResourceResponseBase.h:
71511        (ResourceResponseBase):
71512        * platform/network/soup/ResourceResponseSoup.cpp:
71513        (WebCore::ResourceResponse::updateFromSoupMessageHeaders): Use ResourceResponseBase::addHTTPHeaderField().
71514
715152013-02-14  Philip Rogers  <pdr@google.com>
71516
71517        Prevent inconsistent firstChild during document destruction
71518        https://bugs.webkit.org/show_bug.cgi?id=106530
71519
71520        Reviewed by Abhishek Arya.
71521
71522        During document destruction, addChildNodesToDeletionQueue can allow a container
71523        node to have an invalid first child, causing a crash. This patch updates
71524        addChildNodesToDeletionQueue to maintain a valid value for firstChild() even
71525        while updating its children.
71526
71527        Test: svg/custom/animateMotion-path-change-crash.svg
71528
71529        * dom/ContainerNodeAlgorithms.h:
71530        (WebCore::Private::addChildNodesToDeletionQueue):
71531            To ensure prevoiusSibling() is also valid, this code was slightly refactored
71532            to call setPreviousSibling(0) on the next node instead of the current node.
71533
715342013-02-14  Julien Chaffraix  <jchaffraix@webkit.org>
71535
71536        [CSS Grid Layout] Add an internal 2D grid representation to RenderGrid
71537        https://bugs.webkit.org/show_bug.cgi?id=109714
71538
71539        Reviewed by Ojan Vafai.
71540
71541        This change introduces a 2D grid representation of the grid areas. Our implementation
71542        is a straight Vector of Vectors for the grid areas, each grid area able to hold an
71543        arbitrary number of RenderBox* so they hold a Vector of RenderBoxes. As an optimization,
71544        each grid area has enough inline storage to hold one grid item which should cover
71545        most cases.
71546
71547        In order to keep the code readable, a GridIterator was introduced to hide the new grid.
71548
71549        Refactoring, covered by existing tests.
71550
71551        * rendering/RenderGrid.cpp:
71552        (RenderGrid::GridIterator):
71553        (WebCore::RenderGrid::GridIterator::GridIterator):
71554        (WebCore::RenderGrid::GridIterator::nextGridItem):
71555        Added a mono-directional iterator. In order to be more aligned with the rest of the code,
71556        this iterator actually walks orthogonally to the |direction| (ie fixing the |direction|'s track).
71557
71558        * rendering/RenderGrid.cpp:
71559        (WebCore::RenderGrid::computePreferredLogicalWidths):
71560        (WebCore::RenderGrid::layoutGridItems):
71561        Updated these 2 functions to place the items on the grid and clear it at the end.
71562
71563        (WebCore::RenderGrid::computePreferredTrackWidth):
71564        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
71565        Updated to use the GridIterator to walk over the rows / columns.
71566
71567        (WebCore::RenderGrid::placeItemsOnGrid):
71568        Added this function that inserts the grid items into the right grid area.
71569
71570        * rendering/RenderGrid.h:
71571        (WebCore::RenderGrid::gridColumnCount):
71572        (WebCore::RenderGrid::gridRowCount):
71573        Added these helper functions.
71574
715752013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
71576
71577        Unreviewed, rolling out r141990.
71578        http://trac.webkit.org/changeset/141990
71579        https://bugs.webkit.org/show_bug.cgi?id=109850
71580
71581        ~5% regression on intl2 page cycler (Requested by kling on
71582        #webkit).
71583
71584        * platform/graphics/GlyphPage.h:
71585        (WebCore::GlyphPage::create):
71586        (WebCore::GlyphPage::glyphDataForCharacter):
71587        (WebCore::GlyphPage::glyphDataForIndex):
71588        (WebCore::GlyphPage::fontDataForCharacter):
71589        (WebCore::GlyphPage::setGlyphDataForIndex):
71590        (GlyphPage):
71591        (WebCore::GlyphPage::copyFrom):
71592        (WebCore::GlyphPage::clear):
71593        (WebCore::GlyphPage::clearForFontData):
71594        (WebCore::GlyphPage::GlyphPage):
71595        * platform/graphics/GlyphPageTreeNode.cpp:
71596        (WebCore::GlyphPageTreeNode::initializePage):
71597        * rendering/svg/SVGTextRunRenderingContext.cpp:
71598        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
71599
716002013-02-14  Mark Pilgrim  <pilgrim@chromium.org>
71601
71602        [Chromium] Move PlatformMessagePortChannel to WebCore
71603        https://bugs.webkit.org/show_bug.cgi?id=109845
71604
71605        Reviewed by Adam Barth.
71606
71607        Part of a larger refactoring series; see tracking bug 106829.
71608
71609        * WebCore.gyp/WebCore.gyp:
71610        * WebCore.gypi:
71611        * dom/default/chromium: Added.
71612        * dom/default/chromium/PlatformMessagePortChannelChromium.cpp: Added.
71613        (WebCore):
71614        (WebCore::MessagePortChannel::create):
71615        (WebCore::MessagePortChannel::createChannel):
71616        (WebCore::MessagePortChannel::MessagePortChannel):
71617        (WebCore::MessagePortChannel::~MessagePortChannel):
71618        (WebCore::MessagePortChannel::entangleIfOpen):
71619        (WebCore::MessagePortChannel::disentangle):
71620        (WebCore::MessagePortChannel::postMessageToRemote):
71621        (WebCore::MessagePortChannel::tryGetMessageFromRemote):
71622        (WebCore::MessagePortChannel::close):
71623        (WebCore::MessagePortChannel::isConnectedTo):
71624        (WebCore::MessagePortChannel::hasPendingActivity):
71625        (WebCore::MessagePortChannel::locallyEntangledPort):
71626        (WebCore::PlatformMessagePortChannel::create):
71627        (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
71628        (WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
71629        (WebCore::PlatformMessagePortChannel::createChannel):
71630        (WebCore::PlatformMessagePortChannel::messageAvailable):
71631        (WebCore::PlatformMessagePortChannel::entangleIfOpen):
71632        (WebCore::PlatformMessagePortChannel::disentangle):
71633        (WebCore::PlatformMessagePortChannel::postMessageToRemote):
71634        (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
71635        (WebCore::PlatformMessagePortChannel::close):
71636        (WebCore::PlatformMessagePortChannel::isConnectedTo):
71637        (WebCore::PlatformMessagePortChannel::hasPendingActivity):
71638        (WebCore::PlatformMessagePortChannel::setEntangledChannel):
71639        (WebCore::PlatformMessagePortChannel::webChannelRelease):
71640        * dom/default/chromium/PlatformMessagePortChannelChromium.h: Added.
71641        (WebKit):
71642        (WebCore):
71643        (PlatformMessagePortChannel):
71644
716452013-02-14  Chris Fleizach  <cfleizach@apple.com>
71646
71647        Remove Leopard Accessibility support from WebCore (now that no port builds on Leopard)
71648        https://bugs.webkit.org/show_bug.cgi?id=90250
71649
71650        Reviewed by Eric Seidel.
71651
71652        The Leopard era checks for accessibility lists and accessibility tables can be removed now.
71653
71654        * accessibility/AccessibilityARIAGrid.cpp:
71655        (WebCore):
71656        * accessibility/AccessibilityARIAGrid.h:
71657        (AccessibilityARIAGrid):
71658        (WebCore::AccessibilityARIAGrid::isTableExposableThroughAccessibility):
71659        * accessibility/AccessibilityList.cpp:
71660        (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
71661        * accessibility/AccessibilityList.h:
71662        * accessibility/AccessibilityTable.cpp:
71663        (WebCore::AccessibilityTable::AccessibilityTable):
71664        (WebCore::AccessibilityTable::init):
71665        * accessibility/AccessibilityTable.h:
71666        (AccessibilityTable):
71667        * accessibility/mac/AXObjectCacheMac.mm:
71668        (WebCore::AXObjectCache::postPlatformNotification):
71669        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
71670        (createAccessibilityRoleMap):
71671
716722013-02-14  Bear Travis  <betravis@adobe.com>
71673
71674        Make outside-shape the default value for shape-inside
71675        https://bugs.webkit.org/show_bug.cgi?id=109605
71676
71677        Reviewed by Levi Weintraub.
71678
71679        Creating a single reference outside-shape value and setting it as the default
71680        for shape-inside.
71681
71682        Existing tests cover the default value, just updating them to use outside-shape.
71683
71684        * rendering/style/RenderStyle.cpp:
71685        (WebCore::RenderStyle::initialShapeInside): Define a local static outside-shape
71686        value.
71687        (WebCore):
71688        * rendering/style/RenderStyle.h: Move the initialShapeInside method to the .cpp
71689        file.
71690
716912013-02-14  Min Qin  <qinmin@chromium.org>
71692
71693        Passing alpha to DeferredImageDecoder once decoding completes
71694        https://bugs.webkit.org/show_bug.cgi?id=108892
71695
71696        Reviewed by Stephen White.
71697
71698        We should pass hasAlpha value back to the DeferredImageDecoder once decoding is completed
71699        Added unit tests in ImageFrameGeneratorTest.
71700
71701        * platform/graphics/chromium/DeferredImageDecoder.cpp:
71702        (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
71703        * platform/graphics/chromium/ImageFrameGenerator.cpp:
71704        (WebCore::ImageFrameGenerator::tryToScale):
71705        (WebCore::ImageFrameGenerator::decode):
71706        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
71707        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
71708        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
71709        * platform/graphics/chromium/LazyDecodingPixelRef.h:
71710        (WebCore::LazyDecodingPixelRef::hasAlpha):
71711        (LazyDecodingPixelRef):
71712        * platform/graphics/chromium/ScaledImageFragment.cpp:
71713        (WebCore::ScaledImageFragment::ScaledImageFragment):
71714        * platform/graphics/chromium/ScaledImageFragment.h:
71715        (WebCore::ScaledImageFragment::create):
71716        (ScaledImageFragment):
71717        (WebCore::ScaledImageFragment::hasAlpha):
71718
717192013-02-14  David Grogan  <dgrogan@chromium.org>
71720
71721        IndexedDB: Add a few more histogram calls
71722        https://bugs.webkit.org/show_bug.cgi?id=109762
71723
71724        Reviewed by Tony Chang.
71725
71726        A few places where commits could fail weren't being logged.
71727
71728        * Modules/indexeddb/IDBBackingStore.cpp:
71729        (WebCore::IDBBackingStore::deleteDatabase):
71730        (WebCore::IDBBackingStore::Transaction::commit):
71731
717322013-02-14  Tony Chang  <tony@chromium.org>
71733
71734        Padding and border changes doesn't trigger relayout of children
71735        https://bugs.webkit.org/show_bug.cgi?id=109639
71736
71737        Reviewed by Kent Tamura.
71738
71739        In RenderBlock::layoutBlock, we only relayout our children if our logical width
71740        changes. This misses cases where our logical width doesn't change (i.e., padding
71741        or border changes), but our content width does change.
71742
71743        This is a more general case of bug 104997.
71744
71745        Test: fast/block/dynamic-padding-border.html
71746
71747        * rendering/RenderBox.cpp:
71748        (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
71749        (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
71750        even without border-box box sizing.
71751
717522013-02-14  Peter Rybin  <prybin@chromium.org>
71753
71754        Web Inspector: fix closure compilation warnings caused by setVariableValue change
71755        https://bugs.webkit.org/show_bug.cgi?id=109488
71756
71757        Reviewed by Pavel Feldman.
71758
71759        Annotations are fixed as required by closure compiler.
71760        Parameters in Inspector.json are reordered as required.
71761
71762        * inspector/InjectedScriptExterns.js:
71763        (InjectedScriptHost.prototype.setFunctionVariableValue):
71764        (JavaScriptCallFrame.prototype.setVariableValue):
71765        * inspector/InjectedScriptSource.js:
71766        (.):
71767        * inspector/Inspector.json:
71768        * inspector/InspectorDebuggerAgent.cpp:
71769        (WebCore::InspectorDebuggerAgent::setVariableValue):
71770        * inspector/InspectorDebuggerAgent.h:
71771        (InspectorDebuggerAgent):
71772
717732013-02-14  Tommy Widenflycht  <tommyw@google.com>
71774
71775        MediaStream API: RTCDataChannel triggers a use-after-free
71776        https://bugs.webkit.org/show_bug.cgi?id=109806
71777
71778        Reviewed by Adam Barth.
71779
71780        Making sure RTCPeerConnection::stop() is always called at least once.
71781        Also making sure that RTCDataChannels state gets set to Closed correctly.
71782
71783        Hard to test in WebKit but covered by Chromium tests.
71784
71785        * Modules/mediastream/RTCDataChannel.cpp:
71786        (WebCore::RTCDataChannel::stop):
71787        * Modules/mediastream/RTCPeerConnection.cpp:
71788        (WebCore::RTCPeerConnection::~RTCPeerConnection):
71789        (WebCore::RTCPeerConnection::stop):
71790
717912013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
71792
71793        Web Inspector: [Regression] When several consecutive characters are typed each of them is marked as undoable state.
71794        https://bugs.webkit.org/show_bug.cgi?id=109823
71795
71796        Reviewed by Pavel Feldman.
71797
71798        * inspector/front-end/TextEditorModel.js:
71799        (WebInspector.TextEditorModel.endsWithBracketRegex.):
71800
718012013-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>
71802
71803        Unreviewed, rolling out r142820.
71804        http://trac.webkit.org/changeset/142820
71805        https://bugs.webkit.org/show_bug.cgi?id=109839
71806
71807        Causing crashes on chromium canaries (Requested by atwilson_
71808        on #webkit).
71809
71810        * dom/Document.cpp:
71811        (WebCore::Document::updateLayout):
71812        (WebCore::Document::implicitClose):
71813        * rendering/RenderQuote.h:
71814        (RenderQuote):
71815        * rendering/RenderView.cpp:
71816        * rendering/RenderView.h:
71817
718182013-02-14  Mario Sanchez Prada  <mario.prada@samsung.com>
71819
71820        [GTK] Missing call to g_object_ref while retrieving accessible table cells
71821        https://bugs.webkit.org/show_bug.cgi?id=106903
71822
71823        Reviewed by Martin Robinson.
71824
71825        Add missing extra ref to implementation of atk_table_ref_at().
71826
71827        Test: accessibility/table-cell-for-column-and-row-crash.html
71828
71829        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
71830        (webkitAccessibleTableRefAt): This method transfers full ownership
71831        over the returned AtkObject, so an extra reference is needed here.
71832
718332013-02-14  Mike Fenton  <mifenton@rim.com>
71834
71835        [BlackBerry] Update keyboard event details to match platform details.
71836        https://bugs.webkit.org/show_bug.cgi?id=109693
71837
71838        Reviewed by Yong Li.
71839
71840        PR 220170.
71841
71842        Update the keyboard event details to match the
71843        platform details available.
71844
71845        Rename helper function to better describe the conversion.
71846
71847        Reviewed Internally by Nima Ghanavatian and Gen Mak.
71848
71849        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
71850        (WebCore::windowsKeyCodeForBlackBerryKeycode):
71851        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
71852
718532013-02-08  Andrey Kosyakov  <caseq@chromium.org>
71854
71855        Web Inspector: expose did{Begin,Cancel}Frame() and {will,did}Composite() on WebDebToolsAgent
71856        https://bugs.webkit.org/show_bug.cgi?id=109192
71857
71858        Reviewed by Pavel Feldman.
71859
71860        - remove frame and compositing instrumentation methods from InspectorInstrumentation;
71861        - expose those methods on InspectorController instead.
71862
71863        * WebCore.exp.in:
71864        * inspector/InspectorController.cpp:
71865        (WebCore::InspectorController::didBeginFrame):
71866        (WebCore):
71867        (WebCore::InspectorController::didCancelFrame):
71868        (WebCore::InspectorController::willComposite):
71869        (WebCore::InspectorController::didComposite):
71870        * inspector/InspectorController.h:
71871        (InspectorController):
71872        * inspector/InspectorInstrumentation.cpp:
71873        (WebCore):
71874        * inspector/InspectorInstrumentation.h:
71875        (InspectorInstrumentation):
71876        * testing/Internals.cpp:
71877        (WebCore::Internals::emitInspectorDidBeginFrame):
71878        (WebCore::Internals::emitInspectorDidCancelFrame):
71879
718802013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
71881
71882        Web Inspector: Fixed a layout regression in CanvasProfileView.
71883        https://bugs.webkit.org/show_bug.cgi?id=109835
71884
71885        Reviewed by Pavel Feldman.
71886
71887        Changed splitView.css to supported nested SplitView instances.
71888
71889        * inspector/front-end/splitView.css:
71890        (.split-view-vertical > .split-view-contents):
71891        (.split-view-vertical > .split-view-contents-first):
71892        (.split-view-vertical > .split-view-contents-first.maximized):
71893        (.split-view-vertical > .split-view-contents-second):
71894        (.split-view-vertical > .split-view-contents-second.maximized):
71895        (.split-view-horizontal > .split-view-contents):
71896        (.split-view-horizontal > .split-view-contents-first):
71897        (.split-view-horizontal > .split-view-contents-first.maximized):
71898        (.split-view-horizontal > .split-view-contents-second):
71899        (.split-view-horizontal > .split-view-contents-second.maximized):
71900        (.split-view-vertical > .split-view-sidebar.split-view-contents-first:not(.maximized)):
71901        (.split-view-vertical > .split-view-sidebar.split-view-contents-second:not(.maximized)):
71902        (.split-view-horizontal > .split-view-sidebar.split-view-contents-first:not(.maximized)):
71903        (.split-view-horizontal > .split-view-sidebar.split-view-contents-second:not(.maximized)):
71904        (.split-view-vertical > .split-view-resizer):
71905        (.split-view-horizontal > .split-view-resizer):
71906
719072013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
71908
71909        Web Inspector: Color picker should not be available in Computed Styles pane.
71910        https://bugs.webkit.org/show_bug.cgi?id=109697
71911
71912        Reviewed by Alexander Pavlov.
71913
71914        Changed the parentPane parameter of WebInspector.ComputedStylePropertiesSection to the correct value
71915        (the ComputedStyleSidebarPane instance).
71916
71917        * inspector/front-end/StylesSidebarPane.js:
71918        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
71919
719202013-02-14  Yury Semikhatsky  <yurys@chromium.org>
71921
71922        Web Inspector: don't create static local string for program literal in InspectorTimelineAgent
71923        https://bugs.webkit.org/show_bug.cgi?id=109811
71924
71925        Reviewed by Pavel Feldman.
71926
71927        Use const char* constant value instead of creating String from it in thread-unsafe
71928        static local variable.
71929
71930        * inspector/InspectorTimelineAgent.cpp:
71931        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
71932
719332013-02-14  Pan Deng  <pan.deng@intel.com>
71934
71935        [Web Inspector] Fix initiator name issue in reload scenario for Network Panel.
71936        https://bugs.webkit.org/show_bug.cgi?id=108746.
71937
71938        Reviewed by Vsevolod Vlasov.
71939
71940        WebInspector.displayNameForURL() does not work as expected in the reload scenario,
71941        for example, "http://www.yahoo.com/" was trimed to "/" at one time, but at another,
71942        the full host name will be displayed.
71943        This fix return host + "/" in the issue scenario, and keep with get displayName() in ParsedURL.
71944
71945        No new tests.
71946
71947        * inspector/front-end/ParsedURL.js:
71948        (WebInspector.ParsedURL.prototype.get displayName): append "/" in the display host scenario.
71949        * inspector/front-end/ResourceUtils.js:
71950        (WebInspector.displayNameForURL): add host in the head if url trimed as a "/".
71951
719522013-02-14  Alexei Filippov  <alph@chromium.org>
71953
71954        Web Inspector: fix to record button remaining red after heap snapshot is taken
71955        https://bugs.webkit.org/show_bug.cgi?id=109804
71956
71957        Reviewed by Yury Semikhatsky.
71958
71959        Revert part of r142243 fix. Namely heap snapshot taking button made
71960        stateless as it was before.
71961
71962        * inspector/front-end/HeapSnapshotView.js:
71963        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
71964        * inspector/front-end/ProfilesPanel.js:
71965        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
71966
719672013-02-14  Alexander Pavlov  <apavlov@chromium.org>
71968
71969        Web Inspector: Consistently use SecurityOrigin::toRawString() for serialization across the backend code
71970        https://bugs.webkit.org/show_bug.cgi?id=109801
71971
71972        Reviewed by Yury Semikhatsky.
71973
71974        No new tests, as existing tests cover the change.
71975
71976        * inspector/InspectorAgent.cpp:
71977        (WebCore::InspectorAgent::didClearWindowObjectInWorld):
71978        * inspector/InspectorIndexedDBAgent.cpp:
71979        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
71980        * inspector/InspectorPageAgent.cpp:
71981        (WebCore::InspectorPageAgent::buildObjectForFrame):
71982        * inspector/PageRuntimeAgent.cpp:
71983        (WebCore::PageRuntimeAgent::notifyContextCreated):
71984
719852013-02-14  Sergio Villar Senin  <svillar@igalia.com>
71986
71987        Add logging support to IndexedDB for non-Chromium platforms
71988        https://bugs.webkit.org/show_bug.cgi?id=109809
71989
71990        Reviewed by Kentaro Hara.
71991
71992        Enable logging of IndexedDB through the StorageAPI log channel for
71993        non-Chromium architectures.
71994
71995        No new tests required, we're just enabling logging for IndexedDB
71996        using the currently available logging framework.
71997
71998        * Modules/indexeddb/IDBTracing.h:
71999
720002013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
72001
72002        Web Inspector: Remove uriForFile and fileForURI methods from FileSystemMapping.
72003        https://bugs.webkit.org/show_bug.cgi?id=109704
72004
72005        Reviewed by Alexander Pavlov.
72006
72007        Replaced this methods with one line implementation on the only call site.
72008
72009        * inspector/front-end/FileSystemMapping.js:
72010        * inspector/front-end/FileSystemProjectDelegate.js:
72011        (WebInspector.FileSystemProjectDelegate.prototype._filePathForURI):
72012        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
72013        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
72014        (WebInspector.FileSystemProjectDelegate.prototype._populate):
72015
720162013-02-14  Anton Vayvod  <avayvod@chromium.org>
72017
72018        [Text Autosizing] Process narrow descendants with the same multiplier for the font size.
72019        https://bugs.webkit.org/show_bug.cgi?id=109573
72020
72021        Reviewed by Julien Chaffraix.
72022
72023        Combine narrow descendants of the same autosizing cluster into a group that is autosized
72024        with the same multiplier.
72025
72026        For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
72027        a large margin individually applied (via a CSS selector), causing them all to individually
72028        appear narrower than their enclosing blockContainingAllText. Rather than making each of
72029        these paragraphs into a separate cluster, we want them all to share the same multiplier, as
72030        if they were a single cluster.
72031
72032        Test: fast/text-autosizing/narrow-descendants-combined.html
72033
72034        * rendering/TextAutosizer.cpp:
72035        (WebCore::TextAutosizer::processClusterInternal):
72036
72037            Common implementation for processCluster() and processCompositeCluster that accepts the
72038            text width and whether the cluster should be autosized as parameters instead of
72039            calculating it inline.
72040
72041        (WebCore::TextAutosizer::processCluster):
72042
72043            Calculates the text width for a single cluster and whether it should be autosized, then
72044            calls processClusterInternal() to apply the multiplier and process the cluster's
72045            descendants.
72046
72047        (WebCore::TextAutosizer::processCompositeCluster):
72048
72049            Calculates the text width for a group of renderers and if the group should be autosized,
72050            then calls processClusterInternal() repeatedly with the same multiplier to apply it and
72051            process all the descendants of the group.
72052
72053        (WebCore::TextAutosizer::clusterShouldBeAutosized):
72054
72055            Calls the multiple renderers version to avoid code duplication.
72056
72057        (WebCore::TextAutosizer::compositeClusterShouldBeAutosized):
72058
72059            The multiple renderers version of clusterShouldBeAutosized.
72060
72061        * rendering/TextAutosizer.h:
72062
72063            Updated method declarations.
72064
720652013-02-14  Andrey Adaikin  <aandrey@chromium.org>
72066
72067        Look into possibilities of typedef in webkit idl files
72068        https://bugs.webkit.org/show_bug.cgi?id=52340
72069
72070        Reviewed by Kentaro Hara.
72071
72072        Add typedef support for WebKit IDL parser.
72073        Drive by: fixed a bug of generating "unrestrictedfloat" without a space.
72074
72075        Added a new IDL test TestTypedefs.idl. The results were generated without typedefs.
72076
72077        * bindings/scripts/IDLParser.pm:
72078        (assertNoExtendedAttributesInTypedef):
72079        (parseDefinitions):
72080        (applyTypedefs):
72081        (applyTypedefsForSignature):
72082        (parseTypedef):
72083        (parseUnrestrictedFloatType):
72084        * bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp: Added.
72085        (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate::WebDOMTestTypedefsPrivate):
72086        (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate):
72087        (WebDOMTestTypedefs::WebDOMTestTypedefs):
72088        (WebDOMTestTypedefs::operator=):
72089        (WebDOMTestTypedefs::impl):
72090        (WebDOMTestTypedefs::~WebDOMTestTypedefs):
72091        (WebDOMTestTypedefs::unsignedLongLongAttr):
72092        (WebDOMTestTypedefs::setUnsignedLongLongAttr):
72093        (WebDOMTestTypedefs::immutableSerializedScriptValue):
72094        (WebDOMTestTypedefs::setImmutableSerializedScriptValue):
72095        (WebDOMTestTypedefs::func):
72096        (WebDOMTestTypedefs::multiTransferList):
72097        (WebDOMTestTypedefs::setShadow):
72098        (WebDOMTestTypedefs::nullableArrayArg):
72099        (WebDOMTestTypedefs::immutablePointFunction):
72100        (toWebCore):
72101        (toWebKit):
72102        * bindings/scripts/test/CPP/WebDOMTestTypedefs.h: Added.
72103        (WebCore):
72104        (WebDOMTestTypedefs):
72105        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp: Added.
72106        (_WebKitDOMTestTypedefsPrivate):
72107        (WebKit):
72108        (WebKit::kit):
72109        (WebKit::core):
72110        (WebKit::wrapTestTypedefs):
72111        (webkit_dom_test_typedefs_finalize):
72112        (webkit_dom_test_typedefs_set_property):
72113        (webkit_dom_test_typedefs_get_property):
72114        (webkit_dom_test_typedefs_constructor):
72115        (webkit_dom_test_typedefs_class_init):
72116        (webkit_dom_test_typedefs_init):
72117        (webkit_dom_test_typedefs_func):
72118        (webkit_dom_test_typedefs_multi_transfer_list):
72119        (webkit_dom_test_typedefs_set_shadow):
72120        (webkit_dom_test_typedefs_nullable_array_arg):
72121        (webkit_dom_test_typedefs_immutable_point_function):
72122        (webkit_dom_test_typedefs_string_array_function):
72123        (webkit_dom_test_typedefs_get_unsigned_long_long_attr):
72124        (webkit_dom_test_typedefs_set_unsigned_long_long_attr):
72125        (webkit_dom_test_typedefs_get_immutable_serialized_script_value):
72126        (webkit_dom_test_typedefs_set_immutable_serialized_script_value):
72127        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h: Added.
72128        (_WebKitDOMTestTypedefs):
72129        (_WebKitDOMTestTypedefsClass):
72130        * bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h: Added.
72131        (WebKit):
72132        * bindings/scripts/test/JS/JSTestTypedefs.cpp: Added.
72133        (WebCore):
72134        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
72135        (WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):
72136        (WebCore::JSTestTypedefsConstructor::finishCreation):
72137        (WebCore::JSTestTypedefsConstructor::getOwnPropertySlot):
72138        (WebCore::JSTestTypedefsConstructor::getOwnPropertyDescriptor):
72139        (WebCore::JSTestTypedefsConstructor::getConstructData):
72140        (WebCore::JSTestTypedefsPrototype::self):
72141        (WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
72142        (WebCore::JSTestTypedefsPrototype::getOwnPropertyDescriptor):
72143        (WebCore::JSTestTypedefs::JSTestTypedefs):
72144        (WebCore::JSTestTypedefs::finishCreation):
72145        (WebCore::JSTestTypedefs::createPrototype):
72146        (WebCore::JSTestTypedefs::destroy):
72147        (WebCore::JSTestTypedefs::~JSTestTypedefs):
72148        (WebCore::JSTestTypedefs::getOwnPropertySlot):
72149        (WebCore::JSTestTypedefs::getOwnPropertyDescriptor):
72150        (WebCore::jsTestTypedefsUnsignedLongLongAttr):
72151        (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
72152        (WebCore::jsTestTypedefsConstructorTestSubObj):
72153        (WebCore::jsTestTypedefsConstructor):
72154        (WebCore::JSTestTypedefs::put):
72155        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
72156        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
72157        (WebCore::JSTestTypedefs::getConstructor):
72158        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
72159        (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
72160        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
72161        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
72162        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
72163        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
72164        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
72165        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
72166        (WebCore::isObservable):
72167        (WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
72168        (WebCore::JSTestTypedefsOwner::finalize):
72169        (WebCore::toJS):
72170        (WebCore::toTestTypedefs):
72171        * bindings/scripts/test/JS/JSTestTypedefs.h: Added.
72172        (WebCore):
72173        (JSTestTypedefs):
72174        (WebCore::JSTestTypedefs::create):
72175        (WebCore::JSTestTypedefs::createStructure):
72176        (WebCore::JSTestTypedefs::impl):
72177        (WebCore::JSTestTypedefs::releaseImpl):
72178        (WebCore::JSTestTypedefs::releaseImplIfNotNull):
72179        (JSTestTypedefsOwner):
72180        (WebCore::wrapperOwner):
72181        (WebCore::wrapperContext):
72182        (JSTestTypedefsPrototype):
72183        (WebCore::JSTestTypedefsPrototype::create):
72184        (WebCore::JSTestTypedefsPrototype::createStructure):
72185        (WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
72186        (JSTestTypedefsConstructor):
72187        (WebCore::JSTestTypedefsConstructor::create):
72188        (WebCore::JSTestTypedefsConstructor::createStructure):
72189        * bindings/scripts/test/ObjC/DOMTestTypedefs.h: Added.
72190        * bindings/scripts/test/ObjC/DOMTestTypedefs.mm: Added.
72191        (-[DOMTestTypedefs dealloc]):
72192        (-[DOMTestTypedefs finalize]):
72193        (-[DOMTestTypedefs unsignedLongLongAttr]):
72194        (-[DOMTestTypedefs setUnsignedLongLongAttr:]):
72195        (-[DOMTestTypedefs immutableSerializedScriptValue]):
72196        (-[DOMTestTypedefs setImmutableSerializedScriptValue:]):
72197        (-[DOMTestTypedefs multiTransferList:tx:second:txx:]):
72198        (-[DOMTestTypedefs setShadow:height:blur:color:alpha:]):
72199        (-[DOMTestTypedefs immutablePointFunction]):
72200        (core):
72201        (kit):
72202        * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h: Added.
72203        (WebCore):
72204        * bindings/scripts/test/TestTypedefs.idl: Added.
72205        * bindings/scripts/test/V8/V8TestTypedefs.cpp: Added.
72206        (WebCore):
72207        (WebCore::checkTypeOrDieTrying):
72208        (TestTypedefsV8Internal):
72209        (WebCore::TestTypedefsV8Internal::V8_USE):
72210        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetter):
72211        (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
72212        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetter):
72213        (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
72214        (WebCore::TestTypedefsV8Internal::TestTypedefsConstructorGetter):
72215        (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetter):
72216        (WebCore::TestTypedefsV8Internal::funcCallback):
72217        (WebCore::TestTypedefsV8Internal::multiTransferListCallback):
72218        (WebCore::TestTypedefsV8Internal::setShadowCallback):
72219        (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
72220        (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
72221        (WebCore::TestTypedefsV8Internal::funcWithClampCallback):
72222        (WebCore::TestTypedefsV8Internal::immutablePointFunctionCallback):
72223        (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
72224        (WebCore::V8TestTypedefs::constructorCallback):
72225        (WebCore::ConfigureV8TestTypedefsTemplate):
72226        (WebCore::V8TestTypedefs::GetRawTemplate):
72227        (WebCore::V8TestTypedefs::GetTemplate):
72228        (WebCore::V8TestTypedefs::HasInstance):
72229        (WebCore::V8TestTypedefs::createWrapper):
72230        (WebCore::V8TestTypedefs::derefObject):
72231        * bindings/scripts/test/V8/V8TestTypedefs.h: Added.
72232        (WebCore):
72233        (V8TestTypedefs):
72234        (WebCore::V8TestTypedefs::toNative):
72235        (WebCore::V8TestTypedefs::installPerContextProperties):
72236        (WebCore::V8TestTypedefs::installPerContextPrototypeProperties):
72237        (WebCore::wrap):
72238        (WebCore::toV8):
72239        (WebCore::toV8Fast):
72240
722412013-02-13  Kentaro Hara  <haraken@chromium.org>
72242
72243        [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
72244        and XXXAccessorSetter() to XXXAttrSetterCustom()
72245        https://bugs.webkit.org/show_bug.cgi?id=109679
72246
72247        Reviewed by Adam Barth.
72248
72249        For naming consistency and clarification.
72250
72251        No tests. No change in behavior.
72252
72253        * bindings/scripts/CodeGeneratorV8.pm:
72254        (GenerateHeader):
72255        (GenerateHeaderCustomCall):
72256        (GenerateNormalAttrGetter):
72257        (GenerateNormalAttrSetter):
72258        (GenerateImplementation):
72259        * bindings/scripts/test/V8/V8TestInterface.cpp:
72260        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
72261        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
72262        * bindings/scripts/test/V8/V8TestObj.cpp:
72263        (WebCore::TestObjV8Internal::customAttrAttrGetter):
72264        (WebCore::TestObjV8Internal::customAttrAttrSetter):
72265        * bindings/scripts/test/V8/V8TestObj.h:
72266        (V8TestObj):
72267        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
72268        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
72269        * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
72270        (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
72271        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
72272        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
72273        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
72274        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
72275        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
72276        * bindings/v8/custom/V8ClipboardCustom.cpp:
72277        (WebCore::V8Clipboard::typesAttrGetterCustom):
72278        * bindings/v8/custom/V8CoordinatesCustom.cpp:
72279        (WebCore::V8Coordinates::altitudeAttrGetterCustom):
72280        (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
72281        (WebCore::V8Coordinates::headingAttrGetterCustom):
72282        (WebCore::V8Coordinates::speedAttrGetterCustom):
72283        * bindings/v8/custom/V8CustomEventCustom.cpp:
72284        (WebCore::V8CustomEvent::detailAttrGetterCustom):
72285        * bindings/v8/custom/V8DOMWindowCustom.cpp:
72286        (WebCore::V8DOMWindow::eventAttrGetterCustom):
72287        (WebCore::V8DOMWindow::eventAttrSetterCustom):
72288        (WebCore::V8DOMWindow::locationAttrSetterCustom):
72289        (WebCore::V8DOMWindow::openerAttrSetterCustom):
72290        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
72291        (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
72292        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
72293        (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
72294        (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
72295        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
72296        (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
72297        (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
72298        (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
72299        (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
72300        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
72301        (WebCore::V8Document::locationAttrGetterCustom):
72302        (WebCore::V8Document::locationAttrSetterCustom):
72303        * bindings/v8/custom/V8EventCustom.cpp:
72304        (WebCore::V8Event::dataTransferAttrGetterCustom):
72305        (WebCore::V8Event::clipboardDataAttrGetterCustom):
72306        * bindings/v8/custom/V8FileReaderCustom.cpp:
72307        (WebCore::V8FileReader::resultAttrGetterCustom):
72308        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
72309        (WebCore::V8HTMLDocument::allAttrSetterCustom):
72310        * bindings/v8/custom/V8HTMLElementCustom.cpp:
72311        (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
72312        (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
72313        * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
72314        (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
72315        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
72316        (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
72317        (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
72318        (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
72319        (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
72320        (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
72321        (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
72322        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
72323        (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
72324        (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
72325        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
72326        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
72327        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
72328        (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
72329        * bindings/v8/custom/V8HistoryCustom.cpp:
72330        (WebCore::V8History::stateAttrGetterCustom):
72331        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
72332        (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
72333        (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
72334        (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
72335        * bindings/v8/custom/V8LocationCustom.cpp:
72336        (WebCore::V8Location::hashAttrSetterCustom):
72337        (WebCore::V8Location::hostAttrSetterCustom):
72338        (WebCore::V8Location::hostnameAttrSetterCustom):
72339        (WebCore::V8Location::hrefAttrSetterCustom):
72340        (WebCore::V8Location::pathnameAttrSetterCustom):
72341        (WebCore::V8Location::portAttrSetterCustom):
72342        (WebCore::V8Location::protocolAttrSetterCustom):
72343        (WebCore::V8Location::searchAttrSetterCustom):
72344        (WebCore::V8Location::reloadAttrGetterCustom):
72345        (WebCore::V8Location::replaceAttrGetterCustom):
72346        (WebCore::V8Location::assignAttrGetterCustom):
72347        * bindings/v8/custom/V8MessageEventCustom.cpp:
72348        (WebCore::V8MessageEvent::dataAttrGetterCustom):
72349        (WebCore::V8MessageEvent::portsAttrGetterCustom):
72350        * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
72351        (WebCore::V8OscillatorNode::typeAttrSetterCustom):
72352        * bindings/v8/custom/V8PannerNodeCustom.cpp:
72353        (WebCore::V8PannerNode::panningModelAttrSetterCustom):
72354        (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
72355        * bindings/v8/custom/V8PopStateEventCustom.cpp:
72356        (WebCore::V8PopStateEvent::stateAttrGetterCustom):
72357        * bindings/v8/custom/V8SVGLengthCustom.cpp:
72358        (WebCore::V8SVGLength::valueAttrGetterCustom):
72359        (WebCore::V8SVGLength::valueAttrSetterCustom):
72360        * bindings/v8/custom/V8TrackEventCustom.cpp:
72361        (WebCore::V8TrackEvent::trackAttrGetterCustom):
72362        * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
72363        (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
72364        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
72365        (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
72366        (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
72367
723682013-02-14  Yury Semikhatsky  <yurys@chromium.org>
72369
72370        Web Inspector: extract DOM counters graph implementation into its own class
72371        https://bugs.webkit.org/show_bug.cgi?id=109796
72372
72373        Reviewed by Alexander Pavlov.
72374
72375        Extracted DOM counters graph implementation into DOMCountersGraph.js leaving
72376        in MemoryStatistics.js only common parts shared with NativeMemoryGraph.js
72377        Added some closure annotations and converted object literals into classes
72378        with named constructors.
72379
72380        * WebCore.gypi:
72381        * WebCore.vcproj/WebCore.vcproj:
72382        * inspector/compile-front-end.py:
72383        * inspector/front-end/DOMCountersGraph.js: Added.
72384        (WebInspector.DOMCountersGraph):
72385        (WebInspector.DOMCounterUI):
72386        (WebInspector.DOMCountersGraph.Counter):
72387        (WebInspector.DOMCounterUI.prototype.setRange):
72388        (WebInspector.DOMCounterUI.prototype.updateCurrentValue):
72389        (WebInspector.DOMCounterUI.prototype.clearCurrentValueAndMarker):
72390        (WebInspector.DOMCounterUI.prototype.saveImageUnderMarker):
72391        (WebInspector.DOMCounterUI.prototype.restoreImageUnderMarker):
72392        (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
72393        (WebInspector.DOMCountersGraph.prototype._createCurrentValuesBar):
72394        (WebInspector.DOMCountersGraph.prototype._createCounterUIList):
72395        (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getNodeCount):
72396        (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getListenerCount):
72397        (WebInspector.DOMCountersGraph.prototype._canvasHeight):
72398        (WebInspector.DOMCountersGraph.prototype._onRecordAdded):
72399        (WebInspector.DOMCountersGraph.prototype._draw):
72400        (WebInspector.DOMCountersGraph.prototype._restoreImageUnderMarker):
72401        (WebInspector.DOMCountersGraph.prototype._saveImageUnderMarker):
72402        (WebInspector.DOMCountersGraph.prototype._drawMarker):
72403        (WebInspector.DOMCountersGraph.prototype._drawGraph):
72404        (WebInspector.DOMCountersGraph.prototype._discardImageUnderMarker):
72405        * inspector/front-end/MemoryStatistics.js:
72406        (WebInspector.MemoryStatistics):
72407        (WebInspector.MemoryStatistics.Counter):
72408        (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
72409        (WebInspector.MemoryStatistics.prototype._createCounterUIList):
72410        (WebInspector.MemoryStatistics.prototype.setTopPosition):
72411        (WebInspector.MemoryStatistics.prototype._canvasHeight):
72412        (WebInspector.MemoryStatistics.prototype._onRecordAdded):
72413        (WebInspector.MemoryStatistics.prototype._draw):
72414        (WebInspector.MemoryStatistics.prototype._onClick):
72415        (WebInspector.MemoryStatistics.prototype._onMouseOut):
72416        (WebInspector.MemoryStatistics.prototype._onMouseOver):
72417        (WebInspector.MemoryStatistics.prototype._onMouseMove):
72418        (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
72419        (WebInspector.MemoryStatistics.prototype._drawMarker):
72420        (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
72421        * inspector/front-end/NativeMemoryGraph.js:
72422        (WebInspector.NativeMemoryGraph.Counter):
72423        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
72424        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
72425        (WebInspector.NativeMemoryGraph.prototype._draw):
72426        * inspector/front-end/TimelinePanel.js:
72427        * inspector/front-end/WebKit.qrc:
72428
724292013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
72430
72431        Web Inspector: Native Memory Instrumentation: Report child nodes as direct members of a container node to make them look like a tree in the snapshot.
72432        https://bugs.webkit.org/show_bug.cgi?id=109703
72433
72434        Also we need to traverse the tree from the top root element down to the leaves.
72435
72436        Reviewed by Yury Semikhatsky.
72437
72438        * dom/ContainerNode.cpp:
72439        (WebCore::ContainerNode::reportMemoryUsage):
72440        * dom/Node.cpp:
72441        (WebCore::Node::reportMemoryUsage):
72442        * inspector/InspectorMemoryAgent.cpp:
72443        (WebCore):
72444
724452013-02-13  Hayato Ito  <hayato@chromium.org>
72446
72447        [Shadow DOM] Implements a '::distributed()' pseudo element.
72448        https://bugs.webkit.org/show_bug.cgi?id=82169
72449
72450        Reviewed by Dimitri Glazkov.
72451
72452        Implements a '::distributed()' pseudo element.
72453        See the Shadow DOM specification and the filed bug for the detail.
72454
72455        - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#selecting-nodes-distributed-to-insertion-points
72456        - https://www.w3.org/Bugs/Public/show_bug.cgi?id=19684
72457
72458        For example, suppose we are given the following DOM tree and shadow tree:
72459
72460        - <A>
72461          - <B>
72462            - <C>
72463
72464        [A's ShadowRoot]
72465          <D>
72466          - <style>
72467              E content::distributed(B C) { color: green; }
72468          - <E>
72469            - <content>  (Node B is distributed to this insertion point.)
72470
72471        In this case, the style rule defined in the shadow tree matches node 'C'.
72472
72473        A '::distributed()' pseudo element can not be a pseudo class since
72474        an intersection between matched_elements(some_selector) and
72475        matched_elements(some_selector::distributed(...)) is always an
72476        empty set. A '::distributed()' pseudo element is the first-ever
72477        *functional* pseudo element which takes a parameter, which can be
72478        a selector.
72479
72480        This rule crosses the shadow boundary from a shadow tree to the
72481        tree of its shadow host. That means a rule which includes
72482        '::distributed()' pseudo element is defined in shadow tree, but
72483        the node which is matched in the rule, the subject of the
72484        selector, is outside of the shadow tree. Therefore, we cannot
72485        predict where the subject of the selector will be beforehand.
72486        Current CSS implementation assumes the subject of the selector
72487        must exist in the current scope.
72488
72489        To overcome this issue, DocumentRuleSets now has a instance of
72490        ShadowDistributedRules class.  A style rule will be stored in this
72491        instance if the rule includes a '::distributed()' pseudo element.
72492        This class also keeps track of each RuleSet by mapping it with a
72493        scope where the rule was originally defined. In the example, the
72494        scope is A's ShadowRoot.  The scope is used to check whether the
72495        left-most matched element (in the example, it's a node 'E') exists
72496        in the scope.
72497
72498        Internally, a '::distributed' pseudo element is represented by a
72499        newly introduced 'ShadowDistributed' relation.  That makes an
72500        implementation of SelectorChecker::checkSelector() much simpler.
72501        A transformation from a distributed pseudo element to a
72502        ShadowDistributed is done in parsing stage of CSS.
72503
72504        Since '::distributed()' is an experimental feature, it's actually
72505        prefixed with '-webkit-' and guarded by SHADOW_DOM flag.
72506
72507        Tests: fast/dom/shadow/distributed-pseudo-element-for-shadow-element.html
72508               fast/dom/shadow/distributed-pseudo-element-match-all.html
72509               fast/dom/shadow/distributed-pseudo-element-match-descendant.html
72510               fast/dom/shadow/distributed-pseudo-element-nested.html
72511               fast/dom/shadow/distributed-pseudo-element-no-match.html
72512               fast/dom/shadow/distributed-pseudo-element-reprojection.html
72513               fast/dom/shadow/distributed-pseudo-element-scoped.html
72514               fast/dom/shadow/distributed-pseudo-element-support-selector.html
72515               fast/dom/shadow/distributed-pseudo-element-used-in-selector-list.html
72516               fast/dom/shadow/distributed-pseudo-element-with-any.html
72517               fast/dom/shadow/distributed-pseudo-element.html
72518
72519        * css/CSSGrammar.y.in:
72520        CSS Grammar was updated to support '::distrbuted(selector)'.
72521        This pseudo element is the first pseudo element which can take a selector as a parameter.
72522        * css/CSSParser.cpp:
72523        (WebCore::CSSParser::detectDashToken):
72524        (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
72525        (WebCore::CSSParser::rewriteSpecifiersWithElementName):
72526        Here we are converting a '::distributed' pseudo element into a
72527        ShadowDistributed relation internally.  To support the conversion,
72528        these rewriteSpecifiersXXX functions (formally called
72529        updateSpecifiersXXX) now return the specifiers which may be
72530        converted.
72531        (WebCore::CSSParser::rewriteSpecifiers):
72532        * css/CSSParser.h:
72533        * css/CSSParserValues.cpp:
72534        (WebCore::CSSParserSelector::CSSParserSelector):
72535        * css/CSSParserValues.h:
72536        (CSSParserSelector):
72537        (WebCore::CSSParserSelector::functionArgumentSelector):
72538        To hold an intermediate selector which appears at the position of an argument in
72539        functional pseudo element when parsing CSS.
72540        (WebCore::CSSParserSelector::setFunctionArgumentSelector):
72541        (WebCore::CSSParserSelector::isDistributedPseudoElement):
72542        * css/CSSSelector.cpp:
72543        Add new pseudo element, PseudoDistributed, and its internal representation, ShadowDistributed relation.
72544        (WebCore::CSSSelector::pseudoId):
72545        (WebCore::nameToPseudoTypeMap):
72546        (WebCore::CSSSelector::extractPseudoType):
72547        (WebCore::CSSSelector::selectorText):
72548        * css/CSSSelector.h:
72549        (CSSSelector):
72550        (WebCore):
72551        (WebCore::CSSSelector::isDistributedPseudoElement):
72552        (WebCore::CSSSelector::isShadowDistributed):
72553        * css/CSSSelectorList.cpp:
72554        (WebCore):
72555        (SelectorHasShadowDistributed):
72556        (WebCore::SelectorHasShadowDistributed::operator()):
72557        (WebCore::CSSSelectorList::hasShadowDistributedAt):
72558        * css/CSSSelectorList.h:
72559        (CSSSelectorList):
72560        * css/DocumentRuleSets.cpp:
72561        (WebCore):
72562        (WebCore::ShadowDistributedRules::addRule):
72563        Every CSS rule which includes '::distributed(...)' should be managed by calling this function.
72564        (WebCore::ShadowDistributedRules::collectMatchRequests):
72565        (WebCore::DocumentRuleSets::resetAuthorStyle):
72566        * css/DocumentRuleSets.h:
72567        (WebCore):
72568        (ShadowDistributedRules):
72569        (WebCore::ShadowDistributedRules::clear):
72570        (DocumentRuleSets):
72571        (WebCore::DocumentRuleSets::shadowDistributedRules)
72572        DocumentRuleSets owns an instance of ShadowDistributedRules.
72573        * css/RuleSet.cpp:
72574        (WebCore::RuleSet::addChildRules):
72575        Updated to check whether the rule contains '::distributed()' or not.
72576        * css/SelectorChecker.cpp:
72577        (WebCore::SelectorChecker::match):
72578        Support ShadowDistributed relation. Check all possible insertion points where a node is distributed.
72579        * css/SelectorChecker.h:
72580        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
72581        Adds enum of BehaviorAtBoundary. '::distributed()' is the only
72582        rule which uses 'CrossedBoundary' since it is the only rule which
72583        crosses shadow boundaries.
72584        (SelectorCheckingContext):
72585        * css/SelectorFilter.cpp:
72586        (WebCore::SelectorFilter::collectIdentifierHashes):
72587        * css/StyleResolver.cpp:
72588        (WebCore::StyleResolver::collectMatchingRules):
72589        (WebCore::StyleResolver::matchAuthorRules):
72590        (WebCore::StyleResolver::collectMatchingRulesForList):
72591        (WebCore::StyleResolver::ruleMatches):
72592        * css/StyleResolver.h:
72593        (MatchRequest):
72594        (WebCore::MatchRequest::MatchRequest): Add behaviorAtBoundary field.
72595        (WebCore):
72596        (StyleResolver):
72597        * html/shadow/InsertionPoint.cpp:
72598        (WebCore::collectInsertionPointsWhereNodeIsDistributed):
72599        (WebCore):
72600        * html/shadow/InsertionPoint.h:
72601        (WebCore):
72602
726032013-02-13  Kentaro Hara  <haraken@chromium.org>
72604
72605        [V8] Generate wrapper methods for custom methods
72606        https://bugs.webkit.org/show_bug.cgi?id=109678
72607
72608        Reviewed by Adam Barth.
72609
72610        Currently V8 directly calls back custom methods written
72611        in custom binding files. This makes it impossible for code
72612        generators to hook custom methods (e.g. Code generators cannot
72613        insert a code for FeatureObservation into custom methods).
72614        To solve the problem, we should generate wrapper methods for
72615        custom methods.
72616
72617        No tests. No change in behavior.
72618
72619        * page/DOMWindow.idl: Removed overloaded methods. The fact that methods in an IDL
72620        file are overloaded but they are not overloaded in custom bindings confuses code
72621        generators. (For some reason, this problem hasn't appeared before this change.)
72622        * xml/XMLHttpRequest.idl: Ditto.
72623
72624        * bindings/scripts/CodeGeneratorV8.pm:
72625        (GenerateHeader):
72626        (GenerateDomainSafeFunctionGetter):
72627        (GenerateEventListenerCallback):
72628        (GenerateFunctionCallback):
72629        (GenerateNonStandardFunction):
72630        (GenerateImplementation):
72631        * bindings/scripts/test/V8/V8TestInterface.cpp:
72632        (WebCore::TestInterfaceV8Internal::supplementalMethod3Callback):
72633        (TestInterfaceV8Internal):
72634        (WebCore):
72635        * bindings/scripts/test/V8/V8TestObj.cpp:
72636        (WebCore::TestObjV8Internal::customMethodCallback):
72637        (TestObjV8Internal):
72638        (WebCore::TestObjV8Internal::customMethodWithArgsCallback):
72639        (WebCore::TestObjV8Internal::classMethod2Callback):
72640        (WebCore):
72641        (WebCore::ConfigureV8TestObjTemplate):
72642        * bindings/scripts/test/V8/V8TestObj.h:
72643        (V8TestObj):
72644        * bindings/v8/custom/V8ClipboardCustom.cpp:
72645        (WebCore::V8Clipboard::clearDataCallbackCustom):
72646        (WebCore::V8Clipboard::setDragImageCallbackCustom):
72647        * bindings/v8/custom/V8ConsoleCustom.cpp:
72648        (WebCore::V8Console::traceCallbackCustom):
72649        (WebCore::V8Console::assertCallbackCustom):
72650        (WebCore::V8Console::profileCallbackCustom):
72651        (WebCore::V8Console::profileEndCallbackCustom):
72652        * bindings/v8/custom/V8CryptoCustom.cpp:
72653        (WebCore::V8Crypto::getRandomValuesCallbackCustom):
72654        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
72655        (WebCore::V8DOMFormData::appendCallbackCustom):
72656        * bindings/v8/custom/V8DOMWindowCustom.cpp:
72657        (WebCore::V8DOMWindow::addEventListenerCallbackCustom):
72658        (WebCore::V8DOMWindow::removeEventListenerCallbackCustom):
72659        (WebCore::V8DOMWindow::postMessageCallbackCustom):
72660        (WebCore::V8DOMWindow::toStringCallbackCustom):
72661        (WebCore::V8DOMWindow::releaseEventsCallbackCustom):
72662        (WebCore::V8DOMWindow::captureEventsCallbackCustom):
72663        (WebCore::V8DOMWindow::showModalDialogCallbackCustom):
72664        (WebCore::V8DOMWindow::openCallbackCustom):
72665        (WebCore::V8DOMWindow::setTimeoutCallbackCustom):
72666        (WebCore::V8DOMWindow::setIntervalCallbackCustom):
72667        * bindings/v8/custom/V8DataViewCustom.cpp:
72668        (WebCore::V8DataView::getInt8CallbackCustom):
72669        (WebCore::V8DataView::getUint8CallbackCustom):
72670        (WebCore::V8DataView::setInt8CallbackCustom):
72671        (WebCore::V8DataView::setUint8CallbackCustom):
72672        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
72673        (WebCore::V8DedicatedWorkerContext::postMessageCallbackCustom):
72674        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
72675        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallbackCustom):
72676        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
72677        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallbackCustom):
72678        * bindings/v8/custom/V8DocumentCustom.cpp:
72679        (WebCore::V8Document::evaluateCallbackCustom):
72680        (WebCore::V8Document::createTouchListCallbackCustom):
72681        * bindings/v8/custom/V8GeolocationCustom.cpp:
72682        (WebCore::V8Geolocation::getCurrentPositionCallbackCustom):
72683        (WebCore::V8Geolocation::watchPositionCallbackCustom):
72684        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
72685        (WebCore::V8HTMLAllCollection::itemCallbackCustom):
72686        (WebCore::V8HTMLAllCollection::namedItemCallbackCustom):
72687        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
72688        (WebCore::V8HTMLCanvasElement::getContextCallbackCustom):
72689        (WebCore::V8HTMLCanvasElement::toDataURLCallbackCustom):
72690        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
72691        (WebCore::V8HTMLDocument::writeCallbackCustom):
72692        (WebCore::V8HTMLDocument::writelnCallbackCustom):
72693        (WebCore::V8HTMLDocument::openCallbackCustom):
72694        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
72695        (WebCore::V8HTMLFormControlsCollection::namedItemCallbackCustom):
72696        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
72697        (WebCore::v8HTMLImageElementConstructorCallbackCustom):
72698        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
72699        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
72700        (WebCore::V8HTMLInputElement::setSelectionRangeCallbackCustom):
72701        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
72702        (WebCore::V8HTMLOptionsCollection::namedItemCallbackCustom):
72703        (WebCore::V8HTMLOptionsCollection::removeCallbackCustom):
72704        (WebCore::V8HTMLOptionsCollection::addCallbackCustom):
72705        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
72706        (WebCore::V8HTMLSelectElement::removeCallbackCustom):
72707        * bindings/v8/custom/V8HistoryCustom.cpp:
72708        (WebCore::V8History::pushStateCallbackCustom):
72709        (WebCore::V8History::replaceStateCallbackCustom):
72710        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
72711        (WebCore::V8InjectedScriptHost::inspectedObjectCallbackCustom):
72712        (WebCore::V8InjectedScriptHost::internalConstructorNameCallbackCustom):
72713        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallbackCustom):
72714        (WebCore::V8InjectedScriptHost::typeCallbackCustom):
72715        (WebCore::V8InjectedScriptHost::functionDetailsCallbackCustom):
72716        (WebCore::V8InjectedScriptHost::getInternalPropertiesCallbackCustom):
72717        (WebCore::V8InjectedScriptHost::getEventListenersCallbackCustom):
72718        (WebCore::V8InjectedScriptHost::inspectCallbackCustom):
72719        (WebCore::V8InjectedScriptHost::databaseIdCallbackCustom):
72720        (WebCore::V8InjectedScriptHost::storageIdCallbackCustom):
72721        (WebCore::V8InjectedScriptHost::evaluateCallbackCustom):
72722        (WebCore::V8InjectedScriptHost::setFunctionVariableValueCallbackCustom):
72723        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
72724        (WebCore::V8InspectorFrontendHost::platformCallbackCustom):
72725        (WebCore::V8InspectorFrontendHost::portCallbackCustom):
72726        (WebCore::V8InspectorFrontendHost::showContextMenuCallbackCustom):
72727        (WebCore::V8InspectorFrontendHost::recordActionTakenCallbackCustom):
72728        (WebCore::V8InspectorFrontendHost::recordPanelShownCallbackCustom):
72729        (WebCore::V8InspectorFrontendHost::recordSettingChangedCallbackCustom):
72730        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
72731        (WebCore::V8JavaScriptCallFrame::evaluateCallbackCustom):
72732        (WebCore::V8JavaScriptCallFrame::restartCallbackCustom):
72733        (WebCore::V8JavaScriptCallFrame::setVariableValueCallbackCustom):
72734        (WebCore::V8JavaScriptCallFrame::scopeTypeCallbackCustom):
72735        * bindings/v8/custom/V8LocationCustom.cpp:
72736        (WebCore::V8Location::reloadAccessorGetter):
72737        (WebCore::V8Location::replaceAccessorGetter):
72738        (WebCore::V8Location::assignAccessorGetter):
72739        (WebCore::V8Location::reloadCallbackCustom):
72740        (WebCore::V8Location::replaceCallbackCustom):
72741        (WebCore::V8Location::assignCallbackCustom):
72742        (WebCore::V8Location::valueOfCallbackCustom):
72743        (WebCore::V8Location::toStringCallbackCustom):
72744        * bindings/v8/custom/V8MessageEventCustom.cpp:
72745        (WebCore::V8MessageEvent::initMessageEventCallbackCustom):
72746        (WebCore::V8MessageEvent::webkitInitMessageEventCallbackCustom):
72747        * bindings/v8/custom/V8MessagePortCustom.cpp:
72748        (WebCore::V8MessagePort::postMessageCallbackCustom):
72749        * bindings/v8/custom/V8NodeCustom.cpp:
72750        (WebCore::V8Node::insertBeforeCallbackCustom):
72751        (WebCore::V8Node::replaceChildCallbackCustom):
72752        (WebCore::V8Node::removeChildCallbackCustom):
72753        (WebCore::V8Node::appendChildCallbackCustom):
72754        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
72755        (WebCore::V8NotificationCenter::requestPermissionCallbackCustom):
72756        * bindings/v8/custom/V8NotificationCustom.cpp:
72757        (WebCore::V8Notification::requestPermissionCallbackCustom):
72758        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
72759        (WebCore::V8SQLResultSetRowList::itemCallbackCustom):
72760        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
72761        (WebCore::V8SQLTransaction::executeSqlCallbackCustom):
72762        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
72763        (WebCore::V8SQLTransactionSync::executeSqlCallbackCustom):
72764        * bindings/v8/custom/V8SVGLengthCustom.cpp:
72765        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallbackCustom):
72766        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
72767        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallbackCustom):
72768        (WebCore::V8WebGLRenderingContext::getBufferParameterCallbackCustom):
72769        (WebCore::V8WebGLRenderingContext::getExtensionCallbackCustom):
72770        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallbackCustom):
72771        (WebCore::V8WebGLRenderingContext::getParameterCallbackCustom):
72772        (WebCore::V8WebGLRenderingContext::getProgramParameterCallbackCustom):
72773        (WebCore::V8WebGLRenderingContext::getRenderbufferParameterCallbackCustom):
72774        (WebCore::V8WebGLRenderingContext::getShaderParameterCallbackCustom):
72775        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallbackCustom):
72776        (WebCore::V8WebGLRenderingContext::getTexParameterCallbackCustom):
72777        (WebCore::V8WebGLRenderingContext::getUniformCallbackCustom):
72778        (WebCore::V8WebGLRenderingContext::getVertexAttribCallbackCustom):
72779        (WebCore::V8WebGLRenderingContext::uniform1fvCallbackCustom):
72780        (WebCore::V8WebGLRenderingContext::uniform1ivCallbackCustom):
72781        (WebCore::V8WebGLRenderingContext::uniform2fvCallbackCustom):
72782        (WebCore::V8WebGLRenderingContext::uniform2ivCallbackCustom):
72783        (WebCore::V8WebGLRenderingContext::uniform3fvCallbackCustom):
72784        (WebCore::V8WebGLRenderingContext::uniform3ivCallbackCustom):
72785        (WebCore::V8WebGLRenderingContext::uniform4fvCallbackCustom):
72786        (WebCore::V8WebGLRenderingContext::uniform4ivCallbackCustom):
72787        (WebCore::V8WebGLRenderingContext::uniformMatrix2fvCallbackCustom):
72788        (WebCore::V8WebGLRenderingContext::uniformMatrix3fvCallbackCustom):
72789        (WebCore::V8WebGLRenderingContext::uniformMatrix4fvCallbackCustom):
72790        (WebCore::V8WebGLRenderingContext::vertexAttrib1fvCallbackCustom):
72791        (WebCore::V8WebGLRenderingContext::vertexAttrib2fvCallbackCustom):
72792        (WebCore::V8WebGLRenderingContext::vertexAttrib3fvCallbackCustom):
72793        (WebCore::V8WebGLRenderingContext::vertexAttrib4fvCallbackCustom):
72794        * bindings/v8/custom/V8WorkerContextCustom.cpp:
72795        (WebCore::V8WorkerContext::importScriptsCallbackCustom):
72796        (WebCore::V8WorkerContext::setTimeoutCallbackCustom):
72797        (WebCore::V8WorkerContext::setIntervalCallbackCustom):
72798        * bindings/v8/custom/V8WorkerCustom.cpp:
72799        (WebCore::V8Worker::postMessageCallbackCustom):
72800        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
72801        (WebCore::V8XMLHttpRequest::openCallbackCustom):
72802        (WebCore::V8XMLHttpRequest::sendCallbackCustom):
72803        * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
72804        (WebCore::V8XSLTProcessor::setParameterCallbackCustom):
72805        (WebCore::V8XSLTProcessor::getParameterCallbackCustom):
72806        (WebCore::V8XSLTProcessor::removeParameterCallbackCustom):
72807
728082013-02-13  Praveen R Jadhav  <praveen.j@samsung.com>
72809
72810        JSObject for ChannelSplitterNode and ChannelMergerNode are not created.
72811        https://bugs.webkit.org/show_bug.cgi?id=109542
72812
72813        Reviewed by Kentaro Hara.
72814
72815        "JSGenerateToJSObject" should be included in IDL files
72816        of ChannelSplitterNode and ChannelMergerNode in WebAudio.
72817        This ensures html files to access corresponding objects.
72818
72819        * Modules/webaudio/ChannelMergerNode.idl:
72820        * Modules/webaudio/ChannelSplitterNode.idl:
72821
728222013-02-13   Vineet Chaudhary  <rgf748@motorola.com>
72823
72824        [Regression] After r142831  collection-null-like-arguments.html layout test failing
72825        https://bugs.webkit.org/show_bug.cgi?id=109780
72826
72827        Reviewed by Kentaro Hara.
72828
72829        No new tests. LayoutTests/fast/dom/collection-null-like-arguments.html
72830        Should pass now.
72831
72832        * bindings/js/JSHTMLAllCollectionCustom.cpp: Return null for namedItem() only.
72833        (WebCore::getNamedItems):
72834        (WebCore::JSHTMLAllCollection::namedItem):
72835        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
72836        (WebCore::getNamedItems):
72837        (WebCore::JSHTMLFormControlsCollection::namedItem):
72838        * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
72839        (WebCore::getNamedItems):
72840        (WebCore::JSHTMLOptionsCollection::namedItem):
72841
728422013-02-13  Soo-Hyun Choi  <sh9.choi@samsung.com>
72843
72844        Fix indentation error in MediaPlayerPrivateGStreamer.h
72845        https://bugs.webkit.org/show_bug.cgi?id=109768
72846
72847        Reviewed by Kentaro Hara.
72848
72849        No new tests as this patch just changes indentation style.
72850
72851        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
72852        (MediaPlayerPrivateGStreamer):
72853        (WebCore::MediaPlayerPrivateGStreamer::hasVideo):
72854        (WebCore::MediaPlayerPrivateGStreamer::hasAudio):
72855        (WebCore::MediaPlayerPrivateGStreamer::engineDescription):
72856        (WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
72857
728582013-02-13  Adam Barth  <abarth@webkit.org>
72859
72860        TokenPreloadScanner should be (mostly!) thread-safe
72861        https://bugs.webkit.org/show_bug.cgi?id=109760
72862
72863        Reviewed by Eric Seidel.
72864
72865        This patch makes the bulk of TokenPreloadScanner thread-safe.  The one
72866        remaining wart is processPossibleBaseTag because it wants to grub
72867        around in the base tag's attributes. I have a plan for that, but it's
72868        going to need to wait for the next patch.
72869
72870        * html/parser/HTMLPreloadScanner.cpp:
72871        (WebCore::isStartTag):
72872        (WebCore::isStartOrEndTag):
72873        (WebCore::TokenPreloadScanner::identifierFor):
72874        (WebCore::TokenPreloadScanner::inititatorFor):
72875        (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
72876        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
72877        (TokenPreloadScanner::StartTagScanner):
72878        (WebCore::TokenPreloadScanner::processPossibleTemplateTag):
72879        (WebCore::TokenPreloadScanner::processPossibleStyleTag):
72880        (WebCore::TokenPreloadScanner::processPossibleBaseTag):
72881        (WebCore::TokenPreloadScanner::scan):
72882        (WebCore::HTMLPreloadScanner::scan):
72883        * html/parser/HTMLPreloadScanner.h:
72884        (WebCore):
72885
728862013-02-13  Adam Barth  <abarth@webkit.org>
72887
72888        StartTagScanner should be thread-safe
72889        https://bugs.webkit.org/show_bug.cgi?id=109750
72890
72891        Reviewed by Eric Seidel.
72892
72893        This patch weens the StartTagScanner off AtomicString using two
72894        techniques:
72895
72896        1) This patch creates an enum to represent the four tag names that the
72897           StartTagScanner needs to understand. Using an enum is better than
72898           using an AtomicString because we can use the enum on both the main
72899           thread and on the background thread.
72900
72901        2) For attributes, this patch uses threadSafeMatch. We're not able to
72902           use threadSafeMatch everywhere due to performance, but using it for
72903           attributes appears to be ok becaues we only call threadSafeMatch on
72904           the attributes of "interesting" tags.
72905
72906        I tested the performance of this patch using
72907        PerformanceTests/Parser/html-parser.html and did not see any slowdown.
72908        (There actually appeared to be a <1% speedup, but I'm attributing that
72909        to noise.)
72910
72911        * html/parser/HTMLPreloadScanner.cpp:
72912        (WebCore::identifierFor):
72913        (WebCore):
72914        (WebCore::inititatorFor):
72915        (WebCore::StartTagScanner::StartTagScanner):
72916        (WebCore::StartTagScanner::processAttributes):
72917        (StartTagScanner):
72918        (WebCore::StartTagScanner::createPreloadRequest):
72919        (WebCore::StartTagScanner::processAttribute):
72920        (WebCore::StartTagScanner::charset):
72921        (WebCore::StartTagScanner::resourceType):
72922        (WebCore::StartTagScanner::shouldPreload):
72923        (WebCore::HTMLPreloadScanner::processToken):
72924
729252013-02-13  Huang Dongsung  <luxtella@company100.net>
72926
72927        Coordinated Graphics: a long page is scaled vertically while loading.
72928        https://bugs.webkit.org/show_bug.cgi?id=109645
72929
72930        Reviewed by Noam Rosenthal.
72931
72932        When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws
72933        vertically scaled contents. It is because there is the difference between the
72934        size of a layer and the size of CoordinatedBackingStore.
72935
72936        Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore
72937        at the moment of creating, updating and removing a tile. However, it is not
72938        necessary to send tile-related messages when the size of layer is changed.
72939        So this patch resets the size of CoordinatedBackingStore when receiving the
72940        message that is created when the size is changed: SyncLayerState.
72941
72942        There is no current way to reliably test flicker issues.
72943
72944        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
72945          Add m_pendingSize to set m_size at the moment of flushing.
72946          After http://webkit.org/b/108294, m_pendingSize will be removed
72947          because the bug makes CoordinatedGraphicsScene execute all messages at
72948          the moment of flushing.
72949        (WebCore::CoordinatedBackingStore::setSize):
72950        (WebCore::CoordinatedBackingStore::commitTileOperations):
72951        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
72952        (CoordinatedBackingStore):
72953        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
72954        (WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
72955        (WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
72956        (WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
72957        (WebCore::CoordinatedGraphicsScene::createTile):
72958        (WebCore::CoordinatedGraphicsScene::removeTile):
72959        (WebCore::CoordinatedGraphicsScene::updateTile):
72960
729612013-02-13  Kentaro Hara  <haraken@chromium.org>
72962
72963        [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
72964        and XXXAccessorSetter() to XXXAttrSetterCustom()
72965        https://bugs.webkit.org/show_bug.cgi?id=109679
72966
72967        Reviewed by Adam Barth.
72968
72969        For naming consistency and clarification.
72970
72971        No tests. No change in behavior.
72972
72973        * bindings/scripts/CodeGeneratorV8.pm:
72974        (GenerateHeader):
72975        (GenerateHeaderCustomCall):
72976        (GenerateNormalAttrGetter):
72977        (GenerateNormalAttrSetter):
72978        (GenerateImplementation):
72979        * bindings/scripts/test/V8/V8TestInterface.cpp:
72980        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
72981        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
72982        * bindings/scripts/test/V8/V8TestObj.cpp:
72983        (WebCore::TestObjV8Internal::customAttrAttrGetter):
72984        (WebCore::TestObjV8Internal::customAttrAttrSetter):
72985        * bindings/scripts/test/V8/V8TestObj.h:
72986        (V8TestObj):
72987        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
72988        (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
72989        * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
72990        (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
72991        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
72992        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
72993        (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
72994        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
72995        (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
72996        * bindings/v8/custom/V8ClipboardCustom.cpp:
72997        (WebCore::V8Clipboard::typesAttrGetterCustom):
72998        * bindings/v8/custom/V8CoordinatesCustom.cpp:
72999        (WebCore::V8Coordinates::altitudeAttrGetterCustom):
73000        (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
73001        (WebCore::V8Coordinates::headingAttrGetterCustom):
73002        (WebCore::V8Coordinates::speedAttrGetterCustom):
73003        * bindings/v8/custom/V8CustomEventCustom.cpp:
73004        (WebCore::V8CustomEvent::detailAttrGetterCustom):
73005        * bindings/v8/custom/V8DOMWindowCustom.cpp:
73006        (WebCore::V8DOMWindow::eventAttrGetterCustom):
73007        (WebCore::V8DOMWindow::eventAttrSetterCustom):
73008        (WebCore::V8DOMWindow::locationAttrSetterCustom):
73009        (WebCore::V8DOMWindow::openerAttrSetterCustom):
73010        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
73011        (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
73012        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
73013        (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
73014        (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
73015        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
73016        (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
73017        (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
73018        (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
73019        (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
73020        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
73021        (WebCore::V8Document::locationAttrGetterCustom):
73022        (WebCore::V8Document::locationAttrSetterCustom):
73023        * bindings/v8/custom/V8EventCustom.cpp:
73024        (WebCore::V8Event::dataTransferAttrGetterCustom):
73025        (WebCore::V8Event::clipboardDataAttrGetterCustom):
73026        * bindings/v8/custom/V8FileReaderCustom.cpp:
73027        (WebCore::V8FileReader::resultAttrGetterCustom):
73028        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
73029        (WebCore::V8HTMLDocument::allAttrSetterCustom):
73030        * bindings/v8/custom/V8HTMLElementCustom.cpp:
73031        (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
73032        (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
73033        * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
73034        (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
73035        * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
73036        (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
73037        (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
73038        (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
73039        (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
73040        (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
73041        (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
73042        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
73043        (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
73044        (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
73045        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
73046        (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
73047        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
73048        (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
73049        * bindings/v8/custom/V8HistoryCustom.cpp:
73050        (WebCore::V8History::stateAttrGetterCustom):
73051        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
73052        (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
73053        (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
73054        (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
73055        * bindings/v8/custom/V8LocationCustom.cpp:
73056        (WebCore::V8Location::hashAttrSetterCustom):
73057        (WebCore::V8Location::hostAttrSetterCustom):
73058        (WebCore::V8Location::hostnameAttrSetterCustom):
73059        (WebCore::V8Location::hrefAttrSetterCustom):
73060        (WebCore::V8Location::pathnameAttrSetterCustom):
73061        (WebCore::V8Location::portAttrSetterCustom):
73062        (WebCore::V8Location::protocolAttrSetterCustom):
73063        (WebCore::V8Location::searchAttrSetterCustom):
73064        (WebCore::V8Location::reloadAttrGetterCustom):
73065        (WebCore::V8Location::replaceAttrGetterCustom):
73066        (WebCore::V8Location::assignAttrGetterCustom):
73067        * bindings/v8/custom/V8MessageEventCustom.cpp:
73068        (WebCore::V8MessageEvent::dataAttrGetterCustom):
73069        (WebCore::V8MessageEvent::portsAttrGetterCustom):
73070        * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
73071        (WebCore::V8OscillatorNode::typeAttrSetterCustom):
73072        * bindings/v8/custom/V8PannerNodeCustom.cpp:
73073        (WebCore::V8PannerNode::panningModelAttrSetterCustom):
73074        (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
73075        * bindings/v8/custom/V8PopStateEventCustom.cpp:
73076        (WebCore::V8PopStateEvent::stateAttrGetterCustom):
73077        * bindings/v8/custom/V8SVGLengthCustom.cpp:
73078        (WebCore::V8SVGLength::valueAttrGetterCustom):
73079        (WebCore::V8SVGLength::valueAttrSetterCustom):
73080        * bindings/v8/custom/V8TrackEventCustom.cpp:
73081        (WebCore::V8TrackEvent::trackAttrGetterCustom):
73082        * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
73083        (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
73084        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
73085        (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
73086        (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
73087
730882013-02-12  Kentaro Hara  <haraken@chromium.org>
73089
73090        [V8] Generate wrapper methods for custom getters/setters
73091        https://bugs.webkit.org/show_bug.cgi?id=109666
73092
73093        Reviewed by Adam Barth.
73094
73095        Currently V8 directly calls back custom getters/setters written
73096        in custom binding files. This makes it impossible for code generators
73097        to hook custom getters/setters (e.g. Code generators cannot insert a code
73098        for FeatureObservation into custom getters/setters). To solve the problem,
73099        we should generate wrapper methods for custom getters/setters.
73100
73101        No tests. No change in behavior.
73102
73103        * bindings/scripts/CodeGeneratorV8.pm:
73104        (GenerateNormalAttrGetter):
73105        (GenerateNormalAttrSetter):
73106        (GenerateSingleBatchedAttribute):
73107        (GenerateImplementation):
73108        * bindings/scripts/test/V8/V8TestInterface.cpp:
73109        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
73110        (TestInterfaceV8Internal):
73111        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
73112        (WebCore):
73113        * bindings/scripts/test/V8/V8TestObj.cpp:
73114        (WebCore::TestObjV8Internal::customAttrAttrGetter):
73115        (TestObjV8Internal):
73116        (WebCore::TestObjV8Internal::customAttrAttrSetter):
73117        (WebCore):
73118
731192013-02-13   Vineet Chaudhary  <rgf748@motorola.com>
73120
73121        HTMLCollections namedItem() methods should return null than undefined for empty collections.
73122        https://bugs.webkit.org/show_bug.cgi?id=104096
73123
73124        Reviewed by Kentaro Hara.
73125
73126        As per specification namedItem() should return null if collection is empty.
73127        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection
73128
73129        Test: fast/dom/htmlcollection-namedItem.html
73130
73131        * bindings/js/JSHTMLAllCollectionCustom.cpp: Returning null.
73132        (WebCore::getNamedItems):
73133        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
73134        (WebCore::getNamedItems):
73135        * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
73136        (WebCore::getNamedItems):
73137        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Ditto.
73138        (WebCore::V8HTMLAllCollection::namedItemCallback):
73139        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Ditto.
73140        (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
73141        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: Ditto.
73142        (WebCore::V8HTMLOptionsCollection::namedItemCallback):
73143
731442013-02-13  Tony Gentilcore  <tonyg@chromium.org>
73145
73146        Fix svg/in-html/script-write.html with threaded HTML parser
73147        https://bugs.webkit.org/show_bug.cgi?id=109495
73148
73149        Reviewed by Eric Seidel.
73150
73151        This patch makes the background parser's simulateTreeBuilder() more realistic.
73152        1. The HTMLTreeBuilder does not call the updateStateFor() setState()s when in foreign content mode so we shouldn't do it when simulating the tree builder.
73153        2. HTMLTreeBuilder::processTokenInForeignContent has a list of tags which exit foreign content mode. We need to respect those.
73154        3. Support the <foreignObject> tag which enters and leaves foreign content mode.
73155        4. The tree builder sets state to DataState upon a </script> tag when not in foreign content mode. We need to do the same.
73156
73157        This involved creating a namespace stack where we push upon entering each namespace and pop upon leaving.
73158        We are in foreign content if the topmost namespace is SVG or MathML.
73159
73160        This fixes svg/in-html/script-write.html and likely others.
73161
73162        * html/parser/BackgroundHTMLParser.cpp:
73163        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
73164        * html/parser/BackgroundHTMLParser.h:
73165        (BackgroundHTMLParser):
73166        * html/parser/CompactHTMLToken.cpp:
73167        (WebCore::CompactHTMLToken::getAttributeItem): Returns the attribute of the given name. Necessary to test for <font> attributes in simulateTreeBuilder.
73168        (WebCore):
73169        * html/parser/CompactHTMLToken.h:
73170        (WebCore):
73171        (CompactHTMLToken):
73172
731732013-02-13  Andreas Kling  <akling@apple.com>
73174
73175        Remove Element::getAttributeItem() overload that returned a mutable Attribute*.
73176        <http://webkit.org/b/109756>
73177
73178        Reviewed by Antti Koivisto.
73179
73180        Remove this to prevent callers from accidentally causing elements to convert to UniqueElementData.
73181        There are two call sites (Attr and HTMLSelectElement) that legitimately need to mutate Attribute
73182        objects in-place, they now use Element::ensureUniqueElementData()->getAttributeItem() directly instead.
73183
73184        Small progression on Membuster3, mostly for peace of mind.
73185
73186        * dom/Attr.cpp:
73187        (WebCore::Attr::elementAttribute):
73188        * dom/Element.h:
73189        (Element):
73190        * html/HTMLInputElement.cpp:
73191        (WebCore::HTMLInputElement::updateType):
73192        * html/HTMLSelectElement.cpp:
73193        (WebCore::HTMLSelectElement::parseAttribute):
73194        * svg/SVGStyledElement.cpp:
73195        (WebCore::SVGStyledElement::getPresentationAttribute):
73196
731972013-02-13  Andreas Kling  <akling@apple.com>
73198
73199        Stronger ElementData pointer typing.
73200        <http://webkit.org/b/109752>
73201
73202        Reviewed by Antti Koivisto.
73203
73204        Use ShareableElementData/UniqueElementData pointers instead of generic ElementData pointers
73205        where possible. Moved some methods from base class into leaf classes that don't make sense
73206        for both classes.
73207
73208        * dom/DocumentSharedObjectPool.cpp:
73209        (WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
73210        (ShareableElementDataCacheEntry):
73211        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
73212        * dom/DocumentSharedObjectPool.h:
73213        (DocumentSharedObjectPool):
73214        * dom/Element.cpp:
73215        (WebCore::Element::parserSetAttributes):
73216        (WebCore::Element::setAttributeNode):
73217        (WebCore::Element::removeAttributeInternal):
73218        (WebCore::Element::cloneAttributesFromElement):
73219        (WebCore::Element::createUniqueElementData):
73220        (WebCore::ShareableElementData::createWithAttributes):
73221        (WebCore::UniqueElementData::create):
73222        (WebCore::ElementData::makeUniqueCopy):
73223        (WebCore::UniqueElementData::makeShareableCopy):
73224        * dom/Element.h:
73225        (ElementData):
73226        (ShareableElementData):
73227        (UniqueElementData):
73228        (Element):
73229        (WebCore::Element::ensureUniqueElementData):
73230        * dom/StyledElement.cpp:
73231        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
73232
732332013-02-13  Antti Koivisto  <antti@apple.com>
73234
73235        Reschedule shared CFRunLoopTimer instead of reconstructing it
73236        https://bugs.webkit.org/show_bug.cgi?id=109765
73237
73238        Reviewed by Andreas Kling and Anders Carlsson.
73239
73240        Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.
73241
73242        * platform/mac/SharedTimerMac.mm:
73243        (WebCore):
73244        (WebCore::PowerObserver::restartSharedTimer):
73245        (WebCore::sharedTimer):
73246        (WebCore::setSharedTimerFireInterval):
73247        (WebCore::stopSharedTimer):
73248
732492013-02-13  Emil A Eklund  <eae@chromium.org>
73250
73251        getComputedStyle returns truncated value for margin-right
73252        https://bugs.webkit.org/show_bug.cgi?id=109759
73253
73254        Reviewed by Tony Chang.
73255        
73256        Due to an unfortunate cast in CSSComputedStyleDeclaration::
73257        getPropertyCSSValue getComputedStyle returns truncated styles
73258        for margin-right in cases where it isn't set to a specific pixel
73259        value.
73260
73261        Test: fast/sub-pixel/computedstylemargin.html
73262
73263        * css/CSSComputedStyleDeclaration.cpp:
73264        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
73265        Change type of temporary value variable to float to prevent loss of precision.
73266
732672013-02-13  Max Vujovic  <mvujovic@adobe.com>
73268
73269        [CSS Filters] Refactor filter outsets into a class
73270        https://bugs.webkit.org/show_bug.cgi?id=109330
73271
73272        Reviewed by Dean Jackson.
73273
73274        In filters related code, we're often operating on 4 ints representing the top, right,
73275        bottom, and left filter outsets. These outsets come from a filter like blur or drop-shadow.
73276        This patch packages those ints and their related operations into a class called
73277        IntRectExtent.
73278
73279        Here are some signs that we should make a class to hold those 4 ints:
73280        1) In RenderLayer.cpp, we have a expandRectForFilterOutsets function, which looks like
73281           feature envy.
73282        2) RenderStyle and other classes have methods like getFilterOutsets which set the 4 ints by
73283           reference. The calling code has to define 4 ints, which looks bloated.
73284        3) To fix bug 109098, we will need to check if filter outsets changed, which sounds like a
73285           nice job for an inequality operator. (https://bugs.webkit.org/show_bug.cgi?id=109098)
73286
73287        No new tests. No change in behavior. Just refactoring.
73288
73289        * GNUmakefile.list.am:
73290        * Target.pri:
73291        * WebCore.gypi:
73292        * WebCore.xcodeproj/project.pbxproj:
73293        * platform/graphics/IntRectExtent.h: Added.
73294        (WebCore):
73295        (IntRectExtent):
73296        (WebCore::IntRectExtent::IntRectExtent):
73297        (WebCore::IntRectExtent::top):
73298        (WebCore::IntRectExtent::setTop):
73299        (WebCore::IntRectExtent::right):
73300        (WebCore::IntRectExtent::setRight):
73301        (WebCore::IntRectExtent::bottom):
73302        (WebCore::IntRectExtent::setBottom):
73303        (WebCore::IntRectExtent::left):
73304        (WebCore::IntRectExtent::setLeft):
73305        (WebCore::IntRectExtent::expandRect):
73306        (WebCore::IntRectExtent::isZero):
73307        (WebCore::operator==):
73308        (WebCore::operator!=):
73309        (WebCore::operator+=):
73310        * platform/graphics/filters/FilterOperations.cpp:
73311        (WebCore::FilterOperations::outsets):
73312        * platform/graphics/filters/FilterOperations.h:
73313        (FilterOperations):
73314        * platform/graphics/texmap/TextureMapperLayer.cpp:
73315        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
73316        * rendering/FilterEffectRenderer.cpp:
73317        (WebCore::FilterEffectRenderer::FilterEffectRenderer):
73318        (WebCore::FilterEffectRenderer::build):
73319        (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
73320        * rendering/FilterEffectRenderer.h:
73321        (FilterEffectRenderer):
73322        * rendering/RenderLayer.cpp:
73323        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
73324        (WebCore::transparencyClipBox):
73325        (WebCore::RenderLayer::calculateLayerBounds):
73326        * rendering/style/RenderStyle.h:
73327
733282013-02-13  Adam Barth  <abarth@webkit.org>
73329
73330        Factor HTMLTokenScanner out of HTMLPreloadScanner
73331        https://bugs.webkit.org/show_bug.cgi?id=109754
73332
73333        Reviewed by Eric Seidel.
73334
73335        This patch is just a mechanical separation of the per-token "scanning"
73336        logic from HTMLPreloadScanner into a separate class.
73337        HTMLPreloadScanner's job is now to keep track of the input stream and
73338        to pump the tokenizer.
73339
73340        This factorization class will let us use HTMLTokenScanner on the
73341        background thread (once we finish making it thread-safe). In a follow
73342        up patch, I'll move HTMLTokenScanner to its own file.
73343
73344        * html/parser/HTMLPreloadScanner.cpp:
73345        (WebCore::HTMLTokenScanner::HTMLTokenScanner):
73346        (WebCore::HTMLTokenScanner::~HTMLTokenScanner):
73347        (WebCore::HTMLTokenScanner::processPossibleTemplateTag):
73348        (WebCore::HTMLTokenScanner::processPossibleStyleTag):
73349        (WebCore::HTMLTokenScanner::processPossibleBaseTag):
73350        (WebCore::HTMLTokenScanner::scan):
73351        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
73352        (WebCore):
73353        (WebCore::HTMLPreloadScanner::~HTMLPreloadScanner):
73354        (WebCore::HTMLPreloadScanner::appendToEnd):
73355        (WebCore::HTMLPreloadScanner::scan):
73356        * html/parser/HTMLPreloadScanner.h:
73357        (HTMLTokenScanner):
73358        (WebCore::HTMLTokenScanner::setPredictedBaseElementURL):
73359        (HTMLPreloadScanner):
73360        (WebCore):
73361
733622013-02-13  Elliott Sprehn  <esprehn@chromium.org>
73363
73364        ASSERT(!renderer()->needsLayout()) when calling Element::focus() with generated content
73365        https://bugs.webkit.org/show_bug.cgi?id=109616
73366
73367        Reviewed by Julien Chaffraix.
73368
73369        Test: fast/css-generated-content/quote-layout-focus-crash.html
73370
73371        In some cases RenderQuote may mark itself and containing blocks as needing layout
73372        during a layout, but then one of it's containing blocks will mark itself as having
73373        finished layout so the RenderQuote and potentially some of it's ancestor renderers
73374        needLayout(), but the ancestors above those do not.
73375
73376        Until we have proper pre-layout tasks we should just walk the list of quotes
73377        right before layout and mark all their ancestors as needing layout if the quote
73378        needs layout.
73379
73380        * dom/Document.cpp:
73381        (WebCore::Document::updateLayout): Call markQuoteContainingBlocksForLayoutIfNeeded.
73382        (WebCore::Document::implicitClose): Call markQuoteContainingBlocksForLayoutIfNeeded.
73383        * rendering/RenderQuote.h:
73384        (WebCore::RenderQuote::next): Added.
73385        * rendering/RenderView.cpp:
73386        (WebCore::RenderView::markQuoteContainingBlocksForLayoutIfNeeded): Added.
73387        * rendering/RenderView.h:
73388        (RenderView):
73389
733902013-02-13  Jer Noble  <jer.noble@apple.com>
73391
73392        EME: MediaPlayer::keyNeede() should return a bool indicating whether an event listener was triggered.
73393        https://bugs.webkit.org/show_bug.cgi?id=109701
73394
73395        Reviewed by Eric Carlson.
73396
73397        Clients of MediaPlayer may need to do cleanup if calling keyNeeded()
73398        results in no event listener being triggered. Return a bool (like the
73399        v1 equivalent keyNeeded method) to indicate this.
73400
73401        * html/HTMLMediaElement.cpp:
73402        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
73403        * html/HTMLMediaElement.h:
73404        * platform/graphics/MediaPlayer.cpp:
73405        (WebCore::MediaPlayer::keyNeeded):
73406        * platform/graphics/MediaPlayer.h:
73407        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
73408
734092013-02-13  Abhishek Arya  <inferno@chromium.org>
73410
73411        ASSERTION FAILED: !object || object->isBox(), Bad cast in RenderBox::computeLogicalHeight
73412        https://bugs.webkit.org/show_bug.cgi?id=107748
73413
73414        Reviewed by Levi Weintraub.
73415
73416        Make sure that body renderer is not an inline-block display
73417        when determining that it stretches to viewport or when paginated
73418        content needs base height.
73419
73420        Test: fast/block/body-inline-block-crash.html
73421
73422        * rendering/RenderBox.cpp:
73423        (WebCore::RenderBox::computeLogicalHeight):
73424        * rendering/RenderBox.h:
73425        (WebCore::RenderBox::stretchesToViewport):
73426
734272013-02-13  Shawn Singh  <shawnsingh@chromium.org>
73428
73429        Fix debug assertion being triggered because we may access dirty normalFlowList.
73430        https://bugs.webkit.org/show_bug.cgi?id=109740
73431
73432        A debug assertion in RenderLayer.h is being hit when trying to
73433        access the normalFlowList when it is dirty.  This is caused by a
73434        new recursion that I added in RenderLayerBacking::hasVisibleNonCompositingDescendant(),
73435        but I overlooked the need to call updateLayerListsIfNeeded()
73436        recursively as well.
73437
73438        Reviewed by Simon Fraser.
73439
73440        No test, because there's no reliable way to test this (same as bug 85512).
73441
73442        * rendering/RenderLayerBacking.cpp:
73443        (WebCore::hasVisibleNonCompositingDescendant):
73444        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
73445
734462013-02-13  Antti Koivisto  <antti@apple.com>
73447
73448        Don't restart shared timer if both the current and the new fire time are in the past
73449        https://bugs.webkit.org/show_bug.cgi?id=109731
73450
73451        Reviewed by Andreas Kling.
73452
73453        In 40-50% of cases we reschedule the shared timer both the old and the new fire time have already passed. This can happen at least when rescheduling 
73454        a zero duration timer and when stopping a timer that was ready to fire.
73455
73456        We can skip rescheduling in this case, the shared timer will fire immediately anyway.
73457        
73458        Scheduling timers calls into platform layer and can be slow. This about halves the time under setSharedTimerFireInterval in PLT3
73459        for ~0.1% total CPU time reduction.
73460
73461        * platform/ThreadTimers.cpp:
73462        (WebCore::ThreadTimers::ThreadTimers):
73463        (WebCore::ThreadTimers::setSharedTimer):
73464        (WebCore::ThreadTimers::updateSharedTimer):
73465        (WebCore::ThreadTimers::sharedTimerFiredInternal):
73466        * platform/ThreadTimers.h:
73467        (ThreadTimers):
73468
734692013-02-13  Zan Dobersek  <zdobersek@igalia.com>
73470
73471        The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
73472        https://bugs.webkit.org/show_bug.cgi?id=109325
73473
73474        Reviewed by Anders Carlsson.
73475
73476        Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
73477        two methods as they're provided by the C++ standard library being used.
73478
73479        No new tests as there's no change in functionality.
73480
73481        * Modules/mediasource/MediaSource.cpp:
73482        (WebCore::MediaSource::setDuration):
73483        * Modules/webaudio/AudioBufferSourceNode.cpp:
73484        (WebCore::AudioBufferSourceNode::totalPitchRate):
73485        * Modules/webaudio/AudioParam.cpp:
73486        (WebCore::AudioParam::setValue):
73487        * Modules/webaudio/AudioParamTimeline.cpp:
73488        (WebCore::isValidNumber):
73489        * Modules/webaudio/PannerNode.cpp:
73490        (WebCore::fixNANs):
73491        * bindings/js/IDBBindingUtilities.cpp:
73492        (WebCore::createIDBKeyFromValue):
73493        * bindings/js/JSDataViewCustom.cpp:
73494        (WebCore::getDataViewMember):
73495        * bindings/js/JSGeolocationCustom.cpp:
73496        (WebCore::setTimeout):
73497        (WebCore::setMaximumAge):
73498        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
73499        (WebCore::JSHTMLOptionsCollection::setLength):
73500        * bindings/js/JSWebKitPointCustom.cpp:
73501        (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
73502        * bindings/scripts/CodeGeneratorJS.pm:
73503        (GenerateImplementation):
73504        (GenerateParametersCheck):
73505        * bindings/scripts/CodeGeneratorV8.pm:
73506        (GenerateParametersCheck):
73507        * bindings/scripts/test/JS/JSFloat64Array.cpp:
73508        (WebCore::JSFloat64Array::getByIndex):
73509        * bindings/scripts/test/JS/JSTestObj.cpp:
73510        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
73511        * bindings/scripts/test/V8/V8TestObj.cpp:
73512        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
73513        * bindings/v8/IDBBindingUtilities.cpp:
73514        (WebCore::createIDBKeyFromValue):
73515        * bindings/v8/V8Binding.cpp:
73516        (WebCore::toInt32):
73517        (WebCore::toUInt32):
73518        * bindings/v8/custom/V8GeolocationCustom.cpp:
73519        (WebCore::createPositionOptions):
73520        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
73521        (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
73522        * bindings/v8/custom/V8WebKitPointCustom.cpp:
73523        (WebCore::V8WebKitPoint::constructorCallbackCustom):
73524        * bridge/qt/qt_runtime.cpp:
73525        (JSC::Bindings::convertValueToQVariant):
73526        * css/WebKitCSSMatrix.cpp:
73527        (WebCore::WebKitCSSMatrix::translate):
73528        (WebCore::WebKitCSSMatrix::scale):
73529        (WebCore::WebKitCSSMatrix::rotate):
73530        (WebCore::WebKitCSSMatrix::rotateAxisAngle):
73531        (WebCore::WebKitCSSMatrix::skewX):
73532        (WebCore::WebKitCSSMatrix::skewY):
73533        * html/HTMLMediaElement.cpp:
73534        (WebCore::HTMLMediaElement::percentLoaded):
73535        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
73536        (WebCore::HTMLMediaElement::endedPlayback):
73537        * html/MediaController.cpp:
73538        (MediaController::duration):
73539        * html/canvas/WebGLRenderingContext.cpp:
73540        (WebCore):
73541        (WebCore::WebGLRenderingContext::clearColor):
73542        * html/track/TextTrack.cpp:
73543        (WebCore::TextTrack::addCue):
73544        * html/track/TextTrackCue.cpp:
73545        (WebCore::TextTrackCue::setStartTime):
73546        (WebCore::TextTrackCue::setEndTime):
73547        * page/DOMWindow.cpp:
73548        (WebCore::DOMWindow::adjustWindowRect):
73549        * page/WindowFeatures.cpp:
73550        (WebCore::WindowFeatures::floatFeature): Also include an opportunistic style fix.
73551        * platform/CalculationValue.cpp:
73552        (WebCore::CalculationValue::evaluate):
73553        * platform/Decimal.cpp:
73554        (WebCore::Decimal::fromDouble):
73555        * platform/Length.cpp:
73556        (WebCore::Length::nonNanCalculatedValue):
73557        * platform/audio/AudioResampler.cpp:
73558        (WebCore::AudioResampler::setRate):
73559        * platform/audio/DynamicsCompressorKernel.cpp:
73560        (WebCore::DynamicsCompressorKernel::process):
73561        * platform/audio/Reverb.cpp:
73562        (WebCore::calculateNormalizationScale):
73563        * platform/graphics/Font.cpp:
73564        (WebCore::Font::width):
73565        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
73566        (WebCore::MediaPlayerPrivateAVFoundation::isLiveStream):
73567        * platform/graphics/gpu/LoopBlinnMathUtils.cpp:
73568        (LoopBlinnMathUtils):
73569        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
73570        (WebCore::MediaPlayerPrivateGStreamer::buffered):
73571        (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
73572        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
73573        (WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable):
73574        * platform/graphics/opentype/OpenTypeVerticalData.cpp:
73575        (WebCore::OpenTypeVerticalData::getVerticalTranslationsForGlyphs):
73576        * platform/graphics/transforms/TransformationMatrix.cpp:
73577        (WebCore::clampEdgeValue):
73578        (WebCore::TransformationMatrix::clampedBoundsOfProjectedQuad):
73579        * platform/network/ResourceResponseBase.cpp:
73580        (WebCore::ResourceResponseBase::parseCacheControlDirectives):
73581        * rendering/RenderMediaControlsChromium.cpp:
73582        (WebCore::paintMediaSlider):
73583        (WebCore::paintMediaVolumeSlider):
73584        * rendering/RenderThemeMac.mm:
73585        (WebCore::RenderThemeMac::paintMediaSliderTrack):
73586        * svg/SVGAnimationElement.cpp:
73587        (WebCore::SVGAnimationElement::beginElementAt):
73588        (WebCore::SVGAnimationElement::endElementAt):
73589        * svg/SVGSVGElement.cpp:
73590        (WebCore::SVGSVGElement::setCurrentTime):
73591        * svg/animation/SMILTime.h:
73592        (WebCore::SMILTime::SMILTime):
73593        * svg/animation/SVGSMILElement.cpp:
73594        (WebCore::SVGSMILElement::addBeginTime):
73595        (WebCore::SVGSMILElement::addEndTime):
73596        * xml/XPathFunctions.cpp:
73597        (WebCore::XPath::FunSubstring::evaluate):
73598        (WebCore::XPath::FunRound::round):
73599        * xml/XPathValue.cpp:
73600        (WebCore::XPath::Value::toBoolean): Also include an opportunistic style fix.
73601        (WebCore::XPath::Value::toString):
73602
736032013-02-13  Eric Carlson  <eric.carlson@apple.com>
73604
73605        [Mac] Caption menu should have only one item selected
73606        https://bugs.webkit.org/show_bug.cgi?id=109730
73607
73608        Reviewed by Dean Jackson.
73609
73610        No new tests, media/track/track-user-preferences.html was modified to test the changes.
73611
73612        * CMakeLists.txt: Add CaptionUserPreferences.cpp.
73613        * GNUmakefile.list.am: Ditto.
73614        * Target.pri: Ditto.
73615        * WebCore.gypi: Ditto.
73616        * WebCore.vcproj/WebCore.vcproj: Ditto.
73617        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
73618        * WebCore.xcodeproj/project.pbxproj: Ditto.
73619
73620        * html/HTMLMediaElement.cpp:
73621        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_processingPreferenceChange.
73622        (WebCore::HTMLMediaElement::configureTextTrackGroup): Only end up with one selected track when
73623            called because of a preferences change.
73624        (WebCore::HTMLMediaElement::captionPreferencesChanged): Call setClosedCaptionsVisible instead
73625            of calling markCaptionAndSubtitleTracksAsUnconfigured directly.
73626        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Process all tracks, 
73627            not just track elements.
73628        * html/HTMLMediaElement.h:
73629
73630        * page/CaptionUserPreferences.cpp: Added so the functionality can be tested in DRT.
73631        (WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks):
73632        (WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks):
73633        (WebCore::CaptionUserPreferences::setUserPrefersCaptions):
73634        (WebCore::CaptionUserPreferences::captionPreferencesChanged):
73635        (WebCore::CaptionUserPreferences::preferredLanguages):
73636        (WebCore::CaptionUserPreferences::setPreferredLanguage):
73637        (WebCore::CaptionUserPreferences::displayNameForTrack):
73638        * page/CaptionUserPreferences.h:
73639
73640        * page/CaptionUserPreferencesMac.h:
73641        * page/CaptionUserPreferencesMac.mm:
73642        (WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Moved some logic
73643            to base class.
73644        (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Ditto.
73645
736462013-02-13  Hans Muller  <hmuller@adobe.com>
73647
73648        [CSS Exclusions] ExclusionPolygon reflex vertices should constrain the first fit location.
73649        https://bugs.webkit.org/show_bug.cgi?id=107568
73650
73651        Reviewed by Dirk Schulze.
73652
73653        The ExclusionPolygon::firstIncludedIntervalLogicalTop() method now includes offset edges
73654        for each of the polygon's reflex vertices. The motivation for this change is explained
73655        here: http://hansmuller-webkit.blogspot.com/2013/01/getting-to-point-reflex-vertices.html.
73656
73657        Test: fast/exclusions/shape-inside/shape-inside-first-fit-reflex.html
73658
73659        * rendering/ExclusionPolygon.cpp:
73660        (WebCore::isReflexVertex): Given three vertices that represent a pair of connected polygon edges, return true if the second vertex is a reflex vertex.
73661        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This method now includes offset edges for reflex vertices.
73662        * rendering/ExclusionPolygon.h:
73663        (WebCore::OffsetPolygonEdge::OffsetPolygonEdge): Added a constructor for creating an OffsetPolygonEdge given a reflex vertex.
73664        (WebCore::OffsetPolygonEdge::edgeIndex): Changed this property from unsigned to int. Now using -1 to indicate that the offset edge doesn't correspond to a single polygon edge.
73665
736662013-02-13  Adam Barth  <abarth@webkit.org>
73667
73668        CSSPreloadScanner should not depend on HTMLToken
73669        https://bugs.webkit.org/show_bug.cgi?id=109742
73670
73671        Reviewed by Eric Seidel.
73672
73673        There's no need for the CSSPreloadScanner to depend on HTMLToken. On
73674        the background thread, we'll likely want to use a CompactHTMLToken for
73675        preload scanning, so this dependency is problematic. This patch also
73676        teaches the CSSPreloadScanner how to scan LChars.
73677
73678        * html/parser/CSSPreloadScanner.cpp:
73679        (WebCore::CSSPreloadScanner::~CSSPreloadScanner):
73680        (WebCore):
73681        (WebCore::CSSPreloadScanner::scan):
73682        * html/parser/CSSPreloadScanner.h:
73683        (CSSPreloadScanner):
73684        * html/parser/HTMLPreloadScanner.cpp:
73685        (WebCore::HTMLPreloadScanner::processToken):
73686
736872013-02-13  Julien Chaffraix  <jchaffraix@webkit.org>
73688
73689        [CSS Grid Layout] Adding or removing grid items doesn't properly recompute the track sizes
73690        https://bugs.webkit.org/show_bug.cgi?id=109100
73691
73692        Reviewed by Ojan Vafai.
73693
73694        Test: fast/css-grid-layout/grid-item-removal-track-breadth-update.html
73695
73696        The test uncovered several bugs in our implementation that is fixed as part
73697        of this change. They will be detailed below.
73698
73699        * rendering/RenderGrid.cpp:
73700        (WebCore::RenderGrid::logicalContentHeightForChild):
73701        Added this function to share the code between minContentForChild and maxContentForChild.
73702        Also forced a relayout in this case to avoid getting a wrong answer (e.g. the logical height
73703        constrained by the previous layout's grid breadth).
73704
73705        (WebCore::RenderGrid::minContentForChild):
73706        (WebCore::RenderGrid::maxContentForChild):
73707        Updated to use logicalContentHeightForChild.
73708
73709        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
73710        Updated to match the specification and set max breadth to current breadth per the specification.
73711        This made us over-grow some cases in the test.
73712
73713        (WebCore::RenderGrid::distributeSpaceToTracks):
73714        Updated to match the specification and use an extra variable to do the intermediate spreading. Also removed
73715        a now unneeded max. This fixes the case of multiple grid items in the same grid area that was completely broken.
73716
73717        (WebCore::RenderGrid::layoutGridItems):
73718        Added a FIXME about always relaying out content sized tracks' children.
73719
73720        * rendering/RenderGrid.h:
73721        Added logicalContentHeightForChild.
73722
737232013-02-13  Adam Barth  <abarth@webkit.org>
73724
73725        Clean up some style nits in HTMLPreloadScanner
73726        https://bugs.webkit.org/show_bug.cgi?id=109738
73727
73728        Reviewed by Tony Gentilcore.
73729
73730        This patch just fixes a few style nits I noticed when reading through
73731        the code.
73732
73733        * html/parser/HTMLPreloadScanner.cpp:
73734        (WebCore::StartTagScanner::StartTagScanner):
73735        (WebCore::HTMLPreloadScanner::processPossibleStyleTag):
73736        (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
73737        * html/parser/HTMLResourcePreloader.cpp:
73738        (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
73739        * html/parser/HTMLResourcePreloader.h:
73740        (PreloadRequest):
73741        (WebCore::PreloadRequest::PreloadRequest):
73742        (WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
73743
737442013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>
73745
73746        Unreviewed, rolling out r142747.
73747        http://trac.webkit.org/changeset/142747
73748        https://bugs.webkit.org/show_bug.cgi?id=109746
73749
73750        broke component build (Requested by alecf_gardening on
73751        #webkit).
73752
73753        * inspector/HeapGraphSerializer.cpp:
73754        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
73755        (WebCore::HeapGraphSerializer::pushUpdate):
73756        (WebCore::HeapGraphSerializer::reportNode):
73757        (WebCore::HeapGraphSerializer::toNodeId):
73758        (WebCore::HeapGraphSerializer::addRootNode):
73759        * inspector/HeapGraphSerializer.h:
73760        (WebCore):
73761        (HeapGraphSerializer):
73762        * inspector/InspectorMemoryAgent.cpp:
73763        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
73764
737652013-02-13  Levi Weintraub  <leviw@chromium.org>
73766
73767        Bidi-Isolated inlines can cause subsequent content to not be rendered
73768        https://bugs.webkit.org/show_bug.cgi?id=108137
73769
73770        Reviewed by Eric Seidel.
73771
73772        First step in fixing how inline isolates behave with collapsed spaces.
73773        webkit.org/b/109624 tracks the overarching issue.
73774
73775        Test: fast/text/content-following-inline-isolate-with-collapsed-whitespace.html
73776
73777        * rendering/InlineIterator.h:
73778        (WebCore::IsolateTracker::addFakeRunIfNecessary): If we enter an isolate while
73779        ignoring spaces, ensure we leave it considering them again. This can result in
73780        including spaces that should be ignored following the isolate on the line, but
73781        failing to do so results in those contents not being rendered at all.
73782
737832013-02-13  Andreas Kling  <akling@apple.com>
73784
73785        Better names for ElementAttributeData & subclasses.
73786        <http://webkit.org/b/109529>
73787
73788        Reviewed by Antti Koivisto.
73789
73790        - ElementAttributeData => ElementData
73791
73792            Because ElementAttributeData won't be a good name once we move some non-attribute related
73793            things to this structure.
73794
73795        - ImmutableElementAttributeData => ShareableElementData
73796
73797            These objects can be shared with other Elements that have the same attribute name/value pairs.
73798
73799        - MutableElementAttributeData => UniqueElementData
73800
73801            These objects contain data that is unique to a specific Element, and cannot be shared with
73802            other Elements. This is what's important about it, not that its underlying storage is mutable.
73803
73804        - attributeData() -> elementData()
73805        - updatedAttributeData() -> elementDataWithSynchronizedAttributes()
73806        - ensureUpdatedAttributeData() -> ensureElementDataWithSynchronizedAttributes()
73807        - mutableAttributeData() -> ensureUniqueElementData()
73808
73809            Ride-along renames. Much less vague than previous names IMO.
73810
73811        * css/StyleResolver.cpp:
73812        (WebCore::StyleResolver::canShareStyleWithControl):
73813        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
73814        * dom/Attr.cpp:
73815        (WebCore::Attr::elementAttribute):
73816        * dom/DocumentSharedObjectPool.cpp:
73817        (WebCore::ShareableElementDataCacheKey::ShareableElementDataCacheKey):
73818        (WebCore::ShareableElementDataCacheKey::operator!=):
73819        (WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
73820        (ShareableElementDataCacheEntry):
73821        (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
73822        * dom/DocumentSharedObjectPool.h:
73823        (DocumentSharedObjectPool):
73824        * dom/Element.cpp:
73825        (WebCore::Element::detachAttribute):
73826        (WebCore::Element::removeAttribute):
73827        (WebCore::Element::attributes):
73828        (WebCore::Element::getAttribute):
73829        (WebCore::Element::setAttribute):
73830        (WebCore::Element::setSynchronizedLazyAttribute):
73831        (WebCore::Element::setAttributeInternal):
73832        (WebCore::Element::attributeChanged):
73833        (WebCore::Element::classAttributeChanged):
73834        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
73835        (WebCore::Element::parserSetAttributes):
73836        (WebCore::Element::hasAttributes):
73837        (WebCore::Element::hasEquivalentAttributes):
73838        (WebCore::Element::setAttributeNode):
73839        (WebCore::Element::removeAttributeNode):
73840        (WebCore::Element::removeAttributeInternal):
73841        (WebCore::Element::addAttributeInternal):
73842        (WebCore::Element::getAttributeNode):
73843        (WebCore::Element::getAttributeNodeNS):
73844        (WebCore::Element::hasAttribute):
73845        (WebCore::Element::hasAttributeNS):
73846        (WebCore::Element::computeInheritedLanguage):
73847        (WebCore::Element::getURLAttribute):
73848        (WebCore::Element::getNonEmptyURLAttribute):
73849        (WebCore::Element::cloneAttributesFromElement):
73850        (WebCore::Element::createUniqueElementData):
73851        (WebCore::Element::reportMemoryUsage):
73852        (WebCore::ElementData::deref):
73853        (WebCore::ElementData::ElementData):
73854        (WebCore::sizeForShareableElementDataWithAttributeCount):
73855        (WebCore::ElementData::createShareableWithAttributes):
73856        (WebCore::ElementData::createUnique):
73857        (WebCore::ShareableElementData::ShareableElementData):
73858        (WebCore::ShareableElementData::~ShareableElementData):
73859        (WebCore::UniqueElementData::UniqueElementData):
73860        (WebCore::ElementData::makeMutableCopy):
73861        (WebCore::ElementData::makeImmutableCopy):
73862        (WebCore::ElementData::setPresentationAttributeStyle):
73863        (WebCore::ElementData::addAttribute):
73864        (WebCore::ElementData::removeAttribute):
73865        (WebCore::ElementData::isEquivalent):
73866        (WebCore::ElementData::reportMemoryUsage):
73867        (WebCore::ElementData::getAttributeItemIndexSlowCase):
73868        * dom/Element.h:
73869        (ElementData):
73870        (WebCore::ElementData::isUnique):
73871        (ShareableElementData):
73872        (UniqueElementData):
73873        (WebCore::Element::getAttributeItemIndex):
73874        (WebCore::Element::elementData):
73875        (Element):
73876        (WebCore::Element::elementDataWithSynchronizedAttributes):
73877        (WebCore::Element::ensureElementDataWithSynchronizedAttributes):
73878        (WebCore::Element::fastHasAttribute):
73879        (WebCore::Element::fastGetAttribute):
73880        (WebCore::Element::hasAttributesWithoutUpdate):
73881        (WebCore::Element::idForStyleResolution):
73882        (WebCore::Element::classNames):
73883        (WebCore::Element::attributeCount):
73884        (WebCore::Element::attributeItem):
73885        (WebCore::Element::getAttributeItem):
73886        (WebCore::Element::updateInvalidAttributes):
73887        (WebCore::Element::hasID):
73888        (WebCore::Element::hasClass):
73889        (WebCore::Element::ensureUniqueElementData):
73890        (WebCore::ElementData::mutableAttributeVector):
73891        (WebCore::ElementData::immutableAttributeArray):
73892        (WebCore::ElementData::length):
73893        (WebCore::ElementData::presentationAttributeStyle):
73894        (WebCore::ElementData::getAttributeItem):
73895        (WebCore::ElementData::getAttributeItemIndex):
73896        (WebCore::ElementData::attributeItem):
73897        * dom/Node.cpp:
73898        (WebCore::Node::dumpStatistics):
73899        (WebCore::Node::compareDocumentPosition):
73900        * dom/StyledElement.cpp:
73901        (WebCore::StyledElement::updateStyleAttribute):
73902        (WebCore::StyledElement::ensureMutableInlineStyle):
73903        (WebCore::StyledElement::attributeChanged):
73904        (WebCore::StyledElement::inlineStyleCSSOMWrapper):
73905        (WebCore::StyledElement::setInlineStyleFromString):
73906        (WebCore::StyledElement::styleAttributeChanged):
73907        (WebCore::StyledElement::inlineStyleChanged):
73908        (WebCore::StyledElement::addSubresourceAttributeURLs):
73909        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
73910        * dom/StyledElement.h:
73911        (WebCore::StyledElement::inlineStyle):
73912        (WebCore::StyledElement::invalidateStyleAttribute):
73913        (WebCore::StyledElement::presentationAttributeStyle):
73914        * html/ClassList.cpp:
73915        (WebCore::ClassList::classNames):
73916        * html/HTMLInputElement.cpp:
73917        (WebCore::HTMLInputElement::updateType):
73918        * html/parser/HTMLConstructionSite.cpp:
73919        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
73920        * svg/SVGElement.cpp:
73921        (WebCore::SVGElement::updateAnimatedSVGAttribute):
73922        * svg/SVGElement.h:
73923        (WebCore::SVGElement::invalidateSVGAttributes):
73924        * xml/parser/XMLDocumentParserQt.cpp:
73925        (WebCore::XMLDocumentParser::XMLDocumentParser):
73926
739272013-02-13  Christian Biesinger  <cbiesinger@chromium.org>
73928
73929        Crash when encountering <object style="resize:both;">
73930        https://bugs.webkit.org/show_bug.cgi?id=109728
73931
73932        See also https://code.google.com/p/chromium/issues/detail?id=175535
73933        This bug can be reproduced on
73934        http://dramalink.net/tudou.y/?xink=162601060
73935
73936        Reviewed by Eric Seidel.
73937
73938        Test: fast/css/resize-object-crash.html
73939
73940        * rendering/RenderWidget.cpp:
73941        (WebCore::RenderWidget::paint):
73942        Only call paintResizer() if we have a layer and canResize() is true
73943
739442013-02-13  Arko Saha  <arko@motorola.com>
73945
73946        [Microdata] HTMLPropertiesCollection code cleanup
73947        https://bugs.webkit.org/show_bug.cgi?id=109721
73948
73949        Reviewed by Ryosuke Niwa.
73950
73951        Removed forward declaration of DOMStringList class.
73952        Removed unused findRefElements() method declaration.
73953        Also Removed unused parameter Element* from updatePropertyCache() method.
73954
73955        No new test since no change in behavior.
73956
73957        * html/HTMLPropertiesCollection.cpp:
73958        (WebCore::HTMLPropertiesCollection::updateNameCache):
73959        * html/HTMLPropertiesCollection.h:
73960        (WebCore):
73961        (HTMLPropertiesCollection):
73962        (WebCore::HTMLPropertiesCollection::updatePropertyCache):
73963
739642013-02-13  Kondapally Kalyan  <kalyan.kondapally@intel.com>
73965
73966        [WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object.
73967        https://bugs.webkit.org/show_bug.cgi?id=109382
73968
73969        Reviewed by Kenneth Russell.
73970
73971        Covered by fast/canvas/webgl/oes-vertex-array-object.html
73972
73973        This patch adds support for using Vertex Array Object with OpenGl.
73974        The patch adds support for loading necessary opengl functions
73975        and support for checking GL_ARB_vertex_array_object. The support
73976        for OES_vertex_array_object is advertised if GL_ARB_vertex_array_object is
73977        supported.
73978
73979        * platform/graphics/OpenGLShims.cpp:
73980        (WebCore::initializeOpenGLShims):
73981        * platform/graphics/OpenGLShims.h:
73982        (_OpenGLFunctionTable):
73983        Added support for loading the necessary functions.
73984
73985        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
73986        (WebCore::Extensions3DOpenGL::createVertexArrayOES):
73987        (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
73988        (WebCore::Extensions3DOpenGL::isVertexArrayOES):
73989        (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
73990        (WebCore::Extensions3DOpenGL::supportsExtension):
73991
73992        (WebCore):
73993        (WebCore::Extensions3DOpenGL::isVertexArrayObjectSupported):
73994        * platform/graphics/opengl/Extensions3DOpenGL.h:
73995        (Extensions3DOpenGL):
73996
739972013-02-13  Eberhard Graether  <egraether@google.com>
73998
73999        chromium: remove CompositorHUDFontAtlas
74000        https://bugs.webkit.org/show_bug.cgi?id=109328
74001
74002        Reviewed by James Robinson.
74003
74004        After switching the HudLayer to use skia's font rendering the
74005        CompositorHUDFontAtlas has become obsolete. This change removes
74006        this class and the related WebLayerTreeView API.
74007
74008        No new tests.
74009
74010        * WebCore.gypi:
74011        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
74012        * platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.
74013
740142013-02-13  Dean Jackson  <dino@apple.com>
74015
74016        Small update to speech bubble for captions menu [Mac]
74017        https://bugs.webkit.org/show_bug.cgi?id=109641
74018
74019        Reviewed by Eric Carlson
74020
74021        Small adjustment to the embedded SVG that draws a speech bubble
74022        for the captions button. Remove a polygon that was so small
74023        it looked like a rendering error.
74024
74025        * css/mediaControlsQuickTime.css:
74026        (video::-webkit-media-controls-toggle-closed-captions-button):
74027
740282013-02-13  Dean Jackson  <dino@apple.com>
74029
74030        Clicking outside captions menu should dismiss it
74031        https://bugs.webkit.org/show_bug.cgi?id=109648
74032
74033        Reviewed by Eric Carlson.
74034
74035        Add a virtual override to the platform-specific
74036        defaultEventHandler to intercept any click in the controls,
74037        and hide the captions menu if it is showing.
74038
74039        Test: media/video-controls-captions-trackmenu-hide-on-click.html
74040
74041        * html/shadow/MediaControlsApple.cpp:
74042        (WebCore::MediaControlsApple::defaultEventHandler): Override from MediaControls. Hide
74043            captions menu if a click event comes in.
74044        * html/shadow/MediaControlsApple.h:
74045
740462013-02-13  Tommy Widenflycht  <tommyw@google.com>
74047
74048        MediaStream API: Use the source id when creating new tracks
74049        https://bugs.webkit.org/show_bug.cgi?id=109688
74050
74051        Reviewed by Adam Barth.
74052
74053        This patch reuses the ids from the source when creating tracks instead of creating a new one.
74054        This was requested by the chromium port to greatly simplify their implementation.
74055        In the longer run the API should be rewritten to only use tracks instead of sources.
74056
74057        Covered by existing tests.
74058
74059        * platform/chromium/support/WebMediaStream.cpp:
74060        (WebKit::WebMediaStream::audioTracks):
74061        (WebKit::WebMediaStream::videoTracks):
74062        (WebKit::WebMediaStream::initialize):
74063        (WebKit):
74064        * platform/chromium/support/WebMediaStreamTrack.cpp:
74065        (WebKit::WebMediaStreamTrack::initialize):
74066        (WebKit):
74067        * platform/mediastream/MediaStreamComponent.h:
74068        (WebCore::MediaStreamComponent::create):
74069        (MediaStreamComponent):
74070        (WebCore::MediaStreamComponent::MediaStreamComponent):
74071        (WebCore):
74072        * platform/mediastream/MediaStreamDescriptor.h:
74073        (WebCore::MediaStreamDescriptor::create):
74074        (MediaStreamDescriptor):
74075        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
74076
740772013-02-13  Eric Seidel  <eric@webkit.org>
74078
74079        Use fancy new Vector-based String constructors in the WebVTT parser
74080        https://bugs.webkit.org/show_bug.cgi?id=109619
74081
74082        Reviewed by Benjamin Poulain.
74083
74084        No change in behavior. Added some FIXMEs for future perf optimization.
74085
74086        * html/track/WebVTTParser.cpp:
74087        (WebCore::WebVTTParser::constructTreeFromToken):
74088
740892013-02-13  Morten Stenshorne  <mstensho@opera.com>
74090
74091        WebKit ignores column-rules wider than column-gap
74092        https://bugs.webkit.org/show_bug.cgi?id=15553
74093
74094        Paint column rules even if they are wider than the gap.
74095        Rules wider than the gap should just overlap with column contents.
74096
74097        Reviewed by Eric Seidel.
74098
74099        Test: fast/multicol/rule-thicker-than-gap.html
74100
74101        * rendering/RenderBlock.cpp:
74102        (WebCore::RenderBlock::paintColumnRules):
74103
741042013-02-13  Philip Rogers  <pdr@google.com>
74105
74106        Replace SVG bitmap cache with directly-rendered SVG
74107        https://bugs.webkit.org/show_bug.cgi?id=106159
74108
74109        Reviewed by Tim Horton.
74110
74111        This patch removes the caching of SVG bitmaps so SVG images are rendered directly. This
74112        enables WebKit to pass the IE Chalkboard demo in 10s on a Z620:
74113        http://ie.microsoft.com/testdrive/Performance/Chalkboard/
74114
74115        On a simple scaled SVG benchmark similar to the IE10 Chalkboard demo
74116        (http://philbit.com/SvgImagePerformance/viewport.html):
74117            without patch: ~20FPS
74118            with patch: ~55FPS
74119
74120        The bitmap SVG image cache had several shortcomings:
74121            - The bitmap cache prevented viewport rendering. (WK104693)
74122            - Bitmap memory usage was high. (WK106484)
74123            - Caching animating images was expensive.
74124
74125        This change removes almost all of the SVGImageCache implementation, replacing it with
74126        directly-rendered SVG. Instead of caching bitmaps, an SVGImageForContainer is cached which
74127        is a thin wrapper around an SVG image with the associated container size and scale.
74128        When rendering patterns (e.g., tiled backgrounds), a temporary bitmap is used for
74129        performance. This change also removes the redraw timer of the old cache, instead relying
74130        on the SVG image to notify clients if the image changes (e.g., during animations).
74131
74132        This patch fixes two existing bugs (WK99481 and WK104189) that were due to caching bitmaps
74133        at a fixed size. A test has been added for each of these bugs.
74134
74135        Tests: svg/as-image/svg-image-scaled.html
74136               svg/as-image/svg-image-viewbox.html
74137
74138        * CMakeLists.txt:
74139        * GNUmakefile.list.am:
74140        * Target.pri:
74141        * WebCore.gypi:
74142        * WebCore.vcproj/WebCore.vcproj:
74143        * WebCore.xcodeproj/project.pbxproj:
74144        * loader/cache/CachedImage.cpp:
74145        (WebCore::CachedImage::lookupOrCreateImageForRenderer):
74146        (WebCore::CachedImage::setContainerSizeForRenderer):
74147        (WebCore::CachedImage::clear):
74148        (WebCore::CachedImage::changedInRect):
74149
74150            SVG images are no longer special-cased here. When the SVG image changes, users are
74151            notified through this function, and users can then request their content to be redrawn.
74152
74153        * svg/graphics/SVGImage.cpp:
74154        (WebCore::SVGImage::setContainerSize):
74155        (WebCore::SVGImage::drawForContainer):
74156
74157            drawForContainer lays out the SVG content for a specific container size and renders it.
74158            The logic is fairly straightforward but a note about the scales and zooms here:
74159                the destination rect parameter is zoomed but not scaled
74160                the source rect parameter is zoomed but not scaled
74161                the context is scaled but not zoomed
74162            SVGImage::draw(...) only accepts a source and destination rect but does not consider
74163            scale or zoom. Therefore, drawForContainer removes the zoom component from the source
74164            so SVGImage::draw(...) will draw from the pre-zoom source to the post-zoom destination.
74165
74166        (WebCore::SVGImage::drawPatternForContainer):
74167
74168            For performance, drawPatternForContainer renders the SVG content onto a bitmap, then
74169            has the bitmap image draw the pattern. This is necessary because drawPattern is used
74170            for tiling.
74171
74172        (WebCore):
74173        (WebCore::SVGImage::startAnimation):
74174        (WebCore::SVGImage::stopAnimation):
74175        (WebCore::SVGImage::resetAnimation):
74176        (WebCore::SVGImage::reportMemoryUsage):
74177        * svg/graphics/SVGImage.h:
74178        (WebCore):
74179        (SVGImage):
74180        * svg/graphics/SVGImageCache.cpp:
74181
74182            Instead of storing a SizeAndScales values for each renderer, a SVGImageForContainer
74183            is stored which is just a thin wrapper around an SVG image that contains container
74184            sizing information. By combining the image and size information, the two maps of
74185            SVGImageCache have been merged into one.
74186
74187            To make this patch easier to review, SVGImageCache still exists and works similar to
74188            how it did before the patch. Now, SVGImageCache simply stores the SVGImageForContainers.
74189            In a followup patch it will be removed.
74190
74191            Note: the redraw timer of SVGImageCache has been removed because animation
74192            invalidation is now properly propagated back to the image clients.
74193
74194        (WebCore):
74195        (WebCore::SVGImageCache::SVGImageCache):
74196        (WebCore::SVGImageCache::~SVGImageCache):
74197        (WebCore::SVGImageCache::removeClientFromCache):
74198        (WebCore::SVGImageCache::setContainerSizeForRenderer):
74199        (WebCore::SVGImageCache::imageSizeForRenderer):
74200
74201            Previously, this function returned the scaled image size which was incorrect. The image
74202            size is used by clients such as GraphicsContext2D to determine the source size
74203            for drawing the image. draw() accepts zoomed but not scaled values, so this has been
74204            changed.
74205
74206        (WebCore::SVGImageCache::imageForRenderer):
74207
74208            A FIXME has been added here to not set the scale on every lookup. This can be improved
74209            by setting the page scale factor in setContainerSizeForRenderer() in a future patch.
74210
74211        * svg/graphics/SVGImageCache.h:
74212        (WebCore):
74213        (SVGImageCache):
74214        * svg/graphics/SVGImageForContainer.cpp: Added.
74215        (WebCore):
74216
74217            SVGImageForContainer is a thin wrapper around an SVG image. The lifetime of the
74218            SVGImage will be longer than the image cache.
74219
74220        (WebCore::SVGImageForContainer::size):
74221
74222            This is the only logic in SVGImageForContainer. The size returned needs to be zoomed
74223            but not scaled because it is used (e.g., by RenderImage) to pass back into draw() which
74224            takes zoomed but not scaled values.
74225
74226        (WebCore::SVGImageForContainer::draw):
74227        (WebCore::SVGImageForContainer::drawPattern):
74228        * svg/graphics/SVGImageForContainer.h: Added.
74229        (WebCore):
74230        (SVGImageForContainer):
74231
74232            In a future patch SVGImageForContainer can be made immutable but without a refactoring
74233            for not setting the page scale factor in SVGImageCache::lookupOrCreateImageForRenderer,
74234            setters are needed.
74235
74236        (WebCore::SVGImageForContainer::create):
74237        (WebCore::SVGImageForContainer::containerSize):
74238        (WebCore::SVGImageForContainer::pageScale):
74239        (WebCore::SVGImageForContainer::zoom):
74240        (WebCore::SVGImageForContainer::setSize):
74241        (WebCore::SVGImageForContainer::setZoom):
74242        (WebCore::SVGImageForContainer::setPageScale):
74243        (WebCore::SVGImageForContainer::SVGImageForContainer):
74244        (WebCore::SVGImageForContainer::destroyDecodedData):
74245        (WebCore::SVGImageForContainer::decodedSize):
74246
742472013-02-12  Antti Koivisto  <antti@apple.com>
74248
74249        Avoid updating timer heap when nothing changes
74250        https://bugs.webkit.org/show_bug.cgi?id=109630
74251
74252        Reviewed by Andreas Kling.
74253
74254        When the fire time of a Timer is changed we remove it from the timer heap and reinsert it. This is pretty slow. 
74255        Turns out that in ~80% of cases we are already in the heap and the insertion position is the same as the 
74256        original position. We can check if anything is actually going to change before doing this work.
74257        
74258        This makes starting a timer ~30% faster in average, ~0.1% progression in PLT3.
74259        
74260        * platform/Timer.cpp:
74261        (TimerHeapLessThanFunction):
74262        (WebCore::TimerHeapLessThanFunction::operator()):
74263        (WebCore::parentHeapPropertyHolds):
74264        (WebCore):
74265        (WebCore::childHeapPropertyHolds):
74266        (WebCore::TimerBase::hasValidHeapPosition):
74267        
74268            The code here assumes that STL heap is a normal binary heap. If there is a different implementation
74269            somewhere the assertions will catch it.
74270
74271        (WebCore::TimerBase::updateHeapIfNeeded):
74272        
74273            Skip updating the heap if it is already valid.
74274
74275        (WebCore::TimerBase::setNextFireTime):
74276        * platform/Timer.h:
74277        (TimerBase):
74278
742792013-02-13  Martin Robinson  <mrobinson@igalia.com>
74280
74281        [GTK] Remove remaining dead code from the GLib unicode backend
74282        https://bugs.webkit.org/show_bug.cgi?id=109707
74283
74284        Reviewed by Philippe Normand.
74285
74286        * platform/KURL.cpp:
74287        (WebCore::appendEncodedHostname):
74288        * platform/text/TextEncoding.cpp:
74289        (WebCore::TextEncoding::encode):
74290        * platform/text/TextEncodingRegistry.cpp:
74291        (WebCore::buildBaseTextCodecMaps):
74292        (WebCore::extendTextCodecMaps):
74293
742942013-02-13  Xianzhu Wang  <wangxianzhu@chromium.org>
74295
74296        Heap-use-after-free in WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects
74297        https://bugs.webkit.org/show_bug.cgi?id=108695
74298
74299        See comments of RenderLayerModelObject::willBeDestroyed() below for details.
74300
74301        Reviewed by Abhishek Arya.
74302
74303        Test: ManulTests/scrolling-coordinator-viewport-constrained-crash.html
74304        Unable to write a normal layout test because
74305        1) must waitUntilDone() to reproduce the crash but the redirected URL can't notifyDone();
74306        2) Can't use a frame to contain the test because ScrollingCoordinator handles only the main frame.
74307
74308        * rendering/RenderBoxModelObject.cpp:
74309        (WebCore::RenderBoxModelObject::willBeDestroyed): Moved removeViewportConstrainedObject() call into RenderLayerModelObject::willBeDestroyed() because only RenderLayerModelObjects can be added as viewportConstrainedObjects.
74310        * rendering/RenderLayerModelObject.cpp:
74311        (WebCore::RenderLayerModelObject::willBeDestroyed): Changed this->view() (then view->frameView()) to this->frame() (then frame->view()) because when willBeDestroyed() is called, the document has set its renderView to 0 thus this->view() will return 0, causing removeViewportConstrainedObject() not called and a deleted RenderLayerModelObject in FrameView's viewportConstrainedObjects.
74312
743132013-02-13  Florin Malita  <fmalita@chromium.org>
74314
74315        [SVG] OOB access in SVGListProperty::replaceItemValues()
74316        https://bugs.webkit.org/show_bug.cgi?id=109293
74317
74318        Replacing a list property item with itself should be a no-op. This patch updates the related
74319        APIs and logic to detect the self-replace case and prevent removal of the item from the list.
74320
74321        To avoid scanning the list multiple times, removeItemFromList() is updated to operate on
74322        indices and a findItem() method is added to resolve an item to an index.
74323
74324        Reviewed by Dirk Schulze.
74325
74326        No new tests: updated existing tests cover the change.
74327
74328        * svg/properties/SVGAnimatedListPropertyTearOff.h:
74329        (WebCore::SVGAnimatedListPropertyTearOff::findItem):
74330        (SVGAnimatedListPropertyTearOff):
74331        (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
74332        * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
74333        (WebCore::SVGAnimatedPathSegListPropertyTearOff::findItem):
74334        (SVGAnimatedPathSegListPropertyTearOff):
74335        (WebCore::SVGAnimatedPathSegListPropertyTearOff::removeItemFromList):
74336        Add a findItem() delegating method, and update removeItemFromList() to use the new
74337        index-based API.
74338
74339        * svg/properties/SVGListProperty.h:
74340        (WebCore::SVGListProperty::insertItemBeforeValues):
74341        (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
74342        (WebCore::SVGListProperty::replaceItemValues):
74343        (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
74344        (SVGListProperty):
74345        Updated to handle the no-op case for insertItemBefore() & replaceItem().
74346
74347        * svg/properties/SVGListPropertyTearOff.h:
74348        (WebCore::SVGListPropertyTearOff::findItem):
74349        (WebCore::SVGListPropertyTearOff::removeItemFromList):
74350        Index-based API updates.
74351
74352        (WebCore::SVGListPropertyTearOff::processIncomingListItemValue):
74353        (WebCore::SVGListPropertyTearOff::processIncomingListItemWrapper):
74354        * svg/properties/SVGPathSegListPropertyTearOff.cpp:
74355        (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemValue):
74356        Detect the self-replace case and return without removing the item from the list.
74357
74358        * svg/properties/SVGPathSegListPropertyTearOff.h:
74359        (WebCore::SVGPathSegListPropertyTearOff::findItem):
74360        (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
74361        (SVGPathSegListPropertyTearOff):
74362        (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemWrapper):
74363        * svg/properties/SVGStaticListPropertyTearOff.h:
74364        (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemValue):
74365        (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemWrapper):
74366        Index-based API updates.
74367
743682013-02-13  Takashi Sakamoto  <tasak@google.com>
74369
74370        [Refactoring] StyleResolver::State should have methods to access its member variables.
74371        https://bugs.webkit.org/show_bug.cgi?id=108563
74372
74373        Reviewed by Antti Koivisto.
74374
74375        Made all member variables private and added methods to access the
74376        variables, because most of the member variables are read-only.
74377        We don't need to update those read-only variables while resolving
74378        styles.
74379
74380        No new tests, because just refactoring.
74381
74382        * css/SVGCSSStyleSelector.cpp:
74383        (WebCore::StyleResolver::applySVGProperty):
74384        * css/StyleResolver.cpp:
74385        (WebCore):
74386        (WebCore::StyleResolver::collectMatchingRules):
74387        (WebCore::StyleResolver::collectMatchingRulesForRegion):
74388        (WebCore::StyleResolver::sortAndTransferMatchedRules):
74389        (WebCore::StyleResolver::matchScopedAuthorRules):
74390        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
74391        (WebCore::StyleResolver::matchHostRules):
74392        (WebCore::StyleResolver::matchAuthorRules):
74393        (WebCore::StyleResolver::matchUserRules):
74394        (WebCore::StyleResolver::matchUARules):
74395        (WebCore::StyleResolver::collectMatchingRulesForList):
74396        (WebCore::StyleResolver::sortMatchedRules):
74397        (WebCore::StyleResolver::matchAllRules):
74398        (WebCore::StyleResolver::State::initElement):
74399        (WebCore::StyleResolver::initElement):
74400        Modified to invoke m_state.initElement if a given element is
74401        different from current m_state's element.
74402        (WebCore::StyleResolver::State::initForStyleResolve):
74403        Moved from StyleResolver.
74404        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
74405        (WebCore::StyleResolver::canShareStyleWithControl):
74406        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
74407        (WebCore::StyleResolver::canShareStyleWithElement):
74408        (WebCore::StyleResolver::locateSharedStyle):
74409        (WebCore::StyleResolver::styleForElement):
74410        (WebCore::StyleResolver::styleForKeyframe):
74411        (WebCore::StyleResolver::keyframeStylesForAnimation):
74412        (WebCore::StyleResolver::pseudoStyleForElement):
74413        Changed ASSERT in the first line. ASSERT(m_state.parentStyle) would be
74414        wrong, because it depends on previous resolving. However,
74415        initForStyleResolve will also update m_state.parentStyle. No code in
74416        pseudoStyleForElement depends on previous resolving state.
74417        (WebCore::StyleResolver::styleForPage):
74418        (WebCore::StyleResolver::defaultStyleForElement):
74419        (WebCore::StyleResolver::adjustRenderStyle):
74420        (WebCore::StyleResolver::updateFont):
74421        (WebCore::StyleResolver::pseudoStyleRulesForElement):
74422        (WebCore::StyleResolver::ruleMatches):
74423        Added one more parameter, dynamicPseudo, because dynamicPseudo in
74424        State class is just used for returning matched pseudo style from
74425        this ruleMatches to collectMatchingRulesForList. No need to keep
74426        dynamicPseudo while resolving styles.
74427        (WebCore::StyleResolver::checkRegionSelector):
74428        Removed m_pseudoStyle = NOPSEUDO, because this method uses just
74429        SelectorChecker::matched. SelectorChecker doesn't see StyleResolver's
74430        m_pseudoStyle directly. Need to use SelectorCheckerContext. So no
74431        need to set m_pseudoStyle to be NOPSEUDO.
74432        (WebCore::StyleResolver::applyProperties):
74433        (WebCore::StyleResolver::applyMatchedProperties):
74434        (WebCore::StyleResolver::isLeftPage):
74435        (WebCore::StyleResolver::applyPropertyToStyle):
74436        (WebCore::StyleResolver::useSVGZoomRules):
74437        (WebCore::createGridTrackBreadth):
74438        (WebCore::StyleResolver::resolveVariables):
74439        (WebCore::StyleResolver::applyProperty):
74440        (WebCore::StyleResolver::cachedOrPendingFromValue):
74441        (WebCore::StyleResolver::generatedOrPendingFromValue):
74442        (WebCore::StyleResolver::setOrPendingFromValue):
74443        (WebCore::StyleResolver::cursorOrPendingFromValue):
74444        (WebCore::StyleResolver::checkForTextSizeAdjust):
74445        (WebCore::StyleResolver::initializeFontStyle):
74446        (WebCore::StyleResolver::setFontSize):
74447        (WebCore::StyleResolver::colorFromPrimitiveValue):
74448        (WebCore::StyleResolver::loadPendingSVGDocuments):
74449        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
74450        (WebCore::StyleResolver::loadPendingShaders):
74451        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
74452        (WebCore::StyleResolver::createFilterOperations):
74453        (WebCore::StyleResolver::loadPendingImage):
74454        (WebCore::StyleResolver::loadPendingImages):
74455        * css/StyleResolver.h:
74456        (WebCore::StyleResolver::style):
74457        (WebCore::StyleResolver::parentStyle):
74458        (WebCore::StyleResolver::rootElementStyle):
74459        (WebCore::StyleResolver::element):
74460        (WebCore::StyleResolver::hasParentNode):
74461        (StyleResolver):
74462        (WebCore::StyleResolver::State::State):
74463        (State):
74464        (WebCore::StyleResolver::State::clear):
74465        Modified to use clear at the end of styleForElement.
74466        (WebCore::StyleResolver::State::document):
74467        (WebCore::StyleResolver::State::element):
74468        (WebCore::StyleResolver::State::styledElement):
74469        (WebCore::StyleResolver::State::setStyle):
74470        (WebCore::StyleResolver::State::style):
74471        (WebCore::StyleResolver::State::takeStyle):
74472        (WebCore::StyleResolver::State::ensureRuleList):
74473        (WebCore::StyleResolver::State::takeRuleList):
74474        (WebCore::StyleResolver::State::parentNode):
74475        (WebCore::StyleResolver::State::setParentStyle):
74476        (WebCore::StyleResolver::State::parentStyle):
74477        (WebCore::StyleResolver::State::rootElementStyle):
74478        (WebCore::StyleResolver::State::regionForStyling):
74479        (WebCore::StyleResolver::State::setSameOriginOnly):
74480        (WebCore::StyleResolver::State::isSameOriginOnly):
74481        (WebCore::StyleResolver::State::pseudoStyle):
74482        (WebCore::StyleResolver::State::elementLinkState):
74483        (WebCore::StyleResolver::State::distributedToInsertionPoint):
74484        (WebCore::StyleResolver::State::setElementAffectedByClassRules):
74485        (WebCore::StyleResolver::State::elementAffectedByClassRules):
74486        (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle):
74487        (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
74488        (WebCore::StyleResolver::State::applyPropertyToRegularStyle):
74489        (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
74490        (WebCore::StyleResolver::State::pendingImageProperties):
74491        (WebCore::StyleResolver::State::pendingSVGDocuments):
74492        (WebCore::StyleResolver::State::setHasPendingShaders):
74493        (WebCore::StyleResolver::State::hasPendingShaders):
74494        (WebCore::StyleResolver::State::setLineHeightValue):
74495        (WebCore::StyleResolver::State::lineHeightValue):
74496        (WebCore::StyleResolver::State::setFontDirty):
74497        (WebCore::StyleResolver::State::fontDirty):
74498        (WebCore::StyleResolver::State::cacheBorderAndBackground):
74499        (WebCore::StyleResolver::State::hasUAAppearance):
74500        (WebCore::StyleResolver::State::borderData):
74501        (WebCore::StyleResolver::State::backgroundData):
74502        (WebCore::StyleResolver::State::backgroundColor):
74503        (WebCore::StyleResolver::State::fontDescription):
74504        (WebCore::StyleResolver::State::parentFontDescription):
74505        (WebCore::StyleResolver::State::setFontDescription):
74506        (WebCore::StyleResolver::State::setZoom):
74507        (WebCore::StyleResolver::State::setEffectiveZoom):
74508        (WebCore::StyleResolver::State::setTextSizeAdjust):
74509        (WebCore::StyleResolver::State::setWritingMode):
74510        (WebCore::StyleResolver::State::setTextOrientation):
74511        fontDescription, ... and setTextOrientation were moved from
74512        StyleResolver.
74513        (WebCore::StyleResolver::State::matchedRules):
74514        (WebCore::StyleResolver::State::addMatchedRule):
74515        Moved from StyleResolver.
74516        (WebCore::StyleResolver::applyPropertyToRegularStyle):
74517        (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
74518        (WebCore::StyleResolver::fontDescription):
74519        (WebCore::StyleResolver::parentFontDescription):
74520        (WebCore::StyleResolver::setFontDescription):
74521        (WebCore::StyleResolver::setZoom):
74522        (WebCore::StyleResolver::setEffectiveZoom):
74523        (WebCore::StyleResolver::setTextSizeAdjust):
74524        (WebCore::StyleResolver::setWritingMode):
74525        (WebCore::StyleResolver::setTextOrientation):
74526        These fontDescription, ..., setTextOrientation are wrappers to
74527        invoke State's methods. StyleBuilder still depends on StyleResolver
74528        and invokes these methods. So we need these wrappers.
74529
745302013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
74531
74532        [Qt] window.open passes height and width parameters even if not defined in a page
74533        https://bugs.webkit.org/show_bug.cgi?id=107705
74534
74535        Reviewed by Kenneth Rohde Christiansen.
74536
74537        Do not override width or height of 0, as that indicates default size, and not minimum size.
74538
74539        Tested by tst_qwebpage.
74540
74541        * page/DOMWindow.cpp:
74542        (WebCore::DOMWindow::adjustWindowRect):
74543
745442013-02-13  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
74545
74546        The 2D Canvas functions fillText()/strokeText() should display nothing when maxWidth is less then or equal to zero
74547        https://bugs.webkit.org/show_bug.cgi?id=102656
74548
74549        Reviewed by Dirk Schulze.
74550
74551        The functions fillText()/strokeText() should not display anything when 
74552        maxWidth is less than or equal to zero, according to spec :
74553        http://www.w3.org/TR/2dcontext/#text-preparation-algorithm
74554
74555        Test: fast/canvas/canvas-fillText-maxWidth-zero.html
74556
74557        * html/canvas/CanvasRenderingContext2D.cpp:
74558        (WebCore::CanvasRenderingContext2D::drawTextInternal):
74559
745602013-02-13  ChangSeok Oh  <shivamidow@gmail.com>
74561
74562        [GTK][AC] Implement basic transform animations with clutter ac backend
74563        https://bugs.webkit.org/show_bug.cgi?id=109363
74564
74565        Reviewed by Gustavo Noronha Silva.
74566
74567        Implement basic transform animation with clutter ac backend.
74568        GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
74569        interfaces are also similar with PlatformCAAnimation, but they are implemented
74570        with native clutter APIs. Clutter backend AC supports a basic single transform animation
74571        with this patch now, but additive animation combination and keyframe animation
74572        are not supported yet.
74573
74574        Covered by existing animation tests.
74575
74576        * platform/graphics/clutter/GraphicsLayerActor.cpp:
74577        (graphicsLayerActorSetTransform):
74578        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
74579        (WebCore::isTransformTypeTransformationMatrix):
74580        (WebCore):
74581        (WebCore::isTransformTypeFloatPoint3D):
74582        (WebCore::isTransformTypeNumber):
74583        (WebCore::getTransformFunctionValue):
74584        (WebCore::getValueFunctionNameForTransformOperation):
74585        (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
74586        (WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
74587        (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
74588        * platform/graphics/clutter/GraphicsLayerClutter.h:
74589        (GraphicsLayerClutter):
74590        * platform/graphics/clutter/PlatformClutterAnimation.cpp:
74591        (WebCore::toClutterActorPropertyString):
74592        (WebCore):
74593        (WebCore::PlatformClutterAnimation::supportsValueFunction):
74594        (WebCore::PlatformClutterAnimation::duration):
74595        (WebCore::PlatformClutterAnimation::setDuration):
74596        (WebCore::PlatformClutterAnimation::setAdditive):
74597        (WebCore::PlatformClutterAnimation::valueFunction):
74598        (WebCore::PlatformClutterAnimation::setValueFunction):
74599        (WebCore::PlatformClutterAnimation::setFromValue):
74600        (WebCore::PlatformClutterAnimation::setToValue):
74601        (WebCore::PlatformClutterAnimation::timeline):
74602        (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
74603        (WebCore::PlatformClutterAnimation::addOpacityTransition):
74604        (WebCore::PlatformClutterAnimation::addTransformTransition):
74605        (WebCore::PlatformClutterAnimation::addAnimationForKey):
74606        * platform/graphics/clutter/PlatformClutterAnimation.h:
74607        (PlatformClutterAnimation):
74608
746092013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
74610
74611        Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
74612        https://bugs.webkit.org/show_bug.cgi?id=109554
74613
74614        In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
74615        can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
74616
74617        Drive by fix: I introduced a client interface for the HeapGraphSerializer.
74618        It helps me to do the tests for the serializer.
74619
74620        Reviewed by Yury Semikhatsky.
74621
74622        It is covered by newly added tests in TestWebKitAPI.
74623
74624        * inspector/HeapGraphSerializer.cpp:
74625        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
74626        (WebCore::HeapGraphSerializer::pushUpdate):
74627        (WebCore::HeapGraphSerializer::reportNode):
74628        (WebCore::HeapGraphSerializer::toNodeId):
74629        (WebCore::HeapGraphSerializer::addRootNode):
74630        * inspector/HeapGraphSerializer.h:
74631        (HeapGraphSerializer):
74632        (Client):
74633        (WebCore::HeapGraphSerializer::Client::~Client):
74634        * inspector/InspectorMemoryAgent.cpp:
74635        (WebCore):
74636        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
74637
746382013-02-13  Yury Semikhatsky  <yurys@chromium.org>
74639
74640        Web Inspector: add experimental native heap graph to Timeline panel
74641        https://bugs.webkit.org/show_bug.cgi?id=109687
74642
74643        Reviewed by Alexander Pavlov.
74644
74645        Added experimentatl support for native heap graph on the Timeline panel.
74646        Native memory usage data is collected after each top level task and can
74647        be displayed instead of DOM counters graph on the Timeline panel if
74648        corresponding experiment is enabled in the inspector settings.
74649
74650        * inspector/Inspector.json:
74651        * inspector/InspectorController.cpp:
74652        (WebCore::InspectorController::InspectorController):
74653        * inspector/InspectorTimelineAgent.cpp:
74654        (TimelineAgentState):
74655        (WebCore::InspectorTimelineAgent::setIncludeDomCounters):
74656        (WebCore):
74657        (WebCore::InspectorTimelineAgent::setIncludeNativeMemoryStatistics):
74658        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
74659        (WebCore::InspectorTimelineAgent::setDOMCounters):
74660        (WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
74661        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
74662        * inspector/InspectorTimelineAgent.h:
74663        (WebCore):
74664        (WebCore::InspectorTimelineAgent::create):
74665        (InspectorTimelineAgent):
74666        * inspector/WorkerInspectorController.cpp:
74667        (WebCore::WorkerInspectorController::WorkerInspectorController):
74668        * inspector/front-end/MemoryStatistics.js:
74669        (WebInspector.MemoryStatistics):
74670        * inspector/front-end/NativeMemoryGraph.js:
74671        (WebInspector.NativeMemoryGraph):
74672        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
74673        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
74674        * inspector/front-end/Settings.js:
74675        (WebInspector.ExperimentsSettings):
74676        * inspector/front-end/TimelinePanel.js:
74677
746782013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>
74679
74680        Web Inspector: Fixed colorpicker editing and scrolling.
74681        https://bugs.webkit.org/show_bug.cgi?id=109434.
74682
74683        Reviewed by Alexander Pavlov.
74684
74685        The color picker scrolling logic relied on the fixed DOM structure which changed with the introduction of
74686        SidebarPaneStack (https://bugs.webkit.org/show_bug.cgi?id=108183).
74687        Added a special CSS class to mark the scroll target.
74688
74689        No new tests.
74690
74691        * inspector/front-end/SplitView.js:
74692        (WebInspector.SplitView):
74693        * inspector/front-end/StylesSidebarPane.js:
74694        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
74695        * inspector/front-end/TabbedPane.js:
74696        (WebInspector.TabbedPane):
74697 
746982013-02-13  Andrey Lushnikov  <lushnikov@chromium.org>
74699
74700        Web Inspector: fix js compilation warnings in TextPrompt
74701        https://bugs.webkit.org/show_bug.cgi?id=109685
74702
74703        Reviewed by Alexander Pavlov.
74704
74705        Mark last argument of _applySuggestion function as optional.
74706
74707        No new tests: no change in behaviour.
74708
74709        * inspector/front-end/TextPrompt.js:
74710
747112013-02-13  Pablo Flouret  <pablof@motorola.com>
74712
74713        Implement css-conditional's CSS.supports()
74714        https://bugs.webkit.org/show_bug.cgi?id=100324
74715
74716        Reviewed by Antti Koivisto.
74717
74718        http://dev.w3.org/csswg/css3-conditional/#the-css-interface
74719
74720        The supports() method provides the css @supports rule's corresponding
74721        dom api.
74722        The patch also adds the CSS interface on DOMWindow, which holds "useful
74723        CSS-related functions that do not belong elsewhere". This is where
74724        supports() lives.
74725
74726        Test: css3/supports-dom-api.html
74727
74728        * CMakeLists.txt:
74729        * DerivedSources.cpp:
74730        * DerivedSources.make:
74731        * DerivedSources.pri:
74732        * GNUmakefile.list.am:
74733        * Target.pri:
74734        * WebCore.exp.in:
74735        * WebCore.gypi:
74736        * WebCore.vcproj/WebCore.vcproj:
74737        * WebCore.xcodeproj/project.pbxproj:
74738        * bindings/gobject/GNUmakefile.am:
74739        * bindings/scripts/CodeGeneratorGObject.pm:
74740        (SkipFunction):
74741            Add DOMWindowCSS.* to the build systems.
74742
74743        * bindings/scripts/CodeGenerator.pm:
74744        (WK_lcfirst):
74745            Handle CSS prefixes correctly (s/cSS/css/).
74746
74747        * css/CSSGrammar.y.in:
74748        * css/CSSParser.cpp:
74749        (WebCore::CSSParser::CSSParser):
74750        (WebCore::CSSParser::parseSupportsCondition):
74751        (WebCore::CSSParser::detectAtToken):
74752        * css/CSSParser.h:
74753            webkit_supports_condition parses just the condition part of an
74754            @supports rule and evaluates it, outputting whether the condition
74755            is supported or not.
74756
74757        * css/CSSAllInOne.cpp:
74758        * css/DOMWindowCSS.cpp: Added.
74759        * css/DOMWindowCSS.h: Added.
74760        * css/DOMWindowCSS.idl: Added.
74761            The CSS interface object.
74762
74763        * page/DOMWindow.cpp:
74764        (WebCore::DOMWindow::css):
74765        * page/DOMWindow.h:
74766        * page/DOMWindow.idl:
74767            window.CSS
74768
747692013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>
74770
74771        Web Inspector: Simplify SplitView to rely more on CSS
74772        https://bugs.webkit.org/show_bug.cgi?id=109426
74773
74774        Reviewed by Vsevolod Vlasov.
74775
74776        Simplified Javascript code by moving large part of the layout logic into CSS rules. The patch is larger than it
74777        should be because one of the clients (TimelinePanel) is breaking SplitView incapsulation by reparenting its
74778        resizer.
74779
74780        No new tests.
74781
74782        * inspector/front-end/SidebarView.js:
74783        (WebInspector.SidebarView):
74784        * inspector/front-end/SplitView.js:
74785        (WebInspector.SplitView):
74786        (WebInspector.SplitView.prototype._innerSetVertical):
74787        (WebInspector.SplitView.prototype.setSecondIsSidebar):
74788        (WebInspector.SplitView.prototype._showOnly):
74789        (WebInspector.SplitView.prototype._removeAllLayoutProperties):
74790        * inspector/front-end/TimelinePanel.js:
74791        * inspector/front-end/cssNamedFlows.css:
74792        (.css-named-flow-collections-view .split-view-sidebar):
74793        (.css-named-flow-collections-view .split-view-sidebar .sidebar-content):
74794        (.css-named-flow-collections-view .split-view-sidebar .selection):
74795        (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
74796        (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before):
74797        * inspector/front-end/splitView.css:
74798        (.split-view-contents.maximized):
74799        (.split-view-vertical .split-view-contents):
74800        (.split-view-vertical .split-view-contents-first):
74801        (.split-view-vertical .split-view-contents-first.maximized):
74802        (.split-view-vertical .split-view-contents-second):
74803        (.split-view-vertical .split-view-contents-second.maximized):
74804        (.split-view-horizontal .split-view-contents):
74805        (.split-view-horizontal .split-view-contents-first):
74806        (.split-view-horizontal .split-view-contents-first.maximized):
74807        (.split-view-horizontal .split-view-contents-second):
74808        (.split-view-horizontal .split-view-contents-second.maximized):
74809        (.split-view-vertical .split-view-sidebar.split-view-contents-first:not(.maximized)):
74810        (.split-view-vertical .split-view-sidebar.split-view-contents-second:not(.maximized)):
74811        (.split-view-horizontal .split-view-sidebar.split-view-contents-first:not(.maximized)):
74812        (.split-view-horizontal .split-view-sidebar.split-view-contents-second:not(.maximized)):
74813        (.split-view-vertical .split-view-resizer):
74814        (.split-view-horizontal .split-view-resizer):
74815        * inspector/front-end/timelinePanel.css:
74816        (.timeline.split-view-vertical .split-view-resizer):
74817        (#timeline-container .split-view-sidebar):
74818
748192013-02-13  Kentaro Hara  <haraken@chromium.org>
74820
74821        Unreviewed, rolling out r142730.
74822        http://trac.webkit.org/changeset/142730
74823        https://bugs.webkit.org/show_bug.cgi?id=109666
74824
74825        chromium browser tests are failing
74826
74827        * bindings/scripts/CodeGeneratorV8.pm:
74828        (GenerateNormalAttrGetter):
74829        (GenerateNormalAttrSetter):
74830        (GenerateSingleBatchedAttribute):
74831        (GenerateImplementation):
74832        * bindings/scripts/test/V8/V8TestInterface.cpp:
74833        (TestInterfaceV8Internal):
74834        (WebCore):
74835        * bindings/scripts/test/V8/V8TestObj.cpp:
74836        (WebCore):
74837
748382013-02-13  Tamas Czene  <tczene@inf.u-szeged.hu>
74839
74840        OpenCL implementation of Flood SVG filters.
74841        https://bugs.webkit.org/show_bug.cgi?id=109580
74842
74843        Reviewed by Zoltan Herczeg.
74844
74845        * Target.pri:
74846        * platform/graphics/filters/FEFlood.h:
74847        (FEFlood):
74848        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
74849        (WebCore):
74850        (WebCore::PROGRAM_STR):
74851        (WebCore::FilterContextOpenCL::compileFill):
74852        (WebCore::FilterContextOpenCL::fill):
74853        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
74854        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
74855        (FilterContextOpenCL):
74856        * platform/graphics/gpu/opencl/OpenCLFEFlood.cpp: Added.
74857        (WebCore):
74858        (WebCore::FEFlood::platformApplyOpenCL):
74859
748602013-02-13  Mike West  <mkwst@chromium.org>
74861
74862        location.href does not throw SECURITY_ERR when accessed across origins with JSC bindings
74863        https://bugs.webkit.org/show_bug.cgi?id=43891
74864
74865        Reviewed by Adam Barth.
74866
74867        Other browsers (IE, Firefox, and Opera) throw an exception when accessing
74868        properties of a Location object across origins, as the spec suggests[1].
74869        WebKit is currently the outlier.
74870
74871        This has a few negative effects: developers are forced to hack around
74872        access violations in two ways rather than having a single code path, and
74873        (more annoyingly) developers are unable to avoid generating the error
74874        message. See every ad on the internet for the effect on the console. :)
74875
74876        This patch adds a SECURITY_ERR exception to these access violations,
74877        which is the first step towards getting rid of the console spam. Getting
74878        rid of the message entirely will require a solution to
74879        http://wkbug.com/98050.
74880
74881        A fairly inconclusive thread[2] on webkit-dev popped up in 2010 and
74882        trailed off without reaching conclusion. A more recent thread reached
74883        agreement that this patch seems like a reasonable thing to do[3].
74884
74885        This is the JSC half of the patch. V8 is coming in http://wkbug.com/43892
74886
74887        [1]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location
74888        [2]: https://lists.webkit.org/pipermail/webkit-dev/2010-August/013880.html
74889        [2]: https://lists.webkit.org/pipermail/webkit-dev/2012-February/023636.html
74890
74891        * bindings/js/JSLocationCustom.cpp:
74892        (WebCore::JSLocation::getOwnPropertySlotDelegate):
74893
748942013-02-13  Andrew Wilson  <atwilson@chromium.org>
74895
74896        Unreviewed Chromium gyp-file cleanup after glib backend removal.
74897        https://bugs.webkit.org/show_bug.cgi?id=109672
74898
74899        Removed references to GLib unicode backend:
74900
74901        * WebCore.gypi:
74902
749032013-02-12  Kentaro Hara  <haraken@chromium.org>
74904
74905        [V8] Generate wrapper methods for custom getters/setters
74906        https://bugs.webkit.org/show_bug.cgi?id=109666
74907
74908        Reviewed by Adam Barth.
74909
74910        Currently V8 directly calls back custom getters/setters written
74911        in custom binding files. This makes it impossible for code generators
74912        to hook custom getters/setters (e.g. Code generators cannot insert a code
74913        for FeatureObservation into custom getters/setters). We should generate
74914        wrapper methods for custom getters/setters.
74915
74916        In the future, I will insert TRACE_EVENT() macros into these wrapper methods
74917        to profile DOM getters/setters/methods.
74918
74919        * bindings/scripts/CodeGeneratorV8.pm:
74920        (GenerateNormalAttrGetter):
74921        (GenerateNormalAttrSetter):
74922        (GenerateSingleBatchedAttribute):
74923        (GenerateImplementation):
74924        * bindings/scripts/test/V8/V8TestInterface.cpp:
74925        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
74926        (TestInterfaceV8Internal):
74927        (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
74928        (WebCore):
74929        * bindings/scripts/test/V8/V8TestObj.cpp:
74930        (WebCore::TestObjV8Internal::customAttrAttrGetter):
74931        (TestObjV8Internal):
74932        (WebCore::TestObjV8Internal::customAttrAttrSetter):
74933        (WebCore):
74934
749352013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>
74936
74937        Unreviewed, rolling out r142611.
74938        http://trac.webkit.org/changeset/142611
74939        https://bugs.webkit.org/show_bug.cgi?id=109668
74940
74941        Suggest box is not shown anymore when user types "window." in
74942        inspector console. (Requested by vsevik on #webkit).
74943
74944        * inspector/front-end/TextPrompt.js:
74945        (WebInspector.TextPrompt.prototype.complete):
74946
749472013-02-13  Kentaro Hara  <haraken@chromium.org>
74948
74949        [V8] There is no XXXConstructor that requires a custom getter
74950        https://bugs.webkit.org/show_bug.cgi?id=109667
74951
74952        Reviewed by Adam Barth.
74953
74954        Currently '[Custom] attribute XXXConstructor xxx' generates
74955        XXXAttrGetter(). However, there is no XXXConstructor with [Custom].
74956        In addition, it does make no sense to generate XXXAttrGetter() for such cases.
74957        We can remove the logic from CodeGeneratorV8.pm.
74958
74959        * bindings/scripts/CodeGeneratorV8.pm:
74960        (GenerateSingleBatchedAttribute):
74961
749622013-02-12  Hajime Morrita  <morrita@google.com>
74963
74964        [Internals] setShadowDOMEnabled() shouldn't be used except a few tests.
74965        https://bugs.webkit.org/show_bug.cgi?id=109642
74966
74967        Reviewed by Kent Tamura.
74968
74969        InternalSettings.setShadowDOMEnabled() shouldn't be called after
74970        any relevant DOM bindings are touched. However for fuzzers, it
74971        isn't trivial to regulate its behavior.
74972
74973        This change whitelists the URL of running test for prevent
74974        unintended API calls. This doesn't hurt the Internals usability
74975        since the API is called from just a couple of tests and the number
74976        isn't expected to grow.
74977
74978        Test: fast/dom/shadow/shadow-dom-enabled-flag-whitelist.html
74979
74980        * testing/InternalSettings.cpp:
74981        (WebCore::urlIsWhitelisted):
74982        (WebCore):
74983        (WebCore::InternalSettings::setShadowDOMEnabled):
74984
749852013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
74986
74987        Web Inspector: Introduce version controller to migrate settings versions.
74988        https://bugs.webkit.org/show_bug.cgi?id=109553
74989
74990        Reviewed by Yury Semikhatsky.
74991
74992        This patch introduces version controller that could be used to migrate inspector settings.
74993
74994        Test: inspector/version-controller.html
74995
74996        * inspector/front-end/Settings.js:
74997        (WebInspector.Settings):
74998        (WebInspector.VersionController):
74999        (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
75000        (WebInspector.VersionController.prototype._updateVersionFrom0To1):
75001        * inspector/front-end/inspector.js:
75002
750032013-02-12  Martin Robinson  <mrobinson@igalia.com>
75004
75005        [GTK] Remove the GLib unicode backend
75006        https://bugs.webkit.org/show_bug.cgi?id=109627
75007
75008        Reviewed by Benjamin Poulain.
75009
75010        Remove references to the GLib unicode backend from WebCore.
75011
75012        * GNUmakefile.list.am: Update the source list.
75013        * platform/text/gtk/TextBreakIteratorGtk.cpp: Removed.
75014        * platform/text/gtk/TextCodecGtk.cpp: Removed.
75015        * platform/text/gtk/TextCodecGtk.h: Removed.
75016
750172013-02-12  Chris Fleizach  <cfleizach@apple.com>
75018
75019         AX: crash when accessing AccessibilityScrollbar after page has been unloaded
75020         https://bugs.webkit.org/show_bug.cgi?id=109524
75021
75022         Reviewed by Ryosuke Niwa.
75023
75024         AX clients can hold onto AccesibilityScrollbar references that reference parent
75025         AccessibilityScrollViews that have already gone away.
75026
75027         AccessibilityScrollView is not calling detachFromParent after it is removed, which
75028         leads to a crash. The fix is to clearChildren() when an object is deallocated.
75029
75030         I could not create a test because the crash only manifests over multiple page loads.
75031
75032         * accessibility/AccessibilityObject.cpp:
75033         (WebCore::AccessibilityObject::detach):
75034
750352013-02-12  Hayato Ito  <hayato@chromium.org>
75036
75037        Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
75038        https://bugs.webkit.org/show_bug.cgi?id=109650
75039
75040        Reviewed by Dimitri Glazkov.
75041
75042        Set FocusEvent.relatedTarget in its constructor so that each
75043        EventDispatchMediator can use FocusEvent.relatedTarget rather than
75044        its redundant m_{old,new}FocusedNode member variable.
75045
75046        I've also removed FIXME comments, mentioning bug 109261, since I
75047        can not reproduce the issue.
75048
75049        No new tests. No change in functionality.
75050
75051        * dom/FocusEvent.cpp:
75052        (WebCore::FocusEventDispatchMediator::create):
75053        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
75054        (WebCore::FocusEventDispatchMediator::dispatchEvent):
75055        (WebCore::BlurEventDispatchMediator::create):
75056        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
75057        (WebCore::BlurEventDispatchMediator::dispatchEvent):
75058        (WebCore::FocusInEventDispatchMediator::create):
75059        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
75060        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
75061        (WebCore::FocusOutEventDispatchMediator::create):
75062        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
75063        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
75064        * dom/FocusEvent.h:
75065        (FocusEventDispatchMediator):
75066        (BlurEventDispatchMediator):
75067        (FocusInEventDispatchMediator):
75068        (FocusOutEventDispatchMediator):
75069        * dom/Node.cpp:
75070        (WebCore::Node::dispatchFocusInEvent):
75071        (WebCore::Node::dispatchFocusOutEvent):
75072        (WebCore::Node::dispatchFocusEvent):
75073        (WebCore::Node::dispatchBlurEvent):
75074
750752013-02-12  Takashi Sakamoto  <tasak@google.com>
75076
75077        [Refactoring] Make SelectorChecker::mode a constructor parameter.
75078        https://bugs.webkit.org/show_bug.cgi?id=109653
75079
75080        Reviewed by Dimitri Glazkov.
75081
75082        No new tests, because just refactoring.
75083
75084        * css/SelectorChecker.cpp:
75085        (WebCore::SelectorChecker::SelectorChecker):
75086        Made mode a constructor parameter.
75087        * css/SelectorChecker.h:
75088        Removed setMode.
75089        (SelectorChecker):
75090        * css/StyleResolver.cpp:
75091        (WebCore::StyleResolver::ruleMatches):
75092        (WebCore::StyleResolver::checkRegionSelector):
75093        * dom/SelectorQuery.cpp:
75094        (WebCore::SelectorQuery::matches):
75095        (WebCore::SelectorQuery::queryAll):
75096        (WebCore::SelectorQuery::queryFirst):
75097        * html/shadow/ContentSelectorQuery.cpp:
75098        (WebCore::ContentSelectorChecker::ContentSelectorChecker):
75099
751002013-02-12  Andreas Kling  <akling@apple.com>
75101
75102        Remove Element::ensureAttributeData().
75103        <http://webkit.org/b/109643>
75104
75105        Reviewed by Anders Carlsson.
75106
75107        * dom/Element.h:
75108        * dom/Element.cpp:
75109        (WebCore::Element::classAttributeChanged):
75110        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
75111
75112            Use attributeData() instead of ensureAttributeData(), it's already guaranteed to exist in
75113            both these functions as they are called in response to attribute changes.
75114
75115        * svg/SVGElement.h:
75116        (WebCore::SVGElement::invalidateSVGAttributes):
75117
75118            Use mutableAttributeData() instead of ensureAttributeData() when invalidating animated
75119            SVG attributes. While I can't find any bugs caused by this, an element with property animations
75120            shouldn't share attribute data with other elements.
75121
751222013-02-12  Hayato Ito  <hayato@chromium.org>
75123
75124        Make {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator type safe.
75125        https://bugs.webkit.org/show_bug.cgi?id=109561
75126
75127        Reviewed by Dimitri Glazkov.
75128
75129        Use FocusEvent rather than Event in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
75130
75131        No new tests. No change in functionality.
75132
75133        * dom/FocusEvent.cpp:
75134        (WebCore::FocusEventDispatchMediator::create):
75135        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
75136        (WebCore::BlurEventDispatchMediator::create):
75137        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
75138        (WebCore::FocusInEventDispatchMediator::create):
75139        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
75140        (WebCore::FocusOutEventDispatchMediator::create):
75141        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
75142        * dom/FocusEvent.h:
75143        (FocusEventDispatchMediator):
75144        (WebCore::FocusEventDispatchMediator::event):
75145        (BlurEventDispatchMediator):
75146        (WebCore::BlurEventDispatchMediator::event):
75147        (FocusInEventDispatchMediator):
75148        (WebCore::FocusInEventDispatchMediator::event):
75149        (FocusOutEventDispatchMediator):
75150        (WebCore::FocusOutEventDispatchMediator::event):
75151
751522013-02-12  Eric Seidel  <eric@webkit.org>
75153
75154        Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions
75155        https://bugs.webkit.org/show_bug.cgi?id=109638
75156
75157        Reviewed by Adam Barth.
75158
75159        Darin Adler noted in:
75160        https://bugs.webkit.org/show_bug.cgi?id=109408#c4
75161        that HTMLToken::Attribute (then MarkupTokenBase::Attribute)
75162        was a struct, yet incorrectly used m_ for its public members.
75163
75164        This patch fixes the members to not have the m_, and since I was
75165        touching all callers, I also updated all callers to use modern
75166        Vector-based String creation/append functions instead of manually
75167        calling UChar*, size_t versions.
75168
75169        There should be no behavior change to this patch.  Where I saw
75170        performance/memory bugs, I noted them with FIXMEs to keep
75171        this change simple.
75172
75173        * html/HTMLViewSourceDocument.cpp:
75174        (WebCore::HTMLViewSourceDocument::processTagToken):
75175        * html/parser/AtomicHTMLToken.h:
75176        (WebCore::AtomicHTMLToken::publicIdentifier):
75177        (WebCore::AtomicHTMLToken::systemIdentifier):
75178        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
75179        (WebCore::AtomicHTMLToken::initializeAttributes):
75180        * html/parser/CompactHTMLToken.cpp:
75181        (WebCore::CompactHTMLToken::CompactHTMLToken):
75182        * html/parser/HTMLMetaCharsetParser.cpp:
75183        (WebCore::HTMLMetaCharsetParser::processMeta):
75184        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
75185        * html/parser/HTMLPreloadScanner.cpp:
75186        (WebCore::StartTagScanner::processAttributes):
75187        (WebCore::HTMLPreloadScanner::scan):
75188        (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
75189        (WebCore::HTMLPreloadScanner::processToken):
75190        * html/parser/HTMLToken.h:
75191        (Range):
75192        (Attribute):
75193        (WebCore::HTMLToken::clear):
75194        (WebCore::HTMLToken::startIndex):
75195        (WebCore::HTMLToken::endIndex):
75196        (WebCore::HTMLToken::end):
75197        (WebCore::HTMLToken::nameString):
75198        (WebCore::HTMLToken::addNewAttribute):
75199        (WebCore::HTMLToken::beginAttributeName):
75200        (WebCore::HTMLToken::endAttributeName):
75201        (WebCore::HTMLToken::beginAttributeValue):
75202        (WebCore::HTMLToken::endAttributeValue):
75203        (WebCore::HTMLToken::appendToAttributeName):
75204        (WebCore::HTMLToken::appendToAttributeValue):
75205        (WebCore::HTMLToken::eraseValueOfAttribute):
75206        * html/parser/HTMLTokenizer.cpp:
75207        (WebCore::AtomicHTMLToken::nameForAttribute):
75208        * html/parser/HTMLViewSourceParser.cpp:
75209        (WebCore::HTMLViewSourceParser::updateTokenizerState):
75210        * html/parser/XSSAuditor.cpp:
75211        (WebCore::findAttributeWithName):
75212        (WebCore::XSSAuditor::filterParamToken):
75213        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
75214        (WebCore::XSSAuditor::eraseAttributeIfInjected):
75215        (WebCore::XSSAuditor::decodedSnippetForAttribute):
75216
752172013-02-12  Ryosuke Niwa  <rniwa@webkit.org>
75218
75219        Build fix.
75220
75221        * editing/Editor.h:
75222        (WebCore::Editor::avoidIntersectionWithDeleteButtonController):
75223
752242013-02-12  Nate Chapin  <japhet@chromium.org>
75225
75226        REGRESSION: Reloading a local file doesn't pick up changes
75227        https://bugs.webkit.org/show_bug.cgi?id=109344
75228
75229        Reviewed by Alexey Proskuryakov.
75230
75231        Test: http/tests/cache/reload-main-resource.php
75232
75233        * loader/cache/CachedResource.cpp:
75234        (WebCore::CachedResource::load):
75235        * loader/cache/CachedResourceLoader.cpp:
75236        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
75237        (WebCore::CachedResourceLoader::cachePolicy): Don't use subresourceCachePolicy()
75238            for main resources.
75239        * loader/cache/CachedResourceLoader.h:
75240        (CachedResourceLoader):
75241
752422013-02-12  Ryosuke Niwa  <rniwa@webkit.org>
75243
75244        Turn avoidIntersectionWithNode into Editor member functions to encapsulate delete button controller
75245        https://bugs.webkit.org/show_bug.cgi?id=109549
75246
75247        Reviewed by Tony Chang.
75248
75249        Renamed avoidIntersectionWithNode to Editor::avoidIntersectionWithDeleteButtonController and added trivial
75250        implementations when delete button controllers are disabled (ENABLE_DELETION_UI is 0).
75251
75252        * editing/DeleteButtonController.cpp:
75253        * editing/EditCommand.cpp:
75254        (WebCore::EditCommand::EditCommand):
75255        * editing/Editor.cpp:
75256        (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Moved from htmlediting.cpp and renamed.
75257        The version that takes VisibleSelection has been updated to use updatePositionForNodeRemoval to share
75258        mode code with that function.
75259        (WebCore::Editor::rangeForPoint):
75260        * editing/Editor.h:
75261        (WebCore::Editor::avoidIntersectionWithDeleteButtonController): Added; trivial implementations.
75262        * editing/htmlediting.cpp:
75263        * editing/htmlediting.h:
75264        * editing/markup.cpp:
75265        (WebCore::createMarkupInternal): Extracted from createMarkup.
75266        (WebCore::createMarkup):
75267
752682013-02-12  Joseph Pecoraro  <pecoraro@apple.com>
75269
75270        [iOS] Enable PAGE_VISIBILITY_API
75271        https://bugs.webkit.org/show_bug.cgi?id=109399
75272
75273        Reviewed by David Kilzer.
75274
75275        * Configurations/FeatureDefines.xcconfig:
75276
752772013-02-12  Andreas Kling  <akling@apple.com>
75278
75279        Move ElementAttributeData into Element.cpp/h
75280        <http://webkit.org/b/109610>
75281
75282        Reviewed by Anders Carlsson.
75283
75284        Removed ElementAttributeData.cpp/h and moved the class itself into Element headquarters.
75285        In the near future, Element should be the only client of this class, and thus it won't
75286        be necessary for other classes to know anything about it.
75287
75288        * dom/ElementAttributeData.cpp: Removed.
75289        * dom/ElementAttributeData.h: Removed.
75290        * CMakeLists.txt:
75291        * GNUmakefile.list.am:
75292        * Target.pri:
75293        * WebCore.gypi:
75294        * WebCore.xcodeproj/project.pbxproj:
75295        * dom/DOMAllInOne.cpp:
75296        * dom/DocumentSharedObjectPool.cpp:
75297        * dom/Element.cpp:
75298        * dom/Element.h:
75299        * workers/SharedWorker.cpp:
75300        * Modules/webdatabase/DatabaseManager.cpp: Add ExceptionCode.h since Element.h doesn't pull it in anymore.
75301
753022013-02-12  Simon Fraser  <simon.fraser@apple.com>
75303
75304        Crash when scrolling soon after page starts loading
75305        https://bugs.webkit.org/show_bug.cgi?id=109631
75306        <rdar://problem/13157533&13159627&13196727>
75307        
75308        Reviewed by Anders Carlsson.
75309        
75310        Make the scrolling tree more robust when the root state node,
75311        and/or scrolling node are null. This can happen if we try to
75312        handle a wheel event before we've done the first scrolling
75313        tree commit.
75314
75315        * page/scrolling/ScrollingStateTree.cpp:
75316        (WebCore::ScrollingStateTree::commit): Handle the case where
75317        m_rootStateNode is null. We'll still commit, but the state tree
75318        will have no state nodes.
75319        * page/scrolling/ScrollingTree.cpp:
75320        (WebCore::ScrollingTree::handleWheelEvent): Null-check m_rootNode.
75321        (WebCore::ScrollingTree::commitNewTreeState): Handle a null root node.
75322        (WebCore::ScrollingTree::updateTreeFromStateNode): If the rood state node
75323        is null, just clear the map and null out the root scrolling node.
75324        * page/scrolling/ScrollingTree.h: m_debugInfoLayer was unused.
75325        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
75326        (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView): It may be possible
75327        to get here before we've registered the root scroll layer, in which case scrollLayerID()
75328        will be 0. Assert to see if this can ever happen.
75329        (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText): Handle case of rootStateNode()
75330        being null.
75331
753322013-02-12  Raymond Toy  <rtoy@google.com>
75333
75334        Synchronize setting of panner node model and processing
75335        https://bugs.webkit.org/show_bug.cgi?id=109599
75336
75337        Reviewed by Chris Rogers.
75338
75339        No new tests.
75340
75341        * Modules/webaudio/PannerNode.cpp:
75342        (WebCore::PannerNode::process):
75343        (WebCore::PannerNode::setPanningModel):
75344        * Modules/webaudio/PannerNode.h:
75345
753462013-02-12  Dean Jackson  <dino@apple.com>
75347
75348        Add class name for snapshotted plugin based on dimensions
75349        https://bugs.webkit.org/show_bug.cgi?id=108369
75350
75351        Reviewed by Simon Fraser.
75352
75353        As the size of the plugin changes, the Shadow Root for the snapshot
75354        might want to toggle different interfaces. Expose "tiny", "small",
75355        "medium" and "large" classes on the Shadow. (The dimensions are
75356        currently chosen fairly arbitrarily).
75357
75358        Because we only know the dimensions after layout, we set up
75359        a post layout task to add the class. Luckily there already was
75360        a post layout task for plugins - I just updated it to handle
75361        both real and snapshotted plugins. This involved modifying
75362        the list of RenderEmbeddedObjects in FrameView to take generic
75363        RenderObjects, and decide which type they are when calling
75364        the update method.
75365
75366        * html/HTMLPlugInImageElement.cpp: Some new dimensions for the various size thresholds.
75367        (WebCore::classNameForShadowRootSize): New static function that returns a class name
75368            after examining the size of the object.
75369        (WebCore::HTMLPlugInImageElement::updateSnapshotInfo): Sets the class name for
75370            the shadow root. This is called in the post layout task.
75371        (WebCore::shouldPlugInShowLabelAutomatically): Use new size names.
75372        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Ditto.
75373        * html/HTMLPlugInImageElement.h:
75374        (HTMLPlugInImageElement): New method updateSnapshotInfo.
75375
75376        * page/FrameView.cpp:
75377        (WebCore::FrameView::addWidgetToUpdate): Change RenderEmbeddedObject* to RenderObject*.
75378        (WebCore::FrameView::removeWidgetToUpdate): Ditto
75379        (WebCore::FrameView::updateWidget): Branch based on EmbeddedObject vs SnapshottedPlugIn. Call
75380            plugin snapshot update if necessary.
75381        (WebCore::FrameView::updateWidgets): Handle both EmbeddedObject and SnapshottedPlugIn cases.
75382        * page/FrameView.h: Change RenderEmbeddedObject* to RenderObject* for post layout widget updates.
75383
75384        * rendering/RenderSnapshottedPlugIn.cpp:
75385        (WebCore::RenderSnapshottedPlugIn::layout): New virtual override. If size has changed, ask the
75386            FrameView to recalculate size after layout.
75387        * rendering/RenderSnapshottedPlugIn.h: New layout() method.
75388
753892013-02-12  Mike West  <mkwst@chromium.org>
75390
75391        Implement script MIME restrictions for X-Content-Type-Options: nosniff
75392        https://bugs.webkit.org/show_bug.cgi?id=71851
75393
75394        Reviewed by Adam Barth.
75395
75396        This patch adds support for 'X-Content-Type-Options: nosniff' when
75397        deciding whether or not to execute a given chunk of JavaScript. If the
75398        header is present, script will only execute if it matches a predefined
75399        set of MIME types[1] that are deemed "executable". Scripts served with
75400        types that don't match the list will not execute.
75401
75402        IE introduced this feature, and Gecko is working on an implementation[2]
75403        now. There's been some discussion on the WHATWG list about formalizing
75404        the specification for this feature[3], but nothing significant has been
75405        decided.
75406
75407        This implementation's list of acceptible MIME types differs from IE's:
75408        it matches the list of supported JavaScript MIME types defined in
75409        MIMETypeRegistry::initializeSupportedJavaScriptMIMETypes()[4]. In
75410        particular, the VBScript types are not accepted, and
75411        'text/javascript1.{1,2,3}' are accepted, along with 'text/livescript'.
75412
75413        This feature is locked tightly behind the ENABLE_NOSNIFF flag, which is
75414        currently only enabled on the Chromium port.
75415
75416        [1]: http://msdn.microsoft.com/en-us/library/gg622941(v=vs.85).aspx
75417        [2]: https://bugzilla.mozilla.org/show_bug.cgi?id=471020
75418        [3]: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-November/037974.html
75419        [4]: http://trac.webkit.org/browser/trunk/Source/WebCore/platform/MIMETypeRegistry.cpp?rev=142086#L307
75420
75421        Tests: http/tests/security/contentTypeOptions/invalid-content-type-options-allowed.html
75422               http/tests/security/contentTypeOptions/nosniff-script-allowed.html
75423               http/tests/security/contentTypeOptions/nosniff-script-blocked.html
75424               http/tests/security/contentTypeOptions/nosniff-script-without-content-type-allowed.html
75425
75426        * dom/ScriptElement.cpp:
75427        (WebCore::ScriptElement::executeScript):
75428            Before executing script, ensure that it shouldn't be blocked due to
75429            its MIME type. If it is blocked, write an error message to the
75430            console.
75431        * loader/cache/CachedScript.cpp:
75432        (WebCore::CachedScript::mimeType):
75433            Make scripts' MIME type available outside the context of
75434            CachedScript in order to correctly populate error messages we write
75435            to the console in ScriptElement::executeScript
75436        (WebCore):
75437        (WebCore::CachedScript::mimeTypeAllowedByNosniff):
75438        * loader/cache/CachedScript.h:
75439        (CachedScript):
75440            A new method which checks the resource's HTTP headers to set the
75441            'nosniff' disposition, and compares the resource's MIME type against
75442            the list of allowed executable types. Returns true iff the script
75443            is allowed.
75444        * platform/network/HTTPParsers.cpp:
75445        (WebCore):
75446        (WebCore::parseContentTypeOptionsHeader):
75447        * platform/network/HTTPParsers.h:
75448            Adds a new enum which relates the sniffable status of the resource,
75449            and a method to parse the HTTP header.
75450
754512013-02-12  Adam Barth  <abarth@webkit.org>
75452
75453        Threaded HTML parser should pass the remaining fast/tokenizer tests
75454        https://bugs.webkit.org/show_bug.cgi?id=109607
75455
75456        Reviewed by Eric Seidel.
75457
75458        This patch fixes some edge cases involving document.write. Previously,
75459        we would drop input characters on the floor if the tokenizer wasn't
75460        able to consume them synchronously. In this patch, we send the unparsed
75461        characters to the background thread for consumption after rewinding the
75462        input stream.
75463
75464        * html/parser/BackgroundHTMLInputStream.cpp:
75465        (WebCore::BackgroundHTMLInputStream::rewindTo):
75466        * html/parser/BackgroundHTMLInputStream.h:
75467        (BackgroundHTMLInputStream):
75468        * html/parser/BackgroundHTMLParser.cpp:
75469        (WebCore::BackgroundHTMLParser::resumeFrom):
75470        * html/parser/BackgroundHTMLParser.h:
75471        (Checkpoint):
75472        * html/parser/HTMLDocumentParser.cpp:
75473        (WebCore::HTMLDocumentParser::canTakeNextToken):
75474        (WebCore::HTMLDocumentParser::didFailSpeculation):
75475        (WebCore::HTMLDocumentParser::pumpTokenizer):
75476        (WebCore::HTMLDocumentParser::finish):
75477        * html/parser/HTMLInputStream.h:
75478        (WebCore::HTMLInputStream::closeWithoutMarkingEndOfFile):
75479        (HTMLInputStream):
75480
754812013-02-12  Csaba Osztrogonác  <ossy@webkit.org>
75482
75483        Unreviewed buildfix for !ENABLE(INSPECTOR) platforms after r142654.
75484
75485        * inspector/InspectorInstrumentation.h:
75486        (WebCore::InspectorInstrumentation::scriptsEnabled):
75487
754882013-02-12  Christophe Dumez  <ch.dumez@sisa.samsung.com>
75489
75490        Remove remaining traces of Web Intents
75491        https://bugs.webkit.org/show_bug.cgi?id=109586
75492
75493        Reviewed by Eric Seidel.
75494
75495        Remove remaining traces of Web Intents as the functionality was
75496        removed in r142549.
75497
75498        No new tests, no behavior change for layout tests.
75499
75500        * GNUmakefile.features.am.in:
75501        * html/HTMLTagNames.in:
75502
755032013-02-12  Robert Hogan  <robert@webkit.org>
75504
75505        REGRESSION(r136967): Combination of float and clear yields to bad layout
75506        https://bugs.webkit.org/show_bug.cgi?id=109476
75507
75508        Reviewed by Levi Weintraub.
75509
75510        Test: fast/block/margin-collapse/self-collapsing-block-with-float-children.html
75511
75512        The change made at http://trac.webkit.org/changeset/136967 only needs to worry about the first floated
75513        child of a self-collapsing block. The ones that follow are not affected by its margins.
75514
75515        * rendering/RenderBlockLineLayout.cpp:
75516        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
75517
755182013-02-12  Levi Weintraub  <leviw@chromium.org>
75519
75520        ASSERTION FAILED: !object || object->isBox(), UNKNOWN in WebCore::RenderListItem::positionListMarker
75521        https://bugs.webkit.org/show_bug.cgi?id=108699
75522
75523        Reviewed by Abhishek Arya.
75524
75525        RenderListItems performs special management of its children to maintain list markers. Splitting a flow
75526        through a list item results in assumptions made inside RenderListItem failing, so for now, avoid splitting
75527        flows when inside one.
75528
75529        Test: fast/multicol/span/list-multi-column-crash.html
75530
75531        * rendering/RenderBlock.cpp:
75532        (WebCore::RenderBlock::containingColumnsBlock):
75533
755342013-02-12  Roger Fong  <roger_fong@apple.com>
75535
75536        Unreviewed Windows build fix.
75537
75538        * testing/Internals.cpp:
75539        (WebCore::Internals::resetToConsistentState):
75540        (WebCore::Internals::Internals):
75541
755422013-02-12  Vivek Galatage  <vivek.vg@samsung.com>
75543
75544        Web Inspector: JavaScript execution disabled by browser/UA should be notified to the front-end
75545        https://bugs.webkit.org/show_bug.cgi?id=109402
75546
75547        Reviewed by Yury Semikhatsky.
75548
75549        Whenever the UA/Browser changes the Script Execution state of a page, it should notify the
75550        inspector front-end. Added the InspectorInstrumentation method didScriptExecutionStateChange
75551        to achieve this. Also the state change triggered by the inspector should be ignored to avoid
75552        infinite loop.
75553
75554        Test: inspector/script-execution-state-change-notification.html
75555
75556        * inspector/Inspector.json:
75557        * inspector/InspectorInstrumentation.cpp:
75558        (WebCore):
75559        (WebCore::InspectorInstrumentation::scriptsEnabledImpl):
75560        * inspector/InspectorInstrumentation.h:
75561        (InspectorInstrumentation):
75562        (WebCore::InspectorInstrumentation::scriptsEnabled):
75563        (WebCore):
75564        * inspector/InspectorPageAgent.cpp:
75565        (WebCore::InspectorPageAgent::InspectorPageAgent):
75566        (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
75567        (WebCore::InspectorPageAgent::scriptsEnabled):
75568        (WebCore):
75569        * inspector/InspectorPageAgent.h:
75570        (InspectorPageAgent):
75571        * inspector/front-end/ResourceTreeModel.js:
75572        (WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
75573        (WebInspector.PageDispatcher.prototype.scriptsEnabled):
75574        * page/Settings.cpp:
75575        (WebCore::Settings::setScriptEnabled):
75576
755772013-02-12  Antti Koivisto  <antti@apple.com>
75578
75579        Cache timer heap pointer to timers
75580        https://bugs.webkit.org/show_bug.cgi?id=109597
75581
75582        Reviewed by Andreas Kling.
75583
75584        Accessing timer heap through thread global storage is slow (~0.1% in PLT3). We can cache the heap pointer to
75585        each TimerBase. There are not huge numbers of timers around so memory is not an issue and many timers are heavily reused.
75586
75587        * platform/Timer.cpp:
75588        (WebCore::threadGlobalTimerHeap):
75589        (WebCore::TimerHeapReference::operator=):
75590        (WebCore::TimerHeapIterator::checkConsistency):
75591        (WebCore::TimerBase::TimerBase):
75592        (WebCore::TimerBase::checkHeapIndex):
75593        (WebCore::TimerBase::setNextFireTime):
75594        * platform/Timer.h:
75595        (WebCore::TimerBase::timerHeap):
75596        (TimerBase):
75597
755982013-02-12  Adam Barth  <abarth@webkit.org>
75599
75600        BackgroundHTMLParser::resumeFrom should take a struct
75601        https://bugs.webkit.org/show_bug.cgi?id=109598
75602
75603        Reviewed by Eric Seidel.
75604
75605        This patch is purely a syntatic change that paves the way for fixing
75606        the partial-entity document.write tests. To fix those tests, we'll need
75607        to pass more information to resumeFrom, but we're hitting the argument
75608        limits in Functional.h. Rather than adding yet more arguments, this
75609        patch moves to a single argument that's a struct.
75610
75611        * html/parser/BackgroundHTMLParser.cpp:
75612        (WebCore::BackgroundHTMLParser::resumeFrom):
75613        * html/parser/BackgroundHTMLParser.h:
75614        (Checkpoint):
75615        (BackgroundHTMLParser):
75616        * html/parser/HTMLDocumentParser.cpp:
75617        (WebCore::HTMLDocumentParser::didFailSpeculation):
75618
756192013-02-12  Elliott Sprehn  <esprehn@chromium.org>
75620
75621        rootRenderer in FrameView is really RenderView
75622        https://bugs.webkit.org/show_bug.cgi?id=109510
75623
75624        Reviewed by Eric Seidel.
75625
75626        The global function rootRenderer(FrameView*) is really just a way
75627        to get the RenderView from the Frame so replace it with a renderView()
75628        method and replace usage of the word "root" with renderView so it's
75629        obvious the root we're talking about is the renderView. This is an
75630        important distinction to make since we also have rootRenderer in the code
75631        for the documentElement()'s renderer and we also have a "layout root" which
75632        is entirely different.
75633
75634        No new tests, just refactoring.
75635
75636        * page/FrameView.cpp:
75637        (WebCore::FrameView::rootRenderer): Removed.
75638        (WebCore::FrameView::setFrameRect):
75639        (WebCore::FrameView::adjustViewSize):
75640        (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
75641        (WebCore::FrameView::updateCompositingLayersAfterLayout):
75642        (WebCore::FrameView::clearBackingStores):
75643        (WebCore::FrameView::restoreBackingStores):
75644        (WebCore::FrameView::usesCompositedScrolling):
75645        (WebCore::FrameView::layerForHorizontalScrollbar):
75646        (WebCore::FrameView::layerForVerticalScrollbar):
75647        (WebCore::FrameView::layerForScrollCorner):
75648        (WebCore::FrameView::tiledBacking):
75649        (WebCore::FrameView::scrollLayerID):
75650        (WebCore::FrameView::layerForOverhangAreas):
75651        (WebCore::FrameView::flushCompositingStateForThisFrame):
75652        (WebCore::FrameView::hasCompositedContent):
75653        (WebCore::FrameView::enterCompositingMode):
75654        (WebCore::FrameView::isSoftwareRenderable):
75655        (WebCore::FrameView::didMoveOnscreen):
75656        (WebCore::FrameView::willMoveOffscreen):
75657        (WebCore::FrameView::layout):
75658        (WebCore::FrameView::embeddedContentBox):
75659        (WebCore::FrameView::contentsInCompositedLayer):
75660        (WebCore::FrameView::scrollContentsFastPath):
75661        (WebCore::FrameView::scrollContentsSlowPath):
75662        (WebCore::FrameView::maintainScrollPositionAtAnchor):
75663        (WebCore::FrameView::scrollPositionChanged):
75664        (WebCore::FrameView::repaintFixedElementsAfterScrolling):
75665        (WebCore::FrameView::updateFixedElementsAfterScrolling):
75666        (WebCore::FrameView::visibleContentsResized):
75667        (WebCore::FrameView::scheduleRelayoutOfSubtree):
75668        (WebCore::FrameView::needsLayout):
75669        (WebCore::FrameView::setNeedsLayout):
75670        (WebCore::FrameView::performPostLayoutTasks):
75671        (WebCore::FrameView::updateControlTints):
75672        (WebCore::FrameView::paintContents):
75673        (WebCore::FrameView::forceLayoutForPagination):
75674        (WebCore::FrameView::adjustPageHeightDeprecated):
75675        (WebCore::FrameView::resetTrackedRepaints):
75676        (WebCore::FrameView::isVerticalDocument):
75677        (WebCore::FrameView::isFlippedDocument):
75678        * page/FrameView.h:
75679        (WebCore::FrameView::renderView): Added.
75680
756812013-02-12  Tomas Popela  <tpopela@redhat.com>
75682
75683        [GTK][Introspection] GObject bindings for DataTransferItemList - one add() method must be removed from .idl
75684        https://bugs.webkit.org/show_bug.cgi?id=109180
75685
75686        Reviewed by Xan Lopez.
75687
75688        When compiling WebKit with --enable-introspection and generating GObject bindings
75689        for DataTransferItemList we must disable one add() method, because GObject is
75690        based on C and C does not allow two functions with the same name.
75691
75692        No tests needed.
75693
75694        * bindings/scripts/CodeGeneratorGObject.pm:
75695
756962013-02-12  Uday Kiran  <udaykiran@motorola.com>
75697
75698        Background size width specified in viewport percentage units not working
75699        https://bugs.webkit.org/show_bug.cgi?id=109536
75700
75701        Reviewed by Antti Koivisto.
75702
75703        Corrected the check for viewport percentage unit while calculating
75704        background image width.
75705
75706        Test: fast/backgrounds/size/backgroundSize-viewportPercentage-width.html
75707
75708        * rendering/RenderBoxModelObject.cpp:
75709        (WebCore::RenderBoxModelObject::calculateFillTileSize):
75710
757112013-02-12  Abhishek Arya  <inferno@chromium.org>
75712
75713        Heap-use-after-free in WebCore::DeleteButtonController::enable
75714        https://bugs.webkit.org/show_bug.cgi?id=109447
75715
75716        Reviewed by Ryosuke Niwa.
75717
75718        RefPtr frame pointer since it can get deleted due to mutation events
75719        fired inside AppendNodeCommand::doUnapply.
75720
75721        No new tests. Testcase is hard to minimize due to recursive
75722        calls with DOMNodeRemovedFromDocument mutation event.
75723
75724        * editing/CompositeEditCommand.cpp:
75725        (WebCore::EditCommandComposition::unapply):
75726        (WebCore::EditCommandComposition::reapply):
75727
757282013-02-12  Eric Seidel  <eric@webkit.org>
75729
75730        Remove HTMLTokenTypes header (and split out AtomicHTMLToken.h from HTMLToken.h)
75731        https://bugs.webkit.org/show_bug.cgi?id=109525
75732
75733        Reviewed by Adam Barth.
75734
75735        We no longer need a separate HTMLTokenTypes class now that NEW_XML is gone.
75736        However, to remove HTMLTokenTypes, I had to split AtomicHTMLToken.h from
75737        HTMLToken.h (to fix a circular dependancy).
75738
75739        * GNUmakefile.list.am:
75740        * Target.pri:
75741        * WebCore.gypi:
75742        * WebCore.vcproj/WebCore.vcproj:
75743        * WebCore.vcxproj/WebCore.vcxproj:
75744        * WebCore.vcxproj/WebCore.vcxproj.filters:
75745        * WebCore.xcodeproj/project.pbxproj:
75746        * html/HTMLViewSourceDocument.cpp:
75747        (WebCore::HTMLViewSourceDocument::addSource):
75748        * html/parser/AtomicHTMLToken.h: Added.
75749        (WebCore):
75750        (AtomicHTMLToken):
75751        (WebCore::AtomicHTMLToken::create):
75752        (WebCore::AtomicHTMLToken::forceQuirks):
75753        (WebCore::AtomicHTMLToken::type):
75754        (WebCore::AtomicHTMLToken::name):
75755        (WebCore::AtomicHTMLToken::setName):
75756        (WebCore::AtomicHTMLToken::selfClosing):
75757        (WebCore::AtomicHTMLToken::getAttributeItem):
75758        (WebCore::AtomicHTMLToken::attributes):
75759        (WebCore::AtomicHTMLToken::characters):
75760        (WebCore::AtomicHTMLToken::charactersLength):
75761        (WebCore::AtomicHTMLToken::isAll8BitData):
75762        (WebCore::AtomicHTMLToken::comment):
75763        (WebCore::AtomicHTMLToken::publicIdentifier):
75764        (WebCore::AtomicHTMLToken::systemIdentifier):
75765        (WebCore::AtomicHTMLToken::clearExternalCharacters):
75766        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
75767        (WebCore::AtomicHTMLToken::initializeAttributes):
75768        * html/parser/BackgroundHTMLParser.cpp:
75769        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
75770        * html/parser/CompactHTMLToken.cpp:
75771        (WebCore::CompactHTMLToken::CompactHTMLToken):
75772        * html/parser/CompactHTMLToken.h:
75773        (WebCore::CompactHTMLToken::type):
75774        * html/parser/HTMLConstructionSite.cpp:
75775        (WebCore::HTMLConstructionSite::insertDoctype):
75776        (WebCore::HTMLConstructionSite::insertComment):
75777        (WebCore::HTMLConstructionSite::insertCommentOnDocument):
75778        (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
75779        (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
75780        (WebCore::HTMLConstructionSite::insertForeignElement):
75781        * html/parser/HTMLDocumentParser.cpp:
75782        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
75783        (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
75784        * html/parser/HTMLDocumentParser.h:
75785        * html/parser/HTMLMetaCharsetParser.cpp:
75786        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
75787        * html/parser/HTMLPreloadScanner.cpp:
75788        (WebCore::isStartTag):
75789        (WebCore::isStartOrEndTag):
75790        (WebCore::HTMLPreloadScanner::processToken):
75791        * html/parser/HTMLSourceTracker.cpp:
75792        (WebCore::HTMLSourceTracker::start):
75793        (WebCore::HTMLSourceTracker::sourceForToken):
75794        * html/parser/HTMLStackItem.h:
75795        (WebCore::HTMLStackItem::HTMLStackItem):
75796        * html/parser/HTMLToken.h:
75797        (WebCore::HTMLToken::clear):
75798        (WebCore::HTMLToken::isUninitialized):
75799        (WebCore::HTMLToken::type):
75800        (WebCore::HTMLToken::makeEndOfFile):
75801        (WebCore::HTMLToken::data):
75802        (WebCore::HTMLToken::name):
75803        (WebCore::HTMLToken::appendToName):
75804        (WebCore::HTMLToken::forceQuirks):
75805        (WebCore::HTMLToken::setForceQuirks):
75806        (WebCore::HTMLToken::beginDOCTYPE):
75807        (WebCore::HTMLToken::publicIdentifier):
75808        (WebCore::HTMLToken::systemIdentifier):
75809        (WebCore::HTMLToken::setPublicIdentifierToEmptyString):
75810        (WebCore::HTMLToken::setSystemIdentifierToEmptyString):
75811        (WebCore::HTMLToken::appendToPublicIdentifier):
75812        (WebCore::HTMLToken::appendToSystemIdentifier):
75813        (WebCore::HTMLToken::selfClosing):
75814        (WebCore::HTMLToken::setSelfClosing):
75815        (WebCore::HTMLToken::beginStartTag):
75816        (WebCore::HTMLToken::beginEndTag):
75817        (WebCore::HTMLToken::addNewAttribute):
75818        (WebCore::HTMLToken::appendToAttributeName):
75819        (WebCore::HTMLToken::appendToAttributeValue):
75820        (WebCore::HTMLToken::attributes):
75821        (WebCore::HTMLToken::eraseValueOfAttribute):
75822        (WebCore::HTMLToken::ensureIsCharacterToken):
75823        (WebCore::HTMLToken::characters):
75824        (WebCore::HTMLToken::appendToCharacter):
75825        (WebCore::HTMLToken::comment):
75826        (WebCore::HTMLToken::beginComment):
75827        (WebCore::HTMLToken::appendToComment):
75828        (WebCore::HTMLToken::eraseCharacters):
75829        (HTMLToken):
75830        * html/parser/HTMLTokenTypes.h: Removed.
75831        * html/parser/HTMLTokenizer.cpp:
75832        (WebCore::AtomicHTMLToken::usesName):
75833        (WebCore::AtomicHTMLToken::usesAttributes):
75834        (WebCore::HTMLTokenizer::flushBufferedEndTag):
75835        (WebCore::HTMLTokenizer::nextToken):
75836        * html/parser/HTMLTokenizer.h:
75837        (WebCore::HTMLTokenizer::saveEndTagNameIfNeeded):
75838        (WebCore::HTMLTokenizer::haveBufferedCharacterToken):
75839        * html/parser/HTMLTreeBuilder.cpp:
75840        (WebCore::HTMLTreeBuilder::processToken):
75841        (WebCore::HTMLTreeBuilder::processDoctypeToken):
75842        (WebCore::HTMLTreeBuilder::processFakeStartTag):
75843        (WebCore::HTMLTreeBuilder::processFakeEndTag):
75844        (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
75845        (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
75846        (WebCore):
75847        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
75848        (WebCore::HTMLTreeBuilder::processStartTagForInTable):
75849        (WebCore::HTMLTreeBuilder::processStartTag):
75850        (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
75851        (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
75852        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
75853        (WebCore::HTMLTreeBuilder::processEndTagForInRow):
75854        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
75855        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
75856        (WebCore::HTMLTreeBuilder::processEndTagForInTable):
75857        (WebCore::HTMLTreeBuilder::processEndTag):
75858        (WebCore::HTMLTreeBuilder::processComment):
75859        (WebCore::HTMLTreeBuilder::processCharacter):
75860        (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
75861        (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
75862        (WebCore::HTMLTreeBuilder::defaultForInHead):
75863        (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
75864        (WebCore::HTMLTreeBuilder::defaultForAfterHead):
75865        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
75866        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
75867        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
75868        (WebCore::HTMLTreeBuilder::processScriptStartTag):
75869        (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
75870        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
75871        * html/parser/HTMLViewSourceParser.cpp:
75872        (WebCore::HTMLViewSourceParser::updateTokenizerState):
75873        * html/parser/TextDocumentParser.cpp:
75874        (WebCore::TextDocumentParser::insertFakePreElement):
75875        * html/parser/XSSAuditor.cpp:
75876        (WebCore::XSSAuditor::filterToken):
75877        (WebCore::XSSAuditor::filterScriptToken):
75878        (WebCore::XSSAuditor::filterObjectToken):
75879        (WebCore::XSSAuditor::filterParamToken):
75880        (WebCore::XSSAuditor::filterEmbedToken):
75881        (WebCore::XSSAuditor::filterAppletToken):
75882        (WebCore::XSSAuditor::filterIframeToken):
75883        (WebCore::XSSAuditor::filterMetaToken):
75884        (WebCore::XSSAuditor::filterBaseToken):
75885        (WebCore::XSSAuditor::filterFormToken):
75886
758872013-02-12  Pablo Flouret  <pablof@motorola.com>
75888
75889        Handle error recovery in @supports
75890        https://bugs.webkit.org/show_bug.cgi?id=103934
75891
75892        Reviewed by Antti Koivisto.
75893
75894        Tests 021, 024, 031, and 033 in
75895        http://hg.csswg.org/test/file/5f94e4b03ed9/contributors/opera/submitted/css3-conditional
75896        fail because there's no explicit error recovery in @support's grammar.
75897        Opera and Firefox pass the tests.
75898
75899        No new tests, modified css3/supports{,-cssom}.html
75900
75901        * css/CSSGrammar.y.in:
75902        * css/CSSParser.cpp:
75903        (WebCore::CSSParser::createSupportsRule):
75904        (WebCore::CSSParser::markSupportsRuleHeaderEnd):
75905        (WebCore::CSSParser::popSupportsRuleData):
75906        * css/CSSParser.h:
75907
759082013-02-12  Eric Carlson  <eric.carlson@apple.com>
75909
75910        [Mac] guard against NULL languages array
75911        https://bugs.webkit.org/show_bug.cgi?id=109595
75912
75913        Reviewed by Dean Jackson.
75914
75915        No new tests, existing tests won't crash if this is correct.
75916
75917        * page/CaptionUserPreferencesMac.mm:
75918        (WebCore::CaptionUserPreferencesMac::preferredLanguages):
75919
759202013-02-12  Emil A Eklund  <eae@chromium.org>
75921
75922        TransformState::move should not round offset to int
75923        https://bugs.webkit.org/show_bug.cgi?id=108266
75924
75925        Reviewed by Simon Fraser.
75926        
75927        Currently TransformState::move rounds the offset to the nearest
75928        integer values, this results in operations using TransformState
75929        to compute a position to misreport the location, specifically
75930        Element:getBoundingClientRect and repaint rects. Sizes are
75931        handled correctly and do not have the same problem.
75932
75933        Tests: fast/sub-pixel/boundingclientrect-subpixel-margin.html
75934               fast/sub-pixel/clip-rect-box-consistent-rounding.html
75935
75936        * page/FrameView.cpp:
75937        (WebCore::FrameView::convertFromRenderer):
75938        Change to use pixel snapping instead of enclosing box. All other
75939        code paths use pixelSnappedIntRect to align the rects to device
75940        pixels however this used enclosingIntRect (indirectly through
75941        the FloatQuad::enclosingBoundingBox call).
75942        Without the rounding in TransformState this causes repaint rects
75943        for elements on subpixel bounds to be too large by up to one
75944        pixel on each axis. For normal repaints this isn't really a
75945        problem but in scrollContentsSlowPath it can result in moving
75946        too large a rect.
75947
75948        * platform/graphics/transforms/TransformState.cpp:
75949        (WebCore::TransformState::translateTransform):
75950        (WebCore::TransformState::translateMappedCoordinates):
75951        Change to take a LayoutSize instead of an IntSize.
75952
75953        (WebCore::TransformState::move):
75954        (WebCore::TransformState::applyAccumulatedOffset):
75955        * platform/graphics/transforms/TransformState.h:
75956        Remove rounding logic and use original, more precise, value.
75957
75958        * rendering/RenderGeometryMap.cpp:
75959        (WebCore::RenderGeometryMap::mapToContainer):
75960        Remove rounding logic and use original, more precise, value.
75961
759622013-02-12  Jessie Berlin  <jberlin@apple.com>
75963
75964        Rollout r142618, it broke all the Mac builds.
75965
75966        * inspector/HeapGraphSerializer.cpp:
75967        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
75968        (WebCore::HeapGraphSerializer::pushUpdate):
75969        (WebCore::HeapGraphSerializer::reportNode):
75970        (WebCore::HeapGraphSerializer::toNodeId):
75971        (WebCore::HeapGraphSerializer::addRootNode):
75972        * inspector/HeapGraphSerializer.h:
75973        (WebCore):
75974        (HeapGraphSerializer):
75975        * inspector/InspectorMemoryAgent.cpp:
75976        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
75977
759782013-02-12  Rafael Weinstein  <rafaelw@chromium.org>
75979
75980        [HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
75981        https://bugs.webkit.org/show_bug.cgi?id=109338
75982
75983        Reviewed by Adam Barth.
75984
75985        This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
75986        is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.
75987
75988        Tests added to html5lib.
75989
75990        * html/parser/HTMLTreeBuilder.cpp:
75991        (WebCore):
75992        (WebCore::HTMLTreeBuilder::popAllTemplates):
75993        (WebCore::HTMLTreeBuilder::processEndTag):
75994        (WebCore::HTMLTreeBuilder::processEndOfFile):
75995        * html/parser/HTMLTreeBuilder.h:
75996        (HTMLTreeBuilder):
75997
759982013-02-12  Dominic Mazzoni  <dmazzoni@google.com>
75999
76000        ASSERTION FAILED: i < size(), UNKNOWN in WebCore::AccessibilityMenuListPopup::didUpdateActiveOption
76001        https://bugs.webkit.org/show_bug.cgi?id=109452
76002
76003        Reviewed by Chris Fleizach.
76004
76005        Send the accessibility childrenChanged notification in
76006        HTMLSelectElement::setRecalcListItems instead of in childrenChanged
76007        so that all possible codepaths are caught.
76008
76009        Test: accessibility/insert-selected-option-into-select-causes-crash.html
76010
76011        * html/HTMLSelectElement.cpp:
76012        (WebCore::HTMLSelectElement::childrenChanged):
76013        (WebCore::HTMLSelectElement::setRecalcListItems):
76014
760152013-02-12  Peter Rybin  <prybin@chromium.org>
76016
76017        Web Inspector: for event listener provide handler function value in protocol and in UI
76018        https://bugs.webkit.org/show_bug.cgi?id=109284
76019
76020        Reviewed by Yury Semikhatsky.
76021
76022        The feature implies that we include a real handler function value into event listener description.
76023        Protocol description, inspector DOM agent (with V8 and JSC backends) and front-end is patched accordingly.
76024
76025        * bindings/js/ScriptEventListener.cpp:
76026        (WebCore::eventListenerHandler):
76027        (WebCore):
76028        (WebCore::eventListenerHandlerScriptState):
76029        * bindings/js/ScriptEventListener.h:
76030        (WebCore):
76031        * bindings/v8/ScriptEventListener.cpp:
76032        (WebCore::eventListenerHandler):
76033        (WebCore):
76034        (WebCore::eventListenerHandlerScriptState):
76035        * bindings/v8/ScriptEventListener.h:
76036        (WebCore):
76037        * inspector/Inspector.json:
76038        * inspector/InspectorDOMAgent.cpp:
76039        (WebCore::InspectorDOMAgent::getEventListenersForNode):
76040        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
76041        * inspector/InspectorDOMAgent.h:
76042        (InspectorDOMAgent):
76043        * inspector/front-end/DOMAgent.js:
76044        (WebInspector.DOMNode.prototype.eventListeners):
76045        * inspector/front-end/EventListenersSidebarPane.js:
76046        (WebInspector.EventListenersSidebarPane.prototype.update):
76047        (.):
76048
760492013-02-12  Yury Semikhatsky  <yurys@chromium.org>
76050
76051        Web Inspector: add initial implementation of native memory graph to Timeline
76052        https://bugs.webkit.org/show_bug.cgi?id=109578
76053
76054        Reviewed by Alexander Pavlov.
76055
76056        This change adds inital implementation of native memory graph UI. The graph
76057        will be shown in the same place as DOM counters graph on the Timeline panel.
76058
76059        Added NativeMemoryGraph.js that reuses parts of DOM counters graph
76060        implementation. MemoryStatistics.js was refactor to allow sharing
76061        more code between DOM counters and native memory graph.
76062
76063        * WebCore.gypi:
76064        * WebCore.vcproj/WebCore.vcproj:
76065        * inspector/compile-front-end.py:
76066        * inspector/front-end/MemoryStatistics.js:
76067        (WebInspector.MemoryStatistics):
76068        (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
76069        (WebInspector.MemoryStatistics.prototype._createCounterUIList):
76070        (WebInspector.MemoryStatistics.prototype._createCounterUIList.getNodeCount):
76071        (WebInspector.MemoryStatistics.prototype._createCounterUIList.getListenerCount):
76072        (WebInspector.MemoryStatistics.prototype._canvasHeight):
76073        (WebInspector.MemoryStatistics.prototype._updateSize):
76074        (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
76075        (WebInspector.MemoryStatistics.prototype._drawMarker):
76076        * inspector/front-end/NativeMemoryGraph.js: Added.
76077        (WebInspector.NativeMemoryGraph):
76078        (WebInspector.NativeMemoryCounterUI):
76079        (WebInspector.NativeMemoryCounterUI.prototype._hslToString):
76080        (WebInspector.NativeMemoryCounterUI.prototype.updateCurrentValue):
76081        (WebInspector.NativeMemoryCounterUI.prototype.clearCurrentValueAndMarker):
76082        (WebInspector.NativeMemoryGraph.prototype._createCurrentValuesBar):
76083        (WebInspector.NativeMemoryGraph.prototype._createCounterUIList.getCounterValue):
76084        (WebInspector.NativeMemoryGraph.prototype._createCounterUIList):
76085        (WebInspector.NativeMemoryGraph.prototype._canvasHeight):
76086        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
76087        (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
76088        (WebInspector.NativeMemoryGraph.prototype._draw):
76089        (WebInspector.NativeMemoryGraph.prototype._clearCurrentValueAndMarker):
76090        (WebInspector.NativeMemoryGraph.prototype._updateCurrentValue):
76091        (WebInspector.NativeMemoryGraph.prototype._restoreImageUnderMarker):
76092        (WebInspector.NativeMemoryGraph.prototype._saveImageUnderMarker):
76093        (WebInspector.NativeMemoryGraph.prototype._drawMarker):
76094        (WebInspector.NativeMemoryGraph.prototype._maxCounterValue):
76095        (WebInspector.NativeMemoryGraph.prototype._resetTotalValues):
76096        (WebInspector.NativeMemoryGraph.prototype.valueGetter):
76097        (WebInspector.NativeMemoryGraph.prototype._drawGraph):
76098        (WebInspector.NativeMemoryGraph.prototype._discardImageUnderMarker):
76099        * inspector/front-end/TimelinePanel.js:
76100        * inspector/front-end/WebKit.qrc:
76101        * inspector/front-end/timelinePanel.css:
76102        (#memory-graphs-canvas-container.dom-counters .resources-dividers):
76103        (.memory-category-value):
76104
761052013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>
76106
76107        Web Inspector: refactor some reusable functionality from BraceHighlighter
76108        https://bugs.webkit.org/show_bug.cgi?id=109574
76109
76110        Reviewed by Pavel Feldman.
76111
76112        New test: inspector/editor/text-editor-brace-highlighter.html
76113
76114        Extract functionality which, for given line and cursor position, will
76115        return position for a brace that should be highlighted. Add a layout
76116        test to verify brace highlighter funcionality.
76117
76118        * inspector/front-end/DefaultTextEditor.js:
76119        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.activeBraceColumnForCursorPosition):
76120        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
76121        * inspector/front-end/TextUtils.js:
76122        (WebInspector.TextUtils.isOpeningBraceChar):
76123        (WebInspector.TextUtils.isClosingBraceChar):
76124        (WebInspector.TextUtils.isBraceChar):
76125
761262013-02-12  Ilya Tikhonovsky  <loislo@chromium.org>
76127
76128        Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
76129        https://bugs.webkit.org/show_bug.cgi?id=109554
76130
76131        In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
76132        can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
76133
76134        Drive by fix: I introduced a client interface for the HeapGraphSerializer.
76135        It helps me to do the tests for the serializer.
76136
76137        Reviewed by Yury Semikhatsky.
76138
76139        It is covered by newly added tests in TestWebKitAPI.
76140
76141        * inspector/HeapGraphSerializer.cpp:
76142        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
76143        (WebCore::HeapGraphSerializer::pushUpdate):
76144        (WebCore::HeapGraphSerializer::reportNode):
76145        (WebCore::HeapGraphSerializer::toNodeId):
76146        (WebCore::HeapGraphSerializer::addRootNode):
76147        * inspector/HeapGraphSerializer.h:
76148        (HeapGraphSerializerClient):
76149        (WebCore::HeapGraphSerializerClient::~HeapGraphSerializerClient):
76150        (HeapGraphSerializer):
76151        * inspector/InspectorMemoryAgent.cpp:
76152        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
76153
761542013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
76155
76156        Web Inspector: Introduce version controller to migrate settings versions.
76157        https://bugs.webkit.org/show_bug.cgi?id=109553
76158
76159        Reviewed by Yury Semikhatsky.
76160
76161        This patch introduces version controller that could be used to migrate inspector settings.
76162
76163        Test: inspector/version-controller.html
76164
76165        * inspector/front-end/Settings.js:
76166        (WebInspector.Settings):
76167        (WebInspector.VersionController):
76168        (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
76169        (WebInspector.VersionController.prototype._updateVersionFrom0To1):
76170        * inspector/front-end/inspector.js:
76171
761722013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
76173
76174        Web Inspector: File system should produce more verbose error messages and recover from errors
76175        https://bugs.webkit.org/show_bug.cgi?id=109571
76176
76177        Reviewed by Alexander Pavlov.
76178
76179        Error handler prints original file system call params now.
76180        Added callbacks to error handler to recover from errors.
76181
76182        * inspector/front-end/FileSystemProjectDelegate.js:
76183        (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
76184        (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
76185        (WebInspector.FileSystemUtils.errorMessage):
76186        (.fileSystemLoaded):
76187        (.fileEntryLoaded):
76188        (.errorHandler):
76189        (WebInspector.FileSystemUtils.requestFileContent):
76190        (WebInspector.FileSystemUtils.setFileContent):
76191        (WebInspector.FileSystemUtils._readDirectory):
76192        (.innerCallback):
76193        (WebInspector.FileSystemUtils._requestEntries):
76194
761952013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
76196
76197        Web Inspector: Get rid of unnecessary complexity in FileSystemUtil: remove _getDirectory() method.
76198        https://bugs.webkit.org/show_bug.cgi?id=109567
76199
76200        Reviewed by Alexander Pavlov.
76201
76202        The code in this method was redundant as the same result could be achieved by using File System API directly.
76203
76204        * inspector/front-end/FileSystemProjectDelegate.js:
76205
762062013-02-12  Alexander Pavlov  <apavlov@chromium.org>
76207
76208        Web Inspector: [SuggestBox] SuggestBox not hidden when prefix is empty and there is preceding input
76209        https://bugs.webkit.org/show_bug.cgi?id=109568
76210
76211        Reviewed by Vsevolod Vlasov.
76212
76213        The suggestbox would get hidden in the case of empty input, yet it should get hidden
76214        in the case of empty user-entered prefix (which is a wider notion.)
76215
76216        * inspector/front-end/TextPrompt.js:
76217        (WebInspector.TextPrompt.prototype.complete):
76218
762192013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>
76220
76221        Web Inspector: separate SuggestBox from TextPrompt
76222        https://bugs.webkit.org/show_bug.cgi?id=109430
76223
76224        Reviewed by Alexander Pavlov.
76225
76226        Create WebInspector.SuggestBoxDelegate interface and
76227        refactor TextPrompt to use this interface. Separate SuggestBox into
76228        WebInspector.SuggestBox namespace and put it into its own file.
76229
76230        No new tests: no change in behaviour.
76231
76232        * WebCore.gypi:
76233        * WebCore.vcproj/WebCore.vcproj:
76234        * inspector/compile-front-end.py:
76235        * inspector/front-end/SuggestBox.js: Added.
76236        (WebInspector.SuggestBoxDelegate):
76237        (WebInspector.SuggestBoxDelegate.prototype.applySuggestion):
76238        (WebInspector.SuggestBoxDelegate.prototype.acceptSuggestion):
76239        (WebInspector.SuggestBoxDelegate.prototype.userEnteredText):
76240        (WebInspector.SuggestBox):
76241        (WebInspector.SuggestBox.prototype.get visible):
76242        (WebInspector.SuggestBox.prototype.get hasSelection):
76243        (WebInspector.SuggestBox.prototype._onscrollresize):
76244        (WebInspector.SuggestBox.prototype._updateBoxPositionWithExistingAnchor):
76245        (WebInspector.SuggestBox.prototype._updateBoxPosition):
76246        (WebInspector.SuggestBox.prototype._onboxmousedown):
76247        (WebInspector.SuggestBox.prototype.hide):
76248        (WebInspector.SuggestBox.prototype.removeFromElement):
76249        (WebInspector.SuggestBox.prototype._applySuggestion):
76250        (WebInspector.SuggestBox.prototype.acceptSuggestion):
76251        (WebInspector.SuggestBox.prototype._selectClosest):
76252        (WebInspector.SuggestBox.prototype.updateSuggestions):
76253        (WebInspector.SuggestBox.prototype._onItemMouseDown):
76254        (WebInspector.SuggestBox.prototype._createItemElement):
76255        (WebInspector.SuggestBox.prototype._updateItems):
76256        (WebInspector.SuggestBox.prototype._selectItem):
76257        (WebInspector.SuggestBox.prototype._canShowBox):
76258        (WebInspector.SuggestBox.prototype._rememberRowCountPerViewport):
76259        (WebInspector.SuggestBox.prototype._completionsReady):
76260        (WebInspector.SuggestBox.prototype.upKeyPressed):
76261        (WebInspector.SuggestBox.prototype.downKeyPressed):
76262        (WebInspector.SuggestBox.prototype.pageUpKeyPressed):
76263        (WebInspector.SuggestBox.prototype.pageDownKeyPressed):
76264        (WebInspector.SuggestBox.prototype.enterKeyPressed):
76265        (WebInspector.SuggestBox.prototype.tabKeyPressed):
76266        * inspector/front-end/TextPrompt.js:
76267        (WebInspector.TextPrompt.prototype.userEnteredText):
76268        (WebInspector.TextPrompt.prototype._attachInternal):
76269        (WebInspector.TextPrompt.prototype._completionsReady):
76270        (WebInspector.TextPrompt.prototype.applySuggestion):
76271        (WebInspector.TextPrompt.prototype._applySuggestion):
76272        (WebInspector.TextPrompt.prototype.enterKeyPressed):
76273        (WebInspector.TextPrompt.prototype.upKeyPressed):
76274        (WebInspector.TextPrompt.prototype.downKeyPressed):
76275        (WebInspector.TextPrompt.prototype.pageUpKeyPressed):
76276        (WebInspector.TextPrompt.prototype.pageDownKeyPressed):
76277        * inspector/front-end/WebKit.qrc:
76278        * inspector/front-end/inspector.html:
76279
762802013-02-12  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
76281
76282        [TexMap] Apply frames-per-second debug counter to WK1.
76283        https://bugs.webkit.org/show_bug.cgi?id=109540
76284
76285        Reviewed by Noam Rosenthal.
76286
76287        Adds basysKom copyright info to TextureMapperFPSCounter header.
76288
76289        * platform/graphics/texmap/TextureMapperFPSCounter.cpp:
76290        * platform/graphics/texmap/TextureMapperFPSCounter.h:
76291
762922013-02-12  Sheriff Bot  <webkit.review.bot@gmail.com>
76293
76294        Unreviewed, rolling out r142531.
76295        http://trac.webkit.org/changeset/142531
76296        https://bugs.webkit.org/show_bug.cgi?id=109569
76297
76298        Causes html5lib/run-template layout test to crash. (Requested
76299        by atwilson_ on #webkit).
76300
76301        * html/parser/HTMLTreeBuilder.cpp:
76302        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
76303        (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
76304        (WebCore::HTMLTreeBuilder::processEndOfFile):
76305        * html/parser/HTMLTreeBuilder.h:
76306        (HTMLTreeBuilder):
76307
763082013-02-12  Zan Dobersek  <zdobersek@igalia.com>
76309
76310        [GTK] Enable CSS image-set support in development builds
76311        https://bugs.webkit.org/show_bug.cgi?id=109475
76312
76313        Reviewed by Martin Robinson.
76314
76315        No new tests - majority of the related tests now passes.
76316
76317        * GNUmakefile.features.am.in: Add the feature define for the CSS image-set feature
76318        with the define value defaulting to 0. The value gets overridden with 1 in development
76319        builds, meaning the feature is enabled under that configuration.
76320
763212013-02-12  Zan Dobersek  <zdobersek@igalia.com>
76322
76323        [GTK] Enable DOM4 events constructors in development builds
76324        https://bugs.webkit.org/show_bug.cgi?id=109471
76325
76326        Reviewed by Martin Robinson.
76327
76328        No new tests - the related tests now pass.
76329
76330        * GNUmakefile.features.am.in: Add the feature define for the DOM4 events
76331        constructors feature, its value defaulting to 0. This value is overridden
76332        with 1 in development builds, effectively enabling the feature.
76333
763342013-02-12  Zan Dobersek  <zdobersek@igalia.com>
76335
76336        Unreviewed build fix for the GTK port after r142595.
76337        Adding the TextureMapperFPSCounter files to the list of build targets
76338        in case of using the OpenGL texture mapper.
76339
76340        * GNUmakefile.list.am:
76341
763422013-02-12  Andrey Kosyakov  <caseq@chromium.org>
76343
76344        Web Inspector: fix closure compiler warnings in extension server and API
76345        https://bugs.webkit.org/show_bug.cgi?id=109563
76346
76347        Reviewed by Vsevolod Vlasov.
76348
76349        * inspector/front-end/ExtensionAPI.js: drive-by: make sure we fail if extensionServer is not defined in outer scope.
76350        * inspector/front-end/ExtensionServer.js:
76351        (WebInspector.ExtensionServer.prototype.):
76352        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
76353        * inspector/front-end/externs.js: add extensionServer
76354
763552013-02-12  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
76356
76357        Unreviewed. Fix !ENABLE(INSPECTOR) builds after r142575
76358
76359        * inspector/InspectorInstrumentation.h:
76360        (WebCore::InspectorInstrumentation::willDispatchEvent):
76361
763622013-02-12  Andrey Lushnikov  <lushnikov@chromium.org>
76363
76364        Web Inspector: move showWhitespace option into experiments
76365        https://bugs.webkit.org/show_bug.cgi?id=109552
76366
76367        Reviewed by Vsevolod Vlasov.
76368
76369        Remove "show whitespace" setting and add it to experiments.
76370
76371        No new tests: fixed an existing test to verify changes.
76372
76373        * English.lproj/localizedStrings.js:
76374        * inspector/front-end/DefaultTextEditor.js:
76375        (WebInspector.TextEditorMainPanel):
76376        (WebInspector.TextEditorMainPanel.prototype.wasShown):
76377        (WebInspector.TextEditorMainPanel.prototype.willHide):
76378        * inspector/front-end/Settings.js:
76379        (WebInspector.ExperimentsSettings):
76380        * inspector/front-end/SettingsScreen.js:
76381        (WebInspector.GenericSettingsTab):
76382
763832013-02-12  Tamas Czene  <tczene@inf.u-szeged.hu>
76384
76385        Add error checking into OpenCL version of SVG filters.
76386        https://bugs.webkit.org/show_bug.cgi?id=107444
76387
76388        Reviewed by Zoltan Herczeg.
76389
76390        In case of an error the program runs through all the remaining filters by doing nothing. 
76391        After that deletes the results of every filter and starts software rendering.
76392
76393        * platform/graphics/filters/FilterEffect.cpp:
76394        (WebCore):
76395        (WebCore::FilterEffect::applyAll): At software rendering this is a simple inline methode, but at OpenCL rendering it releases OpenCL things. If we have an error remove filter's results and start software rendering.
76396        (WebCore::FilterEffect::clearResultsRecursive):
76397        (WebCore::FilterEffect::openCLImageToImageBuffer):
76398        (WebCore::FilterEffect::createOpenCLImageResult):
76399        (WebCore::FilterEffect::transformResultColorSpace):
76400        * platform/graphics/filters/FilterEffect.h:
76401        (FilterEffect):
76402        (WebCore::FilterEffect::applyAll):
76403        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
76404        (WebCore::FilterContextOpenCL::isFailed):
76405        (WebCore):
76406        (WebCore::FilterContextOpenCL::freeResources):
76407        (WebCore::FilterContextOpenCL::destroyContext):
76408        (WebCore::FilterContextOpenCL::compileTransformColorSpaceProgram):
76409        (WebCore::FilterContextOpenCL::openCLTransformColorSpace):
76410        (WebCore::FilterContextOpenCL::compileProgram):
76411        (WebCore::FilterContextOpenCL::freeResource):
76412        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
76413        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
76414        (WebCore::FilterContextOpenCL::setInError):
76415        (WebCore::FilterContextOpenCL::inError):
76416        (FilterContextOpenCL):
76417        (WebCore::FilterContextOpenCL::RunKernel::RunKernel):
76418        (WebCore::FilterContextOpenCL::RunKernel::addArgument):
76419        (WebCore::FilterContextOpenCL::RunKernel::run):
76420        (RunKernel):
76421        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
76422        (WebCore::FilterContextOpenCL::compileFEColorMatrix):
76423        (WebCore::FEColorMatrix::platformApplyOpenCL):
76424        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
76425        (WebCore::FilterContextOpenCL::compileFETurbulence):
76426        (WebCore::FETurbulence::platformApplyOpenCL):
76427        * rendering/svg/RenderSVGResourceFilter.cpp:
76428        (WebCore::RenderSVGResourceFilter::postApplyResource):
76429
764302013-02-12  Huang Dongsung  <luxtella@company100.net>
76431
76432        [TexMap] Apply frames-per-second debug counter to WK1.
76433        https://bugs.webkit.org/show_bug.cgi?id=109540
76434
76435        Reviewed by Noam Rosenthal.
76436
76437        r142524 implemented frames-per-second debug counter on WK2. This patch
76438        applies frames-per-second debug counter to WK1 also.
76439
76440        Visual debugging feature, no need for new tests.
76441
76442        * CMakeLists.txt:
76443        * GNUmakefile.list.am:
76444        * Target.pri:
76445        * platform/graphics/texmap/TextureMapper.h:
76446        * platform/graphics/texmap/TextureMapperFPSCounter.cpp: Added.
76447        (WebCore):
76448        (WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):
76449        (WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):
76450        * platform/graphics/texmap/TextureMapperFPSCounter.h: Added.
76451        (WebCore):
76452        (TextureMapperFPSCounter):
76453        * platform/graphics/texmap/TextureMapperGL.cpp:
76454        (WebCore):
76455        (WebCore::TextureMapperGL::drawNumber):
76456          Rename from drawRepaintCounter to drawNumber.
76457        * platform/graphics/texmap/TextureMapperGL.h:
76458        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
76459        (WebCore::TextureMapperImageBuffer::drawNumber):
76460        * platform/graphics/texmap/TextureMapperImageBuffer.h:
76461        (TextureMapperImageBuffer):
76462        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
76463        (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
76464        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
76465        (WebCore::CoordinatedBackingStore::drawRepaintCounter):
76466        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
76467          Move frames-per-second debug counter code to TextureMapperFPSCounter.
76468        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
76469        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
76470        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
76471        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
76472
764732013-02-11  Yury Semikhatsky  <yurys@chromium.org>
76474
76475        Web Inspector: stack trace is cut at native bind if inspector is closed
76476        https://bugs.webkit.org/show_bug.cgi?id=109427
76477
76478        Reviewed by Pavel Feldman.
76479
76480        Only top frame is collected instead of full stack trace when inspector
76481        front-end is closed to avoid expensive operations when exceptions are
76482        thrown.
76483
76484        Test: http/tests/inspector-enabled/console-exception-while-no-inspector.html
76485
76486        * inspector/InspectorConsoleAgent.cpp:
76487        (WebCore::InspectorConsoleAgent::addMessageToConsole):
76488
764892013-02-12  Kent Tamura  <tkent@chromium.org>
76490
76491        INPUT_MULTIPLE_FIELDS_UI: Mouse click not on sub-fields in multiple fields input  should not move focus
76492        https://bugs.webkit.org/show_bug.cgi?id=109544
76493
76494        Reviewed by Kentaro Hara.
76495
76496        This is similar to Bug 108914, "Should not move focus if the element
76497        already has focus." We fixed a focus() case in Bug 108914. However we
76498        still have the problem in a case of focusing by mouse click.
76499
76500        The fix for Bug 108914 intercepted focus() function to change the
76501        behavior. However focus-by-click doesn't call focus(), but calls
76502        FocusController::setFocusedNode. To fix this problem, we introduce
76503        oldFocusedNode argument to handleFocusEvent, and
76504        BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent restores the
76505        focus to oldFocusedNode if oldFocusedNode is one of sub-fields.
76506        handleFocusEvent is called whenever the focused node is changed.
76507
76508        We don't need InputType::willCancelFocus any more because the new code
76509        in handleFocusEvent covers it.
76510
76511        Tests: Update fast/forms/time-multiple-fields/time-multiple-fields-focus.html.
76512
76513        * html/HTMLTextFormControlElement.h:
76514        (WebCore::HTMLTextFormControlElement::handleFocusEvent):
76515        Add oldFocusedNode argument.
76516        * html/HTMLTextFormControlElement.cpp:
76517        (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
76518        Pass oldFocusedNode to handleFocusEvent.
76519
76520        * html/HTMLInputElement.h:
76521        (HTMLInputElement):
76522         - Add oldFocusedNode argument to handleFocusEvent.
76523         - Remove focus() override.
76524        * html/HTMLInputElement.cpp: Remove focus() override.
76525        (WebCore::HTMLInputElement::handleFocusEvent):
76526        Pass oldFocusedNode to InputType::handleFocusEvent.
76527        * html/InputType.cpp: Remove willCancelFocus.
76528        (WebCore::InputType::handleFocusEvent):
76529        Add oldFocusedNode argument.
76530        * html/InputType.h:
76531        (InputType): Ditto.
76532        * html/PasswordInputType.cpp:
76533        (WebCore::PasswordInputType::handleFocusEvent): Ditto.
76534        * html/PasswordInputType.h:
76535        (PasswordInputType): Ditto.
76536
76537        * html/BaseMultipleFieldsDateAndTimeInputType.h:
76538        (BaseMultipleFieldsDateAndTimeInputType):
76539        Remove willCancelFocus, and add oldFocusedNode argument to handleFocusEvent.
76540        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
76541        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
76542        Pass oldFocusedNode to DateTimeEditElement::focusByOwner if the
76543        direction is FocusDirectionNone.
76544
76545        * html/shadow/DateTimeEditElement.h:
76546        (DateTimeEditElement): Add oldFocusedNode argument to focusByOwner.
76547        * html/shadow/DateTimeEditElement.cpp:
76548        (WebCore::DateTimeEditElement::focusByOwner):
76549        If oldFocusedNode is one of sub-fields, focus on it again.
76550
765512013-02-12  Takashi Sakamoto  <tasak@google.com>
76552
76553        [Refactoring] Make m_selectorChecker in StyleResolver an on-stack object.
76554        https://bugs.webkit.org/show_bug.cgi?id=108595
76555
76556        Reviewed by Eric Seidel.
76557
76558        StyleResolver uses SelectorChecker's mode to change its resolving mode.
76559        However it is a state of StyleResolver. StyleResolver should have the
76560        mode and make SelectorChecker instance on a stack while required.
76561
76562        No new tests, just refactoring.
76563
76564        * css/SelectorChecker.cpp:
76565        (WebCore::SelectorChecker::fastCheckRightmostSelector):
76566        (WebCore::SelectorChecker::fastCheck):
76567        (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
76568        (WebCore::SelectorChecker::matchesFocusPseudoClass):
76569        Changed to static class function, because these methods never use
76570        "this".
76571        (WebCore):
76572        * css/SelectorChecker.h:
76573        (SelectorChecker):
76574        * css/StyleResolver.cpp:
76575        (WebCore::StyleResolver::StyleResolver):
76576        (WebCore::StyleResolver::collectMatchingRules):
76577        Now, matchesFocusPseudoClass is not a static method of
76578        SelectorChecker, so replaced "m_selectorChecker." with
76579        "SelectorChecker::".
76580        (WebCore::StyleResolver::sortAndTransferMatchedRules):
76581        (WebCore::StyleResolver::collectMatchingRulesForList):
76582        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
76583        (WebCore::StyleResolver::matchUARules):
76584        (WebCore::StyleResolver::adjustRenderStyle):
76585        (WebCore::StyleResolver::pseudoStyleRulesForElement):
76586        Use m_mode instead of m_selectorChecker.mode().
76587        Also use document()->inQuirksMode() instead of
76588        m_selectoChecker.strictParsing().
76589        (WebCore::StyleResolver::ruleMatches):
76590        (WebCore::StyleResolver::checkRegionSelector):
76591        Created an on-stack SelectorChecker object and used it to check
76592        selectors.
76593        * css/StyleResolver.h:
76594        (WebCore::StyleResolver::State::State):
76595        Added m_mode, this keeps m_selectorChecker's mode.
76596        (State):
76597        (StyleResolver):
76598        Removed m_selectorChecker.
76599
766002013-02-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
76601
76602        [Qt][EFL][WebGL] Minor refactoring of GraphicsSurface/GraphicsSurfaceGLX
76603        https://bugs.webkit.org/show_bug.cgi?id=108686
76604
76605        Reviewed by Noam Rosenthal.
76606
76607        Remove unused platformSurface()/m_platformSurface from GraphicsSurface.
76608        Move m_texture from GraphicsSurface to GLX GraphicsSurfacePrivate to match
76609        Win and Mac implementations.
76610
76611        No new tests, refactoring only.
76612
76613        * platform/graphics/surfaces/GraphicsSurface.cpp:
76614        (WebCore::GraphicsSurface::GraphicsSurface):
76615        * platform/graphics/surfaces/GraphicsSurface.h:
76616        (GraphicsSurface):
76617        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
76618        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
76619        (WebCore::GraphicsSurfacePrivate::swapBuffers):
76620        (WebCore::GraphicsSurfacePrivate::surface):
76621        (GraphicsSurfacePrivate):
76622        (WebCore::GraphicsSurfacePrivate::textureID):
76623        (WebCore::GraphicsSurfacePrivate::clear):
76624        (WebCore::GraphicsSurface::platformExport):
76625        (WebCore::GraphicsSurface::platformGetTextureID):
76626        (WebCore::GraphicsSurface::platformSwapBuffers):
76627        (WebCore::GraphicsSurface::platformCreate):
76628        (WebCore::GraphicsSurface::platformImport):
76629        (WebCore::GraphicsSurface::platformDestroy):
76630
766312013-02-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
76632
76633        [EFL][WebGL] WebGL content is not painted after resizing the viewport.
76634        https://bugs.webkit.org/show_bug.cgi?id=106358
76635
76636        Reviewed by Noam Rosenthal.
76637
76638        When page size changes and layer parameters get updated LayerTreeRenderer::setLayerState
76639        clears the layer backing store and detaches the canvas surface from the layer. If the layer
76640        size is not changed then the canvas is not recreated. This leaves the canvas detached from
76641        the layer, but still referenced from m_surfaceBackingStores.
76642        Don't assign layer backing store to layer in assignImageBackingToLayer if there is a canvas
76643        surface already attached to the layer.
76644
76645        Test: fast/canvas/webgl/webgl-layer-update.html
76646
76647        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
76648        (WebCore::CoordinatedGraphicsScene::setLayerState):
76649        (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
76650        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
76651
766522013-02-11  Eric Carlson  <eric.carlson@apple.com>
76653
76654        [Mac] Track language selection should be sticky
76655        https://bugs.webkit.org/show_bug.cgi?id=109466
76656
76657        Reviewed by Dean Jackson.
76658
76659        Choosing a text track from the caption menu should make that track's language the
76660        preferred caption language. Turning captions off from the menu should disable captions
76661        in videos loaded subsequently.
76662
76663        OS X has system support for these settings, so changes made by DRT should not change the
76664        settings on the user's system. Add support for all other ports in DRT only.
76665
76666        Test: media/track/track-user-preferences.html
76667
76668        * WebCore.exp.in: Export PageGroup::captionPreferences().
76669
76670        * html/HTMLMediaElement.cpp:
76671        (WebCore::HTMLMediaElement::HTMLMediaElement): Use page()->group().captionPreferences().
76672        (WebCore::HTMLMediaElement::attach): Ditto.
76673        (WebCore::HTMLMediaElement::detach): Ditto.
76674        (WebCore::HTMLMediaElement::userPrefersCaptions): Ditto.
76675        (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto. Update for 
76676            preferredLanguageFromList change.
76677        (WebCore::HTMLMediaElement::toggleTrackAtIndex): Set user prefs for captions visible and
76678            caption language as appropriate.
76679
76680        * html/shadow/MediaControlElements.cpp:
76681        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Remove unneeded comment.
76682        (WebCore::MediaControlTextTrackContainerElement::updateSizes):  Use page()->group().captionPreferences().
76683
76684        * html/shadow/MediaControlsApple.cpp:
76685        (WebCore::MediaControlsApple::closedCaptionTracksChanged): Update caption menu button visibility.
76686
76687        * page/CaptionUserPreferences.h:
76688        (WebCore::CaptionUserPreferences::userPrefersCaptions): Support "testing" mode.
76689        (WebCore::CaptionUserPreferences::setUserPrefersCaptions): Ditto.
76690        (WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks): Ditto.
76691        (WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks): Ditto.
76692        (WebCore::CaptionUserPreferences::setPreferredLanguage): Ditto.
76693        (WebCore::CaptionUserPreferences::preferredLanguages): Ditto.
76694        (WebCore::CaptionUserPreferences::testingMode): Ditto.
76695        (WebCore::CaptionUserPreferences::setTestingMode): Ditto.
76696        (WebCore::CaptionUserPreferences::CaptionUserPreferences): Ditto.
76697
76698        * page/CaptionUserPreferencesMac.h:
76699        * page/CaptionUserPreferencesMac.mm:
76700        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Support "testing" mode.
76701        (WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
76702        (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
76703        (WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Change name from
76704            registerForCaptionPreferencesChangedCallbacks. Support "testing" mode.
76705        (WebCore::CaptionUserPreferencesMac::unregisterForPreferencesChangedCallbacks):  Change name from
76706            unregisterForCaptionPreferencesChangedCallbacks. Support "testing" mode.
76707        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Support "testing" mode.
76708        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
76709        (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
76710        (WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto. Return the platform override when set.
76711
76712        * page/PageGroup.cpp:
76713        (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): Remove because it is already
76714            available from the caption preference object.
76715        (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
76716        (WebCore::PageGroup::userPrefersCaptions): Ditto.
76717        (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
76718        (WebCore::PageGroup::captionFontSizeScale): Ditto.
76719        * page/PageGroup.h:
76720
76721        * platform/Language.cpp:
76722        (WebCore::preferredLanguageFromList): Take the list of preferred languages instead of assuming
76723            the system list.
76724        * platform/Language.h:
76725
76726        * testing/Internals.cpp:
76727        (WebCore::Internals::resetToConsistentState): Disable caption testing mode.
76728        (WebCore::Internals::Internals): Enable caption testing mode so the user's system
76729            preferences are not modified.
76730
767312013-02-11  Huang Dongsung  <luxtella@company100.net>
76732
76733        Coordinated Graphics: Make CoordinatedGraphicsScene not know contents size.
76734        https://bugs.webkit.org/show_bug.cgi?id=108922
76735
76736        Reviewed by Noam Rosenthal.
76737
76738        Currently, CoordinatedGraphicsScene has two methods to know contents
76739        size: setContentsSize() and setVisibleContentsRect(). Contents size is
76740        used when adjusting a scroll position, but adjustment is not needed
76741        because EFL and Qt platform code (currently PageViewportController)
76742        already adjusts a scroll position, and it is natural for each platform
76743        to be in charge of adjusting. So this patch makes CoordinatedGraphicsScene
76744        not know contents size.
76745
76746        In addition, now DrawingAreaProxy::coordinatedLayerTreeHostProxy() is only used
76747        to get CoordinatedGraphicsScene.
76748
76749        This patch can only be tested manually since there is no automated
76750        testing facilities for in-motion touch.
76751        Test: ManualTests/fixed-position.html
76752              ManualTests/nested-fixed-position.html
76753
76754        * platform/graphics/texmap/TextureMapperLayer.cpp:
76755        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
76756        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
76757        (WebCore::CoordinatedGraphicsScene::setScrollPosition):
76758        (WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
76759        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
76760        (CoordinatedGraphicsScene):
76761
767622013-02-11  Huang Dongsung  <luxtella@company100.net>
76763
76764        Coordinated Graphics: remove the DidChangeScrollPosition message.
76765        https://bugs.webkit.org/show_bug.cgi?id=108051
76766
76767        Reviewed by Noam Rosenthal.
76768        Signed off for WebKit2 by Benjamin Poulain.
76769
76770        Currently, we use the DidChangeScrollPosition message to send the scroll
76771        position that WebCore used in this frame to UI Process. We had to have
76772        some member variables for the DidChangeScrollPosition message.
76773        However, we can send a scroll position via the DidRenderFrame message,
76774        because CoordinatedGraphicsScene::m_renderedContentsScrollPosition is
76775        updated at the moment of flushing. So we can remove the
76776        DidChangeScrollPosition message and some redundant member variables.
76777
76778        No tests. No change in behavior.
76779
76780        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
76781        (WebCore::CoordinatedGraphicsScene::flushLayerChanges):
76782        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
76783        (CoordinatedGraphicsScene):
76784
767852013-02-11  Ryosuke Niwa  <rniwa@webkit.org>
76786
76787        Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
76788        https://bugs.webkit.org/show_bug.cgi?id=109534
76789
76790        Reviewed by Anders Carlsson.
76791
76792        * editing/DeleteButtonController.cpp:
76793        (WebCore::DeleteButtonController::show):
76794        * editing/Editor.cpp:
76795        (WebCore):
76796        * editing/Editor.h:
76797        (Editor):
76798        * loader/EmptyClients.h:
76799        (WebCore::EmptyEditorClient::shouldDeleteRange):
76800        (EmptyEditorClient):
76801        (WebCore::EmptyEditorClient::shouldShowDeleteInterface):
76802        * page/EditorClient.h:
76803        (EditorClient):
76804
768052013-02-11  Hayato Ito  <hayato@chromium.org>
76806
76807        Factor EventContext and introduces MouseOrFocusEventContext.
76808        https://bugs.webkit.org/show_bug.cgi?id=109278
76809
76810        Reviewed by Dimitri Glazkov.
76811
76812        To supoort Touch event retargeting (bug 107800), we have to factor
76813        event retargeting code so that it can support not only MouseEvent or FocusEvent,
76814        but also other events.
76815
76816        This is the first attempt to refactor event retargeting code, a
76817        separated patch from bug 109156.  EventContext is now factored and
76818        MouseOrFocusEventContext was introduced to support MouseEvent or
76819        FocusEvent separately.
76820
76821        In following patches, I'll introduce TouchEventContext and
76822        TouchEventDispatchMediator to support Touch event retargeting.
76823
76824        No new tests. No change in functionality.
76825
76826        * dom/EventContext.cpp:
76827        (WebCore::EventContext::EventContext): Factor relatedTarget out from EventContext into MouseOrFocusEventContext.
76828        (WebCore::EventContext::~EventContext):
76829        (WebCore):
76830        (WebCore::EventContext::handleLocalEvents):
76831        (WebCore::EventContext::isMouseOrFocusEventContext):
76832        (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext):  New. Handles MouseEvent's (or FocusEvent's) relatedTarget retargeting.
76833        (WebCore::MouseOrFocusEventContext::~MouseOrFocusEventContext):
76834        (WebCore::MouseOrFocusEventContext::handleLocalEvents):
76835        (WebCore::MouseOrFocusEventContext::isMouseOrFocusEventContext):
76836        * dom/EventContext.h:
76837        (EventContext):
76838        (WebCore::EventContext::node):
76839        (WebCore::EventContext::target):
76840        (WebCore::EventContext::currentTargetSameAsTarget):
76841        (WebCore):
76842        (MouseOrFocusEventContext):
76843        (WebCore::MouseOrFocusEventContext::relatedTarget):
76844        (WebCore::MouseOrFocusEventContext::setRelatedTarget):
76845        * dom/EventDispatcher.cpp:
76846        (WebCore::EventRelatedTargetAdjuster::adjust):
76847        (WebCore::EventDispatcher::adjustRelatedTarget):
76848        (WebCore::EventDispatcher::ensureEventPath):  Renamad from ensureEventAncestors. Use the DOM Core terminology.
76849        (WebCore::EventDispatcher::dispatchEvent):
76850        (WebCore::EventDispatcher::dispatchEventAtCapturing):
76851        (WebCore::EventDispatcher::dispatchEventAtTarget):
76852        (WebCore::EventDispatcher::dispatchEventAtBubbling):
76853        (WebCore::EventDispatcher::dispatchEventPostProcess):
76854        (WebCore::EventDispatcher::topEventContext):
76855        * dom/EventDispatcher.h:
76856        (EventRelatedTargetAdjuster):
76857        (EventDispatcher):
76858        * inspector/InspectorInstrumentation.cpp:
76859        (WebCore):
76860        (WebCore::eventHasListeners):
76861        (WebCore::InspectorInstrumentation::willDispatchEventImpl):
76862        * inspector/InspectorInstrumentation.h:
76863        (InspectorInstrumentation):
76864        (WebCore::InspectorInstrumentation::willDispatchEvent):
76865
768662013-02-11  peavo@outlook.com  <peavo@outlook.com>
76867
76868        [Curl] setCookiesFromDOM function does not save cookies to disk.
76869        https://bugs.webkit.org/show_bug.cgi?id=109285
76870
76871        Reviewed by Brent Fulgham.
76872
76873        Write cookies to disk by using the Curl easy api.
76874
76875        * platform/network/curl/CookieJarCurl.cpp:
76876        (WebCore::setCookiesFromDOM):Write cookie to disk.
76877        * platform/network/curl/ResourceHandleManager.cpp:
76878        (WebCore::ResourceHandleManager::getCurlShareHandle): Added method to get Curl share handle.
76879        (WebCore::ResourceHandleManager::getCookieJarFileName): Added method to get cookie file name.
76880        * platform/network/curl/ResourceHandleManager.h: Added methods to get cookie file name, and Curl share handle.
76881
768822013-02-11  Hayato Ito  <hayato@chromium.org>
76883
76884        Split each RuleSet and feature out from StyleResolver into its own class.
76885        https://bugs.webkit.org/show_bug.cgi?id=107777
76886
76887        Reviewed by Dimitri Glazkov.
76888
76889        Re-landing r141964, which was reverted in r141973, since r141964 seem to be innocent.
76890
76891        No tests. No change in behavior.
76892
76893        * CMakeLists.txt:
76894        * GNUmakefile.list.am:
76895        * Target.pri:
76896        * WebCore.gypi:
76897        * WebCore.xcodeproj/project.pbxproj:
76898        * css/CSSAllInOne.cpp:
76899        * css/DocumentRuleSets.cpp: Added.
76900        (WebCore):
76901        (WebCore::DocumentRuleSets::DocumentRuleSets):
76902        (WebCore::DocumentRuleSets::~DocumentRuleSets):
76903        (WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
76904        (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
76905        (WebCore::makeRuleSet): Ditto.
76906        (WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
76907        (WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
76908        (WebCore::DocumentRuleSets::collectFeatures): Ditto.
76909        (WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
76910        * css/DocumentRuleSets.h: Added.
76911        (WebCore):
76912        (DocumentRuleSets):
76913        (WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
76914        (WebCore::DocumentRuleSets::userStyle): Ditto.
76915        (WebCore::DocumentRuleSets::features): Ditto.
76916        (WebCore::DocumentRuleSets::sibling): Ditto.
76917        (WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
76918        * css/StyleResolver.cpp:
76919        (WebCore::StyleResolver::StyleResolver):
76920        (WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
76921        (WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
76922        (WebCore::StyleResolver::matchUserRules): Ditto.
76923        (WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
76924        (WebCore::StyleResolver::locateCousinList): Ditto.
76925        (WebCore::StyleResolver::canShareStyleWithElement): Ditto.
76926        (WebCore::StyleResolver::locateSharedStyle): Ditto.
76927        (WebCore::StyleResolver::styleForPage): Ditto.
76928        (WebCore::StyleResolver::checkRegionStyle): Ditto.
76929        (WebCore::StyleResolver::applyProperty): Ditto.
76930        (WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
76931        * css/StyleResolver.h:
76932        (WebCore::StyleResolver::scopeResolver):
76933        (StyleResolver):
76934        (WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
76935        (WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
76936        (WebCore::StyleResolver::usesFirstLineRules): Ditto.
76937        (WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
76938        (WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
76939        (WebCore::StyleResolver::hasSelectorForClass): Ditto.
76940        (WebCore::StyleResolver::hasSelectorForId): Ditto.
76941        * dom/DocumentStyleSheetCollection.cpp:
76942        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
76943
769442013-02-11  Keishi Hattori  <keishi@webkit.org>
76945
76946        REGRESSION (r140778):Calendar Picker buttons are wrong when rtl
76947        https://bugs.webkit.org/show_bug.cgi?id=109158
76948
76949        Reviewed by Kent Tamura.
76950
76951        The calendar picker button's icon and position where wrong when rtl.
76952
76953
76954        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ar.html
76955
76956        * Resources/pagepopups/calendarPicker.css:
76957        (.year-month-button-left .year-month-button): Use -webkit-margin-end so the margin is applide to the right side.
76958        (.year-month-button-right .year-month-button): Use -webkit-margin-start so the margin is applide to the right side.
76959        (.today-clear-area .today-button): Use -webkit-margin-end so the margin is applide to the right side.
76960        * Resources/pagepopups/calendarPicker.js:
76961        (YearMonthController.prototype._attachLeftButtonsTo): Flip icon image when rtl.
76962        (YearMonthController.prototype._attachRightButtonsTo): Ditto.
76963
769642013-02-11  KwangYong Choi  <ky0.choi@samsung.com>
76965
76966        REGRESSION (r142549): Remove web intents code
76967        https://bugs.webkit.org/show_bug.cgi?id=109532
76968
76969        Reviewed by Nico Weber.
76970
76971        Remove remaning code related to web intents.
76972
76973        No new tests, no change on behavior.
76974
76975        * UseJSC.cmake:
76976        * bindings/js/JSIntentConstructor.cpp: Removed.
76977
769782013-02-11  Kenneth Russell  <kbr@google.com>
76979
76980        Add temporary typedef to ANGLEWebKitBridge to support incompatible API upgrade
76981        https://bugs.webkit.org/show_bug.cgi?id=109127
76982
76983        Reviewed by Dean Jackson.
76984
76985        No new tests. Built and tested WebKit and Chromium with this change.
76986
76987        * platform/graphics/ANGLEWebKitBridge.cpp:
76988        (WebCore):
76989            Define temporary typedef spanning int -> size_t change.
76990        (WebCore::getValidationResultValue):
76991        (WebCore::getSymbolInfo):
76992            Use temporary typedef.
76993
769942013-02-11  Kentaro Hara  <haraken@chromium.org>
76995
76996        [V8] ScheduledAction::m_context can be empty, so we shouldn't
76997        retrieve an Isolate by using m_context->GetIsolate()
76998        https://bugs.webkit.org/show_bug.cgi?id=109523
76999
77000        Reviewed by Adam Barth.
77001
77002        Chromium bug: https://code.google.com/p/chromium/issues/detail?id=175307#makechanges
77003
77004        Currently ScheduledAction is retrieving an Isolate by using m_context->GetIsolate().
77005        This can crash because ScheduledAction::m_context can be empty. Specifically,
77006        ScheduledAction::m_context is set to ScriptController::currentWorldContext(),
77007        which can return an empty handle when a frame does not exist. In addition,
77008        'if(context.IsEmpty())' in ScheduledAction.cpp implies that it can be empty.
77009
77010        Alternately, we should pass an Isolate explicitly when a ScheduledAction is instantiated.
77011
77012        No tests. The Chromium crash report doesn't provide enough information
77013        to reproduce the bug.
77014
77015        * bindings/v8/ScheduledAction.cpp:
77016        (WebCore::ScheduledAction::ScheduledAction):
77017        (WebCore):
77018        (WebCore::ScheduledAction::~ScheduledAction):
77019        * bindings/v8/ScheduledAction.h:
77020        (ScheduledAction):
77021        * bindings/v8/custom/V8DOMWindowCustom.cpp:
77022        (WebCore::WindowSetTimeoutImpl):
77023        * bindings/v8/custom/V8WorkerContextCustom.cpp:
77024        (WebCore::SetTimeoutOrInterval):
77025
770262013-02-11  Adenilson Cavalcanti  <cavalcantii@gmail.com>
77027
77028        Build fix: r142549 broke EFL build
77029        https://bugs.webkit.org/show_bug.cgi?id=109527
77030
77031        Reviewed by Kentaro Hara.
77032
77033        No new tests, no change on behavior.
77034
77035        * CMakeLists.txt:
77036
770372013-02-11  Simon Fraser  <simon.fraser@apple.com>
77038
77039        REGRESSION (r142520?): Space no longer scrolls the page
77040        https://bugs.webkit.org/show_bug.cgi?id=109526
77041
77042        Reviewed by Tim Horton.
77043
77044        ScrollingTree::updateTreeFromStateNode() used to bail early when it had
77045        no children (no fixed or sticky elements), but that left updateAfterChildren()
77046        uncalled. Fix by always calling updateAfterChildren(), which updates the scroll
77047        position.
77048
77049        * page/scrolling/ScrollingTree.cpp:
77050        (WebCore::ScrollingTree::updateTreeFromStateNode):
77051
770522013-02-11  Tim Horton  <timothy_horton@apple.com>
77053
77054        Remove extra early-return in FrameView::setScrollPosition
77055
77056        Rubber-stamped by Simon Fraser.
77057
77058        * page/FrameView.cpp:
77059        (WebCore::FrameView::setScrollPosition):
77060
770612013-02-11  Arko Saha  <arko@motorola.com>
77062
77063        [Microdata] Fix crash after r141034 in chromuim port
77064        https://bugs.webkit.org/show_bug.cgi?id=109514
77065
77066        Reviewed by Ryosuke Niwa.
77067
77068        Added V8SkipVTableValidation extended attribute to skip
77069        VTable validation check for DOMSettableTokenList interface.
77070
77071        This patch fixes below test failures:
77072        Tests: fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
77073               fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html
77074               fast/dom/MicroData/element-with-empty-itemprop.html
77075               fast/dom/MicroData/itemprop-add-remove-tokens.html
77076               fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html
77077               fast/dom/MicroData/itemprop-must-be-read-only.html
77078               fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html
77079               fast/dom/MicroData/itemref-add-remove-tokens.html
77080               fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html
77081               fast/dom/MicroData/itemref-for-an-element-must-be-correct.html
77082               fast/dom/MicroData/itemref-must-be-read-only.html
77083               fast/dom/MicroData/itemtype-add-remove-tokens.html
77084               fast/dom/MicroData/itemtype-attribute-test.html
77085               fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
77086               fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
77087               fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
77088               fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
77089
77090        * html/DOMSettableTokenList.idl:
77091
770922013-02-11  Adam Barth  <abarth@webkit.org>
77093
77094        Load event fires too early with threaded HTML parser (take 2)
77095        https://bugs.webkit.org/show_bug.cgi?id=109485
77096
77097        Reviewed by Eric Seidel.
77098
77099        This patch restores the code that was removed in
77100        http://trac.webkit.org/changeset/142492 and adds code to
77101        DocumentLoader.cpp to avoid the regression.
77102
77103        * dom/Document.cpp:
77104        (WebCore::Document::hasActiveParser):
77105        (WebCore::Document::decrementActiveParserCount):
77106        * loader/DocumentLoader.cpp:
77107        (WebCore::DocumentLoader::isLoadingInAPISense):
77108
771092013-02-11  Eric Seidel  <eric@webkit.org>
77110
77111        Fold HTMLTokenizerState back into HTMLTokenizer now that MarkupTokenizerBase is RFG
77112        https://bugs.webkit.org/show_bug.cgi?id=109502
77113
77114        Reviewed by Tony Gentilcore.
77115
77116        Just a search replace of HTMLTokenizerState with HTMLTokenizer and moving the enum.
77117        This restores us to the peacefull world pre-NEW_XML.
77118
77119        * html/parser/BackgroundHTMLParser.cpp:
77120        (WebCore::BackgroundHTMLParser::forcePlaintextForTextDocument):
77121        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
77122        * html/parser/HTMLDocumentParser.cpp:
77123        (WebCore::tokenizerStateForContextElement):
77124        (WebCore::HTMLDocumentParser::forcePlaintextForTextDocument):
77125        (WebCore::HTMLDocumentParser::pumpTokenizer):
77126        * html/parser/HTMLTokenizer.cpp:
77127        (WebCore::isEndTagBufferingState):
77128        (WebCore):
77129        (WebCore::HTMLTokenizer::reset):
77130        (WebCore::HTMLTokenizer::flushEmitAndResumeIn):
77131        (WebCore::HTMLTokenizer::nextToken):
77132        (WebCore::HTMLTokenizer::updateStateFor):
77133        * html/parser/HTMLTokenizer.h:
77134        (HTMLTokenizer):
77135        (WebCore::HTMLTokenizer::create):
77136        (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
77137        (WebCore::HTMLTokenizer::emitEndOfFile):
77138        * html/parser/HTMLTreeBuilder.cpp:
77139        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
77140        (WebCore::HTMLTreeBuilder::processEndTag):
77141        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
77142        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
77143        (WebCore::HTMLTreeBuilder::processScriptStartTag):
77144        * html/parser/TextViewSourceParser.cpp:
77145        (WebCore::TextViewSourceParser::TextViewSourceParser):
77146
771472013-02-11  Kentaro Hara  <haraken@chromium.org>
77148
77149        Build fix after r142528
77150        https://bugs.webkit.org/show_bug.cgi?id=109520
77151
77152        Reviewed by Eric Seidel.
77153
77154        r142528 changed GIFImageReader from a struct to a class.
77155        We also need to fix a forward declaration.
77156
77157        No tests.
77158
77159        * platform/image-decoders/gif/GIFImageDecoder.h:
77160
771612013-02-11  Nico Weber  <thakis@chromium.org>
77162
77163        Remove web intents code
77164        https://bugs.webkit.org/show_bug.cgi?id=109501
77165
77166        Reviewed by Eric Seidel.
77167
77168        See thread "Removing ENABLE(WEB_INTENTS) code" on webkit-dev.
77169
77170        * DerivedSources.make:
77171        * Modules/intents/DOMWindowIntents.cpp: Removed.
77172        * Modules/intents/DOMWindowIntents.h: Removed.
77173        * Modules/intents/DOMWindowIntents.idl: Removed.
77174        * Modules/intents/DeliveredIntent.cpp: Removed.
77175        * Modules/intents/DeliveredIntent.h: Removed.
77176        * Modules/intents/DeliveredIntent.idl: Removed.
77177        * Modules/intents/Intent.cpp: Removed.
77178        * Modules/intents/Intent.h: Removed.
77179        * Modules/intents/Intent.idl: Removed.
77180        * Modules/intents/IntentRequest.cpp: Removed.
77181        * Modules/intents/IntentRequest.h: Removed.
77182        * Modules/intents/IntentResultCallback.h: Removed.
77183        * Modules/intents/IntentResultCallback.idl: Removed.
77184        * Modules/intents/NavigatorIntents.cpp: Removed.
77185        * Modules/intents/NavigatorIntents.h: Removed.
77186        * Modules/intents/NavigatorIntents.idl: Removed.
77187        * WebCore.gyp/WebCore.gyp:
77188        * WebCore.gypi:
77189        * bindings/generic/RuntimeEnabledFeatures.cpp:
77190        (WebCore):
77191        * bindings/generic/RuntimeEnabledFeatures.h:
77192        (RuntimeEnabledFeatures):
77193        * bindings/v8/custom/V8IntentCustom.cpp: Removed.
77194        * html/HTMLElementsAllInOne.cpp:
77195        * html/HTMLIntentElement.cpp: Removed.
77196        * html/HTMLIntentElement.h: Removed.
77197        * html/HTMLIntentElement.idl: Removed.
77198        * loader/EmptyClients.cpp:
77199        * loader/EmptyClients.h:
77200        (EmptyFrameLoaderClient):
77201        * loader/FrameLoaderClient.h:
77202        (WebCore):
77203        * page/DOMWindow.idl:
77204
772052013-02-11  Eric Seidel  <eric@webkit.org>
77206
77207        Fix Mac build after http://trac.webkit.org/changeset/142535.
77208
77209        Unreviewed build fix.
77210
77211        * html/parser/HTMLTokenizer.h:
77212        (WebCore::HTMLTokenizer::emitAndReconsumeIn):
77213
772142013-02-11  David Farler  <dfarler@apple.com>
77215
77216        Make WebCore Derived Sources work with SDK identifiers too
77217        https://bugs.webkit.org/show_bug.cgi?id=109324
77218
77219        Reviewed by Sam Weinig.
77220
77221        * WebCore.xcodeproj/project.pbxproj: Pass SDKROOT to make for DerivedSources.make
77222
772232013-02-11  Zhenyao Mo  <zmo@google.com>
77224
77225        WEBGL_compressed_texture_s3tc extension can be enabled even when not supported
77226        https://bugs.webkit.org/show_bug.cgi?id=109508
77227
77228        Reviewed by Kenneth Russell.
77229
77230        * html/canvas/WebGLRenderingContext.cpp:
77231        (WebCore):
77232        (WebCore::WebGLRenderingContext::getExtension): Check whether the extension support is there before returning the extension pointer.
77233
772342013-02-11  Emil A Eklund  <eae@chromium.org>
77235
77236        Change RenderFrameSet::paint to use m-rows/m_cols directly.
77237        https://bugs.webkit.org/show_bug.cgi?id=108503
77238
77239        Reviewed by Eric Seidel.
77240
77241        Test: fast/frames/invalid-frameset.html
77242
77243        * rendering/RenderFrameSet.cpp:
77244        (WebCore::RenderFrameSet::paint):
77245
772462013-02-11  Yong Li  <yoli@rim.com>
77247
77248        XMLHttpRequestProgressEventThrottle::resume() always schedules timer even when unnecessary
77249        https://bugs.webkit.org/show_bug.cgi?id=105348
77250
77251        Reviewed by Alexey Proskuryakov.
77252
77253        Let resume() clear the defer flag and return if there is deferred events to dispatch.
77254
77255        No new tests as this should not affect existing cross-platform behavior. It should be
77256        OK as long as it doesn't break anything.
77257
77258        * xml/XMLHttpRequestProgressEventThrottle.cpp:
77259        (WebCore::XMLHttpRequestProgressEventThrottle::resume):
77260
772612013-02-11  Eric Seidel  <eric@webkit.org>
77262
77263        Fold MarkupTokenizerBase into HTMLTokenizer now that it is the only subclass
77264        https://bugs.webkit.org/show_bug.cgi?id=109499
77265
77266        Reviewed by Adam Barth.
77267
77268        For great justice.  And sanity.
77269        Epic amount of template code deleted.
77270
77271        * GNUmakefile.list.am:
77272        * Target.pri:
77273        * WebCore.gypi:
77274        * WebCore.vcproj/WebCore.vcproj:
77275        * WebCore.vcxproj/WebCore.vcxproj:
77276        * WebCore.vcxproj/WebCore.vcxproj.filters:
77277        * WebCore.xcodeproj/project.pbxproj:
77278        * html/parser/HTMLTokenizer.cpp:
77279        (WebCore::HTMLTokenizer::HTMLTokenizer):
77280        * html/parser/HTMLTokenizer.h:
77281        (HTMLTokenizer):
77282        (Checkpoint):
77283        (WebCore::HTMLTokenizer::state):
77284        (WebCore::HTMLTokenizer::setState):
77285        (WebCore::HTMLTokenizer::shouldSkipNullCharacters):
77286        (WebCore::HTMLTokenizer::bufferCharacter):
77287        (WebCore::HTMLTokenizer::emitAndResumeIn):
77288        (WebCore::HTMLTokenizer::emitAndReconsumeIn):
77289        (WebCore::HTMLTokenizer::emitEndOfFile):
77290        (WebCore::HTMLTokenizer::haveBufferedCharacterToken):
77291        * xml/parser/MarkupTokenizerBase.h: Removed.
77292
772932013-02-11  Anton Vayvod  <avayvod@chromium.org>
77294
77295        [Text Autosizing] Collect narrow descendants and process them separately. Refactoring for
77296        a change to follow.
77297        https://bugs.webkit.org/show_bug.cgi?id=109054
77298
77299        Preparational change to combine narrow descendants of the same autosizing cluster into
77300        groups by the width difference between the descendant and the block containing all text of
77301        the parent autosizing cluster. The groups will be autosized with the same multiplier.
77302
77303        For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
77304        a large margin individually applied (via a CSS selector), causing them all to individually
77305        appear narrower than their enclosing blockContainingAllText. Rather than making each of
77306        these paragraphs into a separate cluster, we eventually want to be able to merge them back
77307        together into one (or a few) descendant clusters.
77308
77309        Reviewed by Julien Chaffraix.
77310
77311        No behavioral changes thus no new tests or test changes.
77312
77313        * rendering/TextAutosizer.cpp:
77314        (TextAutosizingClusterInfo): Vector of narrow descendants.
77315        (WebCore::TextAutosizer::processCluster): Process narrow descendants separately.
77316        (WebCore::TextAutosizer::processContainer):
77317
77318            Remember narrow descendants of the parent cluster for later processing.
77319
773202013-02-11  Enrica Casucci  <enrica@apple.com>
77321
77322        Add ENABLE_DELETION_UI to control the use of the deletion UI.
77323        https://bugs.webkit.org/show_bug.cgi?id=109463.
77324
77325        Reviewed by Ryosuke Niwa.
77326        
77327        This patch adds #if ENABLE(DELETION_UI) in every spot where
77328        DeleteButtonController is used. This class is now only instantiated
77329        if the feature is enabled. I've also done some cleanup in the
77330        DeleteButtonController class, removing unused methods and making
77331        private some methods only used internally to the class.
77332        Both DeleteButtonController and DeleteButton classes are now excluded
77333        from the compilation if the feature is not enabled.
77334
77335        No new tests, no change of functionality.
77336
77337        * dom/ContainerNode.cpp:
77338        (WebCore::ContainerNode::cloneChildNodes):
77339        * editing/CompositeEditCommand.cpp:
77340        (WebCore::EditCommandComposition::unapply):
77341        (WebCore::EditCommandComposition::reapply):
77342        (WebCore::CompositeEditCommand::apply):
77343        * editing/DeleteButton.cpp:
77344        * editing/DeleteButtonController.cpp:
77345        * editing/DeleteButtonController.h: Some cleanup.
77346        (WebCore::DeleteButtonController::enabled): Made private.
77347        * editing/EditCommand.cpp:
77348        (WebCore::EditCommand::EditCommand):
77349        * editing/Editor.cpp:
77350        (WebCore::Editor::notifyComponentsOnChangedSelection):
77351        (WebCore::Editor::Editor):
77352        (WebCore::Editor::rangeForPoint):
77353        (WebCore::Editor::deviceScaleFactorChanged):
77354        * editing/Editor.h:
77355        * editing/htmlediting.cpp: avoidIntersectionWithNode is
77356        used only if the feature is enabled.
77357        * editing/htmlediting.h:
77358        * editing/markup.cpp:
77359        (WebCore::createMarkup):
77360        (WebCore::createFragmentFromNodes):
77361        * rendering/RenderTable.cpp: Removed unnecessary include
77362        fo DeleteButtonController.h
77363
773642013-02-11  Rafael Weinstein  <rafaelw@chromium.org>
77365
77366        [HTMLTemplateElement] <template> inside of <head> may not create <body> if EOF is hit
77367        https://bugs.webkit.org/show_bug.cgi?id=109338
77368
77369        Reviewed by Adam Barth.
77370
77371        This patch adds the logic to clear the stack of open elements back to the first <template> when EOF
77372        is hit. This allows a <body> to be generated if the initial <template> was opened inside of <head>.
77373
77374        Tests added to html5lib.
77375
77376        * html/parser/HTMLTreeBuilder.cpp:
77377        (WebCore):
77378        (WebCore::HTMLTreeBuilder::popAllTemplates):
77379        (WebCore::HTMLTreeBuilder::processEndTag):
77380        (WebCore::HTMLTreeBuilder::processEndOfFile):
77381        * html/parser/HTMLTreeBuilder.h:
77382        (HTMLTreeBuilder):
77383
773842013-02-11  Andreas Kling  <akling@apple.com>
77385
77386        RenderText::isAllCollapsibleWhitespace() shouldn't upconvert string to 16-bit.
77387        <http://webkit.org/b/109354>
77388
77389        Reviewed by Eric Seidel.
77390
77391        254 KB progression on Membuster3.
77392
77393        * rendering/RenderText.cpp:
77394        (WebCore::RenderText::isAllCollapsibleWhitespace):
77395
773962013-02-11  Alpha Lam  <hclam@chromium.org>
77397
77398        Fix code style violations in GIFImageReader.{cc|h}
77399        https://bugs.webkit.org/show_bug.cgi?id=109007
77400
77401        Reviewed by Stephen White.
77402
77403        This is just a style clean up for GIFImageReader.{cc|h}.
77404
77405        There's going to be a lot changes in these two files and style check
77406        will add a lot of noise in later reviews. Fix style problems first.
77407
77408        There is no change in logic at all. Just style fixes.
77409
77410        No new tests.
77411
77412        * platform/image-decoders/gif/GIFImageDecoder.cpp:
77413        (WebCore::GIFImageDecoder::frameCount):
77414        (WebCore::GIFImageDecoder::repetitionCount):
77415        (WebCore::GIFImageDecoder::haveDecodedRow):
77416        (WebCore::GIFImageDecoder::initFrameBuffer):
77417        * platform/image-decoders/gif/GIFImageReader.cpp:
77418        (GIFImageReader::outputRow):
77419        (GIFImageReader::doLZW):
77420        (GIFImageReader::read):
77421        * platform/image-decoders/gif/GIFImageReader.h:
77422        (GIFFrameContext):
77423        (GIFFrameContext::GIFFrameContext):
77424        (GIFFrameContext::~GIFFrameContext):
77425        (GIFImageReader::GIFImageReader):
77426        (GIFImageReader::~GIFImageReader):
77427        (GIFImageReader):
77428        (GIFImageReader::imagesCount):
77429        (GIFImageReader::loopCount):
77430        (GIFImageReader::globalColormap):
77431        (GIFImageReader::globalColormapSize):
77432        (GIFImageReader::frameContext):
77433
774342013-02-11  Bem Jones-Bey  <bjonesbe@adobe.com>
77435
77436        [CSS Exclusions] Handle shape-outside changing a float's overhang behavior
77437        https://bugs.webkit.org/show_bug.cgi?id=106927
77438
77439        Reviewed by Julien Chaffraix.
77440
77441        When the position on a shape outside causes a float to spill out into
77442        another block than it's container, it was not being drawn correctly. It
77443        became apparent that in order to fix this properly, the approach to
77444        positioning shape outsides and floats needed to be changed. The new
77445        approach also fixes some other outstanding issues, like hit detection.
77446
77447        When a float has a shape outside, inline and float layout happens
77448        using the exclusion shape bounds instead of the float's box.  The
77449        effect of this is that the float itself no longer has any effect on
77450        layout, both with respect to positioning of the float's siblings as
77451        well as positioning the float's box. This means that when the float is
77452        positioned, it is the shape's box that must obey the positioning rules
77453        for floats. When the shape is given a position relative to the float's
77454        box, the rules for float positioning determine where the shape sits
77455        in the parent, causing the float's box to be offset by the position of
77456        the shape. Since the float's box does not affect layout (due to the
77457        shape), this is similar to relative positioning in that the offset is
77458        a paint time occurrence.
77459
77460        So the new approach is to implement positioning of shape outside on
77461        floats similar to how relative positioning is implemented, using a
77462        RenderLayer.
77463
77464        This is also tested by the existing tests for shape outside on floats positioning.
77465
77466        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-overhang.html
77467
77468        * rendering/ExclusionShapeOutsideInfo.h:
77469        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Utility method to create a LayoutSize for computing the layer offset.
77470        (ExclusionShapeOutsideInfo):
77471        * rendering/LayoutState.cpp:
77472        (WebCore::LayoutState::LayoutState): Check for floats with shape outside as well as in flow positioning.
77473        * rendering/RenderBlock.cpp:
77474        (WebCore::RenderBlock::flipFloatForWritingModeForChild): Remove old positioning implementation.
77475        (WebCore::RenderBlock::paintFloats): Remove old positioning implementation.
77476        (WebCore::RenderBlock::blockSelectionGaps): Check for floats with shape outside as well as in flow positioning.
77477        (WebCore::RenderBlock::positionNewFloats): Remove old positioning implementation.
77478        (WebCore::RenderBlock::addOverhangingFloats): Remove FIXME.
77479        (WebCore::positionForPointRespectingEditingBoundaries): Check for floats with shape outside as well as in flow positioning.
77480        * rendering/RenderBlock.h:
77481        (RenderBlock): Remove old positioning implementation.
77482        (WebCore::RenderBlock::xPositionForFloatIncludingMargin): Remove old positioning implementation.
77483        (WebCore::RenderBlock::yPositionForFloatIncludingMargin): Remove old positioning implementation.
77484        * rendering/RenderBox.cpp:
77485        (WebCore::RenderBox::mapLocalToContainer): Check for floats with shape outside as well as in flow positioning.
77486        (WebCore::RenderBox::offsetFromContainer): Check for floats with shape outside as well as in flow positioning.
77487        (WebCore::RenderBox::computeRectForRepaint): Check for floats with shape outside as well as in flow positioning.
77488        (WebCore::RenderBox::layoutOverflowRectForPropagation): Check for floats with shape outside as well as in flow positioning.
77489        * rendering/RenderBox.h: Make floats with shape outside get a layer.
77490        * rendering/RenderBoxModelObject.cpp:
77491        (WebCore::RenderBoxModelObject::paintOffset): Method to return in flow
77492            positioning offset + offset from shape outside on floats.
77493        * rendering/RenderBoxModelObject.h:
77494        (RenderBoxModelObject): Add paintOffset method.
77495        * rendering/RenderInline.cpp:
77496        (WebCore::RenderInline::clippedOverflowRectForRepaint): Check for floats with shape outside as well as in flow positioning.
77497        (WebCore::RenderInline::computeRectForRepaint): Check for floats with shape outside as well as in flow positioning.
77498        (WebCore::RenderInline::mapLocalToContainer): Check for floats with shape outside as well as in flow positioning.
77499        * rendering/RenderLayer.cpp:
77500        (WebCore::RenderLayer::updateLayerPosition): Check for floats with shape outside as well as in flow positioning.
77501        (WebCore::RenderLayer::calculateClipRects): Check for floats with shape outside as well as in flow positioning.
77502        * rendering/RenderLayer.h:
77503        (WebCore::RenderLayer::paintOffset): Rename offsetForInFlowPosition to reflect that it's not just for
77504            in flow positioning, it also reflects shape outside position on floats.
77505        (RenderLayer):
77506        * rendering/RenderObject.h:
77507        (WebCore::RenderObject::hasPaintOffset): Determines if this object is in flow positioined or is a float with shape outside.
77508        * rendering/style/RenderStyle.h: Add hasPaintOffset method, analagous to method with same name on RenderObject.
77509
775102013-02-11  Tim Horton  <timothy_horton@apple.com>
77511
77512        FrameView::setScrollPosition should clamp scroll position before handing it to
77513        ScrollingCoordinator instead of depending on ScrollView to do this
77514        https://bugs.webkit.org/show_bug.cgi?id=109497
77515        <rdar://problem/12631789>
77516
77517        Reviewed by Simon Fraser.
77518
77519        Clamp scroll position before handing it to ScrollingCoordinator. Also, like ScrollView does,
77520        bail out if we've already scrolled to the clamped scroll position.
77521
77522        Test: platform/mac-wk2/tiled-drawing/clamp-out-of-bounds-scrolls.html
77523
77524        * page/FrameView.cpp:
77525        (WebCore::FrameView::setScrollPosition):
77526
775272013-02-11  Adam Barth  <abarth@webkit.org>
77528
77529        The threaded HTML parser should pass all the fast/parser tests
77530        https://bugs.webkit.org/show_bug.cgi?id=109486
77531
77532        Reviewed by Tony Gentilcore.
77533
77534        This patch fixes the last two test failures in fast/parser, which were
77535        crashes caused by not having a tokenizer when document.close() was
77536        called. (The tokenizer is created lazily by calls to document.write,
77537        which might not happen before document.close).
77538
77539        fast/parser/document-close-iframe-load.html
77540        fast/parser/document-close-nested-iframe-load.html
77541
77542        In addition, I've added a new test to make sure we flush the tokenizer
77543        properly in these cases.
77544
77545        Test: fast/parser/document-close-iframe-load-partial-entity.html
77546
77547        * html/parser/HTMLDocumentParser.cpp:
77548        (WebCore::HTMLDocumentParser::prepareToStopParsing):
77549        (WebCore::HTMLDocumentParser::pumpTokenizer):
77550
775512013-02-11  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
77552
77553        [texmap] Implement frames-per-second debug counter
77554        https://bugs.webkit.org/show_bug.cgi?id=107942
77555
77556        Reviewed by Noam Rosenthal.
77557
77558        Adds FPS counter via WEBKIT_SHOW_FPS=<interval> environment variable,
77559        where <interval> is the period in seconds (i.e. =1.5) between FPS
77560        updates on screen. It is measured by counting
77561        CoordinatedGraphicsScene::paintTo* calls and is painted using
77562        drawRepaintCounter() after TextureMapperLayer has finished painting its
77563        contents.
77564
77565        Visual debugging feature, no need for new tests.
77566
77567        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
77568        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
77569        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
77570        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
77571        (WebCore::CoordinatedGraphicsScene::updateFPS):
77572        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
77573
775742013-02-11  Eric Seidel  <eric@webkit.org>
77575
77576        Fold MarkupTokenBase into HTMLToken now that it has no other subclasses
77577        https://bugs.webkit.org/show_bug.cgi?id=109483
77578
77579        Reviewed by Adam Barth.
77580
77581        This deletes an epic amount of template yuck, as well as removes
77582        a vtable !?! from HTMLToken.
77583
77584        This paves the way for further cleanup of HTMLToken now that we
77585        can see the whole object at once.
77586        We'll also probably re-create an HTMLToken.cpp again, now that we're
77587        free from the chains of template nonsense.
77588
77589        * GNUmakefile.list.am:
77590        * Target.pri:
77591        * WebCore.gypi:
77592        * WebCore.vcproj/WebCore.vcproj:
77593        * WebCore.vcxproj/WebCore.vcxproj:
77594        * WebCore.vcxproj/WebCore.vcxproj.filters:
77595        * WebCore.xcodeproj/project.pbxproj:
77596        * html/parser/HTMLToken.h:
77597        (WebCore::findAttributeInVector):
77598        (WebCore):
77599        (HTMLToken):
77600        (Attribute):
77601        (Range):
77602        (WebCore::HTMLToken::HTMLToken):
77603        (WebCore::HTMLToken::clear):
77604        (WebCore::HTMLToken::isUninitialized):
77605        (WebCore::HTMLToken::type):
77606        (WebCore::HTMLToken::makeEndOfFile):
77607        (WebCore::HTMLToken::startIndex):
77608        (WebCore::HTMLToken::endIndex):
77609        (WebCore::HTMLToken::setBaseOffset):
77610        (WebCore::HTMLToken::end):
77611        (WebCore::HTMLToken::data):
77612        (WebCore::HTMLToken::isAll8BitData):
77613        (WebCore::HTMLToken::name):
77614        (WebCore::HTMLToken::appendToName):
77615        (WebCore::HTMLToken::nameString):
77616        (WebCore::HTMLToken::selfClosing):
77617        (WebCore::HTMLToken::setSelfClosing):
77618        (WebCore::HTMLToken::beginStartTag):
77619        (WebCore::HTMLToken::beginEndTag):
77620        (WebCore::HTMLToken::addNewAttribute):
77621        (WebCore::HTMLToken::beginAttributeName):
77622        (WebCore::HTMLToken::endAttributeName):
77623        (WebCore::HTMLToken::beginAttributeValue):
77624        (WebCore::HTMLToken::endAttributeValue):
77625        (WebCore::HTMLToken::appendToAttributeName):
77626        (WebCore::HTMLToken::appendToAttributeValue):
77627        (WebCore::HTMLToken::attributes):
77628        (WebCore::HTMLToken::eraseValueOfAttribute):
77629        (WebCore::HTMLToken::ensureIsCharacterToken):
77630        (WebCore::HTMLToken::characters):
77631        (WebCore::HTMLToken::appendToCharacter):
77632        (WebCore::HTMLToken::comment):
77633        (WebCore::HTMLToken::beginComment):
77634        (WebCore::HTMLToken::appendToComment):
77635        (WebCore::HTMLToken::eraseCharacters):
77636        * html/parser/HTMLTokenTypes.h:
77637        * html/parser/XSSAuditor.h:
77638        * xml/parser/MarkupTokenBase.h: Removed.
77639
776402013-02-11  Gavin Barraclough  <barraclough@apple.com>
77641
77642        PluginProcess should quit immediately if idle in response to low-memory notifications
77643        https://bugs.webkit.org/show_bug.cgi?id=109103
77644        <rdar://problem/12679827>
77645
77646        Reviewed by Brady Eidson.
77647
77648        This patch allows a process to set a custom callback for low memory warnings
77649        (defaulting to the current behaviour, as implemented in releaseMemory).
77650
77651        * platform/MemoryPressureHandler.cpp:
77652        (WebCore::MemoryPressureHandler::MemoryPressureHandler):
77653            - Initialize m_lowMemoryHandler to releaseMemory.
77654        (WebCore::MemoryPressureHandler::install):
77655        (WebCore::MemoryPressureHandler::uninstall):
77656        (WebCore::MemoryPressureHandler::holdOff):
77657            - Cleaned up spacing.
77658        (WebCore::MemoryPressureHandler::releaseMemory):
77659            - Added null implementation for non-Mac builds.
77660        * platform/MemoryPressureHandler.h:
77661        (WebCore::MemoryPressureHandler::setLowMemoryHandler):
77662            - Added method to set m_lowMemoryHandler.
77663        * platform/mac/MemoryPressureHandlerMac.mm:
77664        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
77665            - Changed to call releaseMemory via m_lowMemoryHandler.
77666
776672013-02-11  Simon Fraser  <simon.fraser@apple.com>
77668
77669        REGRESSION (r133807): Sticky-position review bar on bugzilla review page is jumpy
77670        https://bugs.webkit.org/show_bug.cgi?id=104276
77671        <rdar://problem/12827187>
77672
77673        Reviewed by Tim Horton.
77674
77675        When committing new scrolling tree state, if the root node has a scroll
77676        position update, we would handle that before updating the state of child
77677        nodes (with possibly new viewport constraints). That would cause incorrect
77678        child layer updates.
77679        
77680        Fix by adding a second 'update' phase that happens after child nodes,
77681        and moving the scroll position update into that.
77682
77683        Scrolling tests only dump the state tree, so cannot test the bug.
77684
77685        * page/FrameView.cpp:
77686        (WebCore::FrameView::setScrollPosition): If the scroll position didn't
77687        actually change, don't request a scroll position update from the ScrollingCoordinator.
77688        * page/scrolling/ScrollingTree.cpp:
77689        (WebCore::ScrollingTree::updateTreeFromStateNode): Keep track of the scrolling node so
77690        that we can call updateAfterChildren() on it.
77691        * page/scrolling/ScrollingTreeNode.h:
77692        (ScrollingTreeNode):
77693        (WebCore::ScrollingTreeNode::updateAfterChildren):
77694        * page/scrolling/ScrollingTreeScrollingNode.cpp:
77695        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
77696        * page/scrolling/ScrollingTreeScrollingNode.h:
77697        (ScrollingTreeScrollingNode):
77698        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
77699        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
77700        In the current bug the scrolling tree was scheduled for commit because of a
77701        scroll position request, but if only the viewport constraints change, we also need
77702        to commit the tree.
77703        * page/scrolling/mac/ScrollingTreeFixedNode.h:
77704        (ScrollingTreeFixedNode):
77705        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
77706        (WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
77707        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
77708        (ScrollingTreeScrollingNodeMac):
77709        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
77710        (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
77711        (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren): Move code here
77712        that updates things that have to happen after children.
77713        * page/scrolling/mac/ScrollingTreeStickyNode.h:
77714        (ScrollingTreeStickyNode):
77715        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
77716        (WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
77717
777182013-02-11  Roger Fong  <roger_fong@apple.com>
77719
77720        Unreviewed. Build fix for Win7 Release.
77721        Because of InspectorAllInOne.cpp static globals must be named differently in files included by InspectorAllInOne.
77722        This was the case for UserInitiatedProfileName. Also removed the repeated HeapProfileType definition in
77723        InspectorHeapProfilerAgent.cpp since it wasn't being used anyways.
77724
77725        * inspector/InspectorHeapProfilerAgent.cpp:
77726        (WebCore):
77727        (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
77728
777292013-02-11  Tony Gentilcore  <tonyg@chromium.org>
77730
77731        SegmentedString's copy ctor should copy all fields
77732        https://bugs.webkit.org/show_bug.cgi?id=109477
77733
77734        Reviewed by Adam Barth.
77735
77736        This fixes http/tests/inspector-enabled/document-write.html (and likely others) for the threaded HTML parser.
77737
77738        No new tests because covered by existing tests.
77739
77740        * platform/text/SegmentedString.cpp:
77741        (WebCore::SegmentedString::SegmentedString):
77742
777432013-02-11  Joshua Bell  <jsbell@chromium.org>
77744
77745        IndexedDB: database connections don't close after versionchange transaction aborts
77746        https://bugs.webkit.org/show_bug.cgi?id=102298
77747
77748        Reviewed by Tony Chang.
77749
77750        Per spec, close the database if the "versionchange" transaction aborts.
77751
77752        Tests: storage/indexeddb/aborted-versionchange-closes.html
77753               storage/indexeddb/lazy-index-population.html
77754               storage/objectstore-basics.html
77755
77756        * Modules/indexeddb/IDBTransaction.cpp:
77757        (WebCore::IDBTransaction::onAbort): Tell the IDBDatabase (connection) to close if
77758        this was a "versionchange" transaction.
77759
777602013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
77761
77762        [EFL] fast/forms/number/number-l10n-input.html is failing
77763        https://bugs.webkit.org/show_bug.cgi?id=109440
77764
77765        Reviewed by Laszlo Gombos.
77766
77767        Use LocaleICU instead of LocaleNone on EFL port. The EFL
77768        port already depends on ICU library and we get additional
77769        functionality this way.
77770
77771        No new tests, already covered by existing tests.
77772
77773        * CMakeLists.txt:
77774        * PlatformBlackBerry.cmake:
77775        * PlatformEfl.cmake:
77776        * PlatformWinCE.cmake:
77777
777782013-02-11  Benjamin Poulain  <benjamin@webkit.org>
77779
77780        Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings
77781        https://bugs.webkit.org/show_bug.cgi?id=109349
77782
77783        Reviewed by Sam Weinig.
77784
77785        Expose setMinimumTimerInterval() and implement the backup/restore to keep
77786        a consistent state between tests.
77787
77788        * testing/InternalSettings.cpp:
77789        (WebCore::InternalSettings::Backup::Backup):
77790        (WebCore::InternalSettings::Backup::restoreTo):
77791        (WebCore::InternalSettings::setMinimumTimerInterval):
77792        (WebCore):
77793        * testing/InternalSettings.h:
77794        (Backup):
77795        (InternalSettings):
77796        * testing/InternalSettings.idl:
77797
777982013-02-11  Dean Jackson  <dino@apple.com>
77799
77800        Source/WebCore: Snapshotted plug-in should use shadow root
77801        https://bugs.webkit.org/show_bug.cgi?id=108284
77802
77803        Reviewed by Simon Fraser.
77804
77805        Take three - relanding after rollout in r142400 that was caused by a global
77806        selector interfering with CSS Instrumentation in the Inspector.
77807
77808        A snapshotted plugin needs to indicate to the user that it can be clicked
77809        to be restarted. Previously this was done with an image that had embedded
77810        text. Instead, we now use an internal shadow root to embed some markup that
77811        will display instructions that can be localised.
77812
77813        The UA stylesheet for plug-ins provides a default styling for the label, which
77814        can be overridden by ports.
77815
77816        In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
77817        since it is only responsible for drawing a paused plug-in. The snapshot creation
77818        can work with the default renderer, but a shadow root requires something like
77819        RenderBlock in order to draw its children. We swap from one renderer to another when
77820        necessary either by creating the shadow root or by explicitly detaching and attaching
77821        the plugin element.
77822
77823        Unfortunately this is difficult to test, because the snapshotting requires
77824        time to execute, and also a PluginView to be instantiated.
77825
77826        * css/plugIns.css:
77827        (object::-webkit-snapshotted-plugin-content): New rules for a default label style.
77828
77829        * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
77830        * platform/LocalizedStrings.h:
77831        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
77832        * platform/chromium/LocalizedStringsChromium.cpp:
77833        * platform/efl/LocalizedStringsEfl.cpp:
77834        * platform/gtk/LocalizedStringsGtk.cpp:
77835        * platform/qt/LocalizedStringsQt.cpp:
77836
77837        * html/HTMLPlugInElement.cpp:
77838        (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
77839        that RenderSnapshottedPlugIn no longer is an embedded object.
77840
77841        * html/HTMLPlugInImageElement.cpp:
77842        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
77843        (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
77844        (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
77845        (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
77846            a renderer, otherwise use the typical plug-in path.
77847        (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
77848            need to give it to the renderer.
77849        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
77850        * html/HTMLPlugInImageElement.h:
77851        (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
77852            should show immediately.
77853        (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
77854            to swap to the Shadow Root.
77855        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
77856            in being recreated. Make sure we reattach so that a plugin renderer will be created.
77857        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
77858            displayState for snapshots.
77859        * html/HTMLPlugInImageElement.h:
77860        (HTMLPlugInImageElement): The new methods listed above.
77861        (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
77862            a snapshot should be immediately labeled.
77863
77864        * page/ChromeClient.h: No need for plugInStartLabelImage any more.
77865
77866        * rendering/RenderSnapshottedPlugIn.cpp:
77867        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
77868        (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
77869        (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
77870        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
77871        (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
77872        (WebCore::RenderSnapshottedPlugIn::getCursor):
77873        (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
77874        * rendering/RenderSnapshottedPlugIn.h:
77875        (RenderSnapshottedPlugIn): New inheritance. Some method renaming.
77876
778772013-02-11  Mike West  <mkwst@chromium.org>
77878
77879        CSP reports for blocked 'data:' URLs should report the scheme only.
77880        https://bugs.webkit.org/show_bug.cgi?id=109429
77881
77882        Reviewed by Adam Barth.
77883
77884        https://dvcs.w3.org/hg/content-security-policy/rev/001dc8e8bcc3 changed
77885        the CSP 1.1 spec to require that blocked URLs that don't refer to
77886        generally resolvable schemes (e.g. 'data:', 'javascript:', etc.) be
77887        stripped down to their scheme in violation reports.
77888
77889        Test: http/tests/security/contentSecurityPolicy/report-blocked-data-uri.html
77890
77891        * page/ContentSecurityPolicy.cpp:
77892        (WebCore::ContentSecurityPolicy::reportViolation):
77893            If the blocked URL is a web-resolvable scheme, apply the current
77894            stripping logic to it, otherwise, strip it to the scheme only.
77895        * platform/KURL.h:
77896        (KURL):
77897            Move KURL::isHierarchical() out into KURL's public API.
77898
778992013-02-11  Simon Fraser  <simon.fraser@apple.com>
77900
77901        ScrollingTree node maps keep getting larger
77902        https://bugs.webkit.org/show_bug.cgi?id=109348
77903
77904        Reviewed by Sam Weinig.
77905
77906        When navigating between pages, nodes would get left in the ScrollingTree's
77907        node map, and the ScrollingStateTree's node map, so these would get larger
77908        and larger as you browse.
77909        
77910        Simplify map maintenance by clearing the map when setting a new root node
77911        (which happens on the first commit of a new page). Also, don't keep root nodes
77912        around, but create them afresh for each page, which simplifies their ID
77913        management.
77914        
77915        This is closer to the original behavior; keeping the root nodes around was
77916        a fix for bug 99668, but we avoid regressing that fix by bailing early
77917        from frameViewLayoutUpdated() if there is no root state node (we'll get
77918        called again anyway).
77919        
77920        This now allows state nodeIDs to be purely read-only.
77921
77922        * page/scrolling/ScrollingStateNode.h:
77923        * page/scrolling/ScrollingStateTree.cpp:
77924        (WebCore::ScrollingStateTree::ScrollingStateTree):
77925        (WebCore::ScrollingStateTree::attachNode):
77926        (WebCore::ScrollingStateTree::clear):
77927        (WebCore::ScrollingStateTree::removeNode):
77928        * page/scrolling/ScrollingTree.cpp:
77929        (WebCore::ScrollingTree::updateTreeFromStateNode):
77930        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
77931        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
77932
779332013-02-11  Simon Fraser  <simon.fraser@apple.com>
77934
77935        Move m_stateNodeMap from ScrollingCoordinatorMac to ScrollingStateTree
77936        https://bugs.webkit.org/show_bug.cgi?id=109361
77937
77938        Reviewed by Sam Weinig.
77939        
77940        The map of scrolling node IDs to ScollingStateNodes was maintained by
77941        ScrollingCoordinatorMac, rather than ScrollingStateTree. This is different
77942        from the ScrollingTree (which owns its node map), and added some amount
77943        of to-and-fro between ScrollingStateTree and ScrollingCoordinatorMac.
77944        
77945        Having ScrollingCoordinatorMac maintain the map of IDs to state nodes
77946        simplifies things.
77947
77948        No behavior change.
77949
77950        * page/scrolling/ScrollingStateTree.cpp:
77951        (WebCore::ScrollingStateTree::attachNode):
77952        (WebCore::ScrollingStateTree::detachNode):
77953        (WebCore::ScrollingStateTree::clear):
77954        (WebCore::ScrollingStateTree::removeNode):
77955        (WebCore::ScrollingStateTree::stateNodeForID):
77956        * page/scrolling/ScrollingStateTree.h:
77957        (ScrollingStateTree): Remove some stale comments.
77958        (WebCore::ScrollingStateTree::removedNodes):
77959        * page/scrolling/mac/ScrollingCoordinatorMac.h:
77960        (ScrollingCoordinatorMac):
77961        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
77962        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
77963        (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
77964        (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
77965        (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
77966        (WebCore::ScrollingCoordinatorMac::attachToStateTree):
77967        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
77968        (WebCore::ScrollingCoordinatorMac::clearStateTree):
77969        (WebCore::ScrollingCoordinatorMac::updateScrollingNode):
77970        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
77971
779722013-02-11  Mark Rowe  <mrowe@apple.com>
77973
77974        Build fix.
77975
77976        * platform/mac/PlatformSpeechSynthesizerMac.mm: Fix the case in the include.
77977
779782013-02-11  Julien Chaffraix  <jchaffraix@webkit.org>
77979
77980        Regression(r131539): Heap-use-after-free in WebCore::RenderBlock::willBeDestroyed
77981        https://bugs.webkit.org/show_bug.cgi?id=107189
77982
77983        Reviewed by Abhishek Arya.
77984
77985        Test: fast/dynamic/continuation-detach-crash.html
77986
77987        This patch reverts r131539 and the following changes (r132591 and r139664).
77988        This means we redo detaching from the bottom-up which solves the regression.
77989        It fixes the attached test case as we re-attach child nodes before detaching
77990        the parent. It seems wrong to do but this avoid a stale continuation.
77991
77992        * dom/ContainerNode.cpp:
77993        (WebCore::ContainerNode::detach): Detach the children first, then ourself.
77994        * dom/Node.cpp:
77995        (WebCore::Node::detach): Clear the renderer instead of ASSERT'ing.
77996        * rendering/RenderObject.cpp:
77997        (WebCore::RenderObject::willBeDestroyed): Removed the code to clear the associated node's renderer.
77998        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
77999        * rendering/RenderObjectChildList.cpp:
78000        (WebCore::RenderObjectChildList::removeChildNode):
78001        Moved the repainting logic back into removeChildNode from destroyAndCleanupAnonymousWrappers.
78002        (WebCore::RenderObjectChildList::destroyLeftoverChildren): Re-added the code to clear the associated node's
78003        renderer.
78004        * rendering/RenderTextFragment.cpp:
78005        (WebCore::RenderTextFragment::setText): Re-added the code to set the associated node's renderer.
78006
78007        * dom/ContainerNode.cpp:
78008        (WebCore::ContainerNode::detach):
78009        * dom/Node.cpp:
78010        (WebCore::Node::detach):
78011        * rendering/RenderObject.cpp:
78012        (WebCore::RenderObject::willBeDestroyed):
78013        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
78014        * rendering/RenderObjectChildList.cpp:
78015        (WebCore::RenderObjectChildList::destroyLeftoverChildren):
78016        (WebCore::RenderObjectChildList::removeChildNode):
78017        * rendering/RenderTextFragment.cpp:
78018        (WebCore::RenderTextFragment::setText):
78019
780202013-02-11  Eric Seidel  <eric@webkit.org>
78021
78022        Make WebVTTTokenizer stop inheriting from MarkupTokenizerBase
78023        https://bugs.webkit.org/show_bug.cgi?id=109411
78024
78025        Reviewed by Adam Barth.
78026
78027        Moved InputStreamPreprocessor into its own header file so it can be
78028        used by both WebVTTTokenizer and HTMLTokenizer.
78029
78030        Also split out kEndOfFileMarker from InputStreamPreprocessor<T> so that
78031        it can be used w/o a specific instantiation of the template class.
78032        This also made it possible to fix three old fixmes about wanting to share
78033        that constant.
78034
78035        Again, separating WebVTT code from Markup* base classes made it simpler
78036        at the cost of a little copy/paste code.  WebVTT tokenization is remarkably
78037        simple compared to HTML.
78038
78039        This will make it immediately possible to pull MarkupTokenizerBase up into
78040        HTMLTokenizer and further simplify the code.
78041
78042        * GNUmakefile.list.am:
78043        * Target.pri:
78044        * WebCore.gypi:
78045        * WebCore.vcproj/WebCore.vcproj:
78046        * WebCore.vcxproj/WebCore.vcxproj:
78047        * WebCore.vcxproj/WebCore.vcxproj.filters:
78048        * WebCore.xcodeproj/project.pbxproj:
78049        * html/parser/BackgroundHTMLParser.cpp:
78050        (WebCore::BackgroundHTMLParser::markEndOfFile):
78051        * html/parser/HTMLInputStream.h:
78052        (WebCore::HTMLInputStream::markEndOfFile):
78053        * html/parser/HTMLTokenizer.cpp:
78054        (WebCore::HTMLTokenizer::nextToken):
78055        * html/parser/InputStreamPreprocessor.h: Added.
78056        (WebCore):
78057        (InputStreamPreprocessor):
78058        (WebCore::InputStreamPreprocessor::InputStreamPreprocessor):
78059        (WebCore::InputStreamPreprocessor::nextInputCharacter):
78060        (WebCore::InputStreamPreprocessor::peek):
78061        (WebCore::InputStreamPreprocessor::advance):
78062        (WebCore::InputStreamPreprocessor::skipNextNewLine):
78063        (WebCore::InputStreamPreprocessor::reset):
78064        (WebCore::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
78065        * html/track/WebVTTTokenizer.cpp:
78066        (WebCore::WebVTTTokenizer::WebVTTTokenizer):
78067        (WebCore::WebVTTTokenizer::nextToken):
78068        * html/track/WebVTTTokenizer.h:
78069        (WebVTTTokenizer):
78070        (WebCore::WebVTTTokenizer::haveBufferedCharacterToken):
78071        (WebCore::WebVTTTokenizer::bufferCharacter):
78072        (WebCore::WebVTTTokenizer::emitAndResumeIn):
78073        (WebCore::WebVTTTokenizer::emitEndOfFile):
78074        (WebCore::WebVTTTokenizer::shouldSkipNullCharacters):
78075        * xml/parser/MarkupTokenizerBase.h:
78076        (MarkupTokenizerBase):
78077        (WebCore::MarkupTokenizerBase::bufferCharacter):
78078
780792013-02-11  Adam Barth  <abarth@webkit.org>
78080
78081        document.write during window.onload can trigger DumpRenderTree to dump the render tree
78082        https://bugs.webkit.org/show_bug.cgi?id=109465
78083
78084        Reviewed by Eric Seidel.
78085
78086        This patch is a partial revert of
78087        http://trac.webkit.org/changeset/142378. It's not safe to call
78088        checkComplete during the load event. We'll need to find another way of
78089        calling checkComplete at the right time.
78090
78091        Test: fast/parser/document-write-during-load.html
78092
78093        * dom/Document.cpp:
78094        (WebCore::Document::decrementActiveParserCount):
78095
780962013-02-11  Andrey Kosyakov  <caseq@chromium.org>
78097
78098        Web Inspector: Timeline: invalidate and force locations are same for Layout records caused by style recalculaiton
78099        https://bugs.webkit.org/show_bug.cgi?id=109294
78100
78101        Reviewed by Pavel Feldman.
78102
78103        Use the stack that caused style recalculation as a cause for relayout performed due to
78104        layout invalidation caused by style recalculation.
78105
78106        * inspector/front-end/TimelinePresentationModel.js:
78107        (WebInspector.TimelinePresentationModel.prototype.reset):
78108        (WebInspector.TimelinePresentationModel.Record):
78109
781102013-02-01  Andrey Kosyakov  <caseq@chromium.org>
78111
78112        Web Inspector: [Extension API] adjust inspectedWindow.eval() callback parameters to expose non-exceptional error
78113        https://bugs.webkit.org/show_bug.cgi?id=108640
78114
78115        Reviewed by Vsevolod Vlasov.
78116
78117        - only set first parameter to eval() callback iff expression successfully evaluates;
78118        - use object, not bool as second parameter;
78119        - pass exceptions and extension errors as second parameter if evaluate failed;
78120        - minor drive-by changes in ExtensionAPI utilities.
78121
78122        * inspector/front-end/ExtensionAPI.js:
78123        (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setExpression):
78124        (injectedExtensionAPI.InspectedWindow.prototype.):
78125        (injectedExtensionAPI.InspectedWindow.prototype.eval):
78126        (injectedExtensionAPI.extractCallbackArgument):
78127        * inspector/front-end/ExtensionServer.js:
78128        (WebInspector.ExtensionServer.prototype.):
78129        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
78130        (WebInspector.ExtensionStatus):
78131
781322013-02-11  Andrey Kosyakov  <caseq@chromium.org>
78133
78134        Web Inspector: [Extensions API] expose ExtensionServerClient to tests so tests use same port as extensions API
78135        https://bugs.webkit.org/show_bug.cgi?id=109443
78136
78137        Reviewed by Vsevolod Vlasov.
78138
78139        Promote extensionServer var to the outer closure, so it may be accessed by platform-specific (or test) code.
78140
78141        * inspector/front-end/ExtensionAPI.js:
78142        (buildExtensionAPIInjectedScript):
78143
781442013-02-11  Eric Seidel  <eric@webkit.org>
78145
78146        Move WebVTTToken off of MarkupTokenBase
78147        https://bugs.webkit.org/show_bug.cgi?id=109410
78148
78149        Reviewed by Tony Gentilcore.
78150
78151        This introduces a small amount of "copy/paste" code
78152        but actually makes WebVTTToken much smaller and simpler!
78153        This also frees the HTMLParser to have its Token class
78154        back to itself so we can tune it to make HTML faster.
78155
78156        * html/track/WebVTTToken.h:
78157        (WebVTTToken):
78158        (WebCore::WebVTTToken::WebVTTToken):
78159        (WebCore::WebVTTToken::appendToName):
78160        (WebCore::WebVTTToken::type):
78161        (WebCore::WebVTTToken::name):
78162        (WebCore::WebVTTToken::ensureIsCharacterToken):
78163        (WebCore::WebVTTToken::appendToCharacter):
78164        (WebCore::WebVTTToken::beginEmptyStartTag):
78165        (WebCore::WebVTTToken::beginStartTag):
78166        (WebCore::WebVTTToken::beginEndTag):
78167        (WebCore::WebVTTToken::beginTimestampTag):
78168        (WebCore::WebVTTToken::makeEndOfFile):
78169        (WebCore::WebVTTToken::clear):
78170
781712013-02-11  Joshua Bell  <jsbell@chromium.org>
78172
78173        [V8] IndexedDB: Minor GC can collect IDBDatabase wrapper with versionchange handler
78174        https://bugs.webkit.org/show_bug.cgi?id=108670
78175
78176        Reviewed by Kentaro Hara.
78177
78178        Prevent IDBDatabase's wrapper from being GC'd while the database is open if it has
78179        listeners, as those listeners may close the database in response to events.
78180
78181        Also, removed extraneous super-calls from hasPendingActivity() overrides.
78182
78183        Test: storage/indexeddb/database-wrapper.html
78184
78185        * Modules/indexeddb/IDBDatabase.cpp:
78186        (WebCore::IDBDatabase::hasPendingActivity): Implemented.
78187        * Modules/indexeddb/IDBDatabase.h: Declared.
78188        * Modules/indexeddb/IDBRequest.cpp:
78189        (WebCore::IDBRequest::hasPendingActivity): Simplified.
78190        * Modules/indexeddb/IDBTransaction.cpp:
78191        (WebCore::IDBTransaction::hasPendingActivity): Simplified.
78192
781932013-02-11  Eric Seidel  <eric@webkit.org>
78194
78195        Remove AttributeBase now that NEW_XML is gone
78196        https://bugs.webkit.org/show_bug.cgi?id=109408
78197
78198        Reviewed by Adam Barth.
78199
78200        Just deleting code.  HTMLToken::Attribute is now just
78201        the real class and not a typedef.
78202
78203        * html/parser/CompactHTMLToken.cpp:
78204        (WebCore::CompactHTMLToken::CompactHTMLToken):
78205        * html/parser/HTMLTokenizer.cpp:
78206        (WebCore::AtomicHTMLToken::nameForAttribute):
78207        * xml/parser/MarkupTokenBase.h:
78208        (WebCore):
78209        (MarkupTokenBase):
78210        (Attribute):
78211        (Range):
78212
782132013-02-11  Eric Seidel  <eric@webkit.org>
78214
78215        Rename PreloadTask to StartTagScanner to match its purpose
78216        https://bugs.webkit.org/show_bug.cgi?id=109406
78217
78218        Reviewed by Sam Weinig.
78219
78220        As discussed in bug 107807.
78221
78222        * html/parser/HTMLPreloadScanner.cpp:
78223        (WebCore::StartTagScanner::StartTagScanner):
78224        (WebCore::StartTagScanner::processAttributes):
78225        (WebCore::HTMLPreloadScanner::processToken):
78226
782272013-02-11  Vsevolod Vlasov  <vsevik@chromium.org>
78228
78229        Web Inspector: WebInspector.Project refactorings.
78230        https://bugs.webkit.org/show_bug.cgi?id=109433
78231
78232        Reviewed by Alexander Pavlov.
78233
78234        This change prepares Workspace and Project to migration to project-per-domain mode for network based projects.
78235        Renamed WebInspector.WorkspaceProvider to WebInspector.ProjectDelegate.
78236        Renamed Project.name() to Project.id() and delegated it to project delegate.
78237        Added Project.displayName() method that is delegated to project delegate.
78238        SimpleWorkspaceProvider is now responsible for creation of SimpleWorkspaceDelegates and
78239        isolates various mappings from Project/ProjectDelegate concept.
78240        UISourceCode is now created based on path in the project.
78241        UISourceCode uri is now calculated based on project and path (right now uri is equal to path).
78242
78243        * WebCore.gypi:
78244        * WebCore.vcproj/WebCore.vcproj:
78245        * inspector/compile-front-end.py:
78246        * inspector/front-end/FileSystemProjectDelegate.js: Renamed from Source/WebCore/inspector/front-end/FileSystemWorkspaceProvider.js.
78247        (WebInspector.FileSystemProjectDelegate):
78248        (WebInspector.FileSystemProjectDelegate.prototype.id):
78249        (WebInspector.FileSystemProjectDelegate.prototype.type):
78250        (WebInspector.FileSystemProjectDelegate.prototype.displayName):
78251        (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
78252        (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
78253        (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
78254        (WebInspector.FileSystemProjectDelegate.prototype.contentCallback):
78255        (WebInspector.FileSystemProjectDelegate.prototype.searchInFileContent):
78256        (WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
78257        (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
78258        (WebInspector.FileSystemProjectDelegate.prototype._populate):
78259        (WebInspector.FileSystemProjectDelegate.prototype._addFile):
78260        (WebInspector.FileSystemProjectDelegate.prototype._removeFile):
78261        (WebInspector.FileSystemProjectDelegate.prototype.reset):
78262        (WebInspector.FileSystemUtils):
78263        (WebInspector.FileSystemUtils.errorHandler):
78264        (WebInspector.FileSystemUtils.requestFileSystem):
78265        (.fileSystemLoaded):
78266        (.innerCallback):
78267        (WebInspector.FileSystemUtils.requestFilesRecursive):
78268        (.fileEntryLoaded):
78269        (.fileLoaded):
78270        (.readerLoadEnd):
78271        (WebInspector.FileSystemUtils.requestFileContent):
78272        (.fileWriterCreated.fileTruncated):
78273        (.fileWriterCreated):
78274        (.writerEnd):
78275        (WebInspector.FileSystemUtils.setFileContent):
78276        (WebInspector.FileSystemUtils._getDirectory):
78277        (.toArray):
78278        (WebInspector.FileSystemUtils._readDirectory):
78279        (WebInspector.FileSystemUtils._requestEntries):
78280        * inspector/front-end/IsolatedFileSystemModel.js:
78281        (WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
78282        * inspector/front-end/SimpleWorkspaceProvider.js:
78283        (WebInspector.SimpleProjectDelegate):
78284        (WebInspector.SimpleProjectDelegate.prototype.id):
78285        (WebInspector.SimpleProjectDelegate.prototype.displayName):
78286        (WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
78287        (WebInspector.SimpleProjectDelegate.prototype.setFileContent):
78288        (WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
78289        (WebInspector.SimpleProjectDelegate.prototype.addFile):
78290        (WebInspector.SimpleProjectDelegate.prototype._uniquePath):
78291        (WebInspector.SimpleProjectDelegate.prototype.removeFile):
78292        (WebInspector.SimpleProjectDelegate.prototype.reset):
78293        (WebInspector.SimpleWorkspaceProvider):
78294        (WebInspector.SimpleWorkspaceProvider.uriForURL):
78295        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
78296        (WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
78297        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
78298        (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
78299        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
78300        * inspector/front-end/UISourceCode.js:
78301        (WebInspector.UISourceCode):
78302        (WebInspector.UISourceCode.prototype.path):
78303        (WebInspector.UISourceCode.prototype.uri):
78304        * inspector/front-end/WebKit.qrc:
78305        * inspector/front-end/Workspace.js:
78306        (WebInspector.FileDescriptor):
78307        (WebInspector.ProjectDelegate):
78308        (WebInspector.ProjectDelegate.prototype.id):
78309        (WebInspector.ProjectDelegate.prototype.displayName):
78310        (WebInspector.ProjectDelegate.prototype.requestFileContent):
78311        (WebInspector.ProjectDelegate.prototype.setFileContent):
78312        (WebInspector.ProjectDelegate.prototype.searchInFileContent):
78313        (WebInspector.Project):
78314        (WebInspector.Project.prototype.id):
78315        (WebInspector.Project.prototype.type):
78316        (WebInspector.Project.prototype.displayName):
78317        (WebInspector.Project.prototype.isServiceProject):
78318        (WebInspector.Project.prototype._fileAdded):
78319        (WebInspector.Project.prototype._fileRemoved):
78320        (WebInspector.Project.prototype._reset):
78321        (WebInspector.Project.prototype.uiSourceCode):
78322        (WebInspector.Project.prototype.uiSourceCodeForOriginURL):
78323        (WebInspector.Project.prototype.uiSourceCodeForURI):
78324        (WebInspector.Project.prototype.uiSourceCodes):
78325        (WebInspector.Project.prototype.requestFileContent):
78326        (WebInspector.Project.prototype.setFileContent):
78327        (WebInspector.Project.prototype.searchInFileContent):
78328        (WebInspector.Project.prototype.dispose):
78329        (WebInspector.Workspace.prototype.uiSourceCode):
78330        (WebInspector.Workspace.prototype.uiSourceCodeForURI):
78331        (WebInspector.Workspace.prototype.addProject):
78332        (WebInspector.Workspace.prototype.removeProject):
78333        (WebInspector.Workspace.prototype.project):
78334        (WebInspector.Workspace.prototype.uiSourceCodes):
78335        (WebInspector.Workspace.prototype.projectForUISourceCode):
78336        * inspector/front-end/inspector.html:
78337
783382013-02-11  Yury Semikhatsky  <yurys@chromium.org>
78339
78340        Web Inspector: fix closure compiler warnings in the profiler code
78341        https://bugs.webkit.org/show_bug.cgi?id=109432
78342
78343        Reviewed by Pavel Feldman.
78344
78345        Updated type annotations to match the code.
78346
78347        * inspector/front-end/NativeMemorySnapshotView.js:
78348        * inspector/front-end/ProfilesPanel.js:
78349
783502013-02-11  Alexander Shalamov  <alexander.shalamov@intel.com>
78351
78352        [QT] Regression (r142444): Broke qt linux minimal build
78353        https://bugs.webkit.org/show_bug.cgi?id=109423
78354
78355        Reviewed by Kenneth Rohde Christiansen.
78356
78357        Test: cssom/cssvalue-comparison.html
78358
78359        * css/CSSValue.cpp:
78360        (WebCore::CSSValue::equals):
78361
783622013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>
78363
78364        Web Inspector: introduce WebInspector.TextUtils
78365        https://bugs.webkit.org/show_bug.cgi?id=109289
78366
78367        Reviewed by Pavel Feldman.
78368
78369        Add new WebInspector.TextUtils file and extract commonly used
78370        text-operation subroutines from DefaultTextEditor into it.
78371
78372        No new tests: no change in behaviour.
78373
78374        * WebCore.gypi:
78375        * WebCore.vcproj/WebCore.vcproj:
78376        * inspector/compile-front-end.py:
78377        * inspector/front-end/DefaultTextEditor.js:
78378        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
78379        (WebInspector.DefaultTextEditor.WordMovementController.prototype._rangeForCtrlArrowMove):
78380        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
78381        * inspector/front-end/TextUtils.js: Added.
78382        (WebInspector.TextUtils.isStopChar):
78383        (WebInspector.TextUtils.isWordChar):
78384        (WebInspector.TextUtils.isSpaceChar):
78385        (WebInspector.TextUtils.isWord):
78386        (WebInspector.TextUtils.isBraceChar):
78387        * inspector/front-end/WebKit.qrc:
78388        * inspector/front-end/inspector.html:
78389
783902013-02-11  Zan Dobersek  <zdobersek@igalia.com>
78391
78392        [GTK][Clang] Build errors in LocalizedStringsGtk.cpp
78393        https://bugs.webkit.org/show_bug.cgi?id=109418
78394
78395        Reviewed by Philippe Normand.
78396
78397        Use the C++ isfinite(float) and abs(float) (instead of fabsf(float))
78398        methods by including the WTF MathExtras.h header. Use a static cast to
78399        an integer type on the float return value of the abs(float) method call
78400        instead of the C-style cast.
78401
78402        No new tests - no new functiolnality.
78403
78404        * platform/gtk/LocalizedStringsGtk.cpp:
78405        (WebCore::localizedMediaTimeDescription):
78406
784072013-02-11  Zan Dobersek  <zdobersek@igalia.com>
78408
78409        Unreviewed build fix for the WTFURL backend of KURL.
78410
78411        * platform/KURL.cpp:
78412        (WebCore::KURL::isSafeToSendToAnotherThread): m_urlImpl is of RefPtr type so use
78413        the appropriate operator on it when calling the isSafeToSendToAnotherThread method.
78414
784152013-02-11  Mike West  <mkwst@chromium.org>
78416
78417        Range::collapsed callers should explicitly ASSERT_NO_EXCEPTION.
78418        https://bugs.webkit.org/show_bug.cgi?id=108921
78419
78420        Reviewed by Jochen Eisinger.
78421
78422        For clarity and consistency, this patch adjusts Range::collapsed() to
78423        drop the default value of the ExceptionCode parameter it accepts. The
78424        three call sites that called the method with no arguments (all part of
78425        Editor::rangeOfString) will now explicitly ASSERT_NO_EXCEPTION.
78426
78427        * dom/Range.h:
78428        (Range):
78429        * editing/Editor.cpp:
78430        (WebCore::Editor::rangeOfString):
78431
784322013-02-11  Alexei Filippov  <alph@chromium.org>
78433
78434        Web Inspector: Split Profiler domain in protocol into Profiler and HeapProfiler
78435        https://bugs.webkit.org/show_bug.cgi?id=108653
78436
78437        Reviewed by Yury Semikhatsky.
78438
78439        Currently CPU and heap profilers share the same domain 'Profiler' in the protocol.
78440        In fact these two profile types have not too much in common. So put each into its own domain.
78441        It should also help when Profiles panel gets split into several tools.
78442        This is the phase 1 which adds InspectorHeapProfilerAgent but doesn't
78443        change the original InspectorProfilerAgent.
78444
78445        * CMakeLists.txt:
78446        * GNUmakefile.list.am:
78447        * Target.pri:
78448        * WebCore.gypi:
78449        * WebCore.vcproj/WebCore.vcproj:
78450        * WebCore.vcxproj/WebCore.vcxproj:
78451        * WebCore.vcxproj/WebCore.vcxproj.filters:
78452        * WebCore.xcodeproj/project.pbxproj:
78453        * inspector/Inspector.json:
78454        * inspector/InspectorAllInOne.cpp:
78455        * inspector/InspectorController.cpp:
78456        (WebCore::InspectorController::InspectorController):
78457        * inspector/InspectorHeapProfilerAgent.cpp: Added.
78458        (WebCore):
78459        (WebCore::InspectorHeapProfilerAgent::create):
78460        (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
78461        (WebCore::InspectorHeapProfilerAgent::~InspectorHeapProfilerAgent):
78462        (WebCore::InspectorHeapProfilerAgent::resetState):
78463        (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
78464        (WebCore::InspectorHeapProfilerAgent::setFrontend):
78465        (WebCore::InspectorHeapProfilerAgent::clearFrontend):
78466        (WebCore::InspectorHeapProfilerAgent::restore):
78467        (WebCore::InspectorHeapProfilerAgent::collectGarbage):
78468        (WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
78469        (WebCore::InspectorHeapProfilerAgent::hasHeapProfiler):
78470        (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
78471        (WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
78472        (WebCore::InspectorHeapProfilerAgent::removeProfile):
78473        (WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
78474        (WebCore::InspectorHeapProfilerAgent::getObjectByHeapObjectId):
78475        (WebCore::InspectorHeapProfilerAgent::getHeapObjectId):
78476        (WebCore::InspectorHeapProfilerAgent::reportMemoryUsage):
78477        * inspector/InspectorHeapProfilerAgent.h: Added.
78478        (WebCore):
78479        (InspectorHeapProfilerAgent):
78480        (WebCore::InspectorHeapProfilerAgent::clearProfiles):
78481        * inspector/InspectorInstrumentation.cpp:
78482        (WebCore):
78483        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
78484        * inspector/InstrumentingAgents.h:
78485        (WebCore):
78486        (InstrumentingAgents):
78487        (WebCore::InstrumentingAgents::inspectorHeapProfilerAgent):
78488        (WebCore::InstrumentingAgents::setInspectorHeapProfilerAgent):
78489        * inspector/WorkerInspectorController.cpp:
78490        (WebCore::WorkerInspectorController::WorkerInspectorController):
78491        * inspector/front-end/HeapSnapshotDataGrids.js:
78492        * inspector/front-end/HeapSnapshotGridNodes.js:
78493        (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
78494        * inspector/front-end/HeapSnapshotView.js:
78495        (WebInspector.HeapProfileHeader.prototype.startSnapshotTransfer):
78496        (WebInspector.HeapProfileHeader.prototype.saveToFile.onOpen):
78497        (WebInspector.HeapProfileHeader.prototype.saveToFile):
78498        * inspector/front-end/ProfilesPanel.js:
78499        (WebInspector.ProfilesPanel):
78500        (WebInspector.ProfilesPanel.prototype._clearProfiles):
78501        (WebInspector.ProfilesPanel.prototype._garbageCollectButtonClicked):
78502        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
78503        (WebInspector.ProfilesPanel.prototype._populateProfiles.var):
78504        (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback):
78505        (WebInspector.ProfilesPanel.prototype._populateProfiles):
78506        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
78507        (WebInspector.ProfilesPanel.prototype.revealInView):
78508        (WebInspector.HeapProfilerDispatcher):
78509        (WebInspector.HeapProfilerDispatcher.prototype.addProfileHeader):
78510        (WebInspector.HeapProfilerDispatcher.prototype.addHeapSnapshotChunk):
78511        (WebInspector.HeapProfilerDispatcher.prototype.finishHeapSnapshot):
78512        (WebInspector.HeapProfilerDispatcher.prototype.resetProfiles):
78513        (WebInspector.HeapProfilerDispatcher.prototype.reportHeapSnapshotProgress):
78514        * inspector/front-end/TimelinePanel.js:
78515        (WebInspector.TimelinePanel.prototype._garbageCollectButtonClicked):
78516        * inspector/front-end/inspector.js:
78517        (WebInspector.doLoadedDone):
78518
785192013-02-11  Mike West  <mkwst@chromium.org>
78520
78521        Use IGNORE_EXCEPTION for Editor::countMatchesForText's ignored exceptions.
78522        https://bugs.webkit.org/show_bug.cgi?id=109372
78523
78524        Reviewed by Jochen Eisinger.
78525
78526        Rather than implicitly ignoring exceptions, we should use the
78527        IGNORE_EXCEPTION macro for clarity.
78528
78529        * editing/Editor.cpp:
78530        (WebCore::Editor::countMatchesForText):
78531
785322013-02-11  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
78533
78534        [Qt] Unreviewed. Fix minimal build after r142444.
78535
78536        * css/CSSValue.cpp:
78537        (WebCore::CSSValue::equals):
78538
785392013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
78540
78541        [EFL] Stop using smart pointers for Ecore_Timer
78542        https://bugs.webkit.org/show_bug.cgi?id=109409
78543
78544        Reviewed by Kenneth Rohde Christiansen.
78545
78546        Stop using a smart pointer for Ecore_Timer in RunLoop::TimerBase. This
78547        is a bad idea because the timer handle becomes invalid as soon as the
78548        timer callback returns ECORE_CALLBACK_CANCEL. This may lead to crashes
78549        on destruction because OwnPtr calls ecore_timer_del() on an invalid
78550        handle.
78551
78552        No new tests, already covered by exiting tests.
78553
78554        * platform/RunLoop.h:
78555        (TimerBase):
78556        * platform/efl/RunLoopEfl.cpp:
78557        (WebCore::RunLoop::TimerBase::timerFired):
78558        (WebCore::RunLoop::TimerBase::start):
78559        (WebCore::RunLoop::TimerBase::stop):
78560
785612013-02-11  Vladislav Kaznacheev  <kaznacheev@chromium.org>
78562
78563        Web Inspector: Allow SplitView to keep the sidebar size as a fraction of the container size
78564        https://bugs.webkit.org/show_bug.cgi?id=109414
78565
78566        Reviewed by Vsevolod Vlasov.
78567
78568        SplitView now interprets defaultSidebarWidth and defaultSidebarHeight values between 0 and 1 as
78569        fractions of the total container size. The sidebar then will grow or shrink along with the container.
78570        When the sidebar is resized manually the updated ratio is stored in the settings.
78571
78572        * inspector/front-end/SplitView.js:
78573        (WebInspector.SplitView):
78574        (WebInspector.SplitView.prototype._removeAllLayoutProperties):
78575        (WebInspector.SplitView.prototype._updateTotalSize):
78576        (WebInspector.SplitView.prototype._innerSetSidebarSize):
78577        (WebInspector.SplitView.prototype._saveSidebarSize):
78578
785792013-02-11  Pavel Feldman  <pfeldman@chromium.org>
78580
78581        Web Inspector: highlight DOM nodes on hover while debugging
78582        https://bugs.webkit.org/show_bug.cgi?id=109355
78583
78584        Reviewed by Vsevolod Vlasov.
78585
78586        Along with showing the popover, highlight the remote object as node.
78587
78588        * inspector/front-end/ObjectPopoverHelper.js:
78589        (WebInspector.ObjectPopoverHelper.prototype.):
78590        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
78591        (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):
78592
785932013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>
78594
78595        Web Inspector: displaying whitespace characters is broken
78596        https://bugs.webkit.org/show_bug.cgi?id=109412
78597
78598        Reviewed by Vsevolod Vlasov.
78599
78600        Add "pointer-events: none" rule for pseudo-class "before", which
78601        maintains rendering of whitespace characters.
78602
78603        No new tests.
78604
78605        * inspector/front-end/inspectorSyntaxHighlight.css:
78606        (.webkit-whitespace::before):
78607
786082013-02-11  Alexander Pavlov  <apavlov@chromium.org>
78609
78610        Web Inspector: Implement position-based sourcemapping for stylesheets
78611        https://bugs.webkit.org/show_bug.cgi?id=109168
78612
78613        Reviewed by Vsevolod Vlasov.
78614
78615        This change introduces support for position-based source maps for CSS stylesheets.
78616        Sourcemaps and originating resources (sass, scss, etc.) are loaded synchronously
78617        upon the CSS UISourceCode addition. RangeBasedSourceMap is removed as it is not used.
78618
78619        Test: http/tests/inspector/stylesheet-source-mapping.html
78620
78621        * inspector/front-end/CSSStyleModel.js:
78622        (WebInspector.CSSStyleModel):
78623        (WebInspector.CSSStyleModel.prototype.setSourceMapping):
78624        (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
78625        (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
78626        (WebInspector.CSSLocation):
78627        (WebInspector.CSSProperty):
78628        (WebInspector.CSSProperty.parsePayload):
78629        * inspector/front-end/CompilerScriptMapping.js:
78630        (WebInspector.CompilerScriptMapping):
78631        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
78632        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
78633        * inspector/front-end/SASSSourceMapping.js:
78634        (WebInspector.SASSSourceMapping):
78635        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
78636        (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
78637        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
78638        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
78639        (WebInspector.SASSSourceMapping.prototype._resourceAdded):
78640        (WebInspector.SASSSourceMapping.prototype._loadAndProcessSourceMap):
78641        (WebInspector.SASSSourceMapping.prototype.loadSourceMapForStyleSheet):
78642        (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
78643        (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
78644        (WebInspector.SASSSourceMapping.prototype.uiLocationToRawLocation):
78645        (WebInspector.SASSSourceMapping.prototype._reset):
78646        * inspector/front-end/SourceMap.js:
78647        (WebInspector.SourceMap):
78648        (WebInspector.SourceMap.load):
78649        (WebInspector.SourceMap.prototype.findEntry):
78650        (WebInspector.SourceMap.prototype.findEntryReversed):
78651        (WebInspector.SourceMap.prototype._parseMap):
78652        * inspector/front-end/StylesSourceMapping.js:
78653        (WebInspector.StylesSourceMapping):
78654        (WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
78655        * inspector/front-end/inspector.js:
78656
786572013-02-11  Alexander Shalamov  <alexander.shalamov@intel.com>
78658
78659        Implement CSSValue::equals(const CSSValue&) to optimise CSSValue comparison
78660        https://bugs.webkit.org/show_bug.cgi?id=102901
78661
78662        Reviewed by Antti Koivisto.
78663
78664        Added comparison method to CSSValue and its children, so that the
78665        css values could be compared efficiently. Before this patch, CSSValue
78666        objects were compared using strings that were generated by the cssText() method.
78667
78668        Test: cssom/cssvalue-comparison.html
78669
78670        * css/CSSAspectRatioValue.cpp:
78671        (WebCore::CSSAspectRatioValue::equals):
78672        (WebCore):
78673        * css/CSSAspectRatioValue.h:
78674        (CSSAspectRatioValue):
78675        * css/CSSBasicShapes.cpp:
78676        (WebCore::CSSBasicShapeRectangle::equals):
78677        (WebCore):
78678        (WebCore::CSSBasicShapeCircle::equals):
78679        (WebCore::CSSBasicShapeEllipse::equals):
78680        (WebCore::CSSBasicShapePolygon::equals):
78681        * css/CSSBasicShapes.h:
78682        (CSSBasicShapeRectangle):
78683        (CSSBasicShapeCircle):
78684        (CSSBasicShapeEllipse):
78685        (CSSBasicShapePolygon):
78686        * css/CSSBorderImageSliceValue.cpp:
78687        (WebCore::CSSBorderImageSliceValue::equals):
78688        (WebCore):
78689        * css/CSSBorderImageSliceValue.h:
78690        (CSSBorderImageSliceValue):
78691        * css/CSSCalculationValue.cpp:
78692        (WebCore::CSSCalcValue::equals):
78693        (WebCore):
78694        (WebCore::CSSCalcPrimitiveValue::equals):
78695        (CSSCalcPrimitiveValue):
78696        (WebCore::CSSCalcPrimitiveValue::type):
78697        (WebCore::CSSCalcBinaryOperation::equals):
78698        (CSSCalcBinaryOperation):
78699        (WebCore::CSSCalcBinaryOperation::type):
78700        * css/CSSCalculationValue.h:
78701        (WebCore::CSSCalcExpressionNode::equals):
78702        (CSSCalcExpressionNode):
78703        (CSSCalcValue):
78704        * css/CSSCanvasValue.cpp:
78705        (WebCore::CSSCanvasValue::equals):
78706        (WebCore):
78707        * css/CSSCanvasValue.h:
78708        (CSSCanvasValue):
78709        * css/CSSComputedStyleDeclaration.cpp:
78710        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
78711        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
78712        (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
78713        * css/CSSCrossfadeValue.cpp:
78714        (WebCore::CSSCrossfadeValue::equals):
78715        (WebCore):
78716        * css/CSSCrossfadeValue.h:
78717        (CSSCrossfadeValue):
78718        * css/CSSCursorImageValue.cpp:
78719        (WebCore::CSSCursorImageValue::equals):
78720        (WebCore):
78721        * css/CSSCursorImageValue.h:
78722        (CSSCursorImageValue):
78723        * css/CSSFontFaceSrcValue.cpp:
78724        (WebCore::CSSFontFaceSrcValue::equals):
78725        (WebCore):
78726        * css/CSSFontFaceSrcValue.h:
78727        (CSSFontFaceSrcValue):
78728        * css/CSSFunctionValue.cpp:
78729        (WebCore::CSSFunctionValue::equals):
78730        (WebCore):
78731        * css/CSSFunctionValue.h:
78732        (CSSFunctionValue):
78733        * css/CSSGradientValue.cpp:
78734        (WebCore::CSSLinearGradientValue::equals):
78735        (WebCore):
78736        (WebCore::CSSRadialGradientValue::equals):
78737        * css/CSSGradientValue.h:
78738        (WebCore::CSSGradientColorStop::operator==):
78739        (CSSLinearGradientValue):
78740        (CSSRadialGradientValue):
78741        * css/CSSImageValue.cpp:
78742        (WebCore::CSSImageValue::equals):
78743        (WebCore):
78744        * css/CSSImageValue.h:
78745        (CSSImageValue):
78746        * css/CSSInheritedValue.h:
78747        (WebCore::CSSInheritedValue::equals):
78748        (CSSInheritedValue):
78749        * css/CSSInitialValue.h:
78750        (WebCore::CSSInitialValue::equals):
78751        (CSSInitialValue):
78752        * css/CSSLineBoxContainValue.h:
78753        (WebCore::CSSLineBoxContainValue::equals):
78754        * css/CSSPrimitiveValue.cpp:
78755        (WebCore::CSSPrimitiveValue::equals):
78756        (WebCore):
78757        * css/CSSPrimitiveValue.h:
78758        (CSSPrimitiveValue):
78759        * css/CSSReflectValue.cpp:
78760        (WebCore::CSSReflectValue::equals):
78761        (WebCore):
78762        * css/CSSReflectValue.h:
78763        (CSSReflectValue):
78764        * css/CSSTimingFunctionValue.cpp:
78765        (WebCore::CSSCubicBezierTimingFunctionValue::equals):
78766        (WebCore):
78767        (WebCore::CSSStepsTimingFunctionValue::equals):
78768        * css/CSSTimingFunctionValue.h:
78769        (WebCore::CSSLinearTimingFunctionValue::equals):
78770        (CSSLinearTimingFunctionValue):
78771        (CSSCubicBezierTimingFunctionValue):
78772        (CSSStepsTimingFunctionValue):
78773        * css/CSSUnicodeRangeValue.cpp:
78774        (WebCore::CSSUnicodeRangeValue::equals):
78775        (WebCore):
78776        * css/CSSUnicodeRangeValue.h:
78777        (CSSUnicodeRangeValue):
78778        * css/CSSValue.cpp:
78779        (WebCore):
78780        (WebCore::compareCSSValues):
78781        (WebCore::CSSValue::equals):
78782        * css/CSSValue.h:
78783        (CSSValue):
78784        (WebCore):
78785        (WebCore::compareCSSValueVector):
78786        (WebCore::compareCSSValuePtr):
78787        * css/CSSValueList.cpp:
78788        (WebCore::CSSValueList::removeAll):
78789        (WebCore::CSSValueList::hasValue):
78790        (WebCore::CSSValueList::equals):
78791        (WebCore):
78792        * css/CSSValueList.h:
78793        (CSSValueList):
78794        * css/CSSVariableValue.h:
78795        (WebCore::CSSVariableValue::equals):
78796        (CSSVariableValue):
78797        * css/Counter.h:
78798        (Counter):
78799        (WebCore::Counter::equals):
78800        * css/DashboardRegion.h:
78801        (WebCore::DashboardRegion::equals):
78802        * css/FontFeatureValue.cpp:
78803        (WebCore::FontFeatureValue::equals):
78804        (WebCore):
78805        * css/FontFeatureValue.h:
78806        (FontFeatureValue):
78807        * css/FontValue.cpp:
78808        (WebCore::FontValue::equals):
78809        (WebCore):
78810        * css/FontValue.h:
78811        (FontValue):
78812        * css/MediaQueryExp.h:
78813        (WebCore::MediaQueryExp::operator==):
78814        * css/Pair.h:
78815        (WebCore::Pair::equals):
78816        (Pair):
78817        * css/Rect.h:
78818        (WebCore::RectBase::equals):
78819        (RectBase):
78820        * css/ShadowValue.cpp:
78821        (WebCore::ShadowValue::equals):
78822        (WebCore):
78823        * css/ShadowValue.h:
78824        (ShadowValue):
78825        * css/StylePropertySet.cpp:
78826        (WebCore::StylePropertySet::get4Values):
78827        (WebCore::StylePropertySet::propertyMatches):
78828        * css/WebKitCSSArrayFunctionValue.cpp:
78829        (WebCore::WebKitCSSArrayFunctionValue::equals):
78830        (WebCore):
78831        * css/WebKitCSSArrayFunctionValue.h:
78832        (WebKitCSSArrayFunctionValue):
78833        * css/WebKitCSSFilterValue.cpp:
78834        (WebCore::WebKitCSSFilterValue::equals):
78835        (WebCore):
78836        * css/WebKitCSSFilterValue.h:
78837        (WebKitCSSFilterValue):
78838        * css/WebKitCSSMixFunctionValue.cpp:
78839        (WebCore::WebKitCSSMixFunctionValue::equals):
78840        (WebCore):
78841        * css/WebKitCSSMixFunctionValue.h:
78842        (WebKitCSSMixFunctionValue):
78843        * css/WebKitCSSSVGDocumentValue.cpp:
78844        (WebCore::WebKitCSSSVGDocumentValue::equals):
78845        (WebCore):
78846        * css/WebKitCSSSVGDocumentValue.h:
78847        (WebKitCSSSVGDocumentValue):
78848        * css/WebKitCSSShaderValue.cpp:
78849        (WebCore::WebKitCSSShaderValue::equals):
78850        (WebCore):
78851        * css/WebKitCSSShaderValue.h:
78852        (WebKitCSSShaderValue):
78853        * css/WebKitCSSTransformValue.h:
78854        (WebCore::WebKitCSSTransformValue::equals):
78855        * editing/EditingStyle.cpp:
78856        (WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
78857        * svg/SVGColor.cpp:
78858        (WebCore::SVGColor::equals):
78859        (WebCore):
78860        * svg/SVGColor.h:
78861        (SVGColor):
78862        * svg/SVGPaint.cpp:
78863        (WebCore::SVGPaint::equals):
78864        (WebCore):
78865        * svg/SVGPaint.h:
78866        (SVGPaint):
78867
788682013-02-11  Pan Deng  <pan.deng@intel.com>
78869
78870        [Web Inspector] Network panel, sort by "transferSize" instead of "resourceSize".
78871        https://bugs.webkit.org/show_bug.cgi?id=109142.
78872
78873        Reviewed by Vsevolod Vlasov.
78874
78875        Sort by "transferSize" as it is the primary rather than "resoureSize".
78876
78877        No new tests.
78878
78879        * inspector/front-end/NetworkPanel.js:
78880        (WebInspector.NetworkDataGridNode.SizeComparator):
78881
788822013-02-11  Eugene Klyuchnikov  <eustas@chromium.org>
78883
78884        Web Inspector: [Resources] Prefactorings in DataGrid and CookieTable
78885        https://bugs.webkit.org/show_bug.cgi?id=109141
78886
78887        Reviewed by Vsevolod Vlasov.
78888
78889        1) Make deleteCookie method static and move to WebInspector.Cookie
78890        2) Replace resfreshCallback getter/setter in DataGrid with
78891        constructor parameter
78892
78893        * inspector/front-end/CookieItemsView.js: Adopt changes.
78894        * inspector/front-end/CookieParser.js:
78895        (WebInspector.Cookie.prototype.remove): Moved from CookiesTable.
78896        * inspector/front-end/CookiesTable.js: Adopt changes.
78897        * inspector/front-end/DataGrid.js:
78898        Replace setter with constructor parameter.
78899
789002013-02-11  John J. Barton  <johnjbarton@chromium.org>
78901
78902        Web Inspector: Don't throw exceptions in WebInspector.Color
78903        https://bugs.webkit.org/show_bug.cgi?id=104835
78904
78905        Reviewed by Vsevolod Vlasov.
78906
78907        WebInspector.Color.parse() returns a Color from a string, or null;
78908        Ctor calls now call parse();
78909        In the StylesSideBarPane, test null rather than catch(e).
78910
78911        Added case to inspector/styles/styles-invalid-color-values.html
78912
78913        * inspector/front-end/Color.js:
78914        (WebInspector.Color):
78915        (WebInspector.Color.parse):
78916        (WebInspector.Color.fromRGBA):
78917        (WebInspector.Color.fromRGB):
78918        (WebInspector.Color.prototype.toString):
78919        (WebInspector.Color.prototype._parse.this.alpha.set 0):
78920        (WebInspector.Color.prototype._parse.this.nickname.set 2):
78921        (WebInspector.Color.prototype._parse.this.hsla.set 1):
78922        (WebInspector.Color.prototype._parse.this.rgba.set 0):
78923        (WebInspector.Color.prototype._parse.set WebInspector):
78924        (WebInspector.Color.prototype._parse):
78925        * inspector/front-end/Spectrum.js:
78926        (WebInspector.Spectrum.prototype.get color):
78927        * inspector/front-end/StylesSidebarPane.js:
78928
789292013-02-11  Andrey Lushnikov  <lushnikov@chromium.org>
78930
78931        Web Inspector: home button behaviour is wrong in DTE
78932        https://bugs.webkit.org/show_bug.cgi?id=109154
78933
78934        Reviewed by Vsevolod Vlasov.
78935
78936        Handle home key shortcut explicitly in TextEditorMainPanel.
78937
78938        New test: inspector/editor/text-editor-home-button.html
78939
78940        * inspector/front-end/DefaultTextEditor.js:
78941        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
78942        (WebInspector.TextEditorMainPanel.prototype._handleHomeKey):
78943
789442013-02-11  Abhishek Arya  <inferno@chromium.org>
78945
78946        Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
78947        https://bugs.webkit.org/show_bug.cgi?id=108981
78948
78949        Reviewed by Eric Seidel.
78950
78951        * Modules/mediastream/RTCStatsResponse.cpp:
78952        (WebCore::RTCStatsResponse::addElement):
78953        (WebCore::RTCStatsResponse::addStatistic):
78954        * Modules/websockets/WebSocketChannel.cpp:
78955        (WebCore::WebSocketChannel::skipBuffer):
78956        * css/CSSCalculationValue.cpp:
78957        (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
78958        (WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
78959        * css/WebKitCSSTransformValue.cpp:
78960        (WebCore::transformValueToCssString):
78961        * editing/TextIterator.cpp:
78962        (WebCore::SearchBuffer::search):
78963        * html/HTMLElement.cpp:
78964        (WebCore::parseColorStringWithCrazyLegacyRules):
78965        * html/ImageData.cpp:
78966        (WebCore::ImageData::ImageData):
78967        * html/shadow/DateTimeSymbolicFieldElement.cpp:
78968        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
78969        * html/track/TextTrackCueList.cpp:
78970        (WebCore::TextTrackCueList::add):
78971        * platform/SharedBuffer.cpp:
78972        (WebCore::SharedBuffer::getSomeData):
78973        * platform/SharedBufferChunkReader.cpp:
78974        (WebCore::SharedBufferChunkReader::nextChunk):
78975        * platform/audio/HRTFDatabase.cpp:
78976        (WebCore::HRTFDatabase::getKernelsFromAzimuthElevation):
78977        * platform/graphics/GlyphPageTreeNode.cpp:
78978        (WebCore::GlyphPageTreeNode::initializePage):
78979        * platform/graphics/Region.cpp:
78980        (WebCore::Region::Shape::segments_end):
78981        * platform/graphics/filters/FEComponentTransfer.cpp:
78982        (WebCore::FEComponentTransfer::getValues):
78983        * platform/graphics/filters/FilterEffect.cpp:
78984        (WebCore::FilterEffect::inputEffect):
78985        * platform/text/TextCodecUTF8.cpp:
78986        (WebCore::TextCodecUTF8::decode):
78987        * platform/text/mac/TextCodecMac.cpp:
78988        (WebCore::TextCodecMac::decode):
78989        * rendering/RenderBlockLineLayout.cpp:
78990        (WebCore::RenderBlock::checkFloatsInCleanLine):
78991        * svg/SVGAnimatedTypeAnimator.h:
78992        (WebCore::SVGAnimatedTypeAnimator::executeAction):
78993        * svg/SVGAnimationElement.cpp:
78994        (WebCore::SVGAnimationElement::calculatePercentForSpline):
78995        * svg/animation/SVGSMILElement.cpp:
78996        (WebCore::SVGSMILElement::findInstanceTime):
78997
789982013-02-10  Chris Fleizach  <cfleizach@apple.com>
78999
79000        WebSpeech: Implement basic speaking/finished speaking behavior
79001        https://bugs.webkit.org/show_bug.cgi?id=107135
79002
79003        Reviewed by Sam Weinig.
79004
79005        Implements the basic functionality of speaking utterances.
79006
79007        In the WebCore side, it manages the speech queue the way the spec defines
79008        (that is, new jobs are appended to a queue and wait for other jobs to finish).
79009
79010        On the Mac side, it instantiates a synthesizer and handles the callbacks for when
79011        jobs are finished. It sends those jobs back to WebCore to dispatch the right events.
79012
79013        Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak.html
79014
79015        * Modules/speech/SpeechSynthesis.cpp:
79016        (WebCore::SpeechSynthesis::SpeechSynthesis):
79017        (WebCore::SpeechSynthesis::paused):
79018        (WebCore::SpeechSynthesis::startSpeakingImmediately):
79019        (WebCore::SpeechSynthesis::speak):
79020        (WebCore):
79021        (WebCore::SpeechSynthesis::fireEvent):
79022        (WebCore::SpeechSynthesis::handleSpeakingCompleted):
79023        (WebCore::SpeechSynthesis::didStartSpeaking):
79024        (WebCore::SpeechSynthesis::didFinishSpeaking):
79025        (WebCore::SpeechSynthesis::speakingErrorOccurred):
79026        * Modules/speech/SpeechSynthesis.h:
79027        (WebCore):
79028        (WebCore::SpeechSynthesis::speaking):
79029        (SpeechSynthesis):
79030        * Modules/speech/SpeechSynthesisEvent.cpp:
79031        (WebCore::SpeechSynthesisEvent::create):
79032        (WebCore):
79033        (WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
79034        * Modules/speech/SpeechSynthesisEvent.h:
79035        (SpeechSynthesisEvent):
79036        (WebCore::SpeechSynthesisEvent::interfaceName):
79037        * Modules/speech/SpeechSynthesisUtterance.h:
79038        (WebCore::SpeechSynthesisUtterance::startTime):
79039        (WebCore::SpeechSynthesisUtterance::setStartTime):
79040        (SpeechSynthesisUtterance):
79041        * platform/PlatformSpeechSynthesisUtterance.cpp:
79042        (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
79043        * platform/PlatformSpeechSynthesisUtterance.h:
79044        (PlatformSpeechSynthesisUtterance):
79045        (WebCore::PlatformSpeechSynthesisUtterance::setVolume):
79046        (WebCore::PlatformSpeechSynthesisUtterance::setRate):
79047        (WebCore::PlatformSpeechSynthesisUtterance::setPitch):
79048        (WebCore::PlatformSpeechSynthesisUtterance::startTime):
79049        (WebCore::PlatformSpeechSynthesisUtterance::setStartTime):
79050        (WebCore::PlatformSpeechSynthesisUtterance::client):
79051        * platform/PlatformSpeechSynthesizer.cpp:
79052        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
79053        * platform/PlatformSpeechSynthesizer.h:
79054        (PlatformSpeechSynthesizerClient):
79055        (WebCore::PlatformSpeechSynthesizer::client):
79056        (PlatformSpeechSynthesizer):
79057        * platform/mac/PlatformSpeechSynthesizerMac.mm:
79058        (-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:WebCore::]):
79059        (-[WebSpeechSynthesisWrapper dealloc]):
79060        (-[WebSpeechSynthesisWrapper convertRateToWPM:]):
79061        (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
79062        (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
79063        (WebCore::PlatformSpeechSynthesizer::speak):
79064
790652013-02-10  Eric Seidel  <eric@webkit.org>
79066
79067        Make the existing HTMLPreloadScanner threading-aware
79068        https://bugs.webkit.org/show_bug.cgi?id=107807
79069
79070        Reviewed by Adam Barth.
79071
79072        The HTMLPreloadScanner and CSSPreloadScanner do a number of things.
79073        CSSPreloadScanner is mostly just a helper class for HTMLPreloadScanner.
79074        HTMLPreloadScanner runs its own copy of the HTMLTokenizer and uses
79075        HTMLTokenizer::updateStateFor to emulate enough of the TreeBuilder
79076        to get a realistic stream of tokens.  It does some additional TreeBuilder
79077        emulation, including tracking template tags and base tags, but mostly
79078        just scans the token stream for start-tags and looks for URLs in them.
79079        It tracks when it has seen a <style> tag and starts sending all character tokens
79080        to the CSSPreloadScanner until a </style> tag is seen.
79081        It also (unfortunately) knows some about the loader guts and how to construct
79082        a proper CachedResourcRequest and issue a preload.
79083
79084        This patch changes the model so that the preload scanners only know how to produce
79085        PreloadRequest objects and append them to a passed-in vector.
79086
79087        This changes the preload-scanner behavior so that preloads are now all issued in one large
79088        batch at the end of scanning, instead of as we hit each resource.  It's possible that
79089        we'll wait to instead check for preload requests more often, at a possible tradeoff
79090        to tokenizing speed.
79091
79092        An alternate approach might be to pass in a preload-delegate of sorts which knew how
79093        to either build a vector, or send requests immediately.  For now the build-a-vector-always
79094        approach seems clean, and does not seem to slow down our PerformanceTest microbenchmarks at least.
79095
79096        This patch has 2 main pieces:
79097        - Remove Document and (and loader) dependencies from HTMLPreloadScanner/CSSPreloadScanner
79098          This is done through introduction of a new HTMLResourcePreloader class which holds
79099          a Document* and knows how to talk to the CachedResourceLoader.
79100        - Clean-up HTMLPreloadScanners token-loop to not be tied to having a Tokenizer.
79101          (On a background thead, the HTMLPreloadScanner won't own the tokenizer, it will just
79102           be passed in tokens and expected to issue loads if necessary.)
79103
79104        This passes all of the LayoutTests using the main thread parser.
79105
79106        This patch does not make the HTMLPreloadScanner 100% ready for threading
79107        (it still uses AtomicString which is currently not-OK on the parser thread)
79108        but it's very close.  Two further (already written) patches will complete this.
79109
79110        * CMakeLists.txt:
79111        * GNUmakefile.list.am:
79112        * Target.pri:
79113        * WebCore.gypi:
79114        * WebCore.vcproj/WebCore.vcproj:
79115        * WebCore.vcxproj/WebCore.vcxproj:
79116        * WebCore.xcodeproj/project.pbxproj:
79117        * html/parser/CSSPreloadScanner.cpp:
79118        (WebCore::CSSPreloadScanner::CSSPreloadScanner):
79119        (WebCore::CSSPreloadScanner::scan):
79120        (WebCore::CSSPreloadScanner::emitRule):
79121        * html/parser/CSSPreloadScanner.h:
79122        (CSSPreloadScanner):
79123        * html/parser/HTMLDocumentParser.cpp:
79124        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
79125        (WebCore::HTMLDocumentParser::pumpTokenizer):
79126        (WebCore::HTMLDocumentParser::insert):
79127        (WebCore::HTMLDocumentParser::append):
79128        (WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
79129        * html/parser/HTMLDocumentParser.h:
79130        (HTMLDocumentParser):
79131        * html/parser/HTMLPreloadScanner.cpp:
79132        (WebCore::isStartTag):
79133        (WebCore):
79134        (WebCore::isStartOrEndTag):
79135        (WebCore::PreloadTask::processAttributes):
79136        (WebCore::PreloadTask::charset):
79137        (PreloadTask):
79138        (WebCore::PreloadTask::resourceType):
79139        (WebCore::PreloadTask::shouldPreload):
79140        (WebCore::PreloadTask::createPreloadRequest):
79141        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
79142        (WebCore::HTMLPreloadScanner::scan):
79143        (WebCore::HTMLPreloadScanner::processPossibleTemplateTag):
79144        (WebCore::HTMLPreloadScanner::processPossibleStyleTag):
79145        (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
79146        (WebCore::HTMLPreloadScanner::processToken):
79147        * html/parser/HTMLPreloadScanner.h:
79148        (HTMLPreloadScanner):
79149        * html/parser/HTMLResourcePreloader.cpp: Added.
79150        (WebCore):
79151        (WebCore::isStringSafeToSendToAnotherThread):
79152        (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
79153        (WebCore::PreloadRequest::completeURL):
79154        (WebCore::PreloadRequest::resourceRequest):
79155        (WebCore::HTMLResourcePreloader::preload):
79156        * html/parser/HTMLResourcePreloader.h: Added.
79157        (WebCore):
79158        (PreloadRequest):
79159        (WebCore::PreloadRequest::create):
79160        (WebCore::PreloadRequest::PreloadRequest):
79161        (HTMLResourcePreloader):
79162        (WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
79163        (WebCore::HTMLResourcePreloader::createWeakPtr):
79164        * loader/cache/CachedResourceRequest.h:
79165
791662013-02-06  Kentaro Hara  <haraken@chromium.org>
79167
79168        [V8] Rename isolated() to getWorld(), rename worldForEnteredContextIfIsolated() to worldForEnteredContext()
79169        https://bugs.webkit.org/show_bug.cgi?id=109039
79170
79171        Reviewed by Adam Barth.
79172
79173        This is a follow-up patch for r141983.
79174        Rename methods for consistency.
79175
79176        No tests. No change in behavior.
79177
79178        * bindings/v8/DOMDataStore.cpp:
79179        (WebCore::DOMDataStore::current):
79180        * bindings/v8/DOMWrapperWorld.h:
79181        (WebCore::DOMWrapperWorld::getWorld):
79182        * bindings/v8/ScriptController.cpp:
79183        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
79184        (WebCore::ScriptController::currentWorldContext):
79185        * bindings/v8/V8Binding.h:
79186        (WebCore::worldForEnteredContext):
79187        * bindings/v8/WorldContextHandle.cpp:
79188        (WebCore::WorldContextHandle::WorldContextHandle):
79189        * bindings/v8/custom/V8DocumentCustom.cpp:
79190        (WebCore::wrap):
79191        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
79192        (WebCore::wrap):
79193        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
79194        (WebCore::wrap):
79195        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
79196        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
79197
791982013-02-10  Alexandre Elias  <aelias@chromium.org>
79199
79200        [chromium] Fix Android scrollbar size
79201        https://bugs.webkit.org/show_bug.cgi?id=109374
79202
79203        Reviewed by James Robinson.
79204
79205        This shrinks scrollbars to 3 device-independent pixels (usually 6
79206        physical pixels) and deletes the edge fade. Although the Android
79207        system theme does have an edge fade, it's a much sharper cliff
79208        than we had (against black, the colors go 64 -> 64 -> 52 -> 21 -> 0)
79209        and I can't perceive any difference compared with no fade at all.
79210
79211        No new tests (due for rewrite in a week anyway).
79212
79213        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
79214        (WebCore):
79215        (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
79216
792172013-02-04  Kentaro Hara  <haraken@chromium.org>
79218
79219        [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
79220        https://bugs.webkit.org/show_bug.cgi?id=108579
79221
79222        Reviewed by Adam Barth.
79223
79224        Currently V8GCController::m_edenNodes stores a list of nodes whose
79225        wrappers have been created since the latest GC. The reason why we
79226        needed m_edenNodes is that there was no way to know a list of wrappers
79227        in the new space of V8. By using m_edenNodes, we had been approximating
79228        'wrappers in the new space' by 'wrappers that have been created since
79229        the latest GC'.
79230
79231        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
79232        can know a list of wrappers in the new space. By using the API, we can
79233        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
79234        need to keep m_edenNodes and that (2) it enables more precise minor
79235        DOM GC (Remember that m_edenNodes was just an approximation).
79236
79237        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
79238        The benchmark runs 300 iterations, each of which creates 100000 elements.
79239        The benchmark measures average, min, median, max and stdev of execution times
79240        of the 300 iterations. This will tell us the worst-case overhead of this change.
79241
79242        Before:
79243          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
79244
79245        After:
79246          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
79247
79248        As shown above, I couldn't observe any performance regression.
79249
79250        No tests. No change in behavior.
79251
79252        * bindings/v8/DOMDataStore.h:
79253        (WebCore::DOMDataStore::setWrapperInObject):
79254        * bindings/v8/DOMWrapperWorld.h:
79255        (DOMWrapperWorld):
79256        (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
79257        * bindings/v8/V8Binding.h:
79258        (WebCore):
79259        (WebCore::worldForEnteredContextIfIsolated):
79260        (WebCore::worldForEnteredContextWithoutContextCheck):
79261        * bindings/v8/V8DOMWindowShell.cpp:
79262        (WebCore::V8DOMWindowShell::initializeIfNeeded):
79263        * bindings/v8/V8GCController.cpp:
79264        (WebCore::gcTree):
79265        (WebCore):
79266        (MinorGCWrapperVisitor):
79267        (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
79268        (WebCore::MinorGCWrapperVisitor::notifyFinished):
79269        (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
79270        (WebCore::V8GCController::gcPrologue):
79271        (WebCore::V8GCController::minorGCPrologue):
79272        (WebCore::V8GCController::majorGCPrologue):
79273        * bindings/v8/V8GCController.h:
79274        (V8GCController):
79275
792762013-02-10  Tim Horton  <timothy_horton@apple.com>
79277
79278        REGRESSION (r132422): Page content and scrollbars are incorrectly offset after restoring a page from the page cache
79279        https://bugs.webkit.org/show_bug.cgi?id=109317
79280        <rdar://problem/12649131>
79281
79282        Reviewed by Simon Fraser.
79283
79284        Mark all scrolling that occurs beneath FrameView::layout as programmatic.
79285
79286        Test: platform/mac-wk2/tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html
79287
79288        * page/FrameView.cpp:
79289        (WebCore::FrameView::layout):
79290
792912013-02-10  Kent Tamura  <tkent@chromium.org>
79292
79293        [Mac] Fix release build failure by recent reverts
79294
79295        * WebCore.exp.in:
79296
792972013-02-10  Philippe Normand  <pnormand@igalia.com>
79298
79299        [GStreamer] media/video-controls-fullscreen-volume.html crashes
79300        https://bugs.webkit.org/show_bug.cgi?id=108682
79301
79302        Reviewed by Martin Robinson.
79303
79304        Clean up various signal handlers and avoid bad interaction between
79305        the FullscreenVideoControllerGStreamer and its subclasses,
79306        especially when the platform video window is created.
79307
79308        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
79309        (WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
79310        Initialize the window before connecting to the volume/mute
79311        signals. This ensures that the signals won't ever interfere with
79312        an inexisting window.
79313        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
79314        (WebCore::GStreamerGWorld::~GStreamerGWorld): Remove GstBus
79315        synchronous handler function.
79316        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
79317        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
79318        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
79319        Disconnect from volume/mute signals.
79320        (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
79321        Keep a trace of volume/mute signal handlers.
79322        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
79323        Various forward type declarations to avoid un-necessary header includes.
79324        (MediaPlayerPrivateGStreamerBase):
79325        * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
79326        (WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
79327        (WebCore::FullscreenVideoControllerGtk::volumeChanged): Bail out
79328        if volume button hasn't been created yet.
79329        (WebCore::FullscreenVideoControllerGtk::muteChanged): Ditto.
79330
793312013-02-10  Andreas Kling  <akling@apple.com>
79332
79333        RenderStyle should use copy-on-write inheritance for NinePieceImage.
79334        <http://webkit.org/b/109366>
79335
79336        Reviewed by Antti Koivisto.
79337
79338        Refactor NinePieceImage to hold a copy-on-write DataRef like other RenderStyle substructures.
79339        This allows us to avoids copying the NinePieceImageData when one RenderStyle inherits from another
79340        but modifies something in the substructure holding the NinePieceImage (typically StyleSurroundData.)
79341
79342        Also made RenderStyle not copy-on-write its StyleSurroundData prematurely when doing a no-op write
79343        to a border-image related value.
79344
79345        1.23 MB progression on Membuster3.
79346
79347        * rendering/style/NinePieceImage.cpp:
79348        (WebCore::defaultData):
79349        (WebCore::NinePieceImage::NinePieceImage):
79350        (WebCore::NinePieceImageData::NinePieceImageData):
79351        (WebCore::NinePieceImageData::operator==):
79352        * rendering/style/NinePieceImage.h:
79353        (WebCore::NinePieceImageData::create):
79354        (WebCore::NinePieceImageData::copy):
79355        (NinePieceImageData):
79356        (NinePieceImage):
79357        (WebCore::NinePieceImage::operator==):
79358        (WebCore::NinePieceImage::operator!=):
79359        (WebCore::NinePieceImage::hasImage):
79360        (WebCore::NinePieceImage::image):
79361        (WebCore::NinePieceImage::setImage):
79362        (WebCore::NinePieceImage::imageSlices):
79363        (WebCore::NinePieceImage::setImageSlices):
79364        (WebCore::NinePieceImage::fill):
79365        (WebCore::NinePieceImage::setFill):
79366        (WebCore::NinePieceImage::borderSlices):
79367        (WebCore::NinePieceImage::setBorderSlices):
79368        (WebCore::NinePieceImage::outset):
79369        (WebCore::NinePieceImage::setOutset):
79370        (WebCore::NinePieceImage::horizontalRule):
79371        (WebCore::NinePieceImage::setHorizontalRule):
79372        (WebCore::NinePieceImage::verticalRule):
79373        (WebCore::NinePieceImage::setVerticalRule):
79374        (WebCore::NinePieceImage::copyImageSlicesFrom):
79375        (WebCore::NinePieceImage::copyBorderSlicesFrom):
79376        (WebCore::NinePieceImage::copyOutsetFrom):
79377        (WebCore::NinePieceImage::copyRepeatFrom):
79378        (WebCore::NinePieceImage::setMaskDefaults):
79379        (WebCore::NinePieceImage::computeOutset):
79380        * rendering/style/RenderStyle.cpp:
79381        (WebCore::RenderStyle::setBorderImageSource):
79382        (WebCore::RenderStyle::setBorderImageSlices):
79383        (WebCore::RenderStyle::setBorderImageWidth):
79384        (WebCore::RenderStyle::setBorderImageOutset):
79385        * rendering/style/RenderStyle.h:
79386
793872013-02-10  Kent Tamura  <tkent@chromium.org>
79388
79389        Unreviewed, rolling out r142343.
79390        http://trac.webkit.org/changeset/142343
79391        https://bugs.webkit.org/show_bug.cgi?id=108284
79392
79393        It might make inspector/profiler/selector-profiler-url.html
79394        crashy.
79395
79396        * WebCore.exp.in:
79397        * css/plugIns.css:
79398        (p):
79399        * html/HTMLPlugInElement.cpp:
79400        (WebCore::HTMLPlugInElement::defaultEventHandler):
79401        * html/HTMLPlugInImageElement.cpp:
79402        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
79403        (WebCore::HTMLPlugInImageElement::createRenderer):
79404        (WebCore::HTMLPlugInImageElement::willRecalcStyle):
79405        (WebCore::HTMLPlugInImageElement::updateSnapshot):
79406        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
79407        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
79408        * html/HTMLPlugInImageElement.h:
79409        (WebCore):
79410        (HTMLPlugInImageElement):
79411        * page/ChromeClient.h:
79412        (WebCore::ChromeClient::plugInStartLabelImage):
79413        * platform/LocalizedStrings.cpp:
79414        * platform/LocalizedStrings.h:
79415        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
79416        * platform/chromium/LocalizedStringsChromium.cpp:
79417        * platform/efl/LocalizedStringsEfl.cpp:
79418        (WebCore):
79419        * platform/gtk/LocalizedStringsGtk.cpp:
79420        (WebCore):
79421        * platform/qt/LocalizedStringsQt.cpp:
79422        * rendering/RenderSnapshottedPlugIn.cpp:
79423        (WebCore):
79424        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
79425        (WebCore::RenderSnapshottedPlugIn::paint):
79426        (WebCore::RenderSnapshottedPlugIn::paintReplaced):
79427        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
79428        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
79429        (WebCore::RenderSnapshottedPlugIn::startLabelImage):
79430        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
79431        (WebCore::RenderSnapshottedPlugIn::getCursor):
79432        (WebCore::RenderSnapshottedPlugIn::handleEvent):
79433        (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel):
79434        * rendering/RenderSnapshottedPlugIn.h:
79435
794362013-02-10  Andreas Kling  <akling@apple.com>
79437
79438        RenderText: Access characters through m_text instead of caching data pointers separately.
79439        <http://webkit.org/b/109357>
79440
79441        Reviewed by Antti Koivisto.
79442
79443        Go through RenderText::m_text.impl() instead of caching the character data pointer.
79444        RenderText should never have a null String in m_text so it's safe to access impl() directly.
79445        We have assertions for this since before.
79446
79447        Removing this pointer shrinks RenderText by 8 bytes, allowing it to fit into a snugger size class.
79448        749 KB progression on Membuster3.
79449
79450        * rendering/RenderText.cpp:
79451        (SameSizeAsRenderText):
79452        (WebCore::RenderText::RenderText):
79453        (WebCore::RenderText::setTextInternal):
79454        * rendering/RenderText.h:
79455        (WebCore::RenderText::is8Bit):
79456        (WebCore::RenderText::characters8):
79457        (WebCore::RenderText::characters16):
79458        (WebCore::RenderText::characterAt):
79459        (WebCore::RenderText::operator[]):
79460        (RenderText):
79461
794622013-02-10  Jae Hyun Park  <jae.park08@gmail.com>
79463
79464        Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
79465        https://bugs.webkit.org/show_bug.cgi?id=104266
79466
79467        Reviewed by Philippe Normand.
79468
79469        Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
79470        the existing macro naming conventions.
79471
79472        From Platform.h
79473        USE() - use a particular third-party library or optional OS service
79474        ENABLE() - turn on a specific feature of WebKit
79475
79476        No new tests, no new functionality.
79477
79478        * WebCore.pri:
79479
794802013-02-10  Zan Dobersek  <zdobersek@igalia.com>
79481
79482        [GTK] Build errors in TextureMapperShaderProgram.cpp when compiling with Clang
79483        https://bugs.webkit.org/show_bug.cgi?id=109321
79484
79485        Reviewed by Noam Rosenthal.
79486
79487        Clang is reporting errors due to non-constant expressions that cannot be narrowed
79488        from double to float type in initializer list when constructing a matrix of GC3Dfloat
79489        numbers. To avoid this every parameter is passed through an explicit GC3Dfloat constructor.
79490
79491        No new tests - no new functionality.
79492
79493        * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
79494        (WebCore::TextureMapperShaderProgram::setMatrix):
79495
794962013-02-10  Philippe Normand  <pnormand@igalia.com>
79497
79498        [GStreamer] audio is muted when playback rate is between 0.8 and 2.0
79499        https://bugs.webkit.org/show_bug.cgi?id=109362
79500
79501        Reviewed by Martin Robinson.
79502
79503        Don't mute sound if the audio pitch is preserved. If this is not
79504        the case mute it if it's too extreme, as the HTML5 spec recommends.
79505
79506        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
79507        (WebCore::MediaPlayerPrivateGStreamer::setRate):
79508
795092013-02-09  Dominic Mazzoni  <dmazzoni@google.com>
79510
79511        fast/encoding/parser-tests-*.html tests sometimes crash
79512        https://bugs.webkit.org/show_bug.cgi?id=108058
79513
79514        Reviewed by Chris Fleizach.
79515
79516        To avoid calling accessibilityIsIgnored while the render
79517        tree is unstable, call accessibilityIsIgnored in the
79518        notification timer handler, only for childrenChanged
79519        notifications.
79520
79521        This exposed a problem where notifications queued on
79522        objects can fire after the object has been deleted; fix that
79523        by checking the object's id, which is always set to 0 when
79524        removed from the tree.
79525
79526        Covered by existing tests.
79527
79528        * accessibility/AXObjectCache.cpp:
79529        (WebCore::AXObjectCache::childrenChanged):
79530        (WebCore::AXObjectCache::notificationPostTimerFired):
79531
795322013-02-09  Eric Carlson  <eric.carlson@apple.com>
79533
79534        [Mac] Do not assume MediaAccessibility framework is installed
79535        https://bugs.webkit.org/show_bug.cgi?id=109365
79536
79537        Reviewed by Sam Weinig.
79538
79539        * page/CaptionUserPreferencesMac.h:
79540        * page/CaptionUserPreferencesMac.mm:
79541        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Call the base class if the framework
79542            is not available.
79543        (WebCore::CaptionUserPreferencesMac::setUserPrefersCaptions): Ditto.
79544        (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): Ditto.
79545        (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Ditto.
79546        (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
79547        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Ditto.
79548        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Ditto.
79549        (WebCore::CaptionUserPreferencesMac::setPreferredLanguage): Ditto.
79550        (WebCore::CaptionUserPreferencesMac::preferredLanguages): Ditto.
79551
795522013-02-09  Dominic Mazzoni  <dmazzoni@google.com>
79553
79554        AX: move isIgnored caching to AXObject
79555        https://bugs.webkit.org/show_bug.cgi?id=109322
79556
79557        Reviewed by Chris Fleizach.
79558
79559        There's some benefit to caching accessibilityIsIgnored
79560        (using AXComputedObjectAttributeCache) for more than just
79561        AXRenderObject, so move the caching code to AXObject.
79562
79563        AXObject now has a protected virtual method
79564        computeAccessibilityIsIgnored, and all subclasses
79565        override that instead.
79566
79567        No new tests.
79568
79569        * accessibility/AccessibilityImageMapLink.h:
79570        (AccessibilityImageMapLink):
79571        (WebCore::AccessibilityImageMapLink::computeAccessibilityIsIgnored):
79572        * accessibility/AccessibilityList.cpp:
79573        (WebCore::AccessibilityList::computeAccessibilityIsIgnored):
79574        * accessibility/AccessibilityList.h:
79575        (AccessibilityList):
79576        * accessibility/AccessibilityListBox.cpp:
79577        (WebCore::AccessibilityListBox::computeAccessibilityIsIgnored):
79578        * accessibility/AccessibilityListBox.h:
79579        (AccessibilityListBox):
79580        * accessibility/AccessibilityListBoxOption.cpp:
79581        (WebCore::AccessibilityListBoxOption::computeAccessibilityIsIgnored):
79582        * accessibility/AccessibilityListBoxOption.h:
79583        (AccessibilityListBoxOption):
79584        * accessibility/AccessibilityMediaControls.cpp:
79585        (WebCore::AccessibilityMediaControl::computeAccessibilityIsIgnored):
79586        (WebCore::AccessibilityMediaTimeDisplay::computeAccessibilityIsIgnored):
79587        * accessibility/AccessibilityMediaControls.h:
79588        (AccessibilityMediaControl):
79589        (WebCore::AccessibilityMediaControlsContainer::computeAccessibilityIsIgnored):
79590        (AccessibilityMediaTimeDisplay):
79591        * accessibility/AccessibilityMenuList.h:
79592        (WebCore::AccessibilityMenuList::computeAccessibilityIsIgnored):
79593        * accessibility/AccessibilityMenuListOption.cpp:
79594        (WebCore::AccessibilityMenuListOption::computeAccessibilityIsIgnored):
79595        * accessibility/AccessibilityMenuListOption.h:
79596        (AccessibilityMenuListOption):
79597        * accessibility/AccessibilityMenuListPopup.cpp:
79598        (WebCore::AccessibilityMenuListPopup::computeAccessibilityIsIgnored):
79599        * accessibility/AccessibilityMenuListPopup.h:
79600        (AccessibilityMenuListPopup):
79601        * accessibility/AccessibilityNodeObject.cpp:
79602        (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
79603        * accessibility/AccessibilityNodeObject.h:
79604        (AccessibilityNodeObject):
79605        * accessibility/AccessibilityObject.cpp:
79606        (WebCore::AccessibilityObject::accessibilityIsIgnored):
79607        (WebCore):
79608        * accessibility/AccessibilityObject.h:
79609        (AccessibilityObject):
79610        (WebCore::AccessibilityObject::computeAccessibilityIsIgnored):
79611        * accessibility/AccessibilityProgressIndicator.cpp:
79612        (WebCore::AccessibilityProgressIndicator::computeAccessibilityIsIgnored):
79613        * accessibility/AccessibilityProgressIndicator.h:
79614        (AccessibilityProgressIndicator):
79615        * accessibility/AccessibilityRenderObject.cpp:
79616        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
79617        * accessibility/AccessibilityRenderObject.h:
79618        (AccessibilityRenderObject):
79619        * accessibility/AccessibilityScrollView.cpp:
79620        (WebCore::AccessibilityScrollView::computeAccessibilityIsIgnored):
79621        * accessibility/AccessibilityScrollView.h:
79622        (AccessibilityScrollView):
79623        * accessibility/AccessibilityScrollbar.h:
79624        (WebCore::AccessibilityScrollbar::computeAccessibilityIsIgnored):
79625        * accessibility/AccessibilitySlider.cpp:
79626        (WebCore::AccessibilitySlider::computeAccessibilityIsIgnored):
79627        (WebCore::AccessibilitySliderThumb::computeAccessibilityIsIgnored):
79628        * accessibility/AccessibilitySlider.h:
79629        (AccessibilitySlider):
79630        (AccessibilitySliderThumb):
79631        * accessibility/AccessibilitySpinButton.h:
79632        (WebCore::AccessibilitySpinButton::computeAccessibilityIsIgnored):
79633        (WebCore::AccessibilitySpinButtonPart::computeAccessibilityIsIgnored):
79634        * accessibility/AccessibilityTable.cpp:
79635        (WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
79636        * accessibility/AccessibilityTable.h:
79637        (AccessibilityTable):
79638        * accessibility/AccessibilityTableCell.cpp:
79639        (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):
79640        * accessibility/AccessibilityTableCell.h:
79641        (AccessibilityTableCell):
79642        * accessibility/AccessibilityTableColumn.cpp:
79643        (WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
79644        * accessibility/AccessibilityTableColumn.h:
79645        (AccessibilityTableColumn):
79646        * accessibility/AccessibilityTableHeaderContainer.cpp:
79647        (WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):
79648        * accessibility/AccessibilityTableHeaderContainer.h:
79649        (AccessibilityTableHeaderContainer):
79650        * accessibility/AccessibilityTableRow.cpp:
79651        (WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored):
79652        * accessibility/AccessibilityTableRow.h:
79653        (AccessibilityTableRow):
79654
796552013-02-09  David Farler  <dfarler@apple.com>
79656
79657        Make TestWebKitAPI work for iOS
79658        https://bugs.webkit.org/show_bug.cgi?id=108978
79659
79660        Reviewed by David Kilzer.
79661
79662        Tests already exist - refactor only.
79663
79664        * WebCore.exp.in: Lumped __ZNK7WebCore4KURL7hasPathEv with related methods.
79665        * platform/KURL.cpp: Inlined hasPath() into the header
79666        * platform/KURL.h: Inlined hasPath() into the header
79667
796682013-02-09  Adam Barth  <abarth@webkit.org>
79669
79670        Load event fires too early with threaded HTML parser
79671        https://bugs.webkit.org/show_bug.cgi?id=108984
79672
79673        Reviewed by Eric Seidel.
79674
79675        Previously, the DocumentLoader would always be on the stack when the
79676        HTMLDocumentParser was processing data from the network.  The
79677        DocumentLoader would then tell isLoadingInAPISense not to fire the load
79678        event.  Now that we process data asynchronously with the threaded
79679        parser, the DocumentLoader is not always on the stack, which means we
79680        need to delay the load event using the clause that asks the parser
79681        whether it is processing data.
79682
79683        Unfortunately, that clause is fragile because we can check for load
79684        completion while we're switching parsers between the network-created
79685        parser and a script-created parser. To avoid accidentially triggerin
79686        the load event during these "gaps," this patch introduces a counter on
79687        document to record how many parsers are active on the stack.  While
79688        that numer is non-zero, we'll delay the load event. When that number
79689        reaches zero, we'll check for load complete.
79690
79691        That last step is required because the DocumentLoader::finishLoading
79692        method is no longer guarunteed to check for load complete after calling
79693        finish on the parser because the finish operation might complete
79694        asynchronously.
79695
79696        After this patch, the threaded parser passes all but four fast/parser
79697        tests.
79698
79699        * dom/Document.cpp:
79700        (WebCore::Document::Document):
79701        (WebCore::Document::hasActiveParser):
79702        (WebCore):
79703        (WebCore::Document::decrementActiveParserCount):
79704        * dom/Document.h:
79705        (Document):
79706        (WebCore::Document::incrementActiveParserCount):
79707        * html/parser/HTMLDocumentParser.cpp:
79708        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
79709        (WebCore::HTMLDocumentParser::pumpTokenizer):
79710        * html/parser/HTMLParserScheduler.cpp:
79711        (WebCore::ActiveParserSession::ActiveParserSession):
79712        (WebCore):
79713        (WebCore::ActiveParserSession::~ActiveParserSession):
79714        (WebCore::PumpSession::PumpSession):
79715        (WebCore::PumpSession::~PumpSession):
79716        * html/parser/HTMLParserScheduler.h:
79717        (WebCore):
79718        (ActiveParserSession):
79719        (PumpSession):
79720        * loader/DocumentLoader.cpp:
79721        (WebCore::DocumentLoader::isLoadingInAPISense):
79722
797232013-02-09  Mike West  <mkwst@chromium.org>
79724
79725        Use IGNORE_EXCEPTION for initialized, but unused, ExceptionCodes.
79726        https://bugs.webkit.org/show_bug.cgi?id=109295
79727
79728        Reviewed by Darin Adler.
79729
79730        The monster patch in http://wkbug.com/108771 missed an entire class of
79731        ignored exceptions. It only dealt with call sites that never initialized
79732        the ExceptionCode variable, on the assumption that only such call sites
79733        would ignore the variable's value.
79734
79735        That was a flawed assumption: a large number of sites that initialize the
79736        ExceptionCode to 0 ignore it regardless. This patch deals with the
79737        almost-as-large set of callsites that initialize the variable, pass it to
79738        a function, and then never touch it again.
79739
79740        * Modules/indexeddb/IDBDatabase.cpp:
79741        (WebCore::IDBDatabase::forceClose):
79742        * accessibility/AccessibilityRenderObject.cpp:
79743        (WebCore::AccessibilityRenderObject::ariaSelectedTextRange):
79744        (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
79745        (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
79746        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
79747        (getSelectionOffsetsForObject):
79748        * accessibility/atk/WebKitAccessibleUtil.cpp:
79749        (selectionBelongsToObject):
79750        * dom/Node.cpp:
79751        (WebCore::Node::textRects):
79752        * editing/DeleteButtonController.cpp:
79753        (WebCore::DeleteButtonController::hide):
79754        * editing/EditingStyle.cpp:
79755        (WebCore::EditingStyle::styleAtSelectionStart):
79756        * editing/Editor.cpp:
79757        (WebCore::Editor::canDeleteRange):
79758        (WebCore::Editor::pasteAsPlainText):
79759        (WebCore::Editor::pasteAsFragment):
79760        (WebCore::Editor::shouldDeleteRange):
79761        (WebCore::Editor::dispatchCPPEvent):
79762        (WebCore::Editor::setComposition):
79763        (WebCore::Editor::advanceToNextMisspelling):
79764        (WebCore::isFrameInRange):
79765        * editing/EditorCommand.cpp:
79766        (WebCore::expandSelectionToGranularity):
79767        * editing/MergeIdenticalElementsCommand.cpp:
79768        (WebCore::MergeIdenticalElementsCommand::doApply):
79769        * editing/SplitElementCommand.cpp:
79770        (WebCore::SplitElementCommand::doUnapply):
79771        * editing/SplitTextNodeCommand.cpp:
79772        (WebCore::SplitTextNodeCommand::doApply):
79773        * editing/TextCheckingHelper.cpp:
79774        (WebCore::expandToParagraphBoundary):
79775        (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
79776        (WebCore::TextCheckingHelper::isUngrammatical):
79777        (WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
79778        * editing/TextInsertionBaseCommand.cpp:
79779        (WebCore::dispatchBeforeTextInsertedEvent):
79780        (WebCore::canAppendNewLineFeedToSelection):
79781        * editing/TextIterator.cpp:
79782        (WebCore::findPlainText):
79783        * editing/htmlediting.cpp:
79784        (WebCore::extendRangeToWrappingNodes):
79785        (WebCore::isNodeVisiblyContainedWithin):
79786        * editing/visible_units.cpp:
79787        (WebCore::nextBoundary):
79788        * html/FileInputType.cpp:
79789        (WebCore::FileInputType::createShadowSubtree):
79790        * html/HTMLKeygenElement.cpp:
79791        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
79792        * html/HTMLScriptElement.cpp:
79793        (WebCore::HTMLScriptElement::setText):
79794        * html/HTMLTitleElement.cpp:
79795        (WebCore::HTMLTitleElement::setText):
79796        * html/HTMLTrackElement.cpp:
79797        (WebCore::HTMLTrackElement::didCompleteLoad):
79798        * html/RangeInputType.cpp:
79799        (WebCore::RangeInputType::createShadowSubtree):
79800        * html/SearchInputType.cpp:
79801        (WebCore::SearchInputType::createShadowSubtree):
79802        * html/TextFieldInputType.cpp:
79803        (WebCore::TextFieldInputType::createShadowSubtree):
79804        * html/track/TextTrackList.cpp:
79805        (TextTrackList::asyncEventTimerFired):
79806        * inspector/DOMPatchSupport.cpp:
79807        (WebCore::DOMPatchSupport::patchDocument):
79808        * inspector/InspectorDatabaseAgent.cpp:
79809        (WebCore):
79810        * inspector/InspectorFileSystemAgent.cpp:
79811        (WebCore):
79812        * page/DOMSelection.cpp:
79813        (WebCore::DOMSelection::addRange):
79814        * page/DragController.cpp:
79815        (WebCore::DragController::dispatchTextInputEventFor):
79816        * page/EventHandler.cpp:
79817        (WebCore::EventHandler::dispatchMouseEvent):
79818        (WebCore::EventHandler::handleTouchEvent):
79819        * page/FrameActionScheduler.cpp:
79820        (WebCore::EventFrameAction::fire):
79821        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
79822        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
79823        * svg/SVGDocument.cpp:
79824        (WebCore::SVGDocument::dispatchZoomEvent):
79825        (WebCore::SVGDocument::dispatchScrollEvent):
79826        * svg/SVGLength.cpp:
79827        (WebCore::SVGLength::SVGLength):
79828        (WebCore::SVGLength::value):
79829        * xml/parser/XMLDocumentParser.cpp:
79830        (WebCore::XMLDocumentParser::exitText):
79831        * xml/parser/XMLDocumentParserQt.cpp:
79832        (WebCore::XMLDocumentParser::parse):
79833        (WebCore::XMLDocumentParser::startDocument):
79834        (WebCore::XMLDocumentParser::parseCharacters):
79835
798362013-02-09  Stephen White  <senorblanco@chromium.org>
79837
79838        [skia] Fix memory management in SkiaImageFilterBuilder and friends.
79839        https://bugs.webkit.org/show_bug.cgi?id=109326
79840
79841        Sadly, skia has no official ref-counted pointers, so we must make do
79842        with SkAutoTUnref.
79843
79844        Reviewed by James Robinson.
79845
79846        Correctness covered by existing tests in css3/filters.
79847
79848        * platform/graphics/filters/skia/FEBlendSkia.cpp:
79849        (WebCore::FEBlend::createImageFilter):
79850        * platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
79851        (WebCore::FEComponentTransfer::createImageFilter):
79852        * platform/graphics/filters/skia/FELightingSkia.cpp:
79853        (WebCore::FELighting::createImageFilter):
79854        Adopt refs produced by the build() pass with SkAutoTUnref.
79855        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
79856        (WebCore::SkiaImageFilterBuilder::~SkiaImageFilterBuilder):
79857        Unref the builder's hashmap effect pointers.
79858        (WebCore::SkiaImageFilterBuilder::build):
79859        Ref the pointer returned to the caller, and use SkAutoTUnref
79860        internally while building the tree.
79861        * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
79862        (SkiaImageFilterBuilder):
79863        Add a destructor to SkiaImageFilterBuilder.
79864
79865
798662013-02-09  Dominic Mazzoni  <dmazzoni@google.com>
79867
79868        AX: Rename AXObject::cachedIsIgnoredValue to lastKnownIsIgnoredValue
79869        https://bugs.webkit.org/show_bug.cgi?id=108238
79870
79871        Reviewed by Chris Fleizach.
79872
79873        Simple refactoring, no new tests.
79874
79875        * accessibility/AXObjectCache.cpp:
79876        (WebCore::AXObjectCache::getOrCreate):
79877        (WebCore::AXObjectCache::childrenChanged):
79878        * accessibility/AccessibilityObject.cpp:
79879        (WebCore::AccessibilityObject::AccessibilityObject):
79880        (WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
79881        (WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
79882        (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
79883        * accessibility/AccessibilityObject.h:
79884        (AccessibilityObject):
79885
798862013-02-09  Anton Vayvod  <avayvod@chromium.org>
79887 
79888        [Text Autosizing] Cleanup change: converter the pointer argument to be a reference since
79889        non-null pointer is always expected.
79890        https://bugs.webkit.org/show_bug.cgi?id=109079
79891 
79892        Reviewed by Kenneth Rohde Christiansen.
79893 
79894        Cleanup change, no need to add new tests or modify the existing ones.
79895 
79896        * rendering/TextAutosizer.cpp:
79897 
79898        Changed parameter from a pointer to a reference in the methods below.
79899 
79900        (WebCore::TextAutosizer::processSubtree):
79901        (WebCore::TextAutosizer::processCluster):
79902        (WebCore::TextAutosizer::processContainer):
79903        (WebCore::TextAutosizer::isNarrowDescendant):
79904        (WebCore::TextAutosizer::isWiderDescendant):
79905        (WebCore::TextAutosizer::isAutosizingCluster):
79906        (WebCore::TextAutosizer::clusterShouldBeAutosized):
79907        (WebCore::TextAutosizer::measureDescendantTextWidth):
79908 
79909        * rendering/TextAutosizer.h: updated method prototypes.
79910
799112013-02-09  Rafael Brandao  <rafael.lobo@openbossa.org>
79912
79913        [TexMap] Separate classes per file in TextureMapperBackingStore.h
79914        https://bugs.webkit.org/show_bug.cgi?id=109333
79915
79916        Reviewed by Noam Rosenthal.
79917
79918        TextureMapperBackingStore.h had the classes TextureMapperBackingStore,
79919        TextureMapperTiledBackingStore, TextureMapperSurfaceBackingStore and
79920        TextureMapperTile which was quite confusing. Now each one has its
79921        own header and its own source file.
79922
79923        No new tests needed, refactoring only.
79924
79925        * CMakeLists.txt:
79926        * GNUmakefile.list.am:
79927        * Target.pri:
79928        * WebCore.gypi:
79929        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
79930        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
79931        * platform/graphics/texmap/TextureMapperBackingStore.h:
79932        * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp: Added.
79933        (WebCore):
79934        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
79935        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
79936        (WebCore::TextureMapperSurfaceBackingStore::texture):
79937        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
79938        * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h: Added.
79939        (WebCore):
79940        (TextureMapperSurfaceBackingStore):
79941        (WebCore::TextureMapperSurfaceBackingStore::create):
79942        (WebCore::TextureMapperSurfaceBackingStore::~TextureMapperSurfaceBackingStore):
79943        (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
79944        * platform/graphics/texmap/TextureMapperTile.cpp: Added.
79945        (WebCore):
79946        (WebCore::TextureMapperTile::updateContents):
79947        (WebCore::TextureMapperTile::paint):
79948        * platform/graphics/texmap/TextureMapperTile.h: Added.
79949        (WebCore):
79950        (TextureMapperTile):
79951        (WebCore::TextureMapperTile::texture):
79952        (WebCore::TextureMapperTile::rect):
79953        (WebCore::TextureMapperTile::setTexture):
79954        (WebCore::TextureMapperTile::setRect):
79955        (WebCore::TextureMapperTile::~TextureMapperTile):
79956        (WebCore::TextureMapperTile::TextureMapperTile):
79957        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp: Copied from Source/WebCore/platform/graphics/texmap/TextureMapperBackingStore.cpp.
79958        (WebCore):
79959        (WebCore::TextureMapperTiledBackingStore::TextureMapperTiledBackingStore):
79960        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
79961        (WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
79962        (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
79963        (WebCore::TextureMapperTiledBackingStore::drawBorder):
79964        (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
79965        (WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
79966        (WebCore::TextureMapperTiledBackingStore::updateContents):
79967        (WebCore::TextureMapperTiledBackingStore::texture):
79968        * platform/graphics/texmap/TextureMapperTiledBackingStore.h: Added.
79969        (WebCore):
79970        (TextureMapperTiledBackingStore):
79971        (WebCore::TextureMapperTiledBackingStore::create):
79972        (WebCore::TextureMapperTiledBackingStore::~TextureMapperTiledBackingStore):
79973        (WebCore::TextureMapperTiledBackingStore::setContentsToImage):
79974        (WebCore::TextureMapperTiledBackingStore::rect):
79975        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
79976        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
79977
799782013-02-09  Philip Rogers  <pdr@google.com>
79979
79980        Sanitize m_keyTimes for paced value animations
79981        https://bugs.webkit.org/show_bug.cgi?id=108828
79982
79983        Reviewed by Dirk Schulze.
79984
79985        SVG animations with calcMode=paced calculate new m_keyTimes in
79986        SVGAnimationElement::calculateKeyTimesForCalcModePaced() because paced animations do not
79987        specify keyTimes. If an error occurs while calculating m_keyTimes, and there exists
79988        user-specified values, a crash could occur because the user-specified values were not
79989        sanitized.
79990
79991        This change clears user-specified keyTimes before calculating new ones.
79992
79993        Test: svg/animations/animate-keytimes-crash.html
79994
79995        * svg/SVGAnimationElement.cpp:
79996        (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
79997
799982013-02-09  Eric Seidel  <eric@webkit.org>
79999
80000        Fix TextDocumentParser to play nice with threading
80001        https://bugs.webkit.org/show_bug.cgi?id=109240
80002
80003        Reviewed by Adam Barth.
80004
80005        Before the HTML5 parser re-write the text document parser
80006        was completely custom.  With the HTML5 parser, we just made
80007        the TextDocumentParser use the HTMLDocumentParser with an
80008        artificial script tag.
80009
80010        However, our solution was slightly over-engineered to avoid
80011        lying about the column numbers of the first line of the text document
80012        during parsing. :)
80013
80014        This change makes us use a simpler (and threading-compatible)
80015        solution by just inserting a real "<pre>" tag into the
80016        input stream instead of hacking one together with the treebuilder
80017        and manually setting the Tokenizer state.
80018
80019        fast/parser/empty-text-resource.html covers this case.
80020
80021        * html/parser/TextDocumentParser.cpp:
80022        (WebCore::TextDocumentParser::TextDocumentParser):
80023        (WebCore::TextDocumentParser::insertFakePreElement):
80024
800252013-02-09  Kent Tamura  <tkent@chromium.org>
80026
80027        Add missing copyright header
80028        https://bugs.webkit.org/show_bug.cgi?id=107507
80029
80030        * Resources/pagepopups/chromium/calendarPickerChromium.css:
80031        * Resources/pagepopups/chromium/pickerCommonChromium.css:
80032
800332013-02-09  Kent Tamura  <tkent@chromium.org>
80034
80035        Fix crash by img[ismap] with content property
80036        https://bugs.webkit.org/show_bug.cgi?id=108702
80037
80038        Reviewed by Adam Barth.
80039
80040        Test: fast/dom/HTMLAnchorElement/anchor-ismap-crash.html
80041
80042        * html/HTMLAnchorElement.cpp:
80043        (WebCore::appendServerMapMousePosition):
80044        Check if the renderer of an img element is RenderImage.
80045
800462013-02-09  Mike West  <mkwst@chromium.org>
80047
80048        Drop ExceptionCode from IDB's directionToString and modeToString.
80049        https://bugs.webkit.org/show_bug.cgi?id=109143
80050
80051        Reviewed by Jochen Eisinger.
80052
80053        No caller of either IDBCursor::directionToString or
80054        IDBTransaction::modeToString makes use of the ExceptionCode these
80055        methods require. This patch removes the 'ExceptionCode&' parameter from
80056        both methods and their callsites.
80057
80058        * Modules/indexeddb/IDBCursor.cpp:
80059        (WebCore::IDBCursor::direction):
80060        (WebCore::IDBCursor::directionToString):
80061            Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
80062            exception previously generated with ASSERT_NOT_REACHED.
80063        * Modules/indexeddb/IDBCursor.h:
80064        * Modules/indexeddb/IDBTransaction.cpp:
80065        (WebCore::IDBTransaction::mode):
80066        (WebCore::IDBTransaction::modeToString):
80067            Drop the 'ExceptionCode&' parameter, and replace the 'TypeError'
80068            exception previously generated with ASSERT_NOT_REACHED.
80069        * Modules/indexeddb/IDBTransaction.h:
80070
800712013-02-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>
80072
80073        [EFL][Qt][WebGL] Share the common code between GraphicsSurfaceGLX and X11WindowResources.
80074        https://bugs.webkit.org/show_bug.cgi?id=106666
80075
80076        Reviewed by Kenneth Rohde Christiansen.
80077
80078        Covered by existing WebGL tests.
80079
80080        This patch removes any duplicate code in X11WindowResources and
80081        GraphicsSurfaceGLX. No new functionality is added.
80082
80083        * PlatformEfl.cmake:
80084        * Target.pri:
80085        * platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
80086        (WebCore::EGLConfigSelector::pixmapContextConfig):
80087        * platform/graphics/surfaces/egl/EGLConfigSelector.h:
80088        (EGLConfigSelector):
80089        * platform/graphics/surfaces/egl/EGLSurface.cpp:
80090        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
80091        (WebCore::EGLWindowTransportSurface::destroy):
80092        (WebCore::EGLWindowTransportSurface::setGeometry):
80093        * platform/graphics/surfaces/egl/EGLSurface.h:
80094        (WebCore):
80095        (EGLWindowTransportSurface):
80096        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
80097        (WebCore::GLXConfigSelector::GLXConfigSelector):
80098        (WebCore::GLXConfigSelector::visualInfo):
80099        (WebCore::GLXConfigSelector::pBufferContextConfig):
80100        (WebCore::GLXConfigSelector::createSurfaceConfig):
80101        (GLXConfigSelector):
80102        * platform/graphics/surfaces/glx/GLXContext.cpp:
80103        (WebCore::initializeARBExtensions):
80104        (WebCore::GLXOffScreenContext::GLXOffScreenContext):
80105        (WebCore::GLXOffScreenContext::initialize):
80106        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
80107        (WebCore::GLXOffScreenContext::freeResources):
80108        * platform/graphics/surfaces/glx/GLXContext.h:
80109        (GLXOffScreenContext):
80110        * platform/graphics/surfaces/glx/GLXSurface.cpp:
80111        (WebCore::GLXTransportSurface::GLXTransportSurface):
80112        (WebCore::GLXTransportSurface::setGeometry):
80113        (WebCore::GLXTransportSurface::destroy):
80114        (WebCore::GLXPBuffer::initialize):
80115        * platform/graphics/surfaces/glx/GLXSurface.h:
80116        (GLXTransportSurface):
80117        (GLXPBuffer):
80118        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
80119        (WebCore):
80120        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
80121        (WebCore::GraphicsSurfacePrivate::initialize):
80122        (GraphicsSurfacePrivate):
80123        (WebCore::GraphicsSurfacePrivate::createSurface):
80124        (WebCore::GraphicsSurfacePrivate::createPixmap):
80125        (WebCore::GraphicsSurfacePrivate::display):
80126        (WebCore::GraphicsSurfacePrivate::flags):
80127        (WebCore::GraphicsSurfacePrivate::clear):
80128        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
80129        No new functionality added. Made changes to take the common code into use.
80130
80131        * platform/graphics/surfaces/glx/X11WindowResources.h: Removed.
80132        * platform/graphics/surfaces/glx/X11Helper.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/glx/X11WindowResources.cpp.
80133        (WebCore):
80134        (WebCore::DisplayConnection::DisplayConnection):
80135        (DisplayConnection):
80136        (WebCore::DisplayConnection::~DisplayConnection):
80137        (WebCore::DisplayConnection::display):
80138        (OffScreenRootWindow):
80139        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
80140        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
80141        (WebCore::OffScreenRootWindow::rootWindow):
80142        (WebCore::X11Helper::resizeWindow):
80143        (WebCore::X11Helper::createOffScreenWindow):
80144        (WebCore::X11Helper::destroyWindow):
80145        (WebCore::X11Helper::isXRenderExtensionSupported):
80146        (WebCore::X11Helper::nativeDisplay):
80147        (WebCore::X11Helper::offscreenRootWindow):
80148        * platform/graphics/surfaces/glx/X11Helper.h: Added.
80149        (WebCore):
80150        (WebCore::handleXPixmapCreationError):
80151        (X11Helper):
80152        (ScopedXPixmapCreationErrorHandler):
80153        (WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
80154        (WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
80155        (WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
80156        Moved common code from GraphicsSurfaceGLX to X11Helper.
80157
801582013-02-09  Andrey Lushnikov  <lushnikov@chromium.org>
80159
80160        Web Inspector: show whitespace characters in DTE
80161        https://bugs.webkit.org/show_bug.cgi?id=108947
80162
80163        Reviewed by Pavel Feldman.
80164
80165        New test: inspector/editor/text-editor-show-whitespaces.html
80166
80167        Split consecutive whitespace characters into groups of 16, 8, 4, 2 and 1 and
80168        add ::before pseudoclass for this groups which contains necessary
80169        amount of "dots" (u+00b7). Add a setting "Show whitespace" for this
80170        option in "Sources" section of "General" tab.
80171
80172        * English.lproj/localizedStrings.js:
80173        * inspector/front-end/DefaultTextEditor.js:
80174        (WebInspector.TextEditorMainPanel.prototype.wasShown):
80175        (WebInspector.TextEditorMainPanel.prototype.willHide):
80176        (WebInspector.TextEditorMainPanel.prototype._renderRanges):
80177        (WebInspector.TextEditorMainPanel.prototype._renderWhitespaceCharsWithFixedSizeSpans):
80178        (WebInspector.TextEditorMainPanel.prototype._paintLine):
80179        * inspector/front-end/Settings.js:
80180        * inspector/front-end/SettingsScreen.js:
80181        (WebInspector.GenericSettingsTab):
80182        * inspector/front-end/inspectorSyntaxHighlight.css:
80183        (.webkit-whitespace-1::before):
80184        (.webkit-whitespace-2::before):
80185        (.webkit-whitespace-4::before):
80186        (.webkit-whitespace-8::before):
80187        (.webkit-whitespace-16::before):
80188        (.webkit-whitespace::before):
80189
801902013-02-08  Eric Carlson  <eric.carlson@apple.com>
80191
80192        [Mac] respect in-band caption color
80193        https://bugs.webkit.org/show_bug.cgi?id=109203
80194
80195        Reviewed by Dean Jackson.
80196
80197        Test: media/track/track-in-band-style.html
80198
80199        * WebCore.xcodeproj/project.pbxproj: Add HTMLDivElement.h to private headers because it is 
80200            included by HTMLTextElement, which is included by HTMLMediaElement.h, which is included 
80201            by files in WebKit/WebKit2.
80202        * html/track/InbandTextTrack.cpp:
80203        (WebCore::InbandTextTrack::addGenericCue): Set cue colors if necessary.
80204
80205        * html/track/TextTrackCue.h:
80206        (WebCore::TextTrackCue::element): New, accessor for the cue element so it can be styled.
80207
80208        * html/track/TextTrackCueGeneric.cpp:
80209        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Set container and cue background 
80210            color if necessary.
80211        (WebCore::TextTrackCueGeneric::operator==): Compare cue colors.
80212        * html/track/TextTrackCueGeneric.h:
80213        (WebCore::TextTrackCueGeneric::foregroundColor): Add color accessors.
80214        (WebCore::TextTrackCueGeneric::setForegroundColor):
80215        (WebCore::TextTrackCueGeneric::backgroundColor):
80216        (WebCore::TextTrackCueGeneric::setBackgroundColor):
80217
80218        * page/CaptionUserPreferencesMac.mm:
80219        (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Always
80220            regenerate override CSS when an element registers for callbacks.
80221        (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Drive by fix of "window color" padding.
80222        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Log the stylesheet generated
80223            for easier debugging.
80224
80225        * platform/graphics/InbandTextTrackPrivateClient.h:
80226        (WebCore::GenericCueData::foregroundColor): Add color getters/setters.
80227        (WebCore::GenericCueData::setForegroundColor):
80228        (WebCore::GenericCueData::backgroundColor):
80229        (WebCore::GenericCueData::setBackgroundColor):
80230
80231        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
80232        (WebCore::makeRGBA32FromARGBCFArray): Initialize a RGBA32 from a CFArray of color values.
80233        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Process cue colors.
80234
802352013-02-08  Benjamin Poulain  <bpoulain@apple.com>
80236
80237        Move workerThreadCount from TestRunner to WebCore Internals
80238        https://bugs.webkit.org/show_bug.cgi?id=109239
80239
80240        Reviewed by Darin Adler.
80241
80242        Add the new read-only property workerThreadCount.
80243
80244        * testing/Internals.cpp:
80245        (WebCore::Internals::workerThreadCount):
80246        (WebCore):
80247        * testing/Internals.h:
80248        (Internals):
80249        * testing/Internals.idl:
80250
802512013-02-08  Dean Jackson  <dino@apple.com>
80252
80253        Snapshotted plug-in should use shadow root
80254        https://bugs.webkit.org/show_bug.cgi?id=108284
80255
80256        Reviewed by Simon Fraser.
80257
80258        Take two! This time with updated exports file.
80259
80260        A snapshotted plugin needs to indicate to the user that it can be clicked
80261        to be restarted. Previously this was done with an image that had embedded
80262        text. Instead, we now use an internal shadow root to embed some markup that
80263        will display instructions that can be localised.
80264
80265        The UA stylesheet for plug-ins provides a default styling for the label, which
80266        can be overridden by ports.
80267
80268        In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
80269        since it is only responsible for drawing a paused plug-in. The snapshot creation
80270        can work with the default renderer, but a shadow root requires something like
80271        RenderBlock in order to draw its children. We swap from one renderer to another when
80272        necessary either by creating the shadow root or by explicitly detaching and attaching
80273        the plugin element.
80274
80275        Unfortunately this is difficult to test, because the snapshotting requires
80276        time to execute, and also a PluginView to be instantiated.
80277
80278        * WebCore.exp.in: Export the InlineBox interface.
80279
80280        * css/plugIns.css:
80281        (object::-webkit-snapshotted-plugin-content): New rules for a default label style.
80282
80283        * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
80284        * platform/LocalizedStrings.h:
80285        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
80286        * platform/chromium/LocalizedStringsChromium.cpp:
80287        * platform/efl/LocalizedStringsEfl.cpp:
80288        * platform/gtk/LocalizedStringsGtk.cpp:
80289        * platform/qt/LocalizedStringsQt.cpp:
80290
80291        * html/HTMLPlugInElement.cpp:
80292        (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
80293        that RenderSnapshottedPlugIn no longer is an embedded object.
80294
80295        * html/HTMLPlugInImageElement.cpp:
80296        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
80297        (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
80298        (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
80299        (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
80300            a renderer, otherwise use the typical plug-in path.
80301        (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
80302            need to give it to the renderer.
80303        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
80304        * html/HTMLPlugInImageElement.h:
80305        (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
80306            should show immediately.
80307        (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
80308            to swap to the Shadow Root.
80309        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
80310            in being recreated. Make sure we reattach so that a plugin renderer will be created.
80311        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
80312            displayState for snapshots.
80313        * html/HTMLPlugInImageElement.h:
80314        (HTMLPlugInImageElement): The new methods listed above.
80315        (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
80316            a snapshot should be immediately labeled.
80317
80318        * page/ChromeClient.h: No need for plugInStartLabelImage any more.
80319
80320        * rendering/RenderSnapshottedPlugIn.cpp:
80321        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
80322        (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
80323        (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
80324        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
80325        (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
80326        (WebCore::RenderSnapshottedPlugIn::getCursor):
80327        (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
80328        * rendering/RenderSnapshottedPlugIn.h:
80329        (RenderSnapshottedPlugIn): New inheritance. Some method renaming.
80330
803312013-02-08  Dean Jackson  <dino@apple.com>
80332
80333        Rolling out r142333 and r142337 which broke Mac Release builds.
80334
803352013-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
80336
80337        Unreviewed, rolling out r142337.
80338        http://trac.webkit.org/changeset/142337
80339        https://bugs.webkit.org/show_bug.cgi?id=109339
80340
80341        Breaking Mac release builds (Requested by dino_ on #webkit).
80342
80343        * rendering/RenderSnapshottedPlugIn.h:
80344
803452013-02-08  Dean Jackson  <dino@apple.com>
80346
80347        Attempted Mac and GTK build fix after r142333.
80348
80349        * rendering/RenderSnapshottedPlugIn.h: Include InlineBox.h.
80350
803512013-02-08  Andy Estes  <aestes@apple.com>
80352
80353        Restore pre-r118852 behavior for EllipsisBox::nodeAtPoint()
80354        https://bugs.webkit.org/show_bug.cgi?id=109277
80355
80356        Reviewed by Simon Fraser.
80357
80358        Test: fast/flexbox/line-clamp-link-after-ellipsis.html
80359
80360        Roll out r118852. Enough time has passed that this can't be done
80361        mechanically, so transcribe the old method definition to current
80362        WebCore interfaces.
80363
80364        * rendering/EllipsisBox.cpp:
80365        (WebCore::EllipsisBox::markupBox): EllipsisBox no longer has
80366        m_markupBox, so break the logic for finding the markup box from
80367        paintMarkupBox() into its own function.
80368        (WebCore::EllipsisBox::paintMarkupBox): Call markupBox().
80369        (WebCore::EllipsisBox::nodeAtPoint): Transcribe the pre-r118852 implementation.
80370        * rendering/EllipsisBox.h:
80371        (EllipsisBox): Declare markupBox().
80372
803732013-02-08  Eric Carlson  <eric.carlson@apple.com>
80374
80375        [Mac] In-band closed caption tracks are not always initialized correctly
80376        https://bugs.webkit.org/show_bug.cgi?id=109323
80377
80378        Reviewed by Dean Jackson.
80379
80380        No new tests, this fix makes existing tests less flakey.
80381
80382        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
80383        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Create and configure legible output
80384            here instad of in tracksChanged.
80385        (WebCore::MediaPlayerPrivateAVFoundationObjC::setClosedCaptionsVisible): Do nothing in a build with
80386            in-band track support.
80387        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Move legible output creation to 
80388            createAVPlayerItem, don't set look at track media type to see if the movie has captions 
80389            when we have support for in-band captions.
80390
803912013-02-08  Dean Jackson  <dino@apple.com>
80392
80393        Snapshotted plug-in should use shadow root
80394        https://bugs.webkit.org/show_bug.cgi?id=108284
80395
80396        Reviewed by Simon Fraser.
80397
80398        A snapshotted plugin needs to indicate to the user that it can be clicked
80399        to be restarted. Previously this was done with an image that had embedded
80400        text. Instead, we now use an internal shadow root to embed some markup that
80401        will display instructions that can be localised.
80402
80403        The UA stylesheet for plug-ins provides a default styling for the label, which
80404        can be overridden by ports.
80405
80406        In the process, RenderSnapshottedPlugIn no longer inherits from RenderEmbeddedObject,
80407        since it is only responsible for drawing a paused plug-in. The snapshot creation
80408        can work with the default renderer, but a shadow root requires something like
80409        RenderBlock in order to draw its children. We swap from one renderer to another when
80410        necessary either by creating the shadow root or by explicitly detaching and attaching
80411        the plugin element.
80412
80413        Unfortunately this is difficult to test, because the snapshotting requires
80414        time to execute, and also a PluginView to be instantiated.
80415
80416        * css/plugIns.css:
80417        (object::-webkit-snapshotted-plugin-content): New rules for a default label style.
80418
80419        * platform/LocalizedStrings.cpp: Make sure all ports have plugin strings, now it is called.
80420        * platform/LocalizedStrings.h:
80421        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
80422        * platform/chromium/LocalizedStringsChromium.cpp:
80423        * platform/efl/LocalizedStringsEfl.cpp:
80424        * platform/gtk/LocalizedStringsGtk.cpp:
80425        * platform/qt/LocalizedStringsQt.cpp:
80426
80427        * html/HTMLPlugInElement.cpp:
80428        (WebCore::HTMLPlugInElement::defaultEventHandler): Take into account the fact
80429        that RenderSnapshottedPlugIn no longer is an embedded object.
80430
80431        * html/HTMLPlugInImageElement.cpp:
80432        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): New default values in constructor.
80433        (WebCore::HTMLPlugInElement::defaultEventHandler): Make sure to call base class.
80434        (WebCore::HTMLPlugInElement::willRecalcStyle): No need to reattach if we're a snapshot.
80435        (WebCore::HTMLPlugInImageElement::createRenderer): If we're showing a snapshot, create such
80436            a renderer, otherwise use the typical plug-in path.
80437        (WebCore::HTMLPlugInImageElement::updateSnapshot): Keep a record of the snapshot, since we'll
80438            need to give it to the renderer.
80439        (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Build a subtree that will display a label.
80440        * html/HTMLPlugInImageElement.h:
80441        (HTMLPlugInImageElement): New member variable to record the snapshot image and whether the label
80442            should show immediately.
80443        (WebCore::HTMLPlugInImageElement::swapRendererTimerFired): The callback function triggered when we need
80444            to swap to the Shadow Root.
80445        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): The user has tapped on the snapshot so the plugin
80446            in being recreated. Make sure we reattach so that a plugin renderer will be created.
80447        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Make sure we set the right
80448            displayState for snapshots.
80449        * html/HTMLPlugInImageElement.h:
80450        (HTMLPlugInImageElement): The new methods listed above.
80451        (WebCore::HTMLPlugInImageElement::setShouldShowSnapshotLabelAutomatically): Indicates whether or not
80452            a snapshot should be immediately labeled.
80453
80454        * page/ChromeClient.h: No need for plugInStartLabelImage any more.
80455
80456        * rendering/RenderSnapshottedPlugIn.cpp:
80457        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New inheritance.
80458        (WebCore::RenderSnapshottedPlugIn::paint): If we're in the background paint phase, render the snapshot image.
80459        (WebCore::RenderSnapshottedPlugIn::paintSnapshotImage): Rename.
80460        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Rename.
80461        (WebCore::RenderSnapshottedPlugIn::paintSnapshotWithLabel): Rename. No need for label sizes.
80462        (WebCore::RenderSnapshottedPlugIn::getCursor):
80463        (WebCore::RenderSnapshottedPlugIn::handleEvent): The renderer doesn't restart the plug-in any more. Tell the element and it will do it.
80464        * rendering/RenderSnapshottedPlugIn.h:
80465        (RenderSnapshottedPlugIn): New inheritance. Some method renaming.
80466
804672013-02-08  Kentaro Hara  <haraken@chromium.org>
80468
80469        {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator should be in FocusEvent.cpp
80470        https://bugs.webkit.org/show_bug.cgi?id=109265
80471
80472        Reviewed by Dimitri Glazkov.
80473
80474        Conventionally we put XXXEventDispatchMediator to XXXEvent.cpp.
80475        We should move {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator to FocusEvent.cpp.
80476
80477        No tests. No change in behavior.
80478
80479        * dom/EventDispatchMediator.cpp:
80480        * dom/EventDispatchMediator.h:
80481        * dom/FocusEvent.cpp:
80482        (WebCore::FocusEventDispatchMediator::create):
80483        (WebCore):
80484        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
80485        (WebCore::FocusEventDispatchMediator::dispatchEvent):
80486        (WebCore::BlurEventDispatchMediator::create):
80487        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
80488        (WebCore::BlurEventDispatchMediator::dispatchEvent):
80489        (WebCore::FocusInEventDispatchMediator::create):
80490        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
80491        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
80492        (WebCore::FocusOutEventDispatchMediator::create):
80493        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
80494        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
80495        * dom/FocusEvent.h:
80496        (WebCore):
80497        (FocusEventDispatchMediator):
80498        (BlurEventDispatchMediator):
80499        (FocusInEventDispatchMediator):
80500        (FocusOutEventDispatchMediator):
80501        * dom/UIEvent.cpp:
80502        * dom/UIEvent.h:
80503
805042013-02-08  Jer Noble  <jer.noble@apple.com>
80505
80506        Unreviewed build fix. MSVC (and other compilers) need a default: case in switch statement.
80507
80508        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
80509        (WebCore::notificationName):
80510
805112013-02-08  Jer Noble  <jer.noble@apple.com>
80512
80513        Bring WebKit up to speed with latest Encrypted Media spec.
80514        https://bugs.webkit.org/show_bug.cgi?id=97037
80515
80516        Reviewed by Eric Carlson.
80517
80518        The most recent version of the Encrypted Media Extensions spec breaks functionality out of the
80519        HTMLMediaElement and into new MediaKeys and MediaKeySession classes. Since the CDM functionality
80520        has been pulled out of the media element, we create a proxy CDM class and factory system for
80521        creating specific CDM key system implementations. The spec also breaks out MediaKeyEvent
80522        into distinct event classes, MediaKeyNeededEvent and MediaKeyMessageEvent, for needkey and
80523        keymessage events, respectively.
80524
80525        Tests: media/encrypted-media/encrypted-media-v2-events.html
80526               media/encrypted-media/encrypted-media-v2-syntax.html
80527
80528        CDM is a proxy class (a la MediaPlayer) for a specific CDMPrivateInterface implementation. A CDM
80529        implementation is registered with the CDMFactory and will be created if that implementation supports
80530        the key system passed into the MediaKeys constructor. CDMSession is a pure-virtual interface exposed
80531        by concrete CDMPrivate subclasses.  Its lifetime is owned by MediaKeySession.
80532        * Modules/encryptedmedia/CDM.cpp: Added.
80533        (WebCore::installedCDMFactories): Initialize all the known CDM subtypes. Ports will add CDM implementations here.
80534        (WebCore::CDM::registerCDMFactory): Registers a new CDMFactory using the passed in function pointers.
80535        (WebCore::CDMFactoryForKeySystem): Return the first CDM factory which supports the requested key system.
80536        (WebCore::CDM::supportsKeySystem): Walk the installed CDMs and ask if the given key system is supported.
80537        (WebCore::CDM::supportsKeySystemMIMETypeAndCodec): Ditto, with an additional MIME type and codec string.
80538        (WebCore::CDM::create): Simple constructor wrapper.
80539        (WebCore::CDM::CDM): Simple constructor; calls bestCDMForKeySystem() to create it's private implementation.
80540        (WebCore::CDM::~CDM): Simple destructor.
80541        (WebCore::CDM::createSession): Creates a new CDMSession.
80542        * Modules/encryptedmedia/CDM.h: Added.
80543        (WebCore::CDM::keySystem): Simple accessor for m_keySystem.
80544        (WebCore::CDMSession::CDMSession): Simple constructor.
80545        (WebCore::CDMSession::~CDMSession): Simple destructor.
80546        * Modules/encryptedmedia/CDMPrivate.h: Added.
80547        (WebCore::CDMPrivateInterface::CDMPrivateInterface): Simple constructor.
80548        (WebCore::CDMPrivateInterface::~CDMPrivateInterface): Simple destructor.
80549
80550        The new classes, MediaKeyMessageEvent and MediaKeyNeededEvent, take distinct subsets of the initializers of
80551        the original MediaKeyMessageEvent.
80552        * Modules/encryptedmedia/MediaKeyMessageEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.cpp.
80553        (WebCore::MediaKeyMessageEventInit::MediaKeyMessageEventInit): Initializer now only takes message and destinationURL
80554            parameters.
80555        (WebCore::MediaKeyMessageEvent::MediaKeyMessageEvent): Simple constructor.
80556        (WebCore::MediaKeyMessageEvent::~MediaKeyMessageEvent): Simple destructor.
80557        (WebCore::MediaKeyMessageEvent::interfaceName): Standard interfaceName.
80558        * Modules/encryptedmedia/MediaKeyMessageEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
80559        (WebCore::MediaKeyMessageEvent::create): Simple construction wrapper.
80560        (WebCore::MediaKeyMessageEvent::message): Simple accessor for m_message.
80561        (WebCore::MediaKeyMessageEvent::destinationURL): Simple accessor for m_destinationURL.
80562        * Modules/encryptedmedia/MediaKeyMessageEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
80563        * Modules/encryptedmedia/MediaKeyNeededEvent.cpp: Copied from Source/WebCore/html/MediaKeyEvent.h.
80564        (WebCore::MediaKeyNeededEventInit::MediaKeyNeededEventInit): Initializer now only takes initData parameter.
80565        (WebCore::MediaKeyNeededEvent::MediaKeyNeededEvent): Simple constructor.
80566        (WebCore::MediaKeyNeededEvent::~MediaKeyNeededEvent): Simple destructor.
80567        (WebCore::MediaKeyNeededEvent::interfaceName): Standard interfaceName.
80568        * Modules/encryptedmedia/MediaKeyNeededEvent.h: Copied from Source/WebCore/html/MediaKeyEvent.h.
80569        (WebCore::MediaKeyNeededEvent::create): Simple construction wrapper.
80570        (WebCore::MediaKeyNeededEvent::initData): Simple accessor for m_initData.
80571        * Modules/encryptedmedia/MediaKeyNeededEvent.idl: Copied from Source/WebCore/html/MediaKeyEvent.idl.
80572
80573        MediaKeySession is a new class that maps keys and key requests to a given session ID:
80574        * Modules/encryptedmedia/MediaKeySession.cpp: Added.
80575        (WebCore::MediaKeySession::create): Simple construction wrapper.
80576        (WebCore::MediaKeySession::MediaKeySession): Simple constructor.
80577        (WebCore::MediaKeySession::~MediaKeySession): Simple destructor; calls close().
80578        (WebCore::MediaKeySession::setError): Simple setter for m_error;
80579        (WebCore::MediaKeySession::close): Tell the CDM to clear any saved session keys.
80580        (WebCore::MediaKeySession::generateKeyRequest): Start a one-shot timer, handled in keyRequestTimerFired.
80581        (WebCore::MediaKeySession::keyRequestTimerFired): Follow the steps in the spec; ask the CDM to generate a key request.
80582        (WebCore::MediaKeySession::addKey): Start a one-shot timer, handled in addKeyTimerFired.
80583        (WebCore::MediaKeySession::addKeyTimerFired): Follow the steps in the spec; provide the key data to the CDM.
80584        * Modules/encryptedmedia/MediaKeySession.h: Added.
80585        (WebCore::MediaKeySession::keySystem): Simple accessor for m_keySystem.
80586        (WebCore::MediaKeySession::sessionId): Simple accessor for m_sessionId.
80587        (WebCore::MediaKeySession::error): Simple accessor for m_error;
80588        * Modules/encryptedmedia/MediaKeySession.idl:
80589
80590        MediaKeySession inherits from EventTarget, and must override the pure virtual functions in that class:
80591        * Modules/encryptedmedia/MediaKeySession.cpp: Added.
80592        (WebCore::MediaKeySession::interfaceName):
80593        * Modules/encryptedmedia/MediaKeySession.h: Added.
80594        (WebCore::MediaKeySession::refEventTarget):
80595        (WebCore::MediaKeySession::derefEventTarget):
80596        (WebCore::MediaKeySession::eventTargetData):
80597        (WebCore::MediaKeySession::ensureEventTargetData):
80598        (WebCore::MediaKeySession::scriptExecutionContext):
80599
80600        MediaKeys is a new class that encapsulates a CDM and a number of key sessions:
80601        * Modules/encryptedmedia/MediaKeys.cpp: Added.
80602        (WebCore::MediaKeys::create): Throw an exception if the key system parameter is unsupported; create a CDM object
80603            and a new MediaKeys session.
80604        (WebCore::MediaKeys::MediaKeys): Simple constructor.
80605        (WebCore::MediaKeys::~MediaKeys): Simple destructor.
80606        (WebCore::MediaKeys::createSession): Follow the spec and create a new key session.
80607        * Modules/encryptedmedia/MediaKeys.h: Added.
80608        * Modules/encryptedmedia/MediaKeys.idl: Copied from Source/WebCore/html/MediaError.idl.
80609
80610        Provide a new interface to HTMLMediaElement for MediaPlayer which does not require a sessionId or a key system:
80611        * html/HTMLMediaElement.cpp:
80612        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
80613        * platform/graphics/MediaPlayer.cpp:
80614        (WebCore::MediaPlayer::keyNeeded):
80615
80616        MediaKeyError now has a systemCode parameter and member variable.
80617        * html/MediaKeyError.h:
80618        (WebCore::MediaKeyError::create): Take a systemCode parameter with a default (0) value.
80619        (WebCore::MediaKeyError::MediaKeyError): Ditto.
80620        (WebCore::MediaKeyError::systemCode): Simple accessor for m_systemCode.
80621        * html/MediaKeyError.idl:
80622
80623        Add new methods to HTMLMediaElement to support MediaKeys. Support different initializer
80624        for the MediaKeyNeededEvent.
80625        * html/HTMLMediaElement.cpp:
80626        (WebCore::HTMLMediaElement::setMediaKeys): Simple setter for m_mediaKeys.
80627        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): This version takes fewer parameters
80628            than the deprecated version.
80629        * html/HTMLMediaElement.h:
80630        (WebCore::HTMLMediaElement::mediaKeys): Simple accessor for m_mediaKeys.
80631        * html/HTMLMediaElement.idl: Add the mediaKeys attribute.
80632
80633        Add an ENABLE(ENCRYPTED_MEDIA_V2) check to the existing ENABLE(ENCRYPTED_MEDIA) one:
80634        * html/MediaError.h:
80635        * html/MediaError.idl:
80636        * platform/graphics/MediaPlayer.cpp:
80637        (WebCore::bestMediaEngineForTypeAndCodecs):
80638        (WebCore::MediaPlayer::supportsType):
80639        * platform/graphics/MediaPlayer.h:
80640        (WebCore::MediaPlayer::keyNeeded): This version takes fewer parameters than the
80641            deprecated version.
80642
80643        Support the new version of canPlayType which takes an extra parameter:
80644        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
80645        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
80646        (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
80647        (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType):
80648        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
80649        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
80650        (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
80651        (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType):
80652
80653        Add a mock CDM for use within DRT and WKTR to test the MediaKeys and MediaKeySession
80654        APIs and events:
80655        * testing/Internals.cpp:
80656        (WebCore::Internals::initializeMockCDM): Add the MockCDM class to the CDM factories.
80657        * testing/Internals.h:
80658        * testing/Internals.idl: Add the initializeMockCDM() method.
80659        * testing/MockCDM.cpp: Added.
80660        (WebCore::MockCDM::supportsKeySystem): Only supports the 'com.webcore.mock' key system.
80661        (WebCore::MockCDM::supportsMIMEType): Only supports the 'video/mock' mime type.
80662        (WebCore::initDataPrefix): Static method which returns a Uint8Array containing 'mock'.
80663        (WebCore::keyPrefix): Static method which returns a Uint8Array containing 'key'.
80664        (WebCore::keyRequest): Static method which returns a Uint8Array containing 'request'.
80665        (WebCore::generateSessionId): Return a monotonically increasing number.
80666        (WebCore::MockCDMSession::MockCDMSession): Simple constructor.
80667        (WebCore::MockCDMSession::generateKeyRequest): Ignores the parameters and returns a keyRequest() array.
80668        (WebCore::MockCDMSession::releaseKeys): No-op.
80669        (WebCore::MockCDMSession::addKey): Checks that the key starts with the keyPrefix() array.
80670        * testing/MockCDM.h: Added.
80671        (WebCore::MockCDM::create):
80672        (WebCore::MockCDM::~MockCDM): Simple destructor.
80673        (WebCore::MockCDM::MockCDM): Simple constructor.
80674
80675        Add the new classes to the built system:
80676        * Configurations/FeatureDefines.xcconfig:
80677        * DerivedSources.make:
80678        * WebCore.exp.in:
80679        * WebCore.xcodeproj/project.pbxproj:
80680
80681        Miscelaneous changes:
80682        * dom/EventNames.in: Add the two new event types, MediaKeyMessageEvent and MediaKeyNeededEvent.
80683        * dom/EventTargetFactory.in: Add the new EventTarget, MediaKeySession.
80684        * page/DOMWindow.idl: Add constructors for the new classes to the window object.
80685
806862013-02-08  Chris Fleizach  <cfleizach@apple.com>
80687
80688        Refactor platform-specific code in SpeechSynthesis
80689        https://bugs.webkit.org/show_bug.cgi?id=107414
80690
80691        Reviewed by Sam Weinig.
80692
80693        Refactor WebSpeech code to use a platform mechanism to provide access to platform resources.
80694
80695        * Modules/speech/DOMWindowSpeechSynthesis.cpp:
80696        (WebCore::DOMWindowSpeechSynthesis::from):
80697        * Modules/speech/SpeechSynthesis.cpp:
80698        (WebCore::SpeechSynthesis::SpeechSynthesis):
80699        (WebCore):
80700        (WebCore::SpeechSynthesis::voicesDidChange):
80701        (WebCore::SpeechSynthesis::getVoices):
80702        (WebCore::SpeechSynthesis::pending):
80703        (WebCore::SpeechSynthesis::speaking):
80704        (WebCore::SpeechSynthesis::paused):
80705        (WebCore::SpeechSynthesis::speak):
80706        (WebCore::SpeechSynthesis::cancel):
80707        (WebCore::SpeechSynthesis::pause):
80708        (WebCore::SpeechSynthesis::resume):
80709        * Modules/speech/SpeechSynthesis.h:
80710        (WebCore):
80711        (SpeechSynthesis):
80712        (WebCore::SpeechSynthesis::didStartSpeaking):
80713        (WebCore::SpeechSynthesis::didFinishSpeaking):
80714        (WebCore::SpeechSynthesis::speakingErrorOccurred):
80715        * Modules/speech/SpeechSynthesisUtterance.cpp:
80716        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
80717        * Modules/speech/SpeechSynthesisUtterance.h:
80718        (WebCore::SpeechSynthesisUtterance::text):
80719        (WebCore::SpeechSynthesisUtterance::setText):
80720        (WebCore::SpeechSynthesisUtterance::lang):
80721        (WebCore::SpeechSynthesisUtterance::setLang):
80722        (WebCore::SpeechSynthesisUtterance::voiceURI):
80723        (WebCore::SpeechSynthesisUtterance::setVoiceURI):
80724        (WebCore::SpeechSynthesisUtterance::volume):
80725        (WebCore::SpeechSynthesisUtterance::setVolume):
80726        (WebCore::SpeechSynthesisUtterance::rate):
80727        (WebCore::SpeechSynthesisUtterance::setRate):
80728        (WebCore::SpeechSynthesisUtterance::pitch):
80729        (WebCore::SpeechSynthesisUtterance::setPitch):
80730        (SpeechSynthesisUtterance):
80731        (WebCore::SpeechSynthesisUtterance::platformUtterance):
80732        * Modules/speech/SpeechSynthesisVoice.cpp:
80733        (WebCore::SpeechSynthesisVoice::create):
80734        (WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
80735        * Modules/speech/SpeechSynthesisVoice.h:
80736        (SpeechSynthesisVoice):
80737        (WebCore::SpeechSynthesisVoice::voiceURI):
80738        (WebCore::SpeechSynthesisVoice::name):
80739        (WebCore::SpeechSynthesisVoice::lang):
80740        (WebCore::SpeechSynthesisVoice::localService):
80741        (WebCore::SpeechSynthesisVoice::isDefault):
80742        * Modules/speech/mac/SpeechSynthesisMac.mm:
80743        * WebCore.xcodeproj/project.pbxproj:
80744        * platform/PlatformSpeechSynthesis.h: Added.
80745        (WebCore):
80746        (PlatformSpeechSynthesis):
80747        * platform/PlatformSpeechSynthesisUtterance.cpp: Added.
80748        (WebCore):
80749        (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
80750        * platform/PlatformSpeechSynthesisUtterance.h: Added.
80751        (WebCore):
80752        (PlatformSpeechSynthesisUtteranceClient):
80753        (WebCore::PlatformSpeechSynthesisUtteranceClient::~PlatformSpeechSynthesisUtteranceClient):
80754        (PlatformSpeechSynthesisUtterance):
80755        (WebCore::PlatformSpeechSynthesisUtterance::text):
80756        (WebCore::PlatformSpeechSynthesisUtterance::setText):
80757        (WebCore::PlatformSpeechSynthesisUtterance::lang):
80758        (WebCore::PlatformSpeechSynthesisUtterance::setLang):
80759        (WebCore::PlatformSpeechSynthesisUtterance::voiceURI):
80760        (WebCore::PlatformSpeechSynthesisUtterance::setVoiceURI):
80761        (WebCore::PlatformSpeechSynthesisUtterance::volume):
80762        (WebCore::PlatformSpeechSynthesisUtterance::setVolume):
80763        (WebCore::PlatformSpeechSynthesisUtterance::rate):
80764        (WebCore::PlatformSpeechSynthesisUtterance::setRate):
80765        (WebCore::PlatformSpeechSynthesisUtterance::pitch):
80766        (WebCore::PlatformSpeechSynthesisUtterance::setPitch):
80767        * platform/PlatformSpeechSynthesisVoice.cpp: Added.
80768        (WebCore):
80769        (WebCore::PlatformSpeechSynthesisVoice::create):
80770        (WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
80771        * platform/PlatformSpeechSynthesisVoice.h: Added.
80772        (WebCore):
80773        (PlatformSpeechSynthesisVoice):
80774        (WebCore::PlatformSpeechSynthesisVoice::voiceURI):
80775        (WebCore::PlatformSpeechSynthesisVoice::name):
80776        (WebCore::PlatformSpeechSynthesisVoice::lang):
80777        (WebCore::PlatformSpeechSynthesisVoice::localService):
80778        (WebCore::PlatformSpeechSynthesisVoice::isDefault):
80779        * platform/PlatformSpeechSynthesizer.cpp: Added.
80780        (WebCore):
80781        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
80782        * platform/PlatformSpeechSynthesizer.h: Added.
80783        (WebCore):
80784        (PlatformSpeechSynthesizerClient):
80785        (WebCore::PlatformSpeechSynthesizerClient::~PlatformSpeechSynthesizerClient):
80786        (PlatformSpeechSynthesizer):
80787        (WebCore::PlatformSpeechSynthesizer::voiceList):
80788        * platform/mac/PlatformSpeechSynthesisMac.mm: Added.
80789        (WebCore):
80790        (WebCore::PlatformSpeechSynthesis::create):
80791        (WebCore::PlatformSpeechSynthesis::PlatformSpeechSynthesis):
80792        (WebCore::PlatformSpeechSynthesis::platformSpeak):
80793        * platform/mac/PlatformSpeechSynthesizerMac.mm: Added.
80794        (WebCore):
80795        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
80796        (WebCore::PlatformSpeechSynthesizer::speak):
80797
807982013-02-08  Dean Jackson  <dino@apple.com>
80799
80800        Put snapshotting label text into localizable strings
80801        https://bugs.webkit.org/show_bug.cgi?id=108268
80802
80803        Reviewed by Simon Fraser.
80804
80805        In preparation for a snapshotted plug-in using a ShadowRoot, allow
80806        its label to be localized.
80807
80808        * English.lproj/Localizable.strings:
80809        * platform/LocalizedStrings.cpp:
80810        (WebCore::snapshottedPlugInLabelTitle): New method for returning title.
80811        (WebCore::snapshottedPlugInLabelSubtitle): New method for returning subtitle.
80812        * platform/LocalizedStrings.h:
80813
808142013-02-08  Dean Jackson  <dino@apple.com>
80815
80816        Do not register autostart for plugins from file:// (or nowhere)
80817        https://bugs.webkit.org/show_bug.cgi?id=108271
80818
80819        Reviewed by Tim Horton.
80820
80821        If the page url origin is treated as a local URL, don't attempt
80822        to add it to the auto-start list.
80823
80824        * html/HTMLPlugInImageElement.cpp:
80825        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
80826
808272013-02-08  Adam Barth  <abarth@webkit.org>
80828
80829        Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
80830        https://bugs.webkit.org/show_bug.cgi?id=107190
80831
80832        Reviewed by Eric Seidel.
80833
80834        This patch replaces the parser map with WeakPtr. We now use WeakPtrs to
80835        communicate from the main thread to the background thread. (We were
80836        already using WeakPtrs to communicate from the background thread to the
80837        main thread.) This change lets us remove a bunch of boilerplate code.
80838
80839        * html/parser/BackgroundHTMLParser.cpp:
80840        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
80841        (WebCore::BackgroundHTMLParser::stop):
80842        (WebCore):
80843        * html/parser/BackgroundHTMLParser.h:
80844        (WebCore::BackgroundHTMLParser::create):
80845        (BackgroundHTMLParser):
80846        * html/parser/HTMLDocumentParser.cpp:
80847        (WebCore::HTMLDocumentParser::didFailSpeculation):
80848        (WebCore::HTMLDocumentParser::startBackgroundParser):
80849        (WebCore::HTMLDocumentParser::stopBackgroundParser):
80850        (WebCore::HTMLDocumentParser::append):
80851        (WebCore::HTMLDocumentParser::finish):
80852        * html/parser/HTMLDocumentParser.h:
80853        (WebCore):
80854        (HTMLDocumentParser):
80855
808562013-02-07  Roger Fong  <roger_fong@apple.com>
80857
80858        VS2010 WebCore TestSupport project.
80859        https://bugs.webkit.org/show_bug.cgi?id=107034.
80860
80861        Reviewed by Brent Fulgham.
80862
80863        * WebCore.vcxproj/WebCoreTestSupport.vcxproj: Added.
80864        * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Added.
80865
808662013-02-08  ChangSeok Oh  <shivamidow@gmail.com>
80867
80868        [GTK][AC] GraphicsLayerActor code clean up after clutter version up.
80869        https://bugs.webkit.org/show_bug.cgi?id=109304
80870
80871        Reviewed by Gustavo Noronha Silva.
80872
80873        This patch cleans up GraphicsLayerActor functions by using new clutter apis
80874        and makes existing functions simple & readable.
80875
80876        No new tests since no change in functionality
80877
80878        * platform/graphics/clutter/GraphicsLayerActor.cpp:
80879        (_GraphicsLayerActorPrivate):
80880        (graphicsLayerActorApplyTransform):
80881        (graphicsLayerActorPaint):
80882        (graphicsLayerActorDraw):
80883        (graphicsLayerActorUpdateTexture):
80884        (drawLayerContents):
80885        (graphicsLayerActorNew):
80886        (graphicsLayerActorInvalidateRectangle):
80887        (graphicsLayerActorSetTransform):
80888        (graphicsLayerActorSetAnchorPoint):
80889        (graphicsLayerActorGetAnchorPoint):
80890        (graphicsLayerActorSetScrollPosition):
80891        * platform/graphics/clutter/PlatformClutterAnimation.h:
80892
808932013-02-08  Harald Alvestrand  <hta@google.com>
80894
80895        Fix and test for missing return statement
80896
80897        RTCPeerConnection.getStats() failed when remote stats were instantiated.
80898        https://bugs.webkit.org/show_bug.cgi?id=109292
80899
80900        Reviewed by Adam Barth.
80901
80902        Tested by extending the existing mock's behaviour.
80903
80904        * Modules/mediastream/RTCStatsReport.cpp:
80905        (WebCore::RTCStatsReport::addElement):
80906
809072013-02-08  Anton Vayvod  <avayvod@chromium.org>
80908
80909        [Text Autosizing] Split isAutosizingCluster into three independent checks
80910        https://bugs.webkit.org/show_bug.cgi?id=109093
80911
80912        Refactoring to create more flexible version of isAutosizingCluster since there're more types
80913        of autosizing cluster now: narrower than the parent cluster, wider than the parent cluster
80914        and the one that doesn't depend on the parent cluster.
80915
80916        Reviewed by Kenneth Rohde Christiansen.
80917
80918        Refactoring, no test changes.
80919
80920        * rendering/TextAutosizer.cpp:
80921
80922        (WebCore::TextAutosizer::isNarrowDescendant):
80923
80924            Separate check for the container to be of the narrow-descendant type. Was a part of
80925            isAutosizingCluster().
80926
80927        (WebCore::TextAutosizer::isWiderDescendant):
80928
80929            Separate check for the container to be of the wider-descendant type. Was a part of
80930            isAutosizingCluster().
80931
80932        (WebCore::TextAutosizer::isIndependentDescendant):
80933
80934            Separate check for the container to be autosized separately from the ancestor cluster.
80935            Checks for conditions independent of the aforementioned cluster.
80936
80937        (WebCore::TextAutosizer::isAutosizingCluster):
80938
80939            Handy method to check all separate conditions together.
80940
80941        (WebCore::TextAutosizer::processSubtree):
80942        (WebCore::TextAutosizer::processCluster):
80943        (WebCore::TextAutosizer::processContainer):
80944        (WebCore::TextAutosizer::clusterShouldBeAutosized):
80945        (WebCore::TextAutosizer::measureDescendantTextWidth):
80946        (WebCore::TextAutosizer::findFirstTextLeafNotInCluster):
80947
80948            The methods above were updated to use new functions/arguments.
80949
80950        * rendering/TextAutosizer.h:
80951
80952            Updated/added method definitions.
80953
809542013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>
80955
80956        Web Inspector: Extension sever should use Workspace.projectForType() instead of Workspace.project()
80957        https://bugs.webkit.org/show_bug.cgi?id=109301
80958
80959        Reviewed by Alexander Pavlov.
80960
80961        * inspector/front-end/ExtensionServer.js:
80962        (WebInspector.ExtensionServer.prototype._onGetPageResources):
80963
809642013-02-04  Yury Semikhatsky  <yurys@chromium.org>
80965
80966        Web Inspector: simplify Memory.getDOMNodeCount implementation
80967        https://bugs.webkit.org/show_bug.cgi?id=108821
80968
80969        Reviewed by Alexander Pavlov.
80970
80971        Removed Memory.getDOMNodeCount command from the protocol. Memory.getDOMCounters
80972        should be used instead.
80973
80974        * inspector/Inspector.json:
80975        * inspector/InspectorMemoryAgent.cpp:
80976        * inspector/InspectorMemoryAgent.h:
80977        (InspectorMemoryAgent):
80978
809792013-02-08  Yury Semikhatsky  <yurys@chromium.org>
80980
80981        Web Inspector: refactor MemoryStatistics.js
80982        https://bugs.webkit.org/show_bug.cgi?id=109299
80983
80984        Reviewed by Vsevolod Vlasov.
80985
80986        Extracted functionality specific to DOM counter graphs drawing into
80987        separate methods on MemoryStatistics class.
80988        Introduced CounterUIBase base class for DOMCounterUI that contains
80989        functionality which can be shared with native memory graph.
80990
80991        * inspector/front-end/MemoryStatistics.js:
80992        (WebInspector.MemoryStatistics):
80993        (WebInspector.CounterUIBase):
80994        (WebInspector.CounterUIBase.prototype.updateCurrentValue):
80995        (WebInspector.CounterUIBase.prototype.clearCurrentValueAndMarker):
80996        (WebInspector.CounterUIBase.prototype.get visible):
80997        (WebInspector.DOMCounterUI):
80998        (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
80999        (WebInspector.MemoryStatistics.prototype._onMouseOut):
81000        (WebInspector.MemoryStatistics.prototype._clearCurrentValueAndMarker):
81001        (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
81002        (WebInspector.MemoryStatistics.prototype._updateCurrentValue):
81003        (WebInspector.MemoryStatistics.prototype._highlightCurrentPositionOnGraphs):
81004        (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
81005        (WebInspector.MemoryStatistics.prototype._saveImageUnderMarker):
81006        (WebInspector.MemoryStatistics.prototype._drawMarker):
81007        (WebInspector.MemoryStatistics.prototype._clear):
81008        (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
81009
810102013-02-08  Mike West  <mkwst@chromium.org>
81011
81012        Add a new IGNORE_EXCEPTION helper to ignore ExceptionCodes when they are expected but uninteresting
81013        https://bugs.webkit.org/show_bug.cgi?id=108771
81014
81015        Reviewed by Eric Seidel.
81016
81017        In cases where the ExceptionCode passed into a function is completely
81018        ignored, this patch replaces it with a new IGNORE_EXCEPTION macro. This
81019        makes our expectations about possible exceptions (or lack thereof)
81020        explicit, rather than relying on implicit assumptions about whether a
81021        variable is intentionally uninitialized or not. It also removes
81022        knowledge about the internals of ExceptionCodes (that they're currently
81023        ints, for instance) from code that shouldn't care, which will help with
81024        future refactorings.
81025
81026        The implementation is entirely based upon ASSERT_NO_EXCEPTION, and
81027        shouldn't have any visible effect on the web. As long as all the
81028        current tests pass, we're good.
81029
81030        * Modules/indexeddb/IDBRequest.cpp:
81031        (WebCore::IDBRequest::dispatchEvent):
81032        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
81033        * Modules/indexeddb/IDBTransaction.cpp:
81034        (WebCore::IDBTransaction::stop):
81035        * Modules/websockets/WebSocketChannel.cpp:
81036        (WebCore::WebSocketChannel::processBuffer):
81037        * dom/Document.cpp:
81038        (WebCore::Document::processHttpEquiv):
81039        * dom/ExceptionCodePlaceholder.h:
81040        (WebCore):
81041        * dom/Node.cpp:
81042        (WebCore::Node::normalize):
81043        * dom/Text.cpp:
81044        (WebCore::Text::replaceWholeText):
81045        * editing/AlternativeTextController.cpp:
81046        (WebCore::AlternativeTextController::insertDictatedText):
81047        * editing/AppendNodeCommand.cpp:
81048        (WebCore::AppendNodeCommand::doApply):
81049        (WebCore::AppendNodeCommand::doUnapply):
81050        * editing/CompositeEditCommand.cpp:
81051        (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt):
81052        * editing/DeleteFromTextNodeCommand.cpp:
81053        (WebCore::DeleteFromTextNodeCommand::doUnapply):
81054        * editing/Editor.cpp:
81055        (WebCore::dispatchEditableContentChangedEvents):
81056        (WebCore::Editor::applyEditingStyleToElement):
81057        * editing/EditorCommand.cpp:
81058        (WebCore::executeFormatBlock):
81059        * editing/FormatBlockCommand.cpp:
81060        (WebCore::FormatBlockCommand::elementForFormatBlockCommand):
81061        * editing/InsertIntoTextNodeCommand.cpp:
81062        (WebCore::InsertIntoTextNodeCommand::doApply):
81063        (WebCore::InsertIntoTextNodeCommand::doUnapply):
81064        * editing/InsertListCommand.cpp:
81065        (WebCore::InsertListCommand::doApplyForSingleParagraph):
81066        * editing/InsertNodeBeforeCommand.cpp:
81067        (WebCore::InsertNodeBeforeCommand::doApply):
81068        (WebCore::InsertNodeBeforeCommand::doUnapply):
81069        * editing/RemoveCSSPropertyCommand.cpp:
81070        (WebCore::RemoveCSSPropertyCommand::doApply):
81071        (WebCore::RemoveCSSPropertyCommand::doUnapply):
81072        * editing/RemoveNodeCommand.cpp:
81073        (WebCore::RemoveNodeCommand::doApply):
81074        (WebCore::RemoveNodeCommand::doUnapply):
81075        * editing/ReplaceSelectionCommand.cpp:
81076        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
81077        * editing/TextIterator.cpp:
81078        (WebCore::TextIterator::getLocationAndLengthFromRange):
81079        * editing/WrapContentsInDummySpanCommand.cpp:
81080        (WebCore::WrapContentsInDummySpanCommand::executeApply):
81081        (WebCore::WrapContentsInDummySpanCommand::doUnapply):
81082        * editing/htmlediting.cpp:
81083        (WebCore::comparePositions):
81084        * editing/markup.cpp:
81085        (WebCore::highestAncestorToWrapMarkup):
81086        * html/FTPDirectoryDocument.cpp:
81087        (WebCore::FTPDirectoryDocumentParser::appendEntry):
81088        (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
81089        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
81090        (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
81091        * html/HTMLMediaElement.cpp:
81092        (WebCore::HTMLMediaElement::rewind):
81093        (WebCore::HTMLMediaElement::returnToRealtime):
81094        (WebCore::HTMLMediaElement::playInternal):
81095        (WebCore::HTMLMediaElement::percentLoaded):
81096        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
81097        (WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
81098        (WebCore::HTMLMediaElement::applyMediaFragmentURI):
81099        * html/HTMLOutputElement.cpp:
81100        (WebCore::HTMLOutputElement::setTextContentInternal):
81101        * html/HTMLSelectElement.cpp:
81102        (WebCore::HTMLSelectElement::remove):
81103        * html/HTMLTableElement.cpp:
81104        (WebCore::HTMLTableElement::createTHead):
81105        (WebCore::HTMLTableElement::deleteTHead):
81106        (WebCore::HTMLTableElement::createTFoot):
81107        (WebCore::HTMLTableElement::deleteTFoot):
81108        (WebCore::HTMLTableElement::createCaption):
81109        (WebCore::HTMLTableElement::deleteCaption):
81110        * html/HTMLTextAreaElement.cpp:
81111        (WebCore::HTMLTextAreaElement::setDefaultValue):
81112        * html/ImageDocument.cpp:
81113        (WebCore::ImageDocument::createDocumentStructure):
81114        * html/InputType.cpp:
81115        (WebCore::InputType::stepUpFromRenderer):
81116        * html/MediaController.cpp:
81117        (MediaController::bringElementUpToSpeed):
81118        (MediaController::asyncEventTimerFired):
81119        * html/MediaDocument.cpp:
81120        (WebCore::MediaDocumentParser::createDocumentStructure):
81121        (WebCore::MediaDocument::replaceMediaElementTimerFired):
81122        * html/PluginDocument.cpp:
81123        (WebCore::PluginDocumentParser::createDocumentStructure):
81124        * html/RangeInputType.cpp:
81125        (WebCore::RangeInputType::handleKeydownEvent):
81126        * html/TimeRanges.cpp:
81127        (TimeRanges::contain):
81128        (TimeRanges::nearest):
81129        * html/canvas/CanvasRenderingContext2D.cpp:
81130        (WebCore::CanvasRenderingContext2D::drawImageFromRect):
81131        * html/shadow/MediaControlElementTypes.cpp:
81132        (WebCore::MediaControlSeekButtonElement::seekTimerFired):
81133        * html/shadow/MediaControlElements.cpp:
81134        (WebCore::MediaControlPanelElement::setPosition):
81135        (WebCore::MediaControlPanelElement::resetPosition):
81136        (WebCore::MediaControlStatusDisplayElement::update):
81137        (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
81138        (WebCore::MediaControlTimelineElement::defaultEventHandler):
81139        * html/shadow/MediaControls.cpp:
81140        (WebCore::MediaControls::updateCurrentTimeDisplay):
81141        (WebCore::MediaControls::createTextTrackDisplay):
81142        * html/shadow/MediaControlsApple.cpp:
81143        (WebCore::MediaControlsApple::updateCurrentTimeDisplay):
81144        * html/shadow/MediaControlsBlackBerry.cpp:
81145        (WebCore::MediaControlEmbeddedPanelElement::setPosition):
81146        (WebCore::MediaControlEmbeddedPanelElement::resetPosition):
81147        (WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
81148        (WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
81149        * html/shadow/MediaControlsChromium.cpp:
81150        (WebCore::MediaControlsChromium::updateCurrentTimeDisplay):
81151        * html/track/InbandTextTrack.cpp:
81152        (WebCore::InbandTextTrack::addGenericCue):
81153        * inspector/InspectorCSSAgent.cpp:
81154        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
81155        * inspector/InspectorHistory.cpp:
81156        (WebCore::InspectorHistory::markUndoableState):
81157        * inspector/InspectorResourceAgent.cpp:
81158        (WebCore::InspectorResourceAgent::replayXHR):
81159        * page/ContextMenuController.cpp:
81160        (WebCore::ContextMenuController::contextMenuItemSelected):
81161        * page/DOMWindow.cpp:
81162        (WebCore::didAddStorageEventListener):
81163        * page/DragController.cpp:
81164        (WebCore::documentFragmentFromDragData):
81165        * page/EventHandler.cpp:
81166        (WebCore::EventHandler::dispatchDragEvent):
81167        (WebCore::EventHandler::keyEvent):
81168        (WebCore::EventHandler::handleTextInputEvent):
81169        * page/Page.cpp:
81170        (WebCore::Page::findStringMatchingRanges):
81171        * platform/efl/RenderThemeEfl.cpp:
81172        (WebCore::RenderThemeEfl::paintMediaSliderTrack):
81173        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
81174        (WebCore::MediaPlayerPrivate::percentLoaded):
81175        * platform/gtk/RenderThemeGtk.cpp:
81176        (WebCore::RenderThemeGtk::paintMediaSliderTrack):
81177        * platform/mac/PasteboardMac.mm:
81178        (WebCore::Pasteboard::getDataSelection):
81179        (WebCore::documentFragmentWithImageResource):
81180        (WebCore::Pasteboard::documentFragment):
81181        * platform/mac/WebVideoFullscreenHUDWindowController.mm:
81182        (-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
81183        (-[WebVideoFullscreenHUDWindowController setVolume:]):
81184        * platform/qt/RenderThemeQt.cpp:
81185        (WebCore::RenderThemeQt::paintMediaSliderTrack):
81186        * rendering/RenderNamedFlowThread.cpp:
81187        (WebCore::RenderNamedFlowThread::getRanges):
81188        * rendering/RenderThemeMac.mm:
81189        (WebCore::RenderThemeMac::paintMediaSliderTrack):
81190        * svg/SVGTRefElement.cpp:
81191        (WebCore::SVGTRefElement::detachTarget):
81192        * xml/XMLTreeViewer.cpp:
81193        (WebCore::XMLTreeViewer::transformDocumentToTreeView):
81194        * xml/parser/XMLDocumentParserLibxml2.cpp:
81195        (WebCore::XMLDocumentParser::endElementNs):
81196        * xml/parser/XMLDocumentParserQt.cpp:
81197        (WebCore::XMLDocumentParser::parseEndElement):
81198
811992013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>
81200
81201        Web Inspector: Introduce workspace provider/project type, encapsulate uri creation in SimpleWorkspaceProvider.
81202        https://bugs.webkit.org/show_bug.cgi?id=109282
81203
81204        Reviewed by Alexander Pavlov.
81205
81206        SimpleWorkspaceProvider now fully takes care of creating uri based on project/workspace provider type.
81207        This is the first step on the way to project-per-domain mode for non file system project types.
81208        Workspace is now partly aware of the possibility that several projects with the same type exist.
81209        Drive-by: ScriptsPanel now uses FileMapping to show anchor location properly.
81210
81211        * inspector/front-end/DefaultScriptMapping.js:
81212        (WebInspector.DefaultScriptMapping):
81213        (WebInspector.DefaultScriptMapping.prototype.addScript):
81214        * inspector/front-end/ExtensionServer.js:
81215        (WebInspector.ExtensionServer.prototype._onGetPageResources):
81216        * inspector/front-end/FileMapping.js:
81217        (WebInspector.FileMapping.prototype.uriForURL):
81218        * inspector/front-end/FileSystemWorkspaceProvider.js:
81219        (WebInspector.FileSystemWorkspaceProvider.prototype.type):
81220        * inspector/front-end/JavaScriptSourceFrame.js:
81221        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
81222        * inspector/front-end/LiveEditSupport.js:
81223        (WebInspector.LiveEditSupport):
81224        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
81225        * inspector/front-end/ScriptSnippetModel.js:
81226        (WebInspector.ScriptSnippetModel):
81227        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
81228        * inspector/front-end/ScriptsNavigator.js:
81229        (WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
81230        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
81231        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
81232        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
81233        * inspector/front-end/ScriptsPanel.js:
81234        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
81235        (WebInspector.ScriptsPanel.prototype._projectWillReset):
81236        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
81237        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
81238        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
81239        * inspector/front-end/SimpleWorkspaceProvider.js:
81240        (WebInspector.SimpleWorkspaceProvider):
81241        (WebInspector.SimpleWorkspaceProvider.uriForURL):
81242        (WebInspector.SimpleWorkspaceProvider.prototype.type):
81243        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
81244        (WebInspector.SimpleWorkspaceProvider.prototype.addUniqueFileForURL):
81245        (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
81246        (WebInspector.SimpleWorkspaceProvider.prototype._uniqueURI):
81247        * inspector/front-end/Workspace.js:
81248        (WebInspector.WorkspaceProvider.prototype.type):
81249        (WebInspector.Project.prototype.type):
81250        (WebInspector.Project.prototype.isServiceProject):
81251        (WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):
81252        (WebInspector.Workspace.prototype.uiSourceCodesForProjectType):
81253        (WebInspector.Workspace.prototype.projectsForType):
81254        * inspector/front-end/inspector.js:
81255
812562013-02-08  ChangSeok Oh  <shivamidow@gmail.com>
81257
81258        [GTK][AC] GraphicsLayerClutter doesn't need to recalculate its position after changing anchor position.
81259        https://bugs.webkit.org/show_bug.cgi?id=109226
81260
81261        Reviewed by Gustavo Noronha Silva.
81262
81263        Clutter has a different coordinate system from mac port's, so we don't need to
81264        recalulate GraphicsLayer position after changing its anchor position.
81265
81266        Covered by existing ac tests.
81267
81268        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
81269        (WebCore::GraphicsLayerClutter::updateGeometry):
81270
812712013-02-08  Mike West  <mkwst@chromium.org>
81272
81273        Migrate ExceptionCode ASSERTs in IDB to ASSERT_NO_EXCEPTION.
81274        https://bugs.webkit.org/show_bug.cgi?id=109266
81275
81276        Reviewed by Jochen Eisinger.
81277
81278        The pattern:
81279
81280            ExceptionCode ec = 0;
81281            methodThatGeneratesException(ec);
81282            ASSERT(!ec);
81283
81284        is more clearly and succinctly written as:
81285
81286            methodThatGeneratesException(ASSERT_NO_EXCEPTION);
81287
81288        This patch replaces the occurances of the former in IDB code that never
81289        touch 'ec' again with the latter. No change in behavior should result
81290        from this refactoring.
81291
81292        * Modules/indexeddb/IDBCursor.cpp:
81293        (WebCore::IDBCursor::advance):
81294        (WebCore::IDBCursor::continueFunction):
81295        (WebCore::IDBCursor::deleteFunction):
81296            These methods checked the value of the ExceptionCode without first
81297            initializing it to 0. Now the ExceptionCode is explicitly set to 0
81298            before doing potentially exception-generating work.
81299        (WebCore::IDBCursor::direction):
81300        * Modules/indexeddb/IDBObjectStore.cpp:
81301        (WebCore):
81302        * Modules/indexeddb/IDBTransaction.cpp:
81303        (WebCore::IDBTransaction::mode):
81304            Replace the above pattern with ASSERT_NO_EXCEPTION.
81305
813062013-02-08  Mike West  <mkwst@chromium.org>
81307
81308        Migrate ExceptionCode ASSERTs in SVG to ASSERT_NO_EXCEPTION.
81309        https://bugs.webkit.org/show_bug.cgi?id=109267
81310
81311        Reviewed by Jochen Eisinger.
81312
81313        The pattern:
81314
81315            ExceptionCode ec = 0;
81316            methodThatGeneratesException(ec);
81317            ASSERT(!ec);
81318
81319        is more clearly and succinctly written as:
81320
81321            methodThatGeneratesException(ASSERT_NO_EXCEPTION);
81322
81323        This patch replaces the occurances of the former in SVG code that never
81324        touch 'ec' again with the latter. No change in behavior should result
81325        from this refactoring.
81326
81327        * svg/SVGLength.cpp:
81328        (WebCore::SVGLength::SVGLength):
81329        (WebCore::SVGLength::setValue):
81330            This method checked the value of the ExceptionCode without first
81331            initializing it to 0. Now it initializes before doing potentially
81332            exception-generating work.
81333        * rendering/style/SVGRenderStyle.h:
81334        (WebCore::SVGRenderStyle::initialBaselineShiftValue):
81335        (WebCore::SVGRenderStyle::initialKerning):
81336        (WebCore::SVGRenderStyle::initialStrokeDashOffset):
81337        (WebCore::SVGRenderStyle::initialStrokeWidth):
81338        * svg/SVGAnimatedLength.cpp:
81339        (WebCore::sharedSVGLength):
81340        (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
81341        (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
81342        * svg/SVGAnimatedLengthList.cpp:
81343        (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
81344        (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
81345        * svg/SVGTextContentElement.cpp:
81346        (WebCore::SVGTextContentElement::textLengthAnimated):
81347        * svg/animation/SVGSMILElement.cpp:
81348        (WebCore::constructQualifiedName):
81349            Replace the above pattern with ASSERT_NO_EXCEPTION.
81350
813512013-02-08  Vsevolod Vlasov  <vsevik@chromium.org>
81352
81353        Web Inspector: Replace workspace with project in UISourceCode constructor.
81354        https://bugs.webkit.org/show_bug.cgi?id=109256
81355
81356        Reviewed by Alexander Pavlov.
81357
81358        Replaced workspace with project in UISourceCode constructor since every UISourceCode
81359        operation is delegated to project anyway.
81360
81361        * inspector/front-end/UISourceCode.js:
81362        (WebInspector.UISourceCode):
81363        (WebInspector.UISourceCode.prototype.project):
81364        (WebInspector.UISourceCode.prototype.requestContent):
81365        (WebInspector.UISourceCode.prototype.requestOriginalContent):
81366        (WebInspector.UISourceCode.prototype._commitContent):
81367        (WebInspector.UISourceCode.prototype.searchInContent):
81368        * inspector/front-end/Workspace.js:
81369        (WebInspector.Project.prototype._fileAdded):
81370        (WebInspector.Project.prototype.requestFileContent):
81371        (WebInspector.Project.prototype.setFileContent):
81372        (WebInspector.Project.prototype.searchInFileContent):
81373
813742013-02-08  Patrick Gansterer  <paroga@webkit.org>
81375
81376        Build fix for Windows after r141981.
81377
81378        * platform/network/win/ResourceHandleWin.cpp:
81379        (WebCore::ResourceHandle::loadResourceSynchronously):
81380
813812013-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
81382
81383        Unreviewed, rolling out r141695 and r141697.
81384        http://trac.webkit.org/changeset/141695
81385        http://trac.webkit.org/changeset/141697
81386        https://bugs.webkit.org/show_bug.cgi?id=109279
81387
81388        broke on-disk buffering for http(s) media (Requested by philn
81389        on #webkit).
81390
81391        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
81392        (WebCore::MediaPlayerPrivateGStreamer::load):
81393        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
81394        (MediaPlayerPrivateGStreamer):
81395        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
81396        (webKitWebSrcGetProtocols):
81397        (webKitWebSrcSetUri):
81398
813992013-02-08  Dan Carney  <dcarney@google.com>
81400
81401        [v8] isolate parameter added to all v8::peristent calls
81402        https://bugs.webkit.org/show_bug.cgi?id=109268
81403
81404        Reviewed by Kentaro Hara.
81405
81406        No new tests. No change in functionality.
81407
81408        * bindings/scripts/CodeGeneratorV8.pm:
81409        (GenerateDomainSafeFunctionGetter):
81410        (GenerateNamedConstructorCallback):
81411        (GenerateImplementation):
81412        * bindings/scripts/test/V8/V8Float64Array.cpp:
81413        (WebCore::V8Float64Array::GetRawTemplate):
81414        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
81415        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
81416        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
81417        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
81418        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
81419        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
81420        (WebCore::V8TestEventConstructor::GetRawTemplate):
81421        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
81422        (WebCore::V8TestEventTarget::GetRawTemplate):
81423        * bindings/scripts/test/V8/V8TestException.cpp:
81424        (WebCore::V8TestException::GetRawTemplate):
81425        * bindings/scripts/test/V8/V8TestInterface.cpp:
81426        (WebCore::V8TestInterface::GetRawTemplate):
81427        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
81428        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
81429        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
81430        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
81431        (WebCore::V8TestNamedConstructor::GetRawTemplate):
81432        * bindings/scripts/test/V8/V8TestNode.cpp:
81433        (WebCore::V8TestNode::GetRawTemplate):
81434        * bindings/scripts/test/V8/V8TestObj.cpp:
81435        (WebCore::V8TestObj::GetRawTemplate):
81436        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
81437        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
81438        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
81439        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
81440        * bindings/v8/DOMWrapperMap.h:
81441        (WebCore::DOMWrapperMap::clear):
81442        * bindings/v8/DOMWrapperWorld.cpp:
81443        (WebCore::isolatedWorldWeakCallback):
81444        (WebCore::DOMWrapperWorld::makeContextWeak):
81445        * bindings/v8/NPV8Object.cpp:
81446        (WebCore::freeV8NPObject):
81447        (WebCore::npCreateV8ScriptObject):
81448        * bindings/v8/ScheduledAction.cpp:
81449        (WebCore::ScheduledAction::ScheduledAction):
81450        (WebCore::ScheduledAction::~ScheduledAction):
81451        * bindings/v8/ScopedPersistent.h:
81452        (WebCore::ScopedPersistent::ScopedPersistent):
81453        (WebCore::ScopedPersistent::set):
81454        (WebCore::ScopedPersistent::clear):
81455        * bindings/v8/ScriptWrappable.h:
81456        (WebCore::ScriptWrappable::setWrapper):
81457        (WebCore::ScriptWrappable::disposeWrapper):
81458        (WebCore::ScriptWrappable::weakCallback):
81459        * bindings/v8/V8Binding.cpp:
81460        (WebCore::createRawTemplate):
81461        * bindings/v8/V8Binding.h:
81462        (WebCore):
81463        * bindings/v8/V8GCController.cpp:
81464        (WebCore::gcTree):
81465        (WebCore::V8GCController::gcPrologue):
81466        (WebCore::V8GCController::minorGCPrologue):
81467        * bindings/v8/V8GCController.h:
81468        (V8GCController):
81469        * bindings/v8/V8HiddenPropertyName.cpp:
81470        (WebCore::V8HiddenPropertyName::createString):
81471        * bindings/v8/V8LazyEventListener.cpp:
81472        (WebCore::V8LazyEventListener::prepareListenerObject):
81473        * bindings/v8/V8NPObject.cpp:
81474        (WebCore::V8NPTemplateMap::dispose):
81475        (WebCore::npObjectGetProperty):
81476        (WebCore::createV8ObjectForNPObject):
81477        * bindings/v8/V8PerContextData.cpp:
81478        (WebCore::V8PerContextData::dispose):
81479        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
81480        (WebCore::V8PerContextData::constructorForTypeSlowCase):
81481        * bindings/v8/V8ValueCache.cpp:
81482        (WebCore::makeExternalString):
81483        * bindings/v8/WrapperTypeInfo.h:
81484        (WebCore::WrapperConfiguration::configureWrapper):
81485        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
81486        (WebCore::V8HTMLDocument::wrapInShadowObject):
81487        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
81488        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
81489        * bindings/v8/custom/V8InjectedScriptManager.cpp:
81490        (WebCore::WeakReferenceCallback):
81491        (WebCore::createInjectedScriptHostV8Wrapper):
81492        * bindings/v8/custom/V8LocationCustom.cpp:
81493        (WebCore::V8Location::reloadAccessorGetter):
81494        (WebCore::V8Location::replaceAccessorGetter):
81495        (WebCore::V8Location::assignAccessorGetter):
81496
814972013-02-08  Kent Tamura  <tkent@chromium.org>
81498
81499        Adjust usage of ENABLE flags to enable whole content
81500        https://bugs.webkit.org/show_bug.cgi?id=109270
81501
81502        Reviewed by Eric Seidel.
81503
81504        Our common usage of ENABLE flags to enable whole content of files is:
81505
81506        For .cpp files:
81507          #include "config.h"
81508          #if ENABLE(FOOBAR)
81509          #include "FooBar.h"
81510
81511        For .h files:
81512          #ifndef FooBar_h
81513          #define FooBar_h
81514          #if ENABLE(FOOBAR)
81515
81516        Fix files which have uncommon usage, and fix CodeGeneratorV8.pm so that
81517        it generates the common pattern. Note that CodeGeneratorJS.pm already
81518        generates code in this order.
81519
81520        * bindings/scripts/CodeGeneratorV8.pm:
81521        (GenerateHeaderContentHeader):
81522        (GenerateImplementationContentHeader):
81523        * bindings/scripts/test/V8/V8TestCallback.cpp:
81524        * bindings/scripts/test/V8/V8TestCallback.h:
81525        * bindings/scripts/test/V8/V8TestInterface.cpp:
81526        * bindings/scripts/test/V8/V8TestInterface.h:
81527        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
81528        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
81529        * html/BaseMultipleFieldsDateAndTimeInputType.h:
81530        * html/ColorInputType.cpp:
81531        * html/ColorInputType.h:
81532        * html/DateInputType.cpp:
81533        * html/DateTimeInputType.cpp:
81534        * html/DateTimeInputType.h:
81535        * html/DateTimeLocalInputType.cpp:
81536        * html/HTMLAudioElement.cpp:
81537        * html/HTMLAudioElement.h:
81538        * html/HTMLDataListElement.cpp:
81539        * html/HTMLDialogElement.cpp:
81540        * html/HTMLDialogElement.h:
81541        * html/HTMLMediaElement.cpp:
81542        * html/HTMLMediaElement.h:
81543        * html/HTMLMeterElement.cpp:
81544        * html/HTMLProgressElement.cpp:
81545        * html/HTMLSourceElement.cpp:
81546        * html/HTMLSourceElement.h:
81547        * html/HTMLTrackElement.cpp:
81548        * html/HTMLTrackElement.h:
81549        * html/HTMLVideoElement.cpp:
81550        * html/HTMLVideoElement.h:
81551        * html/MonthInputType.cpp:
81552        * html/TimeInputType.cpp:
81553        * html/WeekInputType.cpp:
81554        * html/shadow/DateTimeFieldElement.h:
81555        * html/shadow/DetailsMarkerControl.cpp:
81556        * html/shadow/MeterShadowElement.cpp:
81557        * html/shadow/ProgressShadowElement.cpp:
81558        * rendering/RenderDetailsMarker.cpp:
81559        * rendering/RenderInputSpeech.cpp:
81560        * rendering/RenderMeter.cpp:
81561        * rendering/RenderProgress.cpp:
81562
815632013-02-08  Mike West  <mkwst@chromium.org>
81564
81565        Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
81566        https://bugs.webkit.org/show_bug.cgi?id=109044
81567
81568        Reviewed by Darin Adler.
81569
81570        The pattern:
81571
81572            ExceptionCode ec = 0;
81573            methodThatGeneratesException(ec);
81574            ASSERT(!ec);
81575
81576        is more clearly and succinctly written as:
81577
81578            methodThatGeneratesException(ASSERT_NO_EXCEPTION);
81579
81580        This patch replaces the occurances of the former that never touch 'ec'
81581        again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
81582        a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
81583        where it does indeed matter that 'ec' get set properly.
81584
81585        No change in behavior should result from this refactoring.
81586
81587        * dom/ContainerNode.cpp:
81588        (WebCore::ContainerNode::takeAllChildrenFrom):
81589        * dom/Document.cpp:
81590        (WebCore::Document::setTitle):
81591        * dom/MessagePort.cpp:
81592        (WebCore::MessagePort::dispatchMessages):
81593        (WebCore::MessagePort::disentanglePorts):
81594        * editing/DeleteButtonController.cpp:
81595        (WebCore::enclosingDeletableElement):
81596        (WebCore::DeleteButtonController::createDeletionUI):
81597            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
81598        (WebCore::DeleteButtonController::show):
81599            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
81600        * editing/EditorCommand.cpp:
81601        (WebCore::unionDOMRanges):
81602        * editing/ReplaceNodeWithSpanCommand.cpp:
81603        (WebCore::swapInNodePreservingAttributesAndChildren):
81604        * editing/ReplaceSelectionCommand.cpp:
81605        (WebCore::ReplacementFragment::ReplacementFragment):
81606        (WebCore::ReplacementFragment::removeNode):
81607        (WebCore::ReplacementFragment::insertNodeBefore):
81608        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
81609        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
81610        (WebCore::ReplaceSelectionCommand::insertAsListItems):
81611        * editing/SplitTextNodeCommand.cpp:
81612        (WebCore::SplitTextNodeCommand::doUnapply):
81613        * editing/TextIterator.cpp:
81614        (WebCore::CharacterIterator::range):
81615        (WebCore::BackwardsCharacterIterator::range):
81616        (WebCore::TextIterator::rangeFromLocationAndLength):
81617        (WebCore::collapsedToBoundary):
81618        * editing/htmlediting.cpp:
81619        (WebCore::createTabSpanElement):
81620        * editing/mac/EditorMac.mm:
81621        (WebCore::Editor::fontForSelection):
81622        (WebCore::Editor::fontAttributesForSelectionStart):
81623        * editing/markup.cpp:
81624        (WebCore::createMarkup):
81625        (WebCore::trimFragment):
81626        (WebCore::createFragmentFromMarkupWithContext):
81627        (WebCore::fillContainerFromString):
81628        (WebCore::createFragmentFromText):
81629        (WebCore::createFragmentFromNodes):
81630        * html/ColorInputType.cpp:
81631        (WebCore::ColorInputType::createShadowSubtree):
81632            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
81633        * html/HTMLOptionsCollection.cpp:
81634        (WebCore::HTMLOptionsCollection::add):
81635            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
81636        * html/HTMLTextAreaElement.cpp:
81637        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
81638        * html/HTMLTextFormControlElement.cpp:
81639        (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
81640        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
81641        * html/TextFieldInputType.cpp:
81642        (WebCore::TextFieldInputType::updatePlaceholderText):
81643        * html/ValidationMessage.cpp:
81644        (WebCore::ValidationMessage::buildBubbleTree):
81645        * html/shadow/MediaControlElementTypes.cpp:
81646        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
81647        * inspector/InspectorPageAgent.cpp:
81648        (WebCore::InspectorPageAgent::getCookies):
81649        * inspector/InspectorStyleSheet.cpp:
81650        (WebCore::InspectorStyleSheet::addRule):
81651        * loader/appcache/ApplicationCacheHost.cpp:
81652        (WebCore::ApplicationCacheHost::dispatchDOMEvent):
81653        * page/DOMSelection.cpp:
81654        (WebCore::DOMSelection::deleteFromDocument):
81655        * page/DragController.cpp:
81656        (WebCore::prepareClipboardForImageDrag):
81657        * rendering/RenderTextControl.cpp:
81658        (WebCore::RenderTextControl::visiblePositionForIndex):
81659            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
81660
816612013-02-08  Alexei Filippov  <alph@chromium.org>
81662
81663        Web Inspector: disable profile type switching while profile in progress
81664        https://bugs.webkit.org/show_bug.cgi?id=109178
81665
81666        Reviewed by Yury Semikhatsky.
81667
81668        Disables profile type selection controls when a profiling session
81669        is in progress.
81670
81671        * inspector/front-end/HeapSnapshotView.js:
81672        (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
81673        * inspector/front-end/ProfileLauncherView.js:
81674        (WebInspector.ProfileLauncherView.prototype._updateControls):
81675        * inspector/front-end/ProfilesPanel.js:
81676        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
81677
816782013-02-08  Ilya Tikhonovsky  <loislo@chromium.org>
81679
81680        Web Inspector: Native Memory Instrumentation: adjust chunk transfer size for better speed.
81681        https://bugs.webkit.org/show_bug.cgi?id=109263
81682
81683        Reviewed by Yury Semikhatsky.
81684
81685        The chunk size is changed from 100 to 10000.
81686        addString counts only first 256 symbols of the string.o
81687
81688        * inspector/HeapGraphSerializer.cpp:
81689        (WebCore::HeapGraphSerializer::pushUpdateIfNeeded):
81690        (WebCore::HeapGraphSerializer::addString):
81691        * inspector/front-end/NativeMemorySnapshotView.js:
81692
816932013-02-08  Kentaro Hara  <haraken@chromium.org>
81694
81695        Support a relatedTarget attribute on focus/blur events
81696        https://bugs.webkit.org/show_bug.cgi?id=109176
81697
81698        Reviewed by Ojan Vafai.
81699
81700        In bug 76216, we supported a relatedTarget attribute on
81701        focusin/focusout events. We should also support it on focus/blur events.
81702
81703        See http://lists.w3.org/Archives/Public/www-dom/2012OctDec/0061.html
81704        for the www-dom discussion.
81705
81706        Test: fast/dom/shadow/shadow-boundary-events.html
81707              fast/events/related-target-focusevent.html
81708
81709        * dom/EventDispatchMediator.cpp:
81710        (WebCore::FocusEventDispatchMediator::create):
81711        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
81712        (WebCore::BlurEventDispatchMediator::create):
81713        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
81714        * dom/EventDispatchMediator.h:
81715        (FocusEventDispatchMediator):
81716        (BlurEventDispatchMediator):
81717        * dom/Node.cpp:
81718        (WebCore::Node::dispatchFocusInEvent):
81719        (WebCore::Node::dispatchFocusOutEvent):
81720        (WebCore::Node::dispatchFocusEvent):
81721        (WebCore::Node::dispatchBlurEvent):
81722
817232013-02-07  Yury Semikhatsky  <yurys@chromium.org>
81724
81725        Web Inspector: reduce number of native memory instrumentation categories
81726        https://bugs.webkit.org/show_bug.cgi?id=109146
81727
81728        Reviewed by Pavel Feldman.
81729
81730        Merged some of memory instrumentation categories.
81731
81732        * dom/WebCoreMemoryInstrumentation.cpp:
81733        (WebCore):
81734        * inspector/front-end/NativeMemorySnapshotView.js:
81735        (WebInspector.MemoryBlockViewProperties._initialize):
81736        * platform/PlatformMemoryInstrumentation.cpp:
81737        (WebCore):
81738
817392013-02-07  Mike West  <mkwst@chromium.org>
81740
81741        <iframe seamless> should avoid vertical scrollbars during the initial layout passes.
81742        https://bugs.webkit.org/show_bug.cgi?id=87707
81743
81744        Reviewed by Eric Seidel.
81745
81746        Seamless documents currently render incorrectly when their content fills
81747        the width of the container into which they're placed. Because FrameView
81748        assumes that the container's size is properly set before the first pass
81749        of layout, vertical scrollbars are incorrectly forced onto seamless
81750        content, because seamless sets the container's height to 0 before
81751        handing it off to FrameView for layout. The scrollbars make the
81752        available width for the seamless document ~15px smaller than it should
81753        be, resulting in content getting bumped to the next line.
81754
81755        This patch special-cases FrameView::calculateScrollbarModesForLayout in
81756        order to force scrollbars off for seamless documents with a full visible
81757        height of 0px. Once the layout pass has grabbed the content height and
81758        applied it to the visible height, scrollbars will again be applicable.
81759
81760        The change should be covered by rebaselines for the newly-passing
81761        results in fast/frame/seamless-{float,inline}.html
81762
81763        * page/FrameView.cpp:
81764        (WebCore::FrameView::calculateScrollbarModesForLayout):
81765            If we're rendering a seamless document, and the full visible height
81766            is 0, and the vertical scrollbar would otherwise be ScrollbarAuto,
81767            then force ScrollbarAlwaysOff.
81768
817692013-02-07  Kent Tamura  <tkent@chromium.org>
81770
81771        document.activeElement should not return a non-focusable element
81772        https://bugs.webkit.org/show_bug.cgi?id=86707
81773
81774        Reviewed by Hajime Morita.
81775
81776        This is based on a patch by Arpita Bahuguna.
81777
81778        Test: fast/dom/HTMLDocument/set-focus-on-valid-element.html
81779
81780        * dom/Document.cpp:
81781        (WebCore::Document::setFocusedNode):
81782        Added check for verifying that the node to be focused is
81783        focusable. However, this check should be skipped for HTMLPlugInElement
81784        because it has special behavior.
81785
817862013-02-07  Vladislav Kaznacheev  <kaznacheev@chromium.org>
81787
81788        Web Inspector: Fix front-end compilation warnings related to WebInspector.SidebarPane
81789        https://bugs.webkit.org/show_bug.cgi?id=109259
81790
81791        Reviewed by Vsevolod Vlasov.
81792
81793        * inspector/front-end/DOMBreakpointsSidebarPane.js:
81794        (WebInspector.DOMBreakpointsSidebarPane.Proxy):
81795        * inspector/front-end/SidebarPane.js:
81796
817972013-02-07  Kentaro Hara  <haraken@chromium.org>
81798
81799        [V8] enum V8HiddenPropertyCreationType is not used
81800        https://bugs.webkit.org/show_bug.cgi?id=109250
81801
81802        Reviewed by Adam Barth.
81803
81804        V8HiddenPropertyCreationType is always NewSymbol. We can remove the enum.
81805
81806        No tests. No change in behavior.
81807
81808        * bindings/v8/V8HiddenPropertyName.cpp:
81809        (WebCore::hiddenReferenceName):
81810        * bindings/v8/V8HiddenPropertyName.h:
81811        (WebCore):
81812
818132013-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>
81814
81815        Unreviewed, rolling out r142212.
81816        http://trac.webkit.org/changeset/142212
81817        https://bugs.webkit.org/show_bug.cgi?id=109255
81818
81819        Causes ASSERT(!m_installed) on launch (Requested by smfr on
81820        #webkit).
81821
81822        * WebCore.exp.in:
81823        * platform/MemoryPressureHandler.cpp:
81824        (WebCore):
81825        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
81826        * platform/MemoryPressureHandler.h:
81827        (MemoryPressureHandler):
81828        * platform/mac/MemoryPressureHandlerMac.mm:
81829        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
81830
818312013-02-07  Hanyee Kim  <choco@company100.net>
81832
81833        NamedFlowCollection should be a ContextDestructionObserver
81834        https://bugs.webkit.org/show_bug.cgi?id=99239
81835
81836        Reviewed by Adam Barth
81837
81838        This patch removes the raw pointer of Document in NamedFlowCollection.
81839        It could be replaced with ContextDestructionObserver.
81840        ContextDestructionObserver has the pointer and clears the pointer
81841        automatically when the document is destroyed. 
81842
81843        * dom/Document.cpp:
81844        (WebCore::Document::~Document):
81845        * dom/NamedFlowCollection.cpp:
81846        (WebCore::NamedFlowCollection::NamedFlowCollection):
81847        (WebCore::NamedFlowCollection::ensureFlowWithName):
81848        (WebCore::NamedFlowCollection::discardNamedFlow):
81849        (WebCore::NamedFlowCollection::document):
81850        (WebCore):
81851        * dom/NamedFlowCollection.h:
81852        (NamedFlowCollection):
81853
818542013-02-07  Dean Jackson  <dino@apple.com>
81855
81856        Followup review suggestions from Alexey Proskuryakov on
81857        https://bugs.webkit.org/show_bug.cgi?id=109215
81858
81859        Don't provide a charset on embedded SVG, especially
81860        with incorrect syntax :)
81861
81862        * css/mediaControlsQuickTime.css:
81863        (video::-webkit-media-controls-toggle-closed-captions-button):
81864        (video::-webkit-media-controls-closed-captions-track-list li.selected):
81865        (video::-webkit-media-controls-closed-captions-track-list li.selected:hover):
81866
818672013-02-07  Seulgi Kim  <seulgikim@company100.net>
81868
81869        [Gtk] RunLoop::run shuold run current thread's run loop.
81870        https://bugs.webkit.org/show_bug.cgi?id=107887
81871
81872        Reviewed by Martin Robinson.
81873
81874        Currently, RunLoop in Gtk can use just main thread's event loop.
81875        But the other ports are implemented to use RunLoop in sub threads.
81876
81877        This patch makes RunLoop constructor create new context, not use default
81878        context.
81879        But in the main thread still uses default context to use main event loop
81880        since there is some codes using glib directly (e.g. in
81881        LayerTreeHostGtk::scheduleLayerFlush).
81882
81883        No new tests. There is no case that uses RunLoop in off the main thread
81884        yet.
81885
81886        * platform/gtk/RunLoopGtk.cpp:
81887        (WebCore::RunLoop::RunLoop):
81888        (WebCore::RunLoop::run):
81889
818902013-02-07  Kentaro Hara  <haraken@chromium.org>
81891
81892        [V8] Move V8DOMWrapper::setNamedHiddenReference() to V8HiddenPropertyName.h
81893        https://bugs.webkit.org/show_bug.cgi?id=109186
81894
81895        Reviewed by Adam Barth.
81896
81897        V8HiddenPropertyName.h is a right place for setNamedHiddenReference().
81898
81899        No tests. No change in behavior.
81900
81901        * bindings/scripts/CodeGeneratorV8.pm:
81902        (GenerateNormalAttrGetter):
81903        * bindings/scripts/test/V8/V8TestObj.cpp:
81904        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
81905        * bindings/v8/V8DOMWrapper.cpp:
81906        * bindings/v8/V8DOMWrapper.h:
81907        (V8DOMWrapper):
81908        * bindings/v8/V8HiddenPropertyName.cpp:
81909        (WebCore::V8HiddenPropertyName::hiddenReferenceName):
81910        (WebCore::V8HiddenPropertyName::setNamedHiddenReference):
81911        (WebCore):
81912        * bindings/v8/V8HiddenPropertyName.h:
81913        (V8HiddenPropertyName):
81914        (WebCore::V8HiddenPropertyName::V8HiddenPropertyName):
81915        * bindings/v8/custom/V8MessageChannelCustom.cpp:
81916        (WebCore::V8MessageChannel::constructorCallbackCustom):
81917        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
81918        (WebCore::toV8Object):
81919
819202013-02-07  Elliott Sprehn  <esprehn@chromium.org>
81921
81922        getComputedStyle() doesn't report intermediate values during a transition of a pseudo element
81923        https://bugs.webkit.org/show_bug.cgi?id=106535
81924
81925        Reviewed by Ojan Vafai.
81926
81927        Element::computedStyle and CSSComputedStyleDeclaration::getPropertyCSSValue
81928        should use the PseudoElement and it's renderer if they exist so that
81929        querying the computed style while an animation is running returns
81930        the intermediate values.
81931
81932        No new tests, updated existing tests.
81933
81934        * css/CSSComputedStyleDeclaration.cpp:
81935        (WebCore::CSSComputedStyleDeclaration::styledNode): Added, returns either the PseudoElement or the Node.
81936        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Updated to use styledNode.
81937        * css/CSSComputedStyleDeclaration.h:
81938        (CSSComputedStyleDeclaration):
81939        * dom/Element.cpp:
81940        (WebCore::Element::computedStyle): Check the PseudoElement, not just the cached pseudo style.
81941        * dom/ElementRareData.h:
81942        (WebCore::ElementRareData::pseudoElement): Remove ASSERT_NOT_REACHED so passing other pseudos returns 0.
81943
819442013-02-07  Mark Lam  <mark.lam@apple.com>
81945
81946        Add a comment about how the SQLTransaction state machine works.
81947        https://bugs.webkit.org/show_bug.cgi?id=109243.
81948
81949        Rubber stamped by Anders Carlsson.
81950
81951        No new tests.
81952
81953        * Modules/webdatabase/SQLTransactionBackend.cpp:
81954
819552013-02-06  Gavin Barraclough  <barraclough@apple.com>
81956
81957        PluginProcess should quit immediately if idle in response to low-memory notifications
81958        https://bugs.webkit.org/show_bug.cgi?id=109103
81959        <rdar://problem/12679827>
81960
81961        Reviewed by Darin Adler.
81962
81963        This patch allows a process to set a custom callback for low memory warnings
81964        (defaulting to the current behaviour, as implemented in releaseMemory).
81965
81966        MemoryPressureHandler::install is currently used for two purposes - it is
81967        called when first initializing a low memory handler for a process, and also
81968        used to reinstall the handler (on a delay) after the notification has occured.
81969        Since reinstallation doesn't change the callback, split these behaviours out -
81970        MemoryPressureHandler::initialize is added to initialization, and accepts a
81971        custom callback, install in made private.
81972
81973        * WebCore.exp.in:
81974            - Added export for releaseMemory.
81975        * platform/MemoryPressureHandler.cpp:
81976        (WebCore::MemoryPressureHandler::releaseMemory):
81977            - Added null implementation for non-Mac builds.
81978        * platform/MemoryPressureHandler.h:
81979        (WebCore::MemoryPressureHandler::initialize):
81980            - distinguish initialization from reinstallations, allow handler to be set.
81981        (MemoryPressureHandler):
81982            - Added m_lowMemoryHandler function pointer member variable.
81983        * platform/mac/MemoryPressureHandlerMac.mm:
81984        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
81985            - Call m_lowMemoryHandler instead of releaseMemory.
81986
819872013-02-07  Kentaro Hara  <haraken@chromium.org>
81988
81989        [V8] #ifndef NDEBUG is redundant for assertContextHasCorrectPrototype()
81990        https://bugs.webkit.org/show_bug.cgi?id=109167
81991
81992        Reviewed by Andreas Kling.
81993
81994        Given that assertContextHasCorrectPrototype() is anyway empty in a release
81995        build, we don't need to surround it with #ifndef NDEBUG.
81996
81997        No tests. No change in behavior.
81998
81999        * bindings/v8/DOMWrapperWorld.cpp:
82000        (WebCore::DOMWrapperWorld::assertContextHasCorrectPrototype):
82001        * bindings/v8/DOMWrapperWorld.h:
82002        (DOMWrapperWorld):
82003        (WebCore::DOMWrapperWorld::isolated):
82004
820052013-02-07  Alexei Svitkine  <asvitkine@chromium.org>
82006
82007        Chromium: Hang parsing bidi control chars on Mac OS X 10.6
82008        https://bugs.webkit.org/show_bug.cgi?id=108877
82009
82010        This was broken a while ago by:
82011            https://bugs.webkit.org/show_bug.cgi?id=83045
82012
82013        On 10.6, CoreText will not produce any runs covering the
82014        Unicode BiDi RTL mark control char, which causes an infinite
82015        loop in ComplexTextController::indexOfCurrentRun() due to no
82016        run covering the character at offset 0.
82017
82018        This patch fixes that issue by finding the earliest run
82019        explicitly via the minimum stringBegin() index instead of
82020        relying on a run existing that covers offset 0.
82021
82022        Fixes hang on many BiDi wikipedia pages on Chromium/Mac10.6.
82023        Chromium bug: http://crbug.com/167844
82024
82025        New test in the same style as the harfbuzz-buffer-overrun.html
82026        test (in the same folder).
82027
82028        Reviewed by Eric Seidel.
82029
82030        Test: fast/text/international/rtl-mark.html
82031
82032        * platform/graphics/mac/ComplexTextController.cpp:
82033        (WebCore::ComplexTextController::indexOfCurrentRun):
82034
820352013-02-07  Kentaro Hara  <haraken@chromium.org>
82036
82037        Implement FocusEvent constructor
82038        https://bugs.webkit.org/show_bug.cgi?id=109170
82039
82040        Reviewed by Adam Barth.
82041
82042        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
82043
82044        FocusEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR
82045        flag, which is enabled on Chromium and Safari.
82046
82047        Test: fast/events/constructors/focus-event-constructor.html
82048
82049        * dom/FocusEvent.cpp:
82050        (WebCore::FocusEventInit::FocusEventInit):
82051        (WebCore):
82052        (WebCore::FocusEvent::FocusEvent):
82053        * dom/FocusEvent.h:
82054        (FocusEventInit):
82055        (WebCore):
82056        (WebCore::FocusEvent::create):
82057        (FocusEvent):
82058        * dom/FocusEvent.idl:
82059        * page/DOMWindow.idl:
82060
820612013-02-07  Elliott Sprehn  <esprehn@chromium.org>
82062
82063        HTML parser should queue MutationRecords for its operations
82064        https://bugs.webkit.org/show_bug.cgi?id=89351
82065
82066        Reviewed by Eric Seidel.
82067
82068        Generate mutation records inside the parser. This is done by using a
82069        ChildListMutationScope in the ContainerNode::parser* methods and then
82070        adding delivery before each <script> element would be processed by
82071        the parser.
82072
82073        Test: fast/dom/MutationObserver/parser-mutations.html
82074
82075        * dom/ContainerNode.cpp:
82076        (WebCore::ContainerNode::takeAllChildrenFrom):
82077        (WebCore::ContainerNode::parserInsertBefore):
82078        (WebCore::ContainerNode::parserRemoveChild):
82079        (WebCore::ContainerNode::parserAppendChild):
82080        * html/parser/HTMLScriptRunner.cpp:
82081        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
82082        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
82083        (WebCore::HTMLScriptRunner::execute):
82084        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
82085        (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
82086        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
82087        (WebCore::HTMLScriptRunner::runScript):
82088
820892013-02-07  Kentaro Hara  <haraken@chromium.org>
82090
82091        Fix FIXMEs in WindowFeatures.h
82092        https://bugs.webkit.org/show_bug.cgi?id=109151
82093
82094        Reviewed by Adam Barth.
82095
82096        1. // FIXME: We can delete this constructor once V8 showModalDialog is
82097           // changed to use DOMWindow.
82098
82099        This FIXME is not right. The WindowFeatures() constructor is used by
82100        other ports too (e.g. WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp).
82101        So we should remove the FIXME.
82102
82103        2. // FIXME: We can make these functions private non-member functions
82104           // once V8 showModalDialog is changed to use DOMWindow.
82105
82106        Given that V8 now uses DOMWindow in showModalDialog(), we can make the
82107        methods private.
82108
82109        No tests. No change in behavior.
82110
82111        * page/WindowFeatures.h:
82112        (WebCore):
82113        (WebCore::WindowFeatures::WindowFeatures):
82114        (WindowFeatures):
82115
821162013-02-07  Adam Barth  <abarth@webkit.org>
82117
82118        fast/parser/document-write-noscript.html fails for threaded HTML parser
82119        https://bugs.webkit.org/show_bug.cgi?id=109237
82120
82121        Reviewed by Eric Seidel.
82122
82123        If there are multiple calls to document.write in an external script, we
82124        need to wait for them all to complete before invalidating the
82125        speculative tokens. Instead of doing this when we unwind the
82126        document.write call stack, we do this when we're about to resume
82127        parsing after script execution.
82128
82129        Test: fast/parser/document-write-basic.html
82130
82131        * html/parser/HTMLDocumentParser.cpp:
82132        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
82133        (WebCore::HTMLDocumentParser::insert):
82134        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
82135
821362013-02-07  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
82137
82138        Fix build when compiling with css3-text and css3-conditional-rules feature flags enabled.
82139        https://bugs.webkit.org/show_bug.cgi?id=109217
82140
82141        Reviewed by Benjamin Poulain.
82142
82143        * css/InspectorCSSOMWrappers.cpp:
82144        (WebCore::InspectorCSSOMWrappers::collect):
82145
821462013-02-07  Keishi Hattori  <keishi@webkit.org>
82147
82148        REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
82149        https://bugs.webkit.org/show_bug.cgi?id=109136
82150
82151        Reviewed by Kent Tamura.
82152
82153        Calendar picker was using the "Clear" button to calculate the window width.
82154        Since it doesn't exist when the input element has a required attribute,
82155        it was throwing an error. This patch fixes the width calculating logic.
82156
82157        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
82158               platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html
82159
82160        * Resources/pagepopups/calendarPicker.css:
82161        (.today-clear-area):
82162        * Resources/pagepopups/calendarPicker.js:
82163        (CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
82164        the width. We don't want to use clear button because it doesn't exist
82165        when a value is required.
82166
821672013-02-07  Terry Anderson  <tdanderson@chromium.org>
82168
82169        Non-scrollable divs and non-scrollable iframes can scroll with touch
82170        https://bugs.webkit.org/show_bug.cgi?id=109087
82171
82172        Reviewed by Eric Seidel.
82173
82174        Tests: fast/events/touch/gesture/touch-gesture-noscroll-div.html
82175               fast/events/touch/gesture/touch-gesture-noscroll-iframe.html
82176
82177        When finding a candidate for a scrollable node in
82178        EventHandler::handleGestureScrollUpdate(), select the document node
82179        if it is reached before any scrollable element when walking up the DOM
82180        tree. Also ensure that calling RenderLayer::scrollBy() for a document
82181        node does not result in scrolling if the element is not scrollable.
82182
82183        * page/EventHandler.cpp:
82184        (WebCore::closestScrollableNodeCandidate):
82185        (WebCore::EventHandler::handleGestureScrollUpdate):
82186        * rendering/RenderLayer.cpp:
82187        (WebCore::RenderLayer::scrollBy):
82188
821892013-02-07  Mark Lam  <mark.lam@apple.com>
82190
82191        Introduce SQLTransactionBackend and SQLTransactionBackendSync [Part 2].
82192        https://bugs.webkit.org/show_bug.cgi?id=109109.
82193
82194        Reviewed by Anders Carlsson.
82195
82196        Adding back the new SQLTransaction and SQLTransactionSync files.
82197
82198        No new tests.
82199
82200        * Modules/webdatabase/SQLTransaction.cpp: Added.
82201        (WebCore::SQLTransaction::create):
82202        (WebCore::SQLTransaction::SQLTransaction):
82203        (WebCore::SQLTransaction::from):
82204        * Modules/webdatabase/SQLTransaction.h: Added.
82205        (SQLTransaction):
82206        * Modules/webdatabase/SQLTransactionSync.cpp: Added.
82207        (WebCore::SQLTransactionSync::create):
82208        (WebCore::SQLTransactionSync::SQLTransactionSync):
82209        (WebCore::SQLTransactionSync::from):
82210        * Modules/webdatabase/SQLTransactionSync.h: Added.
82211        (SQLTransactionSync):
82212
822132013-02-07  Mark Lam  <mark.lam@apple.com>
82214
82215        Introduce SQLTransactionBackend and SQLTransactionBackendSync.
82216        https://bugs.webkit.org/show_bug.cgi?id=109109.
82217
82218        Reviewed by Anders Carlsson.
82219
82220        - Renamed SQLTransaction and SQLTransactionSync to SQLTransactionBackend
82221          and SQLTransactionBackendSync respectively.
82222        - Added back SQLTransaction and SQLTransactionSync as new files, and have
82223          their classes extends their respective backends. This is a stop gap
82224          measure to keep things working until the front-end and back-end can be
82225          properly split.
82226          Note: these files will be committed in a subsequent commit to ensure
82227          that the patching goes smoothly.
82228        - Where needed, I made use of new SQLTransaction::from() and
82229          SQLTransactionSync::from() static methods that "get" the front-end
82230          transactions from the back-ends. This is also a stop gap measure to
82231          keep things working until the proper refactoring is complete.
82232        - Fixed up pre-existing style checker violations that are now detected
82233          on code that were touched during my renaming.
82234        - Added the back-end files to all the build files.
82235
82236        No new tests.
82237
82238        * CMakeLists.txt:
82239        * GNUmakefile.list.am:
82240        * Modules/webdatabase/Database.cpp:
82241        (WebCore::Database::scheduleTransactionStep):
82242        * Modules/webdatabase/Database.h:
82243        (Database):
82244        * Modules/webdatabase/DatabaseBackend.h:
82245        (DatabaseBackend):
82246        * Modules/webdatabase/DatabaseTask.cpp:
82247        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
82248        * Modules/webdatabase/DatabaseTask.h:
82249        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::create):
82250        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::transaction):
82251        (DatabaseBackendAsync::DatabaseTransactionTask):
82252        * Modules/webdatabase/SQLTransaction.cpp: Removed.
82253        * Modules/webdatabase/SQLTransaction.h: Removed.
82254        * Modules/webdatabase/SQLTransactionBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.cpp.
82255        (WebCore::SQLTransactionBackend::SQLTransactionBackend):
82256        (WebCore::SQLTransactionBackend::~SQLTransactionBackend):
82257        (WebCore::SQLTransactionBackend::executeSQL):
82258        (WebCore::SQLTransactionBackend::enqueueStatement):
82259        (WebCore::SQLTransactionBackend::debugStepName):
82260        (WebCore::SQLTransactionBackend::checkAndHandleClosedOrInterruptedDatabase):
82261        (WebCore::SQLTransactionBackend::performNextStep):
82262        (WebCore::SQLTransactionBackend::performPendingCallback):
82263        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
82264        (WebCore::SQLTransactionBackend::acquireLock):
82265        (WebCore::SQLTransactionBackend::lockAcquired):
82266        (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
82267        (WebCore::SQLTransactionBackend::deliverTransactionCallback):
82268        (WebCore::SQLTransactionBackend::scheduleToRunStatements):
82269        (WebCore::SQLTransactionBackend::runStatements):
82270        (WebCore::SQLTransactionBackend::getNextStatement):
82271        (WebCore::SQLTransactionBackend::runCurrentStatement):
82272        (WebCore::SQLTransactionBackend::handleCurrentStatementError):
82273        (WebCore::SQLTransactionBackend::deliverStatementCallback):
82274        (WebCore::SQLTransactionBackend::deliverQuotaIncreaseCallback):
82275        (WebCore::SQLTransactionBackend::postflightAndCommit):
82276        (WebCore::SQLTransactionBackend::deliverSuccessCallback):
82277        (WebCore::SQLTransactionBackend::cleanupAfterSuccessCallback):
82278        (WebCore::SQLTransactionBackend::handleTransactionError):
82279        (WebCore::SQLTransactionBackend::deliverTransactionErrorCallback):
82280        (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
82281        * Modules/webdatabase/SQLTransactionBackend.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransaction.h.
82282        (SQLTransactionBackend):
82283        * Modules/webdatabase/SQLTransactionBackendSync.cpp: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.cpp.
82284        (WebCore::SQLTransactionBackendSync::SQLTransactionBackendSync):
82285        (WebCore::SQLTransactionBackendSync::~SQLTransactionBackendSync):
82286        (WebCore::SQLTransactionBackendSync::executeSQL):
82287        (WebCore::SQLTransactionBackendSync::begin):
82288        (WebCore::SQLTransactionBackendSync::execute):
82289        (WebCore::SQLTransactionBackendSync::commit):
82290        (WebCore::SQLTransactionBackendSync::rollback):
82291        * Modules/webdatabase/SQLTransactionBackendSync.h: Copied from Source/WebCore/Modules/webdatabase/SQLTransactionSync.h.
82292        (SQLTransactionBackendSync):
82293        * Modules/webdatabase/SQLTransactionCoordinator.cpp:
82294        (WebCore::getDatabaseIdentifier):
82295        (WebCore::SQLTransactionCoordinator::processPendingTransactions):
82296        (WebCore::SQLTransactionCoordinator::acquireLock):
82297        (WebCore::SQLTransactionCoordinator::releaseLock):
82298        (WebCore::SQLTransactionCoordinator::shutdown):
82299        * Modules/webdatabase/SQLTransactionCoordinator.h:
82300        (SQLTransactionCoordinator):
82301        (WebCore::SQLTransactionCoordinator::SQLTransactionCoordinator):
82302        (CoordinationInfo):
82303        * Modules/webdatabase/SQLTransactionSync.cpp: Removed.
82304        * Modules/webdatabase/SQLTransactionSync.h: Removed.
82305        * Target.pri:
82306        * WebCore.gypi:
82307        * WebCore.vcproj/WebCore.vcproj:
82308        * WebCore.vcxproj/WebCore.vcxproj:
82309        * WebCore.vcxproj/WebCore.vcxproj.filters:
82310        * WebCore.xcodeproj/project.pbxproj:
82311
823122013-02-07  Dean Jackson  <dino@apple.com>
82313
82314        Use new speech bubble artwork for captions menu button
82315        https://bugs.webkit.org/show_bug.cgi?id=109215
82316
82317        Reviewed by Eric Carlson.
82318
82319        Rather than call into RenderTheme to display this button, embed artwork
82320        into the CSS. This means we can remove some uncalled methods in
82321        RenderTheme.
82322
82323        * css/mediaControlsQuickTime.css:
82324        (video::-webkit-media-controls-toggle-closed-captions-button): New background image using SVG.
82325        * rendering/RenderTheme.cpp:
82326        (WebCore::RenderTheme::paint): Don't call the specific painter for the CC button.
82327        * rendering/RenderTheme.h: Remove unused function.
82328        * rendering/RenderThemeMac.h: Ditto.
82329        * rendering/RenderThemeMac.mm: Ditto.
82330
823312013-02-07  Michelangelo De Simone  <michelangelo@webkit.org>
82332
82333        [CSS Shaders] Add the last blending step
82334        https://bugs.webkit.org/show_bug.cgi?id=104012
82335
82336        The resulting blended color in mix() is now weighted according to
82337        the original element's backdrop alpha value.
82338
82339        Reviewed by Dean Jackson.
82340
82341        Test: css3/filters/custom/custom-filter-blend-fractional-destination-alpha.html
82342
82343        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
82344        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
82345
823462013-02-07  Benjamin Poulain  <bpoulain@apple.com>
82347
82348        Fix two exports of WebCore symbols on iOS
82349        https://bugs.webkit.org/show_bug.cgi?id=109238
82350
82351        Reviewed by David Kilzer.
82352
82353        * WebCore.exp.in: Export wkCTFontTransformGlyphs but not
82354        wkCGContextDrawsWithCorrectShadowOffsets on iOS.
82355
823562013-02-07  Hans Muller  <hmuller@adobe.com>
82357
82358        [CSS Exclusions] Ignore ExclusionPolygon edges above minLogicalIntervalTop
82359        https://bugs.webkit.org/show_bug.cgi?id=107566
82360
82361        Reviewed by David Hyatt.
82362
82363        Improve ExclusionPolygon::firstIncludedIntervalLogicalTop() performance by only
82364        creating offset edges for polygon edges that are below the horizontal minLogicalIntervalTop
82365        line. In other words, don't bother creating offset edges that can't define the polygon's
82366        first fit location.
82367
82368        Test: fast/exclusions/shape-inside/shape-inside-first-fit-004.html
82369
82370        * rendering/ExclusionPolygon.cpp:
82371        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Don't create offset edges for polygon edges above minLogicalIntervalTop.
82372
823732013-02-07  Jer Noble  <jer.noble@apple.com>
82374
82375        Improve logging of MediaPlayerPrivateAVFoundation Notifications.
82376        https://bugs.webkit.org/show_bug.cgi?id=109223
82377
82378        Reviewed by Eric Carlson.
82379
82380        Convert the existing Notification enum to an expandable macro. Then add a
82381        Logging-only function which stringifies the enums.
82382
82383        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
82384        (WebCore):
82385        (WebCore::notificationName):
82386        (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
82387        (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
82388        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
82389
823902013-02-07  Martin Robinson  <mrobinson@igalia.com>
82391
82392        [GTK] Cleanup command-line defines
82393        https://bugs.webkit.org/show_bug.cgi?id=109213
82394
82395        Reviewed by Xan Lopez.
82396
82397        * GNUmakefile.am: Remove references to flags that are now handled
82398        via autotoolsconfig.h.
82399
824002013-02-07  Tom Sepez  <tsepez@chromium.org>
82401
82402        [V8] Binding Integrity crash in V8MediaStream::createWrapper
82403        https://bugs.webkit.org/show_bug.cgi?id=109211
82404
82405        Reviewed by Adam Barth.
82406
82407        Patch suppresses a chrome crasher.
82408
82409        * Modules/mediastream/MediaStream.idl:
82410
824112013-02-07  Eric Carlson  <eric.carlson@apple.com>
82412
82413        [Mac] decrease in-band caption advance notice interval
82414        https://bugs.webkit.org/show_bug.cgi?id=109190
82415
82416        Reviewed by Simon Fraser.
82417
82418        No new tests, no observable change in behavior.
82419
82420        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
82421        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Request cues 2 seconds in advance.
82422
824232013-02-07  ChangSeok Oh  <shivamidow@gmail.com>
82424
82425        [GTK][AC] Clutter required version up to 1.12
82426        https://bugs.webkit.org/show_bug.cgi?id=109037
82427
82428        Reviewed by Martin Robinson.
82429
82430        Replace deprecated clutter apis with new ones.
82431
82432        No new tests, since this patch is minor refactoring.
82433
82434        * platform/graphics/clutter/GraphicsLayerActor.cpp:
82435        (graphicsLayerActorSetAnchorPoint):
82436        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
82437        (WebCore::idleDestroy):
82438        (WebCore::GraphicsLayerClutter::updateSublayerList):
82439
824402013-02-07  Benjamin Poulain  <bpoulain@apple.com>
82441
82442        Move pauseAnimation/pauseTransition from TestRunner to Internals
82443        https://bugs.webkit.org/show_bug.cgi?id=109107
82444
82445        Reviewed by Anders Carlsson.
82446
82447        Tests: animations/animation-internals-api-multiple-keyframes.html
82448               animations/animation-internals-api.html
82449
82450        * testing/Internals.cpp:
82451        (WebCore::Internals::pauseAnimationAtTimeOnElement):
82452        (WebCore):
82453        (WebCore::Internals::pauseTransitionAtTimeOnElement):
82454        * testing/Internals.h:
82455        (Internals):
82456        * testing/Internals.idl:
82457
824582013-02-07  Gavin Peters  <gavinp@chromium.org>
82459
82460        Unreviewed, rolling out r142155.
82461        http://trac.webkit.org/changeset/142155
82462        https://bugs.webkit.org/show_bug.cgi?id=82888
82463
82464        cr/win build broke.
82465
82466        * bindings/js/JSClipboardCustom.cpp:
82467        (WebCore::JSClipboard::types):
82468        * bindings/v8/custom/V8ClipboardCustom.cpp:
82469        (WebCore::V8Clipboard::typesAccessorGetter):
82470        * dom/Clipboard.h:
82471        (Clipboard):
82472        * platform/blackberry/ClipboardBlackBerry.cpp:
82473        (WebCore::ClipboardBlackBerry::types):
82474        * platform/blackberry/ClipboardBlackBerry.h:
82475        (ClipboardBlackBerry):
82476        * platform/chromium/ChromiumDataObject.cpp:
82477        (WebCore::ChromiumDataObject::types):
82478        * platform/chromium/ChromiumDataObject.h:
82479        (ChromiumDataObject):
82480        * platform/chromium/ClipboardChromium.cpp:
82481        (WebCore::ClipboardChromium::types):
82482        * platform/chromium/ClipboardChromium.h:
82483        (ClipboardChromium):
82484        * platform/efl/ClipboardEfl.cpp:
82485        (WebCore::ClipboardEfl::types):
82486        * platform/efl/ClipboardEfl.h:
82487        (ClipboardEfl):
82488        * platform/gtk/ClipboardGtk.cpp:
82489        (WebCore::ClipboardGtk::types):
82490        * platform/gtk/ClipboardGtk.h:
82491        (ClipboardGtk):
82492        * platform/mac/ClipboardMac.h:
82493        (ClipboardMac):
82494        * platform/mac/ClipboardMac.mm:
82495        (WebCore::addHTMLClipboardTypesForCocoaType):
82496        (WebCore::ClipboardMac::types):
82497        * platform/qt/ClipboardQt.cpp:
82498        (WebCore::ClipboardQt::types):
82499        * platform/qt/ClipboardQt.h:
82500        (ClipboardQt):
82501        * platform/win/ClipboardWin.cpp:
82502        (WebCore::addMimeTypesForFormat):
82503        (WebCore::ClipboardWin::types):
82504        * platform/win/ClipboardWin.h:
82505        (ClipboardWin):
82506
825072013-02-07  Rik Cabanier  <cabanier@adobe.com>
82508
82509        Add support for parsing of -webkit-background-blend-mode
82510        https://bugs.webkit.org/show_bug.cgi?id=108547
82511
82512        Reviewed by David Hyatt.
82513
82514        Added parsing and general CSS handling of -webkit-background-blend-mode per 
82515        https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#background-blend-mode
82516
82517        Tests: css3/compositing/background-blend-mode-property-parsing.html
82518               css3/compositing/background-blend-mode-property.html
82519
82520        * css/CSSComputedStyleDeclaration.cpp: Built value for getComputedStyle.
82521        (WebCore):
82522        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
82523        * css/CSSParser.cpp: Parsed and stored value of -webkit-background-blend-mode.
82524        (WebCore::CSSParser::parseValue):
82525        (WebCore::CSSParser::parseFillProperty):
82526        * css/CSSProperty.cpp: Listed -webkit-background-blend-mode as a non-inherited property.
82527        (WebCore::CSSProperty::isInheritedProperty):
82528        * css/CSSPropertyNames.in: Added -webkit-background-blend-mode as a CSS property.
82529        * css/CSSToStyleMap.cpp: Mapped background blend mode from CSS value to enum.
82530        (WebCore::CSSToStyleMap::mapFillBlendMode):
82531        (WebCore):
82532        * css/CSSToStyleMap.h: Added function declaration 'mapFillBlendMode'.
82533        (CSSToStyleMap):
82534        * css/StyleBuilder.cpp: Set up propery handler for -webkit-background-blend-mode.
82535        (WebCore::StyleBuilder::StyleBuilder):
82536        * rendering/style/FillLayer.cpp: Added code to store and retrieve the blend mode from a layer.
82537        (WebCore::FillLayer::FillLayer):
82538        (WebCore::FillLayer::operator=):
82539        (WebCore::FillLayer::operator==):
82540        (WebCore::FillLayer::fillUnsetProperties):
82541        * rendering/style/FillLayer.h: Added function definitions to manage blend mode in a layer.
82542        (WebCore::FillLayer::blendMode):
82543        (WebCore::FillLayer::isBlendModeSet):
82544        (WebCore::FillLayer::setBlendMode):
82545        (WebCore::FillLayer::clearBlendMode):
82546        (WebCore::FillLayer::initialFillBlendMode):
82547        (FillLayer):
82548
825492013-02-07  Gavin Peters  <gavinp@chromium.org>
82550
82551        Unreviewed, rolling out r142142.
82552        http://trac.webkit.org/changeset/142142
82553        https://bugs.webkit.org/show_bug.cgi?id=109154
82554
82555        Mac expectations were not right. See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .
82556
82557
82558        * inspector/front-end/DefaultTextEditor.js:
82559        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
82560
825612013-02-07  Gavin Peters  <gavinp@chromium.org>
82562
82563        Unreviewed, rolling out r142081.
82564        http://trac.webkit.org/changeset/142081
82565        https://bugs.webkit.org/show_bug.cgi?id=109146
82566
82567        The patch caused a crash in inspector-protocol/nmi-webaudio*.html .
82568
82569        See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio-leak-test.html and http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=inspector-protocol%2Fnmi-webaudio.html .
82570
82571        * dom/WebCoreMemoryInstrumentation.cpp:
82572        (WebCore):
82573        * inspector/front-end/NativeMemorySnapshotView.js:
82574        (WebInspector.MemoryBlockViewProperties._initialize):
82575        * platform/PlatformMemoryInstrumentation.cpp:
82576        (WebCore):
82577
825782013-02-07  Bear Travis  <betravis@adobe.com>
82579
82580        [CSS Exclusions] shape-inside does not properly handle padding or border
82581        https://bugs.webkit.org/show_bug.cgi?id=102715
82582
82583        Reviewed by David Hyatt.
82584
82585        This patch positions the exclusion shape based on the value of the css box sizing
82586        property. Geometry calculations happen in the shape coordinate space. For layout,
82587        these coordinates are translated to the border-box coordinate system by adding
82588        the appropriate offsets.
82589
82590        Test: fast/exclusions/shape-inside/shape-inside-box-sizing.html
82591
82592        * rendering/ExclusionShapeInfo.cpp:
82593        (WebCore::::computedShape): Pass m_shapeLogicalWidth to the exclusion shape
82594        geometry code.
82595        * rendering/ExclusionShapeInfo.h:
82596        (WebCore::ExclusionShapeInfo::setShapeSize): Adjust block layout dimensions to
82597        shape dimensions when checking to see if the shape geometry must be recalculated.
82598        (WebCore::ExclusionShapeInfo::shapeLogicalTop): Account for layout offsets.
82599        (WebCore::ExclusionShapeInfo::shapeLogicalBottom): Ditto.
82600        (WebCore::ExclusionShapeInfo::shapeLogicalLeft): Ditto.
82601        (WebCore::ExclusionShapeInfo::shapeLogicalRight): Ditto.
82602        (WebCore::ExclusionShapeInfo::logicalTopOffset): Return the offset from the logical
82603        top of the border box to the logical top of the shape.
82604        (WebCore::ExclusionShapeInfo::logicalLeftOffset): Return the offset from the logical
82605        left of the border box to the logical left of the shape.
82606        (ExclusionShapeInfo):
82607        * rendering/ExclusionShapeInsideInfo.cpp:
82608        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Adjust line top to
82609        be in shape coordinates.
82610        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
82611        * rendering/ExclusionShapeInsideInfo.h:
82612        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Use consistent
82613        coordinate system (border box) to test for whether a line overlaps a shape.
82614        (WebCore::ExclusionShapeInsideInfo::logicalLineTop): Include the logical offset
82615        from the border box.
82616        (WebCore::ExclusionShapeInsideInfo::logicalLineBottom): Ditto.
82617
826182013-02-07  Benjamin Poulain  <bpoulain@apple.com>
82619
82620        Upstream iOS isWebThread() and isUIThread()
82621        https://bugs.webkit.org/show_bug.cgi?id=109130
82622
82623        Reviewed by Sam Weinig.
82624
82625        * bindings/objc/WebScriptObject.mm:
82626        (+[WebScriptObject initialize]):
82627        * platform/mac/SharedBufferMac.mm:
82628        (+[WebCoreSharedBufferData initialize]):
82629        #ifdef out the legacy initialization as it is not correct when
82630        using a WebThread.
82631
826322013-02-07  Vivek Galatage  <vivek.vg@samsung.com>
82633
82634        Web Inspector: CPU pegged when inspecting LocalStorage that mutates.
82635        https://bugs.webkit.org/show_bug.cgi?id=107937
82636
82637        Reviewed by Yury Semikhatsky.
82638
82639        The DOM storage agent will fire an event to the frontend based on the action
82640        performed on the storage. Based on this action, the front-end will just add/update/remove
82641        the entry in the view. This enhances the front-end responsiveness as the round trip
82642        for fetching the storage entries has been eliminated.
82643
82644        Existing test: LayoutTests/inspector/storage-panel-dom-storage-update.html should verify the change
82645
82646        * inspector/Inspector.json:
82647        * inspector/InspectorDOMStorageAgent.cpp:
82648        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
82649        * inspector/front-end/DOMStorage.js:
82650        (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
82651        (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
82652        (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
82653        (WebInspector.DOMStorageModel.prototype._domStorageItemUpdated):
82654        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemsCleared):
82655        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemRemoved):
82656        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemAdded):
82657        (WebInspector.DOMStorageDispatcher.prototype.domStorageItemUpdated):
82658        * inspector/front-end/DOMStorageItemsView.js:
82659        (WebInspector.DOMStorageItemsView):
82660        (WebInspector.DOMStorageItemsView.prototype.wasShown):
82661        (WebInspector.DOMStorageItemsView.prototype._domStorageItemsCleared):
82662        (WebInspector.DOMStorageItemsView.prototype._domStorageItemRemoved):
82663        (WebInspector.DOMStorageItemsView.prototype._domStorageItemAdded):
82664        (WebInspector.DOMStorageItemsView.prototype._domStorageItemUpdated):
82665        (WebInspector.DOMStorageItemsView.prototype._update):
82666        (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
82667        (WebInspector.DOMStorageItemsView.prototype._refreshButtonClicked):
82668        (WebInspector.DOMStorageItemsView.prototype._editingCallback):
82669        (WebInspector.DOMStorageItemsView.prototype._deleteCallback):
82670        * inspector/front-end/ResourcesPanel.js:
82671        (WebInspector.ResourcesPanel):
82672        (WebInspector.ResourcesPanel.prototype._showDOMStorage.get if):
82673        (WebInspector.ResourcesPanel.prototype._showDOMStorage):
82674
826752013-02-07  Dan Carney  <dcarney@google.com>
82676
82677        [v8] move persistent::new and ::dispose into same class
82678        https://bugs.webkit.org/show_bug.cgi?id=109065
82679
82680        Reviewed by Adam Barth.
82681
82682        No new tests. No change in functionality.
82683
82684        * bindings/scripts/CodeGeneratorV8.pm:
82685        (GenerateSingleConstructorCallback):
82686        (GenerateEventConstructorCallback):
82687        (GenerateNamedConstructorCallback):
82688        (GenerateToV8Converters):
82689        * bindings/scripts/test/V8/V8Float64Array.cpp:
82690        (WebCore::V8Float64Array::createWrapper):
82691        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
82692        (WebCore::V8TestActiveDOMObject::createWrapper):
82693        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
82694        (WebCore::V8TestCustomNamedGetter::createWrapper):
82695        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
82696        (WebCore::V8TestEventConstructor::constructorCallback):
82697        (WebCore::V8TestEventConstructor::createWrapper):
82698        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
82699        (WebCore::V8TestEventTarget::createWrapper):
82700        * bindings/scripts/test/V8/V8TestException.cpp:
82701        (WebCore::V8TestException::createWrapper):
82702        * bindings/scripts/test/V8/V8TestInterface.cpp:
82703        (WebCore::V8TestInterface::constructorCallback):
82704        (WebCore::V8TestInterface::createWrapper):
82705        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
82706        (WebCore::V8TestMediaQueryListListener::createWrapper):
82707        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
82708        (WebCore::V8TestNamedConstructorConstructorCallback):
82709        (WebCore::V8TestNamedConstructor::createWrapper):
82710        * bindings/scripts/test/V8/V8TestNode.cpp:
82711        (WebCore::V8TestNode::constructorCallback):
82712        (WebCore::V8TestNode::createWrapper):
82713        * bindings/scripts/test/V8/V8TestObj.cpp:
82714        (WebCore::V8TestObj::constructorCallback):
82715        (WebCore::V8TestObj::createWrapper):
82716        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
82717        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
82718        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
82719        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
82720        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
82721        (WebCore::V8TestOverloadedConstructors::createWrapper):
82722        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
82723        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
82724        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
82725        * bindings/v8/DOMDataStore.cpp:
82726        * bindings/v8/DOMDataStore.h:
82727        (WebCore::DOMDataStore::setWrapper):
82728        (DOMDataStore):
82729        (WebCore::DOMDataStore::set):
82730        (WebCore::DOMDataStore::setWrapperInObject):
82731        * bindings/v8/DOMWrapperMap.h:
82732        (WebCore::DOMWrapperMap::get):
82733        (WebCore::DOMWrapperMap::set):
82734        (WebCore::DOMWrapperMap::removeAndDispose):
82735        (WebCore::DOMWrapperMap::defaultWeakCallback):
82736        * bindings/v8/ScriptWrappable.h:
82737        (WebCore::ScriptWrappable::wrapper):
82738        (WebCore::ScriptWrappable::setWrapper):
82739        (WebCore::ScriptWrappable::reportMemoryUsage):
82740        (ScriptWrappable):
82741        (WebCore::ScriptWrappable::disposeWrapper):
82742        (WebCore::ScriptWrappable::weakCallback):
82743        * bindings/v8/V8DOMWindowShell.cpp:
82744        (WebCore::V8DOMWindowShell::installDOMWindow):
82745        * bindings/v8/V8DOMWrapper.h:
82746        (V8DOMWrapper):
82747        (WebCore::V8DOMWrapper::associateObjectWithWrapper):
82748        * bindings/v8/V8NPObject.cpp:
82749        (WebCore::weakNPObjectCallback):
82750        (WebCore::createV8ObjectForNPObject):
82751        (WebCore::forgetV8ObjectForNPObject):
82752        * bindings/v8/WorkerScriptController.cpp:
82753        (WebCore::WorkerScriptController::initializeContextIfNeeded):
82754        * bindings/v8/WrapperTypeInfo.h:
82755        (WebCore):
82756        (WrapperConfiguration):
82757        (WebCore::WrapperConfiguration::configureWrapper):
82758        (WebCore::buildWrapperConfiguration):
82759        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
82760        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
82761        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
82762        (WebCore::wrapArrayBufferView):
82763        (WebCore::constructWebGLArray):
82764        * bindings/v8/custom/V8AudioContextCustom.cpp:
82765        (WebCore::V8AudioContext::constructorCallbackCustom):
82766        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
82767        (WebCore::V8DOMFormData::constructorCallbackCustom):
82768        * bindings/v8/custom/V8DataViewCustom.cpp:
82769        (WebCore::V8DataView::constructorCallbackCustom):
82770        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
82771        (WebCore::v8HTMLImageElementConstructorCallback):
82772        * bindings/v8/custom/V8IntentCustom.cpp:
82773        (WebCore::V8Intent::constructorCallbackCustom):
82774        * bindings/v8/custom/V8MessageChannelCustom.cpp:
82775        (WebCore::V8MessageChannel::constructorCallbackCustom):
82776        * bindings/v8/custom/V8MutationObserverCustom.cpp:
82777        (WebCore::V8MutationObserver::constructorCallbackCustom):
82778        * bindings/v8/custom/V8WebKitPointCustom.cpp:
82779        (WebCore::V8WebKitPoint::constructorCallbackCustom):
82780        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
82781        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
82782
827832013-02-07  Zan Dobersek  <zdobersek@igalia.com>
82784
82785        [Autotools] Remove uses of Automake FARSTREAM_(CFLAGS|LIBS) variables, USE_FARSTREAM conditional
82786        https://bugs.webkit.org/show_bug.cgi?id=109198
82787
82788        Reviewed by Martin Robinson.
82789
82790        * GNUmakefile.am: Remove FARSTREAM_CFLAGS variable, it's not set to anything.
82791
827922013-02-07   Vineet Chaudhary  <rgf748@motorola.com>
82793
82794        Consider replacing return type of Clipboard::types() from ListHashSet<String> to Vector<String>
82795        https://bugs.webkit.org/show_bug.cgi?id=82888
82796
82797        Reviewed by Kentaro Hara.
82798
82799        As part of removing custom bindings of types Array Clipboard::types() needs to return
82800        Vector<String> than ListHashSet<String>
82801
82802        No new tests. Existing test should pass with this change as no behavoural changes.
82803
82804        * bindings/js/JSClipboardCustom.cpp: Replace data type from ListHashSet<> to Vector<>.
82805        (WebCore::JSClipboard::types):
82806        * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
82807        (WebCore::V8Clipboard::typesAccessorGetter): Ditto.
82808        * dom/Clipboard.h: Ditto.
82809        * platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
82810        (WebCore::ClipboardBlackBerry::types):
82811        * platform/blackberry/ClipboardBlackBerry.h: Ditto.
82812        * platform/chromium/ChromiumDataObject.cpp: Ditto.
82813        (WebCore::ChromiumDataObject::types):
82814        * platform/chromium/ChromiumDataObject.h: Ditto.
82815        * platform/chromium/ClipboardChromium.cpp: Ditto.
82816        (WebCore::ClipboardChromium::types):
82817        * platform/chromium/ClipboardChromium.h: Ditto.
82818        * platform/efl/ClipboardEfl.cpp: Ditto.
82819        (WebCore::ClipboardEfl::types):
82820        * platform/efl/ClipboardEfl.h: Ditto.
82821        * platform/gtk/ClipboardGtk.cpp: Ditto.
82822        (WebCore::ClipboardGtk::types):
82823        * platform/gtk/ClipboardGtk.h: Ditto.
82824        * platform/mac/ClipboardMac.h: Ditto.
82825        * platform/mac/ClipboardMac.mm: Ditto.
82826        (WebCore::addHTMLClipboardTypesForCocoaType):
82827        (WebCore::ClipboardMac::types):
82828        * platform/qt/ClipboardQt.cpp: Ditto.
82829        (WebCore::ClipboardQt::types):
82830        * platform/qt/ClipboardQt.h: Ditto.
82831        * platform/win/ClipboardWin.cpp: Ditto.
82832        (WebCore::addMimeTypesForFormat):
82833        (WebCore::ClipboardWin::types):
82834        * platform/win/ClipboardWin.h: Ditto.
82835
828362013-02-07  Kentaro Hara  <haraken@chromium.org>
82837
82838        [V8] StringCache::m_stringCache should be HashMap<StringImpl*, Persistent<String>>
82839        https://bugs.webkit.org/show_bug.cgi?id=109123
82840
82841        Reviewed by Adam Barth.
82842
82843        Currently StringCache::m_stringCache is implemented as
82844        HashMap<StringImpl*, v8::String*>. Given that v8::String*
82845        can change when a GC is triggered, it is dangerous to store a raw pointer.
82846        We should use HashMap<StringImpl*, v8::Persistent<v8::String>> instead.
82847
82848        This is a possible fix for an IndexedDB crash (https://bugs.webkit.org/show_bug.cgi?id=105363),
82849        although I'm not sure if this patch fixes the crash. (I couldn't reproduce the crash.)
82850
82851        No tests. This change highly depends on GC behavior and thus it is
82852        difficult to make a reliable test case.
82853
82854        * bindings/v8/V8ValueCache.cpp:
82855        (WebCore::makeExternalString):
82856        * bindings/v8/V8ValueCache.h:
82857        (StringCache):
82858
828592013-01-27  Robert Hogan  <robert@webkit.org>
82860
82861        CSS 2.1 failure: floats-149 fails
82862        https://bugs.webkit.org/show_bug.cgi?id=95772
82863
82864        Reviewed by David Hyatt.
82865
82866        Treat inlines that contain nothing but empty inlines as empty too so that they get a linebox.
82867
82868        Tests: fast/inline/inline-with-empty-inline-children.html
82869               css2.1/20110323/floats-149.htm
82870
82871        * rendering/InlineIterator.h:
82872        (WebCore::isEmptyInline):
82873        * rendering/RenderBlockLineLayout.cpp:
82874        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Now that empty inlines get a linebox any out-of-flow
82875        objects inside an empty inline (on a line that is otherwise empty) won't get positioned while skipping 
82876        through leading whitespace. 
82877
828782013-02-07  peavo@outlook.com  <peavo@outlook.com>
82879
82880        [WinCairo] Compile fix after r141981
82881        https://bugs.webkit.org/show_bug.cgi?id=109184
82882
82883        Reviewed by Brent Fulgham.
82884
82885        * platform/network/curl/ResourceHandleCurl.cpp:
82886        (WebCore::ResourceHandle::loadResourceSynchronously):
82887
828882013-02-07  Otto Derek Cheung  <otcheung@rim.com>
82889
82890        [BlackBerry] Cookie database isn't loaded into memory in some rare cases
82891        https://bugs.webkit.org/show_bug.cgi?id=109202
82892        PR 286189
82893
82894        Reviewed by Yong Li.
82895        Internally Reviewed by Konrad Piascik.
82896
82897        If a get/setCookie call is made before the database is loaded, or if there's some
82898        kind of error that causes the loading of the database to fail in the constructor
82899        of CookieManager, the browser will get into a state where it seems like cookie is
82900        permanenty disabled.
82901
82902        Instead of logging the errors and redispatching the setCookie, we should do a force sync
82903        to load the cookie database before continuing.
82904
82905        Since the bug is so difficult to reproduce (I never did so myself), I did the follow test
82906        to make sure the code path is correct:
82907        1) Make sure original implementation is retained - open and loading done in the constructor
82908        2) Removed opening and loading in constructor, the new calls in get/setcookies loaded the db just fine (although with
82909        an initial lag because we are blocking WKT while performing SQLite options).
82910        3) Removed loading in constructor, the new calls loaded the db just fine.
82911
82912        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
82913        (WebCore::CookieDatabaseBackingStore::openAndLoadDatabaseSynchronously):
82914        (WebCore):
82915        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
82916        (CookieDatabaseBackingStore):
82917        * platform/blackberry/CookieManager.cpp:
82918        (WebCore::CookieManager::setCookies):
82919        (WebCore::CookieManager::getCookie):
82920        (WebCore::CookieManager::generateHtmlFragmentForCookies):
82921        (WebCore::CookieManager::getRawCookies):
82922
829232013-02-07  Max Vujovic  <mvujovic@adobe.com>
82924
82925        [CSS Shaders] Add WebKitCSSFilterRule to DOMWindow.idl
82926        https://bugs.webkit.org/show_bug.cgi?id=109082
82927
82928        Reviewed by Dean Jackson.
82929
82930        Add an entry for WebKitCSSFilterRuleConstructor in DOMWindow.idl.
82931
82932        Tests: css3/filters/custom-with-at-rule-syntax/parsing-at-rule-invalid.html
82933               css3/filters/custom-with-at-rule-syntax/parsing-at-rule-valid.html
82934
82935        * page/DOMWindow.idl:
82936
829372013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>
82938
82939        Web Inspector: Remove unused workspace field from NetworkUISourceCodeProvider
82940        https://bugs.webkit.org/show_bug.cgi?id=109201
82941
82942        Reviewed by Pavel Feldman.
82943
82944        * inspector/front-end/NetworkUISourceCodeProvider.js:
82945        (WebInspector.NetworkUISourceCodeProvider):
82946        * inspector/front-end/inspector.js:
82947
829482013-02-07  Jessie Berlin  <jberlin@apple.com>
82949
82950        REGRESSION(r142003): Duplicate "Unknown" strings in LocalizedStrings.cpp not distinguished
82951        by key
82952        https://bugs.webkit.org/show_bug.cgi?id=109196
82953
82954        Reviewed by Eric Carlson.
82955
82956        * English.lproj/Localizable.strings:
82957        Updated for the changes.
82958        * platform/LocalizedStrings.cpp:
82959        (WebCore::unknownFileSizeText):
82960        Add a key.
82961        (WebCore::textTrackNoLabelText):
82962        Ditto.
82963
829642013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>
82965
82966        Web Inspector: linkifyResourceAsNode produced anchor should not prefer resources to scripts panel.
82967        https://bugs.webkit.org/show_bug.cgi?id=109197
82968
82969        Reviewed by Pavel Feldman.
82970
82971        Javascript syntax errors in console are now linkified so that they show sources panel by default.
82972
82973        * inspector/front-end/ResourceUtils.js:
82974        (WebInspector.linkifyResourceAsNode):
82975
829762013-02-07  Eberhard Graether  <egraether@google.com>
82977
82978        Web Inspector: Add settings checkbox for composited layer borders
82979        https://bugs.webkit.org/show_bug.cgi?id=109096
82980
82981        Reviewed by Pavel Feldman.
82982
82983        This change adds a checkbox to show composited layer borders to the WebInspector's
82984        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The setting
82985        is visible if InspectorClient::canShowDebugBorders() returns true.
82986
82987        No new tests.
82988
82989        * English.lproj/localizedStrings.js:
82990        * inspector/Inspector.json:
82991        * inspector/InspectorClient.h:
82992        (WebCore::InspectorClient::canShowDebugBorders):
82993        (WebCore::InspectorClient::setShowDebugBorders):
82994        (InspectorClient):
82995        * inspector/InspectorPageAgent.cpp:
82996        (PageAgentState):
82997        (WebCore::InspectorPageAgent::restore):
82998        (WebCore::InspectorPageAgent::disable):
82999        (WebCore::InspectorPageAgent::canShowDebugBorders):
83000        (WebCore):
83001        (WebCore::InspectorPageAgent::setShowDebugBorders):
83002        * inspector/InspectorPageAgent.h:
83003        * inspector/front-end/Settings.js:
83004        * inspector/front-end/SettingsScreen.js:
83005        (WebInspector.GenericSettingsTab):
83006        (WebInspector.GenericSettingsTab.prototype.get _showDebugBordersChanged):
83007        * inspector/front-end/inspector.js:
83008        (WebInspector.doLoadedDone):
83009
830102013-02-07  Gavin Peters  <gavinp@chromium.org>
83011
83012        Unreviewed, rolling out r142141.
83013        http://trac.webkit.org/changeset/142141
83014        https://bugs.webkit.org/show_bug.cgi?id=108990
83015
83016        Reland r142112, will update Chromium expectations and create a
83017        Chromium bug instead for the crash.
83018
83019        * CMakeLists.txt:
83020        * Target.pri:
83021        * WebCore.pri:
83022        * page/scrolling/ScrollingCoordinator.cpp:
83023        (WebCore::ScrollingCoordinator::create):
83024        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
83025        (WebCore):
83026        (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
83027        (WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
83028        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
83029        (WebCore):
83030        (ScrollingCoordinatorCoordinatedGraphics):
83031        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
83032        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
83033        (WebCore):
83034        (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
83035        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
83036        (CoordinatedGraphicsLayerClient):
83037        (CoordinatedGraphicsLayer):
83038
830392013-02-07  Andrey Lushnikov  <lushnikov@chromium.org>
83040
83041        Web Inspector: home button behaviour is wrong in DTE
83042        https://bugs.webkit.org/show_bug.cgi?id=109154
83043
83044        Reviewed by Vsevolod Vlasov.
83045
83046        Handle home key shortcut explicitly in TextEditorMainPanel.
83047
83048        New test: inspector/editor/text-editor-home-button.html
83049
83050        * inspector/front-end/DefaultTextEditor.js:
83051        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts):
83052        (WebInspector.TextEditorMainPanel.prototype._handleHomeKey):
83053
830542013-02-07  Gavin Peters  <gavinp@chromium.org>
83055
83056        Unreviewed, rolling out r142112.
83057        http://trac.webkit.org/changeset/142112
83058        https://bugs.webkit.org/show_bug.cgi?id=108990
83059
83060        The new test scrollingcoordinator/non-fast-scrollable-region-transformed- iframe.html crashes on Lion.
83061
83062        See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=scrollingcoordinator%2Fnon-fast-scrollable-region-transformed-iframe.html
83063
83064        * CMakeLists.txt:
83065        * Target.pri:
83066        * WebCore.pri:
83067        * page/scrolling/ScrollingCoordinator.cpp:
83068        (WebCore::ScrollingCoordinator::create):
83069        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Removed.
83070        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Removed.
83071        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
83072        (WebCore::CoordinatedGraphicsLayer::flushCompositingState):
83073        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
83074        (CoordinatedGraphicsLayerClient):
83075        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
83076
830772013-02-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
83078
83079        Scrollbars misplaced with accelerated compositing for overflow scroll
83080        https://bugs.webkit.org/show_bug.cgi?id=108625
83081
83082        Reviewed by Simon Fraser.
83083
83084        Scrollbars require their own layer if overflow scroll is composited,
83085        otherwise the scrollbars would be rendered on the content layer and
83086        not fixed to the viewport.
83087
83088        * rendering/RenderLayerBacking.cpp:
83089        (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
83090        (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
83091        (WebCore::RenderLayerBacking::requiresScrollCornerLayer):
83092
830932013-02-07  Mike West  <mkwst@chromium.org>
83094
83095        Don't ASSERT things about uninitialized variables.
83096        https://bugs.webkit.org/show_bug.cgi?id=109187
83097
83098        Reviewed by Jochen Eisinger.
83099
83100        Rather than ASSERTing that an uninitialized ExceptionCode is non-zero
83101        after some method executes, we should use the ASSERT_NO_EXCEPTION macro.
83102
83103        * editing/markup.cpp:
83104        (WebCore::removeElementPreservingChildren):
83105
831062013-02-07  Andrey Lushnikov  <lushnikov@chromium.org>
83107
83108        Web Inspector: [Regression] breakpoint condition not editable
83109        https://bugs.webkit.org/show_bug.cgi?id=109183
83110
83111        Reviewed by Vsevolod Vlasov.
83112
83113        Improve TextEditorMainPanel.selection() method to return null if the
83114        selection is set inside of decoration element.
83115
83116        No new tests.
83117
83118        * inspector/front-end/DOMExtension.js:
83119        (Node.prototype.enclosingNodeOrSelfWithClass): Improve to add iteration boundary.
83120        * inspector/front-end/DefaultTextEditor.js:
83121        (WebInspector.TextEditorMainPanel.prototype.selection):
83122
831232013-02-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
83124
83125        [WK2][EFL][QT]REGRESSION(r142045): Scrolling is broken
83126        https://bugs.webkit.org/show_bug.cgi?id=109185
83127
83128        Reviewed by Kenneth Rohde Christiansen.
83129
83130        This patch is disabling paints clipping logic added at r142045 for the case 
83131        when the view should render the entire contents (case of using tiled backing store).
83132
83133        No new tests, covered by plenty of existing manual tests that allow scrolling
83134        (for example fixed-position.html).
83135
83136        * platform/ScrollView.cpp:
83137        (WebCore::ScrollView::paint):
83138
831392013-02-07  Vladislav Kaznacheev  <kaznacheev@chromium.org>
83140
83141        Web Inspector: Show elements and sources sidebar panes in a tabbed pane when they are below the main pane
83142        https://bugs.webkit.org/show_bug.cgi?id=107552
83143
83144        Reviewed by Pavel Feldman.
83145
83146        Removed the aspect ratio detection logic and implemented explicit user action "Split Horizontally" available
83147        in Elements and Sources panels. When split horizontally the sidebar panes are organized into a tabbed pane.
83148        This user action is behind an experimental flag.
83149
83150        No new tests.
83151
83152        * inspector/front-end/ContextMenu.js:
83153        (WebInspector.ContextMenu.prototype.show):
83154        * inspector/front-end/DOMBreakpointsSidebarPane.js:
83155        (WebInspector.DOMBreakpointsSidebarPane.prototype.createProxy):
83156        (WebInspector.DOMBreakpointsSidebarPane.prototype.onContentReady):
83157        (WebInspector.DOMBreakpointsSidebarPane.Proxy):
83158        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.expanded):
83159        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.expand):
83160        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.collapse):
83161        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.onContentReady):
83162        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype.wasShown):
83163        (WebInspector.DOMBreakpointsSidebarPane.Proxy.prototype._reattachBody):
83164        * inspector/front-end/ElementsPanel.js:
83165        (WebInspector.ElementsPanel):
83166        (WebInspector.ElementsPanel.prototype._populateContextMenu):
83167        * inspector/front-end/ScriptsPanel.js:
83168        (WebInspector.ScriptsPanel.prototype._clearInterface):
83169        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
83170        (WebInspector.ScriptsPanel.prototype._contextMenuEventFired):
83171        * inspector/front-end/Settings.js:
83172        (WebInspector.ExperimentsSettings):
83173        * inspector/front-end/SidebarPane.js:
83174        (WebInspector.SidebarPane):
83175        (WebInspector.SidebarPane.prototype.prepareContent):
83176        (WebInspector.SidebarPane.prototype.expanded):
83177        (WebInspector.SidebarPane.prototype.expand):
83178        (WebInspector.SidebarPane.prototype.collapse):
83179        (WebInspector.SidebarPane.prototype.onContentReady):
83180        (WebInspector.SidebarPane.prototype._setExpandCallback):
83181        (WebInspector.SidebarPaneStack.prototype.addPane):
83182        (WebInspector.SidebarPaneStack.prototype.activePaneId):
83183        (WebInspector.SidebarPaneStack.prototype.setActivePaneId):
83184        (WebInspector.SidebarPaneStack.prototype._setExpanded):
83185        (WebInspector.SidebarPaneStack.prototype._onPaneExpanded):
83186        (WebInspector.SidebarPaneStack.prototype._collapsePane):
83187        (WebInspector.SidebarTabbedPane):
83188        (WebInspector.SidebarTabbedPane.prototype.addPane):
83189        (WebInspector.SidebarTabbedPane.prototype.activePaneId):
83190        (WebInspector.SidebarTabbedPane.prototype.setActivePaneId):
83191        (WebInspector.SidebarPaneGroup):
83192        (WebInspector.SidebarPaneGroup.prototype.setStacked):
83193        (WebInspector.SidebarPaneGroup.prototype.addPane):
83194        (WebInspector.SidebarPaneGroup.prototype.attachToPanel):
83195        (WebInspector.SidebarPaneGroup.prototype.populateContextMenu.toggleSplitDirection):
83196        (WebInspector.SidebarPaneGroup.prototype.get _contextMenuEventFired):
83197        (WebInspector.SidebarPaneGroup.prototype._onSplitDirectionSettingChanged):
83198        * inspector/front-end/SidebarView.js:
83199        (WebInspector.SidebarView):
83200        (WebInspector.SidebarView.prototype._updateSidebarElementStyle):
83201        (WebInspector.SidebarView.prototype.setVertical):
83202        (WebInspector.SidebarView.prototype.onResize):
83203        * inspector/front-end/StylesSidebarPane.js:
83204        (WebInspector.ComputedStyleSidebarPane.prototype.wasShown):
83205        (WebInspector.ComputedStyleSidebarPane.prototype.prepareContent):
83206        * inspector/front-end/inspector.css:
83207        (.sidebar-pane .section .properties, .event-bar .event-properties):
83208        (.pane-title):
83209        (.sidebar-pane-toolbar):
83210        (.sidebar-pane-toolbar > *):
83211        (.sidebar-pane-toolbar > select):
83212        (.sidebar-pane-toolbar > select:hover):
83213        (.sidebar-pane-toolbar > select:active):
83214        (.sidebar-pane-toolbar > select.select-settings):
83215        (.sidebar-pane-toolbar > select.select-filter):
83216        (.sidebar-pane-toolbar > select > option, .sidebar-pane-toolbar > select > hr):
83217        (.sidebar-pane-toolbar > .pane-title-button):
83218        (.sidebar-pane-toolbar > .pane-title-button:hover):
83219        (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
83220        (.sidebar-pane-toolbar > .pane-title-button.add):
83221        (.sidebar-pane-toolbar > .pane-title-button.element-state):
83222        (.sidebar-pane-toolbar > .pane-title-button.refresh):
83223        (.sidebar-pane):
83224        (.sidebar-pane > .body):
83225        (.sidebar-pane > .body .info):
83226        (.sidebar-pane > .body .placard + .info):
83227        (.sidebar-pane.visible > .body):
83228        (.sidebar-pane > .body .breakpoint-condition):
83229        (.sidebar-pane.visible:nth-last-of-type(1)):
83230        (.sidebar-pane-subtitle):
83231        (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
83232        (.sidebar-pane .breakpoint-hit):
83233
832342013-02-07  Gavin Peters  <gavinp@chromium.org>
83235
83236        Unreviewed, rolling out r142111.
83237        http://trac.webkit.org/changeset/142111
83238        https://bugs.webkit.org/show_bug.cgi?id=108055
83239
83240        win7 bot didn't display Arabic, see http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=platform%2Fchromium%2Ffast%2Fforms%2Fcalendar-picker%2Fcalendar-picker-appearance-required-ar.html
83241
83242        * Resources/pagepopups/calendarPicker.css:
83243        (.today-clear-area .today-button):
83244        * Resources/pagepopups/calendarPicker.js:
83245        (CalendarPicker.prototype.fixWindowSize):
83246
832472013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>
83248
83249        Web Inspector: [Regression] Map.size() returns negative values.
83250        https://bugs.webkit.org/show_bug.cgi?id=109174
83251
83252        Reviewed by Yury Semikhatsky.
83253
83254        * inspector/front-end/utilities.js:
83255
832562013-02-07  Pavel Feldman  <pfeldman@chromium.org>
83257
83258        Web Inspector: break details are only rendered upon first debugger pause.
83259        https://bugs.webkit.org/show_bug.cgi?id=109193
83260
83261        Reviewed by Vsevolod Vlasov.
83262
83263        * inspector/front-end/CallStackSidebarPane.js:
83264        (WebInspector.CallStackSidebarPane.prototype.update):
83265
832662013-02-07  Gavin Peters  <gavinp@chromium.org>
83267
83268        Unreviewed, rolling out r142118.
83269        http://trac.webkit.org/changeset/142118
83270        https://bugs.webkit.org/show_bug.cgi?id=109044
83271
83272        Broke SVG! Oh noes!
83273
83274        * Modules/indexeddb/IDBCursor.cpp:
83275        (WebCore::IDBCursor::direction):
83276        * Modules/indexeddb/IDBObjectStore.cpp:
83277        (WebCore):
83278        * Modules/indexeddb/IDBTransaction.cpp:
83279        (WebCore::IDBTransaction::mode):
83280        * dom/ContainerNode.cpp:
83281        (WebCore::ContainerNode::takeAllChildrenFrom):
83282        * dom/Document.cpp:
83283        (WebCore::Document::setTitle):
83284        * dom/MessagePort.cpp:
83285        (WebCore::MessagePort::dispatchMessages):
83286        (WebCore::MessagePort::disentanglePorts):
83287        * editing/DeleteButtonController.cpp:
83288        (WebCore::enclosingDeletableElement):
83289        (WebCore::DeleteButtonController::createDeletionUI):
83290        (WebCore::DeleteButtonController::show):
83291        * editing/EditorCommand.cpp:
83292        (WebCore::unionDOMRanges):
83293        * editing/ReplaceNodeWithSpanCommand.cpp:
83294        (WebCore::swapInNodePreservingAttributesAndChildren):
83295        * editing/ReplaceSelectionCommand.cpp:
83296        (WebCore::ReplacementFragment::ReplacementFragment):
83297        (WebCore::ReplacementFragment::removeNode):
83298        (WebCore::ReplacementFragment::insertNodeBefore):
83299        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
83300        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
83301        (WebCore::ReplaceSelectionCommand::insertAsListItems):
83302        * editing/SplitTextNodeCommand.cpp:
83303        (WebCore::SplitTextNodeCommand::doUnapply):
83304        * editing/TextIterator.cpp:
83305        (WebCore::CharacterIterator::range):
83306        (WebCore::BackwardsCharacterIterator::range):
83307        (WebCore::TextIterator::rangeFromLocationAndLength):
83308        (WebCore::collapsedToBoundary):
83309        * editing/htmlediting.cpp:
83310        (WebCore::createTabSpanElement):
83311        * editing/mac/EditorMac.mm:
83312        (WebCore::Editor::fontForSelection):
83313        (WebCore::Editor::fontAttributesForSelectionStart):
83314        * editing/markup.cpp:
83315        (WebCore::createMarkup):
83316        (WebCore::trimFragment):
83317        (WebCore::createFragmentFromMarkupWithContext):
83318        (WebCore::fillContainerFromString):
83319        (WebCore::createFragmentFromText):
83320        (WebCore::createFragmentFromNodes):
83321        * html/ColorInputType.cpp:
83322        (WebCore::ColorInputType::createShadowSubtree):
83323        * html/HTMLOptionsCollection.cpp:
83324        (WebCore::HTMLOptionsCollection::add):
83325        * html/HTMLTextAreaElement.cpp:
83326        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
83327        * html/HTMLTextFormControlElement.cpp:
83328        (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
83329        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
83330        * html/TextFieldInputType.cpp:
83331        (WebCore::TextFieldInputType::updatePlaceholderText):
83332        * html/ValidationMessage.cpp:
83333        (WebCore::ValidationMessage::buildBubbleTree):
83334        * html/shadow/MediaControlElementTypes.cpp:
83335        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
83336        * inspector/InspectorPageAgent.cpp:
83337        (WebCore::InspectorPageAgent::getCookies):
83338        * inspector/InspectorStyleSheet.cpp:
83339        (WebCore::InspectorStyleSheet::addRule):
83340        * loader/appcache/ApplicationCacheHost.cpp:
83341        (WebCore::ApplicationCacheHost::dispatchDOMEvent):
83342        * page/DOMSelection.cpp:
83343        (WebCore::DOMSelection::deleteFromDocument):
83344        * page/DragController.cpp:
83345        (WebCore::prepareClipboardForImageDrag):
83346        * rendering/RenderTextControl.cpp:
83347        (WebCore::RenderTextControl::visiblePositionForIndex):
83348        * rendering/style/SVGRenderStyle.h:
83349        (WebCore::SVGRenderStyle::initialBaselineShiftValue):
83350        (WebCore::SVGRenderStyle::initialKerning):
83351        (WebCore::SVGRenderStyle::initialStrokeDashOffset):
83352        (WebCore::SVGRenderStyle::initialStrokeWidth):
83353        * svg/SVGAnimatedLength.cpp:
83354        (WebCore::sharedSVGLength):
83355        (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
83356        (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
83357        * svg/SVGAnimatedLengthList.cpp:
83358        (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
83359        (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
83360        * svg/SVGLength.cpp:
83361        (WebCore::SVGLength::SVGLength):
83362        * svg/SVGTextContentElement.cpp:
83363        (WebCore::SVGTextContentElement::textLengthAnimated):
83364        * svg/animation/SVGSMILElement.cpp:
83365        (WebCore::constructQualifiedName):
83366
833672013-02-07  Kentaro Hara  <haraken@chromium.org>
83368
83369        Remove #if USE(V8) from IDBRequest.h
83370        https://bugs.webkit.org/show_bug.cgi?id=109163
83371
83372        Reviewed by Andreas Kling.
83373
83374        The header included inside the #if USE(V8) macro is not used.
83375        We can simply remove it.
83376
83377        No tests. No change in behavior.
83378
83379        * Modules/indexeddb/IDBRequest.h:
83380
833812013-02-07  Stephen Chenney  <schenney@chromium.org>
83382
83383        GraphicsContext::drawImageBuffer is inefficient
83384        https://bugs.webkit.org/show_bug.cgi?id=104367
83385
83386        Reviewed by Dirk Schulze.
83387
83388        This patch converts all of the drawImage and drawImageBuffer
83389        convenience methods (those that take parameters of various types) to
83390        invoke the implementing method (that takes FloatRect src and dest)
83391        directly, rather than through the next-most-convenient method as was
83392        done previously. This will knock some layers off the stack compared
83393        to the existing code, and may remove one or two constructor invocations.
83394        This may be slightly more efficient, and also makes debugging simpler.
83395
83396        Also removes the unused drawImage method that takes and IntRect source
83397        area and IntRect destination. It is not invoked anywhere in a standard
83398        WebKit checkout.
83399
83400        No new tests. No change in functionality, just refactoring.
83401
83402        * platform/graphics/GraphicsContext.cpp:
83403        (WebCore::GraphicsContext::drawImage): Modify all the convenience versions to call
83404        the implementing version directly.
83405        (WebCore::GraphicsContext::drawImageBuffer): Modify all the convenience versions
83406        to call the implementing version directly.
83407        * platform/graphics/GraphicsContext.h:
83408        (GraphicsContext): Remove IntRect, IntRect version of drawImage.
83409
834102013-02-07  Kent Tamura  <tkent@chromium.org>
83411
83412        Conversion from localized numbers to HTML numbers should accept not only localized numbers but also HTML numbers
83413        https://bugs.webkit.org/show_bug.cgi?id=109160
83414
83415        Reviewed by Kentaro Hara.
83416
83417        For example, A French user needs to specify a number to a number input
83418        field. He might use a local decimal point, like 3,141592, or he might
83419        use the standard decimal point like 3.141592. We had better accept both
83420        of them.
83421
83422        We accepted both last year, but we changed the behavior so that we
83423        accept only localized numbers because we had some cases where an input
83424        string can be recognized as both of a localized number and the standard
83425        number. e.g. 3.141 is 3141 in French locale and 3.141 in the
83426        standard. Now we introduce a simple rule that we don't accept group
83427        separator at all. So users won't confuse even if we accept both of
83428        decimal points.
83429
83430        Test: fast/forms/number/number-l10n-input.html
83431
83432        * platform/text/PlatformLocale.cpp:
83433        (WebCore::Locale::convertFromLocalizedNumber):
83434        If the specified string contains invalid characters including group
83435        separators, just return the specified string.
83436
834372013-02-07  Xiaobo Wang  <xbwang@torchmobile.com.cn>
83438
83439        [BlackBerry] CHHW - Characters that are using 32 bits encoding get trunked to 16bits
83440        https://bugs.webkit.org/show_bug.cgi?id=109126
83441        PR 292540
83442
83443        Reviewed by Yong Li.
83444
83445        Change char code to 4 bytes.
83446        Need to convert UTF32 key char to UTF16 before constructing a WTF::String.
83447
83448        * platform/PlatformKeyboardEvent.h:
83449        (WebCore::PlatformKeyboardEvent::unmodifiedCharacter):
83450        (PlatformKeyboardEvent):
83451        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
83452        (WebCore::keyIdentifierForBlackBerryCharacter):
83453        (WebCore::windowsKeyCodeForBlackBerryCharacter):
83454        (WebCore::adjustCharacterFromOS):
83455        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
83456
834572013-02-07  Mike West  <mkwst@chromium.org>
83458
83459        Replace ExceptionCode assertions with ASSERT_NO_EXCEPTION macro.
83460        https://bugs.webkit.org/show_bug.cgi?id=109044
83461
83462        Reviewed by Darin Adler.
83463
83464        The pattern:
83465
83466            ExceptionCode ec = 0;
83467            methodThatGeneratesException(ec);
83468            ASSERT(!ec);
83469
83470        is more clearly and succinctly written as:
83471
83472            methodThatGeneratesException(ASSERT_NO_EXCEPTION);
83473
83474        This patch replaces the occurances of the former that never touch 'ec'
83475        again with the latter. It does the same for 'ASSERT(ec == 0);' (and, as
83476        a drive-by, replaces 'ASSERT(ec == 0)' with 'ASSERT(!ec)' in places
83477        where it does indeed matter that 'ec' get set properly.
83478
83479        No change in behavior should result from this refactoring.
83480
83481        * Modules/indexeddb/IDBCursor.cpp:
83482        (WebCore::IDBCursor::direction):
83483        * Modules/indexeddb/IDBObjectStore.cpp:
83484        (WebCore):
83485        * Modules/indexeddb/IDBTransaction.cpp:
83486        (WebCore::IDBTransaction::mode):
83487        * dom/ContainerNode.cpp:
83488        (WebCore::ContainerNode::takeAllChildrenFrom):
83489        * dom/Document.cpp:
83490        (WebCore::Document::setTitle):
83491        * dom/MessagePort.cpp:
83492        (WebCore::MessagePort::dispatchMessages):
83493        (WebCore::MessagePort::disentanglePorts):
83494        * editing/DeleteButtonController.cpp:
83495        (WebCore::enclosingDeletableElement):
83496        (WebCore::DeleteButtonController::createDeletionUI):
83497            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
83498        (WebCore::DeleteButtonController::show):
83499            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
83500        * editing/EditorCommand.cpp:
83501        (WebCore::unionDOMRanges):
83502        * editing/ReplaceNodeWithSpanCommand.cpp:
83503        (WebCore::swapInNodePreservingAttributesAndChildren):
83504        * editing/ReplaceSelectionCommand.cpp:
83505        (WebCore::ReplacementFragment::ReplacementFragment):
83506        (WebCore::ReplacementFragment::removeNode):
83507        (WebCore::ReplacementFragment::insertNodeBefore):
83508        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
83509        (WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment):
83510        (WebCore::ReplaceSelectionCommand::insertAsListItems):
83511        * editing/SplitTextNodeCommand.cpp:
83512        (WebCore::SplitTextNodeCommand::doUnapply):
83513        * editing/TextIterator.cpp:
83514        (WebCore::CharacterIterator::range):
83515        (WebCore::BackwardsCharacterIterator::range):
83516        (WebCore::TextIterator::rangeFromLocationAndLength):
83517        (WebCore::collapsedToBoundary):
83518        * editing/htmlediting.cpp:
83519        (WebCore::createTabSpanElement):
83520        * editing/mac/EditorMac.mm:
83521        (WebCore::Editor::fontForSelection):
83522        (WebCore::Editor::fontAttributesForSelectionStart):
83523        * editing/markup.cpp:
83524        (WebCore::createMarkup):
83525        (WebCore::trimFragment):
83526        (WebCore::createFragmentFromMarkupWithContext):
83527        (WebCore::fillContainerFromString):
83528        (WebCore::createFragmentFromText):
83529        (WebCore::createFragmentFromNodes):
83530        * html/ColorInputType.cpp:
83531        (WebCore::ColorInputType::createShadowSubtree):
83532            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
83533        * html/HTMLOptionsCollection.cpp:
83534        (WebCore::HTMLOptionsCollection::add):
83535            Replaced 'ASSERT(ec == 0)' with 'ASSERT(!ec)' to match the style guide.
83536        * html/HTMLTextAreaElement.cpp:
83537        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
83538        * html/HTMLTextFormControlElement.cpp:
83539        (WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
83540        (WebCore::HTMLTextFormControlElement::setInnerTextValue):
83541        * html/TextFieldInputType.cpp:
83542        (WebCore::TextFieldInputType::updatePlaceholderText):
83543        * html/ValidationMessage.cpp:
83544        (WebCore::ValidationMessage::buildBubbleTree):
83545        * html/shadow/MediaControlElementTypes.cpp:
83546        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
83547        * inspector/InspectorPageAgent.cpp:
83548        (WebCore::InspectorPageAgent::getCookies):
83549        * inspector/InspectorStyleSheet.cpp:
83550        (WebCore::InspectorStyleSheet::addRule):
83551        * loader/appcache/ApplicationCacheHost.cpp:
83552        (WebCore::ApplicationCacheHost::dispatchDOMEvent):
83553        * page/DOMSelection.cpp:
83554        (WebCore::DOMSelection::deleteFromDocument):
83555        * page/DragController.cpp:
83556        (WebCore::prepareClipboardForImageDrag):
83557        * rendering/RenderTextControl.cpp:
83558        (WebCore::RenderTextControl::visiblePositionForIndex):
83559        * rendering/style/SVGRenderStyle.h:
83560        (WebCore::SVGRenderStyle::initialBaselineShiftValue):
83561        (WebCore::SVGRenderStyle::initialKerning):
83562        (WebCore::SVGRenderStyle::initialStrokeDashOffset):
83563        (WebCore::SVGRenderStyle::initialStrokeWidth):
83564        * svg/SVGAnimatedLength.cpp:
83565        (WebCore::sharedSVGLength):
83566        (WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
83567        (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
83568        * svg/SVGAnimatedLengthList.cpp:
83569        (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
83570        (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
83571        * svg/SVGLength.cpp:
83572        (WebCore::SVGLength::SVGLength):
83573        * svg/SVGTextContentElement.cpp:
83574        (WebCore::SVGTextContentElement::textLengthAnimated):
83575        * svg/animation/SVGSMILElement.cpp:
83576        (WebCore::constructQualifiedName):
83577            Replaced inline ASSERT with ASSERT_NO_EXCEPTION.
83578
835792013-02-07  Mary Wu  <mary.wu@torchmobile.com.cn>
83580
83581        [BlackBerry] Export mimeType in NetworkJob
83582        https://bugs.webkit.org/show_bug.cgi?id=109002
83583
83584        Reviewed by Yong Li.
83585
83586        NetworkJob will analysize resource mimetype and set it to resourceResponse,
83587        we will pass it on to be used by other Streams like download stream.
83588
83589        RIM bug# 284408, internally reviewed by Liam Quinn.
83590
83591        * platform/network/blackberry/NetworkJob.cpp:
83592        (WebCore::NetworkJob::mimeType):
83593        (WebCore):
83594        * platform/network/blackberry/NetworkJob.h:
83595        (NetworkJob):
83596
835972013-02-07  Peter Rybin  <prybin@chromium.org>
83598
83599        Web Inspector: support JavaScript variable mutation in protocol and V8 bindings
83600        https://bugs.webkit.org/show_bug.cgi?id=107829
83601
83602        A new command is added to protocol description and the call is passed through
83603        debugger agent through injected script and debugger script down to V8 mirror
83604        API. JSC bindings got a thorw exception stub.
83605
83606        Only declarative JavaScript scopes are supported (local, closure, catch). Other
83607        scopes (global, with) are not supported by V8 and not supported by protocol, because
83608        manual approach (direct property assigment) is available for them in form of evaluate
83609        commands and is more desirable because of a complex nature of operation (it can throw
83610        exception in several cases such as exception in setter function).
83611
83612        Reviewed by Pavel Feldman.
83613
83614        Test: inspector-protocol/debugger-setVariableValue.html
83615
83616        * bindings/js/JSInjectedScriptHostCustom.cpp:
83617        (WebCore::JSInjectedScriptHost::setFunctionVariableValue):
83618        (WebCore):
83619        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
83620        (WebCore::JSJavaScriptCallFrame::setVariableValue):
83621        (WebCore):
83622        * bindings/v8/DebuggerScript.js:
83623        (.):
83624        * bindings/v8/JavaScriptCallFrame.cpp:
83625        (WebCore::JavaScriptCallFrame::setVariableValue):
83626        (WebCore):
83627        * bindings/v8/JavaScriptCallFrame.h:
83628        (JavaScriptCallFrame):
83629        * bindings/v8/ScriptDebugServer.cpp:
83630        (WebCore::ScriptDebugServer::setFunctionVariableValue):
83631        (WebCore):
83632        * bindings/v8/ScriptDebugServer.h:
83633        (ScriptDebugServer):
83634        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
83635        (WebCore::V8InjectedScriptHost::setFunctionVariableValueCallback):
83636        (WebCore):
83637        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
83638        (WebCore::V8JavaScriptCallFrame::setVariableValueCallback):
83639        (WebCore):
83640        * inspector/InjectedScript.cpp:
83641        (WebCore::InjectedScript::setVariableValue):
83642        (WebCore):
83643        * inspector/InjectedScript.h:
83644        (InjectedScript):
83645        * inspector/InjectedScriptHost.idl:
83646        * inspector/InjectedScriptSource.js:
83647        (.):
83648        * inspector/Inspector.json:
83649        * inspector/InspectorDebuggerAgent.cpp:
83650        (WebCore::InspectorDebuggerAgent::getFunctionDetails):
83651        (WebCore::InspectorDebuggerAgent::setVariableValue):
83652        (WebCore):
83653        * inspector/InspectorDebuggerAgent.h:
83654        (InspectorDebuggerAgent):
83655        * inspector/JavaScriptCallFrame.idl:
83656
836572013-02-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
83658
83659        [CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers
83660        https://bugs.webkit.org/show_bug.cgi?id=108990
83661
83662        Reviewed by Noam Rosenthal.
83663
83664        WebCore keeps ScrollingCoordinator up-to-date about whether layers are fixed or not, so we
83665        don't need to traverse the tree every frame to get this information.
83666
83667        The function ScrollingCoordinator::setLayerIsFixedToContainerLayer() is called when
83668        RenderLayerBacking is updating its graphics layers.
83669
83670        The new code also works in new situations where the previous was broken: if a layer changed
83671        from being fixed to not fixed (but still kept as a layer for other reasons), the layer will
83672        be correctly updated. Previous implementation only had logic to mark layers as fixed, but
83673        not the other way round. A manual test was added to illustrate the solved problem.
83674
83675        Testing was done with the existing manual tests that make use of "position:fixed". Automatic
83676        tests are mostly not affected by this because usage of this information affects only the
83677        UseFixedLayout mode, not used by default in WebKitTestRunner. Work to improve this situation
83678        will be tracked in bug https://bugs.webkit.org/show_bug.cgi?id=109175.
83679
83680        * CMakeLists.txt:
83681        * Target.pri:
83682        * WebCore.pri:
83683        * page/scrolling/ScrollingCoordinator.cpp:
83684        (WebCore::ScrollingCoordinator::create): create specific version of ScrollingCoordinator.
83685        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp: Added.
83686        (WebCore):
83687        (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):
83688        (WebCore::ScrollingCoordinatorCoordinatedGraphics::setLayerIsFixedToContainerLayer):
83689        update layer information using existing hook in ScrollingCoordinator.
83690        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Added.
83691        (WebCore):
83692        (ScrollingCoordinatorCoordinatedGraphics):
83693        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
83694        (WebCore::CoordinatedGraphicsLayer::setFixedToViewport): now that setting viewport is not
83695        embedded in the synchronization work, we need to mark the layer so it is updated in the
83696        next frame.
83697        (WebCore):
83698        (WebCore::CoordinatedGraphicsLayer::flushCompositingState): remove call to syncFixedLayers().
83699        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
83700        (CoordinatedGraphicsLayerClient): remove now unused syncFixedLayers() from client.
83701        (CoordinatedGraphicsLayer):
83702
837032013-02-07  Keishi Hattori  <keishi@webkit.org>
83704
83705        REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute
83706        https://bugs.webkit.org/show_bug.cgi?id=109136
83707
83708        Reviewed by Kent Tamura.
83709
83710        Calendar picker was using the "Clear" button to calculate the window width.
83711        Since it doesn't exist when the input element has a required attribute,
83712        it was throwing an error. This patch fixes the width calculating logic.
83713
83714        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html
83715               platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-required.html
83716
83717        * Resources/pagepopups/calendarPicker.css:
83718        (.today-clear-area):
83719        * Resources/pagepopups/calendarPicker.js:
83720        (CalendarPicker.prototype.fixWindowSize): Fixing the logic to calculate
83721        the width. We don't want to use clear button because it doesn't exist
83722        when a value is required.
83723
837242013-02-07  Gustavo Noronha Silva  <gns@gnome.org>
83725
83726        Unreviewed build fix. libWebCore.la needs to be relinked when
83727        symbols.filter changes.
83728
83729        * GNUmakefile.am: add symbols.filter as a dependency for the
83730        libWebCore.la library.
83731
837322013-02-07  Vsevolod Vlasov  <vsevik@chromium.org>
83733
83734        Web Inspector: Closure compilation fixes
83735        https://bugs.webkit.org/show_bug.cgi?id=109131
83736
83737        Reviewed by Yury Semikhatsky.
83738
83739        * inspector/front-end/ElementsPanel.js:
83740        (WebInspector.ElementsPanel):
83741        * inspector/front-end/FileSystemMapping.js:
83742        (WebInspector.FileSystemMappingImpl.prototype.uriPrefixForPathPrefix):
83743        * inspector/front-end/IsolatedFileSystemModel.js:
83744        (WebInspector.IsolatedFileSystemModel.prototype._fileSystemRemoved):
83745        * inspector/front-end/SidebarPane.js:
83746
837472013-02-07  Kentaro Hara  <haraken@chromium.org>
83748
83749        Unreviewed, rolling out r142077.
83750        http://trac.webkit.org/changeset/142077
83751        https://bugs.webkit.org/show_bug.cgi?id=108579
83752
83753        fast/filesystem/workers/file-writer-empty-blob.html is broken
83754
83755        * bindings/v8/DOMDataStore.h:
83756        (WebCore::DOMDataStore::setWrapperInObject):
83757        * bindings/v8/DOMWrapperWorld.h:
83758        (DOMWrapperWorld):
83759        (WebCore::DOMWrapperWorld::isolated):
83760        * bindings/v8/V8Binding.h:
83761        (WebCore):
83762        (WebCore::worldForEnteredContextIfIsolated):
83763        * bindings/v8/V8DOMWindowShell.cpp:
83764        (WebCore::V8DOMWindowShell::initializeIfNeeded):
83765        * bindings/v8/V8GCController.cpp:
83766        (WebCore::WrapperVisitor::WrapperVisitor):
83767        (WebCore):
83768        (WebCore::gcTree):
83769        (WebCore::V8GCController::didCreateWrapperForNode):
83770        (WebCore::V8GCController::gcPrologue):
83771        (WebCore::V8GCController::minorGCPrologue):
83772        (WebCore::V8GCController::majorGCPrologue):
83773        * bindings/v8/V8GCController.h:
83774        (V8GCController):
83775
837762013-02-07  Tony Gentilcore  <tonyg@chromium.org>
83777
83778        Call XSSAuditor.filterToken() from threaded HTML parser
83779        https://bugs.webkit.org/show_bug.cgi?id=107603
83780
83781        Reviewed by Adam Barth.
83782
83783        With this patch we now pass 180 of 182 tests in http/tests/security/xssAuditor.
83784
83785        We do this by creating aan XSSAuditor on the main thread and passing ownership of them to the BackgroundHTMLParser upon its creation.
83786
83787        Then the background thread calls filterToken() and stores the resulting XSSInfo (if any) on the CompactHTMLToken for the main thread to handle.
83788
83789        This involved trimming the XSSAuditor to only depend on the TextEncoding instead of the whole TextResourceDecoder.
83790
83791        No new tests because covered by existing tests.
83792
83793        * html/parser/BackgroundHTMLParser.cpp:
83794        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
83795        (WebCore::BackgroundHTMLParser::pumpTokenizer):
83796        (WebCore::BackgroundHTMLParser::createPartial):
83797        * html/parser/BackgroundHTMLParser.h:
83798        (WebCore):
83799        (WebCore::BackgroundHTMLParser::create):
83800        (BackgroundHTMLParser):
83801        * html/parser/HTMLDocumentParser.cpp:
83802        (WebCore::HTMLDocumentParser::pumpTokenizer):
83803        (WebCore::HTMLDocumentParser::startBackgroundParser):
83804        * html/parser/HTMLSourceTracker.cpp:
83805        (WebCore::HTMLSourceTracker::start):
83806        (WebCore::HTMLSourceTracker::end):
83807        * html/parser/HTMLSourceTracker.h: Change the HTMLInputStream args to SegmentedString because the background thread only has a BackgroundHTMLInputStream.
83808        (HTMLSourceTracker):
83809        * html/parser/HTMLViewSourceParser.cpp:
83810        (WebCore::HTMLViewSourceParser::pumpTokenizer):
83811        * html/parser/XSSAuditor.cpp:
83812        (WebCore::fullyDecodeString):
83813        (WebCore::XSSAuditor::XSSAuditor):
83814        (WebCore::XSSAuditor::init): Copies necessary to make isSafeToSendToAnotherThread() happy.
83815        (WebCore::XSSAuditor::decodedSnippetForName):
83816        (WebCore::XSSAuditor::decodedSnippetForAttribute):
83817        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
83818        (WebCore::XSSAuditor::isSafeToSendToAnotherThread): Check that all String and KURL members are safe to send to another thread.
83819        (WebCore):
83820        * html/parser/XSSAuditor.h:
83821        (WebCore):
83822        (WebCore::FilterTokenRequest::FilterTokenRequest):
83823        (FilterTokenRequest):
83824        (XSSAuditor):
83825
838262013-02-07  ChangSeok Oh  <shivamidow@gmail.com>
83827
83828        [GTK][AC] Implement opacity animation with clutter ac backend
83829        https://bugs.webkit.org/show_bug.cgi?id=108961
83830
83831        Reviewed by Gustavo Noronha Silva.
83832
83833        Implement opacity animation with clutter ac backend.
83834        Almost all implementations of GraphicsLayerClutter are based on mac port's one.
83835        PlatformClutterAnimation interfaces are also similar with mac port, but they are implemented
83836        with native clutter APIs.
83837        This patch includes only opacity animation related changes, so many APIs might be empty.
83838        Remained animations like rotation and translate will be dealt in another patches.
83839
83840        Covered by existing animation tests.
83841
83842        * GNUmakefile.list.am:
83843        * platform/graphics/clutter/GraphicsLayerActor.cpp:
83844        (graphicsLayerActorGetAnimationForKey):
83845        * platform/graphics/clutter/GraphicsLayerActor.h:
83846        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
83847        (WebCore):
83848        (WebCore::propertyIdToString):
83849        (WebCore::animationIdentifier):
83850        (WebCore::animationHasStepsTimingFunction):
83851        (WebCore::GraphicsLayerClutter::setOpacity):
83852        (WebCore::GraphicsLayerClutter::updateAnimations):
83853        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
83854        (WebCore::GraphicsLayerClutter::setupAnimation):
83855        (WebCore::GraphicsLayerClutter::timingFunctionForAnimationValue):
83856        (WebCore::GraphicsLayerClutter::createBasicAnimation):
83857        (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
83858        (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
83859        (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
83860        (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
83861        (WebCore::GraphicsLayerClutter::createAnimationFromKeyframes):
83862        (WebCore::GraphicsLayerClutter::addAnimation):
83863        (WebCore::GraphicsLayerClutter::removeClutterAnimationFromLayer):
83864        (WebCore::GraphicsLayerClutter::pauseClutterAnimationOnLayer):
83865        (WebCore::GraphicsLayerClutter::setAnimationOnLayer):
83866        (WebCore::GraphicsLayerClutter::setAnimationEndpoints):
83867        (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
83868        (WebCore::GraphicsLayerClutter::animatedLayer):
83869        * platform/graphics/clutter/GraphicsLayerClutter.h:
83870        (GraphicsLayerClutter):
83871        (WebCore::GraphicsLayerClutter::LayerPropertyAnimation::LayerPropertyAnimation):
83872        (LayerPropertyAnimation):
83873        (WebCore::GraphicsLayerClutter::AnimationProcessingAction::AnimationProcessingAction):
83874        (AnimationProcessingAction):
83875        * platform/graphics/clutter/PlatformClutterAnimation.cpp: Added.
83876        (WebCore):
83877        (WebCore::timelineStartedCallback):
83878        (WebCore::toClutterAnimationMode):
83879        (WebCore::PlatformClutterAnimation::stringToAnimatedPropertyType):
83880        (WebCore::PlatformClutterAnimation::create):
83881        (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
83882        (WebCore::PlatformClutterAnimation::~PlatformClutterAnimation):
83883        (WebCore::PlatformClutterAnimation::supportsValueFunction):
83884        (WebCore::PlatformClutterAnimation::beginTime):
83885        (WebCore::PlatformClutterAnimation::setBeginTime):
83886        (WebCore::PlatformClutterAnimation::duration):
83887        (WebCore::PlatformClutterAnimation::setDuration):
83888        (WebCore::PlatformClutterAnimation::speed):
83889        (WebCore::PlatformClutterAnimation::setSpeed):
83890        (WebCore::PlatformClutterAnimation::timeOffset):
83891        (WebCore::PlatformClutterAnimation::setTimeOffset):
83892        (WebCore::PlatformClutterAnimation::repeatCount):
83893        (WebCore::PlatformClutterAnimation::setRepeatCount):
83894        (WebCore::PlatformClutterAnimation::autoreverses):
83895        (WebCore::PlatformClutterAnimation::setAutoreverses):
83896        (WebCore::PlatformClutterAnimation::fillMode):
83897        (WebCore::PlatformClutterAnimation::setFillMode):
83898        (WebCore::PlatformClutterAnimation::setTimingFunction):
83899        (WebCore::PlatformClutterAnimation::copyTimingFunctionFrom):
83900        (WebCore::PlatformClutterAnimation::isRemovedOnCompletion):
83901        (WebCore::PlatformClutterAnimation::setRemovedOnCompletion):
83902        (WebCore::PlatformClutterAnimation::isAdditive):
83903        (WebCore::PlatformClutterAnimation::setAdditive):
83904        (WebCore::PlatformClutterAnimation::valueFunction):
83905        (WebCore::PlatformClutterAnimation::setValueFunction):
83906        (WebCore::PlatformClutterAnimation::setFromValue):
83907        (WebCore::PlatformClutterAnimation::copyFromValueFrom):
83908        (WebCore::PlatformClutterAnimation::setToValue):
83909        (WebCore::PlatformClutterAnimation::copyToValueFrom):
83910        (WebCore::PlatformClutterAnimation::setValues):
83911        (WebCore::PlatformClutterAnimation::copyValuesFrom):
83912        (WebCore::PlatformClutterAnimation::setKeyTimes):
83913        (WebCore::PlatformClutterAnimation::copyKeyTimesFrom):
83914        (WebCore::PlatformClutterAnimation::setTimingFunctions):
83915        (WebCore::PlatformClutterAnimation::copyTimingFunctionsFrom):
83916        (WebCore::PlatformClutterAnimation::animationDidStart):
83917        (WebCore::PlatformClutterAnimation::timeline):
83918        (WebCore::PlatformClutterAnimation::addOpacityTransition):
83919        (WebCore::PlatformClutterAnimation::addAnimationForKey):
83920        (WebCore::PlatformClutterAnimation::removeAnimationForKey):
83921        * platform/graphics/clutter/PlatformClutterAnimation.h: Added.
83922        (WebCore):
83923        (PlatformClutterAnimation):
83924        (WebCore::PlatformClutterAnimation::animationType):
83925
839262013-02-07  Andrey Lushnikov  <lushnikov@chromium.org>
83927
83928        Web Inspector: highlight matching braces in DTE.
83929        https://bugs.webkit.org/show_bug.cgi?id=108697
83930
83931        Reviewed by Pavel Feldman.
83932
83933        Implement BraceMatcher class which for given position in textModel
83934        will respond with enclosing brace pair for that position.
83935        Make use of this class in DefaultTextEditor by handling
83936        selectionChange event. Make use of this class in "_closingBlockOffset"
83937        method of TextEditorMainPanel as this method implements similar
83938        functionality.
83939
83940        New test: inspector/editor/brace-matcher.html
83941
83942        * inspector/front-end/DefaultTextEditor.js:
83943        (WebInspector.TextEditorMainPanel):
83944        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
83945        (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
83946        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
83947        (WebInspector.TextEditorMainPanel.BraceHighlightController):
83948        (WebInspector.TextEditorMainPanel.BraceHighlightController.prototype.handleSelectionChange):
83949        * inspector/front-end/TextEditorHighlighter.js:
83950        (WebInspector.TextEditorHighlighter.prototype._highlightLines):
83951        * inspector/front-end/TextEditorModel.js:
83952        (WebInspector.TextEditorModel.endsWithBracketRegex):
83953        (WebInspector.TextEditorModel.endsWithBracketRegex.):
83954        * inspector/front-end/textEditor.css:
83955        (.text-editor-brace-match):
83956
839572013-02-05  Eunmi Lee  <eunmi15.lee@samsung.com> and Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
83958
83959        [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
83960        https://bugs.webkit.org/show_bug.cgi?id=97173
83961
83962        Reviewed by Kenneth Rohde Christiansen, signed-off by Benjamin Poulain.
83963
83964        Remove codes to initialize and shutdown the EFL libraries from
83965        RunLoopEfl.cpp. Initialization and shutdown will be done in the
83966        ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
83967        process.
83968
83969        No new tests. This patch doesn't change behavior.
83970
83971        * platform/efl/RunLoopEfl.cpp:
83972        (WebCore::RunLoop::RunLoop):
83973        (WebCore::RunLoop::~RunLoop):
83974
839752013-02-07  Ilya Tikhonovsky  <loislo@chromium.org>
83976
83977        Unreviewed fix for inspector tests in debug.
83978        m_frontend should be initialized in constructor.
83979
83980        * inspector/InspectorMemoryAgent.cpp:
83981        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
83982
839832013-02-07  Yury Semikhatsky  <yurys@chromium.org>
83984
83985        Web Inspector: reduce number of native memory instrumentation categories
83986        https://bugs.webkit.org/show_bug.cgi?id=109146
83987
83988        Reviewed by Pavel Feldman.
83989
83990        Merged some of memory instrumentation categories.
83991
83992        * dom/WebCoreMemoryInstrumentation.cpp:
83993        (WebCore):
83994        * inspector/front-end/NativeMemorySnapshotView.js:
83995        (WebInspector.MemoryBlockViewProperties._initialize):
83996        * platform/PlatformMemoryInstrumentation.cpp:
83997        (WebCore):
83998
839992013-02-04  Kentaro Hara  <haraken@chromium.org>
84000
84001        [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
84002        https://bugs.webkit.org/show_bug.cgi?id=108579
84003
84004        Reviewed by Adam Barth.
84005
84006        Currently V8GCController::m_edenNodes stores a list of nodes whose
84007        wrappers have been created since the latest GC. The reason why we
84008        needed m_edenNodes is that there was no way to know a list of wrappers
84009        in the new space of V8. By using m_edenNodes, we had been approximating
84010        'wrappers in the new space' by 'wrappers that have been created since
84011        the latest GC'.
84012
84013        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
84014        can know a list of wrappers in the new space. By using the API, we can
84015        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
84016        need to keep m_edenNodes and that (2) it enables more precise minor
84017        DOM GC (Remember that m_edenNodes was just an approximation).
84018
84019        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
84020        The benchmark runs 300 iterations, each of which creates 100000 elements.
84021        The benchmark measures average, min, median, max and stdev of execution times
84022        of the 300 iterations. This will tell us the worst-case overhead of this change.
84023
84024        Before:
84025          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
84026
84027        After:
84028          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
84029
84030        As shown above, I couldn't observe any performance regression.
84031
84032        No tests. No change in behavior.
84033
84034        * bindings/v8/DOMDataStore.h:
84035        (WebCore::DOMDataStore::setWrapperInObject):
84036        * bindings/v8/DOMWrapperWorld.h:
84037        (DOMWrapperWorld):
84038        (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
84039        * bindings/v8/V8Binding.h:
84040        (WebCore):
84041        (WebCore::worldForEnteredContextIfIsolated):
84042        (WebCore::worldForEnteredContextWithoutContextCheck):
84043        * bindings/v8/V8DOMWindowShell.cpp:
84044        (WebCore::V8DOMWindowShell::initializeIfNeeded):
84045        * bindings/v8/V8GCController.cpp:
84046        (WebCore::gcTree):
84047        (WebCore):
84048        (MinorGCWrapperVisitor):
84049        (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
84050        (WebCore::MinorGCWrapperVisitor::notifyFinished):
84051        (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
84052        (WebCore::V8GCController::gcPrologue):
84053        (WebCore::V8GCController::minorGCPrologue):
84054        (WebCore::V8GCController::majorGCPrologue):
84055        * bindings/v8/V8GCController.h:
84056        (V8GCController):
84057
840582013-02-06  Kent Tamura  <tkent@chromium.org>
84059
84060        REGRESSION(r141195): INPUT_MULTIPLE_FIELDS_UI: Space in a placeholder string is removed
84061        https://bugs.webkit.org/show_bug.cgi?id=109132
84062
84063        Reviewed by Hajime Morita.
84064
84065        <input  type=date> should be shown in Japanese UI as:
84066        [ 年 /月/日]
84067        But it is shown wrongly since r141195:
84068        [年 /月/日]
84069
84070        We should use white-space:pre.
84071
84072        No new tests. This change is not testable in WebKit because this
84073        requires a Japanese-localized UI string of Chromium.
84074
84075        * css/html.css:
84076        (input::-webkit-datetime-edit-fields-wrapper):
84077        Use white-space:pre instead of nowrap.
84078
840792013-02-06  Kentaro Hara  <haraken@chromium.org>
84080
84081        Remove DOMWindow::parseModalDialogFeatures()
84082        https://bugs.webkit.org/show_bug.cgi?id=109139
84083
84084        Reviewed by Kent Tamura.
84085
84086        No one uses the method. FIXME is saying:
84087
84088          // FIXME: We can remove this function once V8 showModalDialog is changed to use DOMWindow.
84089
84090        Given that V8's showModalDialog() is now using DOMWindow, we can remove it.
84091
84092        No tests. No change in behavior.
84093
84094        * page/DOMWindow.cpp:
84095        * page/DOMWindow.h:
84096        (DOMWindow):
84097
840982013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
84099
84100        Web Inspector: Native Memory Instrumentation: reduce native heap snapshot runtime memory footprint
84101        https://bugs.webkit.org/show_bug.cgi?id=108824
84102
84103        Reviewed by Yury Semikhatsky.
84104
84105        New event was added into Memory domain addNativeSnapshotChunk.
84106        The content of HeapGraphSerializer is completely rewritten according to new API.
84107        Now it collects strings, nodes, edges and id2id map and pushes when the collected items count exceed a limit.
84108        On the frontend side I added new method for the new event and fixed the postprocessing step.
84109        MemoryInstrumentation was slightly changed. Now it reports base to real address map only after reporting the node with real address.
84110
84111        * inspector/HeapGraphSerializer.cpp:
84112        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
84113        (WebCore::HeapGraphSerializer::pushUpdateIfNeed):
84114        (WebCore):
84115        (WebCore::HeapGraphSerializer::pushUpdate):
84116        (WebCore::HeapGraphSerializer::reportNode):
84117        (WebCore::HeapGraphSerializer::reportNodeImpl):
84118        (WebCore::HeapGraphSerializer::reportEdge):
84119        (WebCore::HeapGraphSerializer::reportEdgeImpl):
84120        (WebCore::HeapGraphSerializer::reportLeaf):
84121        (WebCore::HeapGraphSerializer::reportBaseAddress):
84122        (WebCore::HeapGraphSerializer::finish):
84123        (WebCore::HeapGraphSerializer::reportMemoryUsage):
84124        (WebCore::HeapGraphSerializer::addString):
84125        (WebCore::HeapGraphSerializer::toNodeId):
84126        (WebCore::HeapGraphSerializer::addRootNode):
84127        * inspector/HeapGraphSerializer.h:
84128        (HeapGraphSerializer):
84129        * inspector/Inspector.json:
84130        * inspector/InspectorController.cpp:
84131        (WebCore::InspectorController::processMemoryDistribution):
84132        * inspector/InspectorMemoryAgent.cpp:
84133        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionMap):
84134        (WebCore):
84135        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
84136        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
84137        (WebCore::InspectorMemoryAgent::setFrontend):
84138        (WebCore::InspectorMemoryAgent::clearFrontend):
84139        * inspector/InspectorMemoryAgent.h:
84140        (InspectorMemoryAgent):
84141        * inspector/front-end/NativeHeapSnapshot.js:
84142        (WebInspector.NativeHeapSnapshot):
84143        (WebInspector.NativeHeapSnapshotNode.prototype.classIndex):
84144        (WebInspector.NativeHeapSnapshotNode.prototype.id):
84145        (WebInspector.NativeHeapSnapshotNode.prototype.name):
84146        (WebInspector.NativeHeapSnapshotNode.prototype.serialize):
84147        * inspector/front-end/NativeMemorySnapshotView.js:
84148        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
84149        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
84150        (WebInspector.NativeSnapshotProfileHeader):
84151        (WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
84152        (WebInspector.NativeSnapshotProfileHeader.prototype.addNativeSnapshotChunk):
84153        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
84154        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
84155        (WebInspector.NativeMemoryBarChart.prototype._updateStats):
84156        * inspector/front-end/ProfilesPanel.js:
84157        (WebInspector.ProfilesPanel):
84158        (WebInspector.MemoryDispatcher):
84159        (WebInspector.MemoryDispatcher.prototype.addNativeSnapshotChunk):
84160
841612013-02-03  Kentaro Hara  <haraken@chromium.org>
84162
84163        WebKit's focus events are UIEvents (instead of FocusEvent) and thus don't expose .relatedTarget
84164        https://bugs.webkit.org/show_bug.cgi?id=76216
84165
84166        Reviewed by Eric Seidel.
84167
84168        Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-FocusEvent
84169
84170        This patch creates a new FocusEvent class with a relatedTarget attribute.
84171        Now when focusin or focusout events are dispatched, a FocusEvent is created with
84172        the relatedTarget attribute set accordingly.
84173
84174        Test: fast/events/related-target-focusevent.html
84175
84176        * CMakeLists.txt:
84177        * DerivedSources.cpp:
84178        * DerivedSources.make:
84179        * DerivedSources.pri:
84180        * GNUmakefile.list.am:
84181        * Target.pri:
84182        * WebCore.gypi:
84183        * WebCore.xcodeproj/project.pbxproj:
84184        * dom/DOMAllInOne.cpp:
84185        * dom/Event.cpp:
84186        (WebCore::Event::isFocusEvent):
84187        (WebCore):
84188        * dom/Event.h:
84189        (Event):
84190        * dom/EventContext.cpp:
84191        (WebCore::EventContext::handleLocalEvents):
84192        * dom/EventNames.in:
84193        * dom/FocusEvent.h: Added.
84194        (WebCore):
84195        (FocusEvent):
84196        (WebCore::FocusEvent::create):
84197        (WebCore::FocusEvent::relatedTarget):
84198        (WebCore::FocusEvent::setRelatedTarget):
84199        (WebCore::toFocusEvent):
84200        * dom/FocusEvent.idl: Added.
84201        * dom/Node.cpp:
84202        (WebCore::Node::dispatchFocusInEvent):
84203        (WebCore::Node::dispatchFocusOutEvent):
84204
842052013-02-06  Kent Tamura  <tkent@chromium.org>
84206
84207        Fix style of RenderTheme.cpp and RenderThemeChromiumWin.h
84208        https://bugs.webkit.org/show_bug.cgi?id=109137
84209
84210        Reviewed by Kentaro Hara.
84211
84212        No new tests. Just style fix.
84213
84214        * rendering/RenderTheme.cpp:
84215        (WebCore::RenderTheme::adjustStyle):
84216        (WebCore::RenderTheme::paint):
84217        (WebCore::RenderTheme::paintBorderOnly):
84218        (WebCore::RenderTheme::paintDecorations):
84219        (WebCore::RenderTheme::isControlStyled):
84220        (WebCore::RenderTheme::adjustButtonStyle):
84221        (WebCore::RenderTheme::systemColor):
84222        * rendering/RenderThemeChromiumWin.h:
84223        (WebCore::ThemeData::ThemeData):
84224        (ThemeData):
84225        (RenderThemeChromiumWin):
84226        (WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
84227        (WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
84228
842292013-02-06  Kent Tamura  <tkent@chromium.org>
84230
84231        Fix style of Chrome.h and Page.h
84232        https://bugs.webkit.org/show_bug.cgi?id=109138
84233
84234        Reviewed by Ryosuke Niwa.
84235
84236        No new tests. Just style fixes.
84237
84238        * page/Chrome.h:
84239        (WebCore):
84240        (Chrome):
84241        (WebCore::Chrome::client):
84242        * page/Page.h:
84243        (JSC):
84244        (WebCore):
84245        (WebCore::ArenaSize::ArenaSize):
84246        (ArenaSize):
84247        (Page):
84248        (PageClients):
84249        (WebCore::Page::theme):
84250        (WebCore::Page::canStartMedia):
84251        (WebCore::Page::editorClient):
84252        (WebCore::Page::plugInClient):
84253        (WebCore::Page::mainFrame):
84254        (WebCore::Page::groupPtr):
84255        (WebCore::Page::incrementSubframeCount):
84256        (WebCore::Page::decrementSubframeCount):
84257        (WebCore::Page::subframeCount):
84258        (WebCore::Page::chrome):
84259        (WebCore::Page::dragCaretController):
84260        (WebCore::Page::dragController):
84261        (WebCore::Page::focusController):
84262        (WebCore::Page::contextMenuController):
84263        (WebCore::Page::inspectorController):
84264        (WebCore::Page::pointerLockController):
84265        (WebCore::Page::validationMessageClient):
84266        (WebCore::Page::settings):
84267        (WebCore::Page::progress):
84268        (WebCore::Page::backForward):
84269        (WebCore::Page::featureObserver):
84270        (WebCore::Page::viewMode):
84271        (WebCore::Page::setTabKeyCyclesThroughElements):
84272        (WebCore::Page::tabKeyCyclesThroughElements):
84273        (WebCore::Page::scheduledRunLoopPairs):
84274        (WebCore::Page::defersLoading):
84275        (WebCore::Page::mediaVolume):
84276        (WebCore::Page::pageScaleFactor):
84277        (WebCore::Page::deviceScaleFactor):
84278        (WebCore::Page::shouldSuppressScrollbarAnimations):
84279        (WebCore::Page::pagination):
84280        (WebCore::Page::isOnscreen):
84281        (WebCore::Page::scriptedAnimationsSuspended):
84282        (WebCore::Page::debugger):
84283        (WebCore::Page::hasCustomHTMLTokenizerTimeDelay):
84284        (WebCore::Page::customHTMLTokenizerTimeDelay):
84285        (WebCore::Page::hasCustomHTMLTokenizerChunkSize):
84286        (WebCore::Page::customHTMLTokenizerChunkSize):
84287        (WebCore::Page::areMemoryCacheClientCallsEnabled):
84288        (WebCore::Page::setEditable):
84289        (WebCore::Page::isEditable):
84290        (WebCore::Page::displayID):
84291        (WebCore::Page::layoutMilestones):
84292        (WebCore::Page::setIsPainting):
84293        (WebCore::Page::isPainting):
84294        (WebCore::Page::alternativeTextClient):
84295        (WebCore::Page::checkSubframeCountConsistency):
84296        (WebCore::Page::group):
84297
842982013-02-06  Mike West  <mkwst@chromium.org>
84299
84300        Entity-header extension headers honored on 304 responses.
84301        https://bugs.webkit.org/show_bug.cgi?id=72414
84302
84303        Reviewed by Alexey Proskuryakov.
84304
84305        This patch ports Chromium's network stack logic governing header
84306        updates after resource revalidation. Generally, headers sent with 304
84307        responses ought to update the original cached resource's headers.
84308        Certain headers should never be sent with 304 responses, and we should
84309        ignore them if a misconfigured server sends them anyway.
84310
84311        Currently, WebCore ignores all headers prefixed with 'content-'. This
84312        patch adds 'x-content-' and 'x-webkit-' to the list, as well as specific
84313        headers like 'upgrade', 'trailer', and others that the Chromium network
84314        stack currently ignores.
84315
84316        The tests verify that those headers with visible effect are correctly
84317        handled: 'x-frame-options', 'content-security-policy', and
84318        'x-xss-protection'.
84319
84320        Tests: http/tests/security/XFrameOptions/x-frame-options-cached.html
84321               http/tests/security/contentSecurityPolicy/cached-frame-csp.html
84322               http/tests/security/xssAuditor/cached-frame.html
84323
84324        * loader/cache/CachedResource.cpp:
84325        (WebCore):
84326        (WebCore::CachedResource::updateResponseAfterRevalidation):
84327            This patch adds two arrays containing the specific headers to
84328            ignore and the prefixes to ignore. These lists are processed in
84329            shouldUpdateHeaderAfterRevalidation.
84330            CachedResource::updateResponseAfterRevalidation relies on this new
84331            method when processing revalidated resources.
84332
84333        * loader/cache/CachedResource.cpp:
84334        (WebCore):
84335        (WebCore::shouldUpdateHeaderAfterRevalidation):
84336        (WebCore::CachedResource::updateResponseAfterRevalidation):
84337
843382013-02-06  Tom Sepez  <tsepez@chromium.org>
84339
84340        document.referrer leakage with XSS Auditor page block
84341        https://bugs.webkit.org/show_bug.cgi?id=109089
84342
84343        Reviewed by Adam Barth.
84344
84345        Pass "about:blank" as referrer instead of "" so that the actual page
84346        is not leaked when empty referrers are replaced later on in the
84347        request.
84348        
84349        * html/parser/XSSAuditorDelegate.cpp:
84350        (WebCore::XSSAuditorDelegate::didBlockScript):
84351
843522013-02-06  Kentaro Hara  <haraken@chromium.org>
84353
84354        [V8] Make an Isolate parameter mandatory in GetTemplate() and GetRawTemplate()
84355        https://bugs.webkit.org/show_bug.cgi?id=109026
84356
84357        Reviewed by Adam Barth.
84358
84359        Now it's time to kill an optional Isolate parameter.
84360
84361        No tests. No change in behavior.
84362
84363        * bindings/scripts/CodeGeneratorV8.pm:
84364        (GenerateHeader):
84365        (GenerateNamedConstructorCallback):
84366        (GenerateImplementation):
84367        * bindings/scripts/test/V8/V8Float64Array.cpp:
84368        (WebCore::V8Float64Array::GetRawTemplate):
84369        (WebCore::V8Float64Array::GetTemplate):
84370        * bindings/scripts/test/V8/V8Float64Array.h:
84371        (V8Float64Array):
84372        (WebCore::V8Float64Array::installPerContextPrototypeProperties):
84373        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
84374        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
84375        (WebCore::V8TestActiveDOMObject::GetTemplate):
84376        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
84377        (V8TestActiveDOMObject):
84378        (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
84379        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
84380        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
84381        (WebCore::V8TestCustomNamedGetter::GetTemplate):
84382        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
84383        (V8TestCustomNamedGetter):
84384        (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
84385        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
84386        (WebCore::V8TestEventConstructor::GetRawTemplate):
84387        (WebCore::V8TestEventConstructor::GetTemplate):
84388        * bindings/scripts/test/V8/V8TestEventConstructor.h:
84389        (V8TestEventConstructor):
84390        (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
84391        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
84392        (WebCore::V8TestEventTarget::GetRawTemplate):
84393        (WebCore::V8TestEventTarget::GetTemplate):
84394        * bindings/scripts/test/V8/V8TestEventTarget.h:
84395        (V8TestEventTarget):
84396        (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
84397        * bindings/scripts/test/V8/V8TestException.cpp:
84398        (WebCore::V8TestException::GetRawTemplate):
84399        (WebCore::V8TestException::GetTemplate):
84400        * bindings/scripts/test/V8/V8TestException.h:
84401        (V8TestException):
84402        (WebCore::V8TestException::installPerContextPrototypeProperties):
84403        * bindings/scripts/test/V8/V8TestInterface.cpp:
84404        (WebCore::V8TestInterface::GetRawTemplate):
84405        (WebCore::V8TestInterface::GetTemplate):
84406        * bindings/scripts/test/V8/V8TestInterface.h:
84407        (V8TestInterface):
84408        (WebCore::V8TestInterface::installPerContextPrototypeProperties):
84409        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
84410        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
84411        (WebCore::V8TestMediaQueryListListener::GetTemplate):
84412        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
84413        (V8TestMediaQueryListListener):
84414        (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
84415        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
84416        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
84417        (WebCore::V8TestNamedConstructor::GetRawTemplate):
84418        (WebCore::V8TestNamedConstructor::GetTemplate):
84419        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
84420        (V8TestNamedConstructor):
84421        (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
84422        * bindings/scripts/test/V8/V8TestNode.cpp:
84423        (WebCore::V8TestNode::GetRawTemplate):
84424        (WebCore::V8TestNode::GetTemplate):
84425        * bindings/scripts/test/V8/V8TestNode.h:
84426        (V8TestNode):
84427        (WebCore::V8TestNode::installPerContextPrototypeProperties):
84428        * bindings/scripts/test/V8/V8TestObj.cpp:
84429        (WebCore::V8TestObj::GetRawTemplate):
84430        (WebCore::V8TestObj::GetTemplate):
84431        (WebCore::V8TestObj::installPerContextPrototypeProperties):
84432        * bindings/scripts/test/V8/V8TestObj.h:
84433        (V8TestObj):
84434        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
84435        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
84436        (WebCore::V8TestOverloadedConstructors::GetTemplate):
84437        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
84438        (V8TestOverloadedConstructors):
84439        (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
84440        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
84441        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
84442        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
84443        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
84444        (V8TestSerializedScriptValueInterface):
84445        (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
84446        * bindings/v8/V8PerContextData.cpp:
84447        (WebCore::V8PerContextData::constructorForTypeSlowCase):
84448        * bindings/v8/WrapperTypeInfo.h:
84449        (WebCore):
84450        (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
84451
844522013-02-06  Terry Anderson  <tdanderson@chromium.org>
84453
84454        Add support for gesture scroll events that do not propagate to enclosing scrollables
84455        https://bugs.webkit.org/show_bug.cgi?id=108849
84456
84457        Reviewed by Antonio Gomes.
84458
84459        Tests: fast/events/touch/gesture/touch-gesture-scroll-div-not-propagated.html
84460               fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html
84461               fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html
84462
84463        Rename RenderLayer::scrollByRecursively() to RenderLayer::scrollBy() and add a parameter
84464        of type RenderLayer::ScrollPropagation to specify whether or not the scroll should
84465        propagate to its parent by recursing. Implement RenderLayer::scrollByRecursively() as a
84466        call to RenderLayer::scrollBy() with argument RenderLayer::ShouldPropagateScroll so
84467        that all existing calls to the function still produce the correct behavior.
84468
84469        In EventHandler::handleGestureScrollUpdate(), call RenderLayer::scrollBy() with
84470        argument RenderLayer::ShouldPropagateScroll if |gestureEvent| is a GestureScrollUpdate
84471        or instead with argument RenderLayer::DontPropagateScroll if |gestureEvent| is a
84472        GestureScrollUpdateWithoutPropagation.
84473
84474        * dom/GestureEvent.cpp:
84475        (WebCore::GestureEvent::create):
84476        * page/EventHandler.cpp:
84477        (WebCore::EventHandler::handleGestureEvent):
84478        (WebCore::EventHandler::handleGestureScrollUpdate):
84479        * platform/PlatformEvent.h:
84480        * platform/Scrollbar.cpp:
84481        (WebCore::Scrollbar::gestureEvent):
84482        * platform/chromium/PopupContainer.cpp:
84483        (WebCore::PopupContainer::handleGestureEvent):
84484        * rendering/RenderLayer.cpp:
84485        (WebCore::RenderLayer::scrollByRecursively):
84486        (WebCore):
84487        (WebCore::RenderLayer::scrollBy):
84488        * rendering/RenderLayer.h:
84489
844902013-02-06  Ojan Vafai  <ojan@chromium.org>
84491
84492        [Chromium] table-section-overflow-clip-crash.html hits an assert
84493        https://bugs.webkit.org/show_bug.cgi?id=108594
84494
84495        Reviewed by Levi Weintraub.
84496
84497        When a counter calls setNeedsLayout, it also marks it's containing blocks
84498        as needing layout, so we need to clear the setNeedsLayoutIsForbidden bit on the
84499        containing blocks as well as the counter itself.
84500
84501        Also, use RAII objects for all the places where we clear this bit and make
84502        the setter/getter for it private to RenderObject.
84503
84504        * rendering/RenderCounter.cpp:
84505        (WebCore::RenderCounter::computePreferredLogicalWidths):
84506        * rendering/RenderObject.cpp:
84507        (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
84508        (WebCore::RenderObject::markContainingBlocksForLayout):
84509        * rendering/RenderObject.h:
84510        (SetLayoutNeededForbiddenScope):
84511        (RenderObject):
84512        (WebCore::RenderObject::isSetNeedsLayoutForbidden):
84513        (WebCore::RenderObject::setNeedsLayoutIsForbidden):
84514        * rendering/RenderQuote.cpp:
84515        (WebCore::RenderQuote::computePreferredLogicalWidths):
84516        * rendering/RenderTableSection.cpp:
84517        (WebCore::RenderTableSection::calcRowLogicalHeight):
84518        (WebCore::RenderTableSection::layoutRows):
84519        * rendering/mathml/RenderMathMLOperator.cpp:
84520        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
84521        * rendering/mathml/RenderMathMLRoot.cpp:
84522        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
84523        * rendering/mathml/RenderMathMLRow.cpp:
84524        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
84525
845262013-02-06  Ojan Vafai  <ojan@chromium.org>
84527
84528        display:none file upload button crashes
84529        https://bugs.webkit.org/show_bug.cgi?id=109102
84530
84531        Reviewed by Levi Weintraub.
84532
84533        Test: fast/forms/file/display-none-upload-button.html
84534
84535        * rendering/RenderFileUploadControl.cpp:
84536        (WebCore::nodeWidth):
84537        (WebCore::RenderFileUploadControl::paintObject):
84538        Having an upload button doesn't mean we have a rendered upload button.
84539        Null check the renderer before trying to access it.
84540
845412013-02-06  Dirk Schulze  <dschulze@adobe.com>
84542
84543        Context's currentPath should check for passed type
84544        https://bugs.webkit.org/show_bug.cgi?id=109097
84545
84546        Reviewed by Dean Jackson.
84547
84548        Add check for passed pointer and return earlier.
84549
84550        Test: fast/canvas/canvas-currentPath-crash.html
84551
84552        * html/canvas/CanvasRenderingContext2D.cpp:
84553        (WebCore::CanvasRenderingContext2D::setCurrentPath):
84554
845552013-02-06  Rafael Weinstein  <rafaelw@chromium.org>
84556
84557        [HTMLTemplateElement] Non </template> end tags should be ignored in "template contents" insertion mode.
84558        https://bugs.webkit.org/show_bug.cgi?id=109090
84559
84560        Reviewed by Adam Barth.
84561
84562        https://dvcs.w3.org/hg/webcomponents/raw-file/38536d37fb82/spec/templates/index.html#template-contents-insertion-mode.
84563
84564        Test added to html5lib suite.
84565
84566        * html/parser/HTMLTreeBuilder.cpp:
84567        (WebCore::HTMLTreeBuilder::processEndTag):
84568
845692013-02-06  Alexandre Elias  <aelias@chromium.org>
84570
84571        Make ScrollView::paint() clip by visibleContentRect
84572        https://bugs.webkit.org/show_bug.cgi?id=108888
84573
84574        Reviewed by Levi Weintraub.
84575
84576        When applyPageScaleFactorInCompositor or fixedVisibleContentRect
84577        are used, frameRect() and visibleContentRect(true).size() are
84578        no longer synonyms, and the latter is the one that should be
84579        used for clipping paints.
84580
84581        New WebFrameTest: pageScaleFactorScalesPaintClip.
84582
84583        * platform/ScrollView.cpp:
84584        (WebCore::ScrollView::paint):
84585
845862013-02-06  Dima Gorbik  <dgorbik@apple.com>
84587
84588        Store the language internally instead of using lang attribute for WebVTT nodes
84589        https://bugs.webkit.org/show_bug.cgi?id=108858
84590
84591        Reviewed by Eric Carlson.
84592
84593        Only language webvtt elements should have a lang attribute so we have to store
84594        the language internally in the element. Refactored the code to make 
84595        computeInheritedLanguage virtual.
84596
84597        Existing tests were modified to cover this case.
84598
84599        * css/SelectorChecker.cpp:
84600        (WebCore::SelectorChecker::checkOne):
84601        * html/track/WebVTTElement.cpp:
84602        (WebCore::WebVTTElement::WebVTTElement):
84603        (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
84604        (WebCore::WebVTTElement::createEquivalentHTMLElement): clone the internal language property.
84605        * html/track/WebVTTElement.h:
84606        (WebCore::WebVTTElement::language):
84607        (WebCore::WebVTTElement::setLanguage):
84608        * html/track/WebVTTParser.cpp: only set the lang attribute for language objects.
84609        (WebCore::WebVTTParser::constructTreeFromToken):
84610
846112013-02-06  Levi Weintraub  <leviw@chromium.org>
84612
84613        Negative text indents can break RenderBlock's inline maximum preferred width calculation
84614        https://bugs.webkit.org/show_bug.cgi?id=108973
84615
84616        Reviewed by Emil A Eklund.
84617
84618        Change two quirks about to how we calculate a block's inline preferred width with
84619        text-indent.
84620
84621        First, re-use text-indent that's first applied to floats on text that follows it.
84622        This matches Layout, as otherwise we can prematurely wrap text when there's a negative
84623        margin on a block starting with a float. This also matches FireFox.
84624
84625        Second, correct how the max preferred width is calculated in the presence of a negative
84626        text-indent. If the text-indent is more negative than the first text line break, we
84627        update the value to be the remainder. Previously, we added this remaining negative value
84628        to subsequent minimum and maximum preferred width calculations (until the remainder was
84629        gone). This is wrong for the max preferred width, as we're adding the negative value more
84630        than once, and leads to a max preferred width that's smaller than our line.
84631
84632        Test: fast/css/negative-text-indent-in-inline-block.html
84633
84634        * rendering/RenderBlock.cpp:
84635        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
84636
846372013-02-06  Mark Lam  <mark.lam@apple.com>
84638
84639        Fix broken release builds, greening the bots.
84640        https://bugs.webkit.org/show_bug.cgi?id=107475.
84641
84642        Not reviewed.
84643
84644        No new tests.
84645
84646        * Modules/webdatabase/DatabaseManager.cpp:
84647        (WebCore::logOpenDatabaseError):
84648
846492013-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>
84650
84651        Unreviewed, rolling out r142025.
84652        http://trac.webkit.org/changeset/142025
84653        https://bugs.webkit.org/show_bug.cgi?id=109091
84654
84655        broke the build (Requested by tdanderson on #webkit).
84656
84657        * dom/GestureEvent.cpp:
84658        (WebCore::GestureEvent::create):
84659        * page/EventHandler.cpp:
84660        (WebCore::EventHandler::handleGestureEvent):
84661        (WebCore::EventHandler::handleGestureScrollUpdate):
84662        * platform/PlatformEvent.h:
84663        * platform/Scrollbar.cpp:
84664        (WebCore::Scrollbar::gestureEvent):
84665        * platform/chromium/PopupContainer.cpp:
84666        (WebCore::PopupContainer::handleGestureEvent):
84667        * rendering/RenderLayer.cpp:
84668        (WebCore::RenderLayer::scrollByRecursively):
84669        * rendering/RenderLayer.h:
84670
846712013-02-06  Mark Lam  <mark.lam@apple.com>
84672
84673        Split openDatabase() between front and back end work.
84674        https://bugs.webkit.org/show_bug.cgi?id=107475.
84675
84676        Reviewed by Anders Carlsson.
84677
84678        The main work of splitting DatabaseManager::openDatabase() is in
84679        refactoring how DatabaseTracker::canEstablishDatabase() works. It used
84680        to check for adequate space quota, and if the check fails, it would call
84681        back into the client from inside canEstablishDatabase(). The call back
84682        allows the client to update the quota (if appropriate). Thereafter,
84683        canEstablishDatabase() will retry its quota check.
84684
84685        In a webkit2 world, we'll want to minimize the traffic between the
84686        client (script side) and the server (sqlite db side), and ideally, we
84687        don't want the server to call back to the client. Note: the
84688        DatabaseTracker belongs on the server side.
84689
84690        To achieve this, we split canEstablishDatabase() into 2 parts: the
84691        checks before the call back to the client, and the checks after.
84692        The first part will retain the name canEstablishDatabase(), and the
84693        second part will be named retryCanEstablishDatabase().
84694        We also added a DatabaseServer::openDatabase() function that can be
84695        called with a retry flag.
84696
84697        The client side DatabaseManager::openDatabase() will call
84698        DatabaseServer::openDatabase(), which then calls canEstablishDatabase()
84699        to do its quota check. If there is enough quota,
84700        DatabaseServer::openDatabase() will proceed to open the backend database
84701        without return to the client first. The opened database will be returned
84702        to the client.
84703
84704        If DatabaseServer::openDatabase() finds inadequate quota the first time,
84705        it will return with a DatabaseSizeExceededQuota error. The DatabaseManager
84706        (on the client side) will check for this error and call back to its client
84707        for an opportunity to increase the quota. Thereafter, the DatabaseManager
84708        will call DatabaseServer::openDatabase() again. This time,
84709        DatabaseServer::openDatabase() will call retryCanEstablishDatabase() to
84710        check the quota, and then open the backend database if there is enough
84711        quota.
84712
84713        No new tests.
84714
84715        * Modules/webdatabase/AbstractDatabaseServer.h:
84716        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
84717        (WebCore::DOMWindowWebDatabase::openDatabase):
84718        * Modules/webdatabase/Database.cpp:
84719        (WebCore::Database::create):
84720        * Modules/webdatabase/Database.h:
84721        (Database):
84722        * Modules/webdatabase/DatabaseBackend.cpp:
84723        (WebCore::DatabaseBackend::performOpenAndVerify):
84724        * Modules/webdatabase/DatabaseBackend.h:
84725        (DatabaseBackend):
84726        * Modules/webdatabase/DatabaseBackendAsync.cpp:
84727        (WebCore::DatabaseBackendAsync::openAndVerifyVersion):
84728        (WebCore::DatabaseBackendAsync::performOpenAndVerify):
84729        * Modules/webdatabase/DatabaseBackendAsync.h:
84730        (DatabaseBackendAsync):
84731        * Modules/webdatabase/DatabaseBackendSync.cpp:
84732        (WebCore::DatabaseBackendSync::openAndVerifyVersion):
84733        * Modules/webdatabase/DatabaseBackendSync.h:
84734        (DatabaseBackendSync):
84735        * Modules/webdatabase/DatabaseError.h:
84736        (WebCore::ENUM_CLASS):
84737        * Modules/webdatabase/DatabaseManager.cpp:
84738        (WebCore::DatabaseManager::exceptionCodeForDatabaseError):
84739        (WebCore::DatabaseManager::openDatabaseBackend):
84740        (WebCore::DatabaseManager::openDatabase):
84741        (WebCore::DatabaseManager::openDatabaseSync):
84742        * Modules/webdatabase/DatabaseManager.h:
84743        (DatabaseManager):
84744        * Modules/webdatabase/DatabaseServer.cpp:
84745        (WebCore::DatabaseServer::openDatabase):
84746        (WebCore::DatabaseServer::createDatabase):
84747        * Modules/webdatabase/DatabaseServer.h:
84748        * Modules/webdatabase/DatabaseSync.cpp:
84749        (WebCore::DatabaseSync::create):
84750        * Modules/webdatabase/DatabaseSync.h:
84751        (DatabaseSync):
84752        * Modules/webdatabase/DatabaseTracker.cpp:
84753        (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
84754        (WebCore::DatabaseTracker::canEstablishDatabase):
84755        (WebCore::DatabaseTracker::retryCanEstablishDatabase):
84756        * Modules/webdatabase/DatabaseTracker.h:
84757        (DatabaseTracker):
84758        * Modules/webdatabase/WorkerContextWebDatabase.cpp:
84759        (WebCore::WorkerContextWebDatabase::openDatabase):
84760        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
84761        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
84762        (WebCore::DatabaseTracker::canEstablishDatabase):
84763        (WebCore::DatabaseTracker::retryCanEstablishDatabase):
84764
847652013-02-06  Tony Gentilcore  <tonyg@chromium.org>
84766
84767        Fix CompactHTMLToken's copy ctor to copy all fields
84768        https://bugs.webkit.org/show_bug.cgi?id=109076
84769
84770        Reviewed by Adam Barth.
84771
84772        This was introduced by me in r142004. Without this patch we fail all tests when using the background parser.
84773
84774        Also don't use getters in copy ctor.
84775
84776        No new tests because no new functionality.
84777
84778        * html/parser/CompactHTMLToken.cpp:
84779        (WebCore::CompactHTMLToken::CompactHTMLToken):
84780
847812013-02-06  Brian Salomon  <bsalomon@google.com>
84782
84783        [Chromium/Skia] Remove use of deprecated Skia names
84784        https://bugs.webkit.org/show_bug.cgi?id=109085
84785
84786        Reviewed by Stephen White.
84787
84788        Tested by every existing canvas2d test.
84789
84790        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
84791        (WebCore::GraphicsContext3DPrivate::grContext):
84792
847932013-02-06  Terry Anderson  <tdanderson@chromium.org>
84794
84795        Add support for gesture scroll events that do not propagate to enclosing scrollables
84796        https://bugs.webkit.org/show_bug.cgi?id=108849
84797
84798        Reviewed by Antonio Gomes.
84799
84800        Tests: fast/events/touch/gesture/touch-gesture-scroll-div-not-propagated.html
84801               fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html
84802               fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html
84803
84804        Rename RenderLayer::scrollByRecursively() to RenderLayer::scrollBy() and add a parameter
84805        of type RenderLayer::ScrollPropagation to specify whether or not the scroll should
84806        propagate to its parent by recursing. Implement RenderLayer::scrollByRecursively() as a
84807        call to RenderLayer::scrollBy() with argument RenderLayer::ShouldPropagateScroll so
84808        that all existing calls to the function still produce the correct behavior.
84809
84810        In EventHandler::handleGestureScrollUpdate(), call RenderLayer::scrollBy() with
84811        argument RenderLayer::ShouldPropagateScroll if |gestureEvent| is a GestureScrollUpdate
84812        or instead with argument RenderLayer::DontPropagateScroll if |gestureEvent| is a
84813        GestureScrollUpdateWithoutPropagation.
84814
84815        * dom/GestureEvent.cpp:
84816        (WebCore::GestureEvent::create):
84817        * page/EventHandler.cpp:
84818        (WebCore::EventHandler::handleGestureEvent):
84819        (WebCore::EventHandler::handleGestureScrollUpdate):
84820        * platform/PlatformEvent.h:
84821        * platform/Scrollbar.cpp:
84822        (WebCore::Scrollbar::gestureEvent):
84823        * platform/chromium/PopupContainer.cpp:
84824        (WebCore::PopupContainer::handleGestureEvent):
84825        * rendering/RenderLayer.cpp:
84826        (WebCore::RenderLayer::scrollByRecursively):
84827        (WebCore):
84828        (WebCore::RenderLayer::scrollBy):
84829        * rendering/RenderLayer.h:
84830
848312013-02-06  Ryosuke Niwa  <rniwa@webkit.org>
84832
84833        REGRESSION(r141136): Apple's internal PLT test suite doesn't finish
84834        https://bugs.webkit.org/show_bug.cgi?id=108380
84835
84836        Reviewed by Alexey Proskuryakov.
84837
84838        Re-enable the main resource cache since the regression had been fixed in r141615.
84839
84840        * loader/cache/CachedResourceLoader.cpp:
84841        (WebCore::CachedResourceLoader::requestResource):
84842
848432013-02-06  Uday Kiran  <udaykiran@motorola.com>
84844
84845        Implement 'vmax' from CSS3 values and units
84846        https://bugs.webkit.org/show_bug.cgi?id=91440
84847
84848        Reviewed by Antti Koivisto.
84849
84850        vmax is implemented as primitive length unit.
84851        New length type ViewportPercentageMax is added and included support for fetching the value
84852        of this viewport percentage unit based on current viewport size.
84853
84854        The specification related to this implementation is
84855        http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths.
84856
84857        Tests: css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmax-absolute.html
84858               css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmax.html
84859
84860        * css/CSSGrammar.y.in: Added vmax support.
84861        * css/CSSParser.cpp: Parsing of vmax unit.
84862        (WebCore::CSSParser::validUnit): Added vmax to valid units.
84863        (WebCore::CSSParser::createPrimitiveNumericValue): Added vmax to primitive untis.
84864        (WebCore::CSSParser::parseValidPrimitive): Creation of CSSPrimitive for vmax.
84865        (WebCore::CSSParser::detectNumberToken): Parsing of vmax token.
84866        * css/CSSParserValues.cpp:
84867        (WebCore::CSSParserValue::createCSSValue): Added support for vmax.
84868        * css/CSSPrimitiveValue.cpp:
84869        (WebCore::isValidCSSUnitTypeForDoubleConversion): Added support for vmax.
84870        (WebCore::unitCategory): Ditto.
84871        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
84872        (WebCore::CSSPrimitiveValue::cleanup):
84873        (WebCore::CSSPrimitiveValue::customCssText): Added support for vmax.
84874        (WebCore::CSSPrimitiveValue::viewportPercentageLength): Function to create the Length structure for the viewport-percentage unit types.
84875        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
84876        * css/CSSPrimitiveValue.h:
84877        (WebCore::CSSPrimitiveValue::isViewportPercentageLength): Checks whether the primitive value is ViewportPercentage Length.
84878        * css/CSSPrimitiveValue.idl: Added support for vmax.
84879        * css/LengthFunctions.cpp: Calcuation of length value based on the current viewport size.
84880        (WebCore::minimumValueForLength):
84881        (WebCore::valueForLength):
84882        (WebCore::floatValueForLength):
84883        * platform/Length.h:
84884        (WebCore::Length::isViewportPercentage): To check the Length is of type ViewportPercentage.
84885        * rendering/RenderBox.cpp:
84886        (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
84887        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
84888
848892013-02-06  Pravin D  <pravind.2k4@gmail.com>
84890
84891        When a block element is made inline positioned and has static left and right,  it does not follow inline formatting context
84892        https://bugs.webkit.org/show_bug.cgi?id=91665
84893
84894        Reviewed by Julien Chaffraix.
84895
84896        Out-of-flow-positioned elements have their display overriden to BLOCK. When a static block elements 
84897        changes to inline out-of-flow-positioned or vice-versa, the element current and previous display properties 
84898        are same. This causes the element to follow a wrong flow context(in this case Block context) and the element
84899        is laid out incorrectly. The patch fixes the issue by reattaching the renderers of the node whenever either
84900        position property changes or when its floating property changes.
84901        Also the cases when an out-of-flow-positioned/floating element changes to static/non-floating element where
84902        being specially handled. As reattaching the renderers in the above cases correctly handles the above cases,
84903        special handling for such cases is no more required and the related code can be safely removed.
84904 
84905        Reattaching renderers for the afore mentioned issues takes a different(longer) code path. Performance measurements
84906        summary for the same is as follows:
84907                                                              % increase in time
84908         Absolute-block-to-static-block                            2.00
84909         Absolute-inline-to-static-block                           1.21
84910         Absolute-inline-to-static-inline                          1.18
84911         Static-block-to-absolute-block                            1.13
84912         Static-inline-to-absolute-inline                          1.35
84913         Floating-block-non-floating-block                         0.85
84914         Floating-inline-non-floating-block                        0.66
84915         Floating-inline-non-floating-inline                       0.57
84916         Non-floating-block-floating-block                         0.12
84917         Non-floating-inline-floating-inline                       1.36
84918
84919        Tests: fast/dynamic/absolute-positioned-to-static-positioned.html
84920               fast/dynamic/floating-to-non-floating.html
84921               fast/dynamic/non-floating-to-floating.html
84922               fast/dynamic/static-positioned-to-absolute-positioned.html
84923
84924        * dom/Node.cpp:
84925        (WebCore::Node::diff):
84926          Return detach in the following conditions:
84927             1) Element changes to out-of-flow-positioned or vice-versa.
84928             2) Element becomes floating or vice-versa.
84929
84930        * rendering/RenderBlock.cpp:
84931        (WebCore):
84932        * rendering/RenderBlock.h:
84933        (RenderBlock):
84934        * rendering/RenderBoxModelObject.h:
84935        (RenderBoxModelObject):
84936        * rendering/RenderInline.cpp:
84937        (WebCore):
84938        * rendering/RenderInline.h:
84939        (RenderInline):
84940        * rendering/RenderObject.cpp:
84941        (WebCore):
84942        (WebCore::RenderObject::styleWillChange):
84943        (WebCore::RenderObject::styleDidChange):
84944        * rendering/RenderObject.h:
84945        (RenderObject):
84946          The fix in Node::diff() obsoletes some code. The above deletion are part of this dead code cleanup.
84947
849482013-02-06  Chris Fleizach  <cfleizach@apple.com>
84949
84950        AX: if <html> has an ARIA attribute, it's exposed as an AXGroup
84951        https://bugs.webkit.org/show_bug.cgi?id=109008
84952
84953        Reviewed by Ryosuke Niwa.
84954
84955        If an <html> element had an ARIA attribute, it was being turned into an element
84956        in the AX hierarchy. This was causing trouble for screen readers by inserting
84957        an unexpected element in the navigation sequence.
84958
84959        Test: accessibility/html-html-element-is-ignored.html
84960
84961        * accessibility/AccessibilityRenderObject.cpp:
84962        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
84963
849642013-02-06  Shawn Singh  <shawnsingh@chromium.org>
84965
84966        RenderLayer hasVisibleContent() has inconsistent semantics causing disappearing composited layers
84967        https://bugs.webkit.org/show_bug.cgi?id=108118
84968
84969        Reviewed by Simon Fraser.
84970
84971        RenderLayerBacking::hasVisibleNonCompositingDescendantLayers was
84972        only checking whether direct children had visible content. As a
84973        result, composited layers had wrong visibility status if only a
84974        deeper descendant RenderLayer was visible.
84975
84976        Test: compositing/visibility/visibility-on-distant-descendant.html
84977
84978        * rendering/RenderLayerBacking.cpp:
84979        (WebCore::hasVisibleNonCompositingDescendant): copied the original
84980        implementation into this function; then added the RenderLayer
84981        recursion as appropriate.
84982        (WebCore):
84983        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
84984        This is now just a wrapper to the private static recursive
84985        function.
84986
849872013-02-06  Jonathon Jongsma  <jonathon.jongsma@collabora.com>
84988
84989        [GStreamer] MediaPlayer's code is not easily reusable by other GStreamer-based players
84990        https://bugs.webkit.org/show_bug.cgi?id=100261
84991
84992        Refactor the media player implementation so that more of the
84993        internal functionality can be shared between the current media
84994        backend and the mediastream player backend.  Common code is
84995        broken out into a MediaPlayerPrivateGStreamerBase class, and
84996        both MediaPlayerPrivateGStreamer and
84997        StreamMediaPlayerPrivateGStreamer inherit from this base class.
84998
84999        Reviewed by Philippe Normand
85000
85001        No new tests since functionality is covered by existing media tests
85002
85003        * GNUmakefile.list.am:
85004        * PlatformEfl.cmake:
85005        * Target.pri:
85006        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp:
85007        (WebCore::FullscreenVideoControllerGStreamer::create):
85008        (WebCore::FullscreenVideoControllerGStreamer::FullscreenVideoControllerGStreamer):
85009        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h:
85010        (WebCore):
85011        (FullscreenVideoControllerGStreamer):
85012        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
85013        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
85014        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
85015        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
85016        (MediaPlayerPrivateGStreamer):
85017        (WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
85018        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Added.
85019        (WebCore):
85020        (WebCore::greatestCommonDivisor):
85021        (WebCore::mediaPlayerPrivateVolumeChangedCallback):
85022        (WebCore::mediaPlayerPrivateVolumeChangeTimeoutCallback):
85023        (WebCore::mediaPlayerPrivateMuteChangedCallback):
85024        (WebCore::mediaPlayerPrivateMuteChangeTimeoutCallback):
85025        (WebCore::mediaPlayerPrivateRepaintCallback):
85026        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
85027        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
85028        (WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
85029        (WebCore::MediaPlayerPrivateGStreamerBase::setVolume):
85030        (WebCore::MediaPlayerPrivateGStreamerBase::volume):
85031        (WebCore::MediaPlayerPrivateGStreamerBase::notifyPlayerOfVolumeChange):
85032        (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
85033        (WebCore::MediaPlayerPrivateGStreamerBase::networkState):
85034        (WebCore::MediaPlayerPrivateGStreamerBase::readyState):
85035        (WebCore::MediaPlayerPrivateGStreamerBase::sizeChanged):
85036        (WebCore::MediaPlayerPrivateGStreamerBase::setMuted):
85037        (WebCore::MediaPlayerPrivateGStreamerBase::muted):
85038        (WebCore::MediaPlayerPrivateGStreamerBase::notifyPlayerOfMute):
85039        (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
85040        (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
85041        (WebCore::MediaPlayerPrivateGStreamerBase::setSize):
85042        (WebCore::MediaPlayerPrivateGStreamerBase::paint):
85043        (WebCore::MediaPlayerPrivateGStreamerBase::enterFullscreen):
85044        (WebCore::MediaPlayerPrivateGStreamerBase::exitFullscreen):
85045        (WebCore::MediaPlayerPrivateGStreamerBase::supportsFullscreen):
85046        (WebCore::MediaPlayerPrivateGStreamerBase::platformMedia):
85047        (WebCore::MediaPlayerPrivateGStreamerBase::movieLoadType):
85048        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
85049        (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
85050        (WebCore::MediaPlayerPrivateGStreamerBase::decodedFrameCount):
85051        (WebCore::MediaPlayerPrivateGStreamerBase::droppedFrameCount):
85052        (WebCore::MediaPlayerPrivateGStreamerBase::audioDecodedByteCount):
85053        (WebCore::MediaPlayerPrivateGStreamerBase::videoDecodedByteCount):
85054        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Added.
85055        (WebCore):
85056        (MediaPlayerPrivateGStreamerBase):
85057        (WebCore::MediaPlayerPrivateGStreamerBase::supportsMuting):
85058        (WebCore::MediaPlayerPrivateGStreamerBase::setVisible):
85059        (WebCore::MediaPlayerPrivateGStreamerBase::hasSingleSecurityOrigin):
85060        (WebCore::MediaPlayerPrivateGStreamerBase::maxTimeLoaded):
85061        (WebCore::MediaPlayerPrivateGStreamerBase::canEnterFullscreen):
85062        (WebCore::MediaPlayerPrivateGStreamerBase::mediaPlayer):
85063        (WebCore::MediaPlayerPrivateGStreamerBase::audioSink):
85064        * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:
85065        (WebCore::FullscreenVideoControllerGtk::FullscreenVideoControllerGtk):
85066        * platform/graphics/gtk/FullscreenVideoControllerGtk.h:
85067        (FullscreenVideoControllerGtk):
85068
850692013-02-06  Tony Gentilcore  <tonyg@chromium.org>
85070
85071        Call XSSAuditor's didBlockScript() for the threaded HTML parser
85072        https://bugs.webkit.org/show_bug.cgi?id=108726
85073
85074        Reviewed by Adam Barth.
85075
85076        This patch causes us to call didBlockScript() on the main thread if the CompactHTML token has XSSInfo.
85077        To do so, we:
85078        1. Rename DidBlockScriptRequest to XSSInfo.
85079        2. Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
85080        3. Add an isSafeToSendToAnotherThread() method to String and KURL.
85081
85082        We don't yet populate didBlockScriptRequest on the background thread, but this should just work once we do.
85083
85084        No new tests because no new functionality.
85085
85086        * html/parser/BackgroundHTMLParser.cpp:
85087        (WebCore::BackgroundHTMLParser::pumpTokenizer): Update comment for rename.
85088        * html/parser/CompactHTMLToken.cpp:
85089        (SameSizeAsCompactHTMLToken):
85090        (WebCore::CompactHTMLToken::CompactHTMLToken): Add a copy constructor used by Vector.
85091        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread): Include new m_xssInfo field in safety check.
85092        (WebCore):
85093        (WebCore::CompactHTMLToken::xssInfo): Added.
85094        (WebCore::CompactHTMLToken::setXSSInfo): Added.
85095        * html/parser/CompactHTMLToken.h: Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
85096        (WebCore):
85097        (CompactHTMLToken):
85098        (WTF): Add VectorTraits necessary for copying Vector fields objects that contain an OwnPtr.
85099        * html/parser/HTMLDocumentParser.cpp:
85100        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser): Add new didBlockScript() call.
85101        (WebCore::HTMLDocumentParser::pumpTokenizer):
85102        * html/parser/XSSAuditor.cpp: Renaming.
85103        (WebCore::XSSAuditor::filterToken):
85104        * html/parser/XSSAuditor.h: Renaming.
85105        (WebCore):
85106        (XSSAuditor):
85107        * html/parser/XSSAuditorDelegate.cpp:
85108        (WebCore::XSSInfo::isSafeToSendToAnotherThread):
85109        (WebCore):
85110        (WebCore::XSSAuditorDelegate::didBlockScript):
85111        * html/parser/XSSAuditorDelegate.h:
85112        (WebCore::XSSInfo::create):
85113        (XSSInfo):
85114        (WebCore::XSSInfo::XSSInfo):
85115        (XSSAuditorDelegate):
85116        * platform/KURL.cpp:
85117        (WebCore::KURL::isSafeToSendToAnotherThread): Added.
85118        (WebCore):
85119        * platform/KURL.h:
85120        (KURL):
85121        * platform/KURLGoogle.cpp:
85122        (WebCore):
85123        (WebCore::KURLGooglePrivate::isSafeToSendToAnotherThread): Added.
85124        * platform/KURLGooglePrivate.h:
85125        (KURLGooglePrivate):
85126        * platform/KURLWTFURLImpl.h:
85127        (WebCore::KURLWTFURLImpl::isSafeToSendToAnotherThread): Added.
85128
851292013-02-06  Dean Jackson  <dino@apple.com>
85130
85131        Minor updates to captions menu UI
85132        https://bugs.webkit.org/show_bug.cgi?id=109005
85133
85134        Reviewed by Eric Carlson.
85135
85136        Now that we only have a single section in the captions menu, remove the
85137        unnecessary wrapper element. Also update the UI for Mac so that the menu
85138        grows in size dynamically, and change the text we display for a caption
85139        that has neither label or language identifiers.
85140
85141        Covered by existing tests.
85142
85143        * English.lproj/Localizable.strings: New string for an unknown caption label.
85144        * css/fullscreenQuickTime.css: New rules for the captions menu.
85145        (video:-webkit-full-screen::-webkit-media-controls-closed-captions-container):
85146        (video:-webkit-full-screen::-webkit-media-controls-closed-captions-track-list):
85147        * css/mediaControlsQuickTime.css: Ditto.
85148        (video::-webkit-media-controls-closed-captions-container):
85149        (video::-webkit-media-controls-closed-captions-track-list):
85150        * html/shadow/MediaControlElements.cpp:
85151        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
85152            Remove the <section> element container.
85153        * platform/LocalizedStrings.cpp:
85154        (WebCore::textTrackNoLabelText): New string for an unknown caption label.
85155
851562013-02-06  Vsevolod Vlasov  <vsevik@chromium.org>
85157
85158        Web Inspector: Remove isSnippet field from FileDescriptor and UISourceCode.
85159        https://bugs.webkit.org/show_bug.cgi?id=109045
85160        
85161        Reviewed by Pavel Feldman.
85162
85163        Snippets are now distinguished based on uiSourceCode project.
85164
85165        * inspector/front-end/JavaScriptSourceFrame.js:
85166        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
85167        * inspector/front-end/NavigatorView.js:
85168        * inspector/front-end/ScriptSnippetModel.js:
85169        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
85170        * inspector/front-end/ScriptsNavigator.js:
85171        (WebInspector.ScriptsNavigator.prototype._navigatorViewForUISourceCode):
85172        (WebInspector.ScriptsNavigator.prototype.addUISourceCode):
85173        (WebInspector.ScriptsNavigator.prototype.removeUISourceCode):
85174        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
85175        (WebInspector.ScriptsNavigator.prototype.rename):
85176        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
85177        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
85178        * inspector/front-end/ScriptsPanel.js:
85179        (WebInspector.ScriptsPanel.prototype._showFile):
85180        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
85181        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
85182        * inspector/front-end/SimpleWorkspaceProvider.js:
85183        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
85184        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
85185        * inspector/front-end/Workspace.js:
85186        (WebInspector.FileDescriptor):
85187        (WebInspector.Project.prototype._fileAdded):
85188
851892013-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>
85190
85191        Unreviewed, rolling out r141983.
85192        http://trac.webkit.org/changeset/141983
85193        https://bugs.webkit.org/show_bug.cgi?id=109055
85194
85195        lots of new crashes in handlescope (Requested by gavinp on
85196        #webkit).
85197
85198        * bindings/v8/DOMDataStore.h:
85199        (WebCore::DOMDataStore::setWrapperInObject):
85200        * bindings/v8/DOMWrapperWorld.h:
85201        (DOMWrapperWorld):
85202        (WebCore::DOMWrapperWorld::isolated):
85203        * bindings/v8/V8Binding.h:
85204        (WebCore):
85205        (WebCore::worldForEnteredContextIfIsolated):
85206        * bindings/v8/V8DOMWindowShell.cpp:
85207        (WebCore::V8DOMWindowShell::initializeIfNeeded):
85208        * bindings/v8/V8GCController.cpp:
85209        (WebCore::WrapperVisitor::WrapperVisitor):
85210        (WebCore):
85211        (WebCore::gcTree):
85212        (WebCore::V8GCController::didCreateWrapperForNode):
85213        (WebCore::V8GCController::gcPrologue):
85214        (WebCore::V8GCController::minorGCPrologue):
85215        (WebCore::V8GCController::majorGCPrologue):
85216        * bindings/v8/V8GCController.h:
85217        (V8GCController):
85218
852192013-02-06  Andreas Kling  <akling@apple.com>
85220
85221        Optimize GlyphPage for case where all glyphs are available in the same font.
85222        <http://webkit.org/b/108835>
85223        <rdar://problem/13157042>
85224
85225        Reviewed by Antti Koivisto.
85226
85227        Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
85228        the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
85229
85230        If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
85231        is allocated transparently.
85232
85233        4.98 MB progression on Membuster3.
85234
85235        * platform/graphics/GlyphPageTreeNode.cpp:
85236        (WebCore::GlyphPageTreeNode::initializePage):
85237        * platform/graphics/GlyphPage.h:
85238        (WebCore::GlyphPage::createUninitialized):
85239        (WebCore::GlyphPage::createZeroedSystemFallbackPage):
85240        (WebCore::GlyphPage::createCopiedSystemFallbackPage):
85241
85242            There are now three ways of constructing a GlyphPage, two of them are only used for
85243            creating system fallback pages.
85244
85245        (WebCore::GlyphPage::setGlyphDataForIndex):
85246
85247            Hold off creating a SimpleFontData* array until we're sure there are two different
85248            SimpleFontData* backing the glyphs in this page.
85249            We don't store font data for glyph #0, instead we let the getters always return null for it.
85250
85251        (WebCore::GlyphPage::~GlyphPage):
85252
85253            Free the SimpleFontData* array if needed.
85254
85255        (WebCore::GlyphPage::glyphDataForCharacter):
85256        (WebCore::GlyphPage::glyphDataForIndex):
85257        (WebCore::GlyphPage::fontDataForCharacter):
85258
85259            The font data for glyph #0 is always a null pointer now.
85260
85261        (WebCore::GlyphPage::clearForFontData):
85262
85263            Updated for new storage format.
85264
85265        * rendering/svg/SVGTextRunRenderingContext.cpp:
85266        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
85267
85268            Fix bug where non-zero glyph was temporarily associated with null font data,
85269            which triggered the new assertion in setGlyphDataForIndex().
85270
852712013-02-06  Pavel Feldman  <pfeldman@chromium.org>
85272
85273        Follow up to r141979: do not consume Home/End.
85274        Not reviewed.
85275
85276        * inspector/front-end/FilteredItemSelectionDialog.js:
85277        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
85278
852792013-02-06  Vsevolod Vlasov  <vsevik@chromium.org>
85280
85281        Web Inspector: Remove show script folders setting
85282        https://bugs.webkit.org/show_bug.cgi?id=108940
85283
85284        Reviewed by Pavel Feldman.
85285
85286        Removed showScriptFolders setting, the sources are never shown as a flat list in navigator anymore.
85287
85288        * inspector/front-end/NavigatorView.js:
85289        (WebInspector.NavigatorView):
85290        (WebInspector.NavigatorView.prototype._getOrCreateFolderTreeElement):
85291        * inspector/front-end/Settings.js:
85292        * inspector/front-end/SettingsScreen.js:
85293        (WebInspector.GenericSettingsTab):
85294
852952013-02-06  Andrey Lushnikov  <lushnikov@chromium.org>
85296
85297        Web Inspector: update javascriptsourcetokenizer to produce "whitespaces" token
85298        https://bugs.webkit.org/show_bug.cgi?id=108945
85299
85300        Reviewed by Pavel Feldman.
85301
85302        Update re2c grammar for SourceJavaScriptTokenizer to produce
85303        "whitespace" token which holds consequtive whitespaces in it.
85304
85305        Updated existing tests expectations.
85306
85307        * inspector/front-end/DOMSyntaxHighlighter.js:
85308        (WebInspector.DOMSyntaxHighlighter.prototype.createSpan): Do not strip spaces from tokens with class "whitespaces".
85309        * inspector/front-end/SourceJavaScriptTokenizer.js: Regenerated.
85310        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
85311        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
85312
853132013-02-06  Andrey Lushnikov  <lushnikov@chromium.org>
85314
85315        Web Inspector: refactor registerShortcuts method of DTE
85316        https://bugs.webkit.org/show_bug.cgi?id=109031
85317
85318        Reviewed by Pavel Feldman.
85319
85320        Implement _registerShortcuts method in TextEditorMainPanel which will
85321        bind its private methods to the different key combinations. Refactor
85322        method handlers handleUndoRedo, handleTabKeyPress and handleEnterKey
85323        from public to private.
85324
85325        No new tests: no change in behaviour.
85326
85327        * inspector/front-end/DefaultTextEditor.js:
85328        (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Remove bindings of TextEditorMainPanel methods
85329        (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
85330        (WebInspector.TextEditorMainPanel):
85331        (WebInspector.TextEditorMainPanel.prototype._registerShortcuts): Added.
85332        (WebInspector.TextEditorMainPanel.prototype._handleUndoRedo):
85333        (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
85334
853352013-02-06  Mike West  <mkwst@chromium.org>
85336
85337        Add an ENABLE_NOSNIFF feature flag.
85338        https://bugs.webkit.org/show_bug.cgi?id=109029
85339
85340        Reviewed by Jochen Eisinger.
85341
85342        This new flag will control the behavior of 'X-Content-Type-Options: nosniff'
85343        when processing script and other resource types.
85344
85345        * Configurations/FeatureDefines.xcconfig:
85346
853472013-02-06  Tommy Widenflycht  <tommyw@google.com>
85348
85349        MediaStream API: Implement DTMF support in RTCPeerConnection
85350        https://bugs.webkit.org/show_bug.cgi?id=106782
85351
85352        Reviewed by Adam Barth.
85353
85354        The WebRTC specification have added support for DTMF:
85355        http://dev.w3.org/2011/webrtc/editor/webrtc.html#peer-to-peer-dtmf
85356
85357        Implementation wise this is implemented using the same pattern as RTCDataChannel;
85358        where a RTCDTMFSenderHandler is created by the UA through a new method on
85359        RTCPeerConnectionHandler.
85360
85361        Test: fast/mediastream/RTCPeerConnection-dtmf.html
85362
85363        * CMakeLists.txt:
85364        * GNUmakefile.list.am:
85365        * Modules/mediastream/RTCDTMFSender.cpp: Added.
85366        (WebCore):
85367        (WebCore::RTCDTMFSender::create):
85368        (WebCore::RTCDTMFSender::RTCDTMFSender):
85369        (WebCore::RTCDTMFSender::~RTCDTMFSender):
85370        (WebCore::RTCDTMFSender::canInsertDTMF):
85371        (WebCore::RTCDTMFSender::track):
85372        (WebCore::RTCDTMFSender::toneBuffer):
85373        (WebCore::RTCDTMFSender::insertDTMF):
85374        (WebCore::RTCDTMFSender::didPlayTone):
85375        (WebCore::RTCDTMFSender::interfaceName):
85376        (WebCore::RTCDTMFSender::scriptExecutionContext):
85377        (WebCore::RTCDTMFSender::stop):
85378        (WebCore::RTCDTMFSender::eventTargetData):
85379        (WebCore::RTCDTMFSender::ensureEventTargetData):
85380        (WebCore::RTCDTMFSender::scheduleDispatchEvent):
85381        (WebCore::RTCDTMFSender::scheduledEventTimerFired):
85382        * Modules/mediastream/RTCDTMFSender.h: Added.
85383        (WebCore):
85384        (RTCDTMFSender):
85385        (WebCore::RTCDTMFSender::duration):
85386        (WebCore::RTCDTMFSender::interToneGap):
85387        * Modules/mediastream/RTCDTMFSender.idl: Added.
85388        * Modules/mediastream/RTCDTMFToneChangeEvent.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
85389        (WebCore):
85390        (WebCore::RTCDTMFToneChangeEvent::create):
85391        (WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):
85392        (WebCore::RTCDTMFToneChangeEvent::~RTCDTMFToneChangeEvent):
85393        (WebCore::RTCDTMFToneChangeEvent::tone):
85394        (WebCore::RTCDTMFToneChangeEvent::interfaceName):
85395        * Modules/mediastream/RTCDTMFToneChangeEvent.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
85396        (WebCore):
85397        (RTCDTMFToneChangeEventInit):
85398        (RTCDTMFToneChangeEvent):
85399        * Modules/mediastream/RTCDTMFToneChangeEvent.idl: Added.
85400        * Modules/mediastream/RTCPeerConnection.cpp:
85401        (WebCore::RTCPeerConnection::createDataChannel):
85402        (WebCore):
85403        (WebCore::RTCPeerConnection::getStreamByTrackId):
85404        (WebCore::RTCPeerConnection::createDTMFSender):
85405        * Modules/mediastream/RTCPeerConnection.h:
85406        (WebCore):
85407        (RTCPeerConnection):
85408        * Modules/mediastream/RTCPeerConnection.idl:
85409        * WebCore.gypi:
85410        * dom/EventNames.h:
85411        (WebCore):
85412        * dom/EventNames.in:
85413        * dom/EventTargetFactory.in:
85414        * platform/chromium/support/WebMediaStreamTrack.cpp:
85415        (WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
85416        (WebKit):
85417        * platform/mediastream/RTCDTMFSenderHandler.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
85418        (WebCore):
85419        (RTCDTMFSenderHandler):
85420        (WebCore::RTCDTMFSenderHandler::~RTCDTMFSenderHandler):
85421        * platform/mediastream/RTCDTMFSenderHandlerClient.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
85422        (WebCore):
85423        (RTCDTMFSenderHandlerClient):
85424        (WebCore::RTCDTMFSenderHandlerClient::~RTCDTMFSenderHandlerClient):
85425        * platform/mediastream/RTCPeerConnectionHandler.h:
85426        (WebCore):
85427        (RTCPeerConnectionHandler):
85428        * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.cpp: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
85429        (WebCore):
85430        (WebCore::RTCDTMFSenderHandlerChromium::create):
85431        (WebCore::RTCDTMFSenderHandlerChromium::RTCDTMFSenderHandlerChromium):
85432        (WebCore::RTCDTMFSenderHandlerChromium::~RTCDTMFSenderHandlerChromium):
85433        (WebCore::RTCDTMFSenderHandlerChromium::setClient):
85434        (WebCore::RTCDTMFSenderHandlerChromium::currentToneBuffer):
85435        (WebCore::RTCDTMFSenderHandlerChromium::canInsertDTMF):
85436        (WebCore::RTCDTMFSenderHandlerChromium::insertDTMF):
85437        (WebCore::RTCDTMFSenderHandlerChromium::didPlayTone):
85438        * platform/mediastream/chromium/RTCDTMFSenderHandlerChromium.h: Copied from Source/Platform/chromium/public/WebMediaStreamTrack.h.
85439        (WebCore):
85440        (RTCDTMFSenderHandlerChromium):
85441        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
85442        (WebCore::RTCPeerConnectionHandlerChromium::createDTMFSender):
85443        (WebCore):
85444        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
85445        (RTCPeerConnectionHandlerChromium):
85446
854472013-02-04  Kentaro Hara  <haraken@chromium.org>
85448
85449        [V8] Remove V8GCController::m_edenNodes and make minor DOM GC more precise
85450        https://bugs.webkit.org/show_bug.cgi?id=108579
85451
85452        Reviewed by Adam Barth.
85453
85454        Currently V8GCController::m_edenNodes stores a list of nodes whose
85455        wrappers have been created since the latest GC. The reason why we
85456        needed m_edenNodes is that there was no way to know a list of wrappers
85457        in the new space of V8. By using m_edenNodes, we had been approximating
85458        'wrappers in the new space' by 'wrappers that have been created since
85459        the latest GC'.
85460
85461        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
85462        can know a list of wrappers in the new space. By using the API, we can
85463        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
85464        need to keep m_edenNodes and that (2) it enables more precise minor
85465        DOM GC (Remember that m_edenNodes was just an approximation).
85466
85467        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
85468        The benchmark runs 300 iterations, each of which creates 100000 elements.
85469        The benchmark measures average, min, median, max and stdev of execution times
85470        of the 300 iterations. This will tell us the worst-case overhead of this change.
85471
85472        Before:
85473          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
85474
85475        After:
85476          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
85477
85478        As shown above, I couldn't observe any performance regression.
85479
85480        No tests. No change in behavior.
85481
85482        * bindings/v8/DOMDataStore.h:
85483        (WebCore::DOMDataStore::setWrapperInObject):
85484        * bindings/v8/DOMWrapperWorld.h:
85485        (DOMWrapperWorld):
85486        (WebCore::DOMWrapperWorld::getWorldWithoutContextCheck):
85487        * bindings/v8/V8Binding.h:
85488        (WebCore):
85489        (WebCore::worldForEnteredContextIfIsolated):
85490        (WebCore::worldForEnteredContextWithoutContextCheck):
85491        * bindings/v8/V8DOMWindowShell.cpp:
85492        (WebCore::V8DOMWindowShell::initializeIfNeeded):
85493        * bindings/v8/V8GCController.cpp:
85494        (WebCore::gcTree):
85495        (WebCore):
85496        (MinorGCWrapperVisitor):
85497        (WebCore::MinorGCWrapperVisitor::MinorGCWrapperVisitor):
85498        (WebCore::MinorGCWrapperVisitor::notifyFinished):
85499        (WebCore::MajorGCWrapperVisitor::MajorGCWrapperVisitor):
85500        (WebCore::V8GCController::gcPrologue):
85501        (WebCore::V8GCController::minorGCPrologue):
85502        (WebCore::V8GCController::majorGCPrologue):
85503        * bindings/v8/V8GCController.h:
85504        (V8GCController):
85505
855062013-02-06  Mihai Maerean  <mmaerean@adobe.com>
85507
85508        [CSSRegions] Assertion failure in Node::detach (!renderer || renderer->inRenderFlowThread())
85509        https://bugs.webkit.org/show_bug.cgi?id=104517
85510
85511        Reviewed by Julien Chaffraix.
85512
85513        The RenderObject::inRenderFlowThread bit could have become disconnected from the fact that the RenderObject
85514        has (or not) an enclosing RenderFlowThread.
85515        The cause of this was that, when setting or removing the parent of a RenderObject, the inRenderFlowThread flags
85516        wasn't being set/reset for the children too.
85517        This is now fixed by calling the new setInRenderFlowThreadIncludingDescendants.
85518
85519        The ASSERT was hit for anonymous blocks when detaching the document.
85520
85521        Test: fast/regions/detaching-regions-with-anonymous-blocks.html
85522
85523        * rendering/RenderObject.cpp:
85524        (WebCore::RenderObject::setInRenderFlowThreadRecursive):
85525        (WebCore):
85526        * rendering/RenderObject.h:
85527        (WebCore::RenderObject::setParent):
85528        (RenderObject):
85529
855302013-02-06  Marja Hölttä  <marja@chromium.org>
85531
85532        Take referrer policy into account when clearing the referrer header
85533        https://bugs.webkit.org/show_bug.cgi?id=86000
85534
85535        Reviewed by Alexey Proskuryakov.
85536
85537        The referrer should only be cleared when doing a https -> http redirect,
85538        if the policy is "default". Otherwise the referrer should be left intact.
85539
85540        In order to do that, added a function for checking the policy in
85541        NetworkingContext, and stored the NetworkingContext in ResourceHandle
85542        (like some ports already did).
85543
85544        No new tests (unskipped old tests).
85545
85546        * loader/FrameNetworkingContext.h:
85547        (WebCore::FrameNetworkingContext::shouldClearReferrerOnHTTPSToHTTPRedirect):
85548        (FrameNetworkingContext):
85549        * platform/network/BlobResourceHandle.cpp:
85550        (WebCore::BlobResourceHandle::BlobResourceHandle):
85551        * platform/network/NetworkingContext.h:
85552        (NetworkingContext):
85553        * platform/network/ResourceHandle.cpp:
85554        (WebCore::ResourceHandle::ResourceHandle):
85555        (WebCore::ResourceHandle::create):
85556        (WebCore::ResourceHandle::context):
85557        (WebCore):
85558        * platform/network/ResourceHandle.h:
85559        (ResourceHandle):
85560        * platform/network/ResourceHandleInternal.h:
85561        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
85562        (ResourceHandleInternal):
85563        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
85564        (WebCore::ResourceHandle::start):
85565        (WebCore::ResourceHandle::loadResourceSynchronously):
85566        * platform/network/cf/ResourceHandleCFNet.cpp:
85567        (WebCore::willSendRequest):
85568        (WebCore::ResourceHandle::start):
85569        (WebCore::ResourceHandle::loadResourceSynchronously):
85570        * platform/network/chromium/ResourceHandle.cpp:
85571        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
85572        (WebCore::ResourceHandle::ResourceHandle):
85573        (WebCore::ResourceHandle::create):
85574        (WebCore::ResourceHandle::context):
85575        (WebCore):
85576        (WebCore::ResourceHandle::start):
85577        * platform/network/chromium/ResourceHandleInternal.h:
85578        (WebCore):
85579        (ResourceHandleInternal):
85580        (WebCore::ResourceHandleInternal::context):
85581        * platform/network/curl/ResourceHandleCurl.cpp:
85582        (WebCore::ResourceHandle::start):
85583        (WebCore::ResourceHandle::loadResourceSynchronously):
85584        * platform/network/mac/ResourceHandleMac.mm:
85585        (WebCore::ResourceHandle::start):
85586        (WebCore::ResourceHandle::loadResourceSynchronously):
85587        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
85588        * platform/network/qt/QNetworkReplyHandler.cpp:
85589        (WebCore::QNetworkReplyHandler::redirect):
85590        * platform/network/qt/ResourceHandleQt.cpp:
85591        (WebCore::ResourceHandle::start):
85592        (WebCore::ResourceHandle::loadResourceSynchronously):
85593        * platform/network/soup/ResourceHandleSoup.cpp:
85594        (WebCore::doRedirect):
85595        (WebCore::ResourceHandle::start):
85596        * platform/network/win/ResourceHandleWin.cpp:
85597        (WebCore::ResourceHandle::start):
85598        (WebCore::ResourceHandle::loadResourceSynchronously):
85599
856002013-02-06  Pavel Feldman  <pfeldman@chromium.org>
85601
85602        Web Inspector: file selector list jumps as I type or move Up/Down
85603        https://bugs.webkit.org/show_bug.cgi?id=108933
85604
85605        Reviewed by Vsevolod Vlasov.
85606
85607        Missing return was scheduling extra updates.
85608
85609        * inspector/front-end/FilteredItemSelectionDialog.js:
85610        (WebInspector.FilteredItemSelectionDialog):
85611        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
85612        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
85613        (WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):
85614
856152013-02-06  Kentaro Hara  <haraken@chromium.org>
85616
85617        [V8] Pass an Isolate to remaining GetTemplate()s
85618        https://bugs.webkit.org/show_bug.cgi?id=109001
85619
85620        Reviewed by Adam Barth.
85621
85622        No tests. No change in behavior.
85623
85624        * bindings/v8/custom/V8DOMWindowCustom.cpp:
85625        (WebCore::V8DOMWindow::namedSecurityCheck): Because this method is a callback from V8,
85626        we cannot change its signature to receive an Isolate.
85627        (WebCore::V8DOMWindow::indexedSecurityCheck): Ditto.
85628
85629        * bindings/scripts/CodeGeneratorV8.pm:
85630        (GenerateHeader):
85631        (GenerateToV8Converters):
85632        * bindings/scripts/test/V8/V8Float64Array.cpp:
85633        (WebCore::V8Float64Array::createWrapper):
85634        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
85635        (WebCore::V8TestActiveDOMObject::createWrapper):
85636        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
85637        (WebCore::V8TestCustomNamedGetter::createWrapper):
85638        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
85639        (WebCore::V8TestEventConstructor::createWrapper):
85640        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
85641        (WebCore::V8TestEventTarget::createWrapper):
85642        * bindings/scripts/test/V8/V8TestException.cpp:
85643        (WebCore::V8TestException::createWrapper):
85644        * bindings/scripts/test/V8/V8TestInterface.cpp:
85645        (WebCore::V8TestInterface::createWrapper):
85646        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
85647        (WebCore::V8TestMediaQueryListListener::createWrapper):
85648        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
85649        (WebCore::V8TestNamedConstructor::createWrapper):
85650        * bindings/scripts/test/V8/V8TestNode.cpp:
85651        (WebCore::V8TestNode::createWrapper):
85652        * bindings/scripts/test/V8/V8TestObj.cpp:
85653        (WebCore::V8TestObj::createWrapper):
85654        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
85655        (WebCore::V8TestOverloadedConstructors::createWrapper):
85656        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
85657        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
85658        * bindings/v8/V8DOMWrapper.cpp:
85659        (WebCore::V8DOMWrapper::createWrapper):
85660        * bindings/v8/V8DOMWrapper.h:
85661        (V8DOMWrapper):
85662        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
85663        (WebCore::V8HTMLDocument::wrapInShadowObject):
85664
856652013-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>
85666
85667        Unreviewed, rolling out r141961.
85668        http://trac.webkit.org/changeset/141961
85669        https://bugs.webkit.org/show_bug.cgi?id=109019
85670
85671        assertion failures on svn tests such as fonts-glyph-04-t.svg
85672        (Requested by falken on #webkit).
85673
85674        * platform/graphics/GlyphPage.h:
85675        (WebCore::GlyphPage::create):
85676        (WebCore::GlyphPage::glyphDataForCharacter):
85677        (WebCore::GlyphPage::glyphDataForIndex):
85678        (WebCore::GlyphPage::fontDataForCharacter):
85679        (WebCore::GlyphPage::setGlyphDataForIndex):
85680        (GlyphPage):
85681        (WebCore::GlyphPage::copyFrom):
85682        (WebCore::GlyphPage::clear):
85683        (WebCore::GlyphPage::clearForFontData):
85684        (WebCore::GlyphPage::GlyphPage):
85685        * platform/graphics/GlyphPageTreeNode.cpp:
85686        (WebCore::GlyphPageTreeNode::initializePage):
85687
856882013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>
85689
85690        Unreviewed, rolling out r141964.
85691        http://trac.webkit.org/changeset/141964
85692        https://bugs.webkit.org/show_bug.cgi?id=109014
85693
85694        caused performance regression (Requested by hayato on
85695        #webkit).
85696
85697        * CMakeLists.txt:
85698        * GNUmakefile.list.am:
85699        * Target.pri:
85700        * WebCore.gypi:
85701        * WebCore.xcodeproj/project.pbxproj:
85702        * css/CSSAllInOne.cpp:
85703        * css/DocumentRuleSets.cpp: Removed.
85704        * css/DocumentRuleSets.h: Removed.
85705        * css/StyleResolver.cpp:
85706        (WebCore::StyleResolver::StyleResolver):
85707        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
85708        (WebCore):
85709        (WebCore::makeRuleSet):
85710        (WebCore::StyleResolver::resetAuthorStyle):
85711        (WebCore::StyleResolver::appendAuthorStyleSheets):
85712        (WebCore::StyleResolver::matchAuthorRules):
85713        (WebCore::StyleResolver::matchUserRules):
85714        (WebCore::StyleResolver::classNamesAffectedByRules):
85715        (WebCore::StyleResolver::locateCousinList):
85716        (WebCore::StyleResolver::canShareStyleWithElement):
85717        (WebCore::StyleResolver::locateSharedStyle):
85718        (WebCore::StyleResolver::styleForElement):
85719        (WebCore::StyleResolver::styleForPage):
85720        (WebCore::StyleResolver::checkRegionStyle):
85721        (WebCore::StyleResolver::applyProperty):
85722        (WebCore::StyleResolver::collectFeatures):
85723        (WebCore::StyleResolver::reportMemoryUsage):
85724        * css/StyleResolver.h:
85725        (StyleResolver):
85726        (WebCore::StyleResolver::usesSiblingRules):
85727        (WebCore::StyleResolver::usesFirstLineRules):
85728        (WebCore::StyleResolver::usesBeforeAfterRules):
85729        (WebCore::StyleResolver::hasSelectorForAttribute):
85730        (WebCore::StyleResolver::hasSelectorForClass):
85731        (WebCore::StyleResolver::hasSelectorForId):
85732        * dom/DocumentStyleSheetCollection.cpp:
85733        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
85734
857352013-02-05  Kentaro Hara  <haraken@chromium.org>
85736
85737        Add #if USE(V8) to Node::V8CollectableDuringMinorGCFlag
85738        https://bugs.webkit.org/show_bug.cgi?id=109009
85739
85740        Reviewed by Kent Tamura.
85741
85742        Node flags should be saved. V8CollectableDuringMinorGCFlag is used by V8 only.
85743
85744        * dom/Node.h:
85745        (Node):
85746
857472013-02-05  Vsevolod Vlasov  <vsevik@chromium.org>
85748
85749        Web Inspector: Add ending slashes automatically to file mappings.
85750        https://bugs.webkit.org/show_bug.cgi?id=108936
85751
85752        Reviewed by Pavel Feldman.
85753
85754        * inspector/front-end/SettingsScreen.js:
85755        (WebInspector.WorkspaceSettingsTab.prototype._addFileMappingClicked):
85756
857572013-02-05  Eric Carlson  <eric.carlson@apple.com>
85758
85759        More updates to Caption user preferences
85760        https://bugs.webkit.org/show_bug.cgi?id=108997
85761
85762        Reviewed by Dean Jackson.
85763
85764        * html/HTMLMediaElement.cpp:
85765        (WebCore::HTMLMediaElement::captionPreferencesChanged): Give the media controls a chance
85766            to update for a preferences change.
85767        * html/shadow/MediaControlElements.cpp:
85768        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Add optional "force update" 
85769            param to force font size recalc even when the video size hasn't changed.
85770        * html/shadow/MediaControlElements.h:
85771
85772        * html/shadow/MediaControls.cpp:
85773        (WebCore::MediaControls::textTrackPreferencesChanged): New, force a font size recalc.
85774        * html/shadow/MediaControls.h:
85775
85776        * html/track/TextTrackCueGeneric.cpp:
85777        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties): Don't set width/size of cues
85778            that use default positioning. Use "start" as the default alignment.
85779
85780        * page/CaptionUserPreferencesMac.mm:
85781        (WebCore::CaptionUserPreferencesMac::captionsWindowCSS): Set padding when the window is visible
85782            so it shows around the cue background.
85783        (WebCore::CaptionUserPreferencesMac::captionsBackgroundCSS): Set padding to 0 when the background
85784            is visible.
85785        (WebCore::CaptionUserPreferencesMac::windowRoundedCornerRadiusCSS): Add "px" to the border radius
85786            so it actually works.
85787        * rendering/RenderTextTrackCue.cpp:
85788        (WebCore::RenderTextTrackCue::layout): Special case generic cues with default style.
85789        (WebCore::RenderTextTrackCue::repositionGenericCue):
85790        * rendering/RenderTextTrackCue.h:
85791
857922013-02-05  Hayato Ito  <hayato@chromium.org>
85793
85794        Split each RuleSet and feature out from StyleResolver into its own class.
85795        https://bugs.webkit.org/show_bug.cgi?id=107777
85796
85797        Reviewed by Dimitri Glazkov.
85798
85799        Splitting each RuleSet and feature out from StyleResover into its onw class, DocumentRuleSets,
85800        to manage them separately.
85801
85802        This is one of the attempts to try to resolve meta bug (bug 89879)
85803        to lose StyleResolver's weight.  We need further action to factor
85804        StyleResolver to separate it into some classes cleanly.
85805        See also https://bugs.webkit.org/show_bug.cgi?id=108890. A following patch will address that.
85806
85807        No tests. No change in behavior.
85808
85809        * CMakeLists.txt:
85810        * GNUmakefile.list.am:
85811        * Target.pri:
85812        * WebCore.gypi:
85813        * WebCore.xcodeproj/project.pbxproj:
85814        * css/CSSAllInOne.cpp:
85815        * css/DocumentRuleSets.cpp: Added.
85816        (WebCore):
85817        (WebCore::DocumentRuleSets::DocumentRuleSets):
85818        (WebCore::DocumentRuleSets::~DocumentRuleSets):
85819        (WebCore::DocumentRuleSets::initUserStyle): New helper to initialize each RuleSets.
85820        (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets): Factored out from StyleResolver.
85821        (WebCore::makeRuleSet): Ditto.
85822        (WebCore::DocumentRuleSets::resetAuthorStyle): Ditto.
85823        (WebCore::DocumentRuleSets::appendAuthorStyleSheets): Ditto.
85824        (WebCore::DocumentRuleSets::collectFeatures): Ditto.
85825        (WebCore::DocumentRuleSets::reportMemoryUsage): New methods to report memory usage. Factored out from StyleResolver.
85826        * css/DocumentRuleSets.h: Added.
85827        (WebCore):
85828        (DocumentRuleSets):
85829        (WebCore::DocumentRuleSets::authorStyle): Moved from StyleResolver.
85830        (WebCore::DocumentRuleSets::userStyle): Ditto.
85831        (WebCore::DocumentRuleSets::features): Ditto.
85832        (WebCore::DocumentRuleSets::sibling): Ditto.
85833        (WebCore::DocumentRuleSets::uncommonAttribute): Ditto.
85834        * css/StyleResolver.cpp:
85835        (WebCore::StyleResolver::StyleResolver):
85836        (WebCore::StyleResolver::appendAuthorStyleSheets): Now calls DocumentRuleSets::appendAuthorStyleSheets.
85837        (WebCore::StyleResolver::matchAuthorRules): Use m_ruleSets.
85838        (WebCore::StyleResolver::matchUserRules): Ditto.
85839        (WebCore::StyleResolver::classNamesAffectedByRules): Ditto.
85840        (WebCore::StyleResolver::locateCousinList): Ditto.
85841        (WebCore::StyleResolver::canShareStyleWithElement): Ditto.
85842        (WebCore::StyleResolver::locateSharedStyle): Ditto.
85843        (WebCore::StyleResolver::styleForPage): Ditto.
85844        (WebCore::StyleResolver::checkRegionStyle): Ditto.
85845        (WebCore::StyleResolver::applyProperty): Ditto.
85846        (WebCore::StyleResolver::reportMemoryUsage): Now calls DocumentRuleSets::reportMemoryUsage.
85847        * css/StyleResolver.h:
85848        (WebCore::StyleResolver::scopeResolver):
85849        (StyleResolver):
85850        (WebCore::StyleResolver::ruleSets): accessor r to DocumentRuleSets.
85851        (WebCore::StyleResolver::usesSiblingRules): Use m_ruleSets.
85852        (WebCore::StyleResolver::usesFirstLineRules): Ditto.
85853        (WebCore::StyleResolver::usesBeforeAfterRules): Ditto.
85854        (WebCore::StyleResolver::hasSelectorForAttribute): Ditto.
85855        (WebCore::StyleResolver::hasSelectorForClass): Ditto.
85856        (WebCore::StyleResolver::hasSelectorForId): Ditto.
85857        * dom/DocumentStyleSheetCollection.cpp:
85858        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
85859
858602013-02-05  Julien Chaffraix  <jchaffraix@webkit.org>
85861
85862        [CSS Grid Layout] Grid item's logical height is not properly recomputed after -webkit-grid-column / -webkit-grid-row changes
85863        https://bugs.webkit.org/show_bug.cgi?id=108975
85864
85865        Reviewed by Tony Chang.
85866
85867        Test: fast/css-grid-layout/implicit-position-dynamic-change.html
85868
85869        * rendering/RenderBox.cpp:
85870        (WebCore::RenderBox::clearContainingBlockOverrideSize):
85871        (WebCore::RenderBox::clearOverrideContainingBlockContentLogicalHeight):
85872        * rendering/RenderBox.h:
85873        Added clearOverrideContainingBlockContentLogicalHeight and updated clearContainingBlockOverrideSize
85874        to use it.
85875
85876        * rendering/RenderGrid.cpp:
85877        (WebCore::RenderGrid::minContentForChild):
85878        (WebCore::RenderGrid::maxContentForChild):
85879        Added missing clearContainingBlockOverrideSize to ensure we don't use a previous layout's override.
85880
858812013-02-05  Andreas Kling  <akling@apple.com>
85882
85883        Optimize GlyphPage for case where all glyphs are available in the same font.
85884        <http://webkit.org/b/108835>
85885        <rdar://problem/13157042>
85886
85887        Reviewed by Antti Koivisto.
85888
85889        Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
85890        the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
85891
85892        If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
85893        is allocated transparently.
85894
85895        4.98 MB progression on Membuster3.
85896
85897        * platform/graphics/GlyphPageTreeNode.cpp:
85898        (WebCore::GlyphPageTreeNode::initializePage):
85899        * platform/graphics/GlyphPage.h:
85900        (WebCore::GlyphPage::createUninitialized):
85901        (WebCore::GlyphPage::createZeroedSystemFallbackPage):
85902        (WebCore::GlyphPage::createCopiedSystemFallbackPage):
85903
85904            There are now three ways of constructing a GlyphPage, two of them are only used for
85905            creating system fallback pages.
85906
85907        (WebCore::GlyphPage::setGlyphDataForIndex):
85908
85909            Hold off creating a SimpleFontData* array until we're sure there are two different
85910            SimpleFontData* backing the glyphs in this page.
85911            We don't store font data for glyph #0, instead we let the getters always return null for it.
85912
85913        (WebCore::GlyphPage::~GlyphPage):
85914
85915            Free the SimpleFontData* array if needed.
85916
85917        (WebCore::GlyphPage::glyphDataForCharacter):
85918        (WebCore::GlyphPage::glyphDataForIndex):
85919        (WebCore::GlyphPage::fontDataForCharacter):
85920
85921            The font data for glyph #0 is always a null pointer now.
85922
85923        (WebCore::GlyphPage::clearForFontData):
85924
85925            Updated for new storage format.
85926
859272013-02-05  Kent Tamura  <tkent@chromium.org>
85928
85929        INPUT_MULTIPLE_FIELDS_UI: Read-only inputs should be focusable
85930        https://bugs.webkit.org/show_bug.cgi?id=108795
85931
85932        Reviewed by Kentaro Hara.
85933
85934        According to the standard [1], readonly form controls should be focusable.
85935
85936        - Sub-fields should be focusable if they are read-only. We should check
85937          isDisabled mainly.
85938        - All keyboard operations should not be handled if a field is disabled,
85939          and focus navigation keyboard operations should be handled even if a
85940          field is read-only.
85941
85942        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-readonly-attribute
85943
85944        No new tests. Update
85945        fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html
85946        for the new behavior.
85947
85948        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
85949        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable):
85950        Make <input> focusable even if it is read-only.
85951        * html/shadow/DateTimeEditElement.cpp:
85952        (WebCore::DateTimeEditElement::isFieldOwnerDisabled):
85953        Separate isFieldOwnerDisabledOrReadOnly into two.
85954        (WebCore::DateTimeEditElement::isFieldOwnerReadOnly): Ditto.
85955        (WebCore::DateTimeEditElement::updateUIState):
85956        We don't need to focus out if this is read-only.
85957        * html/shadow/DateTimeEditElement.h:
85958        (DateTimeEditElement): Separate isFieldOwnerDisabledOrReadOnly into two.
85959        * html/shadow/DateTimeFieldElement.cpp:
85960        (WebCore::DateTimeFieldElement::defaultEventHandler):
85961        Skip handleKeyboardEvent if the field is disabled or the owner input is
85962        disabled or read-only. handleKeyboardEvent handles editing key
85963        operations.
85964        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
85965        If this field is disabled or the owner input is disabled, all keyboard
85966        inputs are ignored.
85967        If this field is read-only, we handle only left and right arrows to
85968        change focus, and skip down/up/backspace/del keys.
85969        (WebCore::DateTimeFieldElement::isFieldOwnerDisabled):
85970        A helper function to check disable state of the owner input.
85971        (WebCore::DateTimeFieldElement::isFieldOwnerReadOnly):
85972        A helper function to check read-only state of the owner input.
85973        (WebCore::DateTimeFieldElement::isFocusable):
85974        This field should be focusable if it is read-only and not disabled.
85975        * html/shadow/DateTimeFieldElement.h:
85976        (FieldOwner): Separate isFieldOwnerDisabledOrReadOnly into two.
85977        (DateTimeFieldElement):
85978        Declare isFieldOwnerDisabled and isFieldOwnerReadOnly.
85979        * html/shadow/DateTimeNumericFieldElement.cpp:
85980        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
85981        Remove redundant isDisabled check. It is done in
85982        DateTimeFieldElement::defaultEventHandler.
85983
859842013-02-05  Eric Carlson  <eric.carlson@apple.com>
85985
85986        [Mac] Complete plumbing so captions menu can indicate track type
85987        https://bugs.webkit.org/show_bug.cgi?id=108994
85988
85989        Reviewed by Dean Jackson.
85990
85991        Plumb "isClosedCaptions" through to the Mac media engine.
85992
85993        Updated media/video-controls-captions-trackmenu-localized.html and results.
85994
85995        * html/track/InbandTextTrack.cpp:
85996        (WebCore::InbandTextTrack::isClosedCaptions): New, pass the call through to the private track.
85997        * html/track/InbandTextTrack.h:
85998        (InbandTextTrack):
85999        * html/track/TextTrack.cpp:
86000        (WebCore::TextTrack::TextTrack): Lose the member variable, this won't be accessed often enough
86001            to make it worth caching the value.
86002        * html/track/TextTrack.h:
86003        (WebCore::TextTrack::isClosedCaptions): Make virtual so derived classes can oveerride.
86004        * platform/graphics/InbandTextTrackPrivate.h:
86005        (WebCore::InbandTextTrackPrivate::isClosedCaptions): New.
86006        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
86007        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
86008        (WebCore::InbandTextTrackPrivateAVFObjC::isClosedCaptions): New.
86009
860102013-02-05  Mark Lam  <mark.lam@apple.com>
86011
86012        Change DatabaseTask and DatabaseThread to work with DatabaseBackendAsync
86013        instead of Database.
86014        https://bugs.webkit.org/show_bug.cgi?id=108995.
86015
86016        Reviewed by Sam Weinig.
86017
86018        This change also moves the task inner classes from Database to
86019        DatabaseBackendAsync.
86020
86021        No new tests.
86022
86023        * Modules/webdatabase/Database.cpp:
86024        (WebCore::Database::from):
86025        * Modules/webdatabase/Database.h:
86026        (Database):
86027        * Modules/webdatabase/DatabaseBackend.h:
86028        (DatabaseBackend):
86029        * Modules/webdatabase/DatabaseBackendAsync.h:
86030        (DatabaseBackendAsync):
86031        * Modules/webdatabase/DatabaseTask.cpp:
86032        (WebCore::DatabaseTask::DatabaseTask):
86033        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::DatabaseOpenTask):
86034        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::doPerformTask):
86035        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::debugTaskName):
86036        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::DatabaseCloseTask):
86037        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::doPerformTask):
86038        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::debugTaskName):
86039        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::DatabaseTransactionTask):
86040        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::doPerformTask):
86041        (WebCore::DatabaseBackendAsync::DatabaseTransactionTask::debugTaskName):
86042        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::DatabaseTableNamesTask):
86043        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::doPerformTask):
86044        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::debugTaskName):
86045        * Modules/webdatabase/DatabaseTask.h:
86046        (WebCore::DatabaseTask::database):
86047        (DatabaseTask):
86048        (WebCore::DatabaseBackendAsync::DatabaseOpenTask::create):
86049        (DatabaseBackendAsync::DatabaseOpenTask):
86050        (WebCore::DatabaseBackendAsync::DatabaseCloseTask::create):
86051        (DatabaseBackendAsync::DatabaseCloseTask):
86052        (WebCore::DatabaseBackendAsync::DatabaseTableNamesTask::create):
86053        (DatabaseBackendAsync::DatabaseTableNamesTask):
86054        * Modules/webdatabase/DatabaseThread.cpp:
86055        (WebCore::DatabaseThread::databaseThread):
86056        (WebCore::DatabaseThread::recordDatabaseOpen):
86057        (WebCore::DatabaseThread::recordDatabaseClosed):
86058        (WebCore::SameDatabasePredicate::SameDatabasePredicate):
86059        (SameDatabasePredicate):
86060        (WebCore::DatabaseThread::unscheduleDatabaseTasks):
86061        * Modules/webdatabase/DatabaseThread.h:
86062        (DatabaseThread):
86063
860642013-02-05  Mark Lam  <mark.lam@apple.com>
86065
86066        Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
86067        https://bugs.webkit.org/show_bug.cgi?id=108988.
86068
86069        Reviewed by Alexey Proskuryakov.
86070
86071        No new tests.
86072
86073        * Modules/webdatabase/DatabaseBackend.cpp:
86074        (WebCore::DatabaseBackend::DatabaseBackend):
86075        * Modules/webdatabase/DatabaseBackend.h:
86076        (DatabaseBackend):
86077        * Modules/webdatabase/DatabaseBackendAsync.cpp:
86078        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
86079        * Modules/webdatabase/DatabaseBackendSync.cpp:
86080        (WebCore::DatabaseBackendSync::DatabaseBackendSync):
86081        * Modules/webdatabase/DatabaseBasicTypes.h:
86082        (WebCore::ENUM_CLASS):
86083        * Modules/webdatabase/DatabaseError.h:
86084        (WebCore::ENUM_CLASS):
86085
860862013-02-05  Kentaro Hara  <haraken@chromium.org>
86087
86088        [V8] Remove deprecatedV8String() and deprecatedV8Integer()
86089        https://bugs.webkit.org/show_bug.cgi?id=108919
86090
86091        Reviewed by Adam Barth.
86092
86093        No tests. No change in behavior.
86094
86095        * bindings/v8/V8Binding.cpp:
86096        (WebCore::toXPathNSResolver):
86097        * bindings/v8/V8Binding.h:
86098        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
86099        (WebCore::V8CustomXPathNSResolver::create):
86100        (WebCore::V8CustomXPathNSResolver::V8CustomXPathNSResolver):
86101        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
86102        * bindings/v8/custom/V8CustomXPathNSResolver.h:
86103        (V8CustomXPathNSResolver):
86104
861052013-02-05   Vineet Chaudhary  <rgf748@motorola.com>
86106
86107        formenctype to have empty string as default value.
86108        https://bugs.webkit.org/show_bug.cgi?id=108969
86109
86110        Reviewed by Kent Tamura.
86111
86112        The spec says formEnctype should only have an invalid value default, not a missing value default.
86113        Spec: http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formenctype
86114              http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-formenctype
86115
86116        No new tests. Covered by existing test case fast/forms/submit-form-attributes.html
86117
86118        * html/HTMLFormControlElement.cpp: For the missing formEnctype attr return empty string.
86119        (WebCore::HTMLFormControlElement::formEnctype):
86120
861212013-02-04  Kentaro Hara  <haraken@chromium.org>
86122
86123        [V8] Reduce usage of deprecatedString() and deprecatedInteger()
86124        https://bugs.webkit.org/show_bug.cgi?id=108909
86125
86126        Reviewed by Adam Barth.
86127
86128        By passing an Isolate parameter around, we can reduce usage of
86129        deprecated methods.
86130
86131        No tests. No change in behavior.
86132
86133        * bindings/scripts/CodeGeneratorV8.pm:
86134        (GenerateNormalAttrSetter):
86135        (GenerateEventListenerCallback):
86136        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
86137        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
86138        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
86139        * bindings/scripts/test/V8/V8TestObj.cpp:
86140        (WebCore::TestObjV8Internal::addEventListenerCallback):
86141        (WebCore::TestObjV8Internal::removeEventListenerCallback):
86142        * bindings/v8/IDBBindingUtilities.cpp:
86143        (WebCore::get):
86144        (WebCore::set):
86145        (WebCore::getNthValueOnKeyPath):
86146        (WebCore::canInjectNthValueOnKeyPath):
86147        (WebCore::ensureNthValueOnKeyPath):
86148        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
86149        (WebCore::injectIDBKeyIntoScriptValue):
86150        (WebCore::canInjectIDBKeyIntoScriptValue):
86151        * bindings/v8/NPV8Object.cpp:
86152        (WebCore::createValueListFromVariantArgs):
86153        (_NPN_Invoke):
86154        (_NPN_InvokeDefault):
86155        (_NPN_SetProperty):
86156        (_NPN_Construct):
86157        * bindings/v8/ScriptController.cpp:
86158        (WebCore::ScriptController::compileAndRunScript):
86159        * bindings/v8/ScriptProfiler.cpp:
86160        (WebCore):
86161        (WebCore::ScriptProfiler::takeHeapSnapshot):
86162        * bindings/v8/ScriptSourceCode.cpp:
86163        (WebCore::ScriptSourceCode::compileScript):
86164        * bindings/v8/ScriptSourceCode.h:
86165        (ScriptSourceCode):
86166        * bindings/v8/V8LazyEventListener.cpp:
86167        (WebCore::V8LazyEventListener::prepareListenerObject):
86168        * bindings/v8/V8NPObject.cpp:
86169        (WebCore::npObjectInvokeImpl):
86170        (WebCore::npObjectGetProperty):
86171        * bindings/v8/V8NPUtils.cpp:
86172        (WebCore::convertNPVariantToV8Object):
86173        * bindings/v8/V8NPUtils.h:
86174        (WebCore):
86175        * bindings/v8/V8Utilities.cpp:
86176        (WebCore::createHiddenDependency):
86177        (WebCore::removeHiddenDependency):
86178        (WebCore::transferHiddenDependency):
86179        * bindings/v8/V8Utilities.h:
86180        (WebCore):
86181        * bindings/v8/WorkerScriptController.cpp:
86182        (WebCore::WorkerScriptController::evaluate):
86183        * bindings/v8/custom/V8DOMWindowCustom.cpp:
86184        (WebCore::V8DOMWindow::addEventListenerCallback):
86185        (WebCore::V8DOMWindow::removeEventListenerCallback):
86186
861872013-02-05  Kentaro Hara  <haraken@chromium.org>
86188
86189        [V8] Make an Isolate parameter mandatory in HasInstance()
86190        https://bugs.webkit.org/show_bug.cgi?id=108917
86191
86192        Reviewed by Adam Barth.
86193
86194        No tests. No change in behavior.
86195
86196        * bindings/scripts/CodeGeneratorV8.pm:
86197        (GenerateHeader):
86198        (GenerateImplementation):
86199        * bindings/scripts/test/V8/V8Float64Array.cpp:
86200        (WebCore::V8Float64Array::HasInstance):
86201        * bindings/scripts/test/V8/V8Float64Array.h:
86202        (V8Float64Array):
86203        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
86204        (WebCore::V8TestActiveDOMObject::HasInstance):
86205        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
86206        (V8TestActiveDOMObject):
86207        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
86208        (WebCore::V8TestCustomNamedGetter::HasInstance):
86209        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
86210        (V8TestCustomNamedGetter):
86211        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
86212        (WebCore::V8TestEventConstructor::HasInstance):
86213        * bindings/scripts/test/V8/V8TestEventConstructor.h:
86214        (V8TestEventConstructor):
86215        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
86216        (WebCore::V8TestEventTarget::HasInstance):
86217        * bindings/scripts/test/V8/V8TestEventTarget.h:
86218        (V8TestEventTarget):
86219        * bindings/scripts/test/V8/V8TestException.cpp:
86220        (WebCore::V8TestException::HasInstance):
86221        * bindings/scripts/test/V8/V8TestException.h:
86222        (V8TestException):
86223        * bindings/scripts/test/V8/V8TestInterface.cpp:
86224        (WebCore::V8TestInterface::HasInstance):
86225        * bindings/scripts/test/V8/V8TestInterface.h:
86226        (V8TestInterface):
86227        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
86228        (WebCore::V8TestMediaQueryListListener::HasInstance):
86229        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
86230        (V8TestMediaQueryListListener):
86231        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
86232        (WebCore::V8TestNamedConstructor::HasInstance):
86233        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
86234        (V8TestNamedConstructor):
86235        * bindings/scripts/test/V8/V8TestNode.cpp:
86236        (WebCore::V8TestNode::HasInstance):
86237        * bindings/scripts/test/V8/V8TestNode.h:
86238        (V8TestNode):
86239        * bindings/scripts/test/V8/V8TestObj.cpp:
86240        (WebCore::V8TestObj::HasInstance):
86241        * bindings/scripts/test/V8/V8TestObj.h:
86242        (V8TestObj):
86243        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
86244        (WebCore::V8TestOverloadedConstructors::HasInstance):
86245        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
86246        (V8TestOverloadedConstructors):
86247        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
86248        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
86249        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
86250        (V8TestSerializedScriptValueInterface):
86251        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
86252        (WebCore::toWebGLUniformLocation):
86253
862542013-02-05  Kentaro Hara  <haraken@chromium.org>
86255
86256        [JSC] Clean up CodeGeneratorJS.pm by introducing HasCustom{Getter,Setter,Method}
86257        https://bugs.webkit.org/show_bug.cgi?id=108898
86258
86259        Reviewed by Sam Weinig.
86260
86261        No tests. No change in behavior.
86262
86263        * bindings/scripts/CodeGeneratorJS.pm:
86264        (GenerateHeader):
86265        (GenerateImplementation):
86266        (HasCustomGetter):
86267        (HasCustomSetter):
86268        (HasCustomMethod):
86269
862702013-02-05  Dana Jansens  <danakj@chromium.org>
86271
86272        [chromium] Provide compositor offscreen context through the WebLayerTreeViewClient interface
86273        https://bugs.webkit.org/show_bug.cgi?id=107776
86274
86275        Reviewed by James Robinson.
86276
86277        Allow the compositor thread's context to be retrieved on either thread,
86278        so the main thread can create and pass the context to the impl thread
86279        via its own mechanisms.
86280
86281        Move the code to bind the GrGLInterface to a WebGraphicsContext3D into
86282        chromium's GraphicsContext3DPrivate. The chromium-side code will need
86283        to implement this code itself.
86284
86285        * platform/chromium/support/GraphicsContext3DPrivate.cpp:
86286        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
86287        (WebCore):
86288        (WebCore::GraphicsContext3DPrivate::grContext):
86289        * platform/chromium/support/GraphicsContext3DPrivate.h:
86290        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
86291        (WebCore::SharedGraphicsContext3D::getForImplThread):
86292
862932013-02-05  Tony Gentilcore  <tonyg@chromium.org>
86294
86295        Continue making XSSAuditor thread safe: Remove dependency on the parser's tokenizer
86296        https://bugs.webkit.org/show_bug.cgi?id=108666
86297
86298        Reviewed by Adam Barth.
86299
86300        This is the final dependency on the parser, so we remove that as well. Yay!
86301
86302        No new tests because no new functionality.
86303
86304        * html/parser/HTMLDocumentParser.cpp:
86305        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
86306        (WebCore::HTMLDocumentParser::pumpTokenizer): Pass m_tokenizer->shouldAllowCDATA()
86307        * html/parser/XSSAuditor.cpp:
86308        (WebCore::XSSAuditor::XSSAuditor): Remove isMainThread() check because we have one in init() anyway.
86309        Move m_isEnabled and m_documentURL initialization to init() because we have a Document* there.
86310        (WebCore::XSSAuditor::init):
86311        (WebCore::XSSAuditor::filterToken):
86312        (WebCore::XSSAuditor::filterStartToken):
86313        (WebCore::XSSAuditor::filterEndToken):
86314        (WebCore::XSSAuditor::filterScriptToken):
86315        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
86316        * html/parser/XSSAuditor.h:
86317        (WebCore::FilterTokenRequest::FilterTokenRequest):
86318        (FilterTokenRequest):
86319        (XSSAuditor):
86320
863212013-02-05  Enrica Casucci  <enrica@apple.com>
86322
86323        Make baseWritingDirectionForSelectionStart available to all platforms in the Editor class.
86324        https://bugs.webkit.org/show_bug.cgi?id=108977.
86325
86326        Reviewed by Ryosuke Niwa.
86327        
86328        Now that baseWritingDirectionForSelectionStart doesn't use
86329        platform specific type anymore, we can make it available for
86330        all platforms. This way it can be used for iOS as well.
86331
86332        No new tests, no functionality change.
86333
86334        * editing/Editor.cpp:
86335        (WebCore::Editor::baseWritingDirectionForSelectionStart): Added.
86336        * editing/Editor.h: Moved from PLATFORM(MAC).
86337        * editing/mac/EditorMac.mm: baseWritingDirectionForSelectionStart removed.
86338
863392013-02-05  Benjamin Poulain  <bpoulain@apple.com>
86340
86341        Avoid String->AtomicString conversion in Attr::childrenChanged()
86342        https://bugs.webkit.org/show_bug.cgi?id=108742
86343
86344        Reviewed by Andreas Kling.
86345
86346        * dom/Attr.cpp:
86347        (WebCore::Attr::childrenChanged): StringBuilder can output AtomicString directly.
86348
863492013-02-05  Yusuf Ozuysal  <yusufo@google.com>
86350
86351        [chromium] Enable shouldGesturesTriggerActive for Android
86352        https://bugs.webkit.org/show_bug.cgi?id=96948
86353
86354        Reviewed by James Robinson.
86355
86356        We need this to fix performance issues we are getting because of touchstart 
86357        triggering hover/active states.
86358
86359        No new tests. The tests introduced in https://bugs.webkit.org/show_bug.cgi?id=96060
86360        should run with the corrected behavior and would cover this change as well.
86361
86362        * page/EventHandler.cpp:
86363        (WebCore::shouldGesturesTriggerActive):
86364
863652013-02-05  Mark Lam  <mark.lam@apple.com>
86366
86367        Introduced back-end database classes + a few small fixes.
86368        https://bugs.webkit.org/show_bug.cgi?id=108759.
86369
86370        Reviewed by Brady Eidson.
86371
86372        1. Added DatabaseBackendContext, DatabaseBackendAsync, and DatabaseBackendSync.
86373           These are backends for DatabaseContext, Database, and DatabaseSync
86374           respectively.
86375        2. Added DatabaseBase to hold common code between Database and DatabaseSync.
86376        3. Renamed a few functions.
86377        4. Cleaned up unneeded code in ~DatabaseSync().
86378        5. Added some FIXMEs as reminders or places to clean up when we're done
86379           refactoring.
86380        6. Moved the calling of ScriptController::initializeThreading() from the Database
86381           constructor to DatabaseManager::openDatabase(). This just moves the call
86382           earlier in the same code path. System initialization work (i.e. initializing
86383           script threading in this case) should be done by the manager instead of by
86384           each Database instance.
86385
86386        No new tests.
86387
86388        * CMakeLists.txt:
86389        * GNUmakefile.list.am:
86390        * Modules/webdatabase/AbstractDatabaseServer.h:
86391        (AbstractDatabaseServer):
86392        * Modules/webdatabase/Database.cpp:
86393        (WebCore::Database::Database):
86394        (WebCore::Database::backend):
86395        * Modules/webdatabase/Database.h:
86396        (Database):
86397        * Modules/webdatabase/DatabaseBackend.cpp:
86398        (WebCore::DatabaseBackend::DatabaseBackend):
86399        (WebCore::DatabaseBackend::~DatabaseBackend):
86400        (WebCore::DatabaseBackend::incrementalVacuumIfNeeded):
86401        * Modules/webdatabase/DatabaseBackend.h:
86402        (DatabaseBackend):
86403        (WebCore::DatabaseBackend::databaseContext):
86404        (WebCore::DatabaseBackend::setFrontend):
86405        * Modules/webdatabase/DatabaseBackendAsync.cpp: Added.
86406        (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
86407        * Modules/webdatabase/DatabaseBackendAsync.h: Added.
86408        (DatabaseBackendAsync):
86409        * Modules/webdatabase/DatabaseBackendContext.cpp: Added.
86410        (WebCore::DatabaseBackendContext::securityOrigin):
86411        (WebCore::DatabaseBackendContext::isContextThread):
86412        * Modules/webdatabase/DatabaseBackendContext.h: Added.
86413        (DatabaseBackendContext):
86414        (WebCore::DatabaseBackendContext::scriptExecutionContext):
86415        * Modules/webdatabase/DatabaseBackendSync.cpp: Added.
86416        (WebCore::DatabaseBackendSync::DatabaseBackendSync):
86417        (WebCore::DatabaseBackendSync::~DatabaseBackendSync):
86418        * Modules/webdatabase/DatabaseBackendSync.h: Added.
86419        (DatabaseBackendSync):
86420        * Modules/webdatabase/DatabaseBase.cpp: Added.
86421        (WebCore::DatabaseBase::DatabaseBase):
86422        (WebCore::DatabaseBase::scriptExecutionContext):
86423        (WebCore::DatabaseBase::logErrorMessage):
86424        * Modules/webdatabase/DatabaseBase.h: Added.
86425        (DatabaseBase):
86426        * Modules/webdatabase/DatabaseContext.cpp:
86427        (WebCore::DatabaseContext::DatabaseContext):
86428        (WebCore::DatabaseContext::backend):
86429        * Modules/webdatabase/DatabaseContext.h:
86430        (DatabaseContext):
86431        * Modules/webdatabase/DatabaseManager.cpp:
86432        (WebCore::DatabaseManager::openDatabase):
86433        (WebCore::DatabaseManager::openDatabaseSync):
86434        (WebCore::DatabaseManager::hasOpenDatabases):
86435        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
86436        (WebCore::DatabaseManager::getMaxSizeForDatabase):
86437        (WebCore::DatabaseManager::logErrorMessage):
86438        * Modules/webdatabase/DatabaseManager.h:
86439        (DatabaseManager):
86440        * Modules/webdatabase/DatabaseServer.cpp:
86441        (WebCore::DatabaseServer::interruptAllDatabasesForContext):
86442        (WebCore::DatabaseServer::canEstablishDatabase):
86443        * Modules/webdatabase/DatabaseServer.h:
86444        * Modules/webdatabase/DatabaseSync.cpp:
86445        (WebCore::DatabaseSync::DatabaseSync):
86446        (WebCore::DatabaseSync::~DatabaseSync):
86447        (WebCore::DatabaseSync::backend):
86448        * Modules/webdatabase/DatabaseSync.h:
86449        (DatabaseSync):
86450        * Modules/webdatabase/DatabaseTracker.cpp:
86451        (WebCore::DatabaseTracker::openTrackerDatabase):
86452        (WebCore::DatabaseTracker::canEstablishDatabase):
86453        (WebCore::DatabaseTracker::hasEntryForDatabase):
86454        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
86455        (WebCore::DatabaseTracker::populateOriginsIfNeeded):
86456        (WebCore::DatabaseTracker::databaseNamesForOriginNoLock):
86457        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
86458        (WebCore::DatabaseTracker::setDatabaseDetails):
86459        (WebCore::DatabaseTracker::usageForOriginNoLock):
86460        (WebCore::DatabaseTracker::setQuota):
86461        (WebCore::DatabaseTracker::addDatabase):
86462        (WebCore::DatabaseTracker::deleteOrigin):
86463        (WebCore::DatabaseTracker::isDeletingDatabaseOrOriginFor):
86464        (WebCore::DatabaseTracker::canDeleteDatabase):
86465        (WebCore::DatabaseTracker::isDeletingDatabase):
86466        (WebCore::DatabaseTracker::canDeleteOrigin):
86467        (WebCore::DatabaseTracker::isDeletingOrigin):
86468        (WebCore::DatabaseTracker::recordDeletingOrigin):
86469        (WebCore::DatabaseTracker::doneDeletingOrigin):
86470        (WebCore::DatabaseTracker::deleteDatabase):
86471        (WebCore::DatabaseTracker::deleteDatabaseFile):
86472        * Modules/webdatabase/DatabaseTracker.h:
86473        (DatabaseTracker):
86474        * Modules/webdatabase/SQLTransaction.cpp:
86475        * Modules/webdatabase/SQLTransactionClient.cpp:
86476        (WebCore::SQLTransactionClient::didExceedQuota):
86477        * Modules/webdatabase/SQLTransactionSync.cpp:
86478        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
86479        (WebCore::DatabaseTracker::canEstablishDatabase):
86480        (WebCore::DatabaseTracker::removeOpenDatabase):
86481        (WebCore::DatabaseTracker::prepareToOpenDatabase):
86482        (WebCore::DatabaseTracker::failedToOpenDatabase):
86483        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
86484        (WebCore::DatabaseTracker::closeDatabasesImmediately):
86485        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
86486        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
86487        (WebCore::SQLTransactionClient::didExceedQuota):
86488        * Target.pri:
86489        * WebCore.gypi:
86490        * WebCore.vcproj/WebCore.vcproj:
86491        * WebCore.vcxproj/WebCore.vcxproj:
86492        * WebCore.vcxproj/WebCore.vcxproj.filters:
86493        * WebCore.xcodeproj/project.pbxproj:
86494
864952013-02-05  Nayan Kumar K  <nayankk@motorola.com>
86496
86497        [WEBGL] Rename WEBKIT_WEBGL_depth_texture to WEBGL_depth_texture.
86498        https://bugs.webkit.org/show_bug.cgi?id=108959
86499
86500        Reviewed by Kenneth Russell.
86501
86502        WEBGL_depth_texture is official now. Hence remove the vendor prefix from
86503        WEBKIT_WEBGL_depth_texture and rename this extension string to WEBGL_depth_texture.
86504        Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/.
86505
86506        Tests already exists, modified them to test querying of unprefixed extension string.
86507
86508        * bindings/js/JSWebGLRenderingContextCustom.cpp:
86509        (WebCore::toJS):
86510        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
86511        (WebCore::toV8Object):
86512        * html/canvas/WebGLDepthTexture.cpp:
86513        (WebCore::WebGLDepthTexture::getName):
86514        * html/canvas/WebGLExtension.h:
86515        * html/canvas/WebGLRenderingContext.cpp:
86516        (WebCore):
86517        (WebCore::WebGLRenderingContext::getExtension):
86518
865192013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>
86520
86521        Unreviewed, rolling out r141905.
86522        http://trac.webkit.org/changeset/141905
86523        https://bugs.webkit.org/show_bug.cgi?id=108963
86524
86525        "Broke mac build" (Requested by tonyg-cr on #webkit).
86526
86527        * html/parser/BackgroundHTMLParser.cpp:
86528        (WebCore::BackgroundHTMLParser::pumpTokenizer):
86529        * html/parser/CompactHTMLToken.cpp:
86530        (SameSizeAsCompactHTMLToken):
86531        (WebCore::isStringSafeToSendToAnotherThread):
86532        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
86533        * html/parser/CompactHTMLToken.h:
86534        (WebCore):
86535        (CompactHTMLToken):
86536        * html/parser/HTMLDocumentParser.cpp:
86537        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
86538        (WebCore::HTMLDocumentParser::pumpTokenizer):
86539        * html/parser/XSSAuditor.cpp:
86540        (WebCore::XSSAuditor::filterToken):
86541        * html/parser/XSSAuditor.h:
86542        (WebCore):
86543        (XSSAuditor):
86544        * html/parser/XSSAuditorDelegate.cpp:
86545        (WebCore::XSSAuditorDelegate::didBlockScript):
86546        * html/parser/XSSAuditorDelegate.h:
86547        (WebCore::DidBlockScriptRequest::create):
86548        (WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
86549        (XSSAuditorDelegate):
86550        * platform/KURL.cpp:
86551        * platform/KURL.h:
86552        (KURL):
86553        * platform/KURLGoogle.cpp:
86554        (WebCore::KURLGooglePrivate::reportMemoryUsage):
86555        * platform/KURLGooglePrivate.h:
86556        (KURLGooglePrivate):
86557        * platform/KURLWTFURLImpl.h:
86558        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
86559
865602013-02-05  Dominik Röttsches  <dominik.rottsches@intel.com>
86561
86562        [HarfBuzz][Cairo] harfBuzzGetGlyph is slow and hot
86563        https://bugs.webkit.org/show_bug.cgi?id=108941
86564
86565        Reviewed by Kenneth Rohde Christiansen.
86566
86567        The text to glyph conversion using Cairo is slow
86568        due to expensive text codec conversion to UTF-8.
86569        Additionally, the glyph lookup itself is expensive.
86570
86571        Inspired by the approach taken in HarfBuzzFaceSkia.cpp
86572        I suggest to implement a similar caching mechanism to
86573        accelerate this conversion.
86574
86575        Arabic line breaking test, under review in
86576        bug 108948 shows about 58% improvement on my system
86577        with this patch.
86578
86579        * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
86580        (WebCore::HarfBuzzFontData::HarfBuzzFontData):
86581            New container structure that keeps pointers
86582            to the cairo scaled font as well as the glyph cache.
86583        (HarfBuzzFontData):
86584        (WebCore):
86585        (WebCore::harfBuzzGetGlyph): Using the new container structure for accessing the cache.
86586        (WebCore::harfBuzzGetGlyphHorizontalAdvance): Using the new container structure for accessing the scaled font.
86587        (WebCore::harfBuzzGetGlyphExtents): Ditto.
86588        (WebCore::destroyHarfBuzzFontData): Destroying the container that held the pointers.
86589        (WebCore::HarfBuzzFace::createFont):
86590            Initializing the container structure with the pointers
86591            to the cache that is held in HarfBuzzFace and the cairo scaled font.
86592
865932013-02-05  Tony Gentilcore  <tonyg@chromium.org>
86594
86595        Call XSSAuditor's didBlockScript() for the threaded HTML parser
86596        https://bugs.webkit.org/show_bug.cgi?id=108726
86597
86598        Reviewed by Adam Barth.
86599
86600        This patch causes us to call didBlockScript() on the main thread if the CompactHTML token has XSSInfo.
86601        To do so, we:
86602        1. Rename DidBlockScriptRequest to XSSInfo.
86603        2. Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
86604        3. Add an isSafeToSendToAnotherThread() method to String and KURL.
86605
86606        We don't yet populate didBlockScriptRequest on the background thread, but this should just work once we do.
86607
86608        No new tests because no new functionality.
86609
86610        * html/parser/BackgroundHTMLParser.cpp:
86611        (WebCore::BackgroundHTMLParser::pumpTokenizer): Update comment for rename.
86612        * html/parser/CompactHTMLToken.cpp:
86613        (SameSizeAsCompactHTMLToken):
86614        (WebCore::CompactHTMLToken::CompactHTMLToken): Add a copy constructor used by Vector.
86615        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread): Include new m_xssInfo field in safety check.
86616        (WebCore):
86617        (WebCore::CompactHTMLToken::xssInfo): Added.
86618        (WebCore::CompactHTMLToken::setXSSInfo): Added.
86619        * html/parser/CompactHTMLToken.h: Add an OwnPtr<XSSInfo> field to CompactHTMLToken.
86620        (WebCore):
86621        (CompactHTMLToken):
86622        (WTF): Add VectorTraits necessary for copying Vector fields objects that contain an OwnPtr.
86623        * html/parser/HTMLDocumentParser.cpp:
86624        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser): Add new didBlockScript() call.
86625        (WebCore::HTMLDocumentParser::pumpTokenizer):
86626        * html/parser/XSSAuditor.cpp: Renaming.
86627        (WebCore::XSSAuditor::filterToken):
86628        * html/parser/XSSAuditor.h: Renaming.
86629        (WebCore):
86630        (XSSAuditor):
86631        * html/parser/XSSAuditorDelegate.cpp:
86632        (WebCore::XSSInfo::isSafeToSendToAnotherThread):
86633        (WebCore):
86634        (WebCore::XSSAuditorDelegate::didBlockScript):
86635        * html/parser/XSSAuditorDelegate.h:
86636        (WebCore::XSSInfo::create):
86637        (XSSInfo):
86638        (WebCore::XSSInfo::XSSInfo):
86639        (XSSAuditorDelegate):
86640        * platform/KURL.cpp:
86641        (WebCore::KURL::isSafeToSendToAnotherThread): Added.
86642        (WebCore):
86643        * platform/KURL.h:
86644        (KURL):
86645        * platform/KURLGoogle.cpp:
86646        (WebCore):
86647        (WebCore::KURLGooglePrivate::isSafeToSendToAnotherThread): Added.
86648        * platform/KURLGooglePrivate.h:
86649        (KURLGooglePrivate):
86650        * platform/KURLWTFURLImpl.h:
86651        (WebCore::KURLWTFURLImpl::isSafeToSendToAnotherThread): Added.
86652
866532013-02-05  Anton Vayvod  <avayvod@chromium.org>
86654
86655        TextAutosizing: adjust the maximum difference between cluster text width and its descendant
86656        width.
86657        https://bugs.webkit.org/show_bug.cgi?id=108411
86658
86659        Currently, if a render object is more than 200 CSS units shorter than its parent cluster, it
86660        becomes a separate autosizing cluster (see https://bugs.webkit.org/show_bug.cgi?id=105188).
86661        This doesn't work well for layouts when narrow nodes are related, like nested comments:
86662        deeper comments are all shorter than the parent cluster and become autosized differently. To
86663        avoid that the difference that makes a shorter descendant a new autosizing cluster is
86664        adjusted each time the width difference is not greater than 50 CSS units from the previous
86665        one. This allows nested comments, for example, to remain a part of the parent cluster and be
86666        autosized with the same multiplier.
86667        
86668        Reviewed by Kenneth Rohde Christiansen.
86669
86670        Tests:
86671                fast/text-autosizing/nested-child.html
86672
86673        * rendering/TextAutosizer.cpp:
86674        (WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):
86675
86676            Added a new field to store the current maximum width difference for the cluster.
86677
86678        (WebCore::TextAutosizer::isAutosizingCluster):
86679
86680            Uses the new field to determine if the current node is a separate cluster,
86681            updates the maximum allowed width difference between the cluster and its descendant.
86682
86683        (WebCore::TextAutosizer::processContainer):
86684        (WebCore::TextAutosizer::clusterShouldBeAutosized):
86685        (WebCore::TextAutosizer::measureDescendantTextWidth):
86686
86687            Non-const reference passed to the methods above.
86688
86689        * rendering/TextAutosizer.h: updated method parameters.
86690
866912013-02-05  Tony Gentilcore  <tonyg@chromium.org>
86692
86693        Continue making XSSAuditor thread safe: Remove dependency on parser's sourceForToken and TextResourceDecoder
86694        https://bugs.webkit.org/show_bug.cgi?id=108698
86695
86696        Reviewed by Adam Barth.
86697
86698        We'd like to be able to call filterToken() from the BackgroundHTMLParser where there is no HTMLDocumentParser. So we are removing the dependencies of
86699        filterToken() on the HTMLDocumentParser. This patch brings us one step closer to removing the m_parser member from XSSAuditor by passing in the
86700        TextResourceDecoder and HTMLSourceTracker to filterToken. To keep the number of parameters from blowing up, this introduces a FilterTokenRequest struct
86701        to hold its arguments. We expect to add one more member to this struct.
86702
86703
86704        No new tests because no new functionality.
86705
86706        * html/parser/HTMLDocumentParser.cpp:
86707        (WebCore::HTMLDocumentParser::pumpTokenizer):
86708        * html/parser/HTMLDocumentParser.h:
86709        * html/parser/XSSAuditor.cpp:
86710        (WebCore::XSSAuditor::filterToken):
86711        (WebCore::XSSAuditor::filterStartToken):
86712        (WebCore::XSSAuditor::filterCharacterToken):
86713        (WebCore::XSSAuditor::filterScriptToken):
86714        (WebCore::XSSAuditor::filterObjectToken):
86715        (WebCore::XSSAuditor::filterParamToken):
86716        (WebCore::XSSAuditor::filterEmbedToken):
86717        (WebCore::XSSAuditor::filterAppletToken):
86718        (WebCore::XSSAuditor::filterIframeToken):
86719        (WebCore::XSSAuditor::filterMetaToken):
86720        (WebCore::XSSAuditor::filterBaseToken):
86721        (WebCore::XSSAuditor::filterFormToken):
86722        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
86723        (WebCore::XSSAuditor::eraseAttributeIfInjected):
86724        (WebCore::XSSAuditor::decodedSnippetForName):
86725        (WebCore::XSSAuditor::decodedSnippetForAttribute):
86726        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
86727        * html/parser/XSSAuditor.h:
86728        (WebCore):
86729        (WebCore::FilterTokenRequest::FilterTokenRequest):
86730        (FilterTokenRequest):
86731        (XSSAuditor):
86732
867332013-02-05  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
86734
86735        [Qt] REGRESSION(r137436): It made all inspector tests timeout on developer builds
86736        https://bugs.webkit.org/show_bug.cgi?id=106554
86737
86738        Reviewed by Simon Hausmann.
86739
86740        * Target.pri:
86741
867422013-02-05  Peter Rybin  <prybin@chromium.org>
86743
86744        Web Inspector: prevent crash, add required error string value
86745        https://bugs.webkit.org/show_bug.cgi?id=108776
86746
86747        Reviewed by Pavel Feldman.
86748
86749        Error string is assigned where missing, assert is added where empty string is
86750        possible.
86751
86752        * inspector/InjectedScriptBase.cpp:
86753        (WebCore::InjectedScriptBase::makeEvalCall):
86754        * inspector/PageRuntimeAgent.cpp:
86755        (WebCore::PageRuntimeAgent::injectedScriptForEval):
86756
867572013-02-05  Eugene Klyuchnikov  <eustas@chromium.org>
86758
86759        Web Inspector: Clicking a profile's title in the console loads about:blank.
86760        https://bugs.webkit.org/show_bug.cgi?id=107949
86761
86762        Reviewed by Vsevolod Vlasov.
86763
86764        Quick fix for regression.
86765
86766        * inspector/front-end/inspector.js:
86767        Avoid "exit route" when URL is a profile URL.
86768
867692013-02-05  Kent Tamura  <tkent@chromium.org>
86770
86771        INPUT_MULTIPLE_FIELDS_UI: element.focus() should not focus on disabled sub-fields.
86772        https://bugs.webkit.org/show_bug.cgi?id=108924
86773
86774        Reviewed by Kentaro Hara.
86775
86776        The first field may be non-focusable. We should search sub-fields for
86777        focusable one.
86778
86779        Test: fast/forms/date-multiple-fields/date-multiple-fields-focus.html
86780
86781        * html/shadow/DateTimeEditElement.cpp:
86782        (WebCore::DateTimeEditElement::focusOnNextFocusableField):
86783        Added. A private helper function.
86784        (WebCore::DateTimeEditElement::focusIfNoFocus): Use focusOnNextFocusableField.
86785        (WebCore::DateTimeEditElement::focusByOwner): Ditto.
86786        (WebCore::DateTimeEditElement::focusOnNextField): Ditto.
86787        * html/shadow/DateTimeEditElement.h:
86788        (DateTimeEditElement): Declare focusOnNextFocusableField.
86789
867902013-02-04  Vsevolod Vlasov  <vsevik@chromium.org>
86791
86792        Web Inspector: Create separate project for each file system added to inspector.
86793        https://bugs.webkit.org/show_bug.cgi?id=108652
86794
86795        Reviewed by Pavel Feldman.
86796
86797        Every file system added to web inspector is now represented by its own project in workspace.
86798        FileSystemMapping changed accrodingly.
86799
86800        Test: inspector/file-system-mapping.html
86801
86802        * inspector/front-end/FileMapping.js:
86803        (WebInspector.FileMapping.prototype._entryURIPrefix):
86804        * inspector/front-end/FileSystemMapping.js:
86805        (WebInspector.FileSystemMapping.prototype.fileForURI):
86806        (WebInspector.FileSystemMapping.prototype.uriForFile):
86807        (WebInspector.FileSystemMapping.prototype.uriPrefixForPathPrefix):
86808        (WebInspector.FileSystemMappingImpl):
86809        (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings.get this):
86810        (WebInspector.FileSystemMappingImpl.prototype._loadFromSettings):
86811        (WebInspector.FileSystemMappingImpl.prototype._saveToSettings):
86812        (WebInspector.FileSystemMappingImpl.prototype.set _fileSystemName):
86813        (WebInspector.FileSystemMappingImpl.prototype.fileSystemId):
86814        (WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
86815        (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
86816        (WebInspector.FileSystemMappingImpl.prototype.fileSystemPaths):
86817        (WebInspector.FileSystemMappingImpl.prototype.fileForURI):
86818        (WebInspector.FileSystemMappingImpl.prototype.uriForFile):
86819        (WebInspector.FileSystemMappingImpl.prototype.uriPrefixForPathPrefix):
86820        * inspector/front-end/FileSystemWorkspaceProvider.js:
86821        (WebInspector.FileSystemWorkspaceProvider):
86822        (WebInspector.FileSystemWorkspaceProvider.prototype.innerCallback):
86823        (WebInspector.FileSystemWorkspaceProvider.prototype.requestFileContent):
86824        (WebInspector.FileSystemWorkspaceProvider.prototype.setFileContent):
86825        (WebInspector.FileSystemWorkspaceProvider.prototype._populate.filesLoaded):
86826        (WebInspector.FileSystemWorkspaceProvider.prototype._populate):
86827        (WebInspector.FileSystemWorkspaceProvider.prototype._addFile):
86828        (WebInspector.FileSystemWorkspaceProvider.prototype._removeFile):
86829        (WebInspector.FileSystemWorkspaceProvider.prototype.reset):
86830        * inspector/front-end/IsolatedFileSystemModel.js:
86831        (WebInspector.IsolatedFileSystemModel):
86832        (WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
86833        (WebInspector.IsolatedFileSystemModel.prototype._fileSystemRemoved):
86834        * inspector/front-end/Workspace.js:
86835        (WebInspector.Project.prototype.searchInFileContent):
86836        (WebInspector.Project.prototype.dispose):
86837        (WebInspector.Workspace.prototype.removeProject):
86838
868392013-02-05  Kent Tamura  <tkent@chromium.org>
86840
86841        INPUT_MULTIPLE_FIELDS_UI: Should not move focus if the element already has focus
86842        https://bugs.webkit.org/show_bug.cgi?id=108914
86843
86844        Reviewed by Kentaro Hara.
86845
86846        If timeInput.focus() is called when a sub-field of the time input
86847        already has focus, we should not focus on the first sub-field of the
86848        time input.
86849
86850        Test: fast/forms/time-multiple-fields/time-multiple-fields-focus.html
86851
86852        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
86853        (WebCore::BaseMultipleFieldsDateAndTimeInputType::willCancelFocus): If
86854        the input elment already has focused sub-field, we don't need to proceed
86855        focus handling. FocusDirection check is required because we don't need
86856        to do this in cases of sequential focus navigation.
86857        * html/BaseMultipleFieldsDateAndTimeInputType.h:
86858        (BaseMultipleFieldsDateAndTimeInputType): Override InputType::willCancelFocus.
86859
86860        * html/HTMLInputElement.cpp:
86861        (WebCore::HTMLInputElement::focus):
86862        Cancel focus if InputType::willCancelFocus returns true.
86863        * html/HTMLInputElement.h:
86864        (HTMLInputElement): Override focus.
86865        * html/InputType.cpp:
86866        (WebCore::InputType::willCancelFocus):
86867        Add a default implementation. It returns false.
86868        * html/InputType.h:
86869        (InputType): Declare willCancelFocus.
86870
868712013-02-05  Allan Sandfeld Jensen  <allan.jensen@digia.com>
86872
86873        [Qt] RGB -> BGR is wrong on big endian
86874        https://bugs.webkit.org/show_bug.cgi?id=107560
86875
86876        Reviewed by Jocelyn Turcotte.
86877
86878        Replace the conversion to methods that make it clearer what is going on.
86879        The routines are also optimized compared to the existing by avoiding going
86880        over slow Color constructor.
86881
86882        Tested by existing tests in canvas and fast/canvas.
86883
86884        * platform/graphics/Color.cpp:
86885        (WebCore::colorFromPremultipliedARGB):
86886            Cleanup.
86887        (WebCore::premultipliedARGBFromColor):
86888            Cleanup and correct for alpha = 0.
86889        * platform/graphics/Color.h:
86890        (WebCore):
86891        * platform/graphics/qt/ImageBufferQt.cpp:
86892        (WebCore::copyColorToRGBA):
86893        (WebCore::copyRGBAToColor):
86894        (WebCore::getImageData):
86895        (WebCore::ImageBuffer::putByteArray):
86896
868972013-02-05  JungJik Lee  <jungjik.lee@samsung.com>
86898
86899        [TexMap] Use visible as initial value of backface-visibility-property.
86900        https://bugs.webkit.org/show_bug.cgi?id=108875
86901
86902        Reviewed by Noam Rosenthal.
86903
86904        According to W3C spec, the initial value of backface-visibility-visibility is visible.
86905        However TextureMapperLayer's initial value is false which means hidden.
86906        So this patch is for changing the value to visible(true).
86907
86908        Covered by existing tests.
86909
86910        * platform/graphics/texmap/TextureMapperLayer.h:
86911        (WebCore::TextureMapperLayer::State::State): Change the initial value false to true
86912        to use backface-visibility.
86913
869142013-02-05  Andrey Adaikin  <aandrey@chromium.org>
86915
86916        Web Inspector: [Canvas] do not store a dropped trace log in backend
86917        https://bugs.webkit.org/show_bug.cgi?id=108600
86918
86919        Reviewed by Pavel Feldman.
86920
86921        Clear memory immediately on dropping current trace log instead of waiting for the next capture command.
86922
86923        * inspector/InjectedScriptCanvasModuleSource.js:
86924        (.):
86925
869262013-02-05  Andrey Adaikin  <aandrey@chromium.org>
86927
86928        Web Inspector: [Canvas] UI is not restored properly when deleting a live recording profile
86929        https://bugs.webkit.org/show_bug.cgi?id=108602
86930
86931        Reviewed by Pavel Feldman.
86932
86933        Cancel recording profile of canvas-type when deleting an alive trace log.
86934        Drive-by: rename ProfileHeader.reset to ProfileHeader.dispose since it's called on header's destruction.
86935
86936        * inspector/front-end/CanvasProfileView.js:
86937        (WebInspector.CanvasProfileHeader.prototype.dispose):
86938        * inspector/front-end/ProfilesPanel.js:
86939        (WebInspector.ProfileHeader.prototype.dispose):
86940        (WebInspector.ProfilesPanel.prototype._reset):
86941        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
86942        (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
86943
869442013-02-05  Julien Brianceau  <jbrianceau@nds.com>
86945
86946        Build is broken since r141543 for platforms without OpenGL
86947        https://bugs.webkit.org/show_bug.cgi?id=108862
86948
86949        Reviewed by Simon Hausmann.
86950
86951        * Target.pri:
86952
869532013-02-05  Kentaro Hara  <haraken@chromium.org>
86954
86955        Unreviewed, rolling out r141865.
86956        http://trac.webkit.org/changeset/141865
86957        https://bugs.webkit.org/show_bug.cgi?id=108909
86958
86959        webkit unit tests are broken
86960
86961        * bindings/scripts/CodeGeneratorV8.pm:
86962        (GenerateNormalAttrSetter):
86963        (GenerateEventListenerCallback):
86964        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
86965        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
86966        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
86967        * bindings/scripts/test/V8/V8TestObj.cpp:
86968        (WebCore::TestObjV8Internal::addEventListenerCallback):
86969        (WebCore::TestObjV8Internal::removeEventListenerCallback):
86970        * bindings/v8/IDBBindingUtilities.cpp:
86971        (WebCore::get):
86972        (WebCore::set):
86973        (WebCore::getNthValueOnKeyPath):
86974        (WebCore::canInjectNthValueOnKeyPath):
86975        (WebCore::ensureNthValueOnKeyPath):
86976        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
86977        (WebCore::injectIDBKeyIntoScriptValue):
86978        (WebCore::canInjectIDBKeyIntoScriptValue):
86979        * bindings/v8/NPV8Object.cpp:
86980        (WebCore::createValueListFromVariantArgs):
86981        (_NPN_Invoke):
86982        (_NPN_InvokeDefault):
86983        (_NPN_SetProperty):
86984        (_NPN_Construct):
86985        * bindings/v8/ScriptController.cpp:
86986        (WebCore::ScriptController::compileAndRunScript):
86987        * bindings/v8/ScriptProfiler.cpp:
86988        (WebCore::ScriptProfiler::takeHeapSnapshot):
86989        * bindings/v8/ScriptSourceCode.cpp:
86990        (WebCore::ScriptSourceCode::compileScript):
86991        * bindings/v8/ScriptSourceCode.h:
86992        (ScriptSourceCode):
86993        * bindings/v8/V8LazyEventListener.cpp:
86994        (WebCore::V8LazyEventListener::prepareListenerObject):
86995        * bindings/v8/V8NPObject.cpp:
86996        (WebCore::npObjectInvokeImpl):
86997        (WebCore::npObjectGetProperty):
86998        * bindings/v8/V8NPUtils.cpp:
86999        (WebCore::convertNPVariantToV8Object):
87000        * bindings/v8/V8NPUtils.h:
87001        (WebCore):
87002        * bindings/v8/V8Utilities.cpp:
87003        (WebCore::createHiddenDependency):
87004        (WebCore::removeHiddenDependency):
87005        (WebCore::transferHiddenDependency):
87006        * bindings/v8/V8Utilities.h:
87007        (WebCore):
87008        * bindings/v8/WorkerScriptController.cpp:
87009        (WebCore::WorkerScriptController::evaluate):
87010        * bindings/v8/custom/V8DOMWindowCustom.cpp:
87011        (WebCore::V8DOMWindow::addEventListenerCallback):
87012        (WebCore::V8DOMWindow::removeEventListenerCallback):
87013
870142013-02-05  Mike West  <mkwst@chromium.org>
87015
87016        Cleanup: Use exceptionless Range::* methods rather than ignoring exceptions.
87017        https://bugs.webkit.org/show_bug.cgi?id=108773
87018
87019        Reviewed by Darin Adler.
87020
87021        We often call Range::{start,end}{Container,Offset} with an ExceptionCode
87022        that's completely ignored. In these cases, we should simply use the
87023        exceptionless version of the method instead.
87024
87025        * dom/DocumentMarkerController.cpp:
87026        (WebCore::DocumentMarkerController::addMarker):
87027            Here, I also moved parameters onto one line to make the
87028            stylebot happy.
87029        (WebCore::DocumentMarkerController::addTextMatchMarker):
87030        (WebCore::DocumentMarkerController::setMarkersActive):
87031            Dropped ignored ExceptionCode variable entirely.
87032        * accessibility/AccessibilityRenderObject.cpp:
87033        (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
87034            Can't drop the variable because of the selectNodeContents call.
87035        * editing/Editor.cpp:
87036        (WebCore::Editor::canDeleteRange):
87037            Dropped ignored ExceptionCode variable entirely.
87038        (WebCore::Editor::advanceToNextMisspelling):
87039            Can't drop the variable because of setStart/setEnd.
87040        * editing/EditorCommand.cpp:
87041        (WebCore::unionDOMRanges):
87042            Can't drop the variable because of compareBoundaryPoints.
87043        * editing/MarkupAccumulator.cpp:
87044        (WebCore::MarkupAccumulator::appendNodeValue):
87045            Dropped ignored ExceptionCode variable entirely.
87046        * editing/TextCheckingHelper.cpp:
87047        (WebCore::TextCheckingParagraph::offsetAsRange):
87048        (WebCore::TextCheckingHelper::findFirstMisspelling):
87049        (WebCore::TextCheckingHelper::findFirstGrammarDetail):
87050        (WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
87051        * editing/markup.cpp:
87052        (WebCore::StyledMarkupAccumulator::renderedText):
87053        (WebCore::StyledMarkupAccumulator::stringValueForRange):
87054            Dropped ignored ExceptionCode variable entirely.
87055        * editing/visible_units.cpp:
87056        (WebCore::previousBoundary):
87057            Can't drop the variable due to many other calls.
87058        * page/DOMSelection.cpp:
87059        (WebCore::DOMSelection::deleteFromDocument):
87060        (WebCore::DOMSelection::containsNode):
87061            For both these cases, the 'ASSERT(!ec)' after the statement I've
87062            edited only checked the last occurance of the exception: that is,
87063            if 'startXxx(ec)' threw an exception, it would be overwritten by
87064            the 'setBaseAndExtend()' or 'compareBoundaryPoints()' exception.
87065            Removing the exception parameters from the parameters' calls
87066            shouldn't effect behavior.
87067        * platform/chromium/PasteboardChromium.cpp:
87068        (WebCore::Pasteboard::writeSelection):
87069        * platform/mac/HTMLConverter.mm:
87070        (+[WebHTMLConverter editingAttributedStringFromRange:]):
87071        * platform/win/ClipboardWin.cpp:
87072        (WebCore::ClipboardWin::writeRange):
87073        * platform/win/PasteboardWin.cpp:
87074        (WebCore::Pasteboard::writeSelection):
87075        * platform/wince/PasteboardWinCE.cpp:
87076        (WebCore::Pasteboard::writeSelection):
87077            Dropped ignored ExceptionCode variable entirely.
87078
870792013-02-05  Yury Semikhatsky  <yurys@chromium.org>
87080
87081        Web Inspector:  introduce Memory.getDOMCounters
87082        https://bugs.webkit.org/show_bug.cgi?id=108822
87083
87084        Reviewed by Pavel Feldman.
87085
87086        Introduced Memory.getDOMCounters command that returns number of Documents, Nodes
87087        and JS event listeners in the inspected process.
87088
87089        * inspector/Inspector.json:
87090        * inspector/InspectorMemoryAgent.cpp:
87091        (WebCore::InspectorMemoryAgent::getDOMCounters):
87092        (WebCore):
87093        * inspector/InspectorMemoryAgent.h:
87094        (InspectorMemoryAgent):
87095
870962013-02-04  Ilya Tikhonovsky  <loislo@chromium.org>
87097
87098        Web Inspector: Native Memory Instrumentation: rename Image m_data member to m_encodedImageData for the consistency
87099        https://bugs.webkit.org/show_bug.cgi?id=108913
87100
87101        Reviewed by Yury Semikhatsky.
87102
87103        No new tests because no API changes.
87104
87105        * platform/graphics/Image.cpp:
87106        (WebCore::Image::setData):
87107        (WebCore::Image::reportMemoryUsage):
87108        * platform/graphics/Image.h:
87109        (WebCore::Image::data):
87110        (Image):
87111
871122013-02-05  Hajime Morrita  <morrita@google.com>
87113
87114        Unreviewed Linux ASAN build fix for r141783.
87115
87116        * platform/RefCountedSupplement.h:
87117        (Wrapper):
87118        * platform/Supplementable.h:
87119        (Supplement):
87120
871212013-02-05  Mike West  <mkwst@chromium.org>
87122
87123        [chromium] Unreviewed: Fix broken SVG-disabled build.
87124        https://bugs.webkit.org/show_bug.cgi?id=108916
87125
87126        The new enum value CSSPropertyWebkitGridAutoFlow was introduced in
87127        r141787, and accidentally left out of CSSParser::parseValue's big
87128        switch. This causes problems in non-SVG builds.
87129
87130        * css/CSSParser.cpp:
87131        (WebCore::CSSParser::parseValue):
87132
871332013-02-05  Tommy Widenflycht  <tommyw@google.com>
87134
87135        MediaStream API: Update RTCPeerConnections stream accessors to match the latest specification
87136        https://bugs.webkit.org/show_bug.cgi?id=108179
87137
87138        Reviewed by Adam Barth.
87139
87140        http://dev.w3.org/2011/webrtc/editor/webrtc.html#interface-definition
87141        The attributes localStreams and remoteStreams have been changes to the methods
87142        getLocalStreams() and getRemoteStreams() which return a native array instead.
87143
87144        Existing tests updated to cover patch.
87145
87146        * CMakeLists.txt:
87147        * GNUmakefile.list.am:
87148        * Modules/mediastream/MediaStream.h:
87149        (WebCore):
87150        * Modules/mediastream/MediaStreamList.cpp: Removed.
87151        * Modules/mediastream/MediaStreamList.h: Removed.
87152        * Modules/mediastream/MediaStreamList.idl: Removed.
87153        * Modules/mediastream/RTCPeerConnection.cpp:
87154        (WebCore::RTCPeerConnection::RTCPeerConnection):
87155        (WebCore::RTCPeerConnection::addStream):
87156        (WebCore::RTCPeerConnection::removeStream):
87157        (WebCore::RTCPeerConnection::getLocalStreams):
87158        (WebCore::RTCPeerConnection::getRemoteStreams):
87159        (WebCore::RTCPeerConnection::didAddRemoteStream):
87160        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
87161        * Modules/mediastream/RTCPeerConnection.h:
87162        (RTCPeerConnection):
87163        * Modules/mediastream/RTCPeerConnection.idl:
87164        * WebCore.gypi:
87165
871662013-02-05  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
87167
87168        [Qt][EFL][WebGL] Webgl doesn't work on nvidia cards
87169        https://bugs.webkit.org/show_bug.cgi?id=108059
87170
87171        Reviewed by Kenneth Rohde Christiansen.
87172
87173        Commit r138327 fixed repainting issues on mesa3d GL library by re-binding
87174        texture to the window after every glXSwapBuffer. Unfortunatelly re-bind
87175        breaks rendering on NVidia cards with NVidia propiertary drivers.
87176        This change limits texture re-binding only for mesa3d GL library.
87177
87178        No new tests. HW specific fix.
87179
87180        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
87181        (WebCore::OffScreenRootWindow::isMesaGLX):
87182        (OffScreenRootWindow):
87183        (WebCore::GraphicsSurface::platformSwapBuffers):
87184
871852013-02-05  Praveen Jadhav  <praveen.j@samsung.com>
87186
87187        Floating point precision error in AudioPannerNode.
87188        https://bugs.webkit.org/show_bug.cgi?id=106001
87189
87190        Reviewed by Kentaro Hara.
87191
87192        Specifications Update: 
87193        https://dvcs.w3.org/hg/audio/rev/69a39a516e45
87194
87195        Conversion from double to float and back to double
87196        results in precision error. Avoiding these conversions
87197        will make sure that proper values are retained in the
87198        parameters.
87199
87200        * Modules/webaudio/PannerNode.h:
87201        (WebCore::PannerNode::refDistance):
87202        (WebCore::PannerNode::setRefDistance):
87203        (WebCore::PannerNode::maxDistance):
87204        (WebCore::PannerNode::setMaxDistance):
87205        (WebCore::PannerNode::rolloffFactor):
87206        (WebCore::PannerNode::setRolloffFactor):
87207        (WebCore::PannerNode::coneInnerAngle):
87208        (WebCore::PannerNode::setConeInnerAngle):
87209        (WebCore::PannerNode::coneOuterAngle):
87210        (WebCore::PannerNode::setConeOuterAngle):
87211        (WebCore::PannerNode::coneOuterGain):
87212        (WebCore::PannerNode::setConeOuterGain):
87213        * Modules/webaudio/PannerNode.idl:
87214
872152013-02-05  Kent Tamura  <tkent@chromium.org>
87216
87217        INPUT_MULTIPLE_FIELDS_UI: Use disabled attribute internally instead of readonly attribute
87218        https://bugs.webkit.org/show_bug.cgi?id=108911
87219
87220        Reviewed by Kentaro Hara.
87221
87222        Use 'disabled' attribute for shadow elements for <input> with
87223        multiple-fields UI instead of 'readonly' attribute because 'readonly'
87224        attribute represents focusable-but-non-editable state in HTML though
87225        we'd like to represent non-focusable-and-non-editable state.
87226
87227        The summary of changes:
87228        - Use 'disabled' attribute instead of 'readonly' attribute for DateTimeFieldElement,
87229        - Rename C++ functions for it,
87230        - Call isFocusable instead of isReadOnly to check focusable state.
87231
87232        No new tests. This doesn't make user-visible behavior changes.
87233
87234        * css/html.css:
87235        Replace [readonly] with [disabled] for sub-fields.
87236        * html/shadow/DateTimeEditElement.cpp:
87237        (DateTimeEditBuilder):
87238        (WebCore::DateTimeEditBuilder::visitField):
87239        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
87240        (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
87241        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
87242        (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
87243        (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
87244        (WebCore::DateTimeEditBuilder::shouldYearFieldDisabled):
87245        (WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
87246        (WebCore::DateTimeEditElement::focusOnNextField): Use isFocusable.
87247        (WebCore::DateTimeEditElement::focusOnPreviousField): Use isFocusable.
87248        * html/shadow/DateTimeFieldElement.cpp:
87249        (WebCore::DateTimeFieldElement::isFocusable):
87250        (WebCore::DateTimeFieldElement::isDisabled):
87251        (WebCore::DateTimeFieldElement::setDisabled):
87252        * html/shadow/DateTimeFieldElement.h:
87253        (DateTimeFieldElement): Make isFocusable public in order that
87254        DateTimeEditElement can call it.
87255        * html/shadow/DateTimeNumericFieldElement.cpp:
87256        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
87257        (WebCore::DateTimeNumericFieldElement::setEmptyValue):
87258        * html/shadow/DateTimeSymbolicFieldElement.cpp:
87259        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
87260
872612013-02-05  Kentaro Hara  <haraken@chromium.org>
87262
87263        [V8] Reduce usage of deprecatedString() and deprecatedInteger()
87264        https://bugs.webkit.org/show_bug.cgi?id=108909
87265
87266        Reviewed by Adam Barth.
87267
87268        By passing an Isolate parameter around, we can reduce usage of
87269        deprecated methods.
87270
87271        No tests. No change in behavior.
87272
87273        * bindings/scripts/CodeGeneratorV8.pm:
87274        (GenerateNormalAttrSetter):
87275        (GenerateEventListenerCallback):
87276        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
87277        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
87278        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
87279        * bindings/scripts/test/V8/V8TestObj.cpp:
87280        (WebCore::TestObjV8Internal::addEventListenerCallback):
87281        (WebCore::TestObjV8Internal::removeEventListenerCallback):
87282        * bindings/v8/IDBBindingUtilities.cpp:
87283        (WebCore::get):
87284        (WebCore::set):
87285        (WebCore::getNthValueOnKeyPath):
87286        (WebCore::canInjectNthValueOnKeyPath):
87287        (WebCore::ensureNthValueOnKeyPath):
87288        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
87289        (WebCore::injectIDBKeyIntoScriptValue):
87290        (WebCore::canInjectIDBKeyIntoScriptValue):
87291        * bindings/v8/NPV8Object.cpp:
87292        (WebCore::createValueListFromVariantArgs):
87293        (_NPN_Invoke):
87294        (_NPN_InvokeDefault):
87295        (_NPN_SetProperty):
87296        (_NPN_Construct):
87297        * bindings/v8/ScriptController.cpp:
87298        (WebCore::ScriptController::compileAndRunScript):
87299        * bindings/v8/ScriptProfiler.cpp:
87300        (WebCore):
87301        (WebCore::ScriptProfiler::takeHeapSnapshot):
87302        * bindings/v8/ScriptSourceCode.cpp:
87303        (WebCore::ScriptSourceCode::compileScript):
87304        * bindings/v8/ScriptSourceCode.h:
87305        (ScriptSourceCode):
87306        * bindings/v8/V8LazyEventListener.cpp:
87307        (WebCore::V8LazyEventListener::prepareListenerObject):
87308        * bindings/v8/V8NPObject.cpp:
87309        (WebCore::npObjectInvokeImpl):
87310        (WebCore::npObjectGetProperty):
87311        * bindings/v8/V8NPUtils.cpp:
87312        (WebCore::convertNPVariantToV8Object):
87313        * bindings/v8/V8NPUtils.h:
87314        (WebCore):
87315        * bindings/v8/V8Utilities.cpp:
87316        (WebCore::createHiddenDependency):
87317        (WebCore::removeHiddenDependency):
87318        (WebCore::transferHiddenDependency):
87319        * bindings/v8/V8Utilities.h:
87320        (WebCore):
87321        * bindings/v8/WorkerScriptController.cpp:
87322        (WebCore::WorkerScriptController::evaluate):
87323        * bindings/v8/custom/V8DOMWindowCustom.cpp:
87324        (WebCore::V8DOMWindow::addEventListenerCallback):
87325        (WebCore::V8DOMWindow::removeEventListenerCallback):
87326
873272013-02-04  Dean Jackson  <dino@apple.com>
87328
87329        [Mac] Captions menu should indicate language and type of track
87330        https://bugs.webkit.org/show_bug.cgi?id=108882
87331
87332        Reviewed by Eric Carlson.
87333
87334        On Mac, we want a specific format for menu items in a caption list. Since
87335        other ports might want different formats, move the generation of the label
87336        into CaptionsUserPreferences where it can be overridden.
87337
87338        This required CaptionsUserPreferences to become public on the PageGroup, so
87339        it could be used when creating the menu. Also, since CaptionsUserPreferences
87340        was hidden on Mountain Lion and below, be a little more specific about
87341        which pieces can be seen on which builds.
87342
87343        Covered by exisiting media/video-controls-captions-trackmenu tests.
87344
87345        * English.lproj/Localizable.strings: Remove textTrackClosedCaptionsText.
87346        * html/shadow/MediaControlElements.cpp:
87347        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Build only
87348            one section and get the track's display name from the user preferences.
87349        * page/CaptionUserPreferences.h:
87350        (WebCore::CaptionUserPreferences::displayNameForTrack): Default implementation of
87351            virtual function that provides a label for a captions menu item.
87352        * page/CaptionUserPreferencesMac.h: Add the new virtual function, and expose just
87353            a bit of this class outside 10.9 builds.
87354        * page/CaptionUserPreferencesMac.mm:
87355        (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac): Guard features for system version.
87356        (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac): Ditto.
87357        (WebCore::CaptionUserPreferencesMac::displayNameForTrack): New OS X-specific method that
87358            returns a string for the menu label.
87359        * page/PageGroup.cpp:
87360        (WebCore::PageGroup::captionPreferences): Unguard for system version.
87361        * page/PageGroup.h: Make captionPreferences public.
87362        * platform/LocalizedStrings.cpp: Remove textTrackClosedCaptionsText - not needed any more.
87363        * platform/LocalizedStrings.h: Remove textTrackClosedCaptionsText.
87364
873652013-02-04  Kentaro Hara  <haraken@chromium.org>
87366
87367        [V8] Pass an Isolate to V8DOMConfiguration
87368        https://bugs.webkit.org/show_bug.cgi?id=108900
87369
87370        Reviewed by Adam Barth.
87371
87372        No tests. No change in behavior.
87373
87374        * bindings/scripts/CodeGeneratorV8.pm:
87375        (GenerateHeader):
87376        (GenerateImplementation):
87377        (GenerateToV8Converters):
87378        * bindings/scripts/test/V8/V8Float64Array.cpp:
87379        (WebCore::ConfigureV8Float64ArrayTemplate):
87380        (WebCore::V8Float64Array::createWrapper):
87381        * bindings/scripts/test/V8/V8Float64Array.h:
87382        (WebCore::V8Float64Array::installPerContextProperties):
87383        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
87384        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
87385        (WebCore::V8TestActiveDOMObject::createWrapper):
87386        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
87387        (WebCore::V8TestActiveDOMObject::installPerContextProperties):
87388        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
87389        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
87390        (WebCore::V8TestCustomNamedGetter::createWrapper):
87391        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
87392        (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
87393        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
87394        (WebCore::ConfigureV8TestEventConstructorTemplate):
87395        (WebCore::V8TestEventConstructor::createWrapper):
87396        * bindings/scripts/test/V8/V8TestEventConstructor.h:
87397        (WebCore::V8TestEventConstructor::installPerContextProperties):
87398        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
87399        (WebCore::ConfigureV8TestEventTargetTemplate):
87400        (WebCore::V8TestEventTarget::createWrapper):
87401        * bindings/scripts/test/V8/V8TestEventTarget.h:
87402        (WebCore::V8TestEventTarget::installPerContextProperties):
87403        * bindings/scripts/test/V8/V8TestException.cpp:
87404        (WebCore::ConfigureV8TestExceptionTemplate):
87405        (WebCore::V8TestException::createWrapper):
87406        * bindings/scripts/test/V8/V8TestException.h:
87407        (WebCore::V8TestException::installPerContextProperties):
87408        * bindings/scripts/test/V8/V8TestInterface.cpp:
87409        (WebCore::ConfigureV8TestInterfaceTemplate):
87410        (WebCore::V8TestInterface::createWrapper):
87411        * bindings/scripts/test/V8/V8TestInterface.h:
87412        (WebCore::V8TestInterface::installPerContextProperties):
87413        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
87414        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
87415        (WebCore::V8TestMediaQueryListListener::createWrapper):
87416        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
87417        (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
87418        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
87419        (WebCore::ConfigureV8TestNamedConstructorTemplate):
87420        (WebCore::V8TestNamedConstructor::createWrapper):
87421        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
87422        (WebCore::V8TestNamedConstructor::installPerContextProperties):
87423        * bindings/scripts/test/V8/V8TestNode.cpp:
87424        (WebCore::ConfigureV8TestNodeTemplate):
87425        (WebCore::V8TestNode::createWrapper):
87426        * bindings/scripts/test/V8/V8TestNode.h:
87427        (WebCore::V8TestNode::installPerContextProperties):
87428        * bindings/scripts/test/V8/V8TestObj.cpp:
87429        (WebCore::ConfigureV8TestObjTemplate):
87430        (WebCore::V8TestObj::installPerContextProperties):
87431        (WebCore::V8TestObj::createWrapper):
87432        * bindings/scripts/test/V8/V8TestObj.h:
87433        (V8TestObj):
87434        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
87435        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
87436        (WebCore::V8TestOverloadedConstructors::createWrapper):
87437        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
87438        (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
87439        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
87440        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
87441        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
87442        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
87443        (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
87444        * bindings/v8/V8DOMConfiguration.cpp:
87445        (WebCore::V8DOMConfiguration::batchConfigureAttributes):
87446        (WebCore::V8DOMConfiguration::batchConfigureConstants):
87447        (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
87448        (WebCore::V8DOMConfiguration::configureTemplate):
87449        * bindings/v8/V8DOMConfiguration.h:
87450        (V8DOMConfiguration):
87451        (WebCore::V8DOMConfiguration::configureAttribute):
87452        * bindings/v8/V8DOMWindowShell.cpp:
87453        (WebCore::V8DOMWindowShell::installDOMWindow):
87454
874552013-02-04  Kentaro Hara  <haraken@chromium.org>
87456
87457        [V8] Clean up CodeGeneratorV8.pm by introducing HasCustom{Getter,Setter,Method}
87458        https://bugs.webkit.org/show_bug.cgi?id=108896
87459
87460        Reviewed by Adam Barth.
87461
87462        No tests. No change in generated code.
87463
87464        * bindings/scripts/CodeGeneratorV8.pm:
87465        (GenerateHeader):
87466        (HasCustomGetter):
87467        (HasCustomSetter):
87468        (HasCustomMethod):
87469        (GetFunctionTemplateCallbackName):
87470        (GenerateSingleBatchedAttribute):
87471        (GenerateImplementation):
87472        (RequiresCustomSignature):
87473
874742013-02-04  Kent Tamura  <tkent@chromium.org>
87475
87476        Fix crash by <select> type change on focus
87477        https://bugs.webkit.org/show_bug.cgi?id=108830
87478
87479        Reviewed by Abhishek Arya.
87480
87481        Test: fast/forms/select/select-change-type-on-focus.html
87482
87483        * html/HTMLSelectElement.cpp:
87484        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
87485        focus() calls may change the renderer type.
87486
874872013-02-04  Kentaro Hara  <haraken@chromium.org>
87488
87489        [V8] Pass an Isolate to opaqueRootForGC()
87490        https://bugs.webkit.org/show_bug.cgi?id=108886
87491
87492        Reviewed by Adam Barth.
87493
87494        No tests. No change in behavior.
87495
87496        * bindings/scripts/CodeGeneratorV8.pm:
87497        (GenerateOpaqueRootForGC):
87498        (GenerateHeader):
87499        * bindings/v8/V8GCController.cpp:
87500        (WebCore::V8GCController::opaqueRootForGC):
87501        * bindings/v8/WrapperTypeInfo.h:
87502        (WebCore):
87503        (WebCore::WrapperTypeInfo::opaqueRootForGC):
87504        * bindings/v8/custom/V8NodeListCustom.cpp:
87505        (WebCore::V8NodeList::opaqueRootForGC):
87506
875072013-02-04  Wei James  <james.wei@intel.com>
87508
87509        Heap-buffer-overflow in WebCore::AudioBufferSourceNode::process
87510        https://bugs.webkit.org/show_bug.cgi?id=108515
87511
87512        After calling setBuffer() with a buffer having a different number of
87513        channels, there can in rare cases be a slight delay before the output
87514        bus is updated to the new number of channels because of use of
87515        tryLocks() in the context's updating system.
87516        In this case, if the the buffer has just been changed and we're
87517        not quite ready yet then just output silence.
87518
87519        Reviewed by Chris Rogers.
87520
87521        * Modules/webaudio/AudioBufferSourceNode.cpp:
87522        (WebCore::AudioBufferSourceNode::process):
87523        (WebCore::AudioBufferSourceNode::renderFromBuffer):
87524
875252013-02-04  James Simonsen  <simonjam@chromium.org>
87526
87527        [Chromium] Add a signal for when the body is inserted in the document
87528        https://bugs.webkit.org/show_bug.cgi?id=108725
87529
87530        Reviewed by Adam Barth.
87531
87532        This is an important signal for resource scheduling. We know we have enough to paint something,
87533        so we can start kicking off image preloads.
87534
87535        Test: Chromium webkit_unit_tests
87536
87537        * html/parser/HTMLConstructionSite.cpp:
87538        (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
87539        * loader/FrameLoaderClient.h:
87540        (FrameLoaderClient):
87541        (WebCore::FrameLoaderClient::dispatchWillInsertBody):
87542
875432013-02-04  Benjamin Poulain  <bpoulain@apple.com>
87544
87545        Kill suspendAnimation(), resumeAnimation() and numberOfActiveAnimations() from DRT/WTR; use Internals
87546        https://bugs.webkit.org/show_bug.cgi?id=108741
87547
87548        Reviewed by Tony Chang.
87549
87550        Move suspendAnimations and resumeAnimations to group all the animation related
87551        code together.
87552
87553        Add support for numberOfActiveAnimations, similarily to the feature previously defined
87554        in TestRunner.
87555
87556        * testing/Internals.cpp:
87557        (WebCore::Internals::numberOfActiveAnimations):
87558        (WebCore):
87559        (WebCore::Internals::suspendAnimations):
87560        (WebCore::Internals::resumeAnimations):
87561        * testing/Internals.h:
87562        (Internals):
87563        * testing/Internals.idl:
87564
875652013-02-04  Nayan Kumar K  <nayankk@motorola.com>
87566
87567        [WEBGL] Rename WEBKIT_WEBGL_compressed_texture_s3tc to WEBGL_compressed_texture_s3tc
87568        https://bugs.webkit.org/show_bug.cgi?id=108866
87569
87570        Reviewed by Kenneth Russell.
87571
87572        WEBGL_compressed_texture_s3tc is one of the community approved WebGL extension.
87573        Hence remove the vendor prefix from WEBKIT_WEBGL_compressed_texture_s3tc.
87574        Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
87575
87576        No tests currently present to test WEBKIT_WEBGL_compressed_texture_s3tc.
87577
87578        * bindings/js/JSWebGLRenderingContextCustom.cpp:
87579        (WebCore::toJS):
87580        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
87581        (WebCore::toV8Object):
87582        * html/canvas/WebGLCompressedTextureS3TC.cpp:
87583        (WebCore::WebGLCompressedTextureS3TC::getName):
87584        * html/canvas/WebGLExtension.h:
87585        * html/canvas/WebGLRenderingContext.cpp:
87586        (WebCore):
87587        (WebCore::WebGLRenderingContext::getExtension):
87588
875892013-02-04  Nayan Kumar K  <nayankk@motorola.com>
87590
87591        [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context.
87592        https://bugs.webkit.org/show_bug.cgi?id=108694
87593
87594        Reviewed by Kenneth Russell.
87595
87596        WEBGL_lose_context is one of the community approved WebGL extension.
87597        Hence remove the vendor prefix from WEBKIT_WEBGL_lose_context extension.
87598        Spefication: http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
87599
87600        Tests already exists, modified them to verify the change in extension name.
87601
87602        * bindings/js/JSWebGLRenderingContextCustom.cpp:
87603        (WebCore::toJS):
87604        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
87605        (WebCore::toV8Object):
87606        * html/canvas/WebGLExtension.h:
87607        * html/canvas/WebGLLoseContext.cpp:
87608        (WebCore::WebGLLoseContext::getName):
87609        * html/canvas/WebGLRenderingContext.cpp:
87610        (WebCore):
87611        (WebCore::WebGLRenderingContext::getExtension):
87612        (WebCore::WebGLRenderingContext::getSupportedExtensions):
87613
876142013-02-04  Dean Jackson  <dino@apple.com>
87615
87616        Default element styles are not always collected for sharing detection
87617        https://bugs.webkit.org/show_bug.cgi?id=108404
87618
87619        Reviewed by Antti Koivisto.
87620
87621        The method ensureDefaultStyleSheetsForElement is run as we add elements
87622        to the document. This may update the defaultStyle of the document, but
87623        does not recollect any changes into the StyleResolver. This means that
87624        style sharing might be overly ambitious, thinking it can share a style
87625        for an element which was matched in the new rules. This showed up most
87626        often in the Shadow Root for media elements, which would add a set of
87627        style rules, but the shadow children would sometimes share styles even
87628        when they shouldn't.
87629
87630        The fix is to detect if we need to collect after adding a
87631        style for an element. This might cause a little more work, but
87632        in my testing it doesn't happen very often.
87633
87634        Unfortunately it is hard to get a reproducible test for this.
87635
87636        * css/CSSDefaultStyleSheets.cpp:
87637        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement): As we load in
87638            styles, keep track of whether or not we change the default style.
87639        * css/CSSDefaultStyleSheets.h:
87640        (CSSDefaultStyleSheets): New boolean parameter indicating if the style has changed.
87641        * css/StyleResolver.cpp:
87642        (WebCore::StyleResolver::styleForElement): Collect features if the element
87643            caused the default style to update.
87644        (WebCore::StyleResolver::collectFeatures): Protect for null in updates.
87645
876462013-02-04  Jun Jiang  <jun.a.jiang@intel.com>
87647
87648        Fix the issue that some possible source formats are ignored for float textures in texture packing for CG port
87649        https://bugs.webkit.org/show_bug.cgi?id=108812
87650
87651        Reviewed by Kenneth Russell.
87652
87653        Already covered by latest WebGL conformance test.
87654
87655        * platform/graphics/GraphicsContext3D.cpp:
87656        (WebCore):
87657
876582013-02-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
87659
87660        [EFL] Remove needless local variables in LocalizedStringsEfl.cpp
87661        https://bugs.webkit.org/show_bug.cgi?id=108869
87662
87663        Reviewed by Kentaro Hara.
87664
87665        fromUTF8() returns static String. So, we don't need to use needless local variables.
87666
87667        * platform/efl/LocalizedStringsEfl.cpp:
87668        (WebCore::contextMenuItemTagCopy):
87669        (WebCore::contextMenuItemTagDelete):
87670        (WebCore::contextMenuItemTagSelectAll):
87671        (WebCore::contextMenuItemTagGoBack):
87672        (WebCore::contextMenuItemTagGoForward):
87673        (WebCore::contextMenuItemTagStop):
87674        (WebCore::contextMenuItemTagCut):
87675        (WebCore::contextMenuItemTagPaste):
87676        (WebCore::contextMenuItemTagBold):
87677        (WebCore::contextMenuItemTagItalic):
87678        (WebCore::contextMenuItemTagUnderline):
87679
876802013-02-04  Jun Jiang  <jun.a.jiang@intel.com>
87681
87682        WebGL: Move the format conversion for 16-bit per channel formats into Core Graphics port only
87683        https://bugs.webkit.org/show_bug.cgi?id=108304
87684
87685        Reviewed by Kenneth Russell.
87686
87687        Since the 16-bit per channel formats are only used for Core Graphics port in WebGL and not a standard to represent any file format that is widely used 
87688        for each platform, it is better to limit and hide this kinds of information and processing in CG specific code only. 
87689        It can make the code more clear and reduce the binary size for both CG port and non-CG port.
87690
87691        Already covered by current tests.
87692
87693        * platform/graphics/GraphicsContext3D.cpp:
87694        (WebCore):
87695        * platform/graphics/GraphicsContext3D.h:
87696        (GraphicsContext3D):
87697        (WebCore::GraphicsContext3D::srcFormatComeFromDOMElementOrImageData):
87698        (ImageExtractor):
87699        * platform/graphics/cg/GraphicsContext3DCG.cpp:
87700        (WebCore):
87701        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
87702
877032013-02-04  Dean Jackson  <dino@apple.com>
87704
87705        Allow TextTracks to be marked as closed captions
87706        https://bugs.webkit.org/show_bug.cgi?id=108856
87707
87708        Reviewed by Darin Adler.
87709
87710        While this isn't exposed directly in markup, some platform media frameworks can
87711        provide indication that a caption track is a closed caption. Expose such a flag
87712        on TextTrack and platforms can show a different UI if they want to.
87713
87714        No tests - this isn't used elsewhere yet, nor exposed to the DOM.
87715
87716        * html/track/TextTrack.cpp:
87717        (WebCore::TextTrack::TextTrack): Initialise new member.
87718        * html/track/TextTrack.h:
87719        (WebCore::TextTrack::isClosedCaptions): New member variable.
87720        (WebCore::TextTrack::setIsClosedCaptions):
87721
877222013-02-04  Chris Hopman  <cjhopman@chromium.org>
87723
87724        Make moveCaretTowardsWindowPoint not snap to the beginning/end when moved above/below editable
87725        https://bugs.webkit.org/show_bug.cgi?id=107850
87726
87727        Reviewed by Ojan Vafai.
87728
87729        On Android, EditingBehavior::shouldMoveCaret[...] controls the
87730        behavior of insertion handles. This change adds a new Android specific
87731        editing behavior type.
87732
87733        The new EditingBehavior is the same as EditingUnixBehavior except for
87734        EditingBehavior::shouldMoveCaret[...]. This new behavior fixes
87735        WebFrame::moveCaretTowardsWindowPoint to not span to the
87736        beginning/end.
87737
87738        * editing/EditingBehavior.h:
87739        (WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom):
87740        (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
87741        (WebCore::EditingBehavior::shouldNavigateBackOnBackspace):
87742        * editing/EditingBehaviorTypes.h:
87743        * page/Settings.cpp:
87744        (WebCore):
87745        (WebCore::editingBehaviorTypeForPlatform):
87746        * testing/InternalSettings.cpp:
87747        (WebCore::InternalSettings::setEditingBehavior):
87748
877492013-02-04  Kent Tamura  <tkent@chromium.org>
87750
87751        INPUT_MULTIPLE_FIELDS_UI: Focus order is not controllable by tabIndex attribute on <input>
87752        https://bugs.webkit.org/show_bug.cgi?id=108447
87753
87754        Reviewed by Hajime Morita.
87755
87756        We make <input> elements with the multiple-fields UI focusable.
87757         - However, we don't want to change the existing focus behavior for
87758           multiple-fields <input>. We'd like to focus on the last sub-field of
87759           an<input> with Shift + TAB focus navigation, and focus on the first
87760           sub-field of the <input> otherwise. So, we move focus immediately
87761           after the <input> gets focus.
87762         - We don't need the isFocusableByClickOnLabel hack any more. <input>
87763           elements with the multiple-fields UI are mouse-focusable.
87764
87765        Test: fast/forms/time-multiple-fields/time-multiple-fields-tabindex.html
87766
87767        * html/InputType.h:
87768        (InputType): Add FocusDirection argument to handleFocusEvent, and remove
87769        unnecessary isFocusableByClickOnLabel and focus.
87770        * html/InputType.cpp:
87771        (WebCore::InputType::handleFocusEvent): Ditto.
87772        * html/PasswordInputType.cpp:
87773        (WebCore::PasswordInputType::handleFocusEvent): Follow the argument change.
87774        * html/PasswordInputType.h:
87775        (PasswordInputType): Ditto.
87776
87777        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
87778        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleFocusEvent):
87779        If this element gets focus by FocusDirectionBackward (it means the focus
87780        is moved from the first sub-field of the element,) move the focus
87781        backward once more. Otherwise, we focus on the first sub-filed of the
87782        element.
87783        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable):
87784        Make this keyboard-focusable. We have a wrong test to ensure read-only
87785        input does NOT get focus. We'll address it later.
87786        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isMouseFocusable):
87787        Make this mouse-focusable.
87788        * html/BaseMultipleFieldsDateAndTimeInputType.h:
87789        (BaseMultipleFieldsDateAndTimeInputType):
87790
87791        * html/HTMLInputElement.h:
87792        (HTMLInputElement): Remove defaultFocus, focus, and isFocusableByClickOnLabel.
87793        Add missing OVERRIDE to handleFocusEvent.
87794        * html/HTMLInputElement.cpp: Remove unnecessary functions.
87795        (WebCore::HTMLInputElement::handleFocusEvent):
87796        Pass FocusDirection value to InputTYpe::handleFocusEvent.
87797
87798        * html/HTMLLabelElement.cpp:
87799        (WebCore::HTMLLabelElement::defaultEventHandler):
87800        Use isMouseFocusable().
87801        * html/HTMLElement.cpp: Remove unnecessary isFocusableByClickOnLabel.
87802        * html/HTMLElement.h: Ditto.
87803
878042013-02-04  Seulgi Kim  <seulgikim@company100.net>
87805
87806        Coordinated Graphics: crash in TiledBackingStore::adjustForContentsRect
87807        https://bugs.webkit.org/show_bug.cgi?id=107639
87808
87809        Reviewed by Kenneth Rohde Christiansen.
87810
87811        In TiledBackingStore::adjustForContentsRect method, inflating is not
87812        needed when there is no intersections between the cover/keep rect and
87813        the content rect.
87814
87815        No new tests, no change in functionality.
87816
87817        * platform/graphics/TiledBackingStore.cpp:
87818        (WebCore::TiledBackingStore::adjustForContentsRect):
87819
878202013-02-04  Stephen White  <senorblanco@chromium.org>
87821
87822        [skia] Remove use of SkSingleInputImageFilter.
87823        https://bugs.webkit.org/show_bug.cgi?id=108867
87824
87825        Reviewed by James Robinson.
87826
87827        This class is but a hollow shell of its former self, and has
87828        been removed in Skia.
87829
87830        Covered by existing tests in css3/filters.
87831
87832        * platform/graphics/filters/skia/DropShadowImageFilter.cpp:
87833        (WebCore::DropShadowImageFilter::DropShadowImageFilter):
87834        (WebCore::DropShadowImageFilter::onFilterImage):
87835        * platform/graphics/filters/skia/DropShadowImageFilter.h:
87836
878372013-01-31  Kentaro Hara  <haraken@chromium.org>
87838
87839        Implement WheelEvent::deltaMode
87840        https://bugs.webkit.org/show_bug.cgi?id=108455
87841
87842        Reviewed by Adam Barth.
87843
87844        Per the spec, WheelEvent::deltaMode should return
87845        DOM_DELTA_PIXEL or DOM_DELTA_LINE or DOM_DELTA_PAGE.
87846
87847        Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
87848        https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#constructor-wheelevent
87849
87850        Test: fast/event/wheel-event-constructor.html
87851
87852        * dom/WheelEvent.cpp:
87853        (WebCore::WheelEventInit::WheelEventInit):
87854        (WebCore::WheelEvent::WheelEvent):
87855        (WebCore::WheelEvent::initWheelEvent):
87856        (WebCore::deltaMode):
87857        * dom/WheelEvent.h:
87858        (WheelEventInit):
87859        (WebCore::WheelEvent::create):
87860        (WebCore::WheelEvent::deltaMode):
87861        (WheelEvent):
87862        * dom/WheelEvent.idl:
87863        * page/EventHandler.cpp:
87864        (WebCore::wheelGranularityToScrollGranularity):
87865
878662013-02-04  Gustavo Noronha Silva  <gns@gnome.org>
87867
87868        [Soup] Remove duplicate setting of first party for cookies
87869        https://bugs.webkit.org/show_bug.cgi?id=108814
87870
87871        Reviewed by Martin Robinson.
87872
87873        Covered by existing tests.
87874
87875        * platform/network/soup/ResourceHandleSoup.cpp:
87876        (WebCore::createSoupMessageForHandleAndRequest): there is no need to set
87877        the first party for cookies here, since that is already done in
87878        ResourceRequest::updateSoupMessage, which is called a few lines before.
87879
878802013-02-04  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
87881
87882        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
87883        https://bugs.webkit.org/show_bug.cgi?id=105552
87884
87885        Reviewed by Philippe Normand.
87886
87887        Makes it possible for the GStreamer media backend to provide the buffer to which
87888        the Soup networking backend will use to download data to. This makes copying
87889        memory unnecessary when ResourceHandle hands data over to the media player's
87890        StreamingClient. Thanks to Dan Winship for help designing the interface.
87891
87892        No behaviour change, covered by existing tests.
87893
87894        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
87895        (createGstBufferForData): New helper to create a GstBuffer when
87896        we have a data pointer and a length.
87897        (getGstBufferSize): Abstract obtaining the size of the buffer, so the code
87898        is cleaner while still working for both GST 0.10 and 1.0.
87899        (setGstBufferSize): Ditto, but for setting the size.
87900        (getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
87901        (mapGstBuffer): Convenience method to take care of mapping the buffer so that
87902        we can provide the data pointer to ResourceHandle.
87903        (unmapGstBuffer): Convenience method which takes care of unmapping the buffer
87904        and properly freeing the GstMapInfo.
87905        * platform/graphics/gstreamer/GStreamerVersioning.h:
87906        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
87907        (StreamingClient): New methods.
87908        (_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
87909        so we can later unmap it and push it to the pipeline.
87910        (webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
87911        destroyed.
87912        (webKitWebSrcStop): Also clear the GstBuffer in this case.
87913        (StreamingClient::didReceiveData): Handle the hand-over of the buffer.
87914        (StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
87915        * platform/network/ResourceHandleClient.h:
87916        (ResourceHandleClient):
87917        (WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
87918        member variable to 0.
87919        (WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
87920        has been allocated.
87921        (WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
87922        newly allocated char pointer.
87923        * platform/network/ResourceHandleInternal.h:
87924        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
87925        (ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
87926        * platform/network/soup/ResourceHandleSoup.cpp:
87927        (WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
87928        buffer is handled by the ResourceHandleClient.
87929        (WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
87930        (WebCore::sendRequestCallback): Ditto.
87931        (WebCore::readCallback): Ditto.
87932
879332013-02-04  Mark Pilgrim  <pilgrim@chromium.org>
87934
87935        [Chromium] Move WorkerContextProxy to WebCore
87936        https://bugs.webkit.org/show_bug.cgi?id=108847
87937
87938        Reviewed by Adam Barth.
87939
87940        Part of a larger refactoring series; see tracking bug 106829.
87941
87942        * WebCore.gyp/WebCore.gyp:
87943        * WebCore.gypi:
87944        * workers/chromium: Added.
87945        * workers/chromium/WorkerContextProxyChromium.cpp: Added.
87946        (WebCore):
87947        (WebCore::setWorkerContextProxyCreateFunction):
87948        (WebCore::WorkerContextProxy::create):
87949        * workers/chromium/WorkerContextProxyChromium.h: Added.
87950        (WebCore):
87951
879522013-02-04  Dima Gorbik  <dgorbik@apple.com>
87953
87954        WebVTT <i>, <b> and <u> elements should have default styles
87955        https://bugs.webkit.org/show_bug.cgi?id=107214
87956
87957        Reviewed by Darin Adler.
87958
87959        Added default styles for basic webvtt object types.
87960
87961        Test: media/track/track-css-matching-default.html
87962
87963        * css/mediaControls.css:
87964        (video::-webkit-media-text-track-container b):
87965        (video::-webkit-media-text-track-container u):
87966        (video::-webkit-media-text-track-container i):
87967
879682013-02-04  Abhishek Arya  <inferno@chromium.org>
87969
87970        Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
87971        https://bugs.webkit.org/show_bug.cgi?id=108668
87972
87973        Reviewed by Eric Seidel.
87974
87975        * bindings/v8/SerializedScriptValue.cpp:
87976        * css/CSSCalculationValue.cpp:
87977        (WebCore::CSSCalcExpressionNodeParser::parseCalc):
87978        * css/CSSImageSetValue.cpp:
87979        (WebCore::CSSImageSetValue::fillImageSet):
87980        (WebCore::CSSImageSetValue::customCssText):
87981        * css/CSSParserValues.h:
87982        (WebCore::CSSParserString::operator[]):
87983        * css/CSSValueList.h:
87984        (WebCore::CSSValueListInspector::item):
87985        * css/StyleSheetContents.cpp:
87986        (WebCore::StyleSheetContents::ruleAt):
87987        (WebCore::StyleSheetContents::wrapperInsertRule):
87988        (WebCore::StyleSheetContents::wrapperDeleteRule):
87989        * dom/Document.cpp:
87990        (WebCore::Document::processArguments):
87991        * dom/Element.cpp:
87992        (WebCore::Element::removeAttributeInternal):
87993        * dom/ElementAttributeData.cpp:
87994        (WebCore::ElementAttributeData::removeAttribute):
87995        * dom/ElementAttributeData.h:
87996        (WebCore::ElementAttributeData::attributeItem):
87997        * dom/SpaceSplitString.h:
87998        (WebCore::SpaceSplitStringData::operator[]):
87999        (WebCore::SpaceSplitString::operator[]):
88000        * editing/TextIterator.cpp:
88001        (WebCore::TextIterator::characterAt):
88002        * html/HTMLFormElement.cpp:
88003        (WebCore::HTMLFormElement::removeFormElement):
88004        * html/HTMLSelectElementWin.cpp:
88005        (WebCore::HTMLSelectElement::platformHandleKeydownEvent):
88006        * html/canvas/WebGLRenderingContext.cpp:
88007        (WebCore):
88008        * html/parser/HTMLFormattingElementList.cpp:
88009        (WebCore::HTMLFormattingElementList::swapTo):
88010        * inspector/InspectorStyleSheet.cpp:
88011        (WebCore::InspectorStyleSheet::styleSheetTextWithChangedStyle):
88012        * inspector/InspectorStyleTextEditor.cpp:
88013        (WebCore::InspectorStyleTextEditor::replaceProperty):
88014        * inspector/InspectorValues.cpp:
88015        (WebCore::InspectorArrayBase::get):
88016        * page/WindowFeatures.cpp:
88017        (WebCore::WindowFeatures::WindowFeatures):
88018        * platform/audio/AudioArray.h:
88019        (WebCore::AudioArray::at):
88020        * platform/audio/AudioFIFO.cpp:
88021        (WebCore::AudioFIFO::findWrapLengths):
88022        * platform/graphics/GlyphPage.h:
88023        (WebCore::GlyphPage::glyphDataForIndex):
88024        (WebCore::GlyphPage::glyphAt):
88025        (WebCore::GlyphPage::setGlyphDataForIndex):
88026        * platform/graphics/TextRun.h:
88027        (WebCore::TextRun::operator[]):
88028        (WebCore::TextRun::data8):
88029        (WebCore::TextRun::data16):
88030        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
88031        (WebCore::HarfBuzzShaper::setDrawRange):
88032        * platform/graphics/openvg/TiledImageOpenVG.cpp:
88033        (WebCore::TiledImageOpenVG::setTile):
88034        (WebCore::TiledImageOpenVG::tile):
88035        * platform/image-decoders/ico/ICOImageDecoder.cpp:
88036        (WebCore::ICOImageDecoder::decodeAtIndex):
88037        (WebCore::ICOImageDecoder::imageTypeAtIndex):
88038        * platform/text/QuotedPrintable.cpp:
88039        (WebCore::lengthOfLineEndingAtIndex):
88040        * platform/text/SegmentedString.cpp:
88041        (WebCore::SegmentedString::advance):
88042        * platform/win/WebCoreTextRenderer.cpp:
88043        (WebCore::doDrawTextAtPoint):
88044        * rendering/InlineTextBox.cpp:
88045        (WebCore::InlineTextBox::paint):
88046        (WebCore::InlineTextBox::paintSelection):
88047
880482013-02-04  Nate Chapin  <japhet@chromium.org>
88049
88050        REGRESSION (r137607): Loading of archives as substitute data is broken
88051        https://bugs.webkit.org/show_bug.cgi?id=108589
88052
88053        Reviewed by Alexey Proskuryakov.
88054
88055        * loader/MainResourceLoader.cpp:
88056        (WebCore::MainResourceLoader::resourceData): Return the content from
88057            SubstituteData as mainResourceData if present.
88058
880592013-02-04  Julien Chaffraix  <jchaffraix@webkit.org>
88060
88061        [CSS Grid Layout] Heap-buffer-overflow in std::sort
88062        https://bugs.webkit.org/show_bug.cgi?id=108834
88063
88064        Reviewed by Abhishek Arya.
88065
88066        Test: fast/css-grid-layout/grid-strict-ordering-crash.html
88067
88068        * rendering/RenderGrid.cpp:
88069        (WebCore::sortByGridTrackGrowthPotential):
88070        The std::sort documentation says that this function should define a *strict* weak ordering. Fixed the strict
88071        part of the ordering. Also moved the function definition next to where it is needed and made the GridTrack
88072        argument const (as it shouldn't modify them or std::sort will misbehave).
88073
88074        * rendering/RenderGrid.cpp:
88075        (WebCore::sortByGridTrackGrowthPotential):
88076        (WebCore):
88077
880782013-02-04  Igor Oliveira  <igor.o@sisa.samsung.com>
88079
88080        [Texmap] Implement BGRA swizzling detection
88081        https://bugs.webkit.org/show_bug.cgi?id=81103
88082
88083        For OpenGLES if the extension EXT_texture_format_BGRA8888 is supported
88084        the internal and external formats need to be BGRA.
88085
88086        Reviewed by Noam Rosenthal.
88087
88088        * platform/graphics/texmap/TextureMapperGL.cpp:
88089        (WebCore):
88090        (WebCore::driverSupportsExternalTextureBGRA):
88091        (WebCore::driverSupportsSubImage):
88092        (WebCore::BitmapTextureGL::didReset):
88093
880942013-02-04  Dima Gorbik  <dgorbik@apple.com>
88095
88096        class="cue" is getting some default style
88097        https://bugs.webkit.org/show_bug.cgi?id=108752
88098
88099        Reviewed by Dean Jackson.
88100        
88101        The value variable inside the selector is used to store different information depending on the 
88102        type of the selector so we have to check explicitly that the selector we apply filtering to 
88103        matches a pseudo element.
88104        
88105        Existing tests modified to cover this case.
88106
88107        * css/RuleSet.cpp:
88108        (WebCore::determinePropertyWhitelistType):
88109
881102013-02-04  Tom Sepez  <tsepez@chromium.org>
88111
88112        [V8] Binding Integrity crash in V8HTMLEmbedElement::createWrapper
88113        https://bugs.webkit.org/show_bug.cgi?id=108841
88114
88115        Reviewed by Adam Barth.
88116
88117        * html/HTMLEmbedElement.idl:
88118        Quick change to IDL to disable binding check for now.
88119        
881202013-02-04  Martin Robinson  <mrobinson@igalia.com>
88121
88122        Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
88123
88124        * GNUmakefile.list.am:
88125
881262013-02-04  Enrica Casucci  <enrica@apple.com>
88127
88128        Add specific EditActions for Bold and Italic commands.
88129        https://bugs.webkit.org/show_bug.cgi?id=108842.
88130        <rdar://problem/13098252>
88131
88132        This change is required on iOS where we need to
88133        identify the command in order to display the correct
88134        message in the undo popup. It is also in line with
88135        what we do for underline, which already has its own
88136        separate EditAction.
88137        
88138        Reviewed by Ryosuke Niwa.
88139
88140        No new tests. No behavior change.
88141
88142        * editing/EditAction.h:
88143        * editing/EditorCommand.cpp:
88144        (WebCore::executeToggleBold):
88145        (WebCore::executeToggleItalic):
88146
881472013-02-04  Dima Gorbik  <dgorbik@apple.com>
88148
88149        Implemet :lang() pseudo class support for the WebVTT ::cue pseudo element
88150        https://bugs.webkit.org/show_bug.cgi?id=105478
88151
88152        Reviewed by Antti Koivisto.
88153
88154        In WebVTT lang is preprocessed and stored in the lang attribute of the element, 
88155        so we access it instead of walking up the tree the way it is done in HTML.
88156
88157        Existing tests were modified to cover this case.
88158
88159        * css/SelectorChecker.cpp:
88160        (WebCore::SelectorChecker::checkOne):
88161
881622013-02-04  Tim Horton  <timothy_horton@apple.com>
88163
88164        Disable autoscrolling the main frame if main frame scrolling is disabled
88165        https://bugs.webkit.org/show_bug.cgi?id=108848
88166        <rdar://problem/13004059>
88167
88168        Reviewed by Simon Fraser.
88169
88170        Ensure that the main frame can scroll at all before allowing an autoscroll.
88171
88172        * rendering/RenderBox.cpp:
88173        (WebCore::RenderBox::canAutoscroll):
88174
881752013-02-04  Tom Sepez  <tsepez@chromiium.org>
88176
88177        XSS Auditor bypass via svg tags and xlink:href
88178        https://bugs.webkit.org/show_bug.cgi?id=84158
88179
88180        This patch adds a test for the xlink:href attribute inside of
88181        script tokens. The test is complicated by the namespacing; the
88182        xlink hrefAttr qualified name does not contain a literal "xlink"
88183        prefix but only the URI of the namespace.
88184        
88185        Reviewed by Adam Barth.
88186
88187        Test: http/tests/security/xssAuditor/svg-script-tag.html
88188
88189        * html/parser/XSSAuditor.cpp:
88190        (WebCore::findAttributeWithName):
88191        (WebCore::XSSAuditor::filterScriptToken):
88192
881932013-02-04  Eric Carlson  <eric.carlson@apple.com>
88194
88195        Update CaptionUserPreferences
88196        https://bugs.webkit.org/show_bug.cgi?id=108783
88197
88198        Reviewed by Dean Jackson.
88199
88200        * html/shadow/MediaControlElements.cpp:
88201        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Mark font size as important
88202            when necessary.
88203        * page/CaptionUserPreferences.h:
88204        (WebCore::CaptionUserPreferences::setUserPrefersCaptions): New, allow a port to remember that
88205            the user has chosen to see captions.
88206        (WebCore::CaptionUserPreferences::setPreferredLanguage): New, allow a port to remember the
88207            user's preferred caption language.
88208        (WebCore::CaptionUserPreferences::preferredLanguages): New, return a Vector of the user's 
88209            preferred caption languages.
88210        * page/CaptionUserPreferencesMac.h:
88211        * page/CaptionUserPreferencesMac.mm:
88212        * page/PageGroup.cpp:
88213        (WebCore::PageGroup::captionPreferences):
88214        (WebCore::PageGroup::captionFontSizeScale):
88215        * page/PageGroup.h:
88216        * platform/Language.cpp:
88217        (WebCore::userPreferredLanguagesOverride): New, return the user preferred languages override
88218            used during testing.
88219        * platform/Language.h:
88220        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
88221        (WebCore::InbandTextTrackPrivateAVFObjC::kind):
88222
882232013-02-04  Tim Horton  <timothy_horton@apple.com>
88224
88225        Allow TiledCoreAnimationDrawingArea overlay layers to become tiled
88226        https://bugs.webkit.org/show_bug.cgi?id=108729
88227        <rdar://problem/13047546>
88228
88229        Reviewed by Anders Carlsson.
88230
88231        * WebCore.exp.in:
88232        * platform/graphics/ca/GraphicsLayerCA.cpp:
88233        (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): The "for this layer only" variant
88234        of flushCompositingState wasn't informing its client that it committed changes for the layer.
88235        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): We now explicitly want to be able to have a
88236        GraphicsLayerCA switch into or out of tiling while being unparented (we'll get a client callback and
88237        swap out its parent ourselves).
88238
882392013-02-04  Julien Chaffraix  <jchaffraix@webkit.org>
88240
88241        [CSS Grid Layout] Add parsing for grid-auto-flow
88242        https://bugs.webkit.org/show_bug.cgi?id=108397
88243
88244        Reviewed by Ojan Vafai.
88245
88246        Test: fast/css-grid-layout/grid-auto-flow-get-set.html
88247
88248        This change adds the parsing, application and conversion back through getComputedStyle
88249        for the new property -webkit-grid-auto-flow, which accpets the following:
88250
88251        -webkit-grid-auto-flow: none | rows | columns
88252
88253        * css/CSSComputedStyleDeclaration.cpp:
88254        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
88255        Added code to convert the RenderStyle information back into a CSS value.
88256
88257        * css/CSSParser.cpp:
88258        (WebCore::isValidKeywordPropertyAndValue):
88259        (WebCore::isKeywordPropertyID):
88260        Implemented parsing for -webkit-grid-auto-flow.
88261
88262        * css/CSSPrimitiveValueMappings.h:
88263        (WebCore::CSSPrimitiveValue::operator GridAutoFlow):
88264        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
88265        Added the conversion operators, used for parsing and getComputedStyle.
88266
88267        * css/CSSProperty.cpp:
88268        (WebCore::CSSProperty::isInheritedProperty):
88269        Added -webkit-grid-auto-flow to the list of the not inherited properties.
88270
88271        * css/CSSPropertyNames.in:
88272        Added the new value and keywords.
88273
88274        * css/StyleBuilder.cpp:
88275        (WebCore::StyleBuilder::StyleBuilder):
88276        Added a handler for the new CSS property.
88277
88278        * rendering/style/RenderStyle.h:
88279        Added the usual getter / setter / initial function.
88280
88281        * rendering/style/RenderStyleConstants.h:
88282        Added a new enum GridAutoFlow to hold the parsed value.
88283
88284        * rendering/style/StyleGridData.cpp:
88285        (WebCore::StyleGridData::StyleGridData):
88286        * rendering/style/StyleGridData.h:
88287        (WebCore::StyleGridData::operator==):
88288        Updated after adding a new field for the GridAutoFlow value.
88289
882902013-02-04  Mark Pilgrim  <pilgrim@chromium.org>
88291
88292        [Chromium] Move IDBFactoryBackendInterface to WebCore
88293        https://bugs.webkit.org/show_bug.cgi?id=108638
88294
88295        Reviewed by Adam Barth.
88296
88297        Part of a larger refactoring series; see tracking bug 106829.
88298
88299        * Modules/indexeddb/chromium: Added.
88300        * Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.cpp: Added.
88301        (WebCore):
88302        (WebCore::setIDBFactoryBackendInterfaceCreateFunction):
88303        (WebCore::IDBFactoryBackendInterface::create):
88304        * Modules/indexeddb/chromium/IDBFactoryBackendInterfaceChromium.h: Added.
88305        (WebCore):
88306        * WebCore.gyp/WebCore.gyp:
88307        * WebCore.gypi:
88308
883092013-02-04  Abhishek Arya  <inferno@chromium.org>
88310
88311        Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad cast in DOM, CSS, etc.
88312        https://bugs.webkit.org/show_bug.cgi?id=108688
88313
88314        Reviewed by Eric Seidel.
88315
88316        * Modules/notifications/Notification.cpp:
88317        (WebCore::Notification::Notification):
88318        (WebCore::Notification::permission):
88319        (WebCore::Notification::requestPermission):
88320        * Modules/speech/SpeechGrammar.cpp:
88321        (WebCore::SpeechGrammar::setSrc):
88322        * Modules/speech/SpeechGrammarList.cpp:
88323        (WebCore::SpeechGrammarList::addFromUri):
88324        * Modules/websockets/ThreadableWebSocketChannel.cpp:
88325        (WebCore::ThreadableWebSocketChannel::create):
88326        * accessibility/AccessibilityMenuListPopup.cpp:
88327        (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
88328        * accessibility/AccessibilityTable.cpp:
88329        (WebCore::AccessibilityTable::cellForColumnAndRow):
88330        * css/CSSFontFaceRule.cpp:
88331        (WebCore::CSSFontFaceRule::reattach):
88332        * css/CSSImageSetValue.cpp:
88333        (WebCore::CSSImageSetValue::fillImageSet):
88334        * css/CSSPageRule.cpp:
88335        (WebCore::CSSPageRule::reattach):
88336        * css/CSSStyleRule.cpp:
88337        (WebCore::CSSStyleRule::reattach):
88338        * css/StyleBuilder.cpp:
88339        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
88340        (WebCore::ApplyPropertyTextDecoration::applyValue):
88341        (WebCore::ApplyPropertyZoom::applyValue):
88342        * css/StyleResolver.cpp:
88343        (WebCore::createGridPosition):
88344        (WebCore::StyleResolver::applyProperty):
88345        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
88346        * css/WebKitCSSFilterRule.cpp:
88347        (WebCore::WebKitCSSFilterRule::reattach):
88348        * css/WebKitCSSKeyframesRule.cpp:
88349        (WebCore::WebKitCSSKeyframesRule::reattach):
88350        * css/WebKitCSSViewportRule.cpp:
88351        (WebCore::WebKitCSSViewportRule::reattach):
88352        * editing/EditCommand.h:
88353        (WebCore::toSimpleEditCommand):
88354        * editing/visible_units.cpp:
88355        (WebCore::startOfParagraph):
88356        (WebCore::endOfParagraph):
88357        * html/HTMLCollection.cpp:
88358        (WebCore::LiveNodeListBase::setItemCache):
88359        * loader/ThreadableLoader.cpp:
88360        (WebCore::ThreadableLoader::create):
88361        (WebCore::ThreadableLoader::loadResourceSynchronously):
88362        * loader/WorkerThreadableLoader.cpp:
88363        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
88364        * page/Frame.cpp:
88365        (WebCore::Frame::frameForWidget):
88366        * platform/RefCountedSupplement.h:
88367        (WebCore::RefCountedSupplement::from):
88368        * rendering/RenderBlock.cpp:
88369        (WebCore::RenderBlock::splitBlocks):
88370        (WebCore::RenderBlock::firstLineBlock):
88371        * rendering/RenderBlockLineLayout.cpp:
88372        (WebCore::RenderBlock::createLineBoxes):
88373        * rendering/RenderBox.cpp:
88374        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
88375        * rendering/svg/RenderSVGText.cpp:
88376        (WebCore::RenderSVGText::positionForPoint):
88377        * rendering/svg/SVGRootInlineBox.cpp:
88378        (WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
88379        (WebCore::SVGRootInlineBox::layoutChildBoxes):
88380        * testing/js/WebCoreTestSupport.cpp:
88381        (WebCoreTestSupport::resetInternalsObject):
88382        * testing/v8/WebCoreTestSupport.cpp:
88383        (WebCoreTestSupport::resetInternalsObject):
88384        * workers/DefaultSharedWorkerRepository.cpp:
88385        (WebCore::SharedWorkerProxy::addToWorkerDocuments):
88386        (WebCore::SharedWorkerConnectTask::performTask):
88387        * workers/SharedWorker.cpp:
88388        (WebCore::SharedWorker::create):
88389        * workers/WorkerContext.cpp:
88390        (WebCore::CloseWorkerContextTask::performTask):
88391        * workers/WorkerMessagingProxy.cpp:
88392        (WebCore::MessageWorkerContextTask::performTask):
88393        (WebCore::connectToWorkerContextInspectorTask):
88394        (WebCore::disconnectFromWorkerContextInspectorTask):
88395        (WebCore::dispatchOnInspectorBackendTask):
88396        * workers/WorkerScriptLoader.cpp:
88397        (WebCore::WorkerScriptLoader::loadSynchronously):
88398        * workers/WorkerThread.cpp:
88399        (WebCore::WorkerThreadShutdownFinishTask::performTask):
88400        (WebCore::WorkerThreadShutdownStartTask::performTask):
88401
884022013-02-04  Dominik Röttsches  <dominik.rottsches@intel.com>
88403
88404        [Skia] Argument to HarfBuzzShaper::offsetForPosition unnecessarily truncated
88405        https://bugs.webkit.org/show_bug.cgi?id=108479
88406
88407        Reviewed by Emil A Eklund.
88408
88409        Remove a FIXME that intended to solve the value truncation.
88410        Should positively affect SVG text positioning.
88411
88412        No new tests, partially covered by manual test
88413        ManualTests/harfbuzz-mouse-selection-crash.html.
88414
88415        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
88416        (WebCore::Font::offsetForPositionForComplexText):
88417
884182013-02-04  Vladislav Kaznacheev  <kaznacheev@chromium.org>
88419
88420        Web Inspector: Create a container class for SidebarPane instances
88421        https://bugs.webkit.org/show_bug.cgi?id=108183
88422
88423        Reviewed by Pavel Feldman.
88424
88425        SidebarPaneStack is responsible for pane title bar and expand/collapse behavior (previously handled by SidebarPane).
88426        SidebarPanes are inserted into DOM lazily and can belong to more than one container.
88427        SidebarPane is ready to be displayed in other types of containers (such as tabbed pane as requested in https://bugs.webkit.org/show_bug.cgi?id=107552).
88428        There should be no visible changes except for one: DOM breakpoint pane expand/collapse state is no longer
88429        shared between Elements and Sources sidebars.
88430
88431        * inspector/front-end/AuditResultView.js:
88432        (WebInspector.AuditResultView):
88433        * inspector/front-end/BreakpointsSidebarPane.js:
88434        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._addBreakpoint):
88435        (WebInspector.XHRBreakpointsSidebarPane.prototype.highlightBreakpoint):
88436        (WebInspector.EventListenerBreakpointsSidebarPane.prototype.highlightBreakpoint):
88437        * inspector/front-end/DOMBreakpointsSidebarPane.js:
88438        (WebInspector.DOMBreakpointsSidebarPane.prototype.highlightBreakpoint):
88439        * inspector/front-end/ElementsPanel.js:
88440        (WebInspector.ElementsPanel):
88441        (WebInspector.ElementsPanel.prototype.wasShown):
88442        (WebInspector.ElementsPanel.prototype.updateStyles):
88443        (WebInspector.ElementsPanel.prototype.updateMetrics):
88444        (WebInspector.ElementsPanel.prototype.updateProperties):
88445        (WebInspector.ElementsPanel.prototype.updateEventListeners):
88446        * inspector/front-end/ExtensionPanel.js:
88447        (WebInspector.ExtensionSidebarPane):
88448        * inspector/front-end/ExtensionServer.js:
88449        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
88450        * inspector/front-end/ScriptsPanel.js:
88451        (WebInspector.ScriptsPanel.prototype.wasShown):
88452        * inspector/front-end/SidebarPane.js:
88453        (WebInspector.SidebarPane):
88454        (WebInspector.SidebarPane.prototype.title):
88455        (WebInspector.SidebarPane.prototype.prepareContent):
88456        (WebInspector.SidebarPane.prototype.expand):
88457        (WebInspector.SidebarPane.prototype.onContentReady):
88458        (WebInspector.SidebarPane.prototype.setExpandCallback):
88459        (WebInspector.SidebarPane.prototype.setShowCallback):
88460        (WebInspector.SidebarPane.prototype.wasShown):
88461        (WebInspector.SidebarPaneStack):
88462        (WebInspector.SidebarPaneStack.prototype.wasShown):
88463        (WebInspector.SidebarPaneStack.prototype.addPane):
88464        (WebInspector.SidebarPaneStack.prototype._addTitle):
88465        (WebInspector.SidebarPaneStack.prototype._attachToPane):
88466        (WebInspector.SidebarPaneStack.prototype._isExpanded):
88467        (WebInspector.SidebarPaneStack.prototype._setExpanded):
88468        (WebInspector.SidebarPaneStack.prototype._onPaneExpanded):
88469        (WebInspector.SidebarPaneStack.prototype._collapsePane):
88470        (WebInspector.SidebarPaneStack.prototype._togglePane):
88471        (WebInspector.SidebarPaneStack.prototype._onTitleKeyDown):
88472        * inspector/front-end/StylesSidebarPane.js:
88473        (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
88474        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
88475        (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
88476        (WebInspector.ComputedStyleSidebarPane.prototype.prepareContent):
88477        * inspector/front-end/WatchExpressionsSidebarPane.js:
88478        (WebInspector.WatchExpressionsSidebarPane):
88479        (WebInspector.WatchExpressionsSidebarPane.prototype.wasShown):
88480        (WebInspector.WatchExpressionsSidebarPane.prototype.addExpression):
88481        (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
88482        * inspector/front-end/inspector.css:
88483        (.pane-title + .pane-title, .pane:not(.visible) + .pane-title, .pane-title:first-of-type):
88484        (.pane-title):
88485        (.pane-title:active):
88486        (.pane-title::before):
88487        (.pane-title.expanded::before):
88488        (.pane-title > select):
88489        (.pane-title > select:hover):
88490        (.pane-title > select:active):
88491        (.pane-title > select.select-settings):
88492        (.pane-title > select.select-filter):
88493        (.pane-title > select > option, .pane-title > select > hr):
88494        (.pane-title > .pane-title-button):
88495        (.pane-title > .pane-title-button:hover):
88496        (.pane-title > .pane-title-button:active, .pane-title > .pane-title-button.toggled):
88497        (.pane-title > .pane-title-button.add):
88498        (.pane-title > .pane-title-button.element-state):
88499        (.pane-title > .pane-title-button.refresh):
88500        (.pane.visible > .body):
88501        (.pane.visible:nth-last-of-type(1)):
88502        (.panel-enabler-view button:not(.status-bar-item), .pane-title-button, button.show-all-nodes):
88503        (.panel-enabler-view button:active:not(.status-bar-item), .pane-title-button:active, button.show-all-nodes:active):
88504        (body.inactive .panel-enabler-view button:not(.status-bar-item), .panel-enabler-view button:disabled:not(.status-bar-item), body.inactive .pane-title-button, .pane-title-button:disabled, body.inactive button.show-all-nodes):
88505
885062013-02-01  Emil A Eklund  <eae@chromium.org>
88507
88508        Remove duplicate code in RenderBoxModelObject::computedCSSPadding*
88509        https://bugs.webkit.org/show_bug.cgi?id=108707
88510
88511        Reviewed by Eric Seidel.
88512        
88513        The computedCSSPaddingTop/Bottom/... methods in
88514        RenderBoxModelObject all do pretty much exactly the same thing
88515        yet share no code.
88516        
88517        Break out shared code into computedCSSPadding method and have
88518        the top/bottom/left/right/... ones call it with the appropriate
88519        length value.
88520
88521        No new tests, no change in functionality.
88522
88523        * rendering/RenderBoxModelObject.cpp:
88524        (WebCore::RenderBoxModelObject::computedCSSPadding):
88525        * rendering/RenderBoxModelObject.h:
88526        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
88527        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
88528        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
88529        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
88530        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
88531        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
88532        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
88533        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
88534        (RenderBoxModelObject):
88535
885362013-02-04  Andrey Lushnikov  <lushnikov@chromium.org>
88537
88538        Web Inspector: add round braces to javascript tokenizer
88539        https://bugs.webkit.org/show_bug.cgi?id=108692
88540
88541        Reviewed by Pavel Feldman.
88542
88543        Change SourceJavascriptTokenizer.re2js file to produce "brace-start"
88544        and "brace-end" tokens for round braces.
88545        Regenerate SourceJavascriptTokenizer.js according to new re2js file.
88546
88547        No new tests: no change in behaviour.
88548
88549        * inspector/front-end/SourceJavaScriptTokenizer.js:
88550        (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
88551        * inspector/front-end/SourceJavaScriptTokenizer.re2js:
88552
885532013-02-04  Pavel Feldman  <pfeldman@chromium.org>
88554
88555        Web Inspector: take page scale factor into account when updating overlay.
88556        https://bugs.webkit.org/show_bug.cgi?id=108831
88557
88558        Reviewed by Vsevolod Vlasov.
88559
88560        Otherwise, the ports that use page scale factor have broken overlay.
88561
88562        * inspector/InspectorOverlay.cpp:
88563        (WebCore::InspectorOverlay::update):
88564
885652013-02-04  Dan Carney  <dcarney@google.com>
88566
88567        [v8] explicit isolate parameter for MakeWeak calls
88568        https://bugs.webkit.org/show_bug.cgi?id=108818
88569
88570        Reviewed by Kentaro Hara.
88571
88572        No new tests. No change in functionality.
88573
88574        * bindings/v8/DOMDataStore.cpp:
88575        (WebCore::DOMDataStore::DOMDataStore):
88576        (WebCore::DOMDataStore::weakCallback):
88577        * bindings/v8/DOMDataStore.h:
88578        (WebCore::DOMDataStore::setWrapper):
88579        (WebCore::DOMDataStore::set):
88580        (WebCore::DOMDataStore::setWrapperInObject):
88581        (DOMDataStore):
88582        * bindings/v8/DOMWrapperMap.h:
88583        (WebCore::DOMWrapperMap::DOMWrapperMap):
88584        (WebCore::DOMWrapperMap::set):
88585        (WebCore::DOMWrapperMap::defaultWeakCallback):
88586        (DOMWrapperMap):
88587        * bindings/v8/DOMWrapperWorld.cpp:
88588        (WebCore::isolatedWorldWeakCallback):
88589        (WebCore::DOMWrapperWorld::makeContextWeak):
88590        * bindings/v8/ScriptState.cpp:
88591        (WebCore::ScriptState::ScriptState):
88592        (WebCore::ScriptState::weakReferenceCallback):
88593        * bindings/v8/ScriptState.h:
88594        (ScriptState):
88595        * bindings/v8/V8AbstractEventListener.cpp:
88596        (WebCore::V8AbstractEventListener::weakEventListenerCallback):
88597        (WebCore::V8AbstractEventListener::V8AbstractEventListener):
88598        (WebCore::V8AbstractEventListener::setListenerObject):
88599        * bindings/v8/V8AbstractEventListener.h:
88600        (V8AbstractEventListener):
88601        * bindings/v8/V8EventListener.cpp:
88602        (WebCore::V8EventListener::V8EventListener):
88603        * bindings/v8/V8LazyEventListener.cpp:
88604        (WebCore::V8LazyEventListener::V8LazyEventListener):
88605        * bindings/v8/V8MutationCallback.cpp:
88606        (WebCore::V8MutationCallback::V8MutationCallback):
88607        * bindings/v8/V8MutationCallback.h:
88608        (WebCore::V8MutationCallback::create):
88609        (WebCore::V8MutationCallback::weakCallback):
88610        * bindings/v8/V8NPObject.cpp:
88611        (WebCore::V8NPTemplateMap::set):
88612        (WebCore::V8NPTemplateMap::sharedInstance):
88613        (WebCore::V8NPTemplateMap::V8NPTemplateMap):
88614        (V8NPTemplateMap):
88615        (WebCore::V8NPTemplateMap::weakCallback):
88616        (WebCore::npObjectGetProperty):
88617        (WebCore):
88618        (WebCore::staticNPObjectMap):
88619        (WebCore::weakNPObjectCallback):
88620        * bindings/v8/V8ValueCache.cpp:
88621        (WebCore::cachedStringCallback):
88622        (WebCore::StringCache::v8ExternalStringSlow):
88623        * bindings/v8/custom/V8InjectedScriptManager.cpp:
88624        (WebCore::WeakReferenceCallback):
88625        (WebCore::createInjectedScriptHostV8Wrapper):
88626        * bindings/v8/custom/V8MutationObserverCustom.cpp:
88627        (WebCore::V8MutationObserver::constructorCallbackCustom):
88628
886292013-02-04  Dmitry Gozman  <dgozman@chromium.org>
88630
88631        Web Inspector: Allow user to change dock side by dragging toolbar
88632        https://bugs.webkit.org/show_bug.cgi?id=108073
88633
88634        Dragging toolbar to the right/bottom will change the dock side accordingly
88635        instead of changing the inspector window height (if dock to right is available).
88636
88637        Reviewed by Pavel Feldman.
88638
88639        No new tests, because of pure inspector UI change.
88640
88641        * inspector/front-end/DockController.js:
88642        (WebInspector.DockController.prototype.dockSide):
88643        * inspector/front-end/Toolbar.js:
88644        (WebInspector.Toolbar):
88645        (WebInspector.Toolbar.prototype._isDockedToBottom):
88646        (WebInspector.Toolbar.prototype._isUndocked):
88647        (WebInspector.Toolbar.prototype._toolbarDragStart):
88648        (WebInspector.Toolbar.prototype._toolbarDragEnd):
88649        (WebInspector.Toolbar.prototype._toolbarDrag):
88650        (WebInspector.Toolbar.prototype._toolbarDragMoveWindow):
88651        (WebInspector.Toolbar.prototype._toolbarDragChangeDocking):
88652        (WebInspector.Toolbar.prototype._toolbarDragChangeHeight):
88653        * inspector/front-end/UIUtils.js:
88654        (WebInspector._elementDragStart):
88655        (WebInspector._elementDragMove):
88656        (WebInspector._cancelDragEvents):
88657        (WebInspector._elementDragEnd):
88658
886592013-02-04  Andrey Kosyakov  <caseq@chromium.org>
88660
88661        Web Inspector: sync list of console API methods to that used by auto-complete
88662        https://bugs.webkit.org/show_bug.cgi?id=108804
88663
88664        Reviewed by Pavel Feldman.
88665
88666        - push new method names from InjectedScriptSource to RuntimeModel;
88667        - add a comment to InjectedScriptSource noting the necessity of keeping lists in sync.
88668
88669        * inspector/InjectedScriptSource.js:
88670        * inspector/front-end/RuntimeModel.js:
88671        (WebInspector.RuntimeModel.prototype.receivedPropertyNames):
88672        (WebInspector.RuntimeModel.prototype._completionsForExpression):
88673
886742013-02-04  Eugene Klyuchnikov  <eustas@chromium.org>
88675
88676        Web Inspector: [Network] Minor refactorings.
88677        https://bugs.webkit.org/show_bug.cgi?id=108162
88678
88679        Reviewed by Vsevolod Vlasov.
88680
88681        Apply minor refactorings to NetworkPanel.js
88682        Add hint to statusbar selector buttons.
88683
88684        * English.lproj/localizedStrings.js: Added hint string.
88685        * inspector/front-end/NetworkPanel.js:
88686        (WebInspector.NetworkLogView.prototype._createStatusBarItems): Ditto.
88687        (WebInspector.NetworkLogView.prototype._makeHeaderFragment):
88688        Applied minor refactoring.
88689        (WebInspector.NetworkLogView.prototype._createStatusBarItems.createFilterElement):
88690        Ditto.
88691        (WebInspector.NetworkLogView.prototype._updateOffscreenRows): Ditto.
88692        (WebInspector.NetworkPanel.prototype._onRowSizeChanged): Ditto.
88693
886942013-02-04  Eugene Klyuchnikov  <eustas@chromium.org>
88695
88696        Web Inspector: [CPU Profile] Apply minor refactorings and add JSDocs.
88697        https://bugs.webkit.org/show_bug.cgi?id=108437
88698
88699        Reviewed by Pavel Feldman.
88700
88701        CPU Profile code has obsolete inline-comments to clarify types.
88702        Currently we use JSDocs to specify types.
88703
88704        Also applied some minor refactorings.
88705
88706        * inspector/front-end/BottomUpProfileDataGridTree.js:
88707        (WebInspector.BottomUpProfileDataGridNode):
88708        Added JSDocs. Removed profileView parameter.
88709        (WebInspector.BottomUpProfileDataGridNode.prototype._takePropertiesFromProfileDataGridNode):
88710        Added JSDocs.
88711        (WebInspector.BottomUpProfileDataGridNode.prototype._keepOnlyChild):
88712        Ditto.
88713        (WebInspector.BottomUpProfileDataGridNode.prototype._merge):
88714        Ditto.
88715        (WebInspector.BottomUpProfileDataGridNode.prototype._sharedPopulate):
88716        Do not pass profileView to constructor.
88717        (WebInspector.BottomUpProfileDataGridTree):
88718        Added JSDocs. Renamed parameters.
88719        (WebInspector.BottomUpProfileDataGridTree.prototype.focus):
88720        Added JSDocs.
88721        (WebInspector.BottomUpProfileDataGridTree.prototype.exclude):
88722        Ditto.
88723        * inspector/front-end/CPUProfileView.js: Removed unused getter/setter.
88724        (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
88725        Un-nested. Added JSDocs.
88726        (WebInspector.CPUProfileView.prototype._getBottomUpProfileDataGridTree):
88727        Added JSDocs. Turned to method from getter. Simplified.
88728        (WebInspector.CPUProfileView.prototype._getTopDownProfileDataGridTree):
88729        Added JSDocs. Turned to method from getter.
88730        (WebInspector.CPUProfileView.prototype._assignParentsInProfile):
88731        Optimized.
88732        * inspector/front-end/DataGrid.js: Added JSDocs.
88733        * inspector/front-end/ProfileDataGridTree.js:
88734        (WebInspector.ProfileDataGridNode):
88735        Added JSDocs. Removed profileView parameter.
88736        (WebInspector.ProfileDataGridNode.prototype.createCell): Added JSDocs.
88737        (WebInspector.ProfileDataGridNode.prototype.sort): Ditto.
88738        (WebInspector.ProfileDataGridNode.prototype.insertChild): Ditto.
88739        (WebInspector.ProfileDataGridNode.prototype.removeChild): Ditto.
88740        (WebInspector.ProfileDataGridNode.prototype.removeChildren):
88741        Added JSDocs. Removed parameter.
88742        (WebInspector.ProfileDataGridNode.prototype.findChild): Added JSDocs.
88743        (WebInspector.ProfileDataGridTree): Added JSDocs. Renamed parameter.
88744        * inspector/front-end/TopDownProfileDataGridTree.js:
88745        (WebInspector.TopDownProfileDataGridNode):
88746        Added JSDocs. Removed profileView parameter.
88747        (WebInspector.TopDownProfileDataGridNode.prototype._sharedPopulate):
88748        Do not pass profileView to constructor.
88749        (WebInspector.TopDownProfileDataGridTree):
88750        Added JSDocs. Renamed parameter.
88751        (WebInspector.TopDownProfileDataGridTree.prototype.focus):
88752        Added JSDocs.
88753        (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
88754        Ditto.
88755
887562013-02-04  Dan Carney  <dcarney@google.com>
88757
88758        [v8] use toV8Fast in hand coded callbacks
88759        https://bugs.webkit.org/show_bug.cgi?id=108817
88760
88761        Reviewed by Kentaro Hara.
88762
88763        No new tests. No change in functionality.
88764
88765        * bindings/v8/custom/V8DOMWindowCustom.cpp:
88766        (WebCore::V8DOMWindow::openCallback):
88767        (WebCore::V8DOMWindow::indexedPropertyGetter):
88768        (WebCore::V8DOMWindow::namedPropertyGetter):
88769        * bindings/v8/custom/V8DocumentCustom.cpp:
88770        (WebCore::V8Document::evaluateCallback):
88771        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
88772        (WebCore::V8Document::locationAccessorGetter):
88773        * bindings/v8/custom/V8EventCustom.cpp:
88774        (WebCore::V8Event::dataTransferAccessorGetter):
88775        (WebCore::V8Event::clipboardDataAccessorGetter):
88776        * bindings/v8/custom/V8FileReaderCustom.cpp:
88777        (WebCore::V8FileReader::resultAccessorGetter):
88778        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
88779        (WebCore):
88780        (WebCore::getNamedItems):
88781        (WebCore::getItem):
88782        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
88783        (WebCore::V8HTMLAllCollection::itemCallback):
88784        (WebCore::V8HTMLAllCollection::namedItemCallback):
88785        (WebCore::V8HTMLAllCollection::callAsFunctionCallback):
88786        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
88787        (WebCore::V8HTMLCanvasElement::getContextCallback):
88788        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
88789        (WebCore::V8HTMLCollection::namedPropertyGetter):
88790        * bindings/v8/custom/V8HTMLElementCustom.cpp:
88791        (WebCore::V8HTMLElement::itemValueAccessorGetter):
88792        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
88793        (WebCore):
88794        (WebCore::getNamedItems):
88795        (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
88796        (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
88797        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
88798        (WebCore::V8HTMLFormElement::indexedPropertyGetter):
88799        (WebCore::V8HTMLFormElement::namedPropertyGetter):
88800        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
88801        (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
88802        * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
88803        (WebCore::V8HTMLLinkElement::sizesAccessorGetter):
88804        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
88805        (WebCore):
88806        (WebCore::getNamedItems):
88807        (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
88808        (WebCore::V8HTMLOptionsCollection::namedItemCallback):
88809        (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
88810        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
88811        (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
88812        * bindings/v8/custom/V8MessageEventCustom.cpp:
88813        (WebCore::V8MessageEvent::dataAccessorGetter):
88814        (WebCore::V8MessageEvent::portsAccessorGetter):
88815        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
88816        (WebCore::V8NamedNodeMap::indexedPropertyGetter):
88817        (WebCore::V8NamedNodeMap::namedPropertyGetter):
88818        * bindings/v8/custom/V8NodeListCustom.cpp:
88819        (WebCore::V8NodeList::namedPropertyGetter):
88820        * bindings/v8/custom/V8PopStateEventCustom.cpp:
88821        (WebCore::V8PopStateEvent::stateAccessorGetter):
88822        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
88823        (WebCore::V8SQLTransactionSync::executeSqlCallback):
88824        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
88825        (WebCore::V8StyleSheetList::namedPropertyGetter):
88826        * bindings/v8/custom/V8TrackEventCustom.cpp:
88827        (WebCore::V8TrackEvent::trackAccessorGetter):
88828        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
88829        (WebCore::V8XMLHttpRequest::responseAccessorGetter):
88830
888312013-02-04  David Kilzer  <ddkilzer@apple.com>
88832
88833        Remove duplicate entry from WebCore Xcode project
88834
88835            $ uniq Source/WebCore/WebCore.xcodeproj/project.pbxproj | diff -u - Source/WebCore/WebCore.xcodeproj/project.pbxproj | patch -p0 -R
88836            patching file Source/WebCore/WebCore.xcodeproj/project.pbxproj
88837
88838        * WebCore.xcodeproj/project.pbxproj: Remove duplicate.
88839
888402013-02-04  David Kilzer  <ddkilzer@apple.com>
88841
88842        Sort WebCore Xcode project file
88843
88844        * WebCore.xcodeproj/project.pbxproj:
88845
888462013-02-04  Dan Carney  <dcarney@google.com>
88847
88848        [v8] disable ascii check once latin-1 is enabled in v8
88849        https://bugs.webkit.org/show_bug.cgi?id=108805
88850
88851        Reviewed by Kentaro Hara.
88852
88853        No new tests. No change in functionality.
88854
88855        * bindings/v8/V8ValueCache.cpp:
88856        (WebCore::makeExternalString):
88857
888582013-02-04  Pavel Feldman  <pfeldman@chromium.org>
88859
88860        Web Inspector: make tabbed pane header a relayout boundary.
88861        https://bugs.webkit.org/show_bug.cgi?id=108650
88862
88863        Reviewed by Alexander Pavlov.
88864
88865        Otherwise, its measure width routine causes total reflow.
88866
88867        * inspector/front-end/tabbedPane.css:
88868        (.tabbed-pane-header):
88869
888702013-02-04  Hayato Ito  <hayato@chromium.org>
88871
88872        Split InspectorCSSOMWrappers out from StyleResolver.h into its own file.
88873        https://bugs.webkit.org/show_bug.cgi?id=108797
88874
88875        Reviewed by Hajime Morita.
88876
88877        This is a following patch after r141373. Now we can have
88878        InspectorCSSOMWrappers in its own file since CSSDefaultStyleSheets
88879        was factored out from StyleResolver.cpp in r141733.
88880
88881        WebCore/inspector/ directory is used for basic inspector
88882        functionalities. Therefore, I've put
88883        InspectorCSSOMWrappers.{h,cpp} in WebCore/css/ rather than
88884        WebCore/inspector/.
88885
88886        No new tests, refactoring only.
88887
88888        * CMakeLists.txt:
88889        * GNUmakefile.list.am:
88890        * Target.pri:
88891        * WebCore.gypi:
88892        * WebCore.xcodeproj/project.pbxproj:
88893        * css/CSSAllInOne.cpp:
88894        * css/InspectorCSSOMWrappers.cpp: Added.
88895        (WebCore):
88896        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetIfNeeded):
88897        (WebCore::InspectorCSSOMWrappers::collect):
88898        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents):
88899        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheets):
88900        (WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection):
88901        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
88902        (WebCore::InspectorCSSOMWrappers::reportMemoryUsage):
88903        * css/InspectorCSSOMWrappers.h: Added.
88904        (WebCore):
88905        (InspectorCSSOMWrappers):
88906        * css/StyleResolver.cpp:
88907        * css/StyleResolver.h:
88908
889092013-02-04  Balazs Kelemen  <kbalazs@webkit.org>
88910
88911        [Soup] Wrap SoupSession by NetworkStorageSession
88912        https://bugs.webkit.org/show_bug.cgi?id=108615
88913
88914        Reviewed by Alexey Proskuryakov.
88915
88916        Implement NetworkStorageSession for ports using soup. It has been
88917        separated from NetworkingContext, so now we have a default storage
88918        session, which is the same as before but now wrapped with NetworkStorageSession,
88919        and it can be overridden by the networking context.
88920
88921        No change in behavior so no new tests.
88922
88923        * CMakeLists.txt:
88924        * GNUmakefile.list.am:
88925        * PlatformBlackBerry.cmake:
88926        * PlatformEfl.cmake:
88927        * loader/CookieJar.cpp:
88928        (WebCore):
88929        Now we also get the storage session from the networking context
88930        and not the other way.
88931
88932        * platform/network/NetworkStorageSession.h:
88933        (NetworkStorageSession):
88934        (WebCore::NetworkStorageSession::setSoupSession):
88935        (WebCore::NetworkStorageSession::soupSession):
88936        Hold a SoupSession pointer for ports using soup. Added a setter because it is
88937        necessary for API's that allow it to be specified per page, like EFL WK1.
88938
88939        * platform/network/NetworkingContext.h:
88940        (NetworkingContext):
88941        * platform/network/soup/CookieJarSoup.cpp:
88942        (WebCore::cookieJarForSession):
88943        * platform/network/soup/NetworkStorageSessionSoup.cpp: Copied from Source/WebKit2/WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp.
88944        (WebCore::NetworkStorageSession::NetworkStorageSession):
88945        (WebCore::NetworkStorageSession::defaultStorageSession):
88946        (WebCore::NetworkStorageSession::createDefaultSession):
88947        (WebCore::NetworkStorageSession::createPrivateBrowsingSession):
88948        (WebCore::NetworkStorageSession::switchToNewTestingSession):
88949        * platform/network/soup/ResourceHandleSoup.cpp:
88950        (WebCore::sessionFromContext):
88951
88952        * CMakeLists.txt:
88953        * GNUmakefile.list.am:
88954        * PlatformBlackBerry.cmake:
88955        * PlatformEfl.cmake:
88956        * loader/CookieJar.cpp:
88957        (WebCore):
88958        * platform/network/NetworkStorageSession.h:
88959        (NetworkStorageSession):
88960        (WebCore::NetworkStorageSession::setSoupSession):
88961        (WebCore::NetworkStorageSession::soupSession):
88962        * platform/network/NetworkingContext.h:
88963        (NetworkingContext):
88964        * platform/network/soup/CookieJarSoup.cpp:
88965        (WebCore::cookieJarForSession):
88966        * platform/network/soup/ResourceHandleSoup.cpp:
88967        (WebCore::sessionFromContext):
88968
889692013-02-04  Andrey Lushnikov  <lushnikov@chromium.org>
88970
88971        Web Inspector: source location in statusbar has few bugs in it
88972        https://bugs.webkit.org/show_bug.cgi?id=108748
88973
88974        Reviewed by Vsevolod Vlasov.
88975
88976        Call super method statusBarItems in SnippetJavaScriptSourceFrame class
88977        and merge its results. Fix css styles for source location in statusbar
88978        and rename its css class into a less confusing name.
88979
88980        No new test: no change in behaviour.
88981
88982        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
88983        (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
88984        * inspector/front-end/SourceFrame.js:
88985        (WebInspector.SourceFrame):
88986        * inspector/front-end/inspector.css:
88987        (.source-frame-cursor-position):
88988
889892013-02-04  Mike West  <mkwst@chromium.org>
88990
88991        Cleanup: Normalize usage of ExceptionCode in ContainerNode::checkXxxChild()
88992        https://bugs.webkit.org/show_bug.cgi?id=108766
88993
88994        Reviewed by Kentaro Hara.
88995
88996        This patch refactors checkAddChild and checkReplaceChild to remove the
88997        creation of an extra ExceptionCode that's not necessary for the
88998        desired behavior, and to bring the ExceptionCode usage into line with
88999        the rest of WebKit (this was the only case where ExceptionCode was
89000        assigned inside an 'if' statement's condition).
89001
89002        After this patch, 'ec' will always be assigned a value, even if the
89003        result of 'checkAcceptChild' is 0. This would only change behavior if
89004        'ec' was non-zero coming into the function, and 'checkAcceptChild'
89005        returned 0. Since every callsite is either directly after an explicit
89006        zeroing of 'ec', or after an 'if (ec)' clause, that case should never
89007        appear. This patch, therefore, shouldn't visibly change WebKit's
89008        behavior.
89009
89010        * dom/ContainerNode.cpp:
89011        (WebCore::checkAddChild):
89012        (WebCore::checkReplaceChild):
89013
890142013-02-03  David Kilzer  <ddkilzer@apple.com>
89015
89016        Upstream ENABLE_PDFKIT_PLUGIN settting
89017        <http://webkit.org/b/108792>
89018
89019        Reviewed by Tim Horton.
89020
89021        * Configurations/FeatureDefines.xcconfig: Disable PDFKIT_PLUGIN
89022        on iOS since PDFKit is a Mac-only framework.
89023
890242013-02-03  Takashi Sakamoto  <tasak@google.com>
89025
89026        Split per-resolve logic out from StyleResolver.
89027        https://bugs.webkit.org/show_bug.cgi?id=96421
89028
89029        Reviewed by Eric Seidel.
89030
89031        Implemented class StyleResolver::State and added m_state to
89032        StyleResolver. All member variables used for per-resolve logic are
89033        moved into the state class.
89034
89035        No new tests, because just refactoring.
89036
89037        * css/SVGCSSStyleSelector.cpp:
89038        (WebCore::StyleResolver::applySVGProperty):
89039        * css/StyleResolver.cpp:
89040        (WebCore):
89041        (WebCore::StyleResolver::StyleResolver):
89042        (WebCore::StyleResolver::collectMatchingRules):
89043        (WebCore::StyleResolver::collectMatchingRulesForRegion):
89044        (WebCore::StyleResolver::sortAndTransferMatchedRules):
89045        (WebCore::StyleResolver::matchScopedAuthorRules):
89046        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
89047        (WebCore::StyleResolver::matchHostRules):
89048        (WebCore::StyleResolver::matchAuthorRules):
89049        (WebCore::StyleResolver::matchUserRules):
89050        (WebCore::StyleResolver::matchUARules):
89051        (WebCore::StyleResolver::collectMatchingRulesForList):
89052        (WebCore::StyleResolver::sortMatchedRules):
89053        (WebCore::StyleResolver::matchAllRules):
89054        (WebCore::StyleResolver::initElement):
89055        (WebCore::StyleResolver::initForStyleResolve):
89056        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
89057        (WebCore::StyleResolver::canShareStyleWithControl):
89058        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
89059        (WebCore::StyleResolver::canShareStyleWithElement):
89060        (WebCore::StyleResolver::locateSharedStyle):
89061        (WebCore::StyleResolver::styleForElement):
89062        (WebCore::StyleResolver::styleForKeyframe):
89063        (WebCore::StyleResolver::pseudoStyleForElement):
89064        (WebCore::StyleResolver::styleForPage):
89065        (WebCore::StyleResolver::defaultStyleForElement):
89066        (WebCore::StyleResolver::adjustRenderStyle):
89067        (WebCore::StyleResolver::updateFont):
89068        (WebCore::StyleResolver::cacheBorderAndBackground):
89069        (WebCore::StyleResolver::pseudoStyleRulesForElement):
89070        (WebCore::StyleResolver::ruleMatches):
89071        (WebCore::StyleResolver::checkRegionSelector):
89072        (WebCore::StyleResolver::applyProperties):
89073        (WebCore::StyleResolver::applyMatchedProperties):
89074        (WebCore::StyleResolver::isLeftPage):
89075        (WebCore::StyleResolver::applyPropertyToStyle):
89076        (WebCore::StyleResolver::useSVGZoomRules):
89077        (WebCore::createGridTrackBreadth):
89078        (WebCore::createGridTrackMinMax):
89079        (WebCore::createGridTrackGroup):
89080        (WebCore::createGridTrackList):
89081        (WebCore::StyleResolver::resolveVariables):
89082        (WebCore::StyleResolver::applyProperty):
89083        (WebCore::StyleResolver::cachedOrPendingFromValue):
89084        (WebCore::StyleResolver::generatedOrPendingFromValue):
89085        (WebCore::StyleResolver::setOrPendingFromValue):
89086        (WebCore::StyleResolver::cursorOrPendingFromValue):
89087        (WebCore::StyleResolver::checkForTextSizeAdjust):
89088        (WebCore::StyleResolver::initializeFontStyle):
89089        (WebCore::StyleResolver::setFontSize):
89090        (WebCore::StyleResolver::colorFromPrimitiveValue):
89091        (WebCore::StyleResolver::loadPendingSVGDocuments):
89092        (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
89093        (WebCore::StyleResolver::loadPendingShaders):
89094        (WebCore::StyleResolver::parseCustomFilterTransformParameter):
89095        (WebCore::StyleResolver::createFilterOperations):
89096        (WebCore::StyleResolver::loadPendingImage):
89097        (WebCore::StyleResolver::loadPendingImages):
89098        (WebCore::StyleResolver::reportMemoryUsage):
89099        * css/StyleResolver.h:
89100        (WebCore::StyleResolver::style):
89101        (WebCore::StyleResolver::parentStyle):
89102        (WebCore::StyleResolver::rootElementStyle):
89103        (WebCore::StyleResolver::element):
89104        (WebCore::StyleResolver::setFontDescription):
89105        (WebCore::StyleResolver::setZoom):
89106        (WebCore::StyleResolver::setEffectiveZoom):
89107        (WebCore::StyleResolver::setTextSizeAdjust):
89108        (WebCore::StyleResolver::setWritingMode):
89109        (WebCore::StyleResolver::setTextOrientation):
89110        (WebCore::StyleResolver::hasParentNode):
89111        (WebCore::StyleResolver::addMatchedRule):
89112        (StyleResolver):
89113        (State):
89114        (WebCore::StyleResolver::State::State):
89115        (WebCore::StyleResolver::applyPropertyToRegularStyle):
89116        (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
89117        Added "m_state." to access member variables used for per-resolve logic.
89118
891192013-02-03  Kent Tamura  <tkent@chromium.org>
89120
89121        Support setLangAttributeAwareFormControlUIEnabled on Chromium Windows XP
89122        https://bugs.webkit.org/show_bug.cgi?id=108791
89123
89124        Reviewed by Kentaro Hara.
89125
89126        We didn't support setLangAttributeAwareFormControlUIEnabled(true) on
89127        Chromium Windows XP because of lack of LocaleNameToLCID API. This change
89128        add manual mapping from locale names to LCIDs for Windows XP.
89129
89130        No new tests. This doesn't make any behavior changes in products, and
89131        this improves some test results.
89132
89133        * platform/text/win/LocaleWin.cpp:
89134        (WebCore): Define NameToLCIDMap.
89135        (WebCore::removeLastComponent):
89136        Remove the last component separated with '-'.
89137        (WebCore::ensureNameToLCIDMap):
89138        Add locale names used in layout tests.
89139        (WebCore::convertLocaleNameToLCID):
89140        Find an appropriate LCID longest matching with the specified locale name.
89141        (WebCore::LCIDFromLocale):
89142        Use convertLocaleNameToLCID if LocaleNameToLCID is not available.
89143
891442013-02-03  Kent Tamura  <tkent@chromium.org>
89145
89146        Add FocusDirection argument to HTMLTextFormControlElement::handleFocusEvent
89147        https://bugs.webkit.org/show_bug.cgi?id=108775
89148
89149        Reviewed by Hajime Morita.
89150
89151        We'd like to add a FocusDirection argument to
89152        HTMLTextFormControlElement::handleFocusEvent in order to fix Bug
89153        108447. This is a preparation for it.
89154
89155        We need to add FocusDirection arguments to some focus-related functions
89156        to pass it correctly when TAB or Shift+TAB is pressed.
89157
89158        No new tests. This doesn't make any behavior changes.
89159
89160        * html/HTMLTextFormControlElement.cpp:
89161        (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
89162        To pass the FocusDirection argument to handleFocusEvent, we need to add
89163        it to dispatchFocusEvent too.
89164        * html/HTMLTextFormControlElement.h:
89165        (HTMLTextFormControlElement):
89166        Add FocusDirection arugment to dispatchFocusEvent.
89167        (WebCore::HTMLTextFormControlElement::handleFocusEvent):
89168        Add FocusDirection argument.
89169
89170        * dom/Node.cpp:
89171        (WebCore::Node::dispatchFocusEvent): Add FocusDirection argument.
89172        * dom/Node.h:
89173        (Node): Ditto.
89174
89175        * dom/Document.cpp:
89176        (WebCore::Document::setFocusedNode): Add FocusDirection argument in
89177        order to pass it to Node::dispatchFocusEvent.
89178        * dom/Document.h:
89179        (Document): Ditto.
89180
89181        * page/FocusController.cpp:
89182        (WebCore::dispatchEventsOnWindowAndFocusedNode):
89183        Adjust Node::dispatchFocusEvent argument.
89184        (WebCore::FocusController::advanceFocusInDocumentOrder):
89185        Pass FocusDirectio to Element::focus.
89186        (WebCore::FocusController::setFocusedNode):
89187        Add FocusDirection argument in order to pass it to Document::setFocusedNode.
89188        (WebCore::FocusController::advanceFocusDirectionallyInContainer):
89189        Pass FocusDirectio to Element::focus.
89190        * page/FocusController.h:
89191        (FocusController): Add FocusDirection argument to setFocusedNode.
89192
89193        * dom/Element.cpp:
89194        (WebCore::Element::focus):
89195        Add FocusDirection argument to pass it to FocusController::setFocusedNode.
89196        * dom/Element.h:
89197        (Element): Ditto.
89198
89199        * WebCore.exp.in:
89200        Update FocusController::setFocusedNode and Document::setFocusedNode.
89201
89202        * html/HTMLLabelElement.cpp:
89203        (WebCore::HTMLLabelElement::focus): Adjust FocusDirection argument.
89204        * html/HTMLLabelElement.h:
89205        (HTMLLabelElement): Ditto.
89206        * html/HTMLLegendElement.cpp:
89207        (WebCore::HTMLLegendElement::focus): Ditto.
89208        * html/HTMLLegendElement.h:
89209        (HTMLLegendElement): Ditto.
89210        * html/HTMLSelectElement.cpp:
89211        (WebCore::HTMLSelectElement::dispatchFocusEvent): Ditto.
89212        * html/HTMLSelectElement.h:
89213        (HTMLSelectElement): Ditto.
89214
89215        * html/HTMLInputElement.cpp:
89216        (WebCore::HTMLInputElement::defaultFocus):
89217        Add FocusDirection argument in order to pass it from
89218        HTMLInputElement::focus() to HTMLTextFormControlElement::focus().
89219        (WebCore::HTMLInputElement::focus):
89220        Pass the FocusDirection argument to InputType::focus. See above.
89221        (WebCore::HTMLInputElement::handleFocusEvent):
89222        Adjust FocusDirection argument.
89223        * html/HTMLInputElement.h:
89224        (HTMLInputElement):
89225        * html/InputType.cpp:
89226        (WebCore::InputType::focus): Add FocusDirection argument.
89227        * html/InputType.h:
89228        (InputType): Ditto.
89229
89230        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
89231        (WebCore::BaseMultipleFieldsDateAndTimeInputType::focus):
89232        Add FocusDirection argument to follow InputType.
89233        * html/BaseMultipleFieldsDateAndTimeInputType.h:
89234        (BaseMultipleFieldsDateAndTimeInputType): Ditto.
89235
892362013-02-03  Kassy Coan  <kassycoan@chromium.org>
89237
89238        Adds usage instrumentation for indexedDB
89239        Includes new header file in project files
89240
89241        https://bugs.webkit.org/show_bug.cgi?id=107772
89242
89243        Reviewed by Tony Chang.
89244
89245        Currently untestable. Has zero effect apart from histogramming.
89246
89247        * GNUmakefile.list.am:
89248        * Modules/indexeddb/IDBDatabase.cpp:
89249        (WebCore::IDBDatabase::createObjectStore):
89250        (WebCore::IDBDatabase::deleteObjectStore):
89251        (WebCore::IDBDatabase::transaction):
89252        * Modules/indexeddb/IDBFactory.cpp:
89253        (WebCore::IDBFactory::openInternal):
89254        (WebCore::IDBFactory::deleteDatabase):
89255        * Modules/indexeddb/IDBHistograms.h: Added.
89256        (WebCore):
89257        * Target.pri:
89258        * WebCore.gypi:
89259        * WebCore.vcproj/WebCore.vcproj:
89260        * WebCore.xcodeproj/project.pbxproj:
89261
892622013-02-03  Hayato Ito  <hayato@chromium.org>
89263
89264        Split default style-sheet statics out from StyleResolver into its own class
89265        https://bugs.webkit.org/show_bug.cgi?id=107780
89266
89267        Reviewed by Dimitri Glazkov.
89268
89269        Factored static variables and logic about default style sheets out from StyleResolver into its own class
89270        CSSDefaultStyleSheets. This is a following patch after r141373.
89271
89272        No new tests, refactoring only.
89273
89274        * CMakeLists.txt:
89275        * GNUmakefile.list.am:
89276        * Target.pri:
89277        * WebCore.gypi:
89278        * WebCore.xcodeproj/project.pbxproj:
89279        * css/CSSAllInOne.cpp:
89280        * css/CSSDefaultStyleSheets.cpp: Added.
89281        (WebCore):
89282        (WebCore::elementCanUseSimpleDefaultStyle):
89283        (WebCore::screenEval):
89284        (WebCore::printEval):
89285        (WebCore::parseUASheet):
89286        (WebCore::CSSDefaultStyleSheets::initDefaultStyle):
89287        (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
89288        (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
89289        (WebCore::CSSDefaultStyleSheets::viewSourceStyle):
89290        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
89291        * css/CSSDefaultStyleSheets.h: Added.
89292        (WebCore):
89293        (CSSDefaultStyleSheets):
89294        * css/StyleResolver.cpp:
89295        (WebCore):
89296        (WebCore::StyleResolver::StyleResolver):
89297        (WebCore::StyleResolver::matchUARules):
89298        (WebCore::StyleResolver::styleForElement):
89299        (WebCore::StyleResolver::styleForPage):
89300        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):
89301        (WebCore::StyleResolver::collectFeatures):
89302        (WebCore::StyleResolver::reportMemoryUsage):
89303
893042013-02-03  Kentaro Hara  <haraken@chromium.org>
89305
89306        [V8] Simplify CodeGeneratorV8.pm by using InheritsExtendedAttribute("EventTarget")
89307        https://bugs.webkit.org/show_bug.cgi?id=108441
89308
89309        Reviewed by Adam Barth.
89310
89311        A complicated condition in GetInternalFields() can be simplified
89312        by using InheritsExtendedAttribute("EventTarget").
89313
89314        No tests. No change in behavior.
89315
89316        * bindings/scripts/CodeGeneratorV8.pm:
89317        (GetInternalFields):
89318        * dom/EventTarget.idl: Added [EventTarget] which should have been added.
89319        * svg/SVGElementInstance.idl: Ditto.
89320
893212013-02-03  Gustavo Noronha Silva  <gns@gnome.org>
89322
89323        [Soup] Do not use local variables for the client
89324        https://bugs.webkit.org/show_bug.cgi?id=108714
89325
89326        Reviewed by Martin Robinson.
89327
89328        Covered by existing tests, refactoring code only.
89329
89330        We have had problems in the past with the client being destroyed or
89331        changed inside a method or function, and we ended up with a stale
89332        pointer, leading to crashes. This refactoring is an effort to minimize
89333        the possibility of hitting that same issue in the future.
89334
89335        * platform/network/soup/ResourceHandleSoup.cpp:
89336        (WebCore::redirectSkipCallback): no longer use a local variable to hold
89337        the client.
89338        (WebCore::wroteBodyDataCallback): ditto.
89339        (WebCore::nextMultipartResponsePartCallback): ditto.
89340        (WebCore::sendRequestCallback): ditto.
89341        (WebCore::closeCallback): ditto.
89342        (WebCore::readCallback): ditto.
89343
893442013-02-03  Kentaro Hara  <haraken@chromium.org>
89345
89346        [V8] Pass an Isolate to HasInstance() (part 1)
89347        https://bugs.webkit.org/show_bug.cgi?id=108617
89348
89349        Reviewed by Adam Barth.
89350
89351        This is one of efforts to pass an Isolate to GetTemplate().
89352
89353        No tests. No change in behavior.
89354
89355        * bindings/scripts/CodeGeneratorV8.pm:
89356        (JSValueToNative):
89357        * bindings/scripts/test/V8/V8Float64Array.cpp:
89358        (WebCore::Float64ArrayV8Internal::fooCallback):
89359        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
89360        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
89361        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
89362        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
89363        * bindings/scripts/test/V8/V8TestInterface.cpp:
89364        (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetter):
89365        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
89366        * bindings/scripts/test/V8/V8TestObj.cpp:
89367        (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
89368        (WebCore::TestObjV8Internal::XMLObjAttrAttrSetter):
89369        (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
89370        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetter):
89371        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
89372        (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetter):
89373        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
89374        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
89375        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
89376        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
89377        (WebCore::TestObjV8Internal::mutablePointAttrSetter):
89378        (WebCore::TestObjV8Internal::immutablePointAttrSetter):
89379        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
89380        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
89381        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
89382        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
89383        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
89384        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
89385        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
89386        (WebCore::TestObjV8Internal::convert1Callback):
89387        (WebCore::TestObjV8Internal::convert2Callback):
89388        (WebCore::TestObjV8Internal::convert4Callback):
89389        (WebCore::TestObjV8Internal::convert5Callback):
89390        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
89391        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
89392        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
89393        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
89394        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
89395        * bindings/v8/Dictionary.cpp:
89396        (WebCore::Dictionary::get):
89397        * bindings/v8/ScriptProfiler.cpp:
89398        (WebCore::ScriptProfiler::visitNodeWrappers):
89399        * bindings/v8/SerializedScriptValue.cpp:
89400        (WebCore::SerializedScriptValue::SerializedScriptValue):
89401        (WebCore::SerializedScriptValue::deserialize):
89402        * bindings/v8/V8Binding.cpp:
89403        (WebCore::toDOMStringList):
89404        (WebCore::toXPathNSResolver):
89405        * bindings/v8/V8Binding.h:
89406        (WebCore):
89407        * bindings/v8/V8Collection.cpp:
89408        (WebCore::toOptionsCollectionSetter):
89409        * bindings/v8/V8GCController.cpp:
89410        (WebCore::WrapperVisitor::WrapperVisitor):
89411        (WrapperVisitor):
89412        (WebCore::V8GCController::majorGCPrologue):
89413        * bindings/v8/V8NPObject.cpp:
89414        (WebCore::npObjectInvokeImpl):
89415        * bindings/v8/V8Utilities.cpp:
89416        (WebCore::extractTransferables):
89417        * bindings/v8/custom/V8DocumentCustom.cpp:
89418        (WebCore::V8Document::evaluateCallback):
89419
894202013-02-03  Joanmarie Diggs  <jdiggs@igalia.com>
89421
89422        [GTK] Make distcheck fails
89423        https://bugs.webkit.org/show_bug.cgi?id=108756
89424
89425        Reviewed by Kentaro Hara.
89426
89427        * GNUmakefile.list.am: Remove header files which no longer exist;
89428        correct one which got added incorrectly.
89429
894302013-02-03  Kentaro Hara  <haraken@chromium.org>
89431
89432        [V8] Pass an Isolate to HasInstance() (part 3)
89433        https://bugs.webkit.org/show_bug.cgi?id=108622
89434
89435        Reviewed by Adam Barth.
89436
89437        This is one of efforts to pass an Isolate to GetTemplate().
89438
89439        No tests. No change in behavior.
89440
89441        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
89442        (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallback):
89443        (WebCore::V8InjectedScriptHost::typeCallback):
89444        (WebCore::V8InjectedScriptHost::getEventListenersCallback):
89445        * bindings/v8/custom/V8NodeCustom.cpp:
89446        (WebCore::V8Node::insertBeforeCallback):
89447        (WebCore::V8Node::replaceChildCallback):
89448        (WebCore::V8Node::removeChildCallback):
89449        (WebCore::V8Node::appendChildCallback):
89450        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
89451        (WebCore::toWebGLUniformLocation):
89452        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
89453        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
89454        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
89455        (WebCore::V8WebGLRenderingContext::getUniformCallback):
89456        (WebCore::vertexAttribAndUniformHelperf):
89457        (WebCore::uniformHelperi):
89458        (WebCore::uniformMatrixHelper):
89459        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
89460        (WebCore::isDocumentType):
89461        (WebCore::V8XMLHttpRequest::sendCallback):
89462
894632013-02-03  Kentaro Hara  <haraken@chromium.org>
89464
89465        [V8] Pass an Isolate to HasInstance() (part 2)
89466        https://bugs.webkit.org/show_bug.cgi?id=108620
89467
89468        Reviewed by Adam Barth.
89469
89470        This is one of efforts to pass an Isolate to GetTemplate().
89471
89472        No tests. No change in behavior.
89473
89474        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
89475        (WebCore::constructWebGLArray):
89476        (WebCore::setWebGLArrayHelper):
89477        * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
89478        (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
89479        * bindings/v8/custom/V8BlobCustom.cpp:
89480        (WebCore::V8Blob::constructorCallbackCustom):
89481        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
89482        (WebCore::toCanvasStyle):
89483        (WebCore::V8CanvasRenderingContext2D::strokeStyleAccessorSetter):
89484        * bindings/v8/custom/V8ClipboardCustom.cpp:
89485        (WebCore::V8Clipboard::setDragImageCallback):
89486        * bindings/v8/custom/V8CryptoCustom.cpp:
89487        (WebCore::V8Crypto::getRandomValuesCallback):
89488        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
89489        (WebCore::V8DOMFormData::constructorCallbackCustom):
89490        (WebCore::V8DOMFormData::appendCallback):
89491        * bindings/v8/custom/V8DataViewCustom.cpp:
89492        (WebCore::V8DataView::constructorCallbackCustom):
89493        * bindings/v8/custom/V8DocumentCustom.cpp:
89494        (WebCore::V8Document::evaluateCallback):
89495        * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
89496        (WebCore::V8HTMLMediaElement::controllerAccessorSetter):
89497        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
89498        (WebCore::V8HTMLOptionsCollection::addCallback):
89499        * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
89500        (WebCore::removeElement):
89501
895022013-02-03  Mike West  <mkwst@chromium.org>
89503
89504        Cleanup: 'ExceptionCode& ec', not 'ExceptionCode &ec'.
89505        https://bugs.webkit.org/show_bug.cgi?id=108769
89506
89507        Reviewed by Eric Seidel.
89508
89509        Does what it says on the tin: reference parameters should read
89510        'type& name', and this patch fixes the two occurances of 'type &name'
89511        that cropped up for ExceptionCode.
89512
89513        Pure style change; no effect on behavior.
89514
89515        * html/HTMLOptionsCollection.cpp:
89516        (WebCore::HTMLOptionsCollection::add):
89517
895182013-02-02  Jun Jiang  <jun.a.jiang@intel.com>
89519
89520        Optimize some operations for float type in texture format conversions of WebGL
89521        https://bugs.webkit.org/show_bug.cgi?id=107526
89522
89523        Reviewed by Darin Adler.
89524
89525        Some small changes are made to optimize the operations for float type in the texture format conversion of WebGL to improve performance.
89526
89527        Already covered by current tests.
89528
89529        * platform/graphics/GraphicsContext3D.cpp:
89530        (WebCore):
89531
895322013-02-02  Simon Fraser  <simon.fraser@apple.com>
89533
89534        Clean up the storage of dirty bits on nodes in the scrolling state tree
89535        https://bugs.webkit.org/show_bug.cgi?id=108744
89536
89537        Reviewed by Sam Weinig.
89538
89539        ScrollingStateNode and its subclasses used different techniques for
89540        tracking which properties changed. ScrollingStateNode tracked its layers
89541        via a bool member and some layer-specific methods, but also had virtual
89542        methods to allow subclasses to track properties via a bit mask.
89543        
89544        Clean this up by having the base class store the bit mask, and use
89545        enums to specify bits for the various properties. All properties are thus
89546        tracked in the same way. Bits are read and written through non-virtual member
89547        functions on ScrollingStateNode. All bit checking is done via hasChangedProperty().
89548
89549        * page/scrolling/ScrollingStateFixedNode.cpp:
89550        (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode): m_changedProperties is now on the base class.
89551        (WebCore::ScrollingStateFixedNode::updateConstraints): Use setPropertyChanged()
89552        * page/scrolling/ScrollingStateFixedNode.h: Remove overrides that are no longer needed.
89553        * page/scrolling/ScrollingStateNode.cpp:
89554        (WebCore::ScrollingStateNode::ScrollingStateNode): Initialize m_changedProperties,
89555        m_scrollLayerDidChange no longer tracked separately.
89556        (WebCore::ScrollingStateNode::cloneAndReset):
89557        * page/scrolling/ScrollingStateNode.h:
89558        (WebCore::ScrollingStateNode::hasChangedProperties):
89559        (WebCore::ScrollingStateNode::hasChangedProperty): Tests the bit.
89560        (WebCore::ScrollingStateNode::resetChangedProperties): Set all bits to 0.
89561        (WebCore::ScrollingStateNode::setPropertyChanged): Set the bit.
89562        (WebCore::ScrollingStateNode::changedProperties): Private to discourage incorrect usage
89563        (changeProperties() & foo).
89564        * page/scrolling/ScrollingStateScrollingNode.cpp:
89565        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): Base class does the copying now.
89566        (WebCore::ScrollingStateScrollingNode::setViewportRect): Use setPropertyChanged().
89567        (WebCore::ScrollingStateScrollingNode::setContentsSize): Ditto.
89568        (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Etc.
89569        (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
89570        (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
89571        (WebCore::ScrollingStateScrollingNode::setShouldUpdateScrollLayerPositionOnMainThread):
89572        (WebCore::ScrollingStateScrollingNode::setHorizontalScrollElasticity):
89573        (WebCore::ScrollingStateScrollingNode::setVerticalScrollElasticity):
89574        (WebCore::ScrollingStateScrollingNode::setHasEnabledHorizontalScrollbar):
89575        (WebCore::ScrollingStateScrollingNode::setHasEnabledVerticalScrollbar):
89576        (WebCore::ScrollingStateScrollingNode::setHorizontalScrollbarMode):
89577        (WebCore::ScrollingStateScrollingNode::setVerticalScrollbarMode):
89578        (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
89579        (WebCore::ScrollingStateScrollingNode::setScrollOrigin):
89580        * page/scrolling/ScrollingStateScrollingNode.h:
89581        (ScrollingStateScrollingNode):
89582        * page/scrolling/ScrollingStateStickyNode.cpp:
89583        (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
89584        (WebCore::ScrollingStateStickyNode::updateConstraints):
89585        * page/scrolling/ScrollingStateStickyNode.h:
89586        * page/scrolling/ScrollingTree.cpp:
89587        (WebCore::ScrollingTree::commitNewTreeState):
89588        * page/scrolling/ScrollingTreeScrollingNode.cpp:
89589        (WebCore::ScrollingTreeScrollingNode::update):
89590        * page/scrolling/mac/ScrollingStateNodeMac.mm:
89591        (WebCore::ScrollingStateNode::setScrollLayer):
89592        * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
89593        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
89594        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
89595        (WebCore::ScrollingTreeFixedNode::update):
89596        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
89597        (WebCore::ScrollingTreeScrollingNodeMac::update):
89598        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
89599        (WebCore::ScrollingTreeStickyNode::update):
89600
896012013-02-02  Simon Fraser  <simon.fraser@apple.com>
89602
89603        Fixed and sticky nodes have no nodeID set
89604        https://bugs.webkit.org/show_bug.cgi?id=108734
89605
89606        Reviewed by Sam Weinig.
89607        
89608        Push ScrollingNodeIDs onto scrolling nodes at construction time, and thereafter
89609        treat them as readonly. Previously, only the root scrolling node would have a node ID.
89610        
89611        Node IDs aren't actually used by the scrolling tree yet, but are useful for debugging.
89612
89613        Not testable since we only dump the scrolling state tree, not the scrolling
89614        node tree in tests.
89615
89616        * page/scrolling/ScrollingTree.cpp:
89617        (WebCore::ScrollingTree::ScrollingTree): No longer create the root node here;
89618        we can only create it when we know what its ID will be.
89619        (WebCore::ScrollingTree::updateTreeFromStateNode): Create the root node if
89620        necessary. Pass node IDs into create methods.
89621        * page/scrolling/ScrollingTreeNode.cpp:
89622        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
89623        * page/scrolling/ScrollingTreeNode.h:
89624        * page/scrolling/ScrollingTreeScrollingNode.cpp:
89625        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
89626        * page/scrolling/ScrollingTreeScrollingNode.h:
89627        * page/scrolling/mac/ScrollingTreeFixedNode.h:
89628        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
89629        (WebCore::ScrollingTreeFixedNode::create):
89630        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
89631        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
89632        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
89633        (WebCore::ScrollingTreeScrollingNode::create):
89634        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
89635        * page/scrolling/mac/ScrollingTreeStickyNode.h:
89636        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
89637        (WebCore::ScrollingTreeStickyNode::create):
89638        (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
89639
896402013-02-02  Takashi Sakamoto  <tasak@google.com>
89641
89642        Making -webkit-image-set() the first value of background property causes crash.
89643        https://bugs.webkit.org/show_bug.cgi?id=108409
89644
89645        Reviewed by Beth Dakin.
89646
89647        CSSParser::addFillValue should use lval->isBaseValueList() instead
89648        of lval->isValueList(). If lval is -webkit-image-set, rval is appended
89649        to -webkit-image-set.
89650
89651        Test: fast/css/image-set-value-crash-in-fillImageSet.html
89652
89653        * css/CSSParser.cpp:
89654        (WebCore::CSSParser::addFillValue):
89655        If lval is not a value list, lval is initialized by using
89656        CSSValueList::createCommaSeparated(). So we have to check whether
89657        lval is created by CSSValueList::createCommaSeparated() or not.
89658
896592013-02-02  David Kilzer  <ddkilzer@apple.com>
89660
89661        Upstream iOS FeatureDefines
89662        <http://webkit.org/b/108753>
89663
89664        Reviewed by Anders Carlsson.
89665
89666        * Configurations/FeatureDefines.xcconfig:
89667        - ENABLE_DEVICE_ORIENTATION: Add iOS configurations.
89668        - ENABLE_PLUGIN_PROXY_FOR_VIDEO: Ditto.
89669        - FEATURE_DEFINES: Add ENABLE_PLUGIN_PROXY_FOR_VIDEO.  Add
89670          PLATFORM_NAME variant to reduce future merge conflicts. 
89671
896722013-02-02  Philippe Normand  <pnormand@igalia.com>
89673
89674        [GStreamer] Media tests fix after r141695.
89675
89676        Rubber-stamped by Martin Robinson.
89677
89678        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
89679        (WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL): Remove
89680        both fragment and query string for file:// uris before loading.
89681
896822013-02-02  Patrick Gansterer  <paroga@webkit.org>
89683
89684        Build fix for WinCE after r141637.
89685
89686        * platform/graphics/wince/ImageBufferWinCE.cpp:
89687
896882013-02-01  Philippe Normand  <pnormand@igalia.com>
89689
89690        [GStreamer] webkitwebsrc is exposed to application-side
89691        https://bugs.webkit.org/show_bug.cgi?id=108088
89692
89693        Reviewed by Martin Robinson.
89694
89695        Switch the webkitwebsrc to handle webkit+http(s) uris so it is now
89696        explicit that this element is meant to be used preferrably inside
89697        WebKit. This change is internal to the player.
89698
89699        No new tests, covered by existing http/tests/media tests.
89700
89701        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
89702        (WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):
89703        (WebCore):
89704        (WebCore::MediaPlayerPrivateGStreamer::load):
89705        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
89706        (MediaPlayerPrivateGStreamer):
89707        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
89708        (webKitWebSrcGetProtocols):
89709        (webKitWebSrcSetUri):
89710
897112013-02-02  Simon Hausmann  <simon.hausmann@digia.com>
89712
89713        Unreviewed trivial prospective build fix for A17n disabled
89714        configurations.
89715
89716        The dummy computed object attriute cache control functions need to be defined
89717        as being member functions of AXObjectCache, because that's where they are
89718        declared.
89719
89720        * accessibility/AXObjectCache.h:
89721        (WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
89722        (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
89723
897242013-02-02  Antoine Quint  <graouts@apple.com>
89725
89726        Creating a WebInspector.ContextMenu without an event crashes WebCore when calling .show()
89727        https://bugs.webkit.org/show_bug.cgi?id=108636
89728
89729        Reviewed by Pavel Feldman.
89730
89731        Return early if InspectorFrontendHost::showContextMenu() is called without an event and
89732        assert in ContextMenuController::createContextMenu() in case no event was provided.
89733
89734        * inspector/InspectorFrontendHost.cpp:
89735        (WebCore::InspectorFrontendHost::showContextMenu):
89736        * page/ContextMenuController.cpp:
89737        (WebCore::ContextMenuController::createContextMenu):
89738
897392013-02-02  Jonathan Feldstein  <jfeldstein@rim.com>
89740
89741        [BlackBerry] Improper initialization of ANGLEResources
89742        https://bugs.webkit.org/show_bug.cgi?id=101489
89743
89744        Reviewed by Antonio Gomes.
89745
89746        MaxDrawBuffers, OES_standard_derivatives, OES_EGL_image_external and ARB_texture_rectangle have already been initialized through ShBuiltInResources function and these fields do not need to be set again in GraphicsContext3dBlackBerry.cpp. In addition, the extension flags cannot be set to true without getExtension having been called (Khronos WebGL specs, section 5.14.14.). Thus these lines need to be removed.
89747
89748        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
89749        (WebCore::GraphicsContext3D::GraphicsContext3D):
89750
897512013-02-02  Vivek Galatage  <vivek.vg@samsung.com>
89752
89753        Web Inspector: Refactor InspectorDOMStorageAgent::getDOMStorageEntries to report the error messages
89754        https://bugs.webkit.org/show_bug.cgi?id=108611
89755
89756        Reviewed by Pavel Feldman.
89757
89758        Added reporting of various error messages. Moved the modification of output
89759        parameter at a later stage when there are no errors reported.
89760
89761        No new tests as code refactoring.
89762
89763        * inspector/InspectorDOMStorageAgent.cpp:
89764        (WebCore::hadException):
89765        (WebCore):
89766        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
89767
897682013-02-02  Andrey Lushnikov  <lushnikov@chromium.org>
89769
89770        Web Inspector: fix bug in highlighting single chars via highlightRange API of DTE
89771        https://bugs.webkit.org/show_bug.cgi?id=108685
89772
89773        Reviewed by Pavel Feldman.
89774
89775        Use Math.min instead of Math.max in rangesForLine method.
89776
89777        Updated test: text-editor-highlight-api.html
89778
89779        * inspector/front-end/DefaultTextEditor.js:
89780        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.rangesForLine):
89781
897822013-02-02  Tony Gentilcore  <tonyg@chromium.org>
89783
89784        Continue making XSSAuditor thread safe: Remove unsafe AtomicString compares
89785        https://bugs.webkit.org/show_bug.cgi?id=108557
89786
89787        Reviewed by Adam Barth.
89788
89789        Unfortunately HTMLNames comparisons will always be false on a non-main thread
89790        with our current design, so we have to use some "threadSafeMatch" helpers written
89791        for the HTMLBackgroundParser.
89792
89793        Also factor out threadSafeMatch() methods to HTMLParserIdioms.
89794
89795        No new tests because no new functionality.
89796
89797        * html/parser/BackgroundHTMLParser.cpp:
89798        (WebCore):
89799        * html/parser/HTMLParserIdioms.cpp:
89800        (WebCore::threadSafeEqual):
89801        (WebCore):
89802        (WebCore::threadSafeMatch):
89803        * html/parser/HTMLParserIdioms.h:
89804        (WebCore):
89805        * html/parser/XSSAuditor.cpp:
89806        (WebCore::XSSAuditor::eraseAttributeIfInjected):
89807
898082013-02-01  James Simonsen  <simonjam@chromium.org>
89809
89810        Add didChangePriority() to ResourceHandle
89811        https://bugs.webkit.org/show_bug.cgi?id=107995
89812
89813        Reviewed by Darin Fisher.
89814
89815        For PLT, it's important that preloads remain a lower priority than parser requested resources.
89816        This can lead to a 5% improvement.
89817
89818        The plan is to use this plumbing to expose the desired behavior. This patch simply allows a
89819        resource's priority to change and have it propagate to the network layer. An upcoming patch will
89820        lower the priority of preloads and then increase the priority when the parser officially requests
89821        it.
89822
89823        No new tests. No visible change, because priority doesn't change yet.
89824
89825        * loader/cache/CachedResource.cpp:
89826        (WebCore):
89827        (WebCore::CachedResource::setLoadPriority):
89828        * loader/cache/CachedResourceLoader.cpp:
89829        (WebCore::CachedResourceLoader::requestResource): Allow loads to modify priority.
89830        * loader/cache/CachedResourceRequest.h:
89831        (WebCore::CachedResourceRequest::setPriority): Notify when priority changes.
89832        * platform/network/ResourceHandle.cpp:
89833        (WebCore::ResourceHandle::didChangePriority): Added.
89834        (WebCore):
89835        * platform/network/ResourceHandle.h:
89836        (ResourceHandle):
89837        * platform/network/chromium/ResourceHandle.cpp:
89838        (WebCore::ResourceHandleInternal::didChangePriority):
89839        (WebCore):
89840        (WebCore::ResourceHandle::didChangePriority):
89841        * platform/network/chromium/ResourceHandleInternal.h:
89842        (ResourceHandleInternal):
89843
898442013-02-01  Roger Fong  <roger_fong@apple.com>
89845
89846        Unreviewed. Clean up WebCore VS2010 project.
89847
89848        * WebCore.vcxproj/WebCore.vcxproj:
89849        * WebCore.vcxproj/WebCore.vcxproj.filters:
89850        * WebCore.vcxproj/WebCoreCommon.props:
89851        * WebCore.vcxproj/WebCoreGenerated.make:
89852        * WebCore.vcxproj/WebCorePreLink.cmd: Removed.
89853        * WebCore.vcxproj/build-generated-files.sh:
89854
898552013-02-01  Sam Weinig  <sam@webkit.org>
89856
89857        Don't use deprecated method -[NSImage dissolveToPoint:fraction:]
89858        <rdar://problem/11723792>
89859        https://bugs.webkit.org/show_bug.cgi?id=108739
89860
89861        Reviewed by Anders Carlsson.
89862
89863        * platform/mac/DragImageMac.mm:
89864        (WebCore::dissolveDragImageToFraction):
89865        Remove use of deprecated NSImage methods and simplify a bit.
89866
898672013-02-01  Andrey Lushnikov  <lushnikov@chromium.org>
89868
89869        Web Inspector: fix "DOM Exception 8" when deleting lines containing decoration in DTE.
89870        https://bugs.webkit.org/show_bug.cgi?id=108689
89871
89872        Reviewed by Alexander Pavlov.
89873
89874        Add a check that decoration element is still added to the line before trying to delete it. This
89875        won't be true if the whole line is deleted in contentEditable,
89876        and this is the reason for the exception to be thrown.
89877
89878        No new tests.
89879
89880        * inspector/front-end/DefaultTextEditor.js:
89881        (WebInspector.TextEditorMainChunk.prototype.removeAllDecorations):
89882
898832013-02-01  Sheriff Bot  <webkit.review.bot@gmail.com>
89884
89885        Unreviewed, rolling out r141669.
89886        http://trac.webkit.org/changeset/141669
89887        https://bugs.webkit.org/show_bug.cgi?id=108728
89888
89889        Broke the windows build. (Requested by leviw on #webkit).
89890
89891        * rendering/RenderBoxModelObject.cpp:
89892        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
89893        (WebCore):
89894        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
89895        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
89896        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
89897        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
89898        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
89899        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
89900        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
89901        * rendering/RenderBoxModelObject.h:
89902        (RenderBoxModelObject):
89903
899042013-02-01  Emil A Eklund  <eae@chromium.org>
89905
89906        Remove duplicate code in RenderBoxModelObject::computedCSSPadding*
89907        https://bugs.webkit.org/show_bug.cgi?id=108707
89908
89909        Reviewed by Levi Weintraub.
89910        
89911        The computedCSSPaddingTop/Bottom/... methods in
89912        RenderBoxModelObject all do pretty much exactly the same thing
89913        yet share no code.
89914        
89915        Break out shared code into computedCSSPadding method and have
89916        the top/bottom/left/right/... ones call it with the appropriate
89917        length value.
89918
89919        No new tests, no change in functionality.
89920
89921        * rendering/RenderBoxModelObject.cpp:
89922        (WebCore::RenderBoxModelObject::computedCSSPadding):
89923        * rendering/RenderBoxModelObject.h:
89924        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
89925        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
89926        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
89927        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
89928        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
89929        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
89930        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
89931        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
89932        (RenderBoxModelObject):
89933
899342013-02-01  Mark Lam  <mark.lam@apple.com>
89935
89936        Replace ExceptionCode with DatabaseError in the openDatabase() code path.
89937        https://bugs.webkit.org/show_bug.cgi?id=108724.
89938
89939        Reviewed by Alexey Proskuryakov.
89940
89941        Also made DatabaseBackend::performOpenAndVerify() a little more
89942        straightforward and less repetitive.
89943
89944        No new tests.
89945
89946        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
89947        (WebCore::DOMWindowWebDatabase::openDatabase):
89948        * Modules/webdatabase/Database.cpp:
89949        (WebCore::Database::openAndVerifyVersion):
89950        (WebCore::Database::performOpenAndVerify):
89951        * Modules/webdatabase/Database.h:
89952        (Database):
89953        * Modules/webdatabase/DatabaseBackend.cpp:
89954        (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
89955        (WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
89956        (DoneCreatingDatabaseOnExitCaller):
89957        (WebCore::DoneCreatingDatabaseOnExitCaller::openSucceeded):
89958        (WebCore::DatabaseBackend::performOpenAndVerify):
89959        * Modules/webdatabase/DatabaseBackend.h:
89960        * Modules/webdatabase/DatabaseManager.cpp:
89961        (WebCore::DatabaseManager::openDatabase):
89962        (WebCore::DatabaseManager::openDatabaseSync):
89963        * Modules/webdatabase/DatabaseManager.h:
89964        (DatabaseManager):
89965        * Modules/webdatabase/DatabaseSync.cpp:
89966        (WebCore::DatabaseSync::openAndVerifyVersion):
89967        * Modules/webdatabase/DatabaseSync.h:
89968        (DatabaseSync):
89969        * Modules/webdatabase/DatabaseTask.cpp:
89970        (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
89971        (WebCore::Database::DatabaseOpenTask::doPerformTask):
89972        * Modules/webdatabase/DatabaseTask.h:
89973        (WebCore::Database::DatabaseOpenTask::create):
89974        (Database::DatabaseOpenTask):
89975        * Modules/webdatabase/WorkerContextWebDatabase.cpp:
89976        (WebCore::WorkerContextWebDatabase::openDatabase):
89977        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
89978        * WebCore.gypi:
89979
899802013-02-01  Yongjun Zhang  <yongjun_zhang@apple.com>
89981
89982        Document is never released if an image's src attribute is changed to a url blocked by content-security-policy.
89983        https://bugs.webkit.org/show_bug.cgi?id=108545
89984
89985        If we just scheduled an error event due to an null newImage, we should not cancel it when newImage and oldImage
89986        is not the same.  Otherwise we will ref the sourceElement in updateHasPendingEvent (m_hasPendingErrorEvent is true)
89987        but never deref it since we already cancelled the error event.
89988
89989        Reviewed by Alexey Proskuryakov.
89990
89991        Test: fast/images/image-error-event-not-firing.html
89992
89993        * loader/ImageLoader.cpp:
89994        (WebCore::ImageLoader::updateFromElement): don't cancel error event if newImage is null, we want the
89995            error event to fire.
89996
899972013-02-01  Benjamin Poulain  <bpoulain@apple.com>
89998
89999        Clean the String->AtomicString conversion for AnimationController::pauseAnimationAtTime
90000        https://bugs.webkit.org/show_bug.cgi?id=108558
90001
90002        Reviewed by Dean Jackson.
90003
90004        This is a step torward killing the implicit conversion from String to AtomicString.
90005
90006        The animation name are AtomicString. The API is changed all the way to the callers
90007        to take an AtomicString. When needed, we use explicit conversion.
90008
90009        * WebCore.exp.in:
90010        * page/animation/AnimationController.cpp:
90011        (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
90012        (WebCore::AnimationController::pauseAnimationAtTime):
90013        * page/animation/AnimationController.h:
90014        (AnimationController):
90015        * page/animation/AnimationControllerPrivate.h:
90016        (AnimationControllerPrivate):
90017        * page/animation/CompositeAnimation.cpp:
90018        (WebCore::CompositeAnimation::pauseAnimationAtTime):
90019        We should not null check the name. Getting a null name from the HashMap would be
90020        an error from the tests, and the HashMap would never return a value anyway.
90021        * testing/Internals.cpp:
90022        (WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
90023
900242013-02-01  Dominic Mazzoni  <dmazzoni@google.com>
90025
90026        AX: memoize expensive computation during blocks where tree doesn't change
90027        https://bugs.webkit.org/show_bug.cgi?id=106497
90028
90029        Reviewed by Ryosuke Niwa.
90030
90031        Add a cache for computed attributes of AXObjects.
90032        The cache can be enabled at the start of a batch of
90033        read-only operations on the accessibility tree, and
90034        it's cleared automatically when the tree mutates.
90035        Currently accessibilityIsIgnored is cached, since it's
90036        frequently called and relatively expensive to compute.
90037
90038        No new tests.
90039
90040        * accessibility/AXObjectCache.cpp:
90041        (WebCore):
90042        (WebCore::AXComputedObjectAttributeCache::getIgnored):
90043        (WebCore::AXComputedObjectAttributeCache::setIgnored):
90044        (WebCore::AXObjectCache::postNotification):
90045        (WebCore::AXObjectCache::nodeTextChangeNotification):
90046        (WebCore::AXObjectCache::handleScrollbarUpdate):
90047        (WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
90048        (WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
90049        * accessibility/AXObjectCache.h:
90050        (AXComputedObjectAttributeCache):
90051        (WebCore::AXComputedObjectAttributeCache::create):
90052        (WebCore::AXComputedObjectAttributeCache::AXComputedObjectAttributeCache):
90053        (WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes):
90054        (CachedAXObjectAttributes):
90055        (WebCore):
90056        (WebCore::AXObjectCache::computedObjectAttributeCache):
90057        (AXObjectCache):
90058        (WebCore::AXComputedObjectAttributeCache::getIgnored):
90059        (WebCore::AXComputedObjectAttributeCache::setIgnored):
90060        (WebCore::startCachingComputedObjectAttributesUntilTreeMutates):
90061        (WebCore::stopCachingComputedObjectAttributes):
90062        * accessibility/AccessibilityObject.cpp:
90063        (WebCore::AccessibilityObject::findMatchingObjects):
90064        * accessibility/AccessibilityRenderObject.cpp:
90065        (WebCore):
90066        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
90067        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
90068        * accessibility/AccessibilityRenderObject.h:
90069        (AccessibilityRenderObject):
90070
900712013-02-01  Alexey Proskuryakov  <ap@apple.com>
90072
90073        Build fix.
90074
90075        * Modules/webdatabase/DatabaseBackend.cpp: (DoneCreatingDatabaseOnExitCaller):
90076        Don't fail because of an unused member variable in cross-plaform code path.
90077
900782013-02-01  Kevin Ellis  <kevers@chromium.org>
90079
90080        [chromium] Fat scrollbars on Windows in high-DPI mode.
90081        https://bugs.webkit.org/show_bug.cgi?id=108637
90082
90083        Updates mechanism for retrieving scrollbar metrics on the
90084        Windows port of Chromium.  Previously, GetSystemMetrics calls
90085        were used, which fetches prescaled sizes in pixel rather than
90086        logical units, resulting in a double scaling when a device
90087        scale factor is set.  With the patch, the size is retrieved
90088        from the theme engine in DIP.
90089
90090        Reviewed by Adam Barth.
90091
90092        No new tests.
90093
90094        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
90095        (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
90096        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
90097        * rendering/RenderThemeChromiumWin.cpp:
90098        (WebCore):
90099        (WebCore::menuListButtonWidth):
90100
901012013-02-01  Mark Lam  <mark.lam@apple.com>
90102
90103        Clean up calls to DatabaseTracker::add/removeOpenDatabase().
90104        https://bugs.webkit.org/show_bug.cgi?id=108431
90105
90106        Reviewed by Geoffrey Garen.
90107
90108        Also adapted the chromium port to work with this new code.
90109        Chromium parts reviewed by Michael Nordman and David Levin.
90110
90111        This is part of the webdatabase refactoring effort.
90112
90113        No new tests.
90114
90115        * Modules/webdatabase/AbstractDatabaseServer.h:
90116        (AbstractDatabaseServer):
90117        * Modules/webdatabase/Database.cpp:
90118        (WebCore::Database::openAndVerifyVersion):
90119        (WebCore::Database::close):
90120        * Modules/webdatabase/DatabaseBackend.cpp:
90121        (WebCore::DatabaseBackend::DatabaseBackend):
90122        (WebCore::DatabaseBackend::closeDatabase):
90123        (DoneCreatingDatabaseOnExitCaller):
90124        (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
90125        (WebCore::DoneCreatingDatabaseOnExitCaller::~DoneCreatingDatabaseOnExitCaller):
90126        (WebCore::DatabaseBackend::performOpenAndVerify):
90127        * Modules/webdatabase/DatabaseManager.cpp:
90128        (WebCore::DatabaseManager::openDatabase):
90129        (WebCore::DatabaseManager::openDatabaseSync):
90130        * Modules/webdatabase/DatabaseManager.h:
90131        (DatabaseManager):
90132        * Modules/webdatabase/DatabaseServer.cpp:
90133        * Modules/webdatabase/DatabaseServer.h:
90134        * Modules/webdatabase/DatabaseSync.cpp:
90135        (WebCore::DatabaseSync::~DatabaseSync):
90136        (WebCore::DatabaseSync::openAndVerifyVersion):
90137        (WebCore::DatabaseSync::closeImmediately):
90138        * Modules/webdatabase/DatabaseSync.h:
90139        (DatabaseSync):
90140        * Modules/webdatabase/DatabaseTracker.cpp:
90141        (WebCore::DatabaseTracker::doneCreatingDatabase):
90142        (WebCore::DatabaseTracker::addOpenDatabase):
90143        * Modules/webdatabase/DatabaseTracker.h:
90144        (DatabaseTracker):
90145        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
90146        (WebCore::DatabaseTracker::addOpenDatabase):
90147        (WebCore::DatabaseTracker::prepareToOpenDatabase):
90148        (WebCore::DatabaseTracker::failedToOpenDatabase):
90149
901502013-02-01  Andrey Lushnikov  <lushnikov@chromium.org>
90151
90152        Web Inspector: remove extra padding around overlay highlight.
90153        https://bugs.webkit.org/show_bug.cgi?id=108679
90154
90155        Reviewed by Alexander Pavlov.
90156
90157        No new tests: no change in behaviour.
90158
90159        Remove extraWidth from overlay highlight spans.
90160
90161        * inspector/front-end/DefaultTextEditor.js:
90162        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
90163
901642013-02-01  Philip Rogers  <pdr@google.com>
90165
90166        Prevent skipped repaints for children of inner SVG elements
90167        https://bugs.webkit.org/show_bug.cgi?id=108429
90168
90169        Reviewed by Eric Seidel.
90170
90171        This patch fixes a bug caused by r108699 and r133786 where we would not repaint children
90172        of inner SVG elements because "m_didTransformToRootUpdate" was never reset on viewport
90173        containers. The stale m_didTransformToRootUpdate variable caused us to skip child repaints.
90174
90175        I verified that the Robohornet SVG benchmark performance gains in r133786 are not regressed
90176        with this patch.
90177
90178        Test: svg/repaint/svgsvgelement-repaint-children.html
90179
90180        * rendering/svg/RenderSVGViewportContainer.cpp:
90181        (WebCore::RenderSVGViewportContainer::calcViewport):
90182
90183            This can be removed because setNeedsTransformUpdate() will set m_needsTransformUpdate.
90184
90185        (WebCore::RenderSVGViewportContainer::calculateLocalTransform):
90186
90187            This change is straightforward and is similar to the equivalent assignment in
90188            RenderSVGTransformableContainer::calculateLocalTransform().
90189
901902013-02-01  Philip Rogers  <pdr@google.com>
90191
90192        Change hasAlpha to isKnownToBeOpaque and correct the return value for SVG images.
90193        https://bugs.webkit.org/show_bug.cgi?id=106966
90194
90195        Reviewed by Stephen White.
90196
90197        Previously, Image::currentFrameHasAlpha's default implementation returned false so SVG
90198        images always returned false for currentFrameHasAlpha. Additionally, currentFrameHasAlpha
90199        was treated as returning whether the frame had alpha when it would actually conservatively
90200        return true.
90201
90202        This patch renames hasAlpha and currentFrameHasAlpha to isKnownToBeOpaque and
90203        currentFrameIsKnownToBeOpaque, respectively. This rename better describes the actual
90204        functionality. This patch also makes Image::isKnownToBeOpaque a pure virtual function and
90205        correctly implements it for SVG images.
90206
90207        All users of isKnownToBeOpaque access SVG images using CachedImage::imageForRenderer which
90208        currently returns a cached bitmap image. Therefore, this patch will not affect existing
90209        functionality. A regression test has been added that will catch if this changes in the
90210        future (e.g., WK106159 which proposes not returning cached bitmaps). The now unnecessary
90211        isBitmapImage() calls have been removed in this patch.
90212
90213        image-box-shadow.html has been modified to test SVG images.
90214
90215        * css/CSSCrossfadeValue.cpp:
90216        (WebCore::subimageKnownToBeOpaque):
90217        (WebCore::CSSCrossfadeValue::knownToBeOpaque):
90218
90219            Mostly straightforward rename but note the logic has been slightly altered: AND -> OR.
90220
90221        * css/CSSCrossfadeValue.h:
90222        (CSSCrossfadeValue):
90223        * css/CSSGradientValue.cpp:
90224        (WebCore::CSSGradientValue::knownToBeOpaque):
90225        * css/CSSGradientValue.h:
90226        (CSSGradientValue):
90227        * css/CSSImageGeneratorValue.cpp:
90228        (WebCore::CSSImageGeneratorValue::knownToBeOpaque):
90229        * css/CSSImageGeneratorValue.h:
90230        (CSSImageGeneratorValue):
90231        * css/CSSImageValue.cpp:
90232        (WebCore::CSSImageValue::knownToBeOpaque):
90233        * css/CSSImageValue.h:
90234        (CSSImageValue):
90235        * loader/cache/CachedImage.cpp:
90236        (WebCore::CachedImage::currentFrameKnownToBeOpaque):
90237        * loader/cache/CachedImage.h:
90238        (CachedImage):
90239        * platform/graphics/BitmapImage.cpp:
90240        (WebCore::BitmapImage::currentFrameKnownToBeOpaque):
90241        * platform/graphics/BitmapImage.h:
90242        (BitmapImage):
90243        * platform/graphics/GeneratedImage.h:
90244        (GeneratedImage):
90245        * platform/graphics/Image.h:
90246
90247            Note: now a pure virtual function!
90248
90249        (Image):
90250        * platform/graphics/blackberry/LayerTiler.cpp:
90251        (WebCore::LayerTiler::updateTextureContentsIfNeeded):
90252
90253            Removed unnecessary isBitmapImage() checks.
90254
90255        * platform/graphics/cg/GraphicsContext3DCG.cpp:
90256        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
90257
90258            Removed unnecessary isBitmapImage() checks.
90259
90260        * platform/graphics/cg/PDFDocumentImage.h:
90261        (PDFDocumentImage):
90262        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
90263
90264            Removed unnecessary isBitmapImage() checks.
90265
90266        (WebCore::GraphicsLayerChromium::setContentsToImage):
90267        * platform/graphics/qt/StillImageQt.cpp:
90268        (WebCore::StillImage::currentFrameKnownToBeOpaque):
90269        * platform/graphics/qt/StillImageQt.h:
90270        (StillImage):
90271        * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp:
90272        (WebCore::BitmapImageSingleFrameSkia::currentFrameKnownToBeOpaque):
90273        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
90274        (BitmapImageSingleFrameSkia):
90275        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
90276        (WebCore::TextureMapperTile::updateContents):
90277        (WebCore::TextureMapperTiledBackingStore::updateContents):
90278        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
90279        (WebCore::CoordinatedImageBacking::update):
90280        * rendering/RenderImage.cpp:
90281        (WebCore::RenderImage::backgroundIsObscured):
90282
90283            Removed unnecessary isBitmapImage() checks and slightly reworked the logic.
90284
90285        * rendering/style/FillLayer.cpp:
90286        (WebCore::FillLayer::hasOpaqueImage):
90287        * rendering/style/StyleCachedImage.cpp:
90288        (WebCore::StyleCachedImage::knownToBeOpaque):
90289        * rendering/style/StyleCachedImage.h:
90290        (StyleCachedImage):
90291        * rendering/style/StyleCachedImageSet.cpp:
90292        (WebCore::StyleCachedImageSet::knownToBeOpaque):
90293        * rendering/style/StyleCachedImageSet.h:
90294        (StyleCachedImageSet):
90295        * rendering/style/StyleGeneratedImage.cpp:
90296        (WebCore::StyleGeneratedImage::knownToBeOpaque):
90297        * rendering/style/StyleGeneratedImage.h:
90298        (StyleGeneratedImage):
90299        * rendering/style/StyleImage.h:
90300        (StyleImage):
90301        * rendering/style/StylePendingImage.h:
90302        (WebCore::StylePendingImage::knownToBeOpaque):
90303        * svg/graphics/SVGImage.h:
90304        (SVGImage):
90305
903062013-02-01  Brady Eidson  <beidson@apple.com>
90307
90308        Clean up WebArchive loading with the NetworkProcess
90309        <rdar://problem/12695840> and https://bugs.webkit.org/show_bug.cgi?id=108673
90310
90311        Reviewed by Alexey Proskuryakov.
90312
90313        No new tests (No change in WebCore behavior).
90314
90315        Remove a now unneeded function and add a needed export.
90316
90317        * WebCore.exp.in:
90318        * loader/ResourceLoadScheduler.cpp:
90319        * loader/ResourceLoadScheduler.h:
90320
903212013-02-01  Alok Priyadarshi  <alokp@chromium.org>
90322
90323        Print GraphicsLayer::m_contentsOpaque if non-default (true)
90324        https://bugs.webkit.org/show_bug.cgi?id=108354
90325
90326        Reviewed by Simon Fraser.
90327
90328        No new tests. This change facilitates testing of GraphicsLayer opaqueness.
90329
90330        * platform/graphics/GraphicsLayer.cpp:
90331        (WebCore::GraphicsLayer::dumpProperties):
90332
903332013-02-01  Tony Gentilcore  <tonyg@chromium.org>
90334
90335        Continue making XSSAuditor thread safe: Remove dependency on parser's Document URL
90336        https://bugs.webkit.org/show_bug.cgi?id=108655
90337
90338        Reviewed by Adam Barth.
90339
90340        No new tests because no new functionality.
90341
90342        * html/parser/XSSAuditor.cpp:
90343        (WebCore::XSSAuditor::XSSAuditor):
90344        (WebCore::XSSAuditor::init):
90345        (WebCore::XSSAuditor::isLikelySafeResource):
90346        * html/parser/XSSAuditor.h:
90347
903482013-02-01  Jer Noble  <jer.noble@apple.com>
90349
90350        REGRESSION (r141281): Navigating to this HTTP Live Streaming (application/vnd.apple.mpegurl) URL downloads a file instead of playing it in the browser
90351        https://bugs.webkit.org/show_bug.cgi?id=108674
90352        <rdar://problem/13133595>
90353
90354        Reviewed by Eric Carlson.
90355
90356        When passed a HashSet of available MIME types to fill out, QTKit was overwriting the contents, which were
90357        AVFoundation's supported types. Instead, it should be appending to the list of supported types.
90358
90359        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
90360        (WebCore::concatenateHashSets): Added static utility function.
90361        (WebCore::MediaPlayerPrivateQTKit::getSupportedTypes): Concatenate instead of overwriting the passed in MIME types.
90362
903632013-02-01  Beth Dakin  <bdakin@apple.com>
90364
90365        Another speculative windows build fix.
90366
90367        * platform/ScrollAnimator.h:
90368
903692013-01-31  Dirk Schulze  <krit@webkit.org>
90370
90371        [canvas] Add more constructors to Path
90372        https://bugs.webkit.org/show_bug.cgi?id=108587
90373
90374        Reviewed by Dean Jackson.
90375
90376        Add more constructors to Path object to make it possible
90377        to copy Path objects and parse SVG strings into a Path
90378        object that can be used on the canvas context afterwards.
90379
90380        Test: fast/canvas/canvas-path-constructors.html
90381
90382        * html/canvas/DOMPath.h: New constructors for Path.
90383        (WebCore::DOMPath::create):
90384        (WebCore::DOMPath::DOMPath):
90385        * html/canvas/DOMPath.idl: Ditto.
90386
903872013-02-01  Zan Dobersek  <zdobersek@igalia.com>
90388
90389        [GTK] Add WTFURL source files to the build
90390        https://bugs.webkit.org/show_bug.cgi?id=108215
90391
90392        Reviewed by Benjamin Poulain.
90393
90394        * platform/KURLWTFURL.cpp:
90395        (WebCore): Only use the stub implementation of the fileSystemPath method for the
90396        Apple ports, other ports should for now still rely on their platform-specific implementations.
90397
903982013-02-01  Mike West  <mkwst@chromium.org>
90399
90400        Remove call to SecurityOrigin::canAccessDatabase from IDB constructor.
90401        https://bugs.webkit.org/show_bug.cgi?id=108477
90402
90403        Reviewed by Adam Barth.
90404
90405        This change removes the 'SecurityOrigin::canAccessDatabase' check from
90406        the constructor for the 'indexedDB' property on both DOMWindow and
90407        WorkerContext. After the patch for http://wkbug.com/94171 this check
90408        is redundant, as all the entry points to IDB are now gated on access
90409        being granted.
90410
90411        As a side-effect, dropping the check in WorkerContextIndexedDatabase
90412        allows us to stop holding a pointer to the ScriptExecutionContext we're
90413        extending, which can only be a good thing.
90414
90415        The tests in storage/indexeddb should continue to pass.
90416
90417        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
90418        (WebCore::DOMWindowIndexedDatabase::indexedDB):
90419            Drop the SecurityOrigin::canAccessDatabase check.
90420        * Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
90421        (WebCore::WorkerContextIndexedDatabase::WorkerContextIndexedDatabase):
90422        (WebCore::WorkerContextIndexedDatabase::from):
90423            Drop the ScriptExecutionContext parameter from the class's
90424            constructor and callsites.
90425        (WebCore::WorkerContextIndexedDatabase::indexedDB):
90426            Drop the SecurityOrigin::canAccessDatabase check.
90427        * Modules/indexeddb/WorkerContextIndexedDatabase.h:
90428        (WorkerContextIndexedDatabase):
90429            Drop the stored pointer to ScriptExecutionContext, as we no longer
90430            need it in ::indexedDB.
90431
904322013-02-01  Beth Dakin  <bdakin@apple.com>
90433
90434        Speculative Windows build fix. 
90435
90436        * platform/ScrollAnimator.h:
90437        (WebCore):
90438
904392013-02-01  Ryosuke Niwa  <rniwa@webkit.org>
90440
90441        Smart link can erroneously move caret after an URL when typing immediately before it
90442        https://bugs.webkit.org/show_bug.cgi?id=92812
90443
90444        Reviewed by Enrica Casucci.
90445
90446        The bug was caused by smart link being triggered even when a user finished typing a word
90447        immediately before an URL. We already had a logic to avoid smart-linking an URL when the caret
90448        was after the URL but we were missing a check for when the caret is before the URL.
90449
90450        Fixed the bug by adding this check.
90451
90452        Test: editing/inserting/smart-link-when-caret-is-moved-before-URL.html
90453
90454        * editing/Editor.cpp:
90455        (WebCore::Editor::markAndReplaceFor):
90456
904572013-02-01  Roger Fong  <roger_fong@apple.com>
90458
90459        Unreviewed. Windows build fix. FloatSize.cpp was not included in the project.
90460
90461        * WebCore.vcproj/WebCore.vcproj:
90462
904632013-02-01  Julien Chaffraix  <jchaffraix@webkit.org>
90464
90465        [CSS Grid Layout] computePreferredLogicalWidths doesn't handle minmax tracks
90466        https://bugs.webkit.org/show_bug.cgi?id=108403
90467
90468        Reviewed by Ojan Vafai.
90469
90470        Test: fast/css-grid-layout/grid-preferred-logical-widths.html
90471
90472        The code before this change was only handling minmax() with 2 fixed widths.
90473        The new code was updated to remove this artificial limitation and we now
90474        support all combination of minmax().
90475
90476        * rendering/RenderGrid.cpp:
90477        (WebCore::RenderGrid::computePreferredLogicalWidths):
90478        Updated to use computePreferredTrackWidth..
90479
90480        (WebCore::RenderGrid::computePreferredTrackWidth):
90481        Added this helper function that implements the core of the preferred width
90482        computation.
90483
90484        * rendering/RenderGrid.h: Added computePreferredTrackWidth.
90485
904862013-02-01  Nate Chapin  <japhet@chromium.org>
90487
90488        Cached main resources report a zero identifer on 304s
90489        https://bugs.webkit.org/show_bug.cgi?id=108402
90490
90491        Reviewed by Adam Barth.
90492
90493        Test: http/tests/cache/iframe-304-crash.html
90494
90495        * loader/MainResourceLoader.cpp:
90496        (WebCore::MainResourceLoader::responseReceived): Throughout, check m_identifierForLoadWithoutResourceLoader
90497            instead of !loader() to determine whether MainResourceLoader needs to synthesize resource load callbacks.
90498        (WebCore::MainResourceLoader::dataReceived):
90499        (WebCore::MainResourceLoader::didFinishLoading):
90500
905012013-02-01  Nico Weber  <thakis@chromium.org>
90502
90503        [chromium] Build webkit with enable_web_intents set to 0.
90504        https://bugs.webkit.org/show_bug.cgi?id=108408
90505
90506        Reviewed by Tony Chang.
90507
90508        I'll then make chromium build fine with that, then switch
90509        enable_web_intents to 0, roll that into webkit, and then
90510        actually remove the code hidden behind this flag.
90511
90512        * bindings/v8/custom/V8IntentCustom.cpp:
90513
905142013-02-01  Pavel Feldman  <pfeldman@chromium.org>
90515
90516        Web Inspector: make console object state hint non-active
90517        https://bugs.webkit.org/show_bug.cgi?id=108642
90518
90519        Reviewed by Vsevolod Vlasov.
90520
90521        Otherwise it seems like an active element user could click.
90522
90523        * inspector/front-end/inspector.css:
90524        (.object-info-state-note):
90525
905262013-02-01  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
90527
90528        Zero size gradient should paint nothing on canvas
90529        https://bugs.webkit.org/show_bug.cgi?id=102654
90530
90531        Reviewed by Dirk Schulze.
90532
90533        The functions fill(), fillText(), stroke(), strokeRect() and strokeText()
90534        should paint nothing on canvas when the canvas fillStyle/strokeStyle
90535        is set to a zero size gradient.
90536 
90537        Tests: fast/canvas/canvas-fill-zeroSizeGradient.html
90538               fast/canvas/canvas-fillRect-zeroSizeGradient.html
90539               fast/canvas/canvas-fillText-zeroSizeGradient.html
90540               fast/canvas/canvas-stroke-zeroSizeGradient.html
90541               fast/canvas/canvas-strokeRect-zeroSizeGradient.html
90542               fast/canvas/canvas-strokeText-zeroSizeGradient.html
90543
90544        * html/canvas/CanvasRenderingContext2D.cpp:
90545        (WebCore::CanvasRenderingContext2D::fill):
90546        (WebCore::CanvasRenderingContext2D::stroke):
90547        (WebCore::CanvasRenderingContext2D::strokeRect):
90548        (WebCore::CanvasRenderingContext2D::drawTextInternal):
90549
905502013-02-01  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
90551
90552        HRTFElevation segfault if a null AudioBus is returned by loadPlatformResource
90553        https://bugs.webkit.org/show_bug.cgi?id=108504
90554
90555        Reviewed by Kenneth Russell.
90556
90557        Fixed a segfault by checking if the returned AudioBus is null or not.
90558        If it is, we should early return in the same way it was being done already
90559        in HRTFElevation::calculateKernelsForAzimuthElevation();
90560
90561        No new tests, covered by existing tests.
90562
90563        * platform/audio/HRTFElevation.cpp:
90564        (WebCore::getConcatenatedImpulseResponsesForSubject):
90565
905662013-02-01  Beth Dakin  <bdakin@apple.com>
90567
90568        ScrollAnimatorMac should adopt contentAreaScrolledInDirection
90569        https://bugs.webkit.org/show_bug.cgi?id=108647
90570        -and corresponding-
90571        <rdar://problem/12434779>
90572
90573        Reviewed by Anders Carlsson.
90574
90575        This patch makes notifyContentAreaScrolled() and notifyPositionChanged() take a 
90576        FloatSize parameter that represents the scroll delta so that it can be passed 
90577        along to contentAreaScrolledInDirection:. 
90578
90579        Pass along the scroll delta.
90580        * platform/ScrollAnimator.cpp:
90581        (WebCore::ScrollAnimator::scroll):
90582        (WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation):
90583
90584        The delta is not needed in this base-class implementation. It will only be needed 
90585        in the ScrollAnimatorMac override.
90586        (WebCore::ScrollAnimator::notifyPositionChanged):
90587        * platform/ScrollAnimator.h:
90588        (WebCore::ScrollAnimator::notifyContentAreaScrolled):
90589
90590        Pass along the delta.
90591        * platform/ScrollAnimatorNone.cpp:
90592        (WebCore::ScrollAnimatorNone::scrollToOffsetWithoutAnimation):
90593        (WebCore::ScrollAnimatorNone::animationTimerFired):
90594        * platform/ScrollableArea.cpp:
90595        (WebCore::ScrollableArea::scrollPositionChanged):
90596
90597        Add contentAreaScrolledInDirection: to the NSScrollerImpDetails.
90598        * platform/mac/NSScrollerImpDetails.h:
90599
90600        New member variable m_contentAreaScrolledTimerScrollDelta stores the current 
90601        scroll delta while we are waiting for m_sendContentAreaScrolledTimer to fire.
90602        * platform/mac/ScrollAnimatorMac.h:
90603
90604        We need this so that we can call just contentAreaScrolled if 
90605        contentAreaScrolledInDirection: is not available.
90606        * platform/mac/ScrollAnimatorMac.mm:
90607        (supportsContentAreaScrolledInDirection):
90608
90609        Pass along the delta.
90610        (WebCore::ScrollAnimatorMac::immediateScrollTo):
90611        (WebCore::ScrollAnimatorMac::notifyPositionChanged):
90612        (WebCore::ScrollAnimatorMac::mayBeginScrollGesture):
90613        (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
90614        (WebCore::ScrollAnimatorMac::immediateScrollBy):
90615        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledSoon):
90616
90617        If contentAreaScrolledInDirection: is available, call it with the delta, and then 
90618        reset our delta. Otherwise, still call contentAreaScrolled.
90619        (WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
90620
906212013-02-01  Pavel Feldman  <pfeldman@chromium.org>
90622
90623        Web Inspector: [file selector dialog] for mixed case queries, score uppercase letters only when assessing camelcase.
90624        https://bugs.webkit.org/show_bug.cgi?id=108639
90625
90626        Reviewed by Vsevolod Vlasov.
90627
90628        * inspector/front-end/FilteredItemSelectionDialog.js:
90629        (WebInspector.FilteredItemSelectionDialog.prototype._createScoringRegex):
90630
906312013-02-01  Robert Hogan  <robert@webkit.org>
90632
90633        Padding in a parent inline preceding an empty inline child should be counted towards width
90634        https://bugs.webkit.org/show_bug.cgi?id=108226
90635
90636        Reviewed by Levi Weintraub.
90637
90638        Add the border/padding/margin from an empty inline's parent inline if it is the first or last
90639        child of the inline. 
90640
90641        Tests: fast/inline/parent-inline-element-padding-contributes-width.html
90642               fast/inline/positioned-element-padding-contributes-width.html
90643
90644        * rendering/RenderBlockLineLayout.cpp:
90645        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
90646
906472013-02-01  Tony Gentilcore  <tonyg@chromium.org>
90648
90649        Continue making XSSAuditor thread safe: Remove dependencies on m_parser from init()
90650        https://bugs.webkit.org/show_bug.cgi?id=108531
90651
90652        Reviewed by Adam Barth.
90653
90654        The threaded HTML parser will create and init() the XSSAuditor on the main thread, but filterToken() will be called on the background.
90655
90656        No new tests because no change in functionality.
90657
90658        * html/parser/HTMLDocumentParser.cpp:
90659        (WebCore::HTMLDocumentParser::pumpTokenizer):
90660        * html/parser/XSSAuditor.cpp:
90661        (WebCore::XSSAuditor::XSSAuditor):
90662        (WebCore::XSSAuditor::init):
90663        (WebCore::XSSAuditor::filterToken):
90664        * html/parser/XSSAuditor.h:
90665        (WebCore):
90666        (XSSAuditor):
90667
906682013-02-01  Brady Eidson  <beidson@apple.com>
90669
90670        Remove unnecessary parameter from DocumentLoader::scheduleArchiveLoad
90671        https://bugs.webkit.org/show_bug.cgi?id=108654
90672
90673        Reviewed by Alexey Proskuryakov.
90674
90675        No new tests (No behavior change.)
90676
90677        Remove the KURL parameter parameter from this method which, in practice,
90678        is always the same as the url of the ResourceRequest parameter.
90679
90680        * loader/DocumentLoader.cpp:
90681        (WebCore::DocumentLoader::scheduleArchiveLoad):
90682        * loader/DocumentLoader.h:
90683
90684        * loader/ResourceLoader.cpp:
90685        (WebCore::ResourceLoader::start):
90686
906872013-02-01  Pavel Feldman  <pfeldman@chromium.org>
90688
90689        Web Inspector: relax goto file matching again.
90690        https://bugs.webkit.org/show_bug.cgi?id=108346
90691
90692        Reviewed by Vsevolod Vlasov.
90693
90694        This change brings back behavior introduced in r116244.
90695
90696        * inspector/front-end/FilteredItemSelectionDialog.js:
90697        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
90698        (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegex):
90699        (WebInspector.FilteredItemSelectionDialog.prototype._createScoringRegex):
90700        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
90701        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
90702        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
90703        (WebInspector.FilteredItemSelectionDialog.prototype.itemElement):
90704        (WebInspector.OpenResourceDialog):
90705        * inspector/front-end/utilities.js:
90706        (String.regexSpecialCharacters):
90707        (String.prototype.escapeForRegExp):
90708
907092013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>
90710
90711        Web Inspector: Navigator should not create tree elements for uiSourceCodes unless neededm should populate folders on expand only.
90712        https://bugs.webkit.org/show_bug.cgi?id=108601
90713
90714        Reviewed by Pavel Feldman.
90715
90716        Tree elememnts for uiSourceCodes are not created until really needed anymore.
90717        They are now created when parent folder tree elememnts are expanded or when uiSourceCode is revealed in navigator.
90718
90719        * inspector/front-end/NavigatorView.js:
90720        (WebInspector.NavigatorView):
90721        (WebInspector.NavigatorView.prototype.addUISourceCode):
90722        (WebInspector.NavigatorView.prototype._getOrCreateScriptTreeElement):
90723        (WebInspector.NavigatorView.prototype._getScriptTreeElement):
90724        (WebInspector.NavigatorView.prototype._createScriptTreeElement):
90725        (WebInspector.NavigatorView.prototype._removeScriptTreeElement):
90726        (WebInspector.NavigatorView.prototype._updateScriptTitle):
90727        (WebInspector.NavigatorView.prototype.isScriptSourceAdded):
90728        (WebInspector.NavigatorView.prototype.revealUISourceCode):
90729        (WebInspector.NavigatorView.prototype.removeUISourceCode):
90730        (WebInspector.NavigatorView.prototype.reset):
90731        (WebInspector.NavigatorView.prototype.createFolderTreeElement):
90732        (WebInspector.NavigatorView.prototype._populateFolderTreeElement):
90733        (WebInspector.NavigatorView.prototype._addScriptTreeElement):
90734        (WebInspector.NavigatorView.prototype._adoptUISourceCode):
90735        (WebInspector.NavigatorFolderTreeElement):
90736        (WebInspector.NavigatorFolderTreeElement.prototype.onpopulate):
90737
907382013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>
90739
90740        Web Inspector: TabbedEditorContainer.History performance optimization.
90741        https://bugs.webkit.org/show_bug.cgi?id=108581
90742
90743        Introduced history items indexing by url.
90744
90745        Reviewed by Pavel Feldman.
90746
90747        Covered by existing test.
90748
90749        * inspector/front-end/TabbedEditorContainer.js:
90750        (WebInspector.TabbedEditorContainer.History):
90751        (WebInspector.TabbedEditorContainer.History.prototype.index):
90752        (WebInspector.TabbedEditorContainer.History.prototype._rebuildItemIndex):
90753        (WebInspector.TabbedEditorContainer.History.prototype.update):
90754        (WebInspector.TabbedEditorContainer.History.prototype.remove):
90755
907562013-02-01  Geoffrey Garen  <ggaren@apple.com>
90757
90758        Added TriState to WTF and started using it in one place
90759        https://bugs.webkit.org/show_bug.cgi?id=108628
90760
90761        Reviewed by Beth Dakin.
90762
90763        * editing/EditingStyle.h:
90764        (WebCore): Moved TriState to WTF so it can be used in more places.
90765
907662013-02-01  Pavel Feldman  <pfeldman@chromium.org>
90767
90768        Web Inspector: Follow up to r141260: fixing renamed style.
90769        Not reviewed.
90770
90771        * inspector/front-end/FilteredItemSelectionDialog.js:
90772        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
90773        (WebInspector.FilteredItemSelectionDialog.prototype._onClick):
90774        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
90775
907762013-02-01  Alexis Menard  <alexis@webkit.org>
90777
90778        Enable unprefixed CSS transitions by default.
90779        https://bugs.webkit.org/show_bug.cgi?id=108216
90780
90781        Reviewed by Dean Jackson.
90782
90783        Rename the flag CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
90784        to CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED which will be used later to 
90785        guard the unprefixing work for CSS Transforms and animations. Remove the
90786        various #ifdefs and conditional generations.
90787
90788        * Configurations/FeatureDefines.xcconfig:
90789        * DerivedSources.cpp:
90790        * GNUmakefile.features.am.in:
90791        * css/CSSPropertyNames.in:
90792        * dom/EventNames.in:
90793        * dom/TransitionEvent.cpp:
90794        * dom/TransitionEvent.h:
90795        * dom/TransitionEvent.idl:
90796        * page/DOMWindow.idl:
90797        * page/animation/AnimationController.cpp:
90798        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
90799
908002013-02-01  Kentaro Hara  <haraken@chromium.org>
90801
90802        Unreviewed, rolling out r141548.
90803        http://trac.webkit.org/changeset/141548
90804        https://bugs.webkit.org/show_bug.cgi?id=108579
90805
90806        userscript-plugin-document.html is flaky
90807
90808        * bindings/v8/DOMDataStore.h:
90809        (WebCore::DOMDataStore::setWrapperInObject):
90810        * bindings/v8/V8GCController.cpp:
90811        (WebCore):
90812        (WebCore::gcTree):
90813        (WebCore::V8GCController::didCreateWrapperForNode):
90814        (WebCore::V8GCController::gcPrologue):
90815        (WebCore::V8GCController::minorGCPrologue):
90816        (WebCore::V8GCController::majorGCPrologue):
90817        * bindings/v8/V8GCController.h:
90818        (V8GCController):
90819
908202013-02-01  Andrey Adaikin  <aandrey@chromium.org>
90821
90822        Web Inspector: fix jscompiler warnings
90823        https://bugs.webkit.org/show_bug.cgi?id=108604
90824
90825        Reviewed by Pavel Feldman.
90826
90827        * inspector/front-end/ConsoleView.js:
90828        (WebInspector.ConsoleGroup.prototype.addMessage):
90829        * inspector/front-end/ContextMenu.js:
90830        (WebInspector.ContextSubMenuItem):
90831        * inspector/front-end/ImageView.js:
90832        (WebInspector.ImageView.prototype._copyImageURL):
90833        (WebInspector.ImageView.prototype._openInNewTab):
90834        * inspector/front-end/NetworkPanel.js:
90835        (WebInspector.NetworkLogView.prototype._clearBrowserCache):
90836        (WebInspector.NetworkLogView.prototype._clearBrowserCookies):
90837        * inspector/front-end/ResourcesPanel.js:
90838        (WebInspector.IDBDatabaseTreeElement.prototype._refreshIndexedDB):
90839        * inspector/front-end/ScriptsNavigator.js:
90840        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
90841        (WebInspector.SnippetsNavigatorView.prototype._handleRenameSnippet):
90842        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
90843        (WebInspector.SnippetsNavigatorView.prototype._handleCreateSnippet):
90844        * inspector/front-end/Toolbar.js:
90845        (WebInspector.Toolbar.prototype._isDockedToBottom):
90846
908472013-02-01  Jae Hyun Park  <jae.park@company100.net>
90848
90849
90850        Coordinated Graphics : Sort Target.pri and class declarations in alphabetical order.
90851        https://bugs.webkit.org/show_bug.cgi?id=108590
90852
90853        Reviewed by Noam Rosenthal.
90854
90855        Sort CoordinatedGraphics files in Target.pri in alphabetical order.
90856
90857        No new tests. No change in behavior.
90858
90859        * Target.pri:
90860
908612013-02-01  Ilya Tikhonovsky  <loislo@chromium.org>
90862
90863        Web Inspector: Native Memory Instrumentation: provide edge names to class members in all WebCore instrumented classes.
90864        https://bugs.webkit.org/show_bug.cgi?id=107369
90865
90866        Reviewed by Yury Semikhatsky.
90867
90868        It is almost mechanical change generated by a script.
90869        Late I'll implement name to edge name consistency check in clang plugin.
90870
90871        * Modules/webaudio/AudioContext.cpp:
90872        (WebCore::AudioContext::reportMemoryUsage):
90873        * Modules/webaudio/AudioNode.cpp:
90874        (WebCore::AudioNode::reportMemoryUsage):
90875        * bindings/js/ScriptWrappable.h:
90876        (WebCore::ScriptWrappable::reportMemoryUsage):
90877        * bindings/v8/DOMDataStore.cpp:
90878        (WebCore::DOMDataStore::reportMemoryUsage):
90879        * bindings/v8/DOMWrapperMap.h:
90880        (WebCore::DOMWrapperMap::reportMemoryUsage):
90881        * bindings/v8/V8PerIsolateData.cpp:
90882        (WebCore::V8PerIsolateData::reportMemoryUsage):
90883        * bindings/v8/V8ValueCache.cpp:
90884        (WebCore::StringCache::reportMemoryUsage):
90885        * css/CSSBorderImageSliceValue.cpp:
90886        (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
90887        * css/CSSCalculationValue.cpp:
90888        * css/CSSCanvasValue.cpp:
90889        (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
90890        * css/CSSCharsetRule.cpp:
90891        (WebCore::CSSCharsetRule::reportMemoryUsage):
90892        * css/CSSComputedStyleDeclaration.cpp:
90893        (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
90894        * css/CSSCrossfadeValue.cpp:
90895        (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
90896        * css/CSSCursorImageValue.cpp:
90897        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
90898        * css/CSSFontFaceRule.cpp:
90899        (WebCore::CSSFontFaceRule::reportMemoryUsage):
90900        * css/CSSFontFaceSrcValue.cpp:
90901        (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
90902        * css/CSSFunctionValue.cpp:
90903        (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
90904        * css/CSSGradientValue.cpp:
90905        (WebCore::CSSGradientColorStop::reportMemoryUsage):
90906        (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
90907        (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
90908        (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
90909        * css/CSSGroupingRule.cpp:
90910        (WebCore::CSSGroupingRule::reportMemoryUsage):
90911        * css/CSSImageGeneratorValue.cpp:
90912        (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
90913        * css/CSSImageSetValue.cpp:
90914        (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
90915        (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
90916        * css/CSSImageValue.cpp:
90917        (WebCore::CSSImageValue::reportDescendantMemoryUsage):
90918        * css/CSSImportRule.cpp:
90919        (WebCore::CSSImportRule::reportMemoryUsage):
90920        * css/CSSMediaRule.cpp:
90921        (WebCore::CSSMediaRule::reportMemoryUsage):
90922        * css/CSSPageRule.cpp:
90923        (WebCore::CSSPageRule::reportMemoryUsage):
90924        * css/CSSPrimitiveValue.cpp:
90925        (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
90926        * css/CSSProperty.cpp:
90927        (WebCore::CSSProperty::reportMemoryUsage):
90928        * css/CSSReflectValue.cpp:
90929        (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
90930        * css/CSSRule.cpp:
90931        (WebCore::CSSRule::reportMemoryUsage):
90932        * css/CSSRuleList.cpp:
90933        (WebCore::StaticCSSRuleList::reportMemoryUsage):
90934        * css/CSSRuleList.h:
90935        * css/CSSSelectorList.cpp:
90936        (WebCore::CSSSelectorList::reportMemoryUsage):
90937        * css/CSSStyleRule.cpp:
90938        (WebCore::CSSStyleRule::reportMemoryUsage):
90939        * css/CSSStyleSheet.cpp:
90940        (WebCore::CSSStyleSheet::reportMemoryUsage):
90941        * css/CSSValue.cpp:
90942        (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
90943        * css/CSSValueList.cpp:
90944        (WebCore::CSSValueList::reportDescendantMemoryUsage):
90945        * css/CSSVariableValue.h:
90946        (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
90947        * css/FontFeatureValue.cpp:
90948        (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
90949        * css/FontValue.cpp:
90950        (WebCore::FontValue::reportDescendantMemoryUsage):
90951        * css/MediaList.cpp:
90952        (WebCore::MediaQuerySet::reportMemoryUsage):
90953        (WebCore::MediaList::reportMemoryUsage):
90954        * css/MediaQuery.cpp:
90955        (WebCore::MediaQuery::reportMemoryUsage):
90956        * css/MediaQueryExp.cpp:
90957        (WebCore::MediaQueryExp::reportMemoryUsage):
90958        * css/PropertySetCSSStyleDeclaration.cpp:
90959        (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
90960        (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
90961        (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
90962        * css/RuleFeature.cpp:
90963        (WebCore::RuleFeatureSet::reportMemoryUsage):
90964        * css/RuleSet.cpp:
90965        (WebCore::RuleData::reportMemoryUsage):
90966        (WebCore::RuleSet::reportMemoryUsage):
90967        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
90968        * css/ShadowValue.cpp:
90969        (WebCore::ShadowValue::reportDescendantMemoryUsage):
90970        * css/StylePropertySet.cpp:
90971        (WebCore::StylePropertySet::reportMemoryUsage):
90972        * css/StyleResolver.cpp:
90973        (WebCore::StyleResolver::MatchedProperties::reportMemoryUsage):
90974        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
90975        (WebCore::MediaQueryResult::reportMemoryUsage):
90976        (WebCore::StyleResolver::reportMemoryUsage):
90977        * css/StyleRule.cpp:
90978        (WebCore::StyleRule::reportDescendantMemoryUsage):
90979        (WebCore::StyleRulePage::reportDescendantMemoryUsage):
90980        (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
90981        (WebCore::StyleRuleGroup::reportDescendantMemoryUsage):
90982        (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
90983        (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
90984        (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
90985        * css/StyleRuleImport.cpp:
90986        (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
90987        * css/StyleScopeResolver.cpp:
90988        (WebCore::StyleScopeResolver::reportMemoryUsage):
90989        * css/StyleSheetContents.cpp:
90990        (WebCore::StyleSheetContents::reportMemoryUsage):
90991        * css/WebKitCSSKeyframeRule.cpp:
90992        (WebCore::StyleKeyframe::reportMemoryUsage):
90993        (WebCore::WebKitCSSKeyframeRule::reportMemoryUsage):
90994        * css/WebKitCSSKeyframesRule.cpp:
90995        (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
90996        (WebCore::WebKitCSSKeyframesRule::reportMemoryUsage):
90997        * css/WebKitCSSSVGDocumentValue.cpp:
90998        (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
90999        * css/WebKitCSSShaderValue.cpp:
91000        (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
91001        * css/WebKitCSSViewportRule.cpp:
91002        (WebCore::WebKitCSSViewportRule::reportMemoryUsage):
91003        * dom/Attribute.h:
91004        (WebCore::Attribute::reportMemoryUsage):
91005        * dom/CharacterData.cpp:
91006        (WebCore::CharacterData::reportMemoryUsage):
91007        * dom/ContainerNode.cpp:
91008        (WebCore::ContainerNode::reportMemoryUsage):
91009        * dom/ContainerNode.h:
91010        (ContainerNode):
91011        * dom/Document.cpp:
91012        (WebCore::Document::reportMemoryUsage):
91013        * dom/DocumentEventQueue.cpp:
91014        (WebCore::DocumentEventQueue::reportMemoryUsage):
91015        * dom/DocumentOrderedMap.cpp:
91016        (WebCore::DocumentOrderedMap::reportMemoryUsage):
91017        * dom/DocumentStyleSheetCollection.cpp:
91018        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
91019        * dom/Element.cpp:
91020        (WebCore::Element::reportMemoryUsage):
91021        * dom/ElementAttributeData.cpp:
91022        (WebCore::ElementAttributeData::reportMemoryUsage):
91023        * dom/ElementRareData.cpp:
91024        (WebCore::ElementRareData::reportMemoryUsage):
91025        * dom/ElementShadow.cpp:
91026        (WebCore::ElementShadow::reportMemoryUsage):
91027        * dom/Event.cpp:
91028        (WebCore::Event::reportMemoryUsage):
91029        * dom/LiveNodeList.cpp:
91030        (WebCore::LiveNodeListBase::reportMemoryUsage):
91031        * dom/Node.cpp:
91032        (WebCore::Node::reportMemoryUsage):
91033        * dom/NodeRareData.cpp:
91034        (WebCore::NodeListsNodeData::reportMemoryUsage):
91035        (WebCore::NodeRareData::reportMemoryUsage):
91036        * dom/QualifiedName.cpp:
91037        (WebCore::QualifiedName::reportMemoryUsage):
91038        (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
91039        * dom/ScriptExecutionContext.cpp:
91040        (WebCore::ScriptExecutionContext::reportMemoryUsage):
91041        * dom/SecurityContext.cpp:
91042        (WebCore::SecurityContext::reportMemoryUsage):
91043        * dom/ShadowRoot.cpp:
91044        (WebCore::ShadowRoot::reportMemoryUsage):
91045        * dom/TreeScope.cpp:
91046        (WebCore::TreeScope::reportMemoryUsage):
91047        * html/HTMLCanvasElement.cpp:
91048        (WebCore::HTMLCanvasElement::reportMemoryUsage):
91049        * html/HTMLFormControlElement.cpp:
91050        (WebCore::HTMLFormControlElement::reportMemoryUsage):
91051        * html/HTMLImageElement.cpp:
91052        (WebCore::HTMLImageElement::reportMemoryUsage):
91053        * html/HTMLInputElement.cpp:
91054        (WebCore::HTMLInputElement::reportMemoryUsage):
91055        * html/HTMLMediaElement.cpp:
91056        (WebCore::HTMLMediaElement::reportMemoryUsage):
91057        * html/HTMLTextFormControlElement.cpp:
91058        (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
91059        * inspector/HeapGraphSerializer.cpp:
91060        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
91061        (WebCore::HeapGraphSerializer::reportNode):
91062        (WebCore::HeapGraphSerializer::reportMemoryUsage):
91063        * inspector/HeapGraphSerializer.h:
91064        (HeapGraphSerializer):
91065        * inspector/InspectorBaseAgent.cpp:
91066        (WebCore::InspectorBaseAgentInterface::reportMemoryUsage):
91067        * inspector/InspectorController.cpp:
91068        (WebCore::InspectorController::reportMemoryUsage):
91069        * inspector/InspectorDOMStorageAgent.cpp:
91070        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
91071        * inspector/InspectorDOMStorageResource.cpp:
91072        (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
91073        * inspector/InspectorDebuggerAgent.cpp:
91074        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
91075        (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
91076        * inspector/InspectorMemoryAgent.cpp:
91077        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
91078        * inspector/InspectorOverlay.cpp:
91079        (WebCore::InspectorOverlay::reportMemoryUsage):
91080        * inspector/InspectorProfilerAgent.cpp:
91081        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
91082        * inspector/InspectorResourceAgent.cpp:
91083        (WebCore::InspectorResourceAgent::reportMemoryUsage):
91084        * inspector/MemoryInstrumentationImpl.cpp:
91085        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
91086        (WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
91087        * inspector/NetworkResourcesData.cpp:
91088        (WebCore::XHRReplayData::reportMemoryUsage):
91089        (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
91090        (WebCore::NetworkResourcesData::reportMemoryUsage):
91091        * loader/CachedMetadata.cpp:
91092        (WebCore::CachedMetadata::reportMemoryUsage):
91093        * loader/DocumentLoader.cpp:
91094        (WebCore::DocumentLoader::reportMemoryUsage):
91095        * loader/FrameLoader.cpp:
91096        (WebCore::FrameLoader::reportMemoryUsage):
91097        * loader/MainResourceLoader.cpp:
91098        (WebCore::MainResourceLoader::reportMemoryUsage):
91099        * loader/Prerenderer.cpp:
91100        (WebCore::Prerenderer::reportMemoryUsage):
91101        * loader/ResourceBuffer.cpp:
91102        (WebCore::ResourceBuffer::reportMemoryUsage):
91103        * loader/ResourceLoader.cpp:
91104        (WebCore::ResourceLoader::reportMemoryUsage):
91105        * loader/SubresourceLoader.cpp:
91106        (WebCore::SubresourceLoader::reportMemoryUsage):
91107        * loader/SubstituteData.cpp:
91108        (WebCore::SubstituteData::reportMemoryUsage):
91109        * loader/cache/CachedCSSStyleSheet.cpp:
91110        (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
91111        * loader/cache/CachedFont.cpp:
91112        (WebCore::CachedFont::reportMemoryUsage):
91113        * loader/cache/CachedImage.cpp:
91114        (WebCore::CachedImage::reportMemoryUsage):
91115        * loader/cache/CachedResource.cpp:
91116        (WebCore::CachedResource::reportMemoryUsage):
91117        * loader/cache/CachedResourceHandle.cpp:
91118        (WebCore::CachedResourceHandleBase::reportMemoryUsage):
91119        * loader/cache/CachedResourceLoader.cpp:
91120        (WebCore::CachedResourceLoader::reportMemoryUsage):
91121        * loader/cache/CachedSVGDocument.cpp:
91122        (WebCore::CachedSVGDocument::reportMemoryUsage):
91123        * loader/cache/CachedScript.cpp:
91124        (WebCore::CachedScript::reportMemoryUsage):
91125        * loader/cache/CachedShader.cpp:
91126        (WebCore::CachedShader::reportMemoryUsage):
91127        * loader/cache/CachedXSLStyleSheet.cpp:
91128        (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
91129        * loader/cache/MemoryCache.cpp:
91130        (WebCore::MemoryCache::reportMemoryUsage):
91131        * page/DOMTimer.cpp:
91132        (WebCore::DOMTimer::reportMemoryUsage):
91133        * page/Frame.cpp:
91134        (WebCore::Frame::reportMemoryUsage):
91135        * page/Page.cpp:
91136        (WebCore::Page::reportMemoryUsage):
91137        * platform/KURL.cpp:
91138        (WebCore::KURL::reportMemoryUsage):
91139        * platform/KURLGoogle.cpp:
91140        (WebCore::KURLGooglePrivate::reportMemoryUsage):
91141        * platform/KURLWTFURLImpl.h:
91142        (WebCore::KURLWTFURLImpl::reportMemoryUsage):
91143        * platform/ScrollableArea.cpp:
91144        (WebCore::ScrollableArea::reportMemoryUsage):
91145        * platform/SharedBuffer.cpp:
91146        (WebCore::SharedBuffer::reportMemoryUsage):
91147        * platform/audio/AudioArray.h:
91148        (WebCore::AudioArray::reportMemoryUsage):
91149        * platform/audio/FFTFrame.cpp:
91150        (WebCore::FFTFrame::reportMemoryUsage):
91151        * platform/audio/HRTFDatabase.cpp:
91152        (WebCore::HRTFDatabase::reportMemoryUsage):
91153        * platform/audio/HRTFDatabaseLoader.cpp:
91154        (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
91155        * platform/audio/HRTFElevation.cpp:
91156        (WebCore::HRTFElevation::reportMemoryUsage):
91157        * platform/audio/HRTFKernel.cpp:
91158        (WebCore::HRTFKernel::reportMemoryUsage):
91159        * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp:
91160        (reportMemoryUsage):
91161        * platform/graphics/BitmapImage.cpp:
91162        (WebCore::BitmapImage::reportMemoryUsage):
91163        (WebCore::FrameData::reportMemoryUsage):
91164        * platform/graphics/CrossfadeGeneratedImage.cpp:
91165        (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
91166        * platform/graphics/GeneratorGeneratedImage.cpp:
91167        (WebCore::GeneratorGeneratedImage::reportMemoryUsage):
91168        * platform/graphics/GraphicsLayer.cpp:
91169        (WebCore::GraphicsLayer::reportMemoryUsage):
91170        * platform/graphics/ImageBuffer.cpp:
91171        (WebCore::ImageBuffer::reportMemoryUsage):
91172        * platform/graphics/ImageSource.cpp:
91173        (WebCore::ImageSource::reportMemoryUsage):
91174        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
91175        (WebCore::GraphicsLayerChromium::reportMemoryUsage):
91176        * platform/graphics/skia/ImageBufferSkia.cpp:
91177        (WebCore::ImageBufferData::reportMemoryUsage):
91178        * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
91179        (reportMemoryUsage):
91180        * platform/graphics/skia/NativeImageSkia.cpp:
91181        (WebCore::NativeImageSkia::reportMemoryUsage):
91182        * platform/image-decoders/ImageDecoder.cpp:
91183        (WebCore::ImageFrame::reportMemoryUsage):
91184        (WebCore):
91185        (WebCore::ImageDecoder::reportMemoryUsage):
91186        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
91187        (WebCore::ImageFrame::reportMemoryUsage):
91188        * platform/network/FormData.cpp:
91189        (WebCore::FormData::reportMemoryUsage):
91190        (WebCore::FormDataElement::reportMemoryUsage):
91191        * platform/network/ResourceRequestBase.cpp:
91192        (WebCore::ResourceRequestBase::reportMemoryUsageBase):
91193        * platform/network/ResourceResponseBase.cpp:
91194        (WebCore::ResourceResponseBase::reportMemoryUsage):
91195        * platform/network/chromium/ResourceRequest.cpp:
91196        (WebCore::ResourceRequest::reportMemoryUsage):
91197        * rendering/InlineBox.cpp:
91198        (WebCore::InlineBox::reportMemoryUsage):
91199        * rendering/InlineFlowBox.cpp:
91200        (WebCore::InlineFlowBox::reportMemoryUsage):
91201        * rendering/InlineTextBox.cpp:
91202        (WebCore::InlineTextBox::reportMemoryUsage):
91203        * rendering/RenderBlock.cpp:
91204        (WebCore::RenderBlock::reportMemoryUsage):
91205        * rendering/RenderBox.cpp:
91206        (WebCore::RenderBox::reportMemoryUsage):
91207        * rendering/RenderFrameSet.cpp:
91208        (WebCore::RenderFrameSet::reportMemoryUsage):
91209        (WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
91210        * rendering/RenderInline.cpp:
91211        (WebCore::RenderInline::reportMemoryUsage):
91212        * rendering/RenderLayer.cpp:
91213        (WebCore::RenderLayer::reportMemoryUsage):
91214        * rendering/RenderLayerBacking.cpp:
91215        (WebCore::RenderLayerBacking::reportMemoryUsage):
91216        * rendering/RenderLayerCompositor.cpp:
91217        (WebCore::RenderLayerCompositor::reportMemoryUsage):
91218        * rendering/RenderListMarker.cpp:
91219        (WebCore::RenderListMarker::reportMemoryUsage):
91220        * rendering/RenderObject.cpp:
91221        (WebCore::RenderObject::reportMemoryUsage):
91222        * rendering/RenderTableCol.cpp:
91223        (WebCore::RenderTableCol::reportMemoryUsage):
91224        * rendering/RenderTableRow.cpp:
91225        (WebCore::RenderTableRow::reportMemoryUsage):
91226        * rendering/RenderTableSection.cpp:
91227        (WebCore::RenderTableSection::reportMemoryUsage):
91228        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
91229        (WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
91230        * rendering/RenderText.cpp:
91231        (WebCore::RenderText::reportMemoryUsage):
91232        * rendering/RenderView.cpp:
91233        (WebCore::RenderView::reportMemoryUsage):
91234        * rendering/style/DataRef.h:
91235        (WebCore::DataRef::reportMemoryUsage):
91236        * rendering/style/RenderStyle.cpp:
91237        (WebCore::RenderStyle::reportMemoryUsage):
91238        * rendering/style/StyleRareInheritedData.cpp:
91239        (WebCore::StyleRareInheritedData::reportMemoryUsage):
91240        * rendering/style/StyleRareNonInheritedData.cpp:
91241        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
91242        * svg/SVGPaint.cpp:
91243        (WebCore::SVGPaint::reportDescendantMemoryUsage):
91244        * svg/graphics/SVGImage.cpp:
91245        (WebCore::SVGImage::reportMemoryUsage):
91246        * xml/XMLHttpRequest.cpp:
91247        (WebCore::XMLHttpRequest::reportMemoryUsage):
91248
912492013-02-01  Philippe Normand  <pnormand@igalia.com>
91250
91251        [GTK][GStreamer] FullscreenVideoControllerGtk implementation
91252        https://bugs.webkit.org/show_bug.cgi?id=107398
91253
91254        Reviewed by Gustavo Noronha Silva.
91255
91256        NATIVE_FULLSCREEN_VIDEO support for the GTK port. The previous
91257        FullscreenVideoController implementation was refactored as a
91258        sub-class of FullscreenVideoControllerGStreamer and hooked in the
91259        MediaPlayerPrivateGStreamer backend.
91260
91261        * GNUmakefile.list.am:
91262        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
91263        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
91264        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
91265        * platform/graphics/gtk/FullscreenVideoControllerGtk.cpp: Renamed from Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.cpp.
91266        * platform/graphics/gtk/FullscreenVideoControllerGtk.h: Renamed from Source/WebKit/gtk/WebCoreSupport/FullscreenVideoController.h.
91267
912682013-02-01  Andrey Lushnikov  <lushnikov@chromium.org>
91269
91270        Web Inspector: fix cursor location in Source Frame
91271        https://bugs.webkit.org/show_bug.cgi?id=108592
91272
91273        Reviewed by Pavel Feldman.
91274
91275        Normalize range before computing amount of lines in
91276        _updateSourcePosition.
91277
91278        No new tests.
91279
91280        * inspector/front-end/SourceFrame.js:
91281        (WebInspector.SourceFrame.prototype._updateSourcePosition): Normalize text range.
91282        * inspector/front-end/inspector.css: Slightly bigger left padding for the text.
91283        (.source-frame-position):
91284
912852013-02-01  Kentaro Hara  <haraken@chromium.org>
91286
91287        Unreviewed build fix after r141553.
91288
91289        * bindings/scripts/CodeGeneratorV8.pm:
91290        (GenerateImplementation):
91291        * bindings/scripts/test/V8/V8Float64Array.cpp:
91292        (WebCore::V8Float64Array::HasInstance):
91293        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
91294        (WebCore::V8TestActiveDOMObject::HasInstance):
91295        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
91296        (WebCore::V8TestCustomNamedGetter::HasInstance):
91297        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
91298        (WebCore::V8TestEventConstructor::HasInstance):
91299        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
91300        (WebCore::V8TestEventTarget::HasInstance):
91301        * bindings/scripts/test/V8/V8TestException.cpp:
91302        (WebCore::V8TestException::HasInstance):
91303        * bindings/scripts/test/V8/V8TestInterface.cpp:
91304        (WebCore::V8TestInterface::HasInstance):
91305        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
91306        (WebCore::V8TestMediaQueryListListener::HasInstance):
91307        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
91308        (WebCore::V8TestNamedConstructor::HasInstance):
91309        * bindings/scripts/test/V8/V8TestNode.cpp:
91310        (WebCore::V8TestNode::HasInstance):
91311        * bindings/scripts/test/V8/V8TestObj.cpp:
91312        (WebCore::V8TestObj::HasInstance):
91313        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
91314        (WebCore::V8TestOverloadedConstructors::HasInstance):
91315        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
91316        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
91317
913182013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>
91319
91320        Web Inspector: Sources panel navigator reveal and expand fixes.
91321        https://bugs.webkit.org/show_bug.cgi?id=108584
91322
91323        Reviewed by Pavel Feldman.
91324
91325        Navigator folders are not expanded by default anymore.
91326        Made domain folder expanded for inspected page main frame domain.
91327        UISourceCodes are now added to navigator before editor container
91328        so that they could be revealed if editor container decides to show them.
91329
91330        * inspector/front-end/NavigatorView.js:
91331        (WebInspector.BaseNavigatorTreeElement.prototype.onattach):
91332        (WebInspector.NavigatorFolderTreeElement.prototype.onattach):
91333        * inspector/front-end/ScriptsPanel.js:
91334        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
91335
913362013-02-01  Andrey Adaikin  <aandrey@chromium.org>
91337
91338        Web Inspector: [Canvas] drop trace log in the backend when deleting profile in frontend
91339        https://bugs.webkit.org/show_bug.cgi?id=108591
91340
91341        Reviewed by Pavel Feldman.
91342
91343        Send a dropTraceLog command to the backend when deleting a profile header from the sidebar.
91344        Before we were sending the command only upon deleting an existing view of a profile, so we  would not
91345        sent the command if the view was not created or if a profile header was removed via context menu (the ondelete() method).
91346        Drive-by: fixed an odd formatting of property functions.
91347
91348        * inspector/front-end/CanvasProfileView.js:
91349        (WebInspector.CanvasProfileView.prototype.dispose):
91350        (WebInspector.CanvasProfileHeader.prototype.reset):
91351        * inspector/front-end/ProfilesPanel.js:
91352        (WebInspector.ProfileHeader.prototype.reset):
91353        (WebInspector.ProfileHeader.prototype.load):
91354        (WebInspector.ProfileHeader.prototype.canSaveToFile):
91355        (WebInspector.ProfileHeader.prototype.saveToFile):
91356        (WebInspector.ProfileHeader.prototype.loadFromFile):
91357        (WebInspector.ProfileHeader.prototype.fromFile):
91358        (WebInspector.ProfilesPanel):
91359        (WebInspector.ProfilesPanel.prototype._reset):
91360        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
91361
913622013-02-01  Chris Fleizach  <cfleizach@apple.com>
91363
91364        AX: when aria-activedescendant is used with a ComboBox role, focus should not be changed
91365        https://bugs.webkit.org/show_bug.cgi?id=108596
91366
91367        Reviewed by Ryosuke Niwa.
91368
91369        Normally, an aria-activedescendant change causes a focus change to be triggered.
91370        However, when used in conjunction with a combo box, this causes problems for screen readers.
91371        Namely, the user expects focus to remain in the text field so that the user can keep typing. 
91372        If focus moves to an item in the combobox list, it is not possible to keep typing.
91373
91374        The solution is to not trigger a focus change in this case and instead use a selected children change notification.
91375
91376        Test: platform/mac/accessibility/combobox-activedescendant-notifications.html
91377
91378        * accessibility/AccessibilityRenderObject.cpp:
91379        (WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant):
91380        (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant):
91381        (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
91382        * accessibility/AccessibilityRenderObject.h:
91383        (AccessibilityRenderObject):
91384        * accessibility/mac/AXObjectCacheMac.mm:
91385        (WebCore::AXObjectCache::postPlatformNotification):
91386
913872013-02-01  Chris Fleizach  <cfleizach@apple.com>
91388
91389        [Mac] REGRESSION(r140974): accessibility/lists.html fails on Lion=
91390        https://bugs.webkit.org/show_bug.cgi?id=108291
91391
91392        Reviewed by Ryosuke Niwa.
91393
91394        This accounts for differences in what AppKit gives for accessibility role descriptions between platforms
91395        when the subrole is not recognized, and standardizes it for WebKit.
91396
91397        Unskip a failing Lion test
91398
91399        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
91400        (-[WebAccessibilityObjectWrapper roleDescription]):
91401
914022013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>
91403
91404        Web Inspector: Replace localeCompare in NavigatorView with compareTo.
91405        https://bugs.webkit.org/show_bug.cgi?id=108585
91406
91407        Reviewed by Pavel Feldman.
91408
91409        Replaced String.prototype.localeCompare with String.prototype.compareTo
91410        in NavigatorView to improve performance.
91411
91412        * inspector/front-end/NavigatorView.js:
91413        (WebInspector.NavigatorTreeOutline._treeElementsCompare):
91414
914152013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>
91416
91417        Web Inspector: File system pending requests list is not cleared after processing.
91418        https://bugs.webkit.org/show_bug.cgi?id=108573
91419
91420        Reviewed by Pavel Feldman.
91421
91422        * inspector/front-end/IsolatedFileSystemModel.js:
91423        (WebInspector.IsolatedFileSystemModel.prototype._processPendingFileSystemRequests):
91424
914252013-02-01  Tom Sepez  <tsepez@chromium.org>
91426
91427        Dubious cast from HTMLCollection to HTMLAllCollection
91428        https://bugs.webkit.org/show_bug.cgi?id=108538
91429
91430        Reviewed by Adam Barth.
91431
91432        Patch is tested by enabling V8 binding integrity on HTMLAllCollection and
91433        running the existing tests without introducing new crashes.
91434
91435        * dom/Document.cpp:
91436        (WebCore::Document::all):
91437        Pass correct type to template.
91438        
91439        * html/HTMLAllCollection.cpp:
91440        (WebCore::HTMLAllCollection::create):
91441        (WebCore::HTMLAllCollection::HTMLAllCollection):
91442        * html/HTMLAllCollection.h:
91443        (HTMLAllCollection):
91444        Make create() method arguments compatible with template above.
91445
91446        * html/HTMLAllCollection.idl:
91447        Enable binding integrity.
91448
914492013-02-01  Ken Kania  <kkania@chromium.org>
91450
91451        Web Inspector: Add support for handling modal dialogs
91452        https://bugs.webkit.org/show_bug.cgi?id=107883
91453
91454        Reviewed by Pavel Feldman.
91455
91456        Introduce support for being notified when a JavaScript modal dialog
91457        is opening and closing, as well as a new command for accepting or
91458        dismissing the dialog.
91459
91460        Test: inspector-protocol/page/willRunJavaScriptDialog.html
91461
91462        * inspector/Inspector.json:
91463        * inspector/InspectorClient.h:
91464        (WebCore::InspectorClient::handleJavaScriptDialog):
91465        (InspectorClient):
91466        * inspector/InspectorInstrumentation.cpp:
91467        (WebCore):
91468        (WebCore::InspectorInstrumentation::willRunJavaScriptDialogImpl):
91469        (WebCore::InspectorInstrumentation::didRunJavaScriptDialogImpl):
91470        * inspector/InspectorInstrumentation.h:
91471        (InspectorInstrumentation):
91472        (WebCore::InspectorInstrumentation::willRunJavaScriptDialog):
91473        (WebCore):
91474        (WebCore::InspectorInstrumentation::didRunJavaScriptDialog):
91475        * inspector/InspectorPageAgent.cpp:
91476        (WebCore::InspectorPageAgent::willRunJavaScriptDialog):
91477        (WebCore):
91478        (WebCore::InspectorPageAgent::didRunJavaScriptDialog):
91479        (WebCore::InspectorPageAgent::handleJavaScriptDialog):
91480        * inspector/InspectorPageAgent.h:
91481        * inspector/front-end/ResourceTreeModel.js:
91482        (WebInspector.PageDispatcher.prototype.frameStartedLoading):
91483        (WebInspector.PageDispatcher.prototype.frameStoppedLoading):
91484        (WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
91485        (WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
91486        (WebInspector.PageDispatcher.prototype.javascriptDialogOpening):
91487        (WebInspector.PageDispatcher.prototype.javascriptDialogClosed):
91488        * page/Chrome.cpp:
91489        (WebCore::Chrome::runBeforeUnloadConfirmPanel):
91490        (WebCore::Chrome::runJavaScriptAlert):
91491        (WebCore::Chrome::runJavaScriptConfirm):
91492        (WebCore::Chrome::runJavaScriptPrompt):
91493
914942013-02-01  Dan Alcantara  <dfalcantara@chromium.org>
91495
91496        Touch disambiguation blacklist is not being queried properly
91497        https://bugs.webkit.org/show_bug.cgi?id=108222
91498
91499        Reviewed by Adam Barth.
91500
91501        TEST=WebFrameTest::DisambiguationPopupBlacklist
91502
91503        Fix the blacklist so that we check it for the right nodes.
91504        Add a chromium test to check that the blacklist is being built and used
91505        correctly.  Also update the other DisambiguationPopup tests to
91506        use the new page scale method.
91507
91508        * page/TouchDisambiguation.cpp:
91509        (WebCore::findGoodTouchTargets):
91510
915112013-01-31  Kentaro Hara  <haraken@chromium.org>
91512
91513        [V8] Add a temporary optional Isolate parameter to HasInstance()
91514        https://bugs.webkit.org/show_bug.cgi?id=108567
91515
91516        Reviewed by Adam Barth.
91517
91518        The optional Isolate parameter will be removed once all call sites have an Isolate.
91519        It will require several patches.
91520
91521        No tests. No change in behavior.
91522
91523        * bindings/scripts/CodeGeneratorV8.pm:
91524        (GenerateHeader):
91525        (GenerateNormalAttrSetter):
91526        (GenerateParametersCheckExpression):
91527        (GenerateParametersCheck):
91528        (GenerateImplementation):
91529        * bindings/scripts/test/V8/V8Float64Array.cpp:
91530        (WebCore::V8Float64Array::HasInstance):
91531        * bindings/scripts/test/V8/V8Float64Array.h:
91532        (V8Float64Array):
91533        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
91534        (WebCore::V8TestActiveDOMObject::HasInstance):
91535        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
91536        (V8TestActiveDOMObject):
91537        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
91538        (WebCore::V8TestCustomNamedGetter::HasInstance):
91539        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
91540        (V8TestCustomNamedGetter):
91541        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
91542        (WebCore::V8TestEventConstructor::HasInstance):
91543        * bindings/scripts/test/V8/V8TestEventConstructor.h:
91544        (V8TestEventConstructor):
91545        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
91546        (WebCore::V8TestEventTarget::HasInstance):
91547        * bindings/scripts/test/V8/V8TestEventTarget.h:
91548        (V8TestEventTarget):
91549        * bindings/scripts/test/V8/V8TestException.cpp:
91550        (WebCore::V8TestException::HasInstance):
91551        * bindings/scripts/test/V8/V8TestException.h:
91552        (V8TestException):
91553        * bindings/scripts/test/V8/V8TestInterface.cpp:
91554        (WebCore::V8TestInterface::HasInstance):
91555        * bindings/scripts/test/V8/V8TestInterface.h:
91556        (V8TestInterface):
91557        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
91558        (WebCore::V8TestMediaQueryListListener::HasInstance):
91559        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
91560        (V8TestMediaQueryListListener):
91561        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
91562        (WebCore::V8TestNamedConstructor::HasInstance):
91563        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
91564        (V8TestNamedConstructor):
91565        * bindings/scripts/test/V8/V8TestNode.cpp:
91566        (WebCore::V8TestNode::HasInstance):
91567        * bindings/scripts/test/V8/V8TestNode.h:
91568        (V8TestNode):
91569        * bindings/scripts/test/V8/V8TestObj.cpp:
91570        (WebCore::TestObjV8Internal::overloadedMethodCallback):
91571        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
91572        (WebCore::V8TestObj::HasInstance):
91573        * bindings/scripts/test/V8/V8TestObj.h:
91574        (V8TestObj):
91575        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
91576        (WebCore::V8TestOverloadedConstructors::constructorCallback):
91577        (WebCore::V8TestOverloadedConstructors::HasInstance):
91578        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
91579        (V8TestOverloadedConstructors):
91580        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
91581        (WebCore::V8TestSerializedScriptValueInterface::HasInstance):
91582        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
91583        (V8TestSerializedScriptValueInterface):
91584
915852013-02-01  Nils Barth  <nbarth@google.com>
91586
91587        [CPP,GObject,ObjC] Add 'static' skip to CodeGenerator{CPP,GObject,ObjC}.pm
91588        https://bugs.webkit.org/show_bug.cgi?id=108578
91589
91590        Reviewed by Kentaro Hara.
91591
91592        Since CPP/GObject/ObjC code generators (CodeGenerator{CPP,GObject,ObjC}.pm)
91593        do not support static attributes, add test to skip these.
91594        This lets us remove #if macro from static in test files and not need
91595        these in future.
91596
91597        Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
91598        Test: bindings/scripts/test/TestSupplemental.idl (run-bindings-test)
91599
91600        * bindings/scripts/CodeGeneratorCPP.pm:
91601        (SkipAttribute):
91602        * bindings/scripts/CodeGeneratorGObject.pm:
91603        (SkipAttribute):
91604        * bindings/scripts/CodeGeneratorObjC.pm:
91605        (SkipAttribute):
91606        * bindings/scripts/test/TestObj.idl:
91607        * bindings/scripts/test/TestSupplemental.idl:
91608
916092013-02-01  Kentaro Hara  <haraken@chromium.org>
91610
91611        [V8] Remove V8GCController::m_edenNodes
91612        https://bugs.webkit.org/show_bug.cgi?id=108579
91613
91614        Reviewed by Adam Barth.
91615
91616        Currently V8GCController::m_edenNodes stores a list of nodes whose
91617        wrappers have been created since the latest GC. The reason why we
91618        needed m_edenNodes is that there was no way to know a list of wrappers
91619        in the new space of V8. By using m_edenNodes, we had been approximating
91620        'wrappers in the new space' by 'wrappers that have been created since
91621        the latest GC'.
91622
91623        Now V8 provides VisitHandlesForPartialDependence(), with which WebKit
91624        can know a list of wrappers in the new space. By using the API, we can
91625        remove V8GCController::m_edenNodes. The benefit is that (1) we no longer
91626        need to keep m_edenNodes and that (2) it enables more precise minor
91627        DOM GC (Remember that m_edenNodes was just an approximation).
91628
91629        Performance benchmark: https://bugs.webkit.org/attachment.cgi?id=185940
91630        The benchmark runs 300 iterations, each of which creates 100000 elements.
91631        The benchmark measures average, min, median, max and stdev of execution times
91632        of the 300 iterations. This will tell us the worst-case overhead of this change.
91633
91634        Before:
91635          mean=59.91ms, min=39ms, median=42ms, max=258ms, stdev=47.48ms
91636
91637        After:
91638          mean=58.75ms, min=35ms, median=41ms, max=250ms, stdev=47.32ms
91639
91640        As shown above, I couldn't observe any performance regression.
91641
91642        No tests. No change in behavior.
91643
91644        * bindings/v8/DOMDataStore.h:
91645        (WebCore::DOMDataStore::setWrapperInObject):
91646        * bindings/v8/V8GCController.cpp:
91647        (WebCore::gcTree):
91648        (WebCore):
91649        (MinorGCWrapperVisitor):
91650        (WebCore::MinorGCWrapperVisitor::notifyFinished):
91651        (WebCore::V8GCController::gcPrologue):
91652        (WebCore::V8GCController::minorGCPrologue):
91653        (WebCore::V8GCController::majorGCPrologue):
91654        * bindings/v8/V8GCController.h:
91655        (V8GCController):
91656
916572013-02-01  Vsevolod Vlasov  <vsevik@chromium.org>
91658
91659        Web Inspector: Use String.prototype.startsWith instead of String.prototype.indexOf when possible
91660        https://bugs.webkit.org/show_bug.cgi?id=108575
91661
91662        Reviewed by Yury Semikhatsky.
91663
91664        * inspector/front-end/FileMapping.js:
91665        (WebInspector.FileMapping.prototype._entryMatchesURL):
91666        (WebInspector.FileMapping.prototype.urlForURI):
91667        * inspector/front-end/FileSystemMapping.js:
91668        (get WebInspector.FileSystemMappingImpl.prototype.fileForURI):
91669        (get WebInspector.FileSystemMappingImpl.prototype.uriForPath):
91670
916712013-01-31  Aurimas Liutikas  <aurimas@chromium.org>
91672
91673        Editor::m_compositionNode not updated on HTMLInputElement::setValue()
91674        https://bugs.webkit.org/show_bug.cgi?id=107737
91675
91676        Reviewed by Ryosuke Niwa.
91677
91678        Chromium has a bug where the IME composition did not get cancelled on JavaScript changes
91679        to the focused editing field. Most of other WebKit ports were already doing this check
91680        in their EditorClient::respondToChangedSelection. I took that logic and moved it to the
91681        Editor so every port and use the same code.
91682
91683        An existing test editing/input/setting-input-value-cancel-ime-composition.html covers this change.
91684        This test used to have an expectation to fail on Chromium and after this patch it will start passing.
91685
91686        * editing/Editor.cpp:
91687        (WebCore::Editor::cancelCompositionIfSelectionIsInvalid):
91688            Adding a call that can be used by any the port to cancel the composition if it's no longer valid.
91689        (WebCore):
91690        * editing/Editor.h:
91691        (Editor):
91692
916932013-01-31  Jae Hyun Park  <jae.park@company100.net>
91694
91695        Coordinated Graphics : Move CoordinatedGraphics related files to WebCore
91696        https://bugs.webkit.org/show_bug.cgi?id=108149
91697
91698        Reviewed by Noam Rosenthal.
91699
91700        This patch moves Coordinated Graphics related code to WebCore. To
91701        implement Threaded Coordinated Graphics, most of Coordianted Graphics
91702        code should be shared. Therefore, they should reside in WebCore instead of
91703        WebKit2.
91704
91705        When moving to WebCore, two renamings have been done.
91706
91707        1. Rename LayerTreeRenderer to CoordinatedGraphicsScene.
91708
91709        2. Rename WebCustomFilterProgram and WebCustomFilterOperation to
91710        CoordinatedCustomFilterProgram and CoordinatedCustomFilterOperation,
91711        respectively.
91712
91713        No new tests, covered by existing tests.
91714
91715        * CMakeLists.txt:
91716        * Target.pri:
91717        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
91718        * platform/graphics/texmap/coordinated/AreaAllocator.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp.
91719        * platform/graphics/texmap/coordinated/AreaAllocator.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h.
91720        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp.
91721        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h.
91722        * platform/graphics/texmap/coordinated/CoordinatedCustomFilterOperation.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/WebCustomFilterOperation.h.
91723        * platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/WebCustomFilterProgram.h.
91724        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp.
91725        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h.
91726        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp.
91727        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h: Renamed from Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.h.
91728        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp.
91729        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.h.
91730        * platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedLayerInfo.h.
91731        * platform/graphics/texmap/coordinated/CoordinatedSurface.cpp: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedSurface.cpp.
91732        * platform/graphics/texmap/coordinated/CoordinatedSurface.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedSurface.h.
91733        * platform/graphics/texmap/coordinated/CoordinatedTile.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp.
91734        * platform/graphics/texmap/coordinated/CoordinatedTile.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h.
91735        * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h: Renamed from Source/WebKit2/Shared/CoordinatedGraphics/SurfaceUpdateInfo.h.
91736        * platform/graphics/texmap/coordinated/UpdateAtlas.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp.
91737        * platform/graphics/texmap/coordinated/UpdateAtlas.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h.
91738
917392013-01-31  Lamarque V. Souza  <Lamarque.Souza@basyskom.com>
91740
91741        [Qt] Add support for text decoration "wavy" style
91742        https://bugs.webkit.org/show_bug.cgi?id=93507
91743
91744        Reviewed by Simon Hausmann.
91745
91746        Add support for text decoration "wavy" style for Qt platform.
91747
91748        * platform/graphics/qt/GraphicsContextQt.cpp:
91749        (WebCore::toQPenStyle):
91750        Remove FIXME comments obsoleted by this patch.
91751        (WebCore::GraphicsContext::drawLine):
91752        Implement wavy style line tracer.
91753
917542013-01-31  Nils Barth  <nbarth@google.com>
91755
91756        [CPP,GObject,ObjC] Add 'enum' skip to CodeGenerator{CPP,GObject,ObjC}.pm
91757        https://bugs.webkit.org/show_bug.cgi?id=108565
91758
91759        Reviewed by Kentaro Hara.
91760
91761        Since legacy code generators (CodeGenerator{CPP,GObject,ObjC}.pm)
91762        do not support enumerations, add test to skip attributes of enum type.
91763        This lets us remove #if macro from enum in test file and not need
91764        these in future.
91765        Also minor associated code cleaning:
91766          auxiliary variable: $type = $attribute->signature->type.
91767
91768        Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
91769
91770        * bindings/scripts/CodeGeneratorCPP.pm:
91771        (SkipAttribute):
91772        * bindings/scripts/CodeGeneratorGObject.pm:
91773        (SkipAttribute):
91774        * bindings/scripts/CodeGeneratorObjC.pm:
91775        (SkipAttribute):
91776        * bindings/scripts/test/TestObj.idl: remove #if macro
91777
917782013-01-31  Kent Tamura  <tkent@chromium.org>
91779
91780        Refactoring: Remove the default argument value for Node::setFocus
91781        https://bugs.webkit.org/show_bug.cgi?id=108554
91782
91783        Reviewed by Kentaro Hara.
91784
91785        There is no code to use the default argument.
91786        No new tests. Just a refactoring.
91787
91788        * dom/Node.h: Remove default argument value for setFocus.
91789        * dom/ContainerNode.h:
91790        (ContainerNode): Ditto.
91791        * html/HTMLAreaElement.h:
91792        (HTMLAreaElement): Add OVERRIDE to setFocus.
91793        * html/HTMLFrameElementBase.h:
91794        (HTMLFrameElementBase): Ditto.
91795
917962013-01-31  Victor Carbune  <vcarbune@chromium.org>
91797
91798        [Track] Closed Caption button shouldn't be visible if all the track resources have failed loading
91799        https://bugs.webkit.org/show_bug.cgi?id=106285
91800
91801        Reviewed by Eric Carlson.
91802
91803        Updated existing test cases.
91804
91805        * html/HTMLMediaElement.cpp:
91806        (WebCore::HTMLMediaElement::textTracksAreReady): Checked whether there are tracks not loaded
91807        when the algorithm began.
91808        (WebCore::HTMLMediaElement::textTrackReadyStateChanged): If the ready state changed to
91809        FailedToLoad the media controls should check whether there are other caption tracks
91810        and hide the button if not.
91811        (WebCore::HTMLMediaElement::didAddTrack): Added trigger to closedCaptionsTrackChanged.
91812        (WebCore::HTMLMediaElement::hasClosedCaptions): Updated check to skip tracks that
91813        failed to load.
91814        * html/shadow/MediaControls.cpp:
91815        (WebCore::MediaControls::reset): Used the newly added method.
91816        (WebCore::MediaControls::refreshClosedCaptionsButtonVisibility): Added container method for
91817        default behaviour for refreshing the visibility of the caption button.
91818        (WebCore::MediaControls::closedCaptionTracksChanged): Used the newly added method.
91819        (WebCore):
91820        * html/shadow/MediaControls.h:
91821        (MediaControls):
91822
91823        * html/HTMLMediaElement.cpp:
91824        (WebCore::HTMLMediaElement::textTracksAreReady):
91825        (WebCore::HTMLMediaElement::textTrackReadyStateChanged):
91826        (WebCore::HTMLMediaElement::setReadyState):
91827        (WebCore::HTMLMediaElement::didAddTrack):
91828        (WebCore::HTMLMediaElement::hasClosedCaptions):
91829        * html/shadow/MediaControls.cpp:
91830        (WebCore::MediaControls::reset):
91831        (WebCore::MediaControls::refreshClosedCaptionsButtonVisibility):
91832        (WebCore::MediaControls::closedCaptionTracksChanged):
91833        (WebCore):
91834        * html/shadow/MediaControls.h:
91835        (MediaControls):
91836
918372013-01-31  Dima Gorbik  <dgorbik@apple.com>
91838
91839        REGRESSION(r140231): media track layout tests crashing
91840        https://bugs.webkit.org/show_bug.cgi?id=107579
91841
91842        Reviewed by Eric Carlson.
91843
91844        We were using non-standard element names with HTMLElement, which made v8 try to cast
91845        WebVTTElements to HTMLUnknownElements which was not possible. Subclassing Element instead
91846        of HTMLElement, though this requires building HTMLElements from WebVTTElements for creating
91847        a DOM tree. The code has been refactored to move WebVTT node type to QuialifiedName mappings 
91848        inside the WebVTTElement class. All WebVTTElements in the shadow dom tree now are in the 
91849        namespace defined by 'NullAtom'. This prevents regular styles from being applied to <b>, <i>
91850        and similar tags. Those have to be styled separately without reusing existing QualifiedNames
91851        and their styles. https://bugs.webkit.org/show_bug.cgi?id=107214
91852
91853        Unskipping tests to cover this.
91854
91855        * css/SelectorChecker.cpp:
91856        (WebCore::SelectorChecker::checkOne):
91857        * css/StyleResolver.cpp:
91858        (WebCore::StyleResolver::collectMatchingRules):
91859        (WebCore::StyleResolver::canShareStyleWithElement):
91860        * html/track/TextTrackCue.cpp:
91861        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree):
91862        (WebCore::TextTrackCue::getCueAsHTML):
91863        (WebCore::TextTrackCue::createCueRenderingTree):
91864        (WebCore::TextTrackCue::markFutureAndPastNodes):
91865        * html/track/TextTrackCue.h:
91866        (WebCore::TextTrackCue::cueShadowPseudoId):
91867        * html/track/WebVTTElement.cpp:
91868        (WebCore::nodeTypeToTagName): get a QualifiedName to use in the shadow DOM tree.
91869        (WebCore::WebVTTElement::WebVTTElement):
91870        (WebCore::WebVTTElement::create):
91871        (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
91872        (WebCore::WebVTTElement::createEquivalentHTMLElement): create an HTMLElement to use in the DOM tree.
91873        * html/track/WebVTTElement.h:
91874        (WebCore::WebVTTElement::setWebVTTNodeType):
91875        (WebCore::WebVTTElement::webVTTNodeType):
91876        (WebCore::WebVTTElement::isPastNode):
91877        (WebCore::WebVTTElement::setIsPastNode):
91878        (WebCore::WebVTTElement::voiceAttributeName):
91879        * html/track/WebVTTParser.cpp:
91880        (WebCore::tokenToNodeType): determine a WebVTT node type for the token.
91881        (WebCore::WebVTTParser::constructTreeFromToken):
91882
918832013-01-31  Sheriff Bot  <webkit.review.bot@gmail.com>
91884
91885        Unreviewed, rolling out r141479.
91886        http://trac.webkit.org/changeset/141479
91887        https://bugs.webkit.org/show_bug.cgi?id=108564
91888
91889        breaks chromium test (Requested by morrita on #webkit).
91890
91891        * editing/Editor.cpp:
91892        * editing/Editor.h:
91893        (Editor):
91894
918952013-01-31  Changhun Kang  <temoochin@company100.net>
91896
91897        Rename from parentOrHost* to parentOrShadowHost* in Node.h.
91898        https://bugs.webkit.org/show_bug.cgi?id=108308
91899
91900        Reviewed by Dimitri Glazkov.
91901
91902        No new tests. No change in behavior.
91903
919042013-01-31  Alec Flett  <alecflett@chromium.org>
91905
91906        IndexedDB: remove old transaction backend bootstrap code
91907        https://bugs.webkit.org/show_bug.cgi?id=103923
91908
91909        Reviewed by Dimitri Glazkov.
91910
91911        Finally remove all leftover code from the IndexedDB "giant
91912        async refactor of 2012." This includes removal of all
91913        IDBTransaction* interfaces that were shared between
91914        the frontend and backend and a few straggling methods
91915        like onUpgradeNeeded and onSuccess that were left from
91916        the last stage of refactoring.
91917
91918        * Modules/indexeddb/IDBCallbacks.h:
91919        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
91920        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
91921        (WebCore):
91922        (WebCore::IDBDatabaseBackendImpl::metadata):
91923        (IDBDatabaseBackendImpl):
91924        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
91925        (WebCore):
91926        (IDBDatabaseBackendInterface):
91927        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
91928        (WebCore):
91929        * Modules/indexeddb/IDBTransaction.h:
91930        (WebCore):
91931        (IDBTransaction):
91932        * Modules/indexeddb/IDBTransactionBackendImpl.h:
91933        (WebCore):
91934        (IDBTransactionBackendImpl):
91935        * Modules/indexeddb/IDBTransactionBackendInterface.h: Removed.
91936        * Modules/indexeddb/IDBTransactionCallbacks.h: Removed.
91937        * Modules/indexeddb/IDBTransactionCoordinator.h:
91938        (WebCore):
91939        * Target.pri:
91940        * WebCore.gypi:
91941        * WebCore.xcodeproj/project.pbxproj:
91942
919432013-01-31  Kentaro Hara  <haraken@chromium.org>
91944
91945        Unreviewed, rolling out r141502.
91946        http://trac.webkit.org/changeset/141502
91947        https://bugs.webkit.org/show_bug.cgi?id=108441
91948
91949        Hit assert in SVGElementInstance
91950
91951        * bindings/scripts/CodeGeneratorV8.pm:
91952        (GetInternalFields):
91953        * dom/EventTarget.idl:
91954        * svg/SVGElementInstance.idl:
91955
919562013-01-31  Ojan Vafai  <ojan@chromium.org>
91957
91958        Assert that computePreferredLogicalWidths never calls setNeedsLayout
91959        https://bugs.webkit.org/show_bug.cgi?id=108539
91960
91961        Reviewed by Tony Chang.
91962
91963        computePreferredLogicalWidths should only set m_minPreferredLogicalWidth
91964        and m_maxPreferredLogicalWidth. It shouldn't have other side-effects.
91965        This is take 2 after this was rolled out because it was missing the guards
91966        in RenderCounter/RenderQuote.
91967
91968        * rendering/RenderBox.cpp:
91969        (WebCore::RenderBox::minPreferredLogicalWidth):
91970        (WebCore::RenderBox::maxPreferredLogicalWidth):
91971        * rendering/RenderCounter.cpp:
91972        (WebCore::RenderCounter::computePreferredLogicalWidths):
91973        * rendering/RenderQuote.cpp:
91974        (WebCore::RenderQuote::computePreferredLogicalWidths):
91975        * rendering/mathml/RenderMathMLOperator.cpp:
91976        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
91977        * rendering/mathml/RenderMathMLRoot.cpp:
91978        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
91979        * rendering/mathml/RenderMathMLRow.cpp:
91980        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
91981
919822013-01-31  Abhishek Arya  <inferno@chromium.org>
91983
91984        Use ASSERT_WITH_SECURITY_IMPLICATION to catch bad casts in DOM
91985        https://bugs.webkit.org/show_bug.cgi?id=108490
91986 
91987        Reviewed by Eric Seidel.
91988
91989        * dom/ContainerNode.h:
91990        (WebCore::toContainerNode):
91991        * dom/Element.h:
91992        (WebCore::toElement):
91993        * dom/ShadowRoot.h:
91994        (WebCore::toShadowRoot):
91995        * dom/Text.h:
91996        (WebCore::toText):
91997        * html/HTMLElement.h:
91998        (HTMLElement):
91999        (WebCore::toHTMLElement):
92000        * html/HTMLFrameOwnerElement.h:
92001        (WebCore::toFrameOwnerElement):
92002        * html/HTMLMediaElement.cpp:
92003        (WebCore::HTMLMediaElement::hasMediaControls):
92004        * html/HTMLTemplateElement.cpp:
92005        (WebCore::toHTMLTemplateElement):
92006        * html/HTMLUnknownElement.h:
92007        (WebCore::toHTMLUnknownElement):
92008        * html/shadow/InsertionPoint.h:
92009        (WebCore::toInsertionPoint):
92010        * html/shadow/MediaControlElementTypes.cpp:
92011        (WebCore::mediaControlElementType):
92012        * html/shadow/MediaControls.h:
92013        (WebCore::toMediaControls):
92014        * html/shadow/SliderThumbElement.h:
92015        (WebCore::toSliderThumbElement):
92016        * html/shadow/TextControlInnerElements.h:
92017        (WebCore::toInputFieldSpeechButtonElement):
92018        * html/shadow/TextFieldDecorationElement.h:
92019        (WebCore::toTextFieldDecorationElement):
92020        * html/track/WebVTTElement.h:
92021        (WebCore::toWebVTTElement):
92022        * mathml/MathMLElement.h:
92023        (WebCore::toMathMLElement):
92024        * page/scrolling/ScrollingStateFixedNode.h:
92025        (WebCore::toScrollingStateFixedNode):
92026        * page/scrolling/ScrollingStateScrollingNode.h:
92027        (WebCore::toScrollingStateScrollingNode):
92028        * page/scrolling/ScrollingStateStickyNode.h:
92029        (WebCore::toScrollingStateStickyNode):
92030        * rendering/RenderLayer.cpp:
92031        (WebCore::RenderLayer::resize):
92032        * rendering/svg/SVGResources.cpp:
92033        (WebCore::registerPendingResource):
92034        (WebCore::SVGResources::buildCachedResources):
92035        * svg/SVGElement.h:
92036        (WebCore::toSVGElement):
92037        * svg/SVGStyledElement.h:
92038        (WebCore::toSVGStyledElement):
92039
920402013-01-31  Christopher Cameron  <ccameron@chromium.org>
92041
92042        Fix rubber-band effect on non-scrollable pages
92043        https://bugs.webkit.org/show_bug.cgi?id=107611
92044
92045        Reviewed by Antonio Gomes.
92046
92047        Handle a FrameView's wheel event even if it is not scrollable
92048        because Chrome relies on handling these wheel events for the
92049        over-scroll rubber-band effect.
92050 
92051        This had been removed in r138378
92052        [EFL][WK2] Never create WebCore scrollbars for EFL/WK2
92053        by kenneth@chromium.org
92054
92055        Tests: platform/chromium/rubberbanding/wheelevent-overhang-e.html
92056               platform/chromium/rubberbanding/wheelevent-overhang-n.html
92057               platform/chromium/rubberbanding/wheelevent-overhang-s.html
92058               platform/chromium/rubberbanding/wheelevent-overhang-w.html
92059
92060        * page/FrameView.cpp:
92061        (WebCore::FrameView::wheelEvent):
92062
920632013-01-31  Enrica Casucci  <enrica@apple.com>
92064
92065        Mac: Editor::baseWritingDirectionForSelectionStart should return WritingDirection instead of NSWritingDirection.
92066        https://bugs.webkit.org/show_bug.cgi?id=108519.
92067
92068        Reviewed by Sam Weinig.
92069
92070        No new tests, no change in behavior.
92071
92072        There is no need to use AppKit types here.
92073        baseWritingDirectionForSelectionStart now returns WritingDirection and
92074        WebHTMLView toggleWritingDirection has been modified accordingly.
92075        
92076        * editing/Editor.h:
92077        * editing/mac/EditorMac.mm:
92078        (WebCore::Editor::baseWritingDirectionForSelectionStart):
92079
920802013-01-31  Kentaro Hara  <haraken@chromium.org>
92081
92082        [V8] Pass an Isolate to GetTemplate() in CodeGeneratorV8.pm
92083        https://bugs.webkit.org/show_bug.cgi?id=108445
92084
92085        Reviewed by Adam Barth.
92086
92087        No tests. No change in behavior.
92088
92089        * bindings/scripts/CodeGeneratorV8.pm:
92090        (GenerateDomainSafeFunctionGetter):
92091        (GenerateDomainSafeFunctionSetter):
92092        (GenerateNormalAttrGetter):
92093        (GenerateNamedConstructorCallback):
92094        (GenerateImplementation):
92095        * bindings/scripts/test/V8/V8Float64Array.cpp:
92096        (WebCore::ConfigureV8Float64ArrayTemplate):
92097        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
92098        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
92099        (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
92100        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
92101        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
92102        * bindings/scripts/test/V8/V8TestNode.cpp:
92103        (WebCore::ConfigureV8TestNodeTemplate):
92104
921052013-01-31  Kentaro Hara  <haraken@chromium.org>
92106
92107        [V8] Clean up Dictionary::get() by removing redundant FindInstanceInPrototypeChain()
92108        https://bugs.webkit.org/show_bug.cgi?id=108443
92109
92110        Reviewed by Adam Barth.
92111
92112        In Dictionary::get(), wrapper->FindInstanceInPrototypeChain(V8XXX::GetTemplate())
92113        is unnecessary for DOM wrappers other than DOMWindow. For wrappers other than
92114        DOMWindow, we can simply use V8XXX::HasInstance(wrapper).
92115
92116        Tests: fast/events/constructors/*
92117
92118        * bindings/v8/Dictionary.cpp:
92119        (WebCore::Dictionary::get):
92120
921212013-01-31  Julien Chaffraix  <jchaffraix@webkit.org>
92122
92123        [CSS Grid Layout] Support implicit rows and columns
92124        https://bugs.webkit.org/show_bug.cgi?id=103573
92125
92126        Reviewed by Ojan Vafai.
92127
92128        Tests: fast/css-grid-layout/implicit-columns-auto-resolution.html
92129               fast/css-grid-layout/implicit-rows-auto-resolution.html
92130
92131        This change makes us properly initialize our GridTrack vectors's size
92132        so that we can safely query any items during layout.
92133
92134        * rendering/RenderGrid.cpp:
92135        (WebCore::RenderGrid::gridTrackSize):
92136        Added this helper function to return the track size from the grid
92137        element's columns' / rows' definitions or the default value.
92138
92139        (WebCore::RenderGrid::maximumIndexInDirection):
92140        Added this helper function to get the maximum index in a direction
92141        taking grid item's implicit indexes into account.
92142
92143        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
92144        Changed the funtion to not append the new tracks as we are properly
92145        sized now.
92146
92147        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
92148        (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
92149        Updated these functions to use the new helper functions.
92150
92151        (WebCore::RenderGrid::layoutGridItems):
92152        Changed this function to size both vectors when initializing them.
92153        Also removed an unneeded bounds check as it shouldn't be needed anymore.
92154
92155        * rendering/RenderGrid.h:
92156        Added the new helper functions.
92157
92158        * rendering/style/GridTrackSize.h:
92159        (WebCore::GridTrackSize::GridTrackSize):
92160        Added a constructor taking a LengthType.
92161
921622013-01-31  Joanmarie Diggs  <jdiggs@igalia.com>
92163
92164        [GTK] fast/css/relative-positioned-block-crash.html is intermittently crashing
92165        https://bugs.webkit.org/show_bug.cgi?id=108200
92166
92167        Reviewed by Martin Robinson.
92168
92169        Getting the Position of a PseudoElement now triggers an assertion.
92170        This can occur when clicking on empty space in a render block.
92171        Looking to the unignored parent's node (and passing that accessible
92172        object on in a signal to Assistive Technologies) seems like the most
92173        reasonable thing to do here.
92174
92175        No new tests; instead skipping two tests that were crashing as a result.
92176
92177        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
92178        (objectFocusedAndCaretOffsetUnignored):
92179
921802013-01-31  Kentaro Hara  <haraken@chromium.org>
92181
92182        [V8] Simplify CodeGeneratorV8.pm by using InheritsExtendedAttribute("EventTarget")
92183        https://bugs.webkit.org/show_bug.cgi?id=108441
92184
92185        Reviewed by Adam Barth.
92186
92187        A complicated condition in GetInternalFields() can be simplified
92188        by using InheritsExtendedAttribute("EventTarget").
92189
92190        No tests. No change in behavior.
92191
92192        * bindings/scripts/CodeGeneratorV8.pm:
92193        (GetInternalFields):
92194        * dom/EventTarget.idl: Added [EventTarget] which should have been added.
92195        * svg/SVGElementInstance.idl: Ditto.
92196
921972013-01-31  Youenn Fablet  <youennf@gmail.com>
92198
92199        Quadratic and bezier curves with coincident endpoints rendered incorrectly
92200        https://bugs.webkit.org/show_bug.cgi?id=105650
92201
92202        Reviewed by Kenneth Russell.
92203
92204        Tests: fast/canvas/canvas-bezier-same-endpoint.html
92205               fast/canvas/canvas-quadratic-same-endpoint.html
92206
92207        * html/canvas/CanvasPathMethods.cpp:
92208        (WebCore::CanvasPathMethods::quadraticCurveTo):
92209        (WebCore::CanvasPathMethods::bezierCurveTo):
92210
922112013-01-31  Mark Lam  <mark.lam@apple.com>
92212
92213        Abstraction for hiding enum class.
92214        https://bugs.webkit.org/show_bug.cgi?id=108533
92215
92216        Reviewed by Anders Carlsson.
92217
92218        No new tests.
92219
92220        * Modules/webdatabase/DatabaseError.h:
92221        (WebCore::ENUM_CLASS_BEGIN):
92222
922232013-01-31  Arnaud Renevier  <a.renevier@sisa.samsung.com>
92224
92225        [Gtk] drag and drop has black background without composition
92226        https://bugs.webkit.org/show_bug.cgi?id=108376
92227
92228        Reviewed by Martin Robinson.
92229
92230        Use gtk_drag_set_icon_surface (or gtk_drag_set_icon_pixbuf) when the
92231        screen is not composited. That way, drag window will be decomposited
92232        and rendered transparent with Xshape.
92233
92234        To determine which parts of the window must be transparent, gtk checks
92235        if a pixel is more than 50% opaque. With dissolveDragImageToFraction,
92236        all pixels are made 25% transparent. With antialiasing, opacity goes
92237        below the threshold for some pixels, which makes the resulting image
92238        messy. So, we need to skip dissolveDragImageToFraction when we use
92239        gtk_drag_set_icon_surface.
92240
92241        * platform/gtk/DragIcon.cpp:
92242        (WebCore::DragIcon::DragIcon):
92243        (WebCore::DragIcon::~DragIcon):
92244        (WebCore::DragIcon::setImage):
92245        (WebCore::DragIcon::useForDrag):
92246        * platform/gtk/DragIcon.h:
92247        (DragIcon):
92248        * platform/gtk/DragImageGtk.cpp:
92249        (WebCore::dissolveDragImageToFraction):
92250
922512013-01-31  Tony Gentilcore  <tonyg@chromium.org>
92252
92253        Begin to make XSSAuditor thread aware
92254        https://bugs.webkit.org/show_bug.cgi?id=108394
92255
92256        Reviewed by Adam Barth.
92257
92258        This patch moves the parts of filterToken() that depend on Frame, Document, etc. to a delegate class.
92259        The new didBlockScript delegate method is invoked with the resulting DidBlockScriptRequest which will
92260        be owned by the CompactHTMLToken in the threaded case.
92261
92262        This is just the first step as there is more to do to make XSSAuditor thread safe.
92263
92264        No new tests because covered by existing tests.
92265
92266        * CMakeLists.txt:
92267        * GNUmakefile.list.am:
92268        * Target.pri:
92269        * WebCore.gypi:
92270        * WebCore.vcproj/WebCore.vcproj:
92271        * WebCore.vcxproj/WebCore.vcxproj:
92272        * WebCore.vcxproj/WebCore.vcxproj.filters:
92273        * WebCore.xcodeproj/project.pbxproj:
92274        * html/parser/BackgroundHTMLParser.cpp:
92275        (WebCore::BackgroundHTMLParser::pumpTokenizer):
92276        * html/parser/HTMLDocumentParser.cpp:
92277        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
92278        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
92279        (WebCore::HTMLDocumentParser::pumpTokenizer):
92280        * html/parser/HTMLDocumentParser.h:
92281        (HTMLDocumentParser):
92282        * html/parser/XSSAuditor.cpp:
92283        (WebCore::XSSAuditor::filterToken):
92284        * html/parser/XSSAuditor.h:
92285        (WebCore):
92286        (XSSAuditor):
92287        * html/parser/XSSAuditorDelegate.cpp: Added.
92288        (WebCore):
92289        (WebCore::XSSAuditorDelegate::XSSAuditorDelegate):
92290        (WebCore::XSSAuditorDelegate::didBlockScript):
92291        * html/parser/XSSAuditorDelegate.h: Added.
92292        (WebCore):
92293        (DidBlockScriptRequest):
92294        (WebCore::DidBlockScriptRequest::create):
92295        (WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
92296        (XSSAuditorDelegate):
92297
92298        * CMakeLists.txt:
92299        * GNUmakefile.list.am:
92300        * Target.pri:
92301        * WebCore.gypi:
92302        * WebCore.vcproj/WebCore.vcproj:
92303        * WebCore.vcxproj/WebCore.vcxproj:
92304        * WebCore.vcxproj/WebCore.vcxproj.filters:
92305        * WebCore.xcodeproj/project.pbxproj:
92306        * html/parser/BackgroundHTMLParser.cpp:
92307        (WebCore::BackgroundHTMLParser::pumpTokenizer):
92308        * html/parser/HTMLDocumentParser.cpp:
92309        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
92310        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
92311        (WebCore::HTMLDocumentParser::pumpTokenizer):
92312        * html/parser/HTMLDocumentParser.h:
92313        (HTMLDocumentParser):
92314        * html/parser/XSSAuditor.cpp:
92315        (WebCore::XSSAuditor::XSSAuditor):
92316        (WebCore::XSSAuditor::filterToken):
92317        * html/parser/XSSAuditor.h:
92318        (WebCore):
92319        (XSSAuditor):
92320        * html/parser/XSSAuditorDelegate.cpp: Added.
92321        (WebCore):
92322        (WebCore::XSSAuditorDelegate::XSSAuditorDelegate):
92323        (WebCore::XSSAuditorDelegate::didBlockScript):
92324        * html/parser/XSSAuditorDelegate.h: Added.
92325        (WebCore):
92326        (DidBlockScriptRequest):
92327        (WebCore::DidBlockScriptRequest::create):
92328        (WebCore::DidBlockScriptRequest::DidBlockScriptRequest):
92329        (XSSAuditorDelegate):
92330
923312013-01-31  Uday Kiran  <udaykiran@motorola.com>
92332
92333        CSS3's vh attribute is not adjusting while browser resizes
92334        https://bugs.webkit.org/show_bug.cgi?id=86418
92335
92336        Reviewed by Antti Koivisto.
92337
92338        Elements with viewport percentage units needs layout whenever
92339        viewport size changes. Check for viewport percentage unit
92340        was missing for height.
92341
92342        Test: css3/viewport-percentage-lengths/vh-resize.html
92343
92344        * rendering/RenderBlock.cpp:
92345        (WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout):
92346        * rendering/RenderBox.cpp:
92347        (WebCore::RenderBox::hasViewportPercentageLogicalHeight): Check if style
92348        is specified in viewport percentage units.
92349        (WebCore):
92350        * rendering/RenderBox.h:
92351        (RenderBox):
92352        * rendering/RenderView.cpp:
92353        (WebCore::RenderView::layout): Elements with viewport percentage units
92354        needs relayout when viewport size changes.
92355
923562013-01-31  Anton Vayvod  <avayvod@chromium.org>
92357
92358        TextAutosizing: refactor the cluster related method parameters into a single struct.
92359        https://bugs.webkit.org/show_bug.cgi?id=108384
92360
92361        This anticipates adding more cluster related information in the following patches.
92362        
92363        Reviewed by Kenneth Rohde Christiansen.
92364
92365        Just a refactoring so no new tests.
92366
92367        * rendering/TextAutosizer.cpp: define the new struct and pass it to every method instead of
92368        a cluster and its descendant block containing all text.
92369        * rendering/TextAutosizer.h: change method prototypes to receive the new struct
92370        as a parameter defining an autosizing cluster.
92371
92372        * rendering/TextAutosizer.cpp:
92373        (WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):
92374        (TextAutosizingClusterInfo):
92375        (WebCore):
92376        (WebCore::TextAutosizer::processSubtree):
92377        (WebCore::TextAutosizer::processCluster):
92378        (WebCore::TextAutosizer::processContainer):
92379        (WebCore::TextAutosizer::isAutosizingCluster):
92380        (WebCore::TextAutosizer::clusterShouldBeAutosized):
92381        (WebCore::TextAutosizer::measureDescendantTextWidth):
92382        * rendering/TextAutosizer.h:
92383        (WebCore):
92384
923852013-01-31  Jacky Jiang  <zhajiang@rim.com>
92386
92387        [BlackBerry] Bing Images viewport causes layout "fun"
92388        https://bugs.webkit.org/show_bug.cgi?id=108393
92389
92390        Reviewed by Yong Li.
92391        Internally reviewed by Arvid Nilsson and partially reviewed by Konrad Piascik.
92392
92393        PR: 277855
92394        On bing.com image search page, JS generated styles for the divs which
92395        contained images based on the window.screen and window.innerWidth.
92396        Unfortunately the styles for the divs weren't good enough on our device
92397        which resulted in three images being overlapped in the same viewport.
92398        On our port, we calculate the screen rect base on the physical screen
92399        pixels. However, iOS and lastest Android Chrome port already changed it
92400        to density-independent (logical) pixels. And also to my knowledge that
92401        some websites would generate bad styles for us as well through
92402        @media device-width/device-height.
92403        To be consistent and fix such kinds of issues, we should use
92404        density-independent pixels instead of physical screen pixels. Mainly
92405        ported from Chrome port change r139356. The patch will affect
92406        screen.width/height, window.outerWidth/outerHeight and
92407        @media device-width/device-height.
92408
92409        * platform/blackberry/PlatformScreenBlackBerry.cpp:
92410        (WebCore):
92411        (WebCore::toUserSpace):
92412        (WebCore::screenAvailableRect):
92413        (WebCore::screenRect):
92414
924152013-01-31  Max Vujovic  <mvujovic@adobe.com>
92416
92417        [CSS Shaders] Parse custom filter function with the at-rule reference syntax
92418        https://bugs.webkit.org/show_bug.cgi?id=108351
92419
92420        Reviewed by Dean Jackson.
92421
92422        This patch implements the parsing for the new custom filter function "at-rule reference"
92423        syntax. It does not implement the style resolution yet.
92424
92425        The custom function syntax has changed in the spec. Instead of including all of the custom
92426        filter information inline, the custom function can now reference an @filter rule by name.
92427        The custom function can still accept a list of parameters.
92428
92429        The syntax is defined as the following, where IDENT is the name of the @filter rule:
92430        filter: custom(IDENT [, <param>]*)
92431
92432        In practice, it can look like this:
92433        filter: custom(page-curl, direction 90, amount 0.5);
92434
92435        Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#customident-ltparamgt
92436
92437        Tests: css3/filters/custom-with-at-rule-syntax/parsing-custom-function-invalid.html
92438               css3/filters/custom-with-at-rule-syntax/parsing-custom-function-valid.html
92439
92440        * css/CSSParser.cpp:
92441        (WebCore::CSSParser::parseCustomFilterParameters):
92442            Factor out a new function that just parses custom filter parameters. This is used by the
92443            previous inline syntax and the new at-rule reference syntax.
92444        (WebCore):
92445        (WebCore::CSSParser::parseCustomFilterFunctionWithAtRuleReferenceSyntax):
92446            This method parses the new at-rule reference syntax. When we remove the inline syntax,
92447            we can rename this method to "parseCustomFilterFunction" and call it directly.
92448        (WebCore::CSSParser::parseCustomFilterFunctionWithInlineSyntax):
92449            Move the previous inline syntax parsing code into a new function.
92450        (WebCore::CSSParser::parseCustomFilterFunction):
92451            This method looks ahead in the CSS parser values and decides whether to parse the custom
92452            function with the previous inline syntax or with the new at-rule reference syntax.
92453        (WebCore::CSSParser::parseFilter):
92454            I renamed the "parseCustomFilter" method to "parseCustomFilterFunction" to be more
92455            explicit. Here, we update the name in the call site.
92456        * css/CSSParser.h:
92457        * css/StyleResolver.cpp:
92458        (WebCore::StyleResolver::createCustomFilterOperationWithAtRuleReferenceSyntax):
92459            This is a stub method. In the future, style resolution for the at-rule reference
92460            syntax will happen here. When we remove the inline syntax, we can rename this method 
92461        (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
92462            This method contains the previous inline syntax style resolution code.
92463        (WebCore):
92464        (WebCore::StyleResolver::createCustomFilterOperation):
92465            This method decides which syntax we should use to resolve the style.
92466        * css/StyleResolver.h:
92467        (StyleResolver):
92468
924692013-01-31  Aurimas Liutikas  <aurimas@chromium.org>
92470
92471        Editor::m_compositionNode not updated on HTMLInputElement::setValue()
92472        https://bugs.webkit.org/show_bug.cgi?id=107737
92473
92474        Reviewed by Ryosuke Niwa.
92475
92476        Chromium has a bug where the IME composition did not get cancelled on JavaScript changes
92477        to the focused editing field. Most of other WebKit ports were already doing this check
92478        in their EditorClient::respondToChangedSelection. I took that logic and moved it to the
92479        Editor so every port and use the same code.
92480
92481        An existing test editing/input/setting-input-value-cancel-ime-composition.html covers this change.
92482        This test used to have an expectation to fail on Chromium and after this patch it will start passing.
92483
92484        * editing/Editor.cpp:
92485        (WebCore::Editor::cancelCompositionIfSelectionIsInvalid):
92486            Adding a call that can be used by any the port to cancel the composition if it's no longer valid.
92487        (WebCore):
92488        * editing/Editor.h:
92489        (Editor):
92490
924912013-01-31  Joseph Pecoraro  <pecoraro@apple.com>
92492
92493        Disable ENABLE_FULLSCREEN_API on iOS
92494        https://bugs.webkit.org/show_bug.cgi?id=108250
92495
92496        Reviewed by Benjamin Poulain.
92497
92498        * Configurations/FeatureDefines.xcconfig:
92499
925002013-01-31  Mark Pilgrim  <pilgrim@chromium.org>
92501
92502        [Chromium] Move LocalizedStrings to WebCore
92503        https://bugs.webkit.org/show_bug.cgi?id=108488
92504
92505        Reviewed by Adam Barth.
92506
92507        Part of a larger refactoring series; see tracking bug 106829.
92508
92509        * WebCore.gypi:
92510        * platform/chromium/LocalizedStringsChromium.cpp: Copied from Source/WebKit/chromium/src/LocalizedStrings.cpp.
92511        (WebCore::imageTitle):
92512
925132013-01-31  Enrica Casucci  <enrica@apple.com>
92514
92515        WebKit2: provide new bundle APIs to allow bundle clients to be notified of pasteboard access.
92516        https://bugs.webkit.org/show_bug.cgi?id=108396.
92517        <rdar://problem/12920461>
92518
92519        Reviewed by Alexey Proskuryakov.
92520
92521        Adds support in WebCore to new EditorClient methods to support the modified
92522        client bundle API in WebKit2.
92523
92524        * WebCore.exp.in:
92525        * editing/Editor.cpp:
92526        (WebCore::Editor::cut): Added call to willWriteSelectionToPasteboard.
92527        (WebCore::Editor::copy): Ditto.
92528        (WebCore::Editor::willWriteSelectionToPasteboard): Added.
92529        * editing/Editor.h:
92530        * loader/EmptyClients.h: Added empty client implementation
92531        for the new methods.
92532        (WebCore::EmptyEditorClient::willWriteSelectionToPasteboard):
92533        (WebCore::EmptyEditorClient::getClientPasteboardDataForRange):
92534        * page/EditorClient.h:
92535        * platform/mac/PasteboardMac.mm:
92536        (WebCore::Pasteboard::writeSelectionForTypes): Added call to getClientPasteboardDataForRange.
92537
925382013-01-31  David Kilzer  <ddkilzer@apple.com>
92539
92540        Use OS() and PLATFORM() macros in WebCorePrefix.h for readability
92541        <http://webkit.org/b/108374>
92542
92543        Reviewed by Laszlo Gombos.
92544
92545        * WebCorePrefix.h: Replaced all possible checks with OS() or
92546        PLATFORM() macros other than __APPLE__.
92547
925482013-01-31  Mike West  <mkwst@chromium.org>
92549
92550        Cleanup: Use ScriptExecutionContext::topOrigin when relevant.
92551        https://bugs.webkit.org/show_bug.cgi?id=108476
92552
92553        Reviewed by Jochen Eisinger.
92554
92555        Rather than diving through 'frame()->top()' or 'topDocument()' to get
92556        the SecurityOrigin of the top-level document in a frame, we can now
92557        directly grab the 'topOrigin()' off of a ScriptExecutionContext. This
92558        patch adjusts a few callsites to use the new hotness rather than the
92559        old brokenness.
92560
92561        This is a pure refactoring: No web-visible changes should result.
92562
92563        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
92564        (WebCore::DOMWindowWebDatabase::openDatabase):
92565        * page/DOMWindow.cpp:
92566        (WebCore::DOMWindow::sessionStorage):
92567        (WebCore::DOMWindow::localStorage):
92568        * workers/SharedWorker.cpp:
92569        (WebCore::SharedWorker::create):
92570        * workers/WorkerMessagingProxy.cpp:
92571        (WebCore::WorkerMessagingProxy::startWorkerContext):
92572
925732013-01-31  peavo@outlook.com  <peavo@outlook.com>
92574
92575        [Curl] There is no way for a WebKit client to set the Curl cookie jar path
92576        https://bugs.webkit.org/show_bug.cgi?id=107692
92577
92578        Reviewed by Brent Fulgham.
92579
92580        Set default cookie jar path.
92581        Get the cookie jar path for Curl from the environment variable CURL_COOKIE_JAR_PATH.
92582
92583        * platform/network/curl/ResourceHandleManager.cpp:
92584        (WebCore::cookieJarPath): Added helper function to set cookie jar path.
92585        (WebCore::ResourceHandleManager::ResourceHandleManager): Call helper function.
92586
925872013-01-31  Maciej Stachowiak  <mjs@apple.com>
92588
92589        REGRESSION (r138962): Fails to show "confirm form resubmission", hangs browser
92590        https://bugs.webkit.org/show_bug.cgi?id=108214
92591
92592        Reviewed by Adam Barth.
92593        
92594        Attempt a workaround suggested by Nate Chapin by putting some code
92595        in #ifdef !PLATFORM(CHROMIUM).
92596
92597        * loader/MainResourceLoader.cpp:
92598        (WebCore::MainResourceLoader::notifyFinished):
92599
926002013-01-31  Ojan Vafai  <ojan@chromium.org>
92601
92602        REGRESSION(r128517): Percentage heights in quirks mode collapse when printing
92603        https://bugs.webkit.org/show_bug.cgi?id=108382
92604
92605        Reviewed by David Hyatt.
92606
92607        r128517 clean up our containing block finding logic, but broke percentage
92608        heights in quirks mode during printing since the RenderView would have 0 height.
92609        Turns out we already had a long-standing bug where we'd incorrectly
92610        treat collapse percentage heights on the body when printing as well.
92611
92612        Fix both bugs by changing the way we grab the logical height on the RenderView.
92613        RenderView::computeLogicalHeight returns 0 when printing. For the purposes of
92614        stretching and percentage heights, we instead need to return the pageLogicalHeight.
92615
92616        Tests: printing/quirks-percentage-height-body.html
92617               printing/quirks-percentage-height.html
92618               printing/standards-percentage-heights.html
92619
92620        * rendering/RenderBox.cpp:
92621        (WebCore::RenderBox::computeLogicalHeight):
92622        This FIXME is outdated and already fixed. Also, call viewLogicalHeightForPercentages
92623        which does the same logic except also correctly handles column RenderViews.
92624        (WebCore::RenderBox::viewLogicalHeightForPercentages):
92625        (WebCore::RenderBox::computePercentageLogicalHeight):
92626        * rendering/RenderBox.h:
92627
92628        * rendering/RenderBox.cpp:
92629        (WebCore::RenderBox::computeLogicalHeight):
92630        (WebCore::RenderBox::viewLogicalHeightForPercentages):
92631        (WebCore):
92632        (WebCore::RenderBox::computePercentageLogicalHeight):
92633        * rendering/RenderBox.h:
92634        (RenderBox):
92635
926362013-01-31  Dirk Schulze  <krit@webkit.org>
92637
92638        [canvas] Implement currentPath to get and set the current path of the context
92639        https://bugs.webkit.org/show_bug.cgi?id=108246
92640
92641        Reviewed by Dean Jackson.
92642
92643        Add currentPath attribute to CanvasRenderingContext2d interface. This allows
92644        setting the current context path by an existing Path object as well as getting
92645        the current context path as new Path object. The returned and the set Paths
92646        are not live.
92647
92648        This feature is behind the CANVAS_PATH compiler flag which is disabled by
92649        default for now.
92650
92651        Test: fast/canvas/canvas-currentPath.html
92652
92653        * html/canvas/CanvasPathMethods.cpp: Rename transformIsInvertible to
92654            isTransformInvertible for harmonizing naming schema.
92655        (WebCore::CanvasPathMethods::moveTo): Ditto.
92656        (WebCore::CanvasPathMethods::lineTo): Ditto.
92657        (WebCore::CanvasPathMethods::quadraticCurveTo): Ditto.
92658        (WebCore::CanvasPathMethods::bezierCurveTo): Ditto.
92659        (WebCore::CanvasPathMethods::arcTo): Ditto.
92660        (WebCore::CanvasPathMethods::arc): Ditto.
92661        (WebCore::CanvasPathMethods::rect): Ditto.
92662        * html/canvas/CanvasPathMethods.h: Ditto.
92663        (CanvasPathMethods):
92664        (WebCore::CanvasPathMethods::isTransformInvertible):
92665        * html/canvas/CanvasRenderingContext2D.cpp:
92666        (WebCore):
92667        (WebCore::CanvasRenderingContext2D::currentPath): Getter for currentPath.
92668        (WebCore::CanvasRenderingContext2D::setCurrentPath): Setter for currentPath.
92669        * html/canvas/CanvasRenderingContext2D.h:
92670        (WebCore):
92671        (CanvasRenderingContext2D):
92672        (WebCore::CanvasRenderingContext2D::isTransformInvertible):
92673        * html/canvas/CanvasRenderingContext2D.idl: Add currentPath attribute.
92674        * html/canvas/DOMPath.h: Add new constructor and getter for Path object.
92675        (WebCore::DOMPath::create): New static function for new ctor.
92676        (DOMPath):
92677        (WebCore::DOMPath::path): Getter for Path object.
92678        (WebCore::DOMPath::DOMPath):
92679
926802013-01-31  Alexandre Elias  <aelias@chromium.org>
92681
92682        Call FrameView::contentsResized() when setting fixed layout size
92683        https://bugs.webkit.org/show_bug.cgi?id=107922
92684
92685        Reviewed by James Robinson.
92686
92687        In fixed layout mode, we should be calling contentsResized() when the
92688        fixed layout size is changed, but not laying out when the visible
92689        content rect changes.
92690
92691        Previously landed as r140869 but was reverted due to a bug in bundled
92692        Chromium-specific code. This patch includes just the minimum needed in
92693        WebCore.
92694
92695        New WebFrameTest: FrameViewNeedsLayoutOnFixedLayoutResize.  Some
92696        flaky and obsolete tests for the old page scale mode are also deleted.
92697
92698        * page/FrameView.cpp:
92699        (WebCore::FrameView::visibleContentsResized):
92700        * platform/ScrollView.cpp:
92701        (WebCore::ScrollView::setFixedLayoutSize):
92702        (WebCore::ScrollView::setUseFixedLayout):
92703
927042013-01-31  Otto Derek Cheung  <otcheung@rim.com>
92705
92706        [BlackBerry] CookieParser should ignore invalid/unsupported attributes instead of ignoring the cookie
92707        https://bugs.webkit.org/show_bug.cgi?id=108494
92708
92709        PR 287832
92710        Reviewed by Rob Buis.
92711        Internally Reviewed by Liam Quinn.
92712
92713        A short-term fix for CookieParser to not blow up when a Set-Cookie header has an invalid
92714        or unsupported cookie attribute.
92715
92716        We will ignore the attribute only, not the entire cookie.
92717
92718        Also, making sure the parser won't replace values of valid attributes when evaluating an unsupported
92719        cookie with the same length and same first character as a supported attribute.
92720
92721        Tested using opera cookie and browser.swlab.rim.net cookies test suite. Tested using regular sites that
92722        has a login mechanism.
92723
92724        * platform/blackberry/CookieParser.cpp:
92725        (WebCore::CookieParser::parseOneCookie):
92726
927272013-01-31  Tommy Widenflycht  <tommyw@google.com>
92728
92729        [chromium] MediaStream API: Rename WebMediaStreamDescriptor and WebMediaStreamComponent to WebMediaStream and WebMediaStreamTrack
92730        https://bugs.webkit.org/show_bug.cgi?id=108458
92731
92732        Reviewed by Adam Barth.
92733
92734        Only renames, no other code changes.
92735
92736        * WebCore.gypi:
92737        * platform/chromium/support/WebMediaStream.cpp: Added.
92738        (WebKit::WebMediaStream::WebMediaStream):
92739        (WebKit):
92740        (WebKit::WebMediaStream::reset):
92741        (WebKit::WebMediaStream::label):
92742        (WebKit::WebMediaStream::id):
92743        (WebKit::WebMediaStream::extraData):
92744        (WebKit::WebMediaStream::setExtraData):
92745        (WebKit::WebMediaStream::audioSources):
92746        (WebKit::WebMediaStream::videoSources):
92747        (WebKit::WebMediaStream::operator=):
92748        (WebKit::WebMediaStream::operator PassRefPtr<WebCore::MediaStreamDescriptor>):
92749        (WebKit::WebMediaStream::operator WebCore::MediaStreamDescriptor*):
92750        (WebKit::WebMediaStream::initialize):
92751        (WebKit::WebMediaStream::assign):
92752        * platform/chromium/support/WebMediaStreamComponent.cpp: Removed.
92753        * platform/chromium/support/WebMediaStreamDescriptor.cpp: Removed.
92754        * platform/chromium/support/WebMediaStreamTrack.cpp: Added.
92755        (WebKit):
92756        (WebKit::WebMediaStreamTrack::WebMediaStreamTrack):
92757        (WebKit::WebMediaStreamTrack::operator=):
92758        (WebKit::WebMediaStreamTrack::initialize):
92759        (WebKit::WebMediaStreamTrack::reset):
92760        (WebKit::WebMediaStreamTrack::operator PassRefPtr<MediaStreamComponent>):
92761        (WebKit::WebMediaStreamTrack::operator MediaStreamComponent*):
92762        (WebKit::WebMediaStreamTrack::isEnabled):
92763        (WebKit::WebMediaStreamTrack::id):
92764        (WebKit::WebMediaStreamTrack::stream):
92765        (WebKit::WebMediaStreamTrack::source):
92766        (WebKit::WebMediaStreamTrack::assign):
92767        * platform/chromium/support/WebRTCStatsRequest.cpp:
92768        (WebKit::WebRTCStatsRequest::stream):
92769        (WebKit::WebRTCStatsRequest::component):
92770        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
92771        (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
92772        (WebCore::MediaStreamCenterChromium::stopLocalMediaStream):
92773        (WebCore::MediaStreamCenterChromium::addMediaStreamTrack):
92774        (WebCore::MediaStreamCenterChromium::removeMediaStreamTrack):
92775        * platform/mediastream/chromium/MediaStreamCenterChromium.h:
92776        (WebKit):
92777        (MediaStreamCenterChromium):
92778        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
92779        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteStream):
92780        (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
92781        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
92782        (WebKit):
92783        (RTCPeerConnectionHandlerChromium):
92784
927852013-01-31  Dmitry Zvorygin  <zvorygin@chromium.org>
92786
92787        Web Inspector: searching for <u> in elements panel finds all tags containing "u"
92788        https://bugs.webkit.org/show_bug.cgi?id=108176
92789
92790        Reviewed by Pavel Feldman.
92791
92792        When searching for tag name check that tag name must either start from
92793        search query, or must end with it.
92794
92795        * inspector/InspectorDOMAgent.cpp:
92796        (WebCore::InspectorDOMAgent::performSearch):
92797
927982013-01-30  Mark Lam  <mark.lam@apple.com>
92799
92800        DatabaseContext needs to outlive the ScriptExecutionContext.
92801        https://bugs.webkit.org/show_bug.cgi?id=108355.
92802
92803        Reviewed by Geoffrey Garen.
92804
92805        Added a RefPtr<DatabaseContext> in ScriptExecutionContext to keep the
92806        DatabaseContext alive until after ScriptExecutionContext destructs.
92807
92808        No new tests.
92809
92810        * Modules/webdatabase/DatabaseContext.cpp:
92811        (WebCore::DatabaseContext::DatabaseContext):
92812        * dom/ScriptExecutionContext.cpp:
92813        (WebCore::ScriptExecutionContext::setDatabaseContext):
92814        * dom/ScriptExecutionContext.h:
92815        (ScriptExecutionContext):
92816
928172013-01-31  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
92818
92819        On Linux, can't get spelling suggestions without selection when unified text checker is enabled
92820        https://bugs.webkit.org/show_bug.cgi?id=107684
92821
92822        Reviewed by Ryosuke Niwa.
92823
92824        No new tests, covered by context-menu-suggestions.html.
92825
92826        * editing/Editor.cpp:
92827        (WebCore::Editor::guessesForMisspelledOrUngrammatical):
92828        For Linux, extend selection range to the closest word to get
92829        the spelling suggestions when unified text checker is enabled.
92830
928312013-01-31  Florin Malita  <fmalita@chromium.org>
92832
92833        [Skia] Update SkiaImageFilterBuilder's brightness matrix to match Chromium's implementation
92834        https://bugs.webkit.org/show_bug.cgi?id=107841
92835
92836        Reviewed by Stephen White.
92837
92838        Update Skia's brightness filter to match the spec after http://trac.webkit.org/changeset/139770.
92839
92840        No new tests: covered by existing tests (currently disabled pending rebaseline).
92841
92842        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
92843
928442013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>
92845
92846        Web Inspector: show cursor location in DTE
92847        https://bugs.webkit.org/show_bug.cgi?id=108478
92848
92849        Reviewed by Pavel Feldman.
92850
92851        Add a new status bar element to SourceFrame to display current
92852        DefaultTextEditor cursor position.
92853
92854        No new tests.
92855
92856        * English.lproj/localizedStrings.js:
92857        * inspector/front-end/DefaultTextEditor.js:
92858        (WebInspector.DefaultTextEditor.prototype.copyRange):
92859        * inspector/front-end/SourceFrame.js:
92860        (WebInspector.SourceFrame):
92861        (WebInspector.SourceFrame.prototype.statusBarItems):
92862        (WebInspector.SourceFrame.prototype.selectionChanged):
92863        (WebInspector.SourceFrame.prototype._updateSourcePosition):
92864        * inspector/front-end/TextEditor.js:
92865        (WebInspector.TextEditor.prototype.copyRange):
92866        * inspector/front-end/inspector.css:
92867        (.source-frame-position):
92868
928692013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>
92870
92871        Web Inspector: overlay highlight in DTE gets messed up when zoom factor changes.
92872        https://bugs.webkit.org/show_bug.cgi?id=108486
92873
92874        Reviewed by Pavel Feldman.
92875
92876        Repaint overlay highlight when zoom factor changes.
92877
92878        No new tests.
92879
92880        * inspector/front-end/DefaultTextEditor.js:
92881        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
92882        (WebInspector.TextEditorMainPanel.prototype.removeHighlight):
92883        (WebInspector.TextEditorMainPanel.prototype.highlightRange):
92884        (WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptors):
92885        (WebInspector.TextEditorMainPanel.prototype.resize):
92886
928872013-01-31  Simon Hausmann  <simon.hausmann@digia.com>
92888
92889        [Qt] Fix minor memory leak in slot execution
92890
92891        Reviewed by Allan Sandfeld Jensen.
92892
92893        Don't leak the "length" string when executing a slot in JavaScript.
92894
92895        * bridge/qt/qt_runtime.cpp:
92896        (JSC::Bindings::QtConnectionObject::execute):
92897
928982013-01-31  Mike West  <mkwst@chromium.org>
92899
92900        Allow blocking of IndexedDB in third-party contexts
92901        https://bugs.webkit.org/show_bug.cgi?id=94171
92902
92903        Reviewed by Jochen Eisinger.
92904
92905        This patch ensures that the origin of the top window is passed into
92906        SecurityOrigin::canAccessDatabase when working with IndexedDB. Giving
92907        SecurityOrigin access to this data means that it can properly check
92908        whether the database is being opened in a third-party context, and
92909        therefore properly enforce the third-party access checks that were
92910        added in http://trac.webkit.org/changeset/125736.
92911
92912        Third-party checks are added to IDBFactory::open,
92913        IDBFactory::deleteDatabase, and IDBFactory::getDatabaseNames; each will
92914        now throw a SECURITY_ERR exception when access in a third-party context
92915        if third-party access checks are enabled.
92916
92917        To make this process slightly more clear, and avoid some ugly casting
92918        logic, this patch adds a 'topOrigin'  method to ScriptExecutionContext,
92919        and implements it on both WorkerContext and Document.
92920
92921        Tests: http/tests/security/cross-origin-indexeddb-allowed.html
92922               http/tests/security/cross-origin-indexeddb.html
92923               http/tests/security/cross-origin-worker-indexeddb-allowed.html
92924               http/tests/security/cross-origin-worker-indexeddb.html
92925
92926        * Modules/indexeddb/IDBFactory.cpp:
92927        (WebCore::IDBFactory::getDatabaseNames):
92928        (WebCore::IDBFactory::openInternal):
92929        (WebCore::IDBFactory::deleteDatabase):
92930            Grab the SecurityOrigin of the current context's top-level origin,
92931            and pass it to SecurityOrigin::canAccessDatabase to ensure that
92932            access checks are properly applied to these three methods.
92933        * dom/Document.cpp:
92934        (WebCore::Document::topOrigin):
92935        (WebCore):
92936        * dom/Document.h:
92937        (Document):
92938        * dom/ScriptExecutionContext.h:
92939        (ScriptExecutionContext):
92940            Add a topOrigin() method to ScriptExecutionContext, and implement it
92941            on Document in order to give callers access to the top document's
92942            SecurityOrigin without casting ScriptExecutionContext.
92943        * workers/WorkerContext.h:
92944            Change the existing topOrigin() method to override the new method
92945            on ScriptExecutionContext.
92946
929472013-01-31  Eugene Klyuchnikov  <eustas@chromium.org>
92948
92949        Web Inspector: [Network] Add cookie column to show presence of request/response cookies.
92950        https://bugs.webkit.org/show_bug.cgi?id=107441
92951
92952        Reviewed by Pavel Feldman.
92953
92954        In some use cases only responses that contain "set-cookie" headers
92955        are interesting.
92956
92957        * English.lproj/localizedStrings.js: Added "Set-Cookies" string.
92958        * inspector/front-end/NetworkPanel.js:
92959        (WebInspector.NetworkLogView.prototype._createTable): Added columns.
92960        (WebInspector.NetworkLogView.prototype._createSortingFunctions): Ditto.
92961        (WebInspector.NetworkDataGridNode.prototype.createCells): Ditto.
92962        (WebInspector.NetworkDataGridNode.prototype.refreshRequest): Ditto.
92963        (WebInspector.NetworkDataGridNode.prototype._refreshCookiesCell): Added.
92964        (WebInspector.NetworkDataGridNode.prototype._refreshSetCookiesCell): Added.
92965        (WebInspector.NetworkDataGridNode.RequestCookiesCountComparator): Added.
92966        (WebInspector.NetworkDataGridNode.ResponseCookiesCountComparator): Added.
92967
929682013-01-31  Andrey Adaikin  <aandrey@chromium.org>
92969
92970        Web Inspector: Exception in HeapSnapshotView.js
92971        https://bugs.webkit.org/show_bug.cgi?id=108456
92972
92973        Reviewed by Yury Semikhatsky.
92974
92975        Listen "profile added" events in the HeapSnapshotView targeted only to the Heap Snapshot type.
92976
92977        * inspector/front-end/HeapSnapshotView.js:
92978        (WebInspector.HeapSnapshotView.prototype._onProfileHeaderAdded):
92979
929802013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>
92981
92982        Web Inspector: do not set any textContent in overlay highlight spans
92983        https://bugs.webkit.org/show_bug.cgi?id=108460
92984
92985        Reviewed by Pavel Feldman.
92986
92987        Do not set any text content for overlay highlight spans to implicitly
92988        set its height. Instead, measure its height in the same manner as its
92989        done for "width" and "left" and set it explicitly.
92990
92991        No new tests: no change in behaviour.
92992
92993        * inspector/front-end/DefaultTextEditor.js:
92994        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
92995        (WebInspector.TextEditorMainPanel.ElementMetrics):
92996        * inspector/front-end/textEditor.css:
92997        (.text-editor-token-highlight): Update highlight to correspond to
92998        slightly different elements height.
92999
930002013-01-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
93001
93002        [Qt] Box shadows on a transparency layer is very slow
93003        https://bugs.webkit.org/show_bug.cgi?id=107547
93004
93005        Reviewed by Noam Rosenthal.
93006
93007        Include the window boundaries in the clip returned by GraphicsContext,
93008        since QPainter may remember clips larger than the destination, but
93009        ShadowBlur uses the clipBounds to determine the size of the shadow layer.
93010
93011        * platform/graphics/qt/GraphicsContextQt.cpp:
93012        (WebCore::GraphicsContext::clipBounds):
93013
930142013-01-31  Pavel Feldman  <pfeldman@chromium.org>
93015
93016        Web Inspector: highlight backend languages as scripts
93017        https://bugs.webkit.org/show_bug.cgi?id=108336
93018
93019        Reviewed by Vsevolod Vlasov.
93020
93021        Most languages have structure similar to js, so enabling default highlighter for them won't hurt.
93022
93023        * inspector/front-end/FileSystemWorkspaceProvider.js:
93024        (WebInspector.FileSystemWorkspaceProvider.prototype._contentTypeForPath):
93025
930262013-01-31  Andrey Adaikin  <aandrey@chromium.org>
93027
93028        Web Inspector: [Profiles] show launcher view upon deleting last profile type's header
93029        https://bugs.webkit.org/show_bug.cgi?id=108468
93030
93031        Reviewed by Pavel Feldman.
93032
93033        We should show launcher view and hide profile type sidebar section upon deleting last profile type's header from the sidebar.
93034        Right now we only show launcher view upon deleting the last profile header (of any profile type).
93035
93036        * inspector/front-end/ProfilesPanel.js:
93037        (WebInspector.ProfilesPanel.prototype._removeProfileHeader):
93038
930392013-01-31  Eugene Klyuchnikov  <eustas@chromium.org>
93040
93041        Web Inspector: [Network] Columns are misaligned as first row goes out of sight.
93042        https://bugs.webkit.org/show_bug.cgi?id=107933
93043
93044        Reviewed by Pavel Feldman.
93045
93046        For some reason if "td" elements in first table row have "display: none"
93047        style, then column width calculation breaks.
93048
93049        * inspector/front-end/networkLogView.css:
93050        (.network-log-grid.data-grid tr.offscreen > td > div):
93051        Hide content instead of "td" element itself.
93052
930532013-01-31   Vineet Chaudhary  <rgf748@motorola.com>
93054
93055        formMethod to have empty string as default value and 'get' as invalid.
93056        https://bugs.webkit.org/show_bug.cgi?id=108263
93057
93058        Reviewed by Kent Tamura.
93059
93060        The spec says formmethod should only have an invalid value default, not a missing value default.
93061        Spec: http://www.whatwg.org/specs/web-apps/current-work/#form-submission-0
93062              http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-formmethod
93063
93064        Test: fast/forms/formmethod-attribute-test.html
93065
93066        * html/HTMLFormControlElement.cpp: For the missing formMethod attr return empty string.
93067        (WebCore::HTMLFormControlElement::formMethod):
93068
930692013-01-20 Kondapally Kalyan <kalyan.kondapally@intel.com>
93070
93071        [Efl][WebGL] Add better support to track and free XResources.
93072        https://bugs.webkit.org/show_bug.cgi?id=107397
93073
93074        Reviewed by Noam Rosenthal.
93075
93076        We leak Memory during config selection as we dont free temporary
93077        allocated visuals, config etc. This patch ensures that we dont leak any
93078        memory.
93079
93080        Covered by existing WebGL tests.
93081
93082        * platform/graphics/surfaces/egl/EGLSurface.cpp:
93083        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
93084        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
93085        (WebCore::GLXConfigSelector::GLXConfigSelector):
93086        (WebCore::GLXConfigSelector::visualInfo):
93087        (WebCore::GLXConfigSelector::pBufferContextConfig):
93088        (WebCore::GLXConfigSelector::surfaceContextConfig):
93089        (WebCore::GLXConfigSelector::createSurfaceConfig):
93090        (GLXConfigSelector):
93091        Removed XVisualInfo as member variable. Fixed memory leaks.
93092
93093        * platform/graphics/surfaces/glx/GLXSurface.cpp:
93094        (WebCore::GLXTransportSurface::GLXTransportSurface):
93095        * platform/graphics/surfaces/glx/OwnPtrX11.h: Added.
93096        (OwnPtrX11):
93097        (WebCore::OwnPtrX11::OwnPtrX11):
93098        (WebCore::OwnPtrX11::~OwnPtrX11):
93099        (WebCore::OwnPtrX11::operator=):
93100        (WebCore::OwnPtrX11::operator T*):
93101        (WebCore::OwnPtrX11::operator->):
93102        (WebCore::OwnPtrX11::get):
93103        Calls XFree on pointer to memory allocated by X when the class goes out of scope.
93104        OwnPtr cannot be used here as GLXFBConfig is a pointer to an array of pointers.
93105
93106        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
93107        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
93108        (WebCore::X11OffScreenWindow::~X11OffScreenWindow):
93109        (WebCore):
93110        (WebCore::X11OffScreenWindow::createOffScreenWindow):
93111        (WebCore::X11OffScreenWindow::destroyWindow):
93112        (WebCore::X11OffScreenWindow::nativeSharedDisplay):
93113        * platform/graphics/surfaces/glx/X11WindowResources.h:
93114        (X11OffScreenWindow):
93115        Removed unused code. Fixed memory leaks.
93116
931172013-01-31  Andrey Adaikin  <aandrey@chromium.org>
93118
93119        Web Inspector: [Canvas] remove invalid canvas profile trace logs upon frame navigation
93120        https://bugs.webkit.org/show_bug.cgi?id=108454
93121
93122        Reviewed by Pavel Feldman.
93123
93124        When canvas profile trace logs stored in the backend get destroyed (for example, on frame navigation), send an event to frontend and update the UI.
93125        Drive-by: replace String types to corresponding TypeBuilder::Canvas::* typedefs.
93126
93127        * inspector/InjectedScriptCanvasModule.cpp:
93128        (WebCore::InjectedScriptCanvasModule::captureFrame):
93129        (WebCore::InjectedScriptCanvasModule::startCapturing):
93130        (WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
93131        (WebCore::InjectedScriptCanvasModule::stopCapturing):
93132        (WebCore::InjectedScriptCanvasModule::dropTraceLog):
93133        (WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
93134        (WebCore::InjectedScriptCanvasModule::traceLog):
93135        (WebCore::InjectedScriptCanvasModule::replayTraceLog):
93136        (WebCore::InjectedScriptCanvasModule::resourceInfo):
93137        (WebCore::InjectedScriptCanvasModule::resourceState):
93138        * inspector/InjectedScriptCanvasModule.h:
93139        (InjectedScriptCanvasModule):
93140        * inspector/Inspector.json:
93141        * inspector/InspectorCanvasAgent.cpp:
93142        (WebCore::InspectorCanvasAgent::dropTraceLog):
93143        (WebCore::InspectorCanvasAgent::stopCapturing):
93144        (WebCore::InspectorCanvasAgent::getTraceLog):
93145        (WebCore::InspectorCanvasAgent::replayTraceLog):
93146        (WebCore::InspectorCanvasAgent::getResourceInfo):
93147        (WebCore::InspectorCanvasAgent::getResourceState):
93148        (WebCore::InspectorCanvasAgent::frameNavigated):
93149        * inspector/InspectorCanvasAgent.h:
93150        (InspectorCanvasAgent):
93151        * inspector/InspectorPageAgent.cpp:
93152        (WebCore::InspectorPageAgent::hasIdForFrame):
93153        (WebCore):
93154        * inspector/InspectorPageAgent.h:
93155        (InspectorPageAgent):
93156        * inspector/front-end/CanvasProfileView.js:
93157        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
93158        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
93159        (WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
93160        (WebInspector.CanvasProfileType.prototype._traceLogsRemoved):
93161        (WebInspector.CanvasDispatcher.prototype.contextCreated):
93162        (WebInspector.CanvasDispatcher.prototype.traceLogsRemoved):
93163        (WebInspector.CanvasProfileHeader):
93164        (WebInspector.CanvasProfileHeader.prototype.frameId):
93165
931662013-01-31  Andrey Lushnikov  <lushnikov@chromium.org>
93167
93168        Web Inspector: DTE doesn't highlight words if the selected one is the last in the line
93169        https://bugs.webkit.org/show_bug.cgi?id=108344
93170
93171        Reviewed by Pavel Feldman.
93172
93173        Fix error in _isWord function which made an erroneous line-end check.
93174
93175        Improved test: inspector/editor/text-editor-highlight-token.html
93176
93177        * inspector/front-end/DefaultTextEditor.js:
93178        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
93179
931802013-01-31  Philippe Normand  <pnormand@igalia.com>
93181
93182        Unreviewed, Qt build fix after r141265.
93183
93184        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
93185        Avoid uninitialized variable error when NATIVE_FULLSCREEN_VIDEO is disabled.
93186
931872013-01-31  Kent Tamura  <tkent@chromium.org>
93188
93189        Click on a label element won't select input[type=date]
93190        https://bugs.webkit.org/show_bug.cgi?id=108428
93191
93192        Reviewed by Kentaro Hara.
93193
93194        date/time input types with INPUT_MULTIPLE_FIELDS_UI are not
93195        mouse-focusable. <input> as a shadow host never gets focus and
93196        sub-fields in its shadow tree are focusable. Howevever, the click
93197        handling of <label> checked isMouseFocusable. We introduce new function
93198        isFocusableByClickOnLabel to HTMLElement. It's default implementation is
93199        same as isMouseFocusable, and we add special handling for
93200        BaseMultipleFieldsDateAndTimeInputType::isFocusableByClickOnLabel.
93201
93202        Also, date/time input types without INPUT_MULTIPLE_FIELDS_UI were not
93203        mouse-focusable by a mistake. It should be mouse-focusable.
93204
93205        Test: fast/forms/date/date-click-on-label.html
93206
93207        * html/HTMLElement.cpp:
93208        (WebCore::HTMLElement::isFocusableByClickOnLabel):
93209        Added. Just calls isMouseFocusable.
93210        * html/HTMLElement.h:
93211        (HTMLElement): Declare isFocusableByClickOnLabel.
93212        * html/HTMLLabelElement.cpp:
93213        (WebCore::HTMLLabelElement::defaultEventHandler):
93214        Calls isFocusableByClickOnLabel instead of isMouseFocusable.
93215
93216        * html/HTMLInputElement.cpp:
93217        (WebCore::HTMLInputElement::isFocusableByClickOnLabel):
93218        Delegate to InputType::isFocusableByClickOnLabel.
93219        * html/HTMLInputElement.h:
93220        (HTMLInputElement): Declare isFocusableByClickOnLabel.
93221        * html/InputType.cpp:
93222        (WebCore::InputType::isFocusableByClickOnLabel):
93223        Added. Calls isMouseFocusable.
93224        * html/InputType.h:
93225        (InputType): Declare isFocusableByClickOnLabel.
93226
93227        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
93228        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isFocusableByClickOnLabel):
93229        Added. Use the same logic with textfields.
93230        * html/BaseMultipleFieldsDateAndTimeInputType.h:
93231        (BaseMultipleFieldsDateAndTimeInputType): Declare isFocusableByClickOnLabel.
93232        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
93233        (WebCore::BaseChooserOnlyDateAndTimeInputType::isMouseFocusable):
93234        Added. Use the same logic with textfields.
93235        * html/BaseChooserOnlyDateAndTimeInputType.h:
93236        (BaseChooserOnlyDateAndTimeInputType): Declare isMouseFocusable.
93237
932382013-01-31  Kentaro Hara  <haraken@chromium.org>
93239
93240        Rename WheelEvent::Granularity to WheelEvent::DeltaMode
93241        https://bugs.webkit.org/show_bug.cgi?id=108434
93242
93243        Reviewed by Ryosuke Niwa.
93244
93245        Per the spec, WheelEvent::Granularity should be renamed to WheelEvent::DeltaMode.
93246
93247        Spec: http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent
93248        https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm#constructor-wheelevent
93249
93250        No tests. No change in behavior.
93251
93252        * dom/WheelEvent.cpp:
93253        (WebCore::WheelEvent::WheelEvent):
93254        (WebCore::WheelEvent::initWheelEvent):
93255        (WebCore::deltaMode):
93256        (WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator):
93257        * dom/WheelEvent.h:
93258        (WebCore::WheelEvent::create):
93259        (WebCore::WheelEvent::deltaMode):
93260        (WheelEvent):
93261        * page/EventHandler.cpp:
93262        (WebCore::wheelGranularityToScrollGranularity):
93263        (WebCore::EventHandler::defaultWheelEventHandler):
93264
932652013-01-30  Yury Semikhatsky  <yurys@chromium.org>
93266
93267        Web Inspector: test that nodes from the same detached DOM tree will get into one group in heap snapshot
93268        https://bugs.webkit.org/show_bug.cgi?id=108202
93269
93270        Reviewed by Vsevolod Vlasov.
93271
93272        Test: inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html
93273
93274        * inspector/front-end/JSHeapSnapshot.js:
93275        (WebInspector.JSHeapSnapshotNode.prototype.className): removed unnecessary i18n.
93276
932772013-01-31  Kentaro Hara  <haraken@chromium.org>
93278
93279        [V8] Trace not only major DOM GCs but also minor DOM GCs
93280        https://bugs.webkit.org/show_bug.cgi?id=108436
93281
93282        Reviewed by Adam Barth.
93283
93284        Currently only major DOM GCs are traced.
93285        We should also trace minor DOM GCs.
93286
93287        No tests. No change in behavior.
93288
93289        * bindings/v8/V8GCController.cpp:
93290        (WebCore::V8GCController::minorGCPrologue):
93291        (WebCore::V8GCController::minorGCEpilogue):
93292
932932013-01-31  Yury Semikhatsky  <yurys@chromium.org>
93294
93295        Layout Test inspector-protocol/take-heap-snapshot.html crashes in the Debug mode
93296        https://bugs.webkit.org/show_bug.cgi?id=104800
93297
93298        Reviewed by Jochen Eisinger.
93299
93300        The test crashed because during snapshot generation Profiler.reportHeapSnapshotProgress
93301        events were sent to the inspector front-end, then parsed and dispatched there.
93302        Since in case of layout tests the front-end resides in the same process
93303        as the inspected page parsing the event broke an assumption that there are
93304        no JS heap allocations while heap snapshot is being taken.
93305
93306        I added optional boolean parameter 'reportProgress' to Profiler.takeHeapSnapshot
93307        command so that the protocol client can control whether progress events should
93308        be sent during snapshot generation. The protocol test is not interested in the
93309        progress events and sets reportProgress to false.
93310
93311        Test: inspector-protocol/heap-profiler/take-heap-snapshot.html
93312
93313        * inspector/Inspector.json:
93314        * inspector/InspectorProfilerAgent.cpp:
93315        (WebCore::InspectorProfilerAgent::takeHeapSnapshot):
93316        * inspector/InspectorProfilerAgent.h:
93317        (InspectorProfilerAgent):
93318        * inspector/front-end/ProfilesPanel.js:
93319        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
93320
933212013-01-31  Sheriff Bot  <webkit.review.bot@gmail.com>
93322
93323        Unreviewed, rolling out r141110.
93324        http://trac.webkit.org/changeset/141110
93325        https://bugs.webkit.org/show_bug.cgi?id=108349
93326
93327        This patch broke WK2-EFL unit tests (Requested by grzegorz on
93328        #webkit).
93329
93330        * platform/text/TextChecking.h:
93331        (WebCore):
93332
933332013-01-31  Kentaro Hara  <haraken@chromium.org>
93334
93335        [V8] 'new MouseEvent("click", {relatedTarget: window}).window' should return window
93336        https://bugs.webkit.org/show_bug.cgi?id=108432
93337
93338        Reviewed by Adam Barth.
93339
93340        In V8 'new MouseEvent("click", {relatedTarget: window}).window'
93341        returns null. JSC returns window, which is a correct behavior.
93342        V8 should also return window.
93343
93344        The point is that we need to handle a DOMWindow wrapper specially
93345        before converting it to an EventTarget object. A wrapper returned by
93346        Dictionary::get("relatedTarget") is not an expected DOMWindow wrapper.
93347        To get the expected DOMWindow wrapper, we need to look up a prototype
93348        chain of the DOMWindow wrapper.
93349
93350        In JSC, this special handling is done by JSEventTargetCustom::toEventTarget().
93351
93352        Test: fast/events/constructors/mouse-event-constructor.html
93353
93354        * bindings/v8/Dictionary.cpp:
93355        (WebCore::Dictionary::get):
93356
933572013-01-31  Mark Pilgrim  <pilgrim@chromium.org>
93358
93359        [Chromium] Move MediaPlayerPrivateChromium to WebCore
93360        https://bugs.webkit.org/show_bug.cgi?id=108415
93361
93362        Reviewed by Adam Barth.
93363
93364        Part of a larger refactoring series; see tracking bug 106829.
93365
93366        * WebCore.gypi:
93367        * platform/graphics/chromium/MediaPlayerPrivateChromium.cpp: Added.
93368        (WebCore):
93369        (WebCore::MediaPlayerPrivate::registerMediaEngine): call
93370        registerMediaEngine through static function pointer that was set
93371        during WebKit initializeWithoutV8
93372        (WebCore::MediaPlayerPrivate::setMediaEngineRegisterSelfFunction):
93373        new setter function that takes a function pointer that is used by registerMediaEngine
93374        * platform/graphics/chromium/MediaPlayerPrivateChromium.h:
93375        (WebCore):
93376        (MediaPlayerPrivate):
93377
933782013-01-30  Patrick Gansterer  <paroga@webkit.org>
93379
93380        Port DragImageWin.cpp to WinCE
93381        https://bugs.webkit.org/show_bug.cgi?id=108329
93382
93383        Reviewed by Brent Fulgham.
93384
93385        Add #if !OS(WINCE) around a few lines of the code, so it can be used by the WinCE port too.
93386
93387        * PlatformWinCE.cmake:
93388        * platform/win/DragImageWin.cpp:
93389        (WebCore::dragLabelFont):
93390        * platform/wince/DragImageWinCE.cpp: Removed.
93391
933922013-01-30  Hayato Ito  <hayato@chromium.org>
93393
93394        Split CSSOMWrapper data and functions out from StyleResolver into its own class.
93395        https://bugs.webkit.org/show_bug.cgi?id=107779
93396
93397        Reviewed by Dimitri Glazkov.
93398
93399        Factored CSSOMWrapper logic and data out from StyleResolver into a
93400        InspectorCSSOMWrappers class.  Since InspectorCSSOMWrappers
93401        depends on static variables defined in StyleResolver.cpp, this
93402        patch does not extract a new class into a new file, which makes a
93403        review easier since it produces readable diffs.
93404
93405        After we factor static variables related to default style sheets
93406        in a following patch (bug 107780), I'll move
93407        InspectorCSSOMWrappers into a its own file.
93408
93409        No new tests, refactoring only.
93410
93411        * css/StyleResolver.cpp:
93412        (WebCore):
93413        (WebCore::StyleResolver::appendAuthorStyleSheets):
93414        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetIfNeeded):
93415        (WebCore::InspectorCSSOMWrappers::collect):
93416        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents): Name it explicitly rather than overloading.
93417        (WebCore::InspectorCSSOMWrappers::collectFromStyleSheets): Name it explicitly rather than overloading.
93418        (WebCore::InspectorCSSOMWrappers::collectFromDocumentStyleSheetCollection): Name it explicitly rather than overloading.
93419        (WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets): Renamed from ensureFullCSSOMWrapperForInspector().
93420        (WebCore::InspectorCSSOMWrappers::reportMemoryUsage):
93421        (WebCore::StyleResolver::reportMemoryUsage):
93422        * css/StyleResolver.h:
93423        (InspectorCSSOMWrappers):
93424        (WebCore):
93425        (StyleResolver):
93426        (WebCore::StyleResolver::inspectorCSSOMWrappers):
93427        * inspector/InspectorCSSAgent.cpp:
93428        (WebCore::InspectorCSSAgent::willMatchRule):
93429        (WebCore::InspectorCSSAgent::willProcessRule):
93430        (WebCore::InspectorCSSAgent::buildObjectForRule):
93431
934322013-01-30  Sheriff Bot  <webkit.review.bot@gmail.com>
93433
93434        Unreviewed, rolling out r141358.
93435        http://trac.webkit.org/changeset/141358
93436        https://bugs.webkit.org/show_bug.cgi?id=108421
93437
93438        breaks android builder (Requested by morrita on #webkit).
93439
93440        * bindings/v8/custom/V8IntentCustom.cpp:
93441
934422013-01-30  Kentaro Hara  <haraken@chromium.org>
93443
93444        [V8] Use state->isolate() when state is not 0
93445        https://bugs.webkit.org/show_bug.cgi?id=107674
93446
93447        Reviewed by Adam Barth.
93448
93449        No tests. No change in behavior.
93450
93451        * bindings/v8/ScriptProfiler.cpp:
93452        (WebCore::ScriptProfiler::start):
93453        (WebCore::ScriptProfiler::stop):
93454
934552013-01-30  Adam Barth  <abarth@webkit.org>
93456
93457        The background HTML parser should be able to parse speculatively
93458        https://bugs.webkit.org/show_bug.cgi?id=107753
93459
93460        Reviewed by Eric Seidel.
93461
93462        This patch adds the ability for the foreground HTML parser to
93463        invalidate speculative parsing done by the background HTML parser.
93464        Currently, we're a bit overly agressive an invalidate all speculations
93465        on document.write. We plan to refine that in the future.
93466
93467        Test: fast/parser/document-write-partial-script.html
93468
93469        * WebCore.gypi:
93470        * html/parser/BackgroundHTMLInputStream.cpp: Added.
93471        (WebCore):
93472        (WebCore::BackgroundHTMLInputStream::BackgroundHTMLInputStream):
93473        (WebCore::BackgroundHTMLInputStream::append):
93474        (WebCore::BackgroundHTMLInputStream::close):
93475        (WebCore::BackgroundHTMLInputStream::createCheckpoint):
93476        (WebCore::BackgroundHTMLInputStream::rewindTo):
93477        * html/parser/BackgroundHTMLInputStream.h: Added.
93478        (WebCore):
93479        (BackgroundHTMLInputStream):
93480        (WebCore::BackgroundHTMLInputStream::current):
93481        (WebCore::BackgroundHTMLInputStream::Checkpoint::Checkpoint):
93482        (Checkpoint):
93483        * html/parser/BackgroundHTMLParser.cpp:
93484        (WebCore::BackgroundHTMLParser::append):
93485        (WebCore):
93486        (WebCore::BackgroundHTMLParser::resumeFrom):
93487        (WebCore::BackgroundHTMLParser::markEndOfFile):
93488        (WebCore::BackgroundHTMLParser::pumpTokenizer):
93489        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
93490        (WebCore::BackgroundHTMLParser::resumeFromPartial):
93491        * html/parser/BackgroundHTMLParser.h:
93492        (BackgroundHTMLParser):
93493        * html/parser/HTMLDocumentParser.cpp:
93494        (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
93495        (WebCore::HTMLDocumentParser::didFailSpeculation):
93496        (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
93497        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
93498        * html/parser/HTMLDocumentParser.h:
93499        (ParsedChunk):
93500        (HTMLDocumentParser):
93501
935022013-01-30  Nils Barth  <nbarth@google.com>
93503
93504        [V8] Add IDL 'enum' support to CodeGeneratorV8.pm
93505        https://bugs.webkit.org/show_bug.cgi?id=106553
93506
93507        Reviewed by Kentaro Hara.
93508
93509        Add partial support for Web IDL enumerations in V8 bindings
93510
93511        Binding generators currently cannot handle IDL enumerations.
93512        (An enumeration is an DOMString with a limited set of values, thus
93513        treated internally as DOMString, with validation code added in
93514        bindings.)
93515        This adds support for enumerations in V8, adding validation checking
93516        to setters.
93517        It does not add validation checking to operations (no test case), and
93518        does not add support in JSC.
93519
93520        Test: bindings/scripts/test/TestObj.idl (run-bindings-test)
93521
93522        * bindings/scripts/IDLParser.pm:
93523         - Parser assumes all IDL definitions are interfaces; add support for
93524           other definitions
93525         - Parser parses but discards enum definitions; instead, record
93526           parsed data
93527        (Parse): Sort definitions into interfaces and enums.
93528        Remove "@definitions eq (someIdlDocument)" test, as this never
93529        happens (fossil code) -- parseDefinitions returns list of definitions,
93530        never a one-item list consisting of a document (no nested documents).
93531        (unquoteString): new utility function to unquote StringToken (token
93532        itself still quoted)
93533        (parseEnum):
93534        (parseEnumValueList):
93535        (parseEnumValues):
93536        (parseEnumOld):
93537
93538        * bindings/scripts/CodeGenerator.pm:
93539         - Expose parsed enum data to backends (detect enums, list valid
93540           values)
93541         - Enums treated as DOMString type in internal function
93542        (ProcessDocument):
93543        (IsEnumType):
93544        (ValidEnumValues):
93545        (IsRefPtrType):
93546        * bindings/scripts/CodeGeneratorV8.pm:
93547         - Enums treated as DOMString type in internal functions
93548         - Add validation to setter
93549        (GenerateNormalAttrSetter):
93550        (GetNativeType):
93551        (JSValueToNative):
93552        (NativeToJSValue):
93553        (ConvertToV8StringResource):
93554        * bindings/scripts/test/TestObj.idl:
93555         - New enum type and enum variable test for IDL enumeration support
93556        * bindings/scripts/test/V8/V8TestObj.cpp:
93557         - Generated code, desired behavior
93558        (WebCore::TestObjV8Internal::enumAttrAttrGetter):
93559        (TestObjV8Internal):
93560        (WebCore::TestObjV8Internal::enumAttrAttrSetter):
93561        (WebCore):
93562        * bindings/scripts/test/JS/JSTestObj.cpp:
93563         - Generated code, currently incorrect
93564        (WebCore):
93565        (WebCore::jsTestObjEnumAttr):
93566        (WebCore::setJSTestObjEnumAttr):
93567        * bindings/scripts/test/JS/JSTestObj.h:
93568         - Generated code, currently incorrect
93569        (WebCore):
93570
935712013-01-30  Nico Weber  <thakis@chromium.org>
93572
93573        [chromium] Build webkit with enable_web_intents set to 0.
93574        https://bugs.webkit.org/show_bug.cgi?id=108408
93575
93576        Reviewed by Kentaro Hara.
93577
93578        I'll then make chromium build fine with that, then switch
93579        enable_web_intents to 0, roll that into webkit, and then
93580        actually remove the code hidden behind this flag.
93581
93582        * bindings/v8/custom/V8IntentCustom.cpp:
93583
935842013-01-30  Joshua Bell  <jsbell@chromium.org>
93585
93586        IndexedDB: Remove speculative dispatchEvent crash fix now that root cause is addressed
93587        https://bugs.webkit.org/show_bug.cgi?id=108131
93588
93589        Reviewed by Tony Chang.
93590
93591        A patch was landed in r140027 to prevent a null pointer crash in
93592        IDBRequest::dispatchEvent and confirm the source of the crash (which
93593        we couldn't repro locally). Following confirmation from user reports,
93594        the root cause was tracked down to a race condition in MessageQueue,
93595        and was fixed in r140483. This patch is no longer needed, and there's
93596        always been an ASSERT in place to catch regressions while debugging.
93597
93598        No new tests - no behavior change.
93599
93600        * Modules/indexeddb/IDBRequest.cpp:
93601        (WebCore::IDBRequest::dispatchEvent): Remove extraneous test.
93602
936032013-01-30  Joe Mason  <jmason@rim.com>
93604
93605        [BlackBerry] Store both proxy and host credentials simultaneously for NetworkJob
93606        https://bugs.webkit.org/show_bug.cgi?id=108388
93607
93608        Reviewed by Yong Li.
93609
93610        The platform NetworkRequest interface has been updated again, to store both a proxy and host
93611        credential for each request (to prevent an infinite loop when a request authenticates against a
93612        proxy but fails the host authentication, and then the followup contains the host credential but not
93613        the proxy credential so it fails proxy authentication, so the next followup contains the proxy
93614        credential but not the host credential...)
93615
93616        Complying with the new interface requires the host and proxy challenge to be stored separately in
93617        webkit so they can both be added to the same NetworkRequest.
93618
93619        Internal PR: 281172
93620        Internal Reviewer: Leo Yang
93621
93622        * platform/network/ResourceHandleInternal.h:
93623        (ResourceHandleInternal):
93624        * platform/network/blackberry/AuthenticationChallenge.h:
93625        (WebCore::AuthenticationChallenge::hasCredentials):
93626        (AuthenticationChallenge):
93627        * platform/network/blackberry/NetworkJob.cpp:
93628        (WebCore::NetworkJob::notifyAuthReceived):
93629        (WebCore::NetworkJob::handleRedirect):
93630        (WebCore::NetworkJob::sendRequestWithCredentials):
93631        (WebCore::NetworkJob::storeCredentials):
93632        (WebCore):
93633        (WebCore::NetworkJob::purgeCredentials):
93634        (WebCore::NetworkJob::notifyChallengeResult):
93635        (WebCore::NetworkJob::updateCurrentWebChallenge):
93636        * platform/network/blackberry/NetworkJob.h:
93637        (NetworkJob):
93638        * platform/network/blackberry/NetworkManager.cpp:
93639        (WebCore::setAuthCredentials):
93640        (WebCore):
93641        (WebCore::NetworkManager::startJob):
93642
936432013-01-30  Oliver Hunt  <oliver@apple.com>
93644
93645        Make JSEventListener more robust in the event of the compiled handler being released.
93646        https://bugs.webkit.org/show_bug.cgi?id=108390
93647
93648        Reviewed by Michael Saboff.
93649
93650        It shouldn't be possible for a handler to be collected for any object that
93651        might still trigger an event.  Nonetheless it does still happen, and the
93652        only point of failure that currently exists is compiling the handler.
93653
93654        This patch is mostly just assertions, but also removes a bunch of field
93655        clearing that was previously being performed.  Given we do seem to periodically
93656        end up needing to recompile a handler this appears to be necessary.  That
93657        said there does not appear to be a memory hit from this as the event handlers
93658        that make us use JSLazyEventListener are not frequently compiled, and the bulk
93659        of the functions that are compiled end up causing us to keep the strings around
93660        anyway.
93661
93662        * bindings/js/JSLazyEventListener.cpp:
93663        (WebCore::JSLazyEventListener::JSLazyEventListener):
93664        (WebCore::JSLazyEventListener::initializeJSFunction):
93665
936662013-01-30  Kentaro Hara  <haraken@chromium.org>
93667
93668        Implement KeyboardEvent constructor
93669        https://bugs.webkit.org/show_bug.cgi?id=108320
93670
93671        Reviewed by Adam Barth.
93672
93673        This patch implements KeyboardEvent constructor under a DOM4_EVENTS_CONSTRUCTOR flag,
93674        which is enabled on Chromium and Safari.
93675
93676        This significantly simplifies a code to construct a KeyboardEvent.
93677
93678        Before:
93679          e = document.createEvent("KeyboardEvent");
93680          e.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 0, 0);
93681
93682        After:
93683          e = new KeyboardEvent("keypress");
93684
93685        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
93686
93687        - 'char' and 'code' are not yet supported due to lack of WebCore implementation.
93688
93689        - 'altGraphKey' is not supported because it's an extended attribute in WebKit
93690        and is not speced.
93691
93692        - Renamed keyboard event constant variables to avoid style errors.
93693
93694        Test: fast/events/constructors/keyboard-event-constructor.html
93695
93696        * dom/KeyboardEvent.cpp:
93697        (WebCore::keyLocationCode):
93698        (WebCore::KeyboardEventInit::KeyboardEventInit):
93699        (WebCore):
93700        (WebCore::KeyboardEvent::KeyboardEvent):
93701        * dom/KeyboardEvent.h:
93702        (WebCore):
93703        (WebCore::KeypressCommand::KeypressCommand):
93704        (KeypressCommand):
93705        (KeyboardEventInit):
93706        (KeyboardEvent):
93707        (WebCore::KeyboardEvent::create):
93708        (WebCore::KeyboardEvent::keyIdentifier):
93709        (WebCore::KeyboardEvent::keyLocation):
93710        (WebCore::KeyboardEvent::altGraphKey):
93711        (WebCore::KeyboardEvent::keyEvent):
93712        (WebCore::KeyboardEvent::keypressCommands):
93713        * dom/KeyboardEvent.idl:
93714
937152013-01-30  Joshua Bell  <jsbell@chromium.org>
93716
93717        IndexedDB: IDBKeyRange::isOnlyKey() does pointer equality comparison
93718        https://bugs.webkit.org/show_bug.cgi?id=107582
93719
93720        Reviewed by Tony Chang.
93721
93722        Per the bug title, IDBKeyRange::isOnlyKey() was testing the upper/lower pointers to
93723        determine if this was a "trivial" range, which can be used to fast-path lookups. This
93724        is insufficient in multi-process ports where range values may be thrown across the wire.
93725        This is addressed by using the existing key equality tests.
93726
93727        In addition, the bounds type check incorrectly checked m_lowerType == LowerBoundOpen, which
93728        meant the function could never return true (since upper == lower implies closed bounds).
93729        Therefore, the fast-path case wasn't used even in single-process ports (e.g. DRT). The
93730        slow-path case contructed a backing store cursor over the range, and exited early if the
93731        cursor yielded nothing. The fast-path case doesn't need to create a cursor, so needs to
93732        deal with lookup misses. This revealed two similar (but trivial) lurking bugs in the
93733        fast-path.
93734
93735        No new behavior; covered by tests such as: storage/indexeddb/get-keyrange.html
93736
93737        * Modules/indexeddb/IDBBackingStore.cpp:
93738        (WebCore::IDBBackingStore::getRecord): Handle backing store read miss case.
93739        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
93740        (WebCore::GetOperation::perform): Handle backing store read miss case.
93741        * Modules/indexeddb/IDBKeyRange.cpp:
93742        (WebCore::IDBKeyRange::isOnlyKey): Compare keys by value, not pointer, correct
93743        type checks, add assertions.
93744        * Modules/indexeddb/IDBKeyRange.h:
93745        (IDBKeyRange): Move implementation to CPP file.
93746
937472013-01-30  Joe Mason  <jmason@rim.com>
93748
93749        [BlackBerry] Never store empty credentials in NetworkJob::storeCredentials
93750        https://bugs.webkit.org/show_bug.cgi?id=108387
93751
93752        Reviewed by Yong Li.
93753
93754        There is a code path that can cause NetworkJob::storeCredentials to be called with empty
93755        credentials, causing the existing credentials to be overwritten even though authentication
93756        succeeded.  PR 287791 has been filed to investigate why this happens; in the meantime, ignore empty
93757        credentials.
93758
93759        Internal PR: 281172
93760        Internally Reviewed By: Leo Yang
93761
93762        * platform/network/blackberry/NetworkJob.cpp:
93763        (WebCore::NetworkJob::storeCredentials):
93764
937652013-01-30  Andy Estes  <aestes@apple.com>
93766
93767        ContentFilter should be a ref-counted class
93768        https://bugs.webkit.org/show_bug.cgi?id=108392
93769
93770        Reviewed by David Kilzer.
93771
93772        * loader/MainResourceLoader.h:
93773        (MainResourceLoader): Store a RefPtr to m_contentFilter.
93774        * platform/ContentFilter.h: Inherit from RefCounted<ContentFilter>.
93775        * platform/mac/ContentFilterMac.mm:
93776        (WebCore::ContentFilter::create): Return a PassRefPtr.
93777
937782013-01-30  Tim Horton  <timothy_horton@apple.com>
93779
93780        [mac] ImageBuffer should create accelerated buffers for small canvases, but we shouldn't force them to create compositing layers
93781        https://bugs.webkit.org/show_bug.cgi?id=107804
93782        <rdar://problem/11752381>
93783
93784        Reviewed by Simon Fraser.
93785
93786        Make all canvases IOSurface-backed if requested, instead of having a size threshold
93787        under which we won't use accelerated canvas.
93788
93789        Make requiresCompositingForCanvas take the size of the canvas into account, using
93790        the threshold which was previously in ImageBuffer to determine whether or not a
93791        canvas should be forced into a compositing layer.
93792
93793        This improves canvas performance on some benchmarks
93794        (http://www.mikechambers.com/html5/javascript/QuadTree/examples/collision.html, for example)
93795        significantly, in cases where canvases which fall below the size limit
93796        (and thus are unaccelerated) are being drawn rapidly into either accelerated
93797        tiles or another accelerated canvas, by preventing excessive copying to/from the GPU.
93798
93799        * platform/graphics/cg/ImageBufferCG.cpp:
93800        (WebCore):
93801        (WebCore::ImageBuffer::ImageBuffer):
93802        * rendering/RenderLayerCompositor.cpp:
93803        (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
93804
938052013-01-30  Alec Flett  <alecflett@chromium.org>
93806
93807        IndexedDB: clean up scheduleTask return type
93808        https://bugs.webkit.org/show_bug.cgi?id=108361
93809
93810        Reviewed by Tony Chang.
93811
93812        This is just a code simplification now that the
93813        synchronous consumers of scheduleTask are gone.
93814
93815        No new tests: pure refactor.
93816
93817        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
93818        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
93819        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
93820        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
93821        (WebCore::IDBTransactionBackendImpl::scheduleTask):
93822        * Modules/indexeddb/IDBTransactionBackendImpl.h:
93823        (WebCore::IDBTransactionBackendImpl::scheduleTask):
93824        (IDBTransactionBackendImpl):
93825
938262013-01-30  Simon Fraser  <simon.fraser@apple.com>
93827
93828        Elements that dynamically become fixed sometimes jump to the top left on scrolling
93829        https://bugs.webkit.org/show_bug.cgi?id=108389
93830
93831        Reviewed by Beth Dakin.
93832
93833        When an element became position:fixed and gained a compositing layer
93834        as a result, we would compute its viewport constraints (including the 
93835        last GraphicsLayer position) before we had actually updated the GraphicsLayer
93836        geometry for the first time. This would cause a jump to 0,0 on scrolling.
93837        
93838        Fix by removing the call to updateViewportConstraintStatus() just after
93839        creating the backing. Instead, hook in to registerScrollingLayers(),
93840        which is called on every geometry update, to update the viewport
93841        constraints for this layer.
93842        
93843        Tested via existing tests, which now show correct positions at last
93844        layout.
93845
93846        * rendering/RenderLayerBacking.cpp:
93847        (WebCore::RenderLayerBacking::registerScrollingLayers):
93848        * rendering/RenderLayerCompositor.cpp:
93849        (WebCore::RenderLayerCompositor::updateBacking):
93850
938512013-01-30  Adam Barth  <abarth@webkit.org>
93852
93853        HTMLDocumentParser::insert should be aware of threaded parsing
93854        https://bugs.webkit.org/show_bug.cgi?id=107764
93855
93856        Reviewed by Eric Seidel.
93857
93858        This patch is an incremental step towards recovering from
93859        document.write invalidating our speculative parsing buffer. The
93860        approach I've taken is to make it possible to transfer the
93861        HTMLDocumentParser's HTMLTokenizer and HTMLToken to the background
93862        thread. To make that possible, I've taught the HTMLDocumentParser how
93863        to operate without a tokenizer or a token.
93864
93865        Not having a tokenizer or a token while parsing in the background also
93866        helps us avoid accidentially feeding input to the main thread's
93867        tokenizer when we're supposed to feed it to the background thread.
93868
93869        This patch shouldn't have any behavior change (other than possibly
93870        fixing a crash in fast/parser when threading parsing is enabled).
93871
93872        * html/parser/HTMLDocumentParser.cpp:
93873        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
93874        (WebCore::HTMLDocumentParser::didFailSpeculation):
93875        (WebCore):
93876        (WebCore::HTMLDocumentParser::insert):
93877        (WebCore::HTMLDocumentParser::finish):
93878        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
93879        * html/parser/HTMLDocumentParser.h:
93880        (HTMLDocumentParser):
93881        * html/parser/HTMLTreeBuilder.cpp:
93882        (WebCore::HTMLTreeBuilder::constructTree):
93883        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
93884        (WebCore::HTMLTreeBuilder::processEndTag):
93885        (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
93886        (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
93887        (WebCore::HTMLTreeBuilder::processScriptStartTag):
93888        * html/parser/TextDocumentParser.cpp:
93889        (WebCore::TextDocumentParser::TextDocumentParser):
93890
938912013-01-30  Rafael Weinstein  <rafaelw@chromium.org>
93892
93893        [HTMLTemplateElement] prevent the parser from removing nodes from the content when the foster agency is processing formatting elements
93894        https://bugs.webkit.org/show_bug.cgi?id=108377
93895
93896        Reviewed by Adam Barth.
93897
93898        https://dvcs.w3.org/hg/webcomponents/raw-file/50ce1f368c1a/spec/templates/index.html#in-body-addition
93899
93900        callTheAdoptionAgency now appends to the template's content when it previously would have appended to the template element itself.
93901
93902        New test added to html5lib.
93903
93904        * dom/ContainerNode.cpp:
93905        (WebCore::ContainerNode::parserInsertBefore):
93906        (WebCore::ContainerNode::parserAppendChild):
93907        * html/parser/HTMLTreeBuilder.cpp:
93908        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
93909
939102013-01-30  Mark Lam  <mark.lam@apple.com>
93911
93912        DatabaseContext should implement ThreadSafeRefCounted.
93913        https://bugs.webkit.org/show_bug.cgi?id=108285.
93914
93915        Reviewed by Alexey Proskuryakov.
93916
93917        DatabaseManager::interruptAllDatabasesForContext() can ref a
93918        DatabaseContext from another thread. Hence, the DatabaseContext needs
93919        to be a ThreadSafeRefCounted instead of a RefCounted.
93920
93921        No new tests.
93922
93923        * Modules/webdatabase/DatabaseContext.h:
93924
939252013-01-30  Kentaro Hara  <haraken@chromium.org>
93926
93927        Implement WheelEvent constructor
93928        https://bugs.webkit.org/show_bug.cgi?id=108303
93929
93930        Reviewed by Adam Barth.
93931
93932        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
93933
93934        This patch implements UIEvent constructor under a DOM4_EVENTS_CONSTRUCTOR flag,
93935        which is enabled on Chromium and Safari.
93936
93937        Test: fast/events/constructors/wheel-event-constructor.html
93938
93939        * dom/WheelEvent.cpp:
93940        (WebCore::WheelEventInit::WheelEventInit):
93941        (WebCore):
93942        (WebCore::WheelEvent::WheelEvent):
93943        (WebCore::WheelEvent::initWheelEvent):
93944        * dom/WheelEvent.h:
93945        (WheelEventInit):
93946        (WebCore):
93947        (WheelEvent):
93948        (WebCore::WheelEvent::create):
93949        (WebCore::WheelEvent::wheelDelta):
93950        (WebCore::WheelEvent::wheelDeltaX):
93951        (WebCore::WheelEvent::wheelDeltaY):
93952        (WebCore::WheelEvent::rawDeltaX):
93953        (WebCore::WheelEvent::rawDeltaY):
93954        (WebCore::WheelEvent::granularity):
93955        (WebCore::WheelEvent::webkitDirectionInvertedFromDevice):
93956        (WebCore::WheelEvent::isHorizontal):
93957        * dom/WheelEvent.idl:
93958
939592013-01-30  Julien Chaffraix  <jchaffraix@webkit.org>
93960
93961        [CSS Grid Layout] Support 'auto' sized grid items
93962        https://bugs.webkit.org/show_bug.cgi?id=103332
93963
93964        Reviewed by Tony Chang.
93965
93966        Tests: fast/css-grid-layout/auto-content-resolution-columns.html
93967               fast/css-grid-layout/auto-content-resolution-rows.html
93968
93969        The specification interprets 'auto' as minmax(min-content, max-content).
93970        Because we stored the grid definitions as an 'auto' length, we wouldn't
93971        handle it properly during layout.
93972
93973        This change makes us do the translation when we query the information for
93974        layout.
93975
93976        * rendering/style/GridTrackSize.h:
93977        (WebCore::GridTrackSize::minTrackBreadth):
93978        (WebCore::GridTrackSize::maxTrackBreadth):
93979        Translate 'auto' to minmax(min-content, max-content). This works as getComputedStyle
93980        still sees the GridTrackSize as a single length and thus query length() instead of the
93981        individual component of minmax().
93982
939832013-01-30  Alec Flett  <alecflett@chromium.org>
93984
93985        IndexedDB: Avoid crashing when deleting indexes
93986        https://bugs.webkit.org/show_bug.cgi?id=108356
93987
93988        Reviewed by Tony Chang.
93989
93990        It is reasonable that the backend aborts a transaction before
93991        the frontend is aware, depending on the timing of events. This
93992        allows the transactionId to be invalid rather than asserting.
93993
93994        Test: storage/indexeddb/createIndex-after-failure.html
93995
93996        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
93997        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
93998        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
93999        (WebCore::IDBDatabaseBackendImpl::createIndex):
94000        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
94001        (WebCore::IDBDatabaseBackendImpl::get):
94002        (WebCore::IDBDatabaseBackendImpl::put):
94003        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
94004        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
94005        (WebCore::IDBDatabaseBackendImpl::openCursor):
94006        (WebCore::IDBDatabaseBackendImpl::count):
94007        (WebCore::IDBDatabaseBackendImpl::deleteRange):
94008        (WebCore::IDBDatabaseBackendImpl::clear):
94009
940102013-01-30  Kentaro Hara  <haraken@chromium.org>
94011
94012        isSameAsCurrentState() should take SerializedScriptValue* instead of PassRefPtr
94013        https://bugs.webkit.org/show_bug.cgi?id=107904
94014
94015        Reviewed by Darin Adler.
94016
94017        Applied Darin's comment: https://bugs.webkit.org/show_bug.cgi?id=107904#c5
94018
94019        No tests. No change in behavior.
94020
94021        * bindings/js/JSPopStateEventCustom.cpp:
94022        (WebCore::JSPopStateEvent::state):
94023        * bindings/v8/custom/V8PopStateEventCustom.cpp:
94024        (WebCore::V8PopStateEvent::stateAccessorGetter):
94025        * page/History.cpp:
94026        (WebCore::History::isSameAsCurrentState):
94027        * page/History.h:
94028        (History):
94029
940302013-01-30  Douglas Stockwell  <dstockwell@chromium.org>
94031
94032        Remove unnecessary setAnimating() method
94033        https://bugs.webkit.org/show_bug.cgi?id=107495
94034
94035        Reviewed by Dean Jackson.
94036
94037        The corresponding accessor and uses were removed in r39211.
94038
94039        No new tests: no change in behaviour.
94040
94041        * page/animation/AnimationBase.cpp:
94042        (WebCore::AnimationBase::AnimationBase):
94043        * page/animation/AnimationBase.h:
94044        (AnimationBase):
94045        * page/animation/CompositeAnimation.cpp:
94046        * page/animation/CompositeAnimation.h:
94047        * page/animation/ImplicitAnimation.cpp:
94048        (WebCore::ImplicitAnimation::animate):
94049        * page/animation/KeyframeAnimation.cpp:
94050        (WebCore::KeyframeAnimation::animate):
94051
940522013-01-30  Elliott Sprehn  <esprehn@chromium.org>
94053
94054        Clean up interface to ShadowRoot
94055        https://bugs.webkit.org/show_bug.cgi?id=108300
94056
94057        Reviewed by Dimitri Glazkov.
94058
94059        Lots of general clean up to ShadowRoot removing unused headers and forward
94060        declarations, moving short inline methods into the class definition so it's
94061        easier to understand what methods do what, and replacing macros with methods
94062        with inline methods.
94063
94064        No new tests, just refactoring.
94065
94066        * dom/ElementShadow.cpp:
94067        (WebCore::ElementShadow::addShadowRoot):
94068        (WebCore::ElementShadow::removeAllShadowRoots):
94069        * dom/ShadowRoot.cpp:
94070        (WebCore::ShadowRoot::ShadowRoot):
94071        (WebCore::ShadowRoot::setInnerHTML): Use isOrphan instead of macro.
94072        (WebCore::ShadowRoot::setApplyAuthorStyles): Use isOrphan instead of macro.
94073        (WebCore::ShadowRoot::setResetStyleInheritance): Use isOrphan instead of macro.
94074        (WebCore::ShadowRoot::childrenChanged): Use isOrphan instead of macro.
94075        * dom/ShadowRoot.h:
94076        (WebCore::ShadowRoot::setHost): Removed.
94077        (WebCore::ShadowRoot::host):
94078        (WebCore::ShadowRoot::owner):
94079        (ShadowRoot):
94080        (WebCore::ShadowRoot::isOrphan): Replacement of GuardOrphanShadowRoot macro.
94081
940822013-01-30  Ryosuke Niwa  <rniwa@webkit.org>
94083
94084        Apple's internal PLT test suite doesn't finish after r141136
94085        https://bugs.webkit.org/show_bug.cgi?id=108380
94086
94087        Reviewed by Alexey Proskuryakov.
94088
94089        Temporarily disable the feature to see if that fixes it.
94090
94091        * loader/cache/CachedResourceLoader.cpp:
94092        (WebCore::CachedResourceLoader::requestResource):
94093
940942013-01-30  Florin Malita  <fmalita@chromium.org>
94095
94096        [Chromium] Unreviewed gardening.
94097
94098        Attempted Mac build fix after http://trac.webkit.org/changeset/141291.
94099
94100        * platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp:
94101        (WebCore::harfBuzzCoreTextGetFontFuncs):
94102
941032013-01-30  Philip Rogers  <pdr@google.com>
94104
94105        Track scale and zoom together when drawing SVG images
94106        https://bugs.webkit.org/show_bug.cgi?id=108108
94107
94108        Reviewed by Tim Horton.
94109
94110        This patch refactors SVGImage::drawSVGToImageBuffer to take a single zoomAndScale parameter
94111        and removes two messy calls to setPageZoomFactor. This patch makes progress towards an
94112        SVG image cache keyed on just container size and scale.
94113
94114        This refactoring is covered by existing tests.
94115
94116        * loader/cache/CachedImage.cpp:
94117        (WebCore::CachedImage::setContainerSizeForRenderer):
94118        (WebCore::CachedImage::imageSizeForRenderer):
94119
94120            This complex logic has been refactored out of CachedImage and into SVGImageCache.
94121            In addition to the code move, we no longer divide by the zoom factor because the
94122            container size is stored without zoom.
94123
94124        * svg/graphics/SVGImage.cpp:
94125        (WebCore::SVGImage::drawSVGToImageBuffer):
94126
94127            This method signature has changed to take a FloatSize for the container size and
94128            a combined zoom and scale parameter (zoomAndScale). A FloatSize is needed for the
94129            container size because we now store the container size unzoomed, and in this process
94130            we do not want to lose precision.
94131
94132            The messy setPageZoomFactor calls have also been removed which cleans this function up.
94133
94134        * svg/graphics/SVGImage.h:
94135        * svg/graphics/SVGImageCache.cpp:
94136        (WebCore::SVGImageCache::setContainerSizeForRenderer):
94137
94138            This function now stores the container size unzoomed. The container size was changed
94139            to a FloatSize so that precision is not lost.
94140
94141        (WebCore::SVGImageCache::imageSizeForRenderer):
94142
94143            Note that the ImageBuffer size will stay the same. We now store the size as:
94144                containerSize (without zoom) * zoom * scale
94145            Previously this was:
94146                containerSize (with zoom) * scale
94147
94148        (WebCore::SVGImageCache::redraw):
94149        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
94150        * svg/graphics/SVGImageCache.h:
94151        (WebCore::SVGImageCache::SizeAndScales::SizeAndScales):
94152        (SizeAndScales):
94153        (SVGImageCache):
94154
941552013-01-30  Benjamin Poulain  <benjamin@webkit.org>
94156
94157        Do not convert to String->AtomicString for NamedNodeMap
94158        https://bugs.webkit.org/show_bug.cgi?id=108289
94159
94160        Reviewed by Kentaro Hara.
94161
94162        NamedNodeMap's API was taking a WTF::String. Internally, attribute
94163        names are AtomicString.
94164
94165        The conversions String->AtomicString was causing an additional ref-deref
94166        for the JS/V8 bindings. And could cause an additional memory allocation for the Objective-C
94167        bindings.
94168
94169        This patch changes the API to use AtomicString, and update the custom bindings accordingly.
94170
94171        * bindings/js/JSNamedNodeMapCustom.cpp:
94172        (WebCore::JSNamedNodeMap::canGetItemsForName):
94173        (WebCore::JSNamedNodeMap::nameGetter):
94174        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
94175        (WebCore::V8NamedNodeMap::namedPropertyGetter):
94176        * dom/NamedNodeMap.cpp:
94177        (WebCore::NamedNodeMap::getNamedItem):
94178        (WebCore::NamedNodeMap::getNamedItemNS):
94179        (WebCore::NamedNodeMap::removeNamedItem):
94180        (WebCore::NamedNodeMap::removeNamedItemNS):
94181        * dom/NamedNodeMap.h:
94182        (NamedNodeMap):
94183
941842013-01-30  Zan Dobersek  <zdobersek@igalia.com>
94185
94186        [GTK] http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html is failing
94187        https://bugs.webkit.org/show_bug.cgi?id=108100
94188
94189        Reviewed by Tony Gentilcore.
94190
94191        Similarly to the changes to V8 bindings in r140882, wrap the PerformanceEntry
94192        as a PerformanceMark or PerformanceMeasure if possible.
94193
94194        No new tests - the relevant test now passes.
94195
94196        * bindings/js/JSPerformanceEntryCustom.cpp:
94197        (WebCore::toJS):
94198
941992013-01-30  Adam Klein  <adamk@chromium.org>
94200
94201        [JSC] MutationObservers should not create circular, leaky references
94202        https://bugs.webkit.org/show_bug.cgi?id=93661
94203
94204        Reviewed by Adam Barth.
94205
94206        This patch makes JSMutationCallback an entirely-custom class that
94207        holds a weak reference to the function it wraps. To keep that function
94208        alive, it also adds a PrivateName between the JSMutationObserver
94209        wrapper and the function when the MutationObserver is constructed.
94210
94211        Unlike the generated JSC callbacks, JSMutationCallback doesn't hold a
94212        reference to the JSDOMGlobalObject, instead holding the
94213        DOMWrapperWorld it was created in. As an ActiveDOMCallback, it also
94214        holds a weak pointer to ScriptExecutionContext (via ContextDestructionObserver).
94215
94216        It's not clear to me how to write a test for this. There's an existing
94217        manual test in ManualTests/leak-cycle-observer-wrapper.html which may
94218        be of use but which doesn't seem to currently give meaningful output.
94219
94220        * CMakeLists.txt:
94221        * DerivedSources.cpp:
94222        * DerivedSources.make:
94223        * DerivedSources.pri:
94224        * GNUmakefile.list.am:
94225        * Target.pri:
94226        * UseJSC.cmake:
94227        * WebCore.gypi:
94228        * WebCore.vcproj/WebCore.vcproj:
94229        * WebCore.vcxproj/WebCore.vcxproj:
94230        * WebCore.vcxproj/WebCore.vcxproj.filters:
94231        * WebCore.xcodeproj/project.pbxproj:
94232        * bindings/js/JSBindingsAllInOne.cpp:
94233        * bindings/js/JSMutationCallback.cpp: Added.
94234        (WebCore):
94235        (WebCore::JSMutationCallback::JSMutationCallback):
94236        (WebCore::JSMutationCallback::~JSMutationCallback):
94237        (WebCore::JSMutationCallback::handleEvent):
94238        * bindings/js/JSMutationCallback.h: Added.
94239        (WebCore):
94240        (JSMutationCallback): Instead of a JSCallbackData, hold a weak ref to the callback and a RefPtr to the DOMWrapperWorld.
94241        (WebCore::JSMutationCallback::create):
94242        * bindings/js/JSMutationCallbackCustom.cpp: Removed.
94243        * bindings/js/JSMutationObserverCustom.cpp:
94244        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
94245        When constructing the JSMutationObserver, add a reference via PrivateName from the MutationObserver to the callback function.
94246        * dom/MutationCallback.idl: Removed. Neither JSC nor V8 use an IDL file to generate this class any more.
94247
942482013-01-30  Elliott Sprehn  <esprehn@chromium.org>
94249
94250        Remove willAddAuthorShadowRoot and replace with alwaysCreateUserAgentShadowRoot
94251        https://bugs.webkit.org/show_bug.cgi?id=108248
94252
94253        Reviewed by Dimitri Glazkov.
94254
94255        The only reason willAddAuthorShadowRoot exists is so that a handful of
94256        other elements can create the user agent shadow root right before the
94257        author shadow root is created. Instead of providing this generic hook
94258        just expose a virtual method on Element that requests this behavior.
94259
94260        No new tests, just refactoring.
94261
94262        * dom/Element.cpp:
94263        (WebCore::Element::createShadowRoot):
94264        * dom/Element.h:
94265        (Element):
94266        (WebCore::Element::alwaysCreateUserAgentShadowRoot): Added.
94267        * dom/ElementShadow.cpp:
94268        (WebCore::ElementShadow::addShadowRoot): Remove willAddAuthorShadowRoot notification.
94269        * html/HTMLButtonElement.cpp:
94270        * html/HTMLButtonElement.h:
94271        * html/HTMLFormControlElement.cpp:
94272        * html/HTMLFormControlElement.h:
94273        * html/HTMLMediaElement.cpp:
94274        * html/HTMLMediaElement.h:
94275
942762013-01-30  Dominik Röttsches  <dominik.rottsches@intel.com>
94277
94278        [HarfBuzz] Naming fixes after removing old HarfBuzz code
94279        https://bugs.webkit.org/show_bug.cgi?id=108170
94280
94281        Reviewed by Tony Chang.
94282
94283        Since the old harfbuzz code is gone in r141241, it makes sense to get rid
94284        of the now unnecessray NG suffix in a number of places. While at it,
94285        I am also fixing some naming inconsistencies.
94286
94287        Renamed all occurences of HarfBuzzNG* to HarfBuzz*,
94288        renamed lowercase variants of harfbuzz* in variable and function names to camel-case harfBuzz*,
94289        moved files in platform/graphics/harfbuzz/ng/* one level up and removed ng folder.
94290        Updated corresponding entries in Chromium, GTK and EFL build system files.
94291
94292        No new tests, no change in behavior.
94293
94294        * GNUmakefile.list.am:
94295        * PlatformEfl.cmake:
94296        * WebCore.gyp/WebCore.gyp:
94297        * WebCore.gypi:
94298        * platform/graphics/FontPlatformData.cpp:
94299        * platform/graphics/FontPlatformData.h:
94300        (WebCore):
94301        (FontPlatformData):
94302        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
94303        (WebCore::FontPlatformData::platformDataInit):
94304        (WebCore::FontPlatformData::platformDataAssign):
94305        (WebCore::FontPlatformData::harfBuzzFace):
94306        * platform/graphics/freetype/FontPlatformData.h:
94307        (FontPlatformData):
94308        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
94309        (WebCore::FontPlatformData::operator=):
94310        (WebCore::FontPlatformData::FontPlatformData):
94311        (WebCore::FontPlatformData::harfBuzzFace):
94312        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
94313        (WebCore::FontPlatformData::FontPlatformData):
94314        (WebCore::FontPlatformData::operator=):
94315        (WebCore::FontPlatformData::harfBuzzFace):
94316        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
94317        (WebCore):
94318        (FontPlatformData):
94319        * platform/graphics/harfbuzz/HarfBuzzFace.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp.
94320        (WebCore):
94321        (FaceCacheEntry):
94322        (WebCore::FaceCacheEntry::create):
94323        (WebCore::FaceCacheEntry::~FaceCacheEntry):
94324        (WebCore::FaceCacheEntry::face):
94325        (WebCore::FaceCacheEntry::glyphCache):
94326        (WebCore::FaceCacheEntry::FaceCacheEntry):
94327        (WebCore::harfBuzzFaceCache):
94328        (WebCore::HarfBuzzFace::HarfBuzzFace):
94329        (WebCore::HarfBuzzFace::~HarfBuzzFace):
94330        (WebCore::findScriptForVerticalGlyphSubstitution):
94331        (WebCore::HarfBuzzFace::setScriptForVerticalGlyphSubstitution):
94332        * platform/graphics/harfbuzz/HarfBuzzFace.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h.
94333        (WebCore):
94334        (HarfBuzzFace):
94335        (WebCore::HarfBuzzFace::create):
94336        * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp.
94337        (WebCore):
94338        (CairoFtFaceLocker):
94339        (WebCore::CairoFtFaceLocker::CairoFtFaceLocker):
94340        (WebCore::CairoFtFaceLocker::lock):
94341        (WebCore::CairoFtFaceLocker::~CairoFtFaceLocker):
94342        (WebCore::floatToHarfBuzzPosition):
94343        (WebCore::doubleToHarfBuzzPosition):
94344        (WebCore::CairoGetGlyphWidthAndExtents):
94345        (WebCore::harfBuzzGetGlyph):
94346        (WebCore::harfBuzzGetGlyphHorizontalAdvance):
94347        (WebCore::harfBuzzGetGlyphHorizontalOrigin):
94348        (WebCore::harfBuzzGetGlyphExtents):
94349        (WebCore::harfBuzzCairoTextGetFontFuncs):
94350        (WebCore::harfBuzzCairoGetTable):
94351        (WebCore::HarfBuzzFace::createFace):
94352        (WebCore::HarfBuzzFace::createFont):
94353        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
94354        * platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp.
94355        (WebCore):
94356        (WebCore::floatToHarfBuzzPosition):
94357        (WebCore::getGlyph):
94358        (WebCore::getGlyphHorizontalAdvance):
94359        (WebCore::getGlyphHorizontalOrigin):
94360        (WebCore::getGlyphExtents):
94361        (WebCore::harfbuzzCoreTextGetFontFuncs):
94362        (WebCore::releaseTableData):
94363        (WebCore::harfBuzzCoreTextGetTable):
94364        (WebCore::HarfBuzzFace::createFace):
94365        (WebCore::HarfBuzzFace::createFont):
94366        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
94367        * platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp.
94368        (WebCore):
94369        (WebCore::HarfBuzzFontData::HarfBuzzFontData):
94370        (HarfBuzzFontData):
94371        (WebCore::SkiaScalarToHarfBuzzPosition):
94372        (WebCore::SkiaGetGlyphWidthAndExtents):
94373        (WebCore::harfBuzzGetGlyph):
94374        (WebCore::harfBuzzGetGlyphHorizontalAdvance):
94375        (WebCore::harfBuzzGetGlyphHorizontalOrigin):
94376        (WebCore::harfBuzzGetGlyphExtents):
94377        (WebCore::harfBuzzSkiaGetFontFuncs):
94378        (WebCore::harfBuzzSkiaGetTable): Also fixed style checker whitespace complaint / indentation.
94379        (WebCore::destroyHarfBuzzFontData):
94380        (WebCore::HarfBuzzFace::createFace):
94381        (WebCore::HarfBuzzFace::createFont):
94382        (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
94383        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp.
94384        (WebCore):
94385        (HarfBuzzScopedPtr):
94386        (WebCore::HarfBuzzScopedPtr::HarfBuzzScopedPtr):
94387        (WebCore::HarfBuzzScopedPtr::~HarfBuzzScopedPtr):
94388        (WebCore::HarfBuzzScopedPtr::get):
94389        (WebCore::harfBuzzPositionToFloat):
94390        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
94391        (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult):
94392        (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions):
94393        (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
94394        (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
94395        (WebCore::normalizeCharacters):
94396        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
94397        (WebCore::HarfBuzzShaper::~HarfBuzzShaper):
94398        (WebCore::HarfBuzzShaper::setDrawRange):
94399        (WebCore::HarfBuzzShaper::setFontFeatures):
94400        (WebCore::HarfBuzzShaper::shape):
94401        (WebCore::HarfBuzzShaper::adjustStartPoint):
94402        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
94403        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
94404        (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun):
94405        (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun):
94406        (WebCore::HarfBuzzShaper::fillGlyphBuffer):
94407        (WebCore::HarfBuzzShaper::offsetForPosition):
94408        (WebCore::HarfBuzzShaper::selectionRect):
94409        * platform/graphics/harfbuzz/HarfBuzzShaper.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzShaper.h.
94410        (WebCore):
94411        (HarfBuzzShaper):
94412        (WebCore::HarfBuzzShaper::totalWidth):
94413        (HarfBuzzRun):
94414        (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
94415        (WebCore::HarfBuzzShaper::HarfBuzzRun::setWidth):
94416        (WebCore::HarfBuzzShaper::HarfBuzzRun::fontData):
94417        (WebCore::HarfBuzzShaper::HarfBuzzRun::startIndex):
94418        (WebCore::HarfBuzzShaper::HarfBuzzRun::numCharacters):
94419        (WebCore::HarfBuzzShaper::HarfBuzzRun::numGlyphs):
94420        (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphs):
94421        (WebCore::HarfBuzzShaper::HarfBuzzRun::advances):
94422        (WebCore::HarfBuzzShaper::HarfBuzzRun::offsets):
94423        (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes):
94424        (WebCore::HarfBuzzShaper::HarfBuzzRun::width):
94425        (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
94426        (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
94427
944282013-01-30  Tony Chang  <tony@chromium.org>
94429
94430        REGRESSION(r136324): Flexbox should relayout flex children when width changes
94431        https://bugs.webkit.org/show_bug.cgi?id=108231
94432
94433        Reviewed by Ojan Vafai.
94434
94435        If the width of a block changes, we need to set relayoutChildren = true
94436        to relayout the children. This broke when we optimized the layout calls
94437        in layoutAndPlaceChildren.
94438
94439        Test: css3/flexbox/width-change-and-relayout-children.html
94440
94441        * rendering/RenderFlexibleBox.cpp:
94442        (WebCore::RenderFlexibleBox::layoutBlock): Also reorder the code to match RenderBlock.
94443        The bug fix is to use updateLogicalWidthAndColumnWidth() and its return value to set
94444        relayoutChildren = true.
94445
944462013-01-30  Tim Horton  <timothy_horton@apple.com>
94447
94448        GraphicsContext3DCG needs to copy image data in paintToCanvas
94449        https://bugs.webkit.org/show_bug.cgi?id=108310
94450
94451        Reviewed by Simon Fraser.
94452
94453        Make the CG implementation of GraphicsContext3D::paintToCanvas copy image data
94454        before drawing if we're drawing into an accelerated context, matching the fix made
94455        in http://trac.webkit.org/changeset/106095 for 2D canvas.
94456
94457        No new tests, depends on acceleration and would be flaky at best.
94458
94459        * platform/graphics/GraphicsContext3D.h:
94460        (GraphicsContext3D): Make CG's paintToCanvas take a GraphicsContext instead of a CGContextRef.
94461        * platform/graphics/cg/GraphicsContext3DCG.cpp:
94462        (WebCore::releaseImageData): Added.
94463        (WebCore::GraphicsContext3D::paintToCanvas): Copy image data if the destination is
94464        an accelerated context. Also, use GraphicsContext API instead of CGContext.
94465        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
94466        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
94467
944682013-01-29  Jer Noble  <jer.noble@apple.com>
94469
94470        MediaPlayerPrivateQTKit claims it supports application/x-diskcopy, breaking downloads.
94471        https://bugs.webkit.org/show_bug.cgi?id=108237
94472
94473        Reviewed by Eric Carlson.
94474
94475        Disclaim any non-'video/' or 'audio/' types which QTKit purports to support.
94476
94477        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
94478        (WebCore::addFileTypesToCache):
94479
944802013-01-30  Florin Malita  <fmalita@chromium.org>
94481
94482        Do not restart the matched properties cache timer if active
94483        https://bugs.webkit.org/show_bug.cgi?id=108345
94484
94485        Reviewed by Andreas Kling.
94486
94487        StyleResolver::addToMatchedPropertiesCache() keeps resetting the timer as more than
94488        matchedDeclarationCacheAdditionsBetweenSweeps entries are added. When armed, we should let
94489        the timer expire at its scheduled time - otherwise it may never get a chance to fire if
94490        entries keep getting added.
94491
94492        No new tests. This is a long lived timer (1min) which makes testing impractical.
94493
94494        * css/StyleResolver.cpp:
94495        (WebCore::StyleResolver::addToMatchedPropertiesCache):
94496
944972013-01-30  Simon Fraser  <simon.fraser@apple.com>
94498
94499        Temporarily disable assertions related to clip rect computation in RenderLayer
94500        https://bugs.webkit.org/show_bug.cgi?id=108265
94501
94502        Reviewed by Dean Jackson.
94503
94504        These assertions are killing the test bots, so disable them temporarily
94505        until we figure out the underlying bug (tracked by https://bugs.webkit.org/show_bug.cgi?id=103432).
94506
94507        * rendering/RenderLayer.cpp:
94508        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
94509
945102013-01-30  Elliott Sprehn  <esprehn@chromium.org>
94511
94512        Element::areAuthorShadowsAllowed should be private
94513        https://bugs.webkit.org/show_bug.cgi?id=108298
94514
94515        Reviewed by Darin Adler.
94516
94517        There's no reason for areAuthorShadowsAllowed to be exposed publically
94518        on Element since it just controls the behavior of createShadowRoot. Make
94519        it private and fix all places where it wasn't in subclasses.
94520
94521        No new tests, just refactoring.
94522
94523        * dom/Element.h:
94524        (WebCore::Element::areAuthorShadowsAllowed): Made private.
94525        * html/HTMLFrameElementBase.h:
94526        (HTMLFrameElementBase):
94527        * html/HTMLInputElement.h:
94528        (HTMLInputElement):
94529        * html/HTMLMediaElement.h:
94530        (HTMLMediaElement):
94531        * html/HTMLPlugInElement.h:
94532        (HTMLPlugInElement):
94533        * svg/SVGElement.h:
94534        (SVGElement):
94535
945362013-01-30  Eugene Klyuchnikov  <eustas@chromium.org>
94537
94538        Web Inspector: Script Profiler: Make profiler output typed.
94539        https://bugs.webkit.org/show_bug.cgi?id=102792
94540
94541        Reviewed by Yury Semikhatsky.
94542
94543        Currently fields "head" and "bottomUpHead" of Profile object
94544        returned by Profiler.getCPUProfile is untyped (type = object).
94545
94546        That's not good both for client side (protocol users may
94547        only guess on output content) and backend side (field names
94548        are hardcoded in source code).
94549
94550        This patch defines "head" and "bottomUpHead" to be of new
94551        "CPUProfileNode" type and updates serialization code to use
94552        builders to create output.
94553
94554        * bindings/js/ScriptProfile.cpp: Used buiders for serialization.
94555        * bindings/js/ScriptProfile.h: Ditto.
94556        * bindings/v8/ScriptProfile.cpp: Ditto.
94557        * bindings/v8/ScriptProfile.h: Ditto.
94558        * inspector/Inspector.json: Added and used new ProfileNode type.
94559
945602013-01-30  Yury Semikhatsky  <yurys@chromium.org>
94561
94562        Web Inspector: remove NativeHeapGraph.js
94563        https://bugs.webkit.org/show_bug.cgi?id=108342
94564
94565        Reviewed by Pavel Feldman.
94566
94567        NativeHeapGraph.js was removed as NativeHeapSnapshot.js provides more
94568        features and shares its implementation with JSHeapSnapshot.
94569
94570        * WebCore.gypi:
94571        * WebCore.vcproj/WebCore.vcproj:
94572        * inspector/compile-front-end.py:
94573        * inspector/front-end/NativeHeapGraph.js: Removed.
94574        * inspector/front-end/NativeMemorySnapshotView.js:
94575        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
94576        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
94577        (WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
94578        * inspector/front-end/ProfilesPanel.js:
94579        * inspector/front-end/WebKit.qrc:
94580
945812013-01-30  Vladislav Kaznacheev  <kaznacheev@chromium.org>
94582
94583        Web Inspector: Sidebar splitter is invisible in Elements and Sources panels
94584        https://bugs.webkit.org/show_bug.cgi?id=108331
94585
94586        Reviewed by Pavel Feldman.
94587
94588        This was a regression caused by https://bugs.webkit.org/show_bug.cgi?id=108181.
94589        The splitter element did not get the correct class at the initialization.
94590
94591        * inspector/front-end/SidebarView.js:
94592        (WebInspector.SidebarView):
94593        (WebInspector.SidebarView.prototype._updateSidebarPosition):
94594
945952013-01-30  Dmitry Zvorygin  <zvorygin@chromium.org>
94596
94597        Web Inspector: Filters on Console panel
94598        https://bugs.webkit.org/show_bug.cgi?id=107813
94599
94600        The problem is that third-party libraries may spam javascript console with internal
94601        messages. Now there's filter context-menu option, which allows to hide/show messages
94602        sent from specific scripts or urls.
94603
94604        Reviewed by Pavel Feldman.
94605
94606        * English.lproj/localizedStrings.js:
94607        * inspector/front-end/ConsoleMessage.js:
94608        (WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
94609        (WebInspector.ConsoleMessageImpl.prototype._printArray):
94610        (WebInspector.ConsoleMessageImpl.prototype._highlightSearchResultsInElement):
94611        * inspector/front-end/ConsolePanel.js:
94612        (WebInspector.ConsolePanel.prototype.performSearch):
94613        * inspector/front-end/ConsoleView.js:
94614        (WebInspector.ConsoleView.get this):
94615        (WebInspector.ConsoleView.prototype._consoleMessageAdded):
94616        (WebInspector.ConsoleView.prototype._appendConsoleMessage):
94617        (WebInspector.ConsoleView.prototype._consoleCleared):
94618        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.get var):
94619        (WebInspector.ConsoleView.prototype._handleContextMenuEvent.set get contextMenu):
94620        (WebInspector.ConsoleView.prototype._shouldBeVisible):
94621        (WebInspector.ConsoleView.prototype._updateMessageList):
94622        (WebInspector.ConsoleGroup.prototype.addMessage):
94623        * inspector/front-end/ContextMenu.js:
94624        (WebInspector.ContextMenuItem.prototype.isEnabled):
94625        (WebInspector.ContextMenuItem.prototype.setEnabled):
94626        * inspector/front-end/Settings.js:
94627
946282013-01-20  Philippe Normand  <pnormand@igalia.com>
94629
94630        [GStreamer] USE(NATIVE_FULLSCREEN_VIDEO) support
94631        https://bugs.webkit.org/show_bug.cgi?id=106760
94632
94633        Reviewed by Gustavo Noronha Silva.
94634
94635        Initial support for NATIVE_FULLSCREEN_VIDEO in the GStreamer media
94636        player. A new FullscreenVideoControllerGStreamer class is
94637        introduced, ports interested to implement native fullscreen video
94638        support should inherit from it (see FullscreenVideoControllerGtk)
94639        and hook it in the MediaPlayerPrivateGStreamer backend.
94640
94641        The GStreamerGWorld port to GStreamer 1.x is partly based on a
94642        patch by Sebastian Dröge <sebastian.droge@collabora.com>.
94643
94644        * GNUmakefile.am: Enable NATIVE_FULLSCREEN_VIDEO support.
94645        * GNUmakefile.list.am: New
94646        FullscreenVideoController{GStreamer,Gtk} modules.
94647        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp: Added.
94648        (WebCore):
94649        (WebCore::playerVolumeChangedCallback): Playbin notify::volume
94650        signal callback.
94651        (WebCore::playerMuteChangedCallback): Playbin notify::mute signal callback.
94652        (WebCore::FullscreenVideoControllerGStreamer::FullscreenVideoControllerGStreamer):
94653        (WebCore::FullscreenVideoControllerGStreamer::~FullscreenVideoControllerGStreamer):
94654        (WebCore::FullscreenVideoControllerGStreamer::enterFullscreen):
94655        Switch GStreamerGWorld to full screen, hook in to playbin's
94656        notify::volume and mute signals and initialize the full screen window.
94657        (WebCore::FullscreenVideoControllerGStreamer::exitFullscreen):
94658        Destroy the full screen window, disconnect from playbin signals
94659        and switch GStreamerGWorld out of full screen.
94660        (WebCore::FullscreenVideoControllerGStreamer::exitOnUserRequest):
94661        Trigger exit from full screen mode. This method is meant to be
94662        called when the user explicitely requests to exit from full screen
94663        by pressing a key or something similar.
94664        (WebCore::FullscreenVideoControllerGStreamer::togglePlay): Switch
94665        between play and pause states. Useful for child classes.
94666        (WebCore::FullscreenVideoControllerGStreamer::increaseVolume):
94667        Useful for child classes as well.
94668        (WebCore::FullscreenVideoControllerGStreamer::decreaseVolume): Ditto.
94669        (WebCore::FullscreenVideoControllerGStreamer::setVolume): Ditto.
94670        (WebCore::FullscreenVideoControllerGStreamer::timeToString): Ditto.
94671        * platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h: Added.
94672        (WebCore):
94673        (FullscreenVideoControllerGStreamer):
94674        (WebCore::FullscreenVideoControllerGStreamer::playStateChanged):
94675        To be implemented by child class to reflect the player's state changed.
94676        (WebCore::FullscreenVideoControllerGStreamer::volumeChanged): To
94677        be implemented by child class as well.
94678        (WebCore::FullscreenVideoControllerGStreamer::muteChanged): Ditto.
94679        (WebCore::FullscreenVideoControllerGStreamer::initializeWindow): Ditto.
94680        (WebCore::FullscreenVideoControllerGStreamer::destroyWindow): Ditto.
94681        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
94682        (WebCore::gstGWorldSyncMessageCallback): Adapt for GStreamer video
94683        overlay API changes.
94684        (WebCore::GStreamerGWorld::GStreamerGWorld):
94685        gst_bus_set_sync_handler takes one more argument in GStreamer 1.x.
94686        (WebCore::GStreamerGWorld::enterFullscreen): ffmpegcolorspace was
94687        renamed to videoconvert in GStreamer 1.x and the tee src pad
94688        template was renamed to src_%u. There is no need to send a new
94689        segment query either.
94690        (WebCore):
94691        (WebCore::gstGWorldPadProbeCallback): Remove the platform video
94692        sink branch once the tee source pad starting it has been blocked.
94693        (WebCore::GStreamerGWorld::exitFullscreen): Refactor to use an
94694        asynchronous pad probe.
94695        (WebCore::GStreamerGWorld::removePlatformVideoSink): Refactored
94696        from exitFullscreen.
94697        (WebCore::GStreamerGWorld::setWindowOverlay): Adapt for GStreamer video
94698        overlay API changes.
94699        * platform/graphics/gstreamer/GStreamerGWorld.h:
94700        (GStreamerGWorld):
94701        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
94702        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
94703        Hook NATIVE_FULLSCREEN_VIDEO support.
94704        (WebCore::MediaPlayerPrivateGStreamer::volume): Playbin volume
94705        query used by the FullscreenVideoController.
94706        (WebCore):
94707        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
94708        (WebCore):
94709        (MediaPlayerPrivateGStreamer): volume(), muted() and MediaPlayer
94710        accessor methods added. NATIVE_FULLSCREEN_VIDEO methods added as well.
94711        (WebCore::MediaPlayerPrivateGStreamer::canEnterFullscreen):
94712        (WebCore::MediaPlayerPrivateGStreamer::mediaPlayer):
94713        * platform/graphics/gstreamer/PlatformVideoWindow.h: Re-enable
94714        module if NATIVE_FULLSCREEN_VIDEO is turned on.
94715        * platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp: Ditto.
94716        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Re-enable
94717        GStreamerGWorld support.
94718        (_WebKitVideoSinkPrivate):
94719        (webkitVideoSinkRender):
94720        * platform/graphics/gstreamer/VideoSinkGStreamer.h: Ditto.
94721
947222013-01-30  Pavel Feldman  <pfeldman@chromium.org>
94723
94724        Web Inspector: beautify file selector dialog to render as two rows
94725        https://bugs.webkit.org/show_bug.cgi?id=108335
94726
94727        Reviewed by Vsevolod Vlasov.
94728
94729        Go-to-file is now rendered in two rows.
94730
94731        * inspector/front-end/FilteredItemSelectionDialog.js:
94732        (WebInspector.FilteredItemSelectionDialog):
94733        (WebInspector.FilteredItemSelectionDialog.prototype.focus):
94734        (WebInspector.FilteredItemSelectionDialog.prototype.renderAsTwoRows):
94735        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
94736        (WebInspector.OpenResourceDialog.show):
94737        * inspector/front-end/ViewportControl.js:
94738        (WebInspector.ViewportControl):
94739        (WebInspector.ViewportControl.prototype.refresh):
94740        * inspector/front-end/filteredItemSelectionDialog.css:
94741        (.filtered-item-list-dialog > input):
94742        (.filtered-item-list-dialog > div.progress):
94743        (.filtered-item-list-dialog > div.container):
94744        (.filtered-item-list-dialog-item):
94745        (.filtered-item-list-dialog-subtitle):
94746        (.filtered-item-list-dialog-item.one-row .filtered-item-list-dialog-subtitle):
94747        (.filtered-item-list-dialog-item.two-rows):
94748        (.filtered-item-list-dialog-item.selected):
94749        (.filtered-item-list-dialog-item span.highlight):
94750
947512013-01-30  Pavel Feldman  <pfeldman@chromium.org>
94752
94753        Web Inspector: migrate file selection dialog to the viewport.
94754        https://bugs.webkit.org/show_bug.cgi?id=108313
94755
94756        Reviewed by Vsevolod Vlasov.
94757
94758        Otherwise it takes too long to render.
94759
94760        * WebCore.gypi:
94761        * WebCore.vcproj/WebCore.vcproj:
94762        * inspector/compile-front-end.py:
94763        * inspector/front-end/FilteredItemSelectionDialog.js:
94764        (WebInspector.FilteredItemSelectionDialog):
94765        (WebInspector.FilteredItemSelectionDialog.prototype.focus):
94766        (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
94767        (WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
94768        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
94769        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
94770        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown.updateSelection):
94771        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
94772        (WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):
94773        (WebInspector.FilteredItemSelectionDialog.prototype._onClick):
94774        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
94775        (WebInspector.FilteredItemSelectionDialog.prototype.itemCount):
94776        (WebInspector.FilteredItemSelectionDialog.prototype.itemElement):
94777        * inspector/front-end/ViewportControl.js: Added.
94778        (WebInspector.ViewportControl):
94779        (WebInspector.ViewportControl.Provider):
94780        (WebInspector.ViewportControl.Provider.prototype.itemCount):
94781        (WebInspector.ViewportControl.Provider.prototype.itemElement):
94782        (WebInspector.ViewportControl.prototype.contentElement):
94783        (WebInspector.ViewportControl.prototype.refresh):
94784        (WebInspector.ViewportControl.prototype._onScroll):
94785        (WebInspector.ViewportControl.prototype.rowsPerViewport):
94786        (WebInspector.ViewportControl.prototype.firstVisibleIndex):
94787        (WebInspector.ViewportControl.prototype.lastVisibleIndex):
94788        (WebInspector.ViewportControl.prototype.renderedElementAt):
94789        (WebInspector.ViewportControl.prototype.scrollItemIntoView):
94790        * inspector/front-end/WebKit.qrc:
94791        * inspector/front-end/filteredItemSelectionDialog.css:
94792        (.js-outline-dialog .container div.item.selected):
94793        (.js-outline-dialog .container div.item span.highlight):
94794        * inspector/front-end/inspector.html:
94795
947962013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>
94797
94798        Web Inspector: implement highlight range API
94799        https://bugs.webkit.org/show_bug.cgi?id=108317
94800
94801        Reviewed by Pavel Feldman.
94802
94803        Test: inspector/editor/text-editor-highlight-api.html
94804
94805        Introduce RangeHighlightDescriptor class and implement Highlight Range
94806        api.
94807
94808        * inspector/front-end/DefaultTextEditor.js:
94809        (WebInspector.DefaultTextEditor.prototype.removeHighlight):
94810        (WebInspector.DefaultTextEditor.prototype.highlightRange):
94811        (WebInspector.TextEditorMainPanel.prototype.removeHighlight):
94812        (WebInspector.TextEditorMainPanel.prototype.highlightRange):
94813        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor):
94814        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.affectsLine):
94815        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.rangesForLine):
94816        (WebInspector.TextEditorMainPanel.RangeHighlightDescriptor.prototype.cssClass):
94817        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
94818        * inspector/front-end/TextEditor.js:
94819        (WebInspector.TextEditor.prototype.highlightRange):
94820        (WebInspector.TextEditor.prototype.removeHighlight):
94821
948222013-01-30  Simon Hausmann  <simon.hausmann@digia.com>
94823
94824        [Qt] Remove QT4_UNICODE related code paths
94825        https://bugs.webkit.org/show_bug.cgi?id=108316
94826
94827        Reviewed by Kenneth Rohde Christiansen.
94828
94829        Get rid of QT4_UNICODE and any related code paths. The Qt port
94830        requires Qt5 and ICU these days. This also allows for the removal
94831        of TextCodecQt.
94832
94833        * Target.pri:
94834        * platform/KURL.cpp:
94835        (WebCore::appendEncodedHostname):
94836        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
94837        (WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks):
94838        * platform/text/TextEncoding.cpp:
94839        (WebCore::TextEncoding::encode):
94840        * platform/text/TextEncodingRegistry.cpp:
94841        (WebCore::extendTextCodecMaps):
94842        * platform/text/qt/TextCodecQt.cpp: Removed.
94843        * platform/text/qt/TextCodecQt.h: Removed.
94844
948452013-01-30  David Kilzer  <ddkilzer@apple.com>
94846
94847        BUILD FIX: Make WebCorePrefix.h build on iOS
94848        <http://webkit.org/b/108224>
94849
94850        Reviewed by Sam Weinig.
94851
94852        * WebCorePrefix.h:
94853        - Include <wtf/Platform.h>.
94854        - Do not include <CoreServices/CoreServices.h> on iOS.
94855        - Include <Foundation/Foundation.h> instead of <Cocoa/Cocoa.h>
94856          on iOS.
94857
948582013-01-30  Patrick Gansterer  <paroga@webkit.org>
94859
94860        Build fix for WinCE after r141156.
94861
94862        * PlatformWinCE.cmake:
94863
948642013-01-30  Andrey Adaikin  <aandrey@chromium.org>
94865
94866        Web Inspector: [Canvas] support instrumenting canvases in iframes (frontend side)
94867        https://bugs.webkit.org/show_bug.cgi?id=108319
94868
94869        Reviewed by Pavel Feldman.
94870
94871        Add a frame selector to choose between frames with canvases. Show this selector in the status
94872        bar only if there are 2 or more frames with canvses. Otherwise, assume silently the only
94873        frame with canvases (most common use case).
94874
94875        * English.lproj/localizedStrings.js:
94876        * inspector/front-end/CanvasProfileView.js:
94877        (WebInspector.CanvasProfileType):
94878        (WebInspector.CanvasProfileType.prototype.get statusBarItems):
94879        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
94880        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
94881        (WebInspector.CanvasProfileType.prototype._frameAdded):
94882        (WebInspector.CanvasProfileType.prototype._addFrame):
94883        (WebInspector.CanvasProfileType.prototype._frameRemoved):
94884        (WebInspector.CanvasProfileType.prototype._contextCreated):
94885        (WebInspector.CanvasProfileType.prototype._selectedFrameId):
94886        (WebInspector.CanvasProfileType.prototype._dispatchViewUpdatedEvent):
94887        (WebInspector.CanvasDispatcher):
94888        (WebInspector.CanvasDispatcher.prototype.contextCreated):
94889        * inspector/front-end/ProfilesPanel.js:
94890        (WebInspector.ProfileType.prototype.createProfile):
94891        (WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
94892        (WebInspector.ProfilesPanel.prototype._updateProfileTypeSpecificUI):
94893        (WebInspector.ProfilesPanel.prototype._registerProfileType):
94894        * inspector/front-end/StatusBarButton.js:
94895        (WebInspector.StatusBarComboBox.prototype.size):
94896
948972013-01-30  Vladislav Kaznacheev  <kaznacheev@chromium.org>
94898
94899        Web Inspector: Change the Elements panel sidebar layout based on its aspect ratio.
94900        https://bugs.webkit.org/show_bug.cgi?id=108181
94901
94902        Reviewed by Pavel Feldman.
94903
94904        Sidebar aspect ratio proved to be a better trigger for the sidebar layout change that the docking mode.
94905        Moved the sidebar layout handling completely into WebInspector.SidebarView which now only accepts
94906        two positions: Start (corresponding to Left or Top) and End (corresponding to Right or Bottom).
94907
94908        No new tests.
94909
94910        * inspector/front-end/CSSNamedFlowCollectionsView.js:
94911        (WebInspector.CSSNamedFlowCollectionsView):
94912        * inspector/front-end/DockController.js:
94913        (WebInspector.DockController.prototype._updateUI):
94914        (WebInspector.DockController.prototype._toggleDockState):
94915        * inspector/front-end/ElementsPanel.js:
94916        (WebInspector.ElementsPanel.prototype.onResize):
94917        * inspector/front-end/FileSystemView.js:
94918        (WebInspector.FileSystemView):
94919        * inspector/front-end/MemoryStatistics.js:
94920        * inspector/front-end/Panel.js:
94921        (WebInspector.Panel.prototype.createSidebarView):
94922        * inspector/front-end/ScriptsPanel.js:
94923        (WebInspector.ScriptsPanel):
94924        * inspector/front-end/Settings.js:
94925        (WebInspector.ExperimentsSettings):
94926        * inspector/front-end/SidebarView.js:
94927        (WebInspector.SidebarView):
94928        (WebInspector.SidebarView.prototype.setAutoOrientation):
94929        (WebInspector.SidebarView.prototype._updateSidebarPosition):
94930        (WebInspector.SidebarView.prototype.onResize):
94931
949322013-01-30  Patrick Gansterer  <paroga@webkit.org>
94933
94934        Port SharedTimerWin.cpp to WinCE
94935        https://bugs.webkit.org/show_bug.cgi?id=103724
94936
94937        Reviewed by Brent Fulgham.
94938
94939        Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too.
94940
94941        * PlatformWinCE.cmake:
94942        * platform/win/SharedTimerWin.cpp:
94943        (WebCore):
94944        (WebCore::TimerWindowWndProc):
94945        (WebCore::initializeOffScreenTimerWindow):
94946        (WebCore::setSharedTimerFireInterval):
94947        (WebCore::stopSharedTimer):
94948        * platform/wince/SharedTimerWinCE.cpp: Removed.
94949
949502013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>
94951
94952        ctrl-arrows, ctrl-shift-arrow, ctrl-backspace
94953
94954        Web Inspector: implmenet Ctrl-Arrow/Ctrl-Backspace in DefaultTextEditor
94955        https://bugs.webkit.org/show_bug.cgi?id=107944
94956
94957        Reviewed by Pavel Feldman.
94958
94959        Add ctrl-arrows/ctrl-shift-arrow/ctrl-backspace shortcuts to jump over
94960        and delete words.
94961
94962        New test: inspector/editor/text-editor-ctrl-movements.html
94963
94964        * inspector/front-end/DefaultTextEditor.js:
94965        (WebInspector.DefaultTextEditor):
94966        (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
94967        (WebInspector.DefaultTextEditor.prototype.selection):
94968        (WebInspector.DefaultTextEditor.WordMovementController): Added.
94969        (WebInspector.DefaultTextEditor.WordMovementController.prototype._registerShortcuts):
94970        (WebInspector.DefaultTextEditor.WordMovementController.prototype.):
94971        (WebInspector.DefaultTextEditor.WordMovementController.prototype._rangeForCtrlArrowMove):
94972        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlArrow):
94973        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlShiftArrow):
94974        (WebInspector.DefaultTextEditor.WordMovementController.prototype._handleCtrlBackspace):
94975
949762013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>
94977
94978        Web Inspector: do not repaint all lines in highlight regex API in DTE
94979        https://bugs.webkit.org/show_bug.cgi?id=108081
94980
94981        Reviewed by Pavel Feldman.
94982
94983        Implement repaintLineRowsAffectedByHighlightDescriptor method that
94984        will go through the visible lineRows and repaint only those of them
94985        which were outdated by highlight change.
94986
94987        Improved test: inspector/editor/text-editor-highlight-regexp.html
94988
94989        * inspector/front-end/DefaultTextEditor.js:
94990        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
94991        (WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
94992        (WebInspector.TextEditorMainPanel.prototype._repaintLineRowsAffectedByHighlightDescriptor):
94993        (WebInspector.TextEditorMainPanel.prototype._paintLines):
94994        (WebInspector.TextEditorMainPanel.prototype._paintLineRows):
94995
949962013-01-30  Tien-Ren Chen  <trchen@chromium.org>
94997
94998        REGRESSION (r139282): Caret repainting is broken for text-align: center'd <input>
94999        https://bugs.webkit.org/show_bug.cgi?id=108283
95000
95001        Reviewed by Tim Horton.
95002
95003        Occasionally carets won't be fully erased when blinking.
95004        There used to be 1-pixel padding but removed since r139282.
95005        This patch adds back the same workaround.
95006
95007        Need to rebaseline test expectations.
95008
95009        * editing/FrameSelection.cpp:
95010        (WebCore::repaintCaretForLocalRect):
95011
950122013-01-30  Dominik Röttsches  <dominik.rottsches@intel.com>
95013
95014        [HarfBuzz] Remove the HarfBuzz-old code
95015        https://bugs.webkit.org/show_bug.cgi?id=108077
95016
95017        Reviewed by Benjamin Poulain.
95018
95019        Removing unused old variant of the HarfBuzz code.
95020
95021        No new tests, no change in functionality.
95022
95023        * GNUmakefile.am: Rename WTF_USE_HARFBUZZ_NG to WTF_USE_HARFBUZZ
95024        * WebCore.gypi: Removing ComplexTextControllerHarfBuzz* and HarfBuzzSkia* files,
95025        * platform/graphics/SimpleFontData.h:
95026        (SimpleFontData): USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
95027        * platform/graphics/freetype/FontPlatformData.h:
95028        (FontPlatformData): Removing USE(HARFBUZZ_NG) ifdefs.
95029        * platform/graphics/freetype/FontPlatformDataFreeType.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
95030        (WebCore::FontPlatformData::operator=):
95031        (WebCore::FontPlatformData::FontPlatformData):
95032        (WebCore::FontPlatformData::harfbuzzFace):
95033        * platform/graphics/freetype/SimpleFontDataFreeType.cpp: USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
95034        (WebCore):
95035        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Removed.
95036        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h: Removed.
95037        * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
95038        (WebCore::Font::drawComplexText):
95039        (WebCore::Font::floatWidthForComplexText):
95040        (WebCore::Font::offsetForPositionForComplexText):
95041        (WebCore::Font::selectionRectForComplexText):
95042        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Removing USE(HARFBUZZ_NG) ifdefs.
95043        (WebCore::FontPlatformData::harfbuzzFace):
95044        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Removing USE(HARFBUZZ_NG) ifdefs.
95045        (WebCore):
95046        (FontPlatformData):
95047        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp: Removed.
95048        * platform/graphics/harfbuzz/HarfBuzzSkia.h: Removed.
95049        * platform/graphics/skia/SimpleFontDataSkia.cpp: USE(HARFBUZZ_NG) renamed to USE(HARFBUZZ).
95050        (WebCore):
95051
950522013-01-30  David Faure  <faure@kde.org>
95053
95054        [Qt] Major performance improvement in Qt's PluginDatabase implementation
95055        https://bugs.webkit.org/show_bug.cgi?id=106140
95056
95057        Reviewed by Simon Hausmann.
95058
95059        No new tests, only a performance improvement.
95060
95061        * plugins/qt/PluginPackageQt.cpp:
95062        (WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
95063        Keep the refcounting as it was before (broken, but otherwise flash crashes).
95064        (WebCore::PluginPackage::load): Use existing module if fetchInfo created it.
95065
950662013-01-30  Huang Dongsung  <luxtella@company100.net>
95067
95068        [TexMap] Remove GraphicsLayer in TextureMapperLayer.
95069        https://bugs.webkit.org/show_bug.cgi?id=107073
95070
95071        Reviewed by Noam Rosenthal.
95072
95073        Remove the dependency of TextureMapperLayer on GraphicsLayer. It is needed to
95074        remove GraphicsLayerTextureMapper in LayerTreeRenderer.
95075
95076        This is in preparation for refactoring TextureMapper to work in an actor
95077        model (http://webkit.org/b/103854).
95078
95079        Covered by existing tests.
95080
95081        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
95082        (WebCore::toTextureMapperLayer):
95083        (WebCore):
95084        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
95085        (WebCore::GraphicsLayerTextureMapper::notifyChange):
95086        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
95087        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
95088            Set BackgroundColorChange to m_changeMask instead of ContentChange.
95089        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
95090        (WebCore::GraphicsLayerTextureMapper::setChildren):
95091        (WebCore::GraphicsLayerTextureMapper::addChild):
95092        (WebCore::GraphicsLayerTextureMapper::addChildAtIndex):
95093        (WebCore::GraphicsLayerTextureMapper::addChildAbove):
95094        (WebCore::GraphicsLayerTextureMapper::addChildBelow):
95095        (WebCore::GraphicsLayerTextureMapper::replaceChild):
95096        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
95097        (WebCore::GraphicsLayerTextureMapper::setReplicatedByLayer):
95098        (WebCore::GraphicsLayerTextureMapper::setPosition):
95099        (WebCore::GraphicsLayerTextureMapper::setAnchorPoint):
95100        (WebCore::GraphicsLayerTextureMapper::setSize):
95101        (WebCore::GraphicsLayerTextureMapper::setTransform):
95102        (WebCore::GraphicsLayerTextureMapper::setChildrenTransform):
95103        (WebCore::GraphicsLayerTextureMapper::setPreserves3D):
95104        (WebCore::GraphicsLayerTextureMapper::setMasksToBounds):
95105        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
95106        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
95107        (WebCore::GraphicsLayerTextureMapper::setContentsOpaque):
95108        (WebCore::GraphicsLayerTextureMapper::setBackfaceVisibility):
95109        (WebCore::GraphicsLayerTextureMapper::setOpacity):
95110        (WebCore::GraphicsLayerTextureMapper::setContentsRect):
95111        (WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
95112        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
95113        (WebCore::GraphicsLayerTextureMapper::setContentsToMedia):
95114        (WebCore::GraphicsLayerTextureMapper::setShowDebugBorder):
95115        (WebCore::GraphicsLayerTextureMapper::setShowRepaintCounter):
95116        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
95117        (WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
95118        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
95119        (WebCore::GraphicsLayerTextureMapper::setDebugBorder):
95120        (WebCore::toTextureMapperLayerVector):
95121        (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
95122            Flush pending changes into TextureMapperLayer.
95123        (WebCore::GraphicsLayerTextureMapper::addAnimation):
95124        (WebCore::GraphicsLayerTextureMapper::setAnimations):
95125        (WebCore::GraphicsLayerTextureMapper::setFilters):
95126        (WebCore::GraphicsLayerTextureMapper::setBackingStore):
95127        (WebCore::GraphicsLayerTextureMapper::setFixedToViewport):
95128        (WebCore::GraphicsLayerTextureMapper::setRepaintCount):
95129        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
95130        (GraphicsLayerTextureMapper):
95131        (WebCore):
95132        * platform/graphics/texmap/TextureMapperLayer.cpp:
95133        (WebCore::TextureMapperLayer::setChildren):
95134        (WebCore::TextureMapperLayer::setMaskLayer):
95135        (WebCore):
95136        (WebCore::TextureMapperLayer::setReplicaLayer):
95137        (WebCore::TextureMapperLayer::setPosition):
95138        (WebCore::TextureMapperLayer::setSize):
95139        (WebCore::TextureMapperLayer::setAnchorPoint):
95140        (WebCore::TextureMapperLayer::setPreserves3D):
95141        (WebCore::TextureMapperLayer::setTransform):
95142        (WebCore::TextureMapperLayer::setChildrenTransform):
95143        (WebCore::TextureMapperLayer::setContentsRect):
95144        (WebCore::TextureMapperLayer::setMasksToBounds):
95145        (WebCore::TextureMapperLayer::setDrawsContent):
95146        (WebCore::TextureMapperLayer::setContentsVisible):
95147        (WebCore::TextureMapperLayer::setContentsOpaque):
95148        (WebCore::TextureMapperLayer::setBackfaceVisibility):
95149        (WebCore::TextureMapperLayer::setOpacity):
95150        (WebCore::TextureMapperLayer::setSolidColor):
95151        (WebCore::TextureMapperLayer::setFilters):
95152        (WebCore::TextureMapperLayer::setDebugVisuals):
95153        (WebCore::TextureMapperLayer::setRepaintCount):
95154        (WebCore::TextureMapperLayer::setContentsLayer):
95155        (WebCore::TextureMapperLayer::setAnimations):
95156        (WebCore::TextureMapperLayer::setFixedToViewport):
95157        (WebCore::TextureMapperLayer::setBackingStore):
95158        * platform/graphics/texmap/TextureMapperLayer.h:
95159        (WebCore):
95160        (TextureMapperLayer):
95161        (WebCore::TextureMapperLayer::TextureMapperLayer):
95162
951632013-01-30  Elliott Sprehn  <esprehn@chromium.org>
95164
95165        getDecorationRootAndDecoratedRoot should add new user agent shadow roots
95166        https://bugs.webkit.org/show_bug.cgi?id=108301
95167
95168        Reviewed by Hajime Morita.
95169
95170        getDecorationRootAndDecoratedRoot intended to add a second UserAgentShadowRoot
95171        to the input, not just reuse the existing one so it could insert icons into
95172        the inputs. Add back in this behavior for now so we can sort out the right thing
95173        to do.
95174
95175        This behavior is wrong in the current architecture since it means if you had an
95176        input type=submit, add an author shadow root, and then change the type to text
95177        and then the browser decorates it your shadow magically becomes inaccessible since
95178        input.shadowRoot is no longer available. This feature is currently only used for
95179        decorating type=password fields in Chromium with an icon for password generation.
95180
95181        No new tests, there's no way to test this because it's only used in Chromium
95182        by way of the ChromeClient.
95183
95184        * html/shadow/TextFieldDecorationElement.cpp:
95185        (WebCore::getDecorationRootAndDecoratedRoot):
95186
951872013-01-30  Huang Dongsung  <luxtella@company100.net>
95188
95189        Coordinated Graphics: Remove m_pendingSyncBackingStores in LayerTreeRenderer.
95190        https://bugs.webkit.org/show_bug.cgi?id=107099
95191
95192        Reviewed by Noam Rosenthal.
95193
95194        Add GraphicsLayerTextureMapper::setBackingStore() so that
95195        LayerTreeRenderer sets a backing store to GraphicsLayerTextureMapper.
95196
95197        Remove three methods of TextureMapperLayer related to a backing store
95198        because they are no longer used.
95199
95200        Covered by existing compositing tests.
95201
95202        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
95203        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
95204        (WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded):
95205        (WebCore):
95206        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCount):
95207        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
95208        (WebCore::GraphicsLayerTextureMapper::setBackingStore):
95209        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
95210        (GraphicsLayerTextureMapper):
95211        * platform/graphics/texmap/TextureMapperLayer.cpp:
95212        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
95213        * platform/graphics/texmap/TextureMapperLayer.h:
95214        (TextureMapperLayer):
95215
952162013-01-30  Andrey Lushnikov  <lushnikov@chromium.org>
95217
95218        Web Inspector: DTE adds additional space to the end of line.
95219        https://bugs.webkit.org/show_bug.cgi?id=108192
95220
95221        Reviewed by Pavel Feldman.
95222
95223        Append overlay highlight spans before decorations elements and skip
95224        them in _collectLinesFromDom method.
95225
95226        No new tests.
95227
95228        * inspector/front-end/DefaultTextEditor.js:
95229        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
95230        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
95231
952322013-01-29  Shinya Kawanaka  <shinyak@chromium.org>
95233
95234        Renderer is recreated unexpectedly after detach in HTMLInputElement
95235        https://bugs.webkit.org/show_bug.cgi?id=108150
95236
95237        Reviewed by Kent Tamura.
95238
95239        After r140659, destoryShadowSubtree() may update style in removeChild(). It causes
95240        attaching HTMLInputElement before creating shadowsubtree in HTMLInputElement::updateType().
95241
95242        For safe, destroyShadowSubtree() should be done before detach().
95243
95244        Test: fast/forms/number/number-change-type-on-focus-2.html
95245
95246        * html/HTMLInputElement.cpp:
95247        (WebCore::HTMLInputElement::updateType):
95248
952492013-01-29  James Robinson  <jamesr@chromium.org>
95250
95251        Scrollbar and scroll corner composited layers positioned incorrectly
95252        https://bugs.webkit.org/show_bug.cgi?id=108255
95253
95254        Reviewed by Simon Fraser.
95255
95256        ScrollView::updateScrollbars() needs to update the overflow controls composited layers if scrollbars are added
95257        or removed. It was doing this by recording on entry to the function if it had horizontal or vertical scrollbars
95258        and then comparing that to m_horizontal/verticalScrollbar on exit. Unfortunately updateScrollbars is recursive
95259        and exits without running the postamble code when nested on the callstack. As a result, scrollbars may be
95260        added or removed several times during the recursion, possibly leaving the overflow control layers in an
95261        inconsistent state, while ending up with the same set of scrollbars.
95262
95263        This changes the "has anything changed" logic to only compare local state (hasXXXScrollbar vs
95264        newHasXXXScrollbar) so changes in recursive calls are not considered.
95265
95266        * platform/ScrollView.cpp:
95267        (WebCore::ScrollView::updateScrollbars):
95268
952692013-01-29  Shinya Kawanaka  <shinyak@chromium.org>
95270
95271        Convert deprecatedShadowAncestorNode() to shadowHost() in Editor.cpp
95272        https://bugs.webkit.org/show_bug.cgi?id=108287
95273
95274        Reviewed by Hajime Morita.
95275
95276        This is the effort to convert deprecatedShadowAncestorNode() to shadowHost().
95277
95278        Since all the caller object of deprecatedShadowAncestorNode() is in a shadow tree, calling deprecatedShadowAncestorNode()
95279        is equiavalent to calling shadowHost(). Also, for all the occurence of deprecatedShadowAncestorNode(), we don't need to
95280        worry about nested ShadowDOM issues. So directly converting deprecatedShadowAncestorNode() to shadowHost() should be safe.
95281
95282        No new tests, simple refactoring.
95283
95284        * editing/Editor.cpp:
95285        (WebCore::Editor::rangeOfString):
95286        (WebCore::Editor::countMatchesForText):
95287
952882013-01-29  Simon Fraser  <simon.fraser@apple.com>
95289
95290        Rubberband scrolling on news.google.com causes text to blink repeatedly
95291        https://bugs.webkit.org/show_bug.cgi?id=107326
95292
95293        Reviewed by Beth Dakin.
95294
95295        When in the middle of layout, RenderBlock::updateScrollInfoAfterLayout()
95296        could cause us to re-evaluate reasons for compositing, via the call
95297        to updateLayerCompositingState() in RenderLayer::updateScrollInfoAfterLayout().
95298        
95299        At this time, when layout is still happening, it's bad to look at render
95300        geometry to decide when to do compositing (e.g. for fixed position); we might
95301        incorrectly conclude that the layer is outside the viewport.
95302        
95303        Fix by having RenderLayerCompositing store in a member whether it's safe
95304        to look at layout information. requiresCompositingForPosition() then consults
95305        this bit, and, if it needs to make decisions based on layout but layout is not
95306        complete, it doesn't change the compositing state of the layer.
95307        
95308        Not testable, since dumping the layer tree will update layout and mask the bug.
95309
95310        * rendering/RenderLayerCompositor.cpp:
95311        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
95312        (WebCore::RenderLayerCompositor::updateCompositingLayers):
95313        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
95314        * rendering/RenderLayerCompositor.h:
95315        (RenderLayerCompositor):
95316
953172013-01-29  Mark Lam  <mark.lam@apple.com>
95318
95319        Introducing WTF::TypeSafeEnum and DatabaseError.
95320        https://bugs.webkit.org/show_bug.cgi?id=108279.
95321
95322        Reviewed by Geoffrey Garen.
95323
95324        DatabaseError will be used later in the webdatabase refactoring effort.
95325        It is currently unused.
95326
95327        No new tests.
95328
95329        * GNUmakefile.list.am:
95330        * Modules/webdatabase/DatabaseError.h: Added.
95331        (WebCore):
95332        * Target.pri:
95333        * WebCore.vcproj/WebCore.vcproj:
95334        * WebCore.vcxproj/WebCore.vcxproj:
95335        * WebCore.vcxproj/WebCore.vcxproj.filters:
95336        * WebCore.xcodeproj/project.pbxproj:
95337
953382013-01-29  Elliott Sprehn  <esprehn@chromium.org>
95339
95340        Move ShadowRoot creation into ElementShadow
95341        https://bugs.webkit.org/show_bug.cgi?id=108267
95342
95343        Reviewed by Hajime Morita.
95344
95345        Instead of the ShadowRoot::create method doing crazy factory things and
95346        then needing to assert about the state of the ShadowRoot in addShadowRoot,
95347        just create ShadowRoots from inside ElementShadow.
95348
95349        No new tests, just refactoring.
95350
95351        * dom/Element.cpp:
95352        (WebCore::Element::createShadowRoot): Use addShadowRoot().
95353        (WebCore::Element::ensureUserAgentShadowRoot): Use addShadowRoot().
95354        * dom/ElementShadow.cpp:
95355        (WebCore::ElementShadow::addShadowRoot): Now returns the new ShadowRoot.
95356        * dom/ElementShadow.h:
95357        (ElementShadow):
95358        * dom/ShadowRoot.cpp:
95359        * dom/ShadowRoot.h:
95360        (WebCore::ShadowRoot::create): No longer does the association.
95361        (WebCore::ShadowRoot::setHost): Sets parent tree scope automatically.
95362
953632013-01-29  Mark Lam  <mark.lam@apple.com>
95364
95365        Rename DBBackend::Server to DatabaseServer.
95366        https://bugs.webkit.org/show_bug.cgi?id=108278.
95367
95368        Rubber stamped by Geoffrey Garen.
95369
95370        This is only a renaming operation as part of the webdatabase refactoring
95371        effort. There is no semantic change.
95372
95373        No new tests.
95374
95375        * CMakeLists.txt:
95376        * GNUmakefile.list.am:
95377        * Modules/webdatabase/DBBackendServer.cpp: Removed.
95378        * Modules/webdatabase/DBBackendServer.h: Removed.
95379        * Modules/webdatabase/DatabaseManager.cpp:
95380        (WebCore::DatabaseManager::DatabaseManager):
95381        * Modules/webdatabase/DatabaseServer.cpp: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.cpp.
95382        (WebCore::DatabaseServer::initialize):
95383        (WebCore::DatabaseServer::setClient):
95384        (WebCore::DatabaseServer::databaseDirectoryPath):
95385        (WebCore::DatabaseServer::setDatabaseDirectoryPath):
95386        (WebCore::DatabaseServer::fullPathForDatabase):
95387        (WebCore::DatabaseServer::hasEntryForOrigin):
95388        (WebCore::DatabaseServer::origins):
95389        (WebCore::DatabaseServer::databaseNamesForOrigin):
95390        (WebCore::DatabaseServer::detailsForNameAndOrigin):
95391        (WebCore::DatabaseServer::usageForOrigin):
95392        (WebCore::DatabaseServer::quotaForOrigin):
95393        (WebCore::DatabaseServer::setQuota):
95394        (WebCore::DatabaseServer::deleteAllDatabases):
95395        (WebCore::DatabaseServer::deleteOrigin):
95396        (WebCore::DatabaseServer::deleteDatabase):
95397        (WebCore::DatabaseServer::scheduleNotifyDatabaseChanged):
95398        (WebCore::DatabaseServer::databaseChanged):
95399        (WebCore::DatabaseServer::closeDatabasesImmediately):
95400        (WebCore::DatabaseServer::interruptAllDatabasesForContext):
95401        (WebCore::DatabaseServer::canEstablishDatabase):
95402        (WebCore::DatabaseServer::addOpenDatabase):
95403        (WebCore::DatabaseServer::removeOpenDatabase):
95404        (WebCore::DatabaseServer::setDatabaseDetails):
95405        (WebCore::DatabaseServer::getMaxSizeForDatabase):
95406        (WebCore):
95407        * Modules/webdatabase/DatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
95408        * Target.pri:
95409        * WebCore.gypi:
95410        * WebCore.order:
95411        * WebCore.vcproj/WebCore.vcproj:
95412        * WebCore.vcxproj/WebCore.vcxproj:
95413        * WebCore.vcxproj/WebCore.vcxproj.filters:
95414        * WebCore.xcodeproj/project.pbxproj:
95415        * platform/DatabaseStrategy.cpp:
95416        (WebCore::DatabaseStrategy::getDatabaseServer):
95417
954182013-01-29  Chris Fleizach  <cfleizach@apple.com>
95419
95420        AX: VoiceOver not reading bullets correctly in the text of notes
95421        https://bugs.webkit.org/show_bug.cgi?id=107980
95422
95423        Reviewed by Ryosuke Niwa.
95424
95425        Accessibility code should not assume that all list markers end with the same "." suffix.
95426        We need to use the actual suffix.
95427
95428        Test: platform/mac/accessibility/listmarker-suffix.html
95429
95430        * accessibility/AccessibilityObject.cpp:
95431        (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):
95432
954332013-01-29  Mark Lam  <mark.lam@apple.com>
95434
95435        Rename AbstractDatabase to DatabaseBackend.
95436        https://bugs.webkit.org/show_bug.cgi?id=108275.
95437
95438        Reviewed by Sam Weinig.
95439
95440        This is a pure rename operation as part of the webdatabase refactoring
95441        effort. There is no semantic change in this patch.
95442
95443        No new tests.
95444
95445        * CMakeLists.txt:
95446        * GNUmakefile.list.am:
95447        * Modules/webdatabase/AbstractDatabase.cpp: Removed.
95448        * Modules/webdatabase/AbstractDatabase.h: Removed.
95449        * Modules/webdatabase/AbstractDatabaseServer.h:
95450        (WebCore):
95451        (AbstractDatabaseServer):
95452        * Modules/webdatabase/DBBackendServer.cpp:
95453        (WebCore::DBBackend::Server::databaseChanged):
95454        (WebCore::DBBackend::Server::addOpenDatabase):
95455        (WebCore::DBBackend::Server::removeOpenDatabase):
95456        (WebCore::DBBackend::Server::getMaxSizeForDatabase):
95457        * Modules/webdatabase/DBBackendServer.h:
95458        * Modules/webdatabase/Database.cpp:
95459        (WebCore::Database::Database):
95460        (WebCore::Database::version):
95461        (WebCore::Database::performOpenAndVerify):
95462        * Modules/webdatabase/Database.h:
95463        * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp.
95464        (WebCore):
95465        (WebCore::DatabaseBackend::databaseInfoTableName):
95466        (WebCore::DatabaseBackend::DatabaseBackend):
95467        (WebCore::DatabaseBackend::~DatabaseBackend):
95468        (WebCore::DatabaseBackend::closeDatabase):
95469        (WebCore::DatabaseBackend::version):
95470        (WebCore::DatabaseBackend::performOpenAndVerify):
95471        (WebCore::DatabaseBackend::scriptExecutionContext):
95472        (WebCore::DatabaseBackend::securityOrigin):
95473        (WebCore::DatabaseBackend::stringIdentifier):
95474        (WebCore::DatabaseBackend::displayName):
95475        (WebCore::DatabaseBackend::estimatedSize):
95476        (WebCore::DatabaseBackend::fileName):
95477        (WebCore::DatabaseBackend::details):
95478        (WebCore::DatabaseBackend::getVersionFromDatabase):
95479        (WebCore::DatabaseBackend::setVersionInDatabase):
95480        (WebCore::DatabaseBackend::setExpectedVersion):
95481        (WebCore::DatabaseBackend::getCachedVersion):
95482        (WebCore::DatabaseBackend::setCachedVersion):
95483        (WebCore::DatabaseBackend::getActualVersionForTransaction):
95484        (WebCore::DatabaseBackend::disableAuthorizer):
95485        (WebCore::DatabaseBackend::enableAuthorizer):
95486        (WebCore::DatabaseBackend::setAuthorizerReadOnly):
95487        (WebCore::DatabaseBackend::setAuthorizerPermissions):
95488        (WebCore::DatabaseBackend::lastActionChangedDatabase):
95489        (WebCore::DatabaseBackend::lastActionWasInsert):
95490        (WebCore::DatabaseBackend::resetDeletes):
95491        (WebCore::DatabaseBackend::hadDeletes):
95492        (WebCore::DatabaseBackend::resetAuthorizer):
95493        (WebCore::DatabaseBackend::maximumSize):
95494        (WebCore::DatabaseBackend::incrementalVacuumIfNeeded):
95495        (WebCore::DatabaseBackend::interrupt):
95496        (WebCore::DatabaseBackend::isInterrupted):
95497        (WebCore::DatabaseBackend::logErrorMessage):
95498        (WebCore::DatabaseBackend::reportOpenDatabaseResult):
95499        (WebCore::DatabaseBackend::reportChangeVersionResult):
95500        (WebCore::DatabaseBackend::reportStartTransactionResult):
95501        (WebCore::DatabaseBackend::reportCommitTransactionResult):
95502        (WebCore::DatabaseBackend::reportExecuteStatementResult):
95503        (WebCore::DatabaseBackend::reportVacuumDatabaseResult):
95504        * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabase.h.
95505        (DatabaseBackend):
95506        * Modules/webdatabase/DatabaseManager.cpp:
95507        (WebCore::DatabaseManager::databaseChanged):
95508        (WebCore::DatabaseManager::addOpenDatabase):
95509        (WebCore::DatabaseManager::removeOpenDatabase):
95510        (WebCore::DatabaseManager::getMaxSizeForDatabase):
95511        * Modules/webdatabase/DatabaseManager.h:
95512        (DatabaseManager):
95513        * Modules/webdatabase/DatabaseSync.cpp:
95514        (WebCore::DatabaseSync::DatabaseSync):
95515        * Modules/webdatabase/DatabaseSync.h:
95516        * Modules/webdatabase/DatabaseTracker.cpp:
95517        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
95518        (WebCore::DatabaseTracker::databaseChanged):
95519        (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
95520        (WebCore::DatabaseTracker::addOpenDatabase):
95521        (WebCore::DatabaseTracker::removeOpenDatabase):
95522        (WebCore::DatabaseTracker::getOpenDatabases):
95523        (WebCore::DatabaseTracker::deleteDatabaseFile):
95524        * Modules/webdatabase/DatabaseTracker.h:
95525        (WebCore):
95526        (DatabaseTracker):
95527        * Modules/webdatabase/OriginQuotaManager.cpp:
95528        (WebCore::OriginQuotaManager::markDatabase):
95529        * Modules/webdatabase/OriginQuotaManager.h:
95530        (WebCore):
95531        (OriginQuotaManager):
95532        * Modules/webdatabase/SQLTransactionClient.cpp:
95533        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
95534        (WebCore::SQLTransactionClient::didExecuteStatement):
95535        (WebCore::SQLTransactionClient::didExceedQuota):
95536        * Modules/webdatabase/SQLTransactionClient.h:
95537        (WebCore):
95538        (SQLTransactionClient):
95539        * Modules/webdatabase/chromium/DatabaseObserver.h:
95540        (WebCore):
95541        (DatabaseObserver):
95542        * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
95543        (WebCore::DatabaseTracker::addOpenDatabase):
95544        (WebCore::NotifyDatabaseObserverOnCloseTask::create):
95545        (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
95546        (NotifyDatabaseObserverOnCloseTask):
95547        (WebCore::DatabaseTracker::removeOpenDatabase):
95548        (WebCore::DatabaseTracker::getMaxSizeForDatabase):
95549        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
95550        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
95551        (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
95552        (WebCore::DatabaseTracker::closeOneDatabaseImmediately):
95553        * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
95554        (WebCore::NotifyDatabaseChangedTask::create):
95555        (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
95556        (NotifyDatabaseChangedTask):
95557        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
95558        (WebCore::SQLTransactionClient::didExecuteStatement):
95559        (WebCore::SQLTransactionClient::didExceedQuota):
95560        * Target.pri:
95561        * WebCore.gypi:
95562        * WebCore.order:
95563        * WebCore.vcproj/WebCore.vcproj:
95564        * WebCore.vcxproj/WebCore.vcxproj:
95565        * WebCore.vcxproj/WebCore.vcxproj.filters:
95566        * WebCore.xcodeproj/project.pbxproj:
95567
955682013-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
95569
95570        Unreviewed, rolling out r140983.
95571        http://trac.webkit.org/changeset/140983
95572        https://bugs.webkit.org/show_bug.cgi?id=108277
95573
95574        Unfortunately, this API has one last client (Requested by
95575        abarth on #webkit).
95576
95577        * Configurations/FeatureDefines.xcconfig:
95578        * Modules/notifications/Notification.cpp:
95579        (WebCore::Notification::Notification):
95580        (WebCore):
95581        (WebCore::Notification::create):
95582        * Modules/notifications/Notification.h:
95583        (Notification):
95584        (WebCore::Notification::isHTML):
95585        (WebCore::Notification::setHTML):
95586        (WebCore::Notification::url):
95587        (WebCore::Notification::setURL):
95588        * Modules/notifications/NotificationCenter.h:
95589        (WebCore::NotificationCenter::createHTMLNotification):
95590        (NotificationCenter):
95591        * Modules/notifications/NotificationCenter.idl:
95592        * page/FeatureObserver.h:
95593
955942013-01-29  Rafael Weinstein  <rafaelw@chromium.org>
95595
95596        parserAppendChild and parserInsertBefore should ensure that child nodes are in the same document
95597        https://bugs.webkit.org/show_bug.cgi?id=108260
95598
95599        Reviewed by Eric Seidel.
95600
95601        Test: fast/parser/xml-error-adopted.xml
95602
95603        The check and adoption if the documents don't match is now moved into ContainerNode::parser* from HTMLConstructionSite.
95604
95605        * dom/ContainerNode.cpp:
95606        (WebCore::ContainerNode::parserInsertBefore):
95607        (WebCore::ContainerNode::parserAppendChild):
95608        * html/parser/HTMLConstructionSite.cpp:
95609        (WebCore::HTMLConstructionSite::insertTextNode):
95610        (WebCore::HTMLConstructionSite::findFosterSite):
95611        (WebCore::HTMLConstructionSite::fosterParent):
95612
956132013-01-29  Shinya Kawanaka  <shinyak@chromium.org>
95614
95615        [Chromium] Cannot copy text when selecting readonly (or disabled) input elements
95616        https://bugs.webkit.org/show_bug.cgi?id=106287
95617
95618        Reviewed by Hajime Morita.
95619
95620        When an input element is disabled or readonly, its inner element is not editable. So its rootEditableElement
95621        does not exist. In WebViewImpl::caretOrSelectionRange, if rootEditableElement does not exist, it uses
95622        a document element. However, the inner element and document element have a different tree scope, the selection range
95623        cannot be gotten correctly.
95624
95625        We should use ShadowRoot instead of document so that we can stay in the same tree scope.
95626
95627        * WebCore.exp.in:
95628        * editing/FrameSelection.cpp:
95629        (WebCore::FrameSelection::rootEditableElementOrTreeScopeRootNode): Added. Returns ShadowRoot so that we can
95630        stay in the same tree scope.
95631        (WebCore):
95632        * editing/FrameSelection.h:
95633        (FrameSelection):
95634        * editing/TextIterator.cpp:
95635        (WebCore::TextIterator::getLocationAndLengthFromRange):
95636        * editing/TextIterator.h:
95637        (TextIterator):
95638
956392013-01-29  Kent Tamura  <tkent@chromium.org>
95640
95641        INPUT_MULTIPLE_FIELDS_UI: The content should not overflow the <input> boundary
95642        https://bugs.webkit.org/show_bug.cgi?id=108069
95643
95644        Reviewed by Hajime Morita.
95645
95646        To avoid the overflow, we do:
95647        A) Specify overflow:hidden to <input>.
95648
95649        However, we need to make sub-fields and buttons workable even if the
95650        width is smaller than the intrinsic size. So, we do:
95651        B) Make DateTimeEditElement shrinkable, and
95652        C) Make the sub-fields scrollable horizontally like input[type=text].
95653
95654        To achieve B, we need to remove -webkit-date-and-time-container (D)
95655        because width property for <input> can shrink only the direct child
95656        elements.
95657
95658        Tests: fast/forms/time-multiple-fields/time-multiple-fields-narrow-width-scroll.html
95659        and new test cases in fast/forms/date/date-appearance-basic.html.
95660
95661        * css/html.css:
95662        (input[type="date"]):
95663        Change -webkit-align-items value. (D)
95664        Specify overflow:hidden. (A)
95665        (input[type="datetime"]): Ditto.
95666        (input[type="datetime-local"]): Ditto.
95667        (input[type="month"]): Ditto.
95668        (input[type="time"]): Ditto.
95669        (input[type="week"]): Ditto.
95670        (input::-webkit-datetime-edit):
95671        Add min-width:0 (B), and overflow:hidden. (C)
95672        Remove unnecessary white-space:pre because of white-space:nowrap below.
95673        (input::-webkit-datetime-edit-fields-wrapper):
95674        Added. This is the child of -webkit-datetime-edit, and contains
95675        sub-fields. (C)
95676        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
95677        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
95678        Remove -webkit-date-and-time-container, and append DateTimeEditElement,
95679        spin button, and picker indicator element to the ShadowRoot. (D)
95680        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldApplyLocaleDirection):
95681        <input> for multiple fields UI should have the direction of the browser
95682        locale. This is a replacement of the code for dir attribute in
95683        updateInnerTextValue below. (D)
95684        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
95685        Remove the code to set dir= to -webkit-date-and-time-container.
95686        * html/BaseMultipleFieldsDateAndTimeInputType.h:
95687        (BaseMultipleFieldsDateAndTimeInputType):
95688        Declare shouldApplyLocaleDirection. (D)
95689        * html/HTMLInputElement.cpp:
95690        (WebCore::HTMLInputElement::HTMLInputElement):
95691        Calls setHasCustomCallbacks for customStyleForRenderer. (D)
95692        (WebCore::HTMLInputElement::customStyleForRenderer):
95693        Set direction to RenderStyle if shouldApplyLocaleDirection is true. This
95694        is a replacement of the dir setting code in
95695        BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue. (D)
95696        * html/HTMLInputElement.h:
95697        (HTMLInputElement): Declare customStyleForRenderer. (D)
95698        * html/InputType.cpp:
95699        (WebCore::InputType::shouldApplyLocaleDirection):
95700        Add default implmentation of shouldApplyLocaleDirection. (D)
95701        * html/InputType.h:
95702        (InputType): Declare shouldApplyLocaleDirection. (D)
95703
95704        * html/shadow/DateTimeEditElement.cpp:
95705        (WebCore::DateTimeEditBuilder::visitLiteral):
95706        Add elements to -webkit-datetime-edit-fields-wrapper element. (C)
95707        (WebCore::DateTimeEditElement::fieldsWrapperElement):
95708        A helper to get -webkit-datetime-edit-fields-wrapper element. (C)
95709        (WebCore::DateTimeEditElement::addField):
95710        Add elements to -webkit-datetime-edit-fields-wrapper element. (C)
95711        (WebCore::DateTimeEditElement::customStyleForRenderer):
95712        - Iterate over children of -webkit-datetime-edit-fields-wrapper element. (C)
95713        - Set width property instead of min-width. (B)
95714        (WebCore::DateTimeEditElement::layout):
95715        - Prepare -webkit-datetime-edit-fields-wrapper element. (C)
95716        - Handle children of -webkit-datetime-edit-fields-wrapper element. (C)
95717        - Need to do style recalc because child structure is changed. (C)
95718        * html/shadow/DateTimeEditElement.h:
95719        (DateTimeEditElement): Declare fieldsWrapperElement. (C)
95720
957212013-01-29  Tom Sepez  <tsepez@chromium.org>
95722
95723        [v8] Enable binding integrity on linux
95724        https://bugs.webkit.org/show_bug.cgi?id=108242
95725
95726        Reviewed by Adam Barth.
95727
95728        Patch is correct if existing tests pass.
95729
95730        * html/TextMetrics.idl:
95731        Suppress check to allow link on linux.
95732
957332013-01-29  Tim Horton  <timothy_horton@apple.com>
95734
95735        Don't updateTileCoverageMap() from setScrollingModeIndication if we don't need to.
95736
95737        Reviewed by Simon Fraser.
95738
95739        Only do the work if the tiled scrolling indicator/map is enabled.
95740
95741        * platform/graphics/ca/mac/TileCache.mm:
95742        (WebCore::TileCache::setScrollingModeIndication):
95743
957442013-01-29  Chris Fleizach  <cfleizach@apple.com>
95745
95746        AX: Add support for aria-autocomplete="list" on ARIA combobox
95747        https://bugs.webkit.org/show_bug.cgi?id=108228
95748
95749        Reviewed by Ryosuke Niwa.
95750
95751        Comboboxes behave much like textfields, and so they need
95752        to respond like text controls.
95753
95754        Test: platform/mac/accessibility/combox-box-value.html
95755
95756        * accessibility/AccessibilityObject.cpp:
95757        (WebCore::AccessibilityObject::isTextControl):
95758        (WebCore):
95759        * accessibility/AccessibilityObject.h:
95760        (AccessibilityObject):
95761
957622013-01-29  Nico Weber  <thakis@chromium.org>
95763
95764        [chromium] Do not mark translation-unit-local functions as extern "C"
95765        https://bugs.webkit.org/show_bug.cgi?id=108218
95766
95767        Reviewed by Adam Barth.
95768
95769        Requested by darin in https://bugs.webkit.org/show_bug.cgi?id=107845
95770        This also allows enabling -Wreturn-type-c-linkage again, but I'd like to
95771        wait for the next clang roll (which tweaks this warning) before undoing
95772        r140800 (which removed that warning).
95773
95774        No behavior change.
95775
95776        * bindings/v8/npruntime.cpp:
95777
957782013-01-29  Geoffrey Garen  <ggaren@apple.com>
95779
95780        Removed GGC because it has been disabled for a long time
95781        https://bugs.webkit.org/show_bug.cgi?id=108245
95782
95783        Reviewed by Filip Pizlo.
95784
95785        * ForwardingHeaders/heap/CardSet.h: Removed.
95786        * WebCore.vcxproj/WebCore.vcxproj:
95787        * WebCore.vcxproj/WebCore.vcxproj.filters:
95788
957892013-01-29  Elliott Sprehn  <esprehn@chromium.org>
95790        Refactor ShadowRoot exception handling
95791        https://bugs.webkit.org/show_bug.cgi?id=108209
95792
95793        Reviewed by Dimitri Glazkov.
95794
95795        Many of the exception cases for ShadowRoot are actually impossible and
95796        should be asserts instead. We can also move the one case of exception logic,
95797        for elements that don't allow author shadows into Element::createShadowRoot
95798        instead of having it all over the ShadowRoot and ElementShadow classes. This
95799        is the first step in centralizing all ShadowRoot creation inside ElementShadow.
95800
95801        No new tests, covered by existing tests.
95802
95803        * WebCore.exp.in:
95804        * dom/Element.cpp:
95805        (WebCore::Element::createShadowRoot): Be explicit about what kind of ShadowRoot you're creating.
95806        (WebCore::Element::ensureUserAgentShadowRoot): No more exceptions.
95807        * dom/ElementShadow.cpp:
95808        (WebCore::ElementShadow::addShadowRoot): This never actually throws exceptions, remove ExceptionCode.
95809        * dom/ElementShadow.h:
95810        (ElementShadow):
95811        * dom/ShadowRoot.cpp:
95812        (WebCore::determineUsageType): Merge with Element::createShadowRoot.
95813        (WebCore):
95814        (WebCore::ShadowRoot::ShadowRoot): Moved Histogram logic here since it's actually about the constructor anyway.
95815        (WebCore::ShadowRoot::create): Removed overload that made the code less obvious.
95816        * dom/ShadowRoot.h:
95817        (ShadowRoot):
95818        * html/HTMLKeygenElement.cpp:
95819        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
95820        * html/shadow/TextFieldDecorationElement.cpp:
95821        (WebCore::getDecorationRootAndDecoratedRoot):
95822        * testing/Internals.cpp:
95823        (WebCore::Internals::ensureShadowRoot):
95824        (WebCore::Internals::createShadowRoot):
95825
958262013-01-29  Mark Lam  <mark.lam@apple.com>
95827
95828        Change DatabaseContext lookup to be thread-safe.
95829        https://bugs.webkit.org/show_bug.cgi?id=107784.
95830
95831        Reviewed by Geoffrey Garen.
95832
95833        DatabaseContext will no longer be a Supplement of ScriptExecutionContext.
95834        Instead we will maintain a mutex guarded contextMap in the DatabaseManager
95835        which maps ScriptExecutionContexts to DatabaseContexts.
95836
95837        Also cleaned up the shutdown mechanism of the DatabaseContext,
95838        DatabaseThread, and Databases when their owner ScriptExecutionContext
95839        destructs.
95840
95841        No new tests.
95842
95843        * Modules/webdatabase/AbstractDatabase.cpp:
95844        (WebCore::AbstractDatabase::AbstractDatabase):
95845        * Modules/webdatabase/AbstractDatabase.h:
95846        (WebCore::AbstractDatabase::databaseContext):
95847        (AbstractDatabase):
95848        * Modules/webdatabase/Database.cpp:
95849        (WebCore::Database::Database):
95850        * Modules/webdatabase/Database.h:
95851        (WebCore):
95852        (Database):
95853        * Modules/webdatabase/DatabaseContext.cpp:
95854        (WebCore):
95855        (WebCore::DatabaseContext::DatabaseContext):
95856        (WebCore::DatabaseContext::~DatabaseContext):
95857        (WebCore::DatabaseContext::contextDestroyed):
95858        (WebCore::DatabaseContext::stop):
95859        (WebCore::DatabaseContext::databaseThread):
95860        (WebCore::DatabaseContext::stopDatabases):
95861        * Modules/webdatabase/DatabaseContext.h:
95862        (DatabaseContext):
95863        (WebCore::DatabaseContext::scriptExecutionContext):
95864        (WebCore::DatabaseContext::hasOpenDatabases):
95865        (WebCore::DatabaseContext::stopDatabases):
95866        * Modules/webdatabase/DatabaseManager.cpp:
95867        (WebCore::DatabaseManager::manager):
95868        (WebCore::DatabaseManager::DatabaseManager):
95869        (WebCore::DatabaseManager::getExistingDatabaseContext):
95870        (WebCore):
95871        (WebCore::DatabaseManager::getDatabaseContext):
95872        (WebCore::DatabaseManager::registerDatabaseContext):
95873        (WebCore::DatabaseManager::unregisterDatabaseContext):
95874        (WebCore::DatabaseManager::notifyDatabaseContextConstructed):
95875        (WebCore::DatabaseManager::notifyDatabaseContextDestructed):
95876        (WebCore::DatabaseManager::openDatabase):
95877        (WebCore::DatabaseManager::openDatabaseSync):
95878        (WebCore::DatabaseManager::hasOpenDatabases):
95879        (WebCore::DatabaseManager::stopDatabases):
95880        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
95881        * Modules/webdatabase/DatabaseManager.h:
95882        (WebCore):
95883        (DatabaseManager):
95884        (WebCore::DatabaseManager::notifyDatabaseContextConstructed):
95885        (WebCore::DatabaseManager::notifyDatabaseContextDestructed):
95886        * Modules/webdatabase/DatabaseSync.cpp:
95887        (WebCore::DatabaseSync::DatabaseSync):
95888        * Modules/webdatabase/DatabaseSync.h:
95889        (WebCore):
95890        (DatabaseSync):
95891        * Modules/webdatabase/DatabaseThread.cpp:
95892        (WebCore::DatabaseThread::~DatabaseThread):
95893        (WebCore::DatabaseThread::requestTermination):
95894        * Modules/webdatabase/DatabaseTracker.cpp:
95895        (WebCore::DatabaseTracker::canEstablishDatabase):
95896        * dom/ActiveDOMObject.cpp:
95897        (WebCore::ActiveDOMObject::~ActiveDOMObject):
95898
958992013-01-29  Julien Chaffraix  <jchaffraix@webkit.org>
95900
95901        [CSS Grid Layout] Make resolveContentBasedTrackSizingFunctionsForItems reuse distributeSpaceToTracks
95902        https://bugs.webkit.org/show_bug.cgi?id=108110
95903
95904        Reviewed by Tony Chang.
95905
95906        This change makes us match more closely the specification by reusing distributeSpaceToTracks inside
95907        resolveContentBasedTrackSizingFunctionsForItems. This also removes some existing code duplication.
95908
95909        Refactoring covered by existing tests.
95910
95911        * rendering/RenderGrid.cpp:
95912        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
95913        Updated after distributeSpaceToTracks new arguments. Copying the tracks to a Vector<GridTrack*> is
95914        now done here.
95915
95916        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
95917        Removed code duplication and switched to using distributeSpaceToTracks.
95918
95919        (WebCore::RenderGrid::distributeSpaceToTracks):
95920        Refactored distributeSpaceToTracks to implement the distribution of any extra space above max breadth
95921        as it was required to pass the tests (required to properly handling min-content > max). Also changed
95922        the arguments of the function to better match the intent of the function.
95923
95924        * rendering/RenderGrid.h: Updated distributeSpaceToTracks's arguments.
95925
959262013-01-29  Elliott Sprehn  <esprehn@chromium.org>
95927
95928        Remove all ShadowRoots during ElementShadow destruction
95929        https://bugs.webkit.org/show_bug.cgi?id=108207
95930
95931        Reviewed by Dimitri Glazkov.
95932
95933        There's no reason to expose removeAllShadowRoots since the only legitimate
95934        place to call it is right as we're destroying the ElementShadow.
95935
95936        No new tests, just refactoring.
95937
95938        * dom/Element.cpp:
95939        (WebCore::Element::~Element): Remove call to removeAllShadowRoots()
95940        * dom/ElementShadow.h:
95941        (WebCore::ElementShadow::~ElementShadow): Call removeAllShadowRoots().
95942        (ElementShadow): Make removeAllShadowRoots() private.
95943
959442013-01-29  Justin Novosad  <junov@google.com>
95945
95946        REGRESSION (r135628-135632): Double box shadow failure to render
95947        https://bugs.webkit.org/show_bug.cgi?id=107833
95948
95949        Reviewed by Simon Fraser.
95950
95951        Regression caused by http://trac.webkit.org/changeset/135629
95952        The regression was due to faulty occlusion logic that was assuming
95953        that drawing the background color of a render box background layer
95954        could be skipped when the same layer also has an opaque image attached.
95955        In the case where the background color is drawn for the purpose of
95956        rendering a box shadow, the shadow is typically not
95957        completely occluded by the background image because of the shadow
95958        blur and/or offset.  This patch fixes the problem by not culling a
95959        background draw if it is used to draw a box shadow.
95960
95961        Test: fast/backgrounds/gradient-background-shadow.html
95962
95963        * rendering/RenderBoxModelObject.cpp:
95964        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
95965        Changing occlusion culling test to never cull background color
95966        draw if it is used to draw a box shadow. This is because box shadows
95967        can draw outside the border fill region.
95968
959692013-01-29  Ian Vollick  <vollick@chromium.org>
95970
95971        Add RenderLayer::enclosingStackingContainer
95972        https://bugs.webkit.org/show_bug.cgi?id=108211
95973
95974        Reviewed by Simon Fraser.
95975
95976        No new tests, no change in functionality.
95977
95978        * rendering/RenderLayer.h:
95979        (WebCore::RenderLayer::enclosingStackingContainer):
95980          This function is similar to RenderLayer::stackingContainer, but may return the
95981          layer itself if it's a stacking container.
95982
959832013-01-29  Patrick Gansterer  <paroga@webkit.org>
95984
95985        Rename TextBreakIteratorWinCE to TextBreakIteratorWchar
95986        https://bugs.webkit.org/show_bug.cgi?id=108094
95987
95988        Reviewed by Ryosuke Niwa.
95989
95990        TextBreakIteratorWinCE does not contain any Windows CE specific code.
95991        Rename it to TextBreakIteratorWchar to match the name in wtf/unicode.
95992
95993        * platform/text/wchar/TextBreakIteratorWchar.cpp: Renamed from Source/WebCore/platform/text/wince/TextBreakIteratorWinCE.cpp.
95994
959952013-01-29  Tommy Widenflycht  <tommyw@google.com>
95996
95997        MediaStream API: A MediaStreamComponent should be able to return the MediaStreamDescriptor it belongs to
95998        https://bugs.webkit.org/show_bug.cgi?id=108173
95999
96000        Reviewed by Adam Barth.
96001
96002        To be able to return the MediaStreamDescriptor a MediaStreamComponent belongs to the "ownership"
96003        of the MediaStreamDescriptor needed to move from a MediaStreamTrack to the MediaStreamComponent.
96004        This is also better from an architectonic view as well.
96005
96006        Patch covered by existing tests.
96007
96008        * Modules/mediastream/MediaStream.cpp:
96009        (WebCore::MediaStream::MediaStream):
96010        (WebCore::MediaStream::addTrack):
96011        (WebCore::MediaStream::addRemoteTrack):
96012        * Modules/mediastream/MediaStreamTrack.cpp:
96013        (WebCore::MediaStreamTrack::create):
96014        (WebCore::MediaStreamTrack::MediaStreamTrack):
96015        (WebCore::MediaStreamTrack::setEnabled):
96016        * Modules/mediastream/MediaStreamTrack.h:
96017        (MediaStreamTrack):
96018        * Modules/mediastream/RTCStatsRequestImpl.cpp:
96019        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
96020        * platform/chromium/support/WebMediaStreamComponent.cpp:
96021        (WebKit::WebMediaStreamComponent::stream):
96022        (WebKit):
96023        * platform/mediastream/MediaStreamComponent.h:
96024        (WebCore):
96025        (WebCore::MediaStreamComponent::create):
96026        (MediaStreamComponent):
96027        (WebCore::MediaStreamComponent::stream):
96028        (WebCore::MediaStreamComponent::setStream):
96029        (WebCore::MediaStreamComponent::MediaStreamComponent):
96030        * platform/mediastream/MediaStreamDescriptor.h:
96031        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
96032
960332013-01-29  Alec Flett  <alecflett@chromium.org>
96034
96035        IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
96036        https://bugs.webkit.org/show_bug.cgi?id=103920
96037
96038        Reviewed by Dimitri Glazkov.
96039
96040        Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
96041        pass through a metadata parameter. While there, remove the unused
96042        IDBTransactionBackendInterface parameter to onUpgradeNeeded.
96043
96044        As this is another step in the IDB refactor, I've simplified future cleanup
96045        work by making the WebKit API code still use the old API. This
96046        will make it possible to outright remove code on the chromium side rather
96047        than another three-step checkin.
96048
96049        No new tests, as this is more refactoring.
96050
96051        * Modules/indexeddb/IDBCallbacks.h:
96052        (WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
96053        (WebCore::IDBCallbacks::onSuccess): new method signature.
96054        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
96055        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
96056        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
96057        (WebCore::IDBDatabaseBackendImpl::openConnection):
96058        * Modules/indexeddb/IDBOpenDBRequest.cpp:
96059        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
96060        (WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
96061        * Modules/indexeddb/IDBOpenDBRequest.h:
96062        (IDBOpenDBRequest):
96063
960642013-01-29  Dirk Schulze  <dschulze@adobe.com>
96065
96066        Canvas support for isPointInStroke
96067        https://bugs.webkit.org/show_bug.cgi?id=108185
96068
96069        Reviewed by Dean Jackson.
96070
96071        isPointInStroke(x,y) returns true if a point hits the stroke
96072        with applied stroke styles like dashArray, lineCap, lineJoin, lineWidth.
96073        The syntax is similar to isPointInPath, which returns true if a point hits
96074        the fill area of a path.
96075        Firefox implemented isPointInStroke originally and unprefixed it recently:
96076
96077        https://bugzilla.mozilla.org/show_bug.cgi?id=803124
96078
96079        Test: fast/canvas/canvas-isPointInStroke.html
96080
96081        * html/canvas/CanvasRenderingContext2D.cpp:
96082        (WebCore::CanvasStrokeStyleApplier::strokeStyle): Take dashArray and lineDashOffset into account.
96083        (WebCore):
96084        (WebCore::CanvasRenderingContext2D::isPointInStroke): The implementation of the function.
96085        * html/canvas/CanvasRenderingContext2D.h:
96086        (CanvasRenderingContext2D):
96087        * html/canvas/CanvasRenderingContext2D.idl: Added operation to interface.
96088
960892013-01-29  Nate Chapin  <japhet@chromium.org>
96090
96091        Enable reuse of cached main resources
96092        https://bugs.webkit.org/show_bug.cgi?id=105667
96093
96094        Reviewed by Adam Barth.
96095
96096        Test: http/tests/cache/cached-main-resource.html
96097
96098        * WebCore.exp.in:
96099        * dom/Document.cpp:
96100        (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
96101        (WebCore):
96102        * dom/Document.h:
96103        (Document):
96104        * loader/FrameLoader.cpp:
96105        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
96106            MainResourceLoader will take care of it.
96107        * loader/MainResourceLoader.cpp:
96108        (WebCore::MainResourceLoader::MainResourceLoader):
96109        (WebCore::MainResourceLoader::receivedError):
96110        (WebCore::MainResourceLoader::willSendRequest):
96111        (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
96112        (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
96113        (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
96114            ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
96115        (WebCore::MainResourceLoader::identifier):
96116        * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
96117            to better describe when it is used.
96118        * loader/cache/CachedRawResource.cpp:
96119        (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
96120        (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
96121        (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
96122        * loader/cache/CachedRawResource.h:
96123        (CachedRawResource):
96124        (RedirectPair):
96125        (WebCore::CachedRawResource::RedirectPair::RedirectPair):
96126        * loader/cache/CachedResource.cpp:
96127        (WebCore::CachedResource::addClientToSet): Don't return cached data for a main resource synchronously
96128        * loader/cache/CachedResource.h:
96129        (WebCore::CachedResource::canReuse):
96130        (CachedResource):
96131        * loader/cache/CachedResourceLoader.cpp:
96132        (WebCore::CachedResourceLoader::requestResource): Leave cahce reuse of main resources off for chromium for now.
96133        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
96134        * testing/Internals.cpp:
96135        (WebCore::Internals::isPreloaded):
96136        (WebCore):
96137        (WebCore::Internals::isLoadingFromMemoryCache):
96138        * testing/Internals.h:
96139        (Internals):
96140        * testing/Internals.idl:
96141
961422013-01-29  Min Qin  <qinmin@chromium.org>
96143
96144        Fix a problem that deferred image decoding is enabled for multiframe images
96145        https://bugs.webkit.org/show_bug.cgi?id=108152
96146
96147        Reviewed by Stephen White.
96148
96149        Deferred image decoding should only work for single frame images now.
96150        However, using ImageDecoder::repetitionCount() does not capture all the cases.
96151        Enforce the rule using ImageDecoder::frameCount()==1.
96152        Fixing a failing layout test: platform/chromium/virtual/deferred/fast/images/icon-0colors.html
96153
96154        * platform/graphics/chromium/DeferredImageDecoder.cpp:
96155        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
96156
961572013-01-29  Elliott Sprehn  <esprehn@chromium.org>
96158
96159        Move ElementShadow creation to ElementRareData
96160        https://bugs.webkit.org/show_bug.cgi?id=108195
96161
96162        Reviewed by Dimitri Glazkov.
96163
96164        Move the creation of ElementShadow to ElementRareData
96165        for better encapsulation, and get rid of ElementRareData::setShadow.
96166
96167        No new tests, just refactoring.
96168
96169        * dom/Element.cpp:
96170        (WebCore::Element::~Element): Use clearShadow() instead of setShadow which is removed.
96171        (WebCore::Element::shadow):
96172        (WebCore::Element::ensureShadow): Use ElementRareData::ensureShadow().
96173        * dom/ElementRareData.h:
96174        (WebCore::ElementRareData::clearShadow): Added.
96175        (WebCore::ElementRareData::ensureShadow): Added.
96176
961772013-01-29  Alpha Lam  <hclam@chromium.org>
96178
96179        [chromium] Unreviewed build fix.
96180
96181        Revert my revert at 141033 which can cause deadlock.
96182
96183        * platform/graphics/chromium/DiscardablePixelRef.cpp:
96184        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
96185        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
96186        * platform/graphics/chromium/DiscardablePixelRef.h:
96187        (DiscardablePixelRef):
96188
961892013-01-29  Joshua Bell  <jsbell@chromium.org>
96190
96191        [Chromium] IndexedDB: Let callers specify reason (error) for aborting transaction
96192        https://bugs.webkit.org/show_bug.cgi?id=107851
96193
96194        Reviewed by Tony Chang.
96195
96196        Internal to the back-end, callers are able to abort transactions and specify a reason
96197        as an IDBDatabaseError, e.g. ConstraintError. Expose this to the WebKit/chromium/public
96198        API so that intermediate layers can specify reasons as well, e.g. QuotaExceededError.
96199
96200        Test will land in Chromium as fix for crbug.com/113118
96201
96202        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
96203        (WebCore::IDBDatabaseBackendImpl::abort): Added overload that takes error.
96204        * Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
96205        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.
96206
962072013-01-29  Victor Carbune  <vcarbune@chromium.org>
96208
96209        Heap-use-after-free in WebCore::RenderTextTrackCue::layout
96210        https://bugs.webkit.org/show_bug.cgi?id=108197
96211
96212        Reviewed by Eric Carlson.
96213
96214        Test: media/track/track-cue-rendering-tree-is-removed-properly.html
96215
96216        * html/HTMLMediaElement.cpp:
96217        (WebCore::HTMLMediaElement::textTrackRemoveCue): Ensure the display tree
96218        is removed when the cue is removed from the list of cues.
96219        * html/track/TextTrackCue.cpp:
96220        (WebCore::TextTrackCue::~TextTrackCue): Enfore display tree removal.
96221
962222013-01-29  Eli Fidler  <efidler@rim.com>
96223
96224        On HarfbuzzNG ports, Arabic TATWEEL is not joined.
96225        https://bugs.webkit.org/show_bug.cgi?id=108037
96226
96227        Reviewed by Tony Chang.
96228
96229        The tatweel (U+0640) is being split into a separate run, because its script is USCRIPT_COMMON.
96230        It has script extensions for USCRIPT_ARABIC, so I think it shouldn't trigger a new run.
96231
96232        Test: fast/text/international/arabic-tatweel-join.html
96233
96234        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
96235        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
96236
962372013-01-29  Martin Robinson  <mrobinson@igalia.com>
96238
96239        [Freetype] Cannot use characters outside the BMP
96240        https://bugs.webkit.org/show_bug.cgi?id=108102
96241
96242        Reviewed by Carlos Garcia Campos.
96243
96244        Test: platform/gtk/fonts/non-bmp-characters.html
96245
96246        Instead of never handling surrogate pairs when dealing with UChar arrays,
96247        abstract way the logic for this into UTF16UChar32Iterator and use it
96248        everywhere in Freetype. This allows the Freetype backend to render
96249        non-BMP characters which are always represented as surrogate pairs in
96250        UTF-16.
96251
96252        * GNUmakefile.list.am: Added UTF16UChar32Iterator to the source list.
96253        * platform/graphics/freetype/FontCacheFreeType.cpp:
96254        (WebCore::createFontConfigPatternForCharacters): Use the new iterator.
96255        (WebCore::FontCache::getFontDataForCharacters): Ditto.
96256        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
96257        (WebCore::GlyphPage::fill): Ditto. Remove the early return when dealing
96258        with non-BMP data.
96259        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
96260        (WebCore::SimpleFontData::containsCharacters): Use the new iterator.
96261        * platform/graphics/freetype/UTF16UChar32Iterator.h: Added. An iterator that
96262        extracts UChar32 from UTF-16 UChar arrays.
96263
96264        * GNUmakefile.list.am:
96265        * platform/graphics/freetype/FontCacheFreeType.cpp:
96266        (WebCore::createFontConfigPatternForCharacters):
96267        (WebCore::FontCache::getFontDataForCharacters):
96268        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
96269        (WebCore::GlyphPage::fill):
96270        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
96271        (WebCore::SimpleFontData::containsCharacters):
96272        * platform/graphics/freetype/UTF16UChar32Iterator.h: Added.
96273        (WebCore):
96274        (UTF16UChar32Iterator):
96275        (WebCore::UTF16UChar32Iterator::UTF16UChar32Iterator):
96276        (WebCore::UTF16UChar32Iterator::end):
96277        (WebCore::UTF16UChar32Iterator::next):
96278
96279        * GNUmakefile.list.am:
96280        * platform/graphics/freetype/FontCacheFreeType.cpp:
96281        (WebCore::createFontConfigPatternForCharacters):
96282        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
96283        (WebCore::GlyphPage::fill):
96284        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
96285        (WebCore::SimpleFontData::containsCharacters):
96286        * platform/graphics/freetype/UTF16UChar32Iterator.h: Added.
96287        (WebCore):
96288        (UTF16UChar32Iterator):
96289        (WebCore::UTF16UChar32Iterator::UTF16UChar32Iterator):
96290        (WebCore::UTF16UChar32Iterator::end):
96291        (WebCore::UTF16UChar32Iterator::next):
96292
962932013-01-29  Glenn Hartmann  <hartmanng@chromium.org>
96294
96295        Don't overlap test for composited scroll DIVs after scroll
96296        https://bugs.webkit.org/show_bug.cgi?id=107471
96297
96298        Reviewed by Simon Fraser.
96299
96300        We don't need to test for overlap after scroll when both
96301        usesCompositedScrolling and !hasOutOfFlowPositionedDescendant
96302        because:
96303
96304        a) Since we're using composited-scrolling, the composited region
96305        presented by the composited-scrolling element to other non-descendant
96306        layers doesn't change during composited scrolling (it's always the
96307        entire scroll layer), and
96308
96309        b) Since we have no out of flow positioned descendants, the scrolling
96310        descendants all move together, so their overlap with respect to each
96311        other cannot change.
96312
96313        So no descendants nor any non-descendants can have their overlap
96314        affected, so it's safe to skip testing.
96315
96316        No new tests (no change in behaviour).
96317
96318        * rendering/RenderLayer.cpp:
96319        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
96320        * rendering/RenderLayerCompositor.cpp:
96321        (WebCore::RenderLayerCompositor::updateCompositingLayers):
96322        * rendering/RenderLayerCompositor.h:
96323
963242013-01-29  Alexis Menard  <alexis@webkit.org>
96325
96326        Implement pseudoElement attribute on transition DOM events.
96327        https://bugs.webkit.org/show_bug.cgi?id=107986
96328
96329        Reviewed by Julien Chaffraix.
96330
96331        Implement the pseudoElement attribute documented here :
96332        http://dev.w3.org/csswg/css3-transitions/#transition-events.
96333        This add a new attribute to the transition DOM event useful when
96334        animating pseudo elements. As they are not accessible in JS, it's
96335        very useful to get on which pseudo element the transition just ended.
96336        This patch adds the new attribute on the IDLs of DOM transition events as well
96337        as adding it to the C++ classes representing them. The event
96338        dispatching code have been patched to change the target of the event
96339        (we can't send the current target as it is the actual DOM
96340        representation of the pseudo element).
96341
96342        Test: fast/css-generated-content/pseudo-transition-event.html
96343
96344        * dom/EventDispatcher.cpp:
96345        (WebCore::eventTargetRespectingTargetRules): Change the target of the
96346        event in the case of a pseudo element. We can't expose them through the
96347        public interface so the target is the node they belong to.
96348        (WebCore::EventDispatcher::ensureEventAncestors):
96349        (WebCore::EventDispatcher::dispatchScopedEvent):
96350        (WebCore::EventDispatcher::dispatchEvent):
96351        (WebCore::EventDispatcher::dispatchEventPostProcess):
96352        * dom/EventTarget.cpp:
96353        (WebCore::createMatchingPrefixedEvent):
96354        * dom/PseudoElement.cpp:
96355        (WebCore::PseudoElement::pseudoElementNameForEvents):
96356        (WebCore):
96357        * dom/PseudoElement.h:
96358        * dom/TransitionEvent.cpp:
96359        (WebCore::TransitionEventInit::TransitionEventInit):
96360        (WebCore::TransitionEvent::TransitionEvent):
96361        (WebCore::TransitionEvent::pseudoElement):
96362        (WebCore):
96363        * dom/TransitionEvent.h:
96364        (TransitionEventInit):
96365        (WebCore::TransitionEvent::create):
96366        (TransitionEvent):
96367        * dom/TransitionEvent.idl:
96368        * dom/WebKitTransitionEvent.cpp:
96369        (WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
96370        (WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
96371        (WebCore::WebKitTransitionEvent::pseudoElement):
96372        (WebCore):
96373        * dom/WebKitTransitionEvent.h:
96374        (WebKitTransitionEventInit):
96375        (WebCore::WebKitTransitionEvent::create):
96376        (WebKitTransitionEvent):
96377        * dom/WebKitTransitionEvent.idl:
96378        * page/animation/AnimationController.cpp:
96379        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): Pass
96380        the pseudo element name when creating the Event objects. If the element
96381        is not a pseudo element then the name will be empty which is what the
96382        spec is telling to do. If the element is a pseudo element then the name
96383        will be the pseudo element's name with "::" as a prefix.
96384
963852013-01-29  Allan Sandfeld Jensen  <allan.jensen@digia.com>
96386
96387        [Qt] Implement GCActivityCallback
96388        https://bugs.webkit.org/show_bug.cgi?id=103998
96389
96390        Reviewed by Simon Hausmann.
96391
96392        Implements the activity triggered garbage collector,
96393        and disables the timer based fallback.
96394
96395        * bindings/js/GCController.cpp:
96396        (WebCore::GCController::GCController):
96397        (WebCore::GCController::garbageCollectSoon):
96398        * bindings/js/GCController.h:
96399        (GCController):
96400
964012013-01-29  Andrey Lushnikov  <lushnikov@chromium.org>
96402
96403        Web Inspector: fix bottom span in token highlight in DTE
96404        https://bugs.webkit.org/show_bug.cgi?id=108194
96405
96406        Reviewed by Pavel Feldman.
96407
96408        Change css style for token highlight from "border" to "outline" to
96409        avoid border included in box dimensions.
96410
96411        No new tests: no change in behaviour.
96412
96413        * inspector/front-end/textEditor.css:
96414        (.text-editor-token-highlight):
96415
964162013-01-29  Andrey Lushnikov  <lushnikov@chromium.org>
96417
96418        Web Inspector: introduce HighlightDescriptor interface in DTE.
96419        https://bugs.webkit.org/show_bug.cgi?id=108161
96420
96421        Reviewed by Pavel Feldman.
96422
96423        Introduce new HighlightDescriptor interface and its
96424        RegexHighlightDescriptor implementation and use it in DTE to
96425        support overlay highlight.
96426
96427        No new tests: no change in behaviour.
96428
96429        * inspector/front-end/DefaultTextEditor.js:
96430        (WebInspector.DefaultTextEditor.prototype.highlightRegex):
96431        (WebInspector.DefaultTextEditor.prototype.removeRegexHighlight):
96432        (WebInspector.TextEditorMainPanel):
96433        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
96434        (WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
96435        (WebInspector.TextEditorMainPanel.prototype._paintLines):
96436        (WebInspector.TextEditorMainPanel.prototype._measureHighlightDescriptor):
96437        (WebInspector.TextEditorMainPanel.HighlightDescriptor): Added.
96438        (WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.affectsLine):
96439        (WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.rangesForLine):
96440        (WebInspector.TextEditorMainPanel.HighlightDescriptor.prototype.cssClass):
96441        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor): Added.
96442        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.affectsLine):
96443        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.rangesForLine):
96444        (WebInspector.TextEditorMainPanel.RegexHighlightDescriptor.prototype.cssClass):
96445        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._highlight):
96446        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
96447        * inspector/front-end/TextEditor.js:
96448        (WebInspector.TextEditor.prototype.removeRegexHighlight):
96449
964502013-01-29  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
96451
96452        [EFL] Unified text checker implementation.
96453        https://bugs.webkit.org/show_bug.cgi?id=107682
96454
96455        Reviewed by Anders Carlsson.
96456
96457        No new tests, covered by editing/spelling tests.
96458
96459        * platform/text/TextChecking.h:
96460        (WebCore):
96461        Enabling unified text checker feature for WebKit-EFL.
96462
964632013-01-29  Vladislav Kaznacheev  <kaznacheev@chromium.org>
96464
96465        Web Inspector: Wrong indent in Styles sidebar pane
96466        https://bugs.webkit.org/show_bug.cgi?id=108186
96467
96468        Reviewed by Alexander Pavlov.
96469
96470        Added an extra selector to prevent a conflict with a rule in elementsPanel.css.
96471
96472        No new tests.
96473
96474        * inspector/front-end/inspector.css:
96475        (.pane.expanded .section .properties, .event-bar .event-properties):
96476
964772013-01-29  Florin Malita  <fmalita@chromium.org>
96478
96479        [Chromium] Unreviewed gardening.
96480
96481        Update bindings-tests results after http://trac.webkit.org/changeset/141034.
96482
96483        * bindings/scripts/test/V8/V8Float64Array.cpp:
96484        (WebCore):
96485        (WebCore::checkTypeOrDieTrying):
96486        (WebCore::V8Float64Array::createWrapper):
96487        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
96488        (WebCore):
96489        (WebCore::checkTypeOrDieTrying):
96490        (WebCore::V8TestActiveDOMObject::createWrapper):
96491        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
96492        (WebCore):
96493        (WebCore::checkTypeOrDieTrying):
96494        (WebCore::V8TestCustomNamedGetter::createWrapper):
96495        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
96496        (WebCore):
96497        (WebCore::checkTypeOrDieTrying):
96498        (WebCore::V8TestEventConstructor::createWrapper):
96499        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
96500        (WebCore):
96501        (WebCore::checkTypeOrDieTrying):
96502        (WebCore::V8TestEventTarget::createWrapper):
96503        * bindings/scripts/test/V8/V8TestException.cpp:
96504        (WebCore):
96505        (WebCore::checkTypeOrDieTrying):
96506        (WebCore::V8TestException::createWrapper):
96507        * bindings/scripts/test/V8/V8TestInterface.cpp:
96508        (WebCore):
96509        (WebCore::checkTypeOrDieTrying):
96510        (WebCore::V8TestInterface::createWrapper):
96511        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
96512        (WebCore):
96513        (WebCore::checkTypeOrDieTrying):
96514        (WebCore::V8TestMediaQueryListListener::createWrapper):
96515        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
96516        (WebCore):
96517        (WebCore::checkTypeOrDieTrying):
96518        (WebCore::V8TestNamedConstructor::createWrapper):
96519        * bindings/scripts/test/V8/V8TestNode.cpp:
96520        (WebCore):
96521        (WebCore::checkTypeOrDieTrying):
96522        (WebCore::V8TestNode::createWrapper):
96523        * bindings/scripts/test/V8/V8TestObj.cpp:
96524        (WebCore):
96525        (WebCore::checkTypeOrDieTrying):
96526        (WebCore::V8TestObj::createWrapper):
96527        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
96528        (WebCore):
96529        (WebCore::checkTypeOrDieTrying):
96530        (WebCore::V8TestOverloadedConstructors::createWrapper):
96531        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
96532        (WebCore):
96533        (WebCore::checkTypeOrDieTrying):
96534        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
96535
965362013-01-29  Andrey Adaikin  <aandrey@chromium.org>
96537
96538        Web Inspector: [Canvas] support instrumenting canvases in iframes (backend side)
96539        https://bugs.webkit.org/show_bug.cgi?id=107951
96540
96541        Reviewed by Pavel Feldman.
96542
96543        Accept optional FrameId argument for captureFrame and startCapturing commands.
96544        Add event to the protocol to inform about instrumented canvas context creation.
96545
96546        * inspector/Inspector.json:
96547        * inspector/InspectorCanvasAgent.cpp:
96548        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
96549        (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
96550        (WebCore::InspectorCanvasAgent::captureFrame):
96551        (WebCore::InspectorCanvasAgent::startCapturing):
96552        (WebCore::InspectorCanvasAgent::getTraceLog):
96553        (WebCore::InspectorCanvasAgent::replayTraceLog):
96554        (WebCore::InspectorCanvasAgent::getResourceInfo):
96555        (WebCore::InspectorCanvasAgent::getResourceState):
96556        (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
96557        (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
96558        (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
96559        (WebCore):
96560        (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
96561        (WebCore::InspectorCanvasAgent::frameNavigated):
96562        (WebCore::InspectorCanvasAgent::frameDetached):
96563        * inspector/InspectorCanvasAgent.h:
96564        (WebCore):
96565        (WebCore::InspectorCanvasAgent::create):
96566        (InspectorCanvasAgent):
96567        * inspector/InspectorController.cpp:
96568        (WebCore::InspectorController::InspectorController):
96569        * inspector/InspectorInstrumentation.cpp:
96570        (WebCore):
96571        (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
96572        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
96573
965742013-01-29  Eugene Klyuchnikov  <eustas@chromium.org>
96575
96576        Web Inspector: [CPU Profile] Taking profile crashes renderer.
96577        https://bugs.webkit.org/show_bug.cgi?id=108072
96578
96579        Reviewed by Yury Semikhatsky.
96580
96581        Test: inspector/profiler/cpu-profiler-agent-crash-on-start.html
96582
96583        Fixed null-pointer access.
96584
96585        * bindings/v8/ScriptProfiler.cpp:
96586        (WebCore::ScriptProfiler::start): Fixed null-pointer access.
96587        (WebCore::ScriptProfiler::stop): Ditto.
96588
965892013-01-29  Allan Sandfeld Jensen  <allan.jensen@digia.com>
96590
96591        REGRESSION: ChildrenAffectedBy flags lost between siblings which have child elements sharing style
96592        https://bugs.webkit.org/show_bug.cgi?id=105672
96593
96594        Reviewed by Andreas Kling.
96595
96596        Change in how childrenAffectedBy bits were stored made it easier to trigger an issue where childrenAffectedBy bits
96597        were not set due to sharing of styles between cousin elements.
96598
96599        This patch fixes the issue by not sharing styles from children with parents who prevent sharing.
96600
96601        Tests: fast/selectors/cousin-stylesharing-adjacent-selector.html
96602               fast/selectors/cousin-stylesharing-last-child-selector.html
96603
96604        * css/StyleResolver.cpp:
96605        (WebCore::parentElementPreventsSharing):
96606        (WebCore::StyleResolver::locateCousinList):
96607        * dom/Element.cpp:
96608        (WebCore::Element::hasFlagsSetDuringStylingOfChildren):
96609        * dom/Element.h:
96610        (Element):
96611
966122013-01-29  Vsevolod Vlasov  <vsevik@chromium.org>
96613
96614        Web Inspector: [Regression] Search across all sources is broken.
96615        https://bugs.webkit.org/show_bug.cgi?id=108157
96616
96617        Reviewed by Pavel Feldman.
96618
96619        Test: http/tests/inspector/search/scripts-search-scope.html
96620
96621        * inspector/front-end/ScriptsSearchScope.js:
96622        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
96623
966242013-01-29  Mike West  <mkwst@chromium.org>
96625
96626        IDBFactory::webkitGetDatabaseNames should raise DOMExceptions.
96627        https://bugs.webkit.org/show_bug.cgi?id=108154
96628
96629        Reviewed by Jochen Eisinger.
96630
96631        In order to properly support blocking third-party IndexedDB usage,
96632        open(), getDatabaseNames(), and deleteDatabase() should all throw
96633        SECURITY_ERR when used in a blocked third-party context. That's possible
96634        now for open() and deleteDatabase(), but getDatabaseNames() can't
96635        currently raise exceptions.
96636
96637        This patch adjusts the IDL file and implementation. No exceptions are
96638        currently thrown, but that will change as soon as wkbug.com/94171 lands.
96639
96640        * Modules/indexeddb/IDBFactory.cpp:
96641        (WebCore::IDBFactory::getDatabaseNames):
96642        * Modules/indexeddb/IDBFactory.h:
96643        (IDBFactory):
96644        * Modules/indexeddb/IDBFactory.idl:
96645            Add "raises (DOMException)" to getDatabaseNames, and adjust the
96646            implementation to match.
96647        * inspector/InspectorIndexedDBAgent.cpp:
96648        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
96649            Pass in an ExceptionCode when calling getDatabaseNames, and handle
96650            possible exceptions.
96651
966522013-01-29  Hayato Ito  <hayato@chromium.org>
96653
96654        Revert an accidentally changed line of EventHander::handleMousePressEvent(PlatformMouseEvent&) in r135650.
96655        https://bugs.webkit.org/show_bug.cgi?id=108165
96656
96657        Reviewed by Hajime Morita.
96658
96659        No new tests.
96660
96661        * page/EventHandler.cpp:
96662        (WebCore::EventHandler::handleMousePressEvent):
96663
966642013-01-29  Kent Tamura  <tkent@chromium.org>
96665
96666        FeatureObserver: Input types are counted unexpectedly in a page with Modernizr
96667        https://bugs.webkit.org/show_bug.cgi?id=108141
96668
96669        Reviewed by Kentaro Hara.
96670
96671        We don't want to record input type instantiation by Modernizr. Modernizr
96672        creates input elements with these types, append it to document.body, and
96673        render it with visibility:hidden. So, we record input types only when
96674        they are attached without visibility:hidden.
96675
96676        No new tests. FeatureObserver is not testable by layout test.
96677
96678        * html/InputType.cpp:
96679        (WebCore::InputType::create): Remove FeatureObserver::observe
96680        callsites. They are moved to TextInputType::attach.
96681        (WebCore::InputType::observeFeatureIfVisible):
96682        Added. A helper for attach().
96683        * html/InputType.h:
96684        (InputType): Add observeFeatureIfVisible.
96685
96686        * html/ColorInputType.cpp:
96687        (WebCore::ColorInputType::create):
96688        Remove a FeatureObserver::observe callsite.
96689        (WebCore::ColorInputType::attach):
96690        Calls FetureObserver through InputType::observeFeatureIfVisible.
96691        * html/ColorInputType.h:
96692        (ColorInputType): Declare attach.
96693        * html/DateInputType.cpp: Ditto.
96694        * html/DateInputType.h: Ditto.
96695        * html/DateTimeInputType.cpp: Ditto.
96696        * html/DateTimeInputType.h: Ditto.
96697        * html/DateTimeLocalInputType.cpp: Ditto.
96698        * html/DateTimeLocalInputType.h: Ditto.
96699        * html/MonthInputType.cpp: Ditto.
96700        * html/MonthInputType.h: Ditto.
96701        * html/RangeInputType.cpp: Ditt
96702        * html/RangeInputType.h: Ditto.
96703        * html/TimeInputType.cpp: Ditto.
96704        * html/TimeInputType.h: Ditto.
96705        * html/WeekInputType.cpp: Ditto.
96706        * html/WeekInputType.h: Ditto.
96707
96708        * html/TextFieldInputType.h:
96709        (TextFieldInputType):
96710        Make attach protected in order that sub classes can call it.
96711        * html/EmailInputType.cpp:
96712        (WebCore::EmailInputType::create):
96713        Remove a FeatureObserver::observe callsite.
96714        (WebCore::EmailInputType::attach): Calls FetureObserver through
96715        InputType::observeFeatureIfVisible after TextFieldInptuType::attach.
96716        * html/EmailInputType.h:
96717        (EmailInputType):Declare attach.
96718        * html/NumberInputType.cpp: Ditto.
96719        * html/NumberInputType.h: Ditto.
96720        * html/SearchInputType.cpp: Ditto.
96721        * html/SearchInputType.h: Ditto.
96722        * html/TelephoneInputType.cpp: Ditto.
96723        * html/TelephoneInputType.h: Ditto.
96724        * html/URLInputType.cpp: Ditto.
96725        * html/URLInputType.h: Ditto.
96726
96727        * html/TextInputType.cpp:
96728        (WebCore::TextInputType::attach):
96729        Move the code for type fallback from InputType::create.
96730        * html/TextInputType.h:
96731        (TextInputType): Declare attach.
96732
967332013-01-29  Michael Brüning  <michael.bruning@digia.com>
96734
96735        [Qt][WK1] Reflect recursion limit and loop checks also for list conversions.
96736        https://bugs.webkit.org/show_bug.cgi?id=107950
96737
96738        Reviewed by Allan Sandfeld Jensen.
96739
96740        No new tests, bugfix, no behavioral change.
96741
96742        Make conversions from Javascript values to QLists take the maximum
96743        recursion depth into consideration and check for objects that were
96744        already visited. Otherwise, the conversion may recurse until the
96745        stack is full and then cause a segmentation fault.
96746
96747        * bridge/qt/qt_runtime.cpp:
96748        (JSC::Bindings::convertToList):
96749        (JSC::Bindings::convertValueToQVariant):
96750
967512013-01-29  Elliott Sprehn  <esprehn@chromium.org>
96752
96753        Clean up interface to ElementShadow
96754        https://bugs.webkit.org/show_bug.cgi?id=108158
96755
96756        Reviewed by Hajime Morita.
96757
96758        Lots of general clean up to ElementShadow removing unused headers,
96759        adding a create() method that returns a PassOwnPtr, adding missing const,
96760        and moving short inline methods into the class definition so it's easier
96761        to understand what methods do what.
96762
96763        No new tests, just refactoring.
96764
96765        * dom/Element.cpp:
96766        (WebCore::Element::ensureShadow):
96767        * dom/ElementShadow.cpp:
96768        (WebCore::ElementShadow::childNeedsStyleRecalc):
96769        (WebCore::ElementShadow::needsStyleRecalc):
96770        * dom/ElementShadow.h:
96771        (WebCore::ElementShadow::create):
96772        (ElementShadow):
96773        (WebCore::ElementShadow::~ElementShadow):
96774        (WebCore::ElementShadow::youngestShadowRoot):
96775        (WebCore::ElementShadow::oldestShadowRoot):
96776        (WebCore::ElementShadow::distributor):
96777        (WebCore::ElementShadow::ElementShadow):
96778        (WebCore::ElementShadow::containingShadow):
96779
967802013-01-29  Elliott Sprehn  <esprehn@chromium.org>
96781
96782        Store ShadowRootType inside the bitfield
96783        https://bugs.webkit.org/show_bug.cgi?id=108147
96784
96785        Reviewed by Dimitri Glazkov.
96786
96787        We can simplify the interface to ShadowRoot by storing the enum value of
96788        ShadowRootType inside the bitfield like we do in the rest of WebCore.
96789
96790        No new tests, just refactoring.
96791
96792        * dom/ShadowRoot.cpp:
96793        (WebCore::ShadowRoot::ShadowRoot):
96794        (WebCore::ShadowRoot::create):
96795        * dom/ShadowRoot.h:
96796        (WebCore::ShadowRoot::type):
96797        (ShadowRoot):
96798
967992013-01-29  Jochen Eisinger  <jochen@chromium.org>
96800
96801        REGRESSION(r141070): Broke debug build
96802        https://bugs.webkit.org/show_bug.cgi?id=108159
96803
96804        Unreviewed build fix.
96805
96806        * html/parser/HTMLDocumentParser.cpp:
96807        (WebCore::HTMLDocumentParser::pumpTokenizer):
96808
968092013-01-28  Adam Barth  <abarth@webkit.org>
96810
96811        HTMLDocumentParser should hold the HTMLToken using an OwnPtr
96812        https://bugs.webkit.org/show_bug.cgi?id=107762
96813
96814        Reviewed by Eric Seidel.
96815
96816        Using an OwnPtr will let us detach the HTMLToken from the
96817        HTMLDocumentParser and send it to the BackgroundHTMLParser for further
96818        processing.
96819
96820        * html/parser/BackgroundHTMLParser.cpp:
96821        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
96822        (WebCore::BackgroundHTMLParser::pumpTokenizer):
96823        * html/parser/BackgroundHTMLParser.h:
96824        (BackgroundHTMLParser):
96825        * html/parser/CompactHTMLToken.cpp:
96826        (WebCore::CompactHTMLToken::CompactHTMLToken):
96827        * html/parser/CompactHTMLToken.h:
96828        (CompactHTMLToken):
96829        * html/parser/HTMLDocumentParser.cpp:
96830        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
96831        (WebCore::HTMLDocumentParser::pumpTokenizer):
96832        * html/parser/HTMLDocumentParser.h:
96833        (HTMLDocumentParser):
96834
968352013-01-28  Huang Dongsung  <luxtella@company100.net>
96836
96837        [Texmap] Refactor code related to debug border and repaint count.
96838        https://bugs.webkit.org/show_bug.cgi?id=105787
96839
96840        Reviewed by Noam Rosenthal.
96841
96842        It is a follow-up patch not to change layout test results.
96843
96844        The previous patch sets GraphicsLayer::m_usingTiledLayer to true when using a
96845        backing store. When the variable is true, dumpLayer() adds (usingTiledLayer 1),
96846        but most of ports don't set m_usingTiledLayer to true. So we don't use
96847        m_usingTiledLayer to match the test results of other ports.
96848
96849        After this patch, Texture Mapper draws debug visuals for a tiled backing
96850        with different color from safari.
96851
96852        No new tests. Debug feature, not covered in tests.
96853
96854        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
96855        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):
96856
968572013-01-28  Elliott Sprehn  <esprehn@chromium.org>
96858
96859        Handle createShadowSubtree inside of ensureUserAgentShadowRoot
96860        https://bugs.webkit.org/show_bug.cgi?id=108116
96861
96862        Reviewed by Dimitri Glazkov.
96863
96864        Instead of making everyone create the UserAgentShadowRoot manually all
96865        over, centralize it in ensureUserAgentShadowRoot() and add a notification
96866        Element::didAddUserAgentShadowRoot that lets elements fill in the subtree.
96867        This lets us get rid of lots of code duplication.
96868
96869        No new tests, just refactoring.
96870
96871        * dom/Element.cpp:
96872        (WebCore::Element::ensureUserAgentShadowRoot):
96873        * dom/Element.h:
96874        (WebCore::Element::didAddUserAgentShadowRoot):
96875        (Element):
96876        * html/HTMLDetailsElement.cpp:
96877        (WebCore::DetailsSummaryElement::create):
96878        (WebCore::HTMLDetailsElement::create):
96879        (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
96880        * html/HTMLDetailsElement.h:
96881        (HTMLDetailsElement):
96882        * html/HTMLInputElement.cpp:
96883        (WebCore::HTMLInputElement::create):
96884        (WebCore::HTMLInputElement::didAddUserAgentShadowRoot):
96885        * html/HTMLInputElement.h:
96886        (HTMLInputElement):
96887        * html/HTMLMediaElement.cpp:
96888        (WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
96889        (WebCore::HTMLMediaElement::createMediaControls):
96890        * html/HTMLMediaElement.h:
96891        * html/HTMLMeterElement.cpp:
96892        (WebCore::HTMLMeterElement::create):
96893        (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
96894        * html/HTMLMeterElement.h:
96895        (HTMLMeterElement):
96896        * html/HTMLProgressElement.cpp:
96897        (WebCore::HTMLProgressElement::create):
96898        (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
96899        * html/HTMLProgressElement.h:
96900        * html/HTMLSummaryElement.cpp:
96901        (WebCore::HTMLSummaryElement::create):
96902        (WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
96903        * html/HTMLSummaryElement.h:
96904        (HTMLSummaryElement):
96905        * html/HTMLTextAreaElement.cpp:
96906        (WebCore::HTMLTextAreaElement::create):
96907        (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
96908        * html/HTMLTextAreaElement.h:
96909        * html/shadow/MediaControlElements.cpp:
96910        (WebCore::MediaControlPanelMuteButtonElement::create):
96911        (WebCore::MediaControlVolumeSliderMuteButtonElement::create):
96912        (WebCore::MediaControlPlayButtonElement::create):
96913        (WebCore::MediaControlOverlayPlayButtonElement::create):
96914        (WebCore::MediaControlSeekForwardButtonElement::create):
96915        (WebCore::MediaControlSeekBackButtonElement::create):
96916        (WebCore::MediaControlRewindButtonElement::create):
96917        (WebCore::MediaControlReturnToRealtimeButtonElement::create):
96918        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
96919        (WebCore::MediaControlTimelineElement::create):
96920        (WebCore::MediaControlPanelVolumeSliderElement::create):
96921        (WebCore::MediaControlFullscreenVolumeSliderElement::create):
96922        (WebCore::MediaControlFullscreenButtonElement::create):
96923        (WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
96924        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
96925        * html/shadow/MediaControlsBlackBerry.cpp:
96926        (WebCore::MediaControlFullscreenPlayButtonElement::create):
96927        (WebCore::MediaControlFullscreenFullscreenButtonElement::create):
96928        (WebCore::MediaControlFullscreenTimelineElement::create):
96929        (WebCore::MediaControlAudioMuteButtonElement::create):
96930        * svg/SVGTRefElement.cpp:
96931        (WebCore::SVGTRefElement::create):
96932        * svg/SVGTRefElement.h:
96933        (SVGTRefElement):
96934        * svg/SVGUseElement.cpp:
96935        (WebCore::SVGUseElement::create):
96936        * svg/SVGUseElement.h:
96937        (SVGUseElement):
96938
969392013-01-28   Vineet Chaudhary  <rgf748@motorola.com>
96940
96941        HTMLOutputElement::htmlFor should be readonly
96942        https://bugs.webkit.org/show_bug.cgi?id=101898
96943
96944        Reviewed by Kentaro Hara.
96945
96946        The spec says htmlFor should be readonly, but WebKit implements it as no-readonly.
96947        Spec: http://dev.w3.org/html5/spec-preview/the-output-element.html
96948
96949        No new tests. Modified existing test fast/dom/HTMLOutputElement/dom-settable-token-list.html
96950        to work as expected.
96951
96952        * GNUmakefile.list.am: Removed JSHTMLOutputElementCustom.cpp
96953        * Target.pri: Ditto
96954        * UseJSC.cmake: Ditto
96955        * UseV8.cmake: Removed V8HTMLOutputElementCustom.cpp
96956        * WebCore.gypi: Removed V8HTMLOutputElementCustom.cpp
96957        * WebCore.vcproj/WebCore.vcproj: Removed JSHTMLOutputElementCustom.cpp
96958        * WebCore.vcxproj/WebCore.vcxproj: Ditto
96959        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
96960        * WebCore.xcodeproj/project.pbxproj: Ditto
96961        * bindings/js/JSBindingsAllInOne.cpp: Ditto
96962        * bindings/js/JSHTMLOutputElementCustom.cpp: Removed.
96963        * bindings/v8/custom/V8HTMLOutputElementCustom.cpp: Removed.
96964        * html/HTMLOutputElement.idl: Made htmlFor attribute readonly.
96965
969662013-01-28  Tien-Ren Chen  <trchen@chromium.org>
96967
96968        Fix disambiguation popup for new-style page scale
96969        https://bugs.webkit.org/show_bug.cgi?id=107391
96970
96971        Reviewed by Adam Barth.
96972
96973        This patch corrects various coordinate conversion for disambiguation
96974        popup for the new-style page scale mode.
96975
96976        New unit test: WebFrameTest.DisambiguationPopupPageScale
96977
96978        * page/TouchDisambiguation.cpp:
96979        (WebCore::findGoodTouchTargets):
96980        * page/TouchDisambiguation.h:
96981        (WebCore):
96982
969832013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
96984
96985        Unreviewed, rolling out r141049.
96986        http://trac.webkit.org/changeset/141049
96987        https://bugs.webkit.org/show_bug.cgi?id=108151
96988
96989        Caused some indexed tests to crash. (Requested by keishi on
96990        #webkit).
96991
96992        * Modules/indexeddb/IDBCallbacks.h:
96993        (WebCore::IDBCallbacks::onUpgradeNeeded):
96994        (WebCore::IDBCallbacks::onSuccess):
96995        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
96996        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
96997        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
96998        (WebCore::IDBDatabaseBackendImpl::openConnection):
96999        * Modules/indexeddb/IDBOpenDBRequest.cpp:
97000        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
97001        (WebCore::IDBOpenDBRequest::onSuccess):
97002        * Modules/indexeddb/IDBOpenDBRequest.h:
97003        (IDBOpenDBRequest):
97004
970052013-01-28  Adam Barth  <abarth@webkit.org>
97006
97007        Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
97008        https://bugs.webkit.org/show_bug.cgi?id=79013
97009
97010        Reviewed by David Levin.
97011
97012        We need to use an isolated copy because we're going to use it on a
97013        different thread.
97014
97015        * Modules/webdatabase/AbstractDatabase.cpp:
97016        (WebCore::AbstractDatabase::AbstractDatabase):
97017
970182013-01-28  Shinya Kawanaka  <shinyak@chromium.org>
97019
97020        [Shadow] Gesture event is not fired in ShadowDOM
97021        https://bugs.webkit.org/show_bug.cgi?id=107797
97022
97023        Reviewed by Dimitri Glazkov.
97024
97025        Gesture event (e.g. touchstart) is not fired in ShadowDOM.
97026
97027        We have to run event retargetting algorithm to retarget touchTarget, however it is not implemented yet (Bug 107800).
97028        Until it's implemented, we use the shadow ancestor node of touchTarget in Document treescope as touchTarget
97029        for backward compatibility. If a touch event is fired in nested ShadowDOM, touchTarget will be always element in
97030        document tree, so an event listener in ShadowDOM will get a wrong touchTarget. However we prioritized
97031        the correctness of document tree.
97032
97033        Test: fast/dom/shadow/touch-event.html
97034
97035        * page/EventHandler.cpp:
97036        (WebCore::EventHandler::handleTouchEvent): Allows us to take elements in ShadowDOM.
97037
970382013-01-28  Alexandre Elias  <aelias@chromium.org>
97039
97040        Make page scale shrink FrameView in applyPageScaleInCompositor mode
97041        https://bugs.webkit.org/show_bug.cgi?id=107424
97042
97043        Reviewed by Levi Weintraub.
97044
97045        If applyPageScaleFactorInCompositor is enabled (Chromium-only setting),
97046        instead of the entire document expanding as the user pinch zooms, the
97047        viewport shrinks instead. This patch applies the pageScaleFactor to
97048        visibleContentRect to get this behavior, and simplifies Chromium's
97049        resize logic to stop hiding the true viewport size from WebCore.
97050
97051        I verified that the scaling makes sense for all the callers of
97052        visibleContentRect. The exceptions are clip-layer size,
97053        layout size in non-fixed-layout mode, and text autosizing, which need
97054        the original unscaled size. Therefore I added a new method
97055        unscaledVisibleContentSize() to ScrollView/FrameView.
97056
97057        This patch also modifies Page::setPageScaleFactor to perform no
97058        invalidates or layout when applyPageScaleFactorInCompositor is true,
97059        and also writes pageScaleFactor into HistoryItems instead of using
97060        frameScaleFactor.
97061
97062        Since all behavior changes are tied to applyPageScaleFactorInCompositor,
97063        this patch should be a no-op for non-Chromium ports.
97064
97065        New unit tests in WebFrameTest.cpp.
97066
97067        * loader/HistoryController.cpp:
97068        (WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
97069        Use pageScaleFactor here because frameScaleFactor always returns 1
97070        with our setting.
97071        * page/FrameView.cpp:
97072        (WebCore::FrameView::visibleContentScaleFactor):
97073        (WebCore):
97074        * page/FrameView.h:
97075        (FrameView):
97076        * page/Page.cpp:
97077        (WebCore::Page::setPageScaleFactor): Make setPageScaleFactor stop
97078        invalidating/layouting as this is handled by our compositor.
97079        * platform/ScrollView.cpp:
97080        (WebCore::ScrollView::unscaledVisibleContentSize): This new method
97081        just returns the original visible rect without pageScaleFactor being
97082        applied.
97083        (WebCore):
97084        (WebCore::ScrollView::visibleContentRect): This now is divided by
97085        pageScaleFactor if our setting is active.
97086        (WebCore::ScrollView::layoutSize):
97087        * platform/ScrollView.h:
97088        (WebCore::ScrollView::visibleContentScaleFactor): Returns
97089        pageScaleFactor if the visible rect is scaled, 1 normally.
97090        (ScrollView):
97091        (WebCore::ScrollView::layoutWidth):
97092        (WebCore::ScrollView::layoutHeight):
97093        * rendering/RenderLayerCompositor.cpp:
97094        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
97095        (WebCore::RenderLayerCompositor::updateRootLayerPosition): Clip layer
97096        should use unscaled size, because it's above the root scroll layer
97097        on the layer tree (i.e. page scale isn't applied on it).
97098        * rendering/TextAutosizer.cpp:
97099        (WebCore::TextAutosizer::processSubtree): Text autosizer should use
97100        unscaled size, because it cares about physical screen size.
97101
971022013-01-28  Geoffrey Garen  <ggaren@apple.com>
97103
97104        Static size inference for JavaScript objects
97105        https://bugs.webkit.org/show_bug.cgi?id=108093
97106
97107        Reviewed by Phil Pizlo.
97108
97109        * ForwardingHeaders/runtime/ObjectConstructor.h: Added.
97110
97111        * bindings/js/JSInjectedScriptHostCustom.cpp:
97112        * bindings/js/JSSQLResultSetRowListCustom.cpp: Include ObjectConstructor.h because
97113        that's where createEmptyObject() is located now.
97114
97115        * bindings/js/SerializedScriptValue.cpp:
97116        (WebCore::CloneDeserializer::deserialize): Updated for interface change.
97117
971182013-01-28  Alec Flett  <alecflett@chromium.org>
97119
97120        IndexedDB: Pass metadata in to IDBOpenDBRequest.onUpgradeNeeded/onSuccess
97121        https://bugs.webkit.org/show_bug.cgi?id=103920
97122
97123        Reviewed by Dimitri Glazkov.
97124
97125        Update IDBCallbacks::onSuccess and IDBCallbacks::onUpgradeNeeded to
97126        pass through a metadata parameter. While there, remove the unused
97127        IDBTransactionBackendInterface parameter to onUpgradeNeeded.
97128
97129        As this is another step in the IDB refactor, I've simplified future cleanup
97130        work by making the WebKit API code still use the old API. This
97131        will make it possible to outright remove code on the chromium side rather
97132        than another three-step checkin.
97133
97134        No new tests, as this is more refactoring.
97135
97136        * Modules/indexeddb/IDBCallbacks.h:
97137        (WebCore::IDBCallbacks::onUpgradeNeeded): new method signature.
97138        (WebCore::IDBCallbacks::onSuccess): new method signature.
97139        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
97140        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
97141        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
97142        (WebCore::IDBDatabaseBackendImpl::openConnection):
97143        * Modules/indexeddb/IDBOpenDBRequest.cpp:
97144        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): use passed-in metadata.
97145        (WebCore::IDBOpenDBRequest::onSuccess): use passed-in metadata.
97146        * Modules/indexeddb/IDBOpenDBRequest.h:
97147        (IDBOpenDBRequest):
97148
971492013-01-28  Simon Fraser  <simon.fraser@apple.com>
97150
97151        position:fixed that doesn't render any content should not force compositing
97152        https://bugs.webkit.org/show_bug.cgi?id=108112
97153
97154        Reviewed by Beth Dakin.
97155        
97156        It's not uncommon for pages to have position:fixed elements with no content.
97157        When these are behind other elements, they can cause those other elements
97158        to become composited, using lots of backing store memory.
97159        
97160        Optimize for the case where the position:fixed element has no rendered
97161        content and no children by not making it composited in that case.
97162
97163        Test: compositing/layer-creation/fixed-position-no-content.html
97164
97165        * rendering/RenderLayer.cpp:
97166        (WebCore::RenderLayer::hasNonEmptyChildRenderers): Moved from RenderLayerBacking.cpp.
97167        (WebCore::hasBoxDecorations): Ditto.
97168        (WebCore::RenderLayer::hasBoxDecorationsOrBackground): Ditto.
97169        (WebCore::RenderLayer::hasVisibleBoxDecorations): Check for visibility:visible, box decorations and
97170        overflow controls.
97171        (WebCore::RenderLayer::isVisuallyNonEmpty): Returns true if this layer has some visible
97172        representation.
97173        * rendering/RenderLayer.h:
97174        * rendering/RenderLayerBacking.cpp:
97175        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Need to call updateDescendantDependentFlags()
97176        to ensure that the visibility flags are up to date.
97177        (WebCore::RenderLayerBacking::updateDrawsContent): Call RenderLayer::hasBoxDecorationsOrBackground() now.
97178        (WebCore::RenderLayerBacking::paintsBoxDecorations): Call RenderLayer::hasVisibleBoxDecorations() now.
97179        (WebCore::RenderLayerBacking::paintsChildren): Call RenderLayer::hasNonEmptyChildRenderers().
97180        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Whitespace.
97181        (WebCore::RenderLayerBacking::containsPaintedContent): Call RenderLayer::hasBoxDecorationsOrBackground().
97182        (WebCore::RenderLayerBacking::isDirectlyCompositedImage): Ditto.
97183        * rendering/RenderLayerBacking.h:
97184        (RenderLayerBacking):
97185        * rendering/RenderLayerCompositor.cpp:
97186        (WebCore::RenderLayerCompositor::requiresCompositingForPosition): If the layer has no content to paint,
97187        or visible descendant layers, then don't make it composited.
97188
971892013-01-28  Simon Fraser  <simon.fraser@apple.com>
97190
97191        Avoid doing work at 60fps for tiled layers when not necessary
97192        https://bugs.webkit.org/show_bug.cgi?id=108135
97193
97194        Reviewed by Dean Jackson.
97195
97196        When there were any tiled layers on the page, we would run a CVDisplayLink
97197        to cause GraphicsLayerCA to flush, in order to update tiled layer visible rects.
97198        This is overkill; we should only do this if the tiled layer is affected by
97199        an accelerated animation.
97200        
97201        Fix by tracking whether an ancestor has a running animation when committing
97202        GraphicsLayerCAs.
97203
97204        * platform/graphics/ca/GraphicsLayerCA.cpp:
97205        (WebCore::GraphicsLayerCA::flushCompositingState): Start with an empty CommitState.
97206        (WebCore::GraphicsLayerCA::recursiveCommitChanges): Push CommitState for
97207        each layer, which tracks whether an ancestor has a running transform animation.
97208        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): updateLayerAnimations() renamed.
97209        (WebCore::GraphicsLayerCA::updateAnimations): Renamed from updateLayerAnimations().
97210        (WebCore::GraphicsLayerCA::isRunningTransformAnimation): Look in the map of running
97211        animations for one affecting transform. This list is normally small (one item).
97212        * platform/graphics/ca/GraphicsLayerCA.h:
97213        (WebCore::GraphicsLayerCA::CommitState::CommitState):
97214
972152013-01-28  Simon Fraser  <simon.fraser@apple.com>
97216
97217        compositing/reflections/become-simple-composited-reflection.html pixel result shows bug
97218        https://bugs.webkit.org/show_bug.cgi?id=107174
97219
97220        Reviewed by Dean Jackson.
97221        
97222        When we have a content layer for solid color, we need to update reflection
97223        clones when that color changes.
97224
97225        Tested by the pixel test for compositing/reflections/become-simple-composited-reflection.html.
97226
97227        * platform/graphics/ca/GraphicsLayerCA.cpp:
97228        (WebCore::GraphicsLayerCA::updateContentsColorLayer):
97229
972302013-01-28  Tom Sepez  <tsepez@chromium.org>
97231
97232        [v8] Security feature: JavaScript Bindings hardening
97233        https://bugs.webkit.org/show_bug.cgi?id=106608
97234
97235        The patch adds a check at wrapper creation time to enuse that the
97236        object being wrapped is not already free, to the extent that we know
97237        the information about the type of the object as provided in the IDL.
97238
97239        Reviewed by Adam Barth.
97240
97241        Patch is correct if existing tests pass without new crashes.
97242
97243        * bindings/scripts/CodeGeneratorV8.pm:
97244        (GenerateImplementation):
97245        (GenerateToV8Converters):
97246        (GetNativeTypeForConversions):
97247        (GetGnuVTableRefForInterface):
97248        (GetGnuVTableNameForInterface):
97249        (GetGnuMangledNameForInterface):
97250        (GetGnuVTableOffsetForType):
97251        (GetWinVTableRefForInterface):
97252        (GetWinVTableNameForInterface):
97253        (GetWinMangledNameForInterface):
97254        (GetNamespaceForInterface):
97255        (GetImplementationLacksVTableForInterface):
97256        (GetV8SkipVTableValidationForInterface):
97257        Update code generation to add object validity tests under the control
97258        of the ENABLE_BINDING_INTEGRITY option.
97259        
97260        * Modules/filesystem/DirectoryReader.idl:
97261        * Modules/filesystem/DirectoryReaderSync.idl:
97262        * Modules/filesystem/EntryArray.idl:
97263        * Modules/filesystem/EntryArraySync.idl:
97264        * Modules/filesystem/Metadata.idl:
97265        * Modules/gamepad/Gamepad.idl:
97266        * Modules/gamepad/GamepadList.idl:
97267        * Modules/geolocation/Geoposition.idl:
97268        * Modules/geolocation/PositionError.idl:
97269        * Modules/indexeddb/IDBFactory.idl:
97270        * Modules/indexeddb/IDBIndex.idl:
97271        * Modules/indexeddb/IDBKeyRange.idl:
97272        * Modules/indexeddb/IDBObjectStore.idl:
97273        * Modules/mediastream/RTCStatsElement.idl:
97274        * Modules/mediastream/RTCStatsReport.idl:
97275        * Modules/quota/StorageInfo.idl:
97276        * Modules/speech/SpeechGrammar.idl:
97277        * Modules/speech/SpeechGrammarList.idl:
97278        * Modules/speech/SpeechRecognitionAlternative.idl:
97279        * Modules/speech/SpeechRecognitionResult.idl:
97280        * Modules/speech/SpeechRecognitionResultList.idl:
97281        * Modules/webaudio/AudioBuffer.idl:
97282        * Modules/webaudio/AudioDestinationNode.idl:
97283        * Modules/webaudio/AudioListener.idl:
97284        * Modules/webaudio/AudioSourceNode.idl:
97285        * Modules/webaudio/WaveTable.idl:
97286        * Modules/webdatabase/SQLError.idl:
97287        * Modules/webdatabase/SQLException.idl:
97288        * Modules/webdatabase/SQLResultSet.idl:
97289        * Modules/webdatabase/SQLResultSetRowList.idl:
97290        * Modules/webdatabase/SQLTransaction.idl:
97291        * Modules/webdatabase/SQLTransactionSync.idl:
97292        * bindings/scripts/IDLAttributes.txt:
97293        * css/CSSPrimitiveValue.idl:
97294        * css/CSSRule.idl:
97295        * css/CSSRuleList.idl:
97296        * css/CSSStyleDeclaration.idl:
97297        * css/CSSValue.idl:
97298        * css/CSSValueList.idl:
97299        * css/Counter.idl:
97300        * css/MediaList.idl:
97301        * css/MediaQueryList.idl:
97302        * css/RGBColor.idl:
97303        * css/Rect.idl:
97304        * css/StyleSheetList.idl:
97305        * css/WebKitCSSFilterValue.idl:
97306        * css/WebKitCSSMixFunctionValue.idl:
97307        * css/WebKitCSSTransformValue.idl:
97308        * dom/ClientRect.idl:
97309        * dom/ClientRectList.idl:
97310        * dom/Clipboard.idl:
97311        * dom/DOMCoreException.idl:
97312        * dom/DOMError.idl:
97313        * dom/DOMImplementation.idl:
97314        * dom/DOMNamedFlowCollection.idl:
97315        * dom/DOMStringList.idl:
97316        * dom/DOMStringMap.idl:
97317        * dom/DataTransferItem.idl:
97318        * dom/DataTransferItemList.idl:
97319        * dom/DocumentFragment.idl:
97320        * dom/Element.idl:
97321        * dom/Entity.idl:
97322        * dom/Event.idl:
97323        * dom/EventException.idl:
97324        * dom/MessageChannel.idl:
97325        * dom/MouseEvent.idl:
97326        * dom/MutationObserver.idl:
97327        * dom/MutationRecord.idl:
97328        * dom/NamedNodeMap.idl:
97329        * dom/NodeFilter.idl:
97330        * dom/NodeIterator.idl:
97331        * dom/NodeList.idl:
97332        * dom/Range.idl:
97333        * dom/RangeException.idl:
97334        * dom/Touch.idl:
97335        * dom/TouchList.idl:
97336        * dom/TreeWalker.idl:
97337        * fileapi/FileError.idl:
97338        * fileapi/FileException.idl:
97339        * fileapi/FileList.idl:
97340        * html/DOMFormData.idl:
97341        * html/DOMTokenList.idl:
97342        * html/DOMURL.idl:
97343        * html/HTMLAllCollection.idl:
97344        * html/HTMLCollection.idl:
97345        * html/HTMLDialogElement.idl:
97346        * html/HTMLDivElement.idl:
97347        * html/HTMLDocument.idl:
97348        * html/HTMLElement.idl:
97349        * html/HTMLImageElement.idl:
97350        * html/HTMLInputElement.idl:
97351        * html/HTMLSelectElement.idl:
97352        * html/HTMLSpanElement.idl:
97353        * html/HTMLUnknownElement.idl:
97354        * html/ImageData.idl:
97355        * html/MediaError.idl:
97356        * html/MediaKeyError.idl:
97357        * html/TimeRanges.idl:
97358        * html/ValidityState.idl:
97359        * html/canvas/ArrayBuffer.idl:
97360        * html/canvas/ArrayBufferView.idl:
97361        * html/canvas/CanvasGradient.idl:
97362        * html/canvas/CanvasPattern.idl:
97363        * html/canvas/Float32Array.idl:
97364        * html/canvas/Float64Array.idl:
97365        * html/canvas/Int16Array.idl:
97366        * html/canvas/Int32Array.idl:
97367        * html/canvas/Int8Array.idl:
97368        * html/canvas/Uint16Array.idl:
97369        * html/canvas/Uint32Array.idl:
97370        * html/canvas/Uint8Array.idl:
97371        * html/canvas/Uint8ClampedArray.idl:
97372        * html/canvas/WebGLActiveInfo.idl:
97373        * html/canvas/WebGLShaderPrecisionFormat.idl:
97374        * html/track/TextTrack.idl:
97375        * html/track/TextTrackCue.idl:
97376        * html/track/TextTrackCueList.idl:
97377        * inspector/InjectedScriptHost.idl:
97378        * inspector/InspectorFrontendHost.idl:
97379        * inspector/JavaScriptCallFrame.idl:
97380        * page/Coordinates.idl:
97381        * page/Crypto.idl:
97382        * page/MemoryInfo.idl:
97383        * page/PagePopupController.idl:
97384        * page/PerformanceEntryList.idl:
97385        * page/SpeechInputResult.idl:
97386        * page/SpeechInputResultList.idl:
97387        * page/WebKitPoint.idl:
97388        * svg/SVGAnimatedAngle.idl:
97389        * svg/SVGAnimatedBoolean.idl:
97390        * svg/SVGAnimatedEnumeration.idl:
97391        * svg/SVGAnimatedInteger.idl:
97392        * svg/SVGAnimatedLength.idl:
97393        * svg/SVGAnimatedLengthList.idl:
97394        * svg/SVGAnimatedNumber.idl:
97395        * svg/SVGAnimatedNumberList.idl:
97396        * svg/SVGAnimatedPreserveAspectRatio.idl:
97397        * svg/SVGAnimatedRect.idl:
97398        * svg/SVGAnimatedString.idl:
97399        * svg/SVGAnimatedTransformList.idl:
97400        * svg/SVGColor.idl:
97401        * svg/SVGException.idl:
97402        * svg/SVGPaint.idl:
97403        * svg/SVGPathSeg.idl:
97404        * svg/SVGRenderingIntent.idl:
97405        * svg/SVGUnitTypes.idl:
97406        * svg/SVGZoomAndPan.idl:
97407        * testing/MallocStatistics.idl:
97408        * testing/TypeConversions.idl:
97409        * workers/WorkerLocation.idl:
97410        * xml/DOMParser.idl:
97411        * xml/XMLHttpRequestException.idl:
97412        * xml/XMLSerializer.idl:
97413        * xml/XPathEvaluator.idl:
97414        * xml/XPathException.idl:
97415        * xml/XPathExpression.idl:
97416        * xml/XPathNSResolver.idl:
97417        * xml/XPathResult.idl:
97418        * xml/XSLTProcessor.idl:
97419        Add exceptions to binding integrity checks to IDL.
97420        
974212013-01-28  Alpha Lam  <hclam@chromium.org>
97422
97423        [chromium] Build fix.
97424
97425        Unreviewed build fix. Remove the use of SkMutex from DiscardablePixelRef.
97426
97427        * platform/graphics/chromium/DiscardablePixelRef.cpp:
97428        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
97429        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
97430        * platform/graphics/chromium/DiscardablePixelRef.h:
97431        (DiscardablePixelRef):
97432
974332013-01-28  Benjamin Poulain  <benjamin@webkit.org>
97434
97435        String constructed from Literals should be non-empty
97436        https://bugs.webkit.org/show_bug.cgi?id=108103
97437
97438        Reviewed by Eric Carlson.
97439
97440        Strings from literal should not be constructed from empty strings. Use emptyString()
97441        instead.
97442
97443        * html/HTMLMediaElement.cpp:
97444        (WebCore::HTMLMediaElement::canPlayType):
97445
974462013-01-27  Kentaro Hara  <haraken@chromium.org>
97447
97448        Implement CompositionEvent constructor
97449        https://bugs.webkit.org/show_bug.cgi?id=107919
97450
97451        Reviewed by Sam Weinig.
97452
97453        This patch implements a CompositionEvent constructor under
97454        a DOM4_EVENTS_CONSTRUCTOR flag.
97455
97456        Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
97457
97458        Test: fast/events/constructors/composition-event-constructor.html
97459
97460        * dom/CompositionEvent.cpp:
97461        (WebCore::CompositionEventInit::CompositionEventInit):
97462        (WebCore):
97463        (WebCore::CompositionEvent::CompositionEvent):
97464        * dom/CompositionEvent.h:
97465        (CompositionEventInit):
97466        (WebCore):
97467        (CompositionEvent):
97468        (WebCore::CompositionEvent::create):
97469        (WebCore::CompositionEvent::data):
97470        * dom/CompositionEvent.idl:
97471
974722013-01-28  Pratik Solanki  <psolanki@apple.com>
97473
97474        PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED
97475        https://bugs.webkit.org/show_bug.cgi?id=108101
97476
97477        Reviewed by Benjamin Poulain.
97478
97479        Since iOS does not define __MAC_OS_X_VERSION_MIN_REQUIRED, any usage of
97480        __MAC_OS_X_VERSION_MIN_REQUIRED should be after a PLATFORM(IOS) check.
97481
97482        * platform/mac/WebCoreSystemInterface.h:
97483        * platform/mac/WebCoreSystemInterface.mm:
97484
974852013-01-28  Kalev Lember  <kalevlember@gmail.com>
97486
97487        [GTK] Pass ICU cppflags to libWebCoreSVG.la build
97488        https://bugs.webkit.org/show_bug.cgi?id=108032
97489
97490        Reviewed by Martin Robinson.
97491
97492        Fixes a linking error with new libicu 50 on Fedora rawhide.
97493
97494        * GNUmakefile.am:
97495
974962013-01-28  Min Qin  <qinmin@chromium.org>
97497
97498        adding support for DiscardablePixelRef for caching lazily decoded images
97499        https://bugs.webkit.org/show_bug.cgi?id=106842
97500
97501        Reviewed by Stephen White.
97502
97503        This change allows using discardable memory in the deferred image decoding path.
97504        Fully decoded images are unpinned and stored in ImageDecodingStore.
97505        Partially decoded images are pinned and stored in ImageDecodingStore.
97506        Discardable memory allocation could fail. Fall back to heap allocation in that case.
97507        There is a separate size limit for heap entries and no limit on discardable entries.
97508        New tests are added to ImageDecodingStoreTests
97509
97510        * WebCore.gypi:
97511        * platform/graphics/chromium/DiscardablePixelRef.cpp: Added.
97512          Added implementation of the DiscardablePixelRef object that is backed by discardable memory.
97513          Memory allocated to the DiscardablePixelRef can be purged when it is unlocked.
97514        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
97515        (WebCore):
97516        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
97517        (WebCore::DiscardablePixelRef::~DiscardablePixelRef):
97518        (WebCore::DiscardablePixelRef::allocAndLockDiscardableMemory):
97519        (WebCore::DiscardablePixelRef::onLockPixels):
97520        (WebCore::DiscardablePixelRef::onUnlockPixels):
97521        (WebCore::DiscardablePixelRef::isDiscardable):
97522        * platform/graphics/chromium/DiscardablePixelRef.h: Added.
97523          Added class definition of the DiscardablePixelRef.
97524        (WebCore):
97525        (DiscardablePixelRefAllocator):
97526        (DiscardablePixelRef):
97527        * platform/graphics/chromium/ImageDecodingStore.cpp:
97528          Added new cache replacement strategy for DiscardablePixelRef.
97529        (WebCore::ImageDecodingStore::lockCache):
97530        (WebCore::ImageDecodingStore::overwriteAndLockCache):
97531        (WebCore::ImageDecodingStore::prune):
97532        (WebCore::ImageDecodingStore::insertCacheInternal):
97533        (WebCore::ImageDecodingStore::removeFromCacheInternal):
97534        * platform/graphics/chromium/ImageDecodingStore.h:
97535          Added isDiscardable() calls to check if a cache entry is discardable.
97536        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
97537        (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
97538        (WebCore::ImageDecodingStore::CacheEntry::isDiscardable):
97539        (CacheEntry):
97540        * platform/graphics/chromium/ImageFrameGenerator.cpp:
97541          Added some code to pass DiscardableMemoryAllocator to the image decoder.
97542        (WebCore::ImageFrameGenerator::tryToScale):
97543        (WebCore::ImageFrameGenerator::decode):
97544        * platform/graphics/chromium/ImageFrameGenerator.h:
97545          Added a new member variable of type DiscardableMemoryAllocator.
97546        (ImageFrameGenerator):
97547        * platform/image-decoders/ImageDecoder.h:
97548          Added methods to pass Allocator to ImageFrame.
97549        (ImageFrame):
97550        (WebCore::ImageFrame::setMemoryAllocator):
97551        (WebCore::ImageFrame::allocator):
97552        (ImageDecoder):
97553        (WebCore::ImageDecoder::setMemoryAllocator):
97554        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
97555          Added code to allocate pixel memory using the allocator passed from the caller.
97556        (WebCore::ImageFrame::ImageFrame):
97557        (WebCore::ImageFrame::operator=):
97558        (WebCore::ImageFrame::setSize):
97559
975602013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
97561
97562        Unreviewed, rolling out r140869.
97563        http://trac.webkit.org/changeset/140869
97564        https://bugs.webkit.org/show_bug.cgi?id=108120
97565
97566        "Crashes on http://en.wikipedia.org/wiki/Wikipedia" (Requested
97567        by tonyg-cr on #webkit).
97568
97569        * page/FrameView.cpp:
97570        (WebCore::FrameView::visibleContentsResized):
97571        * platform/ScrollView.cpp:
97572        (WebCore::ScrollView::setFixedLayoutSize):
97573        (WebCore::ScrollView::setUseFixedLayout):
97574
975752013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
97576
97577        Unreviewed, rolling out r140934, r140935, and r140937.
97578        http://trac.webkit.org/changeset/140934
97579        http://trac.webkit.org/changeset/140935
97580        http://trac.webkit.org/changeset/140937
97581        https://bugs.webkit.org/show_bug.cgi?id=108117
97582
97583        Re-land some speculative rollouts - see wkbug.com/108048 for
97584        context (Requested by jsbell on #webkit).
97585
97586        * CMakeLists.txt:
97587        * DerivedSources.make:
97588        * GNUmakefile.list.am:
97589        * Modules/indexeddb/IDBCallbacks.h:
97590        (IDBCallbacks):
97591        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
97592        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
97593        * Modules/indexeddb/IDBCursorBackendImpl.h:
97594        (WebCore::IDBCursorBackendImpl::create):
97595        (IDBCursorBackendImpl):
97596        * Modules/indexeddb/IDBDatabase.cpp:
97597        (WebCore::IDBDatabase::onVersionChange):
97598        * Modules/indexeddb/IDBDatabase.h:
97599        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
97600        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
97601        (WebCore::OpenCursorOperation::perform):
97602        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
97603        * Modules/indexeddb/IDBFactory.cpp:
97604        (WebCore::IDBFactory::openInternal):
97605        (WebCore::IDBFactory::deleteDatabase):
97606        * Modules/indexeddb/IDBFactory.h:
97607        (WebCore):
97608        (IDBFactory):
97609        * Modules/indexeddb/IDBFactory.idl:
97610        * Modules/indexeddb/IDBObjectStore.cpp:
97611        (WebCore::IDBObjectStore::createIndex):
97612        (WebCore::IDBObjectStore::openCursor):
97613        * Modules/indexeddb/IDBObjectStore.h:
97614        (WebCore::IDBObjectStore::openCursor):
97615        (IDBObjectStore):
97616        * Modules/indexeddb/IDBOpenDBRequest.cpp:
97617        (WebCore::IDBOpenDBRequest::create):
97618        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
97619        (WebCore::IDBOpenDBRequest::onBlocked):
97620        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
97621        (WebCore::IDBOpenDBRequest::dispatchEvent):
97622        * Modules/indexeddb/IDBOpenDBRequest.h:
97623        (IDBOpenDBRequest):
97624        * Modules/indexeddb/IDBRequest.cpp:
97625        (WebCore::IDBRequest::create):
97626        (WebCore::IDBRequest::IDBRequest):
97627        * Modules/indexeddb/IDBRequest.h:
97628        (IDBRequest):
97629        (WebCore::IDBRequest::taskType):
97630        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
97631        (WebCore::IDBTransactionBackendImpl::scheduleTask):
97632        * Modules/indexeddb/IDBTransactionBackendImpl.h:
97633        (WebCore::IDBTransactionBackendImpl::scheduleTask):
97634        (IDBTransactionBackendImpl):
97635        * Modules/indexeddb/IDBTransactionBackendInterface.h:
97636        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
97637        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
97638        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
97639        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
97640        (WebCore::IDBVersionChangeEvent::create):
97641        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
97642        * Modules/indexeddb/IDBVersionChangeEvent.h:
97643        (IDBVersionChangeEvent):
97644        (WebCore::IDBVersionChangeEvent::oldVersion):
97645        (WebCore::IDBVersionChangeEvent::newVersion):
97646        * Modules/indexeddb/IDBVersionChangeEvent.idl:
97647        * Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
97648        * Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
97649        * Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
97650        * WebCore.gypi:
97651        * WebCore.xcodeproj/project.pbxproj:
97652        * dom/EventNames.in:
97653        * dom/EventTarget.h:
97654        (WebCore):
97655        * dom/EventTargetFactory.in:
97656
976572013-01-28  Joseph Pecoraro  <pecoraro@apple.com>
97658
97659        Unreviewed Mac build fix. Add an export for a function that may be
97660        accessed outside of WebCore (RenderLayer::needsCompositedScrolling).
97661
97662        * WebCore.exp.in:
97663
976642013-01-28  Julien Chaffraix  <jchaffraix@webkit.org>
97665
97666        Crash inside RenderBlock::layoutRunsAndFloatsInRange in the widow code
97667        https://bugs.webkit.org/show_bug.cgi?id=108084
97668
97669        Reviewed by Dean Jackson.
97670
97671        This is a blind fix based on the code and Chromium's stack-traces.
97672
97673        Unfortunately no new test as I couldn't get a local reproduction.
97674
97675        * rendering/RenderBlockLineLayout.cpp:
97676        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
97677        Added a missing NULL-check: the previous 'while' finish if |lineBox|
97678        is NULL and we don't want to crash in this case.
97679
976802013-01-28  Tony Chang  <tony@chromium.org>
97681
97682        "clang: warning: not using the clang compiler for C++ inputs" due to hard-coding of /usr/bin/clang in WebCore.gyp
97683        https://bugs.webkit.org/show_bug.cgi?id=108089
97684
97685        Reviewed by Ojan Vafai.
97686
97687        Use gcc since older versions of clang (with Xcode 3.2) warn that they are going to use gcc anyway.
97688        These warnings are showing up on the main Chromium waterfall too:
97689        http://build.chromium.org/p/chromium/builders/Mac/builds/19113/steps/compile/logs/stdio
97690
97691        No new tests, this is a build change.
97692
97693        * WebCore.gyp/WebCore.gyp:
97694
976952013-01-28  Elliott Sprehn  <esprehn@chromium.org>
97696
97697        Move hasAuthorShadowRoot to Element
97698        https://bugs.webkit.org/show_bug.cgi?id=108071
97699
97700        Reviewed by Dimitri Glazkov.
97701
97702        Move hasAuthorShadowRoot to Element and get rid of unneccesary booleans
97703        in HTMLProgressElement and HTMLMeterElement. Also get rid of
97704        ShadowRoot::isAccessible since it obfuscates what's actually happening
97705        inside of Element::shadowRoot().
97706
97707        No new tests, just refactoring.
97708
97709        * dom/Element.cpp:
97710        (WebCore::Element::shadowRoot):
97711        (WebCore::Element::hasAuthorShadowRoot):
97712        * dom/Element.h:
97713        (Element):
97714        * dom/ShadowRoot.h:
97715        * html/HTMLMeterElement.cpp:
97716        (WebCore::HTMLMeterElement::HTMLMeterElement):
97717        * html/HTMLMeterElement.h:
97718        (HTMLMeterElement):
97719        * html/HTMLProgressElement.cpp:
97720        (WebCore::HTMLProgressElement::HTMLProgressElement):
97721        * html/HTMLProgressElement.h:
97722        (HTMLProgressElement):
97723
977242013-01-28  Elliott Sprehn  <esprehn@chromium.org>
97725
97726        Move ensureUserAgentShadowRoot to Element
97727        https://bugs.webkit.org/show_bug.cgi?id=108070
97728
97729        Reviewed by Dimitri Glazkov.
97730
97731        Move ensureUserAgentShadowRoot to Element where the other
97732        methods related to shadow roots are and get rid of the
97733        unnecessarily specific cast to HTMLElement.
97734
97735        No new tests, just refactoring.
97736
97737        * dom/Element.cpp:
97738        (WebCore::Element::ensureUserAgentShadowRoot): Moved from FormAssociatedElement.
97739        * dom/Element.h:
97740        (Element):
97741        * html/FormAssociatedElement.cpp:
97742        * html/FormAssociatedElement.h:
97743        (FormAssociatedElement):
97744
977452013-01-28  Ian Vollick  <vollick@chromium.org>
97746
97747        Promote composited-scrolling layers to stacking containers.
97748        https://bugs.webkit.org/show_bug.cgi?id=106142
97749
97750        Reviewed by Simon Fraser.
97751
97752        With this patch, RenderLayers that use composited scrolling are
97753        treated as stacking contexts. Since isStackingContainer now depends on
97754        the value of m_needsCompositedScrolling, special care needed to be
97755        taken to ensure that the value of isStackingContainer is not used when
97756        updating m_needsCompositedScrolling. In particular, the code for
97757        rebuilding the layer lists needed to be generalized so that we could
97758        build the layer lists using the value of isStackingContext rather than
97759        isStackingContainer when building the layer lists used to determine if
97760        the descendants are contiguous in stacking order. Also, updating
97761        m_needsCompositedScrolling can now affect stacking container status
97762        and can therefore dirty layer lists.
97763
97764        Test: compositing/overflow/composited-scrolling-creates-a-stacking-container.html
97765
97766        * rendering/RenderLayer.cpp:
97767        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
97768          Modified to use layer lists built based on isStackingContext rather
97769          than isStackingContainer.
97770        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
97771          This function can now affect stacking container status and layer
97772          lists.
97773        (WebCore::RenderLayer::rebuildZOrderLists):
97774          Refactored to generalize layer list building.
97775        (WebCore::RenderLayer::collectLayers):
97776          This function can now stop at either stacking containers or
97777          contexts.
97778        (WebCore::RenderLayer::updateLayerListsIfNeeded):
97779          Layer lists may need to be built a 2nd time if we opt into
97780          composited scrolling.
97781        * rendering/RenderLayer.h:
97782        (RenderLayer):
97783        (WebCore::RenderLayer::isStackingContainer):
97784          Returns true if we use composited scrolling.
97785
977862013-01-28  Max Vujovic  <mvujovic@adobe.com>
97787
97788        [CSS Shaders] Parse @-webkit-filter
97789        https://bugs.webkit.org/show_bug.cgi?id=106837
97790
97791        Reviewed by Dean Jackson.
97792
97793        The new CSS Custom Filters syntax includes an @filter rule:
97794        @filter IDENT { <custom-filter-description> }
97795
97796        IDENT is the filter name. For example:
97797        @filter my-filter { ... }
97798
97799        <custom-filter-description> is a set of CSS properties, which are still under discussion in
97800        the CSSWG.
97801
97802        This patch adds parsing and JS bindings for the prefixed at-rule. It does not add parsing
97803        for any of the at-rule's internal properties.
97804
97805        Spec: https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#the-atfilter-rule
97806
97807        Tests: css3/filters/custom/custom-filter-parsing-at-rule-invalid.html
97808               css3/filters/custom/custom-filter-parsing-at-rule-valid.html
97809
97810        * CMakeLists.txt:
97811        * DerivedSources.cpp:
97812        * DerivedSources.make:
97813        * DerivedSources.pri:
97814        * GNUmakefile.list.am:
97815        * Target.pri:
97816        * WebCore.gypi:
97817        * WebCore.xcodeproj/project.pbxproj:
97818        * bindings/js/JSCSSRuleCustom.cpp:
97819        (WebCore::toJS):
97820        * bindings/objc/DOMCSS.mm:
97821        (kitClass):
97822        * bindings/v8/custom/V8CSSRuleCustom.cpp:
97823        (WebCore::wrap):
97824        * css/CSSGrammar.y.in:
97825        * css/CSSParser.cpp:
97826        (WebCore::CSSParser::createFilterRule):
97827        (WebCore::CSSParser::detectAtToken):
97828        * css/CSSParser.h:
97829        * css/CSSPropertySourceData.h:
97830        * css/CSSRule.h:
97831        * css/CSSRule.idl:
97832            Only contains a CSSStyleDeclaration "style" property, like the other at-rules that are
97833            supposed to contain properties (e.g. CSSStyleRule, CSSFontFaceRule, CSSPageRule).
97834            Eventually, when it's specified, we should expose the filter name as well.
97835            Other at-rules IDL Spec: http://www.w3.org/TR/DOM-Level-2-Style/idl-definitions.html
97836        * css/StyleRule.cpp:
97837        (WebCore::StyleRuleBase::reportMemoryUsage):
97838        (WebCore::StyleRuleBase::destroy):
97839        (WebCore::StyleRuleBase::copy):
97840        (WebCore::StyleRuleBase::createCSSOMWrapper):
97841        (WebCore::StyleRuleFilter::StyleRuleFilter):
97842        (WebCore::StyleRuleFilter::~StyleRuleFilter):
97843        (WebCore::StyleRuleFilter::mutableProperties):
97844        (WebCore::StyleRuleFilter::setProperties):
97845        (WebCore::StyleRuleFilter::reportDescendantMemoryUsage):
97846        * css/StyleRule.h:
97847        (StyleRuleBase):
97848        (WebCore::StyleRuleBase::isFilterRule):
97849        (StyleRuleFilter):
97850        (WebCore::StyleRuleFilter::create):
97851        (WebCore::StyleRuleFilter::filterName):
97852        (WebCore::StyleRuleFilter::properties):
97853        (WebCore::StyleRuleFilter::copy):
97854        * css/StyleSheetContents.cpp:
97855        (WebCore::childRulesHaveFailedOrCanceledSubresources):
97856        * css/WebKitCSSFilterRule.cpp: Added.
97857            WebKitCSSFilterRule is implemented similar to CSSFontFaceRule.
97858        (WebCore::WebKitCSSFilterRule::WebKitCSSFilterRule):
97859        (WebCore::WebKitCSSFilterRule::~WebKitCSSFilterRule):
97860        (WebCore::WebKitCSSFilterRule::style):
97861        (WebCore::WebKitCSSFilterRule::cssText):
97862            The CSS text implementation for WebKitCSSFilterRule is almost the same as
97863            CSSFontFaceRule. WebKitCSSFilterRule additionally needs to output the filter name in its
97864            syntax (e.g. @-webkit-filter my-filter { }).
97865        (WebCore::WebKitCSSFilterRule::reattach):
97866        (WebCore::WebKitCSSFilterRule::reportMemoryUsage):
97867        * css/WebKitCSSFilterRule.h: Added.
97868        (WebKitCSSFilterRule):
97869        (WebCore::WebKitCSSFilterRule::create):
97870        * css/WebKitCSSFilterRule.idl: Added.
97871
978722013-01-28  Anders Carlsson  <andersca@apple.com>
97873
97874        Add StorageStrategy member functions to WebKit2
97875        https://bugs.webkit.org/show_bug.cgi?id=108105
97876
97877        Reviewed by Tim Horton.
97878
97879        StorageStrategy::sessionStorageNamespace should be virtual, not static...
97880
97881        * WebCore.exp.in:
97882        * storage/StorageStrategy.h:
97883        (StorageStrategy):
97884
978852013-01-28  Uday Kiran  <udaykiran@motorola.com>
97886
97887        getComputedStyle returns "left" instead of "none" for "float" on abspos elements
97888        https://bugs.webkit.org/show_bug.cgi?id=105836
97889
97890        Reviewed by Tony Chang.
97891
97892        If 'position' has the value absolute, page or fixed, and the value of float is
97893        left or right, the box is absolutely positioned and the computed value of float is none.
97894        http://www.w3.org/TR/css3-positioning/#dis-pos-flo
97895        This matches behavior of Firefox 18, Opera 12 and IE9.
97896
97897        Test: fast/css/position-absolute-float.html
97898
97899        * css/CSSComputedStyleDeclaration.cpp:
97900        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
97901
979022013-01-28  Tony Gentilcore  <tonyg@chromium.org>
97903
97904        Don't use threaded HTML parser for data: URLs
97905        https://bugs.webkit.org/show_bug.cgi?id=108096
97906
97907        Reviewed by Eric Seidel.
97908
97909        data: URLs are currently loaded synchronously. Using the main thread parser for them preserves this behavior.
97910        This fixes fast/dom/HTMLDocument/document-open-return-value.html and probably others.
97911
97912        No new tests because covered by existing tests.
97913
97914        * html/parser/HTMLParserOptions.cpp:
97915        (WebCore::HTMLParserOptions::HTMLParserOptions):
97916
979172013-01-28  Tony Gentilcore  <tonyg@chromium.org>
97918
97919        Don't use the threaded HTML parser for javascript: URLs
97920        https://bugs.webkit.org/show_bug.cgi?id=107975
97921
97922        Reviewed by Adam Barth.
97923
97924        Several layout tests depend on javascript: URL iframes loading synchronously including fast/loader/javascript-url-encoding.html.
97925        This patch avoids using the threaded parser for those URLs so they will continue to be synchronous.
97926
97927        No new tests because covered by existing tests.
97928
97929        * html/parser/HTMLParserOptions.cpp:
97930        (WebCore::HTMLParserOptions::HTMLParserOptions):
97931
979322013-01-27  Sam Weinig  <sam@webkit.org>
97933
97934        SVGPathStringSource should not up-convert 8-bit strings to UTF-16
97935        https://bugs.webkit.org/show_bug.cgi?id=108050
97936
97937        Reviewed by Anders Carlsson.
97938
97939        Should save around ~400k on Membuster3.
97940
97941        * svg/SVGParserUtilities.cpp:
97942        (WebCore::parseNumber):
97943        (WebCore::genericParseArcFlag):
97944        (WebCore::parseArcFlag):
97945        * svg/SVGParserUtilities.h:
97946        Add LChar variants of parseNumber and parseArcFlag.
97947
97948        * svg/SVGPathSource.h:
97949        (WebCore):
97950        Move forward declaration of FloatPoint here, where it belongs.
97951
97952        * svg/SVGPathStringSource.cpp:
97953        (WebCore::parseFloatPoint):
97954        (WebCore::parseFloatPoint2):
97955        (WebCore::parseFloatPoint3):
97956        Add helpers for parsing float points.
97957
97958        (WebCore::SVGPathStringSource::SVGPathStringSource):
97959        (WebCore::SVGPathStringSource::hasMoreData):
97960        (WebCore::SVGPathStringSource::moveToNextToken):
97961        (WebCore::parseSVGSegmentTypeHelper):
97962        (WebCore::SVGPathStringSource::parseSVGSegmentType):
97963        (WebCore::nextCommandHelper):
97964        (WebCore::SVGPathStringSource::nextCommand):
97965        (WebCore::SVGPathStringSource::parseMoveToSegment):
97966        (WebCore::SVGPathStringSource::parseLineToSegment):
97967        (WebCore::SVGPathStringSource::parseLineToHorizontalSegment):
97968        (WebCore::SVGPathStringSource::parseLineToVerticalSegment):
97969        (WebCore::SVGPathStringSource::parseCurveToCubicSegment):
97970        (WebCore::SVGPathStringSource::parseCurveToCubicSmoothSegment):
97971        (WebCore::SVGPathStringSource::parseCurveToQuadraticSegment):
97972        (WebCore::SVGPathStringSource::parseCurveToQuadraticSmoothSegment):
97973        (WebCore::parseArcToSegmentHelper):
97974        (WebCore::SVGPathStringSource::parseArcToSegment):
97975        * svg/SVGPathStringSource.h:
97976        (SVGPathStringSource):
97977        Make 8-bit aware.
97978
979792013-01-28  Simon Fraser  <simon.fraser@apple.com>
97980
97981        Repaint issues in background tabs after r138858
97982        https://bugs.webkit.org/show_bug.cgi?id=108092
97983        <rdar://problem/13076430>
97984
97985        Reviewed by Tim Horton.
97986
97987        In r138858, we unparented all tiles in the tile caches of background tabs.
97988        That broke repaints in background tabs; when bringing that tab back to the
97989        foreground, we would call -setNeedsDisplayInRect:, and then reparent the tiles
97990        on a zero-delay timer. Those repaints would then be flipped (possibly because
97991        CA can't look up the layer tree to check for flipped geometry).
97992        
97993        Fix by revalidating tiles (which reparents the tiles) at the time we're told
97994        we're moving into the window, which happens before repaints are flushed.
97995
97996        * platform/graphics/ca/mac/TileCache.mm:
97997        (WebCore::TileCache::setIsInWindow):
97998
979992013-01-28  Adam Barth  <abarth@webkit.org>
98000
98001        Remove webkitNotifications.createHTMLNotification
98002        https://bugs.webkit.org/show_bug.cgi?id=107598
98003
98004        Reviewed by Benjamin Poulain.
98005
98006        As discussed in http://lists.webkit.org/pipermail/webkit-dev/2012-February/019354.html,
98007        we've been slowly deprecating HTML notificiations for about a year.
98008        FeatureObserver says that HTML notifications are used by 0.0008% of web
98009        pages, which means we should be able to remove them without causing too
98010        much trouble.
98011
98012        * Configurations/FeatureDefines.xcconfig:
98013        * Modules/notifications/Notification.cpp:
98014        (WebCore):
98015        (WebCore::Notification::Notification):
98016        * Modules/notifications/Notification.h:
98017        (Notification):
98018        * Modules/notifications/NotificationCenter.h:
98019        (NotificationCenter):
98020        * Modules/notifications/NotificationCenter.idl:
98021
980222013-01-28  Bear Travis  <betravis@adobe.com>
98023
98024        [CSS Exclusions] Refactor ExclusionShapeInsideInfo to more general ExclusionShapeInfo
98025        https://bugs.webkit.org/show_bug.cgi?id=100766
98026
98027        Reviewed by Dirk Schulze.
98028
98029        Refactoring, covered by existing tests.
98030
98031        Factoring out code common to ExclusionShapeInsideInfo and ExclusionShapeOutsideInfo
98032        into common classes in ExclusionShapeInfo.h. Since the ExclusionShapeInsideInfo and
98033        ExclusionShapeOutsideInfo share almost all of their code, save the RenderObject type
98034        they work with and the specific shapeInside/Outside methods they call on RenderStyle
98035        and ExclusionShape, the code has been templated. The code responsible for maintaining
98036        global maps has also been factored out into a MappedInfo class.
98037
98038        * CMakeLists.txt: Adding ExclusionShapeInfo files.
98039        * GNUmakefile.list.am: Ditto.
98040        * Target.pri: Ditto.
98041        * WebCore.gypi: Ditto.
98042        * WebCore.vcproj/WebCore.vcproj: Ditto.
98043        * WebCore.xcodeproj/project.pbxproj: Ditto.
98044        * rendering/ExclusionShapeInfo.cpp: Added.
98045        (WebCore::::computedShape): Determine the shape based on the current logical
98046        dimensions. Call this method rather than accessing m_shape directly.
98047        * rendering/ExclusionShapeInfo.h: Added.
98048        (MappedInfo): Helper class that maintains a global info map.
98049        (WebCore::MappedInfo::ensureInfo): Look up the info for a key and add it if not present.
98050        (WebCore::MappedInfo::removeInfo): Remove the info associated with a key.
98051        (WebCore::MappedInfo::info): Look up the info associated with a key.
98052        (WebCore::MappedInfo::infoMap): The map used to store key/info pairs.
98053        (ExclusionShapeInfo): A common parent class for ExclusionShapeInside/OutsideInfos.
98054        The methods were factored out of the code common to ExclusionShapeInside/OutsideInfo.
98055        (WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Destructor.
98056        (WebCore::ExclusionShapeInfo::setShapeSize): Sets the shape's logical size.
98057        (WebCore::ExclusionShapeInfo::shapeLogicalTop/Bottom/Left/Right/Width/Height):
98058        Returns the shape's logical dimensions.
98059        (WebCore::ExclusionShapeInfo::dirtyShapeSize): Mark the shape for recomputation.
98060        (WebCore::ExclusionShapeInfo::owner): The renderer to which this info belongs.
98061        (WebCore::ExclusionShapeInfo::ExclusionShapeInfo): Constructor.
98062        (WebCore::ExclusionShapeInfo::floatLogicalTopToLayoutUnit/floatLogicalBottomToLayoutUnit):
98063        Helper methods that round float units from ExclusionShapes to LayoutUnits for layout.
98064        * rendering/ExclusionShapeInsideInfo.cpp:
98065        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Modified to use
98066        computedShape() rather than m_shape.
98067        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Ditto.
98068        * rendering/ExclusionShapeInsideInfo.h:
98069        (WebCore::ExclusionShapeInsideInfo::createInfo): Renamed to match MappedInfo.
98070        (WebCore::ExclusionShapeInsideInfo::isEnabledFor): Renamed to match shorter naming.
98071        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Modified to use
98072        computedShape().
98073        * rendering/ExclusionShapeOutsideInfo.cpp:
98074        (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Renamed to match shorter naming.
98075        * rendering/ExclusionShapeOutsideInfo.h:
98076        (WebCore::ExclusionShapeOutsideInfo::createInfo): Renamed to match MappedInfo.
98077        (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo): Constructor.
98078        * rendering/RenderBlock.cpp:
98079        (WebCore::RenderBlock::willBeDestroyed): Use shortened MappedInfo names for looking
98080        up infos.
98081        (WebCore::RenderBlock::exclusionShapeInsideInfo): Ditto.
98082        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Ditto.
98083        (WebCore::RenderBlock::computeExclusionShapeSize): Ditto.
98084        * rendering/RenderBox.cpp:
98085        (WebCore::RenderBox::willBeDestroyed): Ditto.
98086        (WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Ditto.
98087        * rendering/RenderBox.h:
98088        (WebCore):
98089        (WebCore::RenderBox::exclusionShapeOutsideInfo): Ditto.
98090
980912013-01-28  Stephen Chenney  <schenney@chromium.org>
98092
98093        SVGViewSpec fails when corresponding element has been removed
98094        https://bugs.webkit.org/show_bug.cgi?id=106957
98095
98096        Reviewed by Dirk Schulze.
98097
98098        When JS holds an SVGViewSpec object while deleting the object that
98099        defines the spec (an SVGSVGElement, or one of a few others) the
98100        pointer to the target is cleared in the SVGViewSpec but the methods
98101        that serve JS queries do not check and try to access the now null
98102        target. This patch fixes the prooblem, returning null when the
98103        corresponding object has been deleted.
98104
98105        Also removing SVGViewSpec::setPreserveAspectRatioString, which is no
98106        longer used by any callers.
98107
98108        Test: svg/dom/SVGViewSpec-invalid-ref-crash.html
98109
98110        * svg/SVGViewSpec.cpp:
98111        (WebCore):
98112        (WebCore::SVGViewSpec::viewTarget): Check for null target and return null.
98113        (WebCore::SVGViewSpec::transform): Check for null target and return null..
98114        (WebCore::SVGViewSpec::viewBoxAnimated): Check for null target and return null.
98115        (WebCore::SVGViewSpec::preserveAspectRatioAnimated): Check for null target and return null.
98116        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): ASSERT non-null target.
98117        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): ASSERT non-null target.
98118        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): ASSERT non-null target.
98119        * svg/SVGViewSpec.h:
98120        (SVGViewSpec): Move some methods out of the header and into the implementation file.
98121
98122        * svg/SVGViewSpec.cpp:
98123        (WebCore):
98124        (WebCore::SVGViewSpec::transform):
98125        (WebCore::SVGViewSpec::viewBoxAnimated):
98126        (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
98127        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
98128        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
98129        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
98130        * svg/SVGViewSpec.h:
98131        (SVGViewSpec):
98132
981332013-01-28  James Craig  <james@cookiecrook.com>
98134
98135        HTML5 promotes DL from specific 'definition list' to superset 'description list'; accessibility strings and accessors should be updated to match.
98136        https://bugs.webkit.org/show_bug.cgi?id=107650
98137
98138        Reviewed by Chris Fleizach.
98139
98140        Updating accessibility strings and accessors for DL/DT/DD; new one for [role="definition"] (previously it reused the role/desc for DD).
98141
98142        Test: platform/mac/accessibility/definition-list-term.html:
98143        Test: accessibility/lists.html
98144
98145        * English.lproj/Localizable.strings:
98146        * accessibility/AccessibilityList.cpp:
98147        (WebCore::AccessibilityList::isDescriptionList):
98148        * accessibility/AccessibilityList.h:
98149        (AccessibilityList):
98150        * accessibility/AccessibilityObject.cpp:
98151        (WebCore::createARIARoleMap):
98152        * accessibility/AccessibilityObject.h:
98153        * accessibility/AccessibilityRenderObject.cpp:
98154        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
98155        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
98156        (createAccessibilityRoleMap):
98157        (-[WebAccessibilityObjectWrapper subrole]):
98158        (-[WebAccessibilityObjectWrapper roleDescription]):
98159        * platform/LocalizedStrings.cpp:
98160        (WebCore::AXDefinitionText):
98161        (WebCore::AXDescriptionListTermText):
98162        (WebCore):
98163        (WebCore::AXDescriptionListDetailText):
98164        * platform/LocalizedStrings.h:
98165        (WebCore):
98166        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
98167        (WebCore::AXDefinitionText):
98168        (WebCore::AXDescriptionListDetailText):
98169        (WebCore):
98170        (WebCore::AXDescriptionListTermText):
98171        * platform/efl/LocalizedStringsEfl.cpp:
98172        (WebCore::AXDefinitionText):
98173        (WebCore):
98174        (WebCore::AXDescriptionListTermText):
98175        (WebCore::AXDescriptionListDetailText):
98176        * platform/gtk/LocalizedStringsGtk.cpp:
98177        (WebCore::AXDefinitionText):
98178        (WebCore):
98179        (WebCore::AXDescriptionListTermText):
98180        (WebCore::AXDescriptionListDetailText):
98181        * platform/qt/LocalizedStringsQt.cpp:
98182        (WebCore::AXDefinitionText):
98183        (WebCore::AXDescriptionListTermText):
98184        (WebCore):
98185        (WebCore::AXDescriptionListDetailText):
98186
981872013-01-28  Vladislav Kaznacheev  <kaznacheev@chromium.org>
98188
98189        Web Inspector: Inherit SidebarPane from View.
98190        https://bugs.webkit.org/show_bug.cgi?id=108075
98191
98192        Reviewed by Pavel Feldman.
98193
98194        Inherited WebInspector.SidebarPane from WebInspector.View to streamlines the code and
98195        simplify further enhancements to sidebar panes. Got rid of obsolete onattach calls.
98196
98197        No new tests.
98198
98199        * inspector/front-end/AuditResultView.js:
98200        (WebInspector.AuditResultView):
98201        * inspector/front-end/ElementsPanel.js:
98202        (WebInspector.ElementsPanel):
98203        (WebInspector.ElementsPanel.prototype.wasShown):
98204        (WebInspector.ElementsPanel.prototype.willHide):
98205        * inspector/front-end/ExtensionServer.js:
98206        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
98207        * inspector/front-end/ScriptsPanel.js:
98208        (WebInspector.ScriptsPanel):
98209        (WebInspector.ScriptsPanel.prototype.wasShown):
98210        * inspector/front-end/SidebarPane.js:
98211        (WebInspector.SidebarPane):
98212        * inspector/front-end/WatchExpressionsSidebarPane.js:
98213        (WebInspector.WatchExpressionsSidebarPane.prototype._refreshExpressionsIfNeeded):
98214
982152013-01-28  Martin Robinson  <mrobinson@igalia.com>
98216
98217        [Freetype] Synthetic bold not applied to fallback fonts properly
98218        https://bugs.webkit.org/show_bug.cgi?id=107733
98219
98220        Reviewed by Gustavo Noronha Silva.
98221
98222        No new tests. This is covered by existing pixel tests.
98223
98224        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
98225        (WebCore::FontPlatformData::FontPlatformData): When we detect a situation in which
98226        we are a bold font, but the Fontconfig pattern does not describe the font as
98227        bold, we should activate synthetic bolding.
98228
982292013-01-28  Vsevolod Vlasov  <vsevik@chromium.org>
98230
98231        Web Inspector: [Regression] Search all sources should not search across service projects.
98232        https://bugs.webkit.org/show_bug.cgi?id=108068
98233
98234        Reviewed by Pavel Feldman.
98235
98236        * inspector/front-end/ScriptsSearchScope.js:
98237        (WebInspector.ScriptsSearchScope):
98238        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
98239
982402013-01-28  Pavel Feldman  <pfeldman@chromium.org>
98241
98242        Web Inspector: SourceURL and SourceMappingURL together in evalled code
98243        https://bugs.webkit.org/show_bug.cgi?id=107939
98244
98245        Reviewed by Vsevolod Vlasov.
98246
98247        Resolve map's sources URLs wrt script URL in case sourceMap is defined as data:.
98248
98249        * inspector/front-end/CompilerScriptMapping.js:
98250        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
98251        * inspector/front-end/ParsedURL.js:
98252        (WebInspector.ParsedURL.completeURL):
98253        * inspector/front-end/SourceMap.js:
98254        (WebInspector.SourceMap.prototype._parseMap):
98255
982562013-01-28  Andrey Adaikin  <aandrey@chromium.org>
98257
98258        Web Inspector: [Canvas] refactoring in CanvasAgent to reduce code dups
98259        https://bugs.webkit.org/show_bug.cgi?id=108064
98260
98261        Reviewed by Pavel Feldman.
98262
98263        Introduce private methods injectedScriptCanvasModule() in InspectorCanvasAgent to reduce much of code duplication.
98264        Drive-by: in InspectorPageAgent.assertFrame convert "String" argument to "const String&".
98265
98266        * inspector/InspectorCanvasAgent.cpp:
98267        (WebCore::InspectorCanvasAgent::dropTraceLog):
98268        (WebCore::InspectorCanvasAgent::captureFrame):
98269        (WebCore::InspectorCanvasAgent::startCapturing):
98270        (WebCore::InspectorCanvasAgent::stopCapturing):
98271        (WebCore::InspectorCanvasAgent::getTraceLog):
98272        (WebCore::InspectorCanvasAgent::replayTraceLog):
98273        (WebCore::InspectorCanvasAgent::getResourceInfo):
98274        (WebCore::InspectorCanvasAgent::getResourceState):
98275        (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
98276        (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
98277        (WebCore::InspectorCanvasAgent::injectedScriptCanvasModule):
98278        (WebCore):
98279        (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
98280        * inspector/InspectorCanvasAgent.h:
98281        (InspectorCanvasAgent):
98282        * inspector/InspectorPageAgent.cpp:
98283        (WebCore::InspectorPageAgent::assertFrame):
98284        (WebCore::InspectorPageAgent::assertDocumentLoader):
98285        * inspector/InspectorPageAgent.h:
98286        (InspectorPageAgent):
98287
982882013-01-28  Kihong Kwon  <kihong.kwon@samsung.com>
98289
98290        Replace the type of Proximity's supplementName for char*
98291        https://bugs.webkit.org/show_bug.cgi?id=108049
98292
98293        Reviewed by Benjamin Poulain.
98294
98295        There are some changes for supplementName by Bug 107535.
98296        It makes build break when PROXIMITY_EVENT feature is enabled.
98297        Therefore ProximityController need to change the type of supplementName for char* also.
98298
98299        No new tests. Functionality is not changed.
98300
98301        * Modules/proximity/DeviceProximityController.cpp:
98302        (WebCore::DeviceProximityController::supplementName):
98303        * Modules/proximity/DeviceProximityController.h:
98304        (DeviceProximityController):
98305
983062013-01-28  Keishi Hattori  <keishi@webkit.org>
98307
98308        [REGRESSION] Calendar Picker focus ring is gone
98309        https://bugs.webkit.org/show_bug.cgi?id=108055
98310
98311        Reviewed by Kent Tamura.
98312
98313        The focus ring wasn't visible because -webkit-focus-ring-color value
98314        only works for outline property in strict mode. Using fixed color
98315        instead.
98316
98317        No new tests. Can't reproduce in layout test because mock popup writes a
98318        script tag in front of the doctype.
98319
98320        * Resources/pagepopups/chromium/calendarPickerChromium.css:
98321        (.days-area-container:focus):
98322        * Resources/pagepopups/chromium/pickerCommonChromium.css:
98323        (:enabled:focus:-webkit-any(button, input[type='button'])):
98324
983252013-01-25  Yury Semikhatsky  <yurys@chromium.org>
98326
98327        Web Inspector: remove unused isElement and similar methods from HeapProfiler
98328        https://bugs.webkit.org/show_bug.cgi?id=107940
98329
98330        Reviewed by Vsevolod Vlasov.
98331
98332        - Removed some unused methods.
98333        - Moved JS specific edge filters to JSHeapSnapshot.
98334
98335        * inspector/front-end/HeapSnapshot.js:
98336        (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
98337        (WebInspector.HeapSnapshot.prototype.createEdgesProviderForTest):
98338        (WebInspector.HeapSnapshot.prototype.retainingEdgesFilter):
98339        (WebInspector.HeapSnapshot.prototype.containmentEdgesFilter):
98340        (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
98341        (WebInspector.HeapSnapshot.prototype.classNodesFilter):
98342        (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
98343        * inspector/front-end/HeapSnapshotGridNodes.js:
98344        (WebInspector.HeapSnapshotGenericObjectNode):
98345        * inspector/front-end/HeapSnapshotProxy.js:
98346        (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
98347        (WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):
98348        * inspector/front-end/JSHeapSnapshot.js:
98349        (WebInspector.JSHeapSnapshot.prototype.classNodesFilter):
98350        (WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
98351        * inspector/front-end/NativeHeapSnapshot.js:
98352
983532013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
98354
98355        Unreviewed, rolling out r140554.
98356        http://trac.webkit.org/changeset/140554
98357        https://bugs.webkit.org/show_bug.cgi?id=108057
98358
98359        Caused tables/table-section-overflow-clip-crash.html and
98360        bug2479-5.html to crash. (Requested by keishi on #webkit).
98361
98362        * rendering/RenderBox.cpp:
98363        (WebCore::RenderBox::minPreferredLogicalWidth):
98364        (WebCore::RenderBox::maxPreferredLogicalWidth):
98365        * rendering/mathml/RenderMathMLOperator.cpp:
98366        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
98367        * rendering/mathml/RenderMathMLRoot.cpp:
98368        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
98369        * rendering/mathml/RenderMathMLRow.cpp:
98370        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
98371
983722013-01-24  Yury Semikhatsky  <yurys@chromium.org>
98373
98374        Web Inspector: each node in a detached DOM tree is shown in its own "detached DOM tree" entry in heap profiler
98375        https://bugs.webkit.org/show_bug.cgi?id=107819
98376
98377        Reviewed by Adam Barth.
98378
98379        Provide single RetainedDOMInfo for each group of DOM Node wrappers reported to GC.
98380        Otherwise we have unequal RetainedDOMInfo groups for each wrapped node.
98381
98382        * bindings/v8/V8GCController.cpp:
98383        (WebCore::ImplicitConnection::ImplicitConnection):
98384        (WebCore::ImplicitConnection::retainedObjectInfo):
98385        (ImplicitConnection):
98386        (WebCore::WrapperGrouper::addObjectToGroup):
98387        (WrapperGrouper):
98388        (WebCore::WrapperGrouper::addNodeToGroup):
98389        (WebCore::WrapperGrouper::apply):
98390        (WebCore::V8GCController::opaqueRootForGC):
98391        * bindings/v8/V8GCController.h:
98392        (V8GCController):
98393
983942013-01-27  Mihnea Ovidenie  <mihnea@adobe.com>
98395
98396        [CSSRegions] RenderFlowThread should keep a count of auto height regions
98397        https://bugs.webkit.org/show_bug.cgi?id=105185
98398
98399        Reviewed by Julien Chaffraix.
98400
98401        Keep the count of auto height regions on the flow thread instead of flow thread controller.
98402        This way, we can streamline the operations associated with the two-pass layout only to those
98403        flow threads that have auto height regions associated.
98404        The flow thread controller will keep a count of flow thread with auto height regions instead.
98405        This is a performance refactoring without an expected change in behavior, therefore no new tests were added.
98406
98407        * rendering/FlowThreadController.cpp: Keep a count of flow threads with auto logical height regions.
98408        (WebCore::FlowThreadController::FlowThreadController):
98409        (WebCore::FlowThreadController::layoutRenderNamedFlowThreads): Check the count of auto height regions for all the flow threads.
98410        (WebCore::FlowThreadController::isAutoLogicalHeightRegionsCountConsistent):
98411        Make sure that we call these methods only when we have auto logical height regions.
98412        (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
98413        (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
98414        * rendering/FlowThreadController.h:
98415        (WebCore::FlowThreadController::hasFlowThreadsWithAutoLogicalHeightRegions):
98416        (WebCore::FlowThreadController::incrementFlowThreadsWithAutoLogicalHeightRegions):
98417        (WebCore::FlowThreadController::decrementFlowThreadsWithAutoLogicalHeightRegions):
98418        * rendering/RenderFlowThread.cpp: Keep a count of auto logical height regions.
98419        (WebCore::RenderFlowThread::RenderFlowThread):
98420        (WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
98421        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): Iterate the region chain only if the region chain has auto height regions.
98422        (WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight): Ditto.
98423        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout): Ditto.
98424        (WebCore::RenderFlowThread::incrementAutoLogicalHeightRegions):
98425        (WebCore::RenderFlowThread::decrementAutoLogicalHeightRegions):
98426        * rendering/RenderFlowThread.h:
98427        * rendering/RenderRegion.cpp: Add increment/decrementAutoLogicalHeightCount to increase/decrease
98428        the counter inside the flow thread and use them throughout the code as needed.
98429        (WebCore::RenderRegion::incrementAutoLogicalHeightCount):
98430        (WebCore::RenderRegion::decrementAutoLogicalHeightCount):
98431        (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
98432        (WebCore::RenderRegion::attachRegion):
98433        (WebCore::RenderRegion::detachRegion):
98434        * rendering/RenderRegion.h:
98435        * rendering/RenderView.cpp:
98436        (WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions): Use the count of flow threads with auto height regions
98437        instead of the count of auto height regions when deciding whether we should attempt the 2 pass layout for auto height regions.
98438
984392013-01-27  Shinya Kawanaka  <shinyak@chromium.org>
98440
98441        [Shadow DOM] Selecting a node to another node in ShadowDOM fires 'click' event unexpectedly
98442        https://bugs.webkit.org/show_bug.cgi?id=107233
98443
98444        Reviewed by Dimitri Glazkov.
98445
98446        When selecting from a node to another node in ShadowDOM, 'click' event is unexpectedly fired.
98447
98448        The root cause of the bug is using shadow ancestor nodes for checking the node mouse is pressed on
98449        and the node mouse is released on is the same. This was introduced to fire a click event for a slider
98450        in <input> or etc.
98451
98452        However, we don't need to check shadow ancestor if we're in Author ShadowDOM.
98453
98454        Test: fast/dom/shadow/selecting-anchor.html
98455
98456        * page/EventHandler.cpp:
98457        (WebCore::mouseIsReleasedOnPressedElement):
98458        (WebCore):
98459        (WebCore::EventHandler::handleMouseReleaseEvent):
98460
984612013-01-27  Kentaro Hara  <haraken@chromium.org>
98462
98463        An [ActiveDOMObject] IDL attribute should be inherited
98464        https://bugs.webkit.org/show_bug.cgi?id=107877
98465
98466        Reviewed by Adam Barth.
98467
98468        Now we support IDL attribute inheritance. We can remove
98469        [ActiveDOMObject] from subclasses.
98470
98471        No tests. No change in behavior.
98472
98473        * Modules/indexeddb/IDBOpenDBRequest.idl:
98474        * Modules/webaudio/OfflineAudioContext.idl:
98475        * bindings/scripts/CodeGeneratorJS.pm:
98476        (GenerateHeader):
98477        (GenerateImplementation):
98478        * bindings/scripts/CodeGeneratorV8.pm:
98479        (GenerateHeader):
98480        (GenerateNamedConstructorCallback):
98481        (GenerateImplementation):
98482        * workers/SharedWorker.idl:
98483        * workers/Worker.idl:
98484
984852013-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
98486
98487        Unreviewed, rolling out r140602.
98488        http://trac.webkit.org/changeset/140602
98489        https://bugs.webkit.org/show_bug.cgi?id=108045
98490
98491        Caused 8 indexed tests to crash. (Requested by keishi on
98492        #webkit).
98493
98494        * CMakeLists.txt:
98495        * DerivedSources.make:
98496        * GNUmakefile.list.am:
98497        * Modules/indexeddb/IDBCallbacks.h:
98498        (WebCore::IDBCallbacks::onBlocked):
98499        * Modules/indexeddb/IDBDatabase.cpp:
98500        * Modules/indexeddb/IDBDatabase.h:
98501        (WebCore):
98502        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
98503        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
98504        * Modules/indexeddb/IDBFactory.cpp:
98505        (WebCore::IDBFactory::openInternal):
98506        (WebCore::IDBFactory::deleteDatabase):
98507        * Modules/indexeddb/IDBFactory.h:
98508        (WebCore):
98509        (IDBFactory):
98510        * Modules/indexeddb/IDBFactory.idl:
98511        * Modules/indexeddb/IDBOpenDBRequest.cpp:
98512        (WebCore::IDBOpenDBRequest::create):
98513        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
98514        (WebCore::IDBOpenDBRequest::dispatchEvent):
98515        * Modules/indexeddb/IDBOpenDBRequest.h:
98516        (IDBOpenDBRequest):
98517        * Modules/indexeddb/IDBVersionChangeRequest.cpp: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
98518        (WebCore):
98519        (WebCore::IDBVersionChangeRequest::create):
98520        (WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
98521        (WebCore::IDBVersionChangeRequest::~IDBVersionChangeRequest):
98522        (WebCore::IDBVersionChangeRequest::interfaceName):
98523        (WebCore::IDBVersionChangeRequest::onBlocked):
98524        * Modules/indexeddb/IDBVersionChangeRequest.h: Copied from Source/WebCore/Modules/indexeddb/IDBFactory.idl.
98525        (WebCore):
98526        (IDBVersionChangeRequest):
98527        * Modules/indexeddb/IDBVersionChangeRequest.idl: Copied from Source/WebCore/Modules/indexeddb/IDBFactory.idl.
98528        * WebCore.gypi:
98529        * WebCore.xcodeproj/project.pbxproj:
98530        * dom/EventTarget.h:
98531        (WebCore):
98532        * dom/EventTargetFactory.in:
98533
985342013-01-27  Shinya Kawanaka  <shinyak@chromium.org>
98535
98536        Disabled input/textarea doesn't trigger selection change
98537        https://bugs.webkit.org/show_bug.cgi?id=85244
98538
98539        Reviewed by Ryosuke Niwa.
98540
98541        Only rootEditableNode is there in <input> or <textarea>, 'select' event is fired.
98542        Since readonly or disabled input/textarea element does not have editable element,
98543        'select' event was not fired.
98544
98545        We don't need the check.
98546
98547        Test: fast/forms/input-readonly-select.html
98548
98549        * editing/FrameSelection.cpp:
98550        (WebCore::FrameSelection::notifyRendererOfSelectionChange):
98551
985522013-01-27  Keishi Hattori  <keishi@webkit.org>
98553
98554        Unreviewed, rolling out r140850.
98555        http://trac.webkit.org/changeset/140850
98556        https://bugs.webkit.org/show_bug.cgi?id=107960
98557
98558        r14602 caused 8 indexed tests to crash.
98559
98560        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
98561        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
98562        * Modules/indexeddb/IDBCursorBackendImpl.h:
98563        (WebCore::IDBCursorBackendImpl::create):
98564        (IDBCursorBackendImpl):
98565        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
98566        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
98567        (WebCore::OpenCursorOperation::perform):
98568        * Modules/indexeddb/IDBObjectStore.cpp:
98569        (WebCore::IDBObjectStore::createIndex):
98570        (WebCore::IDBObjectStore::openCursor):
98571        * Modules/indexeddb/IDBObjectStore.h:
98572        (WebCore::IDBObjectStore::openCursor):
98573        (IDBObjectStore):
98574        * Modules/indexeddb/IDBOpenDBRequest.cpp:
98575        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
98576        * Modules/indexeddb/IDBRequest.cpp:
98577        (WebCore::IDBRequest::create):
98578        (WebCore::IDBRequest::IDBRequest):
98579        * Modules/indexeddb/IDBRequest.h:
98580        (IDBRequest):
98581        (WebCore::IDBRequest::taskType):
98582        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
98583        (WebCore::IDBTransactionBackendImpl::scheduleTask):
98584        * Modules/indexeddb/IDBTransactionBackendImpl.h:
98585        (WebCore::IDBTransactionBackendImpl::scheduleTask):
98586        (IDBTransactionBackendImpl):
98587        * Modules/indexeddb/IDBTransactionBackendInterface.h:
98588        (IDBTransactionBackendInterface):
98589
985902013-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
98591
98592        Unreviewed, rolling out r140741.
98593        http://trac.webkit.org/changeset/140741
98594        https://bugs.webkit.org/show_bug.cgi?id=108044
98595
98596        Caused 8 indexed tests to fail on Mac and Win. (Requested by
98597        keishi on #webkit).
98598
98599        * CMakeLists.txt:
98600        * GNUmakefile.list.am:
98601        * Modules/indexeddb/IDBDatabase.cpp:
98602        (WebCore::IDBDatabase::onVersionChange):
98603        * Modules/indexeddb/IDBFactory.cpp:
98604        (WebCore::IDBFactory::deleteDatabase):
98605        * Modules/indexeddb/IDBOpenDBRequest.cpp:
98606        (WebCore::IDBOpenDBRequest::onBlocked):
98607        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
98608        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.cpp.
98609        (WebCore):
98610        (WebCore::IDBUpgradeNeededEvent::create):
98611        (WebCore::IDBUpgradeNeededEvent::IDBUpgradeNeededEvent):
98612        (WebCore::IDBUpgradeNeededEvent::~IDBUpgradeNeededEvent):
98613        (WebCore::IDBUpgradeNeededEvent::oldVersion):
98614        (WebCore::IDBUpgradeNeededEvent::newVersion):
98615        (WebCore::IDBUpgradeNeededEvent::interfaceName):
98616        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.h.
98617        (WebCore):
98618        (IDBUpgradeNeededEvent):
98619        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Copied from Source/WebCore/Modules/indexeddb/IDBVersionChangeEvent.idl.
98620        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
98621        (WebCore::IDBVersionChangeEvent::create):
98622        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
98623        (WebCore::IDBVersionChangeEvent::version):
98624        (WebCore):
98625        * Modules/indexeddb/IDBVersionChangeEvent.h:
98626        (WebCore):
98627        (IDBVersionChangeEvent):
98628        * Modules/indexeddb/IDBVersionChangeEvent.idl:
98629        * WebCore.gypi:
98630        * dom/EventNames.in:
98631
986322013-01-27  Matt Falkenhagen  <falken@chromium.org>
98633
98634        Elements must be reattached when inserted/removed from top layer
98635        https://bugs.webkit.org/show_bug.cgi?id=105489
98636
98637        Relanding r139402 as the apparent perf regression has been explained as not real (bug 106726).
98638
98639        Reviewed by Julien Chaffraix.
98640
98641        Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
98642        as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
98643
98644        We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
98645        only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
98646        followed immediately by show() results in no style change.
98647
98648        Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
98649               fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
98650
98651        * dom/Element.cpp:
98652        (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
98653        removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
98654        (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
98655
986562013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
98657
98658        Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
98659        https://bugs.webkit.org/show_bug.cgi?id=106740
98660
98661        Reviewed by Benjamin Poulain.
98662
98663        * WebCorePrefix.h:
98664        * config.h:
98665
986662013-01-27  Jochen Eisinger  <jochen@chromium.org>
98667
98668        Check notification permissions in the show() method
98669        https://bugs.webkit.org/show_bug.cgi?id=108009
98670
98671        Reviewed by Adam Barth.
98672
98673        Tests: fast/notifications/notifications-constructor-with-permission.html
98674               fast/notifications/notifications-constructor-without-permission.html
98675
98676        * Modules/notifications/Notification.cpp:
98677        (WebCore::Notification::show):
98678        (WebCore::Notification::taskTimerFired):
98679
986802013-01-26  Tony Chang  <tony@chromium.org>
98681
98682        [chromium] Don't use goma to preprocess bindings idl files
98683        https://bugs.webkit.org/show_bug.cgi?id=107984
98684
98685        Reviewed by Adam Barth.
98686
98687        On Linux and Mac, use a local gcc or clang to preprocess the bindings idl files.
98688        On my machine, this drops the bindings generation from 137s to 24s when
98689        using goma and -j400.
98690
98691        No new tests, this is a build change.
98692
98693        * WebCore.gyp/WebCore.gyp: Force the use of the local gcc or clang for preprocessing.
98694
986952013-01-26  Sheriff Bot  <webkit.review.bot@gmail.com>
98696
98697        Unreviewed, rolling out r140880.
98698        http://trac.webkit.org/changeset/140880
98699        https://bugs.webkit.org/show_bug.cgi?id=108023
98700
98701        Caused mathml/presentation and tests to crash and fail
98702        (Requested by keishi on #webkit).
98703
98704        * mathml/MathMLTextElement.cpp:
98705        * mathml/MathMLTextElement.h:
98706        (MathMLTextElement):
98707        * rendering/mathml/RenderMathMLBlock.cpp:
98708        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
98709        (WebCore::RenderMathMLBlock::computePreferredLogicalWidths):
98710        (WebCore):
98711        (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
98712        (WebCore::RenderMathMLBlock::preferredLogicalHeightAfterSizing):
98713        * rendering/mathml/RenderMathMLBlock.h:
98714        (RenderMathMLBlock):
98715        (WebCore::RenderMathMLBlock::isPreferredLogicalHeightDirty):
98716        (WebCore::RenderMathMLBlock::preferredLogicalHeight):
98717        (WebCore::RenderMathMLBlock::setPreferredLogicalHeight):
98718        * rendering/mathml/RenderMathMLFenced.cpp:
98719        (WebCore::RenderMathMLFenced::makeFences):
98720        (WebCore::RenderMathMLFenced::styleDidChange):
98721        * rendering/mathml/RenderMathMLOperator.cpp:
98722        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
98723        (WebCore):
98724        (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
98725        (WebCore::RenderMathMLOperator::updateFromElement):
98726        (WebCore::RenderMathMLOperator::createGlyph):
98727        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
98728        * rendering/mathml/RenderMathMLOperator.h:
98729        (RenderMathMLOperator):
98730        * rendering/mathml/RenderMathMLRoot.cpp:
98731        (WebCore::RenderMathMLRoot::index):
98732        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
98733        (WebCore):
98734        (WebCore::RenderMathMLRoot::layout):
98735        * rendering/mathml/RenderMathMLRoot.h:
98736        (RenderMathMLRoot):
98737        * rendering/mathml/RenderMathMLRow.cpp:
98738        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
98739        (WebCore::RenderMathMLRow::layout):
98740        * rendering/mathml/RenderMathMLRow.h:
98741        (RenderMathMLRow):
98742
987432013-01-26  Alexey Proskuryakov  <ap@apple.com>
98744
98745        Remove code for handling NetworkProcess authentication challenges in WebProcess
98746        https://bugs.webkit.org/show_bug.cgi?id=108003
98747
98748        Reviewed by Sam Weinig.
98749
98750        * loader/ResourceLoader.cpp:
98751        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
98752        Once again, there can be no authentication without an in-process network request.
98753
98754        * WebCore.exp.in:
98755        * platform/network/AuthenticationChallengeBase.cpp:
98756        (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
98757        * platform/network/AuthenticationChallengeBase.h:
98758        (AuthenticationChallengeBase):
98759        * platform/network/cf/AuthenticationCF.cpp:
98760        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
98761        * platform/network/cf/AuthenticationChallenge.h:
98762        (AuthenticationChallenge):
98763        * platform/network/curl/AuthenticationChallenge.h:
98764        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
98765        * platform/network/mac/AuthenticationMac.mm:
98766        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
98767        * platform/network/qt/AuthenticationChallenge.h:
98768        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
98769        * platform/network/soup/AuthenticationChallenge.h:
98770        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
98771        * platform/network/win/AuthenticationChallenge.h:
98772        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
98773        Removed everything related to AuthenticationChallengeBase::m_identifier.
98774        The identifier is now tracked for IPC only, which is the right thing, because
98775        nothing can guarantee identifier uniqueness across processes.
98776
987772013-01-26  Laszlo Gombos  <l.gombos@samsung.com>
98778
98779        Fix the test for CHANNEL_MESSAGING in idl files
98780        https://bugs.webkit.org/show_bug.cgi?id=108006
98781
98782        Reviewed by Alexey Proskuryakov.
98783
98784        No new tests, this is a build fix.
98785
98786        * workers/WorkerContext.idl: Make sure ENABLE_CHANNEL_MESSAGING is
98787        defined before using it to be consitent with other guards inside idl
98788        files.
98789
987902013-01-26  Tim Volodine  <timvolodine@chromium.org>
98791
98792        Text Autosizing: simplify and clean-up preOrderTraversal skipping containers
98793        https://bugs.webkit.org/show_bug.cgi?id=107446
98794
98795        Reviewed by Julien Chaffraix.
98796
98797        Simplify nextInPreOrderSkippingDescendantsOfContainers implementation
98798        using RenderObject tree traversal methods.
98799
98800        No new tests because functionality is unchanged.
98801
98802        * rendering/TextAutosizer.cpp:
98803        (WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):
98804
988052013-01-26  Dan Carney  <dcarney@google.com>
98806
98807        [v8] prepare SerializedScriptValue for transition to Latin-1
98808        https://bugs.webkit.org/show_bug.cgi?id=107655
98809
98810        Reviewed by Kentaro Hara.
98811
98812        No new tests. Covered by existing tests.
98813
98814        * bindings/v8/SerializedScriptValue.cpp:
98815
988162013-01-26  Justin Schuh  <jschuh@chromium.org>
98817
98818        [CHROMIUM] Suppress more c4267 build warnings for Win64 targets
98819        https://bugs.webkit.org/show_bug.cgi?id=107993
98820
98821        No new tests. No behavior change.
98822
98823        Reviewed by Abhishek Arya.
98824
98825        * WebCore.gyp/WebCore.gyp:
98826
988272013-01-24  Patrick Gansterer  <paroga@webkit.org>
98828
98829        Build fix for USE(JSC) && !ENABLE(WORKERS) after r136686.
98830
98831        * bindings/js/DOMRequestState.h:
98832        (WebCore::DOMRequestState::DOMRequestState):
98833
988342013-01-26  Robert Hogan  <robert@webkit.org>
98835
98836        REGRESSION(r120616): Cell's logical height wrongly computed with vertical-align: baseline and rowspan
98837        https://bugs.webkit.org/show_bug.cgi?id=106571
98838
98839        Reviewed by Julien Chaffraix.
98840
98841        When a cell spans multiple rows, its baseline is set on the first row it spans. r120616 contained a
98842        couple of errors in its attempt to ensure the row height calculated in such cases was correct. When it
98843        calculated the baseline on the first row in the span, it didn't ensure that the row height was increased
98844        if necessary. It also suffered from allowing the baseline descent calculated on a rowspan to affect the
98845        height of the other cells in the first row of the span.
98846
98847        Fix both of these errors in calcRowLogicalHeight() and refactor the calculation of the baseline and baseline
98848        descent so that it is freestanding (rather than depending on the height of the section so far). 
98849
98850        Tests: fast/css/vertical-align-baseline-rowspan-010.html
98851               fast/css/vertical-align-baseline-rowspan-011.html
98852
98853        * rendering/RenderTableSection.cpp:
98854        (WebCore::RenderTableSection::calcRowLogicalHeight):
98855
988562013-01-26  James Simonsen  <simonjam@chromium.org>
98857
98858        [chromium] Export ResourceRequest's priority through WebURLRequest
98859        https://bugs.webkit.org/show_bug.cgi?id=107985
98860
98861        Reviewed by Adam Barth.
98862
98863        No new tests.
98864
98865        * platform/chromium/support/WebURLRequest.cpp:
98866        (WebKit::WebURLRequest::priority):
98867        (WebKit):
98868
988692013-01-25  Roger Fong  <roger_fong@apple.com>
98870
98871        Unreviewed Windows build fix. All it wanted was one more line.
98872
98873        * css/plugIns.css:
98874
988752013-01-25  Joone Hur  <joone.hur@intel.com>
98876
98877        [GTK][AC] Use new Clutter APIs instead of deprecated APIs
98878        https://bugs.webkit.org/show_bug.cgi?id=105736
98879
98880        Reviewed by Gustavo Noronha Silva.
98881
98882        ClutterCairoTexture class and several APIs have been deprecated since version 1.10, 
98883        so ClutterCanvas and ClutterContent should be used instead of ClutterCairoTexture.
98884        clutter_actor_add_child should be used instead of clutter_actor_set_parent and clutter_container_add_clutter.
98885
98886        * platform/graphics/clutter/GraphicsLayerActor.cpp:
98887        (_GraphicsLayerActorPrivate):
98888        (graphics_layer_actor_init):
98889        (graphicsLayerActorDispose):
98890        (graphicsLayerActorAllocate):
98891        (graphicsLayerActorPaint):
98892        (graphicsLayerActorDraw):
98893        (graphicsLayerActorUpdateTexture):
98894        (graphicsLayerActorNew):
98895        (graphicsLayerActorRemoveAll):
98896        (graphicsLayerActorInvalidateRectangle):
98897        (graphicsLayerActorInsertSublayer):
98898        (graphicsLayerActorSetSublayers):
98899
989002013-01-25  Roger Fong  <roger_fong@apple.com>
98901
98902        Unreviewed build fix for Windows.
98903
98904        * css/plugIns.css:
98905        (p):
98906
989072013-01-25  Julien Chaffraix  <jchaffraix@webkit.org>
98908
98909        Share code between the different min-content / max-content code paths
98910        https://bugs.webkit.org/show_bug.cgi?id=107740
98911
98912        Reviewed by Tony Chang.
98913
98914        This change enables sharing between the different content based computations
98915        by using function pointers to specialize the behavior as needed.
98916
98917        Refactoring, covered by existing tests.
98918
98919        * rendering/RenderGrid.cpp:
98920        (WebCore::GridTrack::growUsedBreadth):
98921        (WebCore::GridTrack::usedBreadth):
98922        (WebCore::GridTrack::growMaxBreadth):
98923        Added the previous getters / setters that will be passed to resolveContentBasedTrackSizingFunctionsForItems.
98924
98925        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
98926        Updated to reuse resolveContentBasedTrackSizingFunctionsForItems instead of duplicating code.
98927        One change is that now, we properly apply the min on all branches, which was an oversight of
98928        the previous patches.
98929
98930        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
98931        Added this function as the core content-sized resolution function. For now, we pass the
98932        current track by direction & index to be able to filter grid items.
98933
98934        * rendering/RenderGrid.h:
98935        Added resolveContentBasedTrackSizingFunctionsForItems and the function pointers typedef's.
98936
989372013-01-25  Kentaro Hara  <haraken@chromium.org>
98938
98939        Remove InjectedScript::wrapSerializedObject()
98940        https://bugs.webkit.org/show_bug.cgi?id=107906
98941
98942        Reviewed by Abhishek Arya.
98943
98944        InjectedScript::wrapSerializedObject() is unused.
98945        (This is one of steps to remove raw pointers of SerializedScriptValue*,
98946        which can be a security concern.)
98947
98948        * inspector/InjectedScript.cpp:
98949        * inspector/InjectedScript.h:
98950        (InjectedScript):
98951
989522013-01-25  Kentaro Hara  <haraken@chromium.org>
98953
98954        Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() in code generators
98955        https://bugs.webkit.org/show_bug.cgi?id=107902
98956
98957        Reviewed by Abhishek Arya.
98958
98959        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
98960        it can potentially cause a use-after-free. This is because serialize()/
98961        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
98962        depending on data that is serialized/deserialized. So we should keep a
98963        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
98964        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
98965
98966        No tests. This is just a just-in-case fix.
98967
98968        * Modules/intents/Intent.h:
98969        (WebCore::Intent::data):
98970        * Modules/intents/IntentRequest.cpp:
98971        (WebCore::IntentRequest::postResult):
98972        (WebCore::IntentRequest::postFailure):
98973        * Modules/intents/IntentRequest.h:
98974        (IntentRequest):
98975        * Modules/intents/IntentResultCallback.h:
98976        (IntentResultCallback):
98977        * bindings/scripts/CodeGeneratorJS.pm:
98978        (GetNativeTypeForCallbacks):
98979        * bindings/scripts/CodeGeneratorV8.pm:
98980        (GenerateNormalAttrGetter):
98981        (GetNativeTypeForCallbacks):
98982        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
98983        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
98984        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
98985        * dom/MessagePortChannel.h:
98986        (WebCore::MessagePortChannel::EventData::message):
98987
989882013-01-25  Kentaro Hara  <haraken@chromium.org>
98989
98990        Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() for MessageEvent
98991        https://bugs.webkit.org/show_bug.cgi?id=107900
98992
98993        Reviewed by Abhishek Arya.
98994
98995        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
98996        it can potentially cause a use-after-free. This is because serialize()/
98997        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
98998        depending on data that is serialized/deserialized. So we should keep a
98999        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
99000        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
99001
99002        No tests. This is just a just-in-case fix. I couldn't find any bug
99003        even in an ASAN build.
99004
99005        * bindings/js/JSMessageEventCustom.cpp:
99006        (WebCore::JSMessageEvent::data):
99007        * bindings/v8/custom/V8MessageEventCustom.cpp:
99008        (WebCore::V8MessageEvent::dataAccessorGetter):
99009        * dom/MessageEvent.h:
99010        (WebCore::MessageEvent::dataAsSerializedScriptValue):
99011
990122013-01-25  Kentaro Hara  <haraken@chromium.org>
99013
99014        [V8] Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() (part 1)
99015        https://bugs.webkit.org/show_bug.cgi?id=107891
99016
99017        Reviewed by Abhishek Arya.
99018
99019        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
99020        it can potentially cause a use-after-free. This is because serialize()/
99021        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
99022        depending on data that is serialized/deserialized. So we should keep a
99023        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
99024        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
99025
99026        No tests. This is just a just-in-case fix. I couldn't find any bug
99027        even in an ASAN build.
99028
99029        * bindings/v8/custom/V8CustomEventCustom.cpp:
99030        (WebCore::V8CustomEvent::detailAccessorGetter):
99031
990322013-01-25  Kentaro Hara  <haraken@chromium.org>
99033
99034        Keep a RefPtr<SerializedScriptValue*> when we call serialize()/deserialize() in PopStateEvent
99035        https://bugs.webkit.org/show_bug.cgi?id=107904
99036
99037        Reviewed by Abhishek Arya.
99038
99039        If you use a raw SerializedScriptValue* for serialize()/deserialize(),
99040        it can potentially cause a use-after-free. This is because serialize()/
99041        deserialize() can destruct a RefPtr of the SerializedScriptValue*,
99042        depending on data that is serialized/deserialized. So we should keep a
99043        RefPtr<SerializedScriptValue*> when we call serialize()/deserialize().
99044        (See https://bugs.webkit.org/show_bug.cgi?id=107792 for more details.)
99045
99046        No tests. This is just a just-in-case fix.
99047
99048        * dom/PopStateEvent.h:
99049        (WebCore::PopStateEvent::serializedState):
99050        * page/History.cpp:
99051        (WebCore::History::isSameAsCurrentState):
99052        * page/History.h:
99053        (History):
99054
990552013-01-25  Kentaro Hara  <haraken@chromium.org>
99056
99057        Rename CodeGenerator::IsSubType() to CodeGenerator::InheritsInterface()
99058        https://bugs.webkit.org/show_bug.cgi?id=107874
99059
99060        Reviewed by Adam Barth.
99061
99062        No tests. No change in behavior.
99063
99064        * bindings/scripts/CodeGenerator.pm:
99065        (InheritsInterface):
99066        * bindings/scripts/CodeGeneratorJS.pm:
99067        (GenerateHeader):
99068        (GenerateImplementation):
99069        * bindings/scripts/CodeGeneratorV8.pm:
99070        (GenerateHeader):
99071        (GetInternalFields):
99072        (GenerateNormalAttrGetter):
99073        (GenerateNormalAttrSetter):
99074        (GenerateFunctionCallback):
99075        (GenerateImplementationIndexer):
99076        (GenerateToV8Converters):
99077
990782013-01-25  Kentaro Hara  <haraken@chromium.org>
99079
99080        [V8] Pass an Isolate to GetRawTemplate()
99081        https://bugs.webkit.org/show_bug.cgi?id=107927
99082
99083        Reviewed by Adam Barth.
99084
99085        This is one of steps to kill an optional Isolate parameter of GetRawTemplate().
99086
99087        No tests. No change in behavior.
99088
99089        * bindings/scripts/CodeGeneratorV8.pm:
99090        (GenerateHeader):
99091        (GenerateDomainSafeFunctionGetter):
99092        (GenerateImplementation):
99093        (CreateCustomSignature):
99094        * bindings/scripts/test/V8/V8Float64Array.cpp:
99095        (WebCore::ConfigureV8Float64ArrayTemplate):
99096        (WebCore::V8Float64Array::GetTemplate):
99097        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
99098        (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
99099        (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
99100        (WebCore::V8TestActiveDOMObject::GetTemplate):
99101        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
99102        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
99103        (WebCore::V8TestCustomNamedGetter::GetTemplate):
99104        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
99105        (WebCore::ConfigureV8TestEventConstructorTemplate):
99106        (WebCore::V8TestEventConstructor::GetTemplate):
99107        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
99108        (WebCore::ConfigureV8TestEventTargetTemplate):
99109        (WebCore::V8TestEventTarget::GetTemplate):
99110        * bindings/scripts/test/V8/V8TestException.cpp:
99111        (WebCore::ConfigureV8TestExceptionTemplate):
99112        (WebCore::V8TestException::GetTemplate):
99113        * bindings/scripts/test/V8/V8TestInterface.cpp:
99114        (WebCore::ConfigureV8TestInterfaceTemplate):
99115        (WebCore::V8TestInterface::GetTemplate):
99116        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
99117        (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
99118        (WebCore::V8TestMediaQueryListListener::GetTemplate):
99119        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
99120        (WebCore::ConfigureV8TestNamedConstructorTemplate):
99121        (WebCore::V8TestNamedConstructor::GetTemplate):
99122        * bindings/scripts/test/V8/V8TestNode.cpp:
99123        (WebCore::ConfigureV8TestNodeTemplate):
99124        (WebCore::V8TestNode::GetTemplate):
99125        * bindings/scripts/test/V8/V8TestObj.cpp:
99126        (WebCore::ConfigureV8TestObjTemplate):
99127        (WebCore::V8TestObj::GetTemplate):
99128        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
99129        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
99130        (WebCore::V8TestOverloadedConstructors::GetTemplate):
99131        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
99132        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
99133        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
99134        * bindings/v8/V8DOMWindowShell.cpp:
99135        (WebCore::V8DOMWindowShell::createContext):
99136        * bindings/v8/custom/V8LocationCustom.cpp:
99137        (WebCore::V8Location::reloadAccessorGetter):
99138        (WebCore::V8Location::replaceAccessorGetter):
99139        (WebCore::V8Location::assignAccessorGetter):
99140
991412013-01-25  Pan Deng  <pan.deng@intel.com>
99142
99143        [User Timing]Change class name that presented in Javascript for user timing entry.
99144        https://bugs.webkit.org/show_bug.cgi?id=107925.
99145
99146        Reviewed by Tony Gentilcore.
99147
99148        In current implementation, class type of user timing entries are PerformanceEntry, according
99149        to W3C spec, they should be PerformanceMark and PerformanceMeasure.
99150
99151        Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html
99152
99153        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
99154        (WebCore::wrap):
99155        * page/PerformanceEntry.h:
99156        (WebCore::PerformanceEntry::isMark):
99157        (WebCore::PerformanceEntry::isMeasure):
99158        * page/PerformanceMark.h:
99159        (WebCore::PerformanceMark::isMark):
99160        (PerformanceMark):
99161        * page/PerformanceMeasure.h:
99162        (WebCore::PerformanceMeasure::isMeasure):
99163        (PerformanceMeasure):
99164
991652013-01-24  Roger Fong  <roger_fong@apple.com>
99166
99167        Updated WebCore property sheets and added a WebCore solution file.
99168        https://bugs.webkit.org/show_bug.cgi?id=106988.
99169
99170        Rubberstamped by Brent Fulgham.
99171
99172        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
99173        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters:
99174        * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
99175        * WebCore.vcxproj/WebCore.sln: Added.
99176        * WebCore.vcxproj/WebCore.vcxproj:
99177        * WebCore.vcxproj/WebCore.vcxproj.filters:
99178        * WebCore.vcxproj/WebCoreDebug.props:
99179
991802013-01-24  Ojan Vafai  <ojan@chromium.org>
99181
99182        MathML preferred widths should not depend on layout information
99183        https://bugs.webkit.org/show_bug.cgi?id=107353
99184
99185        Reviewed by Levi Weintraub.
99186
99187        * mathml/MathMLTextElement.cpp:
99188        (WebCore::MathMLTextElement::attach):
99189        (WebCore::MathMLTextElement::childrenChanged):
99190        * mathml/MathMLTextElement.h:
99191        Need to update the render tree when the text of a <mo> changes.
99192
99193        * rendering/mathml/RenderMathMLBlock.cpp:
99194        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
99195        * rendering/mathml/RenderMathMLBlock.h:
99196        * rendering/mathml/RenderMathMLFenced.cpp:
99197        (WebCore::RenderMathMLFenced::makeFences):
99198        (WebCore::RenderMathMLFenced::styleDidChange):
99199        Need to update the rendertree to apply operator stretching.
99200
99201        * rendering/mathml/RenderMathMLOperator.cpp:
99202        (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
99203        (WebCore::RenderMathMLOperator::widthForCharacter):
99204        (WebCore::RenderMathMLOperator::computeIntrinsicLogicalWidths):
99205        (WebCore::RenderMathMLOperator::stretchDisabledByMarkup):
99206        (WebCore::RenderMathMLOperator::firstTextCharacter):
99207        (WebCore::RenderMathMLOperator::stretchyCharacterIndex):
99208        (WebCore::RenderMathMLOperator::updateFromElement):
99209        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
99210        -Make the preferred widths of operators the max of all possible
99211        characters to be used in the operator and center the operator in that width.
99212        -For stretching where we don't use multiple glyphs, use transforms
99213        instead of font-size. This both looks better and avoids affecting the width.
99214        -Now that preferred widths don't depends on height, we don't need to
99215        override computePreferredLogicalWidths at all in MathML code.
99216
99217        * rendering/mathml/RenderMathMLOperator.h:
99218        * rendering/mathml/RenderMathMLRoot.cpp:
99219        (WebCore::RenderMathMLRoot::index):
99220        Tighten up the type.
99221
99222        (WebCore::RenderMathMLRoot::layout):
99223        Move the laying out of children to the layout method.
99224
99225        * rendering/mathml/RenderMathMLRoot.h:
99226        * rendering/mathml/RenderMathMLRow.cpp:
99227        (WebCore::RenderMathMLRow::logicalHeightExcludingOperators):
99228        (WebCore::RenderMathMLRow::stretchOperatorsAndLayout):
99229        (WebCore::RenderMathMLRow::layout):
99230        Move the laying out of children and the subsequent setting of stretchHeight
99231        to the layout method.
99232
99233        * rendering/mathml/RenderMathMLRow.h:
99234
992352013-01-25  Raymond Toy  <rtoy@google.com>
99236
99237        Don't subtract too much from nonSilentFramesToProcess
99238        https://bugs.webkit.org/show_bug.cgi?id=107966
99239
99240        Reviewed by Kenneth Russell.
99241
99242        No new tests.
99243
99244        * Modules/webaudio/AudioScheduledSourceNode.cpp:
99245        (WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
99246
992472013-01-25  Roger Fong  <roger_fong@apple.com>
99248
99249        Unreviewed. Windows build fix by Dean.
99250
99251        * css/plugIns.css:
99252        (object):
99253
992542013-01-25  Dima Gorbik  <dgorbik@apple.com>
99255
99256        Support language WebVTT Nodes
99257        https://bugs.webkit.org/show_bug.cgi?id=107907
99258
99259        Reviewed by Eric Carlson.
99260
99261        Language stack and WebVTT language nodes are added as 
99262        required by specs.
99263
99264        Test: media/track/track-css-matching-lang.html
99265
99266        * html/track/TextTrackCue.cpp:
99267        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): WebVTT language nodes should be
99268        spans in DOM and the lang attribute should be set for all nodes if applicable.
99269        * html/track/TextTrackCue.h:
99270        (WebCore::TextTrackCue::langElementTagName):
99271        (TextTrackCue):
99272        (WebCore::TextTrackCue::langAttributeName):
99273        * html/track/WebVTTParser.cpp:
99274        (WebCore::WebVTTParser::createDocumentFragmentFromCueText): clear the language stack in case
99275        we use the same parser object for multiple cues that have incorrect syntax.
99276        (WebCore::isLangToken):
99277        (WebCore):
99278        (WebCore::WebVTTParser::constructTreeFromToken): parse lang WebVTT objects.
99279        * html/track/WebVTTParser.h:
99280        (WebVTTParser):
99281
992822013-01-25  Andy Estes  <aestes@apple.com>
99283
99284        Wrap content filtering code in an object
99285        https://bugs.webkit.org/show_bug.cgi?id=107914
99286
99287        Reviewed by Alexey Proskuryakov.
99288
99289        Content filtering code currently requires explicit and somewhat complex
99290        lifetime management of the WebFilterEvaluator object for correct
99291        behavior. Simplify this by wrapping WebFilterEvaluator in an object and
99292        have MainResourceLoader implicitly manage its lifetime by holding it in
99293        an OwnPtr.
99294
99295        This change has benefits other than the simplified lifetime management.
99296        It removes direct calls into WebKitSystemInterface from the loader, and
99297        it allows us to keep a strong reference to the replacement data
99298        returned from wkFilterAddData() and wkFilterDataComplete() rather than
99299        relying on it being autoreleased.
99300
99301        * WebCore.exp.in: Updated to match changes in WebCoreSystemInterface.
99302        * WebCore.xcodeproj/project.pbxproj: Added new files.
99303        * loader/MainResourceLoader.cpp:
99304        (WebCore::MainResourceLoader::MainResourceLoader): Removed unneeded initialization.
99305        (WebCore::MainResourceLoader::~MainResourceLoader): Removed an unneeded ASSERT().
99306        (WebCore::MainResourceLoader::cancel): Removed unneeded wkFilterRelease().
99307        (WebCore::MainResourceLoader::responseReceived): Created a
99308        ContentFilter object rather than calling wkFilterCreateInstance().
99309        (WebCore::MainResourceLoader::dataReceived): Rewrote content filtering
99310        logic in terms of the wrapper object. Removed any explicit lifetime
99311        management.
99312        (WebCore::MainResourceLoader::didFinishLoading): Ditto.
99313        (WebCore::MainResourceLoader::notifyFinished): Removed unneeded wkFilterRelease().
99314        * loader/MainResourceLoader.h:
99315        * platform/ContentFilter.h: Added.
99316        * platform/mac/ContentFilterMac.mm: Added.
99317        (WebCore::ContentFilter::create):
99318        (WebCore::ContentFilter::ContentFilter):
99319        (WebCore::ContentFilter::isEnabled): Returned the result of wkFilterIsManagedSession().
99320        (WebCore::ContentFilter::addData): Called wkFilterAddData() and stored
99321        the resulting NSData in m_replacementData.
99322        (WebCore::ContentFilter::finishedAddingData): Called wkFilterDataComplete()
99323        and stored the resulting NSData in m_replacementData.
99324        (WebCore::ContentFilter::needsMoreData): Returned the result of wkFilterIsBuffering().
99325        (WebCore::ContentFilter::didBlockData): Returned the result of wkFilterWasBlocked().
99326        (WebCore::ContentFilter::getReplacementData): Returned the data stored in m_replacementData.
99327        * platform/mac/WebCoreSystemInterface.h: Updated to reflect changes in WKSI.
99328        * platform/mac/WebCoreSystemInterface.mm: Ditto.
99329
99330        * WebCore.exp.in:
99331        * WebCore.xcodeproj/project.pbxproj:
99332        * loader/MainResourceLoader.cpp:
99333        (WebCore::MainResourceLoader::MainResourceLoader):
99334        (WebCore::MainResourceLoader::~MainResourceLoader):
99335        (WebCore::MainResourceLoader::cancel):
99336        (WebCore::MainResourceLoader::responseReceived):
99337        (WebCore::MainResourceLoader::dataReceived):
99338        (WebCore::MainResourceLoader::didFinishLoading):
99339        (WebCore::MainResourceLoader::notifyFinished):
99340        * loader/MainResourceLoader.h:
99341        (MainResourceLoader):
99342        * platform/ContentFilter.h: Added.
99343        (WebCore):
99344        (ContentFilter):
99345        * platform/mac/ContentFilterMac.mm: Added.
99346        (WebCore):
99347        (WebCore::ContentFilter::create):
99348        (WebCore::ContentFilter::ContentFilter):
99349        (WebCore::ContentFilter::isEnabled):
99350        (WebCore::ContentFilter::addData):
99351        (WebCore::ContentFilter::finishedAddingData):
99352        (WebCore::ContentFilter::needsMoreData):
99353        (WebCore::ContentFilter::didBlockData):
99354        (WebCore::ContentFilter::getReplacementData):
99355        * platform/mac/WebCoreSystemInterface.h:
99356        * platform/mac/WebCoreSystemInterface.mm:
99357
993582013-01-25  Simon Fraser  <simon.fraser@apple.com>
99359
99360        When the FrameView has a non-opaque background color, make sure the TileCache tiles are not opaque
99361        https://bugs.webkit.org/show_bug.cgi?id=107989
99362
99363        Reviewed by Dean Jackson.
99364
99365        If a WKView was told to draw a transparent background, make sure that we
99366        set the TileCache tiles to be non-opaque.
99367
99368        * rendering/RenderLayerBacking.cpp:
99369        (WebCore::RenderLayerBacking::updateRootLayerConfiguration):
99370
993712013-01-25  Alexandre Elias  <aelias@chromium.org>
99372
99373        Call FrameView::contentsResized() when setting fixed layout size
99374        https://bugs.webkit.org/show_bug.cgi?id=107922
99375
99376        Reviewed by James Robinson.
99377
99378        In fixed layout mode, we should be calling contentsResized() when the
99379        fixed layout size is changed; on the other hand, we don't need to layout
99380        when the visible contents size changes.
99381
99382        This fixes test WebFrameTest::FixedLayoutInitializeAtMinimumPageScale.
99383
99384        * page/FrameView.cpp:
99385        (WebCore::FrameView::visibleContentsResized):
99386        * platform/ScrollView.cpp:
99387        (WebCore::ScrollView::setFixedLayoutSize):
99388        (WebCore::ScrollView::setUseFixedLayout):
99389
993902013-01-25  Tony Gentilcore  <tonyg@chromium.org>
99391
99392        Fix an ASSERT in BackgroundHTMLParser::appendPartial
99393        https://bugs.webkit.org/show_bug.cgi?id=107983
99394
99395        Reviewed by Eric Seidel.
99396
99397        The complier may create a temporary for the isolatedCopy of the source string. This could cause the refCount of the
99398        StringImpl to be greater than one when appendPartial is invoked on the background thread.
99399        This patch ensures the temporary is gone by that time which fixes the ASSERT in numerous layout tests.
99400
99401        No new tests because covered by existing tests.
99402
99403        * html/parser/HTMLDocumentParser.cpp:
99404        (WebCore::HTMLDocumentParser::append):
99405
994062013-01-25  Dean Jackson  <dino@apple.com>
99407
99408        Add a user agent stylesheet for plugins
99409        https://bugs.webkit.org/show_bug.cgi?id=107890
99410
99411        Reviewed by Alexey Proskuryakov.
99412
99413        As a step along the way to providing a Shadow DOM for plug-in elements, add a
99414        User Agent stylesheet that is loaded when an embed or object element is
99415        in the document. At the moment the stylesheet is empty.
99416
99417        The stylesheet can be overridden by the RenderTheme or the ChromeClient, allowing
99418        ports to provide a custom appearance. This involved hooking up some virtual methods
99419        on ChromeClient, the stubs of which are already implemented in WK2.
99420        As a drive-by, since snapshotted plugins will need some localization I've also
99421        exposed the ChromeClient methods to get text labels.
99422
99423        * CMakeLists.txt: Add plugIns.css.
99424        * DerivedSources.make: Ditto.
99425        * DerivedSources.pri: Ditto.
99426        * GNUmakefile.am: Ditto.
99427        * WebCore.gyp/WebCore.gyp: Ditto.
99428        * WebCore.vcproj/WebCore.vcproj: Ditto.
99429        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
99430        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
99431        * WebCore.xcodeproj/project.pbxproj: Ditoo.
99432        * css/StyleResolver.cpp:
99433        (WebCore::ensureDefaultStyleSheetsForElement): Load and inject new plugInsStyleSheet if there is an object or embed element.
99434        * css/plugIns.css: Added. Empty for now.
99435        * page/ChromeClient.h: New methods for querying the client.
99436        (WebCore::ChromeClient::plugInStartLabelTitle):
99437        (WebCore::ChromeClient::plugInStartLabelSubtitle):
99438        (WebCore::ChromeClient::plugInExtraStyleSheet):
99439        * rendering/RenderTheme.h:
99440        (WebCore::RenderTheme::extraPlugInsStyleSheet): Allow the theme to provide an extra stylesheet.
99441
994422013-01-25  Eric Carlson  <eric.carlson@apple.com>
99443
99444        Adding a text track should not make controls visible
99445        https://bugs.webkit.org/show_bug.cgi?id=107956
99446
99447        Reviewed by Dean Jackson.
99448
99449        Test: media/media-captions-no-controls.html
99450
99451        * html/HTMLMediaElement.cpp:
99452        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Call updateTextTrackDisplay.
99453        (WebCore::HTMLMediaElement::updateTextTrackDisplay): New, call mediaControls->updateTextTrackDisplay()
99454            if we have controls.
99455        (WebCore::HTMLMediaElement::setClosedCaptionsVisible):  Call updateTextTrackDisplay.
99456        (WebCore::HTMLMediaElement::createMediaControls): Hide controls if they should not be 
99457            visible. Minor drive by cleanup.
99458        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Drive by cleanup, pull the three lines
99459            from updateClosedCaptionsControls inline and delete it because this was the only caller.
99460        * html/HTMLMediaElement.h:
99461
994622013-01-25  Elliott Sprehn  <esprehn@chromium.org>
99463
99464        Consider all ancestors not just parentElement when disconnecting frames
99465        https://bugs.webkit.org/show_bug.cgi?id=107769
99466
99467        Reviewed by Eric Seidel.
99468
99469        Previous we only used the parentElement of the frame owner to decide if
99470        we should disconnect the frame, but this means if you reparent a subtree
99471        that contains multiple frames from inside an unload handler we'll disconnect
99472        the subframes even though they're now in a different part of the document.
99473
99474        We can fix this by using containsIncludingShadowDOM, and also simplify the
99475        code by removing ChildFrameDisconnector::Target.
99476
99477        Test: fast/frames/unload-reparent-sibling-frame.html
99478
99479        * dom/ContainerNodeAlgorithms.cpp:
99480        * dom/ContainerNodeAlgorithms.h:
99481        (ChildFrameDisconnector):
99482        (ChildFrameDisconnector::Target): Removed.
99483        (WebCore::ChildFrameDisconnector::collectFrameOwners):
99484        (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
99485
994862013-01-25  Tony Chang  <tony@chromium.org>
99487
99488        Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
99489        https://bugs.webkit.org/show_bug.cgi?id=104997
99490
99491        Reviewed by Ojan Vafai.
99492
99493        Original patch by Kent Tamura:
99494        When padding or border is updated for a parent block with
99495        box-sizing:border-box and width, the width of its child block was not
99496        updated.
99497
99498        The change is to look at border width specifically, not all changes to the border style
99499        since changes to border color should not trigger a relayout.
99500
99501        Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
99502               fast/forms/border-color-relayout.html
99503               fast/forms/text/text-padding-dynamic-change.html
99504
99505        * rendering/RenderBox.cpp:
99506        (WebCore::borderWidthChanged): Helper method to compare border widths.
99507        (WebCore::RenderBox::styleDidChange):
99508        If box-sizing of the old style and/or the new style is border-box and
99509        padding or border is changed, apply setChildNeedsLayout(true) for child
99510        boxes.
99511
995122013-01-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
99513
99514        Move WebGLErrorsToConsole page setting to window.internals.settings
99515        https://bugs.webkit.org/show_bug.cgi?id=107218
99516
99517        Reviewed by Kenneth Russell.
99518
99519        Define webGLErrorsToConsoleEnabled as true by default. Also,
99520        WebGLRenderingContext::m_synthesizedErrorsToConsole is true by default
99521        and can be disabled by settings.
99522
99523        Add a ConsoleDisplayPreference parameter to synthesizeGLError
99524        (defaults to DisplayInConsole). When called with DontDisplayInConsole,
99525        an error message will not be displayed (even if
99526        m_synthesizedErrorsToConsole is true).
99527
99528        Call synthesizeGLError with DontDisplayInConsole in case of synthetic
99529        context lost.
99530
99531        No new tests: covered by existing tests.
99532
99533        * html/canvas/WebGLRenderingContext.cpp:
99534        (WebCore):
99535        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
99536        (WebCore::WebGLRenderingContext::setupFlags):
99537        (WebCore::WebGLRenderingContext::validateRenderingState):
99538        (WebCore::WebGLRenderingContext::loseContextImpl):
99539        (WebCore::WebGLRenderingContext::synthesizeGLError):
99540        * html/canvas/WebGLRenderingContext.h:
99541        * page/Settings.in:
99542
995432013-01-25  Alec Flett  <alecflett@chromium.org>
99544
99545        IndexedDB: Move TaskType enum to IDBDatabaseBackendInterface
99546        https://bugs.webkit.org/show_bug.cgi?id=107960
99547
99548        Reviewed by Tony Chang.
99549
99550        The IDBTransactionBackendInterface class is going away,
99551        this is an easy search-and-replace patch to keep these
99552        changes out of more complex patches.
99553
99554        No new tests, just part of a refactor.
99555
99556        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
99557        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
99558        * Modules/indexeddb/IDBCursorBackendImpl.h:
99559        (WebCore::IDBCursorBackendImpl::create):
99560        (IDBCursorBackendImpl):
99561        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
99562        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
99563        (WebCore::OpenCursorOperation::perform):
99564        * Modules/indexeddb/IDBObjectStore.cpp:
99565        (WebCore::IDBObjectStore::createIndex):
99566        (WebCore::IDBObjectStore::openCursor):
99567        * Modules/indexeddb/IDBObjectStore.h:
99568        (WebCore::IDBObjectStore::openCursor):
99569        (IDBObjectStore):
99570        * Modules/indexeddb/IDBOpenDBRequest.cpp:
99571        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
99572        * Modules/indexeddb/IDBRequest.cpp:
99573        (WebCore::IDBRequest::create):
99574        (WebCore::IDBRequest::IDBRequest):
99575        * Modules/indexeddb/IDBRequest.h:
99576        (IDBRequest):
99577        (WebCore::IDBRequest::taskType):
99578        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
99579        (WebCore::IDBTransactionBackendImpl::scheduleTask):
99580        * Modules/indexeddb/IDBTransactionBackendImpl.h:
99581        (WebCore::IDBTransactionBackendImpl::scheduleTask):
99582        (IDBTransactionBackendImpl):
99583        * Modules/indexeddb/IDBTransactionBackendInterface.h:
99584
995852013-01-25  Abhishek Arya  <inferno@chromium.org>
99586
99587        Regression(r139836): Crash in WTF::equalIgnoringCase
99588        https://bugs.webkit.org/show_bug.cgi?id=107703
99589
99590        Reviewed by Eric Seidel.
99591
99592        Check |a| is a CSS_IDENT before considering it a string and
99593        calling equalIgnoringCase on it. To avoid future mistakes like
99594        this, add a function override for equalIgnoringCase that takes
99595        CSSParserValue as a parameter and ASSERTs if that CSSParserValue
99596        is not a CSS_STRING/CSS_IDENT.       
99597
99598        Test: fast/gradients/parse-radial-gradient-crash.html
99599
99600        * css/CSSParser.cpp:
99601        (WebCore):
99602        (WebCore::equalIgnoringCase):
99603        (WebCore::CSSParser::parseAnimationName):
99604        (WebCore::CSSParser::parseAnimationProperty):
99605        (WebCore::CSSParser::parseDashboardRegions):
99606        (WebCore::parseDeprecatedGradientPoint):
99607        (WebCore::CSSParser::parseDeprecatedGradient):
99608        (WebCore::CSSParser::parseLinearGradient):
99609        (WebCore::CSSParser::parseRadialGradient):
99610
996112013-01-25  Chang Shu  <cshu@webkit.org>
99612
99613        Build broken when svg is disabled.
99614        https://bugs.webkit.org/show_bug.cgi?id=92393.
99615
99616        Unreviewed build fix.
99617
99618        * css/StyleResolver.cpp:
99619        (WebCore::StyleResolver::applyProperty):
99620        * rendering/FilterEffectRenderer.cpp:
99621        (WebCore::FilterEffectRenderer::buildReferenceFilter):
99622
996232013-01-25  Tony Gentilcore  <tonyg@chromium.org>
99624
99625        Abort parsing when pending location change for threaded HTML parser
99626        https://bugs.webkit.org/show_bug.cgi?id=107876
99627
99628        Reviewed by Eric Seidel.
99629
99630        The main thread parser does this in canTakeNextToken. Adding this check to the threaded parser causes us to pass
99631        fast/loader/location-change-aborts-parsing.html.
99632
99633        No new tests because covered by existing tests.
99634
99635        * html/parser/HTMLDocumentParser.cpp:
99636        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
99637
996382013-01-25  Mike West  <mkwst@chromium.org>
99639
99640        ScriptController::executeIfJavaScriptURL incorrectly checks viewsource mode.
99641        incorrectly blocks execution based on the frame's viewsource state.
99642        https://bugs.webkit.org/show_bug.cgi?id=101683
99643
99644        Reviewed by Adam Barth.
99645
99646        ScriptController::executeIfJavaScriptURL currently checks whether the
99647        frame in which a 'javascript:' URL might be executed is in viewsource
99648        mode. This incorrectly handles the case where the viewsource attribute
99649        is added after a document loads: the _frame_ is in viewsource mode, the
99650        _document_ is not. The latter should control execution, not the former.
99651
99652        This patch drops the inViewSourceMode check from executeIfJavaScriptURL
99653        entirely, as the document's viewsource state is checked in
99654        canExecuteScripts, which is already called when the 'javascript:' URL is
99655        passed to executeScript. The checks should remain centralized there.
99656
99657        Test: http/tests/security/view-source-javascript-url-in-document.html
99658
99659        * bindings/ScriptControllerBase.cpp:
99660        (WebCore::ScriptController::executeIfJavaScriptURL):
99661            Drop the incorrect check against the Frame's viewsource mode. The
99662            correct check against the Document's viewsource mode is performed
99663            in canExecuteScripts (which is called via executeScript).
99664
996652013-01-25  Gustavo Noronha Silva  <gns@gnome.org>
99666
99667        [Soup] Streamline cancellation and client checks
99668        https://bugs.webkit.org/show_bug.cgi?id=107808
99669
99670        Reviewed by Martin Robinson.
99671
99672        Covered by existing tests.
99673
99674        * platform/network/ResourceHandle.h:
99675        (ResourceHandle):
99676        * platform/network/soup/ResourceHandleSoup.cpp:
99677        (WebCore::ResourceHandle::cancelledOrClientless): new method to check for cancellation and lack of client.
99678        (WebCore):
99679        (WebCore::gotHeadersCallback): use the new method.
99680        (WebCore::restartedCallback): ditto.
99681        (WebCore::redirectCloseCallback): ditto.
99682        (WebCore::redirectSkipCallback): ditto.
99683        (WebCore::wroteBodyDataCallback): ditto.
99684        (WebCore::nextMultipartResponsePartCallback): ditto.
99685        (WebCore::sendRequestCallback): ditto.
99686        (WebCore::networkEventCallback): ditto.
99687        (WebCore::ResourceHandle::platformSetDefersLoading): ditto.
99688        (WebCore::readCallback): ditto.
99689
996902013-01-25  Victor Carbune  <vcarbune@chromium.org>
99691
99692        Heap-use-after-free in WebCore::TextTrackCue::isActive
99693        https://bugs.webkit.org/show_bug.cgi?id=104594
99694
99695        Reviewed by Eric Carlson.
99696
99697        Test: media/track/track-remove-active-cue-crash.html
99698
99699        * html/HTMLMediaElement.cpp:
99700        (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
99701        (WebCore::HTMLMediaElement::textTrackAddCue):
99702        (WebCore::HTMLMediaElement::textTrackRemoveCue): Remove the cue
99703        from the active cue set as well.
99704        * html/HTMLMediaElement.h:
99705        (WebCore):
99706
997072013-01-25  Mike West  <mkwst@chromium.org>
99708
99709        Web Inspector: Cleanup console.* API MessageSource/Levels.
99710        https://bugs.webkit.org/show_bug.cgi?id=107946
99711
99712        Reviewed by Pavel Feldman.
99713
99714        This patch does some light cleanup on sources and levels of console.*
99715        messages as part of a broader effort to offer better filtering options
99716        in the console. Specifically:
99717
99718        -   console.timeEnd and console.count now come from
99719            ConsoleAPIMessageSource.
99720        -   console.count is now DebugMessageLevel (to match console.timeEnd).
99721        -   console.profile and console.profileEnd now comr from
99722            ConsoleAPIMessageSource, and are DebugMessageLevel.
99723
99724        * inspector/InspectorConsoleAgent.cpp:
99725        (WebCore::InspectorConsoleAgent::stopTiming):
99726        (WebCore::InspectorConsoleAgent::count):
99727        * inspector/InspectorProfilerAgent.cpp:
99728        (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
99729        (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
99730
997312013-01-25  Andrey Lushnikov  <lushnikov@chromium.org>
99732
99733        Web Inspector: highlight occurences of word in DefaultTextEditor
99734        https://bugs.webkit.org/show_bug.cgi?id=105523
99735
99736        Reviewed by Pavel Feldman.
99737
99738        Highlight occurrences of selected word in DefaultTextEditor by the means of new highlight regex API.
99739
99740        Test: inspector/editor/text-editor-highlight-token.html
99741
99742        * inspector/front-end/DefaultTextEditor.js:
99743        (WebInspector.TextEditorMainPanel):
99744        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
99745        (WebInspector.TextEditorMainPanel.TokenHighlighter): Added.
99746        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype.handleSelectionChange):
99747        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._regexString):
99748        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._highlight):
99749        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._removeHighlight):
99750        (WebInspector.TextEditorMainPanel.TokenHighlighter.prototype._isWord):
99751        * inspector/front-end/textEditor.css:
99752        (.text-editor-token-highlight):
99753
997542013-01-25  Alexander Paschenko  <alexander.pashenko@lge.com>
99755
99756        [TexMap] Flickering after transitions on Apple HTML5 demo
99757        https://bugs.webkit.org/show_bug.cgi?id=102501
99758
99759        Reviewed by Noam Rosenthal.
99760
99761        The problem is caused by inconsistent state of TextureMapperLayer's transformation matrix
99762        and opacity data during and after the end of animation.
99763        This patch solves the problem by introducing three additional private flags
99764        to TextureMapperLayer:
99765        m_shouldUpdateCurrentTransformFromGraphicsLayer,
99766        m_shouldUpdateCurrentOpacityFromGraphicsLayer, and
99767        m_shouldUpdateCurrentFiltersFromGraphicsLayer.
99768        The latter has been introduced in order to avoid similar future problems
99769        with m_currentFilters.
99770        On these flags' basis, TextureMapperLayer is able to decide whether to update
99771        its inner state or not.
99772        These flags themselves are set based on GraphicsLayerTextureMapper's changeMask
99773        which indicates what details of the state have been changed since the last sync.
99774
99775        No new tests - this doesn't expose any testable surface.
99776        Eyes-only check has been made to ensure that the problem is gone now.
99777
99778        * platform/graphics/texmap/TextureMapperLayer.cpp:
99779        (WebCore::TextureMapperLayer::setAnimatedTransform):
99780        sets m_shouldUpdateCurrentTransformFromGraphicsLayer to false and
99781        updates m_currentTransform based on the updated state from GraphicsLayerAnimation.
99782        (WebCore):
99783        (WebCore::TextureMapperLayer::setAnimatedOpacity):
99784        sets m_shouldUpdateCurrentOpacityFromGraphicsLayer to false and
99785        updates m_currentOpacity based on the updated state from GraphicsLayerAnimation.
99786        (WebCore::TextureMapperLayer::setAnimatedFilters):
99787        sets m_shouldUpdateCurrentFiltersFromGraphicsLayer to false and
99788        updates m_currentFilters based on the updated state from GraphicsLayerAnimation.
99789        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
99790        sets m_shouldUpdateCurrent* flags based on GLTM's changeMask. Also illegal modification
99791        of m_currentTransform that caused flickering has been removed from this method.
99792        (WebCore::TextureMapperLayer::syncAnimations): updates m_currentTransform and/or
99793        m_currentOpacity and/or m_currentFilters if corresponding flags allow to do so.
99794        * platform/graphics/texmap/TextureMapperLayer.h:
99795        (WebCore::TextureMapperLayer::TextureMapperLayer): aforementioned flags
99796        get initialized in ctor.
99797        (TextureMapperLayer): aforementioned flags are declared in the class.
99798
99799
998002013-01-25  Marja Hölttä  <marja@chromium.org>
99801
99802        Refactor InspectorMemoryAgent: memory data as a map.
99803
99804        https://bugs.webkit.org/show_bug.cgi?id=107938
99805
99806        Reviewed by Yury Semikhatsky.
99807
99808        No new tests (no functional changes, only refactoring).
99809
99810        * inspector/InspectorController.cpp:
99811        (WebCore::InspectorController::InspectorController):
99812        (WebCore::InspectorController::getProcessMemoryDistribution):
99813        (WebCore):
99814        * inspector/InspectorController.h:
99815        (WebCore):
99816        (InspectorController):
99817        * inspector/InspectorMemoryAgent.cpp:
99818        (WebCore::addPlatformComponentsInfo):
99819        (WebCore):
99820        (WebCore::addMemoryInstrumentationDebugData):
99821        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
99822        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
99823        (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionAsMap):
99824        * inspector/InspectorMemoryAgent.h:
99825        (InspectorMemoryAgent):
99826
998272013-01-25  Huang Dongsung  <luxtella@company100.net>
99828
99829        [Texmap] Refactor code related to debug border and repaint count.
99830        https://bugs.webkit.org/show_bug.cgi?id=105787
99831
99832        Reviewed by Noam Rosenthal.
99833
99834        Currently, TextureMapperBackingStore, CoordinatedBackingStore and
99835        GraphicsLayerTextureMapper have duplicated code to draw debug border or
99836        repaint count. This patch refactors that all platform layers draw debug
99837        border and repaint count in the consistent way:
99838        TextureMapper::drawBorder() and TextureMapper::drawRepaintCounter().
99839
99840        There are three big changes:
99841        1. TextureMapperLayer has the debug visuals like GraphicsLayer.
99842        Both debug border and repaint count are called as the debug visuals.
99843        2. We use the same color and width to Mac port because we get that info using
99844        GraphicsLayer::updateDebugIndicators().
99845        3. Draw borders for background color, backing store and contents layer,
99846        while drawing repaint count only for backing store.
99847
99848        No new tests. This functionality is for debugging, so we cannot test using DRT.
99849
99850        * platform/graphics/cairo/GraphicsContext3DPrivate.h:
99851        * platform/graphics/qt/GraphicsContext3DQt.cpp:
99852        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
99853        (WebCore::GraphicsLayerTextureMapper::setShowDebugBorder):
99854        (WebCore):
99855        (WebCore::GraphicsLayerTextureMapper::setShowRepaintCounter):
99856        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
99857        (WebCore::GraphicsLayerTextureMapper::updateDebugBorderAndRepaintCountIfNeeded):
99858        (WebCore::GraphicsLayerTextureMapper::setDebugBorder):
99859        (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
99860        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
99861        (WebCore::GraphicsLayerTextureMapper::setRepaintCount):
99862        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
99863        (GraphicsLayerTextureMapper):
99864        (WebCore::GraphicsLayerTextureMapper::debugBorderColor):
99865        (WebCore::GraphicsLayerTextureMapper::debugBorderWidth):
99866        * platform/graphics/texmap/TextureMapper.h:
99867        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
99868        (WebCore::TextureMapperTiledBackingStore::adjustedTransformForRect):
99869        (WebCore):
99870        (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
99871        (WebCore::TextureMapperTiledBackingStore::drawBorder):
99872            Override TextureMapperPlatformLayer::drawBorder() to draw the border
99873            for each tile.
99874        (WebCore::TextureMapperTiledBackingStore::drawRepaintCounter):
99875        * platform/graphics/texmap/TextureMapperBackingStore.h:
99876        (WebCore::TextureMapperBackingStore::drawRepaintCounter):
99877        (TextureMapperBackingStore):
99878        (TextureMapperTiledBackingStore):
99879        * platform/graphics/texmap/TextureMapperGL.cpp:
99880        (WebCore::TextureMapperGL::drawRepaintCounter):
99881        * platform/graphics/texmap/TextureMapperGL.h:
99882        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
99883        (WebCore::TextureMapperImageBuffer::drawBorder):
99884        (WebCore):
99885        (WebCore::TextureMapperImageBuffer::drawRepaintCounter):
99886        * platform/graphics/texmap/TextureMapperImageBuffer.h:
99887        (TextureMapperImageBuffer):
99888        * platform/graphics/texmap/TextureMapperLayer.cpp:
99889        (WebCore::TextureMapperLayer::paintSelf):
99890        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
99891        * platform/graphics/texmap/TextureMapperLayer.h:
99892        (State):
99893        (WebCore::TextureMapperLayer::State::State):
99894        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
99895        (WebCore::TextureMapperPlatformLayer::drawBorder):
99896
998972013-01-24  Patrick Gansterer  <paroga@webkit.org>
99898
99899        Build fix for !ENABLE(DRAG_SUPPORT) after r140286.
99900
99901        * page/AutoscrollController.cpp:
99902        (WebCore::AutoscrollController::autoscrollTimerFired):
99903
999042013-01-25  Ken Kania  <kkania@chromium.org>
99905
99906        Web Inspector: Move dispatchMouseEvent optional params after x,y
99907        https://bugs.webkit.org/show_bug.cgi?id=107828
99908
99909        Reviewed by Pavel Feldman.
99910
99911        No new tests, as this just rearranges the order of arguments to make
99912        JSCompiler happy. The params were rearranged in r140649 to match
99913        dispatchKeyEvent's params.
99914
99915        * inspector/Inspector.json:
99916        * inspector/InspectorInputAgent.cpp:
99917        (WebCore::InspectorInputAgent::dispatchMouseEvent):
99918        * inspector/InspectorInputAgent.h:
99919        (InspectorInputAgent):
99920
999212013-01-25  Alexander Pavlov  <apavlov@chromium.org>
99922
99923        Web Inspector: [Styles] Editing a property value containing a trimmed data: URL breaks the style
99924        https://bugs.webkit.org/show_bug.cgi?id=107936
99925
99926        Reviewed by Yury Semikhatsky.
99927
99928        Restore the original CSS property value before editing.
99929
99930        Test: inspector/styles/edit-value-with-trimmed-url.html
99931
99932        * inspector/front-end/StylesSidebarPane.js:
99933
999342013-01-25  Eugene Klyuchnikov  <eustas@chromium.org>
99935
99936        Web Inspector: [Network] Use DataGrid column alignment instead of custom styling.
99937        https://bugs.webkit.org/show_bug.cgi?id=107935
99938
99939        Reviewed by Pavel Feldman.
99940
99941        On Network Panel column alignment is specified both in
99942        column descriptors and in CSS stylesheet.
99943
99944        Only one alignment specifier should last.
99945
99946        * inspector/front-end/DataGrid.js:
99947        (WebInspector.DataGridNode.prototype.createTD): Extracted common code.
99948        (WebInspector.DataGridNode.prototype.createCell): Use "createTD". 
99949        * inspector/front-end/NetworkPanel.js:
99950        (WebInspector.NetworkDataGridNode.prototype._createDivInTD): Ditto.
99951        * inspector/front-end/networkLogView.css: Remove exheberant rules.
99952        * inspector/front-end/networkPanel.css: Fix whitespaces.
99953
999542013-01-25  Sergey Ryazanov  <serya@chromium.org>
99955
99956        Web Inspector: Add explanation for Console object expansion behaviour
99957        https://bugs.webkit.org/show_bug.cgi?id=107793
99958
99959        Reviewed by Pavel Feldman.
99960
99961        * English.lproj/localizedStrings.js:
99962        * inspector/front-end/ConsoleMessage.js:
99963        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
99964        * inspector/front-end/inspector.css:
99965        (.object-info-state-note):
99966        (.object-info-state-note::before):
99967        (.object-info-state-note:hover):
99968        (.section.expanded .object-info-state-note):
99969        (.section.expanded .properties, .event-bar.expanded .event-properties):
99970        (.pane.expanded .properties, .event-bar .event-properties):
99971
999722013-01-25  Claudio Saavedra  <csaavedra@igalia.com>
99973
99974        Missing files in GNUmakefile.list.am for Notifications support
99975        https://bugs.webkit.org/show_bug.cgi?id=107934
99976
99977        Reviewed by Philippe Normand.
99978
99979        * GNUmakefile.list.am: Add DOMWindowNotifications.idl and
99980        WorkerContextNotifications.idl to dom_binding_idls and
99981        JSNotificationCustom.{cpp,h} to webcore_sources, since without
99982        this the Notifications will be broken.
99983
999842013-01-25  Andrey Lushnikov  <lushnikov@chromium.org>
99985
99986        Web Inspector: implement search for workspace sources
99987        https://bugs.webkit.org/show_bug.cgi?id=107814
99988
99989        Reviewed by Pavel Feldman.
99990
99991        Implement generic WebInspector.ContentProvider.performSearchInContent method and use it in both
99992        StaticContentProvider and fileSystemWorkspaceProvider.
99993
99994        No new tests.
99995
99996        * inspector/front-end/ContentProvider.js:
99997        (WebInspector.ContentProvider.performSearchInContent): Added.
99998        * inspector/front-end/ContentProviders.js:
99999        (WebInspector.StaticContentProvider.prototype.):
100000        (WebInspector.StaticContentProvider.prototype.searchInContent):
100001        * inspector/front-end/FileSystemWorkspaceProvider.js:
100002        (WebInspector.FileSystemWorkspaceProvider.prototype.contentCallback):
100003        (WebInspector.FileSystemWorkspaceProvider.prototype.searchInFileContent):
100004
1000052013-01-25  Elliott Sprehn  <esprehn@gmail.com>
100006
100007        Assert the connectedSubframeCount is consistent and fix over counting
100008        https://bugs.webkit.org/show_bug.cgi?id=107302
100009
100010        Reviewed by Alexey Proskuryakov.
100011
100012        Add a debug assertion that walks the subtree during frame disconnection
100013        and manually counts the number of connected subframes to assert that the
100014        value from Node::connectedSubframeCount() is the same as if we traversed
100015        through the tree.
100016
100017        In fixing the places where this assertion failed I made document destruction
100018        faster by not walking the entire document looking for frames if the entire
100019        frame tree has been destroyed by way of FrameLoader::detachChildren().
100020        I had inadvertently introduced this improvement in r133933, but then I
100021        regressed it in r140090 when we switched to counting because I didn't
100022        realize we destroy the frame tree separate of frame disconnection on
100023        document unload so all frames could have been destroyed but the counts
100024        left on the ancestors.
100025
100026        I also fixed another overcounting case where the adoption agency algorithm
100027        may call ContainerNode::takeAllChildrenFrom() which in turn calls
100028        ContainerNode::removeAllChildren() and could have left a connected subframe
100029        count on the node even though all the frames had been removed.
100030
100031        This assertion did not uncover any cases of undercounting the number of
100032        frames.
100033
100034        This also fixes a rare edge case where removeChild of an iframe that
100035        was already being unloaded would not unload the frame until the top level
100036        unload was done, and a reparenting of the iframe would not cause it to load.
100037
100038        Test: fast/frames/reparent-in-unload-contentdocument.html
100039
100040        * dom/ContainerNode.cpp:
100041        (WebCore::ContainerNode::removeAllChildren):
100042        (WebCore::ContainerNode::parserInsertBefore):
100043        (WebCore::ContainerNode::parserRemoveChild):
100044        (WebCore::ContainerNode::parserAppendChild):
100045        * dom/ContainerNodeAlgorithms.cpp:
100046        (WebCore):
100047        (WebCore::assertConnectedSubframeCountIsConsistent):
100048        * dom/ContainerNodeAlgorithms.h:
100049        (WebCore):
100050        (WebCore::ChildFrameDisconnector::disconnect):
100051        * dom/Node.cpp:
100052        (WebCore::Node::updateAncestorConnectedSubframeCountForRemoval):
100053        (WebCore):
100054        (WebCore::Node::updateAncestorConnectedSubframeCountForInsertion):
100055        * dom/Node.h:
100056        (Node):
100057        * html/HTMLFrameOwnerElement.cpp:
100058        (WebCore::HTMLFrameOwnerElement::clearContentFrame):
100059        (WebCore):
100060        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
100061        * html/HTMLFrameOwnerElement.h:
100062        (HTMLFrameOwnerElement):
100063
1000642013-01-25  Pavel Feldman  <pfeldman@chromium.org>
100065
100066        Web Inspector: inspector slows down pages with many anonymous scripts.
100067        https://bugs.webkit.org/show_bug.cgi?id=107928
100068
100069        Reviewed by Alexander Pavlov.
100070
100071        The problem was that workspace code introduced n^2 complexity for unique URI calculation.
100072
100073        * inspector/front-end/SimpleWorkspaceProvider.js:
100074        (WebInspector.SimpleWorkspaceProvider):
100075        (WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):
100076
1000772013-01-25  Jussi Kukkonen  <jussi.kukkonen@intel.com>
100078
100079        [CMake][EFL] Build ThirdParty/leveldb when IndexedDB is enabled
100080        https://bugs.webkit.org/show_bug.cgi?id=106443
100081
100082        Reviewed by Laszlo Gombos.
100083
100084        LevelDB is now included in ThirdParty. Use it when IndexDB is
100085        enabled for EFL.
100086
100087        * CMakeLists.txt:
100088        Build ThirdParty/leveldb when WTF_USE_LEVELDB is set
100089
1000902013-01-25  Kent Tamura  <tkent@chromium.org>
100091
100092        INPUT_MULTIPLE_FIELDS_UI: Inconsistent value of aria-valuetext attribute
100093        https://bugs.webkit.org/show_bug.cgi?id=107897
100094
100095        Reviewed by Kentaro Hara.
100096
100097        aria-valuetext and aria-valuenow attributes had inconsistent values in
100098        a case of initial empty state and a case that a user clears a field.
100099
100100        - aria-valuetext attribute should have "blank" message in the initial
100101          empty state.
100102        - aria-valuenow attribute should be removed in the cleared empty state.
100103
100104        Also, we have a bug that aira-valuenow had a symbolic value such as "AM"
100105        "January". It should always have a numeric value according to the
100106        specification.
100107        http://www.w3.org/TR/wai-aria/states_and_properties#aria-valuenow
100108
100109        No new tests. Updates fast/forms/*-multiple-fields/*-multiple-fields-ax-aria-attributes.html.
100110
100111        * html/shadow/DateTimeFieldElement.cpp:
100112        (WebCore::DateTimeFieldElement::DateTimeFieldElement):
100113        Set "blank" message to aria-valuetext attribute.
100114        (WebCore::DateTimeFieldElement::updateVisibleValue):
100115        aria-valuenow attribute should be a numeric value. Apply String::number
100116        to the return value of valueForARIAValueNow.
100117        Remove aria-valuenow attribute if nothing is selected.
100118        (WebCore::DateTimeFieldElement::valueForARIAValueNow):
100119        Added.
100120        * html/shadow/DateTimeFieldElement.h:
100121        (DateTimeFieldElement): Declare valueForARIAValueNow.
100122
100123        * html/shadow/DateTimeSymbolicFieldElement.cpp:
100124        (WebCore::DateTimeSymbolicFieldElement::valueForARIAValueNow):
100125        Added. Returns 1 + internal selection index.
100126        For example, the function returns 1 for January.
100127        * html/shadow/DateTimeSymbolicFieldElement.h:
100128        (DateTimeSymbolicFieldElement): Declare valueForARIAValueNow.
100129
1001302013-01-24  Hans Wennborg  <hans@chromium.org>
100131
100132        Disable Clang's -Wreturn-type-c-linkage for Source/WebCore/bindings/v8/
100133        https://bugs.webkit.org/show_bug.cgi?id=107845
100134
100135        Reviewed by Adam Barth.
100136
100137        A recent version of Clang started warning about code in
100138        Source/WebCore/bindings/v8/npruntime.cpp.
100139
100140        In this case it is warning about an 'extern "c"' function returning a
100141        non-POD type. But because the function has internal linkage, the
100142        warning doesn't really apply.
100143
100144        This change suppresses the warning in the meantime.
100145
100146        Tested by building with Clang r172454.
100147
100148        * WebCore.gyp/WebCore.gyp:
100149
1001502013-01-25  Eberhard Graether  <egraether@google.com>
100151
100152        Web Inspector: add checkbox for continuous painting to the inspector's settings
100153        https://bugs.webkit.org/show_bug.cgi?id=107352
100154
100155        Reviewed by Pavel Feldman.
100156
100157        This change adds a checkbox to activate continuous painting to the WebInspector's
100158        rendering settings and plumbs the setting to Chromium's WebLayerTreeView. The
100159        setting is visible if InspectorClient::canContinuouslyPaint() returns true.
100160
100161        No new tests.
100162
100163        * English.lproj/localizedStrings.js:
100164        * inspector/Inspector.json:
100165        * inspector/InspectorClient.h:
100166        (WebCore::InspectorClient::canContinuouslyPaint):
100167        (WebCore::InspectorClient::setContinuousPaintingEnabled):
100168        (InspectorClient):
100169        * inspector/InspectorPageAgent.cpp:
100170        (PageAgentState):
100171        (WebCore::InspectorPageAgent::restore):
100172        (WebCore::InspectorPageAgent::disable):
100173        (WebCore::InspectorPageAgent::canContinuouslyPaint):
100174        (WebCore):
100175        (WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
100176        * inspector/InspectorPageAgent.h:
100177        * inspector/front-end/Settings.js:
100178        * inspector/front-end/SettingsScreen.js:
100179        (WebInspector.GenericSettingsTab):
100180        (WebInspector.GenericSettingsTab.prototype.get _continuousPaintingChanged):
100181        * inspector/front-end/inspector.js:
100182        (WebInspector.doLoadedDone):
100183
1001842013-01-25  Dominic Mazzoni  <dmazzoni@google.com>
100185
100186        REGRESSION (r140658): Multiple accessibility failures on GTK
100187        https://bugs.webkit.org/show_bug.cgi?id=107832
100188
100189        Reviewed by Chris Fleizach.
100190
100191        In the ATK accessibility implementation, attachWrapper
100192        might create a different object depending on the role of
100193        the WebCore AccessibilityObject, whereas on other platforms
100194        attachWrapper doesn't care. Calling init before attachWrapper
100195        solves the problem.
100196
100197        Re-enables 7 skipped tests.
100198
100199        * accessibility/AXObjectCache.cpp:
100200        (WebCore::AXObjectCache::getOrCreate):
100201
1002022013-01-24  Kent Tamura  <tkent@chromium.org>
100203
100204        INPUT_MULTIPLE_FIELDS_UI: Refactoring: Remove confusing minimum() and maximum() of DateTimeSymbolicFieldElement
100205        https://bugs.webkit.org/show_bug.cgi?id=107918
100206
100207        Reviewed by Kentaro Hara.
100208
100209        DateTimeSymbolicFieldElement::minimum() and maximum() are very
100210        confusing. They don't return minimum/maximum value of 0-based symbol
100211        index though valueAsInteger is 0-based. These functions are used only
100212        for ARIA attributes in DateTimeFieldElement::initialize().
100213
100214        - Remove DateTimeFieldElement::minimum() and maximum(), and pass
100215        minimum/maximum values for ARIA attributes as function arguments.
100216        - DateTimeNumericFieldElement::maximum() is now non-virtual.
100217          It is called by subclasses.
100218
100219        No new tests. This should not change any behavior.
100220
100221        * html/shadow/DateTimeFieldElement.cpp:
100222        (WebCore::DateTimeFieldElement::initialize):
100223        Add axMimimum/axMaximum arguments. Don't use minimum() and maximum().
100224        * html/shadow/DateTimeFieldElement.h:
100225        (DateTimeFieldElement): Ditto.
100226        * html/shadow/DateTimeNumericFieldElement.cpp:
100227        (WebCore::DateTimeNumericFieldElement::initialize):
100228        Pass m_range.minimum and maximum to DateTimeFieldElement::initialize().
100229        * html/shadow/DateTimeNumericFieldElement.h:
100230        (DateTimeNumericFieldElement):
100231        - Add initialize()
100232        - Make maximum() non-virtual
100233        - Remove minimum().
100234        * html/shadow/DateTimeSymbolicFieldElement.cpp:
100235        (WebCore::DateTimeSymbolicFieldElement::initialize):
100236        Pass m_minimumIndex + 1 and m_maximumIndex + 1 to
100237        DateTimeFieldElement::initialize().
100238        * html/shadow/DateTimeSymbolicFieldElement.h:
100239        (DateTimeSymbolicFieldElement):
100240        Add initialize() and remove minimum() and maximum().
100241
1002422013-01-24  Kent Tamura  <tkent@chromium.org>
100243
100244        INPUT_MULTIPLE_FIELDS_UI: Refactoring: Remove unused DateTimeHourFieldElement::valueAsInteger
100245        https://bugs.webkit.org/show_bug.cgi?id=107915
100246
100247        Reviewed by Kentaro Hara.
100248
100249        DateTimeHourFieldElement::valueAsInteger is never called. Remove it and
100250        make valueAsInteger non-public.
100251
100252        No new tests. This shouldn't change any behavior.
100253
100254        * html/shadow/DateTimeFieldElement.h:
100255        (DateTimeFieldElement): Make valueAsInteger protected.
100256        * html/shadow/DateTimeFieldElements.cpp:
100257        Remove DateTimeHourFieldElement::valueAsInteger.
100258        (WebCore::DateTimeHourFieldElement::populateDateTimeFieldsState):
100259        Remove unnecessary DateTimeNumericFieldElement:: prefix.
100260        * html/shadow/DateTimeFieldElements.h:
100261        (DateTimeHourFieldElement): Remove valueAsInteger.
100262        * html/shadow/DateTimeNumericFieldElement.h:
100263        (DateTimeNumericFieldElement):
100264        Make valueAsInteger FINAL.
100265
1002662013-01-24  Hajime Morrita  <morrita@google.com>
100267
100268        Refactoring: The name ContainerNode::removeChildren and ContainerNde::removeAllChilren() is confusing
100269        https://bugs.webkit.org/show_bug.cgi?id=107640
100270
100271        Reviewed by Eric Seidel.
100272
100273        This change renames unsafe removeAllChilren() function to
100274        removeDetachedChildren() and move it to protected visibility.
100275
100276        In theory, the removed nodes should be detached() before. But some
100277        tests violates that assumption. It should be fixed.
100278
100279        No new tests. No behavior change.
100280
100281        * dom/ContainerNode.cpp:
100282        (WebCore::ContainerNode::removeDetachedChildren):
100283        (WebCore::ContainerNode::takeAllChildrenFrom):
100284        (WebCore::ContainerNode::~ContainerNode):
100285        * dom/ContainerNode.h:
100286        (ContainerNode):
100287        * dom/ContainerNodeAlgorithms.h:
100288        (WebCore::removeDetachedChildrenInContainer):
100289        (WebCore):
100290        * dom/Document.cpp:
100291        (WebCore::Document::removedLastRef):
100292        * dom/ShadowRoot.cpp:
100293        (WebCore::ShadowRoot::~ShadowRoot):
100294        * svg/SVGElementInstance.cpp:
100295        (WebCore::SVGElementInstance::detach):
100296        * svg/SVGElementInstance.h:
100297        (SVGElementInstance):
100298
1002992013-01-24  Keishi Hattori  <keishi@webkit.org>
100300
100301        Adjust design of the Calendar Picker
100302        https://bugs.webkit.org/show_bug.cgi?id=107507
100303
100304        Reviewed by Kent Tamura.
100305
100306        Covered by existing calendar picker appearance tests.
100307
100308        * Resources/pagepopups/calendarPicker.css:
100309        (body): Use bigger font.
100310        (.calendar-picker):
100311        (.month-selector):
100312        (.month-selector svg):
100313        (.month-selector-popup-contents):
100314        (.year-month-button-left .year-month-button):
100315        (.year-month-button-right .year-month-button):
100316        (.days-area-container):
100317        (.days-area):
100318        (.day-label):
100319        (.day):
100320        (.available):
100321        (.month-mode .day):
100322        (.today-clear-area .today-button):
100323        * Resources/pagepopups/calendarPicker.js:
100324        (CalendarPicker.prototype.fixWindowSize): Calculate the width of today-clear-area too.
100325        (YearMonthController.prototype.attachTo):
100326        (YearMonthController.prototype._attachLeftButtonsTo): Use svg icons inside buttons.
100327        (YearMonthController.prototype._attachRightButtonsTo): Use svg icons inside buttons.
100328        (YearMonthController.prototype.setMonth):
100329        (YearMonthController.prototype._handleButtonClick):
100330        * Resources/pagepopups/calendarPickerMac.css: Removed.
100331        * Resources/pagepopups/chromium/calendarPickerChromium.css: Added.
100332        (.year-month-button):
100333        (.days-area-container:focus):
100334        * Resources/pagepopups/chromium/pickerCommonChromium.css: Added. Use Chrome-style buttons.
100335        (button):
100336        (:enabled:hover:-webkit-any(button, input[type='button'])):
100337        (:enabled:active:-webkit-any(button, input[type='button'])):
100338        (:disabled:-webkit-any(button, input[type='button'])):
100339        (:enabled:focus:-webkit-any(button, input[type='button'])):
100340        * WebCore.gyp/WebCore.gyp: Include pickerCommonChromium.css and calendarPickerChromium.css.
100341        * rendering/RenderTheme.cpp: Remove extraCalendarPickerStyleSheet
100342        * rendering/RenderTheme.h: Ditto.
100343        * rendering/RenderThemeChromiumMac.h: Ditto.
100344        * rendering/RenderThemeChromiumMac.mm: Ditto.
100345        (WebCore):
100346
1003472013-01-24  Kentaro Hara  <haraken@chromium.org>
100348
100349        Unreviewed build fix.
100350
100351        * page/History.h:
100352        (WebCore):
100353
1003542013-01-24  Beth Dakin  <bdakin@apple.com>
100355
100356        Fixed elements sometimes marked out-of-view if you have rubber-banded too far, 
100357        affects flickr.com
100358        https://bugs.webkit.org/show_bug.cgi?id=107882
100359        -and corresponding-
100360        <rdar://problem/13065897>
100361
100362        Reviewed by Simon Fraser.
100363
100364        It is possible to rubber band so far that our fixed object appears to be outside 
100365        of the visibleContentArea(). We should use the 
100366        viewportConstrainedVisibleContentRect() since that is what fixed objects are 
100367        positioned based on anyway. 
100368
100369        * rendering/RenderLayerCompositor.cpp:
100370        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
100371
1003722013-01-24  Kentaro Hara  <haraken@chromium.org>
100373
100374        Unreviewed build fix.
100375
100376        * bindings/js/JSHistoryCustom.cpp:
100377        (WebCore::JSHistory::state):
100378
1003792013-01-24  Julien Brianceau  <jbrianceau@nds.com>
100380
100381        NPN_InitializeVariantWithStringCopy is wrong for platforms returning NULL from malloc(0)
100382        https://bugs.webkit.org/show_bug.cgi?id=96272
100383
100384        Reviewed by Alexey Proskuryakov.
100385
100386        No new tests. This is platform dependent.
100387
100388        * bridge/npruntime.cpp:
100389        (NPN_InitializeVariantWithStringCopy):
100390
1003912013-01-24  Christian Biesinger  <cbiesinger@chromium.org>
100392
100393        resize property doesn't work on iframes
100394        https://bugs.webkit.org/show_bug.cgi?id=9221
100395
100396        Reviewed by Eric Seidel.
100397
100398        Test: fast/css/resize-corner-tracking-transformed-iframe.html
100399        and fast/css/resize-corner-tracking.html
100400
100401        * rendering/RenderIFrame.cpp:
100402        (WebCore::RenderIFrame::requiresLayer):
100403        (WebCore):
100404        * rendering/RenderIFrame.h:
100405        <iframe>s need a layer to be resizable, so make requiresLayer return
100406        true if the css property is set.
100407
100408        * rendering/RenderLayer.cpp:
100409        (WebCore::RenderLayer::canResize):
100410        (WebCore):
100411        (WebCore::RenderLayer::resize):
100412        (WebCore::RenderLayer::positionOverflowControls):
100413        (WebCore::RenderLayer::isPointInResizeControl):
100414        (WebCore::RenderLayer::hitTestOverflowControls):
100415        (WebCore::RenderLayer::hitTestLayer):
100416        * rendering/RenderLayer.h:
100417        (RenderLayer):
100418        Add a new canResize() function and use it instead of hasOverflowClip()
100419        to check whether resizing should be allowed (there's still the
100420        additional check of style()->resize() != RESIZE_NONE, of course)
100421
100422        Make hitTestLayer return |this| when the point is inside the
100423        resizer rectangle.
100424
100425        * rendering/RenderWidget.cpp:
100426        (WebCore::RenderWidget::paint):
100427        Call layer()->paintResizer() to actually paint the resizer.
100428
1004292013-01-24  Kentaro Hara  <haraken@chromium.org>
100430
100431        Regression(r107058): Use-after-free in SerializedScriptValue::deserialize
100432        https://bugs.webkit.org/show_bug.cgi?id=107792
100433
100434        Reviewed by Abhishek Arya.
100435
100436        Imagine the following call path:
100437
100438        (1) history.state is accessed.
100439        (2) V8History::stateAccessorGetter() calls History::state(), which calls
100440        HistoryItem::stateObject().
100441        (3) HistoryItem holds m_stateObject as RefPtr<SerializedScriptValue>,
100442        but HistoryItem::stateObject() returns SerializedScriptValue*.
100443        (4) V8History::stateAccessorGetter calls SerializedScriptValue::deserialize()
100444        for the SerializedScriptValue* obtained in (3).
100445        (5) SerializedScriptValue::deserialize() can call history.replaceState()
100446        in its deserialization process (See the test case in the Chromium bug).
100447        (6) history.replaceState() replaces HistoryItem::m_stateObject.
100448        This replacement destructs the original HistoryItem::m_stateObject.
100449        (7) The current deserialization process can crash due to the premature destruction.
100450
100451        To avoid the problem, we have to pass PassRefPtr<SerializedScriptValue> around
100452        instead of SerializedScriptValue*.
100453
100454        Test: fast/history/replacestate-nocrash.html
100455
100456        * bindings/v8/custom/V8HistoryCustom.cpp:
100457        (WebCore::V8History::stateAccessorGetter):
100458        * history/HistoryItem.h:
100459        (WebCore):
100460        (WebCore::HistoryItem::stateObject):
100461        * loader/FrameLoader.cpp:
100462        (WebCore::FrameLoader::loadInSameDocument):
100463        * loader/FrameLoader.h:
100464        * page/History.cpp:
100465        (WebCore::History::state):
100466        (WebCore::History::stateInternal):
100467        * page/History.h:
100468        (History):
100469
1004702013-01-24  Beth Dakin  <bdakin@apple.com>
100471
100472        Some formerly-fixed objects scroll as if they are still fixed
100473        https://bugs.webkit.org/show_bug.cgi?id=107869
100474
100475        Reviewed by Simon Fraser.
100476
100477        Removing nodes need to mark m_hasChangedProperties on the state tree, otherwise 
100478        they will not be committed to the scrolling tree until something else changes, 
100479        which could actually take a while. During the delay, the scrolling tree will 
100480        continue to move around the formerly-fixed object as long as it still has a layer.
100481        * page/scrolling/ScrollingStateTree.cpp:
100482        (WebCore::ScrollingStateTree::didRemoveNode):
100483
1004842013-01-24  Arko Saha  <arko@motorola.com>
100485
100486        Microdata: itemtype attribute must update correctly on adding or removing tokens
100487        https://bugs.webkit.org/show_bug.cgi?id=106616
100488
100489        Reviewed by Ryosuke Niwa.
100490
100491        Added a new class MicroDataAttributeTokenList, it overrides setValue() method of
100492        DOMSettableTokenList. setValue() is responsible to set the new attribute value for
100493        a given element.
100494
100495        Tests: fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html
100496               fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html
100497               fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html
100498
100499        * CMakeLists.txt:
100500        * GNUmakefile.list.am:
100501        * Target.pri:
100502        * WebCore.gypi:
100503        * WebCore.vcproj/WebCore.vcproj:
100504        * WebCore.xcodeproj/project.pbxproj:
100505        * dom/Node.cpp:
100506        (WebCore::Node::itemProp):
100507        (WebCore::Node::setItemProp):
100508        (WebCore::Node::itemRef):
100509        (WebCore::Node::setItemRef):
100510        (WebCore::Node::itemType):
100511        (WebCore::Node::setItemType):
100512        * dom/NodeRareData.h:
100513        (WebCore::NodeMicroDataTokenLists::itemProp):
100514        (WebCore::NodeMicroDataTokenLists::itemRef):
100515        (WebCore::NodeMicroDataTokenLists::itemType):
100516        (NodeMicroDataTokenLists):
100517        * html/DOMSettableTokenList.h: Made the constructor as protected, so that we can
100518        override setValue() method.
100519        (DOMSettableTokenList):
100520        * html/MicroDataAttributeTokenList.cpp: Added.
100521        (WebCore):
100522        (WebCore::MicroDataAttributeTokenList::MicroDataAttributeTokenList):
100523        (WebCore::MicroDataAttributeTokenList::setValueInternal):
100524        (WebCore::MicroDataAttributeTokenList::setValue): It calls
100525        DOMSettableTokenList::setValue to set internal tokens and value.
100526        * html/MicroDataAttributeTokenList.h: Added.
100527        (WebCore):
100528        (MicroDataAttributeTokenList):
100529        (WebCore::MicroDataAttributeTokenList::create):
100530
1005312013-01-24  Joshua Bell  <jsbell@chromium.org>
100532
100533        IndexedDB: Remove IDBUpgradeNeededEvent, merge with IDBVersionChangeEvent
100534        https://bugs.webkit.org/show_bug.cgi?id=107754
100535
100536        Reviewed by Tony Chang.
100537
100538        The IndexedDB spec calls deleteDatabase() to fire a "blocked" event with the
100539        IDBVersionChangeEvent interface which we were doing, but with an older interface - just
100540        a "version" property. We were already firing an event on "versionchange" with the new
100541        "oldVersion" and "newVersion" properties, but with an IDBUpgradeNeededEvent interface that
100542        doesn't exist in the spec. This patch merges the event types to match the spec, including
100543        that the newVersion property is null when deleting.
100544
100545        Test: storage/indexeddb/events.html
100546              storage/indexeddb/deletedatabase-*.html
100547
100548        * CMakeLists.txt: Remove references to deleted files.
100549        * GNUmakefile.list.am: Ditto.
100550        * Modules/indexeddb/IDBDatabase.cpp:
100551        (WebCore::IDBDatabase::onVersionChange): Generate IDBVersionChangeEvent.
100552        * Modules/indexeddb/IDBOpenDBRequest.cpp:
100553        (WebCore::IDBOpenDBRequest::onBlocked): Ditto.
100554        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): Ditto.
100555        * Modules/indexeddb/IDBUpgradeNeededEvent.cpp: Removed.
100556        * Modules/indexeddb/IDBUpgradeNeededEvent.h: Removed.
100557        * Modules/indexeddb/IDBUpgradeNeededEvent.idl: Removed.
100558        * Modules/indexeddb/IDBVersionChangeEvent.cpp:
100559        (WebCore::IDBVersionChangeEvent::create): Take IDBAny's as old/new versions
100560        may be integers, strings (for legacy databases), or null (when deleting).
100561        (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
100562        * Modules/indexeddb/IDBVersionChangeEvent.h:
100563        (IDBVersionChangeEvent): Remove version property.
100564        (WebCore::IDBVersionChangeEvent::oldVersion): Added new property.
100565        (WebCore::IDBVersionChangeEvent::newVersion): Added new property.
100566        * Modules/indexeddb/IDBVersionChangeEvent.idl: Updated properties.
100567        * WebCore.gypi: Remove references to deleted files.
100568        * dom/EventNames.in: Ditto.
100569
1005702013-01-24  Pratik Solanki  <psolanki@apple.com>
100571
100572        CertificateChain functions in ResourceResponse should be inside proper ifdefs
100573        https://bugs.webkit.org/show_bug.cgi?id=107865
100574
100575        Reviewed by Brady Eidson.
100576
100577        Move ResourceResponse::setCertificateChain() and ResourceResponse::certificateChain()
100578        be under the same ifdefs that they are declared in.
100579
100580        No new tests because no change in functionality.
100581
100582        * platform/network/mac/ResourceResponseMac.mm:
100583
1005842013-01-24  Leo Yang  <leoyang@rim.com>
100585
100586        [BlackBerry] Display HTML5 Appcache manifest
100587        https://bugs.webkit.org/show_bug.cgi?id=107858
100588
100589        Reviewed by Yong Li.
100590        Reviewed internally by Jeff Rogers.
100591
100592        MIME alias no new tests.
100593
100594        * platform/MIMETypeRegistry.cpp:
100595        (WebCore::mimeTypeAssociationMap):
100596
1005972013-01-24  Mike West  <mkwst@chromium.org>
100598
100599        Web Inspector: "XHR loaded!" messages should be DebugMessageLevel.
100600        https://bugs.webkit.org/show_bug.cgi?id=107817
100601
100602        Reviewed by Pavel Feldman.
100603
100604        The 'XHR finished loading:' message is currently sent at
100605        LogMessageLevel. Upon reflection, the only messages that should be
100606        sent at that level are messages the developer generates herself via
100607        'console.*' calls. This message is better categorized as 'debug'.
100608
100609        * inspector/InspectorConsoleAgent.cpp:
100610        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
100611            Change the message to DebugMessageLevel.
100612
1006132013-01-24  James Robinson  <jamesr@chromium.org>
100614
100615        REGRESSION(140571): Crash in ScrollingCoordinator::mainThreadScrollingReasons during Frame::createView
100616        https://bugs.webkit.org/show_bug.cgi?id=107868
100617
100618        Reviewed by Beth Dakin.
100619
100620        When using fixed layout mode, it's possible to update the scrollbar state of the main FrameView before
100621        it's set on the main frame, which can lead to calling in to ScrollingCoordinator to compute main thread
100622        scrolling regions when m_page->mainFrame()->view() is 0. In this case, we don't have any main
100623        thread scrolling reasons and should just return 0.
100624
100625        * page/scrolling/ScrollingCoordinator.cpp:
100626        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
100627
1006282013-01-24  Martin Robinson  <mrobinson@igalia.com>
100629
100630        Abstract the logic for appending a UChar32 onto StringBuilder
100631        https://bugs.webkit.org/show_bug.cgi?id=107505
100632
100633        Reviewed by Darin Adler.
100634
100635        * css/CSSOMUtils.cpp:
100636        (WebCore::serializeCharacter): Use the new StringBuilder append.
100637        (WebCore::serializeIdentifier): Ditto.
100638        (WebCore::serializeString): Ditto.
100639        * html/parser/HTMLEntityParser.cpp:
100640        (WebCore::HTMLEntityParser::consumeNamedEntity): Ditto.
100641        * svg/SVGFontData.cpp:
100642        (WebCore::SVGFontData::createStringWithMirroredCharacters): Ditto.
100643        * xml/parser/CharacterReferenceParserInlines.h:
100644        (WebCore::consumeCharacterReference): Ditto.
100645        * xml/parser/XMLCharacterReferenceParser.cpp: Remove an older helper
100646        superseded by StringBuilder::append.
100647
1006482013-01-24  Kentaro Hara  <haraken@chromium.org>
100649
100650        [V8] Pass an Isolate to GetTemplate() in v8/*.cpp
100651        https://bugs.webkit.org/show_bug.cgi?id=107789
100652
100653        Reviewed by Adam Barth.
100654
100655        No tests. No change in behavior.
100656
100657        * bindings/v8/Dictionary.cpp:
100658        (WebCore::Dictionary::get):
100659        * bindings/v8/PageScriptDebugServer.cpp:
100660        (WebCore::retrieveFrameWithGlobalObjectCheck):
100661        * bindings/v8/V8Binding.cpp:
100662        (WebCore::toDOMWindow):
100663        (WebCore::toScriptExecutionContext):
100664        * bindings/v8/V8DOMWindowShell.cpp:
100665        (WebCore::V8DOMWindowShell::clearForNavigation):
100666        * bindings/v8/V8Initializer.cpp:
100667        (WebCore::findFrame):
100668        (WebCore::failedAccessCheckCallbackInMainThread):
100669        * bindings/v8/WorkerScriptController.cpp:
100670        (WebCore::WorkerScriptController::controllerForContext):
100671        * bindings/v8/custom/V8DOMWindowCustom.cpp:
100672        (WebCore::V8DOMWindow::eventAccessorGetter):
100673        (WebCore::V8DOMWindow::eventAccessorSetter):
100674        (WebCore::V8DOMWindow::toStringCallback):
100675        (WebCore::toV8):
100676        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
100677        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
100678        * bindings/v8/custom/V8InjectedScriptManager.cpp:
100679        (WebCore::createInjectedScriptHostV8Wrapper):
100680        (WebCore::InjectedScriptManager::createInjectedScript):
100681        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
100682        * bindings/v8/custom/V8LocationCustom.cpp:
100683        (WebCore::V8Location::reloadAccessorGetter):
100684        (WebCore::V8Location::replaceAccessorGetter):
100685        (WebCore::V8Location::assignAccessorGetter):
100686        * bindings/v8/custom/V8MessageEventCustom.cpp:
100687        (WebCore::V8MessageEvent::initMessageEventCallback):
100688
1006892013-01-24  Emil A Eklund  <eae@chromium.org>
100690
100691        [svg] Remove unnecessary rounding in SVGRootInlineBox::layoutRootBox
100692        https://bugs.webkit.org/show_bug.cgi?id=107771
100693
100694        Reviewed by Levi Weintraub.
100695        
100696        SVGRootInlineBox::layoutRootBox rounds the location and size of
100697        the container to the nearest enclosing integer values. Now that
100698        layout uses subpixel positioning this is no longer needed and
100699        results in undesirable rounding. For high-dpi screens in
100700        particular this is especially noticeable as it is rounded to
100701        "pixels" which can map to two our more device pixels.
100702
100703        Test: svg/text/text-rect-precision.html
100704
100705        * rendering/svg/SVGRootInlineBox.cpp:
100706        (WebCore::SVGRootInlineBox::layoutRootBox):
100707        Change from enclosingIntRect to enclosingLayoutRect to align to
100708        the closest containing LayoutRect now that layout is done using
100709        subpixel precision.
100710
1007112013-01-24  Philip Rogers  <pdr@google.com>
100712
100713        Preserve container size requests across image loads
100714        https://bugs.webkit.org/show_bug.cgi?id=106733
100715
100716        Reviewed by Tim Horton.
100717
100718        Some images, such as SVG with relative dimensions, depend on the renderer's container size.
100719        r137981 introduced the ability to store pending container size requests that are made
100720        after the image element lays out but before the image loads. Before this patch, cached
100721        images could discard these pending container size requests during cache revalidation.
100722
100723        During a cached image load, two CachedImages exist: the image in cache and a new CachedImage
100724        that will be used if the cache is stale. Pending container size requests are stored
100725        on the second cached image which is discarded if a 304 not modified response is received.
100726
100727        This patch modifies the switchClientsToRevalidatedResource logic to maintain pending
100728        container size requests. This fixes a bug where cached SVG images would be sized
100729        incorrectly.
100730
100731        Test: http/tests/svg/cached-image-sizing.html
100732
100733        * loader/cache/CachedImage.cpp:
100734        (WebCore::CachedImage::switchClientsToRevalidatedResource):
100735
100736            In this virtual call we special-case images with pending size requests and
100737            transfer these requests to the revalidating resource. Note that all container size
100738            requests received before revalidation will be pending because the image has not loaded.
100739            Therefore, there is no risk of discarding non-pending container size requests.
100740
100741        (WebCore):
100742        * loader/cache/CachedImage.h:
100743        (CachedImage):
100744        * loader/cache/CachedResource.h:
100745        (CachedResource):
100746
1007472013-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>
100748
100749        Unreviewed, rolling out r140296.
100750        http://trac.webkit.org/changeset/140296
100751        https://bugs.webkit.org/show_bug.cgi?id=107857
100752
100753        Cause several regresssions (Requested by smfr on #webkit).
100754
100755        * rendering/RenderBox.cpp:
100756        (WebCore::RenderBox::styleDidChange):
100757
1007582013-01-24  Mark Hahnenberg  <mhahnenberg@apple.com>
100759
100760        Objective-C API: Rename JSValue.h/APIJSValue.h to JSCJSValue.h/JSValue.h
100761        https://bugs.webkit.org/show_bug.cgi?id=107327
100762
100763        Reviewed by Filip Pizlo.
100764
100765        No new tests.
100766
100767        We're renaming these two files, so we have to replace the names everywhere.
100768
100769        * ForwardingHeaders/runtime/JSCJSValue.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSValue.h.
100770        * ForwardingHeaders/runtime/JSValue.h: Removed.
100771        * WebCore.vcproj/WebCore.vcproj:
100772        * bindings/js/JSArrayBufferViewHelper.h:
100773        * bindings/js/JSCustomXPathNSResolver.h:
100774        * bindings/js/JSHTMLAllCollectionCustom.cpp:
100775        * bindings/js/JSIntentConstructor.cpp:
100776        * bindings/js/JSMessagePortCustom.h:
100777        * bindings/js/JSNodeFilterCondition.h:
100778        * bindings/js/JavaScriptCallFrame.cpp:
100779        * bindings/js/ScriptCallStackFactory.cpp:
100780        * bindings/js/ScriptValue.h:
100781        * bindings/js/SerializedScriptValue.h:
100782        * bindings/objc/WebScriptObjectPrivate.h:
100783        * bridge/c/c_utility.h:
100784        * bridge/testbindings.cpp:
100785        * bridge/testbindings.mm:
100786        * bridge/testqtbindings.cpp:
100787        * plugins/PluginView.cpp:
100788        * plugins/blackberry/PluginViewBlackBerry.cpp:
100789        * plugins/gtk/PluginViewGtk.cpp:
100790        * plugins/mac/PluginViewMac.mm:
100791        * plugins/qt/PluginViewQt.cpp:
100792        * plugins/win/PluginViewWin.cpp:
100793
1007942013-01-24  Jer Noble  <jer.noble@apple.com>
100795
100796        Unreviewed build fix for Mac/Lion.
100797
100798        Protect Lion from the absence of VideoToolbox.h by wrapping in #if
100799        guards.
100800
100801        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
100802
1008032013-01-24  Anders Carlsson  <andersca@apple.com>
100804
100805        Add stubbed out StorageNamespaceProxy class
100806        https://bugs.webkit.org/show_bug.cgi?id=107846
100807
100808        Reviewed by Sam Weinig.
100809
100810        Make StorageNamespace.h and StorageArea.h private headers.
100811
100812        * WebCore.xcodeproj/project.pbxproj:
100813
1008142013-01-24  Tony Chang  <tony@chromium.org>
100815
100816        Remove document as a parameter from a few internals methods
100817        https://bugs.webkit.org/show_bug.cgi?id=107757
100818
100819        Reviewed by Hajime Morita.
100820
100821        Remove document as a parameter since there's already one associated with internals.
100822
100823        No new tests, this refactors some testing code and is covered by
100824        exisiting tests.
100825
100826        * testing/Internals.cpp:
100827        (WebCore::Internals::isPreloaded):
100828        (WebCore::Internals::createContentElement):
100829        (WebCore::Internals::absoluteCaretBounds):
100830        * testing/Internals.h:
100831        (Internals):
100832        * testing/Internals.idl:
100833
1008342013-01-24  Mike West  <mkwst@chromium.org>
100835
100836        Web Inspector: 'console.debug' should generate messages at DebugMessageLevel.
100837        https://bugs.webkit.org/show_bug.cgi?id=107816
100838
100839        Reviewed by Pavel Feldman.
100840
100841        'console.debug' is currently aliased to 'console.log'. Since we now
100842        render debug-level messages differently to log messages, we should use
100843        the proper message level for 'console.debug'.
100844
100845        * page/Console.cpp:
100846        (WebCore::Console::debug):
100847            Replace the alias to 'console.log' with message creation at
100848            DebugMessageLevel.
100849
1008502013-01-24  Dima Gorbik  <dgorbik@apple.com>
100851
100852        Implement :past pseudo class for the WebVTT ::cue pseudo element
100853        https://bugs.webkit.org/show_bug.cgi?id=105482
100854
100855        Reviewed by Eric Carlson.
100856
100857        It is good to have a designated pseudo class for this, though same could
100858        be achieved by using a combination of ::cue and ::cue(:future).
100859        Tests also check that nested timestamps work properly.
100860
100861        Test: media/track/track-css-matching-timestamps.html
100862
100863        * css/CSSSelector.cpp:
100864        (WebCore::CSSSelector::pseudoId):
100865        (WebCore::nameToPseudoTypeMap):
100866        (WebCore::CSSSelector::extractPseudoType):
100867        * css/CSSSelector.h:
100868        * css/SelectorChecker.cpp:
100869        (WebCore::SelectorChecker::checkOne):
100870
1008712013-01-23  Jer Noble  <jer.noble@apple.com>
100872
100873        Mac: Avoid using k32BGRAPixelFormat on certain platforms.
100874        https://bugs.webkit.org/show_bug.cgi?id=107732
100875
100876        Reviewed by Eric Carlson.
100877
100878        Using a AVPlayerItemVideoOutput to generate ARGB pixel buffers is a potential performance
100879        hit, as the AVPlayerItemVideoOutput will send YUV buffers through a VTPixeBufferTransferSession
100880        to convert them to ARGB regardless of whether or not a given buffer will be used. Instead,
100881        ask the AVPlayerItemVideoOutput for pixel buffers in the decoder's native pixel format and use
100882        the VTPixelBufferTransferSession to convert to ARGB only those pixel buffers which were actually
100883        requested.
100884
100885        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
100886        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
100887        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ask for the decoder's native
100888            pixel format.
100889        (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Lazily create a VTPixelTransferSession
100890            and convert output pixel buffers to k32BGRAPixelFormat.
100891
1008922013-01-24  Christian Biesinger  <cbiesinger@chromium.org>
100893
100894        Convert RenderFullScreen to use the non-deprecated flexbox
100895        https://bugs.webkit.org/show_bug.cgi?id=107746
100896
100897        Reviewed by Ojan Vafai.
100898
100899        Tests: covered by existing tests in fullscreen/.
100900
100901        * rendering/RenderFullScreen.h:
100902        * rendering/RenderFullScreen.cpp:
100903        (RenderFullScreen::RenderFullScreen):
100904        (RenderFullScreen::willBeDestroyed):
100905        Inherit from RenderFlexibleBox
100906
100907        (createFullScreenStyle):
100908        Use the new-style CSS properties (justify-content, etc)
100909
100910        * css/fullscreen.css:
100911        (video:-webkit-full-screen, audio:-webkit-full-screen):
100912        * css/fullscreenQuickTime.css:
100913        (video:-webkit-full-screen::-webkit-media-controls-panel):
100914        (video:-webkit-full-screen::-webkit-media-controls-seek-back-button):
100915        (video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button):
100916        (video:-webkit-full-screen::-webkit-media-controls-seek-forward-button):
100917        * css/mediaControlsBlackBerryFullscreen.css:
100918        (video:-webkit-full-screen::-webkit-media-controls-panel):
100919        (video:-webkit-full-screen::-webkit-media-controls-button-group-container):
100920        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
100921        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
100922        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
100923        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
100924        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
100925        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
100926        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
100927        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
100928        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
100929        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
100930        (video:-webkit-full-screen::-webkit-media-controls-play-button-container):
100931        (video:-webkit-full-screen::-webkit-media-controls-placeholder):
100932        * css/mediaControlsQtFullscreen.css:
100933        (video::-webkit-media-controls-panel):
100934        (video::-webkit-media-controls-play-button):
100935        Update fullscreen-related CSS to use the new flexbox
100936
1009372013-01-23  Jer Noble  <jer.noble@apple.com>
100938
100939        Mac: Video appears in wrong place during pinch operations
100940        https://bugs.webkit.org/show_bug.cgi?id=107730
100941
100942        Reviewed by Eric Carlson.
100943
100944        Send the correct input and output rects, post translation and scaling,
100945        to the CIContext for drawing.
100946
100947        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
100948        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
100949
1009502013-01-24  Max Vujovic  <mvujovic@adobe.com>
100951
100952        [CSS Filters] CSS opacity property clips filter outsets
100953        https://bugs.webkit.org/show_bug.cgi?id=106549
100954
100955        Reviewed by Dirk Schulze.
100956
100957        Expand the transparencyClipBox for filter outsets and pass the filter output rect instead of
100958        the input rect to beginTransparencyLayers for clipping. Details below.
100959
100960        Test: css3/filters/css-opacity-with-drop-shadow.html
100961
100962        * rendering/RenderLayer.cpp:
100963        (WebCore):
100964        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
100965            Replace filter outset calcuation with a call to expandRectForFilterOutsets.
100966        (WebCore::expandRectForFilterOutsets):
100967            New method to factor out repeated filter outset calculation code.
100968        (WebCore::transparencyClipBox):
100969            After expanding the clip rect for descendants and reflection, expand it for filter
100970            outsets, so they don't get clipped when we begin a transparency layer.
100971        (WebCore::RenderLayer::paintLayerContents):
100972            Pass paintingInfo.paintDirtyRect instead of localPaintingInfo.paintDirtyRect to
100973            beginTransparencyLayers for clipping. localPaintingInfo.paintDirtyRect (aka the filter
100974            input rect) does not contain filter outsets, so they would get clipped. Now, we pass
100975            paintingInfo.paintDirtyRect (the filter output rect), which includes the filter outsets.
100976        (WebCore::RenderLayer::calculateLayerBounds):
100977            Replace filter outset calcuation with a call to expandRectForFilterOutsets.
100978        * rendering/RenderLayer.h:
100979        (RenderLayer):
100980
1009812013-01-24  Ryosuke Niwa  <rniwa@webkit.org>
100982
100983        Fix a typo after r139838.
100984
100985        * dom/NodeRareData.h:
100986        (NodeRareData):
100987
1009882013-01-24  Ryosuke Niwa  <rniwa@webkit.org>
100989
100990        Abandoned Memory: SVGFontElement and Corresponding SVGDocument Never Deconstructed
100991        https://bugs.webkit.org/show_bug.cgi?id=66438
100992
100993        Reviewed by Dirk Schulze.
100994
100995        The memory leak was caused by SVGFontFaceElement storing its own parent in a RefPtr.
100996
100997        Fixed the bug by storing a raw pointer instead, and clearing the pointer in removedFrom
100998        when the node detached from the document. Also added several sanity check assertions.
100999
101000        * svg/SVGFontFaceElement.cpp:
101001        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
101002        (WebCore::SVGFontFaceElement::associatedFontElement):
101003        (WebCore::SVGFontFaceElement::rebuildFontFace):
101004        (WebCore::SVGFontFaceElement::insertedInto):
101005        (WebCore::SVGFontFaceElement::removedFrom):
101006        * svg/SVGFontFaceElement.h:
101007        (SVGFontFaceElement):
101008
1010092013-01-22  Robert Hogan  <robert@webkit.org>
101010
101011        Inline Containing Only Collapsed Whitespace Not Getting a Linebox
101012        https://bugs.webkit.org/show_bug.cgi?id=31397
101013
101014        Reviewed by David Hyatt.
101015
101016        Treat inlines containing only collapsed whitespace as empty. This allows them
101017        to get a linebox.
101018
101019        Test: fast/inline/inline-containing-collapsed-whitespace-treated-as-empty.html
101020
101021        * dom/Position.cpp:
101022        (WebCore::boundingBoxLogicalHeight):
101023        (WebCore):
101024        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
101025        * rendering/InlineIterator.h:
101026        (WebCore::isEmptyInline):
101027        (WebCore):
101028        (WebCore::bidiNextShared):
101029        (WebCore::bidiFirstSkippingEmptyInlines):
101030        * rendering/RenderBlockLineLayout.cpp:
101031        (WebCore::alwaysRequiresLineBox):
101032        (WebCore::requiresLineBox):
101033        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
101034        * rendering/RenderText.cpp:
101035        * rendering/RenderText.h:
101036        (RenderText):
101037
1010382013-01-24  Andrey Lushnikov  <lushnikov@chromium.org>
101039
101040        Web Inspector: expand more chunks in DTE
101041        https://bugs.webkit.org/show_bug.cgi?id=107698
101042
101043        Reviewed by Pavel Feldman.
101044
101045        Mock DefaultTextEditor visible area as if it is slightly larger than real one and
101046        do all chunk expandings and repaints based on this new area.
101047
101048        No new tests: no change in behaviour.
101049
101050        * inspector/front-end/DefaultTextEditor.js:
101051        (WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):
101052
1010532013-01-24  Victor Jaquez  <vjaquez@igalia.com>
101054
101055        [GStreamer] Implement setPreservesPitch()
101056        https://bugs.webkit.org/show_bug.cgi?id=31155
101057
101058        Enables audio pitch preservation by using the scaletempo GStreamer
101059        element when required by the MediaPlayer.
101060
101061        Reviewed by Philippe Normand.
101062
101063        No new tests, but a layout test shall be implemented at some point
101064        using WebAudio API.
101065
101066        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
101067        (WebCore::MediaPlayerPrivateGStreamer::setPreservesPitch):
101068        (WebCore):
101069        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
101070        (MediaPlayerPrivateGStreamer):
101071
1010722013-01-24  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
101073
101074        Removing deleted files from WebCore/Target.pri after r140399.
101075        https://bugs.webkit.org/show_bug.cgi?id=107815
101076
101077        Reviewed by Csaba Osztrogonác.
101078
101079        * Target.pri:
101080
1010812013-01-24  Martin Robinson  <mrobinson@igalia.com>
101082
101083        Try to fix the Qt Windows build
101084
101085        * xml/parser/XMLDocumentParserQt.cpp:
101086        (WebCore::decodeNamedEntity): Use a reinterpret_cast to const QChar* like StringQt.cpp.
101087
1010882013-01-24  Andrey Adaikin  <aandrey@chromium.org>
101089
101090        Web Inspector: [Canvas] REGRESSION: stack traces in the replay log are gone
101091        https://bugs.webkit.org/show_bug.cgi?id=107805
101092
101093        Reviewed by Pavel Feldman.
101094
101095        The V8's Error.prepareStackTrace is now called from the Error.captureStackTrace
101096        function instead of the "stack" getter function.
101097
101098        Test: inspector/profiler/canvas2d/canvas-stack-trace.html
101099
101100        * inspector/InjectedScriptCanvasModuleSource.js:
101101        (.):
101102
1011032013-01-23  Andrey Adaikin  <aandrey@chromium.org>
101104
101105        Web Inspector: [Canvas] UI: add a selector to capture a single canvas frame vs consecutive frames
101106        https://bugs.webkit.org/show_bug.cgi?id=107688
101107
101108        Reviewed by Pavel Feldman.
101109
101110        Allow capturing several canvas frames in a row.
101111
101112        * English.lproj/localizedStrings.js:
101113        * inspector/InjectedScriptCanvasModule.cpp:
101114        (WebCore::InjectedScriptCanvasModule::traceLog):
101115        * inspector/InjectedScriptCanvasModule.h:
101116        (InjectedScriptCanvasModule):
101117        * inspector/InjectedScriptCanvasModuleSource.js:
101118        (.):
101119        * inspector/Inspector.json:
101120        * inspector/InspectorCanvasAgent.cpp:
101121        (WebCore::InspectorCanvasAgent::getTraceLog):
101122        * inspector/InspectorCanvasAgent.h:
101123        (InspectorCanvasAgent):
101124        * inspector/front-end/CanvasProfileView.js:
101125        (WebInspector.CanvasProfileView):
101126        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
101127        (WebInspector.CanvasProfileView.prototype._requestTraceLog):
101128        (WebInspector.CanvasProfileType):
101129        (WebInspector.CanvasProfileType.prototype.get statusBarItems):
101130        (WebInspector.CanvasProfileType.prototype.get buttonTooltip):
101131        (WebInspector.CanvasProfileType.prototype.buttonClicked):
101132        (WebInspector.CanvasProfileType.prototype._runSingleFrameCapturing):
101133        (WebInspector.CanvasProfileType.prototype._startFrameCapturing):
101134        (WebInspector.CanvasProfileType.prototype._stopFrameCapturing.didStopCapturing):
101135        (WebInspector.CanvasProfileType.prototype._stopFrameCapturing):
101136        (WebInspector.CanvasProfileType.prototype._didStartCapturingFrame):
101137        (WebInspector.CanvasProfileType.prototype.setRecordingProfile):
101138        (WebInspector.CanvasProfileType.prototype._isSingleFrameMode):
101139        (WebInspector.CanvasProfileHeader):
101140        (WebInspector.CanvasProfileHeader.prototype._updateCapturingStatus):
101141        (WebInspector.CanvasProfileHeader.prototype._requestCapturingStatus):
101142        * inspector/front-end/ProfileLauncherView.js:
101143        (WebInspector.ProfileLauncherView):
101144        * inspector/front-end/ProfilesPanel.js:
101145        (WebInspector.ProfileType.prototype.get statusBarItems):
101146        (WebInspector.ProfilesPanel):
101147        (WebInspector.ProfilesPanel.prototype.get statusBarItems):
101148        (WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
101149        (WebInspector.ProfilesPanel.prototype._reset):
101150        (WebInspector.ProfilesPanel.prototype._showLauncherView):
101151        (WebInspector.ProfilesPanel.prototype.showProfile):
101152        (WebInspector.ProfilesPanel.prototype._updateInterface):
101153        (WebInspector.ProfilesPanel.prototype._resize):
101154
1011552013-01-24  Andreas Kling  <akling@apple.com>
101156
101157        Add CSSSelectorList::isValid().
101158        <http://webkit.org/b/107809>
101159
101160        Reviewed by Antti Koivisto.
101161
101162        Add an isValid() method to CSSSelectorList and use that where applicable instead of checking
101163        if first() is a null pointer.
101164
101165        * css/CSSPageRule.cpp:
101166        (WebCore::CSSPageRule::setSelectorText):
101167        * css/CSSSelectorList.cpp:
101168        * css/CSSSelectorList.h:
101169        (WebCore::CSSSelectorList::isValid):
101170        (WebCore::CSSSelectorList::first):
101171        (CSSSelectorList):
101172        * css/CSSStyleRule.cpp:
101173        (WebCore::CSSStyleRule::setSelectorText):
101174        * html/shadow/HTMLContentElement.cpp:
101175        (WebCore::HTMLContentElement::validateSelect):
101176        * inspector/InspectorStyleSheet.cpp:
101177        (WebCore::checkStyleRuleSelector):
101178
1011792013-01-24  Kai Koehne  <kai.koehne@digia.com>
101180
101181        [Qt] Webkit debug build links against release binaries of ANGLE libEGL, libGLESv2
101182        https://bugs.webkit.org/show_bug.cgi?id=106217
101183
101184        Reviewed by Jocelyn Turcotte.
101185
101186        Use libEGLd, libEGLSv2d if qtbase was compiled with ANGLE.
101187
101188        * WebCore.pri: Mirror logic of qtbase\mkspecs\features\win32\opengl.prf
101189
1011902013-01-24  Sergio Villar Senin  <svillar@igalia.com>
101191
101192        [GTK] Unreviewed build fix.
101193
101194        Do not include the header file WebKitDOMPerformanceEntryList.h in
101195        the build sources because we do not want the DOM bindings
101196        generator to include it in webkitdomdefes.h twice.
101197
101198        * bindings/gobject/GNUmakefile.am:
101199
1012002013-01-24  Julien BRIANCEAU   <jbrianceau@nds.com>
101201
101202        Fix Qt build (KO since r140610), typo error for QString::fromUtf16 function.
101203        https://bugs.webkit.org/show_bug.cgi?id=107803
101204
101205        Reviewed by Andreas Kling.
101206
101207        * xml/parser/XMLDocumentParserQt.cpp:
101208        (WebCore::decodeNamedEntity):
101209
1012102013-01-24  Pavel Feldman  <pfeldman@chromium.org>
101211
101212        Web Inspector: breakpoints are not restored upon reload for scripts with script mapping.
101213        https://bugs.webkit.org/show_bug.cgi?id=107799
101214
101215        The problem is that source mapping is set after UISourceCode gets into the workspace.
101216        Breakpoint manager will now only restore breakpoints upon setting the source maps.
101217
101218        Reviewed by Alexander Pavlov.
101219
101220        * inspector/front-end/BreakpointManager.js:
101221        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
101222        (WebInspector.BreakpointManager.prototype._uiSourceCodeMappingChanged):
101223        * inspector/front-end/CompilerScriptMapping.js:
101224        (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
101225        (WebInspector.CompilerScriptMapping.prototype.get addScript):
101226
1012272013-01-24  Kent Tamura  <tkent@chromium.org>
101228
101229        Refactoring: Use AtomicString for an InputType::create argument
101230        https://bugs.webkit.org/show_bug.cgi?id=107791
101231
101232        Reviewed by Kentaro Hara.
101233
101234        A string passed to InputType::create is a 'type' attribute value, which
101235        is an AtomicString. Also, InputTypeFactoryMap is created with members of
101236        InputTypeName, which are AtomicStrings. We had better use AtomicStrings
101237        for them.
101238
101239        No new tests. This is just a refactoring.
101240
101241        * html/InputType.cpp:
101242        Change the key type of InputTypeFactoryMap from String to AtomicString.
101243        (WebCore::InputType::create):
101244        Change an argument type from const String& to const AtomicString&.
101245        * html/InputType.h:
101246        (InputType): Ditto.
101247
1012482013-01-24  Kentaro Hara  <haraken@chromium.org>
101249
101250        Unreviewed. Build fix.
101251
101252        * bindings/v8/V8DOMWrapper.cpp:
101253        (WebCore::V8DOMWrapper::isDOMWrapper):
101254
1012552013-01-24  Andreas Kling  <akling@apple.com>
101256
101257        AX: Fix the debug build after r140658. (Constructor initializer order.)
101258
101259        * accessibility/AccessibilityNodeObject.cpp:
101260        (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
101261
1012622013-01-24  Hajime Morrita  <morrita@google.com>
101263
101264        There are a few of wrong removeAllChildren() call
101265        https://bugs.webkit.org/show_bug.cgi?id=107790
101266
101267        Reviewed by Ryosuke Niwa.
101268
101269        removeAllChildren() is designed for trashing deleting children out.
101270        It doesn't detach() children and could have possible leak.
101271        This change replaces such removeAllChildren() usage with safer removeChildren().
101272
101273        No new tests. Covered by existing tests.
101274
101275        * html/HTMLInputElement.cpp:
101276        (WebCore::HTMLInputElement::parseAttribute):
101277        * html/InputType.cpp:
101278        (WebCore::InputType::destroyShadowSubtree):
101279        * html/ValidationMessage.cpp:
101280        (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
101281        * html/parser/HTMLTreeBuilder.cpp:
101282        (WebCore::HTMLTreeBuilder::processEndTag):
101283
1012842013-01-24  Dominic Mazzoni  <dmazzoni@google.com>
101285
101286        AX: should init an AXObject only after AXObjectCache has added it
101287        https://bugs.webkit.org/show_bug.cgi?id=107533
101288
101289        Reviewed by Chris Fleizach.
101290
101291        Initialize each AXObject after the AXObjectCache has
101292        finished adding it to its hash maps, so that it's
101293        impossible for initialization of an AXObject to result in
101294        exploring the tree and creating another AXObject instance
101295        that points to the same renderer / node.
101296
101297        Test: accessibility/duplicate-axrenderobject-crash.html
101298
101299        * accessibility/AXObjectCache.cpp:
101300        (WebCore::AXObjectCache::getOrCreate):
101301        * accessibility/AccessibilityARIAGrid.cpp:
101302        (WebCore::AccessibilityARIAGrid::create):
101303        * accessibility/AccessibilityARIAGridCell.cpp:
101304        (WebCore::AccessibilityARIAGridCell::create):
101305        * accessibility/AccessibilityARIAGridRow.cpp:
101306        (WebCore::AccessibilityARIAGridRow::create):
101307        * accessibility/AccessibilityList.cpp:
101308        (WebCore::AccessibilityList::create):
101309        * accessibility/AccessibilityListBox.cpp:
101310        (WebCore::AccessibilityListBox::create):
101311        * accessibility/AccessibilityMediaControls.cpp:
101312        (WebCore::AccessibilityMediaControl::create):
101313        (WebCore::AccessibilityMediaControlsContainer::create):
101314        (WebCore::AccessibilityMediaTimeline::create):
101315        (WebCore::AccessibilityMediaTimeDisplay::create):
101316        * accessibility/AccessibilityMenuList.cpp:
101317        (WebCore::AccessibilityMenuList::create):
101318        * accessibility/AccessibilityNodeObject.cpp:
101319        (WebCore::AccessibilityNodeObject::create):
101320        * accessibility/AccessibilityObject.h:
101321        (WebCore::AccessibilityObject::init):
101322        (AccessibilityObject):
101323        * accessibility/AccessibilityProgressIndicator.cpp:
101324        (WebCore::AccessibilityProgressIndicator::create):
101325        * accessibility/AccessibilityRenderObject.cpp:
101326        (WebCore::AccessibilityRenderObject::create):
101327        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
101328            assert that the object has been initialized
101329        * accessibility/AccessibilitySVGRoot.cpp:
101330        (WebCore::AccessibilitySVGRoot::create):
101331        * accessibility/AccessibilitySlider.cpp:
101332        (WebCore::AccessibilitySlider::create):
101333        * accessibility/AccessibilityTable.cpp:
101334        (WebCore::AccessibilityTable::create):
101335        * accessibility/AccessibilityTableCell.cpp:
101336        (WebCore::AccessibilityTableCell::create):
101337        * accessibility/AccessibilityTableRow.cpp:
101338        (WebCore::AccessibilityTableRow::create):
101339
1013402013-01-23  Kentaro Hara  <haraken@chromium.org>
101341
101342        Implement MouseEvent constructor
101343        https://bugs.webkit.org/show_bug.cgi?id=107630
101344
101345        Reviewed by Adam Barth.
101346
101347        Spec: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
101348
101349        The MouseEvent constructor should be implemented under a DOM4_EVENTS_CONSTRUCTOR flag.
101350        This significantly simplifies JavaScript code to construct a MouseEvent.
101351
101352        Before:
101353          event = document.createEvent("MouseEvents");
101354          event.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
101355
101356        After:
101357          event = new MouseEvent("click");
101358
101359        Test: fast/events/constructors/mouse-event-constructor.html
101360
101361        * bindings/scripts/CodeGenerator.pm:
101362        (IsSubType):
101363        (IsInheritExtendedAttribute):
101364        * bindings/scripts/CodeGeneratorV8.pm:
101365        (GenerateHeader):
101366        (GenerateNamedConstructorCallback):
101367        (GenerateImplementation):
101368        * bindings/scripts/test/V8/V8Float64Array.cpp:
101369        (WebCore):
101370        (WebCore::V8Float64Array::createWrapper):
101371        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
101372        (WebCore):
101373        (WebCore::V8TestActiveDOMObject::createWrapper):
101374        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
101375        (WebCore):
101376        (WebCore::V8TestCustomNamedGetter::createWrapper):
101377        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
101378        (WebCore):
101379        (WebCore::V8TestEventConstructor::createWrapper):
101380        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
101381        (WebCore):
101382        (WebCore::V8TestEventTarget::toEventTarget):
101383        (WebCore::V8TestEventTarget::createWrapper):
101384        * bindings/scripts/test/V8/V8TestEventTarget.h:
101385        (V8TestEventTarget):
101386        * bindings/scripts/test/V8/V8TestException.cpp:
101387        (WebCore):
101388        (WebCore::V8TestException::createWrapper):
101389        * bindings/scripts/test/V8/V8TestInterface.cpp:
101390        (WebCore):
101391        (WebCore::V8TestInterface::toActiveDOMObject):
101392        (WebCore::V8TestInterface::createWrapper):
101393        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
101394        (WebCore):
101395        (WebCore::V8TestMediaQueryListListener::createWrapper):
101396        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
101397        (WebCore):
101398        (WebCore::V8TestNamedConstructor::toActiveDOMObject):
101399        (WebCore::V8TestNamedConstructor::createWrapper):
101400        * bindings/scripts/test/V8/V8TestNode.cpp:
101401        (WebCore):
101402        (WebCore::V8TestNode::toEventTarget):
101403        (WebCore::V8TestNode::createWrapper):
101404        * bindings/scripts/test/V8/V8TestNode.h:
101405        (V8TestNode):
101406        * bindings/scripts/test/V8/V8TestObj.cpp:
101407        (WebCore):
101408        (WebCore::V8TestObj::createWrapper):
101409        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
101410        (WebCore):
101411        (WebCore::V8TestOverloadedConstructors::createWrapper):
101412        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
101413        (WebCore):
101414        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
101415        * bindings/v8/Dictionary.cpp:
101416        (WebCore::Dictionary::get):
101417        (WebCore):
101418        * bindings/v8/Dictionary.h:
101419        (Dictionary):
101420        * bindings/v8/NPV8Object.cpp:
101421        (WebCore::npObjectTypeInfo):
101422        * bindings/v8/V8DOMWrapper.cpp:
101423        (WebCore::V8DOMWrapper::isDOMWrapper):
101424        (WebCore):
101425        * bindings/v8/V8DOMWrapper.h:
101426        (V8DOMWrapper):
101427        * bindings/v8/WrapperTypeInfo.h:
101428        (WebCore):
101429        (WebCore::WrapperTypeInfo::toEventTarget):
101430        (WrapperTypeInfo):
101431        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
101432        (WebCore):
101433        * dom/MouseEvent.cpp:
101434        (WebCore::MouseEventInit::MouseEventInit):
101435        (WebCore):
101436        (WebCore::MouseEvent::create):
101437        (WebCore::MouseEvent::MouseEvent):
101438        * dom/MouseEvent.h:
101439        (MouseEventInit):
101440        (WebCore):
101441        (MouseEvent):
101442        (WebCore::MouseEvent::create):
101443        (WebCore::MouseEvent::button):
101444        (WebCore::MouseEvent::buttonDown):
101445        (WebCore::MouseEvent::relatedTarget):
101446        (WebCore::MouseEvent::setRelatedTarget):
101447        (WebCore::MouseEvent::clipboard):
101448        (WebCore::MouseEvent::dataTransfer):
101449        * dom/MouseEvent.idl:
101450
1014512013-01-23  Kent Tamura  <tkent@chromium.org>
101452
101453        Add form-related instrumentations, and support 33+ features in FeatureObserver
101454        https://bugs.webkit.org/show_bug.cgi?id=107770
101455
101456        Reviewed by Kentaro Hara.
101457
101458        No new tests. This doesn't make behavior changes.
101459
101460        * page/FeatureObserver.h:
101461        - Add form-related features.
101462        - Add a Document* version of observe().
101463        - Use BitVector to represent features to support 33+ features.
101464        (WebCore::FeatureObserver::didObserve):
101465        (FeatureObserver):
101466        * page/FeatureObserver.cpp:
101467        (WebCore::FeatureObserver::FeatureObserver):
101468        (WebCore::FeatureObserver::~FeatureObserver):
101469        (WebCore::FeatureObserver::observe):
101470
101471        * html/ColorInputType.cpp:
101472        (WebCore::ColorInputType::create): Calls FeatureObserver::observe.
101473        * html/DateInputType.cpp:
101474        (WebCore::DateInputType::create): Ditto.
101475        * html/DateTimeInputType.cpp:
101476        (WebCore::DateTimeInputType::create): Ditto.
101477        * html/DateTimeLocalInputType.cpp:
101478        (WebCore::DateTimeLocalInputType::create): Ditto.
101479        * html/EmailInputType.cpp:
101480        (WebCore::EmailInputType::create): Ditto.
101481        * html/HTMLDataListElement.cpp:
101482        (WebCore::HTMLDataListElement::create): Ditto.
101483        * html/HTMLFormControlElement.cpp:
101484        (WebCore::HTMLFormControlElement::parseAttribute): Ditto.
101485        * html/HTMLInputElement.cpp:
101486        (WebCore::HTMLInputElement::parseAttribute): Ditto.
101487        * html/HTMLTextFormControlElement.cpp:
101488        (WebCore::HTMLTextFormControlElement::parseAttribute): Ditto.
101489        * html/InputType.cpp:
101490        (WebCore::InputType::create):
101491        Record type=datetime and type=week even if these types are not enabled.
101492        * html/MonthInputType.cpp:
101493        (WebCore::MonthInputType::create): Calls FeatureObserver::observe.
101494        * html/NumberInputType.cpp:
101495        (WebCore::NumberInputType::create): Ditto.
101496        * html/RangeInputType.cpp:
101497        (WebCore::RangeInputType::create): Ditto.
101498        * html/SearchInputType.cpp:
101499        (WebCore::SearchInputType::create): Ditto.
101500        * html/TelephoneInputType.cpp:
101501        (WebCore::TelephoneInputType::create): Ditto.
101502        * html/TimeInputType.cpp:
101503        (WebCore::TimeInputType::create): Ditto.
101504        * html/URLInputType.cpp:
101505        (WebCore::URLInputType::create): Ditto.
101506        * html/WeekInputType.cpp:
101507        (WebCore::WeekInputType::create): Ditto.
101508
1015092013-01-23  Ken Kania  <kkania@chromium.org>
101510
101511        [Inspector] Add events for tracking page loads and scheduled navigations.
101512        https://bugs.webkit.org/show_bug.cgi?id=104168
101513
101514        Reviewed by Pavel Feldman.
101515
101516        These events are needed for clients who need to be aware of when a page is
101517        navigating or about to navigate. Some clients may wish to prevent interaction
101518        with the page during this time. Two of the new events track loading start and
101519        stop, as measured by the ProgressTracker. The other two events track when a
101520        page has a new scheduled navigation and when it no longer has a scheduled
101521        navigation. These latter two events won't allow the client to determine if
101522        a load is going to happen in all circumstances, but is sufficient for many cases.
101523        Make sure we hold a reference to the frame in NavigationScheduler::timerFired
101524        in case the redirect causes the frame to be detached.
101525
101526        Also, minor update to InspectorInputAgent::dispatchMouseEvent to reorder params
101527        to match dispatchKeyEvent.
101528
101529        Tests: inspector-protocol/page/frameScheduledNavigation.html
101530               inspector-protocol/page/frameStartedLoading.html
101531
101532        * inspector/Inspector.json:
101533        * inspector/InspectorInputAgent.cpp:
101534        (WebCore::InspectorInputAgent::dispatchMouseEvent):
101535        * inspector/InspectorInputAgent.h:
101536        (InspectorInputAgent):
101537        * inspector/InspectorInstrumentation.cpp:
101538        (WebCore):
101539        (WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
101540        (WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
101541        (WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
101542        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
101543        * inspector/InspectorInstrumentation.h:
101544        (InspectorInstrumentation):
101545        (WebCore::InspectorInstrumentation::frameStartedLoading):
101546        (WebCore):
101547        (WebCore::InspectorInstrumentation::frameStoppedLoading):
101548        (WebCore::InspectorInstrumentation::frameScheduledNavigation):
101549        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
101550        * inspector/InspectorPageAgent.cpp:
101551        (WebCore::InspectorPageAgent::frameStartedLoading):
101552        (WebCore):
101553        (WebCore::InspectorPageAgent::frameStoppedLoading):
101554        (WebCore::InspectorPageAgent::frameScheduledNavigation):
101555        (WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
101556        * inspector/InspectorPageAgent.h:
101557        * inspector/front-end/ResourceTreeModel.js:
101558        (WebInspector.PageDispatcher.prototype.frameDetached):
101559        (WebInspector.PageDispatcher.prototype.frameStartedLoading):
101560        (WebInspector.PageDispatcher.prototype.frameStoppedLoading):
101561        (WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
101562        (WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
101563        * loader/NavigationScheduler.cpp:
101564        (WebCore::NavigationScheduler::clear):
101565        (WebCore::NavigationScheduler::timerFired):
101566        (WebCore::NavigationScheduler::startTimer):
101567        (WebCore::NavigationScheduler::cancel):
101568        * loader/ProgressTracker.cpp:
101569        (WebCore::ProgressTracker::progressStarted):
101570        (WebCore::ProgressTracker::finalProgressComplete):
101571
1015722013-01-23  Simon Fraser  <simon.fraser@apple.com>
101573
101574        Avoid creating background layers on pages with a fixed background, but no image
101575        https://bugs.webkit.org/show_bug.cgi?id=107783
101576        <rdar://problem/13074450>
101577
101578        Reviewed by Beth Dakin.
101579        
101580        http://www.nme.com has background-attachment: fixed on the <body>, but
101581        not background image. In that case there's no point making a layer
101582        for the fixed root background.
101583
101584        Test: platform/mac/tiled-drawing/fixed-background/fixed-background-no-image.html
101585
101586        * rendering/style/RenderStyle.cpp:
101587        (WebCore::allLayersAreFixed): Check to see if we have an image, as well
101588        as fixed attachment.
101589
1015902013-01-23  Wei Jia  <wjia@chromium.org>
101591
101592        Enable autoplay when <video>'s src is from media stream
101593        https://bugs.webkit.org/show_bug.cgi?id=105224
101594
101595        Reviewed by Eric Carlson.
101596
101597        Enable autoplay when <video>'s src is from media stream. This would avoid requesting multiple gestures when <video> is used for WebRTC.
101598        The test is done by modifying platform/chromium/media/video-capture-preview.html.
101599
101600        * html/HTMLMediaElement.cpp:
101601        (WebCore::HTMLMediaElement::loadResource):
101602
1016032013-01-23  Roger Fong  <roger_fong@apple.com>
101604
101605        Remove ForwardingHeaders/wtf from WebCore.
101606        https://bugs.webkit.org/show_bug.cgi?id=107723
101607
101608        The folders are empty, nothings actually being copied over anymore from the ForwardingHeaders/wtf folder.
101609
101610        Reviewed by Benjamin Poulain.
101611
101612        * ForwardingHeaders/wtf: Removed.
101613        * ForwardingHeaders/wtf/dtoa: Removed.
101614        * ForwardingHeaders/wtf/text: Removed.
101615        * ForwardingHeaders/wtf/unicode: Removed.
101616        * ForwardingHeaders/wtf/unicode/icu: Removed.
101617        * ForwardingHeaders/wtf/unicode/wince: Removed.
101618        * ForwardingHeaders/wtf/url: Removed.
101619        * WebCore.vcproj/copyForwardingHeaders.cmd:
101620
1016212013-01-23  Hayato Ito  <hayato@chromium.org>
101622
101623        Group parameters (firstRuleIndex and lastRuleIndex) into a parameter object, RuleRange.
101624        https://bugs.webkit.org/show_bug.cgi?id=107095
101625
101626        Reviewed by Darin Adler.
101627
101628        This is a continued effort after r139817.
101629
101630        Factoring, no change in behavior.
101631
101632        * css/StyleResolver.cpp:
101633        (WebCore::StyleResolver::collectMatchingRules):
101634        (WebCore::StyleResolver::collectMatchingRulesForRegion):
101635        (WebCore::StyleResolver::matchScopedAuthorRules):
101636        (WebCore::StyleResolver::matchHostRules):
101637        (WebCore::StyleResolver::matchAuthorRules):
101638        (WebCore::StyleResolver::matchUserRules):
101639        (WebCore::StyleResolver::matchUARules):
101640        (WebCore::StyleResolver::collectMatchingRulesForList):
101641        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
101642        * css/StyleResolver.h:
101643        (WebCore::StyleResolver::RuleRange::RuleRange):
101644        (RuleRange): Newly introduced to group parameters.
101645        (StyleResolver):
101646        (WebCore::StyleResolver::MatchRanges::UARuleRange):
101647        (WebCore::StyleResolver::MatchRanges::authorRuleRange):
101648        (WebCore::StyleResolver::MatchRanges::userRuleRange):
101649
1016502013-01-23  Luke Macpherson   <macpherson@chromium.org>
101651
101652        Support variables inside -webkit-box-reflect CSS property.
101653        https://bugs.webkit.org/show_bug.cgi?id=106856
101654
101655        Reviewed by Tony Chang.
101656
101657        The primary change is to make the direction parameter a CSSPrimitiveValue style ident,
101658        so that it can also be a variable reference.
101659
101660        Covered by existing LayoutTests/compositing/reflections/ tests.
101661        Added Test: fast/css/variables/var-inside-box-reflect.html
101662
101663        * css/CSSComputedStyleDeclaration.cpp:
101664        (WebCore::valueForReflection):
101665        * css/CSSParser.cpp:
101666        (WebCore::CSSParser::parseReflect):
101667        * css/CSSPrimitiveValueMappings.h:
101668        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
101669        (WebCore):
101670        (WebCore::CSSPrimitiveValue::operator CSSReflectionDirection):
101671        (WebCore::CSSPrimitiveValue::convertToLength):
101672        * css/CSSReflectValue.cpp:
101673        (WebCore::CSSReflectValue::customCssText):
101674        Use String addition operator instead of StringBuilder.
101675        (WebCore):
101676        (WebCore::CSSReflectValue::customSerializeResolvingVariables):
101677        Use String addition operator instead of StringBuilder.
101678        * css/CSSReflectValue.h:
101679        (WebCore::CSSReflectValue::create):
101680        (WebCore::CSSReflectValue::direction):
101681        (CSSReflectValue):
101682        (WebCore::CSSReflectValue::CSSReflectValue):
101683        * css/CSSValue.cpp:
101684        (WebCore::CSSValue::serializeResolvingVariables):
101685        * css/StyleResolver.cpp:
101686        (WebCore::hasVariableReference):
101687        (WebCore::StyleResolver::applyProperty):
101688
1016892013-01-23  Abhishek Arya  <inferno@chromium.org>
101690
101691        Add ASSERT_WITH_SECURITY_IMPLICATION to detect bad casts in rendering
101692        https://bugs.webkit.org/show_bug.cgi?id=107743
101693
101694        Reviewed by Eric Seidel.
101695
101696        * rendering/InlineFlowBox.h:
101697        (WebCore::toInlineFlowBox):
101698        * rendering/RenderBR.h:
101699        (WebCore::toRenderBR):
101700        * rendering/RenderBlock.h:
101701        (WebCore::toRenderBlock):
101702        * rendering/RenderBox.h:
101703        (WebCore::toRenderBox):
101704        * rendering/RenderBoxModelObject.h:
101705        (WebCore::toRenderBoxModelObject):
101706        * rendering/RenderButton.h:
101707        (WebCore::toRenderButton):
101708        * rendering/RenderCombineText.h:
101709        (WebCore::toRenderCombineText):
101710        * rendering/RenderCounter.h:
101711        (WebCore::toRenderCounter):
101712        * rendering/RenderDetailsMarker.h:
101713        (WebCore::toRenderDetailsMarker):
101714        * rendering/RenderEmbeddedObject.h:
101715        (WebCore::toRenderEmbeddedObject):
101716        * rendering/RenderFieldset.h:
101717        (WebCore::toRenderFieldset):
101718        * rendering/RenderFileUploadControl.h:
101719        (WebCore::toRenderFileUploadControl):
101720        * rendering/RenderFlowThread.h:
101721        (WebCore::toRenderFlowThread):
101722        * rendering/RenderFrame.h:
101723        (WebCore::toRenderFrame):
101724        * rendering/RenderFrameSet.h:
101725        (WebCore::toRenderFrameSet):
101726        * rendering/RenderFullScreen.h:
101727        (WebCore::toRenderFullScreen):
101728        * rendering/RenderIFrame.h:
101729        (WebCore::toRenderIFrame):
101730        * rendering/RenderImage.h:
101731        (WebCore::toRenderImage):
101732        * rendering/RenderInline.h:
101733        (WebCore::toRenderInline):
101734        * rendering/RenderLayerModelObject.h:
101735        (WebCore::toRenderLayerModelObject):
101736        * rendering/RenderListBox.h:
101737        (WebCore::toRenderListBox):
101738        * rendering/RenderListItem.h:
101739        (WebCore::toRenderListItem):
101740        * rendering/RenderListMarker.h:
101741        (WebCore::toRenderListMarker):
101742        * rendering/RenderMedia.h:
101743        (WebCore::toRenderMedia):
101744        * rendering/RenderMenuList.h:
101745        (WebCore::toRenderMenuList):
101746        * rendering/RenderMeter.h:
101747        (WebCore::toRenderMeter):
101748        * rendering/RenderMultiColumnBlock.h:
101749        (WebCore::toRenderMultiColumnBlock):
101750        * rendering/RenderMultiColumnSet.h:
101751        (WebCore::toRenderMultiColumnSet):
101752        * rendering/RenderNamedFlowThread.h:
101753        (WebCore::toRenderNamedFlowThread):
101754        * rendering/RenderPart.h:
101755        (WebCore::toRenderPart):
101756        * rendering/RenderProgress.h:
101757        (WebCore::toRenderProgress):
101758        * rendering/RenderQuote.h:
101759        (WebCore::toRenderQuote):
101760        * rendering/RenderRegion.h:
101761        (WebCore::toRenderRegion):
101762        * rendering/RenderRubyRun.h:
101763        (WebCore::toRenderRubyRun):
101764        * rendering/RenderScrollbarPart.h:
101765        (WebCore::toRenderScrollbarPart):
101766        * rendering/RenderSearchField.h:
101767        (WebCore::toRenderSearchField):
101768        * rendering/RenderSlider.h:
101769        (WebCore::toRenderSlider):
101770        * rendering/RenderSnapshottedPlugIn.h:
101771        (WebCore::toRenderSnapshottedPlugIn):
101772        * rendering/RenderTable.h:
101773        (WebCore::toRenderTable):
101774        * rendering/RenderTableCaption.h:
101775        (WebCore::toRenderTableCaption):
101776        * rendering/RenderTableCell.h:
101777        (WebCore::toRenderTableCell):
101778        * rendering/RenderTableCol.h:
101779        (WebCore::toRenderTableCol):
101780        * rendering/RenderTableRow.h:
101781        (WebCore::toRenderTableRow):
101782        * rendering/RenderTableSection.h:
101783        (WebCore::toRenderTableSection):
101784        * rendering/RenderText.h:
101785        (WebCore::toRenderText):
101786        * rendering/RenderTextControl.h:
101787        (WebCore::toRenderTextControl):
101788        * rendering/RenderTextControlMultiLine.h:
101789        (WebCore::toRenderTextControlMultiLine):
101790        * rendering/RenderTextControlSingleLine.h:
101791        (WebCore::toRenderTextControlSingleLine):
101792        * rendering/RenderVideo.h:
101793        (WebCore::toRenderVideo):
101794        * rendering/RenderView.h:
101795        (WebCore::toRenderView):
101796        * rendering/RenderWidget.h:
101797        (WebCore::toRenderWidget):
101798        * rendering/mathml/RenderMathMLBlock.h:
101799        (WebCore::toRenderMathMLBlock):
101800        * rendering/svg/RenderSVGContainer.h:
101801        (WebCore::toRenderSVGContainer):
101802        * rendering/svg/RenderSVGGradientStop.h:
101803        (WebCore::toRenderSVGGradientStop):
101804        * rendering/svg/RenderSVGImage.h:
101805        (WebCore::toRenderSVGImage):
101806        * rendering/svg/RenderSVGInlineText.h:
101807        (WebCore::toRenderSVGInlineText):
101808        * rendering/svg/RenderSVGRoot.h:
101809        (WebCore::toRenderSVGRoot):
101810        * rendering/svg/RenderSVGShape.h:
101811        (WebCore::toRenderSVGShape):
101812        * rendering/svg/RenderSVGText.h:
101813        (WebCore::toRenderSVGText):
101814
1018152013-01-23  Elliott Sprehn  <esprehn@gmail.com>
101816
101817        Don't allocate rare data on every Element on removal
101818        https://bugs.webkit.org/show_bug.cgi?id=107756
101819
101820        Reviewed by Eric Seidel.
101821
101822        We should not allocate an ElementRareData for every element
101823        in Element::removedFrom. Previously calls to setIsInTopLayer
101824        would unconditionally call ensureElementRareData(), and this was
101825        called from Element::removedFrom meaning removing an element
101826        made the entire subtree suddenly balloon to huge in size as each
101827        one got an ElementRareData.
101828
101829        This is a regression from my patch on Bug 103912 where I removed a check
101830        that avoided this allocation.
101831
101832        No new tests needed, covered by existing tests.
101833
101834        * dom/Element.cpp:
101835        (WebCore::Element::setIsInTopLayer):
101836
1018372013-01-23  Adam Barth  <abarth@webkit.org>
101838
101839        BackgroundHTMLParser should use more const references to avoid copy constructors
101840        https://bugs.webkit.org/show_bug.cgi?id=107763
101841
101842        Reviewed by Tony Gentilcore.
101843
101844        I doubt this optimization is visible anywhere, but it's just a nit.
101845
101846        * html/parser/BackgroundHTMLParser.cpp:
101847        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
101848        (WebCore::BackgroundHTMLParser::createPartial):
101849        * html/parser/BackgroundHTMLParser.h:
101850        (WebCore::BackgroundHTMLParser::create):
101851        (BackgroundHTMLParser):
101852
1018532013-01-23  Abhishek Arya  <inferno@chromium.org>
101854
101855        Add support for ASSERT_WITH_SECURITY_IMPLICATION.
101856        https://bugs.webkit.org/show_bug.cgi?id=107699
101857
101858        Reviewed by Eric Seidel.
101859
101860        * dom/ContainerNode.cpp:
101861        (WebCore::ContainerNode::parserInsertBefore): Use ASSERT_WITH_SECURITY_IMPLICATION
101862        for document confusion ASSERT(document() == newChild->document())
101863        (WebCore::ContainerNode::parserAppendChild): same.
101864
1018652013-01-23  Ian Vollick  <vollick@chromium.org>
101866
101867        Unreviewed build fix.
101868
101869        * rendering/RenderLayer.cpp:
101870        (WebCore::RenderLayer::rebuildZOrderLists):
101871
1018722013-01-23  Rafael Weinstein  <rafaelw@chromium.org>
101873
101874        Template element should parse in XHTML just as it does in HTML
101875        https://bugs.webkit.org/show_bug.cgi?id=106491
101876
101877        Reviewed by Ryosuke Niwa.
101878
101879        https://dvcs.w3.org/hg/webcomponents/raw-file/f33622c39c5e/spec/templates/index.html#parsing-xhtml-documents.
101880        https://dvcs.w3.org/hg/webcomponents/raw-file/f33622c39c5e/spec/templates/index.html#serializing-xhtml-documents.
101881
101882        This patch modifies the XML parser in two ways: (1) when nodes are created, their owner document is
101883        the owner document of the current node, rather than the containing document, and (2) when an HTMLTemplateElement
101884        is encountered, its content document fragment is pushed onto the stack, rather than the element itself, so that children
101885        are appended to the template content. Also, because XSLT operates on the serialized input document, transforms consider
101886        template contents to be descendants.
101887
101888        Tests: fast/dom/HTMLTemplateElement/xhtml-parsing-and-serialization.xml
101889               fast/xpath/xpath-template-element.html
101890               fast/xsl/xslt-processor-template.html
101891               fast/xsl/xslt-xhtml-template.xml
101892
101893        * xml/parser/XMLDocumentParser.cpp:
101894        (WebCore::XMLDocumentParser::enterText):
101895        * xml/parser/XMLDocumentParserLibxml2.cpp:
101896        (WebCore::XMLDocumentParser::startElementNs):
101897        (WebCore::XMLDocumentParser::processingInstruction):
101898        (WebCore::XMLDocumentParser::cdataBlock):
101899        (WebCore::XMLDocumentParser::comment):
101900
1019012013-01-23  Tony Gentilcore  <tonyg@chromium.org>
101902
101903        Teach threaded HTML parser to update InspectorInstrumentation when writing HTML
101904        https://bugs.webkit.org/show_bug.cgi?id=107755
101905
101906        Reviewed by Eric Seidel.
101907
101908        The current length is unused, so it doesn't cause any noticeable behavior difference to not pass it here.
101909
101910        No new tests because covered by existing tests.
101911
101912        * html/parser/HTMLDocumentParser.cpp:
101913        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
101914
1019152013-01-23  Kentaro Hara  <haraken@chromium.org>
101916
101917        [V8] Make an Isolate parameter mandatory in NativeToJS()
101918        https://bugs.webkit.org/show_bug.cgi?id=107663
101919
101920        Reviewed by Adam Barth.
101921
101922        No tests. No change in behavior.
101923
101924        * bindings/scripts/CodeGeneratorV8.pm:
101925        (GenerateCallbackImplementation):
101926        (NativeToJSValue):
101927        * bindings/scripts/test/V8/V8TestCallback.cpp:
101928        (WebCore::V8TestCallback::callbackWithClass1Param):
101929        (WebCore::V8TestCallback::callbackWithClass2Param):
101930        (WebCore::V8TestCallback::callbackWithStringList):
101931        (WebCore::V8TestCallback::callbackWithBoolean):
101932        (WebCore::V8TestCallback::callbackRequiresThisToPass):
101933
1019342013-01-23  Stephanie Lewis  <slewis@apple.com>
101935
101936        Add ordering for WebCore __DATA.
101937        https://bugs.webkit.org/show_bug.cgi?id=107765
101938        <rdar://problem/13019603>
101939
101940        Rubber stamped by Oliver Hunt.
101941
101942        No Change in functionality.
101943
101944        * WebCore.order:
101945
1019462013-01-23  Benjamin Poulain  <bpoulain@apple.com>
101947
101948        RenderProgress does not repaint on value change
101949        https://bugs.webkit.org/show_bug.cgi?id=106977
101950
101951        Reviewed by Joseph Pecoraro.
101952
101953        No test because the ouput depends on the code of RenderTheme, and
101954        we use the platform theme for testing.
101955
101956        * rendering/RenderProgress.cpp:
101957        (WebCore::RenderProgress::updateFromElement):
101958        (WebCore::RenderProgress::updateAnimationState):
101959        Previously, repaint() was only called on two occasions:
101960        -On animationTimerFired().
101961        -In response to updateFromElement() if and only if the RenderTheme start/stop an
101962         animation previously stopped/running.
101963
101964        When changing the value of HTMLProgressElement, no repaint was called until
101965        the next timer fired for the animation.
101966        This is a problem if:
101967        -The animation of RenderTheme is slow.
101968        -If there is no animation (the element is never updated in that case).
101969
1019702013-01-23  Ian Vollick  <vollick@chromium.org>
101971
101972        Introduce the "stacking container" concept.
101973        https://bugs.webkit.org/show_bug.cgi?id=107734
101974
101975        Reviewed by Simon Fraser.
101976
101977        A stacking container is treated just like a stacking context. That
101978        is, it has z-order lists, it and its descendants are stacked as a
101979        unit, and when the RenderLayerCompositor does its overlap testing,
101980        the composited regions for all layer lists take effect only once the
101981        stacking container is done being processed.
101982
101983        This patch also adds the function RenderLayer::isStackingContainer().
101984        Currently, this is equivalent to RenderLayer::isStackingContext(),
101985        but in future, the definition of stacking container will be broadened
101986        to encompass more than just stacking contexts.
101987
101988        Other than the addition of this extra function, the patch is mostly
101989        comprised of name changes. Any code that used to refer to the
101990        stacking context concept, but didn't necessarily require a stacking
101991        context in the strict, CSS-sense, was switched to refer to stacking
101992        container. No functionality was changed.
101993
101994        No new tests, no change in functionality.
101995
101996        * inspector/InspectorLayerTreeAgent.cpp:
101997        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
101998        * rendering/RenderLayer.cpp:
101999        (WebCore::RenderLayer::RenderLayer):
102000        (WebCore):
102001        (WebCore::RenderLayer::updatePagination):
102002        (WebCore::RenderLayer::canBeStackingContainer):
102003        (WebCore::RenderLayer::setHasVisibleContent):
102004        (WebCore::RenderLayer::dirty3DTransformedDescendantStatus):
102005        (WebCore::RenderLayer::stackingContainer):
102006        (WebCore::compositingContainer):
102007        (WebCore::expandClipRectForDescendantsAndReflection):
102008        (WebCore::RenderLayer::addChild):
102009        (WebCore::RenderLayer::removeChild):
102010        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
102011        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
102012        (WebCore::RenderLayer::paintPaginatedChildLayer):
102013        (WebCore::RenderLayer::hitTestPaginatedChildLayer):
102014        (WebCore::RenderLayer::calculateLayerBounds):
102015        (WebCore::RenderLayer::dirtyZOrderLists):
102016        (WebCore::RenderLayer::dirtyStackingContainerZOrderLists):
102017        (WebCore::RenderLayer::collectLayers):
102018        (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded):
102019        (WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
102020        (WebCore::RenderLayer::styleChanged):
102021        * rendering/RenderLayer.h:
102022        (RenderLayer):
102023        (WebCore::RenderLayer::isStackingContainer):
102024        (WebCore::RenderLayer::posZOrderList):
102025        (WebCore::RenderLayer::negZOrderList):
102026        (WebCore::RenderLayer::isDirtyStackingContainer):
102027        (WebCore::RenderLayer::clearZOrderLists):
102028        (WebCore::RenderLayer::updateZOrderLists):
102029        * rendering/RenderLayerBacking.cpp:
102030        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
102031        (WebCore::RenderLayerBacking::compositingOpacity):
102032        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
102033        * rendering/RenderLayerCompositor.cpp:
102034        (WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer):
102035        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
102036        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
102037        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
102038        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
102039        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
102040        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
102041        (WebCore::RenderLayerCompositor::layerHas3DContent):
102042        (WebCore::isRootmostFixedOrStickyLayer):
102043
1020442013-01-23  Simon Fraser  <simon.fraser@apple.com>
102045
102046        Have scrollperf logging log information about wheel event handlers
102047        https://bugs.webkit.org/show_bug.cgi?id=107761
102048        <rdar://problem/12281015>
102049
102050        Reviewed by Tim Horton.
102051
102052        Log when the wheel event handler count of a ScrollingTreeScrollingNodeMac changes.
102053
102054        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
102055        (WebCore::ScrollingTreeScrollingNodeMac::update):
102056        (WebCore::logWheelEventHandlerCountChanged):
102057
1020582013-01-23  Kentaro Hara  <haraken@chromium.org>
102059
102060        [V8] Add an optional Isolate parameter to GetTemplate() and GetRawTemplate()
102061        https://bugs.webkit.org/show_bug.cgi?id=107679
102062
102063        Reviewed by Adam Barth.
102064
102065        It is important to pass an Isolate to GetTemplate() and GetRawTemplate().
102066        To proceed the work incrementally, this patch adds an optional Isolate parameter
102067        to GetTemplate() and GetRawTemplate(). Once all call sites are updated, the
102068        Isolate parameter will be made mandatory.
102069
102070        No tests. No change in behavior.
102071
102072        * bindings/scripts/CodeGeneratorV8.pm:
102073        (GenerateHeader):
102074        (GenerateNamedConstructorCallback):
102075        (GenerateImplementation):
102076        * bindings/scripts/test/V8/V8Float64Array.cpp:
102077        (WebCore::V8Float64Array::GetRawTemplate):
102078        (WebCore::V8Float64Array::GetTemplate):
102079        * bindings/scripts/test/V8/V8Float64Array.h:
102080        (V8Float64Array):
102081        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
102082        (WebCore::V8TestActiveDOMObject::GetRawTemplate):
102083        (WebCore::V8TestActiveDOMObject::GetTemplate):
102084        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
102085        (V8TestActiveDOMObject):
102086        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
102087        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
102088        (WebCore::V8TestCustomNamedGetter::GetTemplate):
102089        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
102090        (V8TestCustomNamedGetter):
102091        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
102092        (WebCore::V8TestEventConstructor::GetRawTemplate):
102093        (WebCore::V8TestEventConstructor::GetTemplate):
102094        * bindings/scripts/test/V8/V8TestEventConstructor.h:
102095        (V8TestEventConstructor):
102096        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
102097        (WebCore::V8TestEventTarget::GetRawTemplate):
102098        (WebCore::V8TestEventTarget::GetTemplate):
102099        * bindings/scripts/test/V8/V8TestEventTarget.h:
102100        (V8TestEventTarget):
102101        * bindings/scripts/test/V8/V8TestException.cpp:
102102        (WebCore::V8TestException::GetRawTemplate):
102103        (WebCore::V8TestException::GetTemplate):
102104        * bindings/scripts/test/V8/V8TestException.h:
102105        (V8TestException):
102106        * bindings/scripts/test/V8/V8TestInterface.cpp:
102107        (WebCore::V8TestInterface::GetRawTemplate):
102108        (WebCore::V8TestInterface::GetTemplate):
102109        * bindings/scripts/test/V8/V8TestInterface.h:
102110        (V8TestInterface):
102111        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
102112        (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
102113        (WebCore::V8TestMediaQueryListListener::GetTemplate):
102114        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
102115        (V8TestMediaQueryListListener):
102116        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
102117        (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
102118        (WebCore::V8TestNamedConstructor::GetRawTemplate):
102119        (WebCore::V8TestNamedConstructor::GetTemplate):
102120        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
102121        (V8TestNamedConstructorConstructor):
102122        (V8TestNamedConstructor):
102123        * bindings/scripts/test/V8/V8TestNode.cpp:
102124        (WebCore::V8TestNode::GetRawTemplate):
102125        (WebCore::V8TestNode::GetTemplate):
102126        * bindings/scripts/test/V8/V8TestNode.h:
102127        (V8TestNode):
102128        * bindings/scripts/test/V8/V8TestObj.cpp:
102129        (WebCore::V8TestObj::GetRawTemplate):
102130        (WebCore::V8TestObj::GetTemplate):
102131        * bindings/scripts/test/V8/V8TestObj.h:
102132        (V8TestObj):
102133        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
102134        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
102135        (WebCore::V8TestOverloadedConstructors::GetTemplate):
102136        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
102137        (V8TestOverloadedConstructors):
102138        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
102139        (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
102140        (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
102141        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
102142        (V8TestSerializedScriptValueInterface):
102143        * bindings/v8/WrapperTypeInfo.h:
102144        (WebCore):
102145        (WebCore::WrapperTypeInfo::getTemplate):
102146        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
102147        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
102148        * bindings/v8/custom/V8HTMLImageElementConstructor.h:
102149        (V8HTMLImageElementConstructor):
102150
1021512013-01-23  Kentaro Hara  <haraken@chromium.org>
102152
102153        [V8] Move V8DOMWrapper::getEventListener() to V8EventListerList
102154        https://bugs.webkit.org/show_bug.cgi?id=107683
102155
102156        Reviewed by Adam Barth.
102157
102158        No tests. No change in behavior.
102159
102160        * bindings/scripts/CodeGeneratorV8.pm:
102161        (GenerateNormalAttrSetter):
102162        (GenerateEventListenerCallback):
102163        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
102164        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
102165        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
102166        * bindings/scripts/test/V8/V8TestObj.cpp:
102167        (WebCore::TestObjV8Internal::addEventListenerCallback):
102168        (WebCore::TestObjV8Internal::removeEventListenerCallback):
102169        * bindings/v8/V8DOMWrapper.cpp:
102170        * bindings/v8/V8DOMWrapper.h:
102171        (V8DOMWrapper):
102172        * bindings/v8/V8EventListenerList.cpp:
102173        (WebCore::V8EventListenerList::getEventListener):
102174        (WebCore):
102175        * bindings/v8/V8EventListenerList.h:
102176        (WebCore):
102177        (V8EventListenerList):
102178        (WebCore::V8EventListenerList::findWrapper):
102179        (WebCore::V8EventListenerList::clearWrapper):
102180        (WebCore::V8EventListenerList::doFindWrapper):
102181        (WebCore::V8EventListenerList::getHiddenProperty):
102182        (WebCore::V8EventListenerList::findOrCreateWrapper):
102183        * bindings/v8/custom/V8DOMWindowCustom.cpp:
102184        (WebCore::V8DOMWindow::addEventListenerCallback):
102185        (WebCore::V8DOMWindow::removeEventListenerCallback):
102186
1021872013-01-23  Dominic Mazzoni  <dmazzoni@google.com>
102188
102189        AX: AXObjectCache should be initialized with topDocument
102190        https://bugs.webkit.org/show_bug.cgi?id=107638
102191
102192        Reviewed by Chris Fleizach.
102193
102194        Initialize AXObjectCache with the top document, not the
102195        document that axObjectCache happened to be called on, which
102196        could be an iframe. Having an AXObjectCache with the wrong
102197        document could cause a heap-use-after-free in
102198        notificationPostTimerFired if the inner document was deleted
102199        while notifications were pending.
102200
102201        * dom/Document.cpp:
102202        (WebCore::Document::axObjectCache):
102203
1022042012-12-12  Ryosuke Niwa  <rniwa@webkit.org>
102205
102206        REGRESSION: WebKit does not render selection in non-first ruby text nodes.
102207        https://bugs.webkit.org/show_bug.cgi?id=92818
102208
102209        Reviewed by Levi Weintraub.
102210
102211        The patch is based on the one submitted by Sukolsak Sakshuwong.
102212
102213        The bug was caused by the fact isSelectionRoot was returning false on RenderRubyRun even though
102214        it doesn't lay down its children in block direction.
102215
102216        The selection painting code assumes that all blocks in each selection root are laid down in
102217        the containing block direction. In particular, InlineTextBox::paintSelection calls
102218        RootInlineBox::selectionTopAdjustedForPrecedingBlock in order to determine the end of the previous
102219        line, which in turn calls blockBeforeWithinSelectionRoot. blockBeforeWithinSelectionRoot goes
102220        through block nodes that appears before "this" block, and selectionTopAdjustedForPrecedingBlock
102221        assumes that to compute the end of the previous line.
102222
102223        Now suppose we have markup such as <ruby>Ichi<rt>One</rt></ruby><ruby>Ni<rt>Two</rt></ruby>. When
102224        selectionTopAdjustedForPrecedingBlock is called on the line box generated for "Two", it tries to
102225        determine the bottom of the inline box above that of "Two", which blockBeforeWithinSelectionRoot
102226        determines to be that of "One". At this point, everything goes wrong and the selection height is
102227        computed to be 0.
102228
102229        The fix to this problem is to allow RenderRubyRun to be a selection root. Since RenderRubyRun is
102230        already an inline-block, it suffices to bypass the !nonPseudoNode() check. In fact, there is no
102231        need to check this condition anymore as far as I can tell. The check was added in
102232        http://trac.webkit.org/changeset/12986 but all tests added by this change set as well as the rest
102233        of layout tests pass without this condition.
102234
102235        Test: fast/ruby/select-ruby.html
102236
102237        * rendering/RenderBlock.cpp:
102238        (WebCore::RenderBlock::isSelectionRoot):
102239
1022402013-01-23  Kentaro Hara  <haraken@chromium.org>
102241
102242        [V8] Reduce usage of deprecatedV8String() and deprecatedV8Integer()
102243        https://bugs.webkit.org/show_bug.cgi?id=107674
102244
102245        Reviewed by Adam Barth.
102246
102247        No tests. No change in behavior.
102248
102249        * bindings/v8/JavaScriptCallFrame.cpp:
102250        (WebCore::JavaScriptCallFrame::evaluate):
102251        * bindings/v8/NPV8Object.cpp:
102252        (_NPN_Enumerate):
102253        * bindings/v8/PageScriptDebugServer.cpp:
102254        (WebCore::PageScriptDebugServer::addListener):
102255        * bindings/v8/ScriptController.cpp:
102256        (WebCore::ScriptController::bindToWindowObject):
102257        (WebCore::ScriptController::disableEval):
102258        * bindings/v8/ScriptDebugServer.cpp:
102259        (WebCore::ScriptDebugServer::setBreakpoint):
102260        (WebCore::ScriptDebugServer::removeBreakpoint):
102261        (WebCore::ScriptDebugServer::setScriptSource):
102262        (WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
102263        (WebCore::ScriptDebugServer::compileScript):
102264        * bindings/v8/ScriptFunctionCall.cpp:
102265        (WebCore::ScriptCallArgumentHandler::appendArgument):
102266        (WebCore::ScriptFunctionCall::call):
102267        (WebCore::ScriptFunctionCall::construct):
102268        * bindings/v8/ScriptProfiler.cpp:
102269        (WebCore::ScriptProfiler::start):
102270        (WebCore::ScriptProfiler::stop):
102271        * bindings/v8/V8DOMWindowShell.cpp:
102272        (WebCore::V8DOMWindowShell::initializeIfNeeded):
102273        (WebCore::V8DOMWindowShell::namedItemAdded):
102274        (WebCore::V8DOMWindowShell::namedItemRemoved):
102275        * bindings/v8/V8LazyEventListener.cpp:
102276        (WebCore::V8LazyEventListener::prepareListenerObject):
102277        * bindings/v8/V8MutationCallback.cpp:
102278        (WebCore::V8MutationCallback::handleEvent):
102279        * bindings/v8/WorkerScriptController.cpp:
102280        (WebCore::WorkerScriptController::evaluate):
102281        * bindings/v8/WorkerScriptDebugServer.cpp:
102282        (WebCore::WorkerScriptDebugServer::addListener):
102283        * bindings/v8/custom/V8InjectedScriptManager.cpp:
102284        (WebCore::InjectedScriptManager::createInjectedScript):
102285
1022862013-01-23  Martin Robinson  <mrobinson@igalia.com>
102287
102288        WebKit should support decoding multi-byte entities in XML content
102289        https://bugs.webkit.org/show_bug.cgi?id=107459
102290
102291        Reviewed by Adam Barth.
102292
102293        Test: fast/parser/entities-in-xhtml.xhtml
102294
102295        * html/parser/HTMLEntityParser.cpp:
102296        (WebCore::appendUChar32ToUCharArray): Added this helper function. Later patches
102297        may try to move this code to somewhere that it can be shared more easily.
102298        (WebCore::decodeNamedEntityToUCharArray): Modify this function to work on a UChar
102299        array four elements long, so that multi-byte and multi-character entities can be resolved.
102300        * html/parser/HTMLEntityParser.h: Updated function declaratoin.
102301        * xml/parser/XMLDocumentParserLibxml2.cpp:
102302        (WebCore): Modify the statically allocated entity string memory area to accommodate
102303        up to two UTF-8 characters. Each UTF-8 character can be 4 bytes, so this brings the
102304        total size to 9 bytes.
102305        (WebCore::getXHTMLEntity): Use the new entity decoding API.
102306        * xml/parser/XMLDocumentParserQt.cpp:
102307        (WebCore::EntityResolver::resolveUndeclaredEntity): Ditto.
102308        (WebCore::XMLDocumentParser::parse): Ditto.
102309
1023102013-01-23  Eric Seidel  <eric@webkit.org>
102311
102312        Stop the background-parser during HTMLDocumentParser::detatch to prevent crashes/asserts
102313        https://bugs.webkit.org/show_bug.cgi?id=107751
102314
102315        Reviewed by Tony Gentilcore.
102316
102317        This appears to fix the 2 intermitent crashers we were seeing while
102318        running fast/parser.  And definitely fixes 8 ASSERTs seen using a Debug build.
102319
102320        * html/parser/HTMLDocumentParser.cpp:
102321        (WebCore::HTMLDocumentParser::detach):
102322
1023232013-01-23  Hans Muller  <hmuller@adobe.com>
102324
102325        [CSS Exclusions] Add support for computing first included interval position for polygons
102326        https://bugs.webkit.org/show_bug.cgi?id=103429
102327
102328        Reviewed by Dirk Schulze.
102329
102330        Added support for computing the "first fit" location, i.e. the logical shape-inside
102331        location where a line's layout begins. The algorithm for doing so is described here:
102332        http://hansmuller-webkit.blogspot.com/2012/08/revised-algorithm-for-finding-first.html.
102333
102334        Tests: fast/exclusions/shape-inside/shape-inside-first-fit-001.html
102335               fast/exclusions/shape-inside/shape-inside-first-fit-002.html
102336               fast/exclusions/shape-inside/shape-inside-first-fit-003.html
102337
102338        * platform/graphics/FloatSize.h:
102339        (WebCore::operator*): Scale a FloatSize. This simplified the final expression in VertexPair::intersection().
102340        * rendering/ExclusionPolygon.cpp:
102341        (WebCore::isPointOnLineSegment): Returns true if the specified point is collinear and within the line segement's bounds.
102342        (WebCore::leftSide): Return a value > 0 if point is on the left side of the line segment, < 0 if it's on the right, 0 if it's collinear.
102343        (WebCore::ExclusionPolygon::contains): Return true if the point is within the polygon or on an edge.
102344        (WebCore::VertexPair::overlapsRect): Returns true if the line segment from vertex1 to vertex2 overlaps the specified FloatRect.
102345        (WebCore::VertexPair::intersection): Finds the intersection of a pair of line segments defined by VertexPairs.
102346        (WebCore::ExclusionPolygon::firstFitRectInPolygon): Returns true if none of the polygon's edges, except the two used
102347            to define by the offset edges, overlap the FloatRect.
102348        (WebCore::aboveOrToTheLeft): Defines the top/left preference for "first fit" locations.
102349        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Replaced the stub implementation of this method.
102350        * rendering/ExclusionPolygon.h:
102351        (ExclusionPolygon): Added declarations noted above.
102352        (VertexPair): Abstract class that defines a pair of FloatPoints.
102353        (OffsetPolygonEdge): Represents an edge that's horizontally offset from a polygon edge.
102354        (WebCore::OffsetPolygonEdge::edgeIndex): The ExclusionPolygon edge index used to define this OffsetEdge.
102355
1023562013-01-23  Dirk Schulze  <dschulze@adobe.com>
102357
102358        Implement Canvas Path object
102359        https://bugs.webkit.org/show_bug.cgi?id=97333
102360
102361        Reviewed by Dean Jackson.
102362
102363        The Canvas part of the WHATWG specification defines a Path object. This Path object
102364        shares several path segment functions (path methods) with the CanvasRenderingContext2D
102365        interface. This patch introduces the Path object and shares the path segment functions
102366        in the class CanvasPathMethods.
102367        This patch does just implement the basic path functions that have a general agreement on
102368        the WHAT WG and W3C mailing lists.
102369        This feature is behind a flag and won't be activated by default.
102370
102371        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#path-objects
102372
102373        Test: fast/canvas/canvas-path-object.html
102374
102375        * CMakeLists.txt: Add DOMPath and CanvasPathMedthods to build system.
102376        * DerivedSources.cpp: Ditto.
102377        * DerivedSources.make: Ditto.
102378        * DerivedSources.pri: Ditto.
102379        * GNUmakefile.list.am: Ditto.
102380        * Target.pri: Ditto.
102381        * WebCore.gypi: Ditto.
102382        * WebCore.vcproj/WebCore.vcproj: Ditto.
102383        * WebCore.xcodeproj/project.pbxproj: Ditto.
102384        * html/canvas/CanvasPathMethods.cpp: Added.
102385        (WebCore): This class shares the path segment functions (moveTo, lineTo, ...) between
102386            DOMPath (the Path object) and CanvasRenderingContext2D.
102387        (WebCore::CanvasPathMethods::closePath):
102388        (WebCore::CanvasPathMethods::moveTo):
102389        (WebCore::CanvasPathMethods::lineTo):
102390        (WebCore::CanvasPathMethods::quadraticCurveTo):
102391        (WebCore::CanvasPathMethods::bezierCurveTo):
102392        (WebCore::CanvasPathMethods::arcTo):
102393        (WebCore::CanvasPathMethods::arc):
102394        (WebCore::CanvasPathMethods::rect):
102395        * html/canvas/CanvasPathMethods.h: Added.
102396        (WebCore):
102397        (CanvasPathMethods):
102398        (WebCore::CanvasPathMethods::~CanvasPathMethods):
102399        (WebCore::CanvasPathMethods::transformIsInvertible):
102400        (WebCore::CanvasPathMethods::CanvasPathMethods):
102401        * html/canvas/CanvasRenderingContext2D.cpp:
102402        * html/canvas/CanvasRenderingContext2D.h: Remove the path segment functions here.
102403        (CanvasRenderingContext2D):
102404        (WebCore::CanvasRenderingContext2D::transformIsInvertible): This checks if the CTM
102405            of the context is still invertible. Drawing should stop if it is not.
102406        * html/canvas/CanvasRenderingContext2D.idl:
102407        * html/canvas/DOMPath.h: Added.
102408        (WebCore):
102409        (DOMPath):
102410        (WebCore::DOMPath::create):
102411        (WebCore::DOMPath::~DOMPath):
102412        (WebCore::DOMPath::DOMPath):
102413        * html/canvas/DOMPath.idl: Added.
102414        * page/DOMWindow.idl: Added CTOR for Path.
102415
1024162013-01-23  Joshua Bell  <jsbell@chromium.org>
102417
102418        IndexedDB: Remove IDBVersionChangeRequest
102419        https://bugs.webkit.org/show_bug.cgi?id=107711
102420
102421        Reviewed by Tony Chang.
102422
102423        When the setVersion() API was removed from the Indexed DB spec the IDBVersionChangeRequest
102424        interface was replaced with IDBOpenDBRequest. We switched over for open(), this completes
102425        the work by switching over for deleteDatabase() and removing the old code. (On the Event
102426        side we still need to combine IDBVersionChangeEvent and IDBUpgradeNeededEvent.)
102427
102428        Test: storage/indexeddb/intversion-long-queue.html
102429              storage/indexeddb/intversion-upgrades.html
102430
102431        * CMakeLists.txt: Remove references to deleted code.
102432        * DerivedSources.make: Ditto.
102433        * GNUmakefile.list.am: Ditto.
102434        * Modules/indexeddb/IDBCallbacks.h: Remove unused onBlocked() overload.
102435        * Modules/indexeddb/IDBDatabase.cpp: Remove references to deleted code.
102436        * Modules/indexeddb/IDBDatabase.h: Ditto.
102437        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
102438        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): Fire onBlocked with current version.
102439        * Modules/indexeddb/IDBFactory.cpp:
102440        (WebCore::IDBFactory::openInternal): Don't need to specify source.
102441        (WebCore::IDBFactory::deleteDatabase): Use an IDBOpenDBRequest.
102442        * Modules/indexeddb/IDBFactory.h: Change return type of deleteDatabase()
102443        * Modules/indexeddb/IDBFactory.idl: Ditto.
102444        * Modules/indexeddb/IDBOpenDBRequest.cpp:
102445        (WebCore::IDBOpenDBRequest::create): Always use a null source.
102446        (WebCore::IDBOpenDBRequest::IDBOpenDBRequest): Pass null source to base class.
102447        (WebCore::IDBOpenDBRequest::dispatchEvent): Don't assume result is a database in existing
102448        special case.
102449        * Modules/indexeddb/IDBOpenDBRequest.h: Don't need a source argument (always null).
102450        * Modules/indexeddb/IDBVersionChangeRequest.cpp: Removed.
102451        * Modules/indexeddb/IDBVersionChangeRequest.h: Removed.
102452        * Modules/indexeddb/IDBVersionChangeRequest.idl: Removed.
102453        * WebCore.gypi: Remove references to deleted code.
102454        * WebCore.xcodeproj/project.pbxproj: Remove references to deleted code.
102455        * dom/EventTarget.h: Remove references to deleted code.
102456        * dom/EventTargetFactory.in: Ditto.
102457
1024582013-01-23  Scott Graham  <scottmg@chromium.org>
102459
102460        [Chromium] Fix inclusion of pch .cpp in webcore_platform and webcore_rendering
102461        https://bugs.webkit.org/show_bug.cgi?id=107700
102462
102463        Reviewed by Dirk Pranke.
102464
102465        No new tests, Chromium should link on VS 2012.
102466
102467        * WebCore.gyp/WebCore.gyp:
102468
1024692013-01-23  Jun Jiang  <jun.a.jiang@intel.com>
102470
102471        Avoid unnecessary format conversion for tex{Sub}Image2D() for ImageData of WebGL
102472        https://bugs.webkit.org/show_bug.cgi?id=107532
102473
102474        Reviewed by Kenneth Russell.
102475
102476        This patch removes the unnecessary format conversion in tex{Sub}Image2D() for ImageData in WebGL to improve performance.
102477
102478        Already covered by current tests.
102479
102480        * html/canvas/WebGLRenderingContext.cpp:
102481        (WebCore):
102482        (WebCore::WebGLRenderingContext::texImage2D):
102483        (WebCore::WebGLRenderingContext::texSubImage2D):
102484
1024852013-01-23  Xianzhu Wang  <wangxianzhu@chromium.org>
102486
102487        Should update compositing state when an out-of-view fixed position element becomes in-view
102488        https://bugs.webkit.org/show_bug.cgi?id=107410
102489
102490        Reviewed by Simon Fraser.
102491
102492        When a non-compositing page contains some not-composited fixed position element because of bounds out-of-view, when the element changes position and RenderLayerCompositor::updateCompositingLayers() is called, the function may return early because of "if (!m_reevaluateCompositingAfterLayout && !m_compositing)" without updating the compositing layers.
102493
102494        Set m_reevaluateCompositingAfterLayout when a fixed position element is not composited because of bounds out-of-view.
102495
102496        Test: compositing/layer-creation/fixed-position-change-out-of-view-in-view.html
102497
102498        * rendering/RenderLayerCompositor.cpp:
102499        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
102500
1025012013-01-23  Tony Chang  <tony@chromium.org>
102502
102503        Unreviewed, set svn:eol-style to CRLF on Windows .sln files.
102504
102505        * WebCore.vcproj/WebCore.sln: Modified property svn:eol-style.
102506        * WebCore.vcproj/WebCore.submit.sln: Modified property svn:eol-style.
102507
1025082013-01-23  Adam Barth  <abarth@webkit.org>
102509
102510        BackgroundHTMLParser::sendTokensToMainThread should use bind
102511        https://bugs.webkit.org/show_bug.cgi?id=107637
102512
102513        Reviewed by Eric Seidel.
102514
102515        This patch replaces our hand-written implementation of bind for
102516        didReceiveTokensFromBackgroundParser with bind from Functional.h. To
102517        use the generic version of bind, we need to switch to using WeakPtr to
102518        hold a reference to the main thread parser in the BackgroundHTMLParser.
102519
102520        * html/parser/BackgroundHTMLParser.cpp:
102521        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
102522        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
102523        (WebCore::BackgroundHTMLParser::createPartial):
102524        * html/parser/BackgroundHTMLParser.h:
102525        (WebCore::BackgroundHTMLParser::create):
102526        (BackgroundHTMLParser):
102527        (ParserMap):
102528        * html/parser/HTMLDocumentParser.cpp:
102529        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
102530        (WebCore::HTMLDocumentParser::startBackgroundParser):
102531        (WebCore::HTMLDocumentParser::stopBackgroundParser):
102532        * html/parser/HTMLDocumentParser.h:
102533        (HTMLDocumentParser):
102534
1025352013-01-23  Roger Fong  <roger_fong@apple.com>
102536
102537        Unreviewed. Cleanup VS2010 WebCore project. 
102538        Lots of files that no longer exist in solution.
102539
102540        * WebCore.vcxproj/WebCore.vcxproj:
102541        * WebCore.vcxproj/WebCore.vcxproj.filters:
102542
1025432013-01-23  Julien Chaffraix  <jchaffraix@webkit.org>
102544
102545        [CSS Grid Layout] Add support for max-content
102546        https://bugs.webkit.org/show_bug.cgi?id=107604
102547
102548        Reviewed by Tony Chang.
102549
102550        Tests: fast/css-grid-layout/minmax-max-content-resolution-columns.html
102551               fast/css-grid-layout/minmax-max-content-resolution-rows.html
102552
102553        This change implements max-content on top of the infrastructure introduced as part
102554        of implementing min-content (bug 106474). No effort was made to share code, which
102555        is what was done for min-content. The sharing will occur in follow-up refactoring(s)
102556        to benefit from the extra testing but also the extra code to make the direction more
102557        obvious.
102558
102559        * rendering/RenderGrid.cpp:
102560        (WebCore::RenderGrid::maxContentForChild):
102561        Added this helper, similar to minContentForChild.
102562
102563        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
102564        Patched the function to handle max-content per the specification's algorithm.
102565
102566        * rendering/RenderGrid.h:
102567        Added maxContentForChild.
102568
1025692013-01-23  Mark Lam  <mark.lam@apple.com>
102570
102571        Assert that Supplementable objects is only used in their creator thread.
102572        https://bugs.webkit.org/show_bug.cgi?id=107717.
102573
102574        Reviewed by Adam Barth.
102575
102576        No new tests.
102577
102578        * platform/Supplementable.h:
102579        (WebCore):
102580        (WebCore::Supplementable::provideSupplement):
102581        (WebCore::Supplementable::removeSupplement):
102582        (WebCore::Supplementable::requireSupplement):
102583        (Supplementable):
102584        (WebCore::Supplementable::Supplementable):
102585
1025862013-01-23  Tony Chang  <tony@chromium.org>
102587
102588        Incorrect scrollable height during simplified layout
102589        https://bugs.webkit.org/show_bug.cgi?id=107193
102590
102591        Reviewed by David Hyatt.
102592
102593        When computing overflow we need the height of the block before
102594        it was clamped (i.e., before updateLogicalHeight() has been called).
102595
102596        During simplified layout, we don't have this information and we were
102597        using the clamped height by mistake. To fix this, we now store the
102598        pre-clamped height on RenderOverflow so we can properly compute
102599        overflow.
102600
102601        Test: fast/overflow/height-during-simplified-layout.html
102602
102603        * rendering/RenderBlock.cpp:
102604        (WebCore::RenderBlock::computeOverflow): Save the height if we have overflow.
102605        (WebCore::RenderBlock::simplifiedLayout): If we have overflow, use the height that we saved
102606        in computeOverflow.
102607        * rendering/RenderOverflow.h:
102608        (WebCore::RenderOverflow::layoutClientAfterEdge):
102609        (WebCore::RenderOverflow::setLayoutClientAfterEdge):
102610        (RenderOverflow): Add a member variable to save the height.
102611
1026122013-01-23  Tom Sepez  <tsepez@chromium.org>
102613
102614        [chromium] harden ScriptWrappable::m_wrapper against tampering
102615        https://bugs.webkit.org/show_bug.cgi?id=107318
102616
102617        Reviewed by Adam Barth.
102618
102619        Patch is correct if existing tests past without crashing.
102620
102621        * bindings/v8/ScriptWrappable.h:
102622        (WebCore::ScriptWrappable::ScriptWrappable):
102623        (WebCore::ScriptWrappable::wrapper):
102624        (WebCore::ScriptWrappable::setWrapper):
102625        (WebCore::ScriptWrappable::clearWrapper):
102626        (WebCore::ScriptWrappable::disposeWrapper):
102627        (WebCore::ScriptWrappable::reportMemoryUsage):
102628        (ScriptWrappable):
102629        (WebCore::ScriptWrappable::maskOrUnmaskPointer):
102630
1026312013-01-22  Roger Fong  <roger_fong@apple.com>
102632
102633        WebCore property sheets, modified build scripts, and project files for compiling in VS2010.
102634        https://bugs.webkit.org/show_bug.cgi?id=106988
102635
102636        Reviewed by Brent Fulgham.
102637
102638        * WebCore.vcproj/WebCore.sln:
102639        * WebCore.vcxproj: Added.
102640        * WebCore.vcxproj/MigrateScripts: Added.
102641        * WebCore.vcxproj/QTMovieWin: Added.
102642        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Added.
102643        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters: Added.
102644        * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.user: Added.
102645        * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props: Added.
102646        * WebCore.vcxproj/QTMovieWin/QTMovieWinDebug.props: Added.
102647        * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props: Added.
102648        * WebCore.vcxproj/WebCore.vcxproj: Added.
102649        * WebCore.vcxproj/WebCore.vcxproj.filters: Added.
102650        * WebCore.vcxproj/WebCore.vcxproj.user: Added.
102651        * WebCore.vcxproj/WebCoreCFNetwork.props: Added.
102652        * WebCore.vcxproj/WebCoreCG.props: Added.
102653        * WebCore.vcxproj/WebCoreCommon.props: Added.
102654        * WebCore.vcxproj/WebCoreDebug.props: Added.
102655        * WebCore.vcxproj/WebCoreGenerated.make: Added.
102656        * WebCore.vcxproj/WebCoreGenerated.vcxproj: Added.
102657        * WebCore.vcxproj/WebCoreGenerated.vcxproj.filters: Added.
102658        * WebCore.vcxproj/WebCoreGenerated.vcxproj.user: Added.
102659        * WebCore.vcxproj/WebCoreGeneratedCommon.props: Added.
102660        * WebCore.vcxproj/WebCoreGeneratedDebug.props: Added.
102661        * WebCore.vcxproj/WebCoreGeneratedRelease.props: Added.
102662        * WebCore.vcxproj/WebCoreMediaQT.props: Added.
102663        * WebCore.vcxproj/WebCorePostBuild.cmd: Added.
102664        * WebCore.vcxproj/WebCorePreBuild.cmd: Added.
102665        * WebCore.vcxproj/WebCorePreLink.cmd: Added.
102666        * WebCore.vcxproj/WebCorePthreads.props: Added.
102667        * WebCore.vcxproj/WebCoreQuartzCore.props: Added.
102668        * WebCore.vcxproj/WebCoreRelease.props: Added.
102669        * WebCore.vcxproj/build-generated-files.sh: Added.
102670        * WebCore.vcxproj/copyForwardingHeaders.cmd: Added.
102671        * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Added.
102672        * WebCore.vcxproj/migrate-scripts.sh: Added.
102673        * WebCore.vcxproj/xcopy.excludes: Added.
102674        * WebCorePrefix.h:
102675        * config.h:
102676
1026772013-01-23  Eric Seidel  <eric@webkit.org>
102678
102679        HTMLCompactToken needs to include the forceQuirks bool from HTMLToken
102680        https://bugs.webkit.org/show_bug.cgi?id=107713
102681
102682        Reviewed by Tony Gentilcore.
102683
102684        Before we were only getting "quirks mode" when the system/public identifiers
102685        were known quirks identifiers.  Now we'll correctly get quirks mode for any
102686        parse error during DOCTYPE parsing.
102687        This passes a bunch more tests.
102688
102689        * html/parser/CompactHTMLToken.cpp:
102690        (WebCore::CompactHTMLToken::CompactHTMLToken):
102691        * html/parser/CompactHTMLToken.h:
102692        (WebCore::CompactHTMLToken::doctypeForcesQuirks):
102693        (CompactHTMLToken):
102694        * html/parser/HTMLToken.h:
102695        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
102696
1026972013-01-23  Brady Eidson  <beidson@apple.com>
102698
102699        Recursion handling cancelled authentication challenges in NetworkProcess
102700        <rdar://problem/13024541> and https://bugs.webkit.org/show_bug.cgi?id=107702
102701
102702        Reviewed by Alexey Proskuryakov.
102703
102704        * WebCore.exp.in:
102705
1027062013-01-23  Beth Dakin  <bdakin@apple.com>
102707
102708        https://bugs.webkit.org/show_bug.cgi?id=107628
102709        Sometimes scroll position is jerky during rubber-band, affects nytimes.com
102710        -and corresponding-
102711        <rdar://problem/12679549>
102712
102713        Reviewed by Simon Fraser.
102714
102715        The basic problem here is that isRubberBandInProgress() was only implemented for 
102716        main thread scrolling. So when we were actually scrolling on the scrolling thread, 
102717        that function would always return false regardless.
102718
102719        New ScrollableArea virtual function isRubberBandInProgress() will allow us to ask 
102720        the ScrollingCoordinator when the scrolling thread is scrolling, or the 
102721        ScrollAnimator otherwise.
102722        * page/FrameView.cpp:
102723        (WebCore::FrameView::isRubberBandInProgress):
102724        * page/FrameView.h:
102725        (FrameView):
102726        * platform/ScrollableArea.h:
102727        (WebCore::ScrollableArea::isRubberBandInProgress):
102728
102729        New ScrollingCoordinator function isRubberBandInProgress() always returns false 
102730        for non-Mac ports, and is overridden in ScrollingCoordinatorMac to consult the 
102731        ScrollingTree.
102732        * page/scrolling/ScrollingCoordinator.h:
102733        (WebCore::ScrollingCoordinator::isRubberBandInProgress):
102734        * page/scrolling/mac/ScrollingCoordinatorMac.h:
102735        (ScrollingCoordinatorMac):
102736        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
102737        (WebCore::ScrollingCoordinatorMac::isRubberBandInProgress):
102738
102739        New variable m_mainFrameIsRubberBanding keeps track of whether there is currently 
102740        a rubber-band happening on the scrolling thread.
102741        * page/scrolling/ScrollingTree.cpp:
102742        (WebCore::ScrollingTree::ScrollingTree):
102743        (WebCore::ScrollingTree::isRubberBandInProgress):
102744        (WebCore::ScrollingTree::setMainFrameIsRubberBanding):
102745        * page/scrolling/ScrollingTree.h:
102746        (ScrollingTree):
102747        (WebCore::ScrollingTree::rootNode):
102748
102749        Call setMainFrameIsRubberBanding() whenever the stretchAmount is calculated and 
102750        whenever we stop the rubber-band timer.
102751        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
102752        (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
102753        (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
102754
102755        Consult FrameView for isRubberBandInProgress().
102756        * platform/ScrollView.cpp:
102757        (WebCore::ScrollView::updateScrollbars):
102758
1027592013-01-23  Robert Hogan  <robert@webkit.org>
102760
102761        Abspos Inline block not positioned correctly in text-aligned container
102762        https://bugs.webkit.org/show_bug.cgi?id=105695
102763
102764        Reviewed by Ojan Vafai.
102765
102766        Inline positioned elements should still obey the text-alignment of their container
102767        even when we don't do a line layout.
102768
102769        Test: fast/text/container-align-with-inlines.html
102770
102771        * rendering/RenderBlock.cpp:
102772        (WebCore::RenderBlock::adjustPositionedBlock):
102773        (WebCore::RenderBlock::updateStaticInlinePositionForChild):
102774        (WebCore):
102775        * rendering/RenderBlock.h:
102776        (RenderBlock):
102777        * rendering/RenderBlockLineLayout.cpp:
102778        (WebCore::setStaticPositions):
102779
1027802013-01-23  Eric Seidel  <eric@webkit.org>
102781
102782        Remove DocType support from MarkupTokenBase now that NEW_XML is gone
102783        https://bugs.webkit.org/show_bug.cgi?id=107709
102784
102785        Reviewed by Adam Barth.
102786
102787        Just moving code out of MarkupTokenBase and into HTMLToken.
102788        The test for this change is if it compiles. :)  Which it does.
102789
102790        * html/parser/HTMLToken.h:
102791        (DoctypeData):
102792        (WebCore::DoctypeData::DoctypeData):
102793        (WebCore):
102794        (WebCore::HTMLToken::appendToName):
102795        (WebCore::HTMLToken::name):
102796        (HTMLToken):
102797        (WebCore::HTMLToken::beginDOCTYPE):
102798        (WebCore::HTMLToken::publicIdentifier):
102799        (WebCore::HTMLToken::systemIdentifier):
102800        (WebCore::HTMLToken::setPublicIdentifierToEmptyString):
102801        (WebCore::HTMLToken::setSystemIdentifierToEmptyString):
102802        (WebCore::HTMLToken::appendToPublicIdentifier):
102803        (WebCore::HTMLToken::appendToSystemIdentifier):
102804        (WebCore::HTMLToken::releaseDoctypeData):
102805        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
102806        (AtomicHTMLToken):
102807        * html/parser/HTMLTokenTypes.h:
102808        * xml/parser/MarkupTokenBase.h:
102809        (WebCore):
102810        (MarkupTokenBase):
102811
1028122013-01-23  Alexis Menard  <alexis@webkit.org>
102813
102814        transition-property accepts incorrect "all, none" as value
102815        https://bugs.webkit.org/show_bug.cgi?id=105428
102816
102817        Reviewed by Dean Jackson.
102818
102819        http://www.w3.org/TR/css3-transitions/#transition-property-property
102820        disallows any value like none, all or all, none as it doesn't make
102821        sense. This patch fixes the problem by rejecting the value if set by
102822        the user.
102823
102824        Test: transitions/transitions-parsing.html
102825
102826        * css/CSSParser.cpp:
102827        (WebCore::CSSParser::parseAnimationProperty):
102828        * css/CSSParser.h:
102829
1028302013-01-23  Eric Seidel  <eric@webkit.org>
102831
102832        Clarify some usage of shouldUseThreading vs m_haveBackgroundParser, fixing about:blank parsing
102833        https://bugs.webkit.org/show_bug.cgi?id=107664
102834
102835        Reviewed by Adam Barth.
102836
102837        The HTMLDocumentParser can be "supposed" to use a background parser
102838        but not end up ever doing so for blank documents.  It's important
102839        that we spin the forground parser at least once, so we end up
102840        actually creating the about:blank document.
102841
102842        shouldUseThreading() means that threading is enabled and we should use it if we can.
102843        m_haveBackgroundParser means that we actually are already using threading.
102844        When we add full document.write support this will get a bit trickier still as
102845        we'll need to be using both the foreground and background parsers.
102846
102847        This fixes about 20 tests in fast/frames and many others outside of fast/frames. :)
102848
102849        * html/parser/HTMLDocumentParser.cpp:
102850        (WebCore::HTMLDocumentParser::prepareToStopParsing):
102851        (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
102852        (WebCore::HTMLDocumentParser::finish):
102853        (WebCore::HTMLDocumentParser::lineNumber):
102854        (WebCore::HTMLDocumentParser::textPosition):
102855
1028562013-01-17  Roger Fong  <roger_fong@apple.com>
102857
102858        [Win] Remove dependence on Microsoft Embedded OpenType Font Engine (T2EMBED.DLL)  from FontCustomPlatformData.cpp.
102859        https://bugs.webkit.org/show_bug.cgi?id=107153
102860
102861        Reviewed by Dan Bernstein.
102862
102863        * platform/graphics/win/FontCustomPlatformData.cpp:
102864        (WebCore):
102865        (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
102866        (WebCore::FontCustomPlatformData::fontPlatformData):
102867        (WebCore::createFontCustomPlatformData):
102868
1028692013-01-23  Andrey Lushnikov  <lushnikov@chromium.org>
102870
102871        Web Inspector: speedup highlight regex API in DefaultTextEditor
102872        https://bugs.webkit.org/show_bug.cgi?id=107238
102873
102874        Reviewed by Pavel Feldman.
102875
102876        Move overlay highlight measurement (highlight regex API) from DefaultTextEditor._paintLine
102877        method to the DefaultTextEditor._paintLines method which allows to relayout dom only
102878        once. This is a significant improvement to the current state of the
102879        art which does relayout on each regex occurence.
102880        In addition, use "left" css attribute instead of "margin-left": this
102881        way it will be possible to avoid an unnecessary relayouting during
102882        appending overlay highlight.
102883
102884        No new tests: no change in behaviour.
102885
102886        * inspector/front-end/DefaultTextEditor.js:
102887        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
102888        (WebInspector.TextEditorMainPanel.prototype._paintLines):
102889        (WebInspector.TextEditorMainPanel.prototype._measureRegexHighlight):
102890        (WebInspector.TextEditorMainPanel.prototype._measureSpans):
102891        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
102892        (WebInspector.TextEditorMainPanel.prototype._paintLine):
102893        (WebInspector.TextEditorMainPanel.ElementMetrics):
102894        (WebInspector.TextEditorMainPanel.LineOverlayHighlight):
102895        (WebInspector.TextEditorMainChunk.prototype.expand):
102896
1028972013-01-23  Ojan Vafai  <ojan@chromium.org>
102898
102899        Assert that computePreferredLogicalWidths never calls setNeedsLayout
102900        https://bugs.webkit.org/show_bug.cgi?id=107613
102901
102902        Reviewed by Eric Seidel.
102903
102904        computePreferredLogicalWidths should only set m_minPreferredLogicalWidth
102905        and m_maxPreferredLogicalWidth. It shouldn't have other side-effects.
102906        The mathml bits can be removed once https://bugs.webkit.org/show_bug.cgi?id=107353
102907        is resolved.
102908
102909        * rendering/RenderBox.cpp:
102910        (WebCore::RenderBox::minPreferredLogicalWidth):
102911        * rendering/mathml/RenderMathMLOperator.cpp:
102912        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
102913        * rendering/mathml/RenderMathMLRoot.cpp:
102914        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
102915        * rendering/mathml/RenderMathMLRow.cpp:
102916        (WebCore::RenderMathMLRow::computePreferredLogicalWidths):
102917
1029182013-01-23  Noam Rosenthal  <noam@webkit.org>
102919
102920        REGRESSION(r140518): Broke Chromium Win build (gyp file not updated) (Requested by arv on #webkit).
102921        https://bugs.webkit.org/show_bug.cgi?id=107691
102922
102923        Unreviewed build fix. Removed TextureMapperShaderManager.* from WebCore.gypi.
102924
102925        * WebCore.gypi:
102926
1029272013-01-23  Sheriff Bot  <webkit.review.bot@gmail.com>
102928
102929        Unreviewed, rolling out r140307, r140411, and r140512.
102930        http://trac.webkit.org/changeset/140307
102931        http://trac.webkit.org/changeset/140411
102932        http://trac.webkit.org/changeset/140512
102933        https://bugs.webkit.org/show_bug.cgi?id=107689
102934
102935        Perf regression on DOMDivWalk (bug 106726) (Requested by
102936        falken on #webkit).
102937
102938        * dom/Element.cpp:
102939        (WebCore::Element::removedFrom):
102940        (WebCore):
102941        (WebCore::Element::isInTopLayer):
102942        (WebCore::Element::setIsInTopLayer):
102943        * dom/Element.h:
102944        * dom/ElementRareData.h:
102945        (ElementRareData):
102946        (WebCore::ElementRareData::isInTopLayer):
102947        (WebCore::ElementRareData::setIsInTopLayer):
102948        (WebCore::ElementRareData::ElementRareData):
102949        * dom/Node.cpp:
102950        * dom/Node.h:
102951        (Node):
102952        * dom/NodeRenderingContext.cpp:
102953        (WebCore::isRendererReparented):
102954        (WebCore::NodeRenderingContext::previousRenderer):
102955        (WebCore::NodeRenderingContext::parentRenderer):
102956        * rendering/RenderLayer.cpp:
102957        (WebCore::RenderLayer::isInTopLayer):
102958        (WebCore::RenderLayer::rebuildZOrderLists):
102959
1029602013-01-23  Dmitry Gozman  <dgozman@chromium.org>
102961
102962        Web Inspector: allow user to resize inspector window by dragging the toolbar
102963        https://bugs.webkit.org/show_bug.cgi?id=107648
102964
102965        Reviewed by Pavel Feldman.
102966
102967        This did not work before you click dock button once.
102968        Also, last drag position was not respected.
102969
102970        No new tests, because of pure inspector UI change.
102971
102972        * inspector/front-end/DockController.js:
102973        (WebInspector.DockController.prototype.isDockedToBottom):
102974        * inspector/front-end/Toolbar.js:
102975        (WebInspector.Toolbar.prototype._isDockedToBottom):
102976        (WebInspector.Toolbar.prototype._toolbarDragStart):
102977        (WebInspector.Toolbar.prototype._toolbarDragEnd):
102978        (WebInspector.Toolbar.prototype._toolbarDrag):
102979
1029802013-01-23  Shinya Kawanaka  <shinyak@chromium.org>
102981
102982        shadowAncestorNode() should be renamed to deprecatedShadowAncestorNode()
102983        https://bugs.webkit.org/show_bug.cgi?id=107624
102984
102985        Reviewed by Dimitri Glazkov.
102986
102987        Since Node::shadowAncestorNode() is deprecated, we would like to rename it to prevent from further use.
102988
102989        No new tests, simple refactoring.
102990
102991        * WebCore.order:
102992        * accessibility/AccessibilityRenderObject.cpp:
102993        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
102994        * dom/Document.cpp:
102995        (WebCore::Document::handleZeroPadding):
102996        * dom/Node.cpp:
102997        (WebCore::Node::deprecatedShadowAncestorNode):
102998        * dom/Node.h:
102999        (Node):
103000        * editing/Editor.cpp:
103001        (WebCore::Editor::rangeOfString):
103002        (WebCore::Editor::countMatchesForText):
103003        * editing/ReplaceSelectionCommand.cpp:
103004        (WebCore::ReplacementFragment::ReplacementFragment):
103005        * page/DragController.cpp:
103006        (WebCore::elementUnderMouse):
103007        * page/EventHandler.cpp:
103008        (WebCore::EventHandler::handleMouseReleaseEvent):
103009        (WebCore::EventHandler::bestClickableNodeForTouchPoint):
103010        * page/FocusController.cpp:
103011        (WebCore::clearSelectionIfNeeded):
103012        * platform/blackberry/RenderThemeBlackBerry.cpp:
103013        (WebCore::RenderThemeBlackBerry::paintSearchFieldCancelButton):
103014        * rendering/HitTestResult.cpp:
103015        (WebCore::HitTestResult::setToNonShadowAncestor):
103016        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
103017
1030182013-01-22  Pavel Feldman  <pfeldman@chromium.org>
103019
103020        Web Inspector: only allow evaluateForTestInFrontend for front-ends under test.
103021        https://bugs.webkit.org/show_bug.cgi?id=107523
103022
103023        Reviewed by Yury Semikhatsky.
103024
103025        * inspector/InspectorController.cpp:
103026        (WebCore::InspectorController::InspectorController):
103027        (WebCore::InspectorController::isUnderTest):
103028        (WebCore):
103029        (WebCore::InspectorController::evaluateForTestInFrontend):
103030        * inspector/InspectorController.h:
103031        (InspectorController):
103032        * inspector/InspectorFrontendClient.h:
103033        (InspectorFrontendClient):
103034        * inspector/InspectorFrontendClientLocal.cpp:
103035        (WebCore::InspectorFrontendClientLocal::canAttachWindow):
103036        (WebCore::InspectorFrontendClientLocal::isUnderTest):
103037        (WebCore):
103038        * inspector/InspectorFrontendClientLocal.h:
103039        (InspectorFrontendClientLocal):
103040        * inspector/InspectorFrontendHost.cpp:
103041        (WebCore::InspectorFrontendHost::isUnderTest):
103042        (WebCore):
103043        * inspector/InspectorFrontendHost.h:
103044        (InspectorFrontendHost):
103045        * inspector/InspectorFrontendHost.idl:
103046        * inspector/front-end/DOMExtension.js:
103047        * inspector/front-end/InspectorFrontendHostStub.js:
103048        (.WebInspector.InspectorFrontendHostStub.prototype.canInspectWorkers):
103049        (.WebInspector.InspectorFrontendHostStub.prototype.isUnderTest):
103050        * inspector/front-end/TestController.js:
103051        (.invokeMethod):
103052        (WebInspector.evaluateForTestInFrontend):
103053        * inspector/front-end/externs.js:
103054
1030552013-01-23  Andrey Lushnikov  <lushnikov@chromium.org>
103056
103057        Web Inspector: remove invisibleLineRow code from paintLines DTE method
103058        https://bugs.webkit.org/show_bug.cgi?id=107649
103059
103060        Reviewed by Pavel Feldman.
103061
103062        Remove invisibleLineRow logic from TextEditorMainPanel._paintLines method.
103063
103064        No new tests: no change in behaviour.
103065
103066        * inspector/front-end/DefaultTextEditor.js:
103067        (WebInspector.TextEditorMainPanel.prototype._paintLines):
103068
1030692013-01-23  Rafael Weinstein  <rafaelw@chromium.org>
103070
103071        REGRESSION(r140101): caused debug asserts in fast/forms/associated-element-crash.html and html5lib/run-template.html
103072        https://bugs.webkit.org/show_bug.cgi?id=107237
103073
103074        Reviewed by Adam Barth.
103075
103076        No new tests needed.
103077
103078        When the parser foster-parent's a node out of a table context and the foster parent is a template element, set the Task.parent
103079        to be the template element's content, rather than the element itself. This ensures the foster-parented node isn't errorenously
103080        reparented.
103081
103082        * html/parser/HTMLConstructionSite.cpp:
103083        (WebCore::HTMLConstructionSite::findFosterSite):
103084
1030852013-01-23  Yury Semikhatsky  <yurys@chromium.org>
103086
103087        Web Inspector: heap profiler shows nodes with distance 0
103088        https://bugs.webkit.org/show_bug.cgi?id=107425
103089
103090        Reviewed by Pavel Feldman.
103091
103092        "Document DOM tree" entities now have distance 1. So if there is a DOM
103093        wrapper that is not referenced from javascript it will anyways be shown
103094        in the heap snapshot and will have distance 2. Also such DOM wrappers
103095        are considered to be reachable from user roots (e.g. global Window objects)
103096        otherwice they are not event shown in the heap snapshots.
103097
103098        * inspector/front-end/HeapSnapshot.js:
103099        (WebInspector.HeapSnapshot.prototype.distanceForUserRoot):
103100        (WebInspector.HeapSnapshot.prototype._calculateDistances):
103101        * inspector/front-end/JSHeapSnapshot.js:
103102        (WebInspector.JSHeapSnapshot.prototype.distanceForUserRoot): distance for 
103103        "(Document DOM trees)" is set to 0 to make sure distance of "Ddocument DOM tree" is 1.
103104        (WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
103105        (WebInspector.JSHeapSnapshotNode.prototype.isDocumentDOMTreesRoot):
103106
1031072013-01-23  Adrian Perez de Castro  <aperez@igalia.com>
103108
103109        [GStreamer] Add Opus MIME type to the list of supported ones
103110        https://bugs.webkit.org/show_bug.cgi?id=98759
103111
103112        Reviewed by Philippe Normand.
103113
103114        GStreamer has support for the Opus codec (http://opus-codec.org) by
103115        using a plugin present in the "gst-plugins-bad" repository. Opus
103116        streams may be embedded in a Ogg container, or standalone. The case
103117        of the Ogg container is already covered by the "*/ogg" MIME types
103118        declared as supported by the GStreamer media playing code, but for
103119        standalone streams to work, "audio/opus" has to be added.
103120
103121        With this, and the needed GStreamer plugin installed, the GTK+
103122        launcher is able to correctly play the example streams from
103123        http://opus-codec.org/examples
103124
103125        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
103126
1031272013-01-23  Takashi Sakamoto  <tasak@google.com>
103128
103129        [Refactoring] Remove elementParentStyle from SelectorCheckerContext
103130        https://bugs.webkit.org/show_bug.cgi?id=107496
103131
103132        Reviewed by Darin Adler.
103133
103134        Since childrenAffectedBy bits were moved from RenderStyle to element,
103135        now elementParentStyle is not used in SelectorChecker and
103136        StyleResolver. We should remove the member varaiable from
103137        SelectorCheckerContext.
103138
103139        No new tests, because just refactoring.
103140
103141        * css/SelectorChecker.cpp:
103142        (WebCore::SelectorChecker::match):
103143        * css/SelectorChecker.h:
103144        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
103145        (SelectorCheckingContext):
103146        * css/StyleResolver.cpp:
103147        (WebCore::StyleResolver::ruleMatches):
103148        Removed elementParentStyle.
103149
1031502013-01-23  Andreas Kling  <akling@apple.com>
103151
103152        Pass CSSSelector pointers around as const after parsing stage.
103153        <http://webkit.org/b/107645>
103154
103155        Reviewed by Antti Koivisto.
103156
103157        Have CSSSelectorList vend const CSSSelector* and make the style resolution code
103158        operate on const pointers instead.
103159
103160        This gives us some compile-time confidence that nobody is changing the selectors
103161        after we've parsed them.
103162
103163        * css/CSSSelector.cpp:
103164        (WebCore::CSSSelector::operator==):
103165        (WebCore::CSSSelector::selectorText):
103166        (WebCore::CSSSelector::parseNth):
103167        (WebCore::CSSSelector::matchNth):
103168        * css/CSSSelector.h:
103169        (CSSSelector):
103170        (WebCore::CSSSelector::tagHistory):
103171        (WebCore::CSSSelector::selectorList):
103172        * css/CSSSelectorList.cpp:
103173        (WebCore::CSSSelectorList::selectorsText):
103174        (WebCore::forEachTagSelector):
103175        (WebCore::forEachSelector):
103176        (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
103177        (WebCore::SelectorHasInvalidSelectorFunctor::operator()):
103178        * css/CSSSelectorList.h:
103179        (WebCore::CSSSelectorList::first):
103180        (CSSSelectorList):
103181        (WebCore::CSSSelectorList::selectorAt):
103182        (WebCore::CSSSelectorList::indexOfNextSelectorAfter):
103183        (WebCore::CSSSelectorList::next):
103184        * css/CSSStyleRule.cpp:
103185        (WebCore::CSSStyleRule::generateSelectorText):
103186        * css/RuleSet.cpp:
103187        (WebCore::selectorListContainsUncommonAttributeSelector):
103188        (WebCore::collectFeaturesFromRuleData):
103189        * css/RuleSet.h:
103190        (WebCore::RuleData::selector):
103191        (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
103192        (RuleSetSelectorPair):
103193        * css/SelectorChecker.cpp:
103194        (WebCore::SelectorChecker::matches):
103195        (WebCore::SelectorChecker::match):
103196        (WebCore::SelectorChecker::checkOne):
103197        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
103198        (WebCore::SelectorChecker::determineLinkMatchType):
103199        * css/SelectorChecker.h:
103200        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
103201        (SelectorCheckingContext):
103202        (SelectorChecker):
103203        * css/StyleInvalidationAnalysis.cpp:
103204        (WebCore::determineSelectorScopes):
103205        * css/StyleResolver.cpp:
103206        (WebCore::StyleResolver::collectMatchingRulesForRegion):
103207        (WebCore::StyleResolver::checkRegionSelector):
103208        * css/StyleResolver.h:
103209        (StyleResolver):
103210        * dom/SelectorQuery.cpp:
103211        (WebCore::SelectorDataList::initialize):
103212        (WebCore::SelectorDataList::execute):
103213        * dom/SelectorQuery.h:
103214        (WebCore::SelectorDataList::SelectorData::SelectorData):
103215        (SelectorData):
103216        * html/shadow/ContentDistributor.cpp:
103217        (WebCore::ContentDistributor::collectSelectFeatureSetFrom):
103218        * html/shadow/ContentSelectorQuery.cpp:
103219        (WebCore::ContentSelectorChecker::checkContentSelector):
103220        (WebCore::ContentSelectorDataList::initialize):
103221        * html/shadow/ContentSelectorQuery.h:
103222        (ContentSelectorChecker):
103223        (ContentSelectorDataList):
103224        * html/shadow/HTMLContentElement.cpp:
103225        (WebCore::validateSubSelector):
103226        (WebCore::validateSelector):
103227        (WebCore::HTMLContentElement::validateSelect):
103228        * inspector/InspectorCSSAgent.cpp:
103229        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
103230        * inspector/InspectorStyleSheet.cpp:
103231        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
103232
1032332013-01-23  Sergio Villar Senin  <svillar@igalia.com>
103234
103235        [GTK] Unreviewed build fix after r140518.
103236
103237        * GNUmakefile.list.am: rename TextureMapperShaderManager to
103238        TextureMapperShaderProgram.
103239
1032402013-01-23  Yoshifumi Inoue  <yosin@chromium.org>
103241
103242        REGRESSION(r139044): Pan icon remains on screen on Chromium-WinXP
103243        https://bugs.webkit.org/show_bug.cgi?id=107623
103244
103245        Reviewed by Hajime Morita.
103246
103247        The issue is caused by AutoscrollController::stopAutoscrollTimer()
103248        doesn't call View::removePanScrollIcon() because m_autoscrollType
103249        is reset before checking it.
103250
103251        This patch changes to reset m_autoscrollType after all references.
103252
103253        Test: platform/chromium-win/fast/events/panScroll-panIcon.html
103254
103255        * page/AutoscrollController.cpp:
103256        (WebCore::AutoscrollController::stopAutoscrollTimer):
103257
1032582013-01-23  Sergio Villar Senin  <svillar@igalia.com>
103259
103260        REGRESSION(r140338): WebKitGtk+ trying to allocate a buffer too big
103261        https://bugs.webkit.org/show_bug.cgi?id=107646
103262
103263        Reviewed by Carlos Garcia Campos.
103264
103265        g_input_stream_skip_async() was replaced in r140338 by
103266        g_input_stream_read_async() to workaround a glib buffer. The former
103267        was using G_MAXSSIZE to skip the whole redirect message but we
103268        cannot use it for the latter because it will try to
103269        allocate a buffer of that size. Replaced it by READ_BUFFER_SIZE. No
103270        new tests required, functionality already covered by network tests..
103271
103272        * platform/network/soup/ResourceHandleSoup.cpp:
103273        (WebCore::redirectSkipCallback):
103274        (WebCore::sendRequestCallback):
103275
1032762013-01-23  Andrey Adaikin  <aandrey@chromium.org>
103277
103278        Web Inspector: use inspectedWindow.document instead of document in InjectedScript
103279        https://bugs.webkit.org/show_bug.cgi?id=107642
103280
103281        Reviewed by Pavel Feldman.
103282
103283        * inspector/InjectedScriptSource.js:
103284        (.):
103285
1032862013-01-23  Vivek Galatage  <vivek.vg@samsung.com>
103287
103288        xml-stylesheet XSL is not requested with JavaScript disabled
103289        https://bugs.webkit.org/show_bug.cgi?id=103902
103290
103291        Reviewed by Adam Barth.
103292
103293        Currently CachedResourceLoader::canRequest() calls allowScriptFromSource() on
103294        ContentSecurityPolicy and FrameLoaderClient for the given XSLStyleSheet. This
103295        should be restricted to only calling allowScriptFromSource() for the
103296        ContentSecurityPolicy.
103297
103298        Test: http/tests/xsl/xslt-transform-with-javascript-disabled.html
103299
103300        * loader/cache/CachedResourceLoader.cpp:
103301        (WebCore::CachedResourceLoader::canRequest):
103302
1033032013-01-23  Kentaro Hara  <haraken@chromium.org>
103304
103305        [V8] Remove if(isolate) checks from v8String() and v8Integer()
103306        https://bugs.webkit.org/show_bug.cgi?id=107540
103307
103308        Reviewed by Adam Barth.
103309
103310        Now there is no optional Isolate parameter in the code base
103311        (except for throwError()). We can safely remove if(isolate) checks
103312        from v8String() and v8Integer().
103313
103314        div.id:       17.8 ns => 17.8 ns (no performance change)
103315        div.nodeType:  9.7 ns =>  8.9 ns (+8.9% performance improvement)
103316
103317        No tests. No change in behavior.
103318
103319        * bindings/v8/ScriptDebugServer.cpp:
103320        (WebCore::ScriptDebugServer::handleV8DebugEvent):
103321        * bindings/v8/V8Binding.h:
103322        (WebCore::v8String):
103323        (WebCore::v8Integer):
103324        * bindings/v8/V8WindowErrorHandler.cpp:
103325        (WebCore::V8WindowErrorHandler::callListenerFunction):
103326        * bindings/v8/V8WorkerContextErrorHandler.cpp:
103327        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
103328
1033292013-01-23  Hajime Morrita  <morrita@google.com>
103330
103331        Invalidated SVG shadow tree should be always detached.
103332        https://bugs.webkit.org/show_bug.cgi?id=107634
103333
103334        Reviewed by Ryosuke Niwa.
103335
103336        SVGUseElement::clearResourceReferences() uses removeAllChildren() for
103337        clearing its shadow DOM, but this is wrong.
103338        removeAllChildren() is designed for removing children of an out-of-document Node.
103339        For efficiency, it skips a series of cleanup sequences like detach().
103340
103341        For removing SVG shadow tree which is in Document, removeChildren() should be used.
103342        It does proper cleanup for the chilren.
103343
103344        Test: svg/custom/use-invalidate-click-crash.xhtml
103345
103346        * svg/SVGUseElement.cpp:
103347        (WebCore::SVGUseElement::clearResourceReferences):
103348
1033492013-01-23  Huang Dongsung  <luxtella@company100.net>
103350
103351        [TexMap] Don't call GraphicsLayer::setNeedsDisplay() from TextureMapperLayer.
103352        https://bugs.webkit.org/show_bug.cgi?id=107629
103353
103354        Reviewed by Noam Rosenthal.
103355
103356        We are removing the dependency on GraphicsLayer from TextureMapperLayer.
103357
103358        This is in preparation for refactoring TextureMapper to work in an actor
103359        model (http://webkit.org/b/103854).
103360
103361        No new tests, refactoring only.
103362
103363        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
103364        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
103365        * platform/graphics/texmap/TextureMapperLayer.cpp:
103366        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
103367
1033682013-01-23  No'am Rosenthal  <noam@webkit.org>
103369
103370        [Texmap] Rename TextureMapperShaderManager.* TextureMapperShaderProgram.*
103371        https://bugs.webkit.org/show_bug.cgi?id=105847
103372
103373        TextureMapperShaderManager contains very little "manager" code.
103374        Moved the map of shaders to TextureMapperGL, and renamed the files containing
103375        the shader implementation TextureMapperShaderProgram.cpp|h.
103376
103377        Reviewed by Kenneth Rohde Christiansen.
103378
103379        No new tests - renames/refactors only.
103380
103381        * GNUmakefile.list.am:
103382        * PlatformEfl.cmake:
103383        * Target.pri:
103384        * platform/graphics/texmap/TextureMapperGL.cpp:
103385        (WebCore::TextureMapperGLData::SharedGLData::getShaderProgram):
103386                This function is copied from TextureMapperShaderManager.
103387        (SharedGLData):
103388        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
103389        (WebCore::TextureMapperGL::drawBorder):
103390        (WebCore::TextureMapperGL::drawTexture):
103391        (WebCore::TextureMapperGL::drawSolidColor):
103392        (WebCore::optionsForFilterType):
103393        (WebCore::TextureMapperGL::drawFiltered):
103394        (WebCore::TextureMapperGL::beginClip):
103395        * platform/graphics/texmap/TextureMapperShaderProgram.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp.
103396        (WebCore):
103397        (WebCore::compositingLogEnabled):
103398        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
103399        (WebCore::TextureMapperShaderProgram::setMatrix):
103400        (WebCore::TextureMapperShaderProgram::getLocation):
103401        (WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
103402        (WebCore::TextureMapperShaderProgram::create):
103403        * platform/graphics/texmap/TextureMapperShaderProgram.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.h.
103404        (WebCore):
103405        (TextureMapperShaderProgram):
103406        (WebCore::TextureMapperShaderProgram::programID):
103407        (WebCore::TextureMapperShaderProgram::context):
103408
1034092013-01-23  Kentaro Hara  <haraken@chromium.org>
103410
103411        [V8] Make an Isolate parameter mandatory in throwError()
103412        https://bugs.webkit.org/show_bug.cgi?id=107636
103413
103414        Reviewed by Adam Barth.
103415
103416        No tests. No change in behavior.
103417
103418        * bindings/v8/NPV8Object.cpp:
103419        (_NPN_SetException):
103420        * bindings/v8/V8Binding.cpp:
103421        (WebCore::handleMaxRecursionDepthExceeded):
103422        * bindings/v8/V8Binding.h:
103423        (WebCore):
103424        * bindings/v8/WorkerScriptController.cpp:
103425        (WebCore::WorkerScriptController::evaluate):
103426        (WebCore::WorkerScriptController::setException):
103427
1034282013-01-22  Kentaro Hara  <haraken@chromium.org>
103429
103430        [V8] Make an Isolate parameter mandatory in throwTypeError()
103431        https://bugs.webkit.org/show_bug.cgi?id=107632
103432
103433        Reviewed by Adam Barth.
103434
103435        No tests. No change in behavior.
103436
103437        * bindings/scripts/CodeGeneratorV8.pm:
103438        (GenerateParametersCheck):
103439        (GenerateConstructorHeader):
103440        (JSValueToNative):
103441        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
103442        (WebCore::V8TestEventConstructor::constructorCallback):
103443        * bindings/scripts/test/V8/V8TestInterface.cpp:
103444        (WebCore::V8TestInterface::constructorCallback):
103445        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
103446        (WebCore::V8TestNamedConstructorConstructorCallback):
103447        * bindings/scripts/test/V8/V8TestNode.cpp:
103448        (WebCore::V8TestNode::constructorCallback):
103449        * bindings/scripts/test/V8/V8TestObj.cpp:
103450        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
103451        (WebCore::V8TestObj::constructorCallback):
103452        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
103453        (WebCore::V8TestOverloadedConstructors::constructorCallback):
103454        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
103455        (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
103456        (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
103457        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
103458        * bindings/v8/V8Binding.h:
103459        (WebCore):
103460        (WebCore::toRefPtrNativeArray):
103461        (WebCore::toV8Sequence):
103462        * bindings/v8/V8NodeFilterCondition.cpp:
103463        (WebCore::V8NodeFilterCondition::acceptNode):
103464        * bindings/v8/V8Utilities.cpp:
103465        (WebCore::extractTransferables):
103466        (WebCore::getMessagePortArray):
103467
1034682013-01-22  Matt Falkenhagen  <falken@chromium.org>
103469
103470        20% regression on dom_perf/DomDivWalk
103471        https://bugs.webkit.org/show_bug.cgi?id=106726
103472
103473        Reviewed by Hajime Morita.
103474
103475        This patch moves the checks in Element::removedFrom for Fullscreen and top layer flags
103476        into a slow path. The idea is for the two checks for Fullscreen and top layer
103477        to be replaced by one faster check in the fast path.
103478
103479        The plan is to migrate the Fullscreen implementation to use top layer, so this is just a
103480        short-term fix for the perf regression.
103481
103482        No new tests: no functionality change
103483
103484        * dom/Element.cpp:
103485        (WebCore::Element::removedFrom): Create a slow path to move the Fullscreen and top layer checks into.
103486        * dom/Node.cpp:
103487        (WebCore::Node::setIsInTopLayer): To allow for cleaner code in Element::removedFrom, define
103488        setIsInTopLayer and isInTopLayer even when the feature flag is off.
103489        * dom/Node.h:
103490        (WebCore::Node::isInTopLayer): Ditto.
103491        (Node):
103492
1034932013-01-22  Mark Lam  <mark.lam@apple.com>
103494
103495        Change the Supplementable class to not use AtomicString.
103496        https://bugs.webkit.org/show_bug.cgi?id=107535.
103497
103498        Reviewed by Adam Barth.
103499
103500        Replaced the use of AtomicString keys with literal const char* keys.
103501        This simplifies the SupplementMap and makes it slightly leaner and faster.
103502
103503        No new tests.
103504
103505        * Modules/battery/BatteryController.cpp:
103506        (WebCore::BatteryController::supplementName):
103507        * Modules/battery/BatteryController.h:
103508        (BatteryController):
103509        * Modules/battery/NavigatorBattery.cpp:
103510        (WebCore::NavigatorBattery::supplementName):
103511        (WebCore):
103512        (WebCore::NavigatorBattery::from):
103513        * Modules/battery/NavigatorBattery.h:
103514        (NavigatorBattery):
103515        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
103516        (WebCore::DraggedIsolatedFileSystem::supplementName):
103517        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.h:
103518        (DraggedIsolatedFileSystem):
103519        * Modules/gamepad/NavigatorGamepad.cpp:
103520        (WebCore::NavigatorGamepad::supplementName):
103521        (WebCore):
103522        (WebCore::NavigatorGamepad::from):
103523        * Modules/gamepad/NavigatorGamepad.h:
103524        (NavigatorGamepad):
103525        * Modules/geolocation/GeolocationController.cpp:
103526        (WebCore::GeolocationController::supplementName):
103527        * Modules/geolocation/GeolocationController.h:
103528        (GeolocationController):
103529        * Modules/geolocation/NavigatorGeolocation.cpp:
103530        (WebCore::NavigatorGeolocation::supplementName):
103531        (WebCore):
103532        (WebCore::NavigatorGeolocation::from):
103533        * Modules/geolocation/NavigatorGeolocation.h:
103534        (NavigatorGeolocation):
103535        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
103536        (WebCore::DOMWindowIndexedDatabase::supplementName):
103537        (WebCore):
103538        (WebCore::DOMWindowIndexedDatabase::from):
103539        * Modules/indexeddb/DOMWindowIndexedDatabase.h:
103540        (DOMWindowIndexedDatabase):
103541        * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
103542        (WebCore::PageGroupIndexedDatabase::supplementName):
103543        (WebCore):
103544        (WebCore::PageGroupIndexedDatabase::from):
103545        * Modules/indexeddb/PageGroupIndexedDatabase.h:
103546        (PageGroupIndexedDatabase):
103547        * Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
103548        (WebCore::WorkerContextIndexedDatabase::supplementName):
103549        (WebCore):
103550        (WebCore::WorkerContextIndexedDatabase::from):
103551        * Modules/indexeddb/WorkerContextIndexedDatabase.h:
103552        (WorkerContextIndexedDatabase):
103553        * Modules/intents/DOMWindowIntents.cpp:
103554        (WebCore::DOMWindowIntents::supplementName):
103555        (WebCore):
103556        (WebCore::DOMWindowIntents::from):
103557        * Modules/intents/DOMWindowIntents.h:
103558        (DOMWindowIntents):
103559        * Modules/mediastream/UserMediaController.cpp:
103560        (WebCore::UserMediaController::supplementName):
103561        * Modules/mediastream/UserMediaController.h:
103562        (UserMediaController):
103563        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
103564        (WebCore::NavigatorContentUtils::supplementName):
103565        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
103566        (NavigatorContentUtils):
103567        * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
103568        (WebCore::NavigatorNetworkInfoConnection::supplementName):
103569        (WebCore):
103570        (WebCore::NavigatorNetworkInfoConnection::from):
103571        * Modules/networkinfo/NavigatorNetworkInfoConnection.h:
103572        (NavigatorNetworkInfoConnection):
103573        * Modules/networkinfo/NetworkInfoController.cpp:
103574        (WebCore::NetworkInfoController::supplementName):
103575        * Modules/networkinfo/NetworkInfoController.h:
103576        (NetworkInfoController):
103577        * Modules/notifications/DOMWindowNotifications.cpp:
103578        (WebCore::DOMWindowNotifications::supplementName):
103579        (WebCore):
103580        (WebCore::DOMWindowNotifications::from):
103581        * Modules/notifications/DOMWindowNotifications.h:
103582        (DOMWindowNotifications):
103583        * Modules/notifications/NotificationController.cpp:
103584        (WebCore::NotificationController::supplementName):
103585        * Modules/notifications/NotificationController.h:
103586        (NotificationController):
103587        * Modules/notifications/WorkerContextNotifications.cpp:
103588        (WebCore::WorkerContextNotifications::supplementName):
103589        (WebCore):
103590        (WebCore::WorkerContextNotifications::from):
103591        * Modules/notifications/WorkerContextNotifications.h:
103592        (WorkerContextNotifications):
103593        * Modules/quota/DOMWindowQuota.cpp:
103594        (WebCore::DOMWindowQuota::supplementName):
103595        (WebCore):
103596        (WebCore::DOMWindowQuota::from):
103597        * Modules/quota/DOMWindowQuota.h:
103598        (DOMWindowQuota):
103599        * Modules/speech/DOMWindowSpeechSynthesis.cpp:
103600        (WebCore::DOMWindowSpeechSynthesis::supplementName):
103601        (WebCore):
103602        (WebCore::DOMWindowSpeechSynthesis::from):
103603        * Modules/speech/DOMWindowSpeechSynthesis.h:
103604        (DOMWindowSpeechSynthesis):
103605        * Modules/speech/SpeechRecognitionController.cpp:
103606        (WebCore::SpeechRecognitionController::supplementName):
103607        * Modules/speech/SpeechRecognitionController.h:
103608        (SpeechRecognitionController):
103609        * Modules/vibration/Vibration.cpp:
103610        (WebCore::Vibration::supplementName):
103611        * Modules/vibration/Vibration.h:
103612        (Vibration):
103613        * Modules/webdatabase/DatabaseContext.cpp:
103614        (WebCore::DatabaseContext::supplementName):
103615        (WebCore):
103616        (WebCore::DatabaseContext::existingDatabaseContextFrom):
103617        (WebCore::DatabaseContext::from):
103618        * Modules/webdatabase/DatabaseContext.h:
103619        (DatabaseContext):
103620        * dom/ContextFeatures.cpp:
103621        (WebCore::ContextFeatures::supplementName):
103622        * dom/ContextFeatures.h:
103623        * dom/DeviceMotionController.cpp:
103624        (WebCore::DeviceMotionController::supplementName):
103625        * dom/DeviceMotionController.h:
103626        (DeviceMotionController):
103627        * dom/DeviceOrientationController.cpp:
103628        (WebCore::DeviceOrientationController::supplementName):
103629        * dom/DeviceOrientationController.h:
103630        (DeviceOrientationController):
103631        * loader/PrerendererClient.cpp:
103632        (WebCore::PrerendererClient::supplementName):
103633        * loader/PrerendererClient.h:
103634        (PrerendererClient):
103635        * page/DOMWindowPagePopup.cpp:
103636        (WebCore::DOMWindowPagePopup::supplementName):
103637        * page/DOMWindowPagePopup.h:
103638        (DOMWindowPagePopup):
103639        * page/SpeechInput.cpp:
103640        (WebCore::SpeechInput::supplementName):
103641        * page/SpeechInput.h:
103642        (SpeechInput):
103643        * platform/RefCountedSupplement.h:
103644        (WebCore::RefCountedSupplement::provideTo):
103645        (WebCore::RefCountedSupplement::from):
103646        * platform/Supplementable.h:
103647        (WebCore):
103648        (WebCore::Supplement::provideTo):
103649        (WebCore::Supplement::from):
103650        (WebCore::Supplementable::provideSupplement):
103651        (WebCore::Supplementable::removeSupplement):
103652        (WebCore::Supplementable::requireSupplement):
103653        (Supplementable):
103654        * testing/InternalSettings.cpp:
103655        (WebCore::InternalSettings::supplementName):
103656        (WebCore):
103657        (WebCore::InternalSettings::from):
103658        * testing/InternalSettings.h:
103659        (InternalSettings):
103660
1036612013-01-22  Hajime Morrita  <morrita@google.com>
103662
103663        non-ENABLE(DETAILS_ELEMENT) build fails.
103664        https://bugs.webkit.org/show_bug.cgi?id=107626
103665
103666        Reviewed by Kent Tamura.
103667
103668        No new tests, build configuration change.
103669
103670        * rendering/RenderObject.h:
103671        (RenderObject): Added a missing condition.
103672
1036732013-01-22  Dima Gorbik  <dgorbik@apple.com>
103674
103675        Whitelist should also work for the WebVTT ::cue element without an argument
103676        https://bugs.webkit.org/show_bug.cgi?id=107488
103677
103678        Reviewed by Andreas Kling.
103679        
103680        Apply filtering if the cue shadow pseudoId is set on the selector.
103681
103682        Existing tests were modified to cover this case.
103683
103684        * css/RuleSet.cpp:
103685        (WebCore::determinePropertyWhitelistType):
103686        * html/shadow/MediaControlElements.cpp:
103687        (WebCore::MediaControlTextTrackContainerElement::createSubtrees):
103688        * html/track/TextTrackCue.h:
103689        (WebCore::TextTrackCue::cueShadowPseudoId):
103690
1036912013-01-22  Hayato Ito  <hayato@chromium.org>
103692
103693        Make MediaQueryEvaluator(bool) constructor explicit.
103694        https://bugs.webkit.org/show_bug.cgi?id=107620
103695
103696        Reviewed by Hajime Morita.
103697
103698        No new tests: no change in behavior.
103699
103700        * css/MediaQueryEvaluator.h:
103701        (MediaQueryEvaluator):
103702
1037032013-01-22  Anders Carlsson  <andersca@apple.com>
103704
103705        Use a platform strategy for local storage
103706        https://bugs.webkit.org/show_bug.cgi?id=107600
103707
103708        Reviewed by Andreas Kling.
103709
103710        * CMakeLists.txt:
103711        * GNUmakefile.list.am:
103712        * WebCore.exp.in:
103713        * WebCore.gypi:
103714        * WebCore.vcproj/WebCore.vcproj:
103715        * WebCore.xcodeproj/project.pbxproj:
103716        Add new files.
103717
103718        * platform/PlatformStrategies.h:
103719        Add a way to create/get the storage strategy.
103720
103721        * storage/StorageNamespace.cpp:
103722        (WebCore::StorageNamespace::localStorageNamespace):
103723        (WebCore::StorageNamespace::sessionStorageNamespace):
103724        Call the storage strategy.
103725
103726        * storage/StorageNamespace.h:
103727        * storage/StorageStrategy.cpp: Added.
103728        (WebCore::StorageStrategy::localStorageNamespace):
103729        (WebCore::StorageStrategy::sessionStorageNamespace):
103730        Call through to StorageNamespaceImpl.
103731
103732        * storage/StorageStrategy.h: Added.
103733
1037342013-01-22  Jun Jiang  <jun.a.jiang@intel.com>
103735
103736        Optimize the texture packing for texImage2D() and texSubImage2D() in WebGL
103737        https://bugs.webkit.org/show_bug.cgi?id=105821
103738
103739        Reviewed by Kenneth Russell.
103740
103741        The original texture packing code uses function pointers to denote each unpack and pack operations for different combination of Source formats,
103742        Destination formats and Alpha Operations. It could be made cleaner and simpler. In this patch, template functions are used and try best to avoid
103743        generating useless code for unreachable path to avoid code bloat. Moreover, the flipY operation is moved into the pack operation instead of
103744        operating in a standalone method to improve performance.
103745
103746        Already covered by current test.
103747
103748        * html/canvas/WebGLRenderingContext.cpp:
103749        (WebCore):
103750        (WebCore::WebGLRenderingContext::texImage2DImpl):
103751        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
103752        * platform/graphics/GraphicsContext3D.cpp:
103753        (WebCore::GraphicsContext3D::packImageData):
103754        (WebCore::GraphicsContext3D::extractImageData):
103755        (WebCore::GraphicsContext3D::extractTextureData):
103756        (WebCore):
103757        (WebCore::GraphicsContext3D::packPixels):
103758        * platform/graphics/GraphicsContext3D.h:
103759        (WebCore::GraphicsContext3D::srcFormatComeFromDOMElementOrImageData):
103760        (GraphicsContext3D):
103761        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceFormat):
103762        (ImageExtractor):
103763        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
103764        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
103765        * platform/graphics/cg/GraphicsContext3DCG.cpp:
103766        (WebCore::getSourceDataFormat):
103767        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
103768        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
103769        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
103770        * platform/graphics/qt/GraphicsContext3DQt.cpp:
103771        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
103772        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
103773        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
103774
1037752013-01-21  Kentaro Hara  <haraken@chromium.org>
103776
103777        Implement UIEvent constructor
103778        https://bugs.webkit.org/show_bug.cgi?id=107430
103779
103780        Reviewed by Adam Barth.
103781
103782        Editor's draft: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm
103783
103784        UIEvent constructor is implemented under a DOM4_EVENTS_CONSTRUCTOR flag,
103785        which is enabled on Safari and Chromium for now.
103786
103787        Test: fast/events/constructors/ui-event-constructor.html
103788
103789        * Configurations/FeatureDefines.xcconfig:
103790        * bindings/scripts/CodeGeneratorV8.pm:
103791        (GenerateHeader):
103792        * bindings/scripts/test/V8/V8TestInterface.h:
103793        (V8TestInterface):
103794        * dom/UIEvent.cpp:
103795        (WebCore::UIEventInit::UIEventInit):
103796        (WebCore):
103797        (WebCore::UIEvent::UIEvent):
103798        * dom/UIEvent.h:
103799        (WebCore):
103800        (UIEventInit):
103801        (UIEvent):
103802        (WebCore::UIEvent::create):
103803        (WebCore::UIEvent::view):
103804        (WebCore::UIEvent::detail):
103805        (FocusInEventDispatchMediator):
103806        (FocusOutEventDispatchMediator):
103807        * dom/UIEvent.idl:
103808
1038092013-01-22  Joshua Bell  <jsbell@chromium.org>
103810
103811        IndexedDB: Remove IDBKey from WebKitIDL
103812        https://bugs.webkit.org/show_bug.cgi?id=97375
103813
103814        Reviewed by Kentaro Hara.
103815
103816        Now that references to the artificial IDBKey type have been removed from all IDLs, remove
103817        the support code, and move the conversion code into the IDBBindingUtilities. Removes
103818        references to the autogenerated {V8,JS}IDBKey{Custom,}.{cpp,h} from the project files.
103819
103820        No new tests - just code moves/removing unused code. Updated binding reference test results.
103821
103822        * CMakeLists.txt:
103823        * DerivedSources.cpp:
103824        * DerivedSources.make:
103825        * DerivedSources.pri:
103826        * GNUmakefile.list.am:
103827        * Modules/indexeddb/IDBKey.idl: Removed.
103828        * Target.pri:
103829        * UseJSC.cmake:
103830        * UseV8.cmake:
103831        * WebCore.gypi:
103832        * WebCore.vcproj/WebCore.vcproj:
103833        * WebCore.xcodeproj/project.pbxproj:
103834        * bindings/js/IDBBindingUtilities.cpp:
103835        (WebCore::toJS): Moved here from JSIDBKeyCustom.cpp
103836        (WebCore):
103837        * bindings/js/JSIDBKeyCustom.cpp: Removed.
103838        * bindings/scripts/CodeGeneratorJS.pm:
103839        (JSValueToNative):
103840        * bindings/scripts/CodeGeneratorV8.pm:
103841        (GenerateFunctionCallString):
103842        (GetNativeType):
103843        (JSValueToNative):
103844        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
103845        * bindings/scripts/test/CPP/WebDOMTestObj.h:
103846        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
103847        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
103848        * bindings/scripts/test/JS/JSTestObj.cpp:
103849        * bindings/scripts/test/JS/JSTestObj.h:
103850        * bindings/scripts/test/ObjC/DOMTestObj.h:
103851        * bindings/scripts/test/ObjC/DOMTestObj.mm:
103852        * bindings/scripts/test/TestObj.idl: Removed IDBKey-specific test.
103853        * bindings/scripts/test/V8/V8TestObj.cpp:
103854        * bindings/v8/IDBBindingUtilities.cpp:
103855        (WebCore::toV8): Moved here from V8IDBKeyCustom.cpp
103856        (WebCore):
103857        * bindings/v8/custom/V8IDBKeyCustom.cpp: Removed.
103858
1038592013-01-22  Tony Gentilcore  <tonyg@chromium.org>
103860
103861        Fix assertions in make8BitFrom16BitSource() with threaded parser
103862        https://bugs.webkit.org/show_bug.cgi?id=107596
103863
103864        Reviewed by Adam Barth.
103865
103866        This fixes an assertion in several fast/parser tests. We need to keep track of whether the data is all 8bit.
103867        Luckily this doesn't cost us any size on CompactHTMLToken because the bitfields are collapsed (verified by COMPILE_ASSERT).
103868
103869        No new tests because covered by existing fast/parser tests.
103870
103871        * html/parser/CompactHTMLToken.cpp:
103872        (WebCore::CompactHTMLToken::CompactHTMLToken):
103873        * html/parser/CompactHTMLToken.h:
103874        (WebCore::CompactHTMLToken::isAll8BitData):
103875        (CompactHTMLToken):
103876        * html/parser/HTMLToken.h:
103877        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
103878
1038792013-01-22  Tony Gentilcore  <tonyg@chromium.org>
103880
103881        Fix ASSERT(!hasInsertionPoint()) in threaded HTML parser
103882        https://bugs.webkit.org/show_bug.cgi?id=107593
103883
103884        Reviewed by Adam Barth.
103885
103886        Prior to this patch, several fast/parser tests hit ASSERT(!hasInsertionPoint()) in prepareToStopParsing().
103887        That was because hasInsertionPoint() checks m_input.haveSeenEndOfFile() which was skipped for the threaded
103888        parser case. This patch causes us to call markEndOfFile().
103889
103890        No new tests because covered by existing fast/parser tests.
103891
103892        * html/parser/HTMLDocumentParser.cpp:
103893        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser): This FIXME was done in a previous patch.
103894        (WebCore::HTMLDocumentParser::finish):
103895
1038962013-01-22  Joshua Bell  <jsbell@chromium.org>
103897
103898        Prevent race condition during Worker shutdown
103899        https://bugs.webkit.org/show_bug.cgi?id=107577
103900
103901        Reviewed by Dmitry Titov.
103902
103903        During worker shutdown, from the main thread a cleanup task is posted followed by
103904        terminating the message queue, which prevents further tasks from being processed. It was
103905        possible for another task be posted by another thread between the main thread calls
103906        to postTask and terminate(), which would cause that task to run after cleanup. Expose
103907        a new WTF::MessageQueue::appendAndKill() method which keeps a mutex around the two steps,
103908        and use that during worker shutdown.
103909
103910        No reliable tests for the race - problem identified by inspection of user crash stacks.
103911
103912        * workers/WorkerRunLoop.cpp:
103913        (WebCore::WorkerRunLoop::postTaskAndTerminate): New method, uses MessageQueue::appendAndKill()
103914        * workers/WorkerRunLoop.h:
103915        * workers/WorkerThread.cpp:
103916        (WebCore::WorkerThread::stop): Uses postTaskAndTerminate() to avoid race.
103917
1039182013-01-22  Tony Chang  <tony@chromium.org>
103919
103920        Unreviewed, rolling out r140171.
103921        http://trac.webkit.org/changeset/140171
103922        https://bugs.webkit.org/show_bug.cgi?id=107193
103923
103924        Regressed scrollable region size in other cases.
103925
103926        * rendering/RenderBlock.cpp:
103927        (WebCore::RenderBlock::simplifiedLayout):
103928
1039292013-01-22  Alexey Proskuryakov  <ap@apple.com>
103930
103931        [WK2] WebProcessService is not terminated when page is closed
103932        https://bugs.webkit.org/show_bug.cgi?id=107595
103933
103934        Reviewed by Anders Carlsson.
103935
103936        * platform/mac/RunLoopMac.mm: (WebCore::RunLoop::stop): Allow stopping XPC service
103937        run loop. Also, harmonized NSApp vs. [NSApplication sharedApplication] usage.
103938
1039392013-01-22  Ojan Vafai  <ojan@chromium.org>
103940
103941        REGRESION(r130774): preferred width of tables does not take max-width into account
103942        https://bugs.webkit.org/show_bug.cgi?id=107576
103943
103944        Reviewed by Tony Chang.
103945
103946        Constrain preferred widths by min/max the way we do in other
103947        RenderBlock subclasses. Eventually, we'll shared the code with
103948        RenderBlock, but this is an incremental step in that direction
103949        that we can safely merge into release branches.
103950
103951        Test: fast/table/min-max-width-preferred-size.html
103952
103953        * rendering/RenderTable.cpp:
103954        (WebCore::RenderTable::computePreferredLogicalWidths):
103955
1039562013-01-22  Adam Barth  <abarth@webkit.org>
103957
103958        The BackgroundHTMLParser shouldn't pause when waiting for scripts
103959        https://bugs.webkit.org/show_bug.cgi?id=107584
103960
103961        Reviewed by Eric Seidel.
103962
103963        Previously, the BackgroundHTMLParser would pause itself when it
103964        encountered a scrip tag and wait for a signal from the main thread to
103965        continue. After this patch, the BackgroundHTMLParser continues ahead
103966        and the main thread keeps a queue of pending tokens.
103967
103968        This patch brings us closer to speculative parsing because when the
103969        BackgroundHTMLParser is continuing ahead, it is speculating that it is
103970        in the correct state. A future patch will let us abort incorret
103971        speculations and resume from an eariler point in the input stream.
103972
103973        * html/parser/BackgroundHTMLParser.cpp:
103974        (WebCore::checkThatTokensAreSafeToSendToAnotherThread):
103975        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
103976        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
103977        (WebCore::BackgroundHTMLParser::pumpTokenizer):
103978        (WebCore::TokenDelivery::TokenDelivery):
103979        (TokenDelivery):
103980        (WebCore::TokenDelivery::execute):
103981        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
103982        * html/parser/BackgroundHTMLParser.h:
103983        (BackgroundHTMLParser):
103984        * html/parser/CompactHTMLToken.h:
103985        (WebCore):
103986        * html/parser/HTMLDocumentParser.cpp:
103987        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
103988        (WebCore):
103989        (WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
103990        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
103991        * html/parser/HTMLDocumentParser.h:
103992        (HTMLDocumentParser):
103993
1039942013-01-22  Simon Fraser  <simon.fraser@apple.com>
103995
103996        Fix scrollperf logging
103997        https://bugs.webkit.org/show_bug.cgi?id=107589
103998
103999        Reviewed by Tim Horton.
104000
104001        The scrollperf logging had two issues:
104002
104003        1. It relied on a paint logging a "filled" event, but it's possible
104004        for existing tiles to be moved into the viewport and filling it, so
104005        we need to log from the scrolling thread both when we have unfilled pixels,
104006        and when the last scroll revealed unfilled pixels.
104007        
104008        2. On some pages, z-index:-1 elements behind the body cause the root
104009        TileCache to have drawsContent set to false, so none of its tiles paint. In
104010        that case, the check for a non-zero paintCount in TileCache::blankPixelCountForTiles()
104011        was wrong; we don't think there's a way to have an unpainted tile in the tree.
104012        
104013        Also fix the signature of blankPixelCountForTiles() to take references.
104014
104015        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
104016        (ScrollingTreeScrollingNodeMac):
104017        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
104018        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
104019        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
104020        * platform/graphics/ca/mac/TileCache.h:
104021        * platform/graphics/ca/mac/TileCache.mm:
104022        (WebCore::TileCache::blankPixelCountForTiles):
104023
1040242013-01-22  Eric Seidel  <eric@webkit.org>
104025
104026        Make CompactHTMLToken a little more compact
104027        https://bugs.webkit.org/show_bug.cgi?id=107317
104028
104029        Reviewed by Adam Barth.
104030
104031        The windows builders got sad because MSVC won't combine
104032        adjacent bit-fields with different types.  Changing
104033        bool to unsigned should fix the problem.
104034
104035        * html/parser/CompactHTMLToken.h:
104036        (CompactHTMLToken):
104037
1040382013-01-22  Anthony Scian  <ascian@rim.com>
104039
104040        [Blackberry] Static code analysis warning fixes
104041        https://bugs.webkit.org/show_bug.cgi?id=107464
104042
104043        Reviewed by Rob Buis.
104044
104045        Klocwork issues: 1367, 2367
104046        - add NULL pointer checks detected by static code analysis
104047
104048        * platform/blackberry/WidgetBlackBerry.cpp:
104049        (WebCore::Widget::setCursor):
104050        * plugins/blackberry/PluginViewBlackBerry.cpp:
104051        (WebCore::PluginView::updatePluginWidget):
104052
1040532013-01-22  Joseph Pecoraro  <pecoraro@apple.com>
104054
104055        [Mac] Enable Page Visibility (PAGE_VISIBILITY_API)
104056        https://bugs.webkit.org/show_bug.cgi?id=107230
104057
104058        Reviewed by David Kilzer.
104059
104060        No new tests. Covered by existing tests which are now unskipped.
104061
104062        * Configurations/FeatureDefines.xcconfig:
104063
1040642013-01-22  Tony Gentilcore  <tonyg@chromium.org>
104065
104066        Make BackgroundHTMLParser track line/column numbers
104067        https://bugs.webkit.org/show_bug.cgi?id=107561
104068
104069        Reviewed by Adam Barth.
104070
104071        No new tests because covered by existing fast/parser tests.
104072
104073        * html/parser/BackgroundHTMLParser.cpp:
104074        (WebCore::BackgroundHTMLParser::pumpTokenizer):
104075        * html/parser/CompactHTMLToken.cpp:
104076        (WebCore::CompactHTMLToken::CompactHTMLToken):
104077        * html/parser/CompactHTMLToken.h:
104078        (CompactHTMLToken):
104079        (WebCore::CompactHTMLToken::textPosition):
104080        * html/parser/HTMLDocumentParser.cpp:
104081        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
104082        (WebCore::HTMLDocumentParser::lineNumber):
104083        (WebCore::HTMLDocumentParser::textPosition):
104084        * html/parser/HTMLDocumentParser.h:
104085        (HTMLDocumentParser):
104086
1040872013-01-22  Alec Flett  <alecflett@chromium.org>
104088
104089        IndexedDB: Don't assert when deprecated setCallbacks is called
104090        https://bugs.webkit.org/show_bug.cgi?id=107580
104091
104092        Reviewed by Tony Chang.
104093
104094        Remove an assert for IDBTransactionBackendImpl that was deprecated
104095        in a previous commit, but is still called by old chromium code.
104096        After the chromium code is removed, this method will be removed
104097        entirely.
104098
104099        * Modules/indexeddb/IDBTransactionBackendImpl.h:
104100        (WebCore::IDBTransactionBackendImpl::setCallbacks):
104101
1041022013-01-22  Zan Dobersek  <zandobersek@gmail.com>
104103
104104        [GTK] Disable CSS Regions in release builds
104105        https://bugs.webkit.org/show_bug.cgi?id=106541
104106
104107        Reviewed by Martin Robinson.
104108
104109        The CSS Regions feature is not yet deemed stable enough to be enabled
104110        in release builds, so disable it. It's still enabled for development
104111        builds, via FeatureList.pm.
104112
104113        No new tests - no testable changes.
104114
104115        * GNUmakefile.features.am.in:
104116
1041172013-01-22  Zan Dobersek  <zandobersek@gmail.com>
104118
104119        [GTK] Enable the <template> element support in development builds
104120        https://bugs.webkit.org/show_bug.cgi?id=106575
104121
104122        Reviewed by Martin Robinson.
104123
104124        Add a missing build target that contains the custom JS bindings.
104125
104126        No new tests - the related tests are being unskipped and mostly pass.
104127
104128        * GNUmakefile.list.am:
104129
1041302013-01-22  Joshua Bell  <jsbell@chromium.org>
104131
104132        IndexedDB: Remove dependency on IDBKey type from IDLs
104133        https://bugs.webkit.org/show_bug.cgi?id=106912
104134
104135        Reviewed by Kentaro Hara.
104136
104137        This is a preamble to wkbug.com/97375 "Remove IDBKey from WebKitIDL"; IDBKey is
104138        not a concept from the Indexed DB spec but a convenient internal type. It was
104139        exposed in the IDL with custom binding code and special cases in the generator
104140        to map from script values to the WebCore type. To remove those special cases
104141        and match the WebIDL in the spec, the IDLs are changed to use "any" and the
104142        implementations now take ScriptValues. This does mean that each call site must
104143        call into IDBBindingUtilities to map from ScriptValue to IDBKey.
104144
104145        No new tests - just a refactor.
104146
104147        * Modules/indexeddb/IDBAny.cpp: Remove IDBKey as a variant type - just use ScriptValue.
104148        * Modules/indexeddb/IDBAny.h:
104149        (WebCore):
104150        (IDBAny):
104151        * Modules/indexeddb/IDBCursor.cpp:
104152        (WebCore::IDBCursor::continueFunction): Now takes any/ScriptValue.
104153        (WebCore):
104154        * Modules/indexeddb/IDBCursor.h:
104155        (WebCore::IDBCursor::continueFunction):
104156        (IDBCursor):
104157        * Modules/indexeddb/IDBCursor.idl:
104158        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
104159        (WebCore::IDBCursorBackendImpl::deleteFunction):
104160        * Modules/indexeddb/IDBFactory.cpp:
104161        (WebCore::IDBFactory::cmp): Now takes any/ScriptValue.
104162        * Modules/indexeddb/IDBFactory.h:
104163        (IDBFactory):
104164        * Modules/indexeddb/IDBFactory.idl:
104165        * Modules/indexeddb/IDBIndex.cpp:
104166        (WebCore::IDBIndex::openCursor): Now takes any/ScriptValue.
104167        (WebCore::IDBIndex::count): Now takes any/ScriptValue.
104168        (WebCore::IDBIndex::openKeyCursor): Now takes any/ScriptValue.
104169        (WebCore::IDBIndex::get): Now takes any/ScriptValue.
104170        (WebCore::IDBIndex::getKey): Now takes any/ScriptValue.
104171        * Modules/indexeddb/IDBIndex.h:
104172        (WebCore::IDBIndex::openCursor):
104173        (IDBIndex):
104174        (WebCore::IDBIndex::openKeyCursor):
104175        * Modules/indexeddb/IDBIndex.idl:
104176        * Modules/indexeddb/IDBKeyRange.cpp:
104177        (WebCore::IDBKeyRange::create): Add helper for back-end creation of single-key ranges.
104178        (WebCore):
104179        (WebCore::IDBKeyRange::lowerValue): Impl. of new "any" type accessor exposed to script.
104180        (WebCore::IDBKeyRange::upperValue): Ditto.
104181        (WebCore::IDBKeyRange::only): Now takes any/ScriptValue.
104182        (WebCore::IDBKeyRange::lowerBound): Now takes any/ScriptValue.
104183        (WebCore::IDBKeyRange::upperBound): Now takes any/ScriptValue.
104184        (WebCore::IDBKeyRange::bound): Now takes any/ScriptValue.
104185        * Modules/indexeddb/IDBKeyRange.h:
104186        (IDBKeyRange):
104187        (WebCore::IDBKeyRange::lowerBound):
104188        (WebCore::IDBKeyRange::upperBound):
104189        (WebCore::IDBKeyRange::bound):
104190        * Modules/indexeddb/IDBKeyRange.idl:
104191        * Modules/indexeddb/IDBObjectStore.cpp:
104192        (WebCore::IDBObjectStore::get): Now takes any/ScriptValue.
104193        (WebCore::IDBObjectStore::add): Now takes any/ScriptValue.
104194        (WebCore):
104195        (WebCore::IDBObjectStore::put): Now takes any/ScriptValue.
104196        (WebCore::IDBObjectStore::deleteFunction): Now takes any/ScriptValue.
104197        (WebCore::IDBObjectStore::openCursor): Now takes any/ScriptValue.
104198        (WebCore::IDBObjectStore::count): Now takes any/ScriptValue.
104199        * Modules/indexeddb/IDBObjectStore.h:
104200        (IDBObjectStore):
104201        (WebCore::IDBObjectStore::openCursor):
104202        * Modules/indexeddb/IDBObjectStore.idl:
104203        * Modules/indexeddb/IDBRequest.cpp: Result IDBAny type is now ScriptValue.
104204        (WebCore::IDBRequest::onSuccess):
104205        * bindings/js/IDBBindingUtilities.cpp:
104206        (WebCore::scriptValueToIDBKey): The inverse of idbKeyToScriptValue().
104207        (WebCore):
104208        * bindings/js/IDBBindingUtilities.h:
104209        (WebCore):
104210        * bindings/js/JSIDBAnyCustom.cpp:
104211        (WebCore::toJS):
104212        * bindings/v8/IDBBindingUtilities.cpp:
104213        (WebCore::scriptValueToIDBKey): Ditto.
104214        (WebCore):
104215        * bindings/v8/IDBBindingUtilities.h:
104216        (WebCore):
104217        * bindings/v8/custom/V8IDBAnyCustom.cpp:
104218        (WebCore::toV8): Remove IDBKey variant type.
104219
1042202013-01-22  Justin Schuh  <jschuh@chromium.org>
104221
104222        TRANSFORMATION_MATRIX_USE_X86_64_SSE2 broken for 64-bit Windows builds
104223        https://bugs.webkit.org/show_bug.cgi?id=107498
104224
104225        Reviewed by James Robinson.
104226        
104227        Enable TRANSFORMATION_MATRIX_USE_X86_64_SSE2 for 64-bit Windows.
104228
104229        No new tests. Covered by existing tests.
104230
104231        * platform/graphics/transforms/TransformationMatrix.h:
104232        (WebCore):
104233        (TransformationMatrix):
104234
1042352013-01-22  Min Qin  <qinmin@chromium.org>
104236
104237        Fix a race condition on SkBitmap::lockPixels()/unlockPixels() for lazy image decoding
104238        https://bugs.webkit.org/show_bug.cgi?id=107404
104239
104240        Reviewed by Stephen White.
104241
104242        Skbitmap::lockPixels()/unlockPixels() are not threadsafe.
104243        unlike SkPixelRef, these 2 calls are not protected by an internal mutex.
104244        Bugfix, no behaviral change and hard to test as tests will be flaky.
104245
104246        * platform/graphics/chromium/ImageDecodingStore.cpp:
104247        (WebCore::ImageDecodingStore::lockCache):
104248        (WebCore::ImageDecodingStore::unlockCache):
104249        (WebCore::ImageDecodingStore::insertAndLockCache):
104250        (WebCore::ImageDecodingStore::overwriteAndLockCache):
104251        * platform/graphics/chromium/ImageDecodingStore.h:
104252        (ImageDecodingStore):
104253
1042542013-01-22  Eric Seidel  <eric@webkit.org>
104255
104256        Make CompactHTMLToken a little more compact
104257        https://bugs.webkit.org/show_bug.cgi?id=107317
104258
104259        Reviewed by Darin Adler.
104260
104261        Reduce the size of CompactHTMLToken by two pointers.
104262        The abuse of the attribute vector to store the DOCTYPE strings
104263        is kinda lame, but makes a lot of sense given how rare DOCTYPE tokens are.
104264
104265        The resulting CompactHTMLToken vector should be a smaller malloc and thus faster.
104266        However I saw no perf change on html-parser-srcdoc.html.
104267
104268        * html/parser/CompactHTMLToken.cpp:
104269        (SameSizeAsCompactHTMLToken):
104270        (WebCore):
104271        (WebCore::CompactHTMLToken::CompactHTMLToken):
104272        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
104273        * html/parser/CompactHTMLToken.h:
104274        (WebCore::CompactHTMLToken::type):
104275        (CompactHTMLToken):
104276        (WebCore::CompactHTMLToken::publicIdentifier):
104277        (WebCore::CompactHTMLToken::systemIdentifier):
104278
1042792013-01-22  Elliott Sprehn  <esprehn@chromium.org>
104280
104281        Assertion parent->inDocument() failed in WebCore::PseudoElement::PseudoElement
104282        https://bugs.webkit.org/show_bug.cgi?id=106224
104283
104284        Reviewed by Ojan Vafai.
104285
104286        Appending a node that contains a <style> and also elements that should have
104287        generated content can cause us to create PseudoElements in nodes that are not
104288        yet inDocument because we may recalcStyle in HTMLStyleElement::insertedInto
104289        triggering a reattach() which could then traverse into the siblings of the
104290        <style> attaching them even though they are not yet inDocument.
104291
104292        This means that we should not assert about the parent of a PseudoElement
104293        being inDocument as this is not always the case.
104294
104295        Instead forward Node::insertedInto and removedFrom notifications to
104296        PseudoElements so they will correctly get their inDocument bit set. Nothing
104297        in the code appears to depend on them being inDocument we just make sure to
104298        set it so they're consistent with the rest of the document.
104299
104300        No new tests, there's no way to test that PseudoElements are really inDocument.
104301
104302        * dom/Element.cpp:
104303        (WebCore::Element::insertedInto):
104304        (WebCore::Element::removedFrom):
104305        * dom/PseudoElement.cpp:
104306        (WebCore::PseudoElement::PseudoElement):
104307
1043082013-01-22  Alexis Menard  <alexis@webkit.org>
104309
104310        Allow construction of unprefixed transition DOM events.
104311        https://bugs.webkit.org/show_bug.cgi?id=107319
104312
104313        Reviewed by Dean Jackson.
104314
104315        Make possible to construct unprefixed DOM events for transitions.
104316        Unfortunately I have to duplicate the C++ implementation class of the
104317        events (TransitionEvent.h and TransitionEvent.cpp). I can't find a
104318        better way to re-use the WebKitTransitionEvent class to back the
104319        TransitionEvent.idl as our code generators don't allow to have a
104320        different name for the C++ class used in the generated file than the
104321        interface name specified in the IDL file. Unfortunately
104322        https://trac.webkit.org/wiki/WebKitIDL#InterfaceName doesn't help as
104323        it's only a way to unlink the interface name specified in the IDL with
104324        the one exposed in JavaScript. I don't think we should support such a
104325        feature in our code generators as WebKitTransitionEvent class and more
104326        exactly prefixed DOM events for transitions will be removed one day so
104327        this use case will become obselete.
104328
104329        Test: fast/events/constructors/transition-event-constructor.html
104330
104331        * CMakeLists.txt:
104332        * DerivedSources.cpp:
104333        * DerivedSources.make:
104334        * DerivedSources.pri:
104335        * GNUmakefile.list.am:
104336        * Target.pri:
104337        * WebCore.gypi:
104338        * WebCore.vcproj/WebCore.vcproj:
104339        * WebCore.xcodeproj/project.pbxproj:
104340        * dom/DOMAllInOne.cpp:
104341        * dom/EventNames.in:
104342        * dom/TransitionEvent.cpp: Added.
104343        (WebCore):
104344        (WebCore::TransitionEventInit::TransitionEventInit):
104345        (WebCore::TransitionEvent::TransitionEvent):
104346        (WebCore::TransitionEvent::~TransitionEvent):
104347        (WebCore::TransitionEvent::propertyName):
104348        (WebCore::TransitionEvent::elapsedTime):
104349        (WebCore::TransitionEvent::interfaceName):
104350        * dom/TransitionEvent.h: Added.
104351        (WebCore):
104352        (TransitionEventInit):
104353        (TransitionEvent):
104354        (WebCore::TransitionEvent::create):
104355        * dom/TransitionEvent.idl: Added.
104356        * page/DOMWindow.idl:
104357        * page/animation/AnimationController.cpp:
104358        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): always
104359        create a TransitionEvent now. EventTarget will be responsible to create
104360        a WebKitTransitionEvent if necessary.
104361
1043622013-01-22  Adam Barth  <abarth@webkit.org>
104363
104364        Wean BackgroundHTMLParser off HTMLInputStream
104365        https://bugs.webkit.org/show_bug.cgi?id=107575
104366
104367        Reviewed by Eric Seidel.
104368
104369        The BackgroundHTMLParser doesn't need to use HTMLInputStream because it
104370        doesn't need to handle nested calls to document.write. Instead, we can
104371        just use a SegmentedString directly, which will let us checkpoint
104372        m_input for speculation.
104373
104374        * html/parser/BackgroundHTMLParser.cpp:
104375        (WebCore::BackgroundHTMLParser::append):
104376        (WebCore::BackgroundHTMLParser::finish):
104377        (WebCore::BackgroundHTMLParser::markEndOfFile):
104378        (WebCore):
104379        (WebCore::BackgroundHTMLParser::pumpTokenizer):
104380        * html/parser/BackgroundHTMLParser.h:
104381        (BackgroundHTMLParser):
104382
1043832013-01-22  Sergio Villar Senin  <svillar@igalia.com>
104384
104385        [Soup] Random thread crashes
104386        https://bugs.webkit.org/show_bug.cgi?id=107439
104387
104388        Reviewed by Martin Robinson.
104389
104390        Process all pending requests in the inner GMainContext created to
104391        perform synchronous requests before restoring the thread default. No
104392        new tests required, already covered by network tests.
104393
104394        * platform/network/soup/ResourceHandleSoup.cpp:
104395        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
104396
1043972013-01-22  Christophe Dumez  <christophe.dumez@intel.com>
104398
104399        [gstreamer] GstBus signal watch should be removed on clean up
104400        https://bugs.webkit.org/show_bug.cgi?id=107544
104401
104402        Reviewed by Philippe Normand.
104403
104404        Our gstreamer backend code currently calls gst_bus_add_signal_watch()
104405        on GstBus to add a signal watch. As per the gstreamer  documentation,
104406        "To clean up, the caller is responsible for calling
104407        gst_bus_remove_signal_watch() as many times as this function is
104408        called". This is because gst_bus_add_signal_watch() causes the GstBus
104409        object to be ref'd and gst_bus_remove_signal_watch() needs to be
104410        called to properly unref it.
104411
104412        This patch makes sure that gst_bus_remove_signal_watch() is called
104413        on the GstBus object when cleaning up. This patch also uses smart
104414        pointers for GstBus objects for consistency.
104415
104416        No new tests, no behavior change for layout tests.
104417
104418        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
104419        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
104420        (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
104421        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
104422        (WebCore::AudioFileReader::~AudioFileReader):
104423        (WebCore::AudioFileReader::decodeAudioForBusCreation):
104424        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
104425        (WebCore::GStreamerGWorld::GStreamerGWorld):
104426        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
104427        (webkitGstPipelineGetBus):
104428        * platform/graphics/gstreamer/GStreamerVersioning.h:
104429        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
104430        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
104431
1044322013-01-22  Adam Barth  <abarth@webkit.org>
104433
104434        BackgroundHTMLParser should simulate tree building in a separate function
104435        https://bugs.webkit.org/show_bug.cgi?id=107569
104436
104437        Reviewed by Eric Seidel.
104438
104439        This patch cleans up BackgroundHTMLParser::pumpTokenizer to prepare for
104440        implementing speculative parsing.
104441
104442        * html/parser/BackgroundHTMLParser.cpp:
104443        (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
104444        (WebCore):
104445        (WebCore::BackgroundHTMLParser::pumpTokenizer):
104446        * html/parser/BackgroundHTMLParser.h:
104447        (BackgroundHTMLParser):
104448        * page/Settings.in:
104449
1044502013-01-22  Sheriff Bot  <webkit.review.bot@gmail.com>
104451
104452        Unreviewed, rolling out r140435.
104453        http://trac.webkit.org/changeset/140435
104454        https://bugs.webkit.org/show_bug.cgi?id=107565
104455
104456        Crashes on ClusterFuzz due to float not removed (Requested by
104457        inferno-sec on #webkit).
104458
104459        * rendering/RenderBox.cpp:
104460        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
104461
1044622013-01-22  Robert Hogan  <robert@webkit.org>
104463
104464        When we do setAttribute("border", null) on a table we should create a border like every other browser
104465        https://bugs.webkit.org/show_bug.cgi?id=102112
104466
104467        Reviewed by Ryosuke Niwa.
104468
104469        http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#tables says:
104470        "If the [table's border] attribute is present but parsing the attribute's value using the rules for parsing 
104471        non-negative integers generates an error, a default value of 1px is expected to be used for that property instead."
104472
104473        Match the spec and bring us into line with other browsers by observing the 'parsing non-negative integers' algorithm.
104474
104475        Tests: fast/dom/HTMLTableElement/table-with-invalid-border.html
104476               fast/table/table-with-borderattr-null.html
104477               fast/table/table-with-borderattr-set-to-null.html
104478
104479        * html/HTMLElement.cpp:
104480        (WebCore::HTMLElement::parseBorderWidthAttribute):
104481        (WebCore::HTMLElement::applyBorderAttributeToStyle):
104482        * html/HTMLElement.h:
104483        (HTMLElement):
104484        * html/HTMLTableElement.cpp:
104485        (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
104486        (WebCore::HTMLTableElement::parseAttribute):
104487
1044882013-01-22  Abhishek Arya  <inferno@chromium.org>
104489
104490        Heap-use-after-free in WebCore::RenderObject::isDescendantOf
104491        https://bugs.webkit.org/show_bug.cgi?id=107226
104492
104493        Reviewed by Emil A Eklund.
104494
104495        Test: fast/block/float/overhanging-float-not-removed-crash.html
104496
104497        * rendering/RenderBox.cpp:
104498        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
104499        Skip anonymous blocks in the chain to get the enclosing block and
104500        be able to correctly mark the overhanging floats in the next siblings.
104501
1045022013-01-22  Justin Schuh  <jschuh@chromium.org>
104503
104504        Silence MSVC 64-bit build warning c4309 for FrameTree::invalidCount
104505        https://bugs.webkit.org/show_bug.cgi?id=107439
104506
104507        Reviewed by Dimitri Glazkov.
104508        
104509        MSVC detects that the constant notFound is truncated on assignment to
104510        invalidCount. Since we never compare them (as it would always fail on
104511        64-bit anyway), just initialize invalidCount directly to -1.
104512
104513        No new tests. No behavior changed.
104514
104515        * page/FrameTree.h:
104516        (FrameTree):
104517
1045182013-01-22  Zan Dobersek  <zdobersek@igalia.com>
104519
104520        [Autotools] Remove the Canvas Path configuration option
104521        https://bugs.webkit.org/show_bug.cgi?id=107537
104522
104523        Reviewed by Martin Robinson.
104524
104525        No new tests - no new testable functionality.
104526
104527        * GNUmakefile.am: Remove the Automake conditional analysis, the related
104528        configuration option is being removed as well.
104529        * GNUmakefile.features.am.in: Add the ENABLE_CANVAS_PATH feature define,
104530        defaulting to 0 in release builds (but is disabled in development builds
104531        of the GTK port as well at the moment).
104532
1045332013-01-18  Stephen Chenney  <schenney@chromium.org>
104534
104535        Asserts when textPath is used with no path
104536        https://bugs.webkit.org/show_bug.cgi?id=107324
104537
104538        Reviewed by Eric Seidel.
104539
104540        We assert when there is no path associated with an SVG text path
104541        element. Instead, this patch detects the condition and stops trying to
104542        layout text for that textPath  element.
104543
104544        Test: svg/text/tpath-without-path.svg
104545
104546        * rendering/svg/SVGTextLayoutEngine.cpp:
104547        (WebCore::SVGTextLayoutEngine::beginTextPathLayout):
104548        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
104549
1045502013-01-22  Andrey Adaikin  <aandrey@chromium.org>
104551
104552        Web Inspector: [Canvas] jump to prev/next drawing call in the replay
104553        https://bugs.webkit.org/show_bug.cgi?id=107551
104554
104555        Reviewed by Pavel Feldman.
104556
104557        Implement jumping to the next(previous) drawing call in the WebGL and canvas 2D replay.
104558
104559        * English.lproj/localizedStrings.js:
104560        * inspector/InjectedScriptCanvasModuleSource.js:
104561        (.):
104562        * inspector/Inspector.json:
104563        * inspector/front-end/CanvasProfileView.js:
104564        (WebInspector.CanvasProfileView):
104565        (WebInspector.CanvasProfileView.prototype.dispose):
104566        (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
104567        * inspector/front-end/canvasProfiler.css:
104568        (.canvas-replay-prev-draw img):
104569        (.canvas-replay-next-draw img):
104570
1045712013-01-22  Andrey Lushnikov  <lushnikov@chromium.org>
104572
104573        Web Inspector: remove asynchronous behavior from DTE paintLines method
104574        https://bugs.webkit.org/show_bug.cgi?id=107550
104575
104576        Reviewed by Pavel Feldman.
104577
104578        Remove paintLinesOperationCredit and all asynchronous behaviour from paintLines method;
104579        also, remove paintLineChunks method.
104580
104581        * inspector/front-end/DefaultTextEditor.js:
104582        (WebInspector.TextEditorMainPanel.prototype.expandChunks):
104583        (WebInspector.TextEditorMainPanel.prototype._highlightDataReady):
104584        (WebInspector.TextEditorMainPanel.prototype._paintLines):
104585        (WebInspector.TextEditorMainPanel.prototype._renderRanges):
104586        (WebInspector.TextEditorMainPanel.prototype._paintLine):
104587        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
104588
1045892013-01-22  Eugene Klyuchnikov  <eustas@chromium.org>
104590
104591        Web Inspector: [Network] "Secure" cookies can not be deleted.
104592        https://bugs.webkit.org/show_bug.cgi?id=107543
104593
104594        Reviewed by Pavel Feldman.
104595
104596        To delete secure cookie URL schema need to be "https" instead of "http".
104597
104598        * inspector/front-end/CookieItemsView.js:
104599        (WebInspector.CookieItemsView.prototype._deleteCookie):
104600        Take care of secure cookies.
104601
1046022013-01-22  Sheriff Bot  <webkit.review.bot@gmail.com>
104603
104604        Unreviewed, rolling out r140420.
104605        http://trac.webkit.org/changeset/140420
104606        https://bugs.webkit.org/show_bug.cgi?id=107557
104607
104608        Still causes crashes (EFL this time) (Requested by kov on
104609        #webkit).
104610
104611        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
104612        * platform/graphics/gstreamer/GStreamerVersioning.h:
104613        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
104614        (StreamingClient):
104615        (_WebKitWebSrcPrivate):
104616        (webKitWebSrcFinalize):
104617        (webKitWebSrcStop):
104618        (StreamingClient::didReceiveData):
104619        * platform/network/ResourceHandleClient.h:
104620        (ResourceHandleClient):
104621        * platform/network/ResourceHandleInternal.h:
104622        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
104623        (ResourceHandleInternal):
104624        * platform/network/soup/ResourceHandleSoup.cpp:
104625        (WebCore::cleanupSoupRequestOperation):
104626        (WebCore::nextMultipartResponsePartCallback):
104627        (WebCore::sendRequestCallback):
104628        (WebCore::readCallback):
104629
1046302013-01-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
104631
104632        [Qt] Crash in PasteboardQt.cpp Pasteboard::writeSelection
104633        https://bugs.webkit.org/show_bug.cgi?id=102192
104634
104635        Patch by Fabien Valée
104636        Reviewed by Jocelyn Turcotte.
104637
104638        QClipboard::setMimeData transfers ownership of QMimeData to the clipboard,
104639        so we should not access it afterwards.
104640
104641        * platform/qt/PasteboardQt.cpp:
104642        (WebCore::Pasteboard::writeSelection):
104643        (WebCore::Pasteboard::writePlainText):
104644
1046452013-01-22  Christophe Dumez  <christophe.dumez@intel.com>
104646
104647        Regression(r140414): It is causing crashes with gstreamer 0.10
104648        https://bugs.webkit.org/show_bug.cgi?id=107554
104649
104650        Reviewed by Philippe Normand.
104651
104652        gstreamer 0.10 doc led me to believe that gst_element_factory_make()
104653        was not returning a floating reference. However, based on testing
104654        (and results on Qt port) it does so we should NOT adopt the
104655        returned GstElement object.
104656
104657        No new tests, already covered by existing tests.
104658
104659        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
104660
1046612013-01-22  Andrey Lushnikov  <lushnikov@chromium.org>
104662
104663        Web Inspector: do not highlight really long lines in DTE.
104664        https://bugs.webkit.org/show_bug.cgi?id=107531
104665
104666        Reviewed by Pavel Feldman.
104667
104668        Improve TextEditorHighlighter.orderedRangesPerLine method to return
104669        only ranges that start before particular column.
104670
104671        Test: inspector/editor/text-editor-long-line.html
104672
104673        * inspector/front-end/TextEditorHighlighter.js:
104674        (WebInspector.TextEditorHighlighter):
104675        (WebInspector.TextEditorHighlighter.prototype.setHighlightLineLimit):
104676        (WebInspector.TextEditorHighlighter.prototype.orderedRangesPerLine.comparator):
104677        (WebInspector.TextEditorHighlighter.prototype.orderedRangesPerLine):
104678
1046792013-01-22  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
104680
104681        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
104682        https://bugs.webkit.org/show_bug.cgi?id=105552
104683
104684        Reviewed by Philippe Normand.
104685
104686        Makes it possible for the GStreamer media backend to provide the buffer to which
104687        the Soup networking backend will use to download data to. This makes copying
104688        memory unnecessary when ResourceHandle hands data over to the media player's
104689        StreamingClient. Thanks to Dan Winship for help designing the interface.
104690
104691        No behaviour change, covered by existing tests.
104692
104693        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
104694        (createGstBufferForData): New helper to create a GstBuffer when
104695        we have a data pointer and a length.
104696        (getGstBufferSize): Abstract obtaining the size of the buffer, so the code
104697        is cleaner while still working for both GST 0.10 and 1.0.
104698        (setGstBufferSize): Ditto, but for setting the size.
104699        (getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
104700        (mapGstBuffer): Convenience method to take care of mapping the buffer so that
104701        we can provide the data pointer to ResourceHandle.
104702        (unmapGstBuffer): Convenience method which takes care of unmapping the buffer
104703        and properly freeing the GstMapInfo.
104704        * platform/graphics/gstreamer/GStreamerVersioning.h:
104705        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
104706        (StreamingClient): New methods.
104707        (_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
104708        so we can later unmap it and push it to the pipeline.
104709        (webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
104710        destroyed.
104711        (webKitWebSrcStop): Also clear the GstBuffer in this case.
104712        (StreamingClient::didReceiveData): Handle the hand-over of the buffer.
104713        (StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
104714        * platform/network/ResourceHandleClient.h:
104715        (ResourceHandleClient):
104716        (WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
104717        member variable to 0.
104718        (WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
104719        has been allocated.
104720        (WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
104721        newly allocated char pointer.
104722        * platform/network/ResourceHandleInternal.h:
104723        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
104724        (ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
104725        * platform/network/soup/ResourceHandleSoup.cpp:
104726        (WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
104727        buffer is handled by the ResourceHandleClient.
104728        (WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
104729        (WebCore::sendRequestCallback): Ditto.
104730        (WebCore::readCallback): Ditto.
104731
1047322013-01-22  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
104733
104734        [EFL] Fix context menu localized string
104735        https://bugs.webkit.org/show_bug.cgi?id=107536
104736
104737        One of localized string has a marker. Since EFL port does not support them
104738        it has to be removed, so the string will be displayed properly.
104739
104740        Reviewed by Laszlo Gombos.
104741
104742        * platform/efl/LocalizedStringsEfl.cpp:
104743        (WebCore::contextMenuItemTagCheckSpellingWhileTyping)
104744
1047452013-01-22  Sheriff Bot  <webkit.review.bot@gmail.com>
104746
104747        Unreviewed, rolling out r140412.
104748        http://trac.webkit.org/changeset/140412
104749        https://bugs.webkit.org/show_bug.cgi?id=107549
104750
104751        Broke rendering of buttons on gmail (Requested by carewolf on
104752        #webkit).
104753
104754        * platform/graphics/qt/TransparencyLayer.h:
104755        (WebCore::TransparencyLayer::TransparencyLayer):
104756
1047572013-01-22  Christophe Dumez  <christophe.dumez@intel.com>
104758
104759        [gstreamer] MediaPlayerPrivateGStreamer should take ownership of the playbin
104760        https://bugs.webkit.org/show_bug.cgi?id=107445
104761
104762        Reviewed by Philippe Normand.
104763
104764        In gstreamer 1.0, gst_element_factory_make() now returns a floating reference.
104765        MediaPlayerPrivateGStreamer calls gst_element_factory_make() to create the
104766        playbin object but does not take ownership of the object. As a consequence,
104767        the object keeps floating until it is unref'd in the
104768        MediaPlayerPrivateGStreamer destructor.
104769
104770        This patch uses a GRefPtr<GstElement> to store the playbin object and only
104771        adopt the object returned by gst_element_factory_make() if gstreamer 0.10
104772        is used. When gstreamer 1.0 is used, the returned object will not be adopted,
104773        which will remove the floating reference. This way, we ensure that the
104774        playbin object is owned by MediaPlayerPrivateGStreamer.
104775
104776        No new tests, no behavior change for layout tests.
104777
104778        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
104779        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
104780        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
104781        (WebCore::MediaPlayerPrivateGStreamer::load):
104782        (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
104783        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
104784        (WebCore::MediaPlayerPrivateGStreamer::duration):
104785        (WebCore::MediaPlayerPrivateGStreamer::seek):
104786        (WebCore::MediaPlayerPrivateGStreamer::paused):
104787        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
104788        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
104789        (WebCore::MediaPlayerPrivateGStreamer::setVolume):
104790        (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
104791        (WebCore::MediaPlayerPrivateGStreamer::setRate):
104792        (WebCore::MediaPlayerPrivateGStreamer::buffered):
104793        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
104794        (WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
104795        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
104796        (MediaPlayerPrivateGStreamer):
104797
1047982013-01-22  Yury Semikhatsky  <yurys@chromium.org>
104799
104800        Unreviewed. Fix closure compiler warning in inspector front-end after r140390.
104801
104802        * inspector/front-end/HeapSnapshotView.js:
104803
1048042013-01-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
104805
104806        [Qt] Box shadows on a transparency layer is very slow
104807        https://bugs.webkit.org/show_bug.cgi?id=107547
104808
104809        Reviewed by Noam Rosenthal.
104810
104811        Set an initial clip on the transparency layer, so that the clipping
104812        bounds will never end up larger than the layer.
104813
104814        * platform/graphics/qt/TransparencyLayer.h:
104815        (WebCore::TransparencyLayer::TransparencyLayer):
104816
1048172013-01-22  Matt Falkenhagen  <falken@chromium.org>
104818
104819        Move top layer flag from ElementRareData to NodeFlags
104820        https://bugs.webkit.org/show_bug.cgi?id=107542
104821
104822        Reviewed by Hajime Morita.
104823
104824        This is a speculative fix for a perf regression (https://bugs.webkit.org/show_bug.cgi?id=106726)
104825        likely due to checking the top layer flag in Element::removedFrom. It
104826        also simplifies code dealing with top layer and makes it no longer
104827        necessary to allocate rare data for top layer.
104828
104829        * dom/Element.cpp:
104830        (WebCore::Element::removedFrom): Check isInTopLayer first in case it helps fix the perf regression.
104831        (WebCore):
104832        * dom/Element.h: Move top layer functions from Element to Node.
104833        * dom/ElementRareData.h:
104834        (ElementRareData):
104835        (WebCore::ElementRareData::ElementRareData): Remove top layer flag from ElementRareData.
104836        * dom/Node.cpp: Move top layer functions from Element to Node.  
104837        (WebCore):
104838        (WebCore::Node::setIsInTopLayer):
104839        * dom/Node.h:
104840        (Node):
104841        (WebCore::Node::isInTopLayer):
104842        * dom/NodeRenderingContext.cpp: Remove unnecessary casts to Element for isInTopLayer().
104843        (WebCore::isRendererReparented):
104844        (WebCore::NodeRenderingContext::previousRenderer):
104845        (WebCore::NodeRenderingContext::parentRenderer):
104846        * rendering/RenderLayer.cpp: Ditto.
104847        (WebCore::RenderLayer::isInTopLayer):
104848        (WebCore::RenderLayer::rebuildZOrderLists):
104849
1048502013-01-22  Mark Lam  <mark.lam@apple.com>
104851
104852        Fix broken mac builds due to <http://trac.webkit.org/changeset/140399>.
104853        https://bugs.webkit.org/show_bug.cgi?id=100710.
104854
104855        Not reviewed.
104856
104857        No new tests.
104858
104859        * WebCore.xcodeproj/project.pbxproj:
104860
1048612013-01-22  Dan Carney  <dcarney@google.com>
104862
104863        [v8] Convert string conversion calls to one byte versions
104864        https://bugs.webkit.org/show_bug.cgi?id=107524
104865
104866        Reviewed by Kentaro Hara.
104867
104868        No new tests. No change in functionality.
104869
104870        * bindings/v8/SerializedScriptValue.cpp:
104871        * bindings/v8/V8StringResource.cpp:
104872        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
104873        (StringTraits):
104874        (WebCore::true):
104875        (WebCore::v8StringToWebCoreString):
104876
1048772013-01-22  Eugene Klyuchnikov  <eustas@chromium.org>
104878
104879        Web Inspector: [Network] CookiesTable refactoring.
104880        https://bugs.webkit.org/show_bug.cgi?id=107511
104881
104882        Reviewed by Pavel Feldman.
104883
104884        CookiesTable uses integer indexes as column identifiers.
104885        This leads to cryptic code.
104886
104887        Descriptive column identifiers will make code clearer.
104888        Also "addCookiesFolder" replaced with "setCookieFolders" to avoid
104889        repetitive "_rebuildTable" invocation.
104890
104891        * inspector/front-end/CookiesTable.js:
104892        (WebInspector.CookiesTable): Use descriptive column identifiers.
104893        (WebInspector.CookiesTable.prototype.setCookieFolders):
104894        Accept multiple folders.
104895        (WebInspector.CookiesTable.prototype._rebuildTable):
104896        Use descriptive column identifiers.
104897        (WebInspector.CookiesTable.prototype._sortCookies):
104898        Ditto.
104899        (WebInspector.CookiesTable.prototype._createGridNode):
104900        Ditto.
104901        * inspector/front-end/RequestCookiesView.js:
104902        (WebInspector.RequestCookiesView.prototype._buildCookiesTable):
104903        Use "setCookieFolders".
104904
1049052013-01-22  Zan Dobersek  <zdobersek@igalia.com>
104906
104907        [GTK] Disable support for unprefixed CSS animations, transitions, transforms in release builds
104908        https://bugs.webkit.org/show_bug.cgi?id=107436
104909
104910        Reviewed by Alexis Menard.
104911
104912        Disable the unprefixed CSS animations, transitions and transforms support
104913        in the release builds for now. The work in this area is not yet complete
104914        and should not ship in such state.
104915
104916        No new tests - no new functionality.
104917
104918        * GNUmakefile.features.am.in:
104919
1049202013-01-22  Alexander Pavlov  <apavlov@chromium.org>
104921
104922        Web Inspector: [REGRESSION] SASSSourceMapping broken: _bindUISourceCode method is absent
104923        https://bugs.webkit.org/show_bug.cgi?id=107529
104924
104925        Reviewed by Pavel Feldman.
104926
104927        * inspector/front-end/SASSSourceMapping.js:
104928        (WebInspector.SASSSourceMapping.prototype._fileSaveFinished):
104929
1049302013-01-22  Adam Barth  <abarth@webkit.org>
104931
104932        AtomicMarkupTokenBase must die
104933        https://bugs.webkit.org/show_bug.cgi?id=107513
104934
104935        Reviewed by Eric Seidel.
104936
104937        Now that NEW_XML has been removed from the tree, there is no reason to
104938        have AtomicMarkupTokenBase exist as a templated base class for
104939        AtomicHTMLToken. This patch just merges the code back into
104940        AtomicHTMLToken.
104941
104942        * html/parser/HTMLToken.h:
104943        (AtomicHTMLToken):
104944        (WebCore::AtomicHTMLToken::type):
104945        (WebCore::AtomicHTMLToken::name):
104946        (WebCore::AtomicHTMLToken::setName):
104947        (WebCore::AtomicHTMLToken::selfClosing):
104948        (WebCore::AtomicHTMLToken::getAttributeItem):
104949        (WebCore::AtomicHTMLToken::attributes):
104950        (WebCore::AtomicHTMLToken::characters):
104951        (WebCore::AtomicHTMLToken::charactersLength):
104952        (WebCore::AtomicHTMLToken::isAll8BitData):
104953        (WebCore::AtomicHTMLToken::comment):
104954        (WebCore::AtomicHTMLToken::publicIdentifier):
104955        (WebCore::AtomicHTMLToken::systemIdentifier):
104956        (WebCore::AtomicHTMLToken::clearExternalCharacters):
104957        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
104958        (WebCore::AtomicMarkupTokenBase::initializeAttributes):
104959        (WebCore):
104960        * xml/parser/MarkupTokenBase.h:
104961
1049622013-01-22  Eric Seidel  <eric@webkit.org>
104963
104964        Turn on ENABLE_THREADED_HTML_PARSER for Chromium (it's still disabled at runtime)
104965        https://bugs.webkit.org/show_bug.cgi?id=107519
104966
104967        Reviewed by Adam Barth.
104968
104969        Add some ASSERTs to be double-dog-sure that we're never using
104970        any of the threading code when threading is not enabled.
104971
104972        I also removed an if-branch in the !ENABLE_THREADED_HTML_PARSER case
104973        as it's not needed.
104974
104975        * html/parser/HTMLDocumentParser.cpp:
104976        (WebCore::HTMLDocumentParser::prepareToStopParsing):
104977        (WebCore::HTMLDocumentParser::startBackgroundParser):
104978        (WebCore::HTMLDocumentParser::stopBackgroundParser):
104979
1049802013-01-22  Kentaro Hara  <haraken@chromium.org>
104981
104982        [V8] Make an Isolate parameter mandatory in toV8()
104983        https://bugs.webkit.org/show_bug.cgi?id=107520
104984
104985        Reviewed by Adam Barth.
104986
104987        Now it's safe to remove an optional Isolate parameter.
104988
104989        No tests. No change in behavior.
104990
104991        * bindings/scripts/CodeGeneratorV8.pm:
104992        (GenerateHeader):
104993        * bindings/scripts/test/V8/V8Float64Array.h:
104994        (WebCore::toV8):
104995        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
104996        (WebCore::toV8):
104997        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
104998        (WebCore::toV8):
104999        * bindings/scripts/test/V8/V8TestEventConstructor.h:
105000        (WebCore::toV8):
105001        * bindings/scripts/test/V8/V8TestEventTarget.h:
105002        (WebCore::toV8):
105003        * bindings/scripts/test/V8/V8TestException.h:
105004        (WebCore::toV8):
105005        * bindings/scripts/test/V8/V8TestInterface.h:
105006        (WebCore::toV8):
105007        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
105008        (WebCore::toV8):
105009        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
105010        (WebCore::toV8):
105011        * bindings/scripts/test/V8/V8TestNode.h:
105012        (WebCore::toV8):
105013        * bindings/scripts/test/V8/V8TestObj.h:
105014        (WebCore::toV8):
105015        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
105016        (WebCore::toV8):
105017        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
105018        (WebCore::toV8):
105019        * css/MediaQueryListListener.cpp:
105020        (WebCore::MediaQueryListListener::queryChanged):
105021        * testing/v8/WebCoreTestSupport.cpp:
105022        (WebCoreTestSupport::injectInternalsObject):
105023
1050242013-01-22  Mihnea Ovidenie  <mihnea@adobe.com>
105025
105026        [CSS Regions] min-max height will not trigger a relayout when set on a region with auto-height
105027        https://bugs.webkit.org/show_bug.cgi?id=103738
105028
105029        Reviewed by David Hyatt.
105030
105031        When the style of an auto-height region changes with different min/max-height, we have to make sure
105032        that the 2-pass layout algorithm is run so that the region height is properly computed. When doing a 2-pass layout 
105033        for auto-height regions, we have to make sure that in the first pass, all auto-height regions start without a previously
105034        computed overrideLogicalContentHeight, otherwise we may end-up with incorrect results, illustrated by tests
105035        autoheight-two-pass-layout-complex-001.html and autoheight-two-pass-layout-complex-002.html.
105036
105037        If we do not have auto height regions, a single pass layout in enough to correctly flow content inside regions.
105038        When we have auto height regions, the algorithm to lay out content should be:
105039        1. If the flow thread content does not need lay out, we do a single pass layout.
105040        If during the layout, an auto-height region needs layout or a normal (not auto height) region changes its box dimensions,
105041        we need to perform a new 2-pass layout after this layout completes. If not, we bail out and skip step 2.
105042        2. Do a full two pass layout and make sure that all auto height regions start the 2-pass layout without a previously computed
105043        override logical content height.
105044
105045        Tests: fast/regions/autoheight-region-decrease-maxheight.html
105046               fast/regions/autoheight-region-decrease-minheight.html
105047               fast/regions/autoheight-region-decrease-width.html
105048               fast/regions/autoheight-region-increase-maxheight.html
105049               fast/regions/autoheight-region-increase-minheight.html
105050               fast/regions/autoheight-region-increase-width.html
105051               fast/regions/autoheight-region-new-maxheight-vrl.html
105052               fast/regions/autoheight-region-new-maxheight.html
105053               fast/regions/autoheight-region-new-minheight-vlr.html
105054               fast/regions/autoheight-region-new-minheight.html
105055               fast/regions/autoheight-region-remove-maxheight.html
105056               fast/regions/autoheight-region-remove-minheight.html
105057               fast/regions/autoheight-two-pass-layout-complex-001.html
105058               fast/regions/autoheight-two-pass-layout-complex-002.html
105059               fast/regions/region-height-auto-to-defined.html
105060               fast/regions/region-height-defined-to-auto.html
105061
105062        * rendering/FlowThreadController.cpp: Added a flag that is needed to mark whether we need a full 2-pass layout.
105063        (WebCore::FlowThreadController::FlowThreadController):
105064        * rendering/FlowThreadController.h:
105065        (WebCore::FlowThreadController::needsTwoPassLayoutForAutoHeightRegions):
105066        (WebCore::FlowThreadController::setNeedsTwoPassLayoutForAutoHeightRegions):
105067        * rendering/RenderFlowThread.cpp:
105068        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight): Use invalidateRegions because we need also to mark the flow thread as needing layout.
105069        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
105070        * rendering/RenderRegion.cpp:
105071        (WebCore::RenderRegion::layout): Make sure we do a 2-pass layout if needed.
105072        * rendering/RenderView.cpp:
105073        (WebCore::RenderView::layoutContentInAutoLogicalHeightRegions): Added a new function that models the layout algorithm for the case when we have auto height regions
105074        and flow threads.
105075        (WebCore::RenderView::layout):
105076        (WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions):
105077        * rendering/RenderView.h:
105078
1050792013-01-22  Adam Barth  <abarth@webkit.org>
105080
105081        ENABLE(NEW_XML) isn't used by anyone and no one is actively working on it
105082        https://bugs.webkit.org/show_bug.cgi?id=100710
105083
105084        Reviewed by Eric Seidel.
105085
105086        As discussed on webkit-dev
105087        <http://lists.webkit.org/pipermail/webkit-dev/2012-August/022103.html>,
105088        ENABLE(NEW_XML) isn't used by anyone and no one is actively working on
105089        it. We should remove it from the code base for the time being. If folks
105090        want to work on it again, we can restore it from SVN history.
105091
105092        * GNUmakefile.list.am:
105093        * Target.pri:
105094        * WebCore.gypi:
105095        * WebCore.vcproj/WebCore.vcproj:
105096        * WebCore.xcodeproj/project.pbxproj:
105097        * dom/Document.cpp:
105098        (WebCore::Document::createParser):
105099        * dom/DocumentFragment.cpp:
105100        (WebCore::DocumentFragment::parseXML):
105101        * xml/parser/NewXMLDocumentParser.cpp: Removed.
105102        * xml/parser/NewXMLDocumentParser.h: Removed.
105103        * xml/parser/XMLCharacterReferenceParser.cpp: Removed.
105104        * xml/parser/XMLCharacterReferenceParser.h: Removed.
105105        * xml/parser/XMLToken.h: Removed.
105106        * xml/parser/XMLTokenizer.cpp: Removed.
105107        * xml/parser/XMLTokenizer.h: Removed.
105108        * xml/parser/XMLTreeBuilder.cpp: Removed.
105109        * xml/parser/XMLTreeBuilder.h: Removed.
105110
1051112013-01-22  Kentaro Hara  <haraken@chromium.org>
105112
105113        [V8] Pass an Isolate to toV8() of event listeners
105114        https://bugs.webkit.org/show_bug.cgi?id=107517
105115
105116        Reviewed by Adam Barth.
105117
105118        By using Context::GetIsolate(), this patch passes an Isolate to toV8().
105119        I think this would be the last patch to pass an Isolate to toV8().
105120        In the next patch, I will make an Isolate parameter mandatory for toV8().
105121
105122        No tests. No change in behavior.
105123
105124        * bindings/v8/V8AbstractEventListener.cpp:
105125        (WebCore::V8AbstractEventListener::getReceiverObject):
105126        * bindings/v8/V8AbstractEventListener.h:
105127        (V8AbstractEventListener):
105128        * bindings/v8/V8EventListener.cpp:
105129        (WebCore::V8EventListener::callListenerFunction):
105130        * bindings/v8/V8LazyEventListener.cpp:
105131        (WebCore::toObjectWrapper):
105132        (WebCore::V8LazyEventListener::callListenerFunction):
105133        (WebCore::V8LazyEventListener::prepareListenerObject):
105134        * bindings/v8/V8WorkerContextEventListener.cpp:
105135        (WebCore::V8WorkerContextEventListener::getReceiverObject):
105136
1051372013-01-22  Tim Horton  <timothy_horton@apple.com>
105138
105139        PDFPlugin: Build PDFPlugin everywhere, enable at runtime
105140        https://bugs.webkit.org/show_bug.cgi?id=107117
105141
105142        Reviewed by Alexey Proskuryakov.
105143
105144        Since PDFLayerController SPI is all forward-declared, the plugin should build
105145        on all Mac platforms, and can be enabled at runtime.
105146
105147        * Configurations/FeatureDefines.xcconfig:
105148
1051492013-01-22  Dominic Mazzoni  <dmazzoni@google.com>
105150
105151        AX: Should assert if we try to create two AXObjects that point to the same renderer or node
105152        https://bugs.webkit.org/show_bug.cgi?id=107504
105153
105154        Reviewed by Chris Fleizach.
105155
105156        If two accessibility objects get created that point to the
105157        same widget, renderer, or node, that can lead to crashes or
105158        memory corruption later; make it assert instead of crashing.
105159
105160        * accessibility/AXObjectCache.cpp:
105161        (WebCore::AXObjectCache::getOrCreate):
105162
1051632013-01-22  Kentaro Hara  <haraken@chromium.org>
105164
105165        [V8] Pass an Isolate to toV8()
105166        https://bugs.webkit.org/show_bug.cgi?id=107512
105167
105168        Reviewed by Adam Barth.
105169
105170        By using Context::GetIsolate(), this patch passes an Isolate to toV8().
105171
105172        No tests. No change in behavior.
105173
105174        * bindings/v8/IDBBindingUtilities.cpp:
105175        (WebCore::injectIDBKeyIntoScriptValue):
105176        (WebCore::idbKeyToScriptValue):
105177        * bindings/v8/ScriptController.cpp:
105178        (WebCore::createScriptObject):
105179        (WebCore::ScriptController::createScriptObjectForPluginElement):
105180        * bindings/v8/ScriptDebugServer.cpp:
105181        (WebCore::ScriptDebugServer::currentCallFrame):
105182        * bindings/v8/ScriptObject.cpp:
105183        (WebCore::ScriptGlobalObject::set):
105184        * bindings/v8/V8AbstractEventListener.cpp:
105185        (WebCore::V8AbstractEventListener::handleEvent):
105186        * bindings/v8/V8DOMWindowShell.cpp:
105187        (WebCore::V8DOMWindowShell::updateDocumentProperty):
105188        * bindings/v8/V8MutationCallback.cpp:
105189        (WebCore::V8MutationCallback::handleEvent):
105190        * bindings/v8/V8NodeFilterCondition.cpp:
105191        (WebCore::V8NodeFilterCondition::acceptNode):
105192        * bindings/v8/V8WorkerContextEventListener.cpp:
105193        (WebCore::V8WorkerContextEventListener::handleEvent):
105194        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
105195        (WebCore::V8SQLStatementErrorCallback::handleEvent):
105196        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
105197        (WebCore::InjectedScriptHost::nodeAsScriptValue):
105198
1051992013-01-22  Sergey Ryazanov  <serya@chromium.org>
105200
105201        Web Inspector: Show requests in `curl` syntax in DevTools → Network → Headers
105202        https://bugs.webkit.org/show_bug.cgi?id=107276
105203
105204        Reviewed by Pavel Feldman.
105205
105206        Test: inspector/curl-command.html
105207
105208        * inspector/front-end/NetworkPanel.js:
105209        (WebInspector.NetworkLogView.prototype._generateCurlCommand):
105210
1052112013-01-22  Yury Semikhatsky  <yurys@chromium.org>
105212
105213        Web Inspector: reuse JS heap profiler UI for native heap graph representaion
105214        https://bugs.webkit.org/show_bug.cgi?id=107452
105215
105216        Reviewed by Pavel Feldman.
105217
105218        NativeHeapSnapshot is introduced to leverage JS heap snapshot processing algorithms
105219        for native heap graph. New snapshot type ("Native Heap Snapshot") is added to the
105220        profiles panel. It will represent native heap snapshots using the same UI as we use
105221        for JS heap snapshots.
105222
105223        * WebCore.gypi:
105224        * WebCore.vcproj/WebCore.vcproj:
105225        * inspector/compile-front-end.py:
105226        * inspector/front-end/HeapSnapshot.js:
105227        (WebInspector.HeapSnapshot):
105228        (WebInspector.HeapSnapshot.prototype._init):
105229        * inspector/front-end/HeapSnapshotProxy.js:
105230        (WebInspector.HeapSnapshotWorker):
105231        * inspector/front-end/HeapSnapshotView.js:
105232        (WebInspector.HeapProfileHeader.prototype.load):
105233        (WebInspector.HeapProfileHeader.prototype.startSnapshotTransfer): extracted a few methods
105234        to support overrides for native heap snapshots.
105235        (WebInspector.HeapProfileHeader.prototype.snapshotConstructorName):
105236        (WebInspector.HeapProfileHeader.prototype._setupWorker):
105237        * inspector/front-end/NativeHeapSnapshot.js: Added.
105238        (WebInspector.NativeHeapSnapshot):
105239        (WebInspector.NativeHeapSnapshot.prototype.createNode):
105240        (WebInspector.NativeHeapSnapshot.prototype.createEdge):
105241        (WebInspector.NativeHeapSnapshot.prototype.createRetainingEdge):
105242        (WebInspector.NativeHeapSnapshot.prototype._markInvisibleEdges):
105243        (WebInspector.NativeHeapSnapshot.prototype._calculateFlags):
105244        (WebInspector.NativeHeapSnapshot.prototype.canHaveDistanceOne):
105245        (WebInspector.NativeHeapSnapshot.prototype.userObjectsMapAndFlag):
105246        (WebInspector.NativeHeapSnapshotNode):
105247        (WebInspector.NativeHeapSnapshotNode.prototype.canBeQueried):
105248        (WebInspector.NativeHeapSnapshotNode.prototype.isUserObject):
105249        (WebInspector.NativeHeapSnapshotNode.prototype.className):
105250        (WebInspector.NativeHeapSnapshotNode.prototype.classIndex):
105251        (WebInspector.NativeHeapSnapshotNode.prototype.id):
105252        (WebInspector.NativeHeapSnapshotNode.prototype.name):
105253        (WebInspector.NativeHeapSnapshotNode.prototype.isHidden):
105254        (WebInspector.NativeHeapSnapshotNode.prototype.isSynthetic):
105255        (WebInspector.NativeHeapSnapshotNode.prototype.isWindow):
105256        (WebInspector.NativeHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
105257        (WebInspector.NativeHeapSnapshotNode.prototype.isDetachedDOMTree):
105258        (WebInspector.NativeHeapSnapshotEdge):
105259        (WebInspector.NativeHeapSnapshotEdge.prototype.clone):
105260        (WebInspector.NativeHeapSnapshotEdge.prototype.hasStringName):
105261        (WebInspector.NativeHeapSnapshotEdge.prototype.isElement):
105262        (WebInspector.NativeHeapSnapshotEdge.prototype.isHidden):
105263        (WebInspector.NativeHeapSnapshotEdge.prototype.isWeak):
105264        (WebInspector.NativeHeapSnapshotEdge.prototype.isInternal):
105265        (WebInspector.NativeHeapSnapshotEdge.prototype.isInvisible):
105266        (WebInspector.NativeHeapSnapshotEdge.prototype.isShortcut):
105267        (WebInspector.NativeHeapSnapshotEdge.prototype.name):
105268        (WebInspector.NativeHeapSnapshotEdge.prototype.toString):
105269        (WebInspector.NativeHeapSnapshotEdge.prototype._nameOrIndex):
105270        (WebInspector.NativeHeapSnapshotRetainerEdge):
105271        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.clone):
105272        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isElement):
105273        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isHidden):
105274        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isInternal):
105275        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isInvisible):
105276        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isShortcut):
105277        (WebInspector.NativeHeapSnapshotRetainerEdge.prototype.isWeak):
105278        * inspector/front-end/NativeMemorySnapshotView.js:
105279        (WebInspector.NativeSnapshotProfileType):
105280        (WebInspector.NativeSnapshotProfileType.prototype.get buttonTooltip):
105281        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
105282        (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
105283        (WebInspector.NativeSnapshotProfileType.prototype.get treeItemTitle):
105284        (WebInspector.NativeSnapshotProfileType.prototype.get description):
105285        (WebInspector.NativeSnapshotProfileType.prototype.createTemporaryProfile):
105286        (WebInspector.NativeSnapshotProfileType.prototype.createProfile):
105287        (WebInspector.NativeSnapshotProfileHeader):
105288        (WebInspector.NativeSnapshotProfileHeader.prototype.createView):
105289        (WebInspector.NativeSnapshotProfileHeader.prototype.startSnapshotTransfer):
105290        (WebInspector.NativeSnapshotProfileHeader.prototype.snapshotConstructorName):
105291        (WebInspector.NativeSnapshotProfileHeader.prototype._takeNativeSnapshot): build a datastructure
105292        resembling one used for JS heap snapshots but populated with the data from the native snaphot.
105293        (WebInspector.NativeHeapSnapshotView):
105294        (WebInspector.NativeHeapSnapshotView.prototype.get profile):
105295        (WebInspector.NativeMemoryProfileType):
105296        (WebInspector.NativeMemoryProfileType.prototype.get buttonTooltip):
105297        * inspector/front-end/ProfilesPanel.js:
105298        (WebInspector.ProfilesPanel):
105299        * inspector/front-end/WebKit.qrc:
105300
1053012013-01-21  Kentaro Hara  <haraken@chromium.org>
105302
105303        [V8] ScriptState::isolate() should use Context::GetIsolate()
105304        https://bugs.webkit.org/show_bug.cgi?id=107490
105305
105306        Reviewed by Adam Barth.
105307
105308        Now V8 provides Context::GetIsolate(). We should use it
105309        in ScriptState::isolate().
105310
105311        * bindings/v8/ScriptState.h:
105312        (WebCore::ScriptState::isolate):
105313        (ScriptState):
105314
1053152013-01-21  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
105316
105317        [EFL] Missing context menus strings
105318        https://bugs.webkit.org/show_bug.cgi?id=107104
105319
105320        Reviewed by Kenneth Rohde Christiansen.
105321
105322        Add 5 missing localization strings for text direction context menus.
105323
105324        * platform/efl/LocalizedStringsEfl.cpp:
105325        (WebCore::contextMenuItemTagRightToLeft):
105326        (WebCore::contextMenuItemTagLeftToRight):
105327        (WebCore::contextMenuItemTagWritingDirectionMenu):
105328        (WebCore::contextMenuItemTagTextDirectionMenu):
105329        (WebCore::contextMenuItemTagDefaultDirection):
105330
1053312013-01-21  Kent Tamura  <tkent@chromium.org>
105332
105333        Date selection from calendar picker should dispatch 'input' event in addition to 'change' event
105334        https://bugs.webkit.org/show_bug.cgi?id=107427
105335
105336        Reviewed by Kentaro Hara.
105337
105338        According to the specification and Opera's behavior, we should dispatch
105339        not only 'change' event but also 'input' event when a user chooses a
105340        date from the calender picker.
105341
105342        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#common-event-behaviors
105343        > When the user agent changes the element's value on behalf of the user
105344        > (e.g. as part of a form prefilling feature), the user agent must follow
105345        > these steps:
105346        > 1. If the input event applies, queue a task to fire a simple event
105347        > that bubbles named input at the input element.
105348        > 2. If the change event applies, queue a task to fire a simple event
105349        > that bubbles named change at the input element.
105350
105351        Tests: platform/chromium/fast/forms/calendar-picker/date-picker-events.html
105352               platform/chromium/fast/forms/calendar-picker/datetimelocal-picker-events.html
105353
105354        * html/InputType.cpp:
105355        (WebCore::InputType::setValue): Add DispatchInputAndChangeEvent support.
105356        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
105357        (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
105358        Use DispatchInputAndChangeEvent, not DispatchChangeEvent.
105359        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
105360        (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
105361        Ditto.
105362
1053632013-01-21  Justin Schuh  <jschuh@chromium.org>
105364
105365        [CHROMIUM] Suppress c4267 build warnings for Win64 targets
105366        https://bugs.webkit.org/show_bug.cgi?id=107499
105367
105368        Reviewed by Abhishek Arya.
105369
105370        No new tests. No code changes.
105371
105372        * WebCore.gyp/WebCore.gyp:
105373
1053742013-01-21  Andreas Kling  <akling@apple.com>
105375
105376        CSSSelector::value() should assert that m_match != Tag.
105377        <http://webkit.org/b/107500>
105378
105379        Reviewed by Anders Carlsson.
105380
105381        Add an assertion to catch anyone trying to extract a value() from a Tag selector.
105382
105383        * css/CSSSelector.h:
105384        (CSSSelector):
105385        (WebCore::CSSSelector::value):
105386
1053872013-01-21  Dimitri Glazkov  <dglazkov@chromium.org>
105388
105389        Move HTML Attribute case-sensitivity logic out of SelectorChecker to HTMLDocument.
105390        https://bugs.webkit.org/show_bug.cgi?id=107460
105391
105392        The case-sensitivity of HTML attributes is defined in HTML spec and is only applicable in HTML documents,
105393        so having this logic in HTMLDocument seems like a good thing.
105394
105395        Reviewed by Eric Seidel.
105396
105397        Refactoring, covered by existing tests.
105398
105399        * css/SelectorChecker.cpp:
105400        (WebCore): Moved code out of here.
105401        (WebCore::isFastCheckableMatch): Changed the callsite to use new location.
105402        (WebCore::SelectorChecker::checkOne): Ditto.
105403        * html/HTMLDocument.cpp:
105404        (WebCore::addLocalNameToSet): Moved the code into here.
105405        (WebCore): Ditto.
105406        (WebCore::createHtmlCaseInsensitiveAttributesSet): Ditto.
105407        (WebCore::HTMLDocument::isCaseSensitiveAttribute): Ditto.
105408        * html/HTMLDocument.h:
105409        (HTMLDocument): Added decl for the newly moved function.
105410
1054112013-01-21  Shinya Kawanaka  <shinyak@chromium.org>
105412
105413        FrameSelection should use shadowHost instead of shadowAncestorNode
105414        https://bugs.webkit.org/show_bug.cgi?id=107220
105415
105416        Reviewed by Kent Tamura.
105417
105418        shadowAncestorNode() is deprecated and we want to use shadowHost.
105419        Here, all objects calling shadowAncestorNode() is in ShadowDOM, we can safely convert
105420        the call to shadowHost().
105421
105422        No new tests, simple refactoring.
105423
105424        * editing/FrameSelection.cpp:
105425        (WebCore::FrameSelection::selectAll):
105426
1054272013-01-21  Dirk Schulze  <dschulze@adobe.com>
105428
105429        Add build flag for Canvas's Path object (disabled by default)
105430        https://bugs.webkit.org/show_bug.cgi?id=107473
105431
105432        Reviewed by Dean Jackson.
105433
105434        Add CANVAS_PATH build flag to build systems.
105435
105436        * Configurations/FeatureDefines.xcconfig:
105437        * GNUmakefile.am:
105438
1054392013-01-21  Andreas Kling  <akling@apple.com>
105440
105441        CSS: Make tag sub-selectors standalone CSSSelectors.
105442        <http://webkit.org/b/107111>
105443
105444        Reviewed by Antti Koivisto.
105445
105446        TL;DR: Instead of storing a QualifiedName with every CSSSelector, special-case tag selectors
105447               by promoting them to stand-alone CSSSelectors.
105448               33% reduction in CSS selector memory usage, 4.77 MB progression on Membuster3.
105449               Fixed some bugs in Shadow DOM that were exposed by these changes.
105450
105451        A selector like this:
105452
105453            div.tripp.trapp#trull { }
105454
105455        Would previously be represented by a chain of 3 CSSSelector objects like so:
105456
105457            [ Tag: "div",  Type: Class,  Value: "tripp" ]
105458            [ Tag:     *,  Type: Class,  Value: "trapp" ]
105459            [ Tag:     *,  Type: ID,     Value: "trull" ]
105460
105461        After this change, the memory layout becomes:
105462
105463            [ Type: Tag,    Value: "div"   ]
105464            [ Type: Class,  Value: "tripp" ]
105465            [ Type: Class,  Value: "trapp" ]
105466            [ Type: ID,     Value: "trull" ]
105467
105468        This is a huge net memory win since the majority of selectors don't even have a tag name
105469        and those that do now have a flat cost of one more CSSSelector.
105470        Traversal is also slightly cleaner since any tag name will now be in a predictable place.
105471
105472        * css/SelectorChecker.cpp:
105473        (WebCore::isFastCheckableMatch):
105474        * html/shadow/HTMLContentElement.cpp:
105475        (WebCore::validateSubSelector):
105476
105477            Renamed CSSSelector::None to CSSSelector::Tag.
105478
105479        * css/SelectorChecker.h:
105480        (WebCore::SelectorChecker::tagMatches):
105481        * css/StyleResolver.cpp:
105482        (WebCore::StyleResolver::ruleMatches):
105483
105484            Changed SelectorChecker::tagMatches() to take a QualifiedName instead of a CSSSelector.
105485
105486        * dom/QualifiedName.cpp:
105487        (WebCore::QualifiedName::deref):
105488        (WebCore::QualifiedName::QualifiedNameImpl::~QualifiedNameImpl):
105489        * dom/QualifiedName.h:
105490        (QualifiedNameImpl):
105491
105492            Give QualifiedNameImpl a destructor so it can remove itself from the global cache instead of
105493            having QualifiedName do it. This makes it possible to participate in ownership of QualifiedNames
105494            via a QualifiedNameImpl pointer, as used by the union member in CSSSelector.
105495
105496        * css/CSSGrammar.y.in:
105497        * css/CSSParser.cpp:
105498        (WebCore::CSSParser::createFloatingSelectorWithTagName):
105499        (WebCore::CSSParser::updateSpecifiersWithNamespaceIfNeeded):
105500        (WebCore::CSSParser::updateSpecifiersWithElementName):
105501        * css/CSSParser.h:
105502        * css/CSSParserValues.h:
105503        (CSSParserSelector):
105504        * css/CSSParserValues.cpp:
105505        (WebCore::CSSParserSelector::CSSParserSelector):
105506        (WebCore::CSSParserSelector::prependTagSelector):
105507
105508            Make the CSS parser slap a CSSSelector with m_match=Tag at the head of all selectors that match
105509            one or more of these criteria:
105510
105511            - The selector starts with a tag, e.g "div.foo" or just plain "span"
105512            - There is a @namespace rule in effect, and the override namespace needs to be stored with the selector.
105513              These will have CSSSelectors::m_isTagForNamespaceRule set, this is only so that selector serialization
105514              can avoid outputting a '*' tag where we previously didn't.
105515
105516        (WebCore::CSSParserSelector::isSimple):
105517
105518            Merged the CSSSelector::isSimple() logic into CSSParserSelector, since it's only needed during parsing
105519            to figure out if a selector is allowed within :not().
105520
105521        * css/CSSSelector.h:
105522        (CSSSelector):
105523        (WebCore::CSSSelector::setValue):
105524        (WebCore::CSSSelector::CSSSelector):
105525        (WebCore::CSSSelector::~CSSSelector):
105526        (WebCore::CSSSelector::tagQName):
105527        * css/CSSSelector.cpp:
105528        (WebCore::CSSSelector::createRareData):
105529        (WebCore::CSSSelector::operator==):
105530
105531            Add a QualifiedNameImpl* m_tagQName member to the CSSSelector data union. This union pointer is used
105532            if m_match == Tag. tagQName() is used to retrieve the tag (renamed from tag().) 
105533
105534        (WebCore::CSSSelector::selectorText):
105535
105536            Only serialize Tag selector components that aren't namespace placeholders. This behavior is web-facing
105537            so we make an effort to stay consistent.
105538
105539        (WebCore::CSSSelector::specificityForOneSelector):
105540        (WebCore::CSSSelector::specificityForPage):
105541        * css/CSSSelectorList.cpp:
105542        (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
105543        * css/RuleSet.cpp:
105544        (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
105545        * css/SelectorFilter.cpp:
105546        (WebCore::collectDescendantSelectorIdentifierHashes):
105547        (WebCore::SelectorFilter::collectIdentifierHashes):
105548
105549            Adapt algorithms to having Tag selectors.
105550
105551        (WebCore::selectorListContainsUncommonAttributeSelector):
105552
105553            Loop through all selector components when looking for uncommon attributes.
105554
105555        (WebCore::determinePropertyWhitelistType):
105556
105557            Loop through all selector components when looking for ::cue().
105558
105559        (WebCore::RuleSet::addRule):
105560        (WebCore::RuleSet::findBestRuleSetAndAdd):
105561
105562            Break addRule into two methods to be able to peek ahead if the first selector is a Tag.
105563            Otherwise we'd end up sticking most selectors in m_tagRules, breaking the class/ID/etc optimizations.
105564
105565        * css/SelectorChecker.cpp:
105566        (WebCore::SelectorChecker::fastCheck):
105567        (WebCore::SelectorChecker::fastCheckSingleSelector):
105568
105569            It's no longer necessary to check the tagQName for every selector component, so don't.
105570            Also simplified the signature of the template argument function.
105571
105572        (WebCore::SelectorChecker::fastCheckRightmostSelector):
105573
105574            Updated for Tag selectors.
105575
105576        (WebCore::SelectorChecker::checkOne):
105577        (WebCore::SelectorChecker::matches):
105578        (WebCore::SelectorChecker::match):
105579
105580            Have match() take a SiblingTraversalStrategy so it can forward that to checkOne().
105581            This is necessary for shadow DOM code that was incorrectly calling checkOne() instead of match().
105582
105583        * css/StyleResolver.cpp:
105584        (WebCore::StyleResolver::ruleMatches):
105585
105586            The meaning of "single-part selector" changes a bit with this patch, and no longer includes "div.foo"
105587            as that is now a Tag, followed by a Class. Given that, we can't assume the tag check is unnecessary
105588            just because the rightmost descendant was found in one of the hashes.
105589
105590        (WebCore::StyleResolver::matchPageRulesForList):
105591
105592            Loop through all selector components when matching @page since pseudo types may not always be in
105593            the first subselector now.
105594
105595        * html/shadow/ContentDistributor.cpp:
105596        (WebCore::ContentDistributor::collectSelectFeatureSetFrom):
105597
105598            Collect feature information from subselectors to make sure nothing is missed. (This bug was exposed
105599            by offsetting the subselectors.)
105600
105601        * html/shadow/ContentSelectorQuery.cpp:
105602        (WebCore::ContentSelectorChecker::checkContentSelector):
105603
105604            Call SelectorChecker::match() instead of checkOne() to make subselector traversal work properly.
105605
1056062013-01-21  Levi Weintraub  <leviw@chromium.org>
105607
105608        Event target rects on the top level document shouldn't be clipped.
105609        https://bugs.webkit.org/show_bug.cgi?id=107339
105610
105611        Reviewed by James Robinson.
105612
105613        clippedOverflowRectForRepaint clips the top-level RenderView to the viewport, which
105614        is wrong for generating event target rects, as the result will not extend to the bounds
105615        of the document on pages that scroll. Changing the top-level view to use documentRect
105616        instead.
105617
105618        Tests updated to cover bug: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html
105619                                    platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
105620
105621        * page/scrolling/ScrollingCoordinator.cpp:
105622        (WebCore::accumulateRendererTouchEventTargetRects): Use converToRootView instead of
105623        a loop around convertToContaining view. This is not a change in behavior.
105624        (WebCore::accumulateDocumentEventTargetRects): Switch to use documentRect instead of
105625        clippedOverflowRectForRepaint for the top-level Document, and use converToRootView
105626        to put rects in the coordinates of the top-level document.
105627
1056282013-01-17  Andy Estes  <aestes@apple.com>
105629
105630        Add a USE() macro for content filtering code
105631        https://bugs.webkit.org/show_bug.cgi?id=107098
105632
105633        Reviewed by Mark Rowe.
105634
105635        * WebCore.exp.in: Use USE(CONTENT_FILTERING).
105636        * loader/MainResourceLoader.cpp:
105637        (WebCore::MainResourceLoader::MainResourceLoader): Ditto.
105638        (WebCore::MainResourceLoader::~MainResourceLoader): Ditto.
105639        (WebCore::MainResourceLoader::cancel): Ditto.
105640        (WebCore::MainResourceLoader::responseReceived): Ditto.
105641        (WebCore::MainResourceLoader::dataReceived): Ditto.
105642        (WebCore::MainResourceLoader::didFinishLoading): Ditto.
105643        (WebCore::MainResourceLoader::notifyFinished): Ditto.
105644        * loader/MainResourceLoader.h:
105645        (MainResourceLoader): Ditto.
105646        * platform/mac/WebCoreSystemInterface.h: Ditto.
105647        * platform/mac/WebCoreSystemInterface.mm: Ditto.
105648
1056492013-01-21  Bem Jones-Bey  <bjonesbe@adobe.com>
105650
105651        [CSS Exclusions] shape-outside on floats for rectangle shapes positioning
105652        https://bugs.webkit.org/show_bug.cgi?id=100399
105653
105654        Reviewed by David Hyatt.
105655
105656        When a float has a shape-outside with non-zero x or y, the float's
105657        exclusion behavior can happen at a completely different location than
105658        where the float's content is painted. This patch brings initial
105659        support for this behavior.
105660
105661        Test: fast/exclusions/shape-outside-floats/shape-outside-floats-positioning.html
105662
105663        * rendering/RenderBlock.cpp:
105664        (WebCore::RenderBlock::flipFloatForWritingModeForChild): If called
105665            during painting, make sure to pass that state down to the float
105666            positioning so that it can use the proper position.
105667        (WebCore::RenderBlock::paintFloats): Since this is concerned with
105668            painting, use the position of the float, not the shape.
105669        (WebCore::RenderBlock::positionNewFloats): Set the correct location
105670            for the float, relative to the location of the shape.
105671        (WebCore::RenderBlock::addOverhangingFloats): Add FIXME.
105672        * rendering/RenderBlock.h:
105673        (WebCore::RenderBlock::xPositionForFloatIncludingMargin): 
105674        (WebCore::RenderBlock::yPositionForFloatIncludingMargin): Since the 
105675            position of the shape (FloatingObject) can be different from the
105676            position of the float's box (RenderBox), the position needs to be
105677            computed differently for painting than for determining layout.
105678        (WebCore::RenderBlock::flipFloatForWritingModeForChild): Change
105679            signature to take painting flag.
105680
1056812013-01-21  Eric Carlson  <eric.carlson@apple.com>
105682
105683        Support non-WebVTT cues from in-band text tracks
105684        https://bugs.webkit.org/show_bug.cgi?id=107046
105685
105686        Reviewed by Sam Weinig.
105687
105688        * CMakeLists.txt: Add new files.
105689        * GNUmakefile.list.am: Ditto.
105690        * Target.pri: Ditto.
105691        * WebCore.gypi: Ditto.
105692        * WebCore.vcproj/WebCore.vcproj: Ditto.
105693        * WebCore.xcodeproj/project.pbxproj: Ditto.
105694
105695        * html/shadow/MediaControlElements.cpp:
105696        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Pass video size to getDisplayTree.
105697
105698        * html/track/InbandTextTrack.cpp:
105699        (WebCore::InbandTextTrack::addGenericCue): New, create a generic cue if it doesn't already exist.
105700        (WebCore::InbandTextTrack::addWebVTTCue): Renamed from addCue.
105701        * html/track/InbandTextTrack.h:
105702
105703        * html/track/TextTrack.cpp:
105704        (WebCore::TextTrack::hasCue): Moved from InbandTextTrack.cpp, use operator == instead of inline
105705            comparison so derived TextTrackCues can be compared.
105706        * html/track/TextTrack.h:
105707
105708        * html/track/TextTrackCue.cpp:
105709        (WebCore::TextTrackCueBox::applyCSSProperties): Interface change.
105710        (WebCore::TextTrackCue::TextTrackCue): Don't create the display tree in the constructor, it may
105711            never be needed.
105712        (WebCore::TextTrackCue::createDisplayTree): New, create the display tree.
105713        (WebCore::TextTrackCue::displayTreeInternal): Display tree accessor, allows it to be created lazily.
105714        (WebCore::TextTrackCue::setAlign): Alignment -> CueAlignment.
105715        (WebCore::TextTrackCue::setIsActive): Use displayTreeInternal().
105716        (WebCore::TextTrackCue::getDisplayTree): Use displayTreeInternal(), pass video size to applyCSSProperties.
105717        (WebCore::TextTrackCue::removeDisplayTree): Use displayTreeInternal().
105718        (WebCore::TextTrackCue::operator==): New.
105719        * html/track/TextTrackCue.h:
105720        (WebCore::TextTrackCue::getAlignment): Alignment -> CueAlignment.
105721        (WebCore::TextTrackCue::operator!=): New.
105722        (WebCore::TextTrackCue::cueType): New, cue type identified needed by operator==.
105723        (WebCore::TextTrackCue::ownerDocument): New.
105724
105725        * html/track/TextTrackCueGeneric.cpp: Added.
105726        (WebCore::TextTrackCueGenericBox::create):
105727        (WebCore::TextTrackCueGenericBox::TextTrackCueGenericBox):
105728        (WebCore::TextTrackCueGenericBox::applyCSSProperties):
105729        (WebCore:::TextTrackCue):
105730        (WebCore::TextTrackCueGeneric::createDisplayTree):
105731        (WebCore::TextTrackCueGeneric::operator==):
105732        * html/track/TextTrackCueGeneric.h: Added.
105733        (WebCore::TextTrackCueGeneric::create):
105734        (WebCore::TextTrackCueGeneric::~TextTrackCueGeneric):
105735        (WebCore::TextTrackCueGeneric::baseFontSizeRelativeToVideoHeight):
105736        (WebCore::TextTrackCueGeneric::setBaseFontSizeRelativeToVideoHeight):
105737        (WebCore::TextTrackCueGeneric::fontSizeMultiplier):
105738        (WebCore::TextTrackCueGeneric::setFontSizeMultiplier):
105739        (WebCore::TextTrackCueGeneric::fontName):
105740        (WebCore::TextTrackCueGeneric::setFontName):
105741        (WebCore::TextTrackCueGeneric::operator!=):
105742        (WebCore::TextTrackCueGeneric::cueType):
105743
105744        * platform/graphics/InbandTextTrackPrivateClient.h:
105745        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
105746        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Copy cue attributes into GenericCueData
105747            struct instead of trying to convert to WebVTT settings string. Process font size,font base
105748            size, font name, and vertical layout attributes,
105749        (WebCore::InbandTextTrackPrivateAVF::processCue): Create separate cues for each attributed
105750            string in the array because each one can be at a different screen location.
105751        (WebCore::InbandTextTrackPrivateAVF::resetCueValues):
105752        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
105753        (InbandTextTrackPrivateAVF):
105754
105755        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
105756        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Reset any partially accumulated cues
105757            delivered since the seek was started.
105758        (WebCore::MediaPlayerPrivateAVFoundation::addGenericCue): Renamed from flushCurrentCue.
105759        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
105760
105761        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
105762        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Whitespace cleanup.
105763        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
105764        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Tell legible output to deliver cues
105765            without any additional styling needed by the internal renderer.
105766        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks):
105767        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Do nothing if asked to change
105768            to the track that is already current.
105769        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
105770            Check to make sure that the client callback isn't NULL.
105771
1057722013-01-21  Robert Hogan  <robert@webkit.org>
105773
105774        Misaligned logo on www.nzherald.co.nz possibly due to negative margin-top
105775        https://bugs.webkit.org/show_bug.cgi?id=14664
105776
105777        Reviewed by David Hyatt.
105778
105779        Test: fast/block/float/clear-negative-margin-top.html
105780
105781        * rendering/RenderBlock.cpp:
105782        (WebCore::RenderBlock::collapseMargins): If a negative margin pulls a block up so that floats from
105783        siblings overhang, then ensure addOverHangingFloats() uses the revised logical top position when
105784        deciding whether a float does indeed overhang into the block after margin-collapsing.
105785        (WebCore::RenderBlock::clearFloatsIfNeeded):
105786
1057872013-01-21  Rik Cabanier  <cabanier@adobe.com>
105788
105789        Proposal: Add support for even-odd fill and clip to Canvas
105790        https://bugs.webkit.org/show_bug.cgi?id=106188
105791
105792        Reviewed by Dirk Schulze.
105793
105794        This patch adds support for an optional winding rule to fill, clip
105795        and isPointInPath in canvas 2d. By default, the fill is non-zero but
105796        you can now pass in an optional winding rule string ("nonzero" or "evenodd")
105797        to make an explicit choice.
105798
105799        Tests: fast/canvas/canvas-clip-rule.html
105800               fast/canvas/canvas-fill-rule.html
105801               fast/canvas/canvas-isPointInPath-winding.html
105802
105803        * html/canvas/CanvasRenderingContext2D.cpp: Change implementation so it sets the windig rule in the context.
105804        (WebCore::parseWinding):
105805        (WebCore):
105806        (WebCore::CanvasRenderingContext2D::fill):
105807        (WebCore::CanvasRenderingContext2D::clip):
105808        (WebCore::CanvasRenderingContext2D::isPointInPath):
105809        * html/canvas/CanvasRenderingContext2D.h: 
105810        (CanvasRenderingContext2D):
105811        * html/canvas/CanvasRenderingContext2D.idl: Change the idl so the new API is exposed to JavaScript.
105812        * platform/graphics/cg/GraphicsContextCG.cpp: Fixes a bug where the wrong winding rule was set for clipping in Core Graphics.
105813        (WebCore::GraphicsContext::clip):
105814
1058152013-01-21  ChangSeok Oh  <shivamidow@gmail.com>
105816
105817        [GTK][AC] setOpacity doesn't work for GraphicsLayerClutter
105818        https://bugs.webkit.org/show_bug.cgi?id=105436
105819
105820        Reviewed by Gustavo Noronha Silva.
105821
105822        Implement GraphicsLayerClutter::setOpacity based on Mac's GraphicsLayer implementation.
105823
105824        No new tests since this patch can be covered by already existing gtk ac tests.
105825
105826        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
105827        (WebCore::GraphicsLayerClutter::setOpacity):
105828        (WebCore):
105829        (WebCore::GraphicsLayerClutter::updateOpacityOnLayer):
105830        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers):
105831        * platform/graphics/clutter/GraphicsLayerClutter.h:
105832
1058332013-01-21  ChangSeok Oh  <shivamidow@gmail.com>
105834
105835        [Texmap][GTK] The poster-circle doesn't appear.
105836        https://bugs.webkit.org/show_bug.cgi?id=106672
105837
105838        Reviewed by Noam Rosenthal.
105839
105840        We need to call setNeedsDisplay to redraw GraphicsLayer after we set drawsContent
105841        a new value for the layer. Otherwise we can't get a chance for first drawing the layer.
105842
105843        Test: compositing/visibility/visibility-composited-animation.html
105844
105845        * platform/graphics/texmap/TextureMapperLayer.cpp:
105846        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
105847
1058482013-01-21  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
105849
105850        [EFL][Qt][WebGl] Random crash in GraphicsContext3D::drawArrays
105851        https://bugs.webkit.org/show_bug.cgi?id=107178
105852
105853        Reviewed by Noam Rosenthal.
105854
105855        Workaround for the problem in mesa when internal llvm pipe object is deleted
105856        later than the screen object. Screen object is deleted because the corresponding 
105857        X server display connection closed.
105858        Keep X server display connection open until program shutdown. 
105859        OffScreenRootWindow::display is now static, so there is no need to create
105860        OffScreenRootWindow object on client side.
105861
105862        Fixes crash that appears during run of fast/canavs/webgl tests.
105863
105864        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
105865        (OffScreenRootWindow):
105866        (WebCore::OffScreenRootWindow::DisplayConnection::DisplayConnection):
105867        (DisplayConnection):
105868        (WebCore::OffScreenRootWindow::DisplayConnection::~DisplayConnection):
105869        (WebCore::OffScreenRootWindow::DisplayConnection::display):
105870        (WebCore::OffScreenRootWindow::display):
105871        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
105872        (WebCore):
105873        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
105874        (WebCore::GraphicsSurfacePrivate::createSurface):
105875        (WebCore::GraphicsSurfacePrivate::createPixmap):
105876        (WebCore::GraphicsSurfacePrivate::makeCurrent):
105877        (WebCore::GraphicsSurfacePrivate::doneCurrent):
105878        (WebCore::GraphicsSurfacePrivate::swapBuffers):
105879        (WebCore::GraphicsSurfacePrivate::display):
105880        (WebCore::GraphicsSurfacePrivate::size):
105881        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
105882        (WebCore::GraphicsSurfacePrivate::clear):
105883        (GraphicsSurfacePrivate):
105884
1058852013-01-21  Michael[tm] Smith  <mike@w3.org>
105886
105887        Implement the HTML <main> element.
105888        https://bugs.webkit.org/show_bug.cgi?id=103172
105889
105890        Reviewed by Chris Fleizach.
105891
105892        Authored by Steve Faulkner <faulkner.steve@gmail.com>
105893
105894        <main> should behave the same as <nav>, <section>, and <article>, and <aside>.
105895        <main> should expose AXLandmarkMain correctly on each platform.
105896
105897        Tests: fast/html/main-element.html
105898               platform/chromium/accessibility/main-element.html
105899               platform/mac/accessibility/main-element.html
105900
105901        * accessibility/AccessibilityRenderObject.cpp:
105902        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
105903        * css/html.css:
105904        (article, aside, footer, header, hgroup, main, nav, section):
105905        * editing/FormatBlockCommand.cpp:
105906        (WebCore::isElementForFormatBlock):
105907        * html/HTMLTagNames.in:
105908        * html/parser/HTMLStackItem.h:
105909        (WebCore::HTMLStackItem::isSpecialNode):
105910        * html/parser/HTMLTreeBuilder.cpp:
105911        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
105912        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
105913
1059142013-01-21  Joanmarie Diggs  <jdiggs@igalia.com>
105915
105916        Crash in AccessibilityTableCell::parentTable()
105917        https://bugs.webkit.org/show_bug.cgi?id=107261
105918
105919        Reviewed by Chris Fleizach.
105920
105921        Test: accessibility/table-destroyed-crash.html
105922
105923        Getting the parent table in order to get the role value should not be
105924        done when objects are being destroyed. Also, it does not seem safe to
105925        assume we have an AXObjectCache.
105926
105927        Moving the logic from roleValue() to determineAccessibilityRole() has
105928        the side effect of not being able to verify the cell is in an AXTable
105929        when that AXTable has not yet been created. Therefore isTableCell()
105930        should look to see if it is the descendant of an AXRow.
105931
105932        * accessibility/AccessibilityTableCell.cpp:
105933        (WebCore::AccessibilityTableCell::parentTable):
105934        (WebCore::AccessibilityTableCell::isTableCell):
105935        (WebCore::AccessibilityTableCell::determineAccessibilityRole):
105936        * accessibility/AccessibilityTableCell.h:
105937        (AccessibilityTableCell):
105938
1059392013-01-21  Halton Huo  <halton.huo@intel.com>
105940
105941        [GTK] Volume button should not be shown for videos without audio
105942        https://bugs.webkit.org/show_bug.cgi?id=106436
105943
105944        Reviewed by Philippe Normand.
105945
105946        The volume control is no longer shown for videos with no audio.
105947
105948        No new tests, tested by media/video-no-audio.html.
105949
105950        * platform/gtk/RenderThemeGtk.cpp:
105951        (WebCore::RenderThemeGtk::hasOwnDisabledStateHandlingFor):
105952        (WebCore):
105953        * platform/gtk/RenderThemeGtk.h:
105954
1059552013-01-21  Dan Winship  <danw@gnome.org>
105956
105957        [Soup] Work around a glib bug
105958        https://bugs.webkit.org/show_bug.cgi?id=106789
105959
105960        Reviewed by Martin Robinson.
105961
105962        In glib <= 2.35.4, g_input_stream_skip_async() applied to a
105963        libsoup response stream will do a synchronous skip() in another
105964        thread, which libsoup isn't expecting and doesn't have proper
105965        locking for. Work around this until the next time we bump the glib
105966        requirement by using read_async() (and throwing away the result)
105967        instead of skip_async().
105968
105969        No new tests; fixes a race condition in existing tests with older
105970        glib
105971
105972        * platform/network/soup/ResourceHandleSoup.cpp:
105973        (WebCore::redirectSkipCallback):
105974        (WebCore::sendRequestCallback):
105975
1059762013-01-18  Andrey Kosyakov  <caseq@chromium.org>
105977
105978        Web Inspector: data grid resize is slow
105979        https://bugs.webkit.org/show_bug.cgi?id=107291
105980
105981        Reviewed by Pavel Feldman.
105982
105983        - avoid (most of) unnecessary relayouts and style recalculation when dragging data grid resizer.
105984
105985        * inspector/front-end/DataGrid.js:
105986        (WebInspector.DataGrid.prototype._positionResizers):
105987        (WebInspector.DataGrid.prototype._resizerDragging):
105988
1059892013-01-21  Vladislav Kaznacheev  <kaznacheev@chromium.org>
105990
105991        [Inspector] Layout Elements panel in a single column when docked right.
105992        https://bugs.webkit.org/show_bug.cgi?id=107129
105993
105994        Reviewed by Pavel Feldman.
105995
105996        If the Inspector is docked right, the style panes in the Elements panel
105997        are put below the DOM tree pane, not to the right. This behavior
105998        is experimental (hidden behind a new flag "elementsPanelSingleColumn").
105999
106000        No new tests.
106001
106002        * inspector/front-end/DockController.js:
106003        (WebInspector.DockController.prototype.dockSide):
106004        (WebInspector.DockController.prototype._updateUI):
106005        (WebInspector.DockController.prototype._toggleDockState):
106006        * inspector/front-end/ElementsPanel.js:
106007        (WebInspector.ElementsPanel.prototype.onResize):
106008        (WebInspector.ElementsPanel.prototype._onDockStateChanged):
106009        (WebInspector.ElementsPanel.prototype._sidebarPosition):
106010        * inspector/front-end/Panel.js:
106011        (WebInspector.Panel.prototype.createSidebarView):
106012        * inspector/front-end/Settings.js:
106013        (WebInspector.ExperimentsSettings):
106014        * inspector/front-end/SidebarView.js:
106015        (WebInspector.SidebarView):
106016        (WebInspector.SidebarView.prototype.get mainElement):
106017        (WebInspector.SidebarView.prototype.get sidebarElement):
106018        (WebInspector.SidebarView.prototype._setSidebarElementStyle):
106019        (WebInspector.SidebarView.prototype.setSidebarPosition):
106020        (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
106021        (WebInspector.SidebarView.prototype.setMinimumSidebarHeight):
106022        (WebInspector.SidebarView.prototype.setMinimumMainHeightPercent):
106023        (WebInspector.SidebarView.prototype.applyConstraints):
106024        (WebInspector.SidebarView.prototype.hideMainElement):
106025        (WebInspector.SidebarView.prototype.hideSidebarElement):
106026        * inspector/front-end/SplitView.js:
106027        (WebInspector.SplitView):
106028        * inspector/front-end/splitView.css:
106029        (.split-view-sidebar-top):
106030        (.split-view-sidebar-top.maximized):
106031        (.split-view-sidebar-bottom):
106032        (.split-view-sidebar-bottom.maximized):
106033
1060342013-01-21  Yury Semikhatsky  <yurys@chromium.org>
106035
106036        Web Inspector: do not serialize native heap graph when collecting information about memory distribution
106037        https://bugs.webkit.org/show_bug.cgi?id=107450
106038
106039        Reviewed by Pavel Feldman.
106040
106041        Native heap graph is not reported when we need to show only high-level memory distribution.
106042
106043        * inspector/front-end/NativeMemorySnapshotView.js:
106044        (WebInspector.NativeMemorySnapshotView):
106045        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
106046        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
106047
1060482013-01-21  Alexander Pavlov  <apavlov@chromium.org>
106049
106050        Web Inspector: [REGRESSION] Forced :visited pseudoclass has no effect on A elements
106051        https://bugs.webkit.org/show_bug.cgi?id=107448
106052
106053        Reviewed by Antti Koivisto.
106054
106055        * css/StyleResolver.cpp:
106056        (WebCore::StyleResolver::sortAndTransferMatchedRules): Remove totally bad code.
106057        (WebCore::StyleResolver::styleForElement):
106058          Use InsideVisitedLink if PseudoVisited has been forced by Inspector.
106059
1060602013-01-18  Andrey Adaikin  <aandrey@chromium.org>
106061
106062        Web Inspector: modify generate_protocol_externs.py to generate JSON typedef's for @constructors
106063        https://bugs.webkit.org/show_bug.cgi?id=107287
106064
106065        Reviewed by Pavel Feldman.
106066
106067        Modify generate_protocol_externs.py to generate @typedefs instead of @constructors,
106068
106069        * inspector/InjectedScriptCanvasModuleSource.js:
106070        (.):
106071        * inspector/InjectedScriptSource.js:
106072        * inspector/compile-front-end.py:
106073        * inspector/generate_protocol_externs.py:
106074        (param_type):
106075
1060762013-01-21  Oleg Smirnov  <oleg.smirnov@lge.com>
106077
106078        [Gtk] [Cairo] Memory leak when is WebView destroy.
106079        https://bugs.webkit.org/show_bug.cgi?id=107112
106080
106081        Reviewed by Martin Robinson.
106082
106083        Make createSurfaceForBackingStore return a smart pointer in all supported
106084        build configurations to avoid a memory leak.
106085        
106086        No new tests. There is memory leak only.
106087
106088        * platform/cairo/WidgetBackingStoreCairo.cpp:
106089        (WebCore::createSurfaceForBackingStore):
106090
1060912013-01-21  Kent Tamura  <tkent@chromium.org>
106092
106093        INPUT_MULTIPLE_FIELDS_UI: should not dispatch 'input' events if the element value is not updated
106094        https://bugs.webkit.org/show_bug.cgi?id=107429
106095
106096        Reviewed by Kentaro Hara.
106097
106098        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#common-event-behaviors
106099        > any time the user causes the element's value to change, the user agent
106100        > must queue a task to fire a simple event that bubbles named input at the
106101        > input element.
106102
106103        Tests:
106104        fast/forms/time-multiple-fields/time-multiple-fields-keyboard-event.html
106105        is updated to cover this change.
106106
106107        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
106108        (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
106109        If the new value is equivalent to the old value, don't dispatch events.
106110        However we should recalculate validity and call notifyFormStateChanged
106111        because input.validity.badInput state might be changed.
106112
1061132013-01-21  Alexander Pavlov  <apavlov@chromium.org>
106114
106115        Web Inspector: Do not dispatch mousemove when emulating touch event and no touch is active
106116        https://bugs.webkit.org/show_bug.cgi?id=107419
106117
106118        Reviewed by Pavel Feldman.
106119
106120        mousemove event should not be dispatched when emulating touch events and mouse button is not pressed
106121
106122        * page/EventHandler.cpp:
106123        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
106124
1061252013-01-21  Andrey Lushnikov  <lushnikov@chromium.org>
106126
106127        Web Inspector: fix highlight bug in DTE.
106128        https://bugs.webkit.org/show_bug.cgi?id=107433
106129
106130        Reviewed by Pavel Feldman.
106131
106132        Do not re-create |state.ranges| array when it already contains highlight.
106133
106134        Test: inpector/editor/highlighter-chunk-limit.txt
106135
106136        * inspector/front-end/TextEditorHighlighter.js:
106137        (WebInspector.TextEditorHighlighter.prototype._highlightLines):
106138
1061392013-01-21  Takashi Sakamoto  <tasak@google.com>
106140
106141        [Refactoring] rename StyleRuleBlock -> StyleRuleGroup
106142        https://bugs.webkit.org/show_bug.cgi?id=107415
106143
106144        Reviewed by Antti Koivisto.
106145
106146        StyleRuleBlock should be renamed StyleRuleGroup, because
106147        CSSGroupingRule (not CSSBlockRule) is an interface for an at-rule that
106148        contains other rules nested inside itself:
106149        http://www.w3.org/TR/2012/WD-css3-conditional-20121213/#the-cssgroupingrule-interface
106150        To match the name: CSSGroupingRule, StyleRuleGroup looks better.
106151
106152        No new tests, because just refactoring.
106153
106154        * css/CSSGroupingRule.cpp:
106155        (WebCore::CSSGroupingRule::CSSGroupingRule):
106156        (WebCore::CSSGroupingRule::reattach):
106157        * css/CSSGroupingRule.h:
106158        (CSSGroupingRule):
106159        * css/StyleRule.cpp:
106160        (WebCore::StyleRuleGroup::StyleRuleGroup):
106161        (WebCore::StyleRuleGroup::wrapperInsertRule):
106162        (WebCore::StyleRuleGroup::wrapperRemoveRule):
106163        (WebCore::StyleRuleGroup::reportDescendantMemoryUsage):
106164        (WebCore::StyleRuleMedia::StyleRuleMedia):
106165        (WebCore::StyleRuleSupports::StyleRuleSupports):
106166        (WebCore::StyleRuleRegion::StyleRuleRegion):
106167        * css/StyleRule.h:
106168        (StyleRuleGroup):
106169        (WebCore::StyleRuleHost::StyleRuleHost):
106170        (WebCore::toStyleRuleMedia):
106171        (WebCore::toStyleRuleSupports):
106172        (WebCore::toStyleRuleRegion):
106173        Just replaced StyleRuleBlock with StyleRuleGroup.
106174
1061752013-01-21  Andrey Lushnikov  <lushnikov@chromium.org>
106176
106177        Web Inspector: refactoring to use string as argument for highlightRegex API
106178        https://bugs.webkit.org/show_bug.cgi?id=107243
106179
106180        Reviewed by Pavel Feldman.
106181
106182        Use string as argument for highlightRegex API instead of using regex object.
106183
106184        No new tests: no change in behaviour.
106185
106186        * inspector/front-end/DefaultTextEditor.js:
106187        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
106188        * inspector/front-end/TextEditor.js:
106189
1061902013-01-21  Sheriff Bot  <webkit.review.bot@gmail.com>
106191
106192        Unreviewed, rolling out r140311.
106193        http://trac.webkit.org/changeset/140311
106194        https://bugs.webkit.org/show_bug.cgi?id=107431
106195
106196        Broke selection-related tests (Requested by apavlov on
106197        #webkit).
106198
106199        * page/EventHandler.cpp:
106200        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
106201
1062022013-01-21  Kentaro Hara  <haraken@chromium.org>
106203
106204        Unreviewed. Build fix.
106205
106206        * bindings/v8/V8NPObject.cpp:
106207        (WebCore::createV8ObjectForNPObject):
106208
1062092013-01-20  Alexander Pavlov  <apavlov@chromium.org>
106210
106211        Web Inspector: Do not dispatch mousemove when emulating touch event and no touch is active
106212        https://bugs.webkit.org/show_bug.cgi?id=107419
106213
106214        Reviewed by Pavel Feldman.
106215
106216        mousemove event should not be dispatched when emulating touch events and mouse button is not pressed
106217
106218        * page/EventHandler.cpp:
106219        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
106220
1062212013-01-21  Tommy Widenflycht  <tommyw@google.com>
106222
106223        MediaStream API: Update the RTCPeerConnection states to match the latest specification
106224        https://bugs.webkit.org/show_bug.cgi?id=107120
106225
106226        Reviewed by Adam Barth.
106227
106228        http://dev.w3.org/2011/webrtc/editor/webrtc.html#interface-definition
106229
106230        RTCPeerConnection::readyState and iceState are history and instead signalingState,
106231        iceConnectionState and iceGatheringState have been introduced.
106232
106233        Existing tests updated to cover this patch.
106234
106235        * Modules/mediastream/RTCPeerConnection.cpp:
106236        (WebCore::RTCPeerConnection::RTCPeerConnection):
106237        (WebCore::RTCPeerConnection::createOffer):
106238        (WebCore::RTCPeerConnection::createAnswer):
106239        (WebCore::RTCPeerConnection::setLocalDescription):
106240        (WebCore::RTCPeerConnection::localDescription):
106241        (WebCore::RTCPeerConnection::setRemoteDescription):
106242        (WebCore::RTCPeerConnection::remoteDescription):
106243        (WebCore::RTCPeerConnection::updateIce):
106244        (WebCore::RTCPeerConnection::addIceCandidate):
106245        (WebCore::RTCPeerConnection::readyState):
106246        (WebCore):
106247        (WebCore::RTCPeerConnection::signalingState):
106248        (WebCore::RTCPeerConnection::iceConnectionState):
106249        (WebCore::RTCPeerConnection::addStream):
106250        (WebCore::RTCPeerConnection::removeStream):
106251        (WebCore::RTCPeerConnection::createDataChannel):
106252        (WebCore::RTCPeerConnection::close):
106253        (WebCore::RTCPeerConnection::didChangeSignalingState):
106254        (WebCore::RTCPeerConnection::didChangeIceGatheringState):
106255        (WebCore::RTCPeerConnection::didChangeIceConnectionState):
106256        (WebCore::RTCPeerConnection::didAddRemoteStream):
106257        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
106258        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
106259        (WebCore::RTCPeerConnection::stop):
106260        (WebCore::RTCPeerConnection::changeSignalingState):
106261        (WebCore::RTCPeerConnection::changeIceGatheringState):
106262        (WebCore::RTCPeerConnection::changeIceConnectionState):
106263        * Modules/mediastream/RTCPeerConnection.h:
106264        (RTCPeerConnection):
106265        * Modules/mediastream/RTCPeerConnection.idl:
106266        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
106267        (RTCPeerConnectionHandlerClient):
106268        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
106269        (WebCore::RTCPeerConnectionHandlerChromium::didChangeSignalingState):
106270        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEConnectionState):
106271        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
106272        (RTCPeerConnectionHandlerChromium):
106273
1062742013-01-21  Kent Tamura  <tkent@chromium.org>
106275
106276        Use ISO8601 date/time formats as fallbacks for date/time input types
106277        https://bugs.webkit.org/show_bug.cgi?id=107418
106278
106279        Reviewed by Kentaro Hara.
106280
106281        We obtain date/time formats from OSes to build date/time input type
106282        UIs. If something wrong happens in the code, fallback formats are
106283        used. Such fallback formats should not be English formats in order that
106284        we can find defects easily.
106285
106286        No new tests. These formats should not be used unless the current code
106287        has defects.
106288
106289        * html/DateTimeInputType.cpp:
106290        (WebCore::DateTimeInputType::setupLayoutParameters):
106291        Use an ISO8601 format which is same as a format used in HTML5.
106292        * html/DateTimeLocalInputType.cpp:
106293        (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
106294        * html/MonthInputType.cpp:
106295        (WebCore::MonthInputType::setupLayoutParameters): Ditto.
106296        * html/WeekInputType.cpp:
106297        (WebCore::WeekInputType::setupLayoutParameters): Ditto.
106298        * platform/text/LocaleICU.cpp:
106299        (WebCore::LocaleICU::dateFormat): Ditto.
106300        * platform/text/LocaleNone.cpp:
106301        (WebCore::LocaleNone::dateFormat): Ditto.
106302        (WebCore::LocaleNone::dateTimeFormatWithSeconds): Ditto.
106303        (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Ditto.
106304
1063052013-01-20  Matt Falkenhagen  <falken@chromium.org>
106306
106307        Elements must be reattached when inserted/removed from top layer
106308        https://bugs.webkit.org/show_bug.cgi?id=105489
106309
106310        Relanding r139402 as rollout due to suspected perf regression did not help (bug 106726).
106311
106312        Reviewed by Julien Chaffraix.
106313
106314        Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
106315        as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
106316
106317        We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
106318        only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
106319        followed immediately by show() results in no style change.
106320
106321        Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
106322               fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
106323
106324        * dom/Element.cpp:
106325        (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
106326        removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
106327        (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
106328
1063292013-01-20  Yury Semikhatsky  <yurys@chromium.org>
106330
106331        Web Inspector: change HeapSnapshotLoader to allow loading native heap snapshots
106332        https://bugs.webkit.org/show_bug.cgi?id=107282
106333
106334        Reviewed by Pavel Feldman.
106335
106336        Conctete heap snapshot constructor name is passed as a parameter to HeapSnapshotLoaderProxy and
106337        propagated to HeapSnapshotLoader.buildSnapshot to support different types of heap snapshots.
106338
106339        * inspector/front-end/HeapSnapshotLoader.js:
106340        (WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
106341        * inspector/front-end/HeapSnapshotProxy.js:
106342        (WebInspector.HeapSnapshotWorker.prototype.createLoader):
106343        (WebInspector.HeapSnapshotLoaderProxy):
106344        (WebInspector.HeapSnapshotLoaderProxy.prototype.close):
106345        * inspector/front-end/HeapSnapshotView.js:
106346        (WebInspector.HeapProfileHeader.prototype._setupWorker):
106347
1063482013-01-20  Kentaro Hara  <haraken@chromium.org>
106349
106350        Implement MediaStreamEvent constructor
106351        https://bugs.webkit.org/show_bug.cgi?id=107411
106352
106353        Reviewed by Adam Barth.
106354
106355        Spec: http://www.w3.org/TR/webrtc/#mediastreamevent
106356
106357        Test: fast/events/constructors/media-stream-event-constructor.html
106358
106359        * Modules/mediastream/MediaStreamEvent.cpp:
106360        (WebCore::MediaStreamEventInit::MediaStreamEventInit):
106361        (WebCore):
106362        (WebCore::MediaStreamEvent::create):
106363        (WebCore::MediaStreamEvent::MediaStreamEvent):
106364        * Modules/mediastream/MediaStreamEvent.h:
106365        (MediaStreamEventInit):
106366        (WebCore):
106367        (MediaStreamEvent):
106368        * Modules/mediastream/MediaStreamEvent.idl:
106369        * bindings/js/JSDictionary.cpp:
106370        (WebCore):
106371        (WebCore::JSDictionary::convertValue):
106372        * bindings/js/JSDictionary.h:
106373        (WebCore):
106374        * bindings/v8/Dictionary.cpp:
106375        (WebCore):
106376        (WebCore::Dictionary::get):
106377        * bindings/v8/Dictionary.h:
106378        (Dictionary):
106379
1063802013-01-20  Vladislav Kaznacheev  <kaznacheev@chromium.org>
106381
106382        Web Inspector: Allow SplitView to change orientation after the construction.
106383        https://bugs.webkit.org/show_bug.cgi?id=107263
106384
106385        Added SplitView.prototype.setIsVertical to change the orientation on the fly.
106386        Instead of passing default sidebar size to the constructor the client
106387        may now pass separate defaults for the sidebar width and height. Passing
106388        just one default works as before.
106389
106390        Reviewed by Pavel Feldman.
106391
106392        No new tests.
106393
106394        * inspector/front-end/SplitView.js:
106395        (WebInspector.SplitView):
106396        (WebInspector.SplitView.prototype.isVertical):
106397        (WebInspector.SplitView.prototype.setIsVertical):
106398        (WebInspector.SplitView.prototype._innerSetIsVertical):
106399        (WebInspector.SplitView.prototype._updateLayout):
106400        (WebInspector.SplitView.prototype.isSidebarSecond):
106401        (WebInspector.SplitView.prototype.showBoth):
106402        (WebInspector.SplitView.prototype._updateTotalSize):
106403        (WebInspector.SplitView.prototype._innerSetSidebarSize):
106404        (WebInspector.SplitView.prototype.wasShown):
106405        (WebInspector.SplitView.prototype.onResize):
106406        (WebInspector.SplitView.prototype.installResizer):
106407        (WebInspector.SplitView.prototype._onDragStart):
106408        (WebInspector.SplitView.prototype._sizeSetting):
106409        (WebInspector.SplitView.prototype._lastSidebarSize):
106410        (WebInspector.SplitView.prototype.get _saveSidebarSize):
106411
1064122013-01-20  Kentaro Hara  <haraken@chromium.org>
106413
106414        Add a [ConstructorConditional] IDL attribute
106415        https://bugs.webkit.org/show_bug.cgi?id=107407
106416
106417        Reviewed by Adam Barth.
106418
106419        Per discussion in webkit-dev, we need to implement DOM4 event constructors
106420        under a enable flag. For that purpose, we implement a [ConstructorConditional]
106421        IDL attribute.
106422
106423        Test: bindings/scripts/test/TestInterface.idl
106424
106425        * bindings/scripts/CodeGenerator.pm:
106426        (GenerateConstructorConditionalString):
106427        * bindings/scripts/CodeGeneratorJS.pm:
106428        (GenerateConstructorDeclaration):
106429        (GenerateConstructorHelperMethods):
106430        * bindings/scripts/CodeGeneratorV8.pm:
106431        (GenerateHeader):
106432        (GenerateImplementation):
106433        * bindings/scripts/IDLAttributes.txt:
106434        * bindings/scripts/test/JS/JSTestInterface.cpp:
106435        (WebCore):
106436        * bindings/scripts/test/JS/JSTestInterface.h:
106437        (JSTestInterfaceConstructor):
106438        * bindings/scripts/test/TestInterface.idl:
106439        * bindings/scripts/test/V8/V8TestInterface.cpp:
106440        (WebCore::ConfigureV8TestInterfaceTemplate):
106441        * bindings/scripts/test/V8/V8TestInterface.h:
106442        (V8TestInterface):
106443
1064442013-01-18  Kentaro Hara  <haraken@chromium.org>
106445
106446        [V8] We should set a class id for a NPObject wrapper
106447        https://bugs.webkit.org/show_bug.cgi?id=107249
106448
106449        Reviewed by Adam Barth.
106450
106451        This is one of steps to avoid hitting an ASSERT()
106452        that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
106453
106454        No tests. No change in behavior.
106455
106456        * bindings/v8/V8DOMWrapper.h:
106457        (V8DOMWrapper):
106458        (WebCore::V8DOMWrapper::setWrapperClass):
106459        (WebCore):
106460        * bindings/v8/V8NPObject.cpp:
106461        (WebCore::createV8ObjectForNPObject):
106462
1064632013-01-20  Mike Lawther  <mikelawther@chromium.org>
106464
106465        CSS3 calc: unprefix implementation
106466        https://bugs.webkit.org/show_bug.cgi?id=91951
106467
106468        Reviewed by Ojan Vafai.
106469
106470        Add support for the unprefixed 'calc()' function, while retaining support for the prefixed version.
106471
106472        Test: css3/calc/simple-calcs-prefixed.html
106473
106474        * css/CSSCalculationValue.cpp:
106475        (WebCore::buildCssText):
106476        (WebCore::CSSCalcValue::create):
106477        * css/CSSParser.cpp:
106478        (WebCore::CSSParser::isCalculation):
106479        (WebCore::CSSParser::detectFunctionTypeToken):
106480
1064812013-01-20  Shinya Kawanaka  <shinyak@chromium.org>
106482
106483        Distribution state becomes inconsistent with content/shadow reprojection
106484        https://bugs.webkit.org/show_bug.cgi?id=106634
106485
106486        Reviewed by Hajime Morita.
106487
106488        Distribution should be resolved from shallower ShadowDOM to deeper Shadow DOM. However, in the current implementation,
106489        there is a case that distribution for deeper ShadowDOM happens to be resolved before distribution
106490        for shallower ShadowDOM is resolved.
106491
106492        Here, we have 2 problems about distribution.
106493        1) Invalidation state is not propagated to nested (= deeper) ShadowDOM.
106494            - This causes deeper ShadowDOM looks having a valid distribution though it should be invalid.
106495        2) We are not resolving shallower ShadowDOM when deeper ShadowDOM's distribution is needed.
106496            - Because of (1), we have to check all the ancestor ShadowDOM.
106497
106498        For (1), we change invalidate() to invalidate nested ShadowDOM's distribution as well.
106499        For (2), when resolving distribution, we will check the ancestor ShadowDOM's distribution state. If the ancestor's
106500        distribution is not valid, we resolve it first.
106501
106502        For optimization of (1), actually we can skip invalidating distribution of some ShadowDOMs.
106503        If ShadowRoot of deeper ShadowDOM does not have an InsertionPoint as children, we can skip invalidating
106504        its distribution, because only children can be distributed to InsertionPoint.
106505
106506        Tests: fast/dom/shadow/distribution-crash.html
106507               fast/dom/shadow/nested-reprojection-inconsistent.html
106508
106509        * dom/ElementShadow.cpp:
106510        (WebCore::ElementShadow::attach): Should resolve distribution from ancestor.
106511        * dom/ElementShadow.h:
106512        * html/shadow/ContentDistributor.cpp:
106513        (WebCore::ContentDistributor::distribute): Added ASSERT that the parent ShadowRoot's distribution is resolved.
106514        (WebCore::ContentDistributor::invalidate): For each InsertionPoint, we have to invalidate
106515        its parent element's distribution (if it has ElementShadow).
106516        (WebCore::ContentDistributor::ensureDistribution):
106517        * html/shadow/ContentDistributor.h:
106518        (WebCore::ContentDistributor::isValid):
106519        * html/shadow/HTMLShadowElement.cpp:
106520        (WebCore::HTMLShadowElement::olderShadowRoot): Should resolve distribution from ancestor.
106521        * html/shadow/InsertionPoint.cpp:
106522        (WebCore::InsertionPoint::attach): ditto.
106523        (WebCore::InsertionPoint::detach): ditto.
106524        (WebCore::InsertionPoint::getDistributedNodes): ditto.
106525        (WebCore::resolveReprojection): ditto.
106526
1065272013-01-20  Dominic Mazzoni  <dmazzoni@google.com>
106528
106529        Make SpeechSynthesis compile in the Chromium port
106530        https://bugs.webkit.org/show_bug.cgi?id=107382
106531
106532        Reviewed by Adam Barth.
106533
106534        Add stubs for the Chromium implementation of speech synthesis,
106535        and add all source and header files to WebCore.gypi. Everything
106536        is behind the ENABLE_SPEECH_SYNTHESIS flag.
106537
106538        * Modules/speech/chromium/SpeechSynthesisChromium.cpp: Added.
106539        (WebCore):
106540        (WebCore::SpeechSynthesis::initializeVoiceList):
106541        (WebCore::SpeechSynthesis::pending):
106542        (WebCore::SpeechSynthesis::speaking):
106543        (WebCore::SpeechSynthesis::paused):
106544        (WebCore::SpeechSynthesis::speak):
106545        (WebCore::SpeechSynthesis::cancel):
106546        (WebCore::SpeechSynthesis::pause):
106547        (WebCore::SpeechSynthesis::resume):
106548        * WebCore.gypi:
106549
1065502013-01-20  Kent Tamura  <tkent@chromium.org>
106551
106552        Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
106553        https://bugs.webkit.org/show_bug.cgi?id=104997
106554
106555        Reviewed by Tony Chang.
106556
106557        When padding or border is updated for a parent block with
106558        box-sizing:border-box and width, the width of its child block was not
106559        updated.
106560
106561        Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
106562               fast/forms/text/text-padding-dynamic-change.html
106563
106564        * rendering/RenderBox.cpp:
106565        (WebCore::RenderBox::styleDidChange):
106566        If box-sizing of the old style and/or the new style is border-box and
106567        padding or border is changed, apply setChildNeedsLayout(true) for child
106568        boxes.
106569
1065702013-01-20  Kentaro Hara  <haraken@chromium.org>
106571
106572        [V8] Remove custom V8ScriptProfileCustom::toV8()
106573        https://bugs.webkit.org/show_bug.cgi?id=107246
106574
106575        Reviewed by Adam Barth.
106576
106577        V8ScriptProfileCustom::toV8() needs not to be custom.
106578        Furthermore, the current custom toV8() is wrong in that
106579        it doesn't use a creationContext and it doesn't set a
106580        wrapper class id. This is one of steps to avoiding
106581        ASSERT()s that will be added in
106582        https://bugs.webkit.org/show_bug.cgi?id=107137 .
106583
106584        No tests. No change in behavior.
106585
106586        * UseV8.cmake:
106587        * WebCore.gypi:
106588        * bindings/v8/custom/V8ScriptProfileCustom.cpp: Removed.
106589        * inspector/ScriptProfile.idl:
106590
1065912013-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>
106592
106593        Unreviewed, rolling out r140290.
106594        http://trac.webkit.org/changeset/140290
106595        https://bugs.webkit.org/show_bug.cgi?id=107412
106596
106597        Broke tests of inspector and calendar picker in debug build
106598        (Requested by tkent on #webkit).
106599
106600        * rendering/RenderBox.cpp:
106601        (WebCore::RenderBox::styleDidChange):
106602
1066032013-01-20  Yongsheng Zhu  <yongsheng.zhu@intel.com>
106604
106605        Dispatch LongPress to inner frames
106606        https://bugs.webkit.org/show_bug.cgi?id=106874
106607
106608        Reviewed by Antonio Gomes.
106609
106610        Do check whether a LongPress gesture event should be passed
106611        to inner frames. If needed, dispatch it.
106612
106613        Tests: fast/events/touch/gesture/long-press-on-draggable-element-in-iframe-triggers-drag.html
106614               fast/events/touch/gesture/long-press-on-draggable-element-in-nested-iframes-triggers-drag.html
106615
106616        * page/EventHandler.cpp:
106617        (WebCore::EventHandler::handleGestureLongPress):
106618
1066192013-01-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
106620
106621        Clean up missing *explicit* keyword in ctors of WebCore/rendering.
106622        https://bugs.webkit.org/show_bug.cgi?id=107373
106623
106624        Reviewed by Darin Adler.
106625
106626        Need to add *explicit* keyword to avoid implicit type conversion.
106627
106628        * rendering/RenderApplet.h:
106629        (RenderApplet):
106630        * rendering/RenderArena.h:
106631        (RenderArena):
106632        * rendering/RenderBR.h:
106633        (RenderBR):
106634        * rendering/RenderBlock.h:
106635        (RenderBlock):
106636        * rendering/RenderBox.h:
106637        (RenderBox):
106638        * rendering/RenderDetailsMarker.h:
106639        (RenderDetailsMarker):
106640        * rendering/RenderFlexibleBox.h:
106641        (RenderFlexibleBox):
106642        * rendering/RenderFlowThread.h:
106643        * rendering/RenderFullScreen.h:
106644        (RenderFullScreen):
106645        * rendering/RenderGeometryMap.h:
106646        (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
106647        * rendering/RenderGrid.h:
106648        (RenderGrid):
106649        * rendering/RenderImage.h:
106650        (RenderImage):
106651        * rendering/RenderLayerBacking.h:
106652        (RenderLayerBacking):
106653        * rendering/RenderLayerCompositor.h:
106654        (RenderLayerCompositor):
106655        * rendering/RenderLayerModelObject.h:
106656        (RenderLayerModelObject):
106657        * rendering/RenderListBox.h:
106658        (RenderListBox):
106659        * rendering/RenderListMarker.h:
106660        (RenderListMarker):
106661        * rendering/RenderMedia.h:
106662        (RenderMedia):
106663        * rendering/RenderMeter.h:
106664        (RenderMeter):
106665        * rendering/RenderMultiColumnBlock.h:
106666        (RenderMultiColumnBlock):
106667        * rendering/RenderMultiColumnFlowThread.h:
106668        (RenderMultiColumnFlowThread):
106669        * rendering/RenderObject.h:
106670        (RenderObject):
106671        * rendering/RenderPart.h:
106672        (RenderPart):
106673        * rendering/RenderProgress.h:
106674        (RenderProgress):
106675        * rendering/RenderReplaced.h:
106676        (RenderReplaced):
106677        * rendering/RenderReplica.h:
106678        (RenderReplica):
106679        * rendering/RenderRuby.h:
106680        (RenderRubyAsInline):
106681        * rendering/RenderRubyBase.h:
106682        (RenderRubyBase):
106683        * rendering/RenderRubyRun.h:
106684        (RenderRubyRun):
106685        * rendering/RenderRubyText.h:
106686        (RenderRubyText):
106687        * rendering/RenderSearchField.h:
106688        (RenderSearchField):
106689        * rendering/RenderSlider.h:
106690        (RenderSlider):
106691        * rendering/RenderSnapshottedPlugIn.h:
106692        (RenderSnapshottedPlugIn):
106693        * rendering/RenderTextControlMultiLine.h:
106694        (RenderTextControlMultiLine):
106695        * rendering/RenderTextControlSingleLine.h:
106696        (RenderTextControlSingleLine):
106697        * rendering/RenderView.h:
106698        (RenderView):
106699        * rendering/RenderWidgetProtector.h:
106700        (WebCore::RenderWidgetProtector::RenderWidgetProtector):
106701        * rendering/RootInlineBox.h:
106702        (RootInlineBox): Remove meaningless parameter name.
106703        * rendering/TableLayout.h:
106704        (WebCore::TableLayout::TableLayout):
106705
1067062013-01-20  Kent Tamura  <tkent@chromium.org>
106707
106708        Re-layout child blocks when border/padding of the box-sizing:border-box parent is updated
106709        https://bugs.webkit.org/show_bug.cgi?id=104997
106710
106711        Reviewed by Tony Chang.
106712
106713        When padding or border is updated for a parent block with
106714        box-sizing:border-box and width, the width of its child block was not
106715        updated.
106716
106717        Tests: fast/css/box-sizing-border-box-dynamic-padding-border-update.html
106718               fast/forms/text/text-padding-dynamic-change.html
106719
106720        * rendering/RenderBox.cpp:
106721        (WebCore::RenderBox::styleDidChange):
106722        If box-sizing of the old style and/or the new style is border-box and
106723        padding or border is changed, apply setChildNeedsLayout(true) for child
106724        boxes.
106725
1067262013-01-20  Kentaro Hara  <haraken@chromium.org>
106727
106728        Unreviewed, rolling out r140270.
106729        http://trac.webkit.org/changeset/140270
106730        https://bugs.webkit.org/show_bug.cgi?id=107253
106731
106732        Hit asserts in a debug build
106733
106734        * bindings/v8/V8DOMWindowShell.cpp:
106735        (WebCore::V8DOMWindowShell::installDOMWindow):
106736
1067372013-01-20  Shinya Kawanaka  <shinyak@chromium.org>
106738
106739        [Shadow DOM] Specifying scrollbar style of an element having RenderLayer in ShadowDOM does not work.
106740        https://bugs.webkit.org/show_bug.cgi?id=107222
106741
106742        Reviewed by Simon Fraser.
106743
106744        When specifying scrollbar style in ShadowDOM, it's not used. If the host element of ShadowDOM has scrollbar style,
106745        it's used instead.
106746
106747        The root cause of this bug is that RenderLayer always see shadowAncestorNode's style. Some elements having
106748        UserAgent ShadowDOM (e.g. <textarea>) should see host's style, but most of elements should see its style.
106749
106750        Test: fast/dom/shadow/scrollbar.html
106751
106752        * rendering/RenderLayer.cpp:
106753        (WebCore::rendererForScrollbar):
106754        (WebCore):
106755        (WebCore::RenderLayer::createScrollbar):
106756        (WebCore::RenderLayer::updateScrollCornerStyle):
106757        (WebCore::RenderLayer::updateResizerStyle):
106758
1067592013-01-20  Yoshifumi Inoue  <yosin@chromium.org>
106760
106761        Dragging over an element with scrollbars should scroll the element when dragging near edges
106762        https://bugs.webkit.org/show_bug.cgi?id=39725
106763
106764        Reviewed by Hajime Morita.
106765
106766        This patch introduces auto scrolling functionality during drag-and-drop
106767        when drop source is near edge of scrollable element.
106768
106769        When drop source is inside 20px of scrollable element more than 200ms,
106770        scrollable element is automatically scrolled every 50ms toward drop
106771        source position, e.g. vertically scroll up when drop source is in top
106772        edge.
106773
106774        Test: fast/events/drag-and-drop-autoscroll.html
106775
106776        * page/AutoscrollController.cpp:
106777        (WebCore::AutoscrollController::AutoscrollController): Changed to initialize m_dragAndDropAutoscrollStartTime.
106778        (WebCore::AutoscrollController::updateDragAndDrop): Added for start/stop autoscroll during drag-and-drop.
106779        (WebCore::AutoscrollController::autoscrollTimerFired): Changed to add autoscroll for drag-and-drop, and to pass last know position to RenderBox::autoscroll().
106780        * page/AutoscrollController.h:
106781        (AutoscrollController): Changed to add updateDragAndDrop() and m_dragAndDropAutoscrollReferencePosition and m_dragAndDropAutoscrollStartTime.
106782        * page/ChromeClient.h:
106783        (WebCore::ChromeClient): Changed to add new function shouldAutoscrollForDragAndDrop().
106784        * page/EventHandler.cpp:
106785        (WebCore::EventHandler::updateDragAndDrop): Changed to call AutoscrollController::updateDragAndDrop().
106786        (WebCore::EventHandler::clearDragState): Changed to call stopAutoscrollTimer().
106787        * rendering/RenderBox.cpp:
106788        (WebCore::RenderBox::autoscroll): Changed for new parameter position.
106789        (WebCore::RenderBox::calculateAutoscrollDirection): Added for autoscroll.
106790        * rendering/RenderBox.h:
106791        (RenderBox):
106792        * rendering/RenderLayer.cpp:
106793        (WebCore::RenderLayer::autoscroll):  Changed for new parameter position and move updateSelectionForMouseDrag() to AutoscrollController.
106794        * rendering/RenderLayer.h:
106795        (RenderLayer):
106796        * rendering/RenderListBox.cpp:
106797        (WebCore::RenderListBox::autoscroll):  Changed for new parameter position.
106798        * rendering/RenderListBox.h:
106799        (RenderListBox):
106800        * rendering/RenderTextControlSingleLine.cpp:
106801        (WebCore::RenderTextControlSingleLine::autoscroll):  Changed for new parameter position.
106802        * rendering/RenderTextControlSingleLine.h:
106803        (RenderTextControlSingleLine):
106804
1068052013-01-20  Laszlo Gombos  <l.gombos@samsung.com>
106806
106807        Simplify a list of negative PLATFORM() tests
106808        https://bugs.webkit.org/show_bug.cgi?id=107365
106809
106810        Reviewed by Eric Seidel.
106811
106812        Simplify a list of negative PLATFORM() tests into a simpler list
106813        of positive tests for better readability and maintenance.
106814
106815        No new tests as there is no new functionality.
106816
106817        * config.h:
106818
1068192013-01-20  Simon Fraser  <simon.fraser@apple.com>
106820
106821        Avoid filling a rounded rect when radii are zero
106822        https://bugs.webkit.org/show_bug.cgi?id=107402
106823        <rdar://problem/12793315>
106824
106825        Reviewed by Sam Weinig.
106826
106827        It's more efficient to clip and fill rects than rounded rects,
106828        so optimize for the case where rounded rect radii are zero.
106829
106830        * platform/graphics/GraphicsContext.cpp:
106831        (WebCore::GraphicsContext::clipRoundedRect):
106832        (WebCore::GraphicsContext::clipOutRoundedRect):
106833        (WebCore::GraphicsContext::fillRoundedRect):
106834
1068352013-01-20  Alexey Proskuryakov  <ap@apple.com>
106836
106837        Remove obsolete plug-in sandboxing code.
106838        https://bugs.webkit.org/show_bug.cgi?id=107362
106839
106840        Reviewed by Darin Adler.
106841
106842        * WebCore.xcodeproj/project.pbxproj:
106843        * plugins/npapi-sandbox.h: Removed.
106844
1068452013-01-20  Peter Rybin  <peter.rybin@gmail.com>
106846
106847        Web Inspector: Make V8 LiveEdit API disabled by default
106848        https://bugs.webkit.org/show_bug.cgi?id=106668
106849
106850        Reviewed by Yury Semikhatsky.
106851
106852        Initialize method is patched accordingly.
106853
106854        * bindings/v8/JavaScriptCallFrame.cpp:
106855        (WebCore::JavaScriptCallFrame::restart): missing enable/disable calls added for restart
106856        * bindings/v8/V8Initializer.cpp:
106857        (WebCore::initializeV8Common): initializer method patched
106858
1068592013-01-20  Christophe Dumez  <christophe.dumez@intel.com>
106860
106861        [gstreamer]  assertion in g_object_unref from _WebKitWebAudioSourcePrivate destructor
106862        https://bugs.webkit.org/show_bug.cgi?id=107374
106863
106864        Reviewed by Philippe Normand.
106865
106866        WebKitWebAudioSrc object gets unrefed one time too many in
106867        _WebKitWebAudioSourcePrivate destructor, causing an assertion
106868        in g_object_unref. This patch passes NULL instead of
106869        g_object_unref to gst_task_new() so that the WebKitWebAudioSrc
106870        object does not get unrefed when the GstTask is destroyed.
106871
106872        No new tests, already covered by webaudio tests.
106873
106874        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
106875        (webkit_web_audio_src_init):
106876
1068772013-01-20  Kentaro Hara  <haraken@chromium.org>
106878
106879        [V8] Create a persistent wrapper for Window.prototype and innerGlobalObject
106880        https://bugs.webkit.org/show_bug.cgi?id=107253
106881
106882        Reviewed by Adam Barth.
106883
106884        This is one of steps to avoid hitting an ASSERT()
106885        that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
106886        We should have a persistent wrapper for all DOM objects
106887        and set a class id on the wrapper.
106888
106889        No tests. No change in behavior.
106890
106891        * bindings/v8/V8DOMWindowShell.cpp:
106892        (WebCore::V8DOMWindowShell::installDOMWindow):
106893
1068942013-01-19  Philip Rogers  <pdr@google.com>
106895
106896        Refactor SVGSVGElement to inherit from SVGStyledTransformableElement
106897        https://bugs.webkit.org/show_bug.cgi?id=107393
106898
106899        Reviewed by Dirk Schulze.
106900
106901        This patch refactors SVGSVGElement to inherit from SVGStyledTransformableElement instead
106902        of SVGStyledLocatableElement. In a followup patch, SVGStyledTransformableElement will
106903        be refactored into SVGGraphicsElement which will match the spec:
106904        https://svgwg.org/svg2-draft/single-page.html#struct-InterfaceSVGSVGElement
106905
106906        Tests: svg/transforms/svgsvgelement-transform-expected.svg
106907               svg/transforms/svgsvgelement-transform.svg
106908
106909        * svg/SVGSVGElement.cpp:
106910        (WebCore):
106911        (WebCore::SVGSVGElement::SVGSVGElement):
106912        (WebCore::SVGSVGElement::didMoveToNewDocument):
106913        (WebCore::SVGSVGElement::parseAttribute):
106914        (WebCore::SVGSVGElement::insertedInto):
106915        (WebCore::SVGSVGElement::removedFrom):
106916        * svg/SVGSVGElement.h:
106917        (SVGSVGElement):
106918        * svg/SVGSVGElement.idl:
106919
1069202013-01-19  Philip Rogers  <pdr@google.com>
106921
106922        Merge SVGStylable into SVGStyledElement
106923        https://bugs.webkit.org/show_bug.cgi?id=106877
106924
106925        Reviewed by Dirk Schulze.
106926
106927        SVG2 changes element inheritance so all SVGElements are stylable. As a first-step towards a
106928        cleaner class hierarchy, this patch moves SVGStylable into SVGStyledElement.
106929
106930        No new tests as this is just a refactoring.
106931
106932        * CMakeLists.txt:
106933        * DerivedSources.make:
106934        * GNUmakefile.list.am:
106935        * Target.pri:
106936        * WebCore.exp.in:
106937        * WebCore.gyp/WebCore.gyp:
106938        * WebCore.gypi:
106939        * WebCore.vcproj/WebCore.vcproj:
106940        * WebCore.xcodeproj/project.pbxproj:
106941        * bindings/objc/DOMSVG.h:
106942        * bindings/scripts/CodeGeneratorObjC.pm:
106943        * page/DOMWindow.idl:
106944        * svg/SVGAElement.idl:
106945        * svg/SVGAllInOne.cpp:
106946        * svg/SVGCircleElement.idl:
106947        * svg/SVGClipPathElement.idl:
106948        * svg/SVGDefsElement.idl:
106949        * svg/SVGDescElement.idl:
106950        * svg/SVGEllipseElement.idl:
106951        * svg/SVGFEBlendElement.idl:
106952        * svg/SVGFEColorMatrixElement.idl:
106953        * svg/SVGFEComponentTransferElement.idl:
106954        * svg/SVGFECompositeElement.idl:
106955        * svg/SVGFEConvolveMatrixElement.idl:
106956        * svg/SVGFEDiffuseLightingElement.idl:
106957        * svg/SVGFEDisplacementMapElement.idl:
106958        * svg/SVGFEDropShadowElement.idl:
106959        * svg/SVGFEFloodElement.idl:
106960        * svg/SVGFEGaussianBlurElement.idl:
106961        * svg/SVGFEImageElement.idl:
106962        * svg/SVGFEMergeElement.idl:
106963        * svg/SVGFEMorphologyElement.idl:
106964        * svg/SVGFEOffsetElement.idl:
106965        * svg/SVGFESpecularLightingElement.idl:
106966        * svg/SVGFETileElement.idl:
106967        * svg/SVGFETurbulenceElement.idl:
106968        * svg/SVGFilterElement.idl:
106969        * svg/SVGFilterPrimitiveStandardAttributes.idl:
106970        * svg/SVGForeignObjectElement.idl:
106971        * svg/SVGGElement.idl:
106972        * svg/SVGGlyphRefElement.idl:
106973        * svg/SVGGradientElement.idl:
106974        * svg/SVGImageElement.idl:
106975        * svg/SVGLineElement.idl:
106976        * svg/SVGMarkerElement.idl:
106977        * svg/SVGMaskElement.idl:
106978        * svg/SVGMissingGlyphElement.idl:
106979        * svg/SVGPathElement.idl:
106980        * svg/SVGPatternElement.idl:
106981        * svg/SVGPolygonElement.idl:
106982        * svg/SVGPolylineElement.idl:
106983        * svg/SVGRectElement.idl:
106984        * svg/SVGSVGElement.idl:
106985        * svg/SVGStopElement.idl:
106986        * svg/SVGStylable.cpp: Removed.
106987        * svg/SVGStylable.h: Removed.
106988        * svg/SVGStylable.idl: Removed.
106989        * svg/SVGStyledElement.h:
106990        (WebCore):
106991        * svg/SVGStyledElement.idl: Added.
106992        * svg/SVGSwitchElement.idl:
106993        * svg/SVGSymbolElement.idl:
106994        * svg/SVGTextContentElement.idl:
106995        * svg/SVGTitleElement.idl:
106996        * svg/SVGUseElement.idl:
106997
1069982013-01-19  Tim Horton  <timothy_horton@apple.com>
106999
107000        CanvasRenderingContext2D::drawTextInternal should create a mask buffer compatible with that of the canvas
107001        https://bugs.webkit.org/show_bug.cgi?id=107372
107002
107003        Reviewed by Simon Fraser.
107004
107005        No new tests, just matching acceleration modes.
107006
107007        * html/canvas/CanvasRenderingContext2D.cpp:
107008        (WebCore::CanvasRenderingContext2D::drawTextInternal): Create a buffer with the same acceleration mode as the canvas
107009        instead of forcing the use of an accelerated buffer if we support acceleration; the canvas could be unaccelerated
107010        even if USE(IOSURFACE_CANVAS_BACKING_STORE) is on.
107011
1070122013-01-19  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
107013
107014        Delegated scrolling: Assertion on attempt to show a CSS sticky element
107015        https://bugs.webkit.org/show_bug.cgi?id=106890
107016
107017        Reviewed by Kenneth Rohde Christiansen.
107018
107019        The problem was that frame view (when delegated scrolling enabled) calculated the positions of sticky elements for
107020        a scroll event before sending scroll request. In case of multiple scroll events that caused assertion as the response
107021        for previous scroll request was received after the expected sticky elements positions had been already updated for the following
107022        scroll request.
107023
107024        No new tests. Covered by existing 'fast/css/sticky' tests.
107025
107026        * page/FrameView.cpp:
107027        (WebCore::FrameView::setFixedVisibleContentRect):
107028        * platform/ScrollView.cpp:
107029        (WebCore::ScrollView::scrollTo):
107030
1070312013-01-19  Kondapally Kalyan  <kalyan.kondapally@intel.com>
107032
107033        [EFL][WebGL] Regression: WebGL Content is not drawn after resizing the canvas.
107034        https://bugs.webkit.org/show_bug.cgi?id=107366
107035
107036        Reviewed by Kenneth Rohde Christiansen.
107037
107038        Window is shared between GraphicsSurface and its client.
107039        Client doesn't own the Window. This patch ensures that client
107040        doesn't delete the shared Window handle.
107041
107042        Covered by existing WebGL tests.
107043
107044        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
107045        (WebCore::GraphicsSurfacePrivate::clear):
107046
1070472013-01-18  Antti Koivisto  <antti@apple.com>
107048
107049        Make renderer constructors take Element where possible
107050        https://bugs.webkit.org/show_bug.cgi?id=107138
107051
107052        Reviewed by David Hyatt.
107053        
107054        Tighter typing prevents bugs and enables optimizations.
107055
107056        The patch changes how anonymous rendererer are constructed. Previously Document* as the node parameter
107057        indicated that the renderer was anonymous. This forced the code to operate on ContainerNodes (Document
107058        is not an Element). Now anonymous renderers are constructed by passing null and the document is set by
107059        separate setDocumentForAnonymous() call. The patch uses RenderFoo::createAnonymous() pattern consistently.
107060
107061        Most constructors are switched to take Element. RenderBlock still takes ContainerNode due to a few subclasses
107062        (RenderView and RenderFlowThread) that pass in a Document.
107063
107064        * page/FrameView.cpp:
107065        (WebCore::FrameView::updateScrollCorner):
107066        * rendering/RenderBlock.cpp:
107067        (WebCore::RenderBlock::createAnonymous):
107068        (WebCore::RenderBlock::createReplacementRunIn):
107069        (WebCore::RenderBlock::updateFirstLetterStyle):
107070        (WebCore::RenderBlock::createFirstLetterRenderer):
107071        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
107072        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
107073        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
107074        * rendering/RenderBlock.h:
107075        * rendering/RenderDeprecatedFlexibleBox.cpp:
107076        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
107077        (WebCore::RenderDeprecatedFlexibleBox::createAnonymous):
107078        * rendering/RenderDeprecatedFlexibleBox.h:
107079        (RenderDeprecatedFlexibleBox):
107080        * rendering/RenderDetailsMarker.cpp:
107081        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
107082        * rendering/RenderDetailsMarker.h:
107083        (RenderDetailsMarker):
107084        * rendering/RenderDialog.h:
107085        (WebCore::RenderDialog::RenderDialog):
107086        * rendering/RenderFieldset.cpp:
107087        (WebCore::RenderFieldset::RenderFieldset):
107088        * rendering/RenderFieldset.h:
107089        * rendering/RenderFlexibleBox.cpp:
107090        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
107091        * rendering/RenderFlexibleBox.h:
107092        (RenderFlexibleBox):
107093        * rendering/RenderFlowThread.cpp:
107094        (WebCore::RenderFlowThread::RenderFlowThread):
107095        * rendering/RenderFlowThread.h:
107096        * rendering/RenderFullScreen.cpp:
107097        (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
107098        (RenderFullScreen::RenderFullScreen):
107099        (RenderFullScreen::createAnonymous):
107100        (RenderFullScreen::wrapRenderer):
107101        * rendering/RenderFullScreen.h:
107102        (RenderFullScreen):
107103        * rendering/RenderGrid.cpp:
107104        (WebCore::RenderGrid::RenderGrid):
107105        * rendering/RenderGrid.h:
107106        * rendering/RenderImage.cpp:
107107        (WebCore::RenderImage::RenderImage):
107108        (WebCore::RenderImage::createAnonymous):
107109        * rendering/RenderImage.h:
107110        * rendering/RenderInline.cpp:
107111        (WebCore::RenderInline::RenderInline):
107112        (WebCore::RenderInline::createAnonymous):
107113        (WebCore::RenderInline::addChildIgnoringContinuation):
107114        * rendering/RenderInline.h:
107115        (RenderInline):
107116        (WebCore::RenderInline::node):
107117        
107118            Add version with covariant Element return type.
107119
107120        * rendering/RenderLayer.cpp:
107121        (WebCore::RenderLayer::updateScrollCornerStyle):
107122        (WebCore::RenderLayer::updateResizerStyle):
107123        (WebCore::RenderLayer::createReflection):
107124        (WebCore::RenderListItem::RenderListItem):
107125        (WebCore::RenderListItem::styleDidChange):
107126        * rendering/RenderListItem.h:
107127        * rendering/RenderListMarker.cpp:
107128        (WebCore::RenderListMarker::RenderListMarker):
107129        (WebCore::RenderListMarker::createAnonymous):
107130        * rendering/RenderListMarker.h:
107131        * rendering/RenderMediaControlElements.cpp:
107132        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
107133        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
107134        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
107135        * rendering/RenderMediaControlElements.h:
107136        (RenderMediaVolumeSliderContainer):
107137        (RenderMediaControlTimeDisplay):
107138        (RenderTextTrackContainerElement):
107139        * rendering/RenderMultiColumnBlock.cpp:
107140        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
107141        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
107142        * rendering/RenderMultiColumnBlock.h:
107143        * rendering/RenderMultiColumnFlowThread.cpp:
107144        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
107145        * rendering/RenderMultiColumnFlowThread.h:
107146        (RenderMultiColumnFlowThread):
107147        * rendering/RenderMultiColumnSet.cpp:
107148        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
107149        (WebCore::RenderMultiColumnSet::createAnonymous):
107150        * rendering/RenderMultiColumnSet.h:
107151        (RenderMultiColumnSet):
107152        * rendering/RenderNamedFlowThread.cpp:
107153        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
107154        * rendering/RenderNamedFlowThread.h:
107155        (RenderNamedFlowThread):
107156        * rendering/RenderObject.cpp:
107157        (WebCore::RenderObject::RenderObject):
107158        * rendering/RenderObject.h:
107159        
107160             Passed in null node indicates that the renderer is anonymous. Remove now unnecessary setIsAnonymous() function.
107161
107162        (WebCore::RenderObject::isAnonymous):
107163        (WebCore::RenderObject::setDocumentForAnonymous):
107164        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
107165        * rendering/RenderRegion.cpp:
107166        (WebCore::RenderRegion::RenderRegion):
107167        * rendering/RenderRegion.h:
107168        * rendering/RenderRegionSet.cpp:
107169        (WebCore::RenderRegionSet::RenderRegionSet):
107170        * rendering/RenderRegionSet.h:
107171        * rendering/RenderReplaced.cpp:
107172        (WebCore::RenderReplaced::RenderReplaced):
107173        * rendering/RenderReplaced.h:
107174        * rendering/RenderReplica.cpp:
107175        (WebCore::RenderReplica::RenderReplica):
107176        (WebCore::RenderReplica::createAnonymous):
107177        * rendering/RenderReplica.h:
107178        (RenderReplica):
107179        * rendering/RenderRuby.cpp:
107180        (WebCore::createAnonymousRubyInlineBlock):
107181        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
107182        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
107183        * rendering/RenderRuby.h:
107184        (RenderRubyAsInline):
107185        (RenderRubyAsBlock):
107186        * rendering/RenderRubyBase.cpp:
107187        (WebCore::RenderRubyBase::RenderRubyBase):
107188        (WebCore::RenderRubyBase::createAnonymous):
107189        * rendering/RenderRubyBase.h:
107190        (RenderRubyBase):
107191        * rendering/RenderRubyRun.cpp:
107192        (WebCore::RenderRubyRun::RenderRubyRun):
107193        (WebCore::RenderRubyRun::createRubyBase):
107194        (WebCore::RenderRubyRun::staticCreateRubyRun):
107195        * rendering/RenderRubyRun.h:
107196        * rendering/RenderRubyText.cpp:
107197        (WebCore::RenderRubyText::RenderRubyText):
107198        * rendering/RenderRubyText.h:
107199        * rendering/RenderScrollbar.cpp:
107200        (WebCore::RenderScrollbar::updateScrollbarPart):
107201        * rendering/RenderScrollbarPart.cpp:
107202        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
107203        (WebCore::RenderScrollbarPart::createAnonymous):
107204        * rendering/RenderScrollbarPart.h:
107205        (RenderScrollbarPart):
107206        * rendering/RenderSearchField.cpp:
107207        (WebCore::RenderSearchField::RenderSearchField):
107208        * rendering/RenderSearchField.h:
107209        (RenderSearchField):
107210        * rendering/RenderTable.cpp:
107211        (WebCore::RenderTable::RenderTable):
107212        (WebCore::RenderTable::createAnonymousWithParentRenderer):
107213        * rendering/RenderTable.h:
107214        * rendering/RenderTableCaption.cpp:
107215        (WebCore::RenderTableCaption::RenderTableCaption):
107216        * rendering/RenderTableCaption.h:
107217        * rendering/RenderTableCell.cpp:
107218        (WebCore::RenderTableCell::RenderTableCell):
107219        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
107220        * rendering/RenderTableCell.h:
107221        * rendering/RenderTableCol.cpp:
107222        (WebCore::RenderTableCol::RenderTableCol):
107223        * rendering/RenderTableCol.h:
107224        * rendering/RenderTableRow.cpp:
107225        (WebCore::RenderTableRow::RenderTableRow):
107226        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
107227        * rendering/RenderTableRow.h:
107228        * rendering/RenderTableSection.cpp:
107229        (WebCore::RenderTableSection::RenderTableSection):
107230        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
107231        * rendering/RenderTableSection.h:
107232        * rendering/RenderText.cpp:
107233        (WebCore::RenderText::RenderText):
107234        
107235            Pass null and use setDocumentForAnonymous() if a RenderText is created with the Document as renderer
107236            to keep them working. Text renderers should be factored similarly to the rest.
107237
107238        * rendering/RenderTextControl.cpp:
107239        (WebCore::RenderTextControl::RenderTextControl):
107240        * rendering/RenderTextControl.h:
107241        * rendering/RenderTextControlMultiLine.cpp:
107242        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
107243        * rendering/RenderTextControlMultiLine.h:
107244        (RenderTextControlMultiLine):
107245        * rendering/RenderTextControlSingleLine.cpp:
107246        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
107247        * rendering/RenderTextControlSingleLine.h:
107248        (RenderTextControlSingleLine):
107249        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
107250        * rendering/RenderTextTrackCue.cpp:
107251        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
107252        * rendering/RenderView.cpp:
107253        (WebCore::RenderView::RenderView):
107254        * rendering/RenderWidget.cpp:
107255        (WebCore::RenderWidget::RenderWidget):
107256        * rendering/RenderWidget.h:
107257        * rendering/mathml/RenderMathMLBlock.cpp:
107258        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
107259        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
107260        * rendering/mathml/RenderMathMLBlock.h:
107261        * rendering/mathml/RenderMathMLFenced.cpp:
107262        (WebCore::RenderMathMLFenced::createMathMLOperator):
107263        * rendering/mathml/RenderMathMLOperator.cpp:
107264        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
107265        (WebCore::RenderMathMLOperator::updateFromElement):
107266        (WebCore::RenderMathMLOperator::createGlyph):
107267        * rendering/mathml/RenderMathMLOperator.h:
107268        * rendering/mathml/RenderMathMLRow.cpp:
107269        (WebCore::RenderMathMLRow::RenderMathMLRow):
107270        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
107271        * rendering/mathml/RenderMathMLRow.h:
107272        * rendering/style/ContentData.cpp:
107273        (WebCore::ImageContentData::createRenderer):
107274        * rendering/svg/RenderSVGBlock.cpp:
107275        (WebCore::RenderSVGBlock::RenderSVGBlock):
107276        * rendering/svg/RenderSVGInline.cpp:
107277        (WebCore::RenderSVGInline::RenderSVGInline):
107278        * rendering/svg/RenderSVGInline.h:
107279        * rendering/svg/RenderSVGTSpan.cpp:
107280        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
107281        * rendering/svg/RenderSVGTSpan.h:
107282        * rendering/svg/RenderSVGTextPath.cpp:
107283        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
107284        * rendering/svg/RenderSVGTextPath.h:
107285
1072862013-01-19  Zan Dobersek  <zdobersek@igalia.com>
107287
107288        Unreviewed GTK build fix.
107289
107290        Add the build targets introduced in r140231 to the list.
107291
107292        * GNUmakefile.list.am:
107293
1072942013-01-18  Huang Dongsung  <luxtella@company100.net>
107295
107296        [Mac] Remove unused pageScaleFactor and positionRelativeToBase arguments in GraphicsLayerCA.
107297        https://bugs.webkit.org/show_bug.cgi?id=107357
107298
107299        Reviewed by Ryosuke Niwa.
107300
107301        Several methods in GraphicsLayerCA receive a pageScaleFactor or a
107302        positionRelativeToBase argument but don't use the arguments, so this patch
107303        removes them.
107304
107305        No new tests. This is just a refactoring of the existing code.
107306
107307        * platform/graphics/ca/GraphicsLayerCA.cpp:
107308        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
107309        (WebCore::GraphicsLayerCA::updateGeometry):
107310        (WebCore::GraphicsLayerCA::updateStructuralLayer):
107311        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
107312        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
107313        (WebCore::GraphicsLayerCA::updateContentsScale):
107314        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
107315        * platform/graphics/ca/GraphicsLayerCA.h:
107316        (GraphicsLayerCA):
107317
1073182013-01-18  Dimitri Glazkov  <dglazkov@chromium.org>
107319
107320        Move attributeNameMatches from SelectorChecker to its proper place on Attribute.
107321        https://bugs.webkit.org/show_bug.cgi?id=107358
107322
107323        Reviewed by Andreas Kling.
107324
107325        Refactoring, covered by existing tests.
107326
107327        * css/SelectorChecker.cpp:
107328        (WebCore::anyAttributeMatches): Changed to use the new name.
107329        * css/SelectorChecker.h:
107330        (SelectorChecker): Moved attributeNameMatches out of here.
107331        (WebCore::SelectorChecker::checkExactAttribute): Changed to use the new name.
107332        * dom/Attribute.h:
107333        (WebCore::Attribute::matches): Moved attributeNameMatches to here.
107334
1073352013-01-18  Simon Fraser  <simon.fraser@apple.com>
107336
107337        Fix bug that caused pages with fixed backgrounds to not be fast scrollable
107338        https://bugs.webkit.org/show_bug.cgi?id=107354
107339
107340        Reviewed by Sam Weinig.
107341
107342        Correct the change to RenderObject::styleWillChange() made in r140223. This
107343        condition is checking that we're painting the root background, so it checks if
107344        the renderer is the root, or if it's the body, and the document element's renderer
107345        has no background (which means that the body's background propagates to the root).
107346
107347        * rendering/RenderObject.cpp:
107348        (WebCore::RenderObject::styleWillChange):
107349
1073502013-01-18  Dima Gorbik  <dgorbik@apple.com>
107351
107352        Remove a TextTrack.h include from the Element.h and move WebVTT related stuff outside the Element
107353        https://bugs.webkit.org/show_bug.cgi?id=107080
107354
107355        Reviewed by Sam Weinig.
107356
107357        WebVTT objects are now subclasses of the Element. This allows us to remove major WebVTT chunks of code from
107358        Element.h and NodeRareData. WebVTTElement is deriving from HTMLElement and not Element to prevent possible
107359        problems that could happen because we reuse qTags that are being used in HTML like <b>, <i> and <u>.
107360
107361        No new tests. This is just a refactoring of the existing code.
107362
107363        * CMakeLists.txt:
107364        * WebCore.gypi:
107365        * WebCore.xcodeproj/project.pbxproj:
107366        * css/SelectorChecker.cpp:
107367        (WebCore::SelectorChecker::checkOne):
107368        * css/StyleResolver.cpp:
107369        (WebCore::StyleResolver::collectMatchingRules):
107370        (WebCore::StyleResolver::canShareStyleWithElement):
107371        * dom/Element.cpp:
107372        * dom/Element.h:
107373        * dom/ElementRareData.h:
107374        (WebCore::ElementRareData::ElementRareData):
107375        * dom/Node.h:
107376        (WebCore::Node::isWebVTTElement):
107377        * html/track/TextTrack.h:
107378        * html/track/TextTrackCue.cpp:
107379        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree):
107380        (WebCore::TextTrackCue::markFutureAndPastNodes):
107381        * html/track/WebVTTElement.cpp: Added.
107382        (WebCore::WebVTTElement::create):
107383        (WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
107384        * html/track/WebVTTElement.h: Added.
107385        (WebCore::WebVTTElement::setWebVTTNodeType):
107386        (WebCore::WebVTTElement::webVTTNodeType):
107387        (WebCore::WebVTTElement::WebVTTElement):
107388        (WebCore::toWebVTTElement):
107389        * html/track/WebVTTParser.cpp:
107390        (WebCore::WebVTTParser::constructTreeFromToken):
107391
1073922013-01-18  Beth Dakin  <bdakin@apple.com>
107393
107394        https://bugs.webkit.org/show_bug.cgi?id=106946
107395        Sticky-position elements can jump around/hide on rubber-banding
107396
107397        Reviewed by Simon Fraser.
107398
107399        This patch adds a new function called viewportConstrainedVisibleContentRect() 
107400        since there are a number of places where we need a visibleContectRect() that does 
107401        not allow scroll offsets that indicate the rubber-banding that is happening. And 
107402        this patch fixes the bug for sticky by calling this function in two new places.
107403
107404        * page/FrameView.cpp:
107405        (WebCore::FrameView::viewportConstrainedVisibleContentRect):
107406        (WebCore):
107407        * page/FrameView.h:
107408        (FrameView):
107409        * page/scrolling/ScrollingCoordinator.cpp:
107410        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
107411        * rendering/RenderBoxModelObject.cpp:
107412        (WebCore::RenderBoxModelObject::stickyPositionOffset):
107413        * rendering/RenderLayerCompositor.cpp:
107414        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
107415        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
107416
1074172013-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>
107418
107419        Unreviewed, rolling out r140206.
107420        http://trac.webkit.org/changeset/140206
107421        https://bugs.webkit.org/show_bug.cgi?id=107346
107422
107423        Caused crash on wordpress.com (Requested by smfr on #webkit).
107424
107425        * rendering/RenderBox.cpp:
107426        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
107427
1074282013-01-18  Simon Fraser  <simon.fraser@apple.com>
107429
107430        Allow fixed background layers to be moved by the ScrollingCoordinator
107431        https://bugs.webkit.org/show_bug.cgi?id=107213
107432
107433        Reviewed by Tim Horton.
107434        
107435        Start using the RenderView's RenderLayerBacking's background layer for
107436        fixed root backgrounds (those which have background images all of which have
107437        background-attachment: fixed).
107438        
107439        The background-layer is contained in the RenderLayer's RenderLayerBacking's
107440        containment view, so it gets page scale applied to it, but scrolling happens
107441        above this layer, so the background has to be counter-scrolled. We plumb
107442        this layer through to the ScrollingCoordinator so that this counter-scrolling
107443        can be done on the scrolling thread.
107444        
107445        Test: platform/mac/tiled-drawing/fixed-background/fixed-body-background-positioned.html
107446
107447        * WebCore.xcodeproj/project.pbxproj: Add ScrollingStateScrollingNodeMac.mm
107448        * page/scrolling/ScrollingCoordinator.cpp:
107449        (WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView): New function to get
107450        the counter-scrolling layer.
107451        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition): Sync or set the position of the
107452        counter-scrolling layer just like we do for the main scrolling layer.
107453        * page/scrolling/ScrollingCoordinator.h:
107454        (WebCore::ScrollingCoordinator::updateScrollingNode):
107455        * page/scrolling/ScrollingStateNode.cpp:
107456        (WebCore::ScrollingStateNode::ScrollingStateNode): setScrollLayer() renamed to setScrollPlatformLayer(),
107457        and added a FIXME comment because this code is confusing and possibly wrong.
107458        * page/scrolling/ScrollingStateNode.h: Renamed setScrollLayer() to setScrollPlatformLayer().
107459        * page/scrolling/ScrollingStateScrollingNode.cpp:
107460        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
107461        * page/scrolling/ScrollingStateScrollingNode.h:
107462        (ScrollingStateScrollingNode): Track the counter-scrolling layer.
107463        (WebCore::ScrollingStateScrollingNode::counterScrollingLayer):
107464        (WebCore::ScrollingStateScrollingNode::counterScrollingLayerDidChange):
107465        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayerDidChange):
107466        * page/scrolling/mac/ScrollingCoordinatorMac.h:
107467        (ScrollingCoordinatorMac): Add updateScrollingNode() which is less expensive than frameViewRootLayerDidChange()
107468        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
107469        (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange): Fetch the counter-scrolling layer if we have one.
107470        (WebCore::ScrollingCoordinatorMac::setCounterScrollingLayerForNode):
107471        (WebCore::ScrollingCoordinatorMac::updateScrollingNode):
107472        * page/scrolling/mac/ScrollingStateNodeMac.mm:
107473        (WebCore::ScrollingStateNode::setScrollPlatformLayer):
107474        * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm: New file for implementation of setCounterScrollingLayer().
107475        (WebCore::ScrollingStateScrollingNode::counterScrollingPlatformLayer):
107476        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
107477        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
107478        (ScrollingTreeScrollingNodeMac):
107479        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
107480        (WebCore::ScrollingTreeScrollingNodeMac::update):
107481        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
107482        * rendering/RenderBoxModelObject.cpp:
107483        (WebCore::RenderBoxModelObject::fixedBackgroundPaintsInLocalCoordinates):
107484        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): If we're painting into the fixed root layer,
107485        we want to always paint with the top,left at 0,0.
107486        * rendering/RenderBoxModelObject.h:
107487        * rendering/RenderLayerBacking.cpp:
107488        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): In the fixed root background case,
107489        we can make the background layer viewport-sized, and we have to set its counter-scrolled position.
107490        (WebCore::RenderLayerBacking::updateBackgroundLayer): If the background layer was created or destroyed,
107491        we have to tell the ScrollingCoordinator.
107492        (WebCore::RenderLayerBacking::didCommitChangesForLayer): Send the GraphicsLayer down.
107493        * rendering/RenderLayerCompositor.cpp:
107494        (WebCore::RenderLayerCompositor::didFlushChangesForLayer): If the background layer changed (e.g. it became
107495        tiled) we need to tell the ScrollingCoordinator.
107496        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): We failed to update the borders on new
107497        layers sometimes; this fixes that.
107498        (WebCore::RenderLayerCompositor::frameViewDidScroll): In the non-threaded scrolling case, if we have
107499        a fixed background layer, we need to update its position.
107500        (WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged): Feed the newly created/destroyed layer
107501        down to the ScrollingCoordinator.
107502        (WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
107503        (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
107504        * rendering/RenderLayerCompositor.h:
107505        * rendering/RenderObject.cpp:
107506        (WebCore::rendererHasBackground):
107507        (WebCore::RenderObject::styleWillChange): If the compositor supports fixed root backgrounds, we no longer
107508        treat these as slow repaint objects.
107509        * rendering/RenderView.cpp:
107510        (WebCore::RenderView::rootBackgroundIsEntirelyFixed): Helper function called by RLC.
107511        * rendering/RenderView.h:
107512
1075132013-01-18  Alec Flett  <alecflett@chromium.org>
107514
107515        IndexedDB: Switch to new createTransaction call
107516        https://bugs.webkit.org/show_bug.cgi?id=107311
107517
107518        Reviewed by Tony Chang.
107519
107520        Convert frontend callers to use the new backend createTransaction
107521        call which is the final divorce between the frontend and backend
107522        transaction objects. This allows an asynchronous call in Chromium
107523        and allows the front and backend to have their own lifecycle,
107524        allowing the backend to be cleaned up as soon as a transaction is complete,
107525        rather than waiting for the JS object to get cleaned up.
107526
107527        No new tests, this is a refactor covered by existing tests.
107528
107529        * Modules/indexeddb/IDBDatabase.cpp:
107530        (WebCore::IDBDatabase::transaction):
107531        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
107532        (WebCore::IDBDatabaseBackendImpl::commit):
107533        (WebCore::IDBDatabaseBackendImpl::abort):
107534        (WebCore::IDBDatabaseBackendImpl::createTransaction):
107535        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
107536        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
107537        (WebCore::IDBDatabaseCallbacksImpl::onAbort):
107538        (WebCore::IDBDatabaseCallbacksImpl::onComplete):
107539        * Modules/indexeddb/IDBOpenDBRequest.cpp:
107540        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
107541        * Modules/indexeddb/IDBTransaction.cpp:
107542        (WebCore::IDBTransaction::create):
107543        (WebCore::IDBTransaction::IDBTransaction):
107544        (WebCore::IDBTransaction::setActive):
107545        (WebCore::IDBTransaction::abort):
107546        * Modules/indexeddb/IDBTransaction.h:
107547        (WebCore):
107548        (IDBTransaction):
107549        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
107550        (WebCore::IDBTransactionBackendImpl::create):
107551        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
107552        (WebCore::IDBTransactionBackendImpl::abort):
107553        (WebCore::IDBTransactionBackendImpl::commit):
107554        * Modules/indexeddb/IDBTransactionBackendImpl.h:
107555        (IDBTransactionBackendImpl):
107556        (WebCore::IDBTransactionBackendImpl::setCallbacks):
107557
1075582013-01-18  Brady Eidson  <beidson@apple.com>
107559
107560        Rework NetworkProcess resource load identifiers.
107561        <rdar://problem/12934449> and https://bugs.webkit.org/show_bug.cgi?id=107192
107562
107563        Reviewed by Alexey Proskuryakov.
107564
107565        No new tests (No effect in tested configs).
107566
107567        * WebCore.exp.in:
107568
107569        Include an identifier argument for synchronous loads:
107570        * loader/LoaderStrategy.cpp:
107571        (WebCore::LoaderStrategy::loadResourceSynchronously):
107572        * loader/LoaderStrategy.h:
107573
107574        Pass along a unique identifier to the synchronous load:
107575        * loader/FrameLoader.cpp:
107576        (WebCore::FrameLoader::loadResourceSynchronously):
107577
107578        Remove the "setIdentifier" method:
107579        * loader/ResourceLoader.cpp:
107580        * loader/ResourceLoader.h:
107581
1075822013-01-18  Shinya Kawanaka  <shinyak@chromium.org>
107583
107584        Introduce isHTMLTextFormControlElement and toHTMLTextFormControlElement instead of toTextFormControl
107585        https://bugs.webkit.org/show_bug.cgi?id=107089
107586
107587        Reviewed by Kent Tamura.
107588
107589        toTextFormControl(node) returns 0 if node is not HTMLTextFormControl. In recent coding convention,
107590        we only have ASSERT and statc_cast in this kind of conversion function. So this code looks like
107591        having a bad cast, though it does not.
107592
107593        In this patch, we convert toTextFromControl to isHTMLTextFormControlElement and toHTMLFormControlElement,
107594        which aligns our coding convention.
107595
107596        No new tests, simple refactoring.
107597
107598        * editing/Editor.cpp:
107599        (WebCore::Editor::selectionForCommand):
107600        (WebCore::Editor::setBaseWritingDirection):
107601        * html/HTMLElement.cpp:
107602        (WebCore::HTMLElement::directionality):
107603        * html/HTMLTextFormControlElement.cpp:
107604        (WebCore::enclosingTextFormControl):
107605        * html/HTMLTextFormControlElement.h:
107606        (WebCore::isHTMLTextFormControlElement):
107607        (WebCore):
107608        (WebCore::toHTMLTextFormControlElement):
107609        * rendering/RenderTextControl.cpp:
107610        (WebCore::RenderTextControl::RenderTextControl):
107611        (WebCore::RenderTextControl::layoutSpecialExcludedChild):
107612        * testing/Internals.cpp:
107613        (WebCore::Internals::visiblePlaceholder):
107614
1076152013-01-18  Emil A Eklund  <eae@chromium.org>
107616
107617        Change RenderStyle::getRoundedInnerBorderFor to take ints for border widths
107618        https://bugs.webkit.org/show_bug.cgi?id=107331
107619
107620        Reviewed by Levi Weintraub.
107621        
107622        Borders are always represented as ints yet RenderStyle::
107623        getRoundedInnerBorderFor upcasts from int to LayoutUnit when
107624        calling getRoundedInnerBorderFor.
107625
107626        No new tests, no change in functionality.
107627
107628        * rendering/style/RenderStyle.cpp:
107629        (WebCore::RenderStyle::getRoundedInnerBorderFor):
107630        * rendering/style/RenderStyle.h:
107631        Change getRoundedInnerBorderFor to use ints for border widths.
107632
1076332013-01-18  Adam Barth  <abarth@webkit.org>
107634
107635        BackgroundHTMLParser shouldn't create AtomicStrings
107636        https://bugs.webkit.org/show_bug.cgi?id=107150
107637
107638        Reviewed by Tony Gentilcore.
107639
107640        Previously, we were creating an AtomicString from the HTMLToken for
107641        every start and end tag. This caused us to have a static dependency on
107642        the parser thread's atomic string table. We want to avoid static
107643        dependencies because we want to eventually run the background parser
107644        using a library like libdispatch that will let us run many version in
107645        parallel.
107646
107647        This patch uses a different approach whereby we use the tag name from
107648        the CompactHTMLToken. In order to avoid calling strcmp excessively, we
107649        use StringImpl::hash to quickly reject matches with some common tag
107650        names. As a side effect, the hash value will be cached in the
107651        StringImpl, speeding up atomization once these StringImpls arrive on
107652        the main thread.
107653
107654        This patch also improves the performance on html-parser-srcdoc.html.
107655        With the patch in bug 107236 applied (which focuses the benchmark more
107656        tightly on the parser), we spend 2.3% less time on the main thread
107657        (likely due to pre-caching the hash values) and 11.5% less time on the
107658        parser thread.
107659
107660        * html/parser/BackgroundHTMLParser.cpp:
107661        (WebCore):
107662        (WebCore::threadSafeEqual):
107663        (WebCore::threadSafeMatch):
107664        (WebCore::BackgroundHTMLParser::pumpTokenizer):
107665
1076662013-01-18  Tony Gentilcore  <tonyg@chromium.org>
107667
107668        Run defer scripts in the threaded HTML parser
107669        https://bugs.webkit.org/show_bug.cgi?id=107320
107670
107671        Reviewed by Eric Seidel.
107672
107673        No new tests because covered by http/tests/misc/script-defer.html.
107674
107675        * html/parser/HTMLDocumentParser.cpp:
107676        (WebCore::HTMLDocumentParser::prepareToStopParsing):
107677        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
107678
1076792013-01-18  Robert Hogan  <robert@webkit.org>
107680
107681        fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html is crashing after r140024
107682        https://bugs.webkit.org/show_bug.cgi?id=107209
107683
107684        Reviewed by David Hyatt.
107685
107686        * rendering/RenderBlock.cpp:
107687        (WebCore::RenderBlock::layoutPositionedObjects): r140024 forgot to layout the fixedpos object after
107688        marking it.
107689
1076902013-01-18  Abhishek Arya  <inferno@chromium.org>
107691
107692        Heap-use-after-free in WebCore::RenderObject::isDescendantOf
107693        https://bugs.webkit.org/show_bug.cgi?id=107226
107694
107695        Reviewed by David Hyatt.
107696
107697        Test: fast/block/float/overhanging-float-not-removed-crash.html
107698
107699        * rendering/RenderBox.cpp:
107700        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
107701        Skip anonymous blocks in the chain to get the enclosing block and
107702        be able to correctly mark the overhanging floats in the next siblings.
107703
1077042013-01-18  Chris Hopman  <cjhopman@google.com>
107705
107706        Fix scrollRectToVisible in the presence of transforms
107707        https://bugs.webkit.org/show_bug.cgi?id=105574
107708
107709        Reviewed by Simon Fraser.
107710
107711        When scrolling to reveal an overflow layer, the required scroll was
107712        being calculated in absolute coordinates. To properly account for
107713        transforms, this calculation should be done in the local coordinates
107714        of the renderBox.
107715
107716        Tests: editing/input/reveal-selection-transformed-overflow-parent.html
107717               editing/input/reveal-selection-transformed-textarea.html
107718
107719        * rendering/RenderLayer.cpp:
107720        (WebCore::RenderLayer::scrollRectToVisible):
107721        When scrolling to reveal an overflow layer, calculate the required
107722        scroll in the local coordinates of the RenderBox.
107723        * rendering/RenderObject.cpp:
107724        (WebCore::RenderObject::absoluteToLocalQuad):
107725        (WebCore):
107726        * rendering/RenderObject.h:
107727        (RenderObject):
107728        Add function to convert an absolute quad to a local quad.
107729
1077302013-01-18  Julien Chaffraix  <jchaffraix@webkit.org>
107731
107732        [CSS Grid Layout] Add support for min-content
107733        https://bugs.webkit.org/show_bug.cgi?id=106474
107734
107735        Reviewed by Ojan Vafai.
107736
107737        Tests: fast/css-grid-layout/minmax-min-content-column-resolution-columns.html
107738               fast/css-grid-layout/minmax-min-content-column-resolution-rows.html
107739
107740        This change adds support to properly size min-content as long as the grid items and the grid element
107741        don't have orthogonal writing-modes. Orthogonal writing modes will be handled in a follow-up bug
107742        to keep the patch small-ish.
107743
107744        This change implements a subset of the specification's algorithm, taking some shortcuts where the
107745        extra complexity wasn't a clear win for now: e.g. the specification relies on behavior customization
107746        through functors to share code among more complex cases - like spanning columns / rows. These shortcuts
107747        have been marked as FIXME / comments in the code so that they can be evaluated and fixed as we implement
107748        more of the complexity.
107749
107750        * platform/Length.h:
107751        (WebCore::Length::isMinContent):
107752        (WebCore::Length::isMaxContent):
107753        Helper functions.
107754
107755        * rendering/RenderGrid.cpp:
107756        (WebCore::GridTrack::maxBreadthIfNotInfinite):
107757        Helper function that returns the max breadth if finite and the used breadth otherwise.
107758
107759        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
107760        Updated to call resolveContentBasedTrackSizingFunctions.
107761
107762        (WebCore::RenderGrid::computeUsedBreadthOfMinLength):
107763        (WebCore::RenderGrid::computeUsedBreadthOfMaxLength):
107764        (WebCore::RenderGrid::computeUsedBreadthOfSpecifiedLength):
107765        Split computeUsedBreadthOfLength into min and max side so that we can return the default values accordingly.
107766        computeUsedBreadthOfSpecifiedLength shares the common code. Also made these functions 'const'.
107767
107768        (WebCore::RenderGrid::minContentForChild):
107769        This function returns the 'min-content' value based on layout / compute preferred logical widths information.
107770
107771        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
107772        This is the core function that implements the sizing. It currently doesn't share much code between the branches,
107773        which will be done as we implement more of the algorithm.
107774
107775        (WebCore::RenderGrid::distributeSpaceToTracks):
107776        Clamped the growthShare to positive value only. This is required to handle cases where min-content is bigger
107777        than max track breadth. Added a comment about this deviation from the specification.
107778
107779        (WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
107780        Debug only method. It is a sanity check as our algorithm should *never* shrink the used breadth to a value
107781        smaller than the computed min track breadth.
107782
107783        (WebCore::RenderGrid::layoutGridItems):
107784        Added 2 ASSERT using tracksAreWiderThanMinTrackBreadth.
107785
107786        (WebCore::RenderGrid::resolveGridPosition):
107787        Helper overriden instance.
107788        * rendering/RenderGrid.h:
107789        Added the new functions. Also made more core functions take both grid tracks.
107790
1077912013-01-18  Geoffrey Garen  <ggaren@apple.com>
107792
107793        Weak GC maps should be easier to use
107794        https://bugs.webkit.org/show_bug.cgi?id=107312
107795
107796        Reviewed by Sam Weinig.
107797
107798        Since weak GC maps are so easy to use now, let's use them for the DOM
107799        string cache.
107800
107801        * WebCore.exp.in:
107802        * bindings/js/DOMWrapperWorld.cpp:
107803        (WebCore):
107804        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
107805        * bindings/js/DOMWrapperWorld.h:
107806        (WebCore):
107807        (WebCore::DOMWrapperWorld::globalData):
107808        (DOMWrapperWorld):
107809        * bindings/js/JSDOMBinding.cpp:
107810        (WebCore):
107811        * bindings/js/JSDOMBinding.h:
107812        (WebCore):
107813        (WebCore::jsStringWithCache):
107814
1078152013-01-18  Tim Volodine  <timvolodine@chromium.org>
107816
107817        Text Autosizing: don't autosize headers with multiple inline links.
107818        https://bugs.webkit.org/show_bug.cgi?id=106792
107819
107820        Reviewed by Kenneth Rohde Christiansen.
107821
107822        This patch includes code for detecting rows of links typically seen
107823        in headers or footers of webpages. Such rows of links should not be
107824        autosized.
107825
107826        The heuristics to detect such rows of links are based on the appearance
107827        of headers in most websites: i.e. links are inline, there are at least three
107828        of them, they should have the same font size with possibly only short textual
107829        separators between them (max 3 characters) and there should be no line breaks
107830        (i.e. <br> elements) between them.
107831
107832        Tests: fast/text-autosizing/header-li-links-autosizing.html
107833               fast/text-autosizing/header-links-autosizing-different-fontsize.html
107834               fast/text-autosizing/header-links-autosizing.html
107835
107836        * rendering/TextAutosizer.cpp:
107837        (WebCore::TextAutosizer::containerShouldBeAutosized):
107838        (WebCore::TextAutosizer::containerIsRowOfLinks):
107839        (WebCore):
107840        * rendering/TextAutosizer.h:
107841
1078422013-01-18  Levi Weintraub  <leviw@chromium.org>
107843
107844        LayoutUnit should round half consistently, not away from zero
107845        https://bugs.webkit.org/show_bug.cgi?id=107208
107846
107847        Reviewed by Eric Seidel.
107848
107849        The current implementation of LayoutUnit::round() always rounds half away from zero. This can result in
107850        a shift of 1 pixel moving an element aligned at a half-pixel by 2. This problem is particularly common with
107851        RenderLayers, which pass the sub-pixel accumulation into their renderers after translating the graphics
107852        context passed in by their rounded location. This changes round() to always round 0.5 up.
107853
107854        Test: fast/sub-pixel/sub-pixel-root-layer.html
107855
107856        * platform/LayoutUnit.h:
107857        (WebCore::LayoutUnit::round): Always round 0.5 up.
107858        * rendering/RenderLayer.cpp:
107859        (WebCore::RenderLayer::paintLayerContents): We no longer need to prevent rootLayers from passing in a
107860        sub-pixel offset. This eliminates the shifting of elements when applying translateZ(0) or similar.
107861
1078622013-01-18  Kentaro Hara  <haraken@chromium.org>
107863
107864        [V8] Remove custom V8ScriptProfileNodeCustom::toV8()
107865        https://bugs.webkit.org/show_bug.cgi?id=107245
107866
107867        Reviewed by Adam Barth.
107868
107869        V8ScriptProfileNodeCustom::toV8() needs not to be custom.
107870        Furthermore, the current custom toV8() is wrong in that
107871        it doesn't use a creationContext and it doesn't set a wrapper
107872        class id. This is one of steps to avoiding ASSERT()s
107873        that will be added in https://bugs.webkit.org/show_bug.cgi?id=107137 .
107874
107875        No tests. No change in behavior.
107876
107877        * UseV8.cmake:
107878        * WebCore.gypi:
107879        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed.
107880        * inspector/ScriptProfileNode.idl:
107881
1078822013-01-18  Ali Juma  <ajuma@chromium.org>
107883
107884        [chromium] Convert WebTransformOperations into pure virtual
107885        https://bugs.webkit.org/show_bug.cgi?id=105553
107886
107887        Reviewed by James Robinson.
107888
107889        This removes the implementation of WebTransformOperations and updates
107890        users to construct instances using a factory function. This also adds
107891        the implementation of WebTransformKeyFrame.
107892
107893        No new tests, no change in functionality.
107894
107895        * WebCore.gypi:
107896        * platform/chromium/support/WebTransformKeyframe.cpp: Copied from Source/Platform/chromium/public/WebTransformKeyframe.h.
107897        (WebKit):
107898        (WebKit::WebTransformKeyframe::WebTransformKeyframe):
107899        (WebKit::WebTransformKeyframe::~WebTransformKeyframe):
107900        (WebKit::WebTransformKeyframe::time):
107901        (WebKit::WebTransformKeyframe::value):
107902        * platform/chromium/support/WebTransformOperations.cpp: Removed.
107903        * platform/graphics/chromium/AnimationTranslationUtil.cpp:
107904        (WebCore::toWebTransformOperations):
107905        (WebCore::WebTransformAnimationCurve):
107906
1079072013-01-18  Arko Saha  <arko@motorola.com>
107908
107909        PropertyCollection test fails on JavaScriptCore
107910        https://bugs.webkit.org/show_bug.cgi?id=106997
107911
107912        Reviewed by Kentaro Hara.
107913
107914        Made changes in CodeGeneratorJS.pm so that it can use
107915        toJS(JSC::ExecState*, JSDOMGlobalObject*, PropertyNodeList*)
107916        to wrap the object and return PropertyNodeList instead of NodeList.
107917
107918        Test: fast/dom/MicroData/propertiescollection-crash.html
107919              fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
107920
107921        * bindings/scripts/CodeGeneratorJS.pm:
107922        (GenerateImplementation):
107923
1079242013-01-18  Dominic Mazzoni  <dmazzoni@google.com>
107925
107926        AX: Improve table-guessing heuristics
107927        https://bugs.webkit.org/show_bug.cgi?id=107042
107928
107929        Reviewed by Chris Fleizach.
107930
107931        Adds some more rules so that tables with cell borders, empty-cells,
107932        col, colgroup, or >= 20 rows are all considered data tables, not
107933        layout tables.
107934
107935        Test: accessibility/table-detection.html (modified)
107936
107937        * accessibility/AccessibilityTable.cpp:
107938        (WebCore::AccessibilityTable::isDataTable):
107939
1079402013-01-18  Terry Anderson  <tdanderson@chromium.org>
107941
107942        Scroll gestures should not create wheel events
107943        https://bugs.webkit.org/show_bug.cgi?id=103952
107944
107945        Reviewed by James Robinson.
107946
107947        Tests: fast/events/touch/gesture/touch-gesture-scroll-div-propagated.html
107948               fast/events/touch/gesture/touch-gesture-scroll-div-twice-propagated.html
107949               fast/events/touch/gesture/touch-gesture-scroll-iframe-editable.html
107950               fast/events/touch/gesture/touch-gesture-scroll-iframe-propagated.html
107951               fast/events/touch/gesture/touch-gesture-scroll-page-propagated.html
107952
107953        In EventHandler::handleGestureEvent(), scroll gestures should not be handled by synthesizing
107954        and dispatching wheel events; we should instead scroll the relevant layer directly.
107955
107956        Note that this patch should be landed together with the patch for
107957        https://bugs.webkit.org/show_bug.cgi?id=106589.
107958
107959        * page/EventHandler.cpp:
107960        (WebCore::EventHandler::EventHandler):
107961        (WebCore::EventHandler::clear):
107962        (WebCore::EventHandler::handleGestureEvent):
107963        (WebCore::EventHandler::passGestureEventToWidget):
107964        (WebCore::EventHandler::passGestureEventToWidgetIfPossible):
107965        (WebCore):
107966        (WebCore::closestScrollableNodeInDocumentIfPossibleOrSelfIfNotScrollable):
107967        (WebCore::EventHandler::handleGestureScrollBegin):
107968        (WebCore::EventHandler::handleGestureScrollUpdate):
107969        (WebCore::EventHandler::isScrollbarHandlingGestures):
107970        * page/EventHandler.h:
107971        (EventHandler):
107972        * rendering/RenderLayer.cpp:
107973        (WebCore::RenderLayer::scrollByRecursively):
107974        * rendering/RenderLayer.h:
107975
1079762013-01-18  Nate Chapin  <japhet@chromium.org>
107977
107978        Cannot abort multiple XHR POSTs made to same url
107979        https://bugs.webkit.org/show_bug.cgi?id=106937
107980
107981        Reviewed by Alexey Proskuryakov.
107982
107983        Test: http/tests/cache/cancel-multiple-post-xhrs.html
107984
107985        * loader/cache/CachedResource.cpp:
107986        (WebCore::CachedResource::removeClient): Call allClientsRemoved() regardless
107987            of whether this resource is inCache(). Otherwise, CachedRawResources will
107988            not have the opportunity to cancel as expected. However, don't cancel
107989            if the last client was removed because we're in the middle of switching
107990            the clients over to a successfully revalidated resource.
107991
1079922013-01-18  Dima Gorbik  <dgorbik@apple.com>
107993
107994        Implement ::cue() pseudo element property whitelist
107995        https://bugs.webkit.org/show_bug.cgi?id=105477
107996
107997        Reviewed by Antti Koivisto.
107998
107999        Only allowed by specs properties are applied to WebVTT nodes. We used whitelists before for the region
108000        style rule so this refactors the code a little bit to pass bitfields that contain the information on which 
108001        whitelists should be used.
108002
108003        Test: media/track/track-css-property-whitelist.html
108004
108005        * css/RuleSet.cpp: 
108006        (WebCore::RuleData::RuleData): set a region bit when creating a RuleData.
108007        (WebCore::RuleSet::addRule): set a cue bit when PseudoCue type is set for a selector.
108008        * css/RuleSet.h: add the new bitfield as an ivar and setters/getters to access it.
108009        (WebCore::RuleData::isInRegionRule):
108010        (WebCore::RuleData::whitelistType):
108011        (WebCore::RuleData::isInCueRule):
108012        (WebCore::RuleData::setIsInCueRule):
108013        * css/StyleResolver.cpp: refactor the code to pass a bitfield instead of single bits.
108014        (WebCore::StyleResolver::addMatchedProperties):
108015        (WebCore::StyleResolver::sortAndTransferMatchedRules):
108016        (WebCore::StyleResolver::applyProperties):
108017        (WebCore::StyleResolver::applyMatchedProperties):
108018        (WebCore::StyleResolver::isValidCueStyleProperty): 
108019        * css/StyleResolver.h:
108020
1080212013-01-18  Tony Chang  <tony@chromium.org>
108022
108023        Incorrect scrollable height during simplified layout
108024        https://bugs.webkit.org/show_bug.cgi?id=107193
108025
108026        Reviewed by Ojan Vafai.
108027
108028        Test: fast/overflow/height-during-simplified-layout.html
108029
108030        When computing overflow, we use the height of the block before it was clamped
108031        (i.e., before updateLogicalHeight() has been called).
108032
108033        During simplfied layout, we use the previous sizes rather than doing a full
108034        layout. We still compute overflow, but we were using the clamped height rather
108035        than the full height.
108036
108037        This caused us to incorrectly compute the overflow by the vertical padding.
108038        Since we were passing in the already clamped clientHeight to RenderBlock::computeOverflow,
108039        we would only include the overflow from our children sizes and not include the overflow
108040        from ourselves caused by padding + content.
108041
108042        * rendering/RenderBlock.cpp:
108043        (WebCore::RenderBlock::simplifiedLayout): Use the scrollable height rather than the
108044        already clamped height.
108045
1080462013-01-18  Joe Mason  <jmason@rim.com>
108047
108048        [BlackBerry] fix compile warnings in NetworkJob
108049        https://bugs.webkit.org/show_bug.cgi?id=107293
108050
108051        Reviewed by Yong Li.
108052
108053        Internal PR: 283096
108054
108055        * platform/network/blackberry/NetworkJob.cpp:
108056        (WebCore):
108057        (WebCore::isAppendableHeader):
108058
1080592013-01-18  Dominic Mazzoni  <dmazzoni@google.com>
108060
108061        REGRESSION (r132699): Crashes in WebCore::TextIterator::handleTextNodeFirstLetter
108062        https://bugs.webkit.org/show_bug.cgi?id=100688
108063
108064        Reviewed by Martin Robinson.
108065
108066        Prevent crashes when accessibilityObjectIsIgnored calls textUnderElement
108067        while a subtree is being destroyed.
108068
108069        Covered by existing tests.
108070
108071        * accessibility/atk/AccessibilityObjectAtk.cpp:
108072        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
108073
1080742013-01-18  Joe Mason  <jmason@rim.com>
108075
108076        [BlackBerry] Only clear credentials when purgeCredentials is called
108077        https://bugs.webkit.org/show_bug.cgi?id=107124
108078
108079        Reviewed by Yong Li.
108080
108081        Stop clearing credentials when sending out a request just in case they're wrong. That's stupid and
108082        has race conditions. Only clear them when we know they're wrong.
108083
108084        Internal PR: 231158
108085        Internal Reviewer: George Staikos
108086
108087        * platform/network/blackberry/NetworkJob.cpp:
108088        (WebCore::NetworkJob::sendRequestWithCredentials):
108089        (WebCore::NetworkJob::purgeCredentials):
108090
1080912013-01-18  Andrey Adaikin  <aandrey@chromium.org>
108092
108093        Web Inspector: [Canvas] UI: add a context selector to show screenshot of any canvas in the log
108094        https://bugs.webkit.org/show_bug.cgi?id=107274
108095
108096        Reviewed by Pavel Feldman.
108097
108098        Adding a canvas context selector to display in the replay image screenshot.
108099        Drive-by: Reuse common CSS class "status-bar-item" to remove a lot of CSS duplication.
108100
108101        * English.lproj/localizedStrings.js:
108102        * inspector/front-end/CanvasProfileView.js:
108103        (WebInspector.CanvasProfileView):
108104        (WebInspector.CanvasProfileView.prototype._createControlButton):
108105        (WebInspector.CanvasProfileView.prototype._onReplayContextChanged):
108106        (WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
108107        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
108108        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
108109        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
108110        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
108111        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
108112        (WebInspector.CanvasProfileView.prototype._requestReplayContextInfo.didReceiveResourceInfo):
108113        (WebInspector.CanvasProfileView.prototype._requestReplayContextInfo):
108114        * inspector/front-end/canvasProfiler.css:
108115        * inspector/front-end/inspector.css:
108116        (.status-bar button.status-bar-item img):
108117
1081182013-01-18  Andrey Adaikin  <aandrey@chromium.org>
108119
108120        Web Inspector: [Canvas] add getResourceInfo and getResourceState methods to the protocol
108121        https://bugs.webkit.org/show_bug.cgi?id=107280
108122
108123        Reviewed by Pavel Feldman.
108124
108125        We need to expose replayable resource info and replay state via the protocol.
108126        The ResourceInfo describes a replayable resource, i.e. the info about a resource that was stored to replay it later.
108127        The ResourceState describes a current state of a resource being replayed on the back-end.
108128
108129        * inspector/CodeGeneratorInspector.py:
108130        * inspector/InjectedScriptCanvasModule.cpp:
108131        (WebCore::InjectedScriptCanvasModule::replayTraceLog):
108132        (WebCore):
108133        (WebCore::InjectedScriptCanvasModule::resourceInfo):
108134        (WebCore::InjectedScriptCanvasModule::resourceState):
108135        * inspector/InjectedScriptCanvasModule.h:
108136        (InjectedScriptCanvasModule):
108137        * inspector/InjectedScriptCanvasModuleSource.js:
108138        (.):
108139        * inspector/Inspector.json:
108140        * inspector/InspectorCanvasAgent.cpp:
108141        (WebCore::InspectorCanvasAgent::replayTraceLog):
108142        (WebCore):
108143        (WebCore::InspectorCanvasAgent::getResourceInfo):
108144        (WebCore::InspectorCanvasAgent::getResourceState):
108145        * inspector/InspectorCanvasAgent.h:
108146        (InspectorCanvasAgent):
108147        * inspector/front-end/CanvasProfileView.js:
108148        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
108149        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
108150
1081512013-01-18  Sergio Villar Senin  <svillar@igalia.com>
108152
108153        [Soup] Frequent crashes on redirections
108154        https://bugs.webkit.org/show_bug.cgi?id=107240
108155
108156        Reviewed by Martin Robinson.
108157
108158        We must ensure that the ResourceHandle has not being cancelled
108159        before performing a redirect. This could happen while we close the
108160        stream used to read the redirect response because it is done
108161        asynchronously.
108162
108163        * platform/network/soup/ResourceHandleSoup.cpp:
108164        (WebCore::redirectCloseCallback): also renamed res to result.
108165
1081662013-01-18  Andrey Adaikin  <aandrey@chromium.org>
108167
108168        Web Inspector: array grouping does not work big sparse arrays
108169        https://bugs.webkit.org/show_bug.cgi?id=106897
108170
108171        Reviewed by Pavel Feldman.
108172
108173        Now we will choose between array index iteration and object properties iteration for sparse arrays.
108174
108175        * inspector/front-end/ObjectPropertiesSection.js:
108176        (.doLoop):
108177        (.countIterationCallback):
108178        (.loopIterationCallback):
108179
1081802013-01-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
108181
108182        [EFL][WebGL] Fix Memory leaks in EGL and GLX surface.
108183        https://bugs.webkit.org/show_bug.cgi?id=107100
108184
108185        Reviewed by Laszlo Gombos.
108186
108187        GLX and EGL surface don't release GL resources created by them.
108188        This patch ensures that the leaks are fixed and
108189        native display is not closed before releasing the current
108190        context and surface.
108191
108192        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
108193        (GraphicsContext3DPrivate::releaseResources):
108194        * platform/graphics/surfaces/egl/EGLSurface.cpp:
108195        (WebCore::EGLWindowTransportSurface::destroy): Call base class to free any allocated GL resources.
108196        * platform/graphics/surfaces/glx/GLXContext.cpp:
108197        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
108198        (WebCore::GLXOffScreenContext::freeResources): Don't reset the display to null.
108199        * platform/graphics/surfaces/glx/GLXSurface.cpp:
108200        (WebCore::GLXTransportSurface::destroy): Call base class to free any allocated GL resources.
108201        (WebCore::GLXPBuffer::freeResources): Call base class to free any allocated GL resources.
108202
1082032013-01-18  Andrey Adaikin  <aandrey@chromium.org>
108204
108205        Web Inspector: [Canvas] introduce Resource.toDataURL
108206        https://bugs.webkit.org/show_bug.cgi?id=107019
108207
108208        Reviewed by Pavel Feldman.
108209
108210        Resource.toDataURL will return string data url representation of a resource, if applicable.
108211        For example, for a rendering context resource (2D or WebGL) it will return canvas.toDataURL().
108212
108213        * inspector/InjectedScriptCanvasModuleSource.js:
108214        (.):
108215
1082162013-01-18  Csaba Osztrogonác  <ossy@webkit.org>
108217
108218        One more unreviewed Windows buildfix after r140097.
108219
108220        * html/HTMLPlugInElement.h: Remove non-existent include.
108221
1082222013-01-18  Csaba Osztrogonác  <ossy@webkit.org>
108223
108224        Unreviewed Windows buildfix after r140097.
108225
108226        * html/HTMLPlugInElement.h:
108227
1082282013-01-18  Yury Semikhatsky  <yurys@chromium.org>
108229
108230        Web Inspector: remove dead code from heap profiler front-end
108231        https://bugs.webkit.org/show_bug.cgi?id=107265
108232
108233        Reviewed by Pavel Feldman.
108234
108235        * inspector/front-end/HeapSnapshotView.js: removed unused methods.
108236
1082372013-01-18  Yury Semikhatsky  <yurys@chromium.org>
108238
108239        Unreviewed. Fix Qt minimal compilation after r140127
108240
108241        * inspector/InspectorInstrumentation.h:
108242        (InspectorInstrumentationCookie):
108243
1082442013-01-18  Yury Semikhatsky  <yurys@chromium.org>
108245
108246        Web Inspector: make sure InspectorInstrumentationCookie is invalidated if inspected page was destroyed
108247        https://bugs.webkit.org/show_bug.cgi?id=107232
108248
108249        Reviewed by Pavel Feldman.
108250
108251        Made InstrumentingAgents reference counted to make sure it is not deleted while there is
108252        InspectorInstrumentationCookie with reference to it.
108253
108254        Introduced InstrumentingAgents::reset that is called from inspector controller destructor
108255        to double check that references to all deleted agents are cleared.
108256
108257        InspectorInstrumentationCookie turned from std::pair into a custom class so that
108258        we can avoid inclusion of InstrumentingAgents.h into InspectorInstrumentation.h
108259
108260        * inspector/InspectorController.cpp:
108261        (WebCore::InspectorController::InspectorController):
108262        (WebCore::InspectorController::~InspectorController):
108263        * inspector/InspectorController.h:
108264        (InspectorController):
108265        * inspector/InspectorInstrumentation.cpp:
108266        (WebCore):
108267        (WebCore::InspectorInstrumentationCookie::InspectorInstrumentationCookie):
108268        (WebCore::InspectorInstrumentationCookie::operator=):
108269        (WebCore::InspectorInstrumentationCookie::~InspectorInstrumentationCookie):
108270        (WebCore::InspectorInstrumentation::didHandleEventImpl):
108271        (WebCore::InspectorInstrumentation::didFireTimerImpl):
108272        (WebCore::InspectorInstrumentation::didLayoutImpl):
108273        (WebCore::InspectorInstrumentation::didPaintImpl):
108274        (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
108275        (WebCore::InspectorInstrumentation::didMatchRuleImpl):
108276        (WebCore::InspectorInstrumentation::didProcessRuleImpl):
108277        (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
108278        (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
108279        * inspector/InspectorInstrumentation.h:
108280        (InspectorInstrumentationCookie):
108281        (WebCore::InspectorInstrumentation::didCallFunction):
108282        (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
108283        (WebCore::InspectorInstrumentation::didDispatchEvent):
108284        (WebCore::InspectorInstrumentation::didHandleEvent):
108285        (WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
108286        (WebCore::InspectorInstrumentation::didEvaluateScript):
108287        (WebCore::InspectorInstrumentation::didFireTimer):
108288        (WebCore::InspectorInstrumentation::didLayout):
108289        (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
108290        (WebCore::InspectorInstrumentation::didPaint):
108291        (WebCore::InspectorInstrumentation::didRecalculateStyle):
108292        (WebCore::InspectorInstrumentation::didMatchRule):
108293        (WebCore::InspectorInstrumentation::didProcessRule):
108294        (WebCore::InspectorInstrumentation::didReceiveResourceData):
108295        (WebCore::InspectorInstrumentation::didWriteHTML):
108296        (WebCore::InspectorInstrumentation::didFireAnimationFrame):
108297        * inspector/InstrumentingAgents.cpp:
108298        (WebCore::InstrumentingAgents::InstrumentingAgents):
108299        (WebCore):
108300        (WebCore::InstrumentingAgents::reset):
108301        * inspector/InstrumentingAgents.h:
108302        (WebCore::InstrumentingAgents::create):
108303        (InstrumentingAgents):
108304        * inspector/WorkerInspectorController.cpp:
108305        (WebCore::WorkerInspectorController::WorkerInspectorController):
108306        (WebCore::WorkerInspectorController::~WorkerInspectorController):
108307        * inspector/WorkerInspectorController.h:
108308        (WorkerInspectorController):
108309
1083102013-01-18  Jussi Kukkonen  <jussi.kukkonen@intel.com>
108311
108312        [CMake] Fix indexeddb module build
108313        https://bugs.webkit.org/show_bug.cgi?id=107247
108314
108315        Reviewed by Kentaro Hara.
108316
108317        Add missing files to WebCore_SOURCES so the indexeddb module
108318        can be built.
108319
108320        * CMakeLists.txt:
108321
1083222013-01-17  Vsevolod Vlasov  <vsevik@chromium.org>
108323
108324        Web Inspector: Add early version of file system mappings editor to settings.
108325        https://bugs.webkit.org/show_bug.cgi?id=107136
108326
108327        Reviewed by Pavel Feldman.
108328
108329        FileMapping simplified to use only one type of entries.
108330        Added start/stopBatchUpdates to FileSystemWorkspaceProvider for better TabbedPane performance.
108331        Added fileSystemProject experiment for file system support and (early and ugly) file system mappings editor behind this experiment.
108332
108333        * English.lproj/localizedStrings.js:
108334        * WebCore.gypi:
108335        * inspector/front-end/FileMapping.js:
108336        (WebInspector.FileMapping):
108337        (WebInspector.FileMapping.prototype._entryMatchesURL):
108338        (WebInspector.FileMapping.prototype._entryURIPrefix):
108339        (WebInspector.FileMapping.prototype.hasMappingForURL):
108340        (WebInspector.FileMapping.prototype._innerURIForURL):
108341        (WebInspector.FileMapping.prototype.uriForURL):
108342        (WebInspector.FileMapping.prototype.urlForURI):
108343        (WebInspector.FileMapping.prototype.mappingEntries):
108344        (WebInspector.FileMapping.prototype.setMappingEntries):
108345        (WebInspector.FileMapping.prototype.set _loadFromSettings.get this):
108346        (WebInspector.FileMapping.prototype.set _loadFromSettings):
108347        (WebInspector.FileMapping.Entry):
108348        * inspector/front-end/FileSystemWorkspaceProvider.js:
108349        (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
108350        * inspector/front-end/IsolatedFileSystemModel.js:
108351        (WebInspector.IsolatedFileSystemModel.prototype._fileSystemAdded):
108352        * inspector/front-end/Settings.js:
108353        (WebInspector.ExperimentsSettings):
108354        * inspector/front-end/SettingsScreen.js:
108355        (WebInspector.WorkspaceSettingsTab):
108356        (WebInspector.WorkspaceSettingsTab.prototype._createFileSystemsEditor):
108357        (WebInspector.WorkspaceSettingsTab.prototype._createShowTextInput):
108358        (WebInspector.WorkspaceSettingsTab.prototype._createEditTextInput):
108359        (WebInspector.WorkspaceSettingsTab.prototype._createRemoveButton):
108360        (WebInspector.WorkspaceSettingsTab.prototype._createAddButton):
108361        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.removeFileSystemClicked):
108362        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow.fileSystemRemoved):
108363        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemRow):
108364        (WebInspector.WorkspaceSettingsTab.prototype._addFileSystemClicked):
108365        (WebInspector.WorkspaceSettingsTab.prototype._fileSystemAdded):
108366        (WebInspector.WorkspaceSettingsTab.prototype._createFileMappingEditor):
108367        (WebInspector.WorkspaceSettingsTab.prototype._addMappingRow.removeMappingClicked):
108368        (WebInspector.WorkspaceSettingsTab.prototype._addMappingRow):
108369        (WebInspector.WorkspaceSettingsTab.prototype._addFileMappingClicked):
108370        * inspector/front-end/helpScreen.css:
108371        (.settings-tab .file-systems-editor input.file-system-path):
108372        (.settings-tab .file-mappings-editor .workspace-settings-row input):
108373        (.settings-tab .file-mappings-editor .workspace-settings-row input.file-mapping-url):
108374        (#workspace-tab-content .button:hover):
108375        (#workspace-tab-content .workspace-settings-row:hover .button):
108376        (#workspace-tab-content .workspace-settings-row .button):
108377        (#workspace-tab-content .workspace-settings-row .remove-button):
108378        (#workspace-tab-content .workspace-settings-row .add-button):
108379        (#workspace-tab-content .workspace-settings-row .file-system-add-button):
108380        (#workspace-tab-content .workspace-settings-row .file-system-add-button:hover):
108381        * inspector/front-end/addIcon.png: Added.
108382
1083832013-01-18  Eugene Klyuchnikov  <eustas.bug@gmail.com>
108384
108385        Web Inspector: Timeline: nest time/timeEnd records when possible (in glue-mode)
108386        https://bugs.webkit.org/show_bug.cgi?id=100114
108387
108388        Reviewed by Pavel Feldman.
108389
108390        Nesting time/timeEnd intervals will provide a better overview on
108391        what is happening.
108392
108393        * inspector/front-end/TimelinePresentationModel.js: Added logic that
108394        reparents "time" record when "timeEnd" arrives.
108395
1083962013-01-18  Pavel Feldman  <pfeldman@chromium.org>
108397
108398        Web Inspector: do not use localeCompare unless necessary
108399        https://bugs.webkit.org/show_bug.cgi?id=107242
108400
108401        Reviewed by Vsevolod Vlasov.
108402
108403        Saving on performance here.
108404
108405        * inspector/front-end/CSSSelectorProfileView.js:
108406        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.selectorComparator):
108407        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.sourceComparator):
108408        * inspector/front-end/CookiesTable.js:
108409        (WebInspector.CookiesTable.prototype._sortCookies.compareTo):
108410        (WebInspector.CookiesTable.prototype._sortCookies):
108411        * inspector/front-end/DirectoryContentView.js:
108412        (.nameCompare):
108413        (.typeCompare):
108414        * inspector/front-end/FileSystemModel.js:
108415        (WebInspector.FileSystemModel.Entry.compare):
108416        * inspector/front-end/FileSystemView.js:
108417        (WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
108418        * inspector/front-end/FilteredItemSelectionDialog.js:
108419        (WebInspector.OpenResourceDialog.compareFunction):
108420        (WebInspector.OpenResourceDialog):
108421        * inspector/front-end/NetworkRequest.js:
108422        * inspector/front-end/ScriptsSearchScope.js:
108423        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes.comparator):
108424        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
108425        * inspector/front-end/StylesSidebarPane.js:
108426        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
108427        * inspector/front-end/utilities.js:
108428
1084292013-01-18  Andrey Lushnikov  <lushnikov@chromium.org>
108430
108431        Web Inspector: fix Closure r2388 warnings
108432        https://bugs.webkit.org/show_bug.cgi?id=107252
108433
108434        Reviewed by Pavel Feldman.
108435
108436        Surround all casts with brackets to avoid Closure warnings.
108437
108438        No new tests: no change in behaviour.
108439
108440        * inspector/front-end/BottomUpProfileDataGridTree.js:
108441        (WebInspector.BottomUpProfileDataGridTree):
108442        * inspector/front-end/BreakpointManager.js:
108443        (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
108444        (WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
108445        (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
108446        * inspector/front-end/DOMAgent.js:
108447        (WebInspector.DOMAgent.prototype.pushNodeToFrontend):
108448        (WebInspector.DOMAgent.prototype.pushNodeByPathToFrontend):
108449        (WebInspector.DOMAgent.prototype.querySelector):
108450        (WebInspector.DOMAgent.prototype.querySelectorAll):
108451        * inspector/front-end/DefaultScriptMapping.js:
108452        (WebInspector.DefaultScriptMapping.prototype._scriptEdited):
108453        * inspector/front-end/ScriptSnippetModel.js:
108454        (WebInspector.SnippetScriptMapping.prototype.rawLocationToUILocation):
108455        * inspector/front-end/TopDownProfileDataGridTree.js:
108456        (WebInspector.TopDownProfileDataGridTree):
108457        (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
108458
1084592013-01-18  Takashi Sakamoto  <tasak@google.com>
108460
108461        Implement CSSHostRule for @host @-rules.
108462        https://bugs.webkit.org/show_bug.cgi?id=102344
108463
108464        Reviewed by Dimitri Glazkov.
108465
108466        CSSHostRule is defined in Shadow DOM spec:
108467        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
108468        To see or to modify @host @-rules by using inspector, we need to
108469        implement CSSHostRule interface.
108470
108471        Test: fast/dom/shadow/css-hostrule-api.html
108472
108473        * DerivedSources.cpp:
108474        Modified to include JSCSSHostRule.cpp.
108475        * CMakeLists.txt:
108476        * DerivedSources.make:
108477        * DerivedSources.pri:
108478        * GNUmakefile.list.am:
108479        * Target.pri:
108480        * WebCore.gypi:
108481        * WebCore.vcproj/WebCore.vcproj:
108482        * WebCore.xcodeproj/project.pbxproj:
108483        Added CSSHostRule.cpp, CSSHostRule.h, and CSSHostRule.idl.
108484        * bindings/js/JSCSSRuleCustom.cpp:
108485        (WebCore::toJS):
108486        Add a new case that the given rule is @host @-rules to support @host
108487        @-rules.
108488        * bindings/objc/DOMCSS.mm:
108489        (kitClass):
108490        Add a new case that the given rule is @host @-rules to support @host
108491        @-rules.
108492        * bindings/v8/custom/V8CSSRuleCustom.cpp:
108493        (WebCore::wrap):
108494        * css/CSSAllInOne.cpp:
108495        * css/CSSHostRule.cpp: Added.
108496        (WebCore):
108497        (WebCore::CSSHostRule::CSSHostRule):
108498        (WebCore::CSSHostRule::cssText):
108499        * css/CSSHostRule.h: Added.
108500        (WebCore):
108501        (CSSHostRule):
108502        (WebCore::CSSHostRule::create):
108503        Implemented class CSSHostRule which inherits CSSGroupingRule.
108504        Since CSSHostRule has the same interface as CSSGroupingRule, it is
108505        required to implement its constructor and to override only type
108506        method and cssText method.
108507        * css/CSSHostRule.idl: Added.
108508        * css/CSSRule.h:
108509        * css/CSSRule.idl:
108510        Added internal HOST_RULE type number.
108511        * css/StyleResolver.cpp:
108512        (WebCore::collectCSSOMWrappers):
108513        * css/StyleRule.cpp:
108514        (WebCore::StyleRuleBase::reportMemoryUsage):
108515        (WebCore::StyleRuleBase::destroy):
108516        (WebCore::StyleRuleBase::copy):
108517        (WebCore::StyleRuleBase::createCSSOMWrapper):
108518        Modified to handle StyleRuleHost.
108519        * css/StyleRule.h:
108520        (WebCore::StyleRuleBase::isHostRule):
108521        (WebCore::StyleRuleHost::StyleRuleHost):
108522        * css/StyleSheetContents.cpp:
108523        (WebCore::childRulesHaveFailedOrCanceledSubresources):
108524        * page/DOMWindow.idl:
108525        Added CSSHostRule constructor.
108526
1085272013-01-18  John J. Barton  <johnjbarton@chromium.org>
108528
108529        Web Inspector: inspectedWindow.eval("IamUndefined.prop", callback) fails to give exception text
108530        https://bugs.webkit.org/show_bug.cgi?id=106926
108531
108532        Reviewed by Pavel Feldman.
108533
108534        Return .description from exceptions rather than .value (which is undefined)
108535
108536        New test added to extensions/extensions-eval.html
108537
108538        * inspector/front-end/ExtensionServer.js:
108539        (WebInspector.ExtensionServer.prototype.):
108540        (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
108541
1085422013-01-14  Dominik Röttsches  <dominik.rottsches@intel.com>
108543
108544        [EFL] Update freetype in jhbuild to 2.4.11 and activate subpixel layout
108545        https://bugs.webkit.org/show_bug.cgi?id=106774
108546
108547        In order to fix a long standing linespacing/font ascent & descent issue
108548        we found that FreeType commit b0962ac34e660 solves that problem.
108549        Let's update FreeType accordingly, but bump it to 2.4.11 due to the
108550        maintainer recommending several security updates after that said commit.
108551
108552        Also, in order to avoid extra rebaselining, let's activate subpixel
108553        layout at the same time. With subpixel layout I propose to remove
108554        rounding of the linespacing value in order to not introduce rounding
108555        inaccuracies at the SimpleFontData level. Other platforms don't do that
108556        anymore, furthermore the linegap value is not rounded either.
108557
108558        Reviewed by Martin Robinson.
108559
108560        No new tests, affects a large number of tests that will require rebaselining.
108561
108562        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
108563        (WebCore::SimpleFontData::platformInit): Remove rounding when setting linespacing.
108564
1085652013-01-18  Vivek Galatage  <vivek.vg@samsung.com>
108566
108567        Web Inspector: Search shortcut clears the current search box contents
108568        https://bugs.webkit.org/show_bug.cgi?id=107109
108569
108570        Reviewed by Pavel Feldman.
108571
108572        The search box contents should be changed only when the current focus element is
108573        different than the _searchInputElement.
108574
108575        * inspector/front-end/SearchController.js:
108576        (WebInspector.SearchController.prototype.showSearchField):
108577
1085782013-01-18  Eugene Klyuchnikov  <eustas@chromium.org>
108579
108580        Web Inspector: [Network] Fix JSDocs and deduplicate code.
108581        https://bugs.webkit.org/show_bug.cgi?id=107116
108582
108583        Reviewed by Pavel Feldman.
108584
108585        Add / fix JSDocs to see possible type mismatches.
108586        Deduplicate code for styling network log items.
108587
108588        * inspector/front-end/NetworkPanel.js: Fix JSDocs.
108589        (WebInspector.NetworkDataGridNode.prototype._updateElementStyleClasses):
108590        Extract common code.
108591        * inspector/front-end/NetworkRequest.js: Fix JSDocs.
108592
1085932013-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>
108594
108595        Unreviewed, rolling out r140005.
108596        http://trac.webkit.org/changeset/140005
108597        https://bugs.webkit.org/show_bug.cgi?id=107235
108598
108599        broke downstream Chromium interactive_ui_tests (Requested by
108600        dominicc on #webkit).
108601
108602        * WebCore.exp.in:
108603        * dom/Document.cpp:
108604        * dom/Document.h:
108605        (WebCore::Document::documentElement):
108606        * loader/FrameLoader.cpp:
108607        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
108608        * loader/MainResourceLoader.cpp:
108609        (WebCore::MainResourceLoader::MainResourceLoader):
108610        (WebCore::MainResourceLoader::receivedError):
108611        (WebCore::MainResourceLoader::willSendRequest):
108612        (WebCore::MainResourceLoader::responseReceived):
108613        (WebCore::MainResourceLoader::didFinishLoading):
108614        (WebCore::MainResourceLoader::load):
108615        (WebCore::MainResourceLoader::identifier):
108616        * loader/MainResourceLoader.h:
108617        (MainResourceLoader):
108618        * loader/cache/CachedRawResource.cpp:
108619        (WebCore::CachedRawResource::didAddClient):
108620        (WebCore::CachedRawResource::willSendRequest):
108621        (WebCore::CachedRawResource::canReuse):
108622        * loader/cache/CachedRawResource.h:
108623        (CachedRawResource):
108624        * loader/cache/CachedResource.cpp:
108625        (WebCore::CachedResource::addClientToSet):
108626        * loader/cache/CachedResource.h:
108627        (CachedResource):
108628        * loader/cache/CachedResourceLoader.cpp:
108629        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
108630        * testing/Internals.cpp:
108631        * testing/Internals.h:
108632        (Internals):
108633        * testing/Internals.idl:
108634
1086352013-01-18  Yoshifumi Inoue  <yosin@chromium.org>
108636
108637        REGRESSION(r137726): Spring Loaded Pan Scrolling doesn't stop
108638        https://bugs.webkit.org/show_bug.cgi?id=107205
108639
108640        Reviewed by Hajime Morita.
108641
108642        The bug is caused by forgetting to set true m_panScrollButtonPressed
108643        in AutoscrollController::startPanScroll().
108644
108645        This patch changes state management during pan scroll by replacing
108646        m_panScrollButtonPressed and m_springLoadedPanScrollInProgress by
108647        m_autoscrollType with introducing new AutoscrollController state
108648        AutoscrollForPanCanStop.
108649
108650        Tests: platform/chromium-win/fast/events/panScroll-click.html
108651               platform/chromium-win/fast/events/panScroll-drag.html
108652
108653        * page/AutoscrollController.cpp:
108654        (WebCore::AutoscrollController::AutoscrollController): Changed to remove initialization of m_panScrollButtonPressed and m_springLoadedPanScrollInProgress.
108655        (WebCore::AutoscrollController::stopAutoscrollTimer): Changed to remove resetting m_panScrollButtonPressed and m_springLoadedPanScrollInProgress.
108656        (WebCore::AutoscrollController::handleMouseReleaseEvent): Changed to handle AutoscrollForPan and AutoscrollForPanCanStop.
108657        (WebCore::AutoscrollController::panScrollInProgress): Changed to check AutoscrollForPanCanStop too.
108658        (WebCore::AutoscrollController::startPanScrolling): Changed to remove setting of m_springLoadedPanScrollInProgress.
108659        (WebCore::AutoscrollController::autoscrollTimerFired): Changed to add case for AutoscrollForPanCanStop.
108660        (WebCore::AutoscrollController::updatePanScrollState): Chagned to use AutoscrollForPan and AutoscrollForPanCanStop.
108661        * page/AutoscrollController.h:
108662        (AutoscrollController): Changed to add AutoscrollForPanCanStop to AutoscrollType.
108663
1086642013-01-17  Takashi Sakamoto  <tasak@google.com>
108665
108666        Heap-use-after-free in WebCore::LiveNodeListBase::invalidateCache
108667        https://bugs.webkit.org/show_bug.cgi?id=106958
108668
108669        Reviewed by Ryosuke Niwa.
108670
108671        Need to update node lists that nodes in shadow dom trees have
108672        when document is changed.
108673
108674        No new tests; it is difficult to reproduce crash by using
108675        DumpRenderTree. Manually tested by using attached repro.html.
108676
108677        * dom/NodeRareData.h:
108678        (WebCore::NodeListsNodeData::adoptTreeScope):
108679        Added to adopt node lists when tree scope is changed.
108680        (WebCore::NodeListsNodeData::adoptDocument):
108681        Renamed the original adoptTreeScope to adoptDocument.
108682        * dom/TreeScopeAdopter.cpp:
108683        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
108684        If document scope is not changed, modify to invoke adoptTreeScope.
108685        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
108686        Modify to invoked adoptDocument.
108687
1086882013-01-17  Sankeerth V S  <sankeerth.vs@samsung.com>
108689
108690        Search for a selected word should trigger _performSearch to populate
108691        search results
108692        https://bugs.webkit.org/show_bug.cgi?id=106423
108693
108694        Reviewed by Pavel Feldman.
108695
108696        No new tests as this is a UI related change.
108697
108698        * inspector/front-end/SearchController.js:
108699        (WebInspector.SearchController.prototype.showSearchField):
108700
1087012013-01-17  Rafael Weinstein  <rafaelw@chromium.org>
108702
108703        Ensure the parser adopts foster-parented children into the document of their parent.
108704        https://bugs.webkit.org/show_bug.cgi?id=107023
108705
108706        Reviewed by Adam Barth.
108707
108708        Tests: fast/parser/foster-parent-adopted.html
108709               fast/parser/foster-parent-adopted2.html
108710
108711        * html/parser/HTMLConstructionSite.cpp:
108712        (WebCore::HTMLConstructionSite::insertTextNode):
108713        (WebCore::HTMLConstructionSite::fosterParent):
108714
1087152013-01-17  Martin Robinson  <mrobinson@igalia.com>
108716
108717        2013-01-17  Martin Robinson  <mrobinson@igalia.com>
108718
108719        IndexedDB: Conditionalize usage of env_idb.h to fix build for non-Chromium ports
108720        https://bugs.webkit.org/show_bug.cgi?id=107182
108721
108722        No new tests. This is a build fix.
108723
108724        * platform/leveldb/LevelDBDatabase.cpp: Use the default environment for non-Chromium
108725        ports instead of the Chromium-specific one provided by env_idb.h.
108726
1087272013-01-17  Rik Cabanier  <cabanier@adobe.com>
108728
108729        Update GraphicsContext to support winding rule in clip operator for Chromium
108730        https://bugs.webkit.org/show_bug.cgi?id=106872
108731
108732        Reviewed by Dirk Schulze.
108733
108734        Added support for winding to clip() and canvasClip() functions.
108735
108736        No new tests, no change in behavior.
108737
108738        * platform/graphics/skia/GraphicsContextSkia.cpp:
108739        (WebCore::GraphicsContext::clip): Call clipPath() instead with winding rule.
108740        (WebCore::GraphicsContext::canvasClip): Honor the winding rule.
108741
1087422013-01-17  Shinya Kawanaka  <shinyak@chromium.org>
108743
108744        Revert r122824 for a while
108745        https://bugs.webkit.org/show_bug.cgi?id=97867
108746
108747        Reviewed by Hajime Morita.
108748
108749        In r122824, we have introduced ImageInnerElement for making an image element ShadowDOM-available.
108750        However, it turned out that making a replaced-element ShadowDOM-available has a lot of difficulty.
108751        So we would like to postpone it for a while.
108752
108753        Since that patch makes an image element really complicated, we would like to revert it.
108754
108755        * CMakeLists.txt:
108756        * GNUmakefile.list.am:
108757        * Target.pri:
108758        * WebCore.gypi:
108759        * WebCore.vcproj/WebCore.vcproj:
108760        * WebCore.xcodeproj/project.pbxproj:
108761        * css/html.css:
108762        * html/HTMLImageElement.cpp:
108763        (WebCore):
108764        (WebCore::HTMLImageElement::parseAttribute):
108765        (WebCore::HTMLImageElement::createRenderer):
108766        (WebCore::HTMLImageElement::attach):
108767        * html/HTMLImageElement.h:
108768        (WebCore):
108769        (HTMLImageElement):
108770        * html/HTMLImageLoader.cpp:
108771        (WebCore::HTMLImageLoader::HTMLImageLoader):
108772        (WebCore::HTMLImageLoader::dispatchLoadEvent):
108773        (WebCore::HTMLImageLoader::sourceURI):
108774        (WebCore::HTMLImageLoader::notifyFinished):
108775        * html/HTMLImageLoader.h:
108776        (HTMLImageLoader):
108777        * html/HTMLInputElement.h:
108778        * html/HTMLObjectElement.h:
108779        * html/HTMLPlugInElement.h:
108780        (WebCore):
108781        * html/HTMLPlugInImageElement.h:
108782        * html/HTMLTagNames.in:
108783        * html/HTMLVideoElement.h:
108784        * html/shadow/ImageInnerElement.cpp: Removed.
108785        * html/shadow/ImageInnerElement.h: Removed.
108786        * loader/ImageLoader.cpp:
108787        (WebCore::ImageLoader::ImageLoader):
108788        (WebCore::ImageLoader::~ImageLoader):
108789        (WebCore::ImageLoader::updateFromElement):
108790        (WebCore::ImageLoader::notifyFinished):
108791        (WebCore::ImageLoader::renderImageResource):
108792        (WebCore::ImageLoader::updatedHasPendingEvent):
108793        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
108794        (WebCore::ImageLoader::dispatchPendingLoadEvent):
108795        (WebCore::ImageLoader::dispatchPendingErrorEvent):
108796        * loader/ImageLoader.h:
108797        (WebCore):
108798        (ImageLoader):
108799        (WebCore::ImageLoader::element):
108800        * loader/ImageLoaderClient.h: Removed.
108801        * rendering/RenderImage.cpp:
108802        (WebCore::RenderImage::paintIntoRect):
108803        (WebCore::RenderImage::imageMap):
108804        (WebCore::RenderImage::updateAltText):
108805        * rendering/RenderImage.h:
108806        (WebCore):
108807        (RenderImage):
108808        * rendering/RenderObject.cpp:
108809        (WebCore::RenderObject::shouldRespectImageOrientation):
108810        * svg/SVGImageElement.h:
108811        (SVGImageElement):
108812        * svg/SVGImageLoader.cpp:
108813        (WebCore::SVGImageLoader::SVGImageLoader):
108814        (WebCore::SVGImageLoader::dispatchLoadEvent):
108815        (WebCore::SVGImageLoader::sourceURI):
108816        * svg/SVGImageLoader.h:
108817        (SVGImageLoader):
108818
1088192013-01-17  Joanmarie Diggs  <jdiggs@igalia.com>
108820
108821        REGRESSION (r139444): Crashes in three accessibility tests on GTK
108822        https://bugs.webkit.org/show_bug.cgi?id=106922
108823
108824        Reviewed by Chris Fleizach.
108825
108826        r139444 exposed an infinite loop that was just waiting to happen.
108827        Currently, getting the role value of an ARIA table row involves
108828        getting the parent table via parentObjectUnignored() which in turn
108829        can lead to the role value of the table row being checked. Moving
108830        the roleValue() logic to determineAccessibilityRole() avoids this.
108831
108832        This fix, however, introduced a regression when an accessible row
108833        was examined without having first examined the parent table for
108834        non-ARIA tables. Now that it is safe to call parentObjectUnignored(),
108835        the parentTable() method used for ARIA table rows can also be used
108836        by non-ARIA table rows.
108837
108838        No new tests; instead unskipped the three crashing tests.
108839
108840        * accessibility/AccessibilityTableRow.cpp:
108841        (WebCore::AccessibilityTableRow::determineAccessibilityRole):
108842        * accessibility/AccessibilityTableRow.h:
108843        (AccessibilityTableRow):
108844
1088452013-01-17  Rik Cabanier  <cabanier@adobe.com>
108846
108847        Update GraphicsContext to support winding rule in clip operator for QT
108848        https://bugs.webkit.org/show_bug.cgi?id=106873
108849
108850        Reviewed by Dirk Schulze.
108851
108852        Added support for winding to clip() and canvasClip() functions.
108853
108854        No new tests, no change in behavior.
108855
108856        * platform/graphics/qt/GraphicsContextQt.cpp:
108857        (WebCore::GraphicsContext::clip): Use passed in winding rule.
108858        (WebCore::GraphicsContext::canvasClip): Rename variable.
108859
1088602013-01-17  Rik Cabanier  <cabanier@adobe.com>
108861
108862        Update GraphicsContext to support winding rule in clip operator for Cairo
108863        https://bugs.webkit.org/show_bug.cgi?id=107065
108864
108865        Reviewed by Dirk Schulze.
108866
108867        Added support for winding to clip() and canvasClip() functions.
108868
108869        No new tests, no change in behavior.
108870
108871        * platform/graphics/cairo/GraphicsContextCairo.cpp:
108872        (WebCore::GraphicsContext::clip): Use passed in winding rule.
108873        (WebCore::GraphicsContext::canvasClip): Rename variable.
108874
1088752013-01-17  Elliott Sprehn  <esprehn@chromium.org>
108876
108877        Track subframe count to avoid traversing the tree when there's no subframes
108878        https://bugs.webkit.org/show_bug.cgi?id=101821
108879
108880        Reviewed by Ojan Vafai.
108881
108882        Make removeChild 9-14% faster by not walking the descendants looking for
108883        frames when there's known to be no frames.
108884
108885        This is a more generalized version of the fix in Bug 101619 that only
108886        avoided this walk when the whole document had no frames. This patch extends
108887        it to skip traversing subtrees that have no frames by tracking the number of
108888        frames in subtrees and then only walking those subtrees that are known to
108889        contain frames in removeChild.
108890
108891        Test: fast/frames/parser-append-subframe-count.html
108892
108893        * dom/ContainerNode.cpp:
108894        (WebCore::willRemoveChildren):
108895        (WebCore::parserAppendChild):
108896        (WebCore::parserRemoveChild):
108897        (WebCore::parserInsertBefore):
108898            The parser may move nodes without doing frame disconnection so we
108899            must maintain the connected subframe count manually during these
108900            mutations.
108901        * dom/ContainerNodeAlgorithms.cpp:
108902        (WebCore::ChildFrameDisconnector::collectFrameOwners):
108903        * dom/ContainerNodeAlgorithms.h:
108904        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
108905        (ChildFrameDisconnector):
108906        (WebCore::ChildFrameDisconnector::collectFrameOwners):
108907          Renamed from collectDescendant() to better reflect what it really does.
108908        (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
108909          Renamed from disconnect() to better reflect what it really does.
108910        (WebCore::ChildFrameDisconnector::disconnect):
108911          New method that does the collection of frame owners on either the root
108912          or only it's descendants.
108913        * dom/Node.cpp:
108914        (WebCore::Node::connectedSubframeCount):
108915        (WebCore::Node::incrementConnectedSubframeCount):
108916        (WebCore::Node::decrementConnectedSubframeCount):
108917        * dom/Node.h:
108918        * dom/NodeRareData.h:
108919        (WebCore::NodeRareData::NodeRareData):
108920        (WebCore::NodeRareData::connectedSubframeCount):
108921        (WebCore::NodeRareData::incrementConnectedSubframeCount):
108922        (WebCore::NodeRareData::decrementConnectedSubframeCount):
108923        * html/HTMLFrameOwnerElement.cpp:
108924        (WebCore::HTMLFrameOwnerElement::setContentFrame):
108925        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
108926
1089272013-01-17  Tim Horton  <timothy_horton@apple.com>
108928
108929        [WK2] Minimum layout width auto-sizing should use FrameView::enableAutoSizeMode so that it can shrink the viewport
108930        https://bugs.webkit.org/show_bug.cgi?id=107200
108931        <rdar://problem/12849029>
108932
108933        Reviewed by Simon Fraser.
108934
108935        * WebCore.exp.in: Export FrameView::enableAutoSize(...).
108936
1089372013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>
108938
108939        Unreviewed, rolling out r139402.
108940        http://trac.webkit.org/changeset/139402
108941        https://bugs.webkit.org/show_bug.cgi?id=107212
108942
108943        Perf regression on DOMDivWalk (Requested by falken_ on
108944        #webkit).
108945
108946        * dom/Element.cpp:
108947        (WebCore::Element::removedFrom):
108948        (WebCore::Element::setIsInTopLayer):
108949
1089502013-01-17  Adam Barth  <abarth@webkit.org>
108951
108952        BackgroundHTMLParser should go 18% faster on html-parser-srcdoc benchmark
108953        https://bugs.webkit.org/show_bug.cgi?id=107201
108954
108955        Reviewed by Tony Gentilcore.
108956
108957        Prior to this patch, we would tokenize all the input before delivering
108958        any tokens to the main thread. Effectively, that prevented the
108959        background parser from running in parallel with the main thread.
108960
108961        This patch causes us to send tokens to the main thread periodically.
108962        The constant in this patch is somewhat arbitrary. We'll need to tune it
108963        later with more realistic workloads.
108964
108965        This patch improves the performance of the html-parser-srcdoc benchmark
108966        by 18%. (This patch is based on Eric's work in
108967        https://github.com/tonygentilcore/webkit/commit/072331194520c7770b5e34baefbbbba948834971.)
108968
108969        * html/parser/BackgroundHTMLParser.cpp:
108970        (WebCore):
108971        (WebCore::BackgroundHTMLParser::pumpTokenizer):
108972        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
108973
1089742013-01-17  Matt Falkenhagen  <falken@chromium.org>
108975
108976        Top layer fails for inline elements
108977        https://bugs.webkit.org/show_bug.cgi?id=106538
108978
108979        Reviewed by Hajime Morita.
108980
108981        This patch makes position 'static' and 'relative' compute to
108982        'absolute' for elements in the top layer, as mandated by the
108983        Fullscreen spec.[1] By doing so, we also fix a crash that occurred in
108984        RenderLayer::rebuildZOrderLists when an inline element wrapped in an
108985        anonymous block was added to the top layer.
108986
108987        [1]: http://fullscreen.spec.whatwg.org/#new-stacking-layer
108988
108989        Tests: fast/dom/HTMLDialogElement/element-removed-from-top-layer-has-original-position.html
108990               fast/dom/HTMLDialogElement/top-layer-position-relative.html
108991               fast/dom/HTMLDialogElement/top-layer-position-static.html
108992
108993        * css/StyleResolver.cpp:
108994        (WebCore::StyleResolver::adjustRenderStyle): Set position 'absolute'
108995        for an element in the top layer. Typically, absolutely positioned
108996        elements also automatically get display 'block', but it seems we must do
108997        that manually here. We require display 'block' to ensure the renderer is not
108998        considered inline and consequently wrapped in an anonymous block.
108999        * rendering/RenderLayer.cpp:
109000        (WebCore::RenderLayer::rebuildZOrderLists): Check node() so we don't
109001        crash on, e.g., an anonymous block. We don't expect top layer
109002        renderers to have anonymous blocks anymore, but we nevertheless
109003        shouldn't crash if some other renderer is parented by RenderView.
109004
1090052013-01-17  Simon Fraser  <simon.fraser@apple.com>
109006
109007        Fix crash accessing RenderView's layer's backing when not composited
109008        https://bugs.webkit.org/show_bug.cgi?id=107203
109009
109010        Reviewed by Benjamin Poulain.
109011
109012        The RenderView isn't always layer-backed in WebKit1, so null-check the backing.
109013
109014        * rendering/RenderLayerCompositor.cpp:
109015        (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
109016
1090172013-01-16  Ryosuke Niwa  <rniwa@webkit.org>
109018
109019        Remove NodeListsNodeData when it's no longer needed
109020        https://bugs.webkit.org/show_bug.cgi?id=107074
109021
109022        Reviewed by Darin Adler.
109023
109024        Remove NodeListsNodeData when the last node list is removed from it.
109025
109026        If we detect that we have only one node list left in the data structure,
109027        we'll simply destroy the entire "this" object to free up the memory space.
109028
109029        This reduced the memory usage of the micro benchmark by roughly 3%.
109030
109031        Performance Tests: DOM/TraverseChildNodes.html
109032
109033        * dom/Node.cpp:
109034        (WebCore::Node::clearNodeLists): Added.
109035        * dom/Node.h:
109036        * dom/NodeRareData.h:
109037        (WebCore::NodeListsNodeData::removeChildNodeList):
109038        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
109039        (WebCore::NodeListsNodeData::removeCacheWithName):
109040        (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
109041        (WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList): Added.
109042        Removes "this" NodeListsNodeData if there is only one node list left.
109043
1090442013-01-17  Abhishek Arya  <inferno@chromium.org>
109045
109046        Heap-use-after-free in WebCore::RenderBlock::checkFloatsInCleanLine
109047        https://bugs.webkit.org/show_bug.cgi?id=90802
109048
109049        Reviewed by Julien Chaffraix.
109050
109051        Test: fast/multicol/float-not-removed-crash.html
109052
109053        * rendering/RenderBoxModelObject.cpp:
109054        (WebCore::RenderBoxModelObject::moveChildrenTo):
109055        1. When fullRemoveInsert is True, make sure to clear the
109056        floating objects from our list (similar to positioned objects).
109057        Our children are getting moved to another block and we won't
109058        get notified when they are going away.
109059        2. Remove the redundant hasPositionedObjects check since it
109060        is already done inside removePositionedObjects.
109061
1090622013-01-17  Simon Fraser  <simon.fraser@apple.com>
109063
109064        Make it possible for the root background to be painted into its own GraphicsLayer
109065        https://bugs.webkit.org/show_bug.cgi?id=107177
109066
109067        Reviewed by Dave Hyatt.
109068        
109069        Make it possible to paint the root background into its own GraphicsLayer, and enable
109070        this when the root background has background-images that are all background-attachment: fixed.
109071        
109072        This is a step towards optimizing scrolling on pages with fixed root backgrounds.        
109073
109074        Tests: platform/mac/tiled-drawing/fixed-background/fixed-body-background-body-layer.html
109075               platform/mac/tiled-drawing/fixed-background/fixed-body-background-opacity-html.html
109076               platform/mac/tiled-drawing/fixed-background/fixed-body-background-transformed-html.html
109077               platform/mac/tiled-drawing/fixed-background/fixed-body-background-zoomed.html
109078               platform/mac/tiled-drawing/fixed-background/fixed-body-background.html
109079               platform/mac/tiled-drawing/fixed-background/fixed-html-background.html
109080               platform/mac/tiled-drawing/fixed-background/fixed-non-propagated-body-background.html
109081
109082        * rendering/PaintInfo.h:
109083        (WebCore::PaintInfo::skipRootBackground): Utility function to check the paintBehavior flag.
109084        (WebCore::PaintInfo::paintRootBackgroundOnly): Ditto.
109085        * rendering/PaintPhase.h: New paint behavior flags to indicate that we should skip painting
109086        the root background, and only paint the root background.
109087        * rendering/RenderBlock.cpp:
109088        (WebCore::RenderBlock::paint): When we're only painting the root background, avoid painting column
109089        rules, and bail early.
109090        (WebCore::RenderBlock::paintObject): Don't paint children if we're just painting the root background.
109091        * rendering/RenderBox.cpp:
109092        (WebCore::RenderBox::styleWillChange): If this box can paint the root background, tell the compositor
109093        when the fixedness of those backgrounds changes.
109094        (WebCore::RenderBox::paintRootBoxFillLayers): If the paintBehavior flag is set to skip painting the root
109095        background, bail. This will be true for the non-background GraphicsLayers which are painting the root.
109096        * rendering/RenderLayer.cpp:
109097        (WebCore::RenderLayer::paintLayerContents): We can bail early if we're not a root-like renderer and the
109098        flag is set to paint the root background only. This avoids walking the whole layer tree when just painting
109099        into the root background GraphicsLayer.
109100        Migrate layer paint flags into PaintBehavior flags, and use them.
109101        * rendering/RenderLayer.h: Layer painting flags that replicate the paintBehavior flags.
109102        * rendering/RenderLayerBacking.cpp:
109103        (WebCore::RenderLayerBacking::RenderLayerBacking): Init the m_backgroundLayerPaintsFixedRootBackground bit.
109104        (WebCore::RenderLayerBacking::~RenderLayerBacking): Clear the background layer.
109105        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): No need to handle the transparent background
109106        stuff here. We'll do it later in updateRootLayerConfiguration().
109107        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Actually make a background layer now
109108        if the compositor says we should.
109109        Call updateRootLayerConfiguration() to adjust the background color and opaqueness of the background/primary layers.
109110        (WebCore::RenderLayerBacking::updateInternalHierarchy): Parent the m_backgroundLayer in the containment layer,
109111        not m_graphicsLayer (this is a bug fix).
109112        (WebCore::RenderLayerBacking::updateDrawsContent):
109113        (WebCore::RenderLayerBacking::setBackgroundLayerPaintsFixedRootBackground):
109114        (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
109115        (WebCore::RenderLayerBacking::updateBackgroundColor): This no longer needs to update the tile cache
109116        background color; updateRootLayerConfiguration() does this now.
109117        (WebCore::RenderLayerBacking::updateRootLayerConfiguration): Update the opaqueness and background color
109118        of the background and/or main graphics layers.
109119        (WebCore::RenderLayerBacking::setContentsNeedDisplay): Invalidate the background layer if we have one.
109120        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): Invalidate the background layer if we have one.
109121        This will be optimized to only repaint the background if it was the background that changed.
109122        (WebCore::RenderLayerBacking::paintIntoLayer): Take a GraphicsLayer, not a RenderLayer argument.
109123        Adjust the paintFlags if we're being asked to paint the background layer, or if we have one, but are painting the foreground.
109124        (WebCore::RenderLayerBacking::paintContents):
109125        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
109126        (WebCore::RenderLayerBacking::reportMemoryUsage):
109127        * rendering/RenderLayerBacking.h:
109128        (WebCore::RenderLayerBacking::backgroundLayer):
109129        (WebCore::RenderLayerBacking::backgroundLayerPaintsFixedRootBackground):
109130        (RenderLayerBacking):
109131        * rendering/RenderLayerCompositor.cpp:
109132        (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged): If we're told that the fixed-ness of
109133        the root background changed and we're using a TileCache, we need to re-evaluate compositing (this could be
109134        optimized to only update the root layer).
109135        (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer): For the root (RenderView's) layer,
109136        check whether the renderer that will paint the root (taking background propagation into account) has
109137        background images that are all fixed.
109138        (WebCore::RenderLayerCompositor::fixedRootBackgroundLayer): Accessor for the GraphicsLayer that paints
109139        the root background (will be used later).
109140        * rendering/RenderLayerCompositor.h:
109141        (RenderLayerCompositor):
109142        * rendering/RenderObject.cpp:
109143        (WebCore::RenderObject::hasEntirelyFixedBackground): Returns true there are background images
109144        and all are fixed.
109145        * rendering/RenderObject.h:
109146        * rendering/RenderView.cpp:
109147        (WebCore::RenderView::paintBoxDecorations): This function paints a solid color if we know that the root
109148        isn't going to fill the viewport; we want to avoid this painting if we're not painting the root background
109149        in this pass.
109150        * rendering/style/RenderStyle.cpp:
109151        (WebCore::allLayersAreFixed):
109152        (WebCore::RenderStyle::hasEntirelyFixedBackground): New helper function.
109153        * rendering/style/RenderStyle.h:
109154
1091552013-01-17  Rafael Weinstein  <rafaelw@chromium.org>
109156
109157        [Template] Avoid reading beyond the end of the buffer in preload scanner when check for </template>
109158        https://bugs.webkit.org/show_bug.cgi?id=107143
109159
109160        Reviewed by Adam Barth.
109161
109162        This patch corrects to use AtomicString constructor which takes an explicit size. Additionally, the logic
109163        for exiting early is slightly improved.
109164
109165        No new tests.
109166
109167        * html/parser/HTMLPreloadScanner.cpp:
109168        (WebCore::PreloadTask::PreloadTask):
109169        (WebCore::HTMLPreloadScanner::processToken):
109170
1091712013-01-17  Huang Dongsung  <luxtella@company100.net>
109172
109173        [TexMap] Match initializing members in GraphicsLayerTransform to initializing members in GraphicsLayer.
109174        https://bugs.webkit.org/show_bug.cgi?id=107090
109175
109176        Reviewed by Noam Rosenthal.
109177
109178        GraphicsLayer initializes m_anchorPoint to FloatPoint3D(0.5, 0.5, 0) and
109179        m_preserves3D to false, while GraphicsLayerTransform initializes m_anchorPoint
109180        to FloatPoint3D(0, 0, 0) and m_flattening (= !m_preserves3D) to false. It is a
109181        potential bug. This patch corrects initialization of GraphicsLayerTransform.
109182
109183        Covered by existing compositing pixel tests.
109184
109185        * platform/graphics/GraphicsLayerTransform.cpp:
109186        (WebCore::GraphicsLayerTransform::GraphicsLayerTransform):
109187
1091882013-01-17  Filip Pizlo  <fpizlo@apple.com>
109189
109190        ScriptDebugServer::didExecuteProgram should not try to pop stack if there is no stack to pop
109191        https://bugs.webkit.org/show_bug.cgi?id=107186
109192
109193        Reviewed by Geoffrey Garen.
109194
109195        No new tests, because I'm not sure how to test this. I can repro it on a gnarly web site,
109196        but I don't know how to create a reduced case that triggers it.
109197
109198        * bindings/js/ScriptDebugServer.cpp:
109199        (WebCore::ScriptDebugServer::didExecuteProgram):
109200
1092012013-01-17  Michael Pruett  <michael@68k.org>
109202
109203        [GTK] IndexedDB: Add LevelDB headers to include path if IndexedDB is enabled
109204        https://bugs.webkit.org/show_bug.cgi?id=107181
109205
109206        Reviewed by Martin Robinson.
109207
109208        No new tests as this is just a build change.
109209
109210        * GNUmakefile.am:
109211
1092122013-01-17  Eric Seidel  <eric@webkit.org>
109213
109214        The threaded html parser hangs when parsing empty documents (and about:blank)
109215        https://bugs.webkit.org/show_bug.cgi?id=107160
109216
109217        Reviewed by Tony Gentilcore.
109218
109219        This is covered by many existing tests including the html5lib suite.
109220
109221        * html/parser/HTMLDocumentParser.cpp:
109222        (WebCore::HTMLDocumentParser::finish):
109223
1092242013-01-17  Alexis Hetu  <sugoi@chromium.org>
109225
109226        imageSmoothingEnabled frequent, unpredictable crashes
109227        https://bugs.webkit.org/show_bug.cgi?id=107161
109228
109229        Reviewed by Stephen White.
109230
109231        Added a NULL pointer check to fix a crash.
109232
109233        Test: fast/canvas/canvas-imageSmoothingEnabled-zero-size.html
109234
109235        * html/canvas/CanvasRenderingContext2D.cpp:
109236        (WebCore::CanvasRenderingContext2D::setWebkitImageSmoothingEnabled):
109237
1092382013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>
109239
109240        Unreviewed, rolling out r140049.
109241        http://trac.webkit.org/changeset/140049
109242        https://bugs.webkit.org/show_bug.cgi?id=107187
109243
109244        Breaks lots of stuff (Requested by schenney on #webkit).
109245
109246        * svg/SVGViewSpec.cpp:
109247        (WebCore::SVGViewSpec::setPreserveAspectRatioString):
109248        (WebCore):
109249        (WebCore::SVGViewSpec::viewTarget):
109250        (WebCore::SVGViewSpec::transform):
109251        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper):
109252        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper):
109253        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper):
109254        * svg/SVGViewSpec.h:
109255        (SVGViewSpec):
109256        (WebCore::SVGViewSpec::viewBoxAnimated):
109257        (WebCore::SVGViewSpec::preserveAspectRatioAnimated):
109258        * svg/SVGViewSpec.idl:
109259
1092602013-01-17  Eric Seidel  <eric@webkit.org>
109261
109262        Threaded parser hangs when encountering an unmatched </script> tag
109263        https://bugs.webkit.org/show_bug.cgi?id=107170
109264
109265        Reviewed by Adam Barth.
109266
109267        The bug was that the BackgroundHTMLParser naively yields to the
109268        main thread every time it encounters a </script>
109269        (as we may have to run script on the main thread).  However, not every
109270        </script> results in script execution, so the main thread needs to know
109271        how to tell the BackgroundHTMLParser to continue in cases where no
109272        script execution is needed.
109273
109274        This whole infrastructure will be replaced when we let the BackgroundHTMLParser
109275        continue speculatively tokenizing after yielding.
109276
109277        * html/parser/BackgroundHTMLParser.cpp:
109278        (WebCore::TokenDelivery::TokenDelivery):
109279        (TokenDelivery):
109280        (WebCore::TokenDelivery::execute):
109281        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
109282        * html/parser/HTMLDocumentParser.cpp:
109283        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
109284        * html/parser/HTMLDocumentParser.h:
109285        (HTMLDocumentParser):
109286
1092872013-01-17  Eric Seidel  <eric@webkit.org>
109288
109289        Stop the background parser when canceling parsing to avoid crashing on many layout tests
109290        https://bugs.webkit.org/show_bug.cgi?id=107159
109291
109292        Reviewed by Adam Barth.
109293
109294        Covered by many existing tests.
109295
109296        * html/parser/HTMLDocumentParser.cpp:
109297        (WebCore::HTMLDocumentParser::stopParsing):
109298
1092992013-01-17  Stephen Chenney  <schenney@chromium.org>
109300
109301        SVGViewSpec fails when corresponding element has been removed
109302        https://bugs.webkit.org/show_bug.cgi?id=106957
109303
109304        Reviewed by Dirk Schulze.
109305
109306        When JS holds an SVGViewSpec object while deleting the object that
109307        defines the spec (an SVGSVGElement, or one of a few others) the
109308        pointer to the target is cleared in the SVGViewSpec but the methods
109309        that serve JS queries do not check and try to access the now null
109310        target. This atch fixes the prooblem, throwing JS exceptions where
109311        possible and returning null where necessary.
109312
109313        Test: svg/dom/SVGViewSpec-invalid-ref-crash.html
109314
109315        * svg/SVGViewSpec.cpp:
109316        (WebCore):
109317        (WebCore::SVGViewSpec::viewTarget): Check for null target and throw an exception.
109318        (WebCore::SVGViewSpec::transform): Check for null target and return
109319        null. It is not possible to throw an exception here because it leads
109320        to an invalid cast in the code generated from IDLs.
109321        (WebCore::SVGViewSpec::viewBoxAnimated): Check for null target and throw an exception.
109322        (WebCore::SVGViewSpec::preserveAspectRatioAnimated): Check for null target and throw an exception.
109323        (WebCore::SVGViewSpec::lookupOrCreateViewBoxWrapper): ASSERT non-null target
109324        (WebCore::SVGViewSpec::lookupOrCreatePreserveAspectRatioWrapper): ASSERT non-null target
109325        (WebCore::SVGViewSpec::lookupOrCreateTransformWrapper): ASSERT non-null target
109326        * svg/SVGViewSpec.h:
109327        (SVGViewSpec): Add Exception arguments to getter methods.
109328        * svg/SVGViewSpec.idl: Mark attributes as throwing exceptions.
109329
1093302013-01-17  Alec Flett  <alecflett@chromium.org>
109331
109332        IndexedDB: Remove unnecessary call to IDBDatabaseBackendInterface::metadata()
109333        https://bugs.webkit.org/show_bug.cgi?id=107142
109334
109335        Reviewed by Kentaro Hara.
109336
109337        This call isn't necessary, and probably slipped through an earlier review
109338        because of the mention of 'm_metadata'.
109339
109340        No new tests, as this code has no side effects and all tests sill pass.
109341
109342        * Modules/indexeddb/IDBIndex.cpp:
109343        (WebCore::IDBIndex::count):
109344
1093452013-01-17  Ojan Vafai  <ojan@chromium.org>
109346
109347        Table layout does not need to explicitly call computePreferredLogicalWidths
109348        https://bugs.webkit.org/show_bug.cgi?id=106931
109349
109350        Reviewed by Julien Chaffraix.
109351
109352        Code shouldn't need to explicitly call computePreferredLogicalWidths.
109353        It should only get called as a by-product of calling minPreferredLogicalWidth
109354        or maxPreferredLogicalWidth.
109355
109356        Instead, make it clear that the calling code is just trying to clear
109357        preferred width dirty bits.
109358
109359        * rendering/AutoTableLayout.cpp:
109360        (WebCore::AutoTableLayout::recalcColumn):
109361        The computePreferredLogicalWidths call on the table cell is redundant
109362        with the minPreferredLogicalWidth call on the next line.
109363
109364        * rendering/FixedTableLayout.cpp:
109365        (WebCore::FixedTableLayout::calcWidthArray):
109366        We only need to clear the dirty bit here. Table cells don't use
109367        their preferred widths in fixed table layout calculations.
109368
109369        * rendering/RenderTableCell.h:
109370        * rendering/RenderTableCol.cpp:
109371        (WebCore::RenderTableCol::clearPreferredLogicalWidthsDirtyBits):
109372        * rendering/RenderTableCol.h:
109373
1093742013-01-17  Julien Chaffraix  <jchaffraix@webkit.org>
109375
109376        [CSS Grid Layout] Updating -webkit-grid-rows or -webkit-grid-columns doesn't work as expected
109377        https://bugs.webkit.org/show_bug.cgi?id=107062
109378
109379        Reviewed by Tony Chang.
109380
109381        Tests: fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update.html
109382               fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update.html
109383
109384        This change makes -webkit-grid-rows and -webkit-grid-columns dynamic change properly
109385        relayout their children, thus making them work!
109386
109387        * rendering/RenderGrid.cpp:
109388        (WebCore::RenderGrid::layoutGridItems):
109389        Fixed the logic to force a grid item relayout if the grid area size changes. This is the
109390        safest approach as margins or paddings can also be a percent of the grid area's size.
109391
109392        * rendering/style/RenderStyle.cpp:
109393        (WebCore::RenderStyle::diff):
109394        Fixed a dumb mistake.
109395
1093962013-01-17  Timothy Hatcher  <timothy@apple.com>
109397
109398        Make logging console messages to STDOUT work in WebKit2 via a new setting.
109399
109400        https://bugs.webkit.org/show_bug.cgi?id=107157
109401
109402        Reviewed by Joseph Pecoraro.
109403
109404        * page/Console.cpp:
109405        (WebCore::Console::addMessage): Check logsPageMessagesToSystemConsoleEnabled(). 
109406        (WebCore::internalAddMessage): Ditto. Refactored to return early and drop printExceptions argument.
109407        (WebCore::Console::error): Removed call to shouldPrintExceptions().
109408        (WebCore::Console::log): Ditto.
109409        (WebCore::Console::warn): Ditto.
109410        (WebCore::Console::dir): Ditto.
109411        (WebCore::Console::dirxml): Ditto.
109412        (WebCore::Console::clear): Ditto.
109413        (WebCore::Console::trace): Ditto.
109414        (WebCore::Console::assertCondition): Ditto.
109415        * page/Settings.in: Added logsPageMessagesToSystemConsoleEnabled.
109416
1094172013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>
109418
109419        Unreviewed, rolling out r140023.
109420        http://trac.webkit.org/changeset/140023
109421        https://bugs.webkit.org/show_bug.cgi?id=107176
109422
109423        Broke some tests (Requested by anttik on #webkit).
109424
109425        * page/FrameView.cpp:
109426        (WebCore::FrameView::updateScrollCorner):
109427        * rendering/RenderBlock.cpp:
109428        (WebCore::RenderBlock::createReplacementRunIn):
109429        (WebCore::RenderBlock::updateFirstLetterStyle):
109430        (WebCore::RenderBlock::createFirstLetterRenderer):
109431        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
109432        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
109433        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
109434        * rendering/RenderBlock.h:
109435        (RenderBlock):
109436        * rendering/RenderDeprecatedFlexibleBox.cpp:
109437        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
109438        * rendering/RenderDeprecatedFlexibleBox.h:
109439        (RenderDeprecatedFlexibleBox):
109440        * rendering/RenderDetailsMarker.cpp:
109441        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
109442        * rendering/RenderDetailsMarker.h:
109443        (RenderDetailsMarker):
109444        * rendering/RenderDialog.h:
109445        (WebCore::RenderDialog::RenderDialog):
109446        * rendering/RenderFieldset.cpp:
109447        (WebCore::RenderFieldset::RenderFieldset):
109448        * rendering/RenderFieldset.h:
109449        (RenderFieldset):
109450        * rendering/RenderFlexibleBox.cpp:
109451        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
109452        * rendering/RenderFlexibleBox.h:
109453        (RenderFlexibleBox):
109454        * rendering/RenderFlowThread.cpp:
109455        (WebCore::RenderFlowThread::RenderFlowThread):
109456        * rendering/RenderFlowThread.h:
109457        * rendering/RenderFullScreen.cpp:
109458        (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
109459        (RenderFullScreen::RenderFullScreen):
109460        (RenderFullScreen::wrapRenderer):
109461        * rendering/RenderFullScreen.h:
109462        (RenderFullScreen):
109463        * rendering/RenderGrid.cpp:
109464        (WebCore::RenderGrid::RenderGrid):
109465        * rendering/RenderGrid.h:
109466        (RenderGrid):
109467        * rendering/RenderImage.cpp:
109468        (WebCore::RenderImage::RenderImage):
109469        * rendering/RenderImage.h:
109470        (RenderImage):
109471        * rendering/RenderInline.cpp:
109472        (WebCore::RenderInline::RenderInline):
109473        (WebCore::RenderInline::addChildIgnoringContinuation):
109474        * rendering/RenderInline.h:
109475        (RenderInline):
109476        * rendering/RenderLayer.cpp:
109477        (WebCore::RenderLayer::updateScrollCornerStyle):
109478        (WebCore::RenderLayer::updateResizerStyle):
109479        (WebCore::RenderLayer::createReflection):
109480        * rendering/RenderListItem.cpp:
109481        (WebCore::RenderListItem::RenderListItem):
109482        (WebCore::RenderListItem::styleDidChange):
109483        * rendering/RenderListItem.h:
109484        (RenderListItem):
109485        * rendering/RenderListMarker.cpp:
109486        (WebCore::RenderListMarker::RenderListMarker):
109487        * rendering/RenderListMarker.h:
109488        (RenderListMarker):
109489        * rendering/RenderMediaControlElements.cpp:
109490        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
109491        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
109492        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
109493        * rendering/RenderMediaControlElements.h:
109494        (RenderMediaVolumeSliderContainer):
109495        (RenderMediaControlTimeDisplay):
109496        (RenderTextTrackContainerElement):
109497        * rendering/RenderMultiColumnBlock.cpp:
109498        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
109499        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
109500        * rendering/RenderMultiColumnBlock.h:
109501        (RenderMultiColumnBlock):
109502        * rendering/RenderMultiColumnFlowThread.cpp:
109503        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
109504        * rendering/RenderMultiColumnFlowThread.h:
109505        (RenderMultiColumnFlowThread):
109506        * rendering/RenderMultiColumnSet.cpp:
109507        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
109508        * rendering/RenderMultiColumnSet.h:
109509        (RenderMultiColumnSet):
109510        * rendering/RenderNamedFlowThread.cpp:
109511        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
109512        * rendering/RenderNamedFlowThread.h:
109513        (RenderNamedFlowThread):
109514        * rendering/RenderObject.cpp:
109515        (WebCore::RenderObject::RenderObject):
109516        * rendering/RenderObject.h:
109517        (WebCore::RenderObject::setIsAnonymous):
109518        (RenderObject):
109519        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
109520        * rendering/RenderRegion.cpp:
109521        (WebCore::RenderRegion::RenderRegion):
109522        * rendering/RenderRegion.h:
109523        (RenderRegion):
109524        * rendering/RenderRegionSet.cpp:
109525        (WebCore::RenderRegionSet::RenderRegionSet):
109526        * rendering/RenderRegionSet.h:
109527        (RenderRegionSet):
109528        * rendering/RenderReplaced.cpp:
109529        (WebCore::RenderReplaced::RenderReplaced):
109530        * rendering/RenderReplaced.h:
109531        (RenderReplaced):
109532        * rendering/RenderReplica.cpp:
109533        (WebCore::RenderReplica::RenderReplica):
109534        * rendering/RenderReplica.h:
109535        (RenderReplica):
109536        * rendering/RenderRuby.cpp:
109537        (WebCore::createAnonymousRubyInlineBlock):
109538        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
109539        (WebCore):
109540        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
109541        * rendering/RenderRuby.h:
109542        (RenderRubyAsInline):
109543        (RenderRubyAsBlock):
109544        * rendering/RenderRubyBase.cpp:
109545        (WebCore::RenderRubyBase::RenderRubyBase):
109546        * rendering/RenderRubyBase.h:
109547        (RenderRubyBase):
109548        * rendering/RenderRubyRun.cpp:
109549        (WebCore::RenderRubyRun::RenderRubyRun):
109550        (WebCore::RenderRubyRun::createRubyBase):
109551        (WebCore::RenderRubyRun::staticCreateRubyRun):
109552        * rendering/RenderRubyRun.h:
109553        (RenderRubyRun):
109554        * rendering/RenderRubyText.cpp:
109555        (WebCore::RenderRubyText::RenderRubyText):
109556        * rendering/RenderRubyText.h:
109557        (RenderRubyText):
109558        * rendering/RenderScrollbar.cpp:
109559        (WebCore::RenderScrollbar::updateScrollbarPart):
109560        * rendering/RenderScrollbarPart.cpp:
109561        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
109562        * rendering/RenderScrollbarPart.h:
109563        (RenderScrollbarPart):
109564        * rendering/RenderSearchField.cpp:
109565        (WebCore::RenderSearchField::RenderSearchField):
109566        * rendering/RenderSearchField.h:
109567        (RenderSearchField):
109568        * rendering/RenderTable.cpp:
109569        (WebCore::RenderTable::RenderTable):
109570        (WebCore::RenderTable::createAnonymousWithParentRenderer):
109571        * rendering/RenderTable.h:
109572        (RenderTable):
109573        * rendering/RenderTableCaption.cpp:
109574        (WebCore::RenderTableCaption::RenderTableCaption):
109575        * rendering/RenderTableCaption.h:
109576        (RenderTableCaption):
109577        * rendering/RenderTableCell.cpp:
109578        (WebCore::RenderTableCell::RenderTableCell):
109579        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
109580        * rendering/RenderTableCell.h:
109581        (RenderTableCell):
109582        * rendering/RenderTableCol.cpp:
109583        (WebCore::RenderTableCol::RenderTableCol):
109584        * rendering/RenderTableCol.h:
109585        (RenderTableCol):
109586        * rendering/RenderTableRow.cpp:
109587        (WebCore::RenderTableRow::RenderTableRow):
109588        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
109589        * rendering/RenderTableRow.h:
109590        (RenderTableRow):
109591        * rendering/RenderTableSection.cpp:
109592        (WebCore::RenderTableSection::RenderTableSection):
109593        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
109594        * rendering/RenderTableSection.h:
109595        (RenderTableSection):
109596        * rendering/RenderTextControl.cpp:
109597        (WebCore::RenderTextControl::RenderTextControl):
109598        * rendering/RenderTextControl.h:
109599        (RenderTextControl):
109600        * rendering/RenderTextControlMultiLine.cpp:
109601        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
109602        * rendering/RenderTextControlMultiLine.h:
109603        (RenderTextControlMultiLine):
109604        * rendering/RenderTextControlSingleLine.cpp:
109605        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
109606        * rendering/RenderTextControlSingleLine.h:
109607        (RenderTextControlSingleLine):
109608        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
109609        * rendering/RenderTextTrackCue.cpp:
109610        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
109611        * rendering/RenderView.cpp:
109612        (WebCore::RenderView::RenderView):
109613        * rendering/RenderWidget.cpp:
109614        (WebCore::RenderWidget::RenderWidget):
109615        * rendering/RenderWidget.h:
109616        (RenderWidget):
109617        * rendering/mathml/RenderMathMLBlock.cpp:
109618        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
109619        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
109620        * rendering/mathml/RenderMathMLBlock.h:
109621        (RenderMathMLBlock):
109622        * rendering/mathml/RenderMathMLFenced.cpp:
109623        (WebCore::RenderMathMLFenced::createMathMLOperator):
109624        * rendering/mathml/RenderMathMLOperator.cpp:
109625        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
109626        (WebCore::RenderMathMLOperator::updateFromElement):
109627        (WebCore::RenderMathMLOperator::createGlyph):
109628        * rendering/mathml/RenderMathMLOperator.h:
109629        (RenderMathMLOperator):
109630        * rendering/mathml/RenderMathMLRow.cpp:
109631        (WebCore::RenderMathMLRow::RenderMathMLRow):
109632        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
109633        * rendering/mathml/RenderMathMLRow.h:
109634        (RenderMathMLRow):
109635        * rendering/style/ContentData.cpp:
109636        (WebCore::ImageContentData::createRenderer):
109637        * rendering/svg/RenderSVGBlock.cpp:
109638        (WebCore::RenderSVGBlock::RenderSVGBlock):
109639        * rendering/svg/RenderSVGInline.cpp:
109640        (WebCore::RenderSVGInline::RenderSVGInline):
109641        * rendering/svg/RenderSVGInline.h:
109642        (RenderSVGInline):
109643        * rendering/svg/RenderSVGTSpan.cpp:
109644        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
109645        * rendering/svg/RenderSVGTSpan.h:
109646        (RenderSVGTSpan):
109647        * rendering/svg/RenderSVGTextPath.cpp:
109648        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
109649        * rendering/svg/RenderSVGTextPath.h:
109650        (RenderSVGTextPath):
109651
1096522013-01-17  Alexey Proskuryakov  <ap@apple.com>
109653
109654        Fix a logic error in AuthenticationChallengeMac
109655        https://bugs.webkit.org/show_bug.cgi?id=107164
109656
109657        Reviewed by Brady Eidson.
109658
109659        No new tests, as this is not currently observable.
109660
109661        * platform/network/cf/AuthenticationCF.cpp:
109662        (WebCore::createCF): Added a FIXME about making this more like Mac counterpart.
109663
109664        * platform/network/cf/AuthenticationChallenge.h:
109665        (AuthenticationChallenge): Corrected an slightly misleading explanation.
109666
109667        * platform/network/mac/AuthenticationMac.mm:
109668        (WebCore::AuthenticationChallenge::setAuthenticationClient): Don't create a dummy
109669        m_nsChallenge object in place of a nil one.
109670
1096712013-01-17  Tony Gentilcore  <tonyg@chromium.org>
109672
109673        Remove unused finishWasCalled() method
109674        https://bugs.webkit.org/show_bug.cgi?id=107148
109675
109676        Reviewed by Eric Seidel.
109677
109678        Based on patch by Eric Seidel.
109679
109680        No new tests because no new functionality.
109681
109682        * dom/DocumentParser.h:
109683        (DocumentParser):
109684        * dom/RawDataDocumentParser.h:
109685        (WebCore::RawDataDocumentParser::append):
109686        * html/parser/HTMLDocumentParser.cpp:
109687        * html/parser/HTMLDocumentParser.h:
109688        (HTMLDocumentParser):
109689        * html/parser/HTMLViewSourceParser.cpp:
109690        * html/parser/HTMLViewSourceParser.h:
109691        (HTMLViewSourceParser):
109692        * xml/parser/NewXMLDocumentParser.cpp:
109693        (WebCore::NewXMLDocumentParser::NewXMLDocumentParser):
109694        (WebCore::NewXMLDocumentParser::finish):
109695        * xml/parser/NewXMLDocumentParser.h:
109696        (NewXMLDocumentParser):
109697        * xml/parser/XMLDocumentParser.cpp:
109698        * xml/parser/XMLDocumentParser.h:
109699        (XMLDocumentParser):
109700
1097012013-01-17  Ojan Vafai  <ojan@chromium.org>
109702
109703        MathML padding overrides only need to be on RenderMathMLRoot
109704        https://bugs.webkit.org/show_bug.cgi?id=107151
109705
109706        Reviewed by Tony Chang.
109707
109708        RenderMathMLRoot is the only class that uses these.
109709        No need for them to be on the generic MathML superclass.
109710
109711        * rendering/mathml/RenderMathMLBlock.cpp:
109712        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
109713        * rendering/mathml/RenderMathMLBlock.h:
109714        * rendering/mathml/RenderMathMLRoot.cpp:
109715        (WebCore::RenderMathMLRoot::RenderMathMLRoot):
109716        (WebCore::RenderMathMLRoot::paddingTop):
109717        (WebCore::RenderMathMLRoot::paddingBottom):
109718        (WebCore::RenderMathMLRoot::paddingLeft):
109719        (WebCore::RenderMathMLRoot::paddingRight):
109720        (WebCore::RenderMathMLRoot::paddingBefore):
109721        (WebCore::RenderMathMLRoot::paddingAfter):
109722        (WebCore::RenderMathMLRoot::paddingStart):
109723        (WebCore::RenderMathMLRoot::paddingEnd):
109724        * rendering/mathml/RenderMathMLRoot.h:
109725
1097262013-01-17  Poul Sysolyatin  <psytonx@gmail.com>
109727
109728        32-bit build for Qt5 on Mac OS fails.
109729        https://bugs.webkit.org/show_bug.cgi?id=107094
109730
109731        We need to define NS_BUILD_32_LIKE_64 for 32-bit build for Mac OS.
109732        Fixed 32-bit build detection for support Qt5.
109733
109734        Reviewed by Benjamin Poulain.
109735 
109736        * Target.pri:
109737
1097382013-01-17  Joshua Bell  <jsbell@chromium.org>
109739
109740        IndexedDB: Prevent crash dereferencing null if script context has stopped
109741        https://bugs.webkit.org/show_bug.cgi?id=107146
109742
109743        Reviewed by Tony Chang.
109744
109745        We have crash reports from Chromium users (but no local repro) for a crash coming
109746        from IDBRequest::dispatchEvent() that looks like it's calling toV8Context() after
109747        the script execution context has stopped. The dispatch shouldn't be occurring
109748        and we ASSERT as such, but something weird is going on during Worker tear down.
109749        If this patch prevents the crash it would indicate that stop() is called before
109750        dispatchEvent() which shouldn't be happening, and would let us continue chasing
109751        the issue.
109752
109753        No new tests - this shouldn't be happening.
109754
109755        * Modules/indexeddb/IDBRequest.cpp:
109756        (WebCore::IDBRequest::dispatchEvent):
109757
1097582013-01-17  Robert Hogan  <robert@webkit.org>
109759
109760        Nested fixed position element not staying with parent
109761        https://bugs.webkit.org/show_bug.cgi?id=65477
109762
109763        Reviewed by David Hyatt.
109764
109765        Tests: fast/inline/fixed-pos-moves-with-abspos-inline-parent.html
109766               fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html
109767               fast/inline/fixed-pos-moves-with-abspos-parent.html
109768               fast/inline/fixed-pos-with-transform-container-moves-with-abspos-parent.html
109769
109770        * rendering/RenderBlock.cpp:
109771        (WebCore::RenderBlock::simplifiedLayout):
109772        If an absolute position element inside a relative positioned container moves, and the absolute element has a fixed position
109773        child, neither the container nor the fixed element learn of the movement since posChildNeedsLayout() is only marked as far as the 
109774        relative positioned container. So if our positioned objects list can contain fixed position elements perform the
109775        checks in markFixedPositionObjectForLayoutIfNeeded for each fixed pos object in the container's positioned object list. 
109776        (WebCore::RenderBlock::markFixedPositionObjectForLayoutIfNeeded):
109777        For a fixed position element in the positioned objects list that has a static x or y position check for an absolute positioned ancestor
109778        and if we find one, see if the static x or y position of the fixed pos element has changed. If it has, mark it for layout.
109779        (WebCore):
109780        (WebCore::RenderBlock::layoutPositionedObjects):
109781        A fixed position element with an absolute position ancestor has no way of learning if the latter has changed position. So perform the
109782        checks in markFixedPositionObjectForLayoutIfNeeded for each fixed pos object in the container's positioned object list. 
109783        * rendering/RenderBlock.h:
109784        (RenderBlock):
109785        * rendering/RenderObject.cpp:
109786        (WebCore::RenderObject::containingBlock): Use new helper function canContainFixedPositionObjects().
109787        * rendering/RenderObject.h:
109788        (WebCore::RenderObject::canContainFixedPositionObjects):
109789        (RenderObject):
109790
1097912013-01-17  Antti Koivisto  <antti@apple.com>
109792
109793        Make renderer constructors take Element where possible
109794        https://bugs.webkit.org/show_bug.cgi?id=107138
109795
109796        Reviewed by David Hyatt.
109797        
109798        Tighter typing prevents bugs and enables optimizations.
109799
109800        The patch changes how anonymous rendererer are constructed. Previously Document* as the node parameter
109801        indicated that the renderer was anonymous. This forced the code to operate on ContainerNodes (Document
109802        is not an Element). Now anonymous renderers are constructed by passing null and the document is set by
109803        separate setDocumentForAnonymous() call. The patch uses RenderFoo::createAnonymous() pattern consistently.
109804
109805        Most constructors are switched to take Element. RenderBlock still takes ContainerNode due to a few subclasses
109806        (RenderView and RenderFlowThread) that pass in a Document.
109807
109808        * page/FrameView.cpp:
109809        (WebCore::FrameView::updateScrollCorner):
109810        * rendering/RenderBlock.cpp:
109811        (WebCore::RenderBlock::createAnonymous):
109812        (WebCore):
109813        (WebCore::RenderBlock::createReplacementRunIn):
109814        (WebCore::RenderBlock::updateFirstLetterStyle):
109815        (WebCore::RenderBlock::createFirstLetterRenderer):
109816        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
109817        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
109818        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
109819        * rendering/RenderBlock.h:
109820        (RenderBlock):
109821        * rendering/RenderDeprecatedFlexibleBox.cpp:
109822        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
109823        (WebCore::RenderDeprecatedFlexibleBox::createAnonymous):
109824        (WebCore):
109825        * rendering/RenderDeprecatedFlexibleBox.h:
109826        (RenderDeprecatedFlexibleBox):
109827        * rendering/RenderDetailsMarker.cpp:
109828        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
109829        * rendering/RenderDetailsMarker.h:
109830        (RenderDetailsMarker):
109831        * rendering/RenderDialog.h:
109832        (WebCore::RenderDialog::RenderDialog):
109833        * rendering/RenderFieldset.cpp:
109834        (WebCore::RenderFieldset::RenderFieldset):
109835        * rendering/RenderFieldset.h:
109836        (RenderFieldset):
109837        * rendering/RenderFlexibleBox.cpp:
109838        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
109839        * rendering/RenderFlexibleBox.h:
109840        (RenderFlexibleBox):
109841        * rendering/RenderFlowThread.cpp:
109842        (WebCore):
109843        (WebCore::RenderFlowThread::RenderFlowThread):
109844        * rendering/RenderFlowThread.h:
109845        * rendering/RenderFullScreen.cpp:
109846        (RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
109847        (RenderFullScreen::RenderFullScreen):
109848        (RenderFullScreen::createAnonymous):
109849        (RenderFullScreen::wrapRenderer):
109850        * rendering/RenderFullScreen.h:
109851        (RenderFullScreen):
109852        * rendering/RenderGrid.cpp:
109853        (WebCore::RenderGrid::RenderGrid):
109854        * rendering/RenderGrid.h:
109855        (RenderGrid):
109856        * rendering/RenderImage.cpp:
109857        (WebCore::RenderImage::RenderImage):
109858        (WebCore::RenderImage::createAnonymous):
109859        (WebCore):
109860        * rendering/RenderImage.h:
109861        (RenderImage):
109862        * rendering/RenderInline.cpp:
109863        (WebCore::RenderInline::RenderInline):
109864        (WebCore::RenderInline::createAnonymous):
109865        (WebCore):
109866        (WebCore::RenderInline::addChildIgnoringContinuation):
109867        * rendering/RenderInline.h:
109868        (RenderInline):
109869        (WebCore::RenderInline::node):
109870        
109871            Add version with covariant Element return type.
109872
109873        * rendering/RenderLayer.cpp:
109874        (WebCore::RenderLayer::updateScrollCornerStyle):
109875        (WebCore::RenderLayer::updateResizerStyle):
109876        (WebCore::RenderLayer::createReflection):
109877        * rendering/RenderListItem.cpp:
109878        (WebCore::RenderListItem::RenderListItem):
109879        (WebCore::RenderListItem::styleDidChange):
109880        * rendering/RenderListItem.h:
109881        (RenderListItem):
109882        * rendering/RenderListMarker.cpp:
109883        (WebCore::RenderListMarker::RenderListMarker):
109884        (WebCore::RenderListMarker::createAnonymous):
109885        (WebCore):
109886        * rendering/RenderListMarker.h:
109887        (RenderListMarker):
109888        * rendering/RenderMediaControlElements.cpp:
109889        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
109890        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
109891        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
109892        * rendering/RenderMediaControlElements.h:
109893        (RenderMediaVolumeSliderContainer):
109894        (RenderMediaControlTimeDisplay):
109895        (RenderTextTrackContainerElement):
109896        * rendering/RenderMultiColumnBlock.cpp:
109897        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
109898        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
109899        * rendering/RenderMultiColumnBlock.h:
109900        (RenderMultiColumnBlock):
109901        * rendering/RenderMultiColumnFlowThread.cpp:
109902        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
109903        * rendering/RenderMultiColumnFlowThread.h:
109904        (RenderMultiColumnFlowThread):
109905        * rendering/RenderMultiColumnSet.cpp:
109906        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
109907        (WebCore::RenderMultiColumnSet::createAnonymous):
109908        (WebCore):
109909        * rendering/RenderMultiColumnSet.h:
109910        (RenderMultiColumnSet):
109911        * rendering/RenderNamedFlowThread.cpp:
109912        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
109913        * rendering/RenderNamedFlowThread.h:
109914        (RenderNamedFlowThread):
109915        * rendering/RenderObject.cpp:
109916        (WebCore::RenderObject::RenderObject):
109917        * rendering/RenderObject.h:
109918        
109919             Passed in null node indicates that the renderer is anonymous. Remove now unnecessary setIsAnonymous() function.
109920
109921        (WebCore::RenderObject::isAnonymous):
109922        (WebCore::RenderObject::setDocumentForAnonymous):
109923        (RenderObject):
109924        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
109925        * rendering/RenderRegion.cpp:
109926        (WebCore::RenderRegion::RenderRegion):
109927        * rendering/RenderRegion.h:
109928        (RenderRegion):
109929        * rendering/RenderRegionSet.cpp:
109930        (WebCore::RenderRegionSet::RenderRegionSet):
109931        * rendering/RenderRegionSet.h:
109932        (RenderRegionSet):
109933        * rendering/RenderReplaced.cpp:
109934        (WebCore::RenderReplaced::RenderReplaced):
109935        * rendering/RenderReplaced.h:
109936        (RenderReplaced):
109937        * rendering/RenderReplica.cpp:
109938        (WebCore::RenderReplica::RenderReplica):
109939        (WebCore::RenderReplica::createAnonymous):
109940        (WebCore):
109941        * rendering/RenderReplica.h:
109942        (RenderReplica):
109943        * rendering/RenderRuby.cpp:
109944        (WebCore::createAnonymousRubyInlineBlock):
109945        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
109946        (WebCore):
109947        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
109948        * rendering/RenderRuby.h:
109949        (RenderRubyAsInline):
109950        (RenderRubyAsBlock):
109951        * rendering/RenderRubyBase.cpp:
109952        (WebCore::RenderRubyBase::RenderRubyBase):
109953        (WebCore::RenderRubyBase::createAnonymous):
109954        (WebCore):
109955        * rendering/RenderRubyBase.h:
109956        (RenderRubyBase):
109957        * rendering/RenderRubyRun.cpp:
109958        (WebCore::RenderRubyRun::RenderRubyRun):
109959        (WebCore::RenderRubyRun::createRubyBase):
109960        (WebCore::RenderRubyRun::staticCreateRubyRun):
109961        * rendering/RenderRubyRun.h:
109962        (RenderRubyRun):
109963        * rendering/RenderRubyText.cpp:
109964        (WebCore::RenderRubyText::RenderRubyText):
109965        * rendering/RenderRubyText.h:
109966        (RenderRubyText):
109967        * rendering/RenderScrollbar.cpp:
109968        (WebCore::RenderScrollbar::updateScrollbarPart):
109969        * rendering/RenderScrollbarPart.cpp:
109970        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
109971        (WebCore::RenderScrollbarPart::createAnonymous):
109972        (WebCore):
109973        * rendering/RenderScrollbarPart.h:
109974        (RenderScrollbarPart):
109975        * rendering/RenderSearchField.cpp:
109976        (WebCore::RenderSearchField::RenderSearchField):
109977        * rendering/RenderSearchField.h:
109978        (RenderSearchField):
109979        * rendering/RenderTable.cpp:
109980        (WebCore::RenderTable::RenderTable):
109981        (WebCore::RenderTable::createAnonymousWithParentRenderer):
109982        * rendering/RenderTable.h:
109983        (RenderTable):
109984        * rendering/RenderTableCaption.cpp:
109985        (WebCore::RenderTableCaption::RenderTableCaption):
109986        * rendering/RenderTableCaption.h:
109987        (RenderTableCaption):
109988        * rendering/RenderTableCell.cpp:
109989        (WebCore::RenderTableCell::RenderTableCell):
109990        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
109991        * rendering/RenderTableCell.h:
109992        (RenderTableCell):
109993        * rendering/RenderTableCol.cpp:
109994        (WebCore::RenderTableCol::RenderTableCol):
109995        * rendering/RenderTableCol.h:
109996        (RenderTableCol):
109997        * rendering/RenderTableRow.cpp:
109998        (WebCore::RenderTableRow::RenderTableRow):
109999        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
110000        * rendering/RenderTableRow.h:
110001        (RenderTableRow):
110002        * rendering/RenderTableSection.cpp:
110003        (WebCore::RenderTableSection::RenderTableSection):
110004        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
110005        * rendering/RenderTableSection.h:
110006        (RenderTableSection):
110007        * rendering/RenderTextControl.cpp:
110008        (WebCore::RenderTextControl::RenderTextControl):
110009        * rendering/RenderTextControl.h:
110010        (RenderTextControl):
110011        * rendering/RenderTextControlMultiLine.cpp:
110012        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
110013        * rendering/RenderTextControlMultiLine.h:
110014        (RenderTextControlMultiLine):
110015        * rendering/RenderTextControlSingleLine.cpp:
110016        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
110017        * rendering/RenderTextControlSingleLine.h:
110018        (RenderTextControlSingleLine):
110019        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
110020        * rendering/RenderTextTrackCue.cpp:
110021        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
110022        * rendering/RenderView.cpp:
110023        (WebCore::RenderView::RenderView):
110024        * rendering/RenderWidget.cpp:
110025        (WebCore::RenderWidget::RenderWidget):
110026        * rendering/RenderWidget.h:
110027        (RenderWidget):
110028        * rendering/mathml/RenderMathMLBlock.cpp:
110029        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
110030        (WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
110031        * rendering/mathml/RenderMathMLBlock.h:
110032        (RenderMathMLBlock):
110033        * rendering/mathml/RenderMathMLFenced.cpp:
110034        (WebCore::RenderMathMLFenced::createMathMLOperator):
110035        * rendering/mathml/RenderMathMLOperator.cpp:
110036        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
110037        (WebCore::RenderMathMLOperator::updateFromElement):
110038        (WebCore::RenderMathMLOperator::createGlyph):
110039        * rendering/mathml/RenderMathMLOperator.h:
110040        (RenderMathMLOperator):
110041        * rendering/mathml/RenderMathMLRow.cpp:
110042        (WebCore::RenderMathMLRow::RenderMathMLRow):
110043        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
110044        * rendering/mathml/RenderMathMLRow.h:
110045        (RenderMathMLRow):
110046        * rendering/style/ContentData.cpp:
110047        (WebCore::ImageContentData::createRenderer):
110048        * rendering/svg/RenderSVGBlock.cpp:
110049        (WebCore::RenderSVGBlock::RenderSVGBlock):
110050        * rendering/svg/RenderSVGInline.cpp:
110051        (WebCore::RenderSVGInline::RenderSVGInline):
110052        * rendering/svg/RenderSVGInline.h:
110053        (RenderSVGInline):
110054        * rendering/svg/RenderSVGTSpan.cpp:
110055        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
110056        * rendering/svg/RenderSVGTSpan.h:
110057        (RenderSVGTSpan):
110058        * rendering/svg/RenderSVGTextPath.cpp:
110059        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
110060        * rendering/svg/RenderSVGTextPath.h:
110061        (RenderSVGTextPath):
110062
1100632013-01-17  Leo Yang  <leoyang@rim.com>
110064
110065        [BlackBerry] Update Authentication Type and Scheme implementation
110066        https://bugs.webkit.org/show_bug.cgi?id=107045
110067        PR #281292
110068
110069        Reviewed by Yong Li.
110070
110071        Reviewed internally by Joe Mason. A typo is also fixed by Joe Mason.
110072
110073        The BlackBerry platform layer has defined both authentication type and authentication scheme.
110074        This patch is adapting the porting layer to the platform layer change.
110075
110076        No functionalities changed no new tests.
110077
110078        * platform/network/blackberry/NetworkJob.cpp:
110079        (WebCore::NetworkJob::notifyAuthReceived):
110080        * platform/network/blackberry/NetworkJob.h:
110081        (NetworkJob):
110082        * platform/network/blackberry/NetworkManager.cpp:
110083        (WebCore::NetworkManager::startJob):
110084
1100852013-01-17  Martin Robinson  <mrobinson@igalia.com>
110086
110087        [GTK] Build with LevelDB when IndexedDB is enabled
110088        https://bugs.webkit.org/show_bug.cgi?id=103220
110089
110090        Reviewed by Gustavo Noronha Silva.
110091
110092        No new tests. This is just a build change. IndexedDatabase support
110093        is already covered by the suite of storage layout tests.
110094
110095        * GNUmakefile.am: Add the leveldb convenience library.
110096        * GNUmakefile.list.am: Add the list of sources.
110097
1100982013-01-17  Tony Gentilcore  <tonyg@chromium.org>
110099
110100        Wire BackgroundHTMLParser to HTMLDocumentParser
110101        https://bugs.webkit.org/show_bug.cgi?id=107140
110102
110103        Reviewed by Adam Barth.
110104
110105        With this patch, we now pass the majority of html5lib and fast/parser tests with threaded HTML parsing enabled.
110106
110107        No new tests because covered by existing fast/parser tests.
110108
110109        * html/parser/BackgroundHTMLParser.cpp:
110110        (WebCore::TokenDelivery::execute):
110111        * html/parser/HTMLDocumentParser.cpp:
110112        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
110113        (WebCore::HTMLDocumentParser::~HTMLDocumentParser):
110114        (WebCore::HTMLDocumentParser::processingData):
110115        (WebCore::HTMLDocumentParser::resumeParsingAfterYield):
110116        (WebCore::HTMLDocumentParser::canTakeNextToken):
110117        (WebCore::HTMLDocumentParser::feedTokens):
110118        (WebCore::HTMLDocumentParser::pumpTokenizer):
110119        (WebCore):
110120        (WebCore::HTMLDocumentParser::startBackgroundParser):
110121        (WebCore::HTMLDocumentParser::stopBackgroundParser):
110122        (WebCore::HTMLDocumentParser::append):
110123        (WebCore::HTMLDocumentParser::end):
110124        (WebCore::HTMLDocumentParser::finish):
110125        (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
110126        * html/parser/HTMLDocumentParser.h:
110127        (WebCore):
110128        (HTMLDocumentParser):
110129        (WebCore::HTMLDocumentParser::hasPreloadScanner):
110130        (WebCore::HTMLDocumentParser::shouldUseThreading):
110131
1101322013-01-17  Tommy Widenflycht  <tommyw@google.com>
110133
110134        MediaStream API: Move all ExtraDataContainers into anonymous namespaces
110135        https://bugs.webkit.org/show_bug.cgi?id=107128
110136
110137        Reviewed by Kentaro Hara.
110138
110139        Tests not needed.
110140
110141        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
110142        * platform/chromium/support/WebMediaStreamSource.cpp:
110143        * platform/chromium/support/WebRTCSessionDescriptionRequest.cpp:
110144        * platform/chromium/support/WebRTCVoidRequest.cpp:
110145
1101462013-01-17  Yury Semikhatsky  <yurys@chromium.org>
110147
110148        Web Inspector: InstrumentingAgents should be registered in InspectorInstrumentation only when there is a front-end
110149        https://bugs.webkit.org/show_bug.cgi?id=107127
110150
110151        Reviewed by Vsevolod Vlasov.
110152
110153        InspectorInstrumentation::registerInstrumentingAgents is called when front-end
110154        is connected to corresponding InspectorController. When the front-end disconnects
110155        InspectorInstrumentation::unregisterInstrumentingAgents is called.
110156
110157        * inspector/InspectorController.cpp:
110158        (WebCore::InspectorController::InspectorController):
110159        (WebCore::InspectorController::inspectedPageDestroyed):
110160        (WebCore::InspectorController::connectFrontend):
110161        (WebCore::InspectorController::disconnectFrontend):
110162
1101632013-01-17  Andrei Bucur  <abucur@adobe.com>
110164
110165        [CSS Regions] Content flows incorrectly in autoheight regions with min/max-height set
110166        https://bugs.webkit.org/show_bug.cgi?id=102099
110167
110168        Reviewed by David Hyatt.
110169
110170        The current layout algorithm for auto-height regions is gives wrong results when the max-height property is set on them. The reason is we
110171        consider the max-height restriction too late in the layout, when applying a forced break. This is what happens when content is laid out
110172        in an auto-height region.
110173        1. The content flows without a limit until a forced break appears. If there's no forced break in the content, one is forced anyway at the end
110174        of the layout.
110175        2. The region where the forced break is placed is not always the one where content is laid out because of max-height restrictions.
110176        3. All the regions with max-height are iterated and their height accumulated until the break offset is reached and the region at that point is ended.
110177        This gives wrong results because the forced break position in the content was computed assuming there's only one region where the content is laid out.
110178        The regions with max-height could have generated unforced breaks at their height and the forced break actually should have a different position.
110179
110180        This patch changes the algorithm in this way:
110181        1. From the flow thread perspective all the regions start with a height: max-height for auto-height regions (or LayoutSize.max()/2 if not defined)
110182        or the fixed height value when specified.
110183        2. When the content is laid out, if there's no forced break, the height of the content is correctly estimated because the layout sees unforced breaks
110184        at the max-height values.
110185        3. If a forced break appears, the affected region can be obtained only by looking at the break offset in the region chain. If the region has auto-height,
110186        its height is updated by the forced break.
110187        4. At the end of the layout, there's the additional task to clear the height of all the regions that didn't receive content. This can be done optimally
110188        without adding a new iteration through the regions by attaching to the RegionOverset computation loop.
110189
110190        Tests:  fast/regions/autoheight-maxheight-mixed-break.html
110191                fast/regions/autoheight-maxheight-simple-break.html
110192                fast/regions/autoheight-maxheight-simple-nobreak.html
110193                fast/regions/autoheight-minmaxheight-mixed-break-hbt.html
110194                fast/regions/autoheight-minmaxheight-mixed-break-vlr.html
110195                fast/regions/autoheight-minmaxheight-mixed-break-vrl.html
110196                fast/regions/autoheight-minmaxheight-mixed-break.html
110197                fast/regions/autoheight-minmaxheight-simple-break.html
110198                fast/regions/autoheight-minmaxheight-simple-nobreak.html
110199
110200        * rendering/RenderFlowThread.cpp:
110201        (WebCore::RenderFlowThread::layout):
110202        (WebCore::RenderFlowThread::computeLogicalHeight):
110203        (WebCore::RenderFlowThread::regionAtBlockOffset):
110204        (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
110205        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
110206        (WebCore::RenderFlowThread::computeOverflowStateForRegions): Attach to the loop in this function to clear the overrideLogicalHeight on empty regions.
110207        (WebCore):
110208        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect): Add an ASSERT that a region always has overrideLogicalHeight or a fixed height.
110209        (WebCore::RenderFlowThread::initializeRegionsOverrideLogicalContentHeight): A new function that updates the region chain height to use the max-height value
110210        for auto-height regions.
110211        (WebCore::RenderFlowThread::addForcedRegionBreak):
110212        * rendering/RenderFlowThread.h:
110213        * rendering/RenderRegion.cpp:
110214        (WebCore::RenderRegion::pageLogicalHeight): the decorations size is incorrectly considered in the page height.
110215        (WebCore):
110216        (WebCore::RenderRegion::maxPageLogicalHeight): new function that returns the max page size for a region. It shouldn't be called too often
110217        or the returned value can be cached
110218        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent): the decorations size is incorrectly considered in the logical height of
110219        the flow thread content.
110220        * rendering/RenderRegion.h:
110221        (RenderRegion):
110222
110223
1102242013-01-17  Vsevolod Vlasov  <vsevik@chromium.org>
110225
110226        Web Inspector: Open resource dialog has poor performance.
110227        https://bugs.webkit.org/show_bug.cgi?id=107122
110228
110229        Reviewed by Pavel Feldman.
110230
110231        Open resource dialog does not make linear number of relayouts on highlight anymore.
110232        Replaced localeCompare with string compare since it is significantly faster.
110233
110234        * inspector/front-end/FilteredItemSelectionDialog.js:
110235        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItems):
110236        (WebInspector.OpenResourceDialog.compareFunction):
110237        (WebInspector.OpenResourceDialog):
110238
1102392013-01-17  Alexis Menard  <alexis@webkit.org>
110240
110241        Add ontransitionend attribute on HTML elements.
110242        https://bugs.webkit.org/show_bug.cgi?id=107134
110243
110244        Reviewed by Simon Fraser.
110245
110246        Add ontransitionend attribute on HTML elements to match the prefixed
110247        attribute onwebkittransitionend. As it uses the same plumbing as a
110248        regular event listener, it behaves the same which means that if
110249        ontransitionend only is defined then only the code attached to this
110250        attribute will be called, if only onwebkittransitionend is defined then
110251        only the code attached to this attribute will be called and finally if
110252        both attributes are defined then only the code attached to the
110253        unprefixed attribute will be called.
110254
110255        Tests: transitions/transition-end-event-unprefixed-03.html
110256               transitions/transition-end-event-unprefixed-04.html
110257
110258        * html/HTMLAttributeNames.in:
110259        * html/HTMLElement.cpp:
110260        (WebCore::HTMLElement::parseAttribute):
110261        * page/DOMWindow.h:
110262        (DOMWindow):
110263        * page/DOMWindow.idl: only define the property if the unprefixing is
110264        turn on.
110265
1102662013-01-17  Andrei Bucur  <abucur@adobe.com>
110267
110268        Widows and orphans test4 fails if isolated
110269        https://bugs.webkit.org/show_bug.cgi?id=106006
110270
110271        Reviewed by Dean Jackson.
110272
110273        To determine if the orphans condition is not respected, every time a fragmentation break is encountered adjustLinePositionForPagination() is called for the current line.
110274        If the index on the line in the block is smaller than the number of orphans specified in the style object, the block is shifted in the next fragmentainer. The index of
110275        the line is obtained by calling RenderBlock::lineCount. However, this only works in a full layout when lineCount() will coincidentally return the index of the line.
110276        In subsequent layouts, during the determineStartPosition() phase, lineCount() returns all the lines in the block so the orphans condition is never triggered.
110277        The patch modifies the lineCount() function to have two optional parameters. The first parameter is the line where lineCount should stop counting lines. The second
110278        is an output boolean parameter indicating if the line was found or not. This change makes the lineCount() more flexible and allows retreiving the index of a
110279        specific line (e.g. the index of the current line inside adjustLinePositionForPagination()).
110280
110281        Tests: fast/multicol/orphans-relayout.html
110282
110283        * rendering/RenderBlock.cpp:
110284        (WebCore::RenderBlock::lineCount): See the detailed description.
110285        (WebCore::RenderBlock::adjustLinePositionForPagination): Make use of the modified lineCount() function.
110286        * rendering/RenderBlock.h:
110287        (RenderBlock):
110288
1102892013-01-17  Martin Robinson  <mrobinson@igalia.com>
110290
110291        REGRESSION (r137487): Crashes in editing/execCommand/indent-paragraphs.html on GTK, EFL
110292        https://bugs.webkit.org/show_bug.cgi?id=105042
110293
110294        Reviewed by Gustavo Noronha Silva.
110295
110296        Explicitly handle the situation where the creation of a SoupURI fails. This
110297        can happen if the URI is invalid. In that case the constructor returns null.
110298
110299        No new tests. This patch unskips a failing test.
110300
110301        * platform/network/soup/ResourceHandleSoup.cpp:
110302        (WebCore::createSoupRequestAndMessageForHandle): Handle a null Soup URI.
110303
1103042013-01-17  Nate Chapin  <japhet@chromium.org>
110305
110306        Enable reuse of cached main resources
110307        https://bugs.webkit.org/show_bug.cgi?id=105667
110308
110309        Reviewed by Antti Koivisto.
110310
110311        Test: http/tests/cache/cached-main-resource.html
110312
110313        * WebCore.exp.in:
110314        * dom/Document.cpp:
110315        (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
110316        * dom/Document.h:
110317        (Document):
110318        * loader/FrameLoader.cpp:
110319        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
110320            MainResourceLoader will take care of it.
110321        * loader/MainResourceLoader.cpp:
110322        (WebCore::MainResourceLoader::MainResourceLoader):
110323        (WebCore::MainResourceLoader::receivedError):
110324        (WebCore::MainResourceLoader::willSendRequest):
110325        (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
110326        (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
110327        (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
110328            ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
110329        (WebCore::MainResourceLoader::identifier):
110330        * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
110331            to better describe when it is used.
110332        * loader/cache/CachedRawResource.cpp:
110333        (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
110334        (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
110335        (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
110336        * loader/cache/CachedRawResource.h:
110337        (CachedRawResource):
110338        (RedirectPair):
110339        (WebCore::CachedRawResource::RedirectPair::RedirectPair):
110340        * loader/cache/CachedResource.cpp:
110341        (WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
110342        * loader/cache/CachedResource.h:
110343        (WebCore::CachedResource::canReuse):
110344        (CachedResource):
110345        * loader/cache/CachedResourceLoader.cpp:
110346        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
110347        * testing/Internals.cpp:
110348        (WebCore::Internals::isLoadingFromMemoryCache):
110349        (WebCore):
110350        * testing/Internals.h:
110351        (Internals):
110352        * testing/Internals.idl:
110353
1103542013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>
110355
110356        Web Inspector: [Network] Remove boilerplate CSS selectors.
110357        https://bugs.webkit.org/show_bug.cgi?id=107121
110358
110359        Reviewed by Vsevolod Vlasov.
110360
110361        There are rules that are used for filtration and styling
110362        whose selectors should be autogenerated.
110363
110364        * inspector/front-end/NetworkPanel.js:
110365        (WebInspector.NetworkPanel.prototype._injectStyles):
110366        * inspector/front-end/networkLogView.css:
110367
1103682013-01-17  Tim Horton  <timothy_horton@apple.com>
110369
110370        Fix the Mac build sans ENABLE(CSS_FILTERS)
110371
110372        Reviewed by Darin Adler.
110373
110374        Move an export from a USE(ACCELERATED_COMPOSITING) block to a ENABLE(CSS_FILTERS)
110375        block, to match the code that backs it.
110376
110377        * WebCore.exp.in:
110378
1103792013-01-17  Shinya Kawanaka  <shinyak@chromium.org>
110380
110381        [Mac] svg/custom/text-use-click-crash.xhtml added by r139029 hits assertion in enclosingTextFormControl
110382        https://bugs.webkit.org/show_bug.cgi?id=106361
110383
110384        Reviewed by Darin Adler.
110385
110386        When ASSERT hit in enclosingTextFormControl(Position), position.anchorNode() was /use/shadow-root/text,
110387        and position.anchorType() was PositionIsBeforeAnchor. In this case, position.containerNode() should be
110388        ShadowRoot if SHADOW_DOM flag is enabled. However, SHADOW_DOM flag is not enabled in mac port,
110389        position.containerNode() returns 0. This hits ASSERT.
110390
110391        We have two options to solve this problem. (1) is to allow Position to have ShadowRoot as a container node,
110392        but this will affect a lot of code. (2) is to loosen ASSERT condition.
110393
110394        I've chosen (2) option in this patch.
110395
110396        Test: svg/custom/text-use-click-crash.xhtml should cover this.
110397
110398        * html/HTMLTextFormControlElement.cpp:
110399        (WebCore::enclosingTextFormControl):
110400
1104012013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>
110402
110403        Web Inspector: Profiler: split "getProfile" to "getCPUProfile" and "loadHeapSnapshot"
110404        https://bugs.webkit.org/show_bug.cgi?id=104545
110405
110406        Reviewed by Yury Semikhatsky.
110407
110408        This change will allow stronger typing of profiler output.
110409
110410        * inspector/Inspector.json:
110411        Split "getProfile" to "getCPUProfile" and "getHeapSnapshot".
110412        * inspector/InspectorProfilerAgent.cpp: Ditto.
110413        * inspector/InspectorProfilerAgent.h: Ditto.
110414        * inspector/front-end/CPUProfileView.js: Adopd changes.
110415        * inspector/front-end/HeapSnapshotView.js: Ditto.
110416
1104172013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>
110418
110419        Web Inspector: [Network] Memory leaks when user walks between requests.
110420        https://bugs.webkit.org/show_bug.cgi?id=107114
110421
110422        Reviewed by Vsevolod Vlasov.
110423
110424        Unregister event listeners when view is detached.
110425
110426        * inspector/front-end/RequestCookiesView.js: Fixed memory leak.
110427        * inspector/front-end/RequestHeadersView.js: Ditto.
110428        * inspector/front-end/RequestTimingView.js: Ditto.
110429
1104302013-01-17  Eugene Klyuchnikov  <eustas@chromium.org>
110431
110432        Web Inspector: [Timeline] REGRESSION: Sidebar shrinks when user switches to memory statistics mode.
110433        https://bugs.webkit.org/show_bug.cgi?id=105857
110434
110435        Reviewed by Pavel Feldman.
110436
110437        Fix: do not apply constraints to sidebar width while view is offscreen;
110438        constraint check will be applied when view goes visible.
110439
110440        * inspector/front-end/SidebarView.js:
110441        (WebInspector.SidebarView.prototype.applyConstraints): Check if view is
110442        offscreen.
110443
1104442013-01-17  Alexander Pavlov  <apavlov@chromium.org>
110445
110446        Web Inspector: [Spectrum] Color picker in CSS editor does not update textual color value
110447        https://bugs.webkit.org/show_bug.cgi?id=107110
110448
110449        Reviewed by Vsevolod Vlasov.
110450
110451        The Spectrum picker was never told to update the textual color upon user-initiated color changes.
110452
110453        * inspector/front-end/StylesSidebarPane.js:
110454        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
110455
1104562013-01-17  Jae Hyun Park  <jae.park@company100.net>
110457
110458        Remove unnecessary public method TiledBackingStore::supportsAlpha()
110459        https://bugs.webkit.org/show_bug.cgi?id=107067
110460
110461        Reviewed by Kentaro Hara.
110462
110463        This patch removes unnecessary public method TiledBackingStore::supportsAlpha()
110464        because supportsAlpha() is never called from other classes.
110465
110466        No new tests, no change in behavior.
110467
110468        * platform/graphics/TiledBackingStore.cpp:
110469        (WebCore::TiledBackingStore::setSupportsAlpha):
110470        * platform/graphics/TiledBackingStore.h:
110471        (TiledBackingStore):
110472
1104732013-01-17  Peter Rybin  <peter.rybin@gmail.com>
110474
110475        [V8] Remove a --es5_readonly flag from V8 initialization and address duplicated code
110476        https://bugs.webkit.org/show_bug.cgi?id=106790
110477
110478        Reviewed by Kentaro Hara.
110479
110480        Couple of statements are moved to a newly created method. Old V8 flag setter is removed
110481        according to FIXME and per V8 change http://code.google.com/p/v8/source/detail?r=12415
110482
110483        * bindings/v8/V8Initializer.cpp:
110484        (WebCore::initializeV8Common): newly created method
110485        (WebCore):
110486        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
110487        (WebCore::V8Initializer::initializeWorker):
110488
1104892013-01-17  John Bauman  <jbauman@chromium.org>
110490
110491        Fix texImage2D from a WebGL canvas.
110492        https://bugs.webkit.org/show_bug.cgi?id=106941
110493
110494        Reviewed by Kenneth Russell.
110495
110496        Clear the copied image whenever the canvas is modified, even if using
110497        accelerated compositing.
110498
110499        Test: fast/canvas/webgl/tex-image-webgl.html
110500
110501        * html/canvas/WebGLRenderingContext.cpp:
110502        (WebCore):
110503        (WebCore::WebGLRenderingContext::markContextChanged):
110504
1105052013-01-17  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
110506
110507        [AC] Memory leak in GLXConfigSelector::createConfig()
110508        https://bugs.webkit.org/show_bug.cgi?id=106657
110509
110510        Reviewed by Laszlo Gombos.
110511
110512        Free the memory returned by glXGetVisualFromFBConfig() using
110513        XFree to avoid a memory leak.
110514
110515        No new tests. No change in behavior.
110516
110517        * platform/graphics/surfaces/glx/GLXConfigSelector.h:
110518        (WebCore::GLXConfigSelector::createConfig):
110519
1105202013-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>
110521
110522        Unreviewed, rolling out r139929.
110523        http://trac.webkit.org/changeset/139929
110524        https://bugs.webkit.org/show_bug.cgi?id=107141
110525
110526        Speculative fix didn't work (Requested by jsbell on #webkit).
110527
110528        * Modules/indexeddb/IDBObjectStore.cpp:
110529        (WebCore::IDBObjectStore::createIndex):
110530
1105312013-01-16  Alexey Proskuryakov  <ap@apple.com>
110532
110533        Don't use NSApplication run loop in NetworkProcess
110534        https://bugs.webkit.org/show_bug.cgi?id=107061
110535
110536        Reviewed by Anders Carlsson.
110537
110538        Added a way to tell RunLoop whether it should use NSApplication run loop
110539        (defaulting to not using it, as this should be an exception for child processes).
110540
110541        * WebCore.exp.in:
110542        * platform/RunLoop.cpp:
110543        (WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop):
110544        * platform/RunLoop.h:
110545        * platform/mac/RunLoopMac.mm:
110546        (WebCore::RunLoop::setUseApplicationRunLoopOnMainRunLoop):
110547        (WebCore::RunLoop::run):
110548        (WebCore::RunLoop::stop):
110549
1105502013-01-17  Andrey Lushnikov  <lushnikov@chromium.org>
110551
110552        Web Inspector: fix DefaultTextEditor's broken backspace
110553        https://bugs.webkit.org/show_bug.cgi?id=107130
110554
110555        Reviewed by Pavel Feldman.
110556
110557        Remove css "position: relative;" style from "webkit-line-content" class, which
110558        somehow brakes editing experience. Remove "height: 100%" from text-editor-overlay-highlight
110559        class and cast necessary height via inserting "&nbsp;" into overlay span elements.
110560
110561        No new tests: no change in behaviour.
110562
110563        * inspector/front-end/DefaultTextEditor.js:
110564        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
110565        * inspector/front-end/textEditor.css:
110566        (.text-editor-overlay-highlight):
110567
1105682013-01-16  Vsevolod Vlasov  <vsevik@chromium.org>
110569
110570        Web Inspector: Introduce FileSystemWorkspaceProvider to allow showing files from file system in workspace.
110571        https://bugs.webkit.org/show_bug.cgi?id=107021
110572
110573        Reviewed by Pavel Feldman.
110574
110575        Added FileSystemWorkspaceProvider that populates workspace with files
110576        loaded from file systems registered in FileSystemMapping and listens
110577        for FileSystemAdded / FileSystemRemoved events to update workspace.
110578
110579        * WebCore.gypi:
110580        * WebCore.vcproj/WebCore.vcproj:
110581        * inspector/compile-front-end.py:
110582        * inspector/front-end/FileMapping.js:
110583        (WebInspector.FileMapping.prototype.urlForURI):
110584        (WebInspector.FileMapping.MappingEntry.prototype.urlForURI):
110585        * inspector/front-end/FileSystemMapping.js:
110586        (WebInspector.FileSystemMapping.prototype.uriForPath):
110587        (WebInspector.FileSystemMapping.prototype.addEventListener):
110588        (WebInspector.FileSystemMapping.prototype.removeEventListener):
110589        (WebInspector.FileSystemMappingImpl):
110590        (get WebInspector.FileSystemMappingImpl.prototype.uriForPath):
110591        * inspector/front-end/FileSystemWorkspaceProvider.js: Added.
110592        * inspector/front-end/IsolatedFileSystemModel.js:
110593        (WebInspector.IsolatedFileSystemModel):
110594        (WebInspector.IsolatedFileSystemModel.prototype._innerAddFileSystem):
110595        * inspector/front-end/WebKit.qrc:
110596        * inspector/front-end/Workspace.js:
110597        * inspector/front-end/externs.js:
110598        * inspector/front-end/inspector.html:
110599        * inspector/front-end/inspector.js:
110600        * inspector/front-end/navigatorView.css:
110601        (.navigator-other-tree-item .icon):
110602
1106032013-01-17  Andrey Adaikin  <aandrey@chromium.org>
110604
110605        Web Inspector: add createOption method to WebInspector.StatusBarComboBox
110606        https://bugs.webkit.org/show_bug.cgi?id=107102
110607
110608        Reviewed by Vsevolod Vlasov.
110609
110610        * inspector/front-end/CPUProfileView.js:
110611        * inspector/front-end/ConsoleView.js:
110612        (WebInspector.ConsoleView.prototype._addFrame):
110613        (WebInspector.ConsoleView.prototype._appendContextOption):
110614        * inspector/front-end/StatusBarButton.js:
110615        (WebInspector.StatusBarButton.prototype.set state):
110616        (WebInspector.StatusBarButton.prototype.set visible):
110617        (WebInspector.StatusBarComboBox.prototype.createOption):
110618
1106192013-01-16  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
110620
110621        [EFL][GTK] checkSpellingOfString treats the multiple words as spelled correctly
110622        https://bugs.webkit.org/show_bug.cgi?id=106662
110623
110624        Reviewed by Antonio Gomes.
110625
110626        No new tests, covered by spelling-backspace-between-lines.html.
110627
110628        TextCheckerEnchant::checkSpellingOfString() method, treats the multiple words
110629        as spelled correctly if one of them is ok. For example, string such as
110630        "OK zz OK" is spelled correctly!
110631
110632        The method at the beginning assumes that the given string is spelled correctly,
110633        then it iterates over the words to find out the misspelled location and length
110634        in the whole string. In checkSpellingOfWord, if the word is ok, we mark
110635        it as spelled correctly and we do return to check the next words. In the fact,
110636        the location and length of the previously misspelled words are overwritten.
110637
110638        * platform/text/enchant/TextCheckerEnchant.cpp:
110639        (WebCore::TextCheckerEnchant::checkSpellingOfWord):
110640        Update of the word's misspeling location and length was moved out the loop.
110641
110642        (WebCore::TextCheckerEnchant::checkSpellingOfString):
110643        Stop checking the next words If the current word is misspelled, to do not overwrite
110644        its misspelled location and length.
110645
1106462013-01-17  Chris Fleizach  <cfleizach@apple.com>
110647
110648        WebSpeech: implement voices list
110649        https://bugs.webkit.org/show_bug.cgi?id=107014
110650
110651        Reviewed by Adam Barth.
110652
110653        Add in the Mac side code to return a list of voices. 
110654        Adds a layout test, which is skipped for now, until the feature is enabled.
110655
110656        Test: platform/mac/fast/speechsynthesis/speech-synthesis-voices.html
110657
110658        * Modules/speech/SpeechSynthesis.cpp:
110659        (WebCore::SpeechSynthesis::SpeechSynthesis):
110660        * Modules/speech/SpeechSynthesis.h:
110661        (SpeechSynthesis):
110662        * Modules/speech/mac/SpeechSynthesisMac.mm:
110663        (WebCore::SpeechSynthesis::initializeVoiceList):
110664
1106652013-01-16  Rik Cabanier  <cabanier@adobe.com>
110666
110667        Update GraphicsContext to support winding rule in clip operator for Core Graphics
110668        https://bugs.webkit.org/show_bug.cgi?id=106871
110669
110670        Reviewed by Dirk Schulze.
110671
110672        Changed the interface to GraphicsContext so it's possible to pass the winding
110673        rule to canvasClip() and clip().
110674
110675        No new tests, no change in functionality.
110676
110677        * WebCore.exp.in: Change signature of canvasClip function.
110678        * platform/graphics/GraphicsContext.h: Change canvasClip and clip signature with default winding rule.
110679        * platform/graphics/cairo/GraphicsContextCairo.cpp: Update interface with new signature so it still compiles.
110680        (WebCore::GraphicsContext::clip):
110681        (WebCore::GraphicsContext::canvasClip):
110682        * platform/graphics/cg/GraphicsContextCG.cpp: Update interface with new signature and implement winding rules.
110683        (WebCore::GraphicsContext::clip):
110684        (WebCore::GraphicsContext::canvasClip):
110685        * platform/graphics/openvg/GraphicsContextOpenVG.cpp: Update interface with new signature so it still compiles.
110686        (WebCore::GraphicsContext::clip):
110687        (WebCore::GraphicsContext::canvasClip):
110688        * platform/graphics/qt/GraphicsContextQt.cpp: Update interface with new signature so it still compiles.
110689        (WebCore::GraphicsContext::clip):
110690        (WebCore::GraphicsContext::canvasClip):
110691        * platform/graphics/skia/GraphicsContextSkia.cpp: Update interface with new signature so it still compiles.
110692        (WebCore::GraphicsContext::clip):
110693        (WebCore::GraphicsContext::canvasClip):
110694        * platform/graphics/wince/GraphicsContextWinCE.cpp: Update interface with new signature so it still compiles.
110695        (WebCore::GraphicsContext::clip):
110696        (WebCore::GraphicsContext::canvasClip):
110697        * platform/graphics/wx/GraphicsContextWx.cpp: Update interface with new signature so it still compiles.
110698        (WebCore::GraphicsContext::clip):
110699        (WebCore::GraphicsContext::canvasClip):
110700
1107012013-01-16  Hajime Morrita  <morrita@google.com>
110702
110703        NoEventDispatchAssertion in ContainerNode::removeChildren is too strict
110704        https://bugs.webkit.org/show_bug.cgi?id=106985
110705
110706        Reviewed by Ryosuke Niwa.
110707
110708        This change narrowed the lifetime of NoEventDispatchAssertion in removeChildren().
110709        It is as safe as other mutation method even after this change: childrenChanged() and
110710        ChildNodeRemovalNotifier are used outside the assertion scope.
110711
110712        Test: svg/custom/use-mutation-crash.xhtml
110713
110714        * dom/ContainerNode.cpp:
110715        (WebCore::ContainerNode::removeChildren):
110716
1107172013-01-16  Shinya Kawanaka  <shinyak@chromium.org>
110718
110719        [Refactoring] HTMLTextFormControlElement should use shadowHost instead of shadowAncestorNode
110720        https://bugs.webkit.org/show_bug.cgi?id=106533
110721
110722        Reviewed by Kent Tamura.
110723
110724        Since Node::shadowAncestorNode() is deprecated, we would like to use Node::shadowHost().
110725
110726        No new tests, simple refactoring.
110727
110728        * html/HTMLTextFormControlElement.cpp:
110729        (WebCore::HTMLTextFormControlElement::setSelectionRange): Here, startPosition and endPosition is in ShadowDOM,
110730        converting shadowAncestorNode to shadowHost is safe.
110731        (WebCore::enclosingTextFormControl): Actually ASSERT in this method is wrong since shadowAncestorNode() does not
110732        return NULL. This should be shadowHost().
110733
1107342013-01-16  Tony Gentilcore  <tonyg@chromium.org>
110735
110736        Disable an ASSERT for the threaded parser
110737        https://bugs.webkit.org/show_bug.cgi?id=107087
110738
110739        Reviewed by Adam Barth.
110740
110741        Since tokenizing happens on the background thread, when the tree builder runs there isn't a valid tokenizer for which to check the state.
110742        The background parser has minimal code to update its tokenizer's state properly.
110743
110744        No new tests because covered by existing fast/parser tests.
110745
110746        * html/parser/HTMLParserOptions.cpp:
110747        (WebCore::HTMLParserOptions::HTMLParserOptions):
110748        * html/parser/HTMLParserOptions.h:
110749        (HTMLParserOptions):
110750        * html/parser/HTMLTreeBuilder.cpp:
110751        (WebCore::HTMLTreeBuilder::processEndTag):
110752
1107532013-01-16  MORITA Hajime  <morrita@google.com>
110754
110755        Attr.ownerDocument should change if its parent's owner did
110756        https://bugs.webkit.org/show_bug.cgi?id=97644
110757
110758        Reviewed by Darin Adler.
110759
110760        moveTreeToNewScope() didn't traverse its Attr instances. But it should.
110761
110762        Test: fast/dom/Attr/parent-adopt-node.html
110763
110764        * dom/ElementAttributeData.cpp:
110765        (WebCore::ElementAttributeData::getExistingAttrs):
110766        (WebCore):
110767        * dom/ElementAttributeData.h:
110768        (ElementAttributeData):
110769        * dom/TreeScopeAdopter.cpp:
110770        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
110771
1107722013-01-16  Adam Barth  <abarth@webkit.org>
110773
110774        Address tonyg's feedback on BackgroundHTMLParser
110775        https://bugs.webkit.org/show_bug.cgi?id=107086
110776
110777        Reviewed by Tony Gentilcore.
110778
110779        As requested in https://bugs.webkit.org/show_bug.cgi?id=107083#c5
110780
110781        * html/parser/BackgroundHTMLParser.cpp:
110782        (WebCore::BackgroundHTMLParser::pumpTokenizer):
110783        (TokenDelivery):
110784        (WebCore::TokenDelivery::TokenDelivery):
110785        (WebCore::TokenDelivery::execute):
110786
1107872013-01-16  Tony Gentilcore  <tonyg@chromium.org>
110788
110789        Introduce a method to build the tree from a CompactHTMLToken
110790        https://bugs.webkit.org/show_bug.cgi?id=107082
110791
110792        Reviewed by Adam Barth.
110793
110794        No new tests because covered by existing fast/parser tests.
110795
110796        * html/parser/HTMLDocumentParser.cpp:
110797        (WebCore):
110798        (WebCore::HTMLDocumentParser::constructTreeFromCompactHTMLToken):
110799        * html/parser/HTMLDocumentParser.h:
110800        * html/parser/HTMLToken.h:
110801        (AtomicHTMLToken):
110802        (WebCore::AtomicHTMLToken::create):
110803        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
110804        * xml/parser/MarkupTokenBase.h:
110805        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
110806        (AtomicMarkupTokenBase):
110807
1108082013-01-16  Roger Fong  <roger_fong@apple.com>
110809
110810        Unreviewed build fix following r139918.
110811        Add speech synthesis to include path and WebCore vcproj file.
110812
110813        * WebCore.vcproj/WebCore.vcproj:
110814        * WebCore.vcproj/WebCoreCommon.vsprops:
110815
1108162013-01-16  Chris Rogers  <crogers@google.com>
110817
110818        Switch AudioDestinationChromium over to new createAudioDevice() method
110819        https://bugs.webkit.org/show_bug.cgi?id=106816
110820
110821        Reviewed by James Robinson.
110822
110823        * platform/audio/chromium/AudioDestinationChromium.cpp:
110824        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
110825
1108262013-01-16  Adam Barth  <abarth@webkit.org>
110827
110828        Introduce BackgroundHTMLParser for parsing HTML on a background thread
110829        https://bugs.webkit.org/show_bug.cgi?id=107083
110830
110831        Reviewed by Eric Seidel.
110832
110833        This patch contains a basic version of an HTML parser that runs on a
110834        background thread. The parser passes the majority of the tests in
110835        fast/parser and a large number of the subtests in html5lib.
110836
110837        Notably absent from this early version of the parser is speculation
110838        (which will eventually replace preload scanning) and atomization (which
110839        we suspect will be important for performance). Our plan is to introduce
110840        those elements in subsequent patches.
110841
110842        * CMakeLists.txt:
110843        * GNUmakefile.list.am:
110844        * Target.pri:
110845        * WebCore.gypi:
110846        * WebCore.vcproj/WebCore.vcproj:
110847        * WebCore.xcodeproj/project.pbxproj:
110848        * html/parser/BackgroundHTMLParser.cpp: Added.
110849        (WebCore):
110850        (WebCore::checkThatTokensAreSafeToSendToAnotherThread):
110851        (WebCore::parserMap):
110852        (WebCore::ParserMap::backgroundParsers):
110853        (WebCore::ParserMap::mainThreadParsers):
110854        (WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
110855        (WebCore::BackgroundHTMLParser::append):
110856        (WebCore::BackgroundHTMLParser::continueParsing):
110857        (WebCore::BackgroundHTMLParser::finish):
110858        (WebCore::BackgroundHTMLParser::pumpTokenizer):
110859        (TokenDelivery):
110860        (WebCore::TokenDelivery::execute):
110861        (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
110862        (WebCore::BackgroundHTMLParser::createPartial):
110863        (WebCore::BackgroundHTMLParser::stopPartial):
110864        (WebCore::BackgroundHTMLParser::appendPartial):
110865        (WebCore::BackgroundHTMLParser::continuePartial):
110866        (WebCore::BackgroundHTMLParser::finishPartial):
110867        * html/parser/BackgroundHTMLParser.h: Added.
110868        (WebCore):
110869        (BackgroundHTMLParser):
110870        (WebCore::BackgroundHTMLParser::create):
110871        (ParserMap):
110872        (WebCore::ParserMap::identifierForParser):
110873        * html/parser/HTMLDocumentParser.cpp:
110874        (WebCore):
110875        (WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
110876        * html/parser/HTMLDocumentParser.h:
110877        (WebCore):
110878        (HTMLDocumentParser):
110879
1108802013-01-16  Donghyun Kim  <dhkim715@hotmail.com>
110881
110882        [soup] Fix build warning in ResourceHandleSoup.cpp
110883        https://bugs.webkit.org/show_bug.cgi?id=107063
110884
110885        Reviewed by Martin Robinson.
110886
110887        The restartedCallback has unused parameter 'message', 
110888        remove the parameter name to fix 'unused parameter' build warning.
110889
110890        * platform/network/soup/ResourceHandleSoup.cpp:
110891        (WebCore::restartedCallback):
110892
1108932013-01-16  Tony Gentilcore  <tonyg@chromium.org>
110894
110895        Introduce a CompactHTMLToken for the threaded HTML parser
110896        https://bugs.webkit.org/show_bug.cgi?id=107069
110897
110898        Reviewed by Adam Barth.
110899
110900        This class is used for transporting tokens from the parser thread to the main thread where they are fed to the tree builder.
110901
110902        No new tests because covered by existing fast/parser tests.
110903
110904        * CMakeLists.txt:
110905        * GNUmakefile.list.am:
110906        * Target.pri:
110907        * WebCore.gypi:
110908        * WebCore.vcproj/WebCore.vcproj:
110909        * WebCore.xcodeproj/project.pbxproj:
110910        * html/parser/CompactHTMLToken.cpp: Added.
110911        (WebCore):
110912        (WebCore::CompactHTMLToken::CompactHTMLToken):
110913        (WebCore::isStringSafeToSendToAnotherThread):
110914        (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
110915        * html/parser/CompactHTMLToken.h: Added.
110916        (WebCore):
110917        (CompactAttribute):
110918        (WebCore::CompactAttribute::CompactAttribute):
110919        (WebCore::CompactAttribute::name):
110920        (WebCore::CompactAttribute::value):
110921        (CompactHTMLToken):
110922        (WebCore::CompactHTMLToken::type):
110923        (WebCore::CompactHTMLToken::data):
110924        (WebCore::CompactHTMLToken::selfClosing):
110925        (WebCore::CompactHTMLToken::attributes):
110926        (WebCore::CompactHTMLToken::publicIdentifier):
110927        (WebCore::CompactHTMLToken::systemIdentifier):
110928        * xml/parser/MarkupTokenBase.h:
110929        (WebCore::MarkupTokenBase::data):
110930        (MarkupTokenBase):
110931
1109322013-01-16  Adam Barth  <abarth@webkit.org>
110933
110934        Introduce HTMLParserThread to be able to parse on a background thread
110935        https://bugs.webkit.org/show_bug.cgi?id=107071
110936
110937        Reviewed by Tony Gentilcore.
110938
110939        This patch introduces a simple thread class that we can use to parse
110940        HTML. This patch is unlikely to be the final design because we'll
110941        likely want to use libdispatch or some other platform-specific thread
110942        pool. However, this implementation is enough to let us work on the
110943        parser-specific aspects of this feature.
110944
110945        * CMakeLists.txt:
110946        * GNUmakefile.list.am:
110947        * Target.pri:
110948        * WebCore.gypi:
110949        * WebCore.vcproj/WebCore.vcproj:
110950        * WebCore.xcodeproj/project.pbxproj:
110951        * html/parser/HTMLParserThread.cpp: Added.
110952        (WebCore):
110953        (WebCore::HTMLParserThread::HTMLParserThread):
110954        (WebCore::HTMLParserThread::~HTMLParserThread):
110955        (WebCore::HTMLParserThread::start):
110956        (WebCore::HTMLParserThread::stop):
110957        (WebCore::HTMLParserThread::shared):
110958        (WebCore::HTMLParserThread::postTask):
110959        (WebCore::HTMLParserThread::threadStart):
110960        (WebCore::HTMLParserThread::runLoop):
110961        * html/parser/HTMLParserThread.h: Added.
110962        (WebCore):
110963        (HTMLParserThread):
110964        (WebCore::HTMLParserThread::create):
110965        (WebCore::HTMLParserThread::threadId):
110966
1109672013-01-16  MORITA Hajime  <morrita@google.com>
110968
110969        WebCore::ScriptRunner::timerFired() is reported to crash.
110970        https://bugs.webkit.org/show_bug.cgi?id=92211
110971
110972        Reviewed by Darin Adler.
110973
110974        This is a speculative fix to address some crash reports.
110975        Here is my rough guess.
110976
110977        The crash report says there is a PendingScript instance whose m_element is null.
110978        - It happens only if the instance is created through the default constructor,
110979        - that could happen if m_pendingAsyncScripts doesn't contains matched PendingScript in ScriptRunner::notifyScriptReady(),
110980        - that could happen when notifyScriptReady() is called more than once.
110981        - It turns out that the call site, ScriptElement::notifyFinished(), could be called multiple times since
110982          it doesn't remove itself from the CachedResource, which is done separately in ScriptElement::execute().
110983        - So if notifyFinished() is called before execute(), it could happen
110984
110985        This change added a guard to prevent notifyFinished() from being invoked multiple times.
110986        We should watch if these crash reports disappear.
110987
110988        No new tests. I couldn't create any repro for this.
110989
110990        * dom/ScriptElement.cpp:
110991        (WebCore::ScriptElement::notifyFinished):
110992
1109932013-01-16  Pablo Flouret  <pablof@motorola.com>
110994
110995        Fix mac build system warnings introduced by r139866
110996        https://bugs.webkit.org/show_bug.cgi?id=107056
110997
110998        Reviewed by Benjamin Poulain.
110999
111000        warning: no rule to process file '$(PROJECT_DIR)/css/CSSSupportsRule.h' of type sourcecode.c.h for architecture x86_64
111001        warning: no rule to process file '$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSCSSSupportsRule.h' of type sourcecode.c.h for architecture x86_64
111002
111003        {JS,}CSSSupportsRule.h somehow ended up marked as sources in the XCode
111004        project. 
111005
111006        No new tests. Build warning fix.
111007
111008        * WebCore.xcodeproj/project.pbxproj:
111009
1110102013-01-16  Elliott Sprehn  <esprehn@chromium.org>
111011
111012        Merge RenderObjectChildList::appendChildNode and insertChildNode
111013        https://bugs.webkit.org/show_bug.cgi?id=106392
111014
111015        Reviewed by Eric Seidel.
111016
111017        insertChildNode and appendChildNode are nearly identical methods and
111018        we can combine them into insertChildNode and handle cases where the
111019        renderer to insert before is null as if it was an append.
111020
111021        No new tests, just refactoring.
111022
111023        * rendering/RenderObjectChildList.cpp:
111024        (WebCore::RenderObjectChildList::insertChildNode):
111025        * rendering/RenderObjectChildList.h:
111026        (RenderObjectChildList):
111027        (WebCore::RenderObjectChildList::appendChildNode):
111028            Now inline and delegates to insertChildNode.
111029
1110302013-01-16  Elliott Sprehn  <esprehn@chromium.org>
111031
111032        Cursor stops blinking after clicking on scrollbar
111033        https://bugs.webkit.org/show_bug.cgi?id=106470
111034
111035        Reviewed by Ojan Vafai.
111036
111037        Restore the caret blinking when doing a mouseup on a
111038        scrollbar so scrolling a textarea doesn't cause the
111039        caret to freeze.
111040
111041        No new tests, there doesn't seem to be any way to test
111042        cursor blinking.
111043
111044        * page/EventHandler.cpp:
111045        (WebCore::EventHandler::handleMouseReleaseEvent):
111046        (WebCore::EventHandler::handleMouseDoubleClickEvent):
111047
1110482013-01-16  Adam Barth  <abarth@webkit.org>
111049
111050        Teach HTMLParserOptions about Settings::threadedHTMLParser
111051        https://bugs.webkit.org/show_bug.cgi?id=107068
111052
111053        Reviewed by Tony Gentilcore.
111054
111055        We use this option to enable the threaded HTML parser at runtime.
111056
111057        * html/parser/HTMLParserOptions.cpp:
111058        (WebCore::HTMLParserOptions::HTMLParserOptions):
111059        * html/parser/HTMLParserOptions.h:
111060        (HTMLParserOptions):
111061
1110622013-01-16  Brady Eidson  <beidson@apple.com>
111063
111064        Synchronous XMLHTTPRequests need to go to the NetworkProcess.
111065        <rdar://problem/12951765> and https://bugs.webkit.org/show_bug.cgi?id=106826
111066
111067        Reviewed by Sam Weinig and Alexey Proskuryakov.
111068
111069        No new tests (No changes to any config that is currently tested)
111070
111071        * loader/FrameLoader.cpp:
111072        (WebCore::FrameLoader::loadResourceSynchronously): Consult the LoaderStrategy when strategies are
111073          being used.
111074
111075        * loader/LoaderStrategy.cpp:
111076        (WebCore::LoaderStrategy::loadResourceSynchronously): Defaults to using ResourceHandle directly.
111077        * loader/LoaderStrategy.h:
111078
111079        Break out the StoredCredentials enum to a new header:
111080        * platform/network/ResourceHandle.h:
111081        * platform/network/ResourceHandleTypes.h:
111082        * GNUmakefile.list.am:
111083        * Target.pri:
111084        * WebCore.exp.in:
111085        * WebCore.vcproj/WebCore.vcproj:
111086        * WebCore.xcodeproj/project.pbxproj:
111087
1110882013-01-16  Robert Iannucci  <iannucci@chromium.org>
111089
111090        Explicitly set msvs_cygwin_shell to true for bison rule
111091        https://bugs.webkit.org/show_bug.cgi?id=107058
111092
111093        Reviewed by Tony Chang.
111094
111095        Currently, msvs_cygwin_shell is set to 1 by default. This patch
111096        explicitly sets it on the actions which will break if msvs_cygwin_shell
111097        were set to 0. This is in preparation for changing the default value of
111098        msvs_cygwin_shell, which in turn is in preparation of the removal of
111099        cygwin as a buld-system requirement.
111100
111101        Since this change will have no semantic effect, no new tests are
111102        required.
111103
111104        A previous instance of this bug is here:
111105        https://bugs.webkit.org/show_bug.cgi?id=106706
111106
111107        * WebCore.gyp/WebCore.gyp:
111108
1111092013-01-16  Benjamin Poulain  <bpoulain@apple.com>
111110
111111        Fix the warning for the exported Objective-C binding of DOMCSSSupportsRule
111112
111113        Rubber-stamped by Simon Fraser.
111114
111115        * WebCore.exp.in: r139866 exported the Objective-C class DOMCSSSupportsRule
111116        without #ifdefing the symbol between its feature flag.
111117
1111182013-01-16  Victor Carbune  <vcarbune@chromium.org>
111119
111120        Cues not rendered when they should be
111121        https://bugs.webkit.org/show_bug.cgi?id=106943
111122
111123        Reviewed by Eric Carlson.
111124
111125        Forced rendering update, even if the active set of cues didn't change.
111126
111127        Test: media/track/track-cue-rendering-mode-changed.html
111128
111129        * html/HTMLMediaElement.cpp:
111130        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): If exiting early,
111131        update the cues rendered by the text track container.
111132        (WebCore::HTMLMediaElement::textTrackModeChanged): Trigger update of the
111133        re-checking the active cues and render the ones not yet on screen.
111134
1111352013-01-16  Benjamin Poulain  <bpoulain@apple.com>
111136
111137        Force a rebuild of RenderObject
111138
111139        Unreviewed. One bot is using old object file. Change RenderObject.cpp to force it
111140        to build the file again.
111141
111142        * rendering/RenderObject.cpp:
111143        (WebCore::addLayers):
111144        (WebCore::RenderObject::findNextLayer):
111145
1111462013-01-16  Joshua Bell  <jsbell@chromium.org>
111147
111148        IndexedDB: Possible null ScriptExecutionContext passed to callbacks during frame destruction
111149        https://bugs.webkit.org/show_bug.cgi?id=107050
111150
111151        Reviewed by Tony Chang.
111152
111153        Temporary code to defend against null contexts. Will either refute a hypothesis, or we'll
111154        need to make a more systemic fix elsewhere. Either way it will be removed in a few days.
111155        We're unable to repro, but watching crash reports from users. One possible source is
111156        that during page tear-down WorkerScriptController::controllerForContext() returns null
111157        (there's a comment about that case) leading to a null context.
111158
111159        No new tests - this shouldn't be happening.
111160
111161        * Modules/indexeddb/IDBObjectStore.cpp:
111162        (WebCore::IDBObjectStore::createIndex):
111163
1111642013-01-16  Kenneth Russell  <kbr@google.com>
111165
111166        Simplify validation and data copying in WebGLBuffer
111167        https://bugs.webkit.org/show_bug.cgi?id=106975
111168
111169        Reviewed by Dean Jackson.
111170
111171        Re-landing after testing locally; was not able to reproduce the
111172        crash seen once with the earlier patch.
111173
111174        No new tests; covered by existing tests. Ran WebGL layout tests and conformance tests.
111175
111176        * html/canvas/WebGLBuffer.cpp:
111177        (WebCore::WebGLBuffer::associateBufferDataImpl):
111178            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
111179        (WebCore::WebGLBuffer::associateBufferData):
111180            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
111181        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
111182            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
111183        (WebCore::WebGLBuffer::associateBufferSubData):
111184            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
111185        * html/canvas/WebGLBuffer.h:
111186        (WebGLBuffer):
111187            Change signatures of associateBufferDataImpl and associateBufferSubDataImpl.
111188
1111892013-01-16  Timothy Hatcher  <timothy@apple.com>
111190
111191        Fix a crash when printing console messages to STDOUT.
111192
111193        https://bugs.webkit.org/show_bug.cgi?id=107039
111194
111195        Reviewed by Joseph Pecoraro.
111196
111197        * page/Console.cpp:
111198        (WebCore::internalAddMessage): Don't release the RefPtr early. Also log the line number
111199        and convert non-string arguments to strings when printing them.
111200
1112012013-01-16  Kenneth Russell  <kbr@google.com>
111202
111203        Unreviewed, rolling out r139914.
111204        http://trac.webkit.org/changeset/139914
111205        https://bugs.webkit.org/show_bug.cgi?id=106975
111206
111207        Caused crashes in compositing/visibility/visibility-simple-
111208        webgl-layer.html
111209
111210        * html/canvas/WebGLBuffer.cpp:
111211        (WebCore::WebGLBuffer::associateBufferDataImpl):
111212        (WebCore::WebGLBuffer::associateBufferData):
111213        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
111214        (WebCore::WebGLBuffer::associateBufferSubData):
111215        * html/canvas/WebGLBuffer.h:
111216        (WebGLBuffer):
111217
1112182013-01-16  Alexis Menard  <alexis@webkit.org>
111219
111220        Monitor usage of unprefixed and prefixed DOM events for CSS Transitions.
111221        https://bugs.webkit.org/show_bug.cgi?id=107004
111222
111223        Reviewed by Adam Barth.
111224
111225        Monitor the usage of transitionEnd events as well as
111226        webkitTransitionEnd events so we can know in the future how much the
111227        prefixed version is used to remove it becomes irrelevant.
111228
111229        No new tests : no behavior changes, we're just adding monitoring.
111230
111231        * dom/EventTarget.cpp:
111232        (WebCore):
111233        (WebCore::EventTarget::fireEventListeners):
111234        * page/FeatureObserver.h:
111235
1112362013-01-16  Antti Koivisto  <antti@apple.com>
111237
111238        Tighten RenderLayerModelObject subclass constructors to operate on ContainerNodes.
111239        https://bugs.webkit.org/show_bug.cgi?id=107041
111240
111241        Reviewed by Simon Fraser.
111242
111243        In rendering code only Nodes that are not ContainerNodes are used by RenderText. Tighter typing is better in general. 
111244        It also enables better code generation (especially with Document* moving from Node to ContainerNode).
111245
111246        This patch tightens constuctors for better static type checking. It also overrides node() with a covariant ContainerNode* return type
111247        version in RenderLayerModelObject. RenderObject::createObject() is tightened to take Element*.
111248        
111249        This patch does not change Node* usage in non-construction code (expect for the node() override).
111250        
111251        With some further work it should be possible to tighten most of the rendering tree to operate on Elements for even less branchiness.
111252
111253        * dom/Document.cpp:
111254        (WebCore::Document::attach):
111255        * html/shadow/SliderThumbElement.cpp:
111256        (WebCore::RenderSliderThumb::RenderSliderThumb):
111257        (WebCore::RenderSliderContainer::RenderSliderContainer):
111258        * html/shadow/SliderThumbElement.h:
111259        * rendering/RenderBlock.cpp:
111260        (WebCore::RenderBlock::RenderBlock):
111261        * rendering/RenderBlock.h:
111262        * rendering/RenderBox.cpp:
111263        (WebCore::RenderBox::RenderBox):
111264        * rendering/RenderBox.h:
111265        * rendering/RenderBoxModelObject.cpp:
111266        (WebCore::RenderBoxModelObject::RenderBoxModelObject):
111267        * rendering/RenderBoxModelObject.h:
111268        * rendering/RenderButton.cpp:
111269        (WebCore::RenderButton::RenderButton):
111270        * rendering/RenderButton.h:
111271        * rendering/RenderDeprecatedFlexibleBox.cpp:
111272        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
111273        * rendering/RenderDeprecatedFlexibleBox.h:
111274        * rendering/RenderDetailsMarker.cpp:
111275        (WebCore::RenderDetailsMarker::RenderDetailsMarker):
111276        * rendering/RenderDetailsMarker.h:
111277        * rendering/RenderDialog.h:
111278        (WebCore::RenderDialog::RenderDialog):
111279        * rendering/RenderFieldset.cpp:
111280        (WebCore::RenderFieldset::RenderFieldset):
111281        * rendering/RenderFieldset.h:
111282        * rendering/RenderFlexibleBox.cpp:
111283        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
111284        * rendering/RenderFlexibleBox.h:
111285        * rendering/RenderFlowThread.cpp:
111286        (WebCore::RenderFlowThread::RenderFlowThread):
111287        * rendering/RenderFlowThread.h:
111288        * rendering/RenderFullScreen.cpp:
111289        (RenderFullScreen::RenderFullScreen):
111290        * rendering/RenderFullScreen.h:
111291        * rendering/RenderGrid.cpp:
111292        (WebCore::RenderGrid::RenderGrid):
111293        * rendering/RenderGrid.h:
111294        * rendering/RenderImage.cpp:
111295        (WebCore::RenderImage::RenderImage):
111296        * rendering/RenderImage.h:
111297        * rendering/RenderInline.cpp:
111298        (WebCore::RenderInline::RenderInline):
111299        * rendering/RenderInline.h:
111300        * rendering/RenderLayerModelObject.cpp:
111301        (WebCore::RenderLayerModelObject::RenderLayerModelObject):
111302        * rendering/RenderLayerModelObject.h:
111303        (WebCore::RenderLayerModelObject::node):
111304        * rendering/RenderListItem.cpp:
111305        (WebCore::RenderListItem::RenderListItem):
111306        * rendering/RenderListItem.h:
111307        * rendering/RenderMediaControlElements.cpp:
111308        (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
111309        (WebCore::RenderMediaControlTimeDisplay::RenderMediaControlTimeDisplay):
111310        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement):
111311        * rendering/RenderMediaControlElements.h:
111312        * rendering/RenderMultiColumnBlock.cpp:
111313        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
111314        * rendering/RenderMultiColumnBlock.h:
111315        * rendering/RenderMultiColumnFlowThread.cpp:
111316        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
111317        * rendering/RenderMultiColumnFlowThread.h:
111318        * rendering/RenderMultiColumnSet.cpp:
111319        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
111320        * rendering/RenderMultiColumnSet.h:
111321        (RenderMultiColumnSet):
111322        * rendering/RenderNamedFlowThread.cpp:
111323        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
111324        * rendering/RenderNamedFlowThread.h:
111325        (RenderNamedFlowThread):
111326        * rendering/RenderObject.cpp:
111327        (WebCore::RenderObject::createObject):
111328        * rendering/RenderObject.h:
111329        (RenderObject):
111330        * rendering/RenderRegion.cpp:
111331        (WebCore::RenderRegion::RenderRegion):
111332        * rendering/RenderRegion.h:
111333        (RenderRegion):
111334        * rendering/RenderRegionSet.cpp:
111335        (WebCore::RenderRegionSet::RenderRegionSet):
111336        * rendering/RenderRegionSet.h:
111337        (RenderRegionSet):
111338        * rendering/RenderReplaced.cpp:
111339        (WebCore::RenderReplaced::RenderReplaced):
111340        * rendering/RenderReplaced.h:
111341        (RenderReplaced):
111342        * rendering/RenderReplica.cpp:
111343        (WebCore::RenderReplica::RenderReplica):
111344        (WebCore::RenderReplica::~RenderReplica):
111345        * rendering/RenderReplica.h:
111346        * rendering/RenderRuby.cpp:
111347        (WebCore::RenderRubyAsInline::RenderRubyAsInline):
111348        (WebCore::RenderRubyAsBlock::RenderRubyAsBlock):
111349        * rendering/RenderRuby.h:
111350        * rendering/RenderRubyBase.cpp:
111351        (WebCore::RenderRubyBase::RenderRubyBase):
111352        * rendering/RenderRubyBase.h:
111353        * rendering/RenderRubyRun.cpp:
111354        (WebCore::RenderRubyRun::RenderRubyRun):
111355        * rendering/RenderRubyRun.h:
111356        (RenderRubyRun):
111357        * rendering/RenderRubyText.cpp:
111358        (WebCore::RenderRubyText::RenderRubyText):
111359        * rendering/RenderRubyText.h:
111360        (RenderRubyText):
111361        * rendering/RenderScrollbarPart.cpp:
111362        (WebCore::RenderScrollbarPart::RenderScrollbarPart):
111363        * rendering/RenderScrollbarPart.h:
111364        (RenderScrollbarPart):
111365        * rendering/RenderSearchField.cpp:
111366        (WebCore::RenderSearchField::RenderSearchField):
111367        * rendering/RenderSearchField.h:
111368        (RenderSearchField):
111369        * rendering/RenderTable.cpp:
111370        (WebCore::RenderTable::RenderTable):
111371        * rendering/RenderTable.h:
111372        (RenderTable):
111373        * rendering/RenderTableCaption.cpp:
111374        (WebCore::RenderTableCaption::RenderTableCaption):
111375        * rendering/RenderTableCaption.h:
111376        (RenderTableCaption):
111377        * rendering/RenderTableCell.cpp:
111378        (WebCore::RenderTableCell::RenderTableCell):
111379        * rendering/RenderTableCell.h:
111380        (RenderTableCell):
111381        * rendering/RenderTableCol.cpp:
111382        (WebCore::RenderTableCol::RenderTableCol):
111383        * rendering/RenderTableCol.h:
111384        (RenderTableCol):
111385        * rendering/RenderTableRow.cpp:
111386        (WebCore::RenderTableRow::RenderTableRow):
111387        * rendering/RenderTableRow.h:
111388        (RenderTableRow):
111389        * rendering/RenderTableSection.cpp:
111390        (WebCore::RenderTableSection::RenderTableSection):
111391        * rendering/RenderTableSection.h:
111392        (RenderTableSection):
111393        * rendering/RenderTextControl.cpp:
111394        (WebCore::RenderTextControl::RenderTextControl):
111395        * rendering/RenderTextControl.h:
111396        * rendering/RenderTextControlMultiLine.cpp:
111397        (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
111398        * rendering/RenderTextControlMultiLine.h:
111399        (RenderTextControlMultiLine):
111400        * rendering/RenderTextControlSingleLine.cpp:
111401        (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
111402        * rendering/RenderTextControlSingleLine.h:
111403        (RenderTextControlSingleLine):
111404        (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
111405        * rendering/RenderTextTrackCue.cpp:
111406        (WebCore::RenderTextTrackCue::RenderTextTrackCue):
111407        * rendering/RenderView.cpp:
111408        (WebCore::RenderView::RenderView):
111409        * rendering/RenderView.h:
111410        * rendering/RenderWidget.cpp:
111411        (WebCore::RenderWidget::RenderWidget):
111412        * rendering/RenderWidget.h:
111413        * rendering/mathml/RenderMathMLBlock.cpp:
111414        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
111415        * rendering/mathml/RenderMathMLBlock.h:
111416        (WebCore::RenderMathMLTable::RenderMathMLTable):
111417        * rendering/mathml/RenderMathMLOperator.cpp:
111418        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
111419        * rendering/mathml/RenderMathMLOperator.h:
111420        * rendering/mathml/RenderMathMLRow.cpp:
111421        (WebCore::RenderMathMLRow::RenderMathMLRow):
111422        * rendering/mathml/RenderMathMLRow.h:
111423        (RenderMathMLRow):
111424        (WebCore::RenderSVGInline::RenderSVGInline):
111425        * rendering/svg/RenderSVGInline.h:
111426        * rendering/svg/RenderSVGTSpan.cpp:
111427        (WebCore::RenderSVGTSpan::RenderSVGTSpan):
111428        * rendering/svg/RenderSVGTSpan.h:
111429        * rendering/svg/RenderSVGTextPath.cpp:
111430        (WebCore::RenderSVGTextPath::RenderSVGTextPath):
111431        * rendering/svg/RenderSVGTextPath.h:
111432
1114332013-01-16  Chris Fleizach  <cfleizach@apple.com>
111434
111435        Stub out WebSpeech synthesis
111436        https://bugs.webkit.org/show_bug.cgi?id=106847
111437
111438        Reviewed by Adam Barth.
111439
111440        This adds in the necessary IDLs and stubs out the code for the WebSpeech
111441        synthesis specification.
111442        It does not turn on the feature in any platform, but it can be enabled
111443        and built for Mac.
111444
111445        The feature flag is SPEECH_SYNTHESIS.
111446
111447        * Configurations/FeatureDefines.xcconfig:
111448        * DerivedSources.make:
111449        * Modules/speech/DOMWindowSpeechSynthesis.cpp: Added.
111450        (WebCore::DOMWindowSpeechSynthesis::DOMWindowSpeechSynthesis):
111451        (WebCore::DOMWindowSpeechSynthesis::~DOMWindowSpeechSynthesis):
111452        (WebCore::DOMWindowSpeechSynthesis::from):
111453        (WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
111454        * Modules/speech/DOMWindowSpeechSynthesis.h: Added.
111455        * Modules/speech/DOMWindowSpeechSynthesis.idl: Added.
111456        * Modules/speech/SpeechSynthesis.cpp: Added.
111457        (WebCore::SpeechSynthesis::create):
111458        (WebCore::SpeechSynthesis::SpeechSynthesis):
111459        * Modules/speech/SpeechSynthesis.h: Added.
111460        (SpeechSynthesis):
111461        (WebCore::SpeechSynthesis::getVoices):
111462        * Modules/speech/SpeechSynthesis.idl: Added.
111463        * Modules/speech/SpeechSynthesisEvent.cpp: Added.
111464        (WebCore::SpeechSynthesisEvent::create):
111465        (WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
111466        * Modules/speech/SpeechSynthesisEvent.h: Added.
111467        (SpeechSynthesisEvent):
111468        (WebCore::SpeechSynthesisEvent::charIndex):
111469        (WebCore::SpeechSynthesisEvent::elapsedTime):
111470        (WebCore::SpeechSynthesisEvent::name):
111471        * Modules/speech/SpeechSynthesisEvent.idl: Added.
111472        * Modules/speech/SpeechSynthesisUtterance.cpp: Added.
111473        (WebCore::SpeechSynthesisUtterance::create):
111474        (WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
111475        (WebCore::SpeechSynthesisUtterance::scriptExecutionContext):
111476        (WebCore::SpeechSynthesisUtterance::interfaceName):
111477        * Modules/speech/SpeechSynthesisUtterance.h: Added.
111478        (SpeechSynthesisUtterance):
111479        (WebCore::SpeechSynthesisUtterance::text):
111480        (WebCore::SpeechSynthesisUtterance::setText):
111481        (WebCore::SpeechSynthesisUtterance::lang):
111482        (WebCore::SpeechSynthesisUtterance::setLang):
111483        (WebCore::SpeechSynthesisUtterance::voiceURI):
111484        (WebCore::SpeechSynthesisUtterance::setVoiceURI):
111485        (WebCore::SpeechSynthesisUtterance::volume):
111486        (WebCore::SpeechSynthesisUtterance::setVolume):
111487        (WebCore::SpeechSynthesisUtterance::rate):
111488        (WebCore::SpeechSynthesisUtterance::setRate):
111489        (WebCore::SpeechSynthesisUtterance::pitch):
111490        (WebCore::SpeechSynthesisUtterance::setPitch):
111491        * Modules/speech/SpeechSynthesisUtterance.idl: Added.
111492        * Modules/speech/SpeechSynthesisVoice.cpp: Added.
111493        (WebCore::SpeechSynthesisVoice::create):
111494        (WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):
111495        * Modules/speech/SpeechSynthesisVoice.h: Added.
111496        (SpeechSynthesisVoice):
111497        (WebCore::SpeechSynthesisVoice::voiceURI):
111498        (WebCore::SpeechSynthesisVoice::name):
111499        (WebCore::SpeechSynthesisVoice::lang):
111500        (WebCore::SpeechSynthesisVoice::localService):
111501        (WebCore::SpeechSynthesisVoice::isDefault):
111502        * Modules/speech/SpeechSynthesisVoice.idl: Added.
111503        * Modules/speech/mac: Added.
111504        * Modules/speech/mac/SpeechSynthesisMac.mm: Added.
111505        (WebCore::SpeechSynthesis::pending):
111506        (WebCore::SpeechSynthesis::speaking):
111507        (WebCore::SpeechSynthesis::paused):
111508        (WebCore::SpeechSynthesis::speak):
111509        (WebCore::SpeechSynthesis::cancel):
111510        (WebCore::SpeechSynthesis::pause):
111511        (WebCore::SpeechSynthesis::resume):
111512        * WebCore.xcodeproj/project.pbxproj:
111513        * dom/EventNames.h:
111514        * dom/EventNames.in:
111515        * dom/EventTargetFactory.in:
111516
1115172013-01-16  Sheriff Bot  <webkit.review.bot@gmail.com>
111518
111519        Unreviewed, rolling out r139853.
111520        http://trac.webkit.org/changeset/139853
111521        https://bugs.webkit.org/show_bug.cgi?id=107049
111522
111523        Broke the ChromeOS ppapi_unittests (Requested by leviw on
111524        #webkit).
111525
111526        * inspector/Inspector.json:
111527        * inspector/InspectorInstrumentation.cpp:
111528        (WebCore):
111529        * inspector/InspectorInstrumentation.h:
111530        (InspectorInstrumentation):
111531        * inspector/InspectorPageAgent.cpp:
111532        * inspector/InspectorPageAgent.h:
111533        * inspector/front-end/ResourceTreeModel.js:
111534        (WebInspector.PageDispatcher.prototype.frameDetached):
111535        * loader/NavigationScheduler.cpp:
111536        (WebCore::NavigationScheduler::clear):
111537        (WebCore::NavigationScheduler::timerFired):
111538        (WebCore::NavigationScheduler::startTimer):
111539        (WebCore::NavigationScheduler::cancel):
111540        * loader/ProgressTracker.cpp:
111541        (WebCore::ProgressTracker::progressStarted):
111542        (WebCore::ProgressTracker::finalProgressComplete):
111543
1115442013-01-16  Kenneth Russell  <kbr@google.com>
111545
111546        Simplify validation and data copying in WebGLBuffer
111547        https://bugs.webkit.org/show_bug.cgi?id=106975
111548
111549        Reviewed by Dean Jackson.
111550
111551        No new tests; covered by existing tests. Ran WebGL layout tests and conformance tests.
111552
111553        * html/canvas/WebGLBuffer.cpp:
111554        (WebCore::WebGLBuffer::associateBufferDataImpl):
111555            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
111556        (WebCore::WebGLBuffer::associateBufferData):
111557            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
111558        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
111559            Take (void*, int) pair instead of ArrayBuffer and offset. Simplifies code significantly.
111560        (WebCore::WebGLBuffer::associateBufferSubData):
111561            Pass down base pointers and sizes rather than ArrayBuffer and optional offset.
111562        * html/canvas/WebGLBuffer.h:
111563        (WebGLBuffer):
111564            Change signatures of associateBufferDataImpl and associateBufferSubDataImpl.
111565
1115662013-01-16  Arnaud Renevier  <a.renevier@sisa.samsung.com>
111567
111568        inconsistency in drawImage with target rect negative dimensions.
111569        https://bugs.webkit.org/show_bug.cgi?id=100026
111570
111571        Reviewed by Dean Jackson.
111572
111573        Remove -1, -1 special case in drawImage and drawImageBuffer. Replace
111574        all -1 -1 arguments calls to with the correct rectangle dimensions.
111575
111576        Remove FloatRect(0, 0, -1, -1) default argument for srcRect, and
111577        instead, add new overloaded functions to create a FloatRect from image
111578        size.
111579
111580        Replace -1 -1 arguments calls in FEComposite::platformApplySoftware
111581        with correct rectangle dimensions.
111582
111583        Replace ImageGStreamer rect method (which may return -1 -1 rectangle)
111584        with cropRect method, and make caller check for rectangle emptiness.
111585
111586        * fast/canvas/drawImage-with-negative-source-destination-expected.txt:
111587        * fast/canvas/drawImage-with-negative-source-destination.js:
111588
111589        * platform/graphics/GraphicsContext.cpp:
111590        (WebCore::GraphicsContext::drawImage):
111591        (WebCore):
111592        (WebCore::GraphicsContext::drawImageBuffer):
111593        * platform/graphics/GraphicsContext.h:
111594        (GraphicsContext):
111595        * platform/graphics/filters/FEComposite.cpp:
111596        (WebCore::FEComposite::platformApplySoftware):
111597        * platform/graphics/gstreamer/ImageGStreamer.h:
111598        (WebCore::ImageGStreamer::rect):
111599
1116002013-01-16  Simon Fraser  <simon.fraser@apple.com>
111601
111602        Allow PaintInfo to carry all PaintBehavior flags
111603        https://bugs.webkit.org/show_bug.cgi?id=106980
111604
111605        Reviewed by Beth Dakin.
111606
111607        In r139908 I missed one instance of the PaintInfo constructor that should take PaintBehaviorNormal
111608        instead of "false".
111609
111610        * rendering/RenderScrollbarPart.cpp:
111611        (WebCore::RenderScrollbarPart::paintIntoRect):
111612
1116132013-01-16  Simon Fraser  <simon.fraser@apple.com>
111614
111615        Allow PaintInfo to carry all PaintBehavior flags
111616        https://bugs.webkit.org/show_bug.cgi?id=106980
111617
111618        Reviewed by Sam Weinig.
111619        
111620        PaintInfo has a single boolean for forceBlackText, but I'll be adding additional
111621        paint behaviors that I'd like to access from PaintInfo, so it makes sense for
111622        PaintInfo to just include the set of PaintBehavior flags.
111623        
111624        Also add default values in the constructor arguments for rarely used parameters.
111625
111626        No behavior change, no tests.
111627
111628        * rendering/EllipsisBox.cpp:
111629        (WebCore::EllipsisBox::paint): Use the forceBlackText() function.
111630        * rendering/InlineTextBox.cpp:
111631        (WebCore::InlineTextBox::paint): Call forceBlackText().
111632        * rendering/PaintInfo.h:
111633        (WebCore::PaintInfo::PaintInfo): Pass PaintBehavior rather than a forceBlackText boolean.
111634        (WebCore::PaintInfo::forceBlackText): Return true if the behavior flags contain PaintBehaviorForceBlackText.
111635        * rendering/RenderBoxModelObject.cpp:
111636        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Pass PaintBehaviorForceBlackText instead of 'true'
111637        when painting for background-clip: text.
111638        * rendering/RenderLayer.cpp:
111639        (WebCore::RenderLayer::paintLayerContents): Pass PaintBehaviorNormal where we used to pass 'false',
111640        and omit default 0 parameters.
111641        * rendering/svg/SVGRenderingContext.cpp:
111642        (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer): PaintBehaviorNormal and remove default params.
111643
1116442013-01-16  Tim Horton  <timothy_horton@apple.com>
111645
111646        Add a missing #if to fix the Mac build sans ENABLE_CSS_FILTERS.
111647
111648        Rubber-stamped by Simon Fraser.
111649
111650        * platform/graphics/ca/GraphicsLayerCA.cpp:
111651        (WebCore::GraphicsLayerCA::cloneLayer):
111652
1116532013-01-16  Kentaro Hara  <haraken@chromium.org>
111654
111655        [V8] Make a creationContext parameter of toV8() mandatory
111656        https://bugs.webkit.org/show_bug.cgi?id=107020
111657
111658        Reviewed by Adam Barth.
111659
111660        Currently a creationContext parameter of toV8() is optional:
111661
111662          Handle<Value> toV8(..., Handle<Object> creationContext = Handle<Object>(), ...) {
111663            ...;
111664          }
111665
111666        On the other hand, looking at the implementation of
111667        V8WrapperInstantiationScope:
111668
111669            explicit V8WrapperInstantiationScope(v8::Handle<v8::Object> creationContext)
111670                : m_didEnterContext(false)
111671                , m_context(v8::Context::GetCurrent())
111672            {
111673                if (creationContext.IsEmpty()) // We do nothing for this case!
111674                    return;
111675                v8::Handle<v8::Context> contextForWrapper = creationContext->CreationContext();
111676                if (contextForWrapper == m_context)
111677                    return;
111678                m_context = v8::Local<v8::Context>::New(contextForWrapper);
111679                m_didEnterContext = true;
111680                m_context->Enter();
111681            }
111682
111683        we're assuming that a creationContext parameter is passed
111684        to toV8() when a creationContext exists. In other words,
111685        if we forget to pass a creationContext parameter, we will
111686        end up with creating an object on the current context, which
111687        is wrong. To avoid the mistake, we should make the
111688        creationContext parameter mandatory. When we really do not
111689        have a creationContext, we can pass Handle<Object>() explicitly.
111690
111691        No tests. No change in behavior.
111692
111693        * bindings/scripts/CodeGeneratorV8.pm:
111694        (GenerateHeader):
111695        * bindings/scripts/test/V8/V8Float64Array.h:
111696        (WebCore::toV8):
111697        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
111698        (WebCore::toV8):
111699        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
111700        (WebCore::toV8):
111701        * bindings/scripts/test/V8/V8TestEventConstructor.h:
111702        (WebCore::toV8):
111703        * bindings/scripts/test/V8/V8TestEventTarget.h:
111704        (WebCore::toV8):
111705        * bindings/scripts/test/V8/V8TestException.h:
111706        (WebCore::toV8):
111707        * bindings/scripts/test/V8/V8TestInterface.h:
111708        (WebCore::toV8):
111709        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
111710        (WebCore::toV8):
111711        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
111712        (WebCore::toV8):
111713        * bindings/scripts/test/V8/V8TestNode.h:
111714        (WebCore::toV8):
111715        * bindings/scripts/test/V8/V8TestObj.h:
111716        (WebCore::toV8):
111717        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
111718        (WebCore::toV8):
111719        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
111720        (WebCore::toV8):
111721        * bindings/v8/IDBBindingUtilities.cpp:
111722        (WebCore::injectIDBKeyIntoScriptValue):
111723        (WebCore::idbKeyToScriptValue):
111724        * bindings/v8/ScriptController.cpp:
111725        (WebCore::createScriptObject):
111726        (WebCore::ScriptController::createScriptObjectForPluginElement):
111727        * bindings/v8/ScriptDebugServer.cpp:
111728        (WebCore::ScriptDebugServer::currentCallFrame):
111729        * bindings/v8/ScriptObject.cpp:
111730        (WebCore::ScriptGlobalObject::set):
111731        * bindings/v8/V8AbstractEventListener.cpp:
111732        (WebCore::V8AbstractEventListener::handleEvent):
111733        (WebCore::V8AbstractEventListener::getReceiverObject):
111734        * bindings/v8/V8DOMWindowShell.cpp:
111735        (WebCore::V8DOMWindowShell::updateDocumentProperty):
111736        * bindings/v8/V8LazyEventListener.cpp:
111737        (WebCore::toObjectWrapper):
111738        * bindings/v8/V8MutationCallback.cpp:
111739        (WebCore::V8MutationCallback::handleEvent):
111740        * bindings/v8/V8NodeFilterCondition.cpp:
111741        (WebCore::V8NodeFilterCondition::acceptNode):
111742        * bindings/v8/V8WorkerContextEventListener.cpp:
111743        (WebCore::V8WorkerContextEventListener::handleEvent):
111744        (WebCore::V8WorkerContextEventListener::getReceiverObject):
111745        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
111746        (WebCore::V8SQLStatementErrorCallback::handleEvent):
111747        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
111748        (WebCore::InjectedScriptHost::nodeAsScriptValue):
111749        * css/MediaQueryListListener.cpp:
111750        (WebCore::MediaQueryListListener::queryChanged):
111751        * testing/v8/WebCoreTestSupport.cpp:
111752        (WebCoreTestSupport::injectInternalsObject):
111753
1117542013-01-15  Jer Noble  <jer.noble@apple.com>
111755
111756        Add a Setting to disable QTKit media engine.
111757        https://bugs.webkit.org/show_bug.cgi?id=106972
111758
111759        Reviewed by Eric Carlson.
111760
111761        Allow the MediaPlayerPrivateQTKit engine to be disabled by adding a
111762        runtime setting to Settings. Make the setting 'live' by requerying the
111763        installed media engines when the setting changes.
111764
111765        * WebCore.exp.in: Add new symbols to export list.
111766        * page/Settings.cpp: Add new gQTKitEnabled global.
111767        (WebCore::Settings::setAVFoundationEnabled): Requery media engines.
111768        (WebCore::Settings::setQTKitEnabled): Ditto. Setter for global setting variable.
111769        * page/Settings.h:
111770        (WebCore::Settings::isQTKitEnabled): Getter for same.
111771        * platform/graphics/MediaPlayer.cpp:
111772        (WebCore::installedMediaEngines): Check isQTKitEnabled() before adding
111773            MediaPlayerPrivateQTKit engine.
111774        * html/HTMLMediaElement.cpp:
111775        (WebCore::HTMLMediaElement::requeryMediaEngines): Pass through to MediaPlayer.
111776        * html/HTMLMediaElement.h:
111777        * platform/graphics/MediaPlayer.cpp:
111778        (WebCore::installedMediaEngines): Take an optional requery options parameter.
111779        (WebCore::MediaPlayer::requeryMediaEngines): Pass through to installedMediaEngines().
111780        * platform/graphics/MediaPlayer.h:
111781
1117822013-01-16  Christophe Dumez  <christophe.dumez@intel.com>
111783
111784        [gstreamer] Some media tests occasionally crash with gstreamer 1.0 backend
111785        https://bugs.webkit.org/show_bug.cgi?id=106551
111786
111787        Reviewed by Philippe Normand.
111788
111789        ImageGStreamerCairo was passing mapped memory to
111790        cairo_image_surface_create_for_data() and then unmapping it straight
111791        away even though the cairo_surface_t is still used. The cairo
111792        documentation states:
111793        "The output buffer must be kept around until the cairo_surface_t is
111794        destroyed or cairo_surface_finish() is called on the surface."
111795
111796        This patch keeps the GstBuffer memory mapped until the ImageGStreamer
111797        is destroyed so that the internal cairo_surface_t stays valid while
111798        avoiding copying the image data.
111799
111800        No new tests, already covered by existing tests.
111801
111802        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
111803        (WTF::adoptGRef):
111804        (WTF):
111805        (WTF::GstBuffer):
111806        * platform/graphics/gstreamer/GRefPtrGStreamer.h:
111807        (WTF): Add support for using GRefPtr with GstBuffer.
111808        * platform/graphics/gstreamer/ImageGStreamer.h:
111809        (ImageGStreamer):
111810        * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
111811        (ImageGStreamer::ImageGStreamer):
111812        (ImageGStreamer::~ImageGStreamer):
111813
1118142013-01-16  Mike Reed  <reed@google.com>
111815
111816        Use SkMatrix::I() when we need to pass identity, rather than constructing a new matrix.
111817        https://bugs.webkit.org/show_bug.cgi?id=107016
111818
111819        Reviewed by James Robinson.
111820
111821        No new tests. existing tests exercise this code.
111822
111823        The default constructor is being deprecated, so this change is also part of that effort,
111824        though it is a perf-improvement regardless, since we avoid making a new (temp) matrix.
111825
111826        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
111827        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
111828
1118292013-01-16  Ojan Vafai  <ojan@chromium.org>
111830
111831        RenderListMarker::computePreferredLogicalWidth should not be public
111832        https://bugs.webkit.org/show_bug.cgi?id=106956
111833
111834        Reviewed by Tony Chang.
111835
111836        RenderListItem was calling computePreferredLogicalWidths for the side
111837        effects of updating the marker content and margins. Instead, call
111838        updateMarginsAndContent directly.
111839
111840        * rendering/RenderListItem.cpp:
111841        (WebCore::RenderListItem::updateMarkerLocation):
111842        * rendering/RenderListMarker.cpp:
111843        (WebCore::RenderListMarker::layout):
111844        The isImage() codepath never calls computePreferredLogicalWidths, so we need to make
111845        sure the content and margins are updated.
111846
111847        (WebCore::RenderListMarker::updateContent):
111848        (WebCore::RenderListMarker::computePreferredLogicalWidths):
111849        (WebCore::RenderListMarker::updateMarginsAndContent):
111850        * rendering/RenderListMarker.h:
111851
1118522013-01-16  Claudio Saavedra  <csaavedra@igalia.com>
111853
111854        [GTK] Safeguard against possible NULL-dereference
111855        https://bugs.webkit.org/show_bug.cgi?id=104931
111856
111857        Reviewed by Martin Robinson.
111858
111859        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
111860        (webkitAccessibleGetIndexInParent): Move the NULL-safeguard to a
111861        place where it actually makes sense.
111862
1118632013-01-16  Avi Drissman  <avi@google.com>
111864
111865        West-panning cursor does not match resize cursor, unlike all other directions
111866        https://bugs.webkit.org/show_bug.cgi?id=89405
111867
111868        Reviewed by Alexey Proskuryakov.
111869
111870        Existing manual tests.
111871
111872        * platform/mac/CursorMac.mm:
111873        (WebCore::Cursor::ensurePlatformCursor):
111874
1118752013-01-16  Andrey Adaikin  <aandrey@chromium.org>
111876
111877        Web Inspector: array grouping does not work for float number keys
111878        https://bugs.webkit.org/show_bug.cgi?id=106998
111879
111880        Reviewed by Pavel Feldman.
111881
111882        Now we do the array index check according to the ECMAScript 5, section 15.4:
111883        "A property name P (in the form of a String value) is an array index if and only if ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal to 2^32-1."
111884
111885        * inspector/front-end/ObjectPropertiesSection.js:
111886        (.buildObjectFragment):
111887
1118882013-01-16  Sergey Ryazanov  <serya@chromium.org>
111889
111890        Web Inspector: Show formatted content of JSON request
111891        https://bugs.webkit.org/show_bug.cgi?id=106900
111892
111893        Reviewed by Vsevolod Vlasov.
111894
111895        "Request payload" section showed raw content for POST requests.
111896        This change show it in structured format if it's JSON parsable.
111897        Raw format is also available.
111898
111899        * inspector/front-end/RequestHeadersView.js:
111900        (WebInspector.RequestHeadersView.prototype._refreshQueryString):
111901        (WebInspector.RequestHeadersView.prototype._refreshFormData):
111902        (WebInspector.RequestHeadersView.prototype.toggleViewSource):
111903        (WebInspector.RequestHeadersView.prototype._refreshParams):
111904
1119052013-01-16  Vsevolod Vlasov  <vsevik@chromium.org>
111906
111907        Web Inspector: UISourceCode scriptFile / styleFile should be reset on navigation (debugger or css model reset).
111908        https://bugs.webkit.org/show_bug.cgi?id=107008
111909
111910        Reviewed by Pavel Feldman.
111911
111912        ScriptFiles and styleFiles are now reset and disposed on UISourceCodes on corresponding models reset.
111913        StyleSourceMapping now tries to setup mapping for newly added resource as well as for uiSourceCodes previously.
111914
111915        * inspector/front-end/CSSStyleModel.js:
111916        (WebInspector.CSSStyleModel):
111917        (WebInspector.CSSStyleModel.prototype._mainFrameCreatedOrNavigated):
111918        * inspector/front-end/ResourceScriptMapping.js:
111919        (WebInspector.ResourceScriptMapping):
111920        (WebInspector.ResourceScriptMapping.prototype._unbindUISourceCodeFromScripts):
111921        (WebInspector.ResourceScriptMapping.prototype._initialize):
111922        (WebInspector.ResourceScriptMapping.prototype._debuggerReset):
111923        (WebInspector.ResourceScriptFile.prototype.dispose):
111924        * inspector/front-end/ResourceTreeModel.js:
111925        (WebInspector.ResourceTreeModel.prototype._addFrame):
111926        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
111927        * inspector/front-end/ScriptSnippetModel.js:
111928        (WebInspector.ScriptSnippetModel):
111929        (WebInspector.ScriptSnippetModel.prototype._debuggerReset):
111930        * inspector/front-end/StylesSourceMapping.js:
111931        (WebInspector.StylesSourceMapping):
111932        (WebInspector.StylesSourceMapping.prototype._resourceAdded):
111933        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
111934        (WebInspector.StylesSourceMapping.prototype._bindUISourceCode):
111935        (WebInspector.StylesSourceMapping.prototype._projectWillReset):
111936        (WebInspector.StylesSourceMapping.prototype._initialize):
111937        (WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
111938        (WebInspector.StyleFile.prototype.dispose):
111939
1119402013-01-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
111941
111942        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
111943        https://bugs.webkit.org/show_bug.cgi?id=105552
111944
111945        Reverting 139877. It made a couple of API tests fail.
111946
111947        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
111948        * platform/graphics/gstreamer/GStreamerVersioning.h:
111949        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
111950        (StreamingClient):
111951        (_WebKitWebSrcPrivate):
111952        (webKitWebSrcFinalize):
111953        (webKitWebSrcStop):
111954        (StreamingClient::didReceiveData):
111955        * platform/network/ResourceHandleClient.h:
111956        (ResourceHandleClient):
111957        * platform/network/ResourceHandleInternal.h:
111958        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
111959        (ResourceHandleInternal):
111960        * platform/network/soup/ResourceHandleSoup.cpp:
111961        (WebCore::cleanupSoupRequestOperation):
111962        (WebCore::nextMultipartResponsePartCallback):
111963        (WebCore::sendRequestCallback):
111964        (WebCore::readCallback):
111965
1119662013-01-16  Andrey Kosyakov  <caseq@chromium.org>
111967
111968        Web Inspector: cookies with empty value are parsed incorrectly
111969        https://bugs.webkit.org/show_bug.cgi?id=107012
111970
111971        Reviewed by Pavel Feldman.
111972
111973        Require cookie value to be a string, not a non-empty string, before
111974        employing legacy compatibility hack of treating bare token as value
111975        for the cookie with an empty name.
111976
111977        * inspector/front-end/CookieParser.js:
111978        (WebInspector.CookieParser.prototype._addCookie):
111979
1119802013-01-16  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
111981
111982        Unreviewed EFL build fix after r139877.
111983
111984        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
111985        (getGstBufferDataPointer): Add const modifier to webkitGstMapInfoQuarkString.
111986
1119872013-01-16  Andrey Kosyakov  <caseq@chromium.org>
111988
111989        Web Inspector: [Extensions API] remove inspectedWindow.onReset event
111990        https://bugs.webkit.org/show_bug.cgi?id=107009
111991
111992        Reviewed by Vsevolod Vlasov.
111993
111994        * inspector/front-end/ExtensionAPI.js:
111995        (defineCommonExtensionSymbols):
111996        (injectedExtensionAPI.InspectorExtensionAPI):
111997        * inspector/front-end/ExtensionServer.js:
111998        (WebInspector.ExtensionServer.prototype.initExtensions):
111999
1120002013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>
112001
112002        Web Inspector: fix text-editor-highlight-regexp test
112003        https://bugs.webkit.org/show_bug.cgi?id=107006
112004
112005        Reviewed by Vsevolod Vlasov.
112006
112007        Use 'height: 100%' instead of pixel values on highlight spans to bring in some platform independency in test expectations.
112008
112009        No new tests: no changes in behaviour.
112010
112011        * inspector/front-end/DefaultTextEditor.js:
112012        (WebInspector.TextEditorMainPanel.prototype._measureRegex):
112013        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
112014        * inspector/front-end/textEditor.css:
112015        (.text-editor-overlay-highlight):
112016        (.webkit-line-content):
112017
1120182013-01-16  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
112019
112020        [Qt] Use the shared HistoryItem serialization for QWebHistory
112021        https://bugs.webkit.org/show_bug.cgi?id=106671
112022
112023        Reviewed by Allan Sandfeld Jensen.
112024
112025        This allows a few things missing from the previous serialization code
112026        to function while using commonly maintained code:
112027        - The itemSequenceNumber and documentSequenceNumber that were needed
112028          to properly restore same-document navigations
112029        - The form data
112030        - The navigation hierarchy mapping the frame tree
112031
112032        * history/HistoryItem.h:
112033        (HistoryItem):
112034        * history/qt/HistoryItemQt.cpp:
112035        (QDataStreamCoder):
112036        (WebCore):
112037        (WebCore::QDataStreamCoder::QDataStreamCoder):
112038        (WebCore::QDataStreamCoder::encodeBytes):
112039        (WebCore::QDataStreamCoder::encodeBool):
112040        (WebCore::QDataStreamCoder::encodeUInt32):
112041        (WebCore::QDataStreamCoder::encodeUInt64):
112042        (WebCore::QDataStreamCoder::encodeInt32):
112043        (WebCore::QDataStreamCoder::encodeInt64):
112044        (WebCore::QDataStreamCoder::encodeFloat):
112045        (WebCore::QDataStreamCoder::encodeDouble):
112046        (WebCore::QDataStreamCoder::encodeString):
112047        (WebCore::QDataStreamCoder::decodeBytes):
112048        (WebCore::QDataStreamCoder::decodeBool):
112049        (WebCore::QDataStreamCoder::decodeUInt32):
112050        (WebCore::QDataStreamCoder::decodeUInt64):
112051        (WebCore::QDataStreamCoder::decodeInt32):
112052        (WebCore::QDataStreamCoder::decodeInt64):
112053        (WebCore::QDataStreamCoder::decodeFloat):
112054        (WebCore::QDataStreamCoder::decodeDouble):
112055        (WebCore::QDataStreamCoder::decodeString):
112056        (WebCore::HistoryItem::restoreState):
112057        (WebCore::WebCore::HistoryItem::saveState):
112058
1120592013-01-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
112060
112061        [GStreamer][Soup] Let GStreamer provide the buffer data is downloaded to, to avoid copying
112062        https://bugs.webkit.org/show_bug.cgi?id=105552
112063
112064        Reviewed by Philippe Normand.
112065
112066        Makes it possible for the GStreamer media backend to provide the buffer to which
112067        the Soup networking backend will use to download data to. This makes copying
112068        memory unnecessary when ResourceHandle hands data over to the media player's
112069        StreamingClient. Thanks to Dan Winship for help designing the interface.
112070
112071        No behaviour change, covered by existing tests.
112072
112073        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
112074        (getGstBufferSize): Abstract obtaining the size of the buffer, so the code
112075        is cleaner while still working for both GST 0.10 and 1.0.
112076        (setGstBufferSize): Ditto, but for setting the size.
112077        (getGstBufferDataPointer): Ditto, but for grabbing the data pointer.
112078        (mapGstBuffer): Convenience method to take care of mapping the buffer so that
112079        we can provide the data pointer to ResourceHandle.
112080        (unmapGstBuffer): Convenience method which takes care of unmapping the buffer
112081        and properly freeing the GstMapInfo.
112082        * platform/graphics/gstreamer/GStreamerVersioning.h:
112083        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
112084        (StreamingClient): New methods.
112085        (_WebKitWebSrcPrivate): We now store the GstBuffer we provided the data pointer from
112086        so we can later unmap it and push it to the pipeline.
112087        (webKitWebSrcDispose): Deal with the GstBuffer in case it exists when the source is
112088        destroyed.
112089        (webKitWebSrcStop): Also clear the GstBuffer in this case.
112090        (StreamingClient::didReceiveData): Handle the hand-over of the buffer.
112091        (StreamingClient::getBuffer): Provide ResourceHandle with a new GstBuffer's data pointer.
112092        * platform/network/ResourceHandleClient.h:
112093        (ResourceHandleClient):
112094        (WebCore::ResourceHandleClient::ResourceHandleClient): Constructor to initialize the buffer
112095        member variable to 0.
112096        (WebCore::ResourceHandleClient::~ResourceHandleClient): Destructor to free the buffer if it
112097        has been allocated.
112098        (WebCore::ResourceHandleClient::getBuffer): Default implementation which returns a
112099        newly allocated char pointer.
112100        * platform/network/ResourceHandleInternal.h:
112101        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
112102        (ResourceHandleInternal): Store actual buffer size, which is no longer a constant.
112103        * platform/network/soup/ResourceHandleSoup.cpp:
112104        (WebCore::cleanupSoupRequestOperation): Clear the buffer pointer, the life-cycle of the
112105        buffer is handled by the ResourceHandleClient.
112106        (WebCore::nextMultipartResponsePartCallback): Get a new buffer from the client before reading.
112107        (WebCore::sendRequestCallback): Ditto.
112108        (WebCore::readCallback): Ditto.
112109
1121102013-01-16  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
112111
112112        [Qt] Crash in WebCore::CachedFrame::destroy
112113        https://bugs.webkit.org/show_bug.cgi?id=104525
112114
112115        Reviewed by Adam Barth.
112116
112117        Add an assert to increase the chances of catching this crash
112118        early on in the future.
112119
112120        * dom/Document.cpp:
112121        (WebCore::Document::takeDOMWindowFrom):
112122
1121232013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>
112124
112125        Web Inspector: fix Сlosure warnings in devTools front-end
112126        https://bugs.webkit.org/show_bug.cgi?id=106993
112127
112128        Reviewed by Vsevolod Vlasov.
112129
112130        Add missing annotations and rename Element.remove() method to avoid collision with HTMLSelectElement.remove() method.
112131
112132        No new tests: no change in behaviour.
112133
112134        * inspector/front-end/DOMAgent.js:
112135        (WebInspector.DOMNode.prototype.hasChildNodes):
112136        (WebInspector.DOMNode.prototype.getChildNodes):
112137        * inspector/front-end/DOMExtension.js:
112138        (Element.prototype.removeSelf):
112139        (removeSubsequentNodes):
112140        * inspector/front-end/DefaultTextEditor.js:
112141        * inspector/front-end/SettingsScreen.js:
112142        (WebInspector.OverridesSettingsTab):
112143        * inspector/front-end/SourceTokenizer.js:
112144        (WebInspector.SourceTokenizer):
112145
1121462013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>
112147
112148        Web Inspector: fix backward compatibility issues with Element.remove() method
112149        https://bugs.webkit.org/show_bug.cgi?id=106996
112150
112151        Reviewed by Vsevolod Vlasov.
112152
112153        Add javascript implementations for CharacterData.prototype.remove and DocumentType.prototype.remove.
112154
112155        No new tests: no change in behaviour.
112156
112157        * inspector/front-end/DOMExtension.js:
112158
1121592013-01-16  Zeno Albisser  <zeno@webkit.org>
112160
112161        GraphicsSurfaceGLX is leaking an XWindow
112162        https://bugs.webkit.org/show_bug.cgi?id=107002
112163
112164        The XWindow created as a backing surface for
112165        the GraphicsSurfaceGLX needs to be destroyed
112166        together with the GraphicsSurface.
112167
112168        Reviewed by Noam Rosenthal.
112169
112170        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
112171        (WebCore::GraphicsSurfacePrivate::clear):
112172
1121732013-01-16  Pablo Flouret  <pablof@motorola.com>
112174
112175        Implement CSSSupportsRule
112176        https://bugs.webkit.org/show_bug.cgi?id=104822
112177
112178        Reviewed by Allan Sandfeld Jensen.
112179
112180        http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface
112181
112182        Right now, @supports is not implemented as a proper CSSRule. Apart from
112183        the CSSOM implications it gives wrong results when, for instance, an
112184        @supports rule is nested inside a @media rule.
112185
112186        Test: css3/supports-cssom.html
112187
112188        * CMakeLists.txt:
112189        * DerivedSources.cpp:
112190        * DerivedSources.make:
112191        * DerivedSources.pri:
112192        * GNUmakefile.list.am:
112193        * Target.pri:
112194        * WebCore.exp.in:
112195        * WebCore.gypi:
112196        * WebCore.vcproj/WebCore.vcproj:
112197        * WebCore.xcodeproj/project.pbxproj:
112198            Add CSSSupportsRule.* and associated files.
112199
112200        * bindings/js/JSCSSRuleCustom.cpp:
112201        (WebCore::toJS):
112202        * bindings/objc/DOMCSS.mm:
112203        (kitClass):
112204        * bindings/v8/custom/V8CSSRuleCustom.cpp:
112205        (WebCore::wrap):
112206            Create the correct wrappers for the rule.
112207
112208        * css/CSSGrammar.y.in:
112209        * css/CSSParser.cpp:
112210        (WebCore::CSSParser::createSupportsRule):
112211        (WebCore::CSSParser::markSupportsRuleHeaderStart):
112212        (WebCore::CSSParser::markSupportsRuleHeaderEnd):
112213        * css/CSSParser.h:
112214            Create the supports rule when parsing and add it where it corresponds,
112215            instead of directly adding the child rules to the stylesheet.
112216
112217        * css/CSSPropertySourceData.h:
112218        * css/CSSRule.h:
112219        * css/CSSRule.idl:
112220            Add SUPPORTS_RULE type to enums.
112221
112222        * css/CSSSupportsRule.cpp: Added.
112223        (WebCore::CSSSupportsRule::CSSSupportsRule):
112224        (WebCore::CSSSupportsRule::~CSSSupportsRule):
112225        (WebCore::CSSSupportsRule::cssText):
112226        (WebCore::CSSSupportsRule::conditionText):
112227        * css/CSSSupportsRule.h: Added.
112228        (WebCore::CSSSupportsRule::create):
112229        * css/CSSSupportsRule.idl: Added.
112230            DOM interface.
112231
112232        * css/RuleSet.cpp:
112233        (WebCore::RuleSet::addChildRules):
112234            Add rules included in the @supports rule.
112235
112236        * css/StyleResolver.cpp:
112237        (WebCore::collectCSSOMWrappers):
112238            Collect CSSSupportsRule wrappers.
112239
112240        * css/StyleRule.cpp:
112241        (WebCore::StyleRuleBase::reportMemoryUsage):
112242        (WebCore::StyleRuleBase::destroy):
112243        (WebCore::StyleRuleBase::copy):
112244        (WebCore::StyleRuleBase::createCSSOMWrapper):
112245        (WebCore::StyleRuleSupports::StyleRuleSupports):
112246        * css/StyleRule.h:
112247        (StyleRuleBase):
112248        (WebCore::StyleRuleBase::isSupportsRule):
112249        (StyleRuleSupports):
112250        (WebCore::StyleRuleSupports::create):
112251        (WebCore::StyleRuleSupports::conditionText):
112252        (WebCore::StyleRuleSupports::conditionIsSupported):
112253        (WebCore::StyleRuleSupports::copy):
112254        (WebCore::toStyleRuleSupports):
112255            New subclass of StyleRuleBlock: StyleRuleSupports.
112256
112257        * css/StyleSheetContents.cpp:
112258        (WebCore::childRulesHaveFailedOrCanceledSubresources):
112259        * inspector/InspectorStyleSheet.cpp:
112260        (flattenSourceData):
112261        (WebCore::asCSSRuleList):
112262            Handle @supports rules where needed.
112263
1122642013-01-16  Kent Tamura  <tkent@chromium.org>
112265
112266        INPUT_MULTIPLE_FIELDS_UI: Unable to edit a time field with step=86400, and confusing appearance
112267        https://bugs.webkit.org/show_bug.cgi?id=106983
112268
112269        Reviewed by Kentaro Hara.
112270
112271        For example, we show a read-only hour field and a read-only minutes
112272        field for <input type=time min="17:00" step=86400> because the step
112273        value is 24 hours and the hour field can be only 17. However, we need to
112274        provide a way to clear the value of the time field in such case. We
112275        shouldn't make the hour field read-only if no other fields are editable.
112276
112277        - We don't make hour fields read-only for input[type=time].
112278
112279        - We make hour fields read-only for input[type=datetime-local] only if
112280          year, month, or day field is editable. e.g.
112281          <input type=datetime-local min=2013-01-16T17:00 step=86400>:
112282            The hour field is read-only, and year/month/day fields are editable.
112283          <input type=datetime-local min=2013-01-16T17:00 max=2013-01-16T18:00 step=86400>:
112284            The hour field is editable, and year/month/day fields are read-only.
112285
112286        Test: fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html
112287
112288        * html/shadow/DateTimeEditElement.cpp:
112289        (DateTimeEditBuilder): Declare new functions.
112290        (WebCore::DateTimeEditBuilder::getRangeOfDayOfMonthField):
112291        Added a function by extracting some code from visitField.
112292        (WebCore::DateTimeEditBuilder::visitField):
112293        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldReadOnly):
112294        Added a function by extracting some code from visitField.
112295        (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
112296        If the type is "time", we don't make hour fields read-only.
112297        Otherwise, we don't make hour fields read-only if year/month/day fields
112298        are read-only. Note that we don't need to check read-only status of year
112299        and month fields explicitly here because a day field can be read-only
112300        only if the year field and the month field are read-only.
112301
1123022013-01-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
112303
112304        [TexMap] Composited CSS shaders crash when using non-GL TextureMapper
112305        https://bugs.webkit.org/show_bug.cgi?id=106796
112306
112307        Reviewed by Noam Rosenthal.
112308
112309        Fail gracefully when FilterEffectRenderer fails to build the filter effects.
112310
112311        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
112312        (WebCore::BitmapTextureImageBuffer::applyFilters):
112313
1123142013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>
112315
112316        Web Inspector: Store project UISourceCodes in a map with uri as a key for faster lookup.
112317        https://bugs.webkit.org/show_bug.cgi?id=106911
112318
112319        Reviewed by Pavel Feldman.
112320
112321        * inspector/front-end/Workspace.js:
112322        (WebInspector.Project):
112323        (WebInspector.Project.prototype._fileAdded):
112324        (WebInspector.Project.prototype._fileRemoved):
112325        (WebInspector.Project.prototype._reset):
112326        (WebInspector.Project.prototype.uiSourceCodeForOriginURL):
112327        (WebInspector.Project.prototype.uiSourceCodeForURI):
112328        (WebInspector.Project.prototype.uiSourceCodes):
112329
1123302013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>
112331
112332        Web Inspector: Introduce file mapping allowing to map network loaded scripts and stylesheets to file system files.
112333        https://bugs.webkit.org/show_bug.cgi?id=106795
112334
112335        Reviewed by Pavel Feldman.
112336
112337        Introduced file mapping for inspector.
112338        FileMapping is essentially an array of MappingEntries where each MappingEntry is a pair of urlPrefix and pathPrefix.
112339        When scripts and stylesheets are mapped to uiSourceCodes FileMapping methods are used to establish
112340        prefix based matching with file system uiSourceCodes if possible.
112341
112342        Test: inspector/file-mapping.html
112343
112344        * WebCore.gypi:
112345        * WebCore.vcproj/WebCore.vcproj:
112346        * inspector/compile-front-end.py:
112347        * inspector/front-end/CompilerScriptMapping.js:
112348        (WebInspector.CompilerScriptMapping):
112349        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
112350        (WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
112351        (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
112352        (WebInspector.CompilerScriptMapping.prototype.get addScript):
112353        (WebInspector.CompilerScriptMapping.prototype._bindUISourceCode):
112354        (WebInspector.CompilerScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
112355        * inspector/front-end/FileMapping.js: Added.
112356        (WebInspector.FileMapping):
112357        (WebInspector.FileMapping.prototype.hasMappingForURL):
112358        (WebInspector.FileMapping.prototype.uriForURL):
112359        (WebInspector.FileMapping.prototype.urlForURI):
112360        (WebInspector.FileMapping.prototype.setMappings):
112361        (WebInspector.FileMapping.prototype.mappings):
112362        (WebInspector.FileMapping.prototype._deserialize):
112363        (WebInspector.FileMapping.prototype._serialize):
112364        (WebInspector.FileMapping.MappingEntry):
112365        (WebInspector.FileMapping.MappingEntry.deserialize):
112366        (WebInspector.FileMapping.MappingEntry.prototype.matchesURL):
112367        (WebInspector.FileMapping.MappingEntry.prototype.matchesURI):
112368        (WebInspector.FileMapping.MappingEntry.prototype.uriForURL):
112369        (WebInspector.FileMapping.MappingEntry.prototype.urlForURI):
112370        (WebInspector.FileMapping.MappingEntry.prototype.serialize):
112371        * inspector/front-end/NetworkUISourceCodeProvider.js:
112372        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
112373        * inspector/front-end/ResourceScriptMapping.js:
112374        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
112375        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
112376        * inspector/front-end/ResourceUtils.js:
112377        (WebInspector.displayNameForURL):
112378        * inspector/front-end/SASSSourceMapping.js:
112379        (WebInspector.SASSSourceMapping):
112380        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
112381        (_addURLMapping):
112382        (rawLocationToUILocation):
112383        (_reset):
112384        (WebInspector.SASSSourceMapping.MappingEntry):
112385        * inspector/front-end/StylesSourceMapping.js:
112386        (WebInspector.StylesSourceMapping):
112387        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
112388        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
112389        (WebInspector.StylesSourceMapping.prototype._projectWillReset):
112390        (WebInspector.StyleContentBinding.prototype.):
112391        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
112392        * inspector/front-end/WebKit.qrc:
112393        * inspector/front-end/Workspace.js:
112394        * inspector/front-end/inspector.html:
112395        * inspector/front-end/inspector.js:
112396
1123972013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>
112398
112399        Web Inspector: Introduce UISourceCode.originURL().
112400        https://bugs.webkit.org/show_bug.cgi?id=106909
112401
112402        Reviewed by Pavel Feldman.
112403
112404        Introduced originURL on UISourceCode showing where UISourceCode in workspace was loaded from.
112405        This is neeeded to distinguish it from network request url used by mappings.
112406
112407        * inspector/front-end/AdvancedSearchController.js:
112408        (WebInspector.FileBasedSearchResultsPane.prototype._createAnchor):
112409        (WebInspector.FileBasedSearchResultsPane.prototype.addSearchResult):
112410        * inspector/front-end/BreakpointsSidebarPane.js:
112411        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
112412        * inspector/front-end/CallStackSidebarPane.js:
112413        (WebInspector.CallStackSidebarPane.Placard.prototype._update):
112414        * inspector/front-end/ExtensionServer.js:
112415        (WebInspector.ExtensionServer.prototype._handleOpenURL):
112416        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
112417        (WebInspector.ExtensionServer.prototype._onSetResourceContent):
112418        * inspector/front-end/JavaScriptSourceFrame.js:
112419        (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
112420        * inspector/front-end/Linkifier.js:
112421        (WebInspector.Linkifier.prototype._updateAnchor):
112422        (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
112423        * inspector/front-end/NavigatorView.js:
112424        (WebInspector.NavigatorSourceTreeElement):
112425        * inspector/front-end/SASSSourceMapping.js:
112426        (uiLocationToRawLocation):
112427        * inspector/front-end/ScriptsPanel.js:
112428        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
112429        (WebInspector.ScriptsPanel.prototype._showSourceLine):
112430        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
112431        * inspector/front-end/ScriptsSearchScope.js:
112432        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes):
112433        (WebInspector.ScriptsSearchScope.prototype._sortedUISourceCodes.comparator):
112434        * inspector/front-end/SimpleWorkspaceProvider.js:
112435        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
112436        * inspector/front-end/StyleSheetOutlineDialog.js:
112437        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
112438        * inspector/front-end/StylesSourceMapping.js:
112439        (WebInspector.StylesSourceMapping.prototype.uiLocationToRawLocation):
112440        * inspector/front-end/TabbedEditorContainer.js:
112441        (WebInspector.TabbedEditorContainer.prototype._tooltipForFile):
112442        * inspector/front-end/UISourceCode.js:
112443        (WebInspector.UISourceCode):
112444        (WebInspector.UISourceCode.prototype.originURL):
112445        (WebInspector.UISourceCode.prototype.urlChanged):
112446        (WebInspector.UISourceCode.prototype.contentURL):
112447        (WebInspector.Revision.prototype.contentURL):
112448        * inspector/front-end/Workspace.js:
112449        (WebInspector.FileDescriptor):
112450        (WebInspector.Project.prototype._fileAdded):
112451        (WebInspector.Project.prototype.uiSourceCodeForOriginURL):
112452        (WebInspector.Workspace.prototype.uiSourceCodeForOriginURL):
112453
1124542013-01-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
112455
112456        [EFL] Move 'DefaultTheme' folder to WebCore/platform/efl
112457        https://bugs.webkit.org/show_bug.cgi?id=106969
112458
112459        Reviewed by Benjamin Poulain.
112460
112461        DefaultTheme is used by both EFL WK1 and WK2 ports. So, WebCore/platform/efl is appropriate place for it.
112462
112463        * platform/efl/DefaultTheme/CMakeLists.txt: Renamed from Source/WebKit/efl/DefaultTheme/CMakeLists.txt.
112464        * platform/efl/DefaultTheme/default.edc: Renamed from Source/WebKit/efl/DefaultTheme/default.edc.
112465        * platform/efl/DefaultTheme/widget/button/button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/button.edc.
112466        * platform/efl/DefaultTheme/widget/button/img_button_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_focus.png.
112467        * platform/efl/DefaultTheme/widget/button/img_button_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_hover.png.
112468        * platform/efl/DefaultTheme/widget/button/img_button_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_normal.png.
112469        * platform/efl/DefaultTheme/widget/button/img_button_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/button/img_button_press.png.
112470        * platform/efl/DefaultTheme/widget/check/check.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/check.edc.
112471        * platform/efl/DefaultTheme/widget/check/img_check_bg_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_bg_disabled.png.
112472        * platform/efl/DefaultTheme/widget/check/img_check_bg_enabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_bg_enabled.png.
112473        * platform/efl/DefaultTheme/widget/check/img_check_off.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off.png.
112474        * platform/efl/DefaultTheme/widget/check/img_check_off_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off_focus.png.
112475        * platform/efl/DefaultTheme/widget/check/img_check_off_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_off_hover.png.
112476        * platform/efl/DefaultTheme/widget/check/img_check_on.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on.png.
112477        * platform/efl/DefaultTheme/widget/check/img_check_on_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on_focus.png.
112478        * platform/efl/DefaultTheme/widget/check/img_check_on_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/check/img_check_on_hover.png.
112479        * platform/efl/DefaultTheme/widget/combo/combo.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo.edc.
112480        * platform/efl/DefaultTheme/widget/combo/combo_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_focus.png.
112481        * platform/efl/DefaultTheme/widget/combo/combo_focus_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_focus_button.png.
112482        * platform/efl/DefaultTheme/widget/combo/combo_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_hover.png.
112483        * platform/efl/DefaultTheme/widget/combo/combo_hover_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_hover_button.png.
112484        * platform/efl/DefaultTheme/widget/combo/combo_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_normal.png.
112485        * platform/efl/DefaultTheme/widget/combo/combo_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_normal_button.png.
112486        * platform/efl/DefaultTheme/widget/combo/combo_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_press.png.
112487        * platform/efl/DefaultTheme/widget/combo/combo_press_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/combo_press_button.png.
112488        * platform/efl/DefaultTheme/widget/combo/icon.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/combo/icon.png.
112489        * platform/efl/DefaultTheme/widget/entry/entry.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/entry.edc.
112490        * platform/efl/DefaultTheme/widget/entry/img_focused.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_focused.png.
112491        * platform/efl/DefaultTheme/widget/entry/img_hovered.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_hovered.png.
112492        * platform/efl/DefaultTheme/widget/entry/img_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/entry/img_normal.png.
112493        * platform/efl/DefaultTheme/widget/file/file.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file.edc.
112494        * platform/efl/DefaultTheme/widget/file/file_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_focus.png.
112495        * platform/efl/DefaultTheme/widget/file/file_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_hover.png.
112496        * platform/efl/DefaultTheme/widget/file/file_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_normal.png.
112497        * platform/efl/DefaultTheme/widget/file/file_press.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/file/file_press.png.
112498        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png.
112499        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png.
112500        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc.
112501        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc.
112502        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png.
112503        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png.
112504        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png.
112505        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png.
112506        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc.
112507        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc.
112508        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png.
112509        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc.
112510        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png.
112511        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png.
112512        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png.
112513        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc.
112514        * platform/efl/DefaultTheme/widget/progressbar/bt_base.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/bt_base.png.
112515        * platform/efl/DefaultTheme/widget/progressbar/progressbar.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/progressbar.edc.
112516        * platform/efl/DefaultTheme/widget/progressbar/shelf_inset.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/progressbar/shelf_inset.png.
112517        * platform/efl/DefaultTheme/widget/radio/img_radio_bg_disabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_bg_disabled.png.
112518        * platform/efl/DefaultTheme/widget/radio/img_radio_bg_enabled.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_bg_enabled.png.
112519        * platform/efl/DefaultTheme/widget/radio/img_radio_off.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off.png.
112520        * platform/efl/DefaultTheme/widget/radio/img_radio_off_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off_focus.png.
112521        * platform/efl/DefaultTheme/widget/radio/img_radio_off_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_off_hover.png.
112522        * platform/efl/DefaultTheme/widget/radio/img_radio_on.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on.png.
112523        * platform/efl/DefaultTheme/widget/radio/img_radio_on_focus.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on_focus.png.
112524        * platform/efl/DefaultTheme/widget/radio/img_radio_on_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/img_radio_on_hover.png.
112525        * platform/efl/DefaultTheme/widget/radio/radio.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/radio/radio.edc.
112526        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar.edc.
112527        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png.
112528        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png.
112529        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png.
112530        * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png.
112531        * platform/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/cancel_normal_button.png.
112532        * platform/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/cancel_normal_button2.png.
112533        * platform/efl/DefaultTheme/widget/search/cancel/search_cancel.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/cancel/search_cancel.edc.
112534        * platform/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/decoration/decoration_normal_button.png.
112535        * platform/efl/DefaultTheme/widget/search/decoration/search_decoration.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/decoration/search_decoration.edc.
112536        * platform/efl/DefaultTheme/widget/search/field/field_focused.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_focused.png.
112537        * platform/efl/DefaultTheme/widget/search/field/field_hovered.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_hovered.png.
112538        * platform/efl/DefaultTheme/widget/search/field/field_normal.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/field_normal.png.
112539        * platform/efl/DefaultTheme/widget/search/field/search_field.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/search/field/search_field.edc.
112540        * platform/efl/DefaultTheme/widget/slider/slider.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc.
112541        * platform/efl/DefaultTheme/widget/slider/slider_fill_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_fill_h.png.
112542        * platform/efl/DefaultTheme/widget/slider/slider_fill_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_fill_v.png.
112543        * platform/efl/DefaultTheme/widget/slider/slider_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_h.png.
112544        * platform/efl/DefaultTheme/widget/slider/slider_thumb_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_h.png.
112545        * platform/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png.
112546        * platform/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png.
112547        * platform/efl/DefaultTheme/widget/slider/slider_thumb_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_v.png.
112548        * platform/efl/DefaultTheme/widget/slider/slider_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_v.png.
112549        * platform/efl/DefaultTheme/widget/spinner/sp_bg.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_bg.png.
112550        * platform/efl/DefaultTheme/widget/spinner/sp_down_default.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_default.png.
112551        * platform/efl/DefaultTheme/widget/spinner/sp_down_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_hover.png.
112552        * platform/efl/DefaultTheme/widget/spinner/sp_down_pressed.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_down_pressed.png.
112553        * platform/efl/DefaultTheme/widget/spinner/sp_up_default.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_default.png.
112554        * platform/efl/DefaultTheme/widget/spinner/sp_up_hover.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_hover.png.
112555        * platform/efl/DefaultTheme/widget/spinner/sp_up_pressed.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/sp_up_pressed.png.
112556        * platform/efl/DefaultTheme/widget/spinner/spinner.edc: Renamed from Source/WebKit/efl/DefaultTheme/widget/spinner/spinner.edc.
112557
1125582013-01-16  Kentaro Hara  <haraken@chromium.org>
112559
112560        [V8] Make an Isolate parameter mandatory in SerializedScriptValue::deserialize()
112561        https://bugs.webkit.org/show_bug.cgi?id=106916
112562
112563        Reviewed by Adam Barth.
112564
112565        This is one of steps to remove optional Isolate parameters.
112566
112567        No tests. No change in behavior.
112568
112569        * bindings/v8/SerializedScriptValue.cpp:
112570        (WebCore::SerializedScriptValue::deserialize):
112571        (WebCore):
112572        (WebCore::SerializedScriptValue::deserializeForInspector):
112573        * bindings/v8/SerializedScriptValue.h:
112574        (SerializedScriptValue):
112575        * bindings/v8/custom/V8HistoryCustom.cpp:
112576        (WebCore::V8History::stateAccessorGetter):
112577        * bindings/v8/custom/V8MessageEventCustom.cpp:
112578        (WebCore::V8MessageEvent::dataAccessorGetter):
112579        * bindings/v8/custom/V8PopStateEventCustom.cpp:
112580        (WebCore::V8PopStateEvent::stateAccessorGetter):
112581
1125822013-01-16  Ken Kania  <kkania@chromium.org>
112583
112584        [Inspector] Add events for tracking page loads and scheduled navigations.
112585        https://bugs.webkit.org/show_bug.cgi?id=104168
112586
112587        Reviewed by Pavel Feldman.
112588
112589        These events are needed for clients who need to be aware of when a page is
112590        navigating or about to navigate. Some clients may wish to prevent interaction
112591        with the page during this time. Two of the new events track loading start and
112592        stop, as measured by the ProgressTracker. The other two events track when a
112593        page has a new scheduled navigation and when it no longer has a scheduled
112594        navigation. These latter two events won't allow the client to determine if
112595        a load is going to happen in all circumstances, but is sufficient for many cases.
112596
112597        Tests: inspector-protocol/page/frameScheduledNavigation.html
112598               inspector-protocol/page/frameStartedLoading.html
112599
112600        * inspector/Inspector.json:
112601        * inspector/InspectorInstrumentation.cpp:
112602        (WebCore):
112603        (WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
112604        (WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
112605        (WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
112606        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
112607        * inspector/InspectorInstrumentation.h:
112608        (InspectorInstrumentation):
112609        (WebCore::InspectorInstrumentation::frameStartedLoading):
112610        (WebCore):
112611        (WebCore::InspectorInstrumentation::frameStoppedLoading):
112612        (WebCore::InspectorInstrumentation::frameScheduledNavigation):
112613        (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
112614        * inspector/InspectorPageAgent.cpp:
112615        (WebCore::InspectorPageAgent::frameStartedLoading):
112616        (WebCore):
112617        (WebCore::InspectorPageAgent::frameStoppedLoading):
112618        (WebCore::InspectorPageAgent::frameScheduledNavigation):
112619        (WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
112620        * inspector/InspectorPageAgent.h:
112621        * inspector/front-end/ResourceTreeModel.js:
112622        (WebInspector.PageDispatcher.prototype.frameDetached):
112623        (WebInspector.PageDispatcher.prototype.frameStartedLoading):
112624        (WebInspector.PageDispatcher.prototype.frameStoppedLoading):
112625        (WebInspector.PageDispatcher.prototype.frameScheduledNavigation):
112626        (WebInspector.PageDispatcher.prototype.frameClearedScheduledNavigation):
112627        * loader/NavigationScheduler.cpp:
112628        (WebCore::NavigationScheduler::clear):
112629        (WebCore::NavigationScheduler::timerFired):
112630        (WebCore::NavigationScheduler::startTimer):
112631        (WebCore::NavigationScheduler::cancel):
112632        * loader/ProgressTracker.cpp:
112633        (WebCore::ProgressTracker::progressStarted):
112634        (WebCore::ProgressTracker::finalProgressComplete):
112635
1126362013-01-16  Tommy Widenflycht  <tommyw@google.com>
112637
112638        MediaStream API: Update MediaStreamTrack::readyState to match specification
112639        https://bugs.webkit.org/show_bug.cgi?id=106781
112640
112641        Reviewed by Kentaro Hara.
112642
112643        MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
112644
112645        Existing tests expanded to cover patch.
112646
112647        * Modules/mediastream/MediaStream.cpp:
112648        (WebCore::processTrack):
112649        * Modules/mediastream/MediaStreamTrack.cpp:
112650        (WebCore::MediaStreamTrack::readyState):
112651        (WebCore::MediaStreamTrack::ended):
112652        (WebCore):
112653        * Modules/mediastream/MediaStreamTrack.h:
112654        (MediaStreamTrack):
112655        * Modules/mediastream/MediaStreamTrack.idl:
112656
1126572013-01-16  Andrey Adaikin  <aandrey@chromium.org>
112658
112659        Web Inspector: array grouping does not work for big and negative number keys
112660        https://bugs.webkit.org/show_bug.cgi?id=106891
112661
112662        Reviewed by Pavel Feldman.
112663
112664        Fixing array grouping for arrays that contain big or negative number representations as object keys.
112665
112666        * inspector/front-end/ObjectPropertiesSection.js:
112667        (.buildObjectFragment):
112668
1126692013-01-16  Andrey Lushnikov  <lushnikov@chromium.org>
112670
112671        Web Inspector: highlight regexp API for DefaultTextEditor
112672        https://bugs.webkit.org/show_bug.cgi?id=106801
112673
112674        Reviewed by Pavel Feldman.
112675
112676        Add highlightRegexp and removeRegexpHighlight methods to DefaultTextEditor that highlight
112677        all occurrences of given regexp in text with given css class.
112678        Highlight is done via spans positioned absolutely over the regexp occurences in text.
112679
112680        Test: inspector/editor/text-editor-highlight-regexp.html
112681
112682        * inspector/front-end/DefaultTextEditor.js:
112683        (WebInspector.DefaultTextEditor.prototype.highlightRegex):
112684        (WebInspector.DefaultTextEditor.prototype.removeRegexHighlight):
112685        (WebInspector.TextEditorMainPanel):
112686        (WebInspector.TextEditorMainPanel.prototype.highlightRegex):
112687        (WebInspector.TextEditorMainPanel.prototype.removeRegexHighlight):
112688        (WebInspector.TextEditorMainPanel.prototype._repaintVisibleChunks):
112689        (WebInspector.TextEditorMainPanel.prototype._findRegexOccurrences):
112690        (WebInspector.TextEditorMainPanel.prototype._measureRegex):
112691        (WebInspector.TextEditorMainPanel.prototype._appendOverlayHighlight):
112692        (WebInspector.TextEditorMainPanel.prototype._paintLine):
112693        * inspector/front-end/TextEditor.js:
112694        (WebInspector.TextEditor.prototype.highlightRegex):
112695        (WebInspector.TextEditor.prototype.removeRegexHighlight):
112696        * inspector/front-end/textEditor.css:
112697        (.text-editor-overlay-highlight):
112698        (.debug-fadeout):
112699
1127002013-01-16  Ryosuke Niwa  <rniwa@webkit.org>
112701
112702        Get rid of Node::createRareData
112703        https://bugs.webkit.org/show_bug.cgi?id=106981
112704
112705        Reviewed by Benjamin Poulain.
112706
112707        Deleted Node::createRareData. Node::ensureRareData() instantiates NodeRareData
112708        or ElementRareData according to the node type. Also encapsulate new by create
112709        functions in NodeRareData and ElementRareData.
112710
112711        * dom/Element.cpp:
112712        (WebCore):
112713        * dom/Element.h:
112714        (Element):
112715        * dom/ElementRareData.h:
112716        (WebCore::ElementRareData::create):
112717        (ElementRareData):
112718        (WebCore::ElementRareData::ElementRareData):
112719        * dom/Node.cpp:
112720        (WebCore::Node::ensureRareData):
112721        (WebCore):
112722        * dom/Node.h:
112723        (WebCore::NodeRareDataBase::NodeRareDataBase):
112724        * dom/NodeRareData.h:
112725        (NodeRareData):
112726        (WebCore::NodeRareData::create):
112727        (WebCore::NodeRareData::NodeRareData):
112728
1127292013-01-15  Ryosuke Niwa  <rniwa@webkit.org>
112730
112731        GTK+ and Qt build fix after r139833.
112732        Explicitly cast NodeRareDataBase to NodeRareData before deleting it.
112733
112734        * dom/Node.cpp:
112735        (WebCore::Node::clearRareData):
112736
1127372013-01-15  Qiankun Miao  <qiankun.miao@intel.com>
112738
112739        Remove extra space in CustomFilterRenderer.h
112740        https://bugs.webkit.org/show_bug.cgi?id=105783
112741
112742        Reviewed by Dean Jackson.
112743
112744        * platform/graphics/filters/CustomFilterRenderer.h:
112745        (CustomFilterRenderer):
112746
1127472013-01-15  Tab Atkins  <tabatkins@google.com>
112748
112749        Update CSS3 gradient support to the latest spec version and unprefix.
112750        https://bugs.webkit.org/show_bug.cgi?id=67166
112751
112752        Reviewed by Dean Jackson.
112753
112754        Tests: fast/gradients/unprefixed-color-stop-units.html
112755               fast/gradients/unprefixed-color-stops.html
112756               fast/gradients/unprefixed-generated-gradients.html
112757               fast/gradients/unprefixed-gradient-parsing.html
112758               fast/gradients/unprefixed-linear-angle-gradients.html
112759               fast/gradients/unprefixed-linear-right-angle-gradients.html
112760               fast/gradients/unprefixed-list-item-gradient.html
112761               fast/gradients/unprefixed-radial-gradients.html
112762               fast/gradients/unprefixed-radial-gradients2.html
112763               fast/gradients/unprefixed-radial-gradients3.html
112764               fast/gradients/unprefixed-repeating-end-fill.html
112765               fast/gradients/unprefixed-repeating-linear-gradient.html
112766               fast/gradients/unprefixed-repeating-radial-gradients.html
112767               fast/gradients/unprefixed-zero-range-repeating-gradient-hang.html
112768
112769        * css/CSSGradientValue.cpp:
112770        (WebCore::CSSGradientValue::computeEndPoint): Rename parameters to make more sense.
112771        (WebCore::CSSLinearGradientValue::customCssText):
112772        (WebCore::CSSLinearGradientValue::createGradient):
112773        (WebCore::CSSRadialGradientValue::customCssText):
112774        (WebCore::CSSRadialGradientValue::createGradient):
112775        * css/CSSGradientValue.h:
112776        (CSSGradientValue):
112777        (CSSRadialGradientValue):
112778        * css/CSSParser.cpp:
112779        (WebCore::CSSParser::parseLinearGradient):
112780        (WebCore::CSSParser::parseRadialGradient):
112781        (WebCore::CSSParser::isGeneratedImageValue):
112782        (WebCore::CSSParser::parseGeneratedImage):
112783        * css/CSSParser.h:
112784
1127852013-01-15  Ryosuke Niwa  <rniwa@webkit.org>
112786
112787        NodeRareData doesn't need to have a vtable pointer
112788        https://bugs.webkit.org/show_bug.cgi?id=106965
112789
112790        Reviewed by Benjamin Poulain.
112791
112792        Made the destructor and reportMemoryUsage of NodeRareDataBase and NodeRareData
112793        respectively and their subclasses non-virtual.
112794
112795        * dom/ElementRareData.cpp:
112796        (SameSizeAsElementRareData): Added.
112797        (WebCore): Added a compile assertion for the size of ElementRareData.
112798        * dom/ElementRareData.h:
112799        (ElementRareData):
112800        * dom/Node.cpp:
112801        (WebCore::Node::clearRareData): Explicitely delete NodeRareData or ElementRareData.
112802        (WebCore::Node::reportMemoryUsage): Explicitely add NodeRareData or ElementRareData.
112803        * dom/Node.h:
112804        (NodeRareDataBase): Deleted the virtual destructor.
112805        * dom/NodeRareData.cpp:
112806        (SameSizeAsNodeRareData): Removed one pointer.
112807        * dom/NodeRareData.h:
112808        (NodeRareData): Removed the virtual destructor.
112809        (NodeRareData::reportMemoryUsage): Made non-virtual.
112810
1128112013-01-15  Ian Vollick  <vollick@chromium.org>
112812
112813        [chromium] Create GraphicsLayerChromiums using a factory
112814        https://bugs.webkit.org/show_bug.cgi?id=103635
112815
112816        Reviewed by James Robinson.
112817
112818        Refactor graphics layer creation for chromium to go through a factory.
112819
112820        No new tests, no change in functionality.
112821
112822        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
112823        (WebCore::GraphicsLayer::create):
112824
1128252013-01-15  Charles Wei  <charles.wei@torchmobile.com.cn>
112826
112827        [BlackBerry]  LayerRenderingResults doesn't need to maintain the hole punch rect
112828        https://bugs.webkit.org/show_bug.cgi?id=106896
112829
112830        Reviewed by George Staikos.
112831        Internally reviewed by Arvid Nilsson and John Griggs.
112832
112833        No new tests,clean up code which is not used anymore.
112834
112835        * platform/graphics/blackberry/LayerRenderer.cpp:
112836        (WebCore::LayerRenderer::drawHolePunchRect):
112837        * platform/graphics/blackberry/LayerRenderer.h:
112838        (LayerRenderingResults):
112839
1128402013-01-15  Charles Wei  <charles.wei@torchmobile.com.cn>
112841
112842        Fullscreen element should not share styles with it's siblings.
112843        https://bugs.webkit.org/show_bug.cgi?id=106888
112844
112845        Reviewed by George Staikos.
112846
112847        Test: fullscreen/full-screen-no-style-sharing.html
112848
112849        * css/StyleResolver.cpp:
112850        (WebCore::StyleResolver::canShareStyleWithElement):
112851
1128522013-01-15  Tim Horton  <timothy_horton@apple.com>
112853
112854        Clamp TileCache visibleRect to WKView's visibleRect
112855        https://bugs.webkit.org/show_bug.cgi?id=106601
112856        <rdar://problem/12843164>
112857
112858        Reviewed by Simon Fraser.
112859
112860        * platform/graphics/TiledBacking.h:
112861        (TiledBacking): Add setExposedRect and setClipsToExposedRect.
112862        * platform/graphics/ca/mac/TileCache.h:
112863        (TileCache): Add setExposedRect, setClipsToExposedRect, and storage for their respective values.
112864        * platform/graphics/ca/mac/TileCache.mm:
112865        (WebCore::TileCache::TileCache): Initialize m_clipsToExposedRect to false.
112866        (WebCore::TileCache::setExposedRect): Update exposedRect and revalidate tiles.
112867        (WebCore::TileCache::setClipsToExposedRect): Update clipsToExposedRect and revalidate tiles;
112868        if we're going from unclipped to clipped, we already have tiles, so we can skip tile revalidation.
112869        (WebCore::TileCache::computeTileCoverageRect): Intersect exisiting visible rect with
112870        exposed rect to get the visible rect we actually care about.
112871        (WebCore::TileCache::revalidateTiles): Ditto.
112872        * rendering/RenderLayerCompositor.cpp:
112873        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer): Don't create an overhang layer if the frame isn't scrollable.
112874        (WebCore::RenderLayerCompositor::requiresContentShadowLayer): Don't create a shadow layer if the frame isn't scrollable.
112875
1128762013-01-15  Roger Fong  <roger_fong@apple.com>
112877
112878        Get rid of a straggling dependency on SafariThemeConstants in RenderThemeWin.
112879
112880        Rubberstamped by Timothy Horton.
112881
112882        * rendering/RenderThemeWin.cpp:
112883        (WebCore::RenderThemeWin::supportsClosedCaptioning):
112884        * rendering/RenderThemeWin.h:
112885
1128862013-01-15  Hayato Ito  <hayato@chromium.org>
112887
112888        Group all request parameters which are used to match CSS Rules into a parameter object.
112889        https://bugs.webkit.org/show_bug.cgi?id=106879
112890
112891        Reviewed by Dimitri Glazkov.
112892
112893        Introduces a MatchRequest which groups all request parameters to match CSS rules.
112894
112895        Factoring, no change in behavior.
112896
112897        * css/StyleResolver.cpp:
112898        (WebCore::StyleResolver::collectMatchingRules):
112899        (WebCore::StyleResolver::collectMatchingRulesForRegion):
112900        (WebCore::StyleResolver::matchScopedAuthorRules):
112901        (WebCore::StyleResolver::matchHostRules):
112902        (WebCore::StyleResolver::matchAuthorRules):
112903        (WebCore::StyleResolver::matchUserRules):
112904        (WebCore::StyleResolver::matchUARules):
112905        (WebCore::StyleResolver::collectMatchingRulesForList):
112906        (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
112907        * css/StyleResolver.h:
112908        (WebCore::StyleResolver::MatchRequest::MatchRequest):
112909        (MatchRequest):
112910        (StyleResolver):
112911
1129122013-01-15  Simon Fraser  <simon.fraser@apple.com>
112913
112914        Add the ability for a RenderLayerBacking to have a layer that renders backgrounds.
112915        https://bugs.webkit.org/show_bug.cgi?id=106961
112916
112917        Reviewed by Dean Jackson.
112918
112919        In some cases we need a compositing layer to render its background into
112920        a separate GraphicsLayer (e.g. for background-attachment: fixed in some scenarios).
112921        
112922        To support this, have RenderLayer optionally create a GraphicsLayer for the background.
112923        Currently nothing causes background layers to get created.
112924        
112925        Having a background layer requires that we add an additional containment layer
112926        which encloses the background, primary and foreground layers, since the 
112927        background layer has to be composited behind the primary content. This containment
112928        layer gets any transform, including page scale on the RenderView's layer.
112929        
112930        No new tests; there's no way to create a background layer yet. This was tested during
112931        development by forcing a background layer.
112932
112933        * rendering/RenderLayerBacking.cpp:
112934        (WebCore::RenderLayerBacking::updateDebugIndicators): Show borders on both new layers
112935        and repaint counters on the background layer.
112936        (WebCore::RenderLayerBacking::destroyGraphicsLayers): Clear the two new layers.
112937        (WebCore::RenderLayerBacking::updateTransform): If we have a containment layer, it
112938        takes the transform (and clear the transform on the primary layer).
112939        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Make the background
112940        layer if we need one (currently never).
112941        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Position and size
112942        the containment layer if we have one. If we do, then the m_graphicsLayer will
112943        be at 0,0 in that containment layer. The background layer is also sized similarly
112944        to the foreground layer.
112945        (WebCore::RenderLayerBacking::updateInternalHierarchy): Adapt to the new hierarchy
112946        with containment and background layers if we have them.
112947        (WebCore::RenderLayerBacking::updateBackgroundLayer): Here's where we create the background
112948        and containment layers.
112949        (WebCore::RenderLayerBacking::childForSuperlayers): If we have a containment layer, that's
112950        what gets attached to our parent.
112951        (WebCore::RenderLayerBacking::getCurrentTransform): The containment layer gets the transform
112952        if we have one, so check that here.
112953        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
112954        (WebCore::RenderLayerBacking::reportMemoryUsage):
112955        * rendering/RenderLayerBacking.h:
112956        (RenderLayerBacking):
112957        * rendering/RenderLayerCompositor.cpp:
112958        (WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged): We need to start notifying
112959        about page/device scale on the containment layer if there is one (since it takes page scale), so
112960        use childForSuperlayers() rather than just getting the primary layer.
112961
1129622013-01-15  Pan Deng  <pan.deng@intel.com>
112963
112964        Remove Key3 and Challenge Response fields from Websocket implementation and Web Inspector.
112965        https://bugs.webkit.org/show_bug.cgi?id=105738.
112966
112967        Reviewed by Kent Tamura.
112968
112969        Key3 and Challenge Response fields were obsoleted in IETF websocket spec, this patch removes related
112970        code in Websocket and Web Inspector
112971
112972        No new tests as no new functionality added.
112973
112974        * Modules/websockets/WebSocketHandshakeRequest.cpp: remove Key3 related code
112975        * Modules/websockets/WebSocketHandshakeRequest.h: 
112976        (WebSocketHandshakeRequest):
112977        * Modules/websockets/WebSocketHandshakeResponse.cpp: remove Challenge response related code
112978        * Modules/websockets/WebSocketHandshakeResponse.h: 
112979        (WebSocketHandshakeResponse):
112980        * inspector/Inspector.json: remove Key3 and Challenge response fields definition
112981        * inspector/InspectorResourceAgent.cpp: remove Key3 and Challenge response field from inspector agent
112982        (WebCore):
112983        (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
112984        (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
112985        * inspector/front-end/NetworkManager.js: 
112986        (WebInspector.NetworkDispatcher.prototype.webSocketWillSendHandshakeRequest): 
112987        (WebInspector.NetworkDispatcher.prototype.webSocketHandshakeResponseReceived): 
112988        * inspector/front-end/RequestHeadersView.js: remove Key3 and Challenge response item from front-end.
112989        (WebInspector.RequestHeadersView.prototype._refreshRequestHeaders):
112990        (WebInspector.RequestHeadersView.prototype._refreshResponseHeaders):
112991        (WebInspector.RequestHeadersView.prototype._refreshHeaders):
112992
1129932013-01-15  Antti Koivisto  <antti@apple.com>
112994
112995        ASSERT(!m_queue.killed() && m_threadID) hit in StorageThread::scheduleTask on low memory warning
112996        https://bugs.webkit.org/show_bug.cgi?id=106960
112997
112998        Reviewed by Mark Rowe.
112999
113000        We were scheduling a memory clearing task to terminated StorageThreads.
113001        
113002        Remove thread from the active thread list when terminate is scheduled. Add when thread is started.
113003
113004        * storage/StorageThread.cpp:
113005        (WebCore::activeStorageThreads):
113006        (WebCore::StorageThread::StorageThread):
113007        (WebCore::StorageThread::~StorageThread):
113008        (WebCore::StorageThread::start):
113009        (WebCore::StorageThread::terminate):
113010        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
113011
1130122013-01-15  Luke Macpherson   <macpherson@chromium.org>
113013
113014        Don't do indiscriminate cast & call in StylePropertySet::PropertyReference::cssName() on release builds.
113015        https://bugs.webkit.org/show_bug.cgi?id=106867
113016
113017        Reviewed by Darin Adler.
113018
113019        Check CSSValue::isVariableValue() before casting to CSSVariableValue.
113020
113021        Covered by existing variables tests.
113022
113023        * css/StylePropertySet.cpp:
113024        (WebCore::StylePropertySet::PropertyReference::cssName):
113025
1130262013-01-15  Emil A Eklund  <eae@chromium.org>
113027
113028        [Sub pixel layout] RTL cells with padding wraps
113029        https://bugs.webkit.org/show_bug.cgi?id=106843
113030
113031        Reviewed by Levi Weintraub.
113032        
113033        At certain zoom levels table cells with padding wraps for rtl
113034        content.
113035
113036        Test: fast/sub-pixel/table-rtl-padding.html
113037
113038        * rendering/RenderTable.h: Override paddingStart/End to return
113039        integer values for padding as we do elsewhere in the table code.
113040
1130412013-01-15  Dominic Mazzoni  <dmazzoni@google.com>
113042
113043        Use-after-free in AXObjectCache::notificationPostTimerFired
113044        https://bugs.webkit.org/show_bug.cgi?id=106106
113045
113046        Reviewed by Ryosuke Niwa.
113047
113048        Fixes a crash that occurs when a Node is adopted by another document,
113049        in particular one that isn't part of the page, and then deleted,
113050        which wasn't triggering the code that removed the Node from
113051        AXObjectCache. Now, a Node is removed from the AXObjectCache whenever
113052        its Document changes.
113053
113054        Test: accessibility/crash-adopt-node-from-new-document.html
113055
113056        * dom/Node.cpp:
113057        (WebCore::Node::didMoveToNewDocument):
113058
1130592013-01-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
113060
113061        Add Canvas blend modes to Cairo
113062        https://bugs.webkit.org/show_bug.cgi?id=105074
113063
113064        Reviewed by Martin Robinson.
113065
113066        Blend mode implementation for cairo. If BlendMode is normal, use
113067        CompositeOperator; otherwise, consider CompositeOperator is
113068        source-over.
113069
113070        Add toCairoOperator(BlendMode) to translate BlendMode to matching
113071        cairo_operator_t. 
113072
113073        * platform/graphics/cairo/BitmapImageCairo.cpp:
113074        (WebCore::BitmapImage::draw):
113075        * platform/graphics/cairo/CairoUtilities.cpp:
113076        (WebCore::toCairoOperator):
113077        * platform/graphics/cairo/CairoUtilities.h:
113078        (WebCore):
113079        * platform/graphics/cairo/GraphicsContextCairo.cpp:
113080        (WebCore::GraphicsContext::setPlatformCompositeOperation):
113081
1130822013-01-15  Dima Gorbik  <dgorbik@apple.com>
113083        Implement matching by the voice attribute for WebVTT ::cue pseudo element
113084        https://bugs.webkit.org/show_bug.cgi?id=106762
113085
113086        Reviewed by Eric Carlson.
113087
113088        Implemented matching cue WebVTT elements by a voice attribute by adding a WebVTT specific voice attribute.
113089        For DOM trees title attribute is used instead as this is required by specs.
113090
113091        * html/track/TextTrackCue.cpp:
113092        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): set a title argument instead of a voice attribute for the DOM tree.
113093        * html/track/TextTrackCue.h:
113094        (WebCore::TextTrackCue::voiceAttributeName):
113095        * html/track/WebVTTParser.cpp:
113096        (WebCore::WebVTTParser::constructTreeFromToken):
113097
1130982013-01-15  Simon Fraser  <simon.fraser@apple.com>
113099
113100        Some ScrollingCoördinator-related cleanup in RenderLayerBacking
113101        https://bugs.webkit.org/show_bug.cgi?id=106950
113102
113103        Reviewed by Beth Dakin.
113104        
113105        Wrap up code that gets the ScrollingCoordinator into a utility function.
113106        Pull code out of updateGraphicsLayerGeometry() that registers layers with
113107        the ScrollingCoordinator, for cleanliness.
113108
113109        * rendering/RenderLayerBacking.cpp:
113110        (WebCore::scrollingCoordinatorFromLayer):
113111        (WebCore::RenderLayerBacking::adjustTileCacheCoverage):
113112        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
113113        (WebCore::RenderLayerBacking::registerScrollingLayers):
113114        (WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
113115        (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
113116        * rendering/RenderLayerBacking.h:
113117        (RenderLayerBacking):
113118
1131192013-01-15  Beth Dakin  <bdakin@apple.com>
113120
113121        https://bugs.webkit.org/show_bug.cgi?id=106940
113122        Suspend CSS animations for background tabs
113123
113124        Reviewed by Simon Fraser.
113125
113126        * page/Page.cpp:
113127        (WebCore::Page::setVisibilityState):
113128
1131292013-01-15  Levi Weintraub  <leviw@chromium.org>
113130
113131        Unreviewed, rolling out r139790.
113132        http://trac.webkit.org/changeset/139790
113133        https://bugs.webkit.org/show_bug.cgi?id=106948
113134
113135        The patch is failing its own test.
113136
113137        * dom/ContainerNode.cpp:
113138        (WebCore::ContainerNode::parserInsertBefore):
113139        (WebCore::ContainerNode::parserRemoveChild):
113140        (WebCore::ContainerNode::parserAppendChild):
113141        * html/parser/HTMLScriptRunner.cpp:
113142        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
113143        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
113144        (WebCore::HTMLScriptRunner::execute):
113145        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
113146        (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
113147        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
113148        (WebCore::HTMLScriptRunner::runScript):
113149
1131502013-01-15  Emil A Eklund  <eae@chromium.org>
113151
113152        REGRESSION (r121599): incorrect border scaling when zoomed
113153        https://bugs.webkit.org/show_bug.cgi?id=106944
113154
113155        Reviewed by Levi Weintraub.
113156        
113157        Fix bug in ApplyPropertyComputeLength::applyValue where zooming
113158        of non-pixel values was incorrect.
113159
113160        Test: fast/sub-pixel/zoomed-em-border.html
113161
113162        * css/StyleBuilder.cpp:
113163        (WebCore::ApplyPropertyComputeLength::applyValue):
113164
1131652013-01-15  Simon Fraser  <simon.fraser@apple.com>
113166
113167        Rename RenderLayerBacking's m_containmentLayer to m_childContainmentLayer to better describe its purpose
113168        https://bugs.webkit.org/show_bug.cgi?id=106947
113169
113170        Reviewed by Dean Jackson.
113171        
113172        Simple rename of m_containmentLayer to m_childContainmentLayer. I'll
113173        be adding another "container" layer for background layers shortly,
113174        and wanted to improve clarity.
113175
113176        * rendering/RenderLayerBacking.cpp:
113177        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
113178        (WebCore::RenderLayerBacking::destroyGraphicsLayers):
113179        (WebCore::RenderLayerBacking::updateInternalHierarchy):
113180        (WebCore::RenderLayerBacking::updateClippingLayers):
113181        (WebCore::RenderLayerBacking::parentForSublayers):
113182        (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
113183        (WebCore::RenderLayerBacking::reportMemoryUsage):
113184        * rendering/RenderLayerBacking.h:
113185        (WebCore::RenderLayerBacking::hasClippingLayer):
113186        (WebCore::RenderLayerBacking::clippingLayer):
113187        (WebCore::RenderLayerBacking::hasTileCacheFlatteningLayer):
113188        (WebCore::RenderLayerBacking::tileCacheFlatteningLayer):
113189        (RenderLayerBacking):
113190
1131912013-01-15  Enrica Casucci  <enrica@apple.com>
113192
113193        Add a new set of WebKit2 APIs for text search and
113194        search results management.
113195        https://bugs.webkit.org/show_bug.cgi?id=106834.
113196        <rdar://problem/12597159>
113197
113198        Reviewed by Simon Fraser.
113199        
113200        Adding new API to perform text search in WebKit2 without using
113201        the stock UI. The new interface provides all the information
113202        necessary to write a custom UI for search.
113203
113204        Added new TextWebKitAPI test.
113205
113206        * WebCore.exp.in: Added new exported methods.
113207        * editing/Editor.cpp:
113208        (WebCore::Editor::countMatchesForText): Added new parameter to store
113209        all the ranges relative to the matches found.
113210        * editing/Editor.h: Modified the interface of countMatchesForText and removed
113211        the other definition of countMatchesForText with a different signature.
113212        * page/Page.cpp:
113213        (WebCore::Page::findStringMatchingRanges): Added.
113214        (WebCore::Page::markAllMatchesForText): Changed to use the new unified
113215        countMatchesForText.
113216        * page/Page.h:
113217
1132182013-01-15  Alexandru Chiculita  <achicu@adobe.com>
113219
113220        [Compositor] Do not disable overlap testing for layers in front of 3D transformed layers
113221        https://bugs.webkit.org/show_bug.cgi?id=106721
113222
113223        Reviewed by Simon Fraser.
113224
113225        RenderLayerCompositor is checking for overlapping layers and tries to figure out all the layers that need
113226        to be drawn using composited layers. It doesn't know anything about animations yet and it only works with "start"
113227        and "end" states. However, it knows that animations might happen, so in that cases it will avoid to do any optimizations,
113228        as layers might get moved.
113229
113230        The overlapping layers optimization was also disabled for 3D layers. However, 3D layers can be computed in WebKit and 
113231        can be checked for overlap using just the "start"/"stop" states. In this patch I enable that optimization for 3D layers, too.
113232        The result is that more layers are drawn in software mode now, so I've updated a couple of test results.
113233
113234        Tests: compositing/layer-creation/overlap-transformed-3d.html
113235               compositing/layer-creation/overlap-transformed-preserved-3d.html
113236
113237        * rendering/RenderLayerCompositor.cpp:
113238        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
113239
1132402013-01-15  Elliott Sprehn  <esprehn@gmail.com>
113241
113242        HTML parser should queue MutationRecords for its operations
113243        https://bugs.webkit.org/show_bug.cgi?id=89351
113244
113245        Reviewed by Eric Seidel.
113246
113247        Generate mutation records inside the parser. This is done by using a
113248        ChildListMutationScope in the ContainerNode::parser* methods and then
113249        adding delivery before each <script> element would be processed by
113250        the parser.
113251
113252        Test: fast/dom/MutationObserver/parser-mutations.html
113253
113254        * dom/ContainerNode.cpp:
113255        (WebCore::ContainerNode::parserInsertBefore):
113256        (WebCore::ContainerNode::parserRemoveChild):
113257        (WebCore::ContainerNode::parserAppendChild):
113258        * html/parser/HTMLScriptRunner.cpp:
113259        (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
113260        (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
113261        (WebCore::HTMLScriptRunner::execute):
113262        (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
113263        (WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
113264        (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
113265        (WebCore::HTMLScriptRunner::runScript):
113266
1132672013-01-15  Ojan Vafai  <ojan@chromium.org>
113268
113269        Unreviewed, rolling out r139782.
113270        http://trac.webkit.org/changeset/139782
113271        https://bugs.webkit.org/show_bug.cgi?id=106939
113272
113273        Broke preferred widths on list markers.
113274
113275        * rendering/RenderListMarker.cpp:
113276        (WebCore::RenderListMarker::layout):
113277        (WebCore::RenderListMarker::computePreferredLogicalWidths):
113278
1132792013-01-15  Elliott Sprehn  <esprehn@chromium.org>
113280
113281        Heap-use-after-free in WebCore::RenderObject::willBeRemovedFromTree
113282        https://bugs.webkit.org/show_bug.cgi?id=106384
113283
113284        Reviewed by Abhishek Arya.
113285
113286        Always walk up from beforeChild until the parent() is the owner of the
113287        child list, otherwise we can end up in situations where
113288        newChild->parent() == owner but newChild->nextSibling()->parent() != owner
113289        which is a recipe for security bugs. Previously we only walked up through
113290        anonymous blocks, but missed anonymous inline blocks like those generated
113291        by <ruby>.
113292
113293        Test: fast/css-generated-content/bug-106384.html
113294
113295        * rendering/RenderObjectChildList.cpp:
113296        (WebCore::RenderObjectChildList::insertChildNode):
113297
1132982013-01-15  Ojan Vafai  <ojan@chromium.org>
113299
113300        Remove bogus assert added in http://trac.webkit.org/changeset/139772.
113301        * rendering/RenderBox.h:
113302        (WebCore::RenderBox::computePreferredLogicalWidths):
113303
1133042013-01-15  Ojan Vafai  <ojan@chromium.org>
113305
113306        Moving updating of margins from computePreferredLogicalWidths to layout
113307        https://bugs.webkit.org/show_bug.cgi?id=106939
113308
113309        Reviewed by Levi Weintraub.
113310
113311        The margins don't affect it's preferred width. We should update them
113312        during layout like we do in other classes (e.g. RenderBlock).
113313
113314        * rendering/RenderListMarker.cpp:
113315        (WebCore::RenderListMarker::layout):
113316        (WebCore::RenderListMarker::computePreferredLogicalWidths):
113317
1133182013-01-15  Adam Barth  <abarth@webkit.org>
113319
113320        Generalize DocumentWeakReference into WTF::WeakPtr
113321        https://bugs.webkit.org/show_bug.cgi?id=106854
113322
113323        Reviewed by Darin Adler.
113324
113325        This patch replaces DocumentWeakReference with WeakPtr. There should be
113326        no change in behavior.
113327
113328        * dom/Document.cpp:
113329        (WebCore):
113330        (WebCore::Document::Document):
113331        (WebCore::Document::~Document):
113332        (WebCore::PerformTaskContext::PerformTaskContext):
113333        (PerformTaskContext):
113334        (WebCore::Document::didReceiveTask):
113335        (WebCore::Document::postTask):
113336        (WebCore::Document::reportMemoryUsage):
113337        * dom/Document.h:
113338        (WebCore):
113339        (Document):
113340
1133412013-01-15  James Simonsen  <simonjam@chromium.org>
113342
113343        [User Timing] INVALID_ACCESS_ERR should be thrown if measuring from a 0 Nav Timing value
113344        https://bugs.webkit.org/show_bug.cgi?id=106935
113345
113346        Reviewed by Tony Gentilcore.
113347
113348        Test: http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html
113349
113350        * page/PerformanceUserTiming.cpp:
113351        (WebCore::UserTiming::findExistingMarkStartTime):
113352
1133532013-01-15  Tommy Widenflycht  <tommyw@google.com>
113354
113355        MediaStream API: Rename the [add|remove]Track callbacks to [add|remove]RemoteTrack for clarity
113356        https://bugs.webkit.org/show_bug.cgi?id=106791
113357
113358        Reviewed by Adam Barth.
113359
113360        No tests needed.
113361
113362        * Modules/mediastream/MediaStream.cpp:
113363        (WebCore::MediaStream::addRemoteTrack):
113364        (WebCore::MediaStream::removeRemoteTrack):
113365        * Modules/mediastream/MediaStream.h:
113366        * platform/mediastream/MediaStreamCenter.cpp:
113367        (WebCore::MediaStreamCenter::addMediaStreamTrack):
113368        (WebCore::MediaStreamCenter::removeMediaStreamTrack):
113369        * platform/mediastream/MediaStreamDescriptor.h:
113370        (MediaStreamDescriptorClient):
113371
1133722013-01-15  Mark Pilgrim  <pilgrim@chromium.org>
113373
113374        [Chromium] Move SocketStreamHandle and SocketStreamHandleInternal to WebCore/platform
113375        https://bugs.webkit.org/show_bug.cgi?id=106899
113376
113377        Reviewed by Adam Barth.
113378
113379        Part of a larger refactoring series; see tracking bug 106829.
113380
113381        * WebCore.gypi:
113382        * platform/network/chromium/SocketStreamHandle.cpp: Copied from Source/WebKit/chromium/src/SocketStreamHandle.cpp.
113383        (WebCore::SocketStreamHandleInternal::send):
113384        (WebCore::SocketStreamHandleInternal::didOpenStream):
113385        (WebCore::SocketStreamHandleInternal::didSendData):
113386        (WebCore::SocketStreamHandleInternal::didReceiveData):
113387        (WebCore::SocketStreamHandleInternal::didClose):
113388        (WebCore::SocketStreamHandleInternal::didFail):
113389        * platform/network/chromium/SocketStreamHandleInternal.h: Copied from Source/WebKit/chromium/src/SocketStreamHandleInternal.h.
113390
1133912013-01-15  Ojan Vafai  <ojan@chromium.org>
113392
113393        RenderText::computePreferredLogicalWidths does not need to be public
113394        https://bugs.webkit.org/show_bug.cgi?id=106934
113395
113396        Reviewed by Levi Weintraub.
113397
113398        * rendering/RenderCounter.h:
113399        Add OVERRIDE keyword.
113400        * rendering/RenderText.h:
113401        Make protected.
113402
1134032013-01-15  Ojan Vafai  <ojan@chromium.org>
113404
113405        Cleanup visibility of some computePreferredLogicalWidths calls
113406        https://bugs.webkit.org/show_bug.cgi?id=106933
113407
113408        Reviewed by Levi Weintraub.
113409
113410        No need for these to be public.
113411
113412        * rendering/RenderBox.h:
113413        (WebCore::RenderBox::computePreferredLogicalWidths):
113414        This should never get called in practice. Add an assert to that effect.
113415
113416        * rendering/RenderGrid.h:
113417        (RenderGrid):
113418        * rendering/RenderReplica.h:
113419        (RenderReplica):
113420        * rendering/RenderScrollbarPart.h:
113421        (RenderScrollbarPart):
113422
1134232013-01-13  Dirk Schulze  <dschulze@adobe.com>
113424
113425        [CSS Filters] brightness() function doesn't work as specified
113426        https://bugs.webkit.org/show_bug.cgi?id=106674
113427
113428        Reviewed by Dean Jackson.
113429
113430        The brightness filter implementation modified the intercept instead of the slope on
113431        the feComponentTransfer function. The passed amount acts as multiplier for each
113432        color chanel now.
113433
113434        Existing tests cover the changes and were updated.
113435
113436        * css/CSSParser.cpp:
113437        (WebCore::CSSParser::parseBuiltinFilterArguments):
113438        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
113439        (PlatformCALayer::setFilters):
113440        * rendering/FilterEffectRenderer.cpp:
113441        (WebCore::FilterEffectRenderer::build):
113442
1134432013-01-15  Zan Dobersek  <zandobersek@gmail.com>
113444
113445        [GTK] Enable Performance Timeline, Resource Timing, Navigation Timing features
113446        https://bugs.webkit.org/show_bug.cgi?id=106197
113447
113448        Reviewed by Martin Robinson.
113449
113450        No new tests - existing layout tests are being unskipped, only a few fail
113451        (but their failures are of cross-platform nature).
113452
113453        * GNUmakefile.features.am.in: Add feature defines for all three features.
113454        They are disabled by default for now.
113455        * GNUmakefile.list.am: Add missing build targets.
113456        * bindings/gobject/GNUmakefile.am: Ditto.
113457        * bindings/js/JSPerformanceEntryCustom.cpp: Added the necessary custom bindings.
113458        Mimics the custom V8 bindings.
113459        (WebCore):
113460        (WebCore::toJS):
113461
1134622013-01-15  Alexis Menard  <alexis@webkit.org>
113463
113464        Unprefixed transitionend event doesn't seem to be implemented, which breaks many sites
113465        https://bugs.webkit.org/show_bug.cgi?id=105647
113466
113467        Reviewed by Julien Chaffraix.
113468
113469        Add support for transitionend event delivery as part as the unprefixing
113470        work on CSS Transitions. This patch adds some code in EventTarget to
113471        figure out if the current event to dispatch has a prefixed version or
113472        not. Then from the list of listeners we deduce which event should be delivered
113473        (prefixed or unprefixed).
113474
113475        In the case of the CSS Transitions, WebKit will now behave as follow :
113476        if an event listener is attached to the prefixed version of the
113477        transition end event then only the prefixed event will be send.
113478        If an event listener is attached to the unprefixed version
113479        of the transition end event then only the unprefixed event will be
113480        send. If there are event listeners on both unprefixed and prefixed
113481        events then only the unprefixed event will be send.
113482
113483        The behavior was discussed here :
113484        http://lists.webkit.org/pipermail/webkit-dev/2013-January/023301.html.
113485
113486        Tests: transitions/transition-end-event-unprefixed-01.html
113487               transitions/transition-end-event-unprefixed-02.html
113488
113489        * dom/Document.cpp:
113490        (WebCore::Document::addListenerTypeIfNeeded): Register the prefixed
113491        listener too as transitionend listeners so that we properly dispatch
113492        events for them.
113493        * dom/EventNames.h:
113494        (WebCore): Add the new transitionend name.
113495        * dom/EventTarget.cpp:
113496        (WebCore::createMatchingPrefixedEvent):
113497        (WebCore::prefixedType):
113498        (WebCore::EventTarget::fireEventListeners): Find out if somebody is
113499        listening for unprefixed events, if so we always send the unprefixed
113500        event, if not then we create a prefixed event and send it.
113501        * page/animation/AnimationController.cpp:
113502        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
113503        * page/animation/ImplicitAnimation.cpp:
113504        (WebCore::ImplicitAnimation::sendTransitionEvent): Always create by
113505        default unprefixed events.
113506
1135072013-01-15  Tony Gentilcore  <tonyg@chromium.org>
113508
113509        Make AtomicMarkupTokenBase use a bare UChar* for external characters
113510        https://bugs.webkit.org/show_bug.cgi?id=106919
113511
113512        Reviewed by Eric Seidel.
113513
113514        This allows an arbitrary backing for external characters which is necessary for the threaded HTML parser.
113515
113516        No new tests because no new functionality.
113517
113518        * html/parser/HTMLTreeBuilder.cpp:
113519        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
113520        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
113521        * xml/parser/MarkupTokenBase.h:
113522        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
113523        (WebCore::AtomicMarkupTokenBase::characters):
113524        (AtomicMarkupTokenBase):
113525        (WebCore::AtomicMarkupTokenBase::charactersLength):
113526        (WebCore::AtomicMarkupTokenBase::clearExternalCharacters):
113527        * xml/parser/XMLTreeBuilder.cpp:
113528        (WebCore::XMLTreeBuilder::processCharacter):
113529
1135302013-01-15  Arko Saha  <arko@motorola.com>
113531
113532        Microdata: propertiesCollection[name] should return undefined if item doesn't have a property named 'name'
113533        https://bugs.webkit.org/show_bug.cgi?id=106849
113534
113535        Reviewed by Kentaro Hara.
113536
113537        We should return undefined if hasNamedItem() is false.
113538
113539        Test: fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html
113540
113541        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
113542        (WebCore::V8HTMLCollection::namedPropertyGetter):
113543
1135442013-01-15  Michael Pruett  <michael@68k.org>
113545
113546        [GTK] Fix build after r139665
113547        https://bugs.webkit.org/show_bug.cgi?id=106917
113548
113549        Reviewed by Dean Jackson.
113550
113551        * GNUmakefile.list.am:
113552
1135532013-01-15  Antti Koivisto  <antti@apple.com>
113554
113555        Move parent pointer from TreeShared to subclass
113556        https://bugs.webkit.org/show_bug.cgi?id=106910
113557
113558        Reviewed by Darin Adler.
113559
113560        This simplifies both TreeShared and clients, and makes code dealing with parents more understandable in general.
113561
113562        * dom/Document.h:
113563        (WebCore::Node::Node):
113564        * dom/Node.cpp:
113565        (WebCore::Node::reportMemoryUsage):
113566        * dom/Node.h:
113567    
113568            Add m_parentOrHostNode variable (matching the accessor names).
113569
113570        (Node):
113571        (WebCore::Node::hasTreeSharedParent):
113572        (WebCore::Node::parentNode):
113573        (WebCore::Node::setParentOrHostNode):
113574        (WebCore::Node::parentOrHostNode):
113575        * platform/TreeShared.h:
113576        (WebCore):
113577        (WebCore::TreeShared::TreeShared):
113578        (WebCore::TreeShared::deref):
113579        
113580            Call subclass hasTreeSharedParent() to figure out if it is time to delete.
113581
113582        (TreeShared):
113583
113584            Remove parent pointer and accessors.
113585            Remove ParentNodeType template parameter.
113586            Remove now unnecessay reportMemoryUsage().
113587
113588        (WebCore::adopted):
113589        * svg/SVGElementInstance.cpp:
113590        (WebCore::SVGElementInstance::SVGElementInstance):
113591        * svg/SVGElementInstance.h:
113592        
113593            Add m_parentInstance variable.
113594
113595        (WebCore::SVGElementInstance::setParentOrHostNode):
113596        (WebCore::SVGElementInstance::parentNode):
113597        (SVGElementInstance):
113598        (WebCore::SVGElementInstance::hasTreeSharedParent):
113599
1136002013-01-15  Simon Fraser  <simon.fraser@apple.com>
113601
113602        Allow tiled WKViews to have transparent backgrounds
113603        https://bugs.webkit.org/show_bug.cgi?id=106400
113604
113605        Reviewed by Anders Carlsson.
113606        
113607        When WKViews were set to have transparent backgrounds, they still
113608        obscured content behind the view, for several reasons.
113609        
113610        First, when in tiled scrolling mode, WKView set the background
113611        of its layer to opaque white. Fix by using the clearColor (effectively
113612        removing the background color) if the view has a non-opaque background.
113613        
113614        Second, RenderLayerBacking just looked at FrameViews's isTransparent()
113615        when deciding to make TileCache tiles non-opaque, but it also needs to
113616        consider FrameViews with a non-opaque base background color. The
113617        same logic was necessary to avoid setting an opaque white background
113618        color on the TileCache layer.
113619        
113620        Finally, for views with non-opaque backgrounds, we don't want to display
113621        linen, so RenderLayerCompositor::requiresOverhangAreasLayer() was changed
113622        to return false in that case.
113623        
113624        View transparency is not testable in layout tests.
113625
113626        * page/FrameView.cpp:
113627        (WebCore::FrameView::hasOpaqueBackground):
113628        * page/FrameView.h:
113629        * rendering/RenderLayerBacking.cpp:
113630        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
113631        (WebCore::RenderLayerBacking::updateBackgroundColor):
113632        * rendering/RenderLayerCompositor.cpp:
113633        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
113634
1136352013-01-15  Ojan Vafai  <ojan@chromium.org>
113636
113637        RenderView does not need to override computePreferredLogicalWidth
113638        https://bugs.webkit.org/show_bug.cgi?id=106852
113639
113640        Reviewed by Levi Weintraub.
113641
113642        Calling minPreferredLogicalWidth calls computePreferredLogicalWidth,
113643        which happens a few lines later in layoutWithFlattening. No need
113644        to call it explicitly.
113645
113646        * rendering/RenderFrameBase.cpp:
113647        (WebCore::RenderFrameBase::layoutWithFlattening):
113648        * rendering/RenderView.cpp:
113649        * rendering/RenderView.h:
113650
1136512013-01-15  Vsevolod Vlasov  <vsevik@chromium.org>
113652
113653        Unreviewed, remove file that was accidentally added to the wrong patch.
113654
113655        * inspector/front-end/FileSystemWorkspaceProvider.js: Removed.
113656
1136572013-01-15  Florin Malita  <fmalita@chromium.org>
113658
113659        [Chromium] Incorrect opaque region tracking for PlatformContextSkia::drawRRect
113660        https://bugs.webkit.org/show_bug.cgi?id=106898
113661
113662        Reviewed by Stephen White.
113663
113664        Since drawRRect() doesn't cover the whole bounding rect, it needs to pass a didDrawBounded
113665        notification down to the opaque region tracker (instead of didDrawRect as it currently
113666        does).
113667
113668        Test: platform/chromium/compositing/rounded-corners.html
113669
113670        * platform/graphics/skia/PlatformContextSkia.h:
113671        (WebCore::PlatformContextSkia::drawRRect):
113672
1136732013-01-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>
113674
113675        [Qt] WebGL does not require accelerated compositing
113676        https://bugs.webkit.org/show_bug.cgi?id=106892
113677
113678        Reviewed by Jocelyn Turcotte.
113679
113680        Allow the creation of WebGL canvas even when accelerated compositing is not enabled.
113681
113682        * html/HTMLCanvasElement.cpp:
113683        (WebCore::HTMLCanvasElement::getContext):
113684
1136852013-01-15  Andrey Lushnikov  <lushnikov@chromium.org>
113686
113687        Web Inspector: refactor DefaultTextEditor's paintLine method
113688        https://bugs.webkit.org/show_bug.cgi?id=106893
113689
113690        Reviewed by Pavel Feldman.
113691
113692        Move render ranges functionality out of paintLine method into separate subroutine.
113693
113694        No new tests: no change in behaviour.
113695
113696        * inspector/front-end/DefaultTextEditor.js:
113697        (WebInspector.TextEditorMainPanel.prototype._renderRanges): Added.
113698        (WebInspector.TextEditorMainPanel.prototype._paintLine):
113699        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
113700
1137012013-01-15  Elliott Sprehn  <esprehn@gmail.com>
113702
113703        display:inline's hover behavior is not applied to ::before and ::after pseudo elements
113704        https://bugs.webkit.org/show_bug.cgi?id=91723
113705
113706        Reviewed by Eric Seidel.
113707
113708        When hovering over the anonymous text renderers inside :before and :after
113709        we would correctly detect a hit in InlineTextBox::nodeAtPoint, but would
113710        then fail to set the correct node for the hit test because in
113711        RenderObject::updateHitTestResult node() is null. Instead we should walk
113712        up the render tree to the PseudoElement and treat it as if we hit that.
113713
113714        Test: fast/css-generated-content/hover-inline.html
113715
113716        * rendering/RenderObject.cpp:
113717        (WebCore::RenderObject::updateHitTestResult):
113718
1137192013-01-15  Zeno Albisser  <zeno@webkit.org>
113720
113721        GraphicsSurface: Canvas with WebGL content is painted off by one pixel
113722        https://bugs.webkit.org/show_bug.cgi?id=106446
113723
113724        When painting to TextureMapper the provided targetRect is in contents
113725        coordinate system. This leads to an off by one pixel error when painting
113726        outlines of 1px.
113727        This needs to be taken into account in the transformation matrix
113728        and in the TextureMapperGL::drawTexture call.
113729
113730        Test: fast/canvas/webgl/webgl-composite-modes.html
113731
113732        Reviewed by Noam Rosenthal.
113733
113734        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
113735        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
113736        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
113737        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
113738        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
113739        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
113740
1137412013-01-14  Kentaro Hara  <haraken@chromium.org>
113742
113743        [V8] Make an Isolate parameter mandatory in SerializedScriptValue methods
113744        https://bugs.webkit.org/show_bug.cgi?id=106800
113745
113746        Reviewed by Adam Barth.
113747
113748        SerializedScriptValue methods are used by both V8 bindings
113749        and WebCore. So they should support both an Isolate-version
113750        method and an non-Isolate version method.
113751
113752        There are two ways to accomplish that:
113753
113754        [1] Use an optional Isolate parameter.
113755
113756        [2] Implement two versions and delegate the non-Isolate
113757        version method to the Isolate version method.
113758
113759        I would prefer the approach [2], because I'd like to statically
113760        make sure that we never pass a 0 Isolate. If we take the approach
113761        [1], we need to insert ASSERT(isolate) here and there.
113762
113763        This patch implements the approach [2].
113764
113765        No tests. No change in behavior.
113766
113767        * bindings/v8/SerializedScriptValue.cpp:
113768        (WebCore::SerializedScriptValue::create):
113769        (WebCore):
113770        (WebCore::SerializedScriptValue::nullValue):
113771        (WebCore::SerializedScriptValue::undefinedValue):
113772        (WebCore::SerializedScriptValue::booleanValue):
113773        (WebCore::SerializedScriptValue::numberValue):
113774        (WebCore::SerializedScriptValue::SerializedScriptValue):
113775        * bindings/v8/SerializedScriptValue.h:
113776        (SerializedScriptValue):
113777
1137782013-01-15  Dongwoo Joshua Im  <dw.im@samsung.com>
113779
113780        [CSS] Rename the enum, from "ETextAlignLast" to "TextAlignLast"
113781        https://bugs.webkit.org/show_bug.cgi?id=106887
113782
113783        Reviewed by Alexis Menard.
113784
113785        No new tests are added since there is no behavior changes.
113786
113787        * css/CSSPrimitiveValueMappings.h:
113788        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
113789        (WebCore::CSSPrimitiveValue::operator TextAlignLast):
113790        * css/StyleBuilder.cpp:
113791        (WebCore::StyleBuilder::StyleBuilder):
113792        * rendering/style/RenderStyle.h:
113793        * rendering/style/RenderStyleConstants.h:
113794        * rendering/style/StyleRareInheritedData.h:
113795        (StyleRareInheritedData):
113796
1137972013-01-15  Tommy Widenflycht  <tommyw@google.com>
113798
113799        MediaStream API: Fixing crashing bug in MediaStream
113800        https://bugs.webkit.org/show_bug.cgi?id=106886
113801
113802        Reviewed by Eric Seidel.
113803
113804        Fixing crashing bug during destruction.
113805
113806        No new tests needed.
113807
113808        * Modules/mediastream/MediaStream.cpp:
113809        (WebCore::MediaStream::contextDestroyed):
113810
1138112013-01-15  Allan Sandfeld Jensen  <allan.jensen@digia.com>
113812
113813        [Qt][CSS Shaders] Make custom filter render in Wk1 mode
113814        https://bugs.webkit.org/show_bug.cgi?id=101532
113815
113816        Reviewed by Noam Rosenthal.
113817
113818        Handle ValidatedCustomFilterOperations which are used by WebKit1. To keep the cache of compiled programs working, 
113819        the cache has been updated to use CustomFilterProgramInfo as a hash key. CustomFilterProgramInfo is an existing
113820        class specifically designed for this purpose.
113821
113822        * platform/graphics/texmap/TextureMapperGL.cpp:
113823        (WebCore::getPassesRequiredForFilter):
113824        (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
113825        (WebCore::TextureMapperGL::drawUsingCustomFilter):
113826        (WebCore::BitmapTextureGL::applyFilters):
113827        * platform/graphics/texmap/TextureMapperGL.h:
113828        (TextureMapperGL):
113829
1138302013-01-15  Andrey Adaikin  <aandrey@chromium.org>
113831
113832        Web Inspector: [Canvas] introduce CallArgument type into the protocol
113833        https://bugs.webkit.org/show_bug.cgi?id=106640
113834
113835        Reviewed by Yury Semikhatsky.
113836
113837        CallArgument type abstraction to describe arguments of a canvas context call.
113838        Drive-by: Introduce a CanvasContext to fix the wrong contextId value in the protocol.
113839        The contextId should point to the Resource that represents a context (2D or 3D canvas).
113840
113841        * inspector/InjectedScriptCanvasModuleSource.js:
113842        (.):
113843        * inspector/Inspector.json:
113844        * inspector/front-end/CanvasProfileView.js:
113845
1138462012-12-28  Vsevolod Vlasov  <vsevik@chromium.org>
113847
113848        Web Inspector: Support inspector file system access with isolated file system through InspectorFrontendHost.
113849        https://bugs.webkit.org/show_bug.cgi?id=105727
113850
113851        Reviewed by Pavel Feldman.
113852
113853        File system access through isolated file system is implemented in inspector.
113854        File system access requests are sent through InspectorFrontendHost.
113855        Introduced IsolatedFileSystemModel encapsulating file system access logic. 
113856        Introduced FileSystemMapping that provides mapping between workspace uris and file system pathes.
113857        DOMFileSystem.createIsolatedFileSystem modified to accept optional registeredName parameter.
113858
113859        * Modules/filesystem/DOMFileSystem.cpp:
113860        (WebCore::DOMFileSystem::createIsolatedFileSystem):
113861        * Modules/filesystem/DOMFileSystem.h:
113862        (DOMFileSystem):
113863        * WebCore.gypi:
113864        * WebCore.vcproj/WebCore.vcproj:
113865        * inspector/InspectorFrontendClient.h:
113866        (InspectorFrontendClient):
113867        * inspector/InspectorFrontendClientLocal.h:
113868        (WebCore::InspectorFrontendClientLocal::supportsFileSystems):
113869        (WebCore::InspectorFrontendClientLocal::requestFileSystems):
113870        (WebCore::InspectorFrontendClientLocal::addFileSystem):
113871        (WebCore::InspectorFrontendClientLocal::removeFileSystem):
113872        (InspectorFrontendClientLocal):
113873        * inspector/InspectorFrontendHost.cpp:
113874        (WebCore::InspectorFrontendHost::supportsFileSystems):
113875        (WebCore):
113876        (WebCore::InspectorFrontendHost::requestFileSystems):
113877        (WebCore::InspectorFrontendHost::addFileSystem):
113878        (WebCore::InspectorFrontendHost::removeFileSystem):
113879        (WebCore::InspectorFrontendHost::isolatedFileSystem):
113880        * inspector/InspectorFrontendHost.h:
113881        (WebCore):
113882        (InspectorFrontendHost):
113883        * inspector/InspectorFrontendHost.idl:
113884        * inspector/compile-front-end.py:
113885        * inspector/front-end/FileSystemMapping.js: Added.
113886        * inspector/front-end/InspectorFrontendAPI.js:
113887        (InspectorFrontendAPI.fileSystemsLoaded):
113888        (InspectorFrontendAPI.fileSystemRemoved):
113889        (InspectorFrontendAPI.fileSystemAdded):
113890        * inspector/front-end/InspectorFrontendHostStub.js:
113891        (.WebInspector.InspectorFrontendHostStub.prototype.supportsFileSystems):
113892        (.WebInspector.InspectorFrontendHostStub.prototype.requestFileSystems):
113893        (.WebInspector.InspectorFrontendHostStub.prototype.addFileSystem):
113894        (.WebInspector.InspectorFrontendHostStub.prototype.removeFileSystem):
113895        (.WebInspector.InspectorFrontendHostStub.prototype.isolatedFileSystem):
113896        * inspector/front-end/IsolatedFileSystemModel.js: Added.
113897        * inspector/front-end/WebKit.qrc:
113898        * inspector/front-end/externs.js:
113899        (DOMFileSystem):
113900        (InspectorFrontendHostAPI.prototype.supportsFileSystems):
113901        (InspectorFrontendHostAPI.prototype.requestFileSystems):
113902        (InspectorFrontendHostAPI.prototype.addFileSystem):
113903        (InspectorFrontendHostAPI.prototype.removeFileSystem):
113904        (InspectorFrontendHostAPI.prototype.isolatedFileSystem):
113905        * inspector/front-end/inspector.html:
113906        * inspector/front-end/inspector.js:
113907
1139082013-01-15  Kondapally Kalyan  <kalyan.kondapally@intel.com>
113909
113910        [EFL][WebGL] Add error handling to carefully manage Window backing pixmaps.
113911        https://bugs.webkit.org/show_bug.cgi?id=106582
113912
113913        Reviewed by Kenneth Rohde Christiansen.
113914
113915        We use XCompositeNameWindowPixmap to create a pixmap that serves as a reference to
113916        the off-screen storage for a Window Handle. We expect the Window to be valid and
113917        the created glx pixmap to be a valid drawable. This may not be true always.
113918        This patch adds support for X Error checks and handles the generated errors.
113919
113920        Covered by existing WebGL layout tests.
113921
113922        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
113923        (WebCore):
113924        (WebCore::handleXPixmapCreationError):
113925        (ScopedXPixmapCreationErrorHandler):
113926        (WebCore::ScopedXPixmapCreationErrorHandler::ScopedXPixmapCreationErrorHandler):
113927        (WebCore::ScopedXPixmapCreationErrorHandler::~ScopedXPixmapCreationErrorHandler):
113928        (WebCore::ScopedXPixmapCreationErrorHandler::isValidOperation):
113929        Helper Class to catch XErrors.
113930
113931        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
113932        (WebCore::GraphicsSurfacePrivate::createPixmap): Added support to check and handle generated XErrors.
113933        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
113934        (WebCore::GraphicsSurfacePrivate::clear): Destroys GL Resources.
113935        (GraphicsSurfacePrivate):
113936
1139372013-01-15  Kondapally Kalyan  <kalyan.kondapally@intel.com>
113938
113939        [EFL] [WebGL] Minor cleanup in PlatformContext.
113940        https://bugs.webkit.org/show_bug.cgi?id=106758
113941
113942        Reviewed by Kenneth Rohde Christiansen.
113943
113944        We currently have different implementations of CurrentContextWrapper for EGL and GLX.
113945        This patch cleans up the code to use same implementation for both the backends.
113946
113947        * platform/graphics/opengl/GLPlatformContext.cpp:
113948        (GLCurrentContextWrapper):
113949        (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
113950        (WebCore::GLCurrentContextWrapper::~GLCurrentContextWrapper):
113951
113952        Common implementation for both EGL and GLX.
113953        (WebCore::createOffScreenContext):
113954        (WebCore::GLPlatformContext::createContext):
113955        * platform/graphics/surfaces/egl/EGLContext.cpp:
113956        * platform/graphics/surfaces/egl/EGLContext.h:
113957        * platform/graphics/surfaces/glx/GLXContext.h:
113958
113959        Removed code related to CurrentContextWrapper.
113960
1139612013-01-14  Ryosuke Niwa  <rniwa@webkit.org>
113962
113963        platform/mac/accessibility/progressbar.html fails on Mac WK1 and WK2
113964        https://bugs.webkit.org/show_bug.cgi?id=106850
113965
113966        Reviewed by Chris Fleizach.
113967
113968        The bug was caused by some callers of supportsFocus directly calling that of Node.
113969        Fixed the bug by calling HTMLElement's so that the virtual function on Element gets
113970        called as needed.
113971
113972        * html/HTMLMeterElement.cpp:
113973        (WebCore::HTMLMeterElement::supportsFocus):
113974        * html/HTMLOutputElement.cpp:
113975        (WebCore::HTMLOutputElement::supportsFocus):
113976        * html/HTMLProgressElement.cpp:
113977        (WebCore::HTMLProgressElement::supportsFocus):
113978
1139792013-01-14  Dima Gorbik  <dgorbik@apple.com>
113980
113981        Implement ID selector matching for the WebVTT ::cue pseudo element
113982        https://bugs.webkit.org/show_bug.cgi?id=105481
113983
113984        Reviewed by Eric Carlson.
113985
113986        Implemented matching cue WebVTT elements by an identifier. Identifiers of all WebVTT nodes in the rendering tree for 
113987        a given cue are set to match the cue identifier.
113988
113989        Existing tests were modified to cover this case.
113990
113991        * html/track/TextTrackCue.cpp:
113992        (WebCore::TextTrackCue::markFutureAndPastNodes):
113993
1139942013-01-14  Mark Pilgrim  <pilgrim@chromium.org>
113995
113996        [Chromium] Use explicit WebKit prefixes in BlobRegistryProxy
113997        https://bugs.webkit.org/show_bug.cgi?id=106859
113998
113999        Reviewed by Adam Barth.
114000
114001        As requested in https://bugs.webkit.org/show_bug.cgi?id=106831#c2
114002
114003        * platform/network/chromium/BlobRegistryProxy.cpp:
114004        (WebCore::BlobRegistryProxy::registerBlobURL):
114005
1140062013-01-14  Max Vujovic  <mvujovic@adobe.com>
114007
114008        [ANGLE] Update ANGLE in WebKit
114009        https://bugs.webkit.org/show_bug.cgi?id=106274
114010
114011        Unreviewed build fix for GTK after http://trac.webkit.org/changeset/139702
114012
114013        * GNUmakefile.am:
114014
1140152013-01-14  Dean Jackson  <dino@apple.com>
114016
114017        Yet another unreviewed attempted QT build fix, this time because
114018        it's falling over on Filters.
114019
114020        * rendering/RenderSnapshottedPlugIn.cpp:
114021        (WebCore):
114022        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel):
114023
1140242013-01-14  Dean Jackson  <dino@apple.com>
114025
114026        Unreviewed EFL build fix.
114027
114028        * CMakeLists.txt:
114029
1140302013-01-14  Dean Jackson  <dino@apple.com>
114031
114032        Blur the label background of a snapshotted plugin
114033        https://bugs.webkit.org/show_bug.cgi?id=106630
114034
114035        Reviewed by Simon Fraser.
114036
114037        When we are showing a label indicating the plugin has been snapshotted,
114038        slightly blur the snapshot behind the label so that it is more clear. I expect
114039        that if/when other ports pick up this code, we'll need to separate the
114040        UI treatment somewhat, but this is ok for a first step.
114041
114042        * rendering/RenderSnapshottedPlugIn.cpp:
114043        (RenderSnapshottedPlugInBlurFilter): Private class to use FEGaussianBlur to blur an image.
114044        (WebCore::RenderSnapshottedPlugInBlurFilter::create):
114045        (WebCore::RenderSnapshottedPlugInBlurFilter::setSourceImageRect):
114046        (WebCore::RenderSnapshottedPlugInBlurFilter::sourceImageRect):
114047        (WebCore::RenderSnapshottedPlugInBlurFilter::filterRegion):
114048        (WebCore::RenderSnapshottedPlugInBlurFilter::output):
114049        (WebCore::RenderSnapshottedPlugInBlurFilter::RenderSnapshottedPlugInBlurFilter):
114050        (WebCore::RenderSnapshottedPlugInBlurFilter::apply):
114051        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): New member variable to hold a cached version of a preblurred snapshot.
114052        (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Remember to remove the preblurred image from the cache.
114053        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Zero the preblurred version if it exists.
114054        (WebCore::RenderSnapshottedPlugIn::paintReplaced): Either paint snapshot or blurred snapshot with label.
114055        (WebCore::RenderSnapshottedPlugIn::paintSnapshot): New method to paint a full sized snapshot.
114056        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot):
114057        (WebCore::snapshottedPluginImageForLabelDisplay): Static function to produce the blurred snapshot.
114058        (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshotWithLabel): Calls paintSnapshot with the blurred snapshot on Mac.
114059        * rendering/RenderSnapshottedPlugIn.h:
114060
1140612013-01-14  Mark Pilgrim  <pilgrim@chromium.org>
114062
114063        [Chromium] Move BlobRegistryProxy into WebCore
114064        https://bugs.webkit.org/show_bug.cgi?id=106831
114065
114066        Reviewed by Adam Barth.
114067
114068        Part of a larger refactoring series to remove layering violations
114069        in Chromium. See tracking bug 106829.
114070
114071        * WebCore.gypi:
114072        * platform/network/chromium/BlobRegistryProxy.cpp: Added.
114073        (WebCore):
114074        (WebCore::blobRegistry):
114075        (WebCore::BlobRegistryProxy::BlobRegistryProxy):
114076        (WebCore::BlobRegistryProxy::registerBlobURL):
114077        (WebCore::BlobRegistryProxy::unregisterBlobURL):
114078        * platform/network/chromium/BlobRegistryProxy.h: Added.
114079        (WebCore):
114080        (BlobRegistryProxy):
114081        (WebCore::BlobRegistryProxy::loadResourceSynchronously):
114082        (WebCore::BlobRegistryProxy::~BlobRegistryProxy):
114083
1140842013-01-14  Levi Weintraub  <leviw@chromium.org>
114085
114086        Rolling out r139618. Appears to be causing sporadic crashes on Debug bots.
114087
114088        * Modules/mediastream/MediaStream.cpp:
114089        (WebCore::processTrack):
114090        * Modules/mediastream/MediaStreamTrack.cpp:
114091        (WebCore::MediaStreamTrack::readyState):
114092        * Modules/mediastream/MediaStreamTrack.h:
114093        * Modules/mediastream/MediaStreamTrack.idl:
114094
1140952013-01-14  Levi Weintraub  <leviw@chromium.org>
114096
114097        Rolling out r139678. This triggered a number of WebAudio crashes on Debug bots.
114098
114099        * platform/audio/chromium/AudioDestinationChromium.cpp:
114100        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
114101
1141022013-01-09  Levi Weintraub <leviw@chromium.org>
114103
114104        Rolling out r139683. It broke a bunch of webkit_unit_tests.
114105
1141062013-01-14  Ojan Vafai  <ojan@chromium.org>
114107
114108        RenderListItem does not need to override computePreferredLogicalWidth
114109        https://bugs.webkit.org/show_bug.cgi?id=106839
114110
114111        Reviewed by Levi Weintraub.
114112
114113        Apparently there was a time when the list marker was considered part of
114114        the list item's preferred width, but that is no longer the case.
114115        This code was added in r3421. The code around preferred widths has change
114116        a lot since then.
114117
114118        * rendering/RenderListItem.cpp:
114119        * rendering/RenderListItem.h:
114120
1141212013-01-13  Dima Gorbik  <dgorbik@apple.com>
114122
114123        Implement element type selectors for the WebVTT ::cue pseudo class
114124        https://bugs.webkit.org/show_bug.cgi?id=105480
114125
114126        Reviewed by Antti Koivisto.
114127
114128        Implemented tag matching for the WebVTT specific tags "c" and "v". All common html tags like "b" and "i" are 
114129        handled without any changes to the code. Creating a rendering tree and DOM tree now use different code paths. 
114130        They both are made by cloning and modifying the tree produced by the parser. Voice tags now use spans for both 
114131        rendering and DOM trees to conform to specs. Since this changes a lot of code little refactoring has been
114132        done. Removed m_hasInnerTimestamps since it is no longer needed, it doesn't affect anything. m_documentFragment 
114133        was renamed to m_webVTTNodeTree.
114134
114135        Existing tests were modified to cover this case.
114136
114137        * html/track/TextTrackCue.cpp:
114138        (WebCore::TextTrackCue::TextTrackCue):
114139        (WebCore::TextTrackCue::setText): rename m_documentFragment to m_webVTTNodeTree
114140        (WebCore::TextTrackCue::createWebVTTNodeTree): parse the cue if it hasn't been parsed before.
114141        (WebCore::TextTrackCue::copyWebVTTNodeToDOMTree): clone and prepare a node for using in the DOM tree according to specs.
114142        (WebCore::TextTrackCue::getCueAsHTML): get a DOM tree for the cue.
114143        (WebCore::TextTrackCue::createCueRenderingTree): create a rendering tree (main tree is just being cloned for now).
114144        (WebCore::TextTrackCue::markFutureAndPastNodes): tightening the argument type.
114145        (WebCore::TextTrackCue::updateDisplayTree):
114146        (WebCore::TextTrackCue::getDisplayTree): code cleanup, removed m_hasInnerTimeStamps.
114147        * html/track/TextTrackCue.h:
114148        (WebCore::TextTrackCue::voiceElementTagName):
114149        (TextTrackCue):
114150        (WebCore::TextTrackCue::classElementTagName):
114151        * html/track/WebVTTParser.cpp:
114152        (WebCore::WebVTTParser::constructTreeFromToken): type of the newly created elements was changed to Element to avoid hitting 
114153        an assertion when cloning because a cloned element will not have HTMLElement type for elements with "v" and "c" tag.
114154
1141552013-01-14  Xianzhu Wang  <wangxianzhu@chromium.org>
114156
114157        Sometimes RenderLayer::updateNeedsCompositedScrolling is not called
114158        https://bugs.webkit.org/show_bug.cgi?id=106271
114159
114160        Reviewed by Simon Fraser.
114161
114162        1. If a layer has no out-of-flow descendant, m_hasOutOfFlowPositionedDescendant won't change and won't trigger updateNeedsCompositedScrolling in updateDescendantDependentFlags. Set m_hasOutOfFlowPositionedDescendantDirty to true and call updateNeedsCompositedScrolling when the dirty flag becomes false from true.
114163        2. When the content size changes causing change of scrollable status, updateNeedsCompositedScrolling should also be called.
114164
114165        Test: compositing/overflow/dynamic-composited-scrolling-status.html
114166
114167        * page/FrameView.cpp:
114168        (WebCore::FrameView::addScrollableArea): Returns whether the scrollable area has just been newly added.
114169        (WebCore::FrameView::removeScrollableArea): Returns whether the scrollable area has just been removed.
114170        * page/FrameView.h:
114171        (FrameView):
114172        * rendering/RenderLayer.cpp:
114173        (WebCore::RenderLayer::RenderLayer): Changed the initial value of m_hasOutOfFlowPositionedDescendantDirty to true to make sure m_hasOutOfFlowPositionedDescendant will be updated initially.
114174        (WebCore::RenderLayer::updateDescendantDependentFlags): Call updateNeedsCompositedScrolling when m_hasOutOfFlowPositionedDescendantDirty is true.
114175        (RenderLayer::updateScrollableAreaSet): Calls updateNeedsCompositedScrolling() when scrollable status changes.
114176        * rendering/RenderLayer.h:
114177        (RenderLayer):
114178
1141792013-01-14  Ryosuke Niwa  <rniwa@webkit.org>
114180
114181        EFL build fix after r139681.
114182
114183        * dom/NodeRareData.h:
114184        (WebCore::NodeMicroDataTokenLists::NodeMicroDataTokenLists):
114185
1141862013-01-14  Tien-Ren Chen  <trchen@chromium.org>
114187
114188        Correct FrameView::scrollableAreaBoundingBox() calculation in the presence of transforms
114189        https://bugs.webkit.org/show_bug.cgi?id=105075
114190
114191        Reviewed by Simon Fraser.
114192
114193        As mentioned by the FIXME comment, we need to ask the renderer for the
114194        absolute bounding box of a frame for correct transformation.
114195        This fixes the bug that iframe cannot be scrolled properly when it is
114196        transformed.
114197
114198        Tests: scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
114199               scrollingcoordinator/non-fast-scrollable-region-transformed-iframe.html
114200
114201        * page/FrameView.cpp:
114202        (WebCore::FrameView::scrollableAreaBoundingBox):
114203
1142042013-01-14  Nate Chapin  <japhet@chromium.org>
114205
114206        Enable reuse of cached main resources
114207        https://bugs.webkit.org/show_bug.cgi?id=105667
114208
114209        Reviewed by Antti Koivisto.
114210
114211        Test: http/tests/cache/cached-main-resource.html
114212
114213        * WebCore.exp.in:
114214        * dom/Document.cpp:
114215        (WebCore::Document::hasManifest): Returns true if the <html> element has a non-empty manifest attribute.
114216        * dom/Document.h:
114217        (Document):
114218        * loader/FrameLoader.cpp:
114219        (WebCore::FrameLoader::loadedResourceFromMemoryCache): Don't send delegate callbacks for cache hit here, since
114220            MainResourceLoader will take care of it.
114221        * loader/MainResourceLoader.cpp:
114222        (WebCore::MainResourceLoader::MainResourceLoader):
114223        (WebCore::MainResourceLoader::receivedError):
114224        (WebCore::MainResourceLoader::willSendRequest):
114225        (WebCore::MainResourceLoader::responseReceived): Don't try to cache loads from the application cache.
114226        (WebCore::MainResourceLoader::didFinishLoading): Don't try to cache loads from the application cache.
114227        (WebCore::MainResourceLoader::load): Ensure we create a resource load identifier for cache hits. Also,
114228            ensure we correctly popualate fragment identifiers in the ResourceRequest reported to DocumentLoader.
114229        (WebCore::MainResourceLoader::identifier):
114230        * loader/MainResourceLoader.h: Rename m_substituteDataLoadIdentifier to m_identifierForLoadWithoutResourceLoader
114231            to better describe when it is used.
114232        * loader/cache/CachedRawResource.cpp:
114233        (WebCore::CachedRawResource::didAddClient): Synthesize redirect notifications for cache hits if necessary.
114234        (WebCore::CachedRawResource::willSendRequest): Note the redirects we received.
114235        (WebCore::CachedRawResource::canReuse): Don't reuse a resource if the redirect chain included a "Cache-control: no-store".
114236        * loader/cache/CachedRawResource.h:
114237        (CachedRawResource):
114238        (RedirectPair):
114239        (WebCore::CachedRawResource::RedirectPair::RedirectPair):
114240        * loader/cache/CachedResource.cpp:
114241        (WebCore::CachedResource::addClientToSet):: Don't return cached data for a main resource synchronously
114242        * loader/cache/CachedResource.h:
114243        (WebCore::CachedResource::canReuse):
114244        (CachedResource):
114245        * loader/cache/CachedResourceLoader.cpp:
114246        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Permit cache reuse for main resources.
114247        * testing/Internals.cpp:
114248        (WebCore::Internals::isLoadingFromMemoryCache):
114249        (WebCore):
114250        * testing/Internals.h:
114251        (Internals):
114252        * testing/Internals.idl:
114253
1142542013-01-11  Ryosuke Niwa  <rniwa@webkit.org>
114255
114256        Move functions from NodeRareData to ElementRareData and other classes
114257        https://bugs.webkit.org/show_bug.cgi?id=106679
114258
114259        Reviewed by Benjamin Poulain.
114260
114261        Moved tab index related functions from NodeRareData to ElementRareData since only
114262        HTMLElement uses them, and moved related functions on Node to Element accordingly.
114263
114264        Also replaced transientMutationObserverRegistry and ensureTransientMutationObserverRegistry
114265        by ensureMutationObserverData, and moved micro-data related member functions into
114266        NodeMicroDataTokenLists, and moved NodeMutationObserverData and NodeMicroDataTokenLists
114267        out of NodeRareData as they're used outside of NodeRareData now.
114268
114269        The intention is to move more code into NodeMutationObserverData and NodeMicroDataTokenLists
114270        in the follow up patches so that they can detect the removability of NodeRareData.
114271
114272        No new tests are added since there should be no behavior changes.
114273
114274        * dom/Element.cpp:
114275        (WebCore::Element::clearTabIndexExplicitlyIfNeeded):
114276        (WebCore::Element::setTabIndexExplicitly):
114277        (WebCore::Element::tabIndex):
114278        (WebCore::Element::supportsFocus):
114279        * dom/Element.h:
114280        (Element):
114281        * dom/ElementRareData.h:
114282        (ElementRareData):
114283        (WebCore::ElementRareData::tabIndex):
114284        (WebCore::ElementRareData::setTabIndexExplicitly):
114285        (WebCore::ElementRareData::tabIndexSetExplicitly):
114286        (WebCore::ElementRareData::clearTabIndexExplicitly):
114287        * dom/Node.cpp:
114288        (WebCore::Node::tabIndex):
114289        (WebCore::Node::supportsFocus):
114290        (WebCore::Node::mutationObserverRegistry):
114291        (WebCore::Node::transientMutationObserverRegistry):
114292        (WebCore::Node::registerMutationObserver):
114293        (WebCore::Node::registerTransientMutationObserver):
114294        (WebCore::Node::itemProp):
114295        (WebCore::Node::setItemProp):
114296        (WebCore::Node::itemRef):
114297        (WebCore::Node::setItemRef):
114298        (WebCore::Node::itemType):
114299        (WebCore::Node::setItemType):
114300        * dom/Node.h:
114301        (Node):
114302        * dom/NodeRareData.h:
114303        (NodeMutationObserverData):
114304        (WebCore::NodeMutationObserverData::create):
114305        (NodeMicroDataTokenLists):
114306        (WebCore::NodeMicroDataTokenLists::create):
114307        (WebCore::NodeMicroDataTokenLists::itemProp):
114308        (WebCore::NodeMicroDataTokenLists::itemRef):
114309        (WebCore::NodeMicroDataTokenLists::itemType):
114310        (NodeRareData):
114311        (WebCore::NodeRareData::mutationObserverData):
114312        (WebCore::NodeRareData::ensureMutationObserverData):
114313        (WebCore::NodeRareData::ensureMicroDataTokenLists):
114314        * html/HTMLElement.cpp:
114315        (WebCore::HTMLElement::parseAttribute):
114316
1143172013-01-14  Ojan Vafai  <ojan@chromium.org>
114318
114319        Remove unnecessary setNeedsLayoutAndPrefWidthsRecalc from RenderTable
114320        https://bugs.webkit.org/show_bug.cgi?id=106832
114321
114322        Reviewed by Levi Weintraub.
114323
114324        These are both called from locations that either set these bits themselves
114325        or clearly don't need these bits set (e.g. computePreferredLogicalWidths).
114326
114327        * rendering/RenderTable.cpp:
114328        (WebCore::RenderTable::splitColumn):
114329        (WebCore::RenderTable::appendColumn):
114330
1143312013-01-14  Chris Rogers  <crogers@google.com>
114332
114333        Switch AudioDestinationChromium over to new createAudioDevice() method
114334        https://bugs.webkit.org/show_bug.cgi?id=106816
114335
114336        Reviewed by James Robinson.
114337
114338        * platform/audio/chromium/AudioDestinationChromium.cpp:
114339        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
114340
1143412013-01-14  Huang Dongsung  <luxtella@company100.net>
114342
114343        [TexMap] Use a premuliplied color in TextureMapperGL.
114344        https://bugs.webkit.org/show_bug.cgi?id=105786
114345
114346        Reviewed by Noam Rosenthal.
114347
114348        TextureMapperGL always uses a premultiplied color, so we must convert
114349        an unmultiplied color to a premultiplied color before setting the uniform value of
114350        colorLocation.
114351
114352        Test: compositing/background-color/background-color-alpha-with-opacity.html
114353
114354        * platform/graphics/texmap/TextureMapperGL.cpp:
114355        (WebCore::TextureMapperGL::drawBorder):
114356        (WebCore::TextureMapperGL::drawSolidColor):
114357        (WebCore::prepareFilterProgram):
114358        * platform/graphics/texmap/TextureMapperLayer.cpp:
114359        (WebCore::blendWithOpacity):
114360        (WebCore):
114361        (WebCore::TextureMapperLayer::paintSelf):
114362            TextureMapperLayer must not convert solidColor to premultiplied
114363            color, because TextureMapperImageBuffer expects unmultiplied color.
114364
1143652013-01-14  Arko Saha  <arko@motorola.com>
114366
114367        Microdata: REGRESSION(r138725): Causes crash in chromium port
114368        https://bugs.webkit.org/show_bug.cgi?id=106828
114369
114370        Reviewed by Ryosuke Niwa.
114371
114372        We should hold PropertyNodeList in RefPtr<PropertyNodeList>.
114373
114374        Test: fast/dom/MicroData/propertiescollection-crash.html
114375
114376        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
114377        (WebCore::V8HTMLCollection::namedPropertyGetter):
114378
1143792013-01-14  Tien-Ren Chen  <trchen@chromium.org>
114380
114381        Positioned children of an overflow:visible container should ignore scroll offset when updating layer position
114382        https://bugs.webkit.org/show_bug.cgi?id=106814
114383
114384        Reviewed by Simon Fraser.
114385
114386        This patch fixes a bug in RenderLayer::updateLayerPosition that
114387        scrollLeft / scrollTop of a block should only be effective when the
114388        block has overflow clipping. The bug results in rendering artifacts
114389        and triggers a RenderGeometryMap assertion falure.
114390
114391        Fixes http://crbug.com/167985
114392
114393        Test: fast/overflow/overflow-visible-should-ignore-scroll.html
114394
114395        * rendering/RenderLayer.cpp:
114396        (WebCore::RenderLayer::updateLayerPosition):
114397
1143982013-01-14  Alec Flett  <alecflett@chromium.org>
114399
114400        IndexedDB: Remove IDBObjectStore/IndexBackendImpl and support functions
114401        https://bugs.webkit.org/show_bug.cgi?id=106605
114402
114403        Remove all uses of IDBObjectStoreBackendInterface and IDBIndexBackend*,
114404        as they are no longer used after recent refactoring.
114405
114406        Reviewed by Darin Fisher.
114407
114408        * GNUmakefile.list.am:
114409        * Modules/indexeddb/IDBCallbacks.h:
114410        (WebCore):
114411        * Modules/indexeddb/IDBCursor.cpp:
114412        (WebCore::IDBCursor::update):
114413        * Modules/indexeddb/IDBDatabase.cpp:
114414        (WebCore::IDBDatabase::createObjectStore):
114415        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
114416        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
114417        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
114418        (IDBDatabaseBackendImpl):
114419        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
114420        (WebCore):
114421        (IDBDatabaseBackendInterface):
114422        * Modules/indexeddb/IDBFactoryBackendImpl.h:
114423        (IDBFactoryBackendImpl):
114424        * Modules/indexeddb/IDBFactoryBackendInterface.h:
114425        (IDBFactoryBackendInterface):
114426        * Modules/indexeddb/IDBIndex.cpp:
114427        * Modules/indexeddb/IDBIndexBackendInterface.h: Removed.
114428        * Modules/indexeddb/IDBObjectStore.cpp:
114429        (WebCore::IDBObjectStore::add):
114430        (WebCore::IDBObjectStore::put):
114431        * Modules/indexeddb/IDBObjectStore.h:
114432        (IDBObjectStore):
114433        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
114434        (WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
114435        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
114436        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
114437        (IndexWriter):
114438        (IDBObjectStoreBackendImpl):
114439        * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Removed.
114440        * Modules/indexeddb/IDBTransaction.cpp:
114441        * Modules/indexeddb/IDBTransactionBackendImpl.h:
114442        (IDBTransactionBackendImpl):
114443        * Modules/indexeddb/IDBTransactionBackendInterface.h:
114444        (WebCore):
114445        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
114446        * Target.pri:
114447        * WebCore.gypi:
114448        * WebCore.vcproj/WebCore.vcproj:
114449        * WebCore.xcodeproj/project.pbxproj:
114450
1144512013-01-14  Max Vujovic  <mvujovic@adobe.com>
114452
114453        [ANGLE] Update ANGLE in WebKit
114454        https://bugs.webkit.org/show_bug.cgi?id=106274
114455
114456        Reviewed by Dean Jackson.
114457
114458        Update ANGLE to r1641.
114459
114460        Update the files used in the EFL and GTK builds.
114461
114462        No new tests. No change in behavior.
114463
114464        * CMakeLists.txt:
114465        * GNUmakefile.list.am:
114466
1144672013-01-14  Julien Chaffraix  <jchaffraix@webkit.org>
114468
114469        REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
114470        https://bugs.webkit.org/show_bug.cgi?id=105861
114471
114472        Reviewed by David Hyatt.
114473
114474        Test: fast/repaint/overhanging-float-detach-repaint.html
114475
114476        The issue comes from overhanging float not contributing to their containing block's
114477        overflow. This meant that repaint() would ignore them leading to an under-repaint.
114478        The fix is simple: force all the overhanging floats to repaint themselves.
114479
114480        * rendering/RenderObject.cpp:
114481        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
114482
1144832013-01-14  Dominic Mazzoni  <dmazzoni@google.com>
114484
114485        AX: Need to implement ColorWellRole
114486        https://bugs.webkit.org/show_bug.cgi?id=106756
114487
114488        Reviewed by Chris Fleizach.
114489
114490        Maps input type=color to the accessible role ColorWellRole.
114491        Adds a new accessor to AccessibilityObject to get the color
114492        value in a cross-platform way that doesn't require parsing.
114493
114494        Test: accessibility/color-well.html
114495
114496        * accessibility/AccessibilityNodeObject.cpp:
114497        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
114498        (WebCore::AccessibilityNodeObject::colorValue):
114499        (WebCore):
114500        * accessibility/AccessibilityNodeObject.h:
114501        (AccessibilityNodeObject):
114502        * accessibility/AccessibilityObject.h:
114503        (WebCore::AccessibilityObject::isColorWell):
114504        (AccessibilityObject):
114505        (WebCore::AccessibilityObject::colorValue):
114506        * accessibility/AccessibilityRenderObject.cpp:
114507        (WebCore::AccessibilityRenderObject::stringValue):
114508        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
114509        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
114510        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
114511        * html/HTMLInputElement.cpp:
114512        (WebCore):
114513        (WebCore::HTMLInputElement::isColorControl):
114514        * html/HTMLInputElement.h:
114515        (HTMLInputElement):
114516
1145172013-01-11  Emil A Eklund  <eae@chromium.org>
114518
114519        offsetWidth/height incorrect for images when zoomed
114520        https://bugs.webkit.org/show_bug.cgi?id=106624
114521
114522        Reviewed by Levi Weintraub.
114523        
114524        offsetWidth and height are incorrect for images at certain zoom
114525        levels due to flooring the values ones adjusted for zoom.
114526        By rounding the value instead we avoid the problem and return
114527        the right size.
114528
114529        Test: fast/images/zoomed-offset-size.html
114530
114531        * dom/Element.cpp:
114532        (WebCore::Element::offsetWidth):
114533        (WebCore::Element::offsetHeight):
114534        (WebCore::Element::clientWidth):
114535        (WebCore::Element::clientHeight):
114536        Change to round (as opposed to floor) the zoom adjusted value.
114537        
114538        * rendering/RenderObject.h:
114539        (WebCore::adjustLayoutUnitForAbsoluteZoom):
114540        * rendering/style/RenderStyle.h:
114541        (WebCore::adjustLayoutUnitForAbsoluteZoom):
114542        Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
114543        conversion.
114544
1145452013-01-14  Mark Pilgrim  <pilgrim@chromium.org>
114546
114547        [Chromium] Move AudioDestinationChromium into WebCore
114548        https://bugs.webkit.org/show_bug.cgi?id=106803
114549
114550        Reviewed by Adam Barth.
114551
114552        This doesn't really belong in WebKit/chromium/src since it defines
114553        things directly in the WebCore namespace.
114554
114555        * WebCore.gypi:
114556        * platform/audio/chromium/AudioDestinationChromium.cpp: Added.
114557        (WebCore):
114558        (WebCore::AudioDestination::create):
114559        (WebCore::AudioDestinationChromium::AudioDestinationChromium):
114560        (WebCore::AudioDestinationChromium::~AudioDestinationChromium):
114561        (WebCore::AudioDestinationChromium::start):
114562        (WebCore::AudioDestinationChromium::stop):
114563        (WebCore::AudioDestination::hardwareSampleRate):
114564        (WebCore::AudioDestinationChromium::render):
114565        (WebCore::AudioDestinationChromium::provideInput):
114566        * platform/audio/chromium/AudioDestinationChromium.h: Added.
114567        (WebCore):
114568        (AudioDestinationChromium):
114569        (WebCore::AudioDestinationChromium::isPlaying):
114570        (WebCore::AudioDestinationChromium::sampleRate):
114571
1145722013-01-14  Adrian Perez de Castro  <aperez@igalia.com>
114573
114574        [GTK] Fix indentation for GStreamer supported MIME types list
114575        https://bugs.webkit.org/show_bug.cgi?id=106812
114576
114577        Reviewed by Philippe Normand.
114578
114579        No tests. No change in behavior.
114580
114581        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
114582
1145832013-01-14  John Bauman  <jbauman@chromium.org>
114584
114585        Use correct size for DrawingBuffer readback
114586        https://bugs.webkit.org/show_bug.cgi?id=106744
114587
114588        Reviewed by Kenneth Russell.
114589
114590        The value getInternalFramebufferSize is bogus if there's a
114591        DrawingBuffer, so use size() instead.
114592
114593        * platform/graphics/chromium/DrawingBufferChromium.cpp:
114594        (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
114595
1145962013-01-14  Joshua Bell  <jsbell@chromium.org>
114597
114598        Bindings: Remove special cases for DOMString[]
114599        https://bugs.webkit.org/show_bug.cgi?id=106506
114600
114601        Remove special in binding code generators that map DOMString[] to DOMStringList.
114602        Array (T[]) and sequence (sequence<T>) are supported enough now that to be used
114603        for Internals, which is the only IDL that needed updating.
114604
114605        Reviewed by Adam Barth.
114606
114607        Tests: fast/forms/file/selected-files-from-history-state.html
114608               fast/forms/state-restore-broken-state.html
114609               fast/forms/state-restore-skip-stateless.html
114610
114611        Bindings test results updated for JS/V8.
114612
114613        * bindings/scripts/CodeGenerator.pm: Remove redundant IsArrayType (use GetArrayType instead)
114614        (IsRefPtrType): Array and Sequence types are not RefPtr types.
114615        * bindings/scripts/CodeGeneratorJS.pm:
114616        (IndexGetterReturnsStrings): Remove special case for DOMString[].
114617        (AddIncludesForType): Skip Array types, just like Sequence types. (Should probably recurse
114618        for the base type, but not needed for now.)
114619        (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
114620        (GetNativeType): Remove special case for DOMString[].
114621        (GetNativeTypeForCallbacks): Ditto.
114622        (JSValueToNative): Ditto.
114623        * bindings/scripts/CodeGeneratorV8.pm:
114624        (GenerateParametersCheckExpression): s/IsArrayType/GetArrayType/
114625        (GetNativeType): Remove special case for DOMString[].
114626        (JSValueToNative): Ditto.
114627        (GetV8HeaderName): Ditto.
114628        (IsWrapperType):
114629        * bindings/scripts/test/JS/JSTestObj.cpp:
114630        (WebCore):
114631        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
114632        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
114633        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
114634        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
114635        * bindings/scripts/test/JS/JSTestObj.h:
114636        (WebCore):
114637        * bindings/scripts/test/TestObj.idl: Added explicit new cases for DOMStringList
114638        * bindings/scripts/test/V8/V8TestObj.cpp:
114639        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
114640        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
114641        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
114642        (TestObjV8Internal):
114643        (WebCore::TestObjV8Internal::domStringListFunctionCallback):
114644        (WebCore):
114645        (WebCore::ConfigureV8TestObjTemplate):
114646        * testing/Internals.cpp:
114647        (WebCore::Internals::formControlStateOfPreviousHistoryItem):
114648        (WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
114649        (WebCore::Internals::iconURLs):
114650        (WebCore::Internals::getReferencedFilePaths):
114651        * testing/Internals.h:
114652        (Internals):
114653        * testing/Internals.idl: Produce DOMString[], consume sequence<DOMString> to match tests.
114654
1146552013-01-14  Elliott Sprehn  <esprehn@chromium.org>
114656
114657        Clean up WebVTTNodeType code
114658        https://bugs.webkit.org/show_bug.cgi?id=106714
114659
114660        Reviewed by Tony Chang.
114661
114662        There's no reason for so many methods just to compare some enums.
114663        The existing code can also be simplified quite a bit.
114664
114665        No new tests, just refactoring.
114666
114667        * css/SelectorChecker.cpp:
114668        (WebCore::SelectorChecker::checkOne):
114669        * css/StyleResolver.cpp:
114670        (WebCore::StyleResolver::collectMatchingRules):
114671        (WebCore::StyleResolver::canShareStyleWithElement):
114672        * dom/Element.cpp:
114673        (WebCore::Element::webVTTNodeType):
114674        (WebCore::Element::setWebVTTNodeType):
114675        * dom/Element.h:
114676        (Element):
114677        * dom/ElementRareData.h:
114678        (WebCore::ElementRareData::setWebVTTNodeType):
114679        (WebCore::ElementRareData::webVTTNodeType):
114680        (ElementRareData):
114681        * dom/NodeRareData.h:
114682        (WebCore::NodeRareData::NodeRareData):
114683        (NodeRareData):
114684        * html/track/TextTrack.h:
114685        * html/track/TextTrackCue.cpp:
114686        (WebCore::TextTrackCue::markFutureAndPastNodes):
114687
1146882013-01-14  Antti Koivisto  <antti@apple.com>
114689
114690        REGRESSION (r139218): Flaky assertion in WebCore::StorageTask::StorageTask releasing memory
114691        https://bugs.webkit.org/show_bug.cgi?id=106718
114692
114693        Reviewed by Andreas Kling.
114694
114695        Type assertion was missing a new type.
114696
114697        * storage/StorageTask.cpp:
114698        (WebCore::StorageTask::StorageTask):
114699
1147002013-01-14  Yury Semikhatsky  <yurys@chromium.org>
114701
114702        [REGRESSION] Dev Tools popup for Workers forgets sizes/shows tiny in top left
114703        https://bugs.webkit.org/show_bug.cgi?id=106807
114704
114705        Reviewed by Pavel Feldman.
114706
114707        Open dedicated worker inspector 600x600 by default and remember its size
114708        after resizing.
114709
114710        * inspector/front-end/Settings.js:
114711        * inspector/front-end/WorkerManager.js:
114712
1147132013-01-14  Kentaro Hara  <haraken@chromium.org>
114714
114715        [V8] Make an Isolate parameter mandatory in associateObjectWithWrapper()
114716        https://bugs.webkit.org/show_bug.cgi?id=106784
114717
114718        Reviewed by Adam Barth.
114719
114720        No tests. No change in behavior.
114721
114722        * bindings/v8/V8DOMWrapper.h:
114723        (V8DOMWrapper):
114724
1147252013-01-14  Kentaro Hara  <haraken@chromium.org>
114726
114727        [V8] Make an Isolate parameter mandatory in ScriptDebugServer::interruptAndRun()
114728        https://bugs.webkit.org/show_bug.cgi?id=106779
114729
114730        Reviewed by Adam Barth.
114731
114732        This is one of steps to make an Isolate parameter mandatory.
114733
114734        No tests. No change in behavior.
114735
114736        * bindings/v8/ScriptDebugServer.h:
114737        (ScriptDebugServer):
114738
1147392013-01-14  Kentaro Hara  <haraken@chromium.org>
114740
114741        [V8] Make an Isolate parameter mandatory in wrap()
114742        https://bugs.webkit.org/show_bug.cgi?id=106783
114743
114744        Reviewed by Adam Barth.
114745
114746        Now it's safe to make an Isolate parameter in wrap().
114747
114748        No tests. No change in behavior.
114749
114750        * bindings/scripts/CodeGeneratorV8.pm:
114751        (GenerateHeader):
114752        * bindings/scripts/test/V8/V8Float64Array.h:
114753        (WebCore):
114754        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
114755        (WebCore::wrap):
114756        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
114757        (WebCore::wrap):
114758        * bindings/scripts/test/V8/V8TestEventConstructor.h:
114759        (WebCore::wrap):
114760        * bindings/scripts/test/V8/V8TestEventTarget.h:
114761        (WebCore::wrap):
114762        * bindings/scripts/test/V8/V8TestException.h:
114763        (WebCore::wrap):
114764        * bindings/scripts/test/V8/V8TestInterface.h:
114765        (WebCore::wrap):
114766        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
114767        (WebCore::wrap):
114768        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
114769        (WebCore::wrap):
114770        * bindings/scripts/test/V8/V8TestNode.h:
114771        (WebCore::wrap):
114772        * bindings/scripts/test/V8/V8TestObj.h:
114773        (WebCore::wrap):
114774        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
114775        (WebCore::wrap):
114776        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
114777        (WebCore::wrap):
114778
1147792013-01-14  Tommy Widenflycht  <tommyw@google.com>
114780
114781        MediaStream API: Update MediaStreamTrack::readyState to match specification
114782        https://bugs.webkit.org/show_bug.cgi?id=106781
114783
114784        Reviewed by Adam Barth.
114785
114786        MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
114787
114788        Existing tests expanded to cover patch.
114789
114790        * Modules/mediastream/MediaStream.cpp:
114791        (WebCore::processTrack):
114792        * Modules/mediastream/MediaStreamTrack.cpp:
114793        (WebCore::MediaStreamTrack::readyState):
114794        (WebCore::MediaStreamTrack::ended):
114795        (WebCore):
114796        * Modules/mediastream/MediaStreamTrack.h:
114797        (MediaStreamTrack):
114798        * Modules/mediastream/MediaStreamTrack.idl:
114799
1148002013-01-14  Vsevolod Vlasov  <vsevik@chromium.org>
114801
114802        Web Inspector: Audit Tool's False Positive on Set-Cookie header
114803        https://bugs.webkit.org/show_bug.cgi?id=106794
114804
114805        Reviewed by Pavel Feldman.
114806
114807        Header value is now returned as undefined if there is no such header as it was before regression.
114808
114809        Test: http/tests/inspector/audits/set-cookie-header-audit-no-false-positive.html
114810
114811        * inspector/front-end/AuditRules.js:
114812        (WebInspector.AuditRules.CSSRuleBase.prototype.sheetsCallback): Drive-by fix, callback should be called even when there is no headers. 
114813        * inspector/front-end/NetworkRequest.js:
114814        (WebInspector.NetworkRequest.prototype._headerValue):
114815
1148162013-01-14  Eric Carlson  <eric.carlson@apple.com>
114817
114818        Do not pass nil when initializing legible output
114819        https://bugs.webkit.org/show_bug.cgi?id=106799
114820
114821        Reviewed by Jessie Berlin.
114822
114823        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
114824        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): -[AVPlayerItemLegibleOutput initWithDependencyFactory:mediaSubtypesForNativeRepresentation:]
114825            wants an empty NSArray rather than nil.
114826
1148272013-01-14  Andrey Adaikin  <aandrey@chromium.org>
114828
114829        Web Inspector: [Canvas] UI: add control buttons for doing the replay steps
114830        https://bugs.webkit.org/show_bug.cgi?id=106788
114831
114832        Reviewed by Pavel Feldman.
114833
114834        Adding UI control buttons for doing the Canvas replay steps.
114835        Drive-by: fixed a bug in DataGrid (found by the JSCompiler).
114836
114837        * inspector/front-end/CanvasProfileView.js:
114838        (WebInspector.CanvasProfileView):
114839        (WebInspector.CanvasProfileView.prototype._createControlButton):
114840        (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
114841        (WebInspector.CanvasProfileView.prototype._onReplayFirstStepClick):
114842        (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
114843        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
114844        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
114845        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
114846        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
114847        (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
114848        * inspector/front-end/DOMExtension.js:
114849        (Element.prototype.enableStyleClass):
114850        * inspector/front-end/DataGrid.js:
114851        (WebInspector.DataGrid.prototype.setRootNode):
114852        (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
114853        (WebInspector.DataGrid.prototype.moveToNextIfNeeded):
114854        (WebInspector.DataGrid.prototype._editingCommitted):
114855        (WebInspector.DataGridNode):
114856        * inspector/front-end/canvasProfiler.css:
114857        (.canvas-replay-image):
114858        (.canvas-replay-image.wait):
114859        (.canvas-replay-controls):
114860        (.canvas-replay-log):
114861        (.canvas-control-button):
114862        (.canvas-control-button:active):
114863        (.canvas-control-button:disabled):
114864        (.canvas-control-button img):
114865        (.canvas-replay-first-step img):
114866        (.canvas-replay-next-step img):
114867        (.canvas-replay-prev-step img):
114868        (.canvas-replay-last-step img):
114869
1148702013-01-14  Tommy Widenflycht  <tommyw@google.com>
114871
114872        MediaStream API: Update the track accessors on MediaStream to match the latest specification
114873        https://bugs.webkit.org/show_bug.cgi?id=106660
114874
114875        Reviewed by Adam Barth.
114876
114877        The spec has significantly changed how tracks are accessed from a MediaStream:
114878        http://dev.w3.org/2011/webrtc/editor/getusermedia.html
114879
114880        In short: the attributes audioTrack/videoTrack that returned special MediaStreamTrackLists have been
114881        replaced by the functions getAudioTracks()/getVideoTracks that return standard sequences of
114882        MediaStreamTracks.
114883
114884        Existing tests updated and expanded to cover patch.
114885
114886        * CMakeLists.txt:
114887        * GNUmakefile.list.am:
114888        * Modules/mediastream/MediaStream.cpp:
114889        (WebCore::MediaStream::create):
114890        (WebCore::MediaStream::MediaStream):
114891        (WebCore::MediaStream::~MediaStream):
114892        (WebCore::MediaStream::readyState):
114893        (WebCore):
114894        (WebCore::MediaStream::addTrack):
114895        (WebCore::MediaStream::removeTrack):
114896        (WebCore::MediaStream::getTrackById):
114897        (WebCore::MediaStream::streamEnded):
114898        (WebCore::MediaStream::contextDestroyed):
114899        (WebCore::MediaStream::scheduleDispatchEvent):
114900        (WebCore::MediaStream::scheduledEventTimerFired):
114901        * Modules/mediastream/MediaStream.h:
114902        (MediaStream):
114903        (WebCore::MediaStream::getAudioTracks):
114904        (WebCore::MediaStream::getVideoTracks):
114905        * Modules/mediastream/MediaStream.idl:
114906        * Modules/mediastream/MediaStreamTrackList.cpp: Removed.
114907        * Modules/mediastream/MediaStreamTrackList.h: Removed.
114908        * Modules/mediastream/MediaStreamTrackList.idl: Removed.
114909        * Modules/webaudio/AudioContext.cpp:
114910        (WebCore::AudioContext::createMediaStreamSource):
114911        * WebCore.gypi:
114912        * dom/EventTargetFactory.in:
114913        * platform/mediastream/MediaStreamDescriptor.h:
114914        (WebCore::MediaStreamDescriptor::addAudioComponent):
114915        (WebCore::MediaStreamDescriptor::removeAudioComponent):
114916        (WebCore::MediaStreamDescriptor::addVideoComponent):
114917        (WebCore::MediaStreamDescriptor::removeVideoComponent):
114918
1149192013-01-14  Kentaro Hara  <haraken@chromium.org>
114920
114921        [V8] Add m_isolate to ScriptController, WorkerScriptController and V8DOMWindowShell
114922        https://bugs.webkit.org/show_bug.cgi?id=106771
114923
114924        Reviewed by Adam Barth.
114925
114926        This is one of the steps to pass an Isolate everywhere.
114927
114928        No tests. No change in behavior.
114929
114930        * bindings/v8/ScriptController.cpp:
114931        (WebCore::ScriptController::ScriptController):
114932        (WebCore::ScriptController::windowShell):
114933        * bindings/v8/ScriptController.h:
114934        (ScriptController):
114935        * bindings/v8/V8DOMWindowShell.cpp:
114936        (WebCore::V8DOMWindowShell::create):
114937        (WebCore::V8DOMWindowShell::V8DOMWindowShell):
114938        (WebCore::V8DOMWindowShell::initializeIfNeeded):
114939        (WebCore::V8DOMWindowShell::installDOMWindow):
114940        * bindings/v8/V8DOMWindowShell.h:
114941        (V8DOMWindowShell):
114942        * bindings/v8/V8Initializer.cpp:
114943        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
114944        (WebCore::V8Initializer::initializeWorker):
114945        * bindings/v8/V8Initializer.h:
114946        (V8Initializer):
114947        * bindings/v8/WorkerScriptController.cpp:
114948        (WebCore::WorkerScriptController::WorkerScriptController):
114949        (WebCore::WorkerScriptController::initializeContextIfNeeded):
114950
1149512013-01-14  Alexander Pavlov  <apavlov@chromium.org>
114952
114953        Web Inspector: [Styles] Color names parsed inside "background-image" values
114954        https://bugs.webkit.org/show_bug.cgi?id=106770
114955
114956        Reviewed by Pavel Feldman.
114957
114958        Test: inspector/styles/url-color-swatch.html
114959
114960        Spaces were not allowed in url(...) CSS property values.
114961
114962        * inspector/front-end/StylesSidebarPane.js:
114963
1149642013-01-14  Kentaro Hara  <haraken@chromium.org>
114965
114966        [V8] Pass an Isolate to associateObjectWithWrapper()
114967        https://bugs.webkit.org/show_bug.cgi?id=106773
114968
114969        Reviewed by Adam Barth.
114970
114971        In preparation for making an Isolate parameter mandatory
114972        in associateObjectWithWrapper(), this patch passes an
114973        Isolate to associateObjectWithWrapper().
114974
114975        No tests. No change in behavior.
114976
114977        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
114978        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
114979        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
114980        (WebCore::wrapArrayBufferView):
114981        (WebCore::constructWebGLArray):
114982        * bindings/v8/custom/V8AudioContextCustom.cpp:
114983        (WebCore::V8AudioContext::constructorCallbackCustom):
114984        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
114985        (WebCore::V8DOMFormData::constructorCallbackCustom):
114986        * bindings/v8/custom/V8DataViewCustom.cpp:
114987        (WebCore::V8DataView::constructorCallbackCustom):
114988        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
114989        (WebCore::v8HTMLImageElementConstructorCallback):
114990        * bindings/v8/custom/V8IntentCustom.cpp:
114991        (WebCore::V8Intent::constructorCallbackCustom):
114992        * bindings/v8/custom/V8MessageChannelCustom.cpp:
114993        (WebCore::V8MessageChannel::constructorCallbackCustom):
114994        * bindings/v8/custom/V8MutationObserverCustom.cpp:
114995        (WebCore::V8MutationObserver::constructorCallbackCustom):
114996        * bindings/v8/custom/V8WebKitPointCustom.cpp:
114997        (WebCore::V8WebKitPoint::constructorCallbackCustom):
114998        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
114999        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
115000
1150012013-01-14  Kentaro Hara  <haraken@chromium.org>
115002
115003        [V8] Call Isolate::GetCurrent() in a callback from WebCore
115004        https://bugs.webkit.org/show_bug.cgi?id=106766
115005
115006        Reviewed by Adam Barth.
115007
115008        The objective is to pass an Isolate everywhere.
115009        Given that a callback from WebCore is an entry point to V8,
115010        we can call Isolate::GetCurrent() at the head of the callback
115011        and pass it to other places. (In practice, handleEvent() is
115012        the only callback used in the current WebKit.)
115013
115014        No tests. No change in behavior.
115015
115016        * bindings/scripts/CodeGeneratorV8.pm:
115017        (GenerateCallbackImplementation):
115018        (NativeToJSValue):
115019        * bindings/scripts/test/V8/V8TestCallback.cpp:
115020        (WebCore::V8TestCallback::callbackWithNoParam):
115021        (WebCore::V8TestCallback::callbackWithClass1Param):
115022        (WebCore::V8TestCallback::callbackWithClass2Param):
115023        (WebCore::V8TestCallback::callbackWithStringList):
115024        (WebCore::V8TestCallback::callbackWithBoolean):
115025        (WebCore::V8TestCallback::callbackRequiresThisToPass):
115026
1150272013-01-14  Tommy Widenflycht  <tommyw@google.com>
115028
115029        MediaStream API: Change MediaStream::readyState to an boolean attribute called ended.
115030        https://bugs.webkit.org/show_bug.cgi?id=106568
115031
115032        Reviewed by Adam Barth.
115033
115034        See specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
115035
115036        Existings tests updated to cover patch.
115037
115038        * Modules/mediastream/LocalMediaStream.cpp:
115039        (WebCore::LocalMediaStream::stop):
115040        * Modules/mediastream/MediaStream.cpp:
115041        (WebCore::MediaStream::ended):
115042        (WebCore::MediaStream::streamEnded):
115043        * Modules/mediastream/MediaStream.h:
115044        (MediaStream):
115045        (WebCore::MediaStream::isLocal):
115046        * Modules/mediastream/MediaStream.idl:
115047        * Modules/mediastream/MediaStreamTrackList.cpp:
115048        (WebCore::MediaStreamTrackList::add):
115049        (WebCore::MediaStreamTrackList::remove):
115050
1150512013-01-14  Alexander Pavlov  <apavlov@chromium.org>
115052
115053        Web Inspector: [Styles] HTML color names not converted to RGB/HEX/HSL when "Color format" feature used
115054        https://bugs.webkit.org/show_bug.cgi?id=106767
115055
115056        Reviewed by Vsevolod Vlasov.
115057
115058        We used to render named colors as names regardless of the selected color format option.
115059
115060        * inspector/front-end/StylesSidebarPane.js:
115061        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
115062
1150632013-01-14  Andrei Bucur  <abucur@adobe.com>
115064
115065        Crash caused by incomplete cleanup of regions information for anonymous block
115066        https://bugs.webkit.org/show_bug.cgi?id=106191
115067
115068        Reviewed by Abhishek Arya.
115069
115070        When an anonymous block is no longer required it is removed from the render tree and deleted. For example, this can happen when an anonymous block children change
115071        from inlines to blocks. The patch updates the removeLeftoverAnonymousBlock function to delete the flow thread information attached to the obsolete anonymous block.
115072        The removeFromRenderFlowThread() function is recursive and it needs to be called after the anonymous block children were reparented and the child list cleared.
115073        I've also placed the children reset operation before clearing the parent because the latter also deletes the inRenderFlowThread flag from the object and it makes
115074        flow thread ownership detection impossible.
115075
115076        Tests: fast/regions/remove-leftover-anon-block-crash.html
115077
115078        * rendering/RenderBlock.cpp:
115079        (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
115080
1150812013-01-14  Kentaro Hara  <haraken@chromium.org>
115082
115083        [V8] Make an Isolate parameter mandatory in v8DateOrNull()
115084        https://bugs.webkit.org/show_bug.cgi?id=106765
115085
115086        Reviewed by Adam Barth.
115087
115088        This is one of the efforts to kill all optional Isolate parameters.
115089
115090        No tests. No change in behavior.
115091
115092        * bindings/v8/V8Binding.h:
115093        (WebCore::v8DateOrNull):
115094
1150952013-01-14  Pablo Flouret  <pablof@motorola.com>
115096
115097        Allow nesting of at-rules
115098        https://bugs.webkit.org/show_bug.cgi?id=106696
115099
115100        Reviewed by Allan Sandfeld Jensen.
115101
115102        http://dev.w3.org/csswg/css3-conditional/ introduces the
115103        concept of grouping rules, and allows for them to be nested. In
115104        particular, this change affects @media (and is needed for @supports as
115105        well).
115106
115107        Test: fast/css/nested-at-rules.html
115108
115109        * css/CSSGrammar.y.in:
115110            Move media to the block_valid_rule list.
115111
115112        * css/RuleSet.cpp:
115113        (WebCore::RuleSet::addRegionRule):
115114        (WebCore::RuleSet::addChildRules):
115115        (WebCore::RuleSet::addRulesFromSheet):
115116        * css/RuleSet.h:
115117            Rip out the rule-adding loop into a new method, for added
115118            cleanliness and recursing.
115119
1151202013-01-14  Eugene Klyuchnikov  <eustas@chromium.org>
115121
115122        Web Inspector: [Network] Add domain column
115123        https://bugs.webkit.org/show_bug.cgi?id=106757
115124
115125        Reviewed by Pavel Feldman.
115126
115127        Adding new column will ease domain tracking / sorting.
115128
115129        * inspector/front-end/NetworkPanel.js: Added column.
115130        * inspector/front-end/NetworkRequest.js:
115131        (WebInspector.NetworkRequest.prototype.get domain): Added getter.
115132
1151332013-01-14  Qiankun Miao  <qiankun.miao@intel.com>
115134
115135        Fix a typo error in the comments in PlatformContextSkia.h
115136        https://bugs.webkit.org/show_bug.cgi?id=105612
115137
115138        Reviewed by Stephen White.
115139
115140        "If false we're rendering to a GraphicsContext for a web page, if false
115141        we're not (as is the case when rendering to a canvas object)." is
115142        self-contradictory. The second "flase" in the comments should be
115143        "true". If true, we're rendering to an ImageBuffer which has a canvas
115144        object.
115145
115146        * platform/graphics/skia/PlatformContextSkia.h:
115147        (PlatformContextSkia):
115148
1151492013-01-14  Ilya Tikhonovsky  <loislo@chromium.org>
115150
115151        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 3/3
115152        https://bugs.webkit.org/show_bug.cgi?id=106764
115153
115154        Reviewed by Vsevolod Vlasov.
115155
115156        Last three classes with not instrumented members were fixed.
115157
115158        * css/CSSGroupingRule.cpp:
115159        (WebCore::CSSGroupingRule::reportMemoryUsage):
115160        * css/StyleScopeResolver.cpp:
115161        (WebCore::StyleScopeResolver::reportMemoryUsage):
115162        * loader/cache/CachedResourceLoader.cpp:
115163        (WebCore::CachedResourceLoader::reportMemoryUsage):
115164
1151652013-01-10  Ilya Tikhonovsky  <loislo@chromium.org>
115166
115167        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
115168        https://bugs.webkit.org/show_bug.cgi?id=106546
115169
115170        Reviewed by Vsevolod Vlasov.
115171
115172        Many nontrivial class members were added into reportMemoryUsage methods.
115173
115174        * bindings/v8/V8PerIsolateData.cpp:
115175        (WebCore::V8PerIsolateData::reportMemoryUsage):
115176        * css/CSSMediaRule.cpp:
115177        (WebCore::CSSMediaRule::reportMemoryUsage):
115178        * css/CSSProperty.cpp:
115179        (WebCore::CSSProperty::reportMemoryUsage):
115180        * css/CSSStyleSheet.cpp:
115181        (WebCore::CSSStyleSheet::reportMemoryUsage):
115182        * css/MediaList.cpp:
115183        (WebCore::MediaList::reportMemoryUsage):
115184        * css/RuleSet.cpp:
115185        (WebCore::RuleData::reportMemoryUsage):
115186        (WebCore::RuleSet::reportMemoryUsage):
115187        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
115188        * css/StyleResolver.cpp:
115189        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
115190        (WebCore::StyleResolver::reportMemoryUsage):
115191        * css/StyleSheetContents.cpp:
115192        (WebCore::StyleSheetContents::reportMemoryUsage):
115193        * dom/TreeScope.cpp:
115194        (WebCore::TreeScope::reportMemoryUsage):
115195        * inspector/HeapGraphSerializer.cpp:
115196        (WebCore::HeapGraphSerializer::reportMemoryUsage):
115197        * inspector/InspectorMemoryAgent.cpp:
115198        * inspector/InspectorProfilerAgent.cpp:
115199        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
115200        * inspector/MemoryInstrumentationImpl.cpp:
115201        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
115202        * loader/DocumentLoader.cpp:
115203        (WebCore::DocumentLoader::reportMemoryUsage):
115204        * loader/FrameLoader.cpp:
115205        (WebCore::FrameLoader::reportMemoryUsage):
115206        * loader/MainResourceLoader.cpp:
115207        (WebCore::MainResourceLoader::reportMemoryUsage):
115208        * loader/Prerenderer.cpp:
115209        (WebCore::Prerenderer::reportMemoryUsage):
115210        * loader/ResourceLoader.cpp:
115211        (WebCore::ResourceLoader::reportMemoryUsage):
115212        * loader/cache/CachedImage.cpp:
115213        (WebCore::CachedImage::reportMemoryUsage):
115214        * page/Page.cpp:
115215        (WebCore::Page::reportMemoryUsage):
115216
1152172013-01-13  Levi Weintraub  <leviw@chromium.org>
115218
115219        Unreviewed gardening. Rolling out r139537. It broke platforms without sub-pixel layout.
115220
115221        * dom/Element.cpp:
115222        (WebCore::Element::offsetWidth):
115223        (WebCore::Element::offsetHeight):
115224        (WebCore::Element::clientWidth):
115225        (WebCore::Element::clientHeight):
115226        * rendering/RenderObject.h:
115227        (WebCore::adjustLayoutUnitForAbsoluteZoom):
115228        * rendering/style/RenderStyle.h:
115229        (WebCore::adjustLayoutUnitForAbsoluteZoom):
115230
1152312013-01-13  Dima Gorbik  <dgorbik@apple.com>
115232
115233        Styling disappears from the cue that's being styled by ::cue pseudo element
115234        https://bugs.webkit.org/show_bug.cgi?id=106723
115235
115236        Reviewed by Antti Koivisto.
115237
115238        Fixes a regression caused by r138966. Setting a pseudoId in TextTrackCue::updateDisplayTree for m_allDocumentNodes
115239        was triggering recalculating styles the next run loop. Now when this was removed we append the WebVTT tree after its children have
115240        been marked by markFutureAndPastNodes so that correct styles are set within this append call.
115241
115242        Test: media/track/track-css-cue-lifetime.html
115243
115244        * html/track/TextTrackCue.cpp:
115245        (WebCore::TextTrackCue::markFutureAndPastNodes): changing the type of the first argument because DocumentFragment is not a subclass
115246        of Element.
115247        (WebCore::TextTrackCue::updateDisplayTree): appending the WebVTT rendering tree after its children have been marked properly.
115248        * html/track/TextTrackCue.h:
115249        (TextTrackCue):
115250
1152512013-01-12  David Grogan  <dgrogan@chromium.org>
115252
115253        IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
115254        https://bugs.webkit.org/show_bug.cgi?id=106135
115255
115256        Reviewed by Tony Chang.
115257
115258        IDBEnv only changes the name of the histogram where errors are logged.
115259
115260        * platform/leveldb/LevelDBDatabase.cpp:
115261        (WebCore::LevelDBDatabase::destroy):
115262        (WebCore::LevelDBDatabase::open):
115263        (WebCore::LevelDBDatabase::openInMemory):
115264
1152652013-01-12  Gavin Peters  <gavinp@chromium.org>
115266
115267        Regression(r119759): Heap-use-after-free in webkit_glue::WebURLLoaderImpl::Context::OnReceivedResponse
115268        https://bugs.webkit.org/show_bug.cgi?id=103563
115269
115270        A subresource could receive a body on a 404 if its call to CachedResource::error() resulted in a nested message loop.
115271        That caused a crash when data was received, as the Subresource was in the Finished state already. Now when receiving
115272        data we ignore these bodies, avoiding the crash.
115273
115274        Reviewed by Nate Chapin.
115275
115276        No new tests in WebKit, since it required a nested message loop which isn't present in chromium DumpRender tree.
115277        There's a Chrome side browser test, see https://codereview.chromium.org/11778083/
115278
115279        * loader/SubresourceLoader.cpp:
115280        (WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
115281
1152822013-01-12  Robert Hogan  <robert@webkit.org>
115283
115284        Available height should respect min and max height
115285        https://bugs.webkit.org/show_bug.cgi?id=106479
115286
115287        Reviewed by Ojan Vafai.
115288        
115289        When calculating a relative positioned block's offset as a percentage of its container, respect the min
115290        and max height set on the container
115291
115292        Tests: fast/block/percent-top-respects-max-height.html
115293               fast/block/percent-top-respects-min-height.html
115294
115295        * rendering/RenderBox.cpp:
115296        (WebCore::RenderBox::availableLogicalHeight):
115297
1152982013-01-12  Victor Carbune  <victor@rosedu.org>
115299
115300        CC Button doesn't always show up
115301        https://bugs.webkit.org/show_bug.cgi?id=106653
115302
115303        Reviewed by Eric Carlson.
115304
115305        Added extra checks to existing test.
115306
115307        * html/shadow/MediaControls.cpp:
115308        (WebCore::MediaControls::closedCaptionTracksChanged):
115309        Enforced visibility of captions button whenever the track list changes.
115310        (WebCore):
115311        * html/shadow/MediaControls.h:
115312        (MediaControls):
115313
1153142013-01-11  Dan Beam  <dbeam@chromium.org>
115315
115316        [clean up] Remove HTMLFormElement::AutocompleteResultError in favor of more specific Error reasons
115317        https://bugs.webkit.org/show_bug.cgi?id=106610
115318
115319        Reviewed by Darin Fisher.
115320
115321        No new tests (none needed).
115322
115323        * html/HTMLFormElement.cpp: 
115324        (WebCore::HTMLFormElement::finishRequestAutocomplete): Removed handling of AutocompleteResultError.
115325        * html/HTMLFormElement.h: Removed HTMLFormElement::AutocompleteResultError in favor of more specific errors.
115326
1153272013-01-10  Filip Pizlo  <fpizlo@apple.com>
115328
115329        JITThunks should not compile only because of luck
115330        https://bugs.webkit.org/show_bug.cgi?id=105696
115331
115332        Rubber stamped by Sam Weinig.
115333
115334        All .cpp files that use the JSC internal API must now transitively include
115335        Operations.h, and none of the major JSC headers do it for you to avoid
115336        circularity. WebCore doesn't have to worry about circularity with JSC, so
115337        this changes all of the major WebCore JSC base headers to include
115338        Operations.h.
115339
115340        * bindings/js/BindingState.h:
115341        * bindings/js/JSArrayBufferViewHelper.h:
115342        * bindings/js/JSCustomXPathNSResolver.h:
115343        * bindings/js/JSDOMBinding.h:
115344        * bindings/js/JSDOMGlobalObject.h:
115345        * bindings/js/JSDictionary.h:
115346        * bindings/js/JSMessagePortCustom.h:
115347        * bindings/js/JSNodeFilterCondition.h:
115348        * bindings/js/ScriptValue.h:
115349        * bindings/js/ScriptWrappable.h:
115350        * bindings/js/SerializedScriptValue.cpp:
115351        * bridge/c/c_utility.h:
115352        * bridge/jsc/BridgeJSC.h:
115353        * dom/Node.cpp:
115354        * html/HTMLCanvasElement.cpp:
115355        * html/HTMLImageLoader.cpp:
115356        * plugins/efl/PluginViewEfl.cpp:
115357        * xml/XMLHttpRequest.cpp:
115358
1153592013-01-11  Emil A Eklund  <eae@chromium.org>
115360
115361        offsetWidth/height incorrect for images when zoomed
115362        https://bugs.webkit.org/show_bug.cgi?id=106624
115363
115364        Reviewed by Levi Weintraub.
115365        
115366        offsetWidth and height are incorrect for images at certain zoom
115367        levels due to flooring the values ones adjusted for zoom.
115368        By rounding the value instead we avoid the problem and return
115369        the right size.
115370
115371        Test: fast/images/zoomed-offset-size.html
115372
115373        * dom/Element.cpp:
115374        (WebCore::Element::offsetWidth):
115375        (WebCore::Element::offsetHeight):
115376        (WebCore::Element::clientWidth):
115377        (WebCore::Element::clientHeight):
115378        Change to round (as opposed to floor) the zoom adjusted value.
115379        
115380        * rendering/RenderObject.h:
115381        (WebCore::adjustLayoutUnitForAbsoluteZoom):
115382        * rendering/style/RenderStyle.h:
115383        (WebCore::adjustLayoutUnitForAbsoluteZoom):
115384        Add LayoutUnit version of adjustForAbsoluteZoom to avoid float
115385        conversion.
115386
1153872013-01-11  Ojan Vafai  <ojan@chromium.org>
115388
115389        Fixed width overrides intrinsic min-width/max-width for text inputs and listboxes
115390        https://bugs.webkit.org/show_bug.cgi?id=106675
115391
115392        Reviewed by Emil A Eklund.
115393
115394        Implement computeIntrinsicLogicalWidths so that RenderBox::computeLogicalWidthInRegionUsing
115395        can get the correct intrinsic sizes instead of the preferred sizes.
115396
115397        Test: fast/forms/select/listbox-intrinsic-min-width-applies-with-fixed-width.html
115398
115399        * rendering/RenderListBox.cpp:
115400        (WebCore::RenderListBox::computeIntrinsicLogicalWidths):
115401        (WebCore):
115402        (WebCore::RenderListBox::computePreferredLogicalWidths):
115403        * rendering/RenderListBox.h:
115404        (RenderListBox):
115405        * rendering/RenderTextControl.cpp:
115406        (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
115407        (WebCore):
115408        (WebCore::RenderTextControl::computePreferredLogicalWidths):
115409        * rendering/RenderTextControl.h:
115410        (RenderTextControl):
115411
1154122013-01-10  Ojan Vafai  <ojan@chromium.org>
115413
115414        Setting width overrides intrinsic min-width/max-width on flexboxes and their subclasses
115415        https://bugs.webkit.org/show_bug.cgi?id=106617
115416
115417        Reviewed by Tony Chang.
115418
115419        Override computeIntrinsicLogicalWidths for all RenderFlexibleBox and RenderDeprecatedFlexibleBox
115420        classes that override computePreferredLogicalWidths so that RenderBox can use
115421        computeIntrinsicLogicalWidths in order to get the correct intrinsic values.
115422
115423        Tests: css3/flexbox/intrinsic-min-width-applies-with-fixed-width.html
115424               fast/flexbox/intrinsic-min-width-applies-with-fixed-width.html
115425               fast/forms/select/intrinsic-min-width-applies-with-fixed-width.html
115426
115427        * rendering/RenderBox.cpp:
115428        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
115429        fit-content needs to use the intrinsic sizes not the preferred sizes
115430        since a fixed width overrides the preferred size.
115431        As best I can tell, the sizesLogicalWidthToFitContent codepath can keep
115432        using preferred widths, which are considerably faster, since that's only used
115433        computing width values. Added a clause to that if-statement to make this more
115434        explicit.
115435
115436        * rendering/RenderDeprecatedFlexibleBox.cpp:
115437        (WebCore::RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths):
115438        (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
115439        * rendering/RenderDeprecatedFlexibleBox.h:
115440        (RenderDeprecatedFlexibleBox):
115441        * rendering/RenderFlexibleBox.cpp:
115442        (WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
115443        (WebCore):
115444        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
115445        * rendering/RenderFlexibleBox.h:
115446        * rendering/RenderMenuList.cpp:
115447        (WebCore::RenderMenuList::computeIntrinsicLogicalWidths):
115448        (WebCore):
115449        (WebCore::RenderMenuList::computePreferredLogicalWidths):
115450        * rendering/RenderMenuList.h:
115451        (RenderMenuList):
115452        * rendering/RenderSlider.cpp:
115453        (WebCore::RenderSlider::computeIntrinsicLogicalWidths):
115454        (WebCore):
115455        (WebCore::RenderSlider::computePreferredLogicalWidths):
115456        * rendering/RenderSlider.h:
115457        (RenderSlider):
115458        No logic changes in any of these computeIntrinsic methods. Just moving
115459        the code over from the computePreferred methods.
115460
1154612013-01-11  Tony Gentilcore  <tonyg@chromium.org>
115462
115463        Move HTMLTokenTypes to its own file
115464        https://bugs.webkit.org/show_bug.cgi?id=106722
115465
115466        Reviewed by Levi Weintraub.
115467
115468        Also mark AtomicHTMLToken ctor as explicit.
115469
115470        No new tests because no new functionality.
115471
115472        * GNUmakefile.list.am:
115473        * Target.pri:
115474        * WebCore.gypi:
115475        * WebCore.vcproj/WebCore.vcproj:
115476        * WebCore.xcodeproj/project.pbxproj:
115477        * html/parser/HTMLToken.h:
115478        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
115479        * html/parser/HTMLTokenTypes.h: Added.
115480        (WebCore):
115481        (HTMLTokenTypes):
115482        (DoctypeData):
115483        (WebCore::HTMLTokenTypes::DoctypeData::DoctypeData):
115484
1154852013-01-11  Elliott Sprehn  <esprehn@chromium.org>
115486
115487        No need to initialize RefPtrs to 0 in ElementRareData
115488        https://bugs.webkit.org/show_bug.cgi?id=106717
115489
115490        Reviewed by Ryosuke Niwa.
115491
115492        RefPtrs initialize themself to null, so there's no reason
115493        to do it manually. This was code leftover from when
115494        PseudoElements were stored in bare ptrs instead of in
115495        RefPtrs.
115496
115497        No new tests, just refactoring.
115498
115499        * dom/ElementRareData.h:
115500        (WebCore::ElementRareData::ElementRareData):
115501
1155022013-01-11  Huang Dongsung  <luxtella@company100.net>
115503
115504        [TexMap] Rename current[Transform|Opacity|Filters] in TextureMapperLayer.
115505        https://bugs.webkit.org/show_bug.cgi?id=105760
115506
115507        Reviewed by Noam Rosenthal.
115508
115509        TextureMapperLayer has two transform members: an original value and a
115510        changeable value. The changeable value would be changed by animations.
115511        This patch puts 'current' prefix on the changeable value to clarify
115512        its purpose. Opacity and filters ditto.
115513
115514        No new tests. Refactoring only.
115515
115516        * platform/graphics/texmap/TextureMapperLayer.cpp:
115517        (WebCore::TextureMapperLayer::computeTransformsRecursive):
115518        (WebCore::TextureMapperLayer::paintSelf):
115519        (WebCore::TextureMapperLayer::paintSelfAndChildren):
115520        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
115521        (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
115522        (WebCore::TextureMapperLayer::isVisible):
115523        (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
115524        (WebCore::TextureMapperLayer::paintRecursive):
115525        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
115526        (WebCore::TextureMapperLayer::syncAnimations):
115527        (WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
115528        * platform/graphics/texmap/TextureMapperLayer.h:
115529        (WebCore::TextureMapperLayer::TextureMapperLayer):
115530        (TextureMapperLayer):
115531        (WebCore::TextureMapperLayer::State::State):
115532
1155332013-01-11  Tony Gentilcore  <tonyg@chromium.org>
115534
115535        Move constructTreeFromHTMLToken into HTMLDocumentParser
115536        https://bugs.webkit.org/show_bug.cgi?id=106694
115537
115538        Reviewed by Adam Barth.
115539
115540        This way it will sit parallel to a new constructTreeFromCompactHTMLToken method.
115541
115542        No new tests because no new functionality.
115543
115544        * html/parser/HTMLDocumentParser.cpp:
115545        (WebCore::HTMLDocumentParser::pumpTokenizer):
115546        (WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):
115547        (WebCore):
115548        * html/parser/HTMLDocumentParser.h:
115549        * html/parser/HTMLTreeBuilder.cpp:
115550        * html/parser/HTMLTreeBuilder.h:
115551        (HTMLTreeBuilder):
115552
1155532013-01-11  Robert Iannucci  <iannucci@chromium.org>
115554
115555        Explicitly set msvs_cygwin_shell to true for actions in WebKit
115556        https://bugs.webkit.org/show_bug.cgi?id=106706
115557
115558        Reviewed by Tony Chang.
115559
115560        Currently, msvs_cygwin_shell is set to 1 by default. This patch
115561        explicitly sets it on the actions which will break if msvs_cygwin_shell
115562        were set to 0. This is in preparation for changing the default value of
115563        msvs_cygwin_shell, which in turn is in preparation of the removal of
115564        cygwin as a buld-system requirement.
115565
115566        Since this change will have no semantic effect, no new tests are
115567        required.
115568
115569        * WebCore.gyp/WebCore.gyp:
115570
1155712013-01-11  Joshua Bell  <jsbell@chromium.org>
115572
115573        IndexedDB: IDBTransaction should manage lifetime of IDBRequests
115574        https://bugs.webkit.org/show_bug.cgi?id=106678
115575
115576        Reviewed by Tony Chang.
115577
115578        Ensure reference count of IDBRequests don't bounce off zero if there are no script
115579        references are while the events are arriving.
115580
115581        No new tests - no detectable behavior changes.
115582
115583        * Modules/indexeddb/IDBRequest.cpp:
115584        (WebCore::IDBRequest::create): Register with transaction (which now takes a ref) here to...
115585        (WebCore::IDBRequest::IDBRequest): ...avoid having to relax adoption requirements here.
115586        * Modules/indexeddb/IDBTransaction.cpp: Keep RefPtr<>s to outstanding requests.
115587        (WebCore::IDBTransaction::~IDBTransaction):
115588        (WebCore::IDBTransaction::abort):
115589        (WebCore::IDBTransaction::onAbort):
115590        * Modules/indexeddb/IDBTransaction.h:
115591
1155922013-01-11  James Simonsen  <simonjam@chromium.org>
115593
115594        [Resource Timing] XMLHttpRequests should have initiator type 'xmlhttprequest'
115595        https://bugs.webkit.org/show_bug.cgi?id=106409
115596
115597        Reviewed by Nate Chapin.
115598
115599        The initiator is passed through ThreadableLoaderOptions to the CachedResourceRequest. This is
115600        optional, so other users of ThreadableLoader will have the default initiator of 'request'. Note
115601        that synchronous XHRs don't show up in the Resource Timing buffer yet.
115602
115603        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_initiator_types.html
115604
115605        * loader/DocumentThreadableLoader.cpp:
115606        (WebCore::DocumentThreadableLoader::loadRequest):
115607        * loader/ThreadableLoader.h:
115608        (ThreadableLoaderOptions):
115609        * loader/cache/CachedResourceRequestInitiators.cpp:
115610        (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
115611        * loader/cache/CachedResourceRequestInitiators.h:
115612        (CachedResourceRequestInitiators):
115613        * xml/XMLHttpRequest.cpp:
115614        (WebCore::XMLHttpRequest::createRequest):
115615
1156162013-01-11  James Simonsen  <simonjam@chromium.org>
115617
115618        Restore old semantics to webkitRequestAnimationFrame callbacks
115619        https://bugs.webkit.org/show_bug.cgi?id=106697
115620
115621        Reviewed by James Robinson.
115622
115623        Sites that use GWT <= 2.4 are buggy and rely on Date.now()-like callback values.
115624        We'll restore that behavior to the prefixed version of webkitRequestAnimationFrame.
115625        requestAnimationFrame will continue to follow the spec.
115626
115627        Test: fast/animation/request-animation-frame-prefix.html
115628
115629        * dom/RequestAnimationFrameCallback.h:
115630        (RequestAnimationFrameCallback):
115631        * dom/ScriptedAnimationController.cpp:
115632        (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
115633        * page/DOMWindow.cpp:
115634        (WebCore::DOMWindow::requestAnimationFrame):
115635        (WebCore):
115636        (WebCore::DOMWindow::webkitRequestAnimationFrame):
115637        * page/DOMWindow.h:
115638        (DOMWindow):
115639        * page/DOMWindow.idl:
115640
1156412013-01-11  Sheriff Bot  <webkit.review.bot@gmail.com>
115642
115643        Unreviewed, rolling out r139044.
115644        http://trac.webkit.org/changeset/139044
115645        https://bugs.webkit.org/show_bug.cgi?id=106702
115646
115647        Caused various scrolling anomolies on Mac with drag and drop
115648        (Requested by smfr on #webkit).
115649
115650        * page/AutoscrollController.cpp:
115651        (WebCore::AutoscrollController::AutoscrollController):
115652        (WebCore::AutoscrollController::autoscrollTimerFired):
115653        * page/AutoscrollController.h:
115654        (WebCore):
115655        (AutoscrollController):
115656        * page/EventHandler.cpp:
115657        (WebCore::EventHandler::updateDragAndDrop):
115658        * rendering/RenderBox.cpp:
115659        (WebCore):
115660        (WebCore::RenderBox::autoscroll):
115661        * rendering/RenderBox.h:
115662        (RenderBox):
115663        * rendering/RenderLayer.cpp:
115664        (WebCore::RenderLayer::autoscroll):
115665        * rendering/RenderLayer.h:
115666        (RenderLayer):
115667        * rendering/RenderListBox.cpp:
115668        (WebCore::RenderListBox::autoscroll):
115669        * rendering/RenderListBox.h:
115670        (RenderListBox):
115671        * rendering/RenderTextControlSingleLine.cpp:
115672        (WebCore::RenderTextControlSingleLine::autoscroll):
115673        * rendering/RenderTextControlSingleLine.h:
115674        (RenderTextControlSingleLine):
115675
1156762013-01-11  Rafael Weinstein  <rafaelw@chromium.org>
115677
115678        Prevent HTMLPreloadScanner from fetching resources inside <template>
115679        https://bugs.webkit.org/show_bug.cgi?id=106687
115680
115681        Reviewed by Adam Barth.
115682
115683        This patch adds a simple counter to the preload scanner which increments on template start
115684        tag and decrements on template element. It only fetchs resources when the counter is at zero
115685        (i.e. for elements not contained by a template element).
115686
115687        Test re-enabled within fast/dom/HTMLTemplateElement/inertContents.html
115688
115689        * html/parser/HTMLPreloadScanner.cpp:
115690        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
115691        (WebCore::HTMLPreloadScanner::processToken):
115692        * html/parser/HTMLPreloadScanner.h:
115693        (HTMLPreloadScanner):
115694
1156952013-01-11  Tony Gentilcore  <tonyg@chromium.org>
115696
115697        We should be able to checkpoint and restore the HTMLTokenizer across threads
115698        https://bugs.webkit.org/show_bug.cgi?id=106597
115699
115700        Based on patch by Adam Barth.
115701
115702        This has the ability to create a checkpoint any time the parser is blocked on a script.
115703        We clear m_appropriateEndTagName after each end tag is flushed so that the ASSERT in
115704        canCreateCheckpoint() will pass.
115705
115706        Reviewed by Adam Barth.
115707
115708        No new tests because no new functionality.
115709
115710        * html/parser/HTMLDocumentParser.cpp:
115711        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
115712        (WebCore::HTMLDocumentParser::pumpTokenizer):
115713        * html/parser/HTMLDocumentParser.h:
115714        (WebCore):
115715        (HTMLDocumentParser):
115716        * html/parser/HTMLTokenizer.cpp:
115717        (WebCore):
115718        (WebCore::HTMLTokenizer::canCreateCheckpoint):
115719        (WebCore::HTMLTokenizer::createCheckpoint):
115720        (WebCore::HTMLTokenizer::restoreFromCheckpoint):
115721        * html/parser/HTMLTokenizer.h:
115722        (HTMLTokenizer):
115723        (Checkpoint):
115724        (WebCore::HTMLTokenizer::Checkpoint::Checkpoint):
115725        * xml/parser/MarkupTokenizerBase.h:
115726        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::InputStreamPreprocessor):
115727        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::skipNextNewLine):
115728        (InputStreamPreprocessor):
115729        (WebCore::MarkupTokenizerBase::InputStreamPreprocessor::reset):
115730
1157312013-01-11  Tony Chang  <tony@chromium.org>
115732
115733        [chromium] Don't regenerate all bindings when any idl file changes
115734        https://bugs.webkit.org/show_bug.cgi?id=106604
115735
115736        Reviewed by Kentaro Hara.
115737
115738        Currently, every idl file is a dependency of generating the supplemental dependency map
115739        and generating bindings is a dependency of the map. This means that touching any idl file
115740        causes us to regenerate all the bindings.
115741
115742        Change it so that generating bindings only depends on the idl files that have Supplemental= in them.
115743        We only have 24 idl files with Supplemental (3.7% of the 638 idl files in WebCore) so modifying
115744        any of those will cause all bindings to be regenerated.
115745
115746        If you add or remove a new idl file, you have to rerun gyp which will fix up any dependencies.
115747        If you edit an existing file and add Supplemental= to it, you will now need to rerun gyp_{webkit,chromium}.
115748        I think that's a reasonable tradeoff since it seems highly unlikely that you would adding Supplemental=
115749        to an existing file without renaming it. The bots will always be fine because they always run
115750        gyp after updating.
115751
115752        No new tests, this is a build only change.
115753
115754        * WebCore.gyp/WebCore.gyp: Remove <(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp, which was causing
115755        the full rebuild. The step to generate this file is still a hard dependency so it will still be generated and
115756        used by generate-bindings.pl. Also remove <@(webcore_test_support_idl_files). This was saying we should regenerate
115757        all bindings if a test idl file changed. That doesn't make sense.
115758        * WebCore.gyp/scripts/supplemental_idl_files.py: Added.
115759        (DoMain):
115760
1157612013-01-11  Alexandru Chiculita  <achicu@adobe.com>
115762
115763        Element is displayed behind a composited layer when clipping is used on a previous element
115764        https://bugs.webkit.org/show_bug.cgi?id=104981
115765
115766        Reviewed by Simon Fraser.
115767
115768        RenderLayerCompositor::computeCompositingRequirements uses the local bounding box of the layers to optimize the number of composited 
115769        layers that are created. That's needed in order to make sure that composited layers that are displayed behind non-composited
115770        layers are correctly promoting the layers in front to be composited. Otherwise the non-composited layers are rendered
115771        in the parent composited layer, displaying behind the other composited layers. That might be wrong as the correct paint order might not be
115772        preserved.
115773
115774        In order to make animations work, there's a flag that will disable that optimization. That's because the animations run in the platform
115775        layer and the platform layer doesn't know about the layers that are not promoted to composited layers. When the overlapping of the layers
115776        is computed it just uses the start or the stop state, but no intermediate states. For that reason, all the 'top' layers in front of animated 
115777        elements will become composited.
115778
115779        When an animation has a clipping rectangle, then we know for sure that the animation is going to be contained inside the clip area, so WebKit 
115780        uses the bounding box of the clipping area to detect the overlapping layers, so there's no need to disable the optimization in that case.
115781
115782        However, if there is a different animation displaying behind the clipping container, we cannot safely disable that optimization anymore. That's
115783        because we still don't know what are the intermediate states of that particular animated layer. The bug was that the optimization was re-enabled
115784        anyway, even in this particular case.
115785
115786        In order to fix it, I changed the logic, so that instead of re-enabling the optimization after a clipping container, it will just avoid to propagate 
115787        the internal state to the following layers when there's no need to so.
115788
115789        Note that 3D transforms behave like animations for now and disable the optimization. Because of that some of the existing tests ended up
115790        creating more layers than needed. That's because the tests had an overflow area that recreated the issue that this patch fixes, but with
115791        3D transforms instead of animations. 3D transforms will be treated in a separate patch.
115792
115793        Tests: compositing/layer-creation/overlap-animation-clipping.html
115794               compositing/layer-creation/overlap-animation-container.html
115795
115796        * rendering/RenderLayerCompositor.cpp:
115797        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
115798
1157992013-01-11  Philip Rogers  <pdr@google.com>
115800
115801        Skip CachedImage::CreateImage if we don't have image data
115802        https://bugs.webkit.org/show_bug.cgi?id=106156
115803
115804        Reviewed by Nate Chapin.
115805
115806        This patch skips image creation if we do not have image data. This can occur during
115807        cache revalidation when the revalidation request (304 not modified) comes back without
115808        any content. In this revalidation case, the http spec requires that a mimetype not be set
115809        on the response to prevent a cached resource from having a different mimetype
115810        from the revalidated resource. Because revalidation requests do not have a mimetype,
115811        CachedImage::CreateImage() will fail on SVG images. This patch prevents
115812        CachedImage::CreateImage() from being called during revalidation.
115813
115814        No new tests as there are no observable changes from this patch.
115815
115816        * loader/cache/CachedImage.cpp:
115817        (WebCore::CachedImage::data):
115818
1158192013-01-11  Kentaro Hara  <haraken@chromium.org>
115820
115821        Unreviewed. Rebaselined run-bindings-tests.
115822
115823        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
115824        (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
115825        (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
115826        * bindings/scripts/test/V8/V8TestException.cpp:
115827        (WebCore::TestExceptionV8Internal::nameAttrGetter):
115828        * bindings/scripts/test/V8/V8TestInterface.cpp:
115829        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
115830        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
115831        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
115832        * bindings/scripts/test/V8/V8TestObj.cpp:
115833        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
115834        (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
115835        (WebCore::TestObjV8Internal::stringAttrAttrGetter):
115836        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
115837        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
115838        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
115839        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
115840        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
115841        (WebCore::TestObjV8Internal::hashAttrGetter):
115842        (WebCore::TestObjV8Internal::conditionalMethod1Callback):
115843
1158442013-01-11  Levi Weintraub  <leviw@chromium.org>
115845
115846        RenderGeometryMap and TransformState disagree with sub-pixel layout and translations
115847        https://bugs.webkit.org/show_bug.cgi?id=106047
115848
115849        Reviewed by Simon Fraser.
115850
115851        Mirror RenderGeometryMap's optimization for integer-translated transforms in TransformState.
115852        This avoids the current behavior where the two can disagree on mappings, since RenderGeometryMap
115853        pixel-snapped later when a translation occurred between two sub-pixel containers.
115854
115855        Test: fast/layers/geometry-map-transform-state-translation-mismatch.html
115856
115857        * platform/graphics/transforms/TransformState.h:
115858        (WebCore::TransformState::setQuad): Clear accumulatedOffset when setting a new quad. Note: this
115859        implementation only works properly when only tracking a quad.
115860        * platform/graphics/transforms/TransformState.cpp:
115861        (WebCore::TransformState::applyTransform): apply integral translations to the accumulatedOffset
115862        for performance and consistency with RenderGeometryMap.
115863
1158642013-01-11  Abhishek Arya  <inferno@chromium.org>
115865
115866        Heap-use-after-free in WebCore::RenderText::computePreferredLogicalWidths
115867        https://bugs.webkit.org/show_bug.cgi?id=95901
115868
115869        Reviewed by Simon Fraser.
115870
115871        Prevent re-entrancy of view layout. Loading of SVG document during font load
115872        causes it to re-enter layout and blowing the style away from underneath.
115873        
115874        Test: Go to http://www.speckproducts.com and make sure crash does not happen.
115875
115876        * dom/Document.cpp:
115877        (WebCore::Document::updateLayout):
115878
1158792013-01-11  Kentaro Hara  <haraken@chromium.org>
115880
115881        [V8] Do not create a local handle for a cached v8 string that is returned to V8 immediately
115882        https://bugs.webkit.org/show_bug.cgi?id=106557
115883
115884        Reviewed by Adam Barth.
115885
115886        Currently we are always creating a local handle for a cached
115887        V8 string returned to V8:
115888
115889          Handle<Value> v8String(StringImpl* impl, Isolate* isolate) {
115890            ...;
115891            return Local<String>::New(isolate, m_cachedString);
115892          }
115893
115894        However, we don't need to create a local handle in a case
115895        where it is guaranteed that no V8 object allocation is conducted
115896        before a control flow returns back to V8. In particular, in a case
115897        where a cached V8 string is immediately returned to V8, we don't
115898        need to create a local handle:
115899
115900          Handle<Value> xxxxAttrGetter() {
115901            ...;
115902            return v8String(imp->xxxx(), isolate);  // This can return a persistent handle safely.
115903          }
115904
115905        This patch improves performance of div.id by 9.2%.
115906
115907        No tests. No change in behavior.
115908
115909        * bindings/scripts/CodeGeneratorV8.pm:
115910        (GenerateNormalAttrGetter):
115911        (GenerateCallbackImplementation):
115912        (GenerateFunctionCallString):
115913        (NativeToJSValue):
115914        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
115915        (WebCore::TestEventConstructorV8Internal::attr1AttrGetter):
115916        (WebCore::TestEventConstructorV8Internal::attr2AttrGetter):
115917        * bindings/scripts/test/V8/V8TestException.cpp:
115918        (WebCore::TestExceptionV8Internal::nameAttrGetter):
115919        * bindings/scripts/test/V8/V8TestInterface.cpp:
115920        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
115921        (WebCore::TestInterfaceV8Internal::supplementalStr1AttrGetter):
115922        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrGetter):
115923        * bindings/scripts/test/V8/V8TestObj.cpp:
115924        (WebCore::TestObjV8Internal::readOnlyStringAttrAttrGetter):
115925        (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
115926        (WebCore::TestObjV8Internal::stringAttrAttrGetter):
115927        (WebCore::TestObjV8Internal::reflectedStringAttrAttrGetter):
115928        (WebCore::TestObjV8Internal::reflectedURLAttrAttrGetter):
115929        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrGetter):
115930        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrGetter):
115931        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrGetter):
115932        (WebCore::TestObjV8Internal::hashAttrGetter):
115933        (WebCore::TestObjV8Internal::conditionalMethod1Callback):
115934        * bindings/v8/V8Binding.h:
115935        (WebCore::v8String):
115936        (WebCore::v8StringOrNull):
115937        (WebCore::v8StringOrUndefined):
115938        * bindings/v8/V8ValueCache.cpp:
115939        (WebCore::StringCache::v8ExternalStringSlow):
115940        * bindings/v8/V8ValueCache.h:
115941        (WebCore::StringCache::v8ExternalString):
115942        (StringCache):
115943
1159442013-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
115945
115946        Unreviewed. Fix make distcheck.
115947
115948        * GNUmakefile.list.am: Add missing header files.
115949
1159502013-01-11  Xianzhu Wang  <wangxianzhu@chromium.org>
115951
115952        RenderLayerCompositor should let ScrollingCoordinator update main thread scrolling reasons after change of layers
115953        https://bugs.webkit.org/show_bug.cgi?id=105652
115954
115955        Reviewed by Simon Fraser.
115956
115957        Let ScrollingCoordinator know the change of ViewportConstrainedNotCompositedReason in time.
115958        By the way moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to RenderLayer::ViewportConstrainedNotCompositedReason.
115959
115960        Tests: compositing/layer-creation/fixed-position-in-view-dynamic.html
115961               compositing/layer-creation/fixed-position-out-of-view-dynamic.html
115962
115963        * page/scrolling/ScrollingCoordinator.cpp:
115964        (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
115965        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
115966        (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
115967        * page/scrolling/ScrollingCoordinator.h:
115968        (ScrollingCoordinator):
115969        * page/scrolling/mac/ScrollingCoordinatorMac.h:
115970        (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintViewportConstrainedObjects):
115971        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
115972        (WebCore::logThreadedScrollingMode):
115973        * rendering/RenderLayer.cpp:
115974        (WebCore::RenderLayer::RenderLayer):
115975        (WebCore::RenderLayer::paintLayer):
115976        * rendering/RenderLayer.h:
115977        (RenderLayer): Moved RenderLayerCompositor::FixedPositionLayerNotCompositedReason to here and renamed it to ViewportConstrainedNotCompositedReason.
115978        (WebCore::RenderLayer::setViewportConstrainedNotCompositedReason):
115979        (WebCore::RenderLayer::viewportConstrainedNotCompositedReason):
115980        * rendering/RenderLayerCompositor.cpp:
115981        (WebCore::RenderLayerCompositor::updateCompositingLayers):
115982        (WebCore::RenderLayerCompositor::updateBacking): Now updates ViewportConstrainedNotCompositedReason here instead of in computeCompositingRequirements before so that the reason is updated in time.
115983        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
115984        (WebCore::RenderLayerCompositor::needsToBeComposited):
115985        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
115986        (WebCore::RenderLayerCompositor::reasonForCompositing):
115987        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
115988        (WebCore::RenderLayerCompositor::reportMemoryUsage):
115989        * rendering/RenderLayerCompositor.h:
115990        (RenderLayerCompositor):
115991
1159922013-01-11  Kenneth Russell  <kbr@google.com>
115993
115994        [Chromium] WebGL typed array constructor crashes on exception
115995        https://bugs.webkit.org/show_bug.cgi?id=106308
115996
115997        Reviewed by Kentaro Hara.
115998
115999        Check for empty handles (indicating exception thrown) after calls
116000        into V8 VM.
116001
116002        Added new case from Khronos typed array conformance tests to
116003        fast/canvas/webgl/array-unit-tests.html.
116004
116005        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
116006        (WebCore::constructWebGLArray):
116007            Check for empty handles after calls into V8 VM.
116008
1160092013-01-11  Kentaro Hara  <haraken@chromium.org>
116010
116011        [V8] Slightly optimize getWrapperFast()
116012        https://bugs.webkit.org/show_bug.cgi?id=106667
116013
116014        Reviewed by Adam Barth.
116015
116016        This patch improves an if condition in getWrapperFast(),
116017        as commented in DOMDataStore.h.
116018
116019        This patch improves performance of div.firstChild from
116020        15.1 ns to 14.0 ns (+7.8%), although I couldn't observe
116021        performance improvement in Dromaeo/dom-traverse.
116022
116023        No tests. No change in behavior.
116024
116025        * bindings/v8/DOMDataStore.h:
116026        (WebCore::DOMDataStore::getWrapperFast):
116027
1160282013-01-11  Florin Malita  <fmalita@chromium.org>
116029
116030        [SVG] Suppress resource rebuilding for unattached and shadow elements
116031        https://bugs.webkit.org/show_bug.cgi?id=106664
116032
116033        Reviewed by Dirk Schulze.
116034
116035        SVGStyledElement::buildPendingResourcesIfNeeded() can be called while cloning a subtree
116036        (as nodes are inserted into the clone, while still detached) or when elements are inserted
116037        into the shadow tree. Both of these cases are problematic for SVGUseElement and can trigger
116038        indirect recursion in SVGUseElement::buildPendingResource.
116039
116040        Since shadow and !inDocument() nodes are of no interest to ID dependents (they cannot be
116041        found by ID in the document), the patch short-circuits buildPendingResource() for these
116042        cases.
116043
116044        Test: svg/custom/use-rebuild-resources-crash.svg
116045
116046        * svg/SVGStyledElement.cpp:
116047        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
116048
1160492013-01-11  Dominic Mazzoni  <dmazzoni@google.com>
116050
116051        AX: Computed hierarchical level is not consistent with aria-level
116052        https://bugs.webkit.org/show_bug.cgi?id=106638
116053
116054        Reviewed by Chris Fleizach.
116055
116056        Make hierarchicalLevel computation 1-based to match the aria-level spec.
116057
116058        Extends an existing test: platform/mac/accessibility/aria-tree.html.
116059
116060        * accessibility/AccessibilityNodeObject.cpp:
116061        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
116062        * accessibility/AccessibilityObject.h:
116063        (AccessibilityObject):
116064        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
116065        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
116066
1160672013-01-11  Vsevolod Vlasov  <vsevik@chromium.org>
116068
116069        Web Inspector: Workspace should support several projects and should not have temporary UISourceCodes.
116070        https://bugs.webkit.org/show_bug.cgi?id=105856
116071
116072        Reviewed by Pavel Feldman.
116073
116074        Workspace now supports several projects with the networkProject being a main one.
116075        Replaced temporary UISourceCodes with specific projects (debugger and liveedit).
116076        The concept of workspace reset on navigation is now replaced with project reset concept instead.
116077        Introduced snippets project (that is not reset on navigation).
116078        Script mappings are now reset on GlobalObjectCleared event.
116079
116080        * inspector/front-end/BreakpointManager.js:
116081        (WebInspector.BreakpointManager):
116082        (WebInspector.BreakpointManager.prototype._innerSetBreakpoint):
116083        (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
116084        (WebInspector.BreakpointManager.prototype.toggleAllBreakpoints):
116085        (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
116086        (WebInspector.BreakpointManager.prototype._projectWillReset.get for):
116087        (WebInspector.BreakpointManager.prototype._projectWillReset):
116088        * inspector/front-end/CSSStyleModel.js:
116089        (WebInspector.CSSStyleModel):
116090        (WebInspector.CSSStyleModel.prototype._inspectedURLChanged):
116091        (WebInspector.CSSStyleModel.prototype._resetSourceMappings):
116092        (WebInspector.CSSStyleModelResourceBinding):
116093        (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
116094        (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
116095        * inspector/front-end/CompilerScriptMapping.js:
116096        (WebInspector.CompilerScriptMapping):
116097        (WebInspector.CompilerScriptMapping.prototype._debuggerReset):
116098        * inspector/front-end/DebuggerScriptMapping.js:
116099        * inspector/front-end/DefaultScriptMapping.js:
116100        (WebInspector.DefaultScriptMapping):
116101        (WebInspector.DefaultScriptMapping.prototype.addScript):
116102        (WebInspector.DefaultScriptMapping.prototype._debuggerReset):
116103        * inspector/front-end/ExtensionServer.js:
116104        (WebInspector.ExtensionServer.prototype._onGetPageResources):
116105        * inspector/front-end/FilteredItemSelectionDialog.js:
116106        (WebInspector.OpenResourceDialog.show):
116107        * inspector/front-end/LiveEditSupport.js:
116108        (WebInspector.LiveEditSupport):
116109        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
116110        (WebInspector.LiveEditSupport.prototype._debuggerReset):
116111        * inspector/front-end/NetworkUISourceCodeProvider.js:
116112        (WebInspector.NetworkUISourceCodeProvider):
116113        (WebInspector.NetworkUISourceCodeProvider.prototype._mainFrameNavigated):
116114        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
116115        (WebInspector.NetworkUISourceCodeProvider.prototype._reset):
116116        * inspector/front-end/ResourceScriptMapping.js:
116117        (WebInspector.ResourceScriptMapping):
116118        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
116119        (WebInspector.ResourceScriptMapping.prototype._debuggerReset):
116120        * inspector/front-end/RevisionHistoryView.js:
116121        (WebInspector.RevisionHistoryView):
116122        (WebInspector.RevisionHistoryView.prototype._projectWillReset):
116123        * inspector/front-end/SASSSourceMapping.js:
116124        (_bindUISourceCode):
116125        * inspector/front-end/ScriptSnippetModel.js:
116126        (WebInspector.ScriptSnippetModel):
116127        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
116128        (WebInspector.ScriptSnippetModel.prototype.reset):
116129        * inspector/front-end/ScriptsNavigator.js:
116130        * inspector/front-end/ScriptsPanel.js:
116131        (WebInspector.ScriptsPanel):
116132        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
116133        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
116134        (WebInspector.ScriptsPanel.prototype._removeUISourceCodes):
116135        (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
116136        (WebInspector.ScriptsPanel.prototype._debuggerReset):
116137        (WebInspector.ScriptsPanel.prototype._projectWillReset):
116138        (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
116139        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
116140        (WebInspector.ScriptsPanel.prototype.showGoToSourceDialog):
116141        * inspector/front-end/SimpleWorkspaceProvider.js:
116142        (WebInspector.SimpleWorkspaceProvider):
116143        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
116144        (WebInspector.SimpleWorkspaceProvider.prototype.addFileForURL):
116145        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
116146        * inspector/front-end/StylesSourceMapping.js:
116147        (WebInspector.StylesSourceMapping):
116148        (WebInspector.StylesSourceMapping.prototype._projectWillReset):
116149        * inspector/front-end/TabbedEditorContainer.js:
116150        (WebInspector.TabbedEditorContainer.prototype.reset):
116151        * inspector/front-end/UISourceCode.js:
116152        (WebInspector.UISourceCode.prototype.project):
116153        * inspector/front-end/Workspace.js:
116154        (WebInspector.WorkspaceController):
116155        (WebInspector.WorkspaceController.prototype._inspectedURLChanged):
116156        (WebInspector.Project):
116157        (WebInspector.Project.prototype.name):
116158        (WebInspector.Project.prototype.isServiceProject):
116159        (WebInspector.Project.prototype._reset):
116160        (WebInspector.Workspace):
116161        (WebInspector.Workspace.prototype.uiSourceCodeForURL):
116162        (WebInspector.Workspace.prototype.uiSourceCodeForURI):
116163        (WebInspector.Workspace.prototype.addProject):
116164        (WebInspector.Workspace.prototype.project):
116165        (WebInspector.Workspace.prototype.projects):
116166        (WebInspector.Workspace.prototype.uiSourceCodes):
116167        (WebInspector.Workspace.prototype.projectForUISourceCode):
116168        (WebInspector.Workspace.prototype.requestFileContent):
116169        (WebInspector.Workspace.prototype.setFileContent):
116170        (WebInspector.Workspace.prototype.searchInFileContent):
116171        * inspector/front-end/inspector.js:
116172        * inspector/front-end/utilities.js:
116173
1161742013-01-11  Eugene Klyuchnikov  <eustas@chromium.org>
116175
116176        Web Inspector: [Resources] Make grid columns set configurable.
116177        https://bugs.webkit.org/show_bug.cgi?id=105739
116178
116179        Reviewed by Pavel Feldman.
116180
116181        Added context menu on grid header to hide/show grid columns.
116182        Hidden columns set is persisted.
116183
116184        * inspector/front-end/DataGrid.js:
116185        Fixed show/hide behavior, introduced weight control.
116186        * inspector/front-end/NetworkPanel.js:
116187        Added member to track visibility of columns in detailerd mode. Added
116188        context menu for grid header.
116189
1161902013-01-11  Andras Becsi  <andras.becsi@digia.com>
116191
116192        [Qt] Fix the build if libxslt is not available but libxml2 is
116193        https://bugs.webkit.org/show_bug.cgi?id=106661
116194
116195        Reviewed by Simon Hausmann.
116196
116197        On Linux building the xml parser sources fails if the needed libxslt
116198        dependencies are not installed but libxml2 is.
116199
116200        * WebCore.pri: add libxml2 to pkg-config if not on mac.
116201
1162022013-01-11  Stephen Chenney  <schenney@chromium.org>
116203        Objects can be re-added to the AXObjectCache during removal
116204        https://bugs.webkit.org/show_bug.cgi?id=104171
116205
116206        The problem occurs when a label's corresponding element is a sibling
116207        that precedes it in the render tree, and the corresponding element is
116208        removed. The corresponding element's AX render object is removed, but
116209        then recreated when accessibilityIsIgnored() invokes correspondingControl()
116210        on the label. The corresponding renderer then has an AX render object
116211        that survives beyond the deleted renderer, leading to invalid memory
116212        accesses.
116213
116214        The solution is to rearrange the calls to delete the renderer's AX
116215        render object only when we are sure it will no longer be required.
116216
116217        Reviewed by Simon Fraser.
116218
116219        Test: accessibility/corresponding-control-deleted-crash.html
116220
116221        * rendering/RenderObject.cpp:
116222        (WebCore::RenderObject::willBeDestroyed): Move the call to remove the
116223        renderer from the AXCache to after the renderer is removed from the
116224        render tree. This means that the AXObject still exists during renderer
116225        removal, as we require.
116226
1162272013-01-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
116228
116229        [Qt][WK1] Web Audio support
116230        https://bugs.webkit.org/show_bug.cgi?id=106651
116231
116232        Reviewed by Jocelyn Turcotte.
116233
116234        Convert JavaScript Uint8Array to QByteArray. This conversion is necessary to support testRunner.setAudioData().
116235
116236        * bridge/qt/qt_runtime.cpp:
116237        (JSC::Bindings::isJSUint8Array):
116238        (Bindings):
116239        (JSC::Bindings::valueRealType):
116240        (JSC::Bindings::convertValueToQVariant):
116241
1162422013-01-11  Anton Vayvod  <avayvod@chromium.org>
116243
116244        Text Autosizing - elements much narrower than its parent autosizing clusters should be autosized separately.
116245        https://bugs.webkit.org/show_bug.cgi?id=105188
116246
116247        Reviewed by Kenneth Rohde Christiansen.
116248
116249        Some blocks of text might be narrower than their parent clusters and should be autosized separately.
116250        This helps with autosizing for the pages implementing the sidebars as a narrow blocks of text with wide margins and
116251        the main content being positioned atop this margin (or vice versa).
116252
116253        * rendering/TextAutosizer.cpp:
116254        (WebCore::TextAutosizer::isContainerAutosizingCluster):
116255
116256            Returns true if the container is more than 200 pixels narrower than its parent cluster's lowest common
116257            ancestor of all the text nodes.
116258
1162592013-01-11  Andreas Kling  <akling@apple.com>
116260
116261        Remove unused CSSSelector(QualifiedName) constructor.
116262        <http://webkit.org/b/106652>
116263
116264        Reviewed by Antti Koivisto.
116265
116266        * css/CSSSelector.h:
116267        (CSSSelector):
116268
1162692013-01-11  Zan Dobersek  <zandobersek@gmail.com>
116270
116271        [GTK] Disable the ENABLE_LEGACY_WEB_AUDIO feature define in release builds
116272        https://bugs.webkit.org/show_bug.cgi?id=106577
116273
116274        Reviewed by Philippe Normand.
116275
116276        The Web Audio feature is not enabled in the release builds, so there's
116277        no need to enable the legacy Web Audio API either.
116278
116279        No new tests - no new functionality.
116280
116281        * GNUmakefile.features.am.in:
116282
1162832013-01-11  Antoine Quint  <graouts@apple.com>
116284
116285        Web Inspector: Option+Click on Node Expander Doesn't Work the First Time
116286        https://bugs.webkit.org/show_bug.cgi?id=66868
116287
116288        Up to now, the TreeElement.prototype.expandRecursively() method would correctly
116289        expand children recursively based on the provided depth, but would not wait to
116290        perform this task until all child nodes had been populated, which means that this
116291        would only work incrementally with one additional level of child nodes being shown
116292        expanded in the DOM tree upon alt+clicking a given node with a deep hierarchy.
116293        
116294        In order to fix this, this patch adds a new optional argument to the DOMAgent's
116295        requestChildNodes() methods to provide the depth at which we want to retrieve children
116296        of a given node. The DOMAgent provides a new .getSubtree() method that calls
116297        requestChildNodes() with the provided depth.
116298
116299        Then in ElementsTreeOutline, we subclass .expandRecursively() to first call DOMAgent's
116300        new .getSubtree() method and then call the default implementation when all nodes
116301        have been retrieved from the backend.
116302
116303        Reviewed by Pavel Feldman.
116304
116305        Tests: inspector-protocol/dom-request-child-nodes-depth.html
116306               inspector/elements/expand-recursively.html
116307
116308        * inspector/Inspector.json: Add the new `depth` parameter to DOM.requestChildNodes().
116309        * inspector/InspectorDOMAgent.cpp:
116310        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend): Add a new optional `depth` parameter
116311        which defaults to 1.
116312        (WebCore::InspectorDOMAgent::requestChildNodes): Add a new optional `depth` parameter
116313        which defaults to 1 and allows -1 as an unbound value.
116314        * inspector/InspectorDOMAgent.h:
116315        (InspectorDOMAgent):
116316        * inspector/front-end/DOMAgent.js:
116317        (WebInspector.DOMNode.prototype.):
116318        (WebInspector.DOMNode.prototype.getSubtree): New method allowing to specify at what depth
116319        we want to retrieve children of a given node from the backend.
116320        * inspector/front-end/ElementsTreeOutline.js:
116321        (WebInspector.ElementsTreeElement.prototype.expandRecursively): Override default implementation
116322        to first obtain the deepest subtree for the current node so that deep expansion happens as expected.
116323
1163242013-01-11  Alexander Pavlov  <apavlov@chromium.org>
116325
116326        Web Inspector: [Elements] Search in the DOM tree does not scroll horizontally
116327        https://bugs.webkit.org/show_bug.cgi?id=106648
116328
116329        Reviewed by Vsevolod Vlasov.
116330
116331        Scroll into view the first match in every tree element, if needed.
116332
116333        * inspector/front-end/ElementsPanel.js:
116334        (WebInspector.ElementsPanel.prototype._highlightCurrentSearchResult):
116335
1163362013-01-11  Andrey Adaikin  <aandrey@chromium.org>
116337
116338        Web Inspector: [Canvas] a minor follow-up to r137262
116339        https://bugs.webkit.org/show_bug.cgi?id=106644
116340
116341        Reviewed by Pavel Feldman.
116342
116343        * inspector/InjectedScriptCanvasModuleSource.js:
116344        (.):
116345
1163462013-01-11  Kent Tamura  <tkent@chromium.org>
116347
116348        BaseDateAndTimeInputType should not inherit from TextFieldInputType
116349        https://bugs.webkit.org/show_bug.cgi?id=106306
116350
116351        Reviewed by Hajime Morita.
116352
116353        Date/time input types don't need text-field features at all.
116354
116355        No new tests. This should not make any behavior changes except reduction
116356        of memory usage.
116357
116358        * html/BaseDateAndTimeInputType.h:
116359        Inherit InputType instead of TextFieldInputType.
116360        (WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
116361        (BaseDateAndTimeInputType): Update function declarations.
116362        * html/BaseDateAndTimeInputType.cpp:
116363        Remove handleKeydownEvent and convertFromVisibleValue, which are for
116364        TextFieldInputType.
116365        (WebCore::BaseDateAndTimeInputType::shouldRespectListAttribute):
116366        Added. This is necessary for <datalist> support. TextFieldInputType has
116367        the same code.
116368        (WebCore::BaseDateAndTimeInputType::valueMissing):
116369        Added. This is necessary for validity.valueMissing. TextFieldInputType
116370        has the same code.
116371
116372        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
116373        Remove unnecessary functions which cancel TextFieldInputType behavior.
116374        * html/BaseChooserOnlyDateAndTimeInputType.h:
116375        (BaseChooserOnlyDateAndTimeInputType): Remove declarations for them.
116376
116377        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
116378        Remove unnecessary functions which cancel TextFieldInputType behavior.
116379        * html/BaseMultipleFieldsDateAndTimeInputType.h:
116380        (BaseMultipleFieldsDateAndTimeInputType):
116381        Add SpinButtonOwner interface. We didn't need it because
116382        TextFieldInputType implements it.
116383
1163842013-01-11  Mary Wu  <mary.wu@torchmobile.com.cn>
116385
116386        [BlackBerry] Enable concatenating headers with same field name
116387        https://bugs.webkit.org/show_bug.cgi?id=106625
116388
116389        Reviewed by Rob Buis.
116390
116391        RFC 2616 specifies that headers could concatenate with comma if they have
116392        same field name. We should enable this if the header allows multiple values.
116393
116394        RIM PR# 275508, internally reviewed by Joe Mason
116395
116396        (WebCore):
116397        (WebCore::isAppendableHeader):
116398        (WebCore::NetworkJob::handleNotifyHeaderReceived):
116399
1164002013-01-11  Jochen Eisinger  <jochen@chromium.org>
116401
116402        Connect UserGestureIndicator for mousedown and mouseup events
116403        https://bugs.webkit.org/show_bug.cgi?id=105138
116404
116405        Reviewed by Adam Barth.
116406
116407        Ports that consume user gestures to prevent certain types of pop-ups
116408        need to be able to connect mousedown and mouseup events, otherwise, a
116409        single mouse click will allow for opening multiple pop-ups.
116410
116411        Note that a mousedown is not always followed by a mouseup and vice
116412        versa, e.g. when the mousedown results in a context menu being shown, or
116413        something is dragged into the page.
116414
116415        Test: platform/chromium/fast/events/popup-allowed-from-gesture-only-once-two-events.html
116416
116417        * page/EventHandler.cpp:
116418        (WebCore::EventHandler::clear):
116419        (WebCore::EventHandler::handleMousePressEvent):
116420        (WebCore::EventHandler::handleMouseReleaseEvent):
116421        * page/EventHandler.h:
116422
1164232013-01-11  Eugene Klyuchnikov  <eustas@chromium.org>
116424
116425        Web Inspector: [Resources] "Delete" cookie deletes all cookies with matching name.
116426        https://bugs.webkit.org/show_bug.cgi?id=105633
116427
116428        Reviewed by Pavel Feldman.
116429
116430        "Delete" cookie deletes all cookies with matching name,
116431        ignoring domain and path.
116432
116433        * inspector/Inspector.json: Change argument "domain" to "url"
116434        * inspector/InspectorPageAgent.cpp:
116435        (WebCore::InspectorPageAgent::deleteCookie): Use url to delte cookies.
116436        * inspector/InspectorPageAgent.h: Adopt new signature.
116437        * inspector/front-end/CookieItemsView.js:
116438        (WebInspector.CookieItemsView.prototype._deleteCookie): Ditto.
116439
1164402013-01-11  KwangYong Choi  <ky0.choi@samsung.com>
116441
116442        [EFL] Fix unused parameter build error
116443        https://bugs.webkit.org/show_bug.cgi?id=106639
116444
116445        Reviewed by Kentaro Hara.
116446
116447        Use UNUSED_PARAM macro to fix build error.
116448
116449        No new tests, no behavior change.
116450
116451        * platform/efl/EflScreenUtilities.cpp:
116452        (WebCore::isUsingEcoreX):
116453        * platform/efl/RenderThemeEfl.cpp:
116454        (WebCore::RenderThemeEfl::supportsDataListUI):
116455
1164562013-01-11  Pavel Feldman  <pfeldman@chromium.org>
116457
116458        Web Inspector [chromium]: Debugger.globalObjectCleared is not dispatched on reload after renderer swap
116459        https://bugs.webkit.org/show_bug.cgi?id=106555
116460
116461        Reviewed by Vsevolod Vlasov.
116462
116463        Wrong ::enable was made virtual in the InspectorDebuggerAgent.
116464
116465        Test: inspector/debugger/debugger-scripts-reload.html
116466
116467        * inspector/InspectorDebuggerAgent.h:
116468        (InspectorDebuggerAgent):
116469        * inspector/PageDebuggerAgent.cpp:
116470        (WebCore::PageDebuggerAgent::enable):
116471        (WebCore::PageDebuggerAgent::disable):
116472        * inspector/PageDebuggerAgent.h:
116473        (PageDebuggerAgent):
116474
1164752013-01-11  Vsevolod Vlasov  <vsevik@chromium.org>
116476
116477        Web Inspector: Refactoring, move NetworkWorkspaceProvider to NetworkUISourceCodeProvider.js and rename its parent to SimpleWorkspaceProvider.
116478        https://bugs.webkit.org/show_bug.cgi?id=106635
116479
116480        Reviewed by Pavel Feldman.
116481
116482        * WebCore.gypi:
116483        * WebCore.vcproj/WebCore.vcproj:
116484        * inspector/compile-front-end.py:
116485        * inspector/front-end/DebuggerScriptMapping.js:
116486        (WebInspector.DebuggerScriptMapping):
116487        * inspector/front-end/DefaultScriptMapping.js:
116488        (WebInspector.DefaultScriptMapping):
116489        (WebInspector.DefaultScriptMapping.prototype.addScript):
116490        (WebInspector.DebuggerWorkspaceProvider):
116491        (WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
116492        * inspector/front-end/LiveEditSupport.js:
116493        (WebInspector.LiveEditSupport):
116494        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
116495        (WebInspector.LiveEditWorkspaceProvider):
116496        (WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
116497        * inspector/front-end/NetworkUISourceCodeProvider.js:
116498        (WebInspector.NetworkWorkspaceProvider):
116499        (WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
116500        * inspector/front-end/SimpleWorkspaceProvider.js: Renamed from Source/WebCore/inspector/front-end/NetworkWorkspaceProvider.js.
116501        (WebInspector.SimpleWorkspaceProvider):
116502        (WebInspector.SimpleWorkspaceProvider.uriForURL):
116503        (WebInspector.SimpleWorkspaceProvider.prototype.requestFileContent):
116504        (WebInspector.SimpleWorkspaceProvider.prototype.setFileContent):
116505        (WebInspector.SimpleWorkspaceProvider.prototype.searchInFileContent):
116506        (WebInspector.SimpleWorkspaceProvider.prototype.addFile):
116507        (WebInspector.SimpleWorkspaceProvider.prototype.removeFile):
116508        (WebInspector.SimpleWorkspaceProvider.prototype.uniqueURI):
116509        (WebInspector.SimpleWorkspaceProvider.prototype.reset):
116510        * inspector/front-end/WebKit.qrc:
116511        * inspector/front-end/inspector.html:
116512        * inspector/front-end/inspector.js:
116513
1165142013-01-10  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
116515
116516        On Linux, should be able to get spelling suggestions without selecting the misspelled word
116517        https://bugs.webkit.org/show_bug.cgi?id=103520
116518
116519        Reviewed by Ryosuke Niwa.
116520
116521        Allow to get/insert spelling suggestions without selecting the misspelled word for
116522        Linux WebKit ports. WebCore assumes that the misspelled word has to be selected
116523        to get its suggestions.
116524
116525        In compliance with native application behaviour a new editing policy is introduced,
116526        to do not highlight the misspelled word to just get its guesses.
116527
116528        No new tests, covered by context-menu-suggestions.html.
116529
116530        * WebCore.exp.in:
116531        Remove _ZN7WebCore6Editor21isSelectionMisspelledEv symbol as Mac port doesn't
116532        need it any longer.
116533
116534        * editing/EditingBehavior.h:
116535        (EditingBehavior):
116536        (WebCore::EditingBehavior::shouldAllowSpellingSuggestionsWithoutSelection):
116537        Add a new behavior for Linux, to allow spelling suggestions without selecting
116538        the misspelled word.
116539
116540        * editing/Editor.cpp:
116541        (WebCore::Editor::isContinuousSpellCheckingEnabled):
116542        Add missing const modifier, to use this method in 'misspelledWordAtCaretOrRange() const'.
116543
116544        (WebCore::Editor::misspelledWordAtCaretOrRange):
116545        Allow to check spelling under the caret or selected word.
116546        Does nothing for selection made on the multiple words.
116547
116548        (WebCore::Editor::misspelledSelectionString):
116549        Return the misspelled selection.
116550
116551        (WebCore::Editor::guessesForMisspelledWord):
116552        Remove 'Selection' from method name as it may return guesses without selection.
116553
116554        (WebCore::Editor::guessesForMisspelledOrUngrammatical):
116555        Ditto.
116556
116557        * page/ContextMenuController.cpp:
116558        (WebCore::ContextMenuController::contextMenuItemSelected):
116559        Select the word under caret to meet the conditions from misspelledWordAtCaretOrRange.
116560
116561        (WebCore::ContextMenuController::populate):
116562        Update guessesForMisspelledOrUngrammatical call.
116563
1165642013-01-10  Hajime Morrita  <morrita@google.com>
116565
116566        https://bugs.webkit.org/show_bug.cgi?id=106283
116567        [Shadow DOM] HTMLContentElement and HTMLShadowElement should be behind SHADOW_DOM
116568
116569        Reviewed by Kentaro Hara.
116570
116571        No new tests. Covered by existing tests.
116572
116573        This change moves <content> and <shadow> behind
116574        ENABLE(SHADOW_DOM). Note that empty stub definitions are remaining
116575        even after this change. They are for minimizing #if/#endif usage
116576        and won't hurt code size.
116577
116578        * WebCore.exp.in:
116579        * html/InputType.cpp:
116580        (WebCore::InputType::destroyShadowSubtree):
116581        * html/shadow/ContentDistributor.cpp:
116582        (WebCore::ContentDistributor::distribute):
116583        * html/shadow/HTMLContentElement.cpp:
116584        (WebCore):
116585        (WebCore::HTMLContentElement::create):
116586        (WebCore::HTMLContentElement::HTMLContentElement):
116587        * html/shadow/HTMLContentElement.h:
116588        (WebCore):
116589        (HTMLContentElement):
116590        * html/shadow/HTMLShadowElement.cpp:
116591        * html/shadow/HTMLShadowElement.h:
116592        (WebCore):
116593        (WebCore::isHTMLShadowElement):
116594        (WebCore::toHTMLShadowElement):
116595        * html/shadow/TextFieldDecorationElement.cpp:
116596        (WebCore::TextFieldDecorationElement::decorate):
116597        * testing/Internals.cpp:
116598        (WebCore::Internals::createContentElement):
116599        (WebCore::Internals::isValidContentSelect):
116600
1166012013-01-10  Takashi Sakamoto  <tasak@google.com>
116602
116603        Implement CSSGroupingRule for @host @-rules and @supports.
116604        https://bugs.webkit.org/show_bug.cgi?id=106418
116605
116606        Reviewed by Antti Koivisto.
116607
116608        CSSGroupingRule is to share code between CSSMediaRule, CSSSupportsRule
116609        and CSSHostRule. @supports and @host @-rules are dervied from
116610        CSSGroupingRule:
116611        http://www.w3.org/TR/2012/WD-css3-conditional/#the-cssgroupingrule-interface
116612        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#css-host-rule-interface
116613        Since @media is also derived from CSSGroupingRule and @region has the
116614        same interface as CSSGroupingRule, modify to use CSSGroupingRule:
116615        http://dev.w3.org/csswg/css3-regions/#the-at-region-style-rule
116616
116617        No new tests, because no new feature is implemented.
116618
116619        * CMakeLists.txt:
116620        * GNUmakefile.list.am:
116621        * Target.pri:
116622        * WebCore.gypi:
116623        * WebCore.vcproj/WebCore.vcproj:
116624        * WebCore.xcodeproj/project.pbxproj:
116625        Added CSSGroupingRule.h and CSSGroupingRule.cpp.
116626        * css/CSSAllInOne.cpp:
116627        Modified to include CSSGroupingRule.cpp.
116628        * css/CSSGroupingRule.cpp: Added.
116629        (WebCore):
116630        (WebCore::CSSGroupingRule::CSSGroupingRule):
116631        (WebCore::CSSGroupingRule::~CSSGroupingRule):
116632        (WebCore::CSSGroupingRule::insertRule):
116633        (WebCore::CSSGroupingRule::deleteRule):
116634        (WebCore::CSSGroupingRule::appendCssTextForItems):
116635        (WebCore::CSSGroupingRule::length):
116636        (WebCore::CSSGroupingRule::item):
116637        (WebCore::CSSGroupingRule::cssRules):
116638        (WebCore::CSSGroupingRule::reattach):
116639        (WebCore::CSSGroupingRule::reportMemoryUsage):
116640        These codes are moved from CSSMediaRule and WebKitCSSRegionRule.
116641        * css/CSSGroupingRule.h:
116642        (WebCore):
116643        (CSSGroupingRule):
116644        * css/CSSMediaRule.cpp:
116645        (WebCore::CSSMediaRule::CSSMediaRule):
116646        (WebCore::CSSMediaRule::~CSSMediaRule):
116647        Make CSSMediaRule inherit CSSGroupingRule.
116648        (WebCore::CSSMediaRule::media):
116649        (WebCore::CSSMediaRule::reattach):
116650        Keep the code for updating media queries' CSSOMWrapper.
116651        (WebCore::CSSMediaRule::reportMemoryUsage):
116652        We need to report media queries' CSSOMWrapper memory usage.
116653        (WebCore::CSSMediaRule::mediaQueries):
116654        (WebCore::CSSMediaRule::cssText):
116655        * css/CSSMediaRule.h:
116656        * css/WebKitCSSRegionRule.cpp:
116657        Make WebKitCSSRegionRule inherit CSSGroupingRule.
116658        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
116659        (WebCore::WebKitCSSRegionRule::cssText):
116660        * css/WebKitCSSRegionRule.h:
116661        * css/StyleRule.h:
116662        Added inlined accessor to obtain StyleRuleMedia* and StyleRuleRegion*
116663        from StyleRuleBlock*.
116664
1166652012-12-28  Andrey Adaikin  <aandrey@chromium.org>
116666
116667        Web Inspector: [Canvas] add an option to reload the page if there is an uninstrumented canvas
116668        https://bugs.webkit.org/show_bug.cgi?id=105822
116669
116670        Reviewed by Pavel Feldman.
116671
116672        Show in the front-end an option to reload the page if there is an uninstrumented canvas.
116673
116674        * inspector/front-end/CanvasProfileView.js:
116675        (WebInspector.CanvasProfileType):
116676        (WebInspector.CanvasProfileType.prototype.decorationElement):
116677        (WebInspector.CanvasProfileType.prototype._updateDecorationElement):
116678        (WebInspector.CanvasProfileType.prototype._onReloadPageButtonClick):
116679        * inspector/front-end/ProfileLauncherView.js:
116680        (WebInspector.ProfileLauncherView.prototype.addProfileType):
116681        * inspector/front-end/ProfilesPanel.js:
116682        (WebInspector.ProfileType.prototype.decorationElement):
116683
1166842013-01-10  Dimitri Glazkov  <dglazkov@chromium.org>
116685
116686        The word "selector" is somewhat redundant redundantly used in SelectorChecker.
116687        https://bugs.webkit.org/show_bug.cgi?id=106413
116688
116689        In https://bugs.webkit.org/show_bug.cgi?id=105864, Antti suggested reducing some of the redundant uses of the word
116690        "selector" in SelectorChecker. Here's a start.
116691
116692        Reviewed by Antti Koivisto.
116693
116694        Simple renames, no change in behavior.
116695
116696        * css/SelectorChecker.cpp:
116697        (WebCore::SelectorChecker::match): Renamed.
116698        (WebCore):
116699        (WebCore::SelectorChecker::fastCheck): Ditto,
116700        (WebCore::SelectorChecker::checkOne): Ditto.
116701        * css/SelectorChecker.h:
116702        (SelectorChecker):
116703        * css/StyleResolver.cpp:
116704        (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use new name.
116705        (WebCore::StyleResolver::ruleMatches): Renamed from checkSelector to better match argument and return value.
116706        (WebCore::StyleResolver::checkRegionSelector): Changed to use new names.
116707        * css/StyleResolver.h:
116708        (StyleResolver):
116709        * dom/SelectorQuery.cpp:
116710        (WebCore::SelectorDataList::matches): Ditto.
116711        (WebCore::SelectorDataList::execute): Ditto.
116712        * html/shadow/ContentSelectorQuery.cpp:
116713        (WebCore::ContentSelectorChecker::checkContentSelector): Ditto.
116714
1167152013-01-10  John J. Barton  <johnjbarton@chromium.org>
116716
116717        Web Inspector: Pass the script url to the script-preprocessor script
116718        https://bugs.webkit.org/show_bug.cgi?id=104384
116719
116720        Reviewed by Pavel Feldman.
116721
116722        Add url argument to the script-preprocessor script in PageAgent.reload()
116723
116724        Test: inspector/debugger/debugger-script-preprocessor.html
116725
116726        * bindings/v8/DebuggerScript.js:
116727        * bindings/v8/ScriptDebugServer.cpp:
116728        (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
116729        (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
116730        (WebCore::ScriptDebugServer::handleV8DebugEvent):
116731        * bindings/v8/custom/V8InjectedScriptManager.cpp:
116732        (WebCore::InjectedScriptManager::createInjectedScript):
116733
1167342013-01-10  Eugene Klyuchnikov  <eustas@chromium.org>
116735
116736        Web Inspector: DataGrid refactoring: make cell editing more generic.
116737        https://bugs.webkit.org/show_bug.cgi?id=105849
116738
116739        Reviewed by Pavel Feldman.
116740
116741        Editing feature has been added to DataGrid to edit localStorage.
116742        Column numbers (0 and 1) are hardcoded.
116743
116744        This patch makes column editing feature more generic: remove hardcoded
116745        colums, take "editable" column property into account.
116746
116747        This patch is a prerequisite for cookie editing.
116748
116749        * inspector/front-end/DOMStorageItemsView.js:
116750        Use meaningful column names.
116751        * inspector/front-end/DataGrid.js:
116752        (WebInspector.DataGrid.prototype._ondblclick): Check column editability.
116753        (WebInspector.DataGrid.prototype._contextMenuInDataTable): Ditto.
116754        (WebInspector.DataGridNode.prototype.createCell):
116755        Supply cell element with column id.
116756        (WebInspector.DataGrid.prototype.columnIdentifierFromNode):
116757        Added utility method.
116758        (WebInspector.DataGrid.prototype._nextEditableColumn): Ditto.
116759        (WebInspector.DataGrid.prototype._keyDown): Calculate editable column.
116760        (WebInspector.DataGrid.prototype._editingCommitted): Ditto.
116761        (WebInspector.DataGrid.prototype._startEditing): Ditto.
116762        (WebInspector.DataGrid.prototype._startEditingColumnOfDataGridNode):
116763        Refined parameter type / name.
116764        (WebInspector.DataGrid.prototype._resizerDragging):
116765        Fix resizer index property names.
116766        (WebInspector.DataGrid.prototype._startResizerDragging): Ditto.
116767        (WebInspector.DataGrid.prototype._positionResizers): Ditto.
116768        * inspector/front-end/NetworkPanel.js:
116769        (WebInspector.NetworkLogView.prototype._updateDividersIfNeeded): Ditto.
116770
1167712013-01-10  Matt Falkenhagen  <falken@chromium.org>
116772
116773        Elements must be reattached when inserted/removed from top layer
116774        https://bugs.webkit.org/show_bug.cgi?id=105489
116775
116776        Reviewed by Julien Chaffraix.
116777
116778        Ensure a reattach occurs when an element is inserted/removed from top layer, so its renderer can be inserted correctly:
116779        as a child of RenderView in top layer sibling order if it's in the top layer, and in the usual place otherwise.
116780
116781        We previously relied on style recalc to catch when an element is inserted/removed from the top layer, because it
116782        only happens on dialog.show/close which toggle display: none. But that is incorrect because, for example, close()
116783        followed immediately by show() results in no style change.
116784
116785        Tests: fast/dom/HTMLDialogElement/removed-element-is-removed-from-top-layer.html
116786               fast/dom/HTMLDialogElement/top-layer-stacking-correct-order-remove-readd.html
116787
116788        * dom/Element.cpp:
116789        (WebCore::Element::removedFrom): Call Document::removeFromTopLayer to let the element be removed from the top layer vector.
116790        removeFromTopLayer calls Element::setIsInTopLayer(false) itself if needed.
116791        (WebCore::Element::setIsInTopLayer): Ensure a reattach occurs if the element is already attached.
116792
1167932013-01-10  Shinya Kawanaka  <shinyak@chromium.org>
116794
116795        When a selected node in nested ShadowDOM is deleted, selection have wrong range.
116796        https://bugs.webkit.org/show_bug.cgi?id=106526
116797
116798        Reviewed by Ryosuke Niwa.
116799
116800        Since FrameSelection and htmlediting did not consider nested Shadow DOM, the FrameSelection still selects
116801        removed elements if selected nodes in nested Shadow DOM are removed.
116802
116803        We have to use containsIncludingShadowDOM to handle with nested Shadow DOM correctly.
116804
116805        Test: fast/dom/shadow/selection-in-nested-shadow.html
116806
116807        * editing/FrameSelection.cpp:
116808        (WebCore::removingNodeRemovesPosition):
116809        * editing/htmlediting.cpp:
116810        (WebCore::updatePositionForNodeRemoval):
116811
1168122013-01-10  Hajime Morrita  <morrita@google.com>
116813
116814        [Shadow DOM] Refactoring: InsertionPoint could simplify its subclass hooks
116815        https://bugs.webkit.org/show_bug.cgi?id=106614
116816
116817        Reviewed by Dimitri Glazkov.
116818
116819        This change simplifies InsertionPoint overrides and give some flexibility to it.
116820
116821        The change
116822
116823        - Removes InsertionPoint::isSelectValid(). now ContentSelectorQuery parses given selector anyway.
116824          Invalid select attribute is handled by newly introduced matchTypeFor() method.
116825        - Introduces InsertionPoint::matchTypeFor() to give a chance each InsertionPoint to decide whether it
116826          accepts the given node as its distribution. Then it lets DetailsSummaryElement adopt it.
116827        - Pulls some HTMLShadowElement overrides up to InsertionPoint so that other upcoming InsertionPoint
116828          subclasses don't need to override them.
116829
116830        No new tests. Refactoring.
116831
116832        * html/HTMLDetailsElement.cpp:
116833        (WebCore::DetailsSummaryElement::DetailsSummaryElement):
116834        - Implemented matchTypeFor() to get rid of HTMLContentElement machinery which is compiled out in the upcoming change.
116835        (DetailsSummaryElement):
116836        * html/shadow/ContentSelectorQuery.cpp:
116837        (WebCore::ContentSelectorQuery::ContentSelectorQuery):
116838        (WebCore::ContentSelectorQuery::matches):
116839        * html/shadow/HTMLContentElement.cpp:
116840        (WebCore::HTMLContentElement::matchTypeFor): Added.
116841        (WebCore):
116842        * html/shadow/HTMLContentElement.h:
116843        (HTMLContentElement):
116844        (WebCore::isHTMLContentElement):
116845        * html/shadow/HTMLShadowElement.cpp:
116846        * html/shadow/HTMLShadowElement.h:
116847        (HTMLShadowElement):
116848        * html/shadow/InsertionPoint.cpp:
116849        (WebCore::InsertionPoint::emptySelectorList): Moved from HTMLShadowElement.
116850        (WebCore):
116851        * html/shadow/InsertionPoint.h:
116852        (WebCore::InsertionPoint::matchTypeFor): Added.
116853        (WebCore::InsertionPoint::selectorList): Moved from HTMLShadowElement.
116854        (InsertionPoint):
116855        * testing/Internals.cpp:
116856        (WebCore::Internals::isValidContentSelect):
116857
1168582013-01-10  Dean Jackson  <dino@apple.com>
116859
116860        Plugin snapshot label should take device resolution and inset into account
116861        https://bugs.webkit.org/show_bug.cgi?id=106619
116862
116863        Reviewed by Simon Fraser.
116864
116865        * rendering/RenderSnapshottedPlugIn.cpp:
116866        (WebCore::RenderSnapshottedPlugIn::paintLabel): Take into account the inset in the label image.
116867        (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Look at the page's device scale, and adjust the label image accordingly.
116868
1168692013-01-10  James Robinson  <jamesr@chromium.org>
116870
116871        [chromium] Store scrollable layer's contents size for coordinated scrollable layers
116872        https://bugs.webkit.org/show_bug.cgi?id=106518
116873
116874        Reviewed by Adrienne Walker.
116875
116876        This stores a scrollable layer's contentsSize in the scroll layer's bounds, which is otherwise not useful. This
116877        value is currently calculated based on fragile knowledge of the tree structure immediately beneath a scrollable
116878        layer.
116879
116880        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
116881        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
116882
1168832013-01-10  Dan Beam  <dbeam@chromium.org>
116884
116885        Implement AutocompleteErrorEvent#reason
116886        https://bugs.webkit.org/show_bug.cgi?id=105568
116887
116888        Reviewed by Adam Barth.
116889
116890        Test: fast/events/constructors/autocomplete-error-event-constructor.html
116891
116892        * WebCore.gypi: Added AutocompleteErrorEvent.idl and AutocompleteErrorEvent.h for chromium port's build.
116893        * dom/AutocompleteErrorEvent.h: Added.
116894        (WebCore): Added new type of error named AutocompleteErrorEvent.
116895        (AutocompleteErrorEventInit): Added init params for AutocompleteErrorEvents (so initEvent() can be used).
116896        (AutocompleteErrorEvent): Added a new error event that inherits from Event but also has a reason for failure.
116897        (WebCore::AutocompleteErrorEvent::create): Factory function to create AutocompleteErrorEvents.
116898        (WebCore::AutocompleteErrorEvent::reason): The reason why a requestAutocomplete() invocation failed. Can be
116899                                                   "disabled", "cancel", or "invalid".
116900        (WebCore::AutocompleteErrorEvent::interfaceName): The name of the event's interface (for event.toString()).
116901        (WebCore::AutocompleteErrorEvent::AutocompleteErrorEvent): Various ways of constructing the error event.
116902        * dom/AutocompleteErrorEvent.idl: Added.
116903        * dom/EventNames.in: Added AutocompleteError to this list, based on REQUEST_AUTOCOMPLETE conditional.
116904        * html/HTMLFormElement.cpp: Updated form elements to dispatch AutocompleteErrorEvents on errors and to give
116905                                    more details (event.reason) when the request fails.
116906        (WebCore::HTMLFormElement::requestAutocomplete): Changed to newly added failure type "disabled".
116907        (WebCore::HTMLFormElement::finishRequestAutocomplete): Changed
116908        * html/HTMLFormElement.h: Added new results (ErrorDisabled, ErrorCancel, ErrorInvalid).
116909        * page/DOMWindow.idl: Added global event constructor for new AutocompleteErrorEvent() style event creation.
116910
1169112013-01-10  Yong Li  <yoli@rim.com>
116912
116913        HTMLMediaElement::resume() should schedule a load rather than load immediately
116914        https://bugs.webkit.org/show_bug.cgi?id=106587
116915
116916        Reviewed by Eric Carlson.
116917
116918        It is not always safe to start the jobs at the time resume() is called. That is why the jobs are
116919        suspended. It can also be suspended again right after being resumed.
116920
116921        No new tests as there is no visible functional change, also it is a theoretically good-to-have change
116922        that doesn't fix any known cross-platform issue.
116923
116924        * html/HTMLMediaElement.cpp:
116925        (WebCore::HTMLMediaElement::resume): Replace load() with scheduleLoad().
116926
1169272013-01-10  Adam Barth  <abarth@webkit.org>
116928
116929        Add an ENABLE macro and a WebCore::Setting for the threaded parser
116930        https://bugs.webkit.org/show_bug.cgi?id=106595
116931
116932        Reviewed by Benjamin Poulain.
116933
116934        This patch adds both a WebCore::Setting and an ENABLE macro for the
116935        threaded parser. We plan to keep the ENABLE macro off by default for a
116936        while. The runtime setting will let us more easily conduct A/B
116937        experiments when the time arises.
116938
116939        * page/Settings.in:
116940
1169412013-01-10  Xianzhu Wang  <wangxianzhu@chromium.org>
116942
116943        Regression(r129944): Heap-use-after-free in WebCore::computeNonFastScrollableRegion
116944        https://bugs.webkit.org/show_bug.cgi?id=99515
116945
116946        Reviewed by Simon Fraser.
116947
116948        The object used-after-freed is a destructed FrameView that is still in the m_scrollableAreas set of the parent FrameView. Actually it has been removed from m_scrollableAreas when setParent(0), but then is added back in updateScrollableAreaSet() because its frameViewParent() is still not 0 (though parent() is already 0).
116949
116950        No new tests. The heap-use-after-free doesn't always cause crash so it can't be stably tested with a test case. Memory analysis tools like asan discovered the heap-use-after-free and verified that the patch can fix the issue.
116951
116952        * page/FrameView.cpp:
116953        (WebCore::FrameView::parentFrameView): Checks if the FrameView has been removed from the parent.
116954
1169552013-01-10  John Mellor  <johnme@chromium.org>
116956
116957        Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.
116958        https://bugs.webkit.org/show_bug.cgi?id=106460
116959
116960        Reviewed by Kenneth Rohde Christiansen.
116961
116962        screen.width, window.outerWidth and @media device-width should be in
116963        density independent (UI) pixels, not physical screen pixels.
116964
116965        This already works on most ports (including iOS). However Chrome for
116966        Android currently internally sizes its windows in physical screen pixels
116967        instead of density independent pixels, and this leaks through in the
116968        sizes provided to WebCore.
116969
116970        This patch scales these sizes appropriately before they reach JavaScript,
116971        on platforms where the applyPageScaleFactorInCompositor setting is false
116972        (i.e. just Chrome for Android). Once Chrome for Android switches over to
116973        the same coordinate space, the applyPageScaleFactorInCompositor setting
116974        will be removed, along with any code (such as this) that depends on it.
116975
116976        The effect of this patch on Chrome for Android when viewing a page with
116977        a width=device-width viewport on a Galaxy Nexus (720x1280 @ dPR 2) is:
116978            @media device-width      changes from 720 to 360
116979            screen.width             changes from 720 to 360
116980            screen.availWidth        changes from 720 to 360
116981            window.outerWidth        changes from 720 to 360
116982            window.innerWidth                    remains 360 (at overview zoom)
116983            @media width                         remains 360
116984            document.documentElement.clientWidth remains 360
116985            document.documentElement.offsetWidth remains 360
116986            document.documentElement.scrollWidth remains 360
116987            document.body.clientWidth            remains 360
116988            document.body.offsetWidth            remains 360
116989            document.body.scrollWidth            remains 360
116990        And similarly for heights (though they are slightly less than 640, since
116991        toolbars etc. get subtracted from the available height).
116992
116993        No new tests, as applyDeviceScaleFactorInCompositor appears to always be
116994        true in DumpRenderTree, so this situation cannot occur there.
116995
116996        * page/Settings.in:
116997            Added applyDeviceScaleFactorInCompositor setting, which allows
116998            detecting whether we need to normalize the scale.
116999        * platform/chromium/PlatformScreenChromium.cpp:
117000        (WebCore::toUserSpace):
117001            Static function for normalizing screen rect scale.
117002        (WebCore::screenRect):
117003            Uses toUserSpace.
117004        (WebCore::screenAvailableRect):
117005            Uses toUserSpace.
117006        * rendering/TextAutosizer.cpp:
117007        (WebCore::TextAutosizer::processSubtree):
117008            Use applyDeviceScaleFactorInCompositor instead of
117009            applyPageScaleFactorInCompositor, to scale the window rect correctly
117010            on platforms other than Chrome for Android.
117011
1170122013-01-10  Florin Malita  <fmalita@chromium.org>
117013
117014        Rename GraphicsContext::addRoundedRectClip
117015        https://bugs.webkit.org/show_bug.cgi?id=106581
117016
117017        Reviewed by Simon Fraser.
117018
117019        This patch renames GraphicsContext::addRoundedRectClip to clipRoundedRect for consistency
117020        with the other GC clipping methods.
117021
117022        No new tests: no functional changes.
117023
117024        * WebCore.order:
117025        * platform/graphics/GraphicsContext.cpp:
117026        (WebCore::GraphicsContext::clipRoundedRect):
117027        * platform/graphics/GraphicsContext.h:
117028        (GraphicsContext):
117029        * platform/graphics/skia/GraphicsContextSkia.cpp:
117030        (WebCore::GraphicsContext::clipRoundedRect):
117031        * rendering/RenderBox.cpp:
117032        (WebCore::RenderBox::paintBoxDecorations):
117033        (WebCore::RenderBox::pushContentsClip):
117034        * rendering/RenderBoxModelObject.cpp:
117035        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
117036        (WebCore::RenderBoxModelObject::paintBorder):
117037        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
117038        * rendering/RenderLayer.cpp:
117039        (WebCore::RenderLayer::clipToRect):
117040        * rendering/RenderThemeChromiumWin.cpp:
117041        (WebCore):
117042        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
117043        * rendering/RenderThemeMacShared.mm:
117044        (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
117045        (WebCore::RenderThemeMacShared::paintSliderTrack):
117046        * rendering/RenderThemeSafari.cpp:
117047        (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
117048        (WebCore::RenderThemeSafari::paintSliderTrack):
117049        * rendering/RenderThemeWinCE.cpp:
117050        (WebCore::RenderThemeWinCE::paintSearchFieldCancelButton):
117051
1170522013-01-10  Tommy Widenflycht  <tommyw@google.com>
117053
117054        MediaStream API: Adding the new id attribute to MediaStream and MediaStreamTrack
117055        https://bugs.webkit.org/show_bug.cgi?id=106564
117056
117057        Reviewed by Adam Barth.
117058
117059        Specification: http://dev.w3.org/2011/webrtc/editor/getusermedia.html
117060        MediaStream looses its label attribute and instead gets an id attribute.
117061        MediaStreamTrack gets an id attribute.
117062
117063        Not testable yet, will add tests in a followup patch.
117064
117065        * Modules/mediastream/MediaStream.h:
117066        (WebCore::MediaStream::label):
117067        (MediaStream):
117068        (WebCore::MediaStream::id):
117069        * Modules/mediastream/MediaStream.idl:
117070        * Modules/mediastream/MediaStreamTrack.cpp:
117071        (WebCore::MediaStreamTrack::id):
117072        (WebCore):
117073        * Modules/mediastream/MediaStreamTrack.h:
117074        * Modules/mediastream/MediaStreamTrack.idl:
117075        * platform/chromium/support/WebMediaStreamComponent.cpp:
117076        (WebKit::WebMediaStreamComponent::initialize):
117077        (WebKit):
117078        (WebKit::WebMediaStreamComponent::isEnabled):
117079        (WebKit::WebMediaStreamComponent::id):
117080        (WebKit::WebMediaStreamComponent::source):
117081        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
117082        (WebKit::WebMediaStreamDescriptor::label):
117083        (WebKit):
117084        (WebKit::WebMediaStreamDescriptor::id):
117085        * platform/mediastream/MediaStreamComponent.h:
117086        (WebCore::MediaStreamComponent::id):
117087        (WebCore::MediaStreamComponent::MediaStreamComponent):
117088        (MediaStreamComponent):
117089        * platform/mediastream/MediaStreamDescriptor.h:
117090        (WebCore::MediaStreamDescriptor::create):
117091        (WebCore::MediaStreamDescriptor::id):
117092        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
117093        (MediaStreamDescriptor):
117094
1170952013-01-10  Ojan Vafai  <ojan@chromium.org>
117096
117097        Flexboxes incorrectly add the scrollbar width to the intrinsic width of fixed-width items
117098        https://bugs.webkit.org/show_bug.cgi?id=106591
117099
117100        Reviewed by Levi Weintraub.
117101
117102        The scrollbar width should only be added if the width of the flex item
117103        is not fixed.
117104
117105        Test: fast/css/fixed-width-intrinsic-width-excludes-scrollbars.html
117106
117107        * rendering/RenderBlock.cpp:
117108        (WebCore::RenderBlock::computePreferredLogicalWidths):
117109        Use shared helper method. This also happens to fix the vertical
117110        writing-mode case.
117111
117112        * rendering/RenderBox.cpp:
117113        (WebCore::RenderBox::instrinsicScrollbarLogicalWidth):
117114        (WebCore):
117115        * rendering/RenderBox.h:
117116        (RenderBox):
117117        Add a method for determining the scrollbar's contribution to the boxes
117118        intrinsic width.
117119
117120        * rendering/RenderDeprecatedFlexibleBox.cpp:
117121        (WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
117122        * rendering/RenderFlexibleBox.cpp:
117123        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
117124        Use shared code for determining the scrollbar width and only add the
117125        width when computing the intrinsic widths.
117126
117127        * rendering/RenderGrid.cpp:
117128        (WebCore::RenderGrid::computePreferredLogicalWidths):\
117129        Just adding a FIXME to account for scrollbar width.
117130
1171312013-01-10  Nate Chapin  <japhet@chromium.org>
117132
117133        Replace unnecessary null-checks with an assert in MainResourceLoader::continueAfterNavigationPolicy.
117134        https://bugs.webkit.org/show_bug.cgi?id=106476
117135
117136        Reviewed by Alexey Proskuryakov.
117137
117138        * loader/MainResourceLoader.cpp:
117139        (WebCore::MainResourceLoader::continueAfterNavigationPolicy): Null-checks for resourceLoader were
117140            added in an abundance of caution in r139150. Given that we know the load hasn't been cancelled,
117141            resourceLoader can only be null if continueAfterNavigationPolicy() has already been called
117142            before when m_substituteData is valid. continueAfterNavigationPolicy() is only called for redirects,
117143            and SubstituteData doesn't support redirects, so it is correct to assert that resourceLoader is non-null.
117144
1171452013-01-10  Levi Weintraub  <leviw@chromium.org>
117146
117147        ScrollingCoordinator touch event hit rects aren't converted to proper coordinates when in nested views
117148        https://bugs.webkit.org/show_bug.cgi?id=106383
117149
117150        Reviewed by James Robinson.
117151
117152        ScrollingCoordinator uses clippedOverflowRectForRepaint(0) to generate the bounds for a renderer's hit
117153        testing rect. The rect this returns is in the coordinates of its document. This change converts the
117154        rect to the outermost view's coordinate system using convertToContainingView.
117155
117156        Tests: platform/chromium/fast/events/touch/touch-hit-rects-in-iframe.html
117157
117158        * page/scrolling/ScrollingCoordinator.cpp:
117159        (WebCore::accumulateRendererTouchEventTargetRects):
117160
1171612013-01-10  Levi Weintraub  <leviw@chromium.org>
117162
117163        Regression(r137939): Heap-use-after-free in WebCore::accumulateDocumentEventTargetRects
117164        https://bugs.webkit.org/show_bug.cgi?id=106454
117165
117166        Reviewed by James Robinson.
117167
117168        Correctly removing child Documents from their parent's tracked touch handler maps when detaching and
117169        when their last touch event handler is removed.
117170
117171        Test: fast/events/touch/nested-document-with-touch-handler-detached-crash.html
117172
117173        * dom/Document.cpp:
117174        (WebCore::Document::detach):
117175        (WebCore::Document::didRemoveEventTargetNode):
117176
1171772013-01-10  Nate Chapin  <japhet@chromium.org>
117178
117179        REGRESSION(r138222): WebDocumentLoaderMac-related leaks seen on Leaks bot
117180        https://bugs.webkit.org/show_bug.cgi?id=106137
117181
117182        Reviewed by Brady Eidson.
117183
117184        Tested manually by comparing before and after leaks output for WK1-mac.
117185
117186        * loader/MainResourceLoader.cpp:
117187        (WebCore::MainResourceLoader::receivedError): Call dispatchDidFailLoading() if
117188            a SubstituteData load fails or is cancelled. Without this call, load counts
117189            are not balanced on WebDocumentLoaderMac and it is retained forever.
117190        (WebCore::MainResourceLoader::didFinishLoading):
117191
1171922013-01-10  Robert Kroeger  <rjkroege@chromium.org>
117193
117194        Manually revert http://trac.webkit.org/changeset/136012
117195        https://bugs.webkit.org/show_bug.cgi?id=106580
117196
117197        Reviewed by Dimitri Glazkov.
117198
117199        136012 broke touch-scrolling of an overflow div in an iframe. Revert manually
117200        to work around conflicts.
117201
117202        * page/EventHandler.cpp:
117203        (WebCore::EventHandler::handleWheelEvent):
117204
1172052013-01-10  Robert Hogan  <robert@webkit.org>
117206
117207        REGRESSION(r136967): margin-top + overflow:hidden causes incorrect layout for internal floated elements
117208        https://bugs.webkit.org/show_bug.cgi?id=106374
117209
117210        Reviewed by David Hyatt.
117211
117212        r136397 treated any self-collapsing block that had a clearance delta as though it was clearing a float, but
117213        blocks that avoid floats can get a clearance delta too. So just ensure there is clearance on the block when deciding
117214        whether we need to add the margin back in before placing the float.
117215
117216        Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-and-float-child.html
117217
117218        * rendering/RenderBlockLineLayout.cpp:
117219        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
117220
1172212013-01-10  Alexander Pavlov  <apavlov@chromium.org>
117222
117223        Web Inspector: Color picker in Styles pane shows wrong initial color
117224        https://bugs.webkit.org/show_bug.cgi?id=106567
117225
117226        Reviewed by Pavel Feldman.
117227
117228        The RGB's G value for "crimson" was wrong.
117229
117230        * inspector/front-end/Color.js:
117231
1172322013-01-10  Tony Chang  <tony@chromium.org>
117233
117234        Speed up supplemental dependency computation
117235        https://bugs.webkit.org/show_bug.cgi?id=106503
117236
117237        Reviewed by Adam Barth.
117238
117239        On my machine, generating supplemental IDL dependencies was taking about 18s
117240        because it has to run the C preprocessor on each IDL file. Avoid this by using
117241        a regular expression to find the Supplemental= value in each IDL file rather than
117242        doing a full parse. Now generating supplemental IDL dependencies is less than a
117243        second.
117244
117245        preprocess-idls.pl used to also check IDL attributes against IDLAttributes.txt.
117246        Move this code to run in generate-bindings.pl. This change revealed that
117247        TestRunner.idl uses PassContext so add that to IDLAttributes.txt.
117248
117249        No new tests, this is a build refactor. EWS bots should be green.
117250
117251        * DerivedSources.make: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
117252        * DerivedSources.pri: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
117253        * GNUmakefile.am: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
117254        * UseJSC.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
117255        * UseV8.cmake: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
117256        * WebCore.gyp/WebCore.gyp: Remove --idlAttributesFile from preprocess-idls.pl and add it to generate-bindings.pl.
117257        * bindings/scripts/IDLAttributes.txt: Add PassContext needed by TestRunner.idl.
117258        * bindings/scripts/generate-bindings.pl:
117259        (loadIDLAttributes): Moved from preprocess-idls.pl.
117260        (checkIDLAttributes): Moved from preprocess-idls.pl.
117261        (checkIfIDLAttributesExists): Moved from preprocess-idls.pl.
117262        * bindings/scripts/preprocess-idls.pl:
117263        (getSupplementalFromIDLFile): Helper method to get Supplemental=* quickly.
117264
1172652013-01-10  Max Vujovic  <mvujovic@adobe.com>
117266
117267        [CSS Filters] RenderLayerCompositor::addToOverlapMap should take into account the filters outsets (ie. blur and drop-shadow)
117268        https://bugs.webkit.org/show_bug.cgi?id=94022
117269
117270        Reviewed by Simon Fraser.
117271
117272        When a layer has a filter that moves pixels, we need to add its entire bounds, including its
117273        outsets and children, to the overlap map. The filter can move the children's pixels
117274        anywhere in the layer, so we can't rely on the children's bounds.
117275
117276        Eventually, we should avoid adding children to the overlap map if the parent's bounds used
117277        for overlap testing already include the children. I've added a FIXME for this optimization.
117278
117279        Tests: compositing/filters/sw-layer-overlaps-hw-shadow.html
117280               compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow.html
117281               compositing/filters/sw-shadow-overlaps-hw-layer.html
117282               compositing/filters/sw-shadow-overlaps-hw-shadow.html
117283
117284        * rendering/RenderLayer.h:
117285        (WebCore::RenderLayer::overlapBounds):
117286            If necessary, return the calculated layer bounds, including the children. Otherwise,
117287            return the localBoundingBox.
117288        (RenderLayer):
117289        (WebCore::RenderLayer::overlapBoundsIncludeChildren):
117290            If the layer has a filter that moves pixels, return true.
117291        * rendering/RenderLayerCompositor.cpp:
117292        (WebCore::RenderLayerCompositor::addToOverlapMap):
117293            Add the overlapBounds instead of the localBoundingBox to the overlap map.
117294        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
117295            Use the overlapBounds instead of the localBoundingBox for overlap testing.
117296
1172972013-01-09  Ojan Vafai  <ojan@chromium.org>
117298
117299        intrinsic min-widths don't override width for file upload controls
117300        https://bugs.webkit.org/show_bug.cgi?id=106517
117301
117302        Reviewed by Tony Chang.
117303
117304        Separate out computing intrinsic width from perferred width so that
117305        we can use the intrinsic width correctly when applying min-width/max-width.
117306        The preferred width is the width used in its container's computation
117307        of its intrinsic width.
117308
117309        This is the first in a series of patches making this work across
117310        the render tree. 
117311
117312        Test: fast/forms/file/intrinsic-min-width-overrides-width.html
117313
117314        * rendering/RenderBox.cpp:
117315        (WebCore::RenderBox::minIntrinsicLogicalWidth):
117316        (WebCore):
117317        (WebCore::RenderBox::maxIntrinsicLogicalWidth):
117318        (WebCore::RenderBox::computeIntrinsicLogicalWidths):
117319        (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
117320        * rendering/RenderBox.h:
117321        (RenderBox):
117322        * rendering/RenderFileUploadControl.cpp:
117323        (WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
117324        (WebCore):
117325        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
117326        * rendering/RenderFileUploadControl.h:
117327        (RenderFileUploadControl):
117328
1173292013-01-10  Victor Carbune  <victor@rosedu.org>
117330
117331        media/video-controls-captions.html fails after fixing https://bugs.webkit.org/show_bug.cgi?id=105536
117332        https://bugs.webkit.org/show_bug.cgi?id=106230
117333
117334        Reviewed by Eric Carlson.
117335
117336        Until Chromium has proper controls for lists of text tracks, the caption button
117337        needs to preserve its functionality.
117338
117339        Updated TestExpectations to reactivate test.
117340
117341        * html/HTMLMediaElement.cpp:
117342        (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Added explicit call to updateTextTrackDisplay.
117343        This enables hiding the tracks immediately.
117344        * html/shadow/MediaControlElements.cpp:
117345        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Added extra check before rendering
117346        that captions should actually be displayed.
117347
1173482013-01-10  Hajime Morrita  <morrita@google.com>
117349
117350        ComposedShadowTreeWalker shouldn't be exposed to non-ShadowDOM classes
117351        https://bugs.webkit.org/show_bug.cgi?id=106505
117352
117353        Reviewed by Dimitri Glazkov.
117354
117355        This change hides ComposedShadowTreeWalker from non-ShadowDOM classes by
117356
117357        - introducing thin wrapper functions on NodeRenderingTraversal and relacing
117358          CSTW callsites with it,
117359        - replacing ComposedShadowTreeWalker usage with AncestorChainWalker if possible and
117360        - moving AncestorChainWalker to its own file and including it on files
117361          which needs only AncestorChainWalker. This eliminates ComposedShadowTreeWalker.h inclusions.
117362
117363        No new tests. No behavior change.
117364
117365        * CMakeLists.txt:
117366        * GNUmakefile.list.am:
117367        * Target.pri:
117368        * WebCore.gypi:
117369        * WebCore.xcodeproj/project.pbxproj:
117370        * dom/AncestorChainWalker.cpp: Added. Extracted from ComposedShadowTreeWalker.cpp
117371        (WebCore):
117372        (WebCore::AncestorChainWalker::AncestorChainWalker):
117373        (WebCore::AncestorChainWalker::parent):
117374        * dom/AncestorChainWalker.h: Added. Extracted from ComposedShadowTreeWalker.h
117375        (WebCore):
117376        (AncestorChainWalker):
117377        (WebCore::AncestorChainWalker::get):
117378        (WebCore::AncestorChainWalker::crossingInsertionPoint):
117379        * dom/ComposedShadowTreeWalker.cpp:
117380        * dom/ComposedShadowTreeWalker.h:
117381        * dom/DOMAllInOne.cpp:
117382        * dom/ElementShadow.h:
117383        (WebCore::shadowOfParent):
117384        (WebCore):
117385        * dom/EventDispatcher.cpp:
117386        * dom/Node.cpp:
117387        * dom/NodeRenderingTraversal.cpp:
117388        (WebCore::NodeRenderingTraversal::nextInScope):
117389        (NodeRenderingTraversal):
117390        (WebCore::NodeRenderingTraversal::previousInScope): Added.
117391        (WebCore::NodeRenderingTraversal::parentInScope): Added.
117392        (WebCore::NodeRenderingTraversal::lastChildInScope): Added.
117393        * dom/NodeRenderingTraversal.h:
117394        (NodeRenderingTraversal):
117395        * dom/TreeScope.cpp:
117396        * html/HTMLLIElement.cpp:
117397        (WebCore::HTMLLIElement::attach):
117398        * page/EventHandler.cpp:
117399        * page/FocusController.cpp: Replacing CSTW with NRT
117400        (WebCore):
117401        (WebCore::FocusNavigationScope::focusNavigationScopeOf):
117402        (WebCore::FocusController::findNodeWithExactTabIndex):
117403        (WebCore::nextNodeWithGreaterTabIndex):
117404        (WebCore::previousNodeWithLowerTabIndex):
117405        (WebCore::FocusController::nextFocusableNode):
117406        (WebCore::FocusController::previousFocusableNode):
117407
1174082013-01-10  Zan Dobersek  <zandobersek@gmail.com>
117409
117410        Remove the ENABLE_ANIMATION_API feature define occurences
117411        https://bugs.webkit.org/show_bug.cgi?id=106544
117412
117413        Reviewed by Simon Fraser.
117414
117415        The Animation API code was removed in r137243. The ENABLE_ANIMATION_API
117416        feature define handling still lingers in various build systems and configurations
117417        but is of no use, so it should be removed.
117418
117419        No new tests - no new functionality.
117420
117421        * Configurations/FeatureDefines.xcconfig:
117422        * GNUmakefile.features.am.in:
117423
1174242013-01-10  Robert Phillips  <robertphillips@chromium.org>
117425
117426        Serialization of Gradients fails when PlatformContextSkia is not bitmap backed
117427        https://bugs.webkit.org/show_bug.cgi?id=106559
117428
117429        Reviewed by Stephen White.
117430
117431        This patch switches over from having platform/Skia improperly
117432        crack open the device to find the bitmap configuration to just
117433        specifying it directly.
117434
117435        No new tests. This bug is Chromium specific and only occurs in a
117436        debugging tool (when serializing to a Skia-specific file format).
117437
117438        * platform/graphics/skia/PlatformContextSkia.cpp:
117439        (WebCore::PlatformContextSkia::createCompatibleDevice):
117440
1174412013-01-10  Alexander Pavlov  <apavlov@chromium.org>
117442
117443        The "outline-offset" property is not found in the computed style property list
117444        https://bugs.webkit.org/show_bug.cgi?id=106561
117445
117446        Reviewed by Alexis Menard.
117447
117448        Listed CSSPropertyOutlineOffset in the CSSComputedStyleDeclaration's computedProperties[].
117449
117450        Test: fast/css/getComputedStyle/getComputedStyle-outline-offset.html
117451
117452        * css/CSSComputedStyleDeclaration.cpp:
117453
1174542013-01-10  David Faure  <faure@kde.org>
117455
117456        PluginPackage::freeLibraryTimerFired asserts if plugin got loaded again meanwhile
117457        https://bugs.webkit.org/show_bug.cgi?id=106463
117458
117459        Reviewed by Simon Hausmann.
117460
117461        No new tests, this code path will be tested by bug 106140.
117462
117463        * plugins/PluginPackage.cpp:
117464        (WebCore::PluginPackage::freeLibraryTimerFired): skip unloading if loaded again meanwhile.
117465
1174662013-01-10  Alexander Pavlov  <apavlov@chromium.org>
117467
117468        CSSParser does not allow the absence of whitespace between "and" and "expression"
117469        https://bugs.webkit.org/show_bug.cgi?id=106458
117470
117471        Reviewed by Antti Koivisto.
117472
117473        The issue was that a construct similar to "and(max-width: 480px)" looks like a function call (token type FUNCTION), even though
117474        it is actually a MEDIA_AND followed by a parenthesized expression.
117475
117476        Test: fast/css/media-rule-no-whitespace.html
117477
117478        * css/CSSParser.cpp:
117479        (WebCore::CSSParser::detectFunctionTypeToken): Return if the detection has been successful.
117480        (WebCore::CSSParser::realLex): Test for media query tokens if function type detection has failed.
117481        * css/CSSParser.h:
117482
1174832013-01-10  Alexis Menard  <alexis@webkit.org>
117484
117485        ASSERT_NOT_REACHED in StylePropertySet::fontValue when accessing font style property through JS after setting style font size.
117486        https://bugs.webkit.org/show_bug.cgi?id=88866
117487
117488        Reviewed by Alexander Pavlov.
117489
117490        StylePropertySet::fontValue always assumed that it was called using
117491        style.font after a subsequent call which set the shorthand font. The
117492        ASSERT_NOT_REACHED assumed that all longhands of the font shorthand not
117493        set by the shorthand itself were set to initial. While it's true when
117494        we set the font shorthand (i.e all longhands are set to implicit initial)
117495        it is not true when you set the longhands individually. For example setting
117496        font-size will not set other font properties to initial. It is the behavior of all
117497        other shorthands in WebKit. When reconstructing the shorthand other
117498        properties tests whether the value of each longhands is initial or not
117499        (if not then we omit the value, as we should always construct the
117500        shortest shorthand possible) or if the value is set or not (if set then
117501        we include it in the shorthand if not then we omit it). The comment
117502        removed was also talking about invalid font property potentially built
117503        by fontValue(). So far appendFontLonghandValueIfExplicit will always
117504        construct a valid value as it takes care of adding ' ' or '/' when
117505        needed, so the return value is parsable and correct.
117506
117507        Test: fast/css/font-shorthand-from-longhands.html
117508
117509        * css/StylePropertySet.cpp:
117510        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
117511        (WebCore::StylePropertySet::fontValue):
117512        * css/StylePropertySet.h:
117513
1175142013-01-10  Sheriff Bot  <webkit.review.bot@gmail.com>
117515
117516        Unreviewed, rolling out r139306.
117517        http://trac.webkit.org/changeset/139306
117518        https://bugs.webkit.org/show_bug.cgi?id=106550
117519
117520        it broke inspector-protocol/nmi-webaudio-leak-test.html
117521        (Requested by loislo on #webkit).
117522
117523        * bindings/v8/V8PerIsolateData.cpp:
117524        (WebCore::V8PerIsolateData::reportMemoryUsage):
117525        * css/CSSMediaRule.cpp:
117526        (WebCore::CSSMediaRule::reportMemoryUsage):
117527        * css/CSSProperty.cpp:
117528        (WebCore::CSSProperty::reportMemoryUsage):
117529        * css/CSSStyleSheet.cpp:
117530        (WebCore::CSSStyleSheet::reportMemoryUsage):
117531        * css/MediaList.cpp:
117532        (WebCore::MediaList::reportMemoryUsage):
117533        * css/RuleSet.cpp:
117534        (WebCore::RuleData::reportMemoryUsage):
117535        (WebCore::RuleSet::reportMemoryUsage):
117536        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
117537        * css/StyleResolver.cpp:
117538        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
117539        (WebCore::StyleResolver::reportMemoryUsage):
117540        * css/StyleSheetContents.cpp:
117541        (WebCore::StyleSheetContents::reportMemoryUsage):
117542        * dom/TreeScope.cpp:
117543        (WebCore::TreeScope::reportMemoryUsage):
117544        * inspector/HeapGraphSerializer.cpp:
117545        (WebCore::HeapGraphSerializer::reportMemoryUsage):
117546        * inspector/InspectorMemoryAgent.cpp:
117547        * inspector/InspectorProfilerAgent.cpp:
117548        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
117549        * inspector/MemoryInstrumentationImpl.cpp:
117550        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
117551        * loader/DocumentLoader.cpp:
117552        (WebCore::DocumentLoader::reportMemoryUsage):
117553        * loader/FrameLoader.cpp:
117554        (WebCore::FrameLoader::reportMemoryUsage):
117555        * loader/MainResourceLoader.cpp:
117556        (WebCore::MainResourceLoader::reportMemoryUsage):
117557        * loader/Prerenderer.cpp:
117558        (WebCore::Prerenderer::reportMemoryUsage):
117559        * loader/ResourceLoader.cpp:
117560        (WebCore::ResourceLoader::reportMemoryUsage):
117561        * loader/cache/CachedImage.cpp:
117562        (WebCore::CachedImage::reportMemoryUsage):
117563        * page/Page.cpp:
117564        (WebCore::Page::reportMemoryUsage):
117565
1175662013-01-10  Ilya Tikhonovsky  <loislo@chromium.org>
117567
117568        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 2/N
117569        https://bugs.webkit.org/show_bug.cgi?id=106546
117570
117571        Reviewed by Vsevolod Vlasov.
117572
117573        Many nontrivial class members were instrumented in reportMemoryUsage methods.
117574
117575        * bindings/v8/V8PerIsolateData.cpp:
117576        (WebCore::V8PerIsolateData::reportMemoryUsage):
117577        * css/CSSMediaRule.cpp:
117578        (WebCore::CSSMediaRule::reportMemoryUsage):
117579        * css/CSSProperty.cpp:
117580        (WebCore::CSSProperty::reportMemoryUsage):
117581        * css/CSSStyleSheet.cpp:
117582        (WebCore::CSSStyleSheet::reportMemoryUsage):
117583        * css/MediaList.cpp:
117584        (WebCore::MediaList::reportMemoryUsage):
117585        * css/RuleSet.cpp:
117586        (WebCore::RuleData::reportMemoryUsage):
117587        (WebCore::RuleSet::reportMemoryUsage):
117588        (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
117589        * css/StyleResolver.cpp:
117590        (WebCore::StyleResolver::MatchedPropertiesCacheItem::reportMemoryUsage):
117591        (WebCore::StyleResolver::reportMemoryUsage):
117592        * css/StyleSheetContents.cpp:
117593        (WebCore::StyleSheetContents::reportMemoryUsage):
117594        * dom/TreeScope.cpp:
117595        (WebCore::TreeScope::reportMemoryUsage):
117596        * inspector/HeapGraphSerializer.cpp:
117597        (WebCore::HeapGraphSerializer::reportMemoryUsage):
117598        * inspector/InspectorMemoryAgent.cpp:
117599        * inspector/InspectorProfilerAgent.cpp:
117600        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
117601        * inspector/MemoryInstrumentationImpl.cpp:
117602        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
117603        * loader/DocumentLoader.cpp:
117604        (WebCore::DocumentLoader::reportMemoryUsage):
117605        * loader/FrameLoader.cpp:
117606        (WebCore::FrameLoader::reportMemoryUsage):
117607        * loader/MainResourceLoader.cpp:
117608        (WebCore::MainResourceLoader::reportMemoryUsage):
117609        * loader/Prerenderer.cpp:
117610        (WebCore::Prerenderer::reportMemoryUsage):
117611        * loader/ResourceLoader.cpp:
117612        (WebCore::ResourceLoader::reportMemoryUsage):
117613        * loader/cache/CachedImage.cpp:
117614        (WebCore::CachedImage::reportMemoryUsage):
117615        * page/Page.cpp:
117616        (WebCore::Page::reportMemoryUsage):
117617
1176182013-01-10  Christophe Dumez  <christophe.dumez@intel.com>
117619
117620        [EFL] Add gstreamer 1.0.5 to jhbuild
117621        https://bugs.webkit.org/show_bug.cgi?id=106178
117622
117623        Reviewed by Laszlo Gombos.
117624
117625        Remove GSTREAMER_INTERFACES_LIBRARIES from EFL
117626        CMake configuration.
117627
117628        No new tests, no behavior change for layout tests.
117629
117630        * PlatformEfl.cmake:
117631
1176322013-01-09  Christophe Dumez  <christophe.dumez@intel.com>
117633
117634        Unreviewed build fix after r139266.
117635
117636        r139266 broke the debug build of the gstreamer backend due
117637        to a missing header include.
117638
117639        No new tests, no behavior change.
117640
117641        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
117642
1176432013-01-09  Alec Flett  <alecflett@chromium.org>
117644
117645        IndexedDB: Allow createIndex/createObjectStore to be asynchronous
117646        https://bugs.webkit.org/show_bug.cgi?id=106377
117647
117648        Reviewed by Tony Chang.
117649
117650        Migrate implementations of createIndex/deleteIndex,
117651        createObjectStore/deleteObjectStore over to IDBDatabaseBackendImpl,
117652        so that they can be asynchronous in multi-process ports.
117653
117654        Has the side effect of removing the last consumers of
117655        IDBIndexBackendImpl and IDBObjectStoreBackendImpl. The former
117656        is removed complete and the latter becomes a temporary namespace
117657        pending a further more mechanical code shuffle.
117658
117659        A key refactoring effect is that the IDBDatabaseBackendImpl
117660        now contains the authoritative IDBDatabaseMetadata hierarchy,
117661        and updates to it are consolidated in one place rather than
117662        scattered across a parallel object tree.
117663
117664        No new tests as this is just refactoring.
117665
117666        * Modules/indexeddb/IDBBackingStore.cpp: Simplify objectstore/index loading and propagate errors.
117667        (WebCore::IDBBackingStore::getObjectStores):
117668        (WebCore::IDBBackingStore::getIndexes):
117669        * Modules/indexeddb/IDBBackingStore.h:
117670        (IDBBackingStore):
117671        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Dependency cleanup.
117672        * Modules/indexeddb/IDBCursorBackendImpl.h: Dependency cleanup.
117673        (WebCore):
117674        * Modules/indexeddb/IDBDatabase.cpp: Frontend IDBObjectStores no longer hold onto backend objects.
117675        (WebCore::IDBDatabase::createObjectStore):
117676        (WebCore::IDBDatabase::deleteObjectStore):
117677        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Add all create/deleteIndex operations from IDBIndexBackendImpl.
117678        (WebCore::CreateObjectStoreOperation::create):
117679        (WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
117680        (CreateObjectStoreOperation):
117681        (WebCore::DeleteObjectStoreOperation::create):
117682        (WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
117683        (DeleteObjectStoreOperation):
117684        (WebCore::CreateObjectStoreAbortOperation::create):
117685        (WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
117686        (CreateObjectStoreAbortOperation):
117687        (WebCore::DeleteObjectStoreAbortOperation::create):
117688        (WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
117689        (DeleteObjectStoreAbortOperation):
117690        (CreateIndexOperation):
117691        (WebCore::CreateIndexOperation::create):
117692        (WebCore::CreateIndexOperation::CreateIndexOperation):
117693        (WebCore):
117694        (DeleteIndexOperation):
117695        (WebCore::DeleteIndexOperation::create):
117696        (WebCore::DeleteIndexOperation::DeleteIndexOperation):
117697        (CreateIndexAbortOperation):
117698        (WebCore::CreateIndexAbortOperation::create):
117699        (WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
117700        (DeleteIndexAbortOperation):
117701        (WebCore::DeleteIndexAbortOperation::create):
117702        (WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
117703        (WebCore::GetOperation::GetOperation):
117704        (WebCore::IDBDatabaseBackendImpl::addObjectStore):
117705        (WebCore::IDBDatabaseBackendImpl::removeObjectStore):
117706        (WebCore::IDBDatabaseBackendImpl::addIndex):
117707        (WebCore::IDBDatabaseBackendImpl::removeIndex):
117708        (WebCore::IDBDatabaseBackendImpl::openInternal):
117709        (WebCore::IDBDatabaseBackendImpl::metadata):
117710        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
117711        (WebCore::CreateObjectStoreOperation::perform):
117712        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
117713        (WebCore::IDBDatabaseBackendImpl::createIndex):
117714        (WebCore::CreateIndexOperation::perform):
117715        (WebCore::CreateIndexAbortOperation::perform):
117716        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
117717        (WebCore::DeleteIndexOperation::perform):
117718        (WebCore::DeleteIndexAbortOperation::perform):
117719        (WebCore::IDBDatabaseBackendImpl::get):
117720        (WebCore::IDBDatabaseBackendImpl::put):
117721        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
117722        (WebCore::IDBDatabaseBackendImpl::count):
117723        (WebCore::DeleteRangeOperation::perform):
117724        (WebCore::DeleteObjectStoreOperation::perform):
117725        (WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal):
117726        (WebCore::IDBDatabaseBackendImpl::loadObjectStores): Load directly into metadata from backing store.
117727        (WebCore::CreateObjectStoreAbortOperation::perform):
117728        (WebCore::DeleteObjectStoreAbortOperation::perform):
117729        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
117730        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
117731        (WebCore):
117732        (IDBDatabaseBackendImpl):
117733        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
117734        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
117735        * Modules/indexeddb/IDBIndexBackendImpl.cpp: Removed.
117736        * Modules/indexeddb/IDBIndexBackendImpl.h: Removed.
117737        * Modules/indexeddb/IDBObjectStore.cpp:
117738        (WebCore::IDBObjectStore::IDBObjectStore): Frontend IDBIndex objects no longer hold onto backend.
117739        (WebCore::IDBObjectStore::createIndex): 
117740        (WebCore::IDBObjectStore::deleteIndex):
117741        * Modules/indexeddb/IDBObjectStore.h:
117742        (WebCore::IDBObjectStore::create):
117743        (IDBObjectStore):
117744        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
117745        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
117746        (WebCore):
117747        (IDBObjectStoreBackendImpl):
117748        * Modules/indexeddb/IDBTransaction.cpp:
117749        (WebCore::IDBTransaction::objectStore):
117750        * Modules/indexeddb/IDBTransaction.h:
117751        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
117752        * Modules/indexeddb/IDBTransactionBackendImpl.h:
117753        (WebCore::IDBTransactionBackendImpl::objectStore):
117754        * WebCore.gypi:
117755        * WebCore.vcproj/WebCore.vcproj:
117756        * WebCore.xcodeproj/project.pbxproj:
117757
1177582013-01-09  John J. Barton  <johnjbarton@chromium.org>
117759
117760        Web Inspector: Don't throw exceptions when we don't have a callstack
117761        https://bugs.webkit.org/show_bug.cgi?id=104849
117762
117763        Reviewed by Pavel Feldman.
117764
117765        Check array details.callFrames.length before accessing array;
117766
117767        No new tests, but this fix may help us find the cause of 'other' reasons.
117768
117769        * inspector/front-end/ScriptsPanel.js:
117770        (WebInspector.ScriptsPanel.prototype._debuggerPaused):
117771
1177722013-01-09  Eugene Klyuchnikov  <eustas@chromium.org>
117773
117774        Web Inspector: [Network] Data grid header and content cells are misaligned.
117775        https://bugs.webkit.org/show_bug.cgi?id=105795
117776
117777        Reviewed by Pavel Feldman.
117778
117779        Header and content tables have different width -> same percent values
117780        turn to different cell widths.
117781
117782        * inspector/front-end/DataGrid.js: Add "corner" cell to all rows.
117783        * inspector/front-end/dataGrid.css: Apply "corner" rules to "td" nodes.
117784        (.data-grid .data-container): Remove artificial padding.
117785
1177862013-01-09  Tien-Ren Chen  <trchen@chromium.org>
117787
117788        Make caret repainting container-aware
117789        https://bugs.webkit.org/show_bug.cgi?id=103955
117790
117791        Reviewed by Simon Fraser.
117792
117793        Only invalidate local rects on the caret's repaint container,
117794        instead of invalidating an absolute rect on the whole view.
117795
117796        Test: fast/repaint/caret-with-transformation.html
117797
117798        * editing/FrameSelection.cpp:
117799        (WebCore::caretRendersInsideNode):
117800        (WebCore::caretRenderer):
117801        (WebCore::FrameSelection::caretRenderer):
117802        (WebCore::DragCaretController::caretRenderer):
117803        (WebCore::repaintCaretForLocalRect):
117804        (WebCore::FrameSelection::recomputeCaretRect):
117805        (WebCore::CaretBase::invalidateCaretRect):
117806        (WebCore::FrameSelection::focusedOrActiveStateChanged):
117807        * editing/FrameSelection.h:
117808        * rendering/RenderView.cpp:
117809        (WebCore::RenderView::repaintSelection):
117810        * rendering/RenderView.h:
117811
1178122013-01-09  Ryosuke Niwa  <rniwa@webkit.org>
117813
117814        Rebaseline the binding test after r139278.
117815
117816        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
117817        (WebCore::JSTestEventTarget::getOwnPropertySlot):
117818
1178192013-01-09  Ryosuke Niwa  <rniwa@webkit.org>
117820
117821        [JSC] REGRESSION(r135093): A form control with name=length overrides length property on form.elements
117822        https://bugs.webkit.org/show_bug.cgi?id=105775
117823
117824        Reviewed by Sam Weinig.
117825
117826        Fixed the bug by respecting properties on ancestor classes.
117827
117828        Test: fast/dom/collection-length-should-not-be-overridden.html
117829
117830        * bindings/js/JSDOMBinding.h:
117831        (WebCore::getStaticValueSlotEntryWithoutCaching): Added.
117832        * bindings/scripts/CodeGeneratorJS.pm:
117833        (GenerateGetOwnPropertySlotBody): Use getStaticValueSlotEntryWithoutCaching to climb up the class
117834        hierarchy.
117835
1178362013-01-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>
117837
117838        [EFL] [WebGL] Remove GLX dependencies from X11WindowResources..
117839        https://bugs.webkit.org/show_bug.cgi?id=106319
117840
117841        Reviewed by Kenneth Rohde Christiansen.
117842
117843        This patch removes GLX specific calls from X11WindowResources.
117844        This class is shared by both GLX and EGL implementations.
117845
117846        * platform/graphics/surfaces/glx/GLXSurface.cpp:
117847        (WebCore::GLXTransportSurface::setGeometry):
117848        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
117849        (WebCore::X11OffScreenWindow::reSizeWindow):
117850
1178512013-01-09  Huang Dongsung  <luxtella@company100.net>
117852
117853        Remove deviceScaleFactor argument in computeMinimumScaleFactorForContentContained().
117854        https://bugs.webkit.org/show_bug.cgi?id=106500
117855
117856        Reviewed by Kenneth Rohde Christiansen.
117857
117858        deviceScaleFactor argument is not used after r139189.
117859
117860        No new tests. Refactoring only.
117861
117862        * dom/ViewportArguments.cpp:
117863        (WebCore::computeMinimumScaleFactorForContentContained):
117864        * dom/ViewportArguments.h:
117865        (WebCore):
117866
1178672013-01-09  Elliott Sprehn  <esprehn@gmail.com>
117868
117869        Node::containingShadowRoot should be constant time
117870        https://bugs.webkit.org/show_bug.cgi?id=106494
117871
117872        Reviewed by Dimitri Glazkov.
117873
117874        There's no reason to traverse up the tree to find the containing
117875        ShadowRoot when we already know if we're in a ShadowRoot by looking at
117876        the treeScope().
117877
117878        No new tests, just refactoring.
117879
117880        * dom/Node.cpp:
117881        (WebCore::Node::containingShadowRoot):
117882
1178832013-01-09  Hajime Morrita  <morrita@google.com>
117884
117885        [Shadow DOM] Distribution related code on ElementShadow should be minimized.
117886        https://bugs.webkit.org/show_bug.cgi?id=106294
117887
117888        Reviewed by Dimitri Glazkov.
117889
117890        This change moves ElementShadow::m_selectFeatures,
117891        m_shouldCollectSelectFeatureSet and related methods to
117892        ContentDistributor.
117893
117894        There are also some renaming and small refactorings for better fit
117895        on new place:
117896
117897        - shouldCollectSelectFeatureSet is renamed needsSelectorRuleSet for conciseness.
117898        - setShouldCollectSelectFeatureSet() which used recursion morphed into
117899          iterative willAffectSelector().
117900        - ensureDistributionFromDocument() becomes a static method.
117901
117902        No new tests. Refactoring.
117903
117904        * WebCore.exp.in:
117905        * dom/Element.cpp:
117906        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
117907        * dom/ElementShadow.cpp:
117908        (WebCore::ElementShadow::addShadowRoot):
117909        (WebCore::ElementShadow::removeAllShadowRoots):
117910        * dom/ElementShadow.h:
117911        (ElementShadow):
117912        (WebCore::ElementShadow::invalidateDistribution):
117913        (WebCore::ElementShadow::ensureDistribution):
117914        (WebCore::ElementShadow::didAffectSelector):
117915        (WebCore::ElementShadow::willAffectSelector):
117916        (WebCore::ElementShadow::containingShadow):
117917        (WebCore):
117918        * html/shadow/ContentDistributor.cpp:
117919        (WebCore::ScopeContentDistribution::registerInsertionPoint):
117920        (WebCore::ScopeContentDistribution::unregisterInsertionPoint):
117921        (WebCore::ContentDistributor::ContentDistributor):
117922        (WebCore::ContentDistributor::ensureDistribution):
117923        (WebCore):
117924        (WebCore::ContentDistributor::ensureDistributionFromDocument):
117925        (WebCore::ContentDistributor::invalidateDistribution):
117926        (WebCore::ContentDistributor::ensureSelectFeatureSet):
117927        (WebCore::ContentDistributor::collectSelectFeatureSetFrom):
117928        (WebCore::ContentDistributor::didAffectSelector):
117929        (WebCore::ContentDistributor::willAffectSelector):
117930        (WebCore::ContentDistributor::didShadowBoundaryChange):
117931        * html/shadow/ContentDistributor.h:
117932        (ScopeContentDistribution):
117933        (WebCore::ContentDistributor::needsSelectFeatureSet):
117934        (WebCore::ContentDistributor::setNeedsSelectFeatureSet):
117935        (ContentDistributor):
117936        (WebCore::ContentDistributor::setValidity):
117937        (WebCore::ContentDistributor::needsInvalidation):
117938        * html/shadow/HTMLContentElement.cpp:
117939        (WebCore::HTMLContentElement::parseAttribute):
117940        * html/shadow/HTMLContentElement.h:
117941        * html/shadow/HTMLShadowElement.cpp:
117942        (WebCore::HTMLShadowElement::olderShadowRoot):
117943        * html/shadow/InsertionPoint.cpp:
117944        (WebCore::InsertionPoint::getDistributedNodes):
117945        (WebCore::InsertionPoint::insertedInto):
117946        (WebCore::InsertionPoint::removedFrom):
117947        * html/shadow/InsertionPoint.h:
117948        (WebCore::InsertionPoint::canAffectSelector):
117949        * testing/Internals.cpp:
117950        (WebCore::Internals::hasSelectorForIdInShadow):
117951        (WebCore::Internals::hasSelectorForClassInShadow):
117952        (WebCore::Internals::hasSelectorForAttributeInShadow):
117953        (WebCore::Internals::hasSelectorForPseudoClassInShadow):
117954
1179552013-01-09  Shinya Kawanaka  <shinyak@chromium.org>
117956
117957        Assert triggered in SelectorChecker::checkOneSelector when scrollbar (e.g. :horizontal) selector is specified.
117958        https://bugs.webkit.org/show_bug.cgi?id=106414
117959
117960        Reviewed by Dimitri Glazkov.
117961
117962        In SelectorChecker::checkOneSelector, scrollbar related pseudoType (e.g. :horizontal) is not handled anywhere.
117963        This caused ASSERT triggered. We have to check them.
117964
117965        Test: fast/css/scrollbar-crash.html
117966
117967        * css/SelectorChecker.cpp:
117968        (WebCore::SelectorChecker::checkOneSelector):
117969
1179702013-01-09  Filip Pizlo  <fpizlo@apple.com>
117971
117972        Unreviewed, fix build after http://trac.webkit.org/changeset/139262
117973
117974        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
117975
1179762013-01-09  Chris Rogers  <crogers@google.com>
117977
117978        Allow live/local audio input to be enabled only when needed
117979        https://bugs.webkit.org/show_bug.cgi?id=106490
117980
117981        Reviewed by Kenneth Russell.
117982        
117983        WebAudio can process live/local audio input using a MediaStreamAudioSourceNode.
117984        But currently the audio back-end is not able to know when/if audio input will be
117985        needed, so it needs to assume the worst and initialize the system to support potential
117986        audio input in all cases.  For some audio back-ends this can end up being less efficient
117987        than initializing for audio output only.  This patch adds the ability for the audio back-end
117988        to be able to initialize itself for audio input later on, only when/if it's needed.
117989
117990        * Modules/webaudio/AudioContext.cpp:
117991        (WebCore::AudioContext::createMediaStreamSource):
117992        * Modules/webaudio/AudioDestinationNode.h:
117993        (AudioDestinationNode):
117994        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
117995        (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
117996        (WebCore::DefaultAudioDestinationNode::initialize):
117997        (WebCore::DefaultAudioDestinationNode::uninitialize):
117998        (WebCore::DefaultAudioDestinationNode::createDestination):
117999        (WebCore):
118000        (WebCore::DefaultAudioDestinationNode::enableInput):
118001        * Modules/webaudio/DefaultAudioDestinationNode.h:
118002        (DefaultAudioDestinationNode):
118003        * Modules/webaudio/OfflineAudioDestinationNode.h:
118004        (OfflineAudioDestinationNode):
118005        (WebCore::OfflineAudioDestinationNode::sampleRate):
118006        * platform/audio/AudioDestination.h:
118007        (AudioDestination):
118008        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
118009        (WebCore::AudioDestination::create):
118010        * platform/audio/mac/AudioDestinationMac.cpp:
118011        (WebCore::AudioDestination::create):
118012
1180132013-01-09  Tim Horton  <timothy_horton@apple.com>
118014
118015        Don't drop to huge tile mode if we're only slow-scrolling because of a page overlay
118016        https://bugs.webkit.org/show_bug.cgi?id=106502
118017        <rdar://problem/12959143>
118018
118019        Reviewed by Simon Fraser.
118020
118021        We only use the MainThreadScrollingReason "ForcedOnMainThread" if WebKit2 installs
118022        a page overlay (TiledCoreAnimationDrawingArea::didInstallPageOverlay), which clients
118023        can cause arbitrarily.
118024
118025        We probably should still use default-sized tiles in this case (this will also
118026        prevent us from falling into gigantic tiles for WebKit2 find-in-page, among other things).
118027
118028        * rendering/RenderLayerBacking.cpp:
118029        (WebCore::RenderLayerBacking::adjustTileCacheCoverage):
118030
1180312013-01-09  Takashi Sakamoto  <tasak@google.com>
118032
118033        border-radius with box-shadow is not rendered correctly
118034        https://bugs.webkit.org/show_bug.cgi?id=106404
118035
118036        Reviewed by Hajime Morita.
118037
118038        RoundedRect::isRenderable is wrong. So RoundedRect::adjustRadii
118039        is invoked for renderable RoundedRects.
118040
118041        Test: fast/borders/border-radius-with-box-shadow.html
118042
118043        * platform/graphics/RoundedRect.cpp:
118044        (WebCore::RoundedRect::isRenderable):
118045        Have to compare topLeft's height plus bottomLeft's height with
118046        rect's height and to compare topRight's height plus bottomRight's
118047        height with rect's height.
118048
1180492013-01-09  Joanmarie Diggs  <jdiggs@igalia.com>
118050
118051        [GTK] accessibility/aria-labelledby-overrides-label.html requires a proper baseline
118052        https://bugs.webkit.org/show_bug.cgi?id=105638
118053
118054        Reviewed by Martin Robinson.
118055
118056        The test was failing for two reasons:
118057        - AccessibilityRenderObject::correspondingLabelForControlElement() was
118058          not ignoring the ARIA labelled-by property
118059        - AccessibilityController::accessibleElementById() was not implemented
118060
118061        Because getting an element by ID cannot be done in the UIProcess, the
118062        decision was made to expose the element's ID as an accessible attribute
118063        of the object.
118064
118065        In addition, fixing the bug in AccessibilityRenderObject made it possible
118066        to eliminate the Gtk platform-specific expectations for another test.
118067
118068        No new tests; instead, the failing test was unskipped and a proper baseline
118069        provided.
118070
118071        * accessibility/AccessibilityRenderObject.cpp:
118072        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
118073        Return null for objects where hasTextAlternative() is true.
118074        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
118075        (webkitAccessibleGetAttributes): Expose the element's ID as an accessible
118076        attribute.
118077
1180782013-01-09  Tony Gentilcore  <tonyg@chromium.org>
118079
118080        Remove unused includes from HTMLTreeBuilder
118081        https://bugs.webkit.org/show_bug.cgi?id=106496
118082
118083        Reviewed by Levi Weintraub.
118084
118085        Noticed these while searching HTMLTreeBuilder for non-thread friendly deps.
118086
118087        No new tests because no new functionality.
118088
118089        * html/parser/HTMLTreeBuilder.cpp:
118090
1180912013-01-09  Max Vujovic  <mvujovic@adobe.com>
118092
118093        [CSS Shaders] Detached identifier after mesh box type is not applied
118094        https://bugs.webkit.org/show_bug.cgi?id=105321
118095
118096        Reviewed by Dean Jackson.
118097
118098        Before this patch, if a "detached" identifier followed a mesh box type identifier, the
118099        detached identifier was not applied. In other words, the mesh would still be attached.
118100
118101        For example:
118102        -webkit-filter: custom(url(...) mix(url(...) normal source-atop), 1 1 border-box detached);
118103
118104        Although the mesh box type is being removed from the Filter Effects spec, for now, we
118105        continue to accept the mesh box type in parsing because of existing content. Eventually,
118106        custom filters will transition to an at-rule syntax, once it is defined.
118107
118108        Test: css3/filters/custom/custom-filter-detached-mesh-with-mesh-box-type.html
118109
118110        * css/CSSParser.cpp:
118111        (WebCore::CSSParser::parseCustomFilter):
118112            In CSSParser, do not add the mesh box type identifier to the list that will be passed to
118113            StyleResolver. StyleResolver is expecting a "detached" identifier in that position and
118114            does not interpret mesh box types.
118115
1181162013-01-09  Dan Winship  <danw@gnome.org>
118117
118118        [Soup] Handle redirection inside WebKit
118119        https://bugs.webkit.org/show_bug.cgi?id=61122
118120        https://bugs.webkit.org/show_bug.cgi?id=88961
118121
118122        Reviewed by Martin Robinson.
118123
118124        Rather than using libsoup's built-in redirection handling (which
118125        doesn't do everything exactly the way WebKit wants, and can't
118126        handle redirects to non-http URIs anyway), process redirections
118127        ourselves.
118128
118129        No new tests; unskips a few existing tests.
118130
118131        * platform/network/ResourceHandleInternal.h:
118132        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
118133        (ResourceHandleInternal):
118134        * platform/network/soup/ResourceError.h:
118135        (ResourceError):
118136        * platform/network/soup/ResourceErrorSoup.cpp:
118137        (WebCore::ResourceError::transportError):
118138        (WebCore):
118139        (WebCore::ResourceError::httpError):
118140        * platform/network/soup/ResourceHandleSoup.cpp:
118141        (WebCore):
118142        (WebCore::gotHeadersCallback):
118143        (WebCore::restartedCallback):
118144        (WebCore::shouldRedirect):
118145        (WebCore::doRedirect):
118146        (WebCore::redirectCloseCallback):
118147        (WebCore::redirectSkipCallback):
118148        (WebCore::cleanupSoupRequestOperation):
118149        (WebCore::sendRequestCallback):
118150        (WebCore::createSoupMessageForHandleAndRequest):
118151        (WebCore::createSoupRequestAndMessageForHandle):
118152        (WebCore::ResourceHandle::start):
118153
1181542013-01-09  Florin Malita  <fmalita@chromium.org>
118155
118156        [Skia] Implement GraphicsContext::addRoundedRectClip() using SkCanvas::clipRRect()
118157        https://bugs.webkit.org/show_bug.cgi?id=106461
118158
118159        Reviewed by Stephen White.
118160
118161        This patch adds a Skia-specific version of GraphicsContext::addRoundedRectClip() to take
118162        advantage of the SkCanvas::clipRRect() primitive.
118163
118164        As a minor cleanup, the anonymous namespace in GraphicsContextSkia.cpp is extended to cover
118165        all the local helper functions.
118166
118167        No new tests: coverage provided by existing tests.
118168
118169        * platform/graphics/GraphicsContext.cpp:
118170        (WebCore):
118171        * platform/graphics/skia/GraphicsContextSkia.cpp:
118172        (WebCore::GraphicsContext::addRoundedRectClip):
118173        (WebCore):
118174        (WebCore::GraphicsContext::fillRoundedRect):
118175        * platform/graphics/skia/PlatformContextSkia.h:
118176        (WebCore::PlatformContextSkia::clipRRect):
118177        (WebCore):
118178
1181792013-01-09  Andreas Kling  <akling@apple.com>
118180
118181        SVG-as-image: Throw out cached bitmap renderings after they sit unused for some time.
118182        <http://webkit.org/b/106484>
118183        <rdar://problem/12983216>
118184
118185        Reviewed by Antti Koivisto.
118186
118187        Add a one-shot timer to SVGImageCache to self-clear the bitmap cache 30 seconds after last access.
118188        This prevents us from keeping huge ImageBuffers around in memory for the lifetime of the elements
118189        referencing that particular SVG file. (The ownership model is actually a bit more complicated
118190        but that's irrelevant to this issue.)
118191
118192        10234kB progression on Membuster3.
118193
118194        * svg/graphics/SVGImageCache.cpp:
118195        (WebCore::SVGImageCache::SVGImageCache):
118196        (WebCore::SVGImageCache::~SVGImageCache):
118197        (WebCore::SVGImageCache::clearBitmapCache):
118198        (WebCore::SVGImageCache::cacheClearTimerFired):
118199        (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
118200        * svg/graphics/SVGImageCache.h:
118201        (SVGImageCache):
118202
1182032013-01-09  Alexey Proskuryakov  <ap@apple.com>
118204
118205        Assertion failure in SubresourceLoader::didFail when reloading
118206        https://bugs.webkit.org/show_bug.cgi?id=101416
118207
118208        Reviewed by Nate Chapin.
118209
118210        Test: http/tests/cache/network-error-during-revalidation.html
118211
118212        * loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFail): Handle revalidation.
118213
1182142013-01-09  Alexandru Chiculita  <achicu@adobe.com>
118215
118216        Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
118217        https://bugs.webkit.org/show_bug.cgi?id=106419
118218
118219        Reviewed by Simon Fraser.
118220
118221        No new tests added, just un-skipped 3 existing tests.
118222
118223        RenderLayerCompositor::updateCompositingLayers is being called with a pending layout, so computing the
118224        layers at that point would be useless & error-prone as they will be using incorrect layout values. If a layout is pending it means that 
118225        RenderLayerCompositor::updateCompositingLayers would get called again after the pending layout ends, so any values calculated at that point would be
118226        overwritten immediately. This patch removes the old ASSERT and makes it a return instead.
118227
118228        * rendering/RenderLayerCompositor.cpp:
118229        (WebCore::RenderLayerCompositor::updateCompositingLayers):
118230
1182312013-01-09  Robert Hogan  <robert@webkit.org>
118232
118233        REGRESSION(r111439): Focus ring is rendered incorrectly in fast/inline/continuation-outlines-with-layers.html
118234        https://bugs.webkit.org/show_bug.cgi?id=106064
118235
118236        Reviewed by David Hyatt.
118237
118238        * rendering/RenderBlock.cpp:
118239        (WebCore::RenderBlock::paintObject): 
118240
1182412013-01-09  Gregg Tavares  <gman@google.com>
118242
118243        Add stub for CanvasProxy
118244        https://bugs.webkit.org/show_bug.cgi?id=106275
118245
118246        Reviewed by Dean Jackson.
118247
118248        No new tests as no new fuctionality exposed.
118249
118250        * CMakeLists.txt:
118251        * DerivedSources.make:
118252        * DerivedSources.pri:
118253        * GNUmakefile.list.am:
118254        * Target.pri:
118255        * WebCore.gypi:
118256        * WebCore.xcodeproj/project.pbxproj:
118257        * html/canvas/CanvasProxy.cpp: Added.
118258        * html/canvas/CanvasProxy.h: Added.
118259        * html/canvas/CanvasProxy.idl: Added.
118260
1182612013-01-09  Antti Koivisto  <antti@apple.com>
118262
118263        Release FastMalloc thread caches on memory warning
118264        https://bugs.webkit.org/show_bug.cgi?id=106471
118265
118266        Reviewed by Geoff Garen.
118267        
118268        FastMalloc keeps some memory in per-thread caches (currently 2MB each). We currently flush these caches on memory warning 
118269        for the main thread only. We should do it for other WebKit threads that use FastMalloc too.
118270
118271        Call WTF::releaseFastMallocFreeMemory in a bunch of WebCore support threads on memory warning. Unfortunately we don't have 
118272        an uniform way of doing threads so this requires bunch of thread type specific code.
118273        
118274        Looks to be ~1% progression in membuster3 final and maximum numbers.
118275
118276        * platform/mac/MemoryPressureHandlerMac.mm:
118277        (WebCore::MemoryPressureHandler::releaseMemory):
118278        * storage/StorageTask.cpp:
118279        (WebCore::StorageTask::performTask):
118280        * storage/StorageTask.h:
118281        (WebCore::StorageTask::createReleaseFastMallocFreeMemory):
118282        * storage/StorageThread.cpp:
118283        (WebCore::storageThreads):
118284        (WebCore):
118285        (WebCore::StorageThread::StorageThread):
118286        (WebCore::StorageThread::~StorageThread):
118287        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThread):
118288        * storage/StorageThread.h:
118289        (StorageThread):
118290        * workers/WorkerThread.cpp:
118291        (WebCore::threadSetMutex):
118292        (WebCore::workerThreads):
118293        (WebCore::WorkerThread::workerThreadCount):
118294        (WebCore::WorkerThread::WorkerThread):
118295        (WebCore::WorkerThread::~WorkerThread):
118296        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThread):
118297        (WebCore):
118298        * workers/WorkerThread.h:
118299        (WorkerThread):
118300
1183012013-01-09  Tony Gentilcore  <tonyg@chromium.org>
118302
118303        REGRESSION(r139141): Assertion failure in WebCore::HTMLConstructionSite::HTMLConstructionSite
118304        https://bugs.webkit.org/show_bug.cgi?id=106412
118305
118306        Reviewed by Darin Adler.
118307
118308        This corrects the assertion added in r139141. The assertion was designed to make sure that we are using the
118309        HTMLDocument class. XHTML documents also use HTMLDocument.
118310
118311        No new tests because no new functionality.
118312
118313        * html/parser/HTMLConstructionSite.cpp:
118314        (WebCore::HTMLConstructionSite::HTMLConstructionSite):
118315
1183162013-01-08  Ojan Vafai  <ojan@chromium.org>
118317
118318        min-content gets the wrong value if min-width is set on some form controls
118319        https://bugs.webkit.org/show_bug.cgi?id=106389
118320
118321        Reviewed by Tony Chang.
118322
118323        Simplify the logic. The only exposed change in behavior is that
118324        m_minPreferredLogicalWidth gets set to m_maxPreferredLogicalWidth
118325        instead of 0 when min-width is set.
118326
118327        Test: fast/forms/min-content-form-controls.html
118328
118329        * rendering/RenderFileUploadControl.cpp:
118330        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
118331        * rendering/RenderListBox.cpp:
118332        (WebCore::RenderListBox::computePreferredLogicalWidths):
118333        * rendering/RenderMenuList.cpp:
118334        (WebCore::RenderMenuList::computePreferredLogicalWidths):
118335        * rendering/RenderSlider.cpp:
118336        (WebCore::RenderSlider::computePreferredLogicalWidths):
118337        * rendering/RenderTextControl.cpp:
118338        (WebCore::RenderTextControl::computePreferredLogicalWidths):
118339
1183402013-01-09  Abhishek Arya  <inferno@chromium.org>
118341
118342        Mitigate out-of-bounds access in InlineIterator
118343        https://bugs.webkit.org/show_bug.cgi?id=104812
118344
118345        Reviewed by Levi Weintraub.
118346
118347        Share code between InlineIterator::current and InlineIterator::previousInSameNode,
118348        thereby checking for access outside text renderer's length.
118349
118350        * rendering/InlineIterator.h:
118351        (InlineIterator):
118352        (WebCore::InlineIterator::characterAt):
118353        (WebCore):
118354        (WebCore::InlineIterator::current):
118355        (WebCore::InlineIterator::previousInSameNode):
118356
1183572013-01-09  Yongjun Zhang  <yongjun_zhang@apple.com>
118358
118359        If ImageLoader's loadEventSender or errorEventSender fires after document is detached, the document will be leaked.
118360
118361        https://bugs.webkit.org/show_bug.cgi?id=106394
118362
118363        Reviewed by Alexey Proskuryakov.
118364
118365        ImageLoader's loadEventSender and errorEventSender schedule event dispatching in separate timers and refs
118366        the Element in updatedHasPendingEvent.  If the Document is detached before either eventSender dispatches,
118367        we would leak the Document since we bail out early in dispatchPendingLoadEvent or dispatchPendingErrorEvent,
118368        without deref-ing the Element itself.
118369
118370        No new tests.  Verified manually by using heap tool to count the living HTMLDocuments.
118371
118372        * loader/ImageLoader.cpp:
118373        (WebCore::ImageLoader::dispatchPendingLoadEvent): also call updatedHasPendingEvent to deref the Element if
118374                    the document is detached.
118375        (WebCore::ImageLoader::dispatchPendingErrorEvent): ditto.
118376
1183772013-01-09  Dimitri Glazkov  <dglazkov@chromium.org>
118378
118379        Unreviewed, rolling out r139143.
118380        http://trac.webkit.org/changeset/139143
118381        https://bugs.webkit.org/show_bug.cgi?id=106135
118382
118383        Broke Chromium content_browsertests.
118384
118385        * platform/leveldb/LevelDBDatabase.cpp:
118386        (WebCore::LevelDBDatabase::open):
118387        (WebCore::LevelDBDatabase::openInMemory):
118388
1183892013-01-09  Sam Weinig  <sam@webkit.org>
118390
118391        Add Settings.in and make_settings.pl to the project.
118392
118393        Reviewed by Anders Carlsson.
118394
118395        * WebCore.xcodeproj/project.pbxproj:
118396
1183972013-01-09  Ojan Vafai  <ojan@chromium.org>
118398
118399        marquee special-case in RenderBlock is not needed
118400        https://bugs.webkit.org/show_bug.cgi?id=106396
118401
118402        Reviewed by Simon Fraser.
118403
118404        This was added in http://trac.webkit.org/changeset/105772. The layout test
118405        in that patch (which is disabled) works and the original site that was broken
118406        also still works.
118407
118408        * rendering/RenderBlock.cpp:
118409        (WebCore::RenderBlock::computePreferredLogicalWidths):
118410
1184112013-01-09  Tony Chang  <tony@chromium.org>
118412
118413        Automatically generate Settings::unifiedTextCheckerEnabled
118414        https://bugs.webkit.org/show_bug.cgi?id=106382
118415
118416        Reviewed by Adam Barth.
118417
118418        No new tests, no change in behavior. This is covered by existing editing/spelling tests.
118419
118420        * page/Settings.cpp:
118421        (WebCore): Move default value into a global so we can generate the initializer.
118422        (WebCore::Settings::Settings): Remove initializer code that is now generated.
118423        * page/Settings.h:
118424        (Settings): Remove getters and setters.
118425        * page/Settings.in: Add entry to be generated.
118426        * testing/InternalSettings.cpp:
118427        (WebCore::InternalSettings::Backup::Backup): Remove backup since the generated code does this.
118428        (WebCore::InternalSettings::Backup::restoreTo): Remove restore code since the generated code does this.
118429        * testing/InternalSettings.h:
118430        (InternalSettings): Remove member variable.
118431        * testing/InternalSettings.idl: The getter was unused so it's being removed. The setter is now generated.
118432
1184332013-01-09  Alexis Menard  <alexis@webkit.org>
118434
118435        Implement CSS computed style value for transition shorthand
118436        https://bugs.webkit.org/show_bug.cgi?id=105035
118437
118438        Reviewed by Dean Jackson.
118439
118440        Implement support for query the transition and webkit-transition
118441        shorthand from the computed style.
118442
118443        Test: transitions/transitions-parsing.html
118444
118445        * css/CSSComputedStyleDeclaration.cpp:
118446        (WebCore::createTransitionPropertyValue): Factor the code to create the
118447        correct value into a function to reuse it for the shorthand.
118448        (WebCore::getTransitionPropertyValue):
118449        (WebCore::createTimingFunctionValue): Little refactor, the intermediate
118450        local variables are not needed.
118451        (WebCore::getTimingFunctionValue):
118452        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
118453
1184542013-01-09  Hajime Morrita  <morrita@google.com>
118455
118456        Document::setActiveNode() should be Document::setActiveElement()
118457        https://bugs.webkit.org/show_bug.cgi?id=106437
118458
118459        Reviewed by Ojan Vafai.
118460
118461        No new tests. No functoinal change.
118462
118463        * dom/Document.cpp:
118464        (WebCore::Document::setActiveElement):
118465        (WebCore::Document::updateHoverActiveState):
118466        * dom/Document.h:
118467        (Document):
118468        * rendering/HitTestResult.cpp:
118469        (WebCore::HitTestResult::innerElement):
118470        (WebCore):
118471        * rendering/HitTestResult.h:
118472        (HitTestResult):
118473
1184742013-01-09  Shinya Kawanaka  <shinyak@chromium.org>
118475
118476        [Shadow DOM]: ShadowRoot has wrong nodeName attribute
118477        https://bugs.webkit.org/show_bug.cgi?id=104995
118478
118479        Reviewed by Dimitri Glazkov.
118480
118481        According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
118482        We remove ShadowRoot::nodeName.
118483
118484        No new tests, covered by existing tests.
118485
118486        * dom/ShadowRoot.cpp:
118487        * dom/ShadowRoot.h:
118488        (ShadowRoot):
118489
1184902013-01-09  Zoltan Horvath  <zoltan@webkit.org>
118491
118492        [CSS Regions] Selecting text through nested regions causes weird and unclearable selection  
118493        https://bugs.webkit.org/show_bug.cgi?id=105641
118494
118495        Reviewed by David Hyatt.
118496
118497        If you have a region with a nested region inside what is rendered below the base region and you are trying select text
118498        starting from the base region and ending it in the nested region, firstly you got a weird selection, secondly you can't
118499        clear the selection. We could prevent this strange behavior by preventing the selection through different region flows.
118500
118501        Test: fast/regions/selecting-text-through-different-region-flows.html
118502
118503        * rendering/RenderView.cpp:
118504        (WebCore::RenderView::setSelection): Don't allow selection when trying to select different region flows.
118505
1185062013-01-09  Hugo Parente Lima  <hugo.lima@openbossa.org>
118507
118508        Regression(r138681) : Add HAVE(ACCESSIBILITY) guard to atk files, fix for a fix.
118509        https://bugs.webkit.org/show_bug.cgi?id=106448
118510
118511        Reviewed by Gyuyoung Kim.
118512
118513        Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
118514        the macro isn't enabled.
118515
118516        * accessibility/atk/WebKitAccessibleHyperlink.h:
118517        * accessibility/atk/WebKitAccessibleInterfaceAction.h:
118518        * accessibility/atk/WebKitAccessibleInterfaceComponent.h:
118519        * accessibility/atk/WebKitAccessibleInterfaceHypertext.h:
118520
1185212013-01-09  Chris Fleizach  <cfleizach@apple.com>
118522
118523        AX: native popup buttons should not use textUnderElement for their title
118524        https://bugs.webkit.org/show_bug.cgi?id=106349
118525
118526        Reviewed by Ryosuke Niwa.
118527
118528        Chromium relies on the older title() method to return its title. As a result, we also
118529        need to handle the case of <select> element pop up buttons returning the textUnderElement().
118530
118531        No new tests. Fix existing break.
118532
118533        * accessibility/AccessibilityNodeObject.cpp:
118534        (WebCore::AccessibilityNodeObject::title):
118535
1185362013-01-09  Jussi Kukkonen  <jussi.kukkonen@intel.com>
118537
118538        IndexedDB: Remove ASSERTs that can't assert but result in compiler warnings
118539        https://bugs.webkit.org/show_bug.cgi?id=106442
118540
118541        Reviewed by Kentaro Hara.
118542
118543        IDBLevelDBCoding::m_metaDataType has been changed to unsigned
118544        so ASSERT(m_metaDataType >= 0) is no longer useful: the compiler
118545        warnings however create build difficulties at least with EFL.
118546
118547        * Modules/indexeddb/IDBLevelDBCoding.cpp:
118548        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
118549        (WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
118550
1185512012-12-29  Ilya Tikhonovsky  <loislo@chromium.org>
118552
118553        Web Inspector: Native Memory Instrumentation: fix instrumentation for already instrumented classes 1/N
118554        https://bugs.webkit.org/show_bug.cgi?id=106445
118555
118556        Reviewed by Vsevolod Vlasov.
118557
118558        The patch has almost mechanical changes.
118559
118560        * bindings/v8/V8Binding.cpp:
118561        * bindings/v8/V8ValueCache.cpp:
118562        (WTF):
118563        (WebCore::StringCache::reportMemoryUsage):
118564        (WebCore):
118565        * dom/Document.cpp:
118566        (WebCore::Document::reportMemoryUsage):
118567        * dom/DocumentStyleSheetCollection.cpp:
118568        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
118569        * dom/ElementRareData.cpp:
118570        (WebCore::ElementRareData::reportMemoryUsage):
118571        * loader/cache/CachedResource.cpp:
118572        (WebCore::CachedResource::reportMemoryUsage):
118573        * page/Frame.cpp:
118574        (WebCore::Frame::reportMemoryUsage):
118575        * page/Page.cpp:
118576        (WebCore::Page::reportMemoryUsage):
118577        * platform/graphics/skia/NativeImageSkia.cpp:
118578        (WebCore::NativeImageSkia::reportMemoryUsage):
118579        * platform/network/FormData.cpp:
118580        (WebCore::FormData::reportMemoryUsage):
118581        (WebCore):
118582        (WebCore::FormDataElement::reportMemoryUsage):
118583        * platform/network/FormData.h:
118584        (FormDataElement):
118585        * rendering/RenderView.cpp:
118586        (WebCore::RenderView::reportMemoryUsage):
118587        * rendering/style/StyleRareNonInheritedData.cpp:
118588        (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
118589
1185902013-01-09  Florin Malita  <fmalita@chromium.org>
118591
118592        [Skia] Implement GraphicsContext::fillRoundedRect() using SkCanvas::drawRRect()
118593        https://bugs.webkit.org/show_bug.cgi?id=106366
118594
118595        Reviewed by Stephen White.
118596
118597        Skia provides rounded-rect primitives, so we can avoid degrading fillRoundedRect() to
118598        drawPath().
118599
118600        Due to subtle pixel differences (not visually noticeable), switching from drawPath() to
118601        drawRRect() requires rebaselining some of the existing results.
118602
118603        No new tests: coverage provided by existing tests.
118604
118605        * platform/graphics/skia/GraphicsContextSkia.cpp:
118606        (WebCore::GraphicsContext::fillRoundedRect):
118607        * platform/graphics/skia/PlatformContextSkia.h:
118608        (WebCore::PlatformContextSkia::drawRRect):
118609        (WebCore):
118610
1186112013-01-09  Arnaud Renevier  <a.renevier@sisa.samsung.com>
118612
118613        Web Inspector: cannot undock inspector when window size is too small
118614        https://bugs.webkit.org/show_bug.cgi?id=106054
118615
118616        Reviewed by Pavel Feldman.
118617
118618        Consider dockingUnavailable flag only when dockSide is in undocked
118619        state.
118620
118621        * inspector/front-end/DockController.js:
118622        (WebInspector.DockController.prototype._updateUI.get document):
118623
1186242013-01-09  Zeno Albisser  <zeno@webkit.org>
118625
118626        [Qt] WebGL content is incomplete when using multiple canvas
118627        https://bugs.webkit.org/show_bug.cgi?id=106313
118628
118629        While we are using double buffering for WebGL,
118630        we do not use a drawable that implements a mechanism
118631        for swapping buffers.
118632        Therefore we have to make sure that all GL commands
118633        have been executed properly before copying the texture
118634        onto the GraphicsSurface.
118635
118636        Reviewed by Simon Hausmann.
118637
118638        * platform/graphics/qt/GraphicsContext3DQt.cpp:
118639        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
118640
1186412013-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
118642
118643        Unreviewed. Fix make distcheck.
118644
118645        * GNUmakefile.list.am: Add missing headers.
118646
1186472013-01-09  Zeno Albisser  <zeno@webkit.org>
118648
118649        [Qt][Mac] GraphicsSurface does not need glEnable/glDisable for texture targets.
118650        https://bugs.webkit.org/show_bug.cgi?id=106310
118651
118652        glEnable/glDisable for texture targets is only necessary
118653        when using the fixed function pipeline.
118654        Enabling or disabling the target might cause unexpected
118655        behavior to texture bindings and is therefore considered harmful.
118656
118657        Reviewed by Noam Rosenthal.
118658
118659        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
118660        (WebCore::createTexture):
118661        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
118662        (WebCore::GraphicsSurface::platformCopyToGLTexture):
118663
1186642013-01-09  Kunihiko Sakamoto  <ksakamoto@chromium.org>
118665
118666        INPUT_MULTIPLE_FIELDS_UI: min/max attributes should not make all fields read-only
118667        https://bugs.webkit.org/show_bug.cgi?id=106422
118668
118669        Reviewed by Kent Tamura.
118670
118671        Do not make day-field of date input and month-field of month input readonly
118672        even if min and max are the same.
118673
118674        Tests: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
118675               fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html
118676
118677        * html/shadow/DateTimeEditElement.cpp:
118678        (WebCore::DateTimeEditBuilder::visitField): Added check for date type.
118679
1186802013-01-09  Kunihiko Sakamoto  <ksakamoto@chromium.org>
118681
118682        INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of week field should respect min/max attributes
118683        https://bugs.webkit.org/show_bug.cgi?id=106416
118684
118685        Reviewed by Kent Tamura.
118686
118687        Make step-up/-down of the week field respect the min/max attributes of the element.
118688        Note that it still accepts any keyboard inputs (the element
118689        becomes 'invalid' state when out-of-range values entered).
118690
118691        Tests: fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html
118692               fast/forms/week-multiple-fields/week-multiple-fields-stepup-stepdown-from-renderer.html
118693
118694        * css/html.css: Add a CSS rule for week field.
118695        * html/shadow/DateTimeEditElement.cpp:
118696        (WebCore::DateTimeEditBuilder::visitField):
118697        Compute minimum/maximum values of week field from the min/max parameters of the element.
118698        * html/shadow/DateTimeFieldElements.cpp:
118699        (WebCore::DateTimeWeekFieldElement::DateTimeWeekFieldElement): Add mininum/maximum arguments.
118700        (WebCore::DateTimeWeekFieldElement::create): Ditto.
118701        (WebCore::DateTimeWeekFieldElement::clampValueForHardLimits): Added.
118702        * html/shadow/DateTimeFieldElements.h:
118703        (DateTimeWeekFieldElement): Add mininum/maximum arguments and declare clampValueForHardLimits.
118704
1187052013-01-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
118706
118707        Caret is incorrectly painted for a contenteditable <div> containing a <br> in vertical writing mode
118708        https://bugs.webkit.org/show_bug.cgi?id=103621
118709
118710        Reviewed by Ryosuke Niwa.
118711
118712        While computing the caret rect for the given specific scenario, we
118713        canonicalize our position. For the upstream (or downstream) block flow
118714        candidates a check to ignore the nodes having renderers with zero height
118715        is carried out. This is where we fail our check in the vertical writing mode.
118716
118717        In the vertical writing mode, instead of verifying the height of the descendants
118718        of the candidate nodes, a check for their width should be carried out.
118719
118720        For our case, i.e. the <br> element contained inside the div, the bounding box
118721        in the vertical writing mode would have a width greater than zero and height
118722        equal to zero (as is to be expected in the vertical mode).
118723
118724        Thus, we need to make a check against the logical height. For the vertical
118725        writing mode, the logical height should return the width of the computed
118726        bounding box.
118727
118728        Test: editing/selection/caret-in-div-containing-br-in-vertical-mode.html
118729
118730        * dom/Position.cpp:
118731        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
118732        Have modified the code to verify against the logical height, instead
118733        of simply the height, both in case of RenderText and RenderBox.
118734        The logical height of the computed rects returns a value according
118735        to the writing mode.
118736
118737        For the RenderText a new function, linesLogicalBoundingBox() is called
118738        which returns the values depending on the writing mode.
118739        Similarly, on the RenderBox, pixelSnappedLogicalHeight() is called which
118740        too takes care of the writing mode internally. (borderBoundingBox()
118741        internally calls on the pixelSnappedRect).
118742
118743        * rendering/RenderText.cpp:
118744        (WebCore::RenderText::linesLogicalBoundingBox):
118745        (WebCore):
118746        * rendering/RenderText.h:
118747        (RenderText):
118748        New function is added to return the logical linesBoundingBox, i.e.,
118749        the width and height of the linesBoundingBox are set according to
118750        the writing mode.
118751
1187522013-01-08  Tony Gentilcore  <tonyg@chromium.org>
118753
118754        Remove a few unused includes from HTMLTreeBuilder
118755        https://bugs.webkit.org/show_bug.cgi?id=106401
118756
118757        Reviewed by Adam Barth.
118758
118759        I happened to notice these while attempting to remove non-thread friendly deps from HTMLTreeBuilder.
118760
118761        No new tests because no new functionality.
118762
118763        * html/parser/HTMLTreeBuilder.cpp:
118764
1187652013-01-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
118766
118767        Regression(r138681): Add HAVE(ACCESSIBILITY) guard to atk files
118768        https://bugs.webkit.org/show_bug.cgi?id=106290
118769
118770        Reviewed by Martin Robinson.
118771
118772        Some atk files don't use HAVE(ACCESSIBILITY). It might make build errors when
118773        the macro isn't enabled.
118774
118775        * accessibility/atk/AXObjectCacheAtk.cpp:
118776        * accessibility/atk/WebKitAccessibleHyperlink.h:
118777        * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
118778        * accessibility/atk/WebKitAccessibleInterfaceAction.h:
118779        * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
118780        * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
118781        * accessibility/atk/WebKitAccessibleInterfaceDocument.h:
118782        * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
118783        * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
118784        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
118785        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
118786        * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
118787        * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
118788        * accessibility/atk/WebKitAccessibleInterfaceImage.h:
118789        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
118790        * accessibility/atk/WebKitAccessibleInterfaceSelection.h:
118791        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
118792        * accessibility/atk/WebKitAccessibleInterfaceTable.h:
118793        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
118794        * accessibility/atk/WebKitAccessibleInterfaceText.h:
118795        * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
118796        * accessibility/atk/WebKitAccessibleInterfaceValue.h:
118797        * accessibility/atk/WebKitAccessibleUtil.cpp:
118798        * accessibility/atk/WebKitAccessibleUtil.h:
118799        * accessibility/atk/WebKitAccessibleWrapperAtk.h:
118800
1188012013-01-08  Matt Falkenhagen  <falken@chromium.org>
118802
118803        Make NodeRenderingContext::parentRenderer and nextRenderer top layer aware
118804        https://bugs.webkit.org/show_bug.cgi?id=103477
118805
118806        Reviewed by Hajime Morita.
118807
118808        Original patch by Elliott Sprehn (minor code and layout tests added).
118809
118810        Instead of using adjustInsertionPointForTopLayerElement and reassigning
118811        pointers passed by reference we should just make nextRenderer and parentRenderer
118812        handle the top layer properly. Right now they would return the wrong values
118813        since we only correctly handle the top layer during renderer creation.
118814
118815        This makes handling of top layer elements consistent with handling of
118816        other special renderering systems like flow threads.
118817
118818        Tests: fast/dom/HTMLDialogElement/modal-dialog-in-replaced-renderer.html
118819               fast/dom/HTMLDialogElement/modal-dialog-in-table-column.html
118820               fast/dom/HTMLDialogElement/modal-dialog-sibling.html
118821
118822        * dom/NodeRenderingContext.cpp:
118823        (WebCore::isRendererReparented): Added this helper function. We must skip
118824        renderers that are reparented in nextRenderer and previousRenderer.
118825        (WebCore):
118826        (WebCore::adjustInsertionPointForTopLayerElement): Removed this method.
118827        (WebCore::NodeRenderingContext::nextRenderer):
118828        (WebCore::NodeRenderingContext::previousRenderer):
118829        (WebCore::NodeRenderingContext::parentRenderer):
118830        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
118831
1188322013-01-08  Kent Tamura  <tkent@chromium.org>
118833
118834        REGRESSION(r135836): Invalid user input for input[type=number] should be cleared by input.value=""
118835        https://bugs.webkit.org/show_bug.cgi?id=106284
118836
118837        Reviewed by Hajime Morita.
118838
118839        No new tests. Updates fast/forms/number/number/validity-badinput.html.
118840
118841        * html/NumberInputType.cpp:
118842        (WebCore::NumberInputType::setValue):
118843        If the new sanitized value is empty and innerTextValue is a bad input
118844        (it means !valueChanged && !innerTextValue().isEmpty() because the new
118845        sanitized value is empty), we need to update innerTextValue with the
118846        empty string.
118847        * html/NumberInputType.h:
118848        (NumberInputType): Declare setValue.
118849
1188502013-01-08  Nate Chapin  <japhet@chromium.org>
118851
118852        REGRESSION(r138222?): [Mac WK1] http/tests/appcache/main-resource-redirect.html asserts in WebFrameLoaderClient::dispatchDidFinishLoading
118853        https://bugs.webkit.org/show_bug.cgi?id=106123
118854
118855        Reviewed by Alexey Proskuryakov.
118856
118857        No new tests, fixing an existing test.
118858
118859        * loader/MainResourceLoader.cpp:
118860        (WebCore::MainResourceLoader::continueAfterNavigationPolicy): Before calling m_resource->removeClient(this)
118861            and potentially canceling the ResourceLoader, ensure it won't send resource load callbacks.
118862        * loader/ResourceLoader.h:
118863        (WebCore::ResourceLoader::setSendCallbackPolicy):
118864
1188652013-01-08  Alexandru Chiculita  <achicu@adobe.com>
118866
118867        Assert in RenderGeometryMap::mapToContainer
118868        https://bugs.webkit.org/show_bug.cgi?id=106068
118869
118870        Reviewed by Simon Fraser.
118871
118872        The assert was due to a pending layout, so the values used to compute the layer bounding boxes were incorrect.
118873        That was because of the Document::setVisualUpdatesAllowed mechanism, which triggers a compositor update
118874        and a repaint, but before this patch didn't check whether a layout was pending or not.
118875
118876        Added a check in Document::setVisualUpdatesAllowed for pending layouts and bailed when such case happened.
118877        A layout will come anyway and trigger the correct updates. Couldn't not force an inline layout at that time
118878        as this function is sometimes called really soon, when the WebKit parts are not fully created yet and updates were
118879        calling back into some client callbacks that were not ready.
118880
118881        Also added an assert in RenderLayerCompositor::updateCompositingLayers to check for other cases that might
118882        try to update the layers with a layout pending. That one led to finding an issue in the RenderMarquee, which
118883        was updating on a timer callback. It might happen that a layout is pending while this timer fires and it 
118884        tries to update the scroll position of the layers while a layout is still due.
118885
118886        There was already a protection to bail if a layout is pending in RenderMarquee::timerFired, so I've just broadened the scope
118887        to the whole RenderView to catch all the layout requests.
118888
118889        Tests: compositing/geometry/assert-layout-not-done.html
118890               compositing/geometry/assert-marquee-timer.html
118891
118892        * dom/Document.cpp:
118893        (WebCore::Document::setVisualUpdatesAllowed):
118894        * rendering/RenderLayerCompositor.cpp:
118895        (WebCore::RenderLayerCompositor::updateCompositingLayers):
118896        * rendering/RenderMarquee.cpp:
118897        (WebCore::RenderMarquee::timerFired):
118898
1188992013-01-08  Justin Novosad  <junov@google.com>
118900
118901        CanvasRenderingContext2D::setFont argument may reference destroyed object
118902        https://bugs.webkit.org/show_bug.cgi?id=106385
118903
118904        Reviewed by Abhishek Arya.
118905
118906        No new tests: covered by fast/canvas/canvas-measureText.html
118907
118908        This is a re-write of r138994.  Fixing bug in setFont instead of
118909        workaround at call site. 
118910
118911        * html/canvas/CanvasRenderingContext2D.cpp:
118912        (WebCore::CanvasRenderingContext2D::setFont):
118913        (WebCore::CanvasRenderingContext2D::accessFont):
118914
1189152013-01-08  David Grogan  <dgrogan@chromium.org>
118916
118917        IndexedDB: Provide LevelDB with IDBEnv instead of Env::Default
118918        https://bugs.webkit.org/show_bug.cgi?id=106135
118919
118920        Reviewed by Tony Chang.
118921
118922        IDBEnv only changes the name of the histogram where errors are logged.
118923
118924        * platform/leveldb/LevelDBDatabase.cpp:
118925        (WebCore::LevelDBDatabase::open):
118926        (WebCore::LevelDBDatabase::openInMemory):
118927
1189282013-01-08  Brandon Jones  <bajones@chromium.org>
118929
118930        Make WebGLRenderingContext inherit from ActiveDOMObject
118931        https://bugs.webkit.org/show_bug.cgi?id=104733
118932
118933        Reviewed by Adam Barth.
118934
118935        When ActiveDOMObject::stop is called on the WebGLRenderingContext the
118936        DrawingBuffer and GraphicsContext3D instances are forcibly released in
118937        order to keep GPU memory utilization to a minimum.
118938
118939        Incorporated new layout test based on one just added to the WebGL
118940        conformance suite. Also tested manually by reloading and
118941        navigating between many WebGL apps.
118942
118943        Test: fast/canvas/webgl/context-release-upon-reload.html
118944
118945        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
118946        (WebCore::V8HTMLCanvasElement::getContextCallback):
118947            Removed garbage collection hack added in Bug 76255.
118948        * html/canvas/WebGLRenderingContext.cpp:
118949        (WebCore):
118950        (WebCore::WebGLRenderingContext::create):
118951            Call suspendIfNeeded per ActiveDOMObject contract.
118952        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
118953            Call ActiveDOMObject constructor.
118954        (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
118955            Call destroyGraphicsContext3D.
118956        (WebCore::WebGLRenderingContext::destroyGraphicsContext3D):
118957            Drop DrawingBuffer backing store and delete GraphicsContext3D.
118958        (WebCore::WebGLRenderingContext::hasPendingActivity):
118959            Always return false.
118960        (WebCore::WebGLRenderingContext::stop):
118961            Force lost context upon page reload or navigation.
118962        * html/canvas/WebGLRenderingContext.h:
118963        (WebGLRenderingContext):
118964            Inherit from ActiveDOMObject and override notifications.
118965        * platform/graphics/blackberry/DrawingBufferBlackBerry.cpp:
118966        (WebCore):
118967        (WebCore::DrawingBuffer::clearPlatformLayer):
118968            Add currently no-op implementation.
118969        * platform/graphics/cairo/DrawingBufferCairo.cpp:
118970        (WebCore):
118971        (WebCore::DrawingBuffer::clearPlatformLayer):
118972            Add currently no-op implementation.
118973        * platform/graphics/chromium/DrawingBufferChromium.cpp:
118974        (WebCore::DrawingBufferPrivate::clearTextureId):
118975            Clear texture ID from compositor's layer.
118976        (DrawingBufferPrivate):
118977        (WebCore::DrawingBuffer::framebuffer):
118978            Moved around to reduce number of #ifdefs.
118979        (WebCore):
118980        (WebCore::DrawingBuffer::platformLayer):
118981        (WebCore::DrawingBuffer::clearPlatformLayer):
118982            Tell compositor to stop referencing DrawingBuffer's texture.
118983        * platform/graphics/clutter/DrawingBufferClutter.cpp:
118984        (WebCore):
118985        (WebCore::DrawingBuffer::clearPlatformLayer):
118986            Add currently no-op implementation.
118987        * platform/graphics/gpu/DrawingBuffer.cpp:
118988        (WebCore::DrawingBuffer::clear):
118989            Call clearPlatformLayer before deleting OpenGL resources.
118990        * platform/graphics/gpu/DrawingBuffer.h:
118991        (DrawingBuffer):
118992            Add clearPlatformLayer.
118993        * platform/graphics/gpu/mac/DrawingBufferMac.mm:
118994        (WebCore):
118995        (WebCore::DrawingBuffer::clearPlatformLayer):
118996            Add currently no-op implementation.
118997        * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
118998        (WebCore):
118999        (WebCore::DrawingBuffer::clearPlatformLayer):
119000            Add currently no-op implementation.
119001
1190022013-01-08  Tony Gentilcore  <tonyg@chromium.org>
119003
119004        Remove dependency on Document from HTMLConstructionSite::inQuirksMode()
119005        https://bugs.webkit.org/show_bug.cgi?id=106375
119006
119007        Reviewed by Adam Barth.
119008
119009        This is another step towards removing main thread object dependencies
119010        from the parser.
119011
119012        No new tests because no new functionality.
119013
119014        * dom/Document.h:
119015        * html/HTMLDocument.cpp:
119016        * html/HTMLDocument.h:
119017        (HTMLDocument):
119018        * html/parser/HTMLConstructionSite.cpp:
119019        (WebCore::HTMLConstructionSite::HTMLConstructionSite):
119020        (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
119021        (WebCore):
119022        (WebCore::HTMLConstructionSite::setCompatibilityMode):
119023        (WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):
119024        (WebCore::HTMLConstructionSite::insertDoctype):
119025        (WebCore::HTMLConstructionSite::inQuirksMode):
119026        * html/parser/HTMLConstructionSite.h:
119027        (HTMLConstructionSite):
119028
1190292013-01-08  Florin Malita  <fmalita@chromium.org>
119030
119031        Remove unused GraphicsContext::addInnerRoundedRectClip()
119032        https://bugs.webkit.org/show_bug.cgi?id=106376
119033
119034        Reviewed by Andreas Kling.
119035
119036        Since there don't seem to be any users left for it, remove addInnerRoundedRectClip().
119037
119038        No new tests: no functional changes.
119039
119040        * platform/graphics/GraphicsContext.h:
119041        (GraphicsContext):
119042        * platform/graphics/cairo/GraphicsContextCairo.cpp:
119043        * platform/graphics/cg/GraphicsContextCG.cpp:
119044        * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
119045        * platform/graphics/qt/GraphicsContextQt.cpp:
119046        * platform/graphics/skia/GraphicsContextSkia.cpp:
119047        (WebCore):
119048        * platform/graphics/wince/GraphicsContextWinCE.cpp:
119049        * platform/graphics/wx/GraphicsContextWx.cpp:
119050
1190512013-01-08  Justin Novosad  <junov@google.com>
119052
119053        Color bleeding with rounded rectangles on high dpi displays
119054        https://bugs.webkit.org/show_bug.cgi?id=106373
119055
119056        Reviewed by Simon Fraser.
119057
119058        Test: fast/backgrounds/gradient-background-leakage-hidpi.html
119059
119060        Avoid using the BackgroundBleedShrinkBackground draw strategy for
119061        RenderBox when border width is less than two layout units. This
119062        is because rounded rectangles are always snapped to integer layout
119063        coordinates, even with subpixel layout enabled.
119064
119065        * rendering/RenderBox.cpp:
119066        (WebCore::RenderBox::determineBackgroundBleedAvoidance):
119067
1190682013-01-08  Elliott Sprehn  <esprehn@chromium.org>
119069
119070        Merge getLineAtIndex into RenderBlock::lineAtIndex
119071        https://bugs.webkit.org/show_bug.cgi?id=106379
119072
119073        Reviewed by Eric Seidel.
119074
119075        getLineAtIndex can be merged into lineAtIndex, which was it's only caller.
119076
119077        No new tests, just refactoring.
119078
119079        * rendering/RenderBlock.cpp:
119080        (WebCore::RenderBlock::lineAtIndex):
119081        (WebCore::RenderBlock::lineCount):
119082        * rendering/RenderBlock.h:
119083        (RenderBlock):
119084
1190852013-01-08  Rafael Weinstein  <rafaelw@chromium.org>
119086
119087        [HTMLTemplateElement] Allow <template> content to be inspected
119088        https://bugs.webkit.org/show_bug.cgi?id=105839
119089
119090        Reviewed by Pavel Feldman.
119091
119092        In addition to the plumbing which allows template contents to be
119093        displayed within the inspector, this patch adds a manually-managed
119094        weakref from the template document back to its host document (typically
119095        the creator). This is required so that the inspector agent can be found
119096        for template elements.
119097
119098        * dom/Document.cpp:
119099        (WebCore::Document::~Document):
119100        (WebCore::Document::templateDocument):
119101        * dom/Document.h:
119102        (Document):
119103        (WebCore::Document::setTemplateDocumentHost):
119104        (WebCore::Document::templateDocumentHost):
119105        * editing/markup.cpp:
119106        (WebCore::createFragmentForInnerOuterHTML):
119107        * html/HTMLTemplateElement.cpp:
119108        (WebCore::HTMLTemplateElement::content):
119109        * inspector/Inspector.json:
119110        * inspector/InspectorDOMAgent.cpp:
119111        (WebCore::InspectorDOMAgent::buildObjectForNode):
119112        * inspector/InspectorInstrumentation.h:
119113        (WebCore::InspectorInstrumentation::instrumentingAgentsForDocument):
119114        * inspector/front-end/DOMAgent.js:
119115        (WebInspector.DOMNode):
119116        (WebInspector.DOMNode.prototype.hasChildNodes):
119117        (WebInspector.DOMNode.prototype._insertChild):
119118        (WebInspector.DOMNode.prototype._setChildrenPayload):
119119
1191202013-01-08  Hajime Morrita  <morrita@google.com>
119121
119122        [Shadow DOM] Distribution related code on ShadowRoot should be minimized.
119123        https://bugs.webkit.org/show_bug.cgi?id=106282
119124
119125        Reviewed by Dimitri Glazkov.
119126
119127        ShadowRoot had a certain amount of logic which is dedicated for
119128        node distribution computation.  These code is going to be compiled
119129        out (Bug 103339) and better be part of the node distribution
119130        algorithm, which is ScopeContentDistribution class.
119131
119132        This change
119133
119134        - Renames ShadowRootContentDistributionData to
119135          ScopeContentDistribution.  New name is concise and a bit more
119136          meaningful: It owns per TreeScope distribution state.
119137        - Moves distribution related code from ShadowRoot to ScopeContentDistribution
119138
119139        No new tests. Refactoring.
119140
119141        * WebCore.exp.in:
119142        * css/StyleScopeResolver.cpp:
119143        (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
119144        (WebCore::StyleScopeResolver::matchHostRules):
119145        * dom/ComposedShadowTreeWalker.cpp:
119146        (WebCore::nodeCanBeDistributed):
119147        (WebCore::ComposedShadowTreeWalker::traverseBackToYoungerShadowRoot):
119148        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
119149        (WebCore::AncestorChainWalker::parent):
119150        * dom/ElementShadow.cpp:
119151        (WebCore::ElementShadow::collectSelectFeatureSetFrom):
119152        * dom/ShadowRoot.cpp:
119153        (WebCore::ShadowRoot::insertedInto):
119154        (WebCore::ShadowRoot::removedFrom):
119155        (WebCore::ShadowRoot::ensureScopeDistribution):
119156        (WebCore::ShadowRoot::reportMemoryUsage):
119157        * dom/ShadowRoot.h:
119158        (WebCore):
119159        (ShadowRoot):
119160        (WebCore::ShadowRoot::scopeDistribution):
119161        * html/shadow/ContentDistributor.cpp:
119162        (WebCore::ScopeContentDistribution::ScopeContentDistribution):
119163        (WebCore::ScopeContentDistribution::invalidateInsertionPointList):
119164        (WebCore::ScopeContentDistribution::ensureInsertionPointList):
119165        (WebCore::ScopeContentDistribution::registerInsertionPoint):
119166        (WebCore::ScopeContentDistribution::unregisterInsertionPoint):
119167        (WebCore::ScopeContentDistribution::hasShadowElement):
119168        (WebCore):
119169        (WebCore::ScopeContentDistribution::hasContentElement):
119170        (WebCore::ScopeContentDistribution::countElementShadow):
119171        (WebCore::ScopeContentDistribution::hasInsertionPoint):
119172        (WebCore::ScopeContentDistribution::assignedTo):
119173        (WebCore::ContentDistributor::distribute):
119174        (WebCore::ContentDistributor::invalidate):
119175        * html/shadow/ContentDistributor.h:
119176        (ScopeContentDistribution):
119177        (WebCore::ScopeContentDistribution::registerElementShadow):
119178        (WebCore::ScopeContentDistribution::unregisterElementShadow):
119179        (WebCore::ScopeContentDistribution::hasElementShadow):
119180        * html/shadow/HTMLShadowElement.cpp:
119181        (WebCore::HTMLShadowElement::olderShadowRoot):
119182        * html/shadow/InsertionPoint.cpp:
119183        (WebCore::InsertionPoint::insertedInto):
119184        (WebCore::InsertionPoint::removedFrom):
119185        (WebCore::InsertionPoint::contains):
119186        (WebCore):
119187        (WebCore::resolveReprojection):
119188        * html/shadow/InsertionPoint.h:
119189        (InsertionPoint):
119190        (WebCore):
119191        * testing/Internals.cpp:
119192        (WebCore::Internals::hasShadowInsertionPoint):
119193        (WebCore::Internals::hasContentElement):
119194        (WebCore::Internals::countElementShadow):
119195
1191962013-01-08  Tom Sepez  <tsepez@chromium.org>
119197
119198        Copy-paste preserves <embed> tags containing active content.
119199        https://bugs.webkit.org/show_bug.cgi?id=77625
119200
119201        Reviewed by Ryosuke Niwa.
119202
119203        Test: editing/pasteboard/paste-noplugin.html
119204
119205        * dom/FragmentScriptingPermission.h:
119206        (WebCore::scriptingContentIsAllowed):
119207        (WebCore::pluginContentIsAllowed):
119208        Add new permission to restrict plugin pasting.  Add inline functions to check
119209        the implications of each permission rather than having a list of raw comparisions
119210        sprinkled throughout the code. 
119211        
119212        * editing/markup.cpp:
119213        (WebCore::createFragmentFromMarkup):
119214        Revert back to unsafe plugin pasting regardless of caller's intentions when
119215        the settings allow it.
119216
119217        * dom/Element.cpp:
119218        (WebCore::Element::parserSetAttributes):
119219        * html/parser/HTMLConstructionSite.cpp:
119220        (WebCore::HTMLConstructionSite::insertScriptElement):
119221        * xml/parser/XMLDocumentParserLibxml2.cpp:
119222        (WebCore::XMLDocumentParser::endElementNs):
119223        * xml/parser/XMLDocumentParserQt.cpp:
119224        (WebCore::XMLDocumentParser::parseEndElement):
119225        Use new inline functions to check implications of permissions rather than raw
119226        comparisions.
119227        
119228        * html/parser/HTMLTreeBuilder.cpp:
119229        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
119230        (WebCore::HTMLTreeBuilder::processEndTag):
119231        Check if plugin pasting is allowed before inserting applet/embed/oject elements.
119232
119233        * page/Settings.in:
119234        Declaration of new unsafePluginPastingEnabled setting.
119235
119236        * platform/mac/PasteboardMac.mm:
119237        (WebCore::Pasteboard::documentFragment):
119238        * platform/blackberry/PasteboardBlackBerry.cpp:
119239        (WebCore::Pasteboard::documentFragment):
119240        * platform/chromium/DragDataChromium.cpp:
119241        (WebCore::DragData::asFragment):
119242        * platform/chromium/PasteboardChromium.cpp:
119243        (WebCore::Pasteboard::documentFragment):
119244        * platform/gtk/PasteboardGtk.cpp:
119245        (WebCore::Pasteboard::documentFragment):
119246        * platform/qt/DragDataQt.cpp:
119247        (WebCore::DragData::asFragment):
119248        * platform/qt/PasteboardQt.cpp:
119249        (WebCore::Pasteboard::documentFragment):
119250        * platform/win/ClipboardUtilitiesWin.cpp:
119251        (WebCore::fragmentFromCFHTML):
119252        (WebCore::fragmentFromHTML):
119253        * platform/wx/PasteboardWx.cpp:
119254        (WebCore::Pasteboard::documentFragment):
119255        Pass DisallowScriptingAndPluginContent enum value.
119256        
1192572013-01-08  Alexis Menard  <alexis@webkit.org>
119258
119259        WebKit does not reject some cubic-bezier form values for transition-timing-function.
119260        https://bugs.webkit.org/show_bug.cgi?id=106369
119261
119262        Reviewed by Dean Jackson.
119263
119264        http://www.w3.org/TR/css3-transitions/#transition-timing-function-property
119265        describes restricitions on cubic-bezier values where the x values of
119266        the curve should be between [0, 1] and y values can exceed this range.
119267        WebKit was not following the specification by allowing x values
119268        exceeding the range.
119269        The spec also says that we should reject the defintion if the condition
119270        is not respected which is what the new code does.
119271
119272        Test: transitions/transitions-parsing.html
119273
119274        * css/CSSParser.cpp:
119275        (WebCore::CSSParser::parseAnimationTimingFunction):
119276
1192772013-01-08  Andreas Kling  <akling@apple.com>
119278
119279        Heap-use-after-free in bool WebCore::SelectorChecker::checkOneSelector.
119280        <http://webkit.org/b/105834>
119281
119282        Reviewed by Antti Koivisto.
119283
119284        Suppress the DOMSubtreeModified event when synchronizing the "style" attribute and we've
119285        instantiated an Attr node wrapper for the said attribute.
119286
119287        Also added an assertion that Document's StyleResolver isn't cleared during style recalc,
119288        which will help us catch this kind of bug in the future.
119289
119290        Test: fast/dom/mutation-event-listener-with-dirty-inline-style-crash.html
119291
119292        * dom/Document.cpp:
119293        (WebCore::Document::styleResolverThrowawayTimerFired):
119294        * dom/Element.cpp:
119295        (WebCore::Element::setAttributeInternal):
119296
1192972013-01-08  Sheriff Bot  <webkit.review.bot@gmail.com>
119298
119299        Unreviewed, rolling out r139096.
119300        http://trac.webkit.org/changeset/139096
119301        https://bugs.webkit.org/show_bug.cgi?id=106367
119302
119303        not a complete fix (Requested by bweinstein on #webkit).
119304
119305        * html/HTMLPlugInImageElement.cpp:
119306        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
119307
1193082013-01-08  Brian Weinstein  <bweinstein@apple.com>
119309
119310        Plug-ins shouldn’t be added to list to autostart if you start a plugin in private browsing.
119311        https://bugs.webkit.org/show_bug.cgi?id=106348
119312        <rdar://problem/12968442>
119313
119314        Reviewed by Anders Carlsson.
119315
119316        * html/HTMLPlugInImageElement.cpp:
119317        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Don't call addAutoStartOrigin if we are
119318            in private browsing mode.
119319
1193202013-01-08  Chris Fleizach  <cfleizach@apple.com>
119321
119322        AX: native popup buttons should not use textUnderElement for their title
119323        https://bugs.webkit.org/show_bug.cgi?id=106349
119324
119325        Reviewed by Ryosuke Niwa.
119326
119327        Native popup buttons (<select> elements) were calculating its title based on the text
119328        under the element. When Bug 103794 introduced a more complete way of getting render text,
119329        it causes popup buttons to start returning a title.
119330        The fix is that we should not be calculating a title for a native popup button from its children.
119331
119332        Existing tests cover this functionality. This will fix a failing test.
119333
119334        * accessibility/AccessibilityNodeObject.cpp:
119335        (WebCore::AccessibilityNodeObject::visibleText):
119336
1193372013-01-08  Ojan Vafai  <ojan@chromium.org>
119338
119339        text controls are sized too small when a percentage height is set
119340        https://bugs.webkit.org/show_bug.cgi?id=106277
119341
119342        Reviewed by Tony Chang.
119343
119344        This makes our behavior match Firefox 17, IE 9 and Opera 12.
119345        The current logic came from http://trac.webkit.org/changeset/13723,
119346        which itself was copy-pasted from RenderReplaced and no longer has this clause..
119347
119348        Test: fast/forms/percent-height-auto-width-form-controls.html
119349
119350        * rendering/RenderFileUploadControl.cpp:
119351        (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
119352        * rendering/RenderListBox.cpp:
119353        (WebCore::RenderListBox::computePreferredLogicalWidths):
119354        * rendering/RenderMenuList.cpp:
119355        (WebCore::RenderMenuList::computePreferredLogicalWidths):
119356        * rendering/RenderSlider.cpp:
119357        (WebCore::RenderSlider::computePreferredLogicalWidths):
119358        * rendering/RenderTextControl.cpp:
119359        (WebCore::RenderTextControl::computePreferredLogicalWidths):
119360
1193612013-01-08  Peter Beverloo  <peter@chromium.org>
119362
119363        [Chromium] Modify Android's user agent CSS to not set a border-radius on select elements
119364        https://bugs.webkit.org/show_bug.cgi?id=106327
119365
119366        Reviewed by Adam Barth.
119367
119368        Android's user agent CSS overrides the style applied to <select>
119369        elements with a @size or @multiple attribute, and then applies
119370        (among other things) a border-radius of 5 pixels. While select
119371        elements with a larger size or multiple selection should appear
119372        as drop-down boxes for now, setting the border radius causes
119373        Chromium to skip rendering the background and border, making
119374        them hard to read when the page relies on the default styling.
119375
119376        This is covered by existing pixel tests.
119377
119378        * css/themeChromiumAndroid.css:
119379        (select[size][multiple]):
119380
1193812013-01-08  Mike West  <mkwst@chromium.org>
119382
119383        CSP: 'none' should take effect only if no other source expression is present.
119384        https://bugs.webkit.org/show_bug.cgi?id=106314
119385
119386        Reviewed by Adam Barth.
119387
119388        WebKit's handling of 'none' in Content Security Policy source lists
119389        doesn't quite match the spec. Currently, we're treating any source list
119390        that contains 'none' as its first token as an empty list. That is:
119391        "script-src 'none'" is handled in the same way as
119392        "script-src 'none' example.com". Based on a bit of public-webappsec@
119393        discussion[1], the behavior we actually want should treat the first as
119394        an empty list, while treating the second as "script-src example.com". In
119395        other words, 'none' in a source list is a no-op, unless it is the _only_
119396        item in the source list.
119397
119398        This patch adjusts our parsing behavior accordingly, and tweaks the
119399        console log we emit for invalid source expressions to warn specifically
119400        about this case.
119401
119402        [1]: http://lists.w3.org/Archives/Public/public-webappsec/2013Jan/0006.html
119403
119404        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-none.html
119405
119406        * page/ContentSecurityPolicy.cpp:
119407        (WebCore::isSourceListNone):
119408            A new static method that returns true when given a string that
119409            contains only 'none' (potentially surrounded by whitespace), and
119410            false otherwise.
119411        (WebCore):
119412        (WebCore::CSPSourceList::parse):
119413            Move the 'none' check into the initial layer of parsing, which means
119414            that we can drop the 'isFirstSourceInList' check entirely.
119415        (WebCore::CSPSourceList::parseSource):
119416            Since we've already checked for 'none' in ::parse, we can at this
119417            point safely treat any occurance of 'none' in the source list as an
119418            invalid expression.
119419        (WebCore::ContentSecurityPolicy::reportInvalidSourceExpression):
119420            If the invalid expression is 'none', add a clarification to the
119421            console message, noting that 'none' only has effect when it's all
119422            alone.
119423
1194242013-01-08  Alok Priyadarshi  <alokp@chromium.org>
119425
119426        Added OpaqueRegionSkia::currentTrackingOpaqueRect
119427
119428        [chromium] Add OpaqueRegionSkia::currentTrackingOpaqueRect
119429        https://bugs.webkit.org/show_bug.cgi?id=106267
119430
119431        Reviewed by Stephen White.
119432
119433        No new tests needed. No change in functionality.
119434
119435        * platform/graphics/skia/OpaqueRegionSkia.cpp:
119436        (WebCore::OpaqueRegionSkia::applyOpaqueRegionFromLayer):
119437        (WebCore::OpaqueRegionSkia::markRectAsOpaque):
119438        (WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
119439        (WebCore::OpaqueRegionSkia::markAllAsNonOpaque):
119440        (WebCore::OpaqueRegionSkia::currentTrackingOpaqueRect):
119441        (WebCore):
119442        * platform/graphics/skia/OpaqueRegionSkia.h:
119443        (OpaqueRegionSkia):
119444
1194452013-01-08  Zan Dobersek  <zandobersek@gmail.com>
119446
119447        [GTK] Build failures when building with python 3.3
119448        https://bugs.webkit.org/show_bug.cgi?id=106194
119449
119450        Reviewed by Dirk Pranke.
119451
119452        Python 3.3 introduced changes to dictionaries which can result in changed
119453        iteration order. More about these changes:
119454        http://docs.python.org/3.3/whatsnew/3.3.html#pep-412-key-sharing-dictionary
119455        http://www.python.org/dev/peps/pep-0412/#cons
119456
119457        This causes the Source/WebCore/inspector/generate-inspector-protocol-version
119458        script to fail the self-testing when using Python 3.3. These changes work
119459        around this problem by not checking for expected errors in order but rather
119460        for their presence in the error output sequence. The number of actual errors
119461        is also checked to be equal to the number of expected errors.
119462
119463        No new tests - no new functionality.
119464
119465        * inspector/generate-inspector-protocol-version:
119466        (self_test):
119467
1194682013-01-08  Antoine Quint  <graouts@apple.com>
119469
119470        <track> element's mode set to "disabled" after load although it was explicitly set to "hidden"
119471        https://bugs.webkit.org/show_bug.cgi?id=105536
119472
119473        Remove all concept of "showing by default". This means removing the showingByDefault()
119474        and setShowingByDefault() methods on TextTrack. As I was going  through this code,
119475        I also noticed that in HTMLMediaElement::configureTextTrackGroup(), we would set
119476        defaultTrack to textTrack.get() even though defaultTrack was created to be a RefPtr<TextTrack>.
119477
119478        As a result, we can now pass an additional 8 tests from the Opera-submitted test suite:
119479
119480        LayoutTests/media/track/opera/interfaces/TextTrack/addCue.html
119481        LayoutTests/media/track/opera/interfaces/TextTrack/removeCue.html
119482        LayoutTests/media/track/opera/interfaces/TextTrackCue/endTime.html
119483        LayoutTests/media/track/opera/interfaces/TextTrackCue/startTime.html
119484        LayoutTests/media/track/opera/interfaces/TextTrackCue/align.html
119485        LayoutTests/media/track/opera/interfaces/TextTrackCue/id.html
119486        LayoutTests/media/track/opera/interfaces/TextTrackCue/pauseOnExit.html
119487        LayoutTests/media/track/opera/interfaces/TextTrackCue/track.html
119488
119489        Reviewed by Eric Carlson.
119490
119491        * html/HTMLMediaElement.cpp:
119492        (WebCore::HTMLMediaElement::configureTextTrackGroup):
119493        (WebCore::HTMLMediaElement::toggleTrackAtIndex):
119494        * html/track/TextTrack.cpp:
119495        (WebCore::TextTrack::TextTrack):
119496        (WebCore::TextTrack::setMode):
119497        (WebCore::TextTrack::isRendered):
119498        * html/track/TextTrack.h:
119499        (WebCore::TextTrack::mode):
119500        (TextTrack):
119501
1195022013-01-08  Mark Lam  <mark.lam@apple.com>
119503
119504        Removed the need for the ProposedDatabase mechanism.
119505        https://bugs.webkit.org/show_bug.cgi?id=106292.
119506
119507        Reviewed by Sam Weinig.
119508
119509        No new tests.
119510
119511        * Modules/webdatabase/AbstractDatabase.cpp:
119512        (WebCore::AbstractDatabase::details):
119513        (WebCore):
119514        * Modules/webdatabase/AbstractDatabase.h:
119515        (AbstractDatabase):
119516        * Modules/webdatabase/DatabaseContext.cpp:
119517        (WebCore::DatabaseContext::databaseExceededQuota):
119518        * Modules/webdatabase/DatabaseContext.h:
119519        (DatabaseContext):
119520        * Modules/webdatabase/DatabaseTracker.cpp:
119521        (WebCore::DatabaseTracker::canEstablishDatabase):
119522        (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
119523        (WebCore::DatabaseTracker::detailsForNameAndOrigin):
119524        * Modules/webdatabase/DatabaseTracker.h:
119525        (DatabaseTracker):
119526        * Modules/webdatabase/SQLTransactionClient.cpp:
119527        (WebCore::SQLTransactionClient::didExceedQuota):
119528        * loader/EmptyClients.h:
119529        (WebCore::EmptyChromeClient::exceededDatabaseQuota):
119530        * page/ChromeClient.h:
119531        (ChromeClient):
119532
1195332013-01-08  Chris Fleizach  <cfleizach@apple.com>
119534
119535        AX: PopUpButtons do not report that AXValueAttribute is supported
119536        https://bugs.webkit.org/show_bug.cgi?id=106333
119537
119538        Reviewed by Ryosuke Niwa.
119539
119540        The Mac platform expects that AXPopUpButton's expose the AXValue attribute.
119541
119542        Test: platform/mac/accessibility/popup-button-exposes-axvalue.html
119543
119544        * accessibility/AccessibilityObject.h:
119545        (WebCore::AccessibilityObject::isPopUpButton):
119546        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
119547        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
119548
1195492013-01-08  Alexis Menard  <alexis@webkit.org>
119550
119551        transition-delay and transition-duration return incorrect values when querying using the computed style.
119552        https://bugs.webkit.org/show_bug.cgi?id=105432
119553
119554        Reviewed by Dean Jackson.
119555
119556        When setting the transition-delay to 10ms for example the value of transition-delay
119557        on the computed style was incorrect, it should return 0.01s but it was
119558        returning something like 0.0099999999...s. In fact the bug was after
119559        the parsing step when creating the Animation object where a conversion
119560        from a double to float was done. This conversion is not needed as the
119561        animation class expects double for delay and transition times.
119562
119563        Test: transitions/transitions-parsing.html
119564
119565        * css/CSSToStyleMap.cpp:
119566        (WebCore::CSSToStyleMap::mapAnimationDelay):
119567        (WebCore::CSSToStyleMap::mapAnimationDuration):
119568
1195692013-01-08  Hajime Morrita  <morrita@google.com>
119570
119571        [Shadow DOM] Refactoring: invalidateParentDistributionIfNecessary() calls are too intrusive
119572        https://bugs.webkit.org/show_bug.cgi?id=106305
119573
119574        Reviewed by Dimitri Glazkov.
119575
119576        Scattering invalidateParentDistributionIfNecessary() looks bad because
119577        - it has long name whose terminology is cryptic for people who don't know much about Shadow DOM standard.
119578        - its calls are always paired with setNeedsStyleRecalc() and people do setNeedsStyleRecalc()
119579          need to be aware about distribution feature bit tracking. Separate invalidateParentDistributionIfNecessary()
119580          call doesn't help that recognition.
119581
119582        This change introduces Element::didAffectSelector() to replace a setNeedsStyleRecalc()-i37y() call sequence.
119583        SelectRuleFeatureSet::FeatureRule is renamed AffectedSelectorType so that it explains its purpose
119584        in a bit more plain WebKit term.
119585
119586        No new tests. Refactoring.
119587
119588        * dom/Document.cpp:
119589        (WebCore::Document::setCSSTarget): Adopted didAffectSelector.
119590        * dom/Element.cpp:
119591        (WebCore::Element::didAffectSelector): Added.
119592        (WebCore):
119593        * dom/Element.h:
119594        (Element):
119595        * dom/ElementShadow.cpp:
119596        (WebCore::ElementShadow::didAffectSelector): Morphed from invalidateParentDistributionIfNecessary().
119597        * dom/ElementShadow.h:
119598        (ElementShadow):
119599        * html/HTMLAnchorElement.cpp:
119600        (WebCore::HTMLAnchorElement::parseAttribute): Adopted didAffectSelector
119601        * html/HTMLDetailsElement.cpp:
119602        * html/HTMLFormControlElement.cpp:
119603        (WebCore::HTMLFormControlElement::disabledAttributeChanged): Adopted didAffectSelector
119604        * html/HTMLInputElement.cpp:
119605        (WebCore::HTMLInputElement::setChecked): Adopted didAffectSelector
119606        (WebCore::HTMLInputElement::setIndeterminate): Adopted didAffectSelector
119607        * html/HTMLOptGroupElement.cpp:
119608        (WebCore::HTMLOptGroupElement::parseAttribute): Adopted didAffectSelector
119609        * html/HTMLOptionElement.cpp:
119610        (WebCore::HTMLOptionElement::parseAttribute): Adopted didAffectSelector
119611        (WebCore::HTMLOptionElement::setSelectedState): Adopted didAffectSelector
119612        * html/HTMLProgressElement.cpp:
119613        (WebCore::HTMLProgressElement::didElementStateChange): Adopted didAffectSelector
119614        * html/HTMLSummaryElement.cpp:
119615        * html/shadow/HTMLContentElement.cpp:
119616        * html/shadow/SelectRuleFeatureSet.cpp:
119617        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Followed renaming.
119618        * html/shadow/SelectRuleFeatureSet.h: Followed renaming.
119619        (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
119620        (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
119621        (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
119622        (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
119623        (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
119624        (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
119625        (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
119626        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
119627        (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
119628
1196292013-01-08  Sergio Villar Senin  <svillar@igalia.com>
119630
119631        [Qt] Fix build with --web-audio
119632        https://bugs.webkit.org/show_bug.cgi?id=106328
119633
119634        Reviewed by Philippe Normand.
119635
119636        Build fix, no new tests required.
119637
119638        * Target.pri: addded missing OfflineAudioContext.[cpp|h].
119639
1196402013-01-08  Martin Robinson  <mrobinson@igalia.com>
119641
119642        [GTK] Login & password shown in browsers' URL entry after successful HTTP authentication
119643        https://bugs.webkit.org/show_bug.cgi?id=105190
119644
119645        Reviewed by Carlos Garcia Campos.
119646
119647        Test: http/tests/misc/authentication-redirect-4/authentication-sent-to-redirect-same-origin-url.html
119648
119649        * platform/network/soup/ResourceHandleSoup.cpp:
119650        (WebCore::restartedCallback): After sending a redirect with credentials to libsoup, strip
119651        the credentials from the request. This ensures that the credentials do not show up in
119652        the user agent or in document.location.
119653
1196542013-01-08  Keishi Hattori  <keishi@webkit.org>
119655
119656        [Chromium] Don't confine page popups to root view on Mac
119657        https://bugs.webkit.org/show_bug.cgi?id=106315
119658
119659        Reviewed by Kent Tamura.
119660
119661        No new tests.
119662
119663        * Resources/pagepopups/pickerCommon.js:
119664        (adjustWindowRect): Remove code to confine to root view.
119665
1196662012-12-12  Antonio Gomes  <a1.gomes@sisa.samsung.com>
119667
119668        Make RenderLayer::updateNeedsCompositedScrolling scrollbars agnostic
119669        https://bugs.webkit.org/show_bug.cgi?id=95494
119670
119671        Reviewed by James Robinson.
119672
119673        Some ports (including Qt-wk1 and BlackBerry) allow disabling
119674        scrollbars at FrameView creation level. That said, cheking for the
119675        scrollbars presence in order to determine if we should promote a
119676        RenderLayer to use composited scrolling is not ideal, as done in
119677        RenderLayerCompositor::updateNeedsCompositedScrolling()
119678
119679        Instead, this patch makes the RenderLayer class to query its FrameView
119680        if it has been cached as scrollable by the later.
119681
119682        Least, patch also takes this opportunity to remove RenderLayer::allowsScrolling,
119683        which became unused.
119684
119685        No new tests added, since there is no *practical* behavior change: ports
119686        like Chromium and others who currently check for the scrollbars presence
119687        in order to determine either to promote or not layers to benefit of composited
119688        scrolling should not be affected.
119689
119690        * rendering/RenderLayer.cpp:
119691        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
119692        * rendering/RenderLayer.h:
119693        (RenderLayer):
119694
1196952012-12-20  Antonio Gomes  <a1.gomes@sisa.samsung.com>
119696
119697        Introduce a compositing trigger for scrollable frames
119698        https://bugs.webkit.org/show_bug.cgi?id=105573
119699
119700        Reviewed by James Robinson.
119701
119702        Make requiresCompositingForScrollableFrame to check the
119703        newly added compositing trigger instead of the associated setting.
119704
119705        It introduces no have behavior change, so no new tests. Patch basically
119706        does some preparation work for adding support to composite scrollable inner
119707        frames independently from "force compositing mode" bit.
119708
119709        * page/ChromeClient.h:
119710        * rendering/RenderLayerCompositor.cpp:
119711        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
119712        (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
119713
1197142013-01-08  Kihong Kwon  <kihong.kwon@samsung.com>
119715
119716        Add DeviceProximityController to support Device Proximity Events.
119717        https://bugs.webkit.org/show_bug.cgi?id=97630
119718
119719        Reviewed by Hajime Morita.
119720
119721        Implement DeviceProximityController which is inherited from DeviceController to support Device Proximity Events.
119722        DeviceProximityController has two major functionalities.
119723        - When listener is added, DeviceProximityController stores DOMWindow pointer to m_listeners
119724          and start gathering proximity event.
119725        - When DeviceProximityController receives a proximity event from client, fire an event using m_listeners.
119726        In addition, setDeviceProximity function is added to Internals for layout test.
119727
119728        Tests: proximity/add-listener-from-callback.html
119729               proximity/basic-operation.html
119730               proximity/create-event.html
119731               proximity/event-after-navigation.html
119732               proximity/multiple-frames.html
119733               proximity/no-page-cache.html
119734               proximity/optional-event-properties.html
119735               proximity/updates.html
119736               proximity/window-property.html
119737
119738        * CMakeLists.txt:
119739        * GNUmakefile.am:
119740        * GNUmakefile.list.am:
119741        * Modules/proximity/DeviceProximityClient.h: Added.
119742        (WebCore):
119743        (DeviceProximityClient):
119744        (WebCore::DeviceProximityClient::~DeviceProximityClient):
119745        * Modules/proximity/DeviceProximityController.cpp: Added.
119746        (WebCore):
119747        (WebCore::DeviceProximityController::DeviceProximityController):
119748        (WebCore::DeviceProximityController::create):
119749        (WebCore::DeviceProximityController::didChangeDeviceProximity):
119750        (WebCore::DeviceProximityController::deviceProximityClient):
119751        (WebCore::DeviceProximityController::hasLastData):
119752        (WebCore::DeviceProximityController::getLastEvent):
119753        (WebCore::DeviceProximityController::supplementName):
119754        (WebCore::DeviceProximityController::from):
119755        (WebCore::DeviceProximityController::isActiveAt):
119756        (WebCore::provideDeviceProximityTo):
119757        * Modules/proximity/DeviceProximityController.h: Added.
119758        (WebCore):
119759        (DeviceProximityController):
119760        (WebCore::DeviceProximityController::~DeviceProximityController):
119761        * Target.pri:
119762        * WebCore.gyp/WebCore.gyp:
119763        * WebCore.gypi:
119764        * WebCore.pri:
119765        * WebCore.vcproj/WebCore.vcproj:
119766        * WebCore.vcproj/WebCoreCommon.vsprops:
119767        * WebCore.xcodeproj/project.pbxproj:
119768        * history/PageCache.cpp:
119769        When a page has Device Proximity Event Listener, it has not to be cached like Device Orientation.
119770        (WebCore::logCanCachePageDecision):
119771        (WebCore::PageCache::canCache):
119772        * page/DOMWindow.cpp:
119773        (WebCore::DOMWindow::addEventListener):
119774        (WebCore::DOMWindow::removeEventListener):
119775        (WebCore::DOMWindow::removeAllEventListeners):
119776        * testing/Internals.cpp:
119777        (WebCore::Internals::setDeviceProximity):
119778        (WebCore):
119779        * testing/Internals.h:
119780        (Internals):
119781        * testing/Internals.idl:
119782
1197832013-01-03  Sergio Villar Senin  <svillar@igalia.com>
119784
119785        [GTK] Add WebP image support
119786        https://bugs.webkit.org/show_bug.cgi?id=105915
119787
119788        Reviewed by Martin Robinson.
119789
119790        * GNUmakefile.am: add WTF_USE_WEBP definition.
119791        * GNUmakefile.list.am: properly sort image decoders in the sources list.
119792
1197932013-01-08  Steve Block  <steveblock@chromium.org>
119794
119795        Rename 'IntSize toSize(const IntPoint&)' to 'toIntSize'
119796        https://bugs.webkit.org/show_bug.cgi?id=106307
119797
119798        This matches other method names which distinguish between sizes and
119799        points. See https://bugs.webkit.org/show_bug.cgi?id=105992#c4.
119800
119801        Reviewed by Kentaro Hara.
119802
119803        Refactoring only, no functional change.
119804
119805        * accessibility/AccessibilityRenderObject.cpp:
119806        (WebCore::AccessibilityRenderObject::scrollTo):
119807        * html/HTMLSelectElement.cpp:
119808        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
119809        * platform/ScrollView.h:
119810        (WebCore::ScrollView::scrollOffset):
119811        * platform/graphics/IntPoint.h:
119812        (WebCore::toIntSize):
119813        * rendering/RenderLayer.cpp:
119814        (WebCore::RenderLayer::updateLayerPositions):
119815        (WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
119816        (WebCore::RenderLayer::paintOverflowControls):
119817        * rendering/RenderLayerBacking.cpp:
119818        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
119819
1198202013-01-08  Yoshifumi Inoue  <yosin@chromium.org>
119821
119822        Dragging over an element with scrollbars should scroll the element when dragging near edges
119823        https://bugs.webkit.org/show_bug.cgi?id=39725
119824
119825        Reviewed by Hajime Morita.
119826
119827        This patch introduces auto scrolling functionality during drag-and-drop
119828        when drop source is near edge of scrollable element.
119829
119830        When drop source is inside 20px of scrollable element more than 200ms,
119831        scrollable element is automatically scrolled every 50ms toward drop
119832        source position, e.g. vertically scroll up when drop source is in top
119833        edge.
119834
119835        Test: fast/events/drag-and-drop-autoscroll.html
119836
119837        * page/AutoscrollController.cpp:
119838        (WebCore::AutoscrollController::AutoscrollController): Changed to initialize m_dragAndDropAutoscrollStartTime.
119839        (WebCore::AutoscrollController::updateDragAndDrop): Added for start/stop autoscroll during drag-and-drop.
119840        (WebCore::AutoscrollController::autoscrollTimerFired): Changed to add autoscroll for drag-and-drop, and to pass last know position to RenderBox::autoscroll().
119841        * page/AutoscrollController.h:
119842        (AutoscrollController): Changed to add updateDragAndDrop() and m_dragAndDropAutoscrollReferencePosition and m_dragAndDropAutoscrollStartTime.
119843        * page/EventHandler.cpp:
119844        (WebCore::EventHandler::updateDragAndDrop): Changed to call AutoscrollController::updateDragAndDrop().
119845        * rendering/RenderBox.cpp:
119846        (WebCore::RenderBox::autoscroll): Changed for new parameter position.
119847        (WebCore::RenderBox::calculateAutoscrollDirection): Added for autoscroll.
119848        * rendering/RenderBox.h:
119849        (RenderBox):
119850        * rendering/RenderLayer.cpp:
119851        (WebCore::RenderLayer::autoscroll):  Changed for new parameter position and move updateSelectionForMouseDrag() to AutoscrollController.
119852        * rendering/RenderLayer.h:
119853        (RenderLayer):
119854        * rendering/RenderListBox.cpp:
119855        (WebCore::RenderListBox::autoscroll):  Changed for new parameter position.
119856        * rendering/RenderListBox.h:
119857        (RenderListBox):
119858        * rendering/RenderTextControlSingleLine.cpp:
119859        (WebCore::RenderTextControlSingleLine::autoscroll):  Changed for new parameter position.
119860        * rendering/RenderTextControlSingleLine.h:
119861        (RenderTextControlSingleLine):
119862
1198632013-01-08  Jochen Eisinger  <jochen@chromium.org>
119864
119865        REGRESSION(r139036): 'WebCore::DateTimeSymbolicFieldElement::isInRange' hides overloaded virtual function
119866        https://bugs.webkit.org/show_bug.cgi?id=106311
119867
119868        Unreviewed build fix.
119869
119870        * html/shadow/DateTimeSymbolicFieldElement.cpp:
119871        (WebCore::DateTimeSymbolicFieldElement::stepDown):
119872        (WebCore::DateTimeSymbolicFieldElement::stepUp):
119873        * html/shadow/DateTimeSymbolicFieldElement.h:
119874        (WebCore::DateTimeSymbolicFieldElement::indexIsInRange): renamed method to avoid hiding Element::isInRange
119875
1198762013-01-08  Adam Barth  <abarth@webkit.org>
119877
119878        HTMLTreeBuilder shouldn't keep a Document pointer
119879        https://bugs.webkit.org/show_bug.cgi?id=106268
119880
119881        Reviewed by Eric Seidel.
119882
119883        The tree builder shouldn't interact with the Document directly.
119884        Instead, the tree builder should use the HTMLConstructionSite to
119885        interact with the document.
119886
119887        Unfortunately, the HTMLTreeBuilder does need to read back one bit of
119888        information (the quirks mode) from the Document. Currently the
119889        HTMLConstructionSite reads the information directly from the Document.
119890        If/when we move the parser onto its own thread, we'll need to keep
119891        track of this bit on the parser thread. (We should be able to
119892        encapsulate all that logic in the HTMLConstructionSite.)
119893
119894        * html/parser/HTMLConstructionSite.cpp:
119895        (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
119896        (WebCore):
119897        (WebCore::HTMLConstructionSite::finishedParsing):
119898        (WebCore::HTMLConstructionSite::inQuirksMode):
119899        * html/parser/HTMLConstructionSite.h:
119900        (HTMLConstructionSite):
119901        * html/parser/HTMLTreeBuilder.cpp:
119902        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
119903        (WebCore::HTMLTreeBuilder::detach):
119904        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
119905        (WebCore::HTMLTreeBuilder::defaultForInitial):
119906        (WebCore::HTMLTreeBuilder::finished):
119907        * html/parser/HTMLTreeBuilder.h:
119908        (HTMLTreeBuilder):
119909
1199102013-01-08  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
119911
119912        Float block's logical top margin is illegal in vertical writing mode.
119913        https://bugs.webkit.org/show_bug.cgi?id=96597
119914
119915        Reviewed by Hajime Morita.
119916
119917        flipFloatForWritingModeForChild() should use child->renderer()->width() not child->width() like horizontal writing mode.
119918
119919        Test: fast/writing-mode/vertical-float-margin.html
119920
119921        * rendering/RenderBlock.cpp:
119922        (WebCore::RenderBlock::flipFloatForWritingModeForChild):
119923
1199242013-01-07  Kent Tamura  <tkent@chromium.org>
119925
119926        REGRESSION(r137406): Text inside an empty optgroup prevents subsequent options from appearing
119927        https://bugs.webkit.org/show_bug.cgi?id=106298
119928
119929        Reviewed by Ryosuke Niwa.
119930
119931        Test: fast/forms/select/select-empty-optgroup.html
119932
119933        * html/HTMLSelectElement.cpp:
119934        (WebCore::HTMLSelectElement::recalcListItems):
119935        Traverse to the first element within the 'current' only if it exists.
119936
1199372013-01-07  Steve Block  <steveblock@chromium.org>
119938
119939        Use toSize() to convert from Int/FloatPoint to Int/FloatSize
119940        https://bugs.webkit.org/show_bug.cgi?id=105992
119941
119942        Reviewed by Kentaro Hara.
119943
119944        Refactoring only, no change in behavior.
119945
119946        * html/HTMLAreaElement.cpp:
119947        (WebCore::HTMLAreaElement::computePath):
119948        * platform/ScrollView.h:
119949        (WebCore::ScrollView::scrollOffset):
119950        * platform/graphics/FloatPoint.h:
119951        (WebCore::toFloatSize):
119952        Add 'inline FloatSize toFloatSize(const FloatPoint&)' to match IntPoint.
119953        * rendering/RenderLayerBacking.cpp:
119954        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
119955
1199562013-01-07  Kunihiko Sakamoto  <ksakamoto@chromium.org>
119957
119958        INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of month/day field should respect min/max attributes
119959        https://bugs.webkit.org/show_bug.cgi?id=106212
119960
119961        Reviewed by Kent Tamura.
119962
119963        Make step-up/-down of the month and day fields respect the min/max
119964        attributes of the element.
119965        Note that these fields still accept any keyboard inputs (the element
119966        becomes 'invalid' state when out-of-bounds values entered).
119967
119968        Tests: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
119969               fast/forms/date-multiple-fields/date-multiple-fields-stepup-stepdown-from-renderer.html
119970               fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html
119971               fast/forms/month-multiple-fields/month-multiple-fields-stepup-stepdown-from-renderer.html
119972
119973        * css/html.css: Add CSS rules for month and day fields.
119974        * html/shadow/DateTimeEditElement.cpp:
119975        (WebCore::DateTimeEditBuilder::visitField):
119976        Compute minimum/maximum values of month/day fields from the min/max
119977        parameters of the element. If minimum, maximum, and current value is
119978        the same, makes the field read-only.
119979        * html/shadow/DateTimeFieldElements.cpp:
119980        (WebCore::DateTimeAMPMFieldElement::DateTimeAMPMFieldElement): Add mininum/maximum arguments.
119981        (WebCore::DateTimeDayFieldElement::DateTimeDayFieldElement): Ditto.
119982        (WebCore::DateTimeDayFieldElement::create): Ditto.
119983        (WebCore::DateTimeDayFieldElement::clampValueForHardLimits): Added.
119984        (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement): Add mininum/maximum arguments.
119985        (WebCore::DateTimeMonthFieldElement::create): Ditto.
119986        (WebCore::DateTimeMonthFieldElement::clampValueForHardLimits): Added.
119987        (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement): Add mininum/maximum arguments.
119988        (WebCore::DateTimeSymbolicMonthFieldElement::create): Ditto.
119989        * html/shadow/DateTimeFieldElements.h:
119990        (DateTimeDayFieldElement): Add mininum/maximum arguments and declare clampValueForHardLimits.
119991        (DateTimeMonthFieldElement): Ditto.
119992        (DateTimeSymbolicMonthFieldElement): Add mininum/maximum arguments.
119993        * html/shadow/DateTimeSymbolicFieldElement.cpp:
119994        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement): Add mininum/maximum arguments.
119995        (WebCore::DateTimeSymbolicFieldElement::maximum): Returns m_maximumIndex + 1 as it assumes 1-origin value.
119996        (WebCore::DateTimeSymbolicFieldElement::minimum): Ditto.
119997        (WebCore::DateTimeSymbolicFieldElement::stepDown): Restrict value to m_minimumIndex-m_maximumIndex.
119998        (WebCore::DateTimeSymbolicFieldElement::stepUp): Ditto.
119999        * html/shadow/DateTimeSymbolicFieldElement.h:
120000        (DateTimeSymbolicFieldElement): Add m_minimumIndex and m_maximumIndex.
120001        (WebCore::DateTimeSymbolicFieldElement::isInRange): Added.
120002
1200032013-01-07  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
120004
120005        [EFL][WK2][WebGL] The top left side of the screen is shown inside the canvas element
120006        https://bugs.webkit.org/show_bug.cgi?id=105136
120007
120008        Reviewed by Noam Rosenthal.
120009
120010        Use glXSwapBuffers to force resize of GL surface after X window resize.
120011
120012        Fixes fast/canvas/webgl/webgl-composite-modes.html pixel test on EFL platform.
120013
120014        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
120015        (WebCore::X11OffScreenWindow::reSizeWindow):
120016
1200172013-01-07  Steve Block  <steveblock@chromium.org>
120018
120019        Use explicit constructor to convert from Int/FloatSize to Int/FloatPoint
120020        https://bugs.webkit.org/show_bug.cgi?id=106209
120021
120022        Reviewed by Kentaro Hara.
120023
120024        Refactoring only, no functional change.
120025
120026        * rendering/RenderLayerBacking.cpp:
120027        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
120028
1200292013-01-07  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
120030
120031        [EFL][WebGL] Crash of WebKitTestRunner when running webgl layout tests
120032        https://bugs.webkit.org/show_bug.cgi?id=105936
120033
120034        Reviewed by Laszlo Gombos.
120035
120036        If canvas window becomes invalid don't create pixmap from it and don't 
120037        use it for painting.
120038
120039        Improves stability of existing webgl layout tests.
120040
120041        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
120042        (WebCore::GraphicsSurfacePrivate::createPixmap):
120043        (WebCore::GraphicsSurfacePrivate::size):
120044        (WebCore::GraphicsSurface::platformGetTextureID):
120045        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
120046
1200472013-01-07  Hajime Morrita  <morrita@google.com>
120048
120049        Document::m_activeNode should be always an Element.
120050        https://bugs.webkit.org/show_bug.cgi?id=106193
120051
120052        Reviewed by Ryosuke Niwa.
120053
120054        r137277 tightened an invariant that assumes that active node is
120055        always an element. But Document::updateHoverActiveState() didn't
120056        respect that assumption. This change forces it.
120057
120058        Test: svg/custom/text-use-click-crash.html
120059
120060        * dom/Document.cpp:
120061        (WebCore::Document::removedLastRef):
120062        (WebCore::Document::detach):
120063        (WebCore::Document::setActiveNode):
120064        (WebCore::Document::activeChainNodeDetached):
120065        (WebCore::Document::updateHoverActiveState):
120066        * dom/Document.h:
120067        (WebCore::Document::activeElement): Renamed from m_activeNode for the clarification.
120068        (Document):
120069
1200702013-01-07  Hajime Morrita  <morrita@google.com>
120071
120072        WebKit should compile on Mac with --shadow-dom
120073        https://bugs.webkit.org/show_bug.cgi?id=105469
120074
120075        Reviewed by Dimitri Glazkov.
120076
120077        No new tests. Just changing build files.
120078
120079        * WebCore.exp.in:
120080        * WebCore.xcodeproj/project.pbxproj:
120081        * dom/Element.idl:
120082
1200832013-01-07  Stephen White  <senorblanco@chromium.org>
120084
120085        Add a flag to control canvas antialiasing.
120086        https://bugs.webkit.org/show_bug.cgi?id=106255
120087
120088        Reviewed by Darin Fisher.
120089
120090        This flag is not exposed through TestRunner or DRT, so no testing is
120091        possible yet.
120092
120093        * html/HTMLCanvasElement.cpp:
120094        (WebCore::HTMLCanvasElement::createImageBuffer):
120095        * page/Settings.in:
120096
1200972013-01-07  Julien Chaffraix  <jchaffraix@webkit.org>
120098
120099        [CSS Grid Layout] Implement grid items sizing for fixed minmax grid tracks
120100        https://bugs.webkit.org/show_bug.cgi?id=104700
120101
120102        Reviewed by Tony Chang.
120103
120104        This change implements parts of the minmax() track sizing algorithm. The chosen subset enables us
120105        to resolve any sizing function that doesn't size based on the content (min-content, max-content).
120106
120107        Tests: fast/css-grid-layout/minmax-fixed-logical-height-only.html
120108               fast/css-grid-layout/minmax-fixed-logical-width-only.html
120109
120110        * rendering/RenderGrid.cpp:
120111        (WebCore::GridTrack::GridTrack):
120112        Added a new member to hold the maximum track breadth.
120113
120114        (WebCore::RenderGrid::computePreferredLogicalWidths):
120115        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
120116        Updated these functions to work on both min and max track breadth. In order to match
120117        the specification, if max track breadth < min track breadth, we ignore the max track breadth.
120118        For computedUsedBreadthOfGridTracks, it also involves calling distributeSpaceToTracks.
120119
120120        (WebCore::RenderGrid::computeUsedBreadthOfLength):
120121        New helper function that compute a single length's size.
120122
120123        (WebCore::sortByGridTrackGrowthPotential):
120124        Ordering function for the sorting the track: it orders the track per increasing potential
120125        growth (defined as the difference between max breadth and the currently used breadth).
120126
120127        (WebCore::RenderGrid::distributeSpaceToTracks):
120128        Added this function that matches the specification's algorithm. Only the relevant bits from
120129        the specification were implemented for now (for example, SubsetOfTracksForGrowthBeyondTrackGrowthConstraint
120130        is always the empty set so it was omitted).
120131
120132        * rendering/RenderGrid.h:
120133        Added the new functions and declared GridTrack as public into the WebCore namespace.
120134
120135        * rendering/style/GridTrackSize.h:
120136        (WebCore::GridTrackSize::minTrackBreadth):
120137        (WebCore::GridTrackSize::maxTrackBreadth):
120138        Removed 2 ASSERTs as the layout algorithm doesn't care if the min / max were
120139        set from a single track breadth or through minmax().
120140
1201412013-01-07  Xianzhu Wang  <wangxianzhu@chromium.org>
120142
120143        Add a setting to enable composited scrolling for frames
120144        https://bugs.webkit.org/show_bug.cgi?id=104950
120145
120146        Reviewed by James Robinson.
120147
120148        Test: compositing/iframes/iframe-composited-scrolling.html
120149
120150        * page/FrameView.cpp:
120151        (WebCore::FrameView::usesCompositedScrolling): Returns true if compositedScrollingForFramesEnabled and the frame is in forced compositing mode (which is set when forced compositing mode and compositing for scrollable frames are enabled), so that ScrollingCoordinator won't include the region of the frame in the nonFastScrollableRegion.
120152        (WebCore):
120153        * page/FrameView.h:
120154        (FrameView):
120155        * page/Settings.in: Add compositedScrollingForFramesEnabled setting.
120156        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
120157        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated): Changed the comment about which ScrollableAreas are non-fast-scrollable.
120158        * rendering/RenderLayerCompositor.cpp:
120159        (WebCore::RenderLayerCompositor::frameViewDidScroll): Let ScrollongCoordinator know when the scrolling changes for a frame with composited scrolling enabled.
120160
1201612013-01-07  Alexandre Elias  <aelias@chromium.org>
120162
120163        Divide gesture scroll delta by scale factor
120164        https://bugs.webkit.org/show_bug.cgi?id=106263
120165
120166        Reviewed by Adam Barth.
120167
120168        Gesture scroll deltas were not being adjusted by the frame's scale
120169        factors, resulting in overly fast main-thread scrolling when zoomed
120170        in.
120171
120172        New test: fast/events/touch/gesture/touch-gesture-scroll-div-scaled.html
120173
120174        * page/EventHandler.cpp:
120175        (WebCore::EventHandler::handleGestureScrollCore):
120176
1201772013-01-07  Adam Barth  <abarth@webkit.org>
120178
120179        HTMLTreeBuilder should not depend on Frame
120180        https://bugs.webkit.org/show_bug.cgi?id=106256
120181
120182        Reviewed by Eric Seidel.
120183
120184        Rather than have the tree builder ask the Frame whether scripting and
120185        plugins are enabled, we now push that information to the tree builder
120186        via HTMLParserOptions, letting us remove the Frame dependency from the
120187        tree builder.
120188
120189        As a consequence of this change, the "script enabled" bit in the parser
120190        is now locked in when the parser starts. This bit doesn't actually
120191        control when script execute, only how the <noscript> element is parsed.
120192
120193        * html/parser/HTMLDocumentParser.cpp:
120194        (WebCore::tokenizerStateForContextElement):
120195        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
120196        * html/parser/HTMLMetaCharsetParser.cpp:
120197        (WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
120198        (WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
120199        * html/parser/HTMLParserOptions.cpp:
120200        (WebCore::HTMLParserOptions::HTMLParserOptions):
120201        * html/parser/HTMLParserOptions.h:
120202        (HTMLParserOptions):
120203        (WebCore::HTMLParserOptions::HTMLParserOptions):
120204        * html/parser/HTMLPreloadScanner.cpp:
120205        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
120206        (WebCore::HTMLPreloadScanner::processToken):
120207        * html/parser/HTMLTokenizer.cpp:
120208        (WebCore::HTMLTokenizer::HTMLTokenizer):
120209        (WebCore::HTMLTokenizer::nextToken):
120210        (WebCore::HTMLTokenizer::updateStateFor):
120211        * html/parser/HTMLTokenizer.h:
120212        (WebCore::HTMLTokenizer::create):
120213        (HTMLTokenizer):
120214        * html/parser/HTMLTreeBuilder.cpp:
120215        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
120216        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
120217        * html/parser/HTMLTreeBuilder.h:
120218        * html/parser/HTMLViewSourceParser.cpp:
120219        (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
120220        (WebCore::HTMLViewSourceParser::updateTokenizerState):
120221
1202222013-01-07  Tony Chang  <tony@chromium.org>
120223
120224        Remove more internals.settings that are autogenerated
120225        https://bugs.webkit.org/show_bug.cgi?id=106253
120226
120227        Reviewed by Adam Barth.
120228
120229        Remove 8 methods that are autogenerated by Settings.in.
120230
120231        No new tests, this is a refactor and is convered by existing tests.
120232
120233        * testing/InternalSettings.cpp:
120234        (WebCore::InternalSettings::Backup::Backup): Remove backup.
120235        (WebCore::InternalSettings::Backup::restoreTo): Remove restore.
120236        * testing/InternalSettings.h:
120237        (Backup): Remove member variables and functions.
120238        (InternalSettings):
120239        * testing/InternalSettings.idl: Remove functions.
120240
1202412013-01-07  Ryosuke Niwa  <rniwa@webkit.org>
120242
120243        Another incremental build fix after r139013.
120244
120245        * mathml/MathMLAllInOne.cpp:
120246
1202472013-01-07  Ryosuke Niwa  <rniwa@webkit.org>
120248
120249        Incremental build system on Windows port does not necessarily rebuild RenderBox.cpp after r139013.
120250
120251        * rendering/RenderingAllInOne.cpp:
120252
1202532013-01-07  Emil A Eklund  <eae@chromium.org>
120254
120255        REGRESSION(SUBPIXEL_LAYOUT): el.offsetWidth < el.clientWidth for elements of a certain size
120256        https://bugs.webkit.org/show_bug.cgi?id=106107
120257
120258        Reviewed by Levi Weintraub.
120259        
120260        Add overloaded pixelSnappedOffsetWidth|Height methods to
120261        RenderBox that do pixel snapping with the same offset
120262        as clientWidth/height to ensure consistent rounding.
120263
120264        Test: fast/sub-pixel/client-and-offset-width.html
120265
120266        * rendering/RenderBox.cpp:
120267        (WebCore::RenderBox::pixelSnappedOffsetWidth):
120268        (WebCore::RenderBox::pixelSnappedOffsetHeight):
120269        Snap using the same offset as the clientWidth/height versions.
120270        
120271        * rendering/RenderBox.h:
120272        Remove out of date FIXME and add OVERRIDE keyword.
120273        
120274        * rendering/RenderBoxModelObject.h:
120275        Mark pixelSnappedOffsetWidth|Height as virtual.
120276
1202772013-01-07  Adam Barth  <abarth@webkit.org>
120278
120279        Introduce HTMLParserOptions to encapsulate HTML parser options
120280        https://bugs.webkit.org/show_bug.cgi?id=106251
120281
120282        Reviewed by Eric Seidel.
120283
120284        Currently, the HTMLTreeBuilder (and potentially other parts of the
120285        parser) use their Document* to read configuration information from the
120286        Document (such as Settings). This patch introduces the
120287        HTMLParserOptions class to encapsulate that information, making it
120288        easier to move the HTML parser to a background thread (because the
120289        HTMLTreeBuilder won't need to talk to the Document directly).
120290
120291        * CMakeLists.txt:
120292        * GNUmakefile.list.am:
120293        * Target.pri:
120294        * WebCore.gypi:
120295        * WebCore.vcproj/WebCore.vcproj:
120296        * html/parser/HTMLDocumentParser.cpp:
120297        (WebCore::HTMLDocumentParser::HTMLDocumentParser):
120298        (WebCore::HTMLDocumentParser::pumpTokenizer):
120299        (WebCore::HTMLDocumentParser::insert):
120300        * html/parser/HTMLDocumentParser.h:
120301        (HTMLDocumentParser):
120302        * html/parser/HTMLPreloadScanner.cpp:
120303        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
120304        * html/parser/HTMLPreloadScanner.h:
120305        (WebCore):
120306        (HTMLPreloadScanner):
120307        * html/parser/HTMLTreeBuilder.cpp:
120308        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
120309        (WebCore::HTMLTreeBuilder::processEndTag):
120310        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
120311        * html/parser/HTMLTreeBuilder.h:
120312        (WebCore::HTMLTreeBuilder::create):
120313        (HTMLTreeBuilder):
120314        * html/parser/HTMLViewSourceParser.cpp:
120315        (WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
120316
1203172013-01-07  Joseph Pecoraro  <pecoraro@apple.com>
120318
120319        Minor improvements to HTMLMediaElement
120320        https://bugs.webkit.org/show_bug.cgi?id=105353
120321
120322        Reviewed by Eric Carlson.
120323
120324        * html/HTMLMediaElement.cpp:
120325        (WebCore::HTMLMediaElement::canPlayType):
120326        (WebCore::createFileURLForApplicationCacheResource):
120327        (WebCore::stringForNetworkState):
120328        (WebCore::HTMLMediaElement::preload):
120329        (WebCore::HTMLMediaElement::getPluginProxyParams):
120330        Use ASCIILiteral for literal strings becoming WTFStrings.
120331
120332        (WebCore::HTMLMediaElement::setLoop):
120333        By going through setAttribute, parseAttribute would already take care of
120334        updating the disable sleep, so the call here is not needed.
120335
1203362013-01-07  Joseph Pecoraro  <pecoraro@apple.com>
120337
120338        String improvements in geolocation and notifications modules
120339        https://bugs.webkit.org/show_bug.cgi?id=105352
120340
120341        Reviewed by Sam Weinig.
120342
120343        * Modules/geolocation/Geolocation.cpp:
120344        (WebCore::Geolocation::GeoNotifier::timerFired):
120345        (WebCore::Geolocation::startRequest):
120346        (WebCore::Geolocation::requestUsesCachedPosition):
120347        (WebCore::Geolocation::makeCachedPositionCallbacks):
120348        (WebCore::Geolocation::setIsAllowed):
120349        (WebCore::Geolocation::cancelRequests):
120350        (WebCore::Geolocation::handlePendingPermissionNotifiers):
120351        * Modules/geolocation/GeolocationController.cpp:
120352        (WebCore::GeolocationController::positionChanged):
120353        * Modules/notifications/WorkerContextNotifications.cpp:
120354        Use ASCIILiteral for constant strings becoming WTFStrings.
120355
120356        (WebCore::WorkerContextNotifications::from):
120357        Use AtomicString::ConstructFromLiteral for the static local.
120358
1203592013-01-07  Chris Fleizach  <cfleizach@apple.com>
120360
120361        AX: the text of render counters are not exposed to Accessibility
120362        https://bugs.webkit.org/show_bug.cgi?id=103794
120363
120364        Reviewed by Ryosuke Niwa.
120365
120366        Support RenderText objects that don't have nodes (like RenderCounter).
120367
120368        Test: accessibility/render-counter-text.html
120369
120370        * accessibility/AccessibilityRenderObject.cpp:
120371        (WebCore::AccessibilityRenderObject::textUnderElement):
120372
1203732013-01-07  Tim Horton  <timothy_horton@apple.com>
120374
120375        Tiled-layer TileCaches shouldn't unparent offscreen tiles
120376        https://bugs.webkit.org/show_bug.cgi?id=106258
120377        <rdar://problem/12969116>
120378
120379        Reviewed by Simon Fraser.
120380
120381        Add a setting on TiledBacking (implemented on TileCache) that controls whether or not
120382        the TileCache should unparent offscreen tiles. We can't use this behavior for tiled-layer TileCaches
120383        currently because m_isInWindow is not updated for tiled-layer TileCaches, and because we haven't
120384        decided exactly what their behavior should be. So, revert to the old behavior for them.
120385
120386        * platform/graphics/TiledBacking.h:
120387        * platform/graphics/ca/mac/TileCache.h:
120388        (TileCache): Add setUnparentsOffscreenTiles/unparentsOffscreenTiles.
120389        * platform/graphics/ca/mac/TileCache.mm:
120390        (WebCore::TileCache::TileCache): m_unparentsOffscreenTiles defaults to false.
120391        (WebCore::TileCache::revalidateTiles):
120392        Return to the old behavior of always adding new layers to the layer tree regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
120393        Return to the old behavior of never unparenting tiles regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
120394        (WebCore::TileCache::ensureTilesForRect): Return to the old behavior of always ensuring tiles regardless of m_isInWindow if m_unparentsOffscreenTiles is false.
120395        * rendering/RenderLayerBacking.cpp:
120396        (WebCore::RenderLayerBacking::RenderLayerBacking): Tell primary TileCaches that it's OK to unparent offscreen tiles.
120397
1203982013-01-07  Justin Novosad  <junov@google.com>
120399
120400        Fixing memory read after free in CanvasRenderingContext2D::accessFont
120401        https://bugs.webkit.org/show_bug.cgi?id=106244
120402
120403        Reviewed by Abhishek Arya.
120404
120405        Using a temporary String object to hold ref count on string that is
120406        passed by reference in CanvasRenderingContext2D::accessFont.
120407
120408        Test: fast/canvas/canvas-measureText.html
120409
120410        * html/canvas/CanvasRenderingContext2D.cpp:
120411        (WebCore::CanvasRenderingContext2D::accessFont):
120412
1204132013-01-07  Anders Carlsson  <andersca@apple.com>
120414
120415        DOMEvents.h should include DOMProgressEvent.h
120416        https://bugs.webkit.org/show_bug.cgi?id=106250
120417
120418        Reviewed by Sam Weinig.
120419
120420        DOMProgressEvent.h is already installed as a public header, so it should also be included by DOMEvents.h.
120421
120422        * bindings/objc/DOMEvents.h:
120423
1204242013-01-07  Xianzhu Wang  <wangxianzhu@chromium.org>
120425
120426        Add window.internals.nonFastScrollableRects for testing scrollable areas in fast/slow paths
120427        https://bugs.webkit.org/show_bug.cgi?id=105546
120428
120429        Reviewed by James Robinson.
120430
120431        No new tests. Added test API for new tests of other bugs.
120432
120433        * WebCore.exp.in:
120434        * page/Page.cpp:
120435        (WebCore::Page::nonFastScrollableRects):
120436        (WebCore):
120437        * page/Page.h:
120438        (WebCore):
120439        (Page):
120440        * page/scrolling/ScrollingCoordinator.cpp:
120441        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Change to public to allow Page::nonFastScrollableRects to access.
120442        * page/scrolling/ScrollingCoordinator.h:
120443        (ScrollingCoordinator):
120444        * testing/Internals.cpp:
120445        (WebCore::Internals::nonFastScrollableRects):
120446        (WebCore):
120447        * testing/Internals.h:
120448        * testing/Internals.idl:
120449
1204502013-01-07  Tom Sepez  <tsepez@chromium.org>
120451
120452        Document::initSecurityContext() gives parent security context to iframes with invalid URLs.
120453        https://bugs.webkit.org/show_bug.cgi?id=104960
120454
120455        Reviewed by Adam Barth.
120456
120457        Change covers the case of an invalid non-empty URL.  We know nothing
120458        about that kind of URL and choose not to inherit origins.
120459        
120460        * dom/Document.cpp:
120461        (WebCore::shouldInheritSecurityOriginFromOwner):
120462
1204632013-01-07  Chris Fleizach  <cfleizach@apple.com>
120464
120465        AX: Regression: Contextual menu not following with VO cursor in HTML content when item is scrolled
120466        https://bugs.webkit.org/show_bug.cgi?id=70075
120467
120468        Reviewed by Anders Carlsson.
120469
120470        On WK2 only, when accessibility opens a contextual menu, it does not honor the scroll offset. 
120471        On WK1, the attachment views handle this conversion when it's needed, but on WK2 it needs to be done manually
120472        (similar to how the accessibility position is calculated). 
120473
120474        No test. Cannot test the location of context menu popups on WK2 yet.
120475
120476        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
120477        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
120478
1204792013-01-07  Abhishek Arya  <inferno@chromium.org>
120480
120481        Heap-buffer-overflow in WebCore::RenderBlock::clone.
120482        https://bugs.webkit.org/show_bug.cgi?id=101984
120483
120484        Reviewed by Julien Chaffraix.
120485
120486        Add a global in RenderBlock to prevent recursion inside splitFlow.
120487        While inside splitFlow (multi-column handling), we move many children
120488        using fullRemoveInsert=true, causing RenderBlock::addChild to be called
120489        and recursing in splitFlow. This messes the tree splitting happening in
120490        RenderBlock::splitBlocks and can cause bad casts.
120491
120492        Test: fast/multicol/recursive-split-flow-crash.html
120493
120494        * rendering/RenderBlock.cpp:
120495        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
120496
1204972013-01-07  Alok Priyadarshi  <alokp@chromium.org>
120498
120499        [chromium] Fix PlatformContextSkia::setDrawingToImageBuffer abuse
120500        https://bugs.webkit.org/show_bug.cgi?id=104956
120501
120502        Reviewed by James Robinson.
120503
120504        Replaced PlatformContextSkia::SetDrawingToImageBuffer with GraphicsContext::setShouldSmoothFonts.
120505
120506        No new tests needed. No change in functionality.
120507
120508        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp:
120509        (WebCore::CompositorHUDFontAtlas::generateFontAtlas):
120510        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
120511        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
120512        * platform/graphics/skia/ImageBufferSkia.cpp:
120513        (WebCore::ImageBuffer::ImageBuffer):
120514        * platform/graphics/skia/PlatformContextSkia.cpp:
120515        (WebCore::PlatformContextSkia::couldUseLCDRenderedText):
120516        (WebCore):
120517
1205182013-01-07  Enrica Casucci  <enrica@apple.com>
120519
120520        Some characters are not rotated properly in vertical text
120521        https://bugs.webkit.org/show_bug.cgi?id=105663
120522        <rdar://problem/12738911>
120523
120524        Reviewed by Dan Bernstein.
120525
120526        Test: platform/mac/fast/text/vertical-no-sideways.html
120527
120528        * platform/graphics/Font.cpp:
120529        (WebCore::Font::isCJKIdeographOrSymbol): Added several characters to the list.
120530        * platform/graphics/FontFastPath.cpp:
120531        (WebCore::shouldIgnoreRotation): Added
120532        (WebCore::Font::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Added logic to avoid
120533        rotation for all the characters listed in shouldIgnoreRotation.
120534    
1205352013-01-07  Mike West  <mkwst@chromium.org>
120536
120537        Make the IFRAME_SEAMLESS flag runtime-enabled.
120538        https://bugs.webkit.org/show_bug.cgi?id=106213
120539
120540        Reviewed by Ojan Vafai.
120541
120542        Seamless IFrames live behind the IFRAME_SEAMLESS compile-time flag, this
120543        patch adds another layer to that in order to enable runtime decisions
120544        about when it should be active. This will allow ports (Chromium, for
120545        instance) to toggle the feature on/off for particular builds without
120546        recompiling from scratch.
120547
120548        * WebCore.exp.in:
120549        * bindings/generic/RuntimeEnabledFeatures.cpp:
120550        (WebCore):
120551        * bindings/generic/RuntimeEnabledFeatures.h:
120552        (RuntimeEnabledFeatures):
120553        (WebCore::RuntimeEnabledFeatures::seamlessIFramesEnabled):
120554        (WebCore::RuntimeEnabledFeatures::setSeamlessIFramesEnabled):
120555            Add seamless IFrames to the set of runtime controlled features.
120556        * dom/Document.cpp:
120557        (WebCore::Document::shouldDisplaySeamlesslyWithParent):
120558            If seamless IFrames aren't runtime enabled, always return false from
120559            Document::shouldDisplaySeamlesslyWithParent. As this method already
120560            acts as the single gate that controls the rest of the system, it's
120561            the only place we need to make the runtime check.
120562
1205632013-01-07  Eric Carlson  <eric.carlson@apple.com>
120564
120565        LayoutUnit(unsigned long long value) compile failure
120566        https://bugs.webkit.org/show_bug.cgi?id=106239
120567
120568        Cast the result of ('unsigned long long' * 'int') to an int before storing in m_value
120569        to avoid compile failure on some platforms.
120570
120571        Reviewed by Ryosuke Niwa.
120572
120573        * platform/LayoutUnit.h:
120574        (WebCore::LayoutUnit::LayoutUnit): Cast to int after multiplication.
120575
1205762013-01-07  Joe Mason  <jmason@rim.com>
120577
120578        [BlackBerry] Handle the new AuthRetry result code in NetworkJob::notifyAuthReceived
120579        https://bugs.webkit.org/show_bug.cgi?id=106233
120580
120581        Reviewed by Rob Buis.
120582
120583        Internal PR: 270683
120584        FilterStream::notifyAuthReceived has a new result code, AuthRetry. When it's received we
120585        need to handle it by resending the request with the same credentials.
120586
120587        Reviewed internally by Leo Yang.
120588
120589        * platform/network/blackberry/NetworkJob.cpp:
120590        (WebCore::NetworkJob::notifyAuthReceived):
120591        * platform/network/blackberry/NetworkJob.h:
120592        (NetworkJob):
120593
1205942013-01-07  Philip Rogers  <pdr@google.com>
120595
120596        Clear pending container size requests as early as possible
120597        https://bugs.webkit.org/show_bug.cgi?id=106162
120598
120599        Reviewed by Eric Seidel.
120600
120601        http://trac.webkit.org/changeset/137981 contained a bug where pending container size
120602        requests were only cleared for images that use container sizes. Bitmap images do not use
120603        container sizes so these requests were not being cleared. This patch does the trivial
120604        refactoring so that container size requests are cleared as early as possible.
120605
120606        No new tests as this is just a refactoring of some messy code added in r137981.
120607
120608        * loader/cache/CachedImage.cpp:
120609        (WebCore::CachedImage::createImage):
120610
1206112013-01-07  Sheriff Bot  <webkit.review.bot@gmail.com>
120612
120613        Unreviewed, rolling out r137632.
120614        http://trac.webkit.org/changeset/137632
120615        https://bugs.webkit.org/show_bug.cgi?id=106237
120616
120617        Caused major security regressions on ClusterFuzz (Requested by
120618        inferno-sec on #webkit).
120619
120620        * rendering/RenderBlock.cpp:
120621        (WebCore::RenderBlock::startDelayUpdateScrollInfo):
120622        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
120623
1206242013-01-07  Victor Carbune  <victor@rosedu.org>
120625
120626        [Track] Rendering crash
120627        https://bugs.webkit.org/show_bug.cgi?id=106199
120628
120629        Reviewed by Eric Carlson.
120630
120631        The browser is crashing if a text track is added through JavaScript,
120632        due to the fact that the containing block is not marked as inline at
120633        the time RenderTextTrackCue::layout() is called. The fix consists
120634        of ensuring that the pseudo id is set, even if the track isn't
120635        yet visible.
120636
120637        Test: media/track/track-cue-inline-assertion-crash.html
120638
120639        * html/track/TextTrackCue.cpp:
120640        (WebCore::TextTrackCue::updateDisplayTree): The pseudo-id should
120641        be set when the display tree is generated.
120642        (WebCore::TextTrackCue::getDisplayTree): Added extra check to not
120643        do unneccessary logic if the track will never be displayed.
120644
1206452013-01-07  Michael Pruett  <michael@68k.org>
120646
120647        [JSC] Copy non-index properties of arrays in SerializedScriptValue
120648        https://bugs.webkit.org/show_bug.cgi?id=105575
120649
120650        Reviewed by Oliver Hunt.
120651
120652        The structured cloning algorithm requires copying all properties of
120653        array objects, including non-index properties.
120654
120655        Tests: fast/storage/serialized-script-value.html
120656               storage/indexeddb/structured-clone.html
120657
120658        * bindings/js/SerializedScriptValue.cpp:
120659        (WebCore):
120660        (WebCore::CloneSerializer::serialize):
120661        (WebCore::CloneDeserializer::putProperty):
120662        (WebCore::CloneDeserializer::deserialize):
120663
1206642013-01-07  Alec Flett  <alecflett@chromium.org>
120665
120666        IndexedDB: Stub out async IDBDatabaseBackendInterface::createObjectStore
120667        https://bugs.webkit.org/show_bug.cgi?id=106148
120668
120669        Reviewed by Adam Barth.
120670
120671        These methods are becoming async in multiprocess ports, so stub out
120672        versions that have no return values.
120673
120674        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
120675        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
120676        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
120677        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
120678        (IDBDatabaseBackendInterface):
120679
1206802013-01-04  Alexey Proskuryakov  <ap@apple.com>
120681
120682        ResourceHandle::willLoadFromCache is evil
120683        https://bugs.webkit.org/show_bug.cgi?id=106147
120684
120685        Reviewed by Brady Eidson.
120686
120687        For back/forward navigations to a page that's a result of form submission, we may
120688        never silently re-submit the form. So, we show a warning dialog when about to re-submit,
120689        but try to load from cache if possible.
120690
120691        This patch changes the logic so that we always try to fetch from cache, without
120692        any preflighting. If cache load fails, we restart the load as a known re-submit.
120693
120694        No behavior change expected, so no tests.
120695
120696        * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::handleClick):
120697        Added a FIXME.
120698
120699        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::startLoadingMainResource):
120700        Amended a FIXME with some information about why this call may still be needed.
120701
120702        * loader/FrameLoader.h:
120703        * loader/FrameLoader.cpp:
120704        (WebCore::FrameLoader::loadURLIntoChildFrame): Pass an explicit argument for unchanged caching behavior.
120705        (WebCore::FrameLoader::reloadWithOverrideEncoding): Added a FIXME. This function
120706        can silently re-submit a form.
120707        (WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Added a FIXME about
120708        an incorrect use of current load type.
120709        (WebCore::FrameLoader::addExtraFieldsToRequest): Make sure that a correct caching
120710        policy is used for subresources even if main resource was loaded from cache. We
120711        didn't need that before because initial request had wrong extra fields due to a use
120712        of m_loadType when it was first called.
120713        Removed code to change caching policy for b/f navigations. This function does not
120714        have enough context to decide what the policy should be.
120715        (WebCore::FrameLoader::loadDifferentDocumentItem): Added an argument telling the
120716        function whether it should attempt loading from cache. It should do that on first
120717        attempt to navigate to a form submission result, but not if that failed.
120718        Pass a correct loadType - m_loadType is one for _previous_ load.
120719        Removed a special case for https - we've long stopped prohibiting caching of https
120720        resources, and using a resource that's already cached should definitely be allowed.
120721        (WebCore::FrameLoader::loadItem): Pass an explicit argument for unchanged caching behavior.
120722        (WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad): Added.
120723
120724        * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::notifyFinished):
120725        Removed a check for m_resource being null, because we were immediately dereferencing
120726        it anyway.
120727        Call retryAfterFailedCacheOnlyMainResourceLoad() to let FrameLoader restart the navigation.
120728
120729        * platform/network/ResourceHandle.h:
120730        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
120731        * platform/network/cf/ResourceHandleCFNet.cpp:
120732        * platform/network/chromium/ResourceHandle.cpp:
120733        * platform/network/curl/ResourceHandleCurl.cpp:
120734        * platform/network/mac/ResourceHandleMac.mm:
120735        * platform/network/qt/ResourceHandleQt.cpp:
120736        * platform/network/soup/ResourceHandleSoup.cpp:
120737        * platform/network/win/ResourceHandleWin.cpp:
120738        Removed willLoadFromCache() - the new logic is cross-platform.
120739
1207402013-01-07  Alberto Garcia  <agarcia@igalia.com>
120741
120742        [GTK] Disable deprecation warnings for GStaticRecMutex
120743        https://bugs.webkit.org/show_bug.cgi?id=105918
120744
120745        Reviewed by Philippe Normand.
120746
120747        GStaticRecMutex is deprecated since glib 2.32, but we can't remove
120748        it because it's needed by GStreamer 0.10. The solution is to
120749        disable the deprecation warnings for that code alone.
120750
120751        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
120752
1207532013-01-07  Philip Rogers  <pdr@google.com>
120754
120755        Refactor client removal in CachedResource::switchClientsToRevalidatedResource
120756        https://bugs.webkit.org/show_bug.cgi?id=106206
120757
120758        Previously switchClientsToRevalidatedResource() failed to call didRemoveClient() for each
120759        client and instead simply cleared m_clients. This patch removes an incorrect comment and
120760        refactors the code so that removeClient() and didRemoveClient() are properly called.
120761
120762        Reviewed by Nate Chapin.
120763
120764        No new tests as there are no observable changes from this refactoring.
120765
120766        * loader/cache/CachedResource.cpp:
120767        (WebCore::CachedResource::switchClientsToRevalidatedResource):
120768
1207692013-01-07  Julien Chaffraix  <jchaffraix@webkit.org>
120770
120771        Support size_t multiplication and division operators on LayoutUnit
120772        https://bugs.webkit.org/show_bug.cgi?id=83848
120773
120774        Reviewed by Emil A Eklund.
120775
120776        Per Darin's suggestion, adding a version of the operator for most unsigned types (excluding
120777        only unsigned char). This should automatically cover size_t as it should be one of these.
120778
120779        Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
120780
120781        * platform/LayoutUnit.h:
120782        (WebCore::LayoutUnit::LayoutUnit):
120783        (WebCore::operator*):
120784        (WebCore::operator/):
120785        Added the operators and (possibly saturating) constructors for unsigned short, unsigned long,
120786        unsigned long long.
120787
1207882013-01-07  Sheriff Bot  <webkit.review.bot@gmail.com>
120789
120790        Unreviewed, rolling out r138944.
120791        http://trac.webkit.org/changeset/138944
120792        https://bugs.webkit.org/show_bug.cgi?id=106223
120793
120794        It made 28 tests crash (Requested by Ossy on #webkit).
120795
120796        * plugins/qt/PluginPackageQt.cpp:
120797        (WebCore::PluginPackage::fetchInfo):
120798        (WebCore::PluginPackage::load):
120799
1208002013-01-07  peavo@outlook.com  <peavo@outlook.com>
120801
120802        [WinCairo] Build fixes after r138413
120803        https://bugs.webkit.org/show_bug.cgi?id=106087
120804
120805        Reviewed by Alexey Proskuryakov.
120806
120807        * WebCore.vcproj/WebCore.vcproj: Added NetworkStorageSessionStub.cpp,
120808        and removed NetworkStorageSessionCFNet.cpp for WinCairo build.
120809        * platform/win/TemporaryLinkStubs.cpp: Include fix.
120810
1208112013-01-07  David Faure  <faure@kde.org>
120812
120813        [Qt] Major performance improvement in Qt's PluginDatabase implementation
120814        https://bugs.webkit.org/show_bug.cgi?id=106140
120815
120816        Reviewed by Simon Hausmann.
120817
120818        No new tests, only a performance improvement.
120819
120820        * plugins/qt/PluginPackageQt.cpp:
120821        (WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
120822        (WebCore::PluginPackage::load): Use existing module if fetchInfo created it.
120823
1208242013-01-07  Gabor Rapcsanyi  <rgabor@webkit.org>
120825
120826        Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions with NEON intrinsics
120827        https://bugs.webkit.org/show_bug.cgi?id=103614
120828
120829        Reviewed by Zoltan Herczeg.
120830
120831        Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions in GraphicsContext3D
120832        with ARM NEON intrinsics. The optimized functions are 2-3x faster than the origin.
120833
120834        * platform/graphics/GraphicsContext3D.cpp:
120835        (WebCore):
120836        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
120837        (WebCore::SIMD::unpackOneRowOfRGBA16LittleToRGBA8):
120838        (SIMD):
120839        (WebCore::SIMD::unpackOneRowOfRGB16LittleToRGBA8):
120840        (WebCore::SIMD::unpackOneRowOfARGB16LittleToRGBA8):
120841        (WebCore::SIMD::unpackOneRowOfBGRA16LittleToRGBA8):
120842
1208432013-01-07  Christophe Dumez  <christophe.dumez@intel.com>
120844
120845        Regression(r138786): Causes webaudio tests to crash
120846        https://bugs.webkit.org/show_bug.cgi?id=106182
120847
120848        Reviewed by Philippe Normand.
120849
120850        Partially revert r138786 since it causes crashes in webaudio
120851        tests. The WebProcess would actually become unresponsive due
120852        to source element never going to PLAYING state.
120853
120854        Only the changes to webKitWebAudioSrcChangeState() were reverted.
120855
120856        No new tests, already covered by existing tests.
120857
120858        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
120859        (webKitWebAudioSrcChangeState):
120860
1208612013-01-07  Hayato Ito  <hayato@chromium.org>
120862
120863        Cannot compile with ENABLE_SHADOW_DOM=0 and ENABLE_STYLE_SCOPED=1
120864        https://bugs.webkit.org/show_bug.cgi?id=106207
120865
120866        Reviewed by Hajime Morita.
120867
120868        Guard StyleScopeResolver::addHostRule with SHADOW_DOM flag.
120869
120870        No tests, as no change in behavior.
120871
120872        * css/StyleScopeResolver.cpp:
120873        (WebCore):
120874
1208752013-01-07  Jon Lee  <jonlee@apple.com>
120876
120877        Missing amendments to r138927. Amend Changelog to remove item about Timer.h, which was not changed.
120878
120879        * rendering/RenderSnapshottedPlugIn.cpp: Rename stopAndRestartDelayTimer() to resetDelayTimer().
120880        (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
120881        (WebCore::RenderSnapshottedPlugIn::handleEvent):
120882        (WebCore::RenderSnapshottedPlugIn::resetDelayTimer):
120883        * rendering/RenderSnapshottedPlugIn.h:
120884
1208852013-01-06  Jon Lee  <jonlee@apple.com>
120886
120887        Show label automatically for plug-ins of significant size
120888        https://bugs.webkit.org/show_bug.cgi?id=106146
120889        <rdar://problem/12783010>
120890
120891        Reviewed by Simon Fraser.
120892
120893        For significantly sized plug-ins, trigger a timer that displays the label automatically
120894        without requiring the user to mouse over the element first. The trickiness of the logic
120895        here is that there are two delays involved-- one for whether the user mouses over (shorter),
120896        and one for when the label is shown automatically (longer). Mousing over a plug-in that is
120897        marked to show it automatically should have the timer delay switched. And if the label
120898        showed automatically, mousing in and out of the element should not change that label's
120899        state.
120900
120901        * html/HTMLPlugInImageElement.cpp:
120902        (WebCore): Add constants that determine whether the plug-in is of a significant size.
120903        (WebCore::shouldPlugInShowLabelAutomatically): Based on the size of the frame view and the
120904        clipped plug-in size, determine whether the label should show automatically. If the plug-in is
120905        not contained within the bounds of the frame view, or is not at least as large as the threshold
120906        size, then do not show the label automatically.
120907        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): After we've determined that
120908        the plug-in should not auto-start, make a check to see if the label should show automatically.
120909        Also, update some of the logging.
120910        (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Update the logging.
120911
120912        * rendering/RenderSnapshottedPlugIn.h: Rename the timer to m_showLabelDelayTimer since
120913        it can fire for two different reasons. Add some additional state variables, and an enum
120914        to explain why the label appeared.
120915        * rendering/RenderSnapshottedPlugIn.cpp:
120916        (WebCore): Change hoverDelay to showLabelAfterMouseOverDelay. Add a new, longer delay for
120917        when the plug-in is supposed to auto-show the label.
120918        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize the member variables.
120919        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): When the snapshot image is updated,
120920        start the timer to auto-show the label.
120921        (WebCore::RenderSnapshottedPlugIn::paintLabel): Avoid painting the label only if the element
120922        is not hovered and the user was mousing over the plug-in. Otherwise, the plug-in is supposed
120923        to show automatically, and we should paint. Mark the renderer as having showed the label at
120924        least once.
120925        (WebCore::RenderSnapshottedPlugIn::showLabelDelayTimerFired): Renamed to reflect the
120926        purpose of the timer.
120927        (WebCore::RenderSnapshottedPlugIn::setShouldShowLabelAutomatically): Set the variable that
120928        determines whether, in general, this plug-in should show the label automatically even
120929        without user input.
120930        (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user mouses over the plug-in,
120931        only reset the show timer is the label has never appeared before, or if it has, that
120932        it's not because the label was supposed to show automatically. That is, if the label is
120933        supposed to show automatically, the label should remain visible. This is also true when
120934        the user mouses out of the plug-in. If the user moused out before the time had a chance
120935        to fire and show the label for the first time, then we check to see if the plug-in should
120936        be displaying the label automatically, and if so, restart the timer using the longer delay.
120937        (WebCore::RenderSnapshottedPlugIn::stopAndRestartDelayTimer): Convenience function to
120938        update the m_showReason variable, and reset the timer with the appropriate delay.
120939
1209402013-01-06  Abhishek Arya  <inferno@chromium.org>
120941
120942        Heap-use-after-free in DocumentLoader::stopLoading
120943        https://bugs.webkit.org/show_bug.cgi?id=103656
120944
120945        Reviewed by Eric Seidel.
120946
120947        Test: fast/dom/ready-state-change-crash.html
120948
120949        * html/parser/HTMLDocumentParser.cpp:
120950        (WebCore::HTMLDocumentParser::prepareToStopParsing): Bail out
120951        if the parser is detached due to mutation event.
120952        * loader/DocumentLoader.cpp:
120953        (WebCore::DocumentLoader::stopLoading): Move the protectors for
120954        frame and document loader to the start of the function. Call to
120955        m_frame->loader()->stopLoading() can change document ready state
120956        and fire mutation event which might blow the document loader from
120957        underneath.
120958
1209592013-01-06  Takashi Sakamoto  <tasak@google.com>
120960
120961        [Shadow DOM]: crash in WebCore::ElementShadow::setValidityUndetermined
120962        https://bugs.webkit.org/show_bug.cgi?id=106203
120963
120964        Reviewed by Hajime Morita.
120965
120966        InsertionPoint should check whether ElementShadow is available or not
120967        before invoking its methods.
120968
120969        No new tests. Webcomponents_fuzzer reported this bug. Would like to
120970        use the fuzzer to check this issue.
120971
120972        * html/shadow/InsertionPoint.cpp:
120973        (WebCore::InsertionPoint::getDistributedNodes):
120974        (WebCore::InsertionPoint::childrenChanged):
120975        (WebCore::InsertionPoint::insertedInto):
120976        Added ifs to check whether ElementShadow is available or not before
120977        invoking ElementShadow's methods, i.e. setValidityUndetermined,
120978        invalidateDistribution, and ensureDistributionDocument.
120979
1209802013-01-06  Shinya Kawanaka  <shinyak@chromium.org>
120981
120982        RenderImage should not use shadowAncestorNode
120983        https://bugs.webkit.org/show_bug.cgi?id=97871
120984
120985        Reviewed by Dimitri Glazkov.
120986
120987        Since shadowAncestorNode() does not return 0, this if-condition will never hold.
120988        shadowHost() should be used instead.
120989
120990        No change in logic, refactoring.
120991
120992        * rendering/RenderImage.cpp:
120993        (WebCore::RenderImage::hostImageElement):
120994
1209952013-01-06  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
120996
120997        Bug 106177 - [GStreamer] Don't call gst_video_info_from_caps() with non-fixed caps
120998        https://bugs.webkit.org/show_bug.cgi?id=106177
120999
121000        Reviewed by Martin Robinson.
121001
121002        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
121003        (getVideoSizeAndFormatFromCaps):
121004        Don't call gst_video_info_from_caps() with non-fixed caps as
121005        it will cause assertions.
121006
1210072013-01-06  Abhishek Arya  <inferno@chromium.org>
121008
121009        Heap-use-after-free in WebCore::Document::implicitClose
121010        https://bugs.webkit.org/show_bug.cgi?id=105655
121011
121012        Reviewed by Eric Seidel.
121013
121014        Test: fast/dom/window-load-crash.html
121015
121016        * dom/Document.cpp:
121017        (WebCore::Document::implicitClose): RefPtr protect |this| document since it
121018        can be destroyed in the dispatchWindowLoadEvent call.
121019
1210202013-01-06  Mike West  <mkwst@chromium.org>
121021
121022        Seamless: IFrame's padding isn't taken into account when calculating its height.
121023        https://bugs.webkit.org/show_bug.cgi?id=106167
121024
121025        Reviewed by Eric Seidel.
121026
121027        IFrames rendered seamlessly don't currently calculate their height
121028        correctly when padding is applied to the frame itself. This patch adds
121029        padding calculations to RenderIFrame::layoutSeamlessly to ensure that
121030        the seamless frame is correctly sized.
121031
121032        * rendering/RenderIFrame.cpp:
121033        (WebCore::RenderIFrame::layoutSeamlessly):
121034
1210352013-01-05  Ryosuke Niwa  <rniwa@webkit.org>
121036
121037        REGRESSION: [Mac] Intermittent crashes in AXObjectCache::notificationPostTimerFired
121038        https://bugs.webkit.org/show_bug.cgi?id=106106
121039
121040        Reviewed by Eric Seidel.
121041
121042        The crash was cause by notification post timer firing after the object destruction had taken place.
121043        Clear the timer so that this won't happen. Also make sure the document doesn't go away while we're
121044        going through m_notificationsToPost.
121045
121046        No new tests since crashes have been caught by various layout tests, and we can't easily
121047        create a deterministic layout test for this particular crash.
121048
121049        * accessibility/AXObjectCache.cpp:
121050        (WebCore::AXObjectCache::~AXObjectCache):
121051        (WebCore::AXObjectCache::notificationPostTimerFired):
121052
1210532013-01-05  Michael Pruett  <michael@68k.org>
121054
121055        IndexedDB: Replace int64 with int64_t
121056        https://bugs.webkit.org/show_bug.cgi?id=106189
121057
121058        Reviewed by Sam Weinig.
121059
121060        Cleaning up coding inconsistencies, no change in behavior.
121061
121062        Tests: storage/indexeddb/*
121063
121064        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
121065        (WebCore::GetOperation::create):
121066
1210672013-01-05  Elliott Sprehn  <esprehn@chromium.org>
121068
121069        Remove RenderObjectChildList::beforePseudoElementRenderer and afterPseudoElementRenderer
121070        https://bugs.webkit.org/show_bug.cgi?id=106132
121071
121072        Reviewed by Abhishek Arya.
121073
121074        We no longer need the complicated traversals in beforePseudoElementRenderer
121075        and afterPseudoElementRenderer since we can get the renderers of pseudo
121076        elements through the node. This removes all that code and swaps it for
121077        Element::pseudoElementRenderer.
121078
121079        This is possible now that r138850 removed all the now incorrect manual
121080        management of pseudo element renderers from the render tree that was
121081        left over from before the switch to DOM based pseudo elements.
121082
121083        No new tests, just refactoring.
121084
121085        * css/CSSComputedStyleDeclaration.cpp:
121086        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
121087        * dom/Element.cpp:
121088        (WebCore::Element::pseudoElementRenderer):
121089            Added, gets the renderer of the pseudo element by PseudoId if it
121090            exists.
121091        * dom/Element.h:
121092        (Element):
121093        * dom/NodeRenderingTraversal.cpp:
121094        (WebCore::NodeRenderingTraversal::nextSiblingSlow):
121095        (WebCore::NodeRenderingTraversal::previousSiblingSlow):
121096        * rendering/RenderCounter.cpp:
121097        (WebCore::previousInPreOrder):
121098        (WebCore::previousSiblingOrParent):
121099        (WebCore::nextInPreOrder):
121100        * rendering/RenderObject.h:
121101        (WebCore::RenderObject::lastChild):
121102        * rendering/RenderObjectChildList.cpp:
121103        * rendering/RenderObjectChildList.h:
121104        (RenderObjectChildList):
121105        * rendering/RenderTreeAsText.cpp:
121106        (WebCore::counterValueForElement):
121107
1211082013-01-05  Robert Hogan  <robert@webkit.org>
121109
121110        Heap-use-after-free in WebCore::RenderBlock::insertIntoTrackedRendererMaps
121111        https://bugs.webkit.org/show_bug.cgi?id=105654
121112
121113        Reviewed by Simon Fraser.
121114
121115        As with position:relative, position:sticky does not apply to table sections.
121116
121117        Test: fast/block/sticky-position-containing-block-crash.html
121118
121119        * css/StyleResolver.cpp:
121120        (WebCore::StyleResolver::adjustRenderStyle):
121121
1211222013-01-05  Mike West  <mkwst@chromium.org>
121123
121124        Cleanup: mayDisplaySeamlessWithParent -> mayDisplaySeamless_ly_WithParent
121125        https://bugs.webkit.org/show_bug.cgi?id=106169
121126
121127        Reviewed by Eric Seidel.
121128
121129        This patch renames SecurityContext's 'm_mayDisplaySeamlessWithParent' to
121130        'm_mayDisplaySeamlesslyWithParent'. Because adverbs matter.
121131
121132        * dom/Document.cpp:
121133        (WebCore::Document::initSecurityContext):
121134        (WebCore::Document::shouldDisplaySeamlesslyWithParent):
121135        * dom/SecurityContext.cpp:
121136        (WebCore::SecurityContext::SecurityContext):
121137        * dom/SecurityContext.h:
121138        (SecurityContext):
121139
1211402013-01-05  Mike West  <mkwst@chromium.org>
121141
121142        seamless iframes don't take border into account properly and make the iframe too small.
121143        https://bugs.webkit.org/show_bug.cgi?id=90827
121144
121145        Reviewed by Ojan Vafai.
121146
121147        Seamless IFrames were incorrectly calculating their width; borders and
121148        padding of the child document were accidentally left out of the end
121149        result. This tiny patch adds the border/padding width to the calculated
121150        width for the seamless IFrame, bringing things back into line with
121151        expectations.
121152
121153        Test: fast/frames/seamless/seamless-border-padding.html
121154
121155        * rendering/RenderIFrame.cpp:
121156        (WebCore::RenderIFrame::minPreferredLogicalWidth):
121157        (WebCore::RenderIFrame::maxPreferredLogicalWidth):
121158            Add borderAndPaddingLogicalWidth() to the result of both methods.
121159
1211602013-01-05  Min Qin  <qinmin@chromium.org>
121161
121162        MediaControls::show() should make controls opaque
121163        https://bugs.webkit.org/show_bug.cgi?id=106034
121164
121165        Reviewed by Eric Carlson.
121166
121167        When a video enters fullscreen, webkit starts a timer to make the control transparent when the timer expires.
121168        If the user exits fullscreen while the timer expires, webkit will call mediaControls::show().
121169        However, show() actually displays nothing as the control is transparent.
121170        The user had to move his mouse outside the video rect and move it back in order to show the controls.
121171        Simply clicking/moving the mouse inside the video rect will not make the control opaque.
121172        Test: media/video-controls-visible-exiting-fullscreen.html
121173
121174        * html/shadow/MediaControls.cpp:
121175        (WebCore::MediaControls::show):
121176
1211772013-01-05  Alec Flett  <alecflett@chromium.org>
121178
121179        IndexedDB: Migrate backend ObjectStore calls to use transaction id
121180        https://bugs.webkit.org/show_bug.cgi?id=102741
121181
121182        Reviewed by Tony Chang.
121183
121184        Fully migrate 8 core data calls (get, put, setIndexKeys, setIndexesReady,
121185        openCursor, count, deleteRange, and clear) into IDBDatabaseBackendImpl,
121186        combining common code from IDBObjectStoreBackendImpl and IDBIndexBackendImpl
121187        in order to simplify the backend interface. These calls are now
121188        implemented in terms of an int64_t-based transactionId rather than
121189        an IDBTransactionBackendInterface, which simplifies the ownership model
121190        between the frontend and the backend.
121191
121192        In addition, remove references to IDBObjectStoreBackend* from IDBIndex,
121193        as it is no longer needed.
121194
121195        A few duplicate IDB_TRACE methods have been removed from wrapper methods
121196        that call another method that already have IDB_TRACE's.
121197
121198        Finally, IDBCursorBackendImpl now no longer holds onto an 
121199        IDBObjectStoreBackendImpl*, so its destruction and member variables are
121200        simplified, and reordered to match proper destruction order.
121201
121202        * Modules/indexeddb/IDBCursorBackendImpl.cpp: Reordered to account for proper destruction.
121203        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
121204        (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl):
121205        (WebCore::IDBCursorBackendImpl::deleteFunction):
121206        * Modules/indexeddb/IDBCursorBackendImpl.h:
121207        (WebCore::IDBCursorBackendImpl::create):
121208        (IDBCursorBackendImpl):
121209        * Modules/indexeddb/IDBDatabase.h:
121210        (WebCore::IDBDatabase::backend):
121211        (IDBDatabase):
121212        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
121213        (GetOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::*RetrievalOperation
121214        (WebCore::GetOperation::create):
121215        (WebCore::GetOperation::GetOperation):
121216        (WebCore):
121217        (PutOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::*StorageOperation.
121218        (WebCore::PutOperation::create):
121219        (WebCore::PutOperation::PutOperation):
121220        (SetIndexesReadyOperation): Moved from IDBObjectStoreBackendImpl::IndexesReadyOperation
121221        (WebCore::SetIndexesReadyOperation::create): 
121222        (WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
121223        (OpenCursorOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::Open*CursorOperation
121224        (WebCore::OpenCursorOperation::create):
121225        (WebCore::OpenCursorOperation::OpenCursorOperation):
121226        (CountOperation): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::CountOperation
121227        (WebCore::CountOperation::create):
121228        (WebCore::CountOperation::CountOperation):
121229        (DeleteRangeOperation): Moved from IDBObjectStoreBackendImpl::DeleteOperation
121230        (WebCore::DeleteRangeOperation::create):
121231        (WebCore::DeleteRangeOperation::DeleteRangeOperation):
121232        (ClearOperation): Moved from IDBObjectStoreBackendImpl::ClearOperation
121233        (WebCore::ClearOperation::create):
121234        (WebCore::ClearOperation::ClearOperation):
121235        (WebCore::IDBDatabaseBackendImpl::get): Combined from IDBObjectStoreBackendImpl/IDBIndexBackendImpl::get*
121236        (WebCore::GetOperation::perform):
121237        (WebCore::IDBDatabaseBackendImpl::put): Moved from IDBObjectStoreBackendImpl::put
121238        (WebCore::PutOperation::perform):
121239        (WebCore::IDBDatabaseBackendImpl::setIndexKeys): Moved from IDBObjectStoreBackendImpl::setIndexKeys
121240        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
121241        (WebCore::SetIndexesReadyOperation::perform):
121242        (WebCore::IDBDatabaseBackendImpl::openCursor):
121243        (WebCore::IDBDatabaseBackendImpl::count):
121244        (WebCore::CountOperation::perform):
121245        (WebCore::IDBDatabaseBackendImpl::deleteRange):
121246        (WebCore::DeleteRangeOperation::perform):
121247        (WebCore::IDBDatabaseBackendImpl::clear):
121248        (WebCore::ClearOperation::perform):
121249        (WebCore::OpenCursorOperation::perform):
121250        * Modules/indexeddb/IDBIndex.cpp:
121251        (WebCore::IDBIndex::IDBIndex):
121252        (WebCore::IDBIndex::openCursor):
121253        (WebCore::IDBIndex::count):
121254        (WebCore::IDBIndex::openKeyCursor):
121255        (WebCore::IDBIndex::get):
121256        (WebCore::IDBIndex::getKey):
121257        (WebCore::IDBIndex::backendDB):
121258        (WebCore):
121259        * Modules/indexeddb/IDBIndex.h:
121260        (WebCore::IDBIndex::create):
121261        (IDBIndex):
121262        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
121263        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
121264        * Modules/indexeddb/IDBIndexBackendImpl.h:
121265        (WebCore::IDBIndexBackendImpl::create):
121266        (WebCore::IDBIndexBackendImpl::openCursor):
121267        (WebCore::IDBIndexBackendImpl::count):
121268        (WebCore::IDBIndexBackendImpl::openKeyCursor):
121269        (WebCore::IDBIndexBackendImpl::get):
121270        (WebCore::IDBIndexBackendImpl::getKey):
121271        (IDBIndexBackendImpl):
121272        * Modules/indexeddb/IDBObjectStore.cpp:
121273        (WebCore::IDBObjectStore::get):
121274        (WebCore::IDBObjectStore::put):
121275        (WebCore::IDBObjectStore::deleteFunction):
121276        (WebCore::IDBObjectStore::clear):
121277        (WebCore):
121278        (WebCore::IDBObjectStore::createIndex):
121279        (WebCore::IDBObjectStore::index):
121280        (WebCore::IDBObjectStore::openCursor):
121281        (WebCore::IDBObjectStore::count):
121282        (WebCore::IDBObjectStore::backendDB):
121283        * Modules/indexeddb/IDBObjectStore.h:
121284        (WebCore::IDBObjectStore::id):
121285        (IDBObjectStore):
121286        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
121287        (WebCore::IDBObjectStoreBackendImpl::createIndex):
121288        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
121289        (WebCore::IDBObjectStoreBackendImpl::generateKey):
121290        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
121291        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
121292        (WebCore::IDBObjectStoreBackendImpl::get):
121293        (WebCore::IDBObjectStoreBackendImpl::put):
121294        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
121295        (WebCore::IDBObjectStoreBackendImpl::clear):
121296        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
121297        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
121298        (WebCore::IDBObjectStoreBackendImpl::openCursor):
121299        (WebCore::IDBObjectStoreBackendImpl::count):
121300        (IDBObjectStoreBackendImpl):
121301        * Modules/indexeddb/IDBTransactionBackendImpl.h:
121302        (WebCore::IDBTransactionBackendImpl::database):
121303        (IDBTransactionBackendImpl):
121304
1213052013-01-05  Robert Hogan  <robert@webkit.org>
121306
121307        Max width of a floated container with floated children calculated incorrectly
121308        https://bugs.webkit.org/show_bug.cgi?id=47975
121309
121310        Accumulate the width of child floats in the correct counter so that it gets reset
121311        as expected when a subsequent sibling decides to clear it.
121312
121313        Reviewed by Levi Weintraub.
121314
121315        Test: fast/block/float/max-width-clear-float-with-overflow-hidden.html
121316
121317        * rendering/RenderBlock.cpp:
121318        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
121319
1213202013-01-05  Alec Flett  <alecflett@chromium.org>
121321
121322        IndexedDB: Stub out IDBDatabaseBackendInterface::createIndex/deleteIndex
121323        https://bugs.webkit.org/show_bug.cgi?id=106117
121324
121325        Reviewed by Adam Barth.
121326
121327        No new tests, these are just stubs for refactoring.
121328
121329        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
121330        (WebCore::IDBDatabaseBackendImpl::createIndex):
121331        (WebCore::IDBDatabaseBackendImpl::deleteIndex):
121332        (IDBDatabaseBackendImpl):
121333        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
121334        (IDBDatabaseBackendInterface):
121335
1213362013-01-05  Takashi Sakamoto  <tasak@google.com>
121337
121338        [Shadow DOM]: Some named elements in ShadowTree visible on nesting document level
121339        https://bugs.webkit.org/show_bug.cgi?id=105617
121340
121341        Reviewed by Dimitri Glazkov.
121342
121343        According to the shadow dom spec, the nodes and named elements are not
121344        accessible using shadow host's document DOM tree accessors or with
121345        Window object named properties. c.f.
121346        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#upper-boundary-encapsulation
121347
121348        Test: fast/dom/shadow/element-name-in-shadow.html
121349
121350        * dom/Element.h:
121351        (WebCore::Element::updateName):
121352        Check whether the given element is in a shadow dom tree or not. If in
121353        a shadow dom tree, don't register the name.
121354        * html/HTMLIFrameElement.cpp:
121355        (WebCore::HTMLIFrameElement::insertedInto):
121356        (WebCore::HTMLIFrameElement::removedFrom):
121357        (WebCore::HTMLIFrameElement::parseAttribute):
121358        HTMLIFrameElement doesn't use updateName. Instead the element uses
121359        addExtraNamedItem and removeExtraNameItem in HTMLIFrameElement.cpp.
121360
1213612013-01-05  Chris Rogers  <crogers@google.com>
121362
121363        Implement MediaStreamSource::setAudioFormat()
121364        https://bugs.webkit.org/show_bug.cgi?id=106053
121365
121366        Reviewed by Kenneth Russell.
121367
121368        MediaStreamAudioDestinationNode needs to be able to tell its associated
121369        MediaStreamSource about the audio format (number of channels and sample-rate).
121370
121371        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
121372        (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
121373        * platform/audio/AudioDestinationConsumer.h:
121374        (AudioDestinationConsumer):
121375        * platform/chromium/support/WebMediaStreamSource.cpp:
121376        (ConsumerWrapper):
121377        (WebKit::ConsumerWrapper::setFormat):
121378        (WebKit):
121379        * platform/mediastream/MediaStreamSource.cpp:
121380        (WebCore::MediaStreamSource::setAudioFormat):
121381        (WebCore):
121382        * platform/mediastream/MediaStreamSource.h:
121383        (MediaStreamSource):
121384
1213852013-01-05  Zeno Albisser  <zeno@webkit.org>
121386
121387        [Texmap] TextureMapperGL should reset ARRAY_BUFFER after painting.
121388        https://bugs.webkit.org/show_bug.cgi?id=106098
121389
121390        This fixes the issue of the address bar disappearing in
121391        Qt/MiniBrowser after r138555.
121392
121393        Reviewed by Jocelyn Turcotte.
121394
121395        * platform/graphics/texmap/TextureMapperGL.cpp:
121396        (WebCore::TextureMapperGL::drawEdgeTriangles):
121397        (WebCore::TextureMapperGL::drawUnitRect):
121398
1213992013-01-04  Ryosuke Niwa  <rniwa@webkit.org>
121400
121401        Chromium windows compile fails because of the assertion in NodeRareData
121402        https://bugs.webkit.org/show_bug.cgi?id=106149
121403
121404        Reviewed by Andreas Kling.
121405
121406        MSVC adds padding between bitfields of different types for better alignment.
121407        Since we care more about the memory usage, use unsigned for all bitfields to work around this behavior.
121408
121409        * dom/NodeRareData.cpp:
121410        (SameSizeAsNodeRareData):
121411        (WebCore):
121412        * dom/NodeRareData.h:
121413        (WebCore::NodeRareData::isWebVTTNode):
121414        (WebCore::NodeRareData::isWebVTTFutureNode):
121415        (NodeRareData):
121416
1214172013-01-04  Dan Bernstein  <mitz@apple.com>
121418
121419        Updated the exports file.
121420
121421        Rubber-stamped by Andy Estes.
121422
121423        * WebCore.exp.in: Moved the DOMHTMLTableCellElement export out of the !PLATFORM(IOS) section.
121424
1214252013-01-04  Jon Lee  <jonlee@apple.com>
121426
121427        Update margin for label to 0
121428        https://bugs.webkit.org/show_bug.cgi?id=106152
121429        <rdar://problem/12961387>
121430
121431        Reviewed by Brian Weinstein.
121432
121433        * rendering/RenderSnapshottedPlugIn.cpp:
121434        (WebCore): Change the margin constant from 10 to 0.
121435
1214362013-01-04  Benjamin Poulain  <benjamin@webkit.org>
121437
121438        Optimize TransformationMatrix::multiply() for x86_64
121439        https://bugs.webkit.org/show_bug.cgi?id=105719
121440
121441        Reviewed by Sam Weinig.
121442
121443        On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
121444        We can use that in two ways to optimize matrix multiplications:
121445        -Keep the source matrix completely in registers. Write the result directly in
121446         the source matrix's memory. This avoids the memcpy at the end of the multiplication
121447         and various memory operations.
121448        -Use SIMD with SSE to perform 2 operations at a time.
121449
121450        The parameter from the second matrix are loaded one by one in XMM registers.
121451        Loading them with SSE then shuffling the values perform worse than loading
121452        one by one.
121453
121454        This is only enabled on 64bits as x86 only has access to 8 XMM registers and
121455        the function should be written differently.
121456
121457        On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.
121458
121459        * platform/graphics/transforms/TransformationMatrix.cpp:
121460        (WebCore::TransformationMatrix::multiply):
121461        * platform/graphics/transforms/TransformationMatrix.h:
121462        (TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.
121463
1214642013-01-04  Joshua Bell  <jsbell@chromium.org>
121465
121466        Unreviewed, fix Apple Win build following http://trac.webkit.org/changeset/138838
121467        https://bugs.webkit.org/show_bug.cgi?id=105927
121468
121469        * WebCore.vcproj/WebCoreTestSupport.vcproj:
121470
1214712013-01-04  Abhishek Arya  <inferno@chromium.org>
121472
121473        Heap-use-after-free in WebCore::XMLDocumentParser::doEnd
121474        https://bugs.webkit.org/show_bug.cgi?id=100152
121475
121476        Reviewed by Adam Barth.
121477
121478        XMLDocumentParser can be blown away inside document()->styleResolverChanged()
121479        call. Protect it with a local RefPtr in Document::explitClose.    
121480    
121481        No new tests. The site specific dependencies are hard to minimize.
121482
121483        * dom/Document.cpp:
121484        (WebCore::Document::explicitClose): RefPtr m_parser into a local, since
121485        it can be detached and nulled out in DocumentWriter::end().
121486        * xml/parser/XMLDocumentParser.cpp:
121487        (WebCore::XMLDocumentParser::end): Bail out when we are detached.
121488        * xml/parser/XMLDocumentParserLibxml2.cpp:
121489        (WebCore::XMLDocumentParser::doEnd): Bail out when we are detached.
121490        * xml/parser/XMLDocumentParserQt.cpp:
121491        (WebCore::XMLDocumentParser::doEnd): Bail out when we are detached.
121492
1214932013-01-04  Ryosuke Niwa  <rniwa@webkit.org>
121494
121495        REGRESSION(r138394): platform/mac/accessibility/file-upload-button-subrole.html is failing
121496        https://bugs.webkit.org/show_bug.cgi?id=105778
121497
121498        Reviewed by Alexey Proskuryakov.
121499
121500        Rename "file upload" to "file upload button".
121501
121502        * English.lproj/Localizable.strings:
121503        * platform/LocalizedStrings.cpp:
121504
1215052013-01-04  Tim Horton  <timothy_horton@apple.com>
121506
121507        [wk2] Remove non-visible tiles from the layer tree
121508        https://bugs.webkit.org/show_bug.cgi?id=106061
121509        <rdar://problem/12761821>
121510
121511        Reviewed by Simon Fraser.
121512
121513        Unparenting tiles which aren't currently on-screen can allow underlying
121514        frameworks to manage the layer's backing stores more effectively than we can.
121515
121516        In addition, add a setting (AggressiveTileRetentionEnabled) which keeps more
121517        tiles around (we don't remove tiles in cohorts, nor when the TileCache moves
121518        out of the window), which is off by default.
121519
121520        * WebCore.exp.in: Export Settings::setAggressiveTileRetentionEnabled.
121521        * page/Settings.cpp:
121522        (WebCore::Settings::Settings): Initialize m_aggressiveTileRetentionEnabled to false.
121523        (WebCore::Settings::setAggressiveTileRetentionEnabled): Added.
121524        * page/Settings.h:
121525        (WebCore::Settings::aggressiveTileRetentionEnabled): Added.
121526        * platform/graphics/TiledBacking.h: Add setter/getter to hand aggressivelyRetainsTiles through to TiledBackings.
121527        * platform/graphics/ca/mac/TileCache.h:
121528        (TileCache): Turn TileValidationPolicy into TileValidationPolicyFlags, and add
121529        a flag for unparenting all tiles.
121530        Implement aggressivelyRetainsTiles setter/getter.
121531        * platform/graphics/ca/mac/TileCache.mm:
121532        (WebCore::TileCache::TileCache): Initialize m_aggressivelyRetainsTiles to false.
121533        (WebCore::TileCache::setIsInWindow): Revalidate tiles immediately if the TileCache has just entered the window.
121534        (WebCore::TileCache::tileRevalidationTimerFired):
121535        This is called if coverage rect, tile cache layer bounds, or visibility changes. We will revalidate tiles:
121536            - Removing all tiles from the layer tree for background tile caches.
121537            - Not pruning old tiles if the aggressiveTileRetentionEnabled setting is on.
121538        (WebCore::TileCache::revalidateTiles):
121539        Adopt TileValidationPolicyFlags instead of the old enum, and use separate flags for foreground/background caches.
121540        Unparent tiles when they move out of the tile coverage rect.
121541        Only schedule the tile cohort removal timer if we're not aggressively keeping tiles around.
121542        Ensure that tiles are re-added to the TileCache layer tree if they already exist.
121543        Unparent all tiles if TileValidationPolicyFlags says to (from tileRevalidationTimerFired's background flags).
121544        Only add new tiles to the TileCache's layer tree if we're currently in the window.
121545        Don't prune secondary tiles if the visible rect changes; this will already occur because when the visibleRect
121546        changes, we arrive via tileRevalidationTimerFired, which asks for PruneSecondaryTiles anyway (except if we're
121547        aggressively retaining tiles). This prevents tiles from being deleted unexpectedly during rubber-banding or when zoomed (this part of the patch is thanks to Simon).
121548        (WebCore::TileCache::ensureTilesForRect):
121549        Don't ensure any tiles if the TileCache is offscreen.
121550        Ensure that tiles are re-added to the TileCache layer tree if they already exist.
121551        (WebCore::TileCache::drawTileMapContents):
121552        Draw a thick purple border around tiles that have been unparented.
121553
1215542013-01-04  Adam Barth  <abarth@webkit.org>
121555
121556        HTMLTreeBuilder should ASSERT that it is on the main thread before touching elements
121557        https://bugs.webkit.org/show_bug.cgi?id=106128
121558
121559        Reviewed by Eric Seidel.
121560
121561        Even if we move the HTML parser onto a background thread, we're likely
121562        to keep fragment parsing on the main thread. These code paths touch
121563        elements (which only exist on the main thread) but are only used during
121564        fragment parsing. This patch adds ASSERTs to document that invariant.
121565
121566        * html/parser/HTMLTreeBuilder.cpp:
121567        (WebCore::closestFormAncestor):
121568        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
121569
1215702013-01-04  Zoltan Horvath  <zoltan@webkit.org>
121571
121572        [CSS Regions] @region rules inside media queries are ignored
121573        https://bugs.webkit.org/show_bug.cgi?id=102388
121574
121575        Reviewed by David Hyatt.
121576
121577        Using @region rules in media queries was ignored, but we should accept and apply it.
121578
121579        Tests: fast/regions/region-rule-nested-region-rule.html
121580               fast/regions/region-styling-mediaquery.html
121581
121582        * css/CSSGrammar.y.in: Add new ruleList for region rule to handle the media query case
121583        and avoid using nested region rules.
121584        * css/RuleSet.cpp:
121585        (WebCore::RuleSet::addRulesFromSheet): Add case for region rules inside media queries.
121586
1215872013-01-04  Dan Bernstein  <mitz@apple.com>
121588
121589        [mac] WebKit1 has no equivalent of WKBundleNodeHandleCopyHTMLTableCellElementCellAbove
121590        https://bugs.webkit.org/show_bug.cgi?id=106121
121591
121592        Reviewed by Adele Peterson.
121593
121594        Test: TestWebKitAPI/Tests/mac/DOMHTMLTableCellCellAbove.mm.
121595
121596        * bindings/objc/DOM.mm:
121597        (-[DOMHTMLTableCellElement _cellAbove]): Added. Calls HTMLTableCellElement::cellAbove().
121598        * bindings/objc/DOMPrivate.h: Added declaration of the above.
121599
1216002013-01-04  Abhishek Arya  <inferno@chromium.org>
121601
121602        Crash in WebCore::RenderBlock::willBeDestroyed
121603        https://bugs.webkit.org/show_bug.cgi?id=103455
121604
121605        Reviewed by Eric Seidel.
121606
121607        It is not required to set beforeChild to :after child since DOM is
121608        now pseudo element aware. See trac.webkit.org/changeset/137336. We
121609        were incorrectly placing the inline continuation before the :after
121610        content.       
121611          
121612        Test: fast/multicol/continuation-crash.html
121613
121614        * rendering/RenderBlock.cpp:
121615        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): remove beforeChild
121616        setting to afterPseudoElementRenderer.
121617        * rendering/RenderRuby.cpp:
121618        (WebCore::RenderRubyAsInline::addChild): add missing beforeChild argument.
121619        setting to afterPseudoElementRenderer.
121620        (WebCore::RenderRubyAsBlock::addChild): add missing beforeChild argument.
121621        * rendering/RenderTable.cpp:
121622        (WebCore::RenderTable::addChild): remove beforeChild
121623        setting to afterPseudoElementRenderer.
121624        * rendering/RenderTableRow.cpp:
121625        (WebCore::RenderTableRow::addChild): remove beforeChild
121626        setting to afterPseudoElementRenderer.
121627        * rendering/RenderTableSection.cpp:
121628        (WebCore::RenderTableSection::addChild): remove beforeChild
121629        setting to afterPseudoElementRenderer.
121630
1216312013-01-04  Chris Rogers  <crogers@google.com>
121632
121633        Implement WebIDL-style string constants in WebAudio (part 2)
121634        https://bugs.webkit.org/show_bug.cgi?id=105977
121635
121636        Reviewed by Kentaro Hara.
121637
121638        See Deprecation Notes for more detail:
121639        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DeprecationNotes
121640
121641        PannerNode, BiquadFilterNode, OscillatorNode constants must support WebIDL-style string constants.
121642        Legacy support in the setters for the old integer values should be supported.
121643        This patch handles the changes for BiquadFilterNode and PannerNode.
121644             
121645        Test: webaudio/pannernode-basic.html
121646
121647        * GNUmakefile.list.am:
121648        * Modules/webaudio/BiquadFilterNode.cpp:
121649        (WebCore::BiquadFilterNode::type):
121650        (WebCore):
121651        (WebCore::BiquadFilterNode::setType):
121652        * Modules/webaudio/BiquadFilterNode.h:
121653        (BiquadFilterNode):
121654        * Modules/webaudio/BiquadFilterNode.idl:
121655        * Modules/webaudio/PannerNode.cpp:
121656        (WebCore::PannerNode::panningModel):
121657        (WebCore):
121658        (WebCore::PannerNode::setPanningModel):
121659        (WebCore::PannerNode::distanceModel):
121660        (WebCore::PannerNode::setDistanceModel):
121661        * Modules/webaudio/PannerNode.h:
121662        (PannerNode):
121663        * Modules/webaudio/PannerNode.idl:
121664        * Target.pri:
121665        * UseJSC.cmake:
121666        * UseV8.cmake:
121667        * WebCore.gypi:
121668        * WebCore.xcodeproj/project.pbxproj:
121669        * bindings/js/JSBiquadFilterNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
121670        (WebCore):
121671        (WebCore::JSBiquadFilterNode::setType):
121672        * bindings/js/JSPannerNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
121673        (WebCore):
121674        (WebCore::JSPannerNode::setPanningModel):
121675        (WebCore::JSPannerNode::setDistanceModel):
121676        * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp.
121677        (WebCore):
121678        (WebCore::V8BiquadFilterNode::typeAccessorSetter):
121679        * bindings/v8/custom/V8PannerNodeCustom.cpp: Added.
121680        (WebCore):
121681        (WebCore::V8PannerNode::panningModelAccessorSetter):
121682        (WebCore::V8PannerNode::distanceModelAccessorSetter):
121683
1216842013-01-04  Rick Byers  <rbyers@chromium.org>
121685
121686        window.Touch and TouchList should exist when touch events are enabled
121687        https://bugs.webkit.org/show_bug.cgi?id=96295
121688
121689        Reviewed by Kentaro Hara.
121690
121691        Add missing window.Touch and window.TouchList constructors under
121692        ENABLE(TOUCH_EVENTS).
121693
121694        Make window.Touch, window.TouchList and window.TouchEvent enabled at runtime
121695        under V8, to be consistent with all the other touch-related APIs.
121696
121697        Tests: fast/events/touch/document-create-touch-list.html
121698           fast/js/global-constructors.html
121699
121700        * bindings/generic/RuntimeEnabledFeatures.h:
121701        * dom/Document.idl:
121702        * dom/Element.idl:
121703        * page/DOMWindow.idl:
121704
1217052013-01-04  Adam Klein  <adamk@chromium.org>
121706
121707        [v8] Stop using an IDL to generate V8MutationCallback
121708        https://bugs.webkit.org/show_bug.cgi?id=106122
121709
121710        Reviewed by Adam Barth.
121711
121712        The only real code in the generated V8MutationCallback.{h,cpp} files
121713        were specifically written in CodeGeneratorV8 for its use. By instead
121714        Using completely-hand-written versions of these files, the
121715        CodeGenerator can be simplified (as can all generated Callbacks).
121716        All the actually shared code is still shared via subclassing of
121717        ActiveDOMCallback.
121718
121719        This introduces additional flexibility into the implementation of
121720        MutationCallback which will be used when fixing the MutationObserver
121721        memory leak (http://webkit.org/b/90661) for JSC.
121722
121723        No changes to JSC for now, just a FIXME in the IDL file.
121724
121725        No new tests, refactoringonly.
121726
121727        * WebCore.gypi:
121728        * bindings/scripts/CodeGeneratorV8.pm:
121729        (GenerateCallbackHeader):
121730        (GenerateCallbackImplementation):
121731        * bindings/scripts/test/V8/V8TestCallback.cpp:
121732        (WebCore::V8TestCallback::V8TestCallback):
121733        * bindings/scripts/test/V8/V8TestCallback.h:
121734        (WebCore::V8TestCallback::create):
121735        (V8TestCallback):
121736        * bindings/v8/V8MutationCallback.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MutationCallbackCustom.cpp.
121737        (WebCore::V8MutationCallback::V8MutationCallback):
121738        (WebCore::V8MutationCallback::handleEvent):
121739        * bindings/v8/V8MutationCallback.h: Added.
121740        (V8MutationCallback):
121741        (WebCore::V8MutationCallback::create):
121742        (WebCore::V8MutationCallback::weakCallback):
121743        * dom/MutationCallback.idl:
121744
1217452013-01-04  Tony Chang  <tony@chromium.org>
121746
121747        Remove some autogenerated settings from InternalSettings.idl
121748        https://bugs.webkit.org/show_bug.cgi?id=106114
121749
121750        Reviewed by Ojan Vafai.
121751
121752        Remove 6 methods that are now autogenerated.
121753        setAcceleratedFiltersEnabled was never called.
121754        AcceleratedCompositingForOverflowScrollEnabled was never backed up/restored.
121755        setEnableCompositingForFixedPosition and setEnableCompositingForScrollableFrames
121756        are renamed to match the name in Settings.in.
121757
121758        No new tests, there should be no change in behavior. This is covered by
121759        existing tests in compositing and platform/chromium/compositing.
121760
121761        * testing/InternalSettings.cpp:
121762        (WebCore::InternalSettings::Backup::Backup): Remove code.
121763        (WebCore::InternalSettings::Backup::restoreTo): Remove code.
121764        * testing/InternalSettings.h:
121765        (Backup): Remove member variables.
121766        (InternalSettings):
121767        * testing/InternalSettings.idl: Remove methods that are no longer used.
121768
1217692013-01-04  Ojan Vafai  <ojan@chromium.org>
121770
121771        Vertical writing mode can overflow fixed size grandparent container
121772        https://bugs.webkit.org/show_bug.cgi?id=93655
121773
121774        Reviewed by David Hyatt.
121775
121776        Add a hook to RenderBox::availableHeight to exclude the containing block's
121777        margin, border and padding. This is for auto-sizing perpendicular writing modes
121778        to restrict to the minimum of the fill-available height and the viewport height.
121779
121780        This will be used in a future patch to implement "height: fill-available".
121781
121782        This behavior was recently specced in http://dev.w3.org/csswg/css3-sizing/#extrinsic-sizing.
121783
121784        Test: fast/writing-mode/auto-sizing-orthogonal-flows.html
121785
121786        * rendering/RenderBox.cpp:
121787        (WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
121788        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
121789        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
121790        (WebCore::RenderBox::availableLogicalHeight):
121791        (WebCore::RenderBox::availableLogicalHeightUsing):
121792        * rendering/RenderBox.h:
121793        (RenderBox):
121794        (WebCore::RenderBox::availableWidth):
121795        (WebCore::RenderBox::availableHeight):
121796        * rendering/RenderImage.cpp:
121797        (WebCore::RenderImage::computeIntrinsicRatioInformation):
121798        * rendering/RenderView.cpp:
121799        (WebCore::RenderView::availableLogicalHeight):
121800        * rendering/RenderView.h:
121801        * rendering/svg/RenderSVGRoot.cpp:
121802        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
121803
1218042013-01-04  Joshua Bell  <jsbell@chromium.org>
121805
121806        Add tests for WebIDL type conversions
121807        https://bugs.webkit.org/show_bug.cgi?id=105927
121808
121809        Reviewed by Adam Barth.
121810
121811        Expose attributes of various WebIDL types for testing ECMAScript value conversion,
121812        including edge cases such as NaNs, Infinities, etc. These attributes hang off
121813        a TypeConversions object created via window.internals.typeConversions().
121814
121815        Test: fast/js/webidl-type-mapping.html
121816
121817        * CMakeLists.txt:
121818        * DerivedSources.make:
121819        * DerivedSources.pri:
121820        * GNUmakefile.list.am:
121821        * Target.pri:
121822        * WebCore.gyp/WebCore.gyp:
121823        * WebCore.gypi:
121824        * WebCore.vcproj/WebCoreTestSupport.vcproj:
121825        * WebCore.xcodeproj/project.pbxproj:
121826        * testing/Internals.cpp:
121827        (WebCore::Internals::typeConversions):
121828        (WebCore):
121829        * testing/Internals.h:
121830        (WebCore):
121831        * testing/Internals.idl:
121832        * testing/TypeConversions.h: Added.
121833        (WebCore):
121834        (TypeConversions):
121835        (WebCore::TypeConversions::create):
121836        (WebCore::TypeConversions::testLong):
121837        (WebCore::TypeConversions::setTestLong):
121838        (WebCore::TypeConversions::testUnsignedLong):
121839        (WebCore::TypeConversions::setTestUnsignedLong):
121840        (WebCore::TypeConversions::testLongLong):
121841        (WebCore::TypeConversions::setTestLongLong):
121842        (WebCore::TypeConversions::testUnsignedLongLong):
121843        (WebCore::TypeConversions::setTestUnsignedLongLong):
121844        (WebCore::TypeConversions::TypeConversions):
121845        * testing/TypeConversions.idl: Added.
121846
1218472013-01-04  Stephen White  <senorblanco@chromium.org>
121848
121849        Invalidation of some SVG filter attributes on HTML content doesn't work 
121850        https://bugs.webkit.org/show_bug.cgi?id=105635
121851
121852        Reviewed by Dirk Schulze.
121853
121854        Since HTML elements with filters are only added to m_clientLayers, not
121855        m_clients, and do not use the FilterInfo used by SVG filters on SVG
121856        elements, they must be invalidated separately.  Some filter attribute
121857        invalidations call markAllClientsForInvalidation(), but some call
121858        markClientForInvalidation() directly.  These invaldations must also 
121859        invalidate m_clientLayers.
121860
121861        Test: css3/filters/reference-filter-update-on-attribute-change.html
121862
121863        * rendering/svg/RenderSVGResourceContainer.cpp:
121864        (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
121865        (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
121866        * rendering/svg/RenderSVGResourceContainer.h:
121867        Refactor client layer invalidation out into its own function.
121868        * rendering/svg/RenderSVGResourceFilter.cpp:
121869        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
121870        Mark all client layers for invalidation when a filter primitve attribute is
121871        changed.
121872
1218732013-01-04  Mike West  <mkwst@chromium.org>
121874
121875        CSP 1.1: Experiment with adding line numbers to violation reports.
121876        https://bugs.webkit.org/show_bug.cgi?id=105374
121877
121878        Reviewed by Adam Barth.
121879
121880        Line numbers and URLs were added to the CSP 1.1 spec in
121881        https://dvcs.w3.org/hg/content-security-policy/rev/e0270baace3d, and
121882        already exist (and have for quite some time) in Firefox's
121883        implementation. Based on developer feedback, it seems reasonable to
121884        experiment a bit with adding them to WebKit's violation reports.
121885        This patch generates a stack trace when constructing the violation
121886        report object (iff a violation report object ought to be generated)
121887        and adds a line number and URL to the object if possible.
121888
121889        Tests: http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.html
121890               http/tests/security/contentSecurityPolicy/report-uri-from-javascript.html
121891
121892        * page/ContentSecurityPolicy.cpp:
121893        (WebCore::ContentSecurityPolicy::reportViolation):
121894            Generate a stack trace when building the violation report: if it
121895            has relevant detail, add the line number and URL to the report
121896            object.
121897
1218982013-01-04  Mike Lawther  <mikelawther@chromium.org>
121899
121900        CSS3 calc: working with translate and scale transforms
121901        https://bugs.webkit.org/show_bug.cgi?id=105985
121902
121903        Reviewed by Ojan Vafai.
121904
121905        Allow convertTo[Float|Int]Length functions to process calculated values.
121906
121907        Tests: css3/calc/transforms-scale.html
121908               css3/calc/transforms-translate.html
121909
121910        * css/StyleResolver.cpp:
121911        (WebCore::StyleResolver::convertToIntLength):
121912        (WebCore::StyleResolver::convertToFloatLength):
121913
1219142013-01-04  Elliott Sprehn  <esprehn@chromium.org>
121915
121916        PseudoElement should never dispatch events
121917        https://bugs.webkit.org/show_bug.cgi?id=106048
121918
121919        Reviewed by Ojan Vafai.
121920
121921        The new DOM based generated content can sometimes dispatch events
121922        as a result of animations or transitions which is incorrect as it
121923        exposes the PseudoElement to script. All event dispatch from a
121924        PseudoElement should be ignored.
121925
121926        Per discussions with Tab Atkins in the future we might add support
121927        by making events dispatched from a pseudo element fire with the
121928        target as the parent element and add a new pseudo property to
121929        events that has the value "before" or "after".
121930
121931        Test: fast/css-generated-content/pseudo-element-events.html
121932
121933        * dom/PseudoElement.h:
121934
1219352013-01-04  Benjamin Poulain  <benjamin@webkit.org>
121936
121937        WebKitCSSTransformValue::customCssText() should always allocate once
121938        https://bugs.webkit.org/show_bug.cgi?id=105445
121939
121940        Reviewed by Alexis Menard.
121941
121942        When converting a WebKitCSSTransformValue to a String representation,
121943        it was typically done with 2 memory allocations due to the string size in StringBuilder.
121944
121945        This patch changes the code to use the String Concatenate operations in order
121946        to create the string at once.
121947
121948        The opening parenthesis is also moved in the prefix name in order to maximize
121949        the range copied with memcopy.
121950
121951        * css/WebKitCSSTransformValue.cpp:
121952        (WebCore::transformValueToCssString): New generic function for boxing values.
121953        (WebCore::WebKitCSSTransformValue::customCssText):
121954        (WebCore::WebKitCSSTransformValue::customSerializeResolvingVariables):
121955
1219562013-01-04  James Robinson  <jamesr@chromium.org>
121957
121958        [chromium] WebTransformationMatrix shouldn't alias memory for TransformationMatrix
121959        https://bugs.webkit.org/show_bug.cgi?id=106025
121960
121961        Reviewed by Adrienne Walker.
121962
121963        * platform/chromium/support/WebTransformationMatrix.cpp:
121964        (WebKit::WebTransformationMatrix::WebTransformationMatrix):
121965        (WebKit::WebTransformationMatrix::reset):
121966        (WebKit):
121967        (WebKit::WebTransformationMatrix::operator=):
121968        (WebKit::WebTransformationMatrix::operator==):
121969        (WebKit::WebTransformationMatrix::inverse):
121970        (WebKit::WebTransformationMatrix::to2dTransform):
121971        (WebKit::WebTransformationMatrix::multiply):
121972        (WebKit::WebTransformationMatrix::makeIdentity):
121973        (WebKit::WebTransformationMatrix::translate):
121974        (WebKit::WebTransformationMatrix::translate3d):
121975        (WebKit::WebTransformationMatrix::translateRight3d):
121976        (WebKit::WebTransformationMatrix::scale):
121977        (WebKit::WebTransformationMatrix::scaleNonUniform):
121978        (WebKit::WebTransformationMatrix::scale3d):
121979        (WebKit::WebTransformationMatrix::rotate):
121980        (WebKit::WebTransformationMatrix::rotate3d):
121981        (WebKit::WebTransformationMatrix::skewX):
121982        (WebKit::WebTransformationMatrix::skewY):
121983        (WebKit::WebTransformationMatrix::applyPerspective):
121984        (WebKit::WebTransformationMatrix::blend):
121985        (WebKit::WebTransformationMatrix::hasPerspective):
121986        (WebKit::WebTransformationMatrix::isInvertible):
121987        (WebKit::WebTransformationMatrix::isBackFaceVisible):
121988        (WebKit::WebTransformationMatrix::isIdentity):
121989        (WebKit::WebTransformationMatrix::isIdentityOrTranslation):
121990        (WebKit::WebTransformationMatrix::isIntegerTranslation):
121991        (WebKit::WebTransformationMatrix::m11):
121992        (WebKit::WebTransformationMatrix::setM11):
121993        (WebKit::WebTransformationMatrix::m12):
121994        (WebKit::WebTransformationMatrix::setM12):
121995        (WebKit::WebTransformationMatrix::m13):
121996        (WebKit::WebTransformationMatrix::setM13):
121997        (WebKit::WebTransformationMatrix::m14):
121998        (WebKit::WebTransformationMatrix::setM14):
121999        (WebKit::WebTransformationMatrix::m21):
122000        (WebKit::WebTransformationMatrix::setM21):
122001        (WebKit::WebTransformationMatrix::m22):
122002        (WebKit::WebTransformationMatrix::setM22):
122003        (WebKit::WebTransformationMatrix::m23):
122004        (WebKit::WebTransformationMatrix::setM23):
122005        (WebKit::WebTransformationMatrix::m24):
122006        (WebKit::WebTransformationMatrix::setM24):
122007        (WebKit::WebTransformationMatrix::m31):
122008        (WebKit::WebTransformationMatrix::setM31):
122009        (WebKit::WebTransformationMatrix::m32):
122010        (WebKit::WebTransformationMatrix::setM32):
122011        (WebKit::WebTransformationMatrix::m33):
122012        (WebKit::WebTransformationMatrix::setM33):
122013        (WebKit::WebTransformationMatrix::m34):
122014        (WebKit::WebTransformationMatrix::setM34):
122015        (WebKit::WebTransformationMatrix::m41):
122016        (WebKit::WebTransformationMatrix::setM41):
122017        (WebKit::WebTransformationMatrix::m42):
122018        (WebKit::WebTransformationMatrix::setM42):
122019        (WebKit::WebTransformationMatrix::m43):
122020        (WebKit::WebTransformationMatrix::setM43):
122021        (WebKit::WebTransformationMatrix::m44):
122022        (WebKit::WebTransformationMatrix::setM44):
122023        (WebKit::WebTransformationMatrix::a):
122024        (WebKit::WebTransformationMatrix::setA):
122025        (WebKit::WebTransformationMatrix::b):
122026        (WebKit::WebTransformationMatrix::setB):
122027        (WebKit::WebTransformationMatrix::c):
122028        (WebKit::WebTransformationMatrix::setC):
122029        (WebKit::WebTransformationMatrix::d):
122030        (WebKit::WebTransformationMatrix::setD):
122031        (WebKit::WebTransformationMatrix::e):
122032        (WebKit::WebTransformationMatrix::setE):
122033        (WebKit::WebTransformationMatrix::f):
122034        (WebKit::WebTransformationMatrix::setF):
122035        (WebKit::WebTransformationMatrix::toWebCoreTransform):
122036
1220372013-01-04  Stephen White  <senorblanco@chromium.org>
122038
122039        CSS url() filters with forward references don't work
122040        https://bugs.webkit.org/show_bug.cgi?id=90405
122041
122042        Based on a patch by Keyar Hood.
122043
122044        Reviewed by Dirk Schulze.
122045
122046        In order for CSS to reference SVG filters that will occur later in
122047        the document, or will be added at a future time, we need a way to
122048        notify the target element (the one the filter style is applied to)
122049        when the correct SVG filter is added to the DOM.
122050        There is already code for SVG elements that handles this problem, in
122051        SVGResourcesCache. This patch allows any element to have a reference to
122052        an SVG element in SVGResourceCache.
122053
122054        Tests: css3/filters/effect-reference-after.html
122055               css3/filters/effect-reference-delete-crash.html
122056               css3/filters/effect-reference-delete.html
122057               css3/filters/effect-reference-removed-while-pending-resources.html
122058               css3/filters/effect-reference-rename.html
122059               css3/filters/effect-reference-reset-style-delete-crash.html
122060               svg/filters/filter-cycle.html
122061
122062        * dom/Element.cpp:
122063        (WebCore::Element::~Element):
122064        (WebCore::Element::removedFrom):
122065        When an Element is deleted or removed from its container, and it
122066        has pending resources, remove it from the SVGResourceCache resources
122067        on deletion or when removed from its container.
122068        (WebCore::Element::hasPendingResources):
122069        (WebCore::Element::setHasPendingResources):
122070        (WebCore::Element::clearHasPendingResources):
122071        Accessors for ElementRareData's new bit flag.
122072        * dom/Element.h:
122073        (WebCore::Element::buildPendingResource):
122074        Virtual function to override for referenced elements (moved from SVGElement).
122075        * dom/ElementRareData.h:
122076        (WebCore::ElementRareData::hasPendingResources):
122077        (WebCore::ElementRareData::setHasPendingResources):
122078        (WebCore::ElementRareData::ElementRareData):
122079        Add a new bit flag to indicate whether the element depends on pending resources or not, and accessors.
122080        * dom/NodeRareData.h:
122081        (WebCore::NodeRareData::NodeRareData):
122082        (NodeRareData):
122083        The actual flag bit lives in NodeRareData, so it compacts better with
122084        other flags.
122085        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
122086        (WebCore::BitmapTextureImageBuffer::applyFilters):
122087        Changed to the new function signature for FilterEffectRenderer::build().
122088        * rendering/FilterEffectRenderer.cpp:
122089        (WebCore::createCustomFilterEffect):
122090        (WebCore::FilterEffectRenderer::buildReferenceFilter):
122091        Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.  If the referenced filter cannot be found, add its id as a pending reference.
122092        (WebCore::FilterEffectRenderer::build):
122093        * rendering/FilterEffectRenderer.h:
122094        Change to signatures of build() and buildReferenceFilter() to pass
122095        * rendering/RenderLayer.cpp:
122096        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
122097        Use the new semantics for FilterEffectRenderer::build().
122098        * rendering/svg/RenderSVGResourceContainer.cpp:
122099        (WebCore::RenderSVGResourceContainer::registerResource):
122100        Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
122101        on the element, since we want to support generic Elements.
122102        * rendering/svg/SVGResourcesCache.cpp:
122103        (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
122104        (WebCore::SVGResourcesCache::clientStyleChanged):
122105        For non-SVG elements, set a synthetic style change when parent resources
122106        are invalidated.
122107        (WebCore::SVGResourcesCache::resourceDestroyed):
122108        Add support for non-SVG Elements.
122109        * svg/SVGDocumentExtensions.cpp:
122110        (WebCore::SVGDocumentExtensions::addPendingResource):
122111        (WebCore::SVGDocumentExtensions::isElementPendingResources):
122112        (WebCore::SVGDocumentExtensions::isElementPendingResource):
122113        Changed to allow use of Element instead of SVGElement.
122114        (WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
122115        Moved from SVGElement, and made to work on any Element.  This way,
122116        we avoid adding this function to Element itself.
122117        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
122118        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
122119        Changed to allow use of Element instead of SVGElement.
122120        * svg/SVGDocumentExtensions.h:
122121        SVGElement -> Element.
122122        * svg/SVGElement.cpp:
122123        (WebCore::SVGElement::~SVGElement):
122124        (WebCore::SVGElement::removedFrom):
122125        Don't handle pending resource notifications (Element will do it).
122126        * svg/SVGElement.h:
122127        All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
122128        * svg/SVGElementRareData.h:
122129        (WebCore::SVGElementRareData::SVGElementRareData):
122130        m_hasPendingResources and accessors moved to ElementRareData.
122131        * svg/SVGStyledElement.cpp:
122132        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
122133        SVGElement -> Element, and call SVGDocumentExtensions for
122134        clearHasPendingResourcesIfPossible().
122135
1221362013-01-04  John Mellor  <johnme@chromium.org>
122137
122138        Clamp font sizes to valid range in RenderStyle::setFontSize
122139        https://bugs.webkit.org/show_bug.cgi?id=106014
122140
122141        Reviewed by Emil A Eklund.
122142
122143        There is a test-case attached to http://crbug.com/167443, but I can't
122144        think of a good way of automatically testing this. Functionality
122145        shouldn't change on normal pages.
122146
122147        * rendering/style/RenderStyleConstants.h:
122148            Add constant for maximum allowed font size.
122149        * css/StyleBuilder.cpp:
122150        (WebCore::ApplyPropertyFontSize::applyValue):
122151            Use constant from RenderStyleConstants.h instead of hardcoding.
122152        * css/StyleResolver.cpp:
122153        (WebCore::StyleResolver::getComputedSizeFromSpecifiedSize):
122154            Use constant from RenderStyleConstants.h instead of hardcoding.
122155        * rendering/style/RenderStyle.cpp:
122156        (WebCore::RenderStyle::setFontSize):
122157            Clamp non-finite and out of range font sizes.
122158
1221592013-01-04  Mike West  <mkwst@chromium.org>
122160
122161        CSP: Blocked 'track' sources should only log once to the console.
122162        https://bugs.webkit.org/show_bug.cgi?id=106091
122163
122164        Reviewed by Eric Carlson.
122165
122166        HTMLTrackElement posts a message to the console when track data is
122167        blocked by Content Security Policy. Now that we're logging inside the
122168        ContentSecurityPolicy object itself, there's no need for the
122169        duplication. This patch drops the extra log message (and, as a
122170        side-effect, adds a test that ensures that 'track' content is governed
122171        by the 'media-src' directive).
122172
122173        Test: http/tests/security/contentSecurityPolicy/media-src-track-block.html
122174
122175        * html/HTMLTrackElement.cpp:
122176        (WebCore::HTMLTrackElement::canLoadUrl):
122177
1221782013-01-03  Jer Noble  <jer.noble@apple.com>
122179
122180        Crash in media/unsupported-rtsp.html.
122181        https://bugs.webkit.org/show_bug.cgi?id=106038
122182
122183        Reviewed by Eric Carlson.
122184
122185        Fixes media/unsupported-rtsp.html on Mac platforms which support AVAssetResourceLoadingRequest.
122186
122187        Check that the CachedResource passed in the notifyFinished method didn't fail or error before
122188        passing its (possibly nil) contents to the AVAssetResourceLoadingRequest.
122189
122190        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
122191        (WebCore::WebCoreAVFResourceLoader::notifyFinished):
122192        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
122193
1221942013-01-04  Mike West  <mkwst@chromium.org>
122195
122196        CSP: 'frame-src' should block redirects to invalid sources.
122197        https://bugs.webkit.org/show_bug.cgi?id=106084
122198
122199        Reviewed by Adam Barth.
122200
122201        The 'frame-src' CSP directive whitelists valid iframe targets, but
122202        currently fails to correctly deal with redirection. As long as the
122203        initial target is valid, any redirection goes through without
122204        question. This patch moves the CSP check out of
122205        SubframeLoader::loadSubframe, and into
122206        PolicyChecker::checkNavigationPolicy. In the new location, the check
122207        is well-positioned to check each URL in a redirect chain, as opposed
122208        to checking only the initial target.
122209
122210        Test: http/tests/security/contentSecurityPolicy/frame-src-redirect-blocked.html
122211
122212        * loader/PolicyChecker.cpp:
122213        (WebCore::PolicyChecker::checkNavigationPolicy):
122214        * loader/SubframeLoader.cpp:
122215        (WebCore::SubframeLoader::loadSubframe):
122216
1222172013-01-04  Mike West  <mkwst@chromium.org>
122218
122219        CSP: XHR from an isolated world should bypass a page's policy.
122220        https://bugs.webkit.org/show_bug.cgi?id=104480
122221
122222        Reviewed by Adam Barth.
122223
122224        Connections of various types are governed by the page's Content Security
122225        Policy 'connect-src' directive. In the special case of connections
122226        generated from an isolated world, we'd like to bypass these restrictions
122227        in order to allow things like extensions to enjoy their uniquely high-
122228        privilege lifestyle. This patch does just that.
122229
122230        We'll lock them down to their own policy in webkit.org/b/104520, but
122231        that's a bit far away at the moment. Soon!
122232
122233        Test: http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr.html
122234
122235        * Modules/websockets/WebSocket.cpp:
122236        (WebCore::WebSocket::connect):
122237        * loader/cache/CachedResourceLoader.cpp:
122238        (WebCore::CachedResourceLoader::canRequest):
122239        * page/EventSource.cpp:
122240        (WebCore::EventSource::create):
122241        * xml/XMLHttpRequest.cpp:
122242        (WebCore::XMLHttpRequest::open):
122243            Check whether or not code is running in an isolated world that has
122244            its own Content Security Policy. If so, bypass the main world's CSP
122245            checks. Isolated worlds gotta be free, man.
122246
1222472013-01-04  Mike Lawther  <mikelawther@chromium.org>
122248
122249        CSS3 calc: mixed percent/absolute for border-radius
122250        https://bugs.webkit.org/show_bug.cgi?id=106046
122251
122252        Reviewed by Ojan Vafai.
122253
122254        Add the calculation evaluation to the border radius code.
122255
122256        Test: css3/calc/border-radius.html
122257
122258        * css/StyleBuilder.cpp:
122259        (WebCore::ApplyPropertyBorderRadius::applyValue):
122260
1222612013-01-04  John Mellor  <johnme@chromium.org>
122262
122263        Early out from FontCache::releaseFontData if cached font data not found.
122264        https://bugs.webkit.org/show_bug.cgi?id=106104
122265
122266        Reviewed by Abhishek Arya.
122267
122268        No tests, as no change in behavior.
122269
122270        * platform/graphics/FontCache.cpp:
122271        (WebCore::FontCache::releaseFontData):
122272
122273            Early out in release builds if cached font data not found.
122274
1222752013-01-04  Adam Klein  <adamk@chromium.org>
122276
122277        Remove ENABLE_MUTATION_OBSERVERS #define
122278        https://bugs.webkit.org/show_bug.cgi?id=105459
122279
122280        Reviewed by Ryosuke Niwa.
122281
122282        The flag has been on by default for quite awhile now (nearly a year)
122283        and the feature is a standardized part of DOM4.
122284
122285        The only place it was disabled was under "unstable" features for the
122286        gtk port, but the fact that it's shipping in several major WebKit
122287        browsers as well as Firefox suggests that it's not too unstable.
122288
122289        * Configurations/FeatureDefines.xcconfig:
122290        * GNUmakefile.am: Removed ENABLE_MUTATION_OBSERVERS from the "unstable features" list.
122291        * GNUmakefile.features.am.in:
122292        * bindings/js/JSDictionary.cpp:
122293        (WebCore):
122294        (WebCore::JSDictionary::convertValue):
122295        * bindings/js/JSDictionary.h:
122296        * bindings/js/JSMainThreadExecState.cpp:
122297        (WebCore::JSMainThreadExecState::didLeaveScriptContext):
122298        * bindings/js/JSMutationCallbackCustom.cpp:
122299        * bindings/js/JSMutationObserverCustom.cpp:
122300        * bindings/v8/V8GCController.cpp:
122301        * bindings/v8/V8RecursionScope.cpp:
122302        (WebCore::V8RecursionScope::didLeaveScriptContext):
122303        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
122304        * bindings/v8/custom/V8MutationObserverCustom.cpp:
122305        * css/PropertySetCSSStyleDeclaration.cpp:
122306        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
122307        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
122308        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
122309        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
122310        * dom/CharacterData.cpp:
122311        (WebCore::CharacterData::dispatchModifiedEvent):
122312        * dom/ChildListMutationScope.cpp:
122313        * dom/ChildListMutationScope.h:
122314        * dom/ContainerNode.cpp:
122315        (WebCore::ContainerNode::insertBefore):
122316        (WebCore::ContainerNode::replaceChild):
122317        (WebCore::willRemoveChild):
122318        (WebCore::willRemoveChildren):
122319        (WebCore::ContainerNode::appendChild):
122320        (WebCore::updateTreeAfterInsertion):
122321        * dom/Document.cpp:
122322        (WebCore::Document::Document):
122323        * dom/Document.h:
122324        (Document):
122325        * dom/Element.cpp:
122326        (WebCore::Element::willModifyAttribute):
122327        * dom/MutationCallback.h:
122328        * dom/MutationCallback.idl:
122329        * dom/MutationObserver.cpp:
122330        * dom/MutationObserver.h:
122331        * dom/MutationObserver.idl:
122332        * dom/MutationObserverInterestGroup.cpp:
122333        * dom/MutationObserverInterestGroup.h:
122334        * dom/MutationObserverRegistration.cpp:
122335        * dom/MutationObserverRegistration.h:
122336        * dom/MutationRecord.cpp:
122337        * dom/MutationRecord.h:
122338        * dom/MutationRecord.idl:
122339        * dom/Node.cpp:
122340        (WebCore::Node::clearRareData):
122341        (WebCore::Node::setTextContent):
122342        (WebCore::Node::didMoveToNewDocument):
122343        (WebCore::Node::notifyMutationObserversNodeWillDetach):
122344        * dom/Node.h:
122345        (Node):
122346        * dom/NodeRareData.cpp:
122347        (SameSizeAsNodeRareData):
122348        (WebCore::NodeRareData::reportMemoryUsage):
122349        * dom/NodeRareData.h:
122350        (NodeRareData):
122351        (WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
122352        * editing/markup.cpp:
122353        (WebCore::replaceChildrenWithFragment):
122354        (WebCore::replaceChildrenWithText):
122355        * page/DOMWindow.idl:
122356
1223572013-01-04  Xianzhu Wang  <wangxianzhu@chromium.org>
122358
122359        Change RenderLayerBacking::nameForLayer() to RenderLayer::name()
122360        https://bugs.webkit.org/show_bug.cgi?id=105648
122361
122362        Reviewed by Simon Fraser.
122363
122364        No new tests. For debugging only.
122365
122366        * rendering/RenderLayer.cpp:
122367        (WebCore::RenderLayer::name):
122368        (WebCore):
122369        * rendering/RenderLayer.h:
122370        (RenderLayer):
122371        * rendering/RenderLayerBacking.cpp:
122372        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
122373        (WebCore::RenderLayerBacking::updateForegroundLayer):
122374        * rendering/RenderLayerBacking.h:
122375        (RenderLayerBacking):
122376        * rendering/RenderLayerCompositor.cpp:
122377        (WebCore::RenderLayerCompositor::logLayerInfo):
122378
1223792013-01-04  Rick Byers  <rbyers@chromium.org>
122380
122381        Existence of window.Touch can break websites mobile device detection
122382        https://bugs.webkit.org/show_bug.cgi?id=106071
122383
122384        Reviewed by Ojan Vafai.
122385
122386        Revert http://trac.webkit.org/changeset/135562 for now while I work
122387        on a slightly safer version.
122388
122389        * page/DOMWindow.idl:
122390
1223912013-01-04  Martin Robinson  <mrobinson@igalia.com>
122392
122393        [GTK] [WebKit2] Clicking on a word that is selected in an editable area deletes it
122394        https://bugs.webkit.org/show_bug.cgi?id=106045
122395
122396        Reviewed by Carlos Garcia Campos.
122397
122398        Be more selective about when to confirm WebKit compositions. If there is no current
122399        preedit, reseting the GTK+ context shouldn't also do an empty confirmation in WebKit,
122400        as this will trash the current selection. The second part of this patch also makes the
122401        m_composingTextCurrently member more accurately reflect whether or not we are composing
122402        text.
122403
122404        * platform/gtk/GtkInputMethodFilter.cpp:
122405        (WebCore::GtkInputMethodFilter::notifyMouseButtonPress): Only confirm the current WebKit composition
122406        if we have a preedit.
122407        (WebCore::GtkInputMethodFilter::notifyFocusedOut): Ditto.
122408        (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Don't clear the m_composingTextCurrently
122409        member if we are not sending a confirmed composition.
122410
1224112013-01-04  Max Feil  <mfeil@rim.com>
122412
122413        [BlackBerry] Handle re-entrant destruction of MediaPlayerPrivate while a dialog is up
122414        https://bugs.webkit.org/show_bug.cgi?id=105906
122415
122416        Reviewed by George Staikos.
122417
122418        Now that dialogs are not truly modal anymore, we need to
122419        handle the case where MediaPlayerPrivate gets destroyed by
122420        re-entrant calls while a dialog is up. We do this by deferring
122421        the destruction of MMRPlayer until the user dismisses the dialog.
122422
122423        No new tests because user dialog input is not yet part of the
122424        layouttest framework.
122425
122426        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
122427        (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
122428        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
122429        (WebCore::MediaPlayerPrivate::onShowErrorDialog):
122430        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
122431        (MediaPlayerPrivate):
122432
1224332013-01-04  Anthony Scian  <ascian@rim.com>
122434
122435        [Blackberry] Static code analysis warning fixes
122436        https://bugs.webkit.org/show_bug.cgi?id=105679
122437
122438        Reviewed by Rob Buis.
122439
122440        klocwork 1855: fixed by caching page, check against NULL and use cached value
122441
122442        * platform/blackberry/RenderThemeBlackBerry.cpp:
122443        (WebCore::determineFullScreenMultiplier):
122444
1224452013-01-04  Hans Muller  <hmuller@adobe.com>
122446
122447        [CSS Exclusions] The ExclusionPolygon classes should allow more than one type of "Edge" class
122448        https://bugs.webkit.org/show_bug.cgi?id=106026
122449
122450        Reviewed by Dirk Schulze.
122451
122452        Refactored the ExclusionPolygonEdge class to pave the way for a similar
122453        OffsetEdge class. The new VertexPair abstract base class provides the common
122454        state and operations. ExclusionPolygonEdge now extends VertexPair and defines
122455        ExclusionPolygon as a friend, since the ExclusionPolygon constructor initializes
122456        its private state.
122457
122458        * rendering/ExclusionPolygon.cpp:
122459        (WebCore::ExclusionPolygon::ExclusionPolygon): Use ExclusionPolygonEdge accessors instead of direct field access.
122460        (WebCore::getVertexIntersectionVertices): Ditto.
122461        * rendering/ExclusionPolygon.h:
122462        (VertexPair): New abstract base class.
122463        (WebCore::VertexPair::~VertexPair):
122464        (WebCore::VertexPair::minX): This method was defined in ExclusionPolygonEdge.
122465        (WebCore::VertexPair::minY): Ditto.
122466        (WebCore::VertexPair::maxX): Ditto.
122467        (WebCore::VertexPair::maxY): Ditto.
122468        (ExclusionPolygonEdge): Now extends VertexPair.
122469        (WebCore::ExclusionPolygonEdge::previousEdge): Refer to m_ private class fields, instead of public struct fields.
122470        (WebCore::ExclusionPolygonEdge::nextEdge): Ditto.
122471        (WebCore::ExclusionPolygonEdge::polygon): Ditto.
122472        (WebCore::ExclusionPolygonEdge::vertexIndex1): Ditto.
122473        (WebCore::ExclusionPolygonEdge::vertexIndex2): Ditto.
122474        (WebCore::ExclusionPolygonEdge::edgeIndex): Ditto.
122475
1224762013-01-04  Steve Block  <steveblock@chromium.org>
122477
122478        Add 'float FloatPoint::slopeAngleRadians()'
122479        https://bugs.webkit.org/show_bug.cgi?id=105997
122480
122481        Reviewed by Stephen White.
122482
122483        Refactoring only, no functional change.
122484
122485        * platform/graphics/FloatPoint.cpp:
122486        (WebCore::FloatPoint::slopeAngleRadians):
122487        (WebCore):
122488        * platform/graphics/FloatPoint.h:
122489        Add 'float FloatPoint::slopeAngleRadians() const'
122490        * platform/graphics/PathTraversalState.cpp:
122491        (WebCore::PathTraversalState::processSegment):
122492        * rendering/svg/SVGMarkerData.h:
122493        (WebCore::SVGMarkerData::currentAngle):
122494        * svg/SVGPathParser.cpp:
122495        (WebCore::SVGPathParser::decomposeArcToCubic):
122496
1224972013-01-04  Zan Dobersek  <zandobersek@gmail.com>
122498
122499        REGRESSION (r138184): transitions/transitions-parsing.html is failing on GTK
122500        https://bugs.webkit.org/show_bug.cgi?id=105522
122501
122502        Reviewed by Xan Lopez.
122503
122504        Remove the feature define overriding for the unprefixed CSS transition property names
122505        define as it is not required.
122506
122507        No new tests - no new functionality.
122508
122509        * GNUmakefile.am:
122510
1225112013-01-04  Zan Dobersek  <zandobersek@gmail.com>
122512
122513        [GObject bindings] Wrap event target interface code in feature define guards if necessary
122514        https://bugs.webkit.org/show_bug.cgi?id=105743
122515
122516        Reviewed by Xan Lopez.
122517
122518        Wrap the event target interface implementation code in feature define guards if the interface
122519        is guarded by a conditional. A warning is reported if these methods get called with the specific
122520        feature being disabled.
122521
122522        This was spotted when building with the video track feature disabled was causing build failures.
122523
122524        No new tests - no new functionality. The bindings tests don't test event targets under conditionals.
122525
122526        * bindings/scripts/CodeGeneratorGObject.pm:
122527        (GenerateEventTargetIface):
122528
1225292012-12-18  Philippe Normand  <pnormand@igalia.com>
122530
122531        [GStreamer] Port WebAudio backend to 1.0 APIs
122532        https://bugs.webkit.org/show_bug.cgi?id=105293
122533
122534        Reviewed by Martin Robinson.
122535
122536        Port the AudioFileReader and AudioDestination to GStreamer 1.0
122537        APIs. It would be preferable to rely on at least GStreamer 1.0.4
122538        for this to work properly as that release contains two bug fixes
122539        for the deinterleave and interleave elements.
122540
122541        * platform/audio/FFTFrame.cpp:
122542        (WebCore::FFTFrame::reportMemoryUsage): Don't report GstFFTF32
122543        structures anymore because they're opaque in GStreamer 1.0.
122544        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
122545        (WebCore):
122546        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
122547        The wavparse element in 1.0 has no sometimes-pads anymore.
122548        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
122549        (AudioFileReader): The decodebin2 element has been renamed to
122550        decodebin in GStreamer 1.0.
122551        (WebCore::getGStreamerAudioCaps): Audio caps description changed a
122552        lot in GStreamer 1.0, the function now handles both APIs.
122553        (WebCore::copyGstreamerBuffersToAudioChannel): Adapted to
122554        GstBufferList and GstBuffer API changes.
122555        (WebCore::onAppsinkPullRequiredCallback): Pull a sample or buffer,
122556        depending on which API we use.
122557        (WebCore::AudioFileReader::~AudioFileReader): Protect
122558        GstBufferListIterators in 0.10-only code path.
122559        (WebCore):
122560        (WebCore::AudioFileReader::handleSample): Pull an audio sample
122561        from appsink and insert it in the appropriate buffer list.
122562        (WebCore::AudioFileReader::handleNewDeinterleavePad): Handle
122563        appsink API changes from GStreamer 0.10 to 1.0.
122564        (WebCore::AudioFileReader::decodeAudioForBusCreation): Create the
122565        correct decodebin element.
122566        (WebCore::AudioFileReader::createBus): Protect GstBufferListIterators
122567        in 0.10-only code path.
122568        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
122569        (_WebKitWebAudioSourcePrivate): GstTask in GStreamer 1.0 uses a
122570        GRecMutex instead of a (deprecated) GStaticRecMutex.
122571        (getGStreamerMonoAudioCaps): Handle caps description changes
122572        between GStreamer 0.10 and 1.0.
122573        (webKitWebAudioGStreamerChannelPosition): POSITION_LFE in
122574        GStreamer 1.0 is now POSITION_LFE1. Also map ChannelCenter to its
122575        GStreamer equivalent.
122576        (webkit_web_audio_src_class_init): Use generic setGstElementClassMetadata.
122577        (webkit_web_audio_src_init): Handle GRecMutex initialisation.
122578        (webKitWebAudioSrcConstructed): Set channel position on
122579        capsfilter. This is done for GStreamer 1.0 code path only because
122580        in 0.10 the caps have no way to store this information.
122581        (webKitWebAudioSrcFinalize): Clear GRecMutex.
122582        (webKitWebAudioSrcLoop): Handle GstBuffer API changes and add an
122583        error check if buffers can't be chained to queue's source pad.
122584        (webKitWebAudioSrcChangeState): As advised in the GStreamer docs,
122585        fixup the state changes for this live source element: NO_PREROLL
122586        in READY->PAUSED and start/stop the GstTask when going/coming
122587        to/from PLAYING.
122588
1225892013-01-04  Mihnea Ovidenie  <mihnea@adobe.com>
122590
122591        [CSS Regions]Content overflowing last region displayed wrong
122592        https://bugs.webkit.org/show_bug.cgi?id=105893
122593
122594        Reviewed by David Hyatt.
122595
122596        For the last region in the region chain and flipped writing modes (horizontal-bt, vertical-rl),
122597        the clipping rect should take overflow into account in the writing mode direction, which is
122598        different in these cases than the direction for non-flipped writing modes.
122599
122600        Tests: fast/regions/overflow-last-region-horiz-bt.html
122601               fast/regions/overflow-last-region-vert-lr.html
122602               fast/regions/overflow-last-region-vert-rl.html
122603               fast/regions/overflow-last-region.html
122604
122605        * rendering/RenderFlowThread.cpp:
122606        (WebCore::RenderFlowThread::computeRegionClippingRect): Helper function used to compute region clipping rect
122607        for paint and hitTest.
122608        (WebCore):
122609        (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
122610        (WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
122611        * rendering/RenderFlowThread.h:
122612
1226132013-01-04  Dima Gorbik  <dgorbik@apple.com>
122614
122615        Implement :future pseudo class for the WebVTT ::cue pseudo element
122616        https://bugs.webkit.org/show_bug.cgi?id=105473
122617
122618        Reviewed by Antti Koivisto.
122619
122620        This patch changes the approach of showing past/future node objects. 
122621        Before upper-level containers were used to put past and future nodes inside. Styles were applied
122622        to containers. Now styles could be applied directly to nodes by using ::cue(:future).
122623        That allows to style future/past WebVTT nodes even if they are nested.
122624
122625        Existing test was modified to cover new cases.
122626
122627        * css/CSSSelector.cpp: added :future pseudo class support.
122628        (WebCore::CSSSelector::pseudoId):
122629        (WebCore::nameToPseudoTypeMap):
122630        (WebCore::CSSSelector::extractPseudoType):
122631        * css/CSSSelector.h:
122632        * css/SelectorChecker.cpp: ditto.
122633        (WebCore::SelectorChecker::checkOneSelector):
122634        * css/StyleResolver.cpp:
122635        (WebCore::StyleResolver::canShareStyleWithElement): define style sharing rules for WebVTT objects.
122636        * css/mediaControls.css:
122637        (video::-webkit-media-text-track-all-nodes):
122638        (video::cue(:future)): added standard user-agent styles for the future nodes.
122639        * dom/Element.cpp: setter functions don't have an argument now because WebVTT type enum was introduced and the right type is set
122640        when the setter is being called.
122641        (WebCore::Element::setIsWebVTTNode):
122642        (WebCore):
122643        (WebCore::Element::isWebVTTFutureNode):
122644        (WebCore::Element::setIsWebVTTFutureNode):
122645        * dom/Element.h:
122646        (Element):
122647        * dom/ElementRareData.h:
122648        (ElementRareData):
122649        * dom/NodeRareData.cpp:
122650        (SameSizeAsNodeRareData): added a dummy enum value. Enum is integer type and is aligned in Windows when placed in the bitfield,
122651        so it takes more space.
122652        * dom/NodeRareData.h:
122653        (WebCore::NodeRareData::NodeRareData):
122654        (WebCore::NodeRareData::isWebVTTNode):
122655        (WebCore::NodeRareData::setIsWebVTTNode):
122656        (WebCore::NodeRareData::isWebVTTFutureNode):
122657        (WebCore::NodeRareData::setIsWebVTTFutureNode):
122658        (NodeRareData):
122659        * html/shadow/MediaControlElements.cpp:
122660        (WebCore):
122661        * html/track/TextTrack.h: add a WebVTT node object type enum.
122662        (TextTrack):
122663        * html/track/TextTrackCue.cpp:
122664        (WebCore::TextTrackCue::allNodesShadowPseudoId):
122665        (WebCore::TextTrackCue::TextTrackCue):
122666        (WebCore::TextTrackCue::getCueAsHTML):
122667        (WebCore):
122668        (WebCore::TextTrackCue::setNodeObjectFlags): determine if the node is future or past and mark as WebVTT node.
122669        This combines the functionality related to marking nodes implemented before in updateDisplayTree and
122670        markNodesAsWebVTTNodes.
122671        (WebCore::TextTrackCue::updateDisplayTree):
122672        (WebCore::TextTrackCue::getDisplayTree):
122673        * html/track/TextTrackCue.h:
122674        (TextTrackCue):
122675        * html/track/WebVTTParser.cpp:
122676        (WebCore::WebVTTParser::constructTreeFromToken): no need to mark nodes as WebVTT nodes when parsing. This is done at the
122677        rendering stage later.
122678        * page/CaptionUserPreferencesMac.mm:
122679        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): the container name has changed.
122680
1226812013-01-04  Carlos Garcia Campos  <cgarcia@igalia.com>
122682
122683        REGRESSION (r138222?): Assertion failure on appcache/main-resource-redirect.html
122684        https://bugs.webkit.org/show_bug.cgi?id=105591
122685
122686        Reviewed by Brady Eidson.
122687
122688        Fixes crash in test http/tests/appcache/main-resource-redirect.html.
122689
122690        * loader/MainResourceLoader.cpp:
122691        (WebCore::MainResourceLoader::willSendRequest): In case of loading
122692        substitute data from application cache host due to a redirect,
122693        make sure the substitute data identifier is initialized.
122694
1226952013-01-03  Tony Chang  <tony@chromium.org>
122696
122697        incorrect flexbox relayout with overflow, padding and absolute positioning
122698        https://bugs.webkit.org/show_bug.cgi?id=106022
122699
122700        Reviewed by Ojan Vafai.
122701
122702        The problem was we were entering simplified layout, which doesn't apply the stretch
122703        behavior for flex children. That should be fine if we had kept the override size from
122704        the previous layout. So clear the override size during layout rather than after layout.
122705
122706        Not clearing the override size re-triggers bug 98611. Fix this by always forcing a
122707        layout of an image if it has an override size set. The presence of an override size means
122708        we did some special layout that may not be covered by re-computing the logical width and
122709        height.
122710
122711        Test: css3/flexbox/stretch-simplified-layout.html
122712
122713        * rendering/RenderFlexibleBox.cpp:
122714        (WebCore::RenderFlexibleBox::layoutBlock): Don't clear the override size after layout.
122715        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Clear the override size right before layout.
122716        * rendering/RenderFlexibleBox.h:
122717        (RenderFlexibleBox): Remove clearChildOverrideSizes() since it's not called anymore.
122718        * rendering/RenderImage.cpp:
122719        (WebCore::RenderImage::imageDimensionsChanged): If an override size is present, force a relayout.
122720        Also cleaned up the code a bit to avoid computing the width and height unless we need to.
122721
1227222013-01-03  Adam Klein  <adamk@chromium.org>
122723
122724        Unreviewed rebaseline of binding tests after r138754
122725
122726        * bindings/scripts/CodeGeneratorV8.pm:
122727        (GenerateCallbackHeader): Remove unnecessary whitespace
122728        * bindings/scripts/test/JS/JSTestCallback.h:
122729        (WebCore::JSTestCallback::scriptExecutionContext):
122730        (JSTestCallback):
122731        * bindings/scripts/test/V8/V8TestCallback.h:
122732        (WebCore::V8TestCallback::scriptExecutionContext):
122733        (V8TestCallback):
122734
1227352013-01-03  Antoine Quint  <graouts@apple.com>
122736
122737        onload callback for <track> element attached to <video> does not fire
122738        https://bugs.webkit.org/show_bug.cgi?id=103258
122739
122740        Reviewed by Eric Carlson.
122741
122742        We now correctly implement the track processing model per the latest spec at
122743        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#start-the-track-processing-model.
122744        
122745        For a <track> to load, three conditions must be met:
122746        
122747        1. it must have a non-empty src
122748        2. it must have a mode other than "disabled" (the default)
122749        3. it must have a parent media element
122750        
122751        We used to only check if we were able to load upon setting the track's src,
122752        whereas a change of any of those conditions should have done this, which this
122753        patch now correctly implements.
122754        
122755        We also correctly implement the load model asynchronously after step 4, per
122756        the spec, hence the split of the code previously entirely contained in
122757        HTMLTrackElement::scheduleLoad() in another method fired on a timer.
122758
122759        Test: media/track/track-element-load-event.html
122760
122761        * html/HTMLMediaElement.cpp:
122762        (WebCore::HTMLMediaElement::textTrackModeChanged):
122763        * html/HTMLTrackElement.cpp:
122764        (WebCore::HTMLTrackElement::HTMLTrackElement):
122765        (WebCore::HTMLTrackElement::insertedInto):
122766        (WebCore::HTMLTrackElement::parseAttribute):
122767        (WebCore::HTMLTrackElement::scheduleLoad):
122768        (WebCore):
122769        (WebCore::HTMLTrackElement::loadTimerFired):
122770        (WebCore::HTMLTrackElement::textTrackModeChanged):
122771        * html/HTMLTrackElement.h:
122772        * html/track/TextTrack.cpp:
122773        (WebCore::TextTrack::removeAllCues):
122774        (WebCore):
122775        * html/track/TextTrack.h:
122776        (TextTrack):
122777
1227782013-01-03  Beth Dakin  <bdakin@apple.com>
122779
122780        https://bugs.webkit.org/show_bug.cgi?id=105475
122781        Nested fixed position elements incorrectly repositioned on scrolling
122782
122783        Reviewed by Simon Fraser.
122784
122785        The fix here is to ensure that the ScrollingTree reflects the same hierarchy as 
122786        the GraphicsLayer tree. And from there, we can correctly calculate the offset for 
122787        nested objects by keeping track of a cumulative delta that parents have been moved 
122788        by.
122789
122790        We already had to fix this same bug in ScrollingStateNode::removeChild(). The 
122791        index can be notFound when you are removing a grandchild.
122792        * page/scrolling/ScrollingTreeNode.cpp:
122793        (WebCore::ScrollingTreeNode::removeChild):
122794
122795        parentScrollPositionDidChange() now takes a second parameter that represents the 
122796        delta that parent graphicsLayers have been moved by.
122797        * page/scrolling/ScrollingTreeNode.h:
122798        (ScrollingTreeNode):
122799        * page/scrolling/ScrollingTreeScrollingNode.h:
122800        * page/scrolling/mac/ScrollingTreeFixedNode.h:
122801        (ScrollingTreeFixedNode):
122802
122803        attachToStateTree() now handles re-parenting.
122804        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
122805        (WebCore::ScrollingCoordinatorMac::attachToStateTree):
122806
122807        Properly adjust by and compute the new parameter cumulativeDelta. Adjusting by 
122808        this will prevent fixed children of fixed objects from moving when they are not 
122809        supposed to.
122810        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
122811        (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
122812
122813        Give parentScrollPositionDidChange() an initial delta of (0,0).
122814        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
122815        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
122816
122817        Properly adjust by and compute the new parameter cumulativeDelta. This math is 
122818        actually not quite right for sticky yet as the FIXME indicates. 
122819        * page/scrolling/mac/ScrollingTreeStickyNode.h:
122820        (ScrollingTreeStickyNode):
122821        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
122822        (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
122823
122824        Re-named attachToScrollingCoordinator() to attachToScrollingCoordinatorWithParent 
122825        to make it clear that the node may already be attached, but it may need to be re-
122826        parented.
122827        * rendering/RenderLayerBacking.cpp:
122828        (WebCore::RenderLayerBacking::attachToScrollingCoordinatorWithParent):
122829        * rendering/RenderLayerBacking.h:
122830        (RenderLayerBacking):
122831        * rendering/RenderLayerCompositor.cpp:
122832        (WebCore::RenderLayerCompositor::updateBacking):
122833
122834        Always call attachToScrollingCoordinatorWithParent() in case the fixed node has 
122835        been re-parented.
122836        (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
122837
1228382013-01-03  Simon Fraser  <simon.fraser@apple.com>
122839
122840        Body background with background-attachment:fixed stays in place during rubber-banding
122841        https://bugs.webkit.org/show_bug.cgi?id=67894
122842
122843        Reviewed by Beth Dakin.
122844
122845        Use FrameView::scrollOffsetForFixedPosition() to compute the location of the rect
122846        used to position fixed backgrounds, since it takes rubber-banding into account.
122847        
122848        No test because rubber-banding isn't testtable in layout tests.
122849
122850        * rendering/RenderBoxModelObject.cpp:
122851        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
122852
1228532013-01-03  Adam Klein  <adamk@chromium.org>
122854
122855        [HTMLTemplateElement] When adopting a template element, also adopt its content into the appropriate document
122856        https://bugs.webkit.org/show_bug.cgi?id=106039
122857
122858        Reviewed by Eric Seidel.
122859
122860        Implements the approach discussed in the spec bug:
122861        https://www.w3.org/Bugs/Public/show_bug.cgi?id=20129
122862
122863        Test: fast/dom/HTMLTemplateElement/ownerDocument-adoptNode.html
122864
122865        * html/HTMLTemplateElement.cpp:
122866        (WebCore::HTMLTemplateElement::didMoveToNewDocument):
122867        * html/HTMLTemplateElement.h:
122868        (HTMLTemplateElement):
122869
1228702013-01-03  Zoltan Horvath  <zoltan@webkit.org>
122871
122872        [CSS Regions] Don't apply region flow to fullscreen video playing
122873        https://bugs.webkit.org/show_bug.cgi?id=102388
122874
122875        Reviewed by David Hyatt.
122876
122877        In case of full screen video playing we want to watch the video full screen without applying the region flow.
122878
122879        Test: fast/regions/full-screen-video-from-region.html
122880
122881        * dom/NodeRenderingContext.cpp:
122882        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded): Don't move full screen video playing to FlowThread.
122883
1228842013-01-03  Rafael Weinstein  <rafaelw@chromium.org>
122885
122886        [Mutation Observers] prevent delivery while recipient context is suspended
122887        https://bugs.webkit.org/show_bug.cgi?id=105810
122888
122889        Reviewed by Adam Barth.
122890
122891        Test: inspector/debugger/mutation-observer-suspend-while-paused.html
122892
122893        * dom/MutationObserver.cpp:
122894        (WebCore::suspendedMutationObservers):
122895        (WebCore):
122896        (WebCore::MutationObserver::canDeliver):
122897        (WebCore::MutationObserver::deliver):
122898        (WebCore::MutationObserver::deliverAllMutations):
122899        * dom/MutationObserver.h:
122900
1229012013-01-03  Dan Bernstein  <mitz@apple.com>
122902
122903        No way to obtain a DOMNode given a JS wrapper for a Node
122904        https://bugs.webkit.org/show_bug.cgi?id=106033
122905
122906        Reviewed by Sam Weinig.
122907
122908        Test: TestWebKitAPI/Tests/mac/DOMNodeFromJSObject.mm.
122909
122910        * bindings/objc/DOM.mm:
122911        (+[DOMNode _nodeFromJSWrapper:]): Added. If the given JSObjectRef is a wrapper for a Node,
122912        returns the Objective-C wrapper for that node. Note that Objective-C wrappers are always
122913        for the main world, regardless of which world the given JS wrapper comes from.
122914        * bindings/objc/DOMPrivate.h: Added declaration of the above.
122915
1229162013-01-03  Uday Kiran  <udaykiran@motorola.com>
122917
122918        webkit fails IETC column-width-negative-001.htm
122919        https://bugs.webkit.org/show_bug.cgi?id=84778
122920
122921        Reviewed by Tony Chang.
122922
122923        CSS3 multicolumn 'column-width' property value must be greater than zero.
122924        http://dev.w3.org/csswg/css3-multicol/#column-width
122925
122926        Test: fast/multicol/column-width-zero.html
122927        Negative value test covered by ietestcenter/css3/multicolumn/column-width-negative-001.htm
122928
122929        * css/CSSParser.cpp:
122930        (WebCore::CSSParser::parseValue): Check for value greater than zero while parsing.
122931
1229322013-01-03  Tommy Widenflycht  <tommyw@google.com>
122933
122934        MediaStream API: Add a missing state to RTCPeerConnection
122935        https://bugs.webkit.org/show_bug.cgi?id=106017
122936
122937        Reviewed by Adam Barth.
122938
122939        Adding the missing ReadyStateHaveRemoteOffer which will show up in the spec soon.
122940
122941        Not testable, just another state.
122942
122943        * Modules/mediastream/RTCPeerConnection.cpp:
122944        (WebCore::RTCPeerConnection::readyState):
122945        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
122946
1229472013-01-03  Emil A Eklund  <eae@chromium.org>
122948
122949        Fix overflow in LayoutUnit::ceil and floor for SATURATED_LAYOUT_ARITHMETIC
122950        https://bugs.webkit.org/show_bug.cgi?id=105961
122951
122952        Reviewed by Levi Weintraub.
122953        
122954        The LayoutUnit::ceil and floor methods overflows if given the
122955        intMaxForLayoutUnit and intMinForLayoutUnit values respectively.
122956        Check for the max/min value to avoid this.
122957
122958        Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
122959
122960        * platform/LayoutUnit.h:
122961        (WebCore::LayoutUnit::ceil):
122962        (WebCore::LayoutUnit::floor):
122963        Check for the max/min value and return early to avoid overflow.
122964        Use the UNLIKELY macro to avoid the cost of branch misprediction
122965        for the common case.
122966
1229672013-01-03  Elliott Sprehn  <esprehn@gmail.com>
122968
122969        [Refactoring] Replace Node's Document pointer with a TreeScope pointer
122970        https://bugs.webkit.org/show_bug.cgi?id=59816
122971
122972        Reviewed by Ryosuke Niwa.
122973
122974        Instead of giving every node in a shadow a rare data, which can be quite
122975        large, we replace the Document pointer in Node with a TreeScope pointer
122976        and we give TreeScope a pointer to it's document scope.
122977
122978        This introduces no branches in document() because in the common
122979        case document() becomes equivalent to m_treeScope->m_documentScope where
122980        the documentScope is actually m_treeScope so this shouldn't introduce a
122981        perf regression.
122982
122983        Note also that TreeScope can never be null after r136328, and the document
122984        pointer is only null for DocumentType nodes so we can use a special
122985        no-document TreeScope for this case that always returns null from
122986        documentScope().
122987
122988        My original patch in r137524 for this did not correctly handle the case 
122989        where the Document is being destroyed and we would then call guardDeref on
122990        ourself in the middle of the Document destructor causing asserts. To fix
122991        this we need to go back to the original model where Document passes
122992        null to it's super constructor for the Document pointer and assigns
122993        it's tree scope later, and we also need to clear the tree scope pointer
122994        in Document's destructor.
122995
122996        No new tests, no change in behavior.
122997
122998        * dom/Document.cpp:
122999        (WebCore::Document::Document):
123000        (WebCore::Document::~Document):
123001        (WebCore::Document::suggestedMIMEType):
123002        * dom/Document.h:
123003        (WebCore::Node::isDocumentNode):
123004        (WebCore::Node::Node):
123005        * dom/Element.cpp:
123006        (WebCore::Element::createRareData):
123007        * dom/ElementRareData.h:
123008        (ElementRareData):
123009        (WebCore::ElementRareData::ElementRareData):
123010        * dom/Node.cpp:
123011        (WebCore::Node::~Node):
123012        (WebCore::Node::createRareData):
123013        (WebCore::Node::attach):
123014        (WebCore::Node::reportMemoryUsage):
123015        * dom/Node.h:
123016        (WebCore::NodeRareDataBase::NodeRareDataBase):
123017        (NodeRareDataBase):
123018        (WebCore::Node::treeScope):
123019        (WebCore::Node::inDocument):
123020        (WebCore::Node::documentInternal):
123021        (WebCore::Node::setTreeScope):
123022        (Node):
123023        * dom/NodeRareData.cpp:
123024        (SameSizeAsNodeRareData):
123025        (WebCore::NodeRareData::reportMemoryUsage):
123026        * dom/NodeRareData.h:
123027        (WebCore::NodeRareData::NodeRareData):
123028        * dom/ShadowRoot.cpp:
123029        (WebCore::ShadowRoot::ShadowRoot):
123030        * dom/TreeScope.cpp:
123031        (SameSizeAsTreeScope):
123032        (WebCore::TreeScope::TreeScope):
123033        (WebCore::TreeScope::clearDocumentScope):
123034            Needed to clear the document scope during Document destruction
123035            so the Node destructor does not guardDeref the document that is
123036            already being destroyed.
123037        (WebCore::TreeScope::setParentTreeScope):
123038        * dom/TreeScope.h:
123039        (TreeScope):
123040        (WebCore::TreeScope::documentScope):
123041        (WebCore::TreeScope::noDocumentInstance):
123042            Special shared tree scope that has a document scope that is always
123043            null. This is needed for DocType nodes, and also for Documents
123044            during construction.
123045        (WebCore::TreeScope::setDocumentScope):
123046        * dom/TreeScopeAdopter.cpp:
123047        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
123048        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
123049
1230502013-01-03  Adam Klein  <adamk@chromium.org>
123051
123052        Unreviewed build fix.
123053
123054        * dom/ContainerNode.cpp:
123055        (WebCore::isInTemplateContent): s/UNUSED/UNUSED_PARAM/
123056
1230572013-01-03  Adam Klein  <adamk@chromium.org>
123058
123059        [HTMLTemplateElement] Disallow cycles within template content
123060        https://bugs.webkit.org/show_bug.cgi?id=105066
123061
123062        Reviewed by Ojan Vafai.
123063
123064        Cycles in <template> content aren't quite as bad as cycles in normal
123065        DOM trees, but they can easily cause crashes, e.g. in cloneNode and
123066        innerHTML.
123067
123068        Shadow DOM has an analagous issue, and this patch tackles that problem
123069        at the same time by creating a new method, Node::containsIncludingHostElements.
123070
123071        In order to disallow cycles, the HTMLTemplateElement.content
123072        DocumentFragment needs a pointer to its host. The approach here
123073        creates a new subclass with a host pointer and a new virtual method
123074        to DocumentFragment to identify the subclass.
123075
123076        To avoid unnecessary virtual function calls, also changed how
123077        Document::templateContentsOwnerDocument works to allow fast inlined
123078        access and avoid lazy creation when not needed.
123079
123080        Tests: fast/dom/HTMLTemplateElement/cycles-in-shadow.html
123081               fast/dom/HTMLTemplateElement/cycles.html
123082               fast/dom/shadow/shadow-hierarchy-exception.html
123083
123084        * GNUmakefile.list.am:
123085        * Target.pri:
123086        * WebCore.vcproj/WebCore.vcproj:
123087        * WebCore.xcodeproj/project.pbxproj:
123088        * dom/ContainerNode.cpp:
123089        (WebCore::isInTemplateContent):
123090        (WebCore::containsConsideringHostElements):
123091        (WebCore::checkAcceptChild):
123092        * dom/Document.cpp:
123093        (WebCore::Document::ensureTemplateContentsOwnerDocument): Renamed to make clear that it lazily creates the Document. Updated all existing callers to call this method.
123094        * dom/Document.h:
123095        (Document):
123096        (WebCore::Document::templateContentsOwnerDocument): Fast, inlined accessor for use in checkAcceptChild().
123097        * dom/DocumentFragment.h:
123098        (WebCore::DocumentFragment::isTemplateContent):
123099        * dom/Node.cpp:
123100        (WebCore::Node::containsIncludingShadowDOM): made const, simplified
123101        (WebCore::Node::containsIncludingHostElements): Specialized version of Node::contains that knows how to jump over template content boundaries.
123102        * dom/Node.h:
123103        (Node):
123104        * dom/TemplateContentDocumentFragment.h: Added.
123105        (TemplateContentDocumentFragment): Subclass of DocumentFragment which stores its host template element.
123106        (WebCore::TemplateContentDocumentFragment::create):
123107        (WebCore::TemplateContentDocumentFragment::host):
123108        (WebCore::TemplateContentDocumentFragment::TemplateContentDocumentFragment):
123109        * editing/markup.cpp:
123110        (WebCore::createFragmentForInnerOuterHTML):
123111        * html/HTMLTemplateElement.cpp:
123112        (WebCore::HTMLTemplateElement::content): Construct the new subclass.
123113
1231142013-01-02  Jon Lee  <jonlee@apple.com>
123115
123116        Revert auto-start plugins to snapshotted plugins after a period of inactivity
123117        https://bugs.webkit.org/show_bug.cgi?id=105973
123118        <rdar://problem/12947865>
123119
123120        Reviewed by Brady Eidson.
123121
123122        * html/HTMLPlugInElement.h:
123123        (WebCore::HTMLPlugInElement::plugInOriginHash): Expose publicly for WebKit2.
123124        Reorganize the protected members of the class.
123125        * html/HTMLPlugInImageElement.h: Move the member to HTMLPlugInElement.
123126
1231272013-01-03  Alexis Menard  <alexis@webkit.org>
123128
123129        Querying transition-timing-function value on the computed style does not return keywords when it should.
123130        https://bugs.webkit.org/show_bug.cgi?id=105442
123131
123132        Reviewed by Simon Fraser.
123133
123134        http://www.w3.org/TR/css3-transitions/#transition-timing-function-property
123135        contains a set of predefined timing functions which under the hood are
123136        implemented using cubic-bezier but it's an implementation detail that
123137        should not be exposed. It seems to be more clear to return a CSS
123138        keyword rather than the cubic-bezier form when querying the value of
123139        the property on the computed style. In fact the spec even say that for
123140        example the initial value is "ease" and not cubic-bezier(0.25, 0.1,
123141        0.25, 1.0). We could also imagine that in the future these predefined
123142        values could contain other values not represented by a cubic-bezier
123143        form. This behavior also align with the "linear" keyword which return
123144        "linear" rather than cubic-bezier(0.0, 0.0, 1.0, 1.0).
123145
123146        Test: transitions/transitions-parsing.html has been updated to cover
123147        the new behavior as well as making sure that an explicitly set value of
123148        cubic-bezier(0.25, 0.1, 0.25, 1.0) does not return "ease" but the
123149        cubic-bezier() form.
123150
123151        * css/CSSComputedStyleDeclaration.cpp:
123152        (WebCore::createAnimationValue):
123153        (WebCore):
123154        (WebCore::getTimingFunctionValue):
123155        * css/CSSToStyleMap.cpp:
123156        (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
123157        * platform/animation/TimingFunction.h:
123158        (WebCore::CubicBezierTimingFunction::create):
123159        (CubicBezierTimingFunction):
123160        (WebCore::CubicBezierTimingFunction::operator==):
123161        (WebCore::CubicBezierTimingFunction::timingFunctionPreset): Store the
123162        preset value of the timing function if it is one when creating it 
123163        so we can use it later from the computed style.
123164        (WebCore::CubicBezierTimingFunction::CubicBezierTimingFunction):
123165
1231662013-01-03  Tony Chang  <tony@chromium.org>
123167
123168        Generate internal.settings from Settings.in
123169        https://bugs.webkit.org/show_bug.cgi?id=104740
123170
123171        Reviewed by Adam Barth.
123172
123173        If the setting is declared in Settings.in and is a basic type, generate a
123174        setter function at internals.settings.
123175
123176        InternalSettingsGenerated.idl is created by make_settings.pl. InternalSettings.idl
123177        inherits from InternalSettingsGenerated.idl so we can override generated functions if
123178        needed or add additional custom setters.
123179
123180        This patch removes 2 password echo methods from InternalSettings.idl since they are
123181        auto generated. There are other methods we could remove, but I'll do that in a followup.
123182
123183        No new tests, existing tests should pass. Specifically, editing/input/password* tests should pass.
123184
123185        * CMakeLists.txt: Add generated cpp file to the testing lib.
123186        * DerivedSources.make: Add generated idl file and specify all the outputs of make_settings.pl
123187        * DerivedSources.pri: Generate idl file before generating bindings and include generated idl
123188        for bindings generation.
123189        * GNUmakefile.am: Specify all the generated files of make_settings.pl. Add generated idl to
123190        list of files to be processed and resulting output to be compiled.
123191        * UseJSC.cmake: Add generated idl file to list of idl files to process.
123192        * UseV8.cmake: Same as UseJSC.cmake.
123193        * WebCore.gyp/WebCore.gyp: Run make_settings.pl earlier so we can run the output through the
123194        bindings generator.
123195        * WebCore.gypi: Add new files.
123196        * WebCore.vcproj/WebCoreTestSupport.vcproj: Add new files.
123197        * WebCore.xcodeproj/project.pbxproj: Add new files.
123198        * bindings/scripts/CodeGenerator.pm:
123199        (IDLFileForInterface): Add current directory to the include path so DerivedSources.make can
123200        find the generated idl file.
123201        * page/make_settings.pl:
123202        (generateCode): Generate InternalSettingsGenerated.{idl,h,cpp}.
123203        (generateSettingsMacrosHeader): Rename since we're generating 2 headers now.
123204        (setterFunctionName): Helper function for naming a setter.
123205        (printGetterAndSetter): Use setterFunctionName.
123206        (enumerateParsedItems): Helper function that visits each parsed item.
123207        (generateInternalSettingsIdlFile): Generate idl file.
123208        (generateInternalSettingsHeaderFile): Generate header file.
123209        (generateInternalSettingsCppFile): Generate C++ file.
123210        * testing/InternalSettings.cpp:
123211        (WebCore::InternalSettings::Backup::Backup): Remove password echo members.
123212        (WebCore::InternalSettings::Backup::restoreTo): Remove password echo members.
123213        (InternalSettingsWrapper): We can't use RefCountedSupplemental because we're we're already
123214        RefCounted. Create a wrapper class to wrap the RefCounted InternalSettings for Supplement<>::provideTo,
123215        which uses an OwnPtr.
123216        (WebCore::InternalSettingsWrapper::InternalSettingsWrapper): Wraps an InternalSettings that the Page can own.
123217        (WebCore::InternalSettingsWrapper::~InternalSettingsWrapper): Clear's m_page when the Page goes away.
123218        (WebCore::InternalSettingsWrapper::internalSettings): Unwrap InternalSettings.
123219        (WebCore::InternalSettings::from): Update to use InternalSettingsWrapper.
123220        (WebCore::InternalSettings::InternalSettings): Call base class constructor.
123221        (WebCore::InternalSettings::resetToConsistentState): Renamed from reset() and pass through to base class.
123222        Also remove unnecessary pageScaleFactor reset (done in Internals::resetToConsistentState).
123223        * testing/InternalSettings.h:
123224        (Backup): Remove password echo members.
123225        (WebCore::InternalSettings::create): Create an instance instead of using new.
123226        (WebCore::InternalSettings::hostDestroyed): Clear the page. This is similar to the code that
123227        RefCountedSupplemental has.
123228        * testing/InternalSettings.idl: Extends InternalSettingsGenerated.
123229        * testing/js/WebCoreTestSupport.cpp:
123230        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
123231        * testing/v8/WebCoreTestSupport.cpp:
123232        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
123233        Remove an unused header.
123234
1232352013-01-03  Rik Cabanier  <cabanier@adobe.com>
123236
123237        Canvas blending tests fail on Mac WK2
123238        https://bugs.webkit.org/show_bug.cgi?id=105943
123239
123240        Reviewed by Simon Fraser.
123241
123242        Tests that now pass: 
123243            LayoutTests/fast/canvas/canvas-blend-solid.html 
123244            LayoutTests/fast/canvas/canvas-blend-image.html
123245
123246        * testing/InternalSettings.cpp:
123247        (WebCore::InternalSettings::Backup::Backup):
123248        (WebCore::InternalSettings::Backup::restoreTo):
123249        * testing/InternalSettings.h:
123250        (Backup):
123251
1232522013-01-03   Arko Saha  <arko@motorola.com>
123253
123254        Microdata: Fix build failure after r137003
123255        https://bugs.webkit.org/show_bug.cgi?id=106023
123256
123257        Reviewed by Ryosuke Niwa.
123258
123259        Set HTMLCollection::namedPropertyGetter as named property getter for
123260        HTMLPropertiesCollection in GenerateImplementationNamedPropertyGetter.
123261
123262        * bindings/scripts/CodeGeneratorV8.pm:
123263        (GenerateImplementationNamedPropertyGetter):
123264        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
123265        (WebCore::V8HTMLCollection::namedPropertyGetter):
123266
1232672013-01-03  Adam Klein  <adamk@chromium.org>
123268
123269        Clear failed image loads when an <img> is adopted into a different document
123270        https://bugs.webkit.org/show_bug.cgi?id=104409
123271
123272        Reviewed by Nate Chapin.
123273
123274        This avoids an assertion failure setImageWithoutConsideringPendingLoadEvent().
123275
123276        Test: loader/image-loader-adoptNode-assert.html
123277
123278        * loader/ImageLoader.cpp:
123279        (WebCore::ImageLoader::updateFromElement): Use new helper.
123280        (WebCore::ImageLoader::updateFromElementIgnoringPreviousError): ditto
123281        (WebCore::ImageLoader::elementDidMoveToNewDocument): ditto
123282        (WebCore::ImageLoader::clearFailedLoadURL): Added a helper method to self-document the code.
123283        (WebCore):
123284        * loader/ImageLoader.h:
123285        (ImageLoader):
123286
1232872013-01-03  Vincent Scheib  <scheib@chromium.org>
123288
123289        Sandbox-blocked pointer lock should log to the console.
123290        https://bugs.webkit.org/show_bug.cgi?id=105794
123291
123292        Reviewed by Adrienne Walker.
123293
123294        When pointer lock is requested and is denied due to sandbox restrictions
123295        a helpful message to web developers is sent to the developer console.
123296
123297        Existing test expectations updated.
123298
123299        * page/PointerLockController.cpp:
123300        (WebCore::PointerLockController::requestPointerLock):
123301
1233022013-01-03  Tom Sepez  <tsepez@chromium.org>
123303
123304        PingLoader.h missing virtual and OVERRIDE keywords on its inherited methods.
123305        https://bugs.webkit.org/show_bug.cgi?id=105975
123306
123307        Reviewed by Nate Chapin.
123308
123309        Change adds compile-time checks only, so no new tests.
123310
123311        * loader/PingLoader.h:
123312        (PingLoader):
123313        (WebCore::PingLoader::timeout):
123314
1233152013-01-02  Levi Weintraub  <leviw@chromium.org>
123316
123317        Fix incorrect assumption about in-flow descendants of inlines in touch event rect tracking
123318        https://bugs.webkit.org/show_bug.cgi?id=105970
123319
123320        Reviewed by Simon Fraser.
123321
123322        Correcting the touch event target rect accumulation code to no longer incorrectly assume that
123323        non-block renderers held only normal-flow children. The updated code will always walk the
123324        complete renderer sub-tree, but only do the work of calculating the absolute rect when the
123325        child won't necessarily fall inside its parent (floating, positioned, or transformed).
123326
123327        Tests: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html updated to catch bug.
123328
123329        * page/scrolling/ScrollingCoordinator.cpp:
123330        (WebCore::accumulateRendererTouchEventTargetRects): Walk all renderer sub-trees. Also keeping
123331        track of the last added parent container rect to avoid adding redundant rectangles.
123332        (WebCore::accumulateDocumentEventTargetRects): Avoiding adding empty rects.
123333
1233342013-01-03  Joshua Bell  <jsbell@chromium.org>
123335
123336        IndexedDB: Simplify IDBTransactionBackendImpl::scheduleTask usage
123337        https://bugs.webkit.org/show_bug.cgi?id=103536
123338
123339        Reviewed by Tony Chang.
123340
123341        Move responsibility for firing abort errors from requests that arrive on the
123342        back-end after an asynchronous transaction abort out of WebCore, since the
123343        front-end takes care of this as far as script is concerned.
123344
123345        No new tests -  no behavior changes.
123346
123347        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
123348        (WebCore::IDBCursorBackendImpl::continueFunction):
123349        (WebCore::IDBCursorBackendImpl::advance):
123350        (WebCore::IDBCursorBackendImpl::prefetchContinue):
123351        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
123352        (WebCore::IDBIndexBackendImpl::openCursor):
123353        (WebCore::IDBIndexBackendImpl::openKeyCursor):
123354        (WebCore::IDBIndexBackendImpl::count):
123355        (WebCore::IDBIndexBackendImpl::get):
123356        (WebCore::IDBIndexBackendImpl::getKey):
123357        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
123358        (WebCore::IDBObjectStoreBackendImpl::get):
123359        (WebCore::IDBObjectStoreBackendImpl::put):
123360        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
123361        (WebCore::IDBObjectStoreBackendImpl::clear):
123362        (WebCore::IDBObjectStoreBackendImpl::openCursor):
123363        (WebCore::IDBObjectStoreBackendImpl::count):
123364
1233652013-01-03  Tiancheng Jiang  <tijiang@rim.com>
123366
123367        Update BB10 media render theme.
123368        https://bugs.webkit.org/show_bug.cgi?id=105728
123369
123370        Reviewed by Yong Li.
123371
123372        Internally Reviewed by John Griggs.
123373
123374        Update GL friendly render method for audio volume.
123375        Change the background color for embedded media player to semi-transparent.
123376        Change remaining time font color to grey to match full screen video.
123377        Change media slider thumb color to blue when pressed.
123378
123379        * css/mediaControlsBlackBerry.css:
123380        (audio):
123381        (audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
123382        (video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
123383        (video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
123384        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
123385        (video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
123386        (audio::-webkit-media-controls-volume-slider-container):
123387        * platform/blackberry/RenderThemeBlackBerry.cpp:
123388        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
123389        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
123390
1233912013-01-03  Sheriff Bot  <webkit.review.bot@gmail.com>
123392
123393        Unreviewed, rolling out r138640.
123394        http://trac.webkit.org/changeset/138640
123395        https://bugs.webkit.org/show_bug.cgi?id=106019
123396
123397        Causing crashes in multiply() (Requested by danakj on
123398        #webkit).
123399
123400        * platform/graphics/transforms/TransformationMatrix.cpp:
123401        (WebCore):
123402        (WebCore::TransformationMatrix::multiply):
123403        * platform/graphics/transforms/TransformationMatrix.h:
123404        (TransformationMatrix):
123405
1234062013-01-03  Mike West  <mkwst@chromium.org>
123407
123408        The 'body' of seamless IFrames should default to 'margin: 0'
123409        https://bugs.webkit.org/show_bug.cgi?id=90834
123410
123411        Reviewed by Antti Koivisto.
123412
123413        Documents displayed in seamless iframes should override the 'body'
123414        element's normal 8px default margins with 0px, in order to ensure that
123415        contents are displayed flush with the boundries of the seamless box.[1]
123416
123417        This patch does so by adding a new pseudoclass to allow the user agent
123418        stylesheet to specify a different margin for seamless documents.
123419
123420        [1]: http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0039.html
123421
123422        Test: fast/frames/seamless/seamless-body-margin.html
123423
123424        * css/CSSSelector.cpp:
123425        (WebCore::CSSSelector::pseudoId):
123426        (WebCore::nameToPseudoTypeMap):
123427        (WebCore::CSSSelector::extractPseudoType):
123428        * css/CSSSelector.h:
123429        * css/SelectorChecker.cpp:
123430        (WebCore::SelectorChecker::checkOneSelector):
123431        * css/html.css:
123432        (body:-webkit-seamless-document):
123433        * rendering/style/RenderStyleConstants.h:
123434            Define a new pseudoclass: '-webkit-seamless-document', which
123435            matches for any element in a document that's rendered in a
123436            seamless IFrame.
123437
1234382013-01-03  Mike West  <mkwst@chromium.org>
123439
123440        seamless iframes don't inherit styles when srcdoc is used
123441        https://bugs.webkit.org/show_bug.cgi?id=103539
123442
123443        Reviewed by Antti Koivisto.
123444
123445        Seamless iframes populated via a 'srcdoc' attribute should always
123446        inherit styles from their parent documents. At the moment, this is
123447        only the case when they contain a stylesheet or some other markup
123448        that forces a style recalculation on the document. Simple 'srcdoc'
123449        attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
123450        recalculating style early, resulting in unstyled appearance.
123451
123452        This patch instructs WebCore to treat seamless documents as having an
123453        updated StyleResolver regardless of what actions the parser takes,
123454        which in turn ensures that the document's style is recalculated
123455        correctly.
123456
123457        Test: fast/frames/seamless/seamless-srcdoc.html
123458
123459        * dom/Document.cpp:
123460        (WebCore::Document::implicitOpen):
123461            If it's a seamless document, notify it that its StyleResolver isn't
123462            what it might have expected.
123463
1234642013-01-03  Allan Sandfeld Jensen  <allan.jensen@digia.com>
123465
123466        [Qt] Implement SimpleFontData::platformBoundsForGlyph
123467        https://bugs.webkit.org/show_bug.cgi?id=104127
123468
123469        Reviewed by Jocelyn Turcotte.
123470
123471        Implements platformBoundsForGlyph which is necessary for working MathML and Ruby.
123472
123473        * platform/graphics/qt/SimpleFontDataQt.cpp:
123474        (WebCore::SimpleFontData::platformBoundsForGlyph):
123475
1234762013-01-02  Steve Block  <steveblock@chromium.org>
123477
123478        Remove superfluous 'IntPoint toPoint(const IntSize&)'
123479        https://bugs.webkit.org/show_bug.cgi?id=105993
123480
123481        Reviewed by Eric Seidel.
123482
123483        Refactoring only, no change in behavior.
123484
123485        * accessibility/AccessibilityObject.cpp:
123486        (WebCore::AccessibilityObject::elementAccessibilityHitTest):
123487        * accessibility/AccessibilityRenderObject.cpp:
123488        (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
123489        * page/EventHandler.cpp:
123490        (WebCore::EventHandler::handleDrag):
123491        * page/scrolling/ScrollingCoordinator.cpp:
123492        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
123493        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
123494        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
123495        * platform/graphics/IntPoint.h:
123496        * rendering/RenderLayer.cpp:
123497        (WebCore::RenderLayer::scrollToOffset):
123498        (WebCore::RenderLayer::offsetFromResizeCorner):
123499        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
123500
1235012013-01-02  Huang Dongsung  <luxtella@company100.net>
123502
123503        [TexMap] Remove m_size in TextureMapperLayer.
123504        https://bugs.webkit.org/show_bug.cgi?id=105781
123505
123506        Reviewed by Noam Rosenthal.
123507
123508        m_size is duplicated by State::size, so this patch removes it.
123509
123510        No new tests. Refactoring only.
123511
123512        * platform/graphics/texmap/TextureMapperLayer.cpp:
123513        (WebCore::TextureMapperLayer::computeTransformsRecursive):
123514        (WebCore::TextureMapperLayer::paintSelf):
123515        (WebCore::TextureMapperLayer::isVisible):
123516        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
123517        * platform/graphics/texmap/TextureMapperLayer.h:
123518        (WebCore::TextureMapperLayer::layerRect):
123519        (TextureMapperLayer):
123520
1235212013-01-02  Kenneth Russell  <kbr@google.com>
123522
123523        [chromium] Creation of dedicated workers (isolates) leaks reference to HTMLDocument
123524        https://bugs.webkit.org/show_bug.cgi?id=105367
123525
123526        Reviewed by Dmitry Titov.
123527
123528        Eliminated a Chromium-specific object wrapping WorkerMessagingProxy in order to fix a
123529        lifetime management bug, which leaked every Document which started a dedicated worker.
123530
123531        Test: fast/workers/worker-document-leak.html
123532
123533        * workers/WorkerLoaderProxy.h:
123534        (WorkerLoaderProxy):
123535            Added Chromium-specific casting method to bridge two now-distinct class hierarchies.
123536        * workers/WorkerMessagingProxy.h:
123537        (WorkerMessagingProxy):
123538            Made destructor protected instead of private to allow subclassing.
123539
1235402013-01-02  Elliott Sprehn  <esprehn@chromium.org>
123541
123542        Make ClassList::reset's purpose obvious and don't keep quirks string when not needed
123543        https://bugs.webkit.org/show_bug.cgi?id=105963
123544
123545        Reviewed by Ojan Vafai.
123546
123547        ClassList::reset only exists to handle updating the special SpaceSplitString
123548        for quirks mode documents. This adds a new method that makes this obvious and
123549        instead of updating the string immediately clear the value and lazily
123550        update it. We also clear the value whenever we're inserted into the
123551        document so that when moving from a quirks mode document to a non-quirks
123552        mode document we don't keep the SpaceSplitString around if it's not needed.
123553
123554        No new tests, I'm not sure how to write a test that we don't keep the
123555        SpaceSplitString when moving between quirks and non-quirks mode documents.
123556
123557        * dom/Element.cpp:
123558        (WebCore::Element::classAttributeChanged):
123559        (WebCore::Element::insertedInto):
123560        * dom/Element.h:
123561        (Element):
123562        * dom/ElementRareData.h:
123563        (WebCore::ElementRareData::clearClassListValueForQuirksMode):
123564        * html/ClassList.cpp:
123565        * html/ClassList.h:
123566        (WebCore::ClassList::clearValueForQuirksMode):
123567
1235682013-01-02  Adam Barth  <abarth@webkit.org>
123569
123570        [V8] V8DOMWrapper.cpp has many more includes than necessary
123571        https://bugs.webkit.org/show_bug.cgi?id=105968
123572
123573        Reviewed by Kentaro Hara.
123574
123575        Now that this file isn't in charge of doing everything under the sun,
123576        it can have a more focused set of include directives.
123577
123578        * bindings/v8/V8DOMWrapper.cpp:
123579
1235802013-01-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
123581
123582        [EFL][CMAKE] Remove duplicated conditionals
123583        https://bugs.webkit.org/show_bug.cgi?id=105905
123584
123585        Reviewed by Laszlo Gombos.
123586
123587        Remove conditionals from CMake build system, where the files being built are already wrapped with
123588        the conditionals. It just messes cmake file up.
123589
123590        * PlatformEfl.cmake:
123591
1235922013-01-02  Alexey Proskuryakov  <ap@apple.com>
123593
123594        Release build fix.
123595
123596        * platform/network/cf/FormDataStreamCFNet.cpp: (WebCore::formFinalize):
123597        Use ASSERT_UNUSED for an otherwise unused variable.
123598
1235992013-01-02  Tony Chang  <tony@chromium.org>
123600
123601        Unreviewed, rolling out r138661.
123602        http://trac.webkit.org/changeset/138661
123603        https://bugs.webkit.org/show_bug.cgi?id=104740
123604
123605        Compile problems on EFL
123606
123607        * CMakeLists.txt:
123608        * DerivedSources.make:
123609        * DerivedSources.pri:
123610        * GNUmakefile.am:
123611        * UseJSC.cmake:
123612        * UseV8.cmake:
123613        * WebCore.gyp/WebCore.gyp:
123614        * WebCore.gypi:
123615        * WebCore.vcproj/WebCoreTestSupport.vcproj:
123616        * WebCore.xcodeproj/project.pbxproj:
123617        * bindings/scripts/CodeGenerator.pm:
123618        (IDLFileForInterface):
123619        * page/make_settings.pl:
123620        (generateCode):
123621        (generateHeader):
123622        (printGetterAndSetter):
123623        (printInitializer):
123624        * testing/InternalSettings.cpp:
123625        (WebCore::InternalSettings::Backup::Backup):
123626        (WebCore::InternalSettings::Backup::restoreTo):
123627        (WebCore::InternalSettings::from):
123628        (WebCore::InternalSettings::InternalSettings):
123629        (WebCore::InternalSettings::reset):
123630        (WebCore::InternalSettings::setPasswordEchoEnabled):
123631        (WebCore):
123632        (WebCore::InternalSettings::setPasswordEchoDurationInSeconds):
123633        * testing/InternalSettings.h:
123634        (Backup):
123635        (InternalSettings):
123636        * testing/InternalSettings.idl:
123637        * testing/js/WebCoreTestSupport.cpp:
123638        (WebCoreTestSupport::resetInternalsObject):
123639        * testing/v8/WebCoreTestSupport.cpp:
123640        (WebCoreTestSupport::resetInternalsObject):
123641
1236422013-01-02  Adam Barth  <abarth@webkit.org>
123643
123644        [V8] There are some extra blank lines after removing INC_STATS
123645        https://bugs.webkit.org/show_bug.cgi?id=105964
123646
123647        Reviewed by Ojan Vafai.
123648
123649        This patch is a followup to http://trac.webkit.org/changeset/138665
123650        that removes some extra blank lines that sed wasn't smart enough to
123651        delete for us.
123652
123653        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
123654        (WebCore::V8CSSStyleDeclaration::namedPropertyQuery):
123655        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
123656        (WebCore::V8DOMFormData::appendCallback):
123657        * bindings/v8/custom/V8DOMWindowCustom.cpp:
123658        (WebCore::V8DOMWindow::addEventListenerCallback):
123659        (WebCore::V8DOMWindow::removeEventListenerCallback):
123660        (WebCore::V8DOMWindow::postMessageCallback):
123661        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
123662        (WebCore::V8DedicatedWorkerContext::postMessageCallback):
123663        * bindings/v8/custom/V8DocumentCustom.cpp:
123664        (WebCore::V8Document::evaluateCallback):
123665        * bindings/v8/custom/V8GeolocationCustom.cpp:
123666        (WebCore::V8Geolocation::getCurrentPositionCallback):
123667        (WebCore::V8Geolocation::watchPositionCallback):
123668        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
123669        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
123670        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
123671        (WebCore::V8HTMLCollection::namedPropertyGetter):
123672        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
123673        (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
123674        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
123675        (WebCore::v8HTMLImageElementConstructorCallback):
123676        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
123677        (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
123678        * bindings/v8/custom/V8MessagePortCustom.cpp:
123679        (WebCore::V8MessagePort::postMessageCallback):
123680        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
123681        (WebCore::V8NamedNodeMap::namedPropertyGetter):
123682        * bindings/v8/custom/V8NotificationCustom.cpp:
123683        (WebCore::V8Notification::requestPermissionCallback):
123684        * bindings/v8/custom/V8PopStateEventCustom.cpp:
123685        (WebCore::V8PopStateEvent::stateAccessorGetter):
123686        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
123687        (WebCore::V8SQLResultSetRowList::itemCallback):
123688        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
123689        (WebCore::V8SQLTransaction::executeSqlCallback):
123690        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
123691        (WebCore::V8SQLTransactionSync::executeSqlCallback):
123692        * bindings/v8/custom/V8StorageCustom.cpp:
123693        (WebCore::V8Storage::namedPropertyQuery):
123694        * bindings/v8/custom/V8StyleSheetListCustom.cpp:
123695        (WebCore::V8StyleSheetList::namedPropertyGetter):
123696        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
123697        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
123698        (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
123699        (WebCore::V8WebGLRenderingContext::getParameterCallback):
123700        (WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
123701        (WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
123702        (WebCore::V8WebGLRenderingContext::getUniformCallback):
123703        * bindings/v8/custom/V8WorkerCustom.cpp:
123704        (WebCore::V8Worker::postMessageCallback):
123705
1237062013-01-02  Alexey Proskuryakov  <ap@apple.com>
123707
123708        [WK2 NetworkProcess] Uploading fails if a client modified the request
123709        https://bugs.webkit.org/show_bug.cgi?id=105965
123710
123711        Reviewed by Brady Eidson.
123712
123713        Associating streams with additional information via a side HashMap does not work,
123714        because the stream we can see is an internal one, with address and other information
123715        not matching a stream that we created.
123716
123717        It's surprising that this design issue was not causing major trouble without NetworkProcess.
123718
123719        * platform/network/cf/FormDataStreamCFNet.cpp:
123720        (WebCore): Renamed FormContext to FormCreationContext, because this type only used
123721        for creation. Later, we use FormStreamFields as context.
123722        (WebCore::closeCurrentStream): Moved a star.
123723        (WebCore::formCreate): We no longer have a side map to keep updated.
123724        (WebCore::formFinalize): Ditto.
123725        (WebCore::formCopyProperty): Added an accessor to get FormData pointer from a stream.
123726        (WebCore::setHTTPBody): Ditto.
123727        (WebCore::httpBodyFromStream): Use the new property to get FormData pointer.
123728
1237292013-01-02  Elliott Sprehn  <esprehn@chromium.org>
123730
123731        Clean up dispatchEvent overrides and overloads
123732        https://bugs.webkit.org/show_bug.cgi?id=105959
123733
123734        Reviewed by Adam Barth.
123735
123736        Add OVERRIDE to all dispatchEvent overrides and use "using" instead of
123737        reimplementing EventTarget::dispatchEvent in subclasses where having the
123738        virtual override of dispatchEvent hides the overloads in
123739        the superclass.
123740
123741        No new tests, just refactoring.
123742
123743        * Modules/indexeddb/IDBDatabase.h:
123744        (IDBDatabase):
123745        * Modules/indexeddb/IDBOpenDBRequest.h:
123746        (IDBOpenDBRequest):
123747        * Modules/indexeddb/IDBRequest.h:
123748        (IDBRequest):
123749        * Modules/indexeddb/IDBTransaction.h:
123750        (IDBTransaction):
123751        * dom/EventDispatchMediator.h:
123752        (FocusEventDispatchMediator):
123753        (BlurEventDispatchMediator):
123754        * dom/GestureEvent.h:
123755        (GestureEventDispatchMediator):
123756        * dom/KeyboardEvent.h:
123757        (KeyboardEventDispatchMediator):
123758        * dom/MouseEvent.h:
123759        * dom/Node.h:
123760        (Node):
123761        * dom/UIEvent.h:
123762        (FocusInEventDispatchMediator):
123763        (FocusOutEventDispatchMediator):
123764        * dom/WheelEvent.h:
123765        (WheelEventDispatchMediator):
123766        * html/HTMLMediaElement.h:
123767        * html/track/TextTrackCue.cpp:
123768        * html/track/TextTrackCue.h:
123769        (TextTrackCue):
123770        * page/DOMWindow.h:
123771        (DOMWindow):
123772        * svg/SVGElementInstance.h:
123773        (SVGElementInstance):
123774
1237752013-01-02  David Grogan  <dgrogan@chromium.org>
123776
123777        IndexedDB: Surface a few more leveldb errors.
123778        https://bugs.webkit.org/show_bug.cgi?id=105670
123779
123780        Reviewed by Tony Chang.
123781
123782        Two calls to old LevelDBTransaction::get slipped through the cracks.
123783
123784        * Modules/indexeddb/IDBBackingStore.cpp:
123785        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
123786        (WebCore::IndexCursorImpl::loadCurrentRow):
123787          Make these two functions use safeGet instead of get.
123788
123789        * platform/leveldb/LevelDBTransaction.cpp:
123790        * platform/leveldb/LevelDBTransaction.h:
123791          Remove get now that it is unused.
123792
1237932013-01-02  Bem Jones-Bey  <bjonesbe@adobe.com>
123794
123795        When a block's height is determined by min-height/max-height, children with percentage heights are sized incorrectly
123796        https://bugs.webkit.org/show_bug.cgi?id=26559
123797
123798        Reviewed by Tony Chang.
123799
123800        Percentage logical height computation now takes into account the min and max height of the container.
123801
123802        Test: fast/block/min-max-height-percent-height-child.html
123803
123804        * rendering/RenderBox.cpp:
123805        (WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax): Added. Like constrainLogicalHeightByMinMax,
123806            but constrains the content box instead of the border box.
123807        (WebCore):
123808        (WebCore::RenderBox::computeContentLogicalHeight): Make const so it can be called from the const method
123809            constrainContentBoxLogicalHeightByMinMax.
123810        (WebCore::RenderBox::computePercentageLogicalHeight): Use constrainContentBoxLogicalHeightByMinMax to properly
123811            respect min and max height on the containing box when computing the percentage height.
123812        * rendering/RenderBox.h:
123813        (RenderBox):
123814
1238152013-01-02  Tony Chang  <tony@chromium.org>
123816
123817        Unreviewed, force InternalSettings.cpp to rebuild to try and fix the Apple Win build.
123818
123819        * testing/InternalSettings.cpp:
123820
1238212013-01-02  Alec Flett  <alecflett@chromium.org>
123822
123823        IndexedDB: Use non-const buffers in put() to avoid copies
123824        https://bugs.webkit.org/show_bug.cgi?id=105572
123825
123826        Reviewed by Adam Barth.
123827
123828        Change the new put() method to allow the implementation to consume
123829        or adopt the vector, to avoid copying.
123830
123831        No new tests as this is an interface change that will be implemented later.
123832
123833        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
123834        (WebCore::IDBDatabaseBackendImpl::put):
123835        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
123836        (IDBDatabaseBackendImpl):
123837        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
123838
1238392013-01-02  Adam Barth  <abarth@webkit.org>
123840
123841        [V8] Remove INC_STATS because it is unused
123842        https://bugs.webkit.org/show_bug.cgi?id=105957
123843
123844        Reviewed by Ojan Vafai.
123845
123846        We haven't been able to compile with INC_STATS turned on in a long
123847        time. This patch just removes this ancient cruft. I generated this
123848        patch using
123849
123850        find . -type f | xargs sed -i '/INC_STATS/d'
123851
123852        and then fixing up V8BindingMacros.h.
123853
1238542013-01-02  Tony Chang  <tony@chromium.org>
123855
123856        Generate internal.settings from Settings.in
123857        https://bugs.webkit.org/show_bug.cgi?id=104740
123858
123859        Reviewed by Adam Barth.
123860
123861        If the setting is declared in Settings.in and is a basic type, generate a
123862        setter function at internals.settings.
123863
123864        InternalSettingsGenerated.idl is created by make_settings.pl. InternalSettings.idl
123865        inherits from InternalSettingsGenerated.idl so we can override generated functions if
123866        needed or add additional custom setters.
123867
123868        This patch removes 2 password echo methods from InternalSettings.idl since they are
123869        auto generated. There are other methods we could remove, but I'll do that in a followup.
123870
123871        No new tests, existing tests should pass. Specifically, editing/input/password* tests should pass.
123872
123873        * CMakeLists.txt: Add generated cpp file to the testing lib.
123874        * DerivedSources.make: Add generated idl file and specify all the outputs of make_settings.pl
123875        * DerivedSources.pri: Generate idl file before generating bindings and include generated idl
123876        for bindings generation.
123877        * GNUmakefile.am: Specify all the generated files of make_settings.pl. Add generated idl to
123878        list of files to be processed and resulting output to be compiled.
123879        * UseJSC.cmake: Add generated idl file to list of idl files to process.
123880        * UseV8.cmake: Same as UseJSC.cmake.
123881        * WebCore.gyp/WebCore.gyp: Run make_settings.pl earlier so we can run the output through the
123882        bindings generator.
123883        * WebCore.gypi: Add new files.
123884        * WebCore.vcproj/WebCoreTestSupport.vcproj: Add new files.
123885        * WebCore.xcodeproj/project.pbxproj: Add new files.
123886        * bindings/scripts/CodeGenerator.pm:
123887        (IDLFileForInterface): Add current directory to the include path so DerivedSources.make can
123888        find the generated idl file.
123889        * page/make_settings.pl:
123890        (generateCode): Generate InternalSettingsGenerated.{idl,h,cpp}.
123891        (generateSettingsMacrosHeader): Rename since we're generating 2 headers now.
123892        (setterFunctionName): Helper function for naming a setter.
123893        (printGetterAndSetter): Use setterFunctionName.
123894        (enumerateParsedItems): Helper function that visits each parsed item.
123895        (generateInternalSettingsIdlFile): Generate idl file.
123896        (generateInternalSettingsHeaderFile): Generate header file.
123897        (generateInternalSettingsCppFile): Generate C++ file.
123898        * testing/InternalSettings.cpp:
123899        (WebCore::InternalSettings::Backup::Backup): Remove password echo members.
123900        (WebCore::InternalSettings::Backup::restoreTo): Remove password echo members.
123901        (InternalSettingsWrapper): We can't use RefCountedSupplemental because we're we're already
123902        RefCounted. Create a wrapper class to wrap the RefCounted InternalSettings for Supplement<>::provideTo,
123903        which uses an OwnPtr.
123904        (WebCore::InternalSettingsWrapper::InternalSettingsWrapper): Wraps an InternalSettings that the Page can own.
123905        (WebCore::InternalSettingsWrapper::~InternalSettingsWrapper): Clear's m_page when the Page goes away.
123906        (WebCore::InternalSettingsWrapper::internalSettings): Unwrap InternalSettings.
123907        (WebCore::InternalSettings::from): Update to use InternalSettingsWrapper.
123908        (WebCore::InternalSettings::InternalSettings): Call base class constructor.
123909        (WebCore::InternalSettings::resetToConsistentState): Renamed from reset() and pass through to base class.
123910        Also remove unnecessary pageScaleFactor reset (done in Internals::resetToConsistentState).
123911        * testing/InternalSettings.h:
123912        (Backup): Remove password echo members.
123913        (WebCore::InternalSettings::create): Create an instance instead of using new.
123914        (WebCore::InternalSettings::hostDestroyed): Clear the page. This is similar to the code that
123915        RefCountedSupplemental has.
123916        * testing/InternalSettings.idl: Extends InternalSettingsGenerated.
123917        * testing/js/WebCoreTestSupport.cpp:
123918        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
123919        * testing/v8/WebCoreTestSupport.cpp:
123920        (WebCoreTestSupport::resetInternalsObject): Rename to resetToConsistentState to be like other code.
123921        Remove an unused header.
123922
1239232013-01-02  Adam Barth  <abarth@webkit.org>
123924
123925        HTML preload scanner doesn't need to remember whether we're scanning the body
123926        https://bugs.webkit.org/show_bug.cgi?id=105945
123927
123928        Reviewed by Eric Seidel.
123929
123930        As far as I can tell, no one uses this state.
123931
123932        * html/parser/CSSPreloadScanner.cpp:
123933        (WebCore::CSSPreloadScanner::CSSPreloadScanner):
123934        (WebCore::CSSPreloadScanner::scan):
123935        (WebCore::CSSPreloadScanner::emitRule):
123936        * html/parser/CSSPreloadScanner.h:
123937        (CSSPreloadScanner):
123938        * html/parser/HTMLPreloadScanner.cpp:
123939        (WebCore::PreloadTask::preload):
123940        (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
123941        (WebCore::HTMLPreloadScanner::processToken):
123942        * html/parser/HTMLPreloadScanner.h:
123943        (HTMLPreloadScanner):
123944        * loader/cache/CachedResourceLoader.cpp:
123945        (WebCore::CachedResourceLoader::preload):
123946        * loader/cache/CachedResourceLoader.h:
123947        (CachedResourceLoader):
123948
1239492013-01-02  Abhishek Arya  <inferno@chromium.org>
123950
123951        Crash in WebCore::Element::cloneElementWithoutChildren.
123952        https://bugs.webkit.org/show_bug.cgi?id=105949
123953
123954        Reviewed by Ryosuke Niwa.
123955        
123956        RefPtr |ancestors| vector since its elements can be destroyed from mutation events
123957        fired in CompositeEditCommand::appendNode. 
123958
123959        No new tests. The testcase relies on recursive DOM mutations and does not minimize.
123960
123961        * editing/InsertParagraphSeparatorCommand.cpp:
123962        (WebCore::InsertParagraphSeparatorCommand::getAncestorsInsideBlock):
123963        (WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
123964        (WebCore::InsertParagraphSeparatorCommand::doApply):
123965        * editing/InsertParagraphSeparatorCommand.h:
123966        (InsertParagraphSeparatorCommand):
123967
1239682013-01-02  Douglas Stockwell  <dstockwell@chromium.org>
123969
123970        Crash in WebCore::InlineBox::deleteLine
123971        https://bugs.webkit.org/show_bug.cgi?id=93448
123972
123973        Reviewed by Eric Seidel.
123974
123975        When we ran off the end of the line while looking for line breaks in an
123976        inline with white-space:nowrap nested in a block with white-space:pre
123977        it was possible for the line break to be set at or before the current
123978        position -- this could result in duplications in the render tree or
123979        infinite looping.
123980
123981        This patch changes the "fixup" logic that runs after we have finished
123982        iterating through elements and text and have potentially found a break
123983        point. In the case of a block setting white-space:pre we would back up
123984        a character in some cases. Not doing so could leave whitespace that
123985        should have been collapsed at the end of an inline.
123986
123987        For example in '<span style="white-space:nowrap">x_</span>_y' if a
123988        break was inserted before 'y' the space after 'x' would still be
123989        rendered (rather than be collapsed with the break).
123990
123991        To avoid this problem we will not take the opportunity to break until
123992        we have finished collapsing whitespace.
123993
123994        Tests: fast/text/whitespace/inline-whitespace-wrapping-1.html
123995               fast/text/whitespace/inline-whitespace-wrapping-2.html
123996               fast/text/whitespace/inline-whitespace-wrapping-3.html
123997               fast/text/whitespace/inline-whitespace-wrapping-4.html
123998               fast/text/whitespace/nowrap-white-space-collapse.html
123999               fast/text/whitespace/pre-block-normal-inline-crash-1.html
124000               fast/text/whitespace/pre-block-normal-inline-crash-2.html
124001
124002        * rendering/RenderBlockLineLayout.cpp:
124003        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Collapse
124004        whitespace before breaking. Avoid setting the break before the current
124005        position.
124006
1240072013-01-02  Adam Barth  <abarth@webkit.org>
124008
124009        Remove webkitPostMessage
124010        https://bugs.webkit.org/show_bug.cgi?id=105910
124011
124012        Reviewed by Kentaro Hara.
124013
124014        The vendor-prefixed version of postMessage was never widely used.
124015        We've been compiling it out of the Chromium port for a while now and
124016        haven't received any reports of compatibility problems. I've done a
124017        number of web searches for uses of the API and personally contacted a
124018        handful of authors I found using the API, all of whom have now moved to
124019        the identical unprefixed API. We've publicied the prefix removal in a
124020        blog post:
124021
124022        http://blog.chromium.org/2012/11/a-web-developers-guide-to-latest-chrome.html
124023
124024        and discussed it on webkit-dev:
124025
124026        http://lists.macosforge.org/pipermail/webkit-dev/2012-September/022189.html
124027
124028        We've done our diligence, and now we should remove the API from the
124029        remainder of the ports.
124030
124031        * bindings/js/JSDOMWindowCustom.cpp:
124032        * bindings/js/JSDedicatedWorkerContextCustom.cpp:
124033        * bindings/js/JSMessagePortCustom.cpp:
124034        * bindings/js/JSWorkerCustom.cpp:
124035        * bindings/v8/custom/V8DOMWindowCustom.cpp:
124036        (WebCore::V8DOMWindow::postMessageCallback):
124037        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
124038        (WebCore::V8DedicatedWorkerContext::postMessageCallback):
124039        * bindings/v8/custom/V8MessagePortCustom.cpp:
124040        (WebCore::V8MessagePort::postMessageCallback):
124041        * bindings/v8/custom/V8WorkerCustom.cpp:
124042        (WebCore::V8Worker::postMessageCallback):
124043        * dom/MessagePort.idl:
124044        * page/DOMWindow.idl:
124045        * workers/DedicatedWorkerContext.idl:
124046        * workers/Worker.idl:
124047
1240482013-01-02  Benjamin Poulain  <benjamin@webkit.org>
124049
124050        Optimize TransformationMatrix::multiply() for x86_64
124051        https://bugs.webkit.org/show_bug.cgi?id=105719
124052
124053        Reviewed by Sam Weinig.
124054
124055        On x86_64, we have access to 16 XMM registers. This can hold 32 double values.
124056        We can use that in two ways to optimize matrix multiplications:
124057        -Keep the source matrix completely in registers. Write the result directly in
124058         the source matrix's memory. This avoids the memcpy at the end of the multiplication
124059         and various memory operations.
124060        -Use SIMD with SSE to perform 2 operations at a time.
124061
124062        The parameter from the second matrix are loaded one by one in XMM registers.
124063        Loading them with SSE then shuffling the values perform worse than loading
124064        one by one.
124065
124066        This is only enabled on 64bits as x86 only has access to 8 XMM registers and
124067        the function should be written differently.
124068
124069        On a i5, TransformationMatrix::multiply() perform about 3 times faster with the change.
124070
124071        * platform/graphics/transforms/TransformationMatrix.cpp:
124072        (WebCore::TransformationMatrix::multiply):
124073        * platform/graphics/transforms/TransformationMatrix.h:
124074        (TransformationMatrix): Fix an incorrect comment. Unify the comment with the cpp file.
124075
1240762013-01-02  Mike West  <mkwst@chromium.org>
124077
124078        Clean up the loadXXXStyle() idiom in StyleResolver.
124079        https://bugs.webkit.org/show_bug.cgi?id=105903
124080
124081        Reviewed by Darin Adler.
124082
124083        This patch refactors 'loadViewSourceStyle' in order to avoid the
124084        necessity of each call site checking whether the relevant data has
124085        been loaded. The new 'viewSourceStyle' will load the data if required,
124086        and return a pointer which can be used directly.
124087
124088        No new tests, as this refactoring should exhibit no visible change in
124089        behavior.
124090
124091        * css/StyleResolver.cpp:
124092        (WebCore::viewSourceStyle):
124093            Lazily populate the static 'defaultViewSourceStyle' with data. I
124094            haven't removed the outer variable, as it's used directly in
124095            StyleResolver::reportMemoryUsage.
124096        (WebCore::StyleResolver::matchUARules):
124097        (WebCore::StyleResolver::collectFeatures):
124098            Use the new hotness rather than the old, lame method.
124099
1241002013-01-02  Sheriff Bot  <webkit.review.bot@gmail.com>
124101
124102        Unreviewed, rolling out r138627.
124103        http://trac.webkit.org/changeset/138627
124104        https://bugs.webkit.org/show_bug.cgi?id=105935
124105
124106        This patch doesn't fix Windows port build failure (Requested
124107        by rniwa on #webkit).
124108
124109        * WebCore.vcproj/WebCore.vcproj:
124110
1241112013-01-02  Elliott Sprehn  <esprehn@chromium.org>
124112
124113        Transitions and animations do not apply to CSS ::before and ::after pseudo-elements
124114        https://bugs.webkit.org/show_bug.cgi?id=92591
124115
124116        Reviewed by Eric Seidel.
124117
124118        The new DOM based :before and :after pseudo elements support animations
124119        and transitions already, but I had disabled support so we could turn them
124120        on in a separate step. This patch just removes the checks and adds tests.
124121
124122        This also adds two methods to internals to allow pausing animations and
124123        transitions on pseudo elements at predictable locations so the tests
124124        are not flaky.
124125
124126        Tests: fast/css-generated-content/pseudo-animation.html
124127               fast/css-generated-content/pseudo-transition.html
124128
124129        * WebCore.exp.in:
124130        * page/animation/AnimationController.cpp:
124131        (WebCore::AnimationController::updateAnimations):
124132        * testing/Internals.cpp:
124133        (WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
124134        (WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):
124135        * testing/Internals.h:
124136        (Internals):
124137        * testing/Internals.idl:
124138
1241392013-01-02  Chris Rogers  <crogers@google.com>
124140
124141        Implement WebIDL-style string constants in WebAudio
124142        https://bugs.webkit.org/show_bug.cgi?id=105058
124143
124144        Reviewed by Kentaro Hara.
124145
124146        See Deprecation Notes for more detail:
124147        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#DeprecationNotes
124148
124149        PannerNode, BiquadFilterNode, OscillatorNode constants must support WebIDL-style string constants.
124150        Legacy support in the setters for the old integer values should be supported.
124151
124152        This patch handles the changes for OscillatorNode.
124153
124154        * GNUmakefile.list.am:
124155        * Modules/webaudio/OscillatorNode.cpp:
124156        (WebCore::OscillatorNode::OscillatorNode):
124157        (WebCore::OscillatorNode::type):
124158        (WebCore):
124159        (WebCore::OscillatorNode::setType):
124160        * Modules/webaudio/OscillatorNode.h:
124161        * Modules/webaudio/OscillatorNode.idl:
124162        * Target.pri:
124163        * UseJSC.cmake:
124164        * UseV8.cmake:
124165        * WebCore.gypi:
124166        * WebCore.xcodeproj/project.pbxproj:
124167        * bindings/js/JSOscillatorNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
124168        (WebCore):
124169        (WebCore::JSOscillatorNode::setType):
124170        * bindings/v8/custom/V8OscillatorNodeCustom.cpp: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
124171        (WebCore):
124172        (WebCore::V8OscillatorNode::typeAccessorSetter):
124173
1241742013-01-02  Robert Hogan  <robert@webkit.org>
124175
124176        Regression (r132935): WebKit breaks between <nobr> tags
124177        https://bugs.webkit.org/show_bug.cgi?id=11857
124178
124179        Reviewed by David Hyatt.
124180
124181        The fix for bug 29648 in http://trac.webkit.org/changeset/132935 was too broad - it caused us
124182        to find linebreaks in autowrap containers between non-wrapping elements where there was no 
124183        whitespace to allow the break. This reverts the code change in r132935 and ensures we attempt
124184        to move below floats when inside an autowrap container but leaves the treatment of non-wrapping
124185        elements in an autowrap container unaffected.
124186
124187        Test: fast/inline/break-between-nobr.html
124188
124189        * rendering/RenderBlockLineLayout.cpp:
124190        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
124191
1241922013-01-02  Ryosuke Niwa  <rniwa@webkit.org>
124193
124194        Another Windows port build fix attempt. Don't try to build WTF files in WebCore.
124195
124196        Rubber-stamped by Sam Weinig.
124197
124198        * WebCore.vcproj/WebCore.vcproj:
124199
1242002013-01-02  Kondapally Kalyan  <kalyan.kondapally@intel.com>
124201
124202        [EFL] [WebGL] Minor cleanup in PlatformContext.
124203        https://bugs.webkit.org/show_bug.cgi?id=105872
124204
124205        Reviewed by Kenneth Rohde Christiansen.
124206
124207        The logic to check for supported extensions is scattered in different classes i.e PlatformContext, eglcontext etc.
124208        This patch cleans up any duplicate code and adds new api in GLPlatformContext to query for supported GL, EGL and GLX extensions.
124209
124210        * PlatformEfl.cmake:
124211        * platform/graphics/opengl/GLPlatformContext.cpp:
124212        (WebCore):
124213        (WebCore::GLPlatformContext::createContext):
124214        (WebCore::GLPlatformContext::supportsGLExtension):
124215        (WebCore::GLPlatformContext::supportsEGLExtension):
124216        (WebCore::GLPlatformContext::supportsGLXExtension):
124217        (WebCore::GLPlatformContext::makeCurrent):
124218        (WebCore::GLPlatformContext::initializeResetStatusExtension):
124219        * platform/graphics/opengl/GLPlatformContext.h:
124220        * platform/graphics/surfaces/egl/EGLContext.cpp:
124221        (WebCore::isRobustnessExtSupported):
124222        (WebCore::EGLOffScreenContext::initialize):
124223        * platform/graphics/surfaces/glx/GLXContext.cpp:
124224        (WebCore::initializeARBExtensions):
124225        (WebCore::GLXOffScreenContext::initialize):
124226
1242272013-01-02  Sheriff Bot  <webkit.review.bot@gmail.com>
124228
124229        Unreviewed, rolling out r138601.
124230        http://trac.webkit.org/changeset/138601
124231        https://bugs.webkit.org/show_bug.cgi?id=105917
124232
124233        Also not an optimal solution, needs more discussion.
124234        (Requested by mkwst_ on #webkit).
124235
124236        * dom/Document.cpp:
124237        (WebCore::Document::finishedParsing):
124238
1242392013-01-02  Sheriff Bot  <webkit.review.bot@gmail.com>
124240
124241        Unreviewed, rolling out r138611.
124242        http://trac.webkit.org/changeset/138611
124243        https://bugs.webkit.org/show_bug.cgi?id=105916
124244
124245        Not an optimal solution, needs more discussion. (Requested by
124246        mkwst_ on #webkit).
124247
124248        * CMakeLists.txt:
124249        * DerivedSources.make:
124250        * DerivedSources.pri:
124251        * GNUmakefile.am:
124252        * WebCore.gyp/WebCore.gyp:
124253        * WebCore.vcproj/WebCore.vcproj:
124254        * css/StyleResolver.cpp:
124255        (WebCore):
124256        (WebCore::StyleResolver::matchUARules):
124257        (WebCore::StyleResolver::collectFeatures):
124258        (WebCore::StyleResolver::reportMemoryUsage):
124259        * css/seamless.css: Removed.
124260
1242612013-01-02  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
124262
124263        [AC] Memory leak in GraphicsSurfacePrivate::findFBConfigWithAlpha()
124264        https://bugs.webkit.org/show_bug.cgi?id=105770
124265
124266        Reviewed by Noam Rosenthal.
124267
124268        Free the memory returned by glXGetVisualFromFBConfig() using
124269        XFree to avoid a memory leak.
124270
124271        No new tests. No change in behavior.
124272
124273        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
124274        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
124275
1242762013-01-02  Mike West  <mkwst@chromium.org>
124277
124278        The 'body' of seamless IFrames should default to 'margin: 0'
124279        https://bugs.webkit.org/show_bug.cgi?id=90834
124280
124281        Reviewed by Eric Seidel.
124282
124283        Documents displayed in seamless iframes should override the 'body'
124284        element's normal 8px default margins with 0px, in order to ensure that
124285        contents are displayed flush with the boundries of the seamless box.[1]
124286
124287        This patch does so by adding a new user agent stylesheet for seamless
124288        documents, and teaching the StyleResolver how and when to apply it.
124289
124290        [1]: http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0039.html
124291
124292        Test: fast/frames/seamless/seamless-body-margin.html
124293
124294        * DerivedSources.make:
124295        * DerivedSources.pri:
124296        * GNUmakefile.am:
124297        * WebCore.gyp/WebCore.gyp:
124298        * WebCore.vcproj/WebCore.vcproj:
124299        * CMakeLists.txt:
124300            Added a new CSS file! Let's tell everyone!
124301        * css/StyleResolver.cpp:
124302        (WebCore):
124303        (WebCore::loadSeamlessStyle):
124304        (WebCore::StyleResolver::matchUARules):
124305        (WebCore::StyleResolver::collectFeatures):
124306        (WebCore::StyleResolver::reportMemoryUsage):
124307            Load the new stylesheet, and apply it to the document in
124308            matchUARules iff the document should be displayed seamlessly.
124309        * css/seamless.css: Added.
124310        (body):
124311            Stylesheet containing defaults for seamless documents.
124312
1243132013-01-01  Dan Bernstein  <mitz@apple.com>
124314
124315        <rdar://problem/12942239> Update copyright strings
124316
124317        Reviewed by Sam Weinig.
124318
124319        * Info.plist:
124320
1243212013-01-01  KwangYong Choi  <ky0.choi@samsung.com>
124322
124323        [EFL] Enable MHTML feature
124324        https://bugs.webkit.org/show_bug.cgi?id=105815
124325
124326        Reviewed by Laszlo Gombos.
124327
124328        Add application/x-mimearchive type to archive mime types.
124329        Add mht and mhtml to extension map.
124330
124331        No new tests. Existing layout tests pass.
124332
124333        * loader/archive/ArchiveFactory.cpp:
124334        (WebCore::archiveMIMETypes):
124335        * platform/efl/MIMETypeRegistryEfl.cpp:
124336        (WebCore):
124337
1243382013-01-01  Mike West  <mkwst@chromium.org>
124339
124340        seamless iframes don't inherit styles when srcdoc is used
124341        https://bugs.webkit.org/show_bug.cgi?id=103539
124342
124343        Reviewed by Eric Seidel.
124344
124345        Seamless iframes populated via a 'srcdoc' attribute should always
124346        inherit styles from their parent documents. At the moment, this is
124347        only the case when they contain a stylesheet or some other markup
124348        that forces a style recalculation on the document. Simple 'srcdoc'
124349        attributes (e.g. "srcdoc='<p>This is a comment.</p>'") bail out of
124350        recalculating style early, resulting in unstyled appearance.
124351
124352        This patch instructs WebCore to treat seamless documents as having an
124353        updated StyleResolver regardless of what actions the parser takes,
124354        which in turn ensures that the document's style is recalculated
124355        correctly.
124356
124357        Test: fast/frames/seamless/seamless-srcdoc.html
124358
124359        * dom/Document.cpp:
124360        (WebCore::Document::finishedParsing):
124361            If it's a seamless document, notify it that its StyleResolver isn't
124362            what it might have expected.
124363
1243642012-12-31  Jeff Rogers  <jrogers@rim.com>
124365
124366        [BlackBerry] Fullscreen Media Time Indicators Background Incorrect
124367        https://bugs.webkit.org/show_bug.cgi?id=105888
124368
124369        Reviewed by George Staikos.
124370
124371        Internal PR 272699.
124372        Update fullscreen media controls CSS to fix time container background
124373        color. Also fix transparency to be 80% opaque to and the time
124374        remaining text color to match the system player.
124375
124376        No new tests as there is no functionality change.
124377
124378        * css/mediaControlsBlackBerryFullscreen.css:
124379        (video:-webkit-full-screen::-webkit-media-controls-panel):
124380        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
124381        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
124382        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
124383        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
124384        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
124385        (video:-webkit-full-screen::-webkit-media-controls-placeholder):
124386
1243872012-12-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
124388
124389        [EFL][WebGL] Add compile time support for GLES2.
124390        https://bugs.webkit.org/show_bug.cgi?id=105816
124391
124392        Reviewed by Kenneth Rohde Christiansen.
124393
124394        This patch adds build support for GLES2.
124395        GLES2 support can be enabled during compile time by passing -DENABLE_GLES2=ON as
124396        cmake config parameter. GLES2 options is not enabled by default. This patch doesn't
124397        address all the build issues related to GLES2 but only adds the needed support in
124398        PlatformEfl.cmake.
124399
124400        * PlatformEfl.cmake:
124401
1244022012-12-31  Andy Chen  <andchen@rim.com>
124403
124404        [BlackBerry] The HTML5 video fullscreen time indicator on the right cuts clipped when the video is longer than 1 hour
124405        https://bugs.webkit.org/show_bug.cgi?id=105887
124406
124407        Reviewed by George Staikos.
124408
124409        The width of the time part was fixed. Remove it.
124410
124411        No new test is required because no functionality change.
124412
124413        * platform/blackberry/RenderThemeBlackBerry.cpp:
124414        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
124415
1244162012-12-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
124417
124418        [EFL] [WebGL] Rename EGLConfigHelper as EGLConfigSelector.
124419        https://bugs.webkit.org/show_bug.cgi?id=105876
124420
124421        Reviewed by Kenneth Rohde Christiansen.
124422
124423        This is to sync the naming conventions of our classes in both EGL and GLX implementations. 
124424        In our GLX implementation, class responsible for the same functionality is named as GLXConfigSelector. 
124425        This patch renames EGLConfigHelper as EGLConfigSelector.
124426
124427        * PlatformEfl.cmake:
124428        * platform/graphics/surfaces/egl/EGLConfigSelector.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.cpp.
124429        (WebCore):
124430        (WebCore::SharedEGLDisplay::deref):
124431        (WebCore::SharedEGLDisplay::sharedEGLDisplay):
124432        (WebCore::SharedEGLDisplay::SharedEGLDisplay):
124433        (WebCore::SharedEGLDisplay::cleanup):
124434        (WebCore::SharedEGLDisplay::~SharedEGLDisplay):
124435        (WebCore::EGLConfigSelector::EGLConfigSelector):
124436        (WebCore::EGLConfigSelector::~EGLConfigSelector):
124437        (WebCore::EGLConfigSelector::display):
124438        (WebCore::EGLConfigSelector::pBufferContextConfig):
124439        (WebCore::EGLConfigSelector::surfaceContextConfig):
124440        (WebCore::EGLConfigSelector::nativeVisualId):
124441        (WebCore::EGLConfigSelector::reset):
124442        (WebCore::EGLConfigSelector::createConfig):
124443        * platform/graphics/surfaces/egl/EGLConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/egl/EGLConfigHelper.h.
124444        (WebCore):
124445        (SharedEGLDisplay):
124446        (WebCore::SharedEGLDisplay::create):
124447        (EGLConfigSelector):
124448        * platform/graphics/surfaces/egl/EGLSurface.cpp:
124449        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
124450        (WebCore::EGLWindowTransportSurface::configuration):
124451        (WebCore::EGLWindowTransportSurface::destroy):
124452        * platform/graphics/surfaces/egl/EGLSurface.h:
124453        (EGLWindowTransportSurface):
124454
1244552012-12-30  Philippe Normand  <pnormand@igalia.com>
124456
124457        [GStreamer] webaudio/decode-audio-data-basic.html fails
124458        https://bugs.webkit.org/show_bug.cgi?id=105298
124459
124460        Reviewed by Martin Robinson.
124461
124462        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
124463        (WebCore::AudioFileReader::createBus): Return a null pointer if an
124464        error happened while processing a media file.
124465
1244662012-12-30  Christophe Dumez  <christophe.dumez@intel.com>
124467
124468        Regression(r138545): Makes WebAudio tests crash
124469        https://bugs.webkit.org/show_bug.cgi?id=105869
124470
124471        Reviewed by Philippe Normand.
124472
124473        Stop using smart pointers and adoptGRef() for the
124474        GstBus object and call gst_object_unref() manually.
124475        This fixes assertions hits when calling adoptGRef()
124476        since the GstBus object has a floating reference.
124477
124478        Alternatively, we could keep using smart pointers
124479        and stop calling adoptGRef() so that
124480        gst_object_ref_sink() is called and the floating
124481        flag is cleared but I think it is clearer to do
124482        it manually here.
124483
124484        No new tests, already covered by existing tests.
124485
124486        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
124487        (WebCore::messageCallback):
124488        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
124489        (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
124490        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
124491        (WebCore::AudioFileReader::~AudioFileReader):
124492        (WebCore::AudioFileReader::decodeAudioForBusCreation):
124493
1244942012-12-29  Dimitri Glazkov  <dglazkov@chromium.org>
124495
124496        Rename StyleResolver's member variable that holds SelectorChecker to a proper name.
124497        https://bugs.webkit.org/show_bug.cgi?id=105864
124498
124499        In https://bugs.webkit.org/show_bug.cgi?id=105660#c11, Antti suggested renaming m_checker to
124500        m_selectorChecker. I've forgotten about that, but now I remembered it.
124501
124502        Reviewed by Eric Seidel.
124503
124504        No change in functionality, covered by existing tests.
124505
124506        * css/StyleResolver.cpp/h: Renamed all instances of m_checker to m_selectorChecker.
124507
1245082012-12-29  Dimitri Glazkov  <dglazkov@chromium.org>
124509
124510        Move pointer to Document up from SelectorChecker to StyleResolver.
124511        https://bugs.webkit.org/show_bug.cgi?id=105863
124512
124513        Now that SelectorChecker is mostly stateless, it no longer needs to keep a pointer to Document, which
124514        makes all the code in StyleResolver that reaches for it sort of weird.
124515
124516        Reviewed by Eric Seidel.
124517
124518        No change in functionality, covered by existing tests.
124519
124520        * css/SelectorChecker.cpp:
124521        (WebCore::SelectorChecker::SelectorChecker): Changed to take document as argument (only used to set bit fields).
124522        (WebCore::SelectorChecker::checkOneSelector): Changed to use element document.
124523        (WebCore::SelectorChecker::checkScrollbarPseudoClass): Ditto.
124524        * css/SelectorChecker.h:
124525        (WebCore): Removed unnecessary Document forward declaration.
124526        (SelectorChecker): Changed constructor declaration, and removed m_document member.
124527        * css/StyleResolver.cpp:
124528        (WebCore::StyleResolver::StyleResolver): Adjusted SelectorChecker initializer accordingly.
124529        (WebCore::StyleResolver::initElement): Changed to use own document accessor.
124530        (WebCore::StyleResolver::initForStyleResolve): Ditto.
124531        (WebCore::StyleResolver::matchUARules): Ditto.
124532        (WebCore::StyleResolver::styleForPage): Ditto.
124533        (WebCore::StyleResolver::applyProperty): Ditto.
124534        (WebCore::StyleResolver::checkForGenericFamilyChange): Ditto.
124535        (WebCore::StyleResolver::initializeFontStyle): Ditto.
124536        (WebCore::StyleResolver::setFontSize): Ditto.
124537        * css/StyleResolver.h:
124538        (WebCore::StyleResolver::document): Changed to use own member.
124539        (WebCore::StyleResolver::documentSettings): Ditto.
124540        (StyleResolver): Added m_document member.
124541        * dom/SelectorQuery.cpp:
124542        (WebCore::SelectorQuery::matches): Changed callsite to reflect new constructor signature.
124543        (WebCore::SelectorQuery::queryAll): Ditto.
124544        (WebCore::SelectorQuery::queryFirst): Ditto.
124545        * html/shadow/ContentSelectorQuery.cpp:
124546        (WebCore::ContentSelectorChecker::ContentSelectorChecker): Ditto.
124547        (WebCore::ContentSelectorQuery::ContentSelectorQuery): Ditto.
124548        * html/shadow/ContentSelectorQuery.h:
124549        (ContentSelectorChecker): Removed unnecessary argument.
124550
1245512012-12-29  Otto Derek Cheung  <otcheung@rim.com>
124552
124553        [BlackBerry] Cookies with an IP domain are not being loaded properly into memory
124554        https://bugs.webkit.org/show_bug.cgi?id=105859
124555
124556        PR 271597
124557
124558        Reviewed by George Staikos.
124559
124560        The isIP flag isn't persistented in the database. We need to check it
124561        again when we load it into memory.
124562
124563        * platform/blackberry/CookieManager.cpp:
124564        (WebCore::CookieManager::getBackingStoreCookies):
124565
1245662012-12-29  Kondapally Kalyan  <kalyan.kondapally@intel.com>
124567
124568        [EFL][WebGL] Refactor GLXImplementation.
124569        https://bugs.webkit.org/show_bug.cgi?id=105825
124570
124571        Reviewed by Kenneth Rohde Christiansen.
124572
124573        This patch decouples native window management and logic to find surface configuration in GLX implementation.
124574
124575        * platform/graphics/opengl/GLDefs.h:
124576        * platform/graphics/surfaces/glx/GLXConfigSelector.h: Renamed from Source/WebCore/platform/graphics/surfaces/glx/GLXWindowResources.h.
124577        (WebCore):
124578        (GLXConfigSelector):
124579        (WebCore::GLXConfigSelector::GLXConfigSelector):
124580        (WebCore::GLXConfigSelector::~GLXConfigSelector):
124581        (WebCore::GLXConfigSelector::visualInfo):
124582        (WebCore::GLXConfigSelector::pBufferContextConfig):
124583        (WebCore::GLXConfigSelector::surfaceContextConfig):
124584        (WebCore::GLXConfigSelector::reset):
124585        (WebCore::GLXConfigSelector::createConfig):
124586
124587        Helper class to find surface configuration.
124588
124589        * platform/graphics/surfaces/glx/GLXContext.h:
124590        (GLXOffScreenContext):
124591        * platform/graphics/surfaces/glx/GLXSurface.cpp:
124592        (WebCore::GLXTransportSurface::GLXTransportSurface):
124593        (WebCore::GLXTransportSurface::configuration):
124594        (WebCore::GLXTransportSurface::setGeometry):
124595        (WebCore::GLXTransportSurface::destroy):
124596        (WebCore::GLXPBuffer::GLXPBuffer):
124597        (WebCore::GLXPBuffer::initialize):
124598        (WebCore::GLXPBuffer::configuration):
124599        * platform/graphics/surfaces/glx/GLXSurface.h:
124600        (GLXTransportSurface):
124601        (GLXPBuffer):
124602
124603        Inheritance changed from X11OffScreenWindow to GLPlatformSurface.
124604
124605        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
124606        (WebCore):
124607        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
124608        (WebCore::X11OffScreenWindow::reSizeWindow):
124609        (WebCore::X11OffScreenWindow::createOffscreenWindow):
124610        (WebCore::X11OffScreenWindow::destroyWindow):
124611        (WebCore::X11OffScreenWindow::nativeSharedDisplay):
124612        (WebCore::X11OffScreenWindow::setVisualInfo):
124613        (WebCore::X11OffScreenWindow::isXRenderExtensionSupported):
124614        * platform/graphics/surfaces/glx/X11WindowResources.h:
124615        (WebCore::SharedX11Resources::create):
124616        (SharedX11Resources):
124617        (X11OffScreenWindow):
124618
124619         Removed code related to surface configiration.
124620
1246212012-12-29  Eugene Klyuchnikov  <eustas@chromium.org>
124622
124623        Web Inspector: [Timeline] cpu bar popover shows wrong duration / cpu time.
124624        https://bugs.webkit.org/show_bug.cgi?id=105854
124625
124626        Reviewed by Vsevolod Vlasov.
124627
124628        Problem: CPU task indexes are already incremented before written to
124629        data structure.
124630
124631        * inspector/front-end/TimelinePanel.js:
124632        (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
124633        Use for loop to get correct indexes.
124634
1246352012-12-28  Ilya Tikhonovsky  <loislo@chromium.org>
124636
124637        Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
124638        https://bugs.webkit.org/show_bug.cgi?id=105830
124639
124640        Reviewed by Vsevolod Vlasov.
124641
124642        In some cases we don't want to visit some class members.
124643        As example we decided to skip pointers to interface classes such as GraphicLayerClient.
124644        We could use addWeakPointer for them but it can't be used for nonpointer members.
124645        In the offline discussion we came to a conclusion that we need a new instrumentation
124646        method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
124647
124648        DriveBy: Also I instrumented not yet instrumented members.
124649
124650        * bindings/v8/DOMWrapperMap.h:
124651        (WebCore::DOMWrapperMap::reportMemoryUsage):
124652        * bindings/v8/ScriptWrappable.h:
124653        (WebCore::ScriptWrappable::reportMemoryUsage):
124654        * html/HTMLMediaElement.cpp:
124655        (WebCore::HTMLMediaElement::reportMemoryUsage):
124656        * platform/KURLGoogle.cpp:
124657        (WebCore::KURLGooglePrivate::reportMemoryUsage):
124658        * platform/SharedBuffer.cpp:
124659        (WebCore::SharedBuffer::reportMemoryUsage):
124660        * platform/audio/AudioArray.h:
124661        (WebCore::AudioArray::reportMemoryUsage):
124662        * platform/graphics/GraphicsLayer.cpp:
124663        (WebCore::GraphicsLayer::reportMemoryUsage):
124664        * rendering/RenderLayerCompositor.cpp:
124665        (WebCore::RenderLayerCompositor::reportMemoryUsage):
124666        * rendering/RenderTableSection.cpp:
124667        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
124668        * rendering/style/RenderStyle.cpp:
124669        (WebCore::RenderStyle::reportMemoryUsage):
124670        * rendering/style/StyleRareInheritedData.cpp:
124671        (WebCore::StyleRareInheritedData::reportMemoryUsage):
124672
1246732012-12-29  Andrey Lushnikov  <lushnikov@chromium.com>
124674
124675        Web Inspector: refactor DefaultTextEditor - annotate handlers and fix getters style
124676        https://bugs.webkit.org/show_bug.cgi?id=105829
124677
124678        Reviewed by Pavel Feldman.
124679
124680        Refactor DefaultTextEditor.js: improve handler method annotations,
124681        remove "get" prefix from method names, get rid of unnecessary
124682        delegation (e.g. see _handleCut).
124683
124684        No new tests: no change in behaviour.
124685
124686        * inspector/front-end/DefaultTextEditor.js:
124687        (WebInspector.DefaultTextEditor):
124688        (WebInspector.DefaultTextEditor.prototype._contextMenu):
124689        (WebInspector.DefaultTextEditor.prototype.selection):
124690        (WebInspector.DefaultTextEditor.prototype.lastSelection):
124691        (WebInspector.DefaultTextEditor.prototype.wasShown):
124692        (WebInspector.DefaultTextEditor.prototype.willHide):
124693        (WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
124694        (WebInspector.TextEditorMainPanel):
124695        (WebInspector.TextEditorMainPanel.prototype.wasShown):
124696        (WebInspector.TextEditorMainPanel.prototype.willHide):
124697        (WebInspector.TextEditorMainPanel.prototype.populateContextMenu):
124698        (WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
124699        (WebInspector.TextEditorMainPanel.prototype.expandChunks):
124700        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
124701        (WebInspector.TextEditorMainPanel.prototype.selection):
124702        (WebInspector.TextEditorMainPanel.prototype.lastSelection):
124703        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
124704        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
124705        (WebInspector.TextEditorMainPanel.prototype._handleTextInput):
124706        (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
124707        (WebInspector.TextEditorMainPanel.prototype._handleCut):
124708
1247092012-12-28  No'am Rosenthal  <noam@webkit.org>
124710
124711        REGRESSION: r138555 asserts on Linux EFL/Qt debug builds
124712        https://bugs.webkit.org/show_bug.cgi?id=105848
124713
124714        Unreviewed test fix.
124715
124716        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
124717            Added parameter name to noop shader.
124718
1247192012-12-28  No'am Rosenthal  <noam@webkit.org>
124720
124721        [Texmap] Use a transform uniform instead of u_flip/u_textureSize
124722        https://bugs.webkit.org/show_bug.cgi?id=105809
124723
124724        Reviewed by Martin Robinson.
124725
124726        In order to support tiled-patterns, we'd have to apply texture-space transformations in the
124727        vertex shader. 
124728        This patch cleans up the current texture-space transformations, and uses 
124729        single matrix uniform instead of the current uniforms.
124730
124731        No new tests, refactor only.
124732
124733        * platform/graphics/texmap/TextureMapperGL.cpp:
124734        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
124735        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
124736        (WebCore):
124737        * platform/graphics/texmap/TextureMapperShaderManager.h:
124738        (TextureMapperShaderProgram):
124739
1247402012-12-28  No'am Rosenthal  <noam@webkit.org>
124741
124742        [Texmap] Edge antialiasing in TextureMapper could be done with less per-pixel calls
124743        https://bugs.webkit.org/show_bug.cgi?id=105377
124744
124745        Reviewed by Kenneth Rohde Christiansen.
124746
124747        Instead of passing 8 quad edge coefficients as uniforms and analyze the distance in the
124748        fragment shader, we render the antialiased quad as 4 edge triangles, which originate in the
124749        center of the quad. 
124750
124751        The vertex shader expands the quad based on the screen transform, and applies a value to each vertex to be interpolated by the GPU. 
124752
124753        It is very difficult to test performance gain; However, the following is apparent:
124754        - The matrix multiplications and inversions done before in the quad inflation code were
124755          always visible in instruments/valgrind and they are now gone.
124756        - We now perform a single smoothstep() command per pixel instead of 8 clamp(dot()) commands.
124757        - It should now be possible to antialias individual edges.
124758
124759        Covered by existing tests.
124760
124761        * platform/graphics/texmap/TextureMapperGL.cpp:
124762        (WebCore::TextureMapperGLData::getStaticVBO):
124763            Cache the unit-rect and edge-triangle vertex data in a VBO.
124764
124765        (WebCore::TextureMapperGLData::~TextureMapperGLData):
124766            Clear the cached VBOs upon destruction.
124767
124768        (WebCore::TextureMapperGL::drawBorder):
124769        (WebCore::TextureMapperGL::drawTexture):
124770            Removed call to useProgram, since it's already called in drawTexturedQuadWithProgram.
124771
124772        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
124773        (WebCore::TextureMapperGL::drawSolidColor):
124774            Use the new signature "draw" instead of "drawQuad".
124775
124776        (WebCore::TextureMapperGL::drawEdgeTriangles):
124777        (WebCore::TextureMapperGL::drawUnitRect):
124778        (WebCore::TextureMapperGL::draw):
124779            Removed DrawQuad, instead draw either a unit rect or edge triangles.
124780
124781        (WebCore::TextureMapperGL::beginClip):
124782            Use the new setMatrix function.
124783
124784        * platform/graphics/texmap/TextureMapperGL.h:
124785            Added a paint flag for antialiasing.
124786
124787        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
124788        (WebCore::TextureMapperShaderProgram::setMatrix):
124789            Since we now set the matrix in multiple locations, added a convenience 
124790            function for matrix uniform.
124791
124792        (WebCore::getShaderSpec):
124793            Update the vertex and fragment shader to account for the new antialiasing
124794            mechanism.
124795        * platform/graphics/texmap/TextureMapperShaderManager.h:
124796        (TextureMapperShaderProgram):
124797
1247982012-12-28  Mark Rowe  <mrowe@apple.com>
124799
124800        Move logic for extracting the OS X marketing version in to WebCore
124801        <http://webkit.org/b/105841> / <rdar://problem/10736041>
124802
124803        Reviewed by Dan Bernstein.
124804
124805        The logic for extracting the OS X markerting version is moved in to systemMarketingVersion
124806        from WebKitSystemInterface (post-10.8) and WebKit (pre-10.8).
124807
124808        * WebCore.exp.in: Export systemMarketingVersion and remove the old WKSI symbol.
124809        * WebCore.xcodeproj/project.pbxproj: Add the new files.
124810        * platform/mac/SystemVersionMac.h: Added.
124811        * platform/mac/SystemVersionMac.mm: Added.
124812        (WebCore::createSystemMarketingVersion): Read the marketing version out of SystemVersion.plist
124813        (WebCore::callGestalt):
124814        (WebCore::createSystemMarketingVersion): Build the marketing version by piecing together the results
124815        of calls to Gestalt.
124816        (WebCore::systemMarketingVersion): Return the cached string.
124817        * platform/mac/WebCoreSystemInterface.h: Remove the old WKSI symbol.
124818        * platform/mac/WebCoreSystemInterface.mm: Ditto.
124819
1248202012-12-28  Rafael Weinstein  <rafaelw@chromium.org>
124821
124822        [Templates]: Fix assert in colgroup parse handling
124823        https://bugs.webkit.org/show_bug.cgi?id=105837
124824
124825        Reviewed by Eric Seidel.
124826
124827        Tests added to html5lib.
124828
124829        * html/parser/HTMLTreeBuilder.cpp:
124830        (WebCore::HTMLTreeBuilder::processEndTag):
124831
1248322012-12-28  Philippe Normand  <pnormand@igalia.com>
124833
124834        [GStreamer] GstMessage handler in AudioDestination
124835        https://bugs.webkit.org/show_bug.cgi?id=105292
124836
124837        Reviewed by Martin Robinson.
124838
124839        Handle GStreamer warnings and errors coming from the playback
124840        pipeline. For now we only display warnings on the console.
124841
124842        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
124843        (WebCore::messageCallback):
124844        (WebCore):
124845        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
124846        (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady):
124847        (WebCore::AudioDestinationGStreamer::handleMessage):
124848        * platform/audio/gstreamer/AudioDestinationGStreamer.h:
124849        (AudioDestinationGStreamer):
124850
1248512012-12-28  Martin Robinson  <mrobinson@igalia.com>
124852
124853        [GTK][WK2] Add support for IME Composition
124854        https://bugs.webkit.org/show_bug.cgi?id=65093
124855
124856        Reviewed by Carlos Garcia Campos.
124857
124858        No new tests. The GtkInputMethodFilter is covered by unit tests in TestWebKitAPI.
124859        Doing functional tests for this behavior is much more complex.
124860
124861        * platform/gtk/GtkInputMethodFilter.cpp:
124862        (WebCore::GtkInputMethodFilter::sendCompositionAndPreeditWithFakeKeyEvents): Now
124863        pass along whether or not an event was faked.
124864        * platform/gtk/GtkInputMethodFilter.h: Ditto.
124865
1248662012-12-27  Emil A Eklund  <eae@chromium.org>
124867
124868        REGRESSION (r138196): Regions with text-overflow: ellipsis; are being ellipsized unnecessarily
124869        https://bugs.webkit.org/show_bug.cgi?id=105600
124870
124871        Reviewed by Darin Adler.
124872        
124873        Pixel-snap lineBoxEdge before comparing with the block edge as
124874        the lineBox edge isn't guaranteed to be snapped to device pixels
124875        on all platforms.
124876
124877        Test: fast/sub-pixel/ellipsis-table.html
124878
124879        * rendering/RenderBlockLineLayout.cpp:
124880        (WebCore::RenderBlock::checkLinesForTextOverflow):
124881
1248822012-12-28  Brandon Jones  <bajones@chromium.org>
124883
124884        [chromium] DrawingBuffer initialization loop breaks if completely out of memory
124885        https://bugs.webkit.org/show_bug.cgi?id=105732
124886
124887        Reviewed by Kenneth Russell.
124888
124889        When DrawingBuffer allocation fails because s_currentResourceUsePixels is maxed out
124890        it now forces WebGLRenderingContext creation to fail gracefully.
124891
124892        * html/canvas/WebGLRenderingContext.cpp:
124893        (WebCore::WebGLRenderingContext::create): On Chromium, check for failure to allocate a DrawingBuffer
124894
1248952012-12-28  Dan Bernstein  <mitz@apple.com>
124896
124897        Slightly clean up WebCore's Base.xcconfig
124898        https://bugs.webkit.org/show_bug.cgi?id=105808
124899
124900        Reviewed by Sam Weinig.
124901
124902        * Configurations/Base.xcconfig: Simplify the definition of GCC_GENERATE_DEBUGGING_SYMBOLS,
124903        which is always YES.
124904
1249052012-12-28  Rafael Weinstein  <rafaelw@chromium.org>
124906
124907        Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement
124908        https://bugs.webkit.org/show_bug.cgi?id=105780
124909
124910        Reviewed by Eric Seidel.
124911
124912        This was regression was created by the HTMLTemplateElement implementation. The issue was a missed instance of
124913        "fragment or template contents" case related to the parsing of colgroups.
124914
124915        * html/parser/HTMLTreeBuilder.cpp:
124916        (WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
124917        (WebCore::HTMLTreeBuilder::processStartTag):
124918        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
124919        (WebCore::HTMLTreeBuilder::processEndOfFile):
124920
1249212012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>
124922
124923        Web Inspector: Introduce uri as a UISourceCode unique identifier in workspace.
124924        https://bugs.webkit.org/show_bug.cgi?id=105799
124925
124926        Reviewed by Pavel Feldman.
124927
124928        Added uri field to UISourceCode. 
124929        Debugger and LiveEdit uiSourceCodes are now created through WorkspaceProviders (not projects yet though)
124930        which are responsible for unique uri generation. 
124931        Extracted generic content provider based WorkspaceProvider functionality and url-to-uri conversion logic to ContentProviderWorkspaceProvider class.
124932
124933        * inspector/front-end/BreakpointManager.js:
124934        (WebInspector.BreakpointManager.sourceFileId):
124935        * inspector/front-end/CompilerScriptMapping.js:
124936        * inspector/front-end/DebuggerScriptMapping.js:
124937        (WebInspector.DebuggerScriptMapping):
124938        * inspector/front-end/DefaultScriptMapping.js:
124939        (WebInspector.DefaultScriptMapping):
124940        (WebInspector.DefaultScriptMapping.prototype.addScript):
124941        (WebInspector.DebuggerWorkspaceProvider):
124942        (WebInspector.DebuggerWorkspaceProvider.prototype.addDebuggerFile):
124943        * inspector/front-end/LiveEditSupport.js:
124944        (WebInspector.LiveEditSupport):
124945        (WebInspector.LiveEditSupport.prototype.uiSourceCodeForLiveEdit):
124946        (WebInspector.LiveEditWorkspaceProvider):
124947        (WebInspector.LiveEditWorkspaceProvider.prototype.addLiveEditFile):
124948        * inspector/front-end/NetworkUISourceCodeProvider.js:
124949        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
124950        * inspector/front-end/NetworkWorkspaceProvider.js:
124951        (WebInspector.ContentProviderWorkspaceProvider):
124952        (WebInspector.ContentProviderWorkspaceProvider.uriForURL):
124953        (WebInspector.ContentProviderWorkspaceProvider.prototype.addFile):
124954        (WebInspector.ContentProviderWorkspaceProvider.prototype.uniqueURI):
124955        (WebInspector.NetworkWorkspaceProvider):
124956        (WebInspector.NetworkWorkspaceProvider.prototype.addNetworkFile):
124957        * inspector/front-end/SASSSourceMapping.js:
124958        (_bindUISourceCode):
124959        * inspector/front-end/ScriptSnippetModel.js:
124960        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
124961        * inspector/front-end/TabbedEditorContainer.js:
124962        (WebInspector.TabbedEditorContainer):
124963        (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
124964        (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
124965        (WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
124966        (WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURI):
124967        (WebInspector.TabbedEditorContainer.prototype._updateHistory):
124968        (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
124969        (WebInspector.TabbedEditorContainer.prototype.reset):
124970        * inspector/front-end/UISourceCode.js:
124971        (WebInspector.UISourceCode):
124972        (WebInspector.UISourceCode.prototype.uri):
124973        * inspector/front-end/Workspace.js:
124974        (WebInspector.FileDescriptor):
124975        (WebInspector.Project.prototype._fileAdded):
124976        (WebInspector.Project.prototype._fileRemoved):
124977        (WebInspector.Project.prototype.uiSourceCodeForURI):
124978        (WebInspector.Workspace):
124979        (WebInspector.Workspace.prototype.uiSourceCodeForURI):
124980        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
124981        (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
124982        (WebInspector.Workspace.prototype.requestFileContent):
124983        (WebInspector.Workspace.prototype.setFileContent):
124984        (WebInspector.Workspace.prototype.searchInFileContent):
124985        (WebInspector.Workspace.prototype.reset):
124986        * inspector/front-end/inspector.js:
124987
1249882012-12-28  Yury Semikhatsky  <yurys@chromium.org>
124989
124990        Web Inspector: debugger should step into event handler on event dispatch
124991        https://bugs.webkit.org/show_bug.cgi?id=105827
124992
124993        Reviewed by Pavel Feldman.
124994
124995        Added m_pauseInNextEventListener to InspectorDOMDebuggerAgent. The flag is set
124996        to true when "step into" is pressed and reset to false when either JS execution
124997        pauses, the agent gets disabled or JS call stack becomes empty. If the flag is
124998        true and the next JS stetement to be executed belongs to a JS event listener we
124999        will stop in that listener, otherwise we have two options:
125000          1) Control flow directly(without comming through the native bindings) reaches some JS
125001             statement and will pause in the corresponding JS function, in which case the
125002             flag will be reset;
125003          2) JS call stack becomes empty and execution will continue in the native code. We
125004             use didProcessTask to detect such cases and reset the flag to false every time
125005             event queue finishes next task.
125006
125007        Test: inspector/debugger/debugger-step-into-event-listener.html
125008
125009        * inspector/InspectorController.cpp:
125010        (WebCore::InspectorController::InspectorController):
125011        (WebCore::InspectorController::reportMemoryUsage):
125012        (WebCore::InspectorController::didProcessTask):
125013        * inspector/InspectorController.h:
125014        (WebCore):
125015        (InspectorController):
125016        * inspector/InspectorDOMDebuggerAgent.cpp:
125017        (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
125018        (WebCore::InspectorDOMDebuggerAgent::stepInto):
125019        (WebCore):
125020        (WebCore::InspectorDOMDebuggerAgent::didPause):
125021        (WebCore::InspectorDOMDebuggerAgent::cancelStepIntoEventListener):
125022        (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
125023        (WebCore::InspectorDOMDebuggerAgent::clear):
125024        * inspector/InspectorDOMDebuggerAgent.h:
125025        (InspectorDOMDebuggerAgent):
125026        * inspector/InspectorDebuggerAgent.cpp:
125027        (WebCore::InspectorDebuggerAgent::stepInto):
125028        (WebCore::InspectorDebuggerAgent::didPause):
125029        * inspector/InspectorDebuggerAgent.h:
125030        (Listener):
125031
1250322012-12-28  Andrey Lushnikov  <lushnikov@chromium.com>
125033
125034        Web Inspector: enable mutation observer in LayoutTests
125035        https://bugs.webkit.org/show_bug.cgi?id=105826
125036
125037        Reviewed by Pavel Feldman.
125038
125039        Enable mutation observer in LayoutTests.
125040
125041        No new tests: no change in behaviour.
125042
125043        * inspector/front-end/DOMExtension.js:
125044
1250452012-12-28  Philippe Normand  <pnormand@igalia.com>
125046
125047        [GTK] Some GStreamer-related files don't need to be in libWebCoreGTK
125048        https://bugs.webkit.org/show_bug.cgi?id=105807
125049
125050        Reviewed by Martin Robinson.
125051
125052        * GNUmakefile.list.am: Move some modules not using GTK nor Cairo
125053        to libWebCorePlatform.
125054
1250552012-12-28  Yury Semikhatsky  <yurys@chromium.org>
125056
125057        Web Inspector: rename distanceToWindow to distance
125058        https://bugs.webkit.org/show_bug.cgi?id=105823
125059
125060        Reviewed by Pavel Feldman.
125061
125062        Renamed distanceToWindow to distance. Introduced a method on HeapSnapshot
125063        that allows to check if given node should be displayed to the user as having
125064        distance 1.
125065
125066        * inspector/front-end/HeapSnapshot.js:
125067        (WebInspector.HeapSnapshotEdge.prototype.serialize):
125068        (WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
125069        (WebInspector.HeapSnapshotNode.prototype.distance):
125070        (WebInspector.HeapSnapshotNode.prototype.serialize):
125071        (WebInspector.HeapSnapshot.prototype._init):
125072        (WebInspector.HeapSnapshot.prototype.dispose):
125073        (WebInspector.HeapSnapshot.prototype.canHaveDistanceOne):
125074        (WebInspector.HeapSnapshot.prototype._calculateDistances):
125075        (WebInspector.HeapSnapshot.prototype._bfs):
125076        (WebInspector.HeapSnapshot.prototype._buildAggregates):
125077        * inspector/front-end/HeapSnapshotDataGrids.js:
125078        (WebInspector.HeapSnapshotRetainmentDataGrid):
125079        (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
125080        (WebInspector.HeapSnapshotConstructorsDataGrid):
125081        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._sortFields):
125082        * inspector/front-end/HeapSnapshotGridNodes.js:
125083        (WebInspector.HeapSnapshotGenericObjectNode):
125084        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
125085        (WebInspector.HeapSnapshotObjectNode):
125086        (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
125087        (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
125088        (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
125089        (WebInspector.HeapSnapshotConstructorNode):
125090        (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
125091        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
125092        * inspector/front-end/JSHeapSnapshot.js:
125093        (WebInspector.JSHeapSnapshot.prototype.canHaveDistanceOne):
125094
1250952012-12-28  Andrey Lushnikov  <lushnikov@chromium.com>
125096
125097        Web Inspector: refactor DefaultTextEditor's private methods
125098        https://bugs.webkit.org/show_bug.cgi?id=105797
125099
125100        Reviewed by Pavel Feldman.
125101
125102        - Refactor private methods to public if they are called from external classes
125103        - Get rid of external private variable access.
125104
125105        No tests: no change in behaviour.
125106
125107        * inspector/front-end/DefaultTextEditor.js:
125108        (WebInspector.DefaultTextEditor.prototype.freeCachedElements):
125109        (WebInspector.DefaultTextEditor.prototype._handleTextInput):
125110        (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
125111        (WebInspector.DefaultTextEditor.prototype._handleCut):
125112        (WebInspector.DefaultTextEditor.prototype._contextMenu):
125113        (WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
125114        (WebInspector.DefaultTextEditor.prototype.selection):
125115        (WebInspector.DefaultTextEditor.prototype.lastSelection):
125116        (WebInspector.DefaultTextEditor.prototype.setSelection):
125117        (WebInspector.DefaultTextEditor.prototype.wasShown):
125118        (WebInspector.DefaultTextEditor.prototype._handleFocused):
125119        (WebInspector.DefaultTextEditor.prototype.willHide):
125120        (WebInspector.DefaultTextEditor.prototype.highlightExpression):
125121        (WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
125122        (WebInspector.TextEditorChunkedPanel.prototype.buildChunks):
125123        (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk):
125124        (WebInspector.TextEditorChunkedPanel.prototype.splitChunkOnALine):
125125        (WebInspector.TextEditorChunkedPanel.prototype.createNewChunk):
125126        (WebInspector.TextEditorChunkedPanel.prototype.scroll):
125127        (WebInspector.TextEditorChunkedPanel.prototype._scheduleRepaintAll):
125128        (WebInspector.TextEditorChunkedPanel.prototype.endUpdates):
125129        (WebInspector.TextEditorChunkedPanel.prototype.chunkForLine):
125130        (WebInspector.TextEditorChunkedPanel.prototype.findVisibleChunks):
125131        (WebInspector.TextEditorChunkedPanel.prototype.repaintAll):
125132        (WebInspector.TextEditorChunkedPanel.prototype.scrollTop):
125133        (WebInspector.TextEditorChunkedPanel.prototype.clientHeight):
125134        (WebInspector.TextEditorChunkedPanel.prototype.expandChunks):
125135        (WebInspector.TextEditorChunkedPanel.prototype.totalHeight):
125136        (WebInspector.TextEditorChunkedPanel.prototype.resize):
125137        (WebInspector.TextEditorGutterPanel):
125138        (WebInspector.TextEditorGutterPanel.prototype.freeCachedElements):
125139        (WebInspector.TextEditorGutterPanel.prototype.createNewChunk):
125140        (WebInspector.TextEditorGutterPanel.prototype.textChanged):
125141        (WebInspector.TextEditorGutterChunk.prototype.get height):
125142        (WebInspector.TextEditorMainPanel):
125143        (WebInspector.TextEditorMainPanel.prototype.wasShown):
125144        (WebInspector.TextEditorMainPanel.prototype.willHide):
125145        (WebInspector.TextEditorMainPanel.prototype.highlightLine):
125146        (WebInspector.TextEditorMainPanel.prototype.freeCachedElements):
125147        (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
125148        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
125149        (WebInspector.TextEditorMainPanel.prototype.splitChunkOnALine):
125150        (WebInspector.TextEditorMainPanel.prototype.buildChunks):
125151        (WebInspector.TextEditorMainPanel.prototype.createNewChunk):
125152        (WebInspector.TextEditorMainPanel.prototype.expandChunks):
125153        (WebInspector.TextEditorMainPanel.prototype._schedulePaintLines):
125154        (WebInspector.TextEditorMainPanel.prototype._paintLines):
125155        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
125156        (WebInspector.TextEditorMainPanel.prototype.getSelection):
125157        (WebInspector.TextEditorMainPanel.prototype.getLastSelection):
125158        (WebInspector.TextEditorMainPanel.prototype.setLastSelection):
125159        (WebInspector.TextEditorMainPanel.prototype.restoreSelection):
125160        (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
125161        (WebInspector.TextEditorMainPanel.prototype.enclosingLineRowOrSelf):
125162        (WebInspector.TextEditorMainPanel.prototype._createLink):
125163        (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
125164        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
125165        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
125166        (WebInspector.TextEditorMainPanel.prototype._removeDecorationsInRange):
125167        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
125168        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
125169        (WebInspector.TextEditorMainPanel.prototype.handleSelectionChange):
125170        (WebInspector.TextEditorMainPanel.prototype.handleTextInput):
125171        (WebInspector.TextEditorMainPanel.prototype.handleKeyDown):
125172        (WebInspector.TextEditorMainPanel.prototype.handleCut):
125173        (WebInspector.TextEditorMainPanel.prototype.overrideViewportForTest):
125174        (WebInspector.TextEditorMainChunk.prototype.get height):
125175
1251762012-12-28  Kondapally Kalyan  <kalyan.kondapally@intel.com>
125177
125178        [EFL][WebGL] Add GLES2 support in GraphicsContext3DEfl.
125179        https://bugs.webkit.org/show_bug.cgi?id=105805
125180
125181        Reviewed by Kenneth Rohde Christiansen.
125182
125183        This is in preparation for adding GLES2 support.
125184        This patch adds OPENGL_ES_2 checks in GraphicsContext3DEFl.
125185        With this patch, GraphicsContext3DPrivate uses the FramebufferBlit extension supported by Extensions3D.
125186
125187        * platform/graphics/GraphicsContext3D.h:
125188        (GraphicsContext3D):
125189        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
125190        (WebCore::GraphicsContext3D::GraphicsContext3D):
125191        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
125192        (GraphicsContext3DPrivate::copyToGraphicsSurface):
125193        * platform/graphics/opengl/GLDefs.h:
125194
1251952012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>
125196
125197        Fix styling/formatting errors, pointed out by Darin Adler while reviewing
125198        https://bugs.webkit.org/show_bug.cgi?id=105752
125199
125200        No functional changes, thus no new tests.
125201
125202        * dom/VisitedLinkState.cpp:
125203        (WebCore::VisitedLinkState::VisitedLinkState): Fixed up constructor syntax.
125204        (WebCore::linkHashForElement): Expanded abbreviation.
125205
1252062012-12-27  Mike West  <mkwst@chromium.org>
125207
125208        Add context to the console message generated by Document::printNavigationErrorMessage.
125209        https://bugs.webkit.org/show_bug.cgi?id=105774
125210
125211        Reviewed by Darin Adler.
125212
125213        When blocking frame navigations, we should give developers more
125214        contextual detail about why the navigation has been blocked. This patch
125215        adds context specifically for sandboxed frames', and gives a slightly
125216        more detailed generic response for all other blockages.
125217
125218        No new tests; the changes to the error message are covered via
125219        rebaselines to existing navigation tests.
125220
125221        * dom/Document.cpp:
125222        (WebCore::printNavigationErrorMessage):
125223        (WebCore::Document::canNavigate):
125224            Pass in a 'reason' parameter when calling printNavigationErrorMessage
125225            to report a blocked navigation.
125226
1252272012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>
125228
125229        Move visited link-checking (and caching) code out of SelectorChecker.
125230        https://bugs.webkit.org/show_bug.cgi?id=105752
125231
125232        SelectorChecker knew too much about visited links and how links are stored in DOM. This change
125233        moves the code to more relevant locations and moves the visited links cache all the way up to Document,
125234        introducing VisitedLinkState class to manage the state of visited links.
125235        Relanding without a null-ptr ref.
125236
125237        Reviewed by Antti Koivisto.
125238
125239        No change in behavior, covered by existing tests.
125240
125241        * CMakeLists.txt: Added VisitedLinkState to build system.
125242        * GNUmakefile.list.am: Ditto.
125243        * Target.pri: Ditto.
125244        * WebCore.gypi: Ditto.
125245        * WebCore.xcodeproj/project.pbxproj: Ditto.
125246        * css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
125247        * css/SelectorChecker.h: Ditto.
125248        * css/StyleResolver.cpp:
125249        (WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
125250        * css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
125251        * dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
125252        * dom/Document.cpp: Added VisitedLinkState initalizer.
125253        * dom/Document.h: Added VisitedLinkState member.
125254        * dom/VisitedLinkState.cpp: Added.
125255        * dom/VisitedLinkState.h: Added.
125256        * history/CachedPage.cpp:
125257        (WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
125258        * page/Page.cpp:
125259        (WebCore::Page::allVisitedStateChanged): Ditto.
125260        (WebCore::Page::visitedStateChanged): Ditto.
125261
1252622012-12-27  Kondapally Kalyan  <kalyan.kondapally@intel.com>
125263
125264        [EFL][WebGL] Implement EGL support with GLX.
125265        https://bugs.webkit.org/show_bug.cgi?id=105602
125266
125267        Reviewed by Kenneth Rohde Christiansen.
125268
125269        This is in preparation for adding GLES2 support.
125270        This patch adds support for EGL with GLX backend. EGL support can be enabled during compile time
125271        by passing -DENABLE_EGL=ON as cmake config parameter. This is disabled by default.
125272
125273        * PlatformEfl.cmake:
125274        * platform/graphics/opengl/GLDefs.h:
125275        (WebCore):
125276        * platform/graphics/opengl/GLPlatformContext.cpp:
125277        (WebCore):
125278        (WebCore::GLPlatformContext::createContext): Added GLX checks.
125279        (WebCore::GLPlatformContext::createOffScreenContext): Added support for creating EGLOffscreen Context.
125280        (WebCore::GLPlatformContext::createCurrentContextWrapper): Added support for creating EGLCurrentContextWrapper.
125281        * platform/graphics/opengl/GLPlatformContext.h:
125282        * platform/graphics/opengl/GLPlatformSurface.cpp:
125283        (WebCore::GLPlatformSurface::createTransportSurface): Added support for creating EGLSurface.
125284
125285        * platform/graphics/surfaces/egl/EGLContext.cpp: Added.
125286        (WebCore):
125287        (WebCore::isRobustnessExtSupported):
125288        (WebCore::EGLCurrentContextWrapper::EGLCurrentContextWrapper):
125289        (WebCore::EGLCurrentContextWrapper::handle):
125290        (WebCore::EGLOffScreenContext::EGLOffScreenContext):
125291        (WebCore::EGLOffScreenContext::initialize):
125292        (WebCore::EGLOffScreenContext::~EGLOffScreenContext):
125293        (WebCore::EGLOffScreenContext::isCurrentContext):
125294        (WebCore::EGLOffScreenContext::platformMakeCurrent):
125295        (WebCore::EGLOffScreenContext::platformReleaseCurrent):
125296        (WebCore::EGLOffScreenContext::freeResources):
125297        (WebCore::EGLOffScreenContext::destroy):
125298        * platform/graphics/surfaces/egl/EGLContext.h:
125299        (WebCore):
125300        (EGLCurrentContextWrapper):
125301        (WebCore::EGLCurrentContextWrapper::~EGLCurrentContextWrapper):
125302        (EGLOffScreenContext):
125303
125304        EGL implementation for Context Management.
125305
125306        * platform/graphics/surfaces/egl/EGLSurface.cpp: Added.
125307        (WebCore):
125308        (WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
125309        (WebCore::EGLWindowTransportSurface::~EGLWindowTransportSurface):
125310        (WebCore::EGLWindowTransportSurface::configuration):
125311        (WebCore::EGLWindowTransportSurface::swapBuffers):
125312        (WebCore::EGLWindowTransportSurface::destroy):
125313        (WebCore::EGLWindowTransportSurface::freeEGLResources):
125314        * platform/graphics/surfaces/egl/EGLSurface.h:
125315        (WebCore):
125316        (EGLWindowTransportSurface):
125317
125318        EGL implementation for Offscreen Surface. The surface is backed by native window.
125319
125320        * platform/graphics/surfaces/egl/EGLConfigHelper.cpp: Added.
125321        (WebCore):
125322        (WebCore::SharedEGLDisplay::deref):
125323        (WebCore::SharedEGLDisplay::sharedEGLDisplay):
125324        (WebCore::SharedEGLDisplay::SharedEGLDisplay):
125325        (WebCore::SharedEGLDisplay::cleanup):
125326        (WebCore::SharedEGLDisplay::~SharedEGLDisplay):
125327        (WebCore::EGLConfigHelper::EGLConfigHelper):
125328        (WebCore::EGLConfigHelper::~EGLConfigHelper):
125329        (WebCore::EGLConfigHelper::display):
125330        (WebCore::EGLConfigHelper::pBufferContextConfig):
125331        (WebCore::EGLConfigHelper::surfaceContextConfig):
125332        (WebCore::EGLConfigHelper::nativeVisualId):
125333        (WebCore::EGLConfigHelper::reset):
125334        (WebCore::EGLConfigHelper::createConfig):
125335
125336        Helper class to initialize EGL resources and choose right EGL configuration.
125337
1253382012-12-27  Sheriff Bot  <webkit.review.bot@gmail.com>
125339
125340        Unreviewed, rolling out r138509.
125341        http://trac.webkit.org/changeset/138509
125342        https://bugs.webkit.org/show_bug.cgi?id=105806
125343
125344        Caused several tests to crash (Requested by fsamuel on
125345        #webkit).
125346
125347        * CMakeLists.txt:
125348        * GNUmakefile.list.am:
125349        * Target.pri:
125350        * WebCore.gypi:
125351        * WebCore.xcodeproj/project.pbxproj:
125352        * css/SelectorChecker.cpp:
125353        (WebCore::linkAttribute):
125354        (WebCore):
125355        (WebCore::SelectorChecker::determineLinkStateSlowCase):
125356        (WebCore::SelectorChecker::allVisitedStateChanged):
125357        (WebCore::SelectorChecker::visitedStateChanged):
125358        * css/SelectorChecker.h:
125359        (SelectorChecker):
125360        (WebCore::SelectorChecker::determineLinkState):
125361        (WebCore):
125362        * css/StyleResolver.cpp:
125363        (WebCore::StyleResolver::initElement):
125364        * css/StyleResolver.h:
125365        (WebCore::StyleResolver::allVisitedStateChanged):
125366        (WebCore::StyleResolver::visitedStateChanged):
125367        (StyleResolver):
125368        * dom/DOMAllInOne.cpp:
125369        * dom/Document.cpp:
125370        (WebCore::Document::Document):
125371        * dom/Document.h:
125372        (WebCore):
125373        (Document):
125374        * dom/VisitedLinkState.cpp: Removed.
125375        * dom/VisitedLinkState.h: Removed.
125376        * history/CachedPage.cpp:
125377        (WebCore::CachedPage::restore):
125378        * page/Page.cpp:
125379        (WebCore::Page::allVisitedStateChanged):
125380        (WebCore::Page::visitedStateChanged):
125381
1253822012-12-27  Dimitri Glazkov  <dglazkov@chromium.org>
125383
125384        Move visited link-checking (and caching) code out of SelectorChecker.
125385        https://bugs.webkit.org/show_bug.cgi?id=105752
125386
125387        SelectorChecker knew too much about visited links and how links are stored in DOM. This change
125388        moves the code to more relevant locations and moves the visited links cache all the way up to Document,
125389        introducing VisitedLinkState class to manage the state of visited links.
125390
125391        Reviewed by Antti Koivisto.
125392
125393        No change in behavior, covered by existing tests.
125394
125395        * CMakeLists.txt: Added VisitedLinkState to build system.
125396        * GNUmakefile.list.am: Ditto.
125397        * Target.pri: Ditto.
125398        * WebCore.gypi: Ditto.
125399        * WebCore.xcodeproj/project.pbxproj: Ditto.
125400        * css/SelectorChecker.cpp: Moved visited-link state code out to VisitedLinkState class.
125401        * css/SelectorChecker.h: Ditto.
125402        * css/StyleResolver.cpp:
125403        (WebCore::StyleResolver::initElement): Changed callsite to use VisitedLinkState.
125404        * css/StyleResolver.h: Removed plumb-throughs that are now unnecessary.
125405        * dom/DOMAllInOne.cpp: Added VisitedLinkState to build system.
125406        * dom/Document.cpp: Added VisitedLinkState initalizer.
125407        * dom/Document.h: Added VisitedLinkState member.
125408        * dom/VisitedLinkState.cpp: Added.
125409        * dom/VisitedLinkState.h: Added.
125410        * history/CachedPage.cpp:
125411        (WebCore::CachedPage::restore): Changed callsite to use VisitedLinkState.
125412        * page/Page.cpp:
125413        (WebCore::Page::allVisitedStateChanged): Ditto.
125414        (WebCore::Page::visitedStateChanged): Ditto.
125415
1254162012-12-27  Huang Dongsung  <luxtella@company100.net>
125417
125418        [TexMap] Minor refactoring of TextureMapperLayer.
125419        https://bugs.webkit.org/show_bug.cgi?id=105782
125420
125421        Reviewed by Darin Adler.
125422
125423        This patch has two refactorings.
125424        1. Replace TextureMapperPaintOptions from header to implementation file.
125425        2. Add non copyable property to TextureMapperLayer.
125426
125427        No new tests. Refactoring only.
125428
125429        * platform/graphics/texmap/TextureMapperLayer.cpp:
125430        (TextureMapperPaintOptions):
125431        (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
125432        (WebCore):
125433        * platform/graphics/texmap/TextureMapperLayer.h:
125434        (WebCore):
125435        (TextureMapperLayer):
125436
1254372012-12-27  Yury Semikhatsky  <yurys@chromium.org>
125438
125439       Unreviewed. Use real worker in heap profiler instead of the fake one
125440       (was accidentally switched to the fake worker).
125441
125442        * inspector/front-end/HeapSnapshotProxy.js:
125443        (WebInspector.HeapSnapshotWorker):
125444
1254452012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>
125446
125447        Web Inspector: [Regression] Can not set breakpoints in scripts loaded with source map.
125448        https://bugs.webkit.org/show_bug.cgi?id=105801
125449
125450        Reviewed by Alexander Pavlov.
125451
125452        ResourceScriptMapping now pushes itself to script's source mappings in addScript method.
125453        Binding script to uiSourceCode loaded later is only triggering updateLocations() now.
125454
125455        * inspector/front-end/ResourceScriptMapping.js:
125456        (WebInspector.ResourceScriptMapping.prototype.addScript):
125457        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
125458        * inspector/front-end/Script.js:
125459        (WebInspector.Script.prototype.disableSourceMapping):
125460        (WebInspector.Script.prototype.enableSourceMapping):
125461        (WebInspector.Script.prototype.pushSourceMapping):
125462        (WebInspector.Script.prototype.popSourceMapping):
125463        (WebInspector.Script.prototype.updateLocations):
125464
1254652012-12-27  Yury Semikhatsky  <yurys@chromium.org>
125466
125467        Web Inspector: remove support for legacy heap graph node format
125468        https://bugs.webkit.org/show_bug.cgi?id=105802
125469
125470        Reviewed by Pavel Feldman.
125471
125472        Removed support for old heap graph node format: we now always store edge count
125473        in each node instead of the first edge index.
125474
125475        * inspector/front-end/HeapSnapshot.js:
125476        (WebInspector.HeapSnapshot.prototype._buildEdgeIndexes):
125477
1254782012-12-27  Yury Semikhatsky  <yurys@chromium.org>
125479
125480        Web Inspector: move js heap snapshot preprocessing to JSHeapSnapshot
125481        https://bugs.webkit.org/show_bug.cgi?id=105798
125482
125483        Reviewed by Pavel Feldman.
125484
125485        HeapSnapshot.js refactorings:
125486        - moved _markInvisibleEdges implementation into JSHeapSnapshot
125487        - moved _calculateFlags implementation into JSHeapSnapshot
125488        - moved _flags array into JSHeapSnapshot
125489        - instead of returning node flags as a field on each node, requesting
125490          snapshot node flag constants from the heap snapshot worker and then
125491          checking for the flags in HeapSnapshotGridNodes now return two optional
125492          boolean fields on each node: canBeQueried and detachedDOMTreeNode
125493        - removed unused propertyAccessor property from serialized heap node
125494        - moved node and edge serialization from providers to the node and edge
125495          classes, js specific fields are serialized only for JSHeapSnapshotNode
125496        - renamed first() to rewind() on providers and iterators
125497
125498        * inspector/front-end/HeapSnapshot.js:
125499        (WebInspector.HeapSnapshotEdge.prototype.serialize):
125500        (WebInspector.HeapSnapshotEdgeIterator.prototype.rewind):
125501        (WebInspector.HeapSnapshotRetainerEdge.prototype.serialize):
125502        (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.rewind):
125503        (WebInspector.HeapSnapshotNode.prototype.isUserObject):
125504        (WebInspector.HeapSnapshotNode.prototype.serialize):
125505        (WebInspector.HeapSnapshotNodeIterator.prototype.rewind):
125506        (WebInspector.HeapSnapshot.prototype._init):
125507        (WebInspector.HeapSnapshot.prototype._buildAggregates):
125508        (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
125509        (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
125510        (WebInspector.HeapSnapshot.prototype._buildDominatorTree):
125511        (WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
125512        (WebInspector.HeapSnapshot.prototype._calculateFlags):
125513        (WebInspector.HeapSnapshot.prototype.userObjectsMapAndFlag):
125514        (WebInspector.HeapSnapshot.prototype.):
125515        (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
125516        (WebInspector.HeapSnapshot.prototype.updateStaticData):
125517        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype._createIterationOrder):
125518        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.rewind):
125519        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.isEmpty):
125520        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
125521        (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.sortAndRewind):
125522        * inspector/front-end/HeapSnapshotGridNodes.js:
125523        (WebInspector.HeapSnapshotGenericObjectNode):
125524        (WebInspector.HeapSnapshotObjectNode):
125525        * inspector/front-end/HeapSnapshotProxy.js:
125526        * inspector/front-end/JSHeapSnapshot.js:
125527        (WebInspector.JSHeapSnapshot):
125528        (WebInspector.JSHeapSnapshot.prototype._markInvisibleEdges):
125529        (WebInspector.JSHeapSnapshot.prototype._calculateFlags):
125530        (WebInspector.JSHeapSnapshot.prototype.userObjectsMapAndFlag):
125531        (WebInspector.JSHeapSnapshot.prototype._flagsOfNode):
125532        (WebInspector.JSHeapSnapshot.prototype._markDetachedDOMTreeNodes):
125533        (WebInspector.JSHeapSnapshot.prototype._markQueriableHeapObjects):
125534        (WebInspector.JSHeapSnapshot.prototype._markPageOwnedNodes):
125535        (WebInspector.JSHeapSnapshotNode.prototype.isUserObject):
125536        (WebInspector.JSHeapSnapshotNode.prototype.serialize):
125537
1255382012-12-27  Alexander Pavlov  <apavlov@chromium.org>
125539
125540        Web Inspector: Refactor SourceMapParser to enable range-based sourcemap
125541        https://bugs.webkit.org/show_bug.cgi?id=105764
125542
125543        Reviewed by Vsevolod Vlasov.
125544
125545        Test: inspector/styles/range-based-mapping.html
125546
125547        * WebCore.gypi:
125548        * WebCore.vcproj/WebCore.vcproj:
125549        * inspector/compile-front-end.py:
125550        * inspector/front-end/CompilerScriptMapping.js:
125551        (WebInspector.CompilerScriptMapping):
125552        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
125553        * inspector/front-end/SourceMap.js: Copied from Source/WebCore/inspector/front-end/CompilerScriptMapping.js.
125554        (WebInspector.SourceMap):
125555          Abstract. Renamed from SourceMapParser and supports only direct (generated -> originating source) mapping via findEntry()
125556        (WebInspector.SourceMap.prototype.sources):
125557        (WebInspector.SourceMap.prototype.sourceContent):
125558        (WebInspector.SourceMap.prototype._parseMappingPayload):
125559        (WebInspector.SourceMap.prototype._parseSections):
125560        (WebInspector.SourceMap.prototype._parseMap):
125561        (WebInspector.SourceMap.prototype._isSeparator):
125562        (WebInspector.SourceMap.prototype._decodeVLQ):
125563        (WebInspector.SourceMap.prototype._canonicalizeURL):
125564        (WebInspector.SourceMap.StringCharIterator):
125565        (WebInspector.SourceMap.StringCharIterator.prototype.next):
125566        (WebInspector.SourceMap.StringCharIterator.prototype.peek):
125567        (WebInspector.SourceMap.StringCharIterator.prototype.hasNext):
125568        (WebInspector.PositionBasedSourceMap):
125569          Extends SourceMap and provides direct (compiled -> original source)
125570          and reverse (original -> compiled source) position mapping via findEntryReversed().
125571        (WebInspector.PositionBasedSourceMap.prototype.findEntry):
125572        (WebInspector.PositionBasedSourceMap.prototype.findEntryReversed):
125573        (WebInspector.PositionBasedSourceMap.prototype._parseMap):
125574        (WebInspector.RangeBasedSourceMap):
125575          Extends SourceMap and provides direct range mapping
125576          (compiled source position -> original source range) via findSourceRange().
125577        (WebInspector.RangeBasedSourceMap.MappingComparator):
125578        (WebInspector.RangeBasedSourceMap.prototype.findSourceRange):
125579        (WebInspector.RangeBasedSourceMap.prototype._rangeForStartIndex):
125580        (WebInspector.SourceRange):
125581        * inspector/front-end/WebKit.qrc:
125582        * inspector/front-end/inspector.html:
125583
1255842012-12-25  Andrey Adaikin  <aandrey@chromium.org>
125585
125586        Web Inspector: [Canvas] report if there is any uninstrumented canvas on a page
125587        https://bugs.webkit.org/show_bug.cgi?id=105721
125588
125589        Reviewed by Yury Semikhatsky.
125590
125591        Adding a method to the protocol to report if there is any uninstrumented canvas on a page.
125592
125593        Test: inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases.html
125594
125595        * inspector/InjectedScriptCanvasModuleSource.js:
125596        (.):
125597        * inspector/Inspector.json:
125598        * inspector/InspectorCanvasAgent.cpp:
125599        (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
125600        (WebCore::InspectorCanvasAgent::enable):
125601        (WebCore::InspectorCanvasAgent::disable):
125602        (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
125603        (WebCore):
125604        (WebCore::InspectorCanvasAgent::captureFrame):
125605        (WebCore::InspectorCanvasAgent::startCapturing):
125606        (WebCore::InspectorCanvasAgent::stopCapturing):
125607        (WebCore::InspectorCanvasAgent::getTraceLog):
125608        (WebCore::InspectorCanvasAgent::replayTraceLog):
125609        (WebCore::InspectorCanvasAgent::ensureHasUninstrumentedCanvasesCalculated):
125610        (WebCore::InspectorCanvasAgent::checkIsEnabled):
125611        (WebCore::InspectorCanvasAgent::reset):
125612        * inspector/InspectorCanvasAgent.h:
125613        (WebCore):
125614        (InspectorCanvasAgent):
125615        * inspector/InspectorInstrumentation.cpp:
125616        (WebCore):
125617        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
125618
1256192012-12-27  Vsevolod Vlasov  <vsevik@chromium.org>
125620
125621        Web Inspector: Simplify script mappings by introducing DefaultScriptMapping.
125622        https://bugs.webkit.org/show_bug.cgi?id=103038
125623
125624        Reviewed by Pavel Feldman.
125625
125626        DefaultScriptMapping creates a uiSourceCode for each script and set itself as a mapping for the script.
125627        Script can now have a stack of (possibly disabled) mappings, allowing to try several mappings when calculating uiLocation.
125628        LiveEditSupport object is added on WebInspector to support live editing of readonly DefaultScriptMapping's uiSourceCodes.
125629        DefaultScriptMapping is now the only mapping that creates temporary uiSourceCodes.
125630
125631        * English.lproj/localizedStrings.js:
125632        * WebCore.gypi:
125633        * WebCore.vcproj/WebCore.vcproj:
125634        * inspector/compile-front-end.py:
125635        * inspector/front-end/BreakpointManager.js:
125636        (WebInspector.BreakpointManager):
125637        (WebInspector.BreakpointManager.sourceFileId):
125638        (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
125639        * inspector/front-end/CompilerScriptMapping.js:
125640        (WebInspector.CompilerScriptMapping):
125641        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
125642        (WebInspector.CompilerScriptMapping.prototype.uiLocationToRawLocation):
125643        (WebInspector.CompilerScriptMapping.prototype._reset):
125644        * inspector/front-end/DebuggerModel.js:
125645        (WebInspector.DebuggerModel.prototype._parsedScriptSource):
125646        * inspector/front-end/DebuggerScriptMapping.js:
125647        (WebInspector.DebuggerScriptMapping):
125648        * inspector/front-end/DefaultScriptMapping.js: Added.
125649        * inspector/front-end/LiveEditSupport.js: Added.
125650        * inspector/front-end/ResourceScriptMapping.js:
125651        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
125652        (WebInspector.ResourceScriptMapping.prototype.addScript):
125653        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
125654        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
125655        (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
125656        (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
125657        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode):
125658        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
125659        (WebInspector.ResourceScriptMapping.prototype._reset):
125660        * inspector/front-end/Script.js:
125661        (WebInspector.Script):
125662        (WebInspector.Script.prototype.):
125663        (WebInspector.Script.prototype.editSource):
125664        (WebInspector.Script.prototype.setIsDynamicScript):
125665        (WebInspector.Script.prototype.isDynamicScript):
125666        (WebInspector.Script.prototype.rawLocationToUILocation):
125667        (WebInspector.Script.prototype._enabledSourceMappings):
125668        (WebInspector.Script.prototype._sourceMappingsDiffer):
125669        (WebInspector.Script.prototype.disableSourceMapping):
125670        (WebInspector.Script.prototype.enableSourceMapping):
125671        (WebInspector.Script.prototype.pushSourceMapping):
125672        (WebInspector.Script.prototype.popSourceMapping):
125673        (WebInspector.Script.prototype._updateLocations):
125674        (WebInspector.Script.prototype.createLiveLocation):
125675        * inspector/front-end/ScriptSnippetModel.js:
125676        (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
125677        * inspector/front-end/ScriptsPanel.js:
125678        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
125679        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
125680        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
125681        * inspector/front-end/WebKit.qrc:
125682        * inspector/front-end/Workspace.js:
125683        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
125684        * inspector/front-end/inspector.html:
125685        * inspector/front-end/inspector.js:
125686
1256872012-12-27  Eugene Klyuchnikov  <eustas@chromium.org>
125688
125689        Web Inspector: console.profileEnd() crashes if called without arguments
125690        https://bugs.webkit.org/show_bug.cgi?id=105759
125691
125692        Reviewed by Vsevolod Vlasov.
125693
125694        Test: inspector/profiler/cpu-profiler-parameterless-profile-end-crash.html
125695
125696        API allows to finish profile without specifying its name.
125697        Profiler tracks profiles stack and finishes outermost profile.
125698        Finished profile title will be used instead of user-specified one.
125699
125700        * bindings/v8/ScriptProfiler.cpp:
125701        (WebCore::ScriptProfiler::stop): Use title provided by profiler.
125702
1257032012-12-26  No'am Rosenthal  <noam@webkit.org>
125704
125705        [Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
125706        https://bugs.webkit.org/show_bug.cgi?id=104815
125707
125708        Reviewed by Kenneth Rohde Christiansen.
125709
125710        Created templates for the vertex and fragment shaders, and added some MACROs in 
125711        TextureMapperShaderManager to allow GLSL precompiler-based configuration.
125712
125713        The template follows a pattern where the main function in the shader calls
125714        applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.
125715
125716        In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.
125717
125718        Covered by existing pixel/ref tests when run on Qt/EFL/GTK.
125719
125720        * platform/graphics/texmap/TextureMapperGL.cpp:
125721        (WebCore::TextureMapperGL::drawTexture):
125722        (WebCore::TextureMapperGL::drawSolidColor):
125723        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
125724        (WebCore::optionsForFilterType):
125725        (WebCore):
125726        (WebCore::getPassesRequiredForFilter):
125727        (WebCore::prepareFilterProgram):
125728        (WebCore::TextureMapperGL::drawFiltered):
125729        (WebCore::BitmapTextureGL::applyFilters):
125730            Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.
125731
125732        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
125733        (WebCore):
125734        (WebCore::getShaderSpec):
125735        (WebCore::TextureMapperShaderManager::getShaderProgram):
125736        * platform/graphics/texmap/TextureMapperShaderManager.h:
125737        (TextureMapperShaderProgram):
125738        (TextureMapperShaderManager):
125739
1257402012-12-26  Huang Dongsung  <luxtella@company100.net>
125741
125742        [TexMap] A Minor optimization of GraphicsLayerTransform.
125743        https://bugs.webkit.org/show_bug.cgi?id=105758
125744
125745        Reviewed by Noam Rosenthal.
125746
125747        Only multiply the transformation matrices if the paramaters are actually
125748        changed.
125749
125750        This optimizes the code path called from flushCompositingStateForThisLayerOnly(),
125751        and potentially setAnimatedTransform().
125752
125753        No new tests. Refactoring only.
125754
125755        * platform/graphics/GraphicsLayerTransform.cpp:
125756        (WebCore::GraphicsLayerTransform::setPosition):
125757        (WebCore::GraphicsLayerTransform::setSize):
125758        (WebCore::GraphicsLayerTransform::setAnchorPoint):
125759        (WebCore::GraphicsLayerTransform::setFlattening):
125760        (WebCore::GraphicsLayerTransform::setLocalTransform):
125761        (WebCore::GraphicsLayerTransform::setChildrenTransform):
125762
1257632012-12-26  Huang Dongsung  <luxtella@company100.net>
125764
125765        [TexMap] Remove unused members and methods in TextureMapperLayer.
125766        https://bugs.webkit.org/show_bug.cgi?id=105755
125767
125768        Reviewed by Noam Rosenthal.
125769
125770        No new tests. Refactoring only.
125771
125772        * platform/graphics/texmap/TextureMapperLayer.h:
125773        (TextureMapperLayer):
125774        (State):
125775        (WebCore::TextureMapperLayer::State::State):
125776
1257772012-12-26  Andreas Kling  <akling@apple.com>
125778
125779        [Mac] MemoryPressureHandler: Occasional crashes in uninstall() when responding to memory pressure signal.
125780        <http://webkit.org/b/105772>
125781
125782        Reviewed by Stephanie Lewis.
125783
125784        We can't synchronously dereference _cache_event_source in uninstall() just because m_installed
125785        is true -- the block that initializes _cache_event_source is asynchronous and may not have executed.
125786        Fix this by performing the uninstallation asynchronously on the main queue as well.
125787
125788        * platform/mac/MemoryPressureHandlerMac.mm:
125789        (WebCore::MemoryPressureHandler::uninstall):
125790
1257912012-12-26  Sheriff Bot  <webkit.review.bot@gmail.com>
125792
125793        Unreviewed, rolling out r137905.
125794        http://trac.webkit.org/changeset/137905
125795        https://bugs.webkit.org/show_bug.cgi?id=105765
125796
125797        Popover does not disappear when hovering another identifier in
125798        sources panel. (Requested by vsevik on #webkit).
125799
125800        * inspector/front-end/Popover.js:
125801        (WebInspector.Popover.prototype._innerShow):
125802        * inspector/front-end/popover.css:
125803        (.popover):
125804
1258052012-12-26  Eugene Klyuchnikov  <eustas@chromium.org>
125806
125807        Web Inspector: [Resources] Table lose focus (selection) after deleting cookie.
125808        https://bugs.webkit.org/show_bug.cgi?id=105716
125809
125810        Reviewed by Yury Semikhatsky.
125811
125812        This makes deletion of a set of cookies (using keyboard) painful.
125813
125814        * inspector/front-end/CookieItemsView.js: Call method instead of getter.
125815        * inspector/front-end/CookiesTable.js: Remember and use next selected
125816        cookie value.
125817
1258182012-12-26  Yury Semikhatsky  <yurys@chromium.org>
125819
125820        Web Inspector: extract JS heap profiler specifics into JSHeapSnapshot.js
125821        https://bugs.webkit.org/show_bug.cgi?id=105768
125822
125823        Reviewed by Pavel Feldman.
125824
125825        Inroduced JSHeapSnapshot, JSHeapSnapshotNode, JSHeapSnapshotEdge and JSHeapSnapshotRetainerEdge which
125826        should encapsulate logic specific to JS-heap.
125827        No behavioral changes, covered with existing heap profiler tests.
125828
125829        * WebCore.gypi:
125830        * WebCore.vcproj/WebCore.vcproj:
125831        * inspector/compile-front-end.py:
125832        * inspector/front-end/HeapSnapshot.js:
125833        (WebInspector.HeapSnapshotEdge.prototype.hasStringName):
125834        (WebInspector.HeapSnapshotEdge.prototype.name):
125835        (WebInspector.HeapSnapshotEdge.prototype.node):
125836        (WebInspector.HeapSnapshotEdge.prototype.toString):
125837        (WebInspector.HeapSnapshotRetainerEdge.prototype._node):
125838        (WebInspector.HeapSnapshotRetainerEdge.prototype._edge):
125839        (WebInspector.HeapSnapshotNode.prototype.className):
125840        (WebInspector.HeapSnapshotNode.prototype.classIndex):
125841        (WebInspector.HeapSnapshotNode.prototype.edges):
125842        (WebInspector.HeapSnapshotNode.prototype.id):
125843        (WebInspector.HeapSnapshotNode.prototype.retainers):
125844        (WebInspector.HeapSnapshot.prototype.createNode):
125845        (WebInspector.HeapSnapshot.prototype.createEdge):
125846        (WebInspector.HeapSnapshot.prototype.createRetainingEdge):
125847        (WebInspector.HeapSnapshot.prototype.rootNode):
125848        (WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
125849        (WebInspector.HeapSnapshot.prototype._buildAggregates):
125850        (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
125851        (WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
125852        (WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
125853        (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
125854        (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
125855        (WebInspector.HeapSnapshot.prototype.createNodesProviderForDominator):
125856        (WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
125857        * inspector/front-end/HeapSnapshotLoader.js:
125858        (WebInspector.HeapSnapshotLoader.prototype.buildSnapshot):
125859        * inspector/front-end/HeapSnapshotProxy.js:
125860        (WebInspector.HeapSnapshotWorker):
125861        * inspector/front-end/HeapSnapshotWorker.js:
125862        * inspector/front-end/JSHeapSnapshot.js: Added.
125863        (WebInspector.JSHeapSnapshot):
125864        (WebInspector.JSHeapSnapshot.prototype.createNode):
125865        (WebInspector.JSHeapSnapshot.prototype.createEdge):
125866        (WebInspector.JSHeapSnapshot.prototype.createRetainingEdge):
125867        (WebInspector.JSHeapSnapshotNode):
125868        (WebInspector.JSHeapSnapshotNode.prototype.canBeQueried):
125869        (WebInspector.JSHeapSnapshotNode.prototype.isPageObject):
125870        (WebInspector.JSHeapSnapshotNode.prototype.distanceToWindow):
125871        (WebInspector.JSHeapSnapshotNode.prototype.className):
125872        (WebInspector.JSHeapSnapshotNode.prototype.classIndex):
125873        (WebInspector.JSHeapSnapshotNode.prototype.id):
125874        (WebInspector.JSHeapSnapshotNode.prototype.isHidden):
125875        (WebInspector.JSHeapSnapshotNode.prototype.isNative):
125876        (WebInspector.JSHeapSnapshotNode.prototype.isSynthetic):
125877        (WebInspector.JSHeapSnapshotNode.prototype.isWindow):
125878        (WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
125879        (WebInspector.JSHeapSnapshotNode.prototype.isDetachedDOMTree):
125880        (WebInspector.JSHeapSnapshotEdge):
125881        (WebInspector.JSHeapSnapshotEdge.prototype.clone):
125882        (WebInspector.JSHeapSnapshotEdge.prototype.hasStringName):
125883        (WebInspector.JSHeapSnapshotEdge.prototype.isElement):
125884        (WebInspector.JSHeapSnapshotEdge.prototype.isHidden):
125885        (WebInspector.JSHeapSnapshotEdge.prototype.isWeak):
125886        (WebInspector.JSHeapSnapshotEdge.prototype.isInternal):
125887        (WebInspector.JSHeapSnapshotEdge.prototype.isInvisible):
125888        (WebInspector.JSHeapSnapshotEdge.prototype.isShortcut):
125889        (WebInspector.JSHeapSnapshotEdge.prototype.name):
125890        (WebInspector.JSHeapSnapshotEdge.prototype.toString):
125891        (WebInspector.JSHeapSnapshotEdge.prototype._hasStringName):
125892        (WebInspector.JSHeapSnapshotEdge.prototype._name):
125893        (WebInspector.JSHeapSnapshotEdge.prototype._nameOrIndex):
125894        (WebInspector.JSHeapSnapshotEdge.prototype._type):
125895        (WebInspector.JSHeapSnapshotRetainerEdge):
125896        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.clone):
125897        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isElement):
125898        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isHidden):
125899        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInternal):
125900        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isInvisible):
125901        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isShortcut):
125902        (WebInspector.JSHeapSnapshotRetainerEdge.prototype.isWeak):
125903        * inspector/front-end/ProfilesPanel.js:
125904        * inspector/front-end/WebKit.qrc:
125905
1259062012-12-26  Patrick Gansterer  <paroga@webkit.org>
125907
125908        [WIN] Build fix for !USE(CFNETWORK) after r138413.
125909
125910        * platform/network/NetworkStorageSession.h:
125911        (WebCore):
125912
1259132012-12-26  Yury Semikhatsky  <yurys@chromium.org>
125914
125915        Web Inspector: prepare HeapSnapshot.js for use with native heap snapshot
125916        https://bugs.webkit.org/show_bug.cgi?id=105763
125917
125918        Reviewed by Alexander Pavlov.
125919
125920        HeapSnapshot.js now expects root node to be either the first or the last (real) one
125921        in the list of all nodes.
125922
125923        * inspector/HeapGraphSerializer.cpp:
125924        (HeapGraphNode):
125925        (WebCore::HeapGraphSerializer::serialize): reordered node and edge fields so that the go in
125926        the same order as in the JS heap snapshot.
125927        * inspector/front-end/HeapSnapshot.js:
125928        (WebInspector.HeapSnapshot.prototype._buildAggregates):
125929        (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
125930        * inspector/front-end/NativeHeapGraph.js:
125931        (WebInspector.NativeHeapGraph):
125932        (WebInspector.NativeHeapGraph.prototype.root): now there is explicit root node which is the last
125933        one in the list, use it.
125934        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
125935        (WebInspector.NativeHeapGraph.prototype._addDummyNode): fixed dummy node first edge index.
125936        (WebInspector.NativeHeapGraph.Edge.prototype.target):
125937        (WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
125938        * inspector/front-end/NativeMemorySnapshotView.js:
125939        (WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph): switched to use of the root node
125940        (WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
125941
1259422012-12-26  Pan Deng  <pan.deng@intel.com>
125943
125944        [Web Inspector]Remove Preview and Response tab from network panel in case websocket.
125945        https://bugs.webkit.org/show_bug.cgi?id=105754
125946
125947        Reviewed by Pavel Feldman.
125948
125949        Network item views for websocket is not consistent before/after receiving a frame.
125950        This change keeps Headers, Frames and Cookies tab for websocket.
125951
125952        No new tests.
125953
125954        * inspector/front-end/NetworkItemView.js:
125955        (WebInspector.NetworkItemView):
125956
1259572012-12-25  John Griggs  <jgriggs@rim.com>
125958
125959        [BlackBerry] Media controls are drawn on top of one another for media with unknown duration.
125960        https://bugs.webkit.org/show_bug.cgi?id=105747
125961
125962        Reviewed by George Staikos.
125963
125964        No need to reposition controls when there is no timeline element, this mispositions them in the new design.
125965
125966        * platform/blackberry/RenderThemeBlackBerry.cpp:
125967        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
125968
1259692012-12-25  Alexander Pavlov  <apavlov@chromium.org>
125970
125971        Web Inspector: Crash when modifying a rule that has been removed through JavaScript
125972        https://bugs.webkit.org/show_bug.cgi?id=105718
125973
125974        Reviewed by Yury Semikhatsky.
125975
125976        CSSStyleRules should be stored by RefPtr's to avoid using stale pointers to deleted instances.
125977
125978        Test: inspector/styles/removed-rule-crash.html
125979
125980        * inspector/InspectorStyleSheet.cpp:
125981        (WebCore::InspectorStyleSheet::ruleForId):
125982        (WebCore::InspectorStyleSheet::revalidateStyle):
125983        (WebCore::InspectorStyleSheet::buildArrayForRuleList):
125984        (WebCore::InspectorStyleSheet::collectFlatRules):
125985        * inspector/InspectorStyleSheet.h:
125986        (InspectorStyleSheet):
125987
1259882012-12-25  Eugene Klyuchnikov  <eustas@chromium.org>
125989
125990        Web Inspector: [Console] Add "Replay XHR" context menu item for corresponding messages.
125991        https://bugs.webkit.org/show_bug.cgi?id=105714
125992
125993        Reviewed by Pavel Feldman.
125994
125995        Expose "request" value from console message object and use it in console
125996        context menu generator.
125997
125998        * inspector/front-end/ConsoleMessage.js: Expose "request".
125999        * inspector/front-end/ConsoleView.js: Add "Replay XHR" menu item.
126000        * inspector/front-end/NetworkPanel.js: Fix whitespaces.
126001
1260022012-12-25  Alexander Pavlov  <apavlov@chromium.org>
126003
126004        Web Inspector: Make InspectorState instances per-agent, corresponding to JSON map entries in the cookie
126005        https://bugs.webkit.org/show_bug.cgi?id=105722
126006
126007        Reviewed by Yury Semikhatsky.
126008
126009        Inspector state cookie (in JSON format) has become a map (agent name -> "properties object")
126010        to avoid cross-agent property name clashes in a single property namespace.
126011        As such, InspectorState corresponds to a single "properties object" and is now per-agent,
126012        managed by an InspectorCompositeState (which is owned by [Worker]InspectorController).
126013        Since InspectorCompositeState maps "properties objects" by their agent names, InspectorStates are created
126014        by InspectorCompositeState in the InspectorBaseAgentInterface ctor, using the respective agent name.
126015
126016        No new tests, no change in visible behavior.
126017
126018        * inspector/InspectorAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
126019        * inspector/InspectorAgent.h: Ditto.
126020        * inspector/InspectorApplicationCacheAgent.cpp: Ditto.
126021        * inspector/InspectorApplicationCacheAgent.h: Ditto.
126022        * inspector/InspectorBaseAgent.cpp: Ditto.
126023        (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
126024        Create InspectorState via InspectorCompositeState::createAgentState(agentName).
126025        * inspector/InspectorBaseAgent.h: Pass InspectorCompositeState rather than InspectorState.
126026        * inspector/InspectorCSSAgent.cpp: Ditto.
126027        * inspector/InspectorCSSAgent.h: Ditto.
126028        * inspector/InspectorCanvasAgent.cpp: Ditto.
126029        * inspector/InspectorCanvasAgent.h: Ditto.
126030        * inspector/InspectorConsoleAgent.cpp: Ditto.
126031        * inspector/InspectorConsoleAgent.h: Ditto.
126032        * inspector/InspectorController.cpp: Use InspectorCompositeState rather than InspectorState.
126033        * inspector/InspectorController.h: Ditto.
126034        * inspector/InspectorDOMAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
126035        (WebCore::InspectorDOMAgent::InspectorDOMAgent): Ditto.
126036        * inspector/InspectorDOMAgent.h: Ditto.
126037        * inspector/InspectorDOMDebuggerAgent.cpp: Ditto.
126038        * inspector/InspectorDOMDebuggerAgent.h: Ditto.
126039        * inspector/InspectorDOMStorageAgent.cpp: Ditto.
126040        * inspector/InspectorDOMStorageAgent.h: Ditto.
126041        * inspector/InspectorDatabaseAgent.cpp: Ditto.
126042        * inspector/InspectorDatabaseAgent.h: Ditto.
126043        * inspector/InspectorDebuggerAgent.cpp: Ditto.
126044        * inspector/InspectorDebuggerAgent.h: Ditto.
126045        * inspector/InspectorFileSystemAgent.cpp: Ditto.
126046        * inspector/InspectorFileSystemAgent.h: Ditto.
126047        * inspector/InspectorIndexedDBAgent.cpp: Ditto.
126048        * inspector/InspectorIndexedDBAgent.h: Ditto.
126049        * inspector/InspectorInputAgent.cpp: Ditto.
126050        * inspector/InspectorInputAgent.h: Ditto.
126051        * inspector/InspectorLayerTreeAgent.cpp: Ditto.
126052        * inspector/InspectorLayerTreeAgent.h: Ditto.
126053        * inspector/InspectorMemoryAgent.cpp: Ditto.
126054        * inspector/InspectorMemoryAgent.h: Ditto.
126055        * inspector/InspectorPageAgent.cpp: Ditto.
126056        * inspector/InspectorPageAgent.h: Ditto.
126057        * inspector/InspectorProfilerAgent.cpp: Ditto.
126058        * inspector/InspectorProfilerAgent.h: Ditto.
126059        * inspector/InspectorResourceAgent.cpp: Ditto.
126060        * inspector/InspectorResourceAgent.h: Ditto.
126061        * inspector/InspectorRuntimeAgent.cpp: Ditto.
126062        * inspector/InspectorRuntimeAgent.h: Ditto.
126063        * inspector/InspectorState.cpp: Introduce InspectorCompositeState, refactor.
126064        (WebCore::InspectorState::updateCookie): Delegates to the owning InspectorCompositeState instance.
126065        (WebCore::InspectorState::setFromCookie): Gets called from InspectorCompositeState::loadFromCookie().
126066        (WebCore::InspectorState::remove): Don't forget to update the cookie.
126067        (WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance for a named agent.
126068        (WebCore::InspectorCompositeState::loadFromCookie): Restores InspectorStates from a cookie.
126069        (WebCore::InspectorCompositeState::inspectorStateUpdated): Delegate invoked from InspectorState::updateCookie().
126070        * inspector/InspectorState.h:
126071        (InspectorStateUpdateListener): InspectorCompositeState API exposed to InspectorState.
126072        * inspector/InspectorTimelineAgent.cpp: Pass InspectorCompositeState rather than InspectorState.
126073        * inspector/InspectorTimelineAgent.h: Ditto.
126074        * inspector/InspectorWorkerAgent.cpp: Ditto.
126075        * inspector/InspectorWorkerAgent.h: Ditto.
126076        * inspector/PageConsoleAgent.cpp: Ditto.
126077        * inspector/PageConsoleAgent.h: Ditto.
126078        * inspector/PageDebuggerAgent.cpp: Ditto.
126079        * inspector/PageDebuggerAgent.h: Ditto.
126080        * inspector/PageRuntimeAgent.cpp: Ditto.
126081        * inspector/PageRuntimeAgent.h: Ditto.
126082        * inspector/WorkerConsoleAgent.cpp: Ditto.
126083        * inspector/WorkerConsoleAgent.h: Ditto.
126084        * inspector/WorkerDebuggerAgent.cpp: Ditto.
126085        * inspector/WorkerDebuggerAgent.h: Ditto.
126086        * inspector/WorkerInspectorController.cpp: Ditto.
126087        * inspector/WorkerInspectorController.h: Ditto.
126088        * inspector/WorkerRuntimeAgent.cpp: Ditto.
126089        * inspector/WorkerRuntimeAgent.h: Ditto.
126090
1260912012-12-24  Yury Semikhatsky  <yurys@chromium.org>
126092
126093        Memory instrumentation: provide a way to mark a node as a root
126094        https://bugs.webkit.org/show_bug.cgi?id=105737
126095
126096        Reviewed by Alexander Pavlov.
126097
126098        Extended HeapGraphSerializer to add a fake root node with edges to all
126099        real instrumentation roots.
126100
126101        * inspector/HeapGraphSerializer.cpp:
126102        (WebCore::HeapGraphSerializer::reportNode):
126103        (WebCore::HeapGraphSerializer::addRootNode):
126104        (WebCore):
126105        * inspector/HeapGraphSerializer.h:
126106        (HeapGraphSerializer):
126107
1261082012-12-24  Yury Semikhatsky  <yurys@chromium.org>
126109
126110        Web Inspector: add message listener only in case of standalone test-runner.html
126111        https://bugs.webkit.org/show_bug.cgi?id=105715
126112
126113        Reviewed by Pavel Feldman.
126114
126115        Tell InspectorFrontendAPI that it is launched by standalone test runner so that it
126116        can decide whether message event listener should be added.
126117
126118        * inspector/front-end/InspectorFrontendAPI.js:
126119        * inspector/front-end/test-runner.html:
126120
1261212012-12-24  Ilya Tikhonovsky  <loislo@chromium.org>
126122
126123        Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
126124        https://bugs.webkit.org/show_bug.cgi?id=105725
126125
126126        Reviewed by Yury Semikhatsky.
126127
126128        MemoryOwningType was renamed to MemberType.
126129        Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
126130        MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.
126131
126132        * inspector/HeapGraphSerializer.cpp:
126133        (WebCore::HeapGraphEdge::HeapGraphEdge):
126134        (HeapGraphEdge):
126135        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
126136        (WebCore::HeapGraphSerializer::reportEdge):
126137        (WebCore::HeapGraphSerializer::reportLeaf):
126138        (WebCore::HeapGraphSerializer::serialize):
126139        * inspector/HeapGraphSerializer.h:
126140        (HeapGraphSerializer):
126141        * inspector/MemoryInstrumentationImpl.cpp:
126142        (WebCore::MemoryInstrumentationClientImpl::reportEdge):
126143        (WebCore::MemoryInstrumentationClientImpl::reportLeaf):
126144        * inspector/MemoryInstrumentationImpl.h:
126145        (MemoryInstrumentationClientImpl):
126146
1261472012-12-24  Takashi Sakamoto  <tasak@google.com>
126148
126149        ::first-letter { overflow: -webkit-paged-y } causes crash
126150        https://bugs.webkit.org/show_bug.cgi?id=105393
126151
126152        Reviewed by Beth Dakin.
126153
126154        Should check whether e is available or not before invoking
126155        e->hasTagName in adjustRenderStyle in StyleResolver.cpp.
126156
126157        Test: fast/css/pseudo-element-opagedxy-crash.html
126158
126159        * css/StyleResolver.cpp:
126160        (WebCore::StyleResolver::adjustRenderStyle):
126161        If adjustRenderStyle is invoked in pseudoStyleForElement, the given
126162        element is 0. So e is not available. However if the given style's
126163        overflowY is OPAGEDX or OPAGEDY, adjustRenderStyle doesn't check
126164        whether e is available or not before e->hasTagName.
126165        This causes a crash.
126166
1261672012-12-24  Alexei Filippov  <alph@chromium.org>
126168
126169        Web Inspector: add async API for passing renderer process memory stats
126170        https://bugs.webkit.org/show_bug.cgi?id=105278
126171
126172        Reviewed by Yury Semikhatsky.
126173
126174        On some platforms (e.g. Linux) it may take some time to collect
126175        total process memory information as it involves an IPC out of a
126176        sandboxed renderer process. So add an async way to collect the statistics.
126177
126178        * platform/MemoryUsageSupport.cpp:
126179        (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
126180        (WebCore):
126181        * platform/MemoryUsageSupport.h:
126182        (MemoryUsageSupport):
126183        (ProcessMemorySizesCallback):
126184        (WebCore::MemoryUsageSupport::ProcessMemorySizesCallback::~ProcessMemorySizesCallback):
126185        * platform/chromium/MemoryUsageSupportChromium.cpp:
126186        (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
126187        (WebCore):
126188        * platform/qt/MemoryUsageSupportQt.cpp:
126189        (WebCore::MemoryUsageSupport::requestProcessMemorySizes):
126190        (WebCore):
126191
1261922012-12-24  Laszlo Gombos  <l.gombos@samsung.com>
126193
126194        Remove wtf/Platform.h includes from {c|cpp} files
126195        https://bugs.webkit.org/show_bug.cgi?id=105678
126196
126197        Reviewed by Kentaro Hara.
126198
126199        Remove wtf/Platform.h from the include list as it is already
126200        included in config.h.
126201
126202        No new tests as there is no new functionality.
126203
126204        * rendering/svg/RenderSVGRect.cpp:
126205
1262062012-12-24  Kentaro Hara  <haraken@chromium.org>
126207
126208        Follow up fixes for r137739
126209        https://bugs.webkit.org/show_bug.cgi?id=104982
126210
126211        Reviewed by Ryosuke Niwa.
126212
126213        Applied darin's comments in https://bugs.webkit.org/show_bug.cgi?id=104982#c18
126214
126215        No tests. No change in behavior.
126216
126217        * dom/ContainerNode.h:
126218        (WebCore::ChildNodesLazySnapshot::nextNode):
126219
1262202012-12-24  Tiancheng Jiang  <tijiang@rim.com>
126221
126222        Update BB10 media render theme.
126223        https://bugs.webkit.org/show_bug.cgi?id=105728
126224
126225        Reviewed by Rob Buis.
126226
126227        Internally reviewed by John Griggs.
126228        Use GL renderer to paint media control.
126229
126230        * css/mediaControlsBlackBerry.css:
126231        (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
126232        * platform/blackberry/RenderThemeBlackBerry.cpp:
126233        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
126234        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
126235
1262362012-12-24  Sheriff Bot  <webkit.review.bot@gmail.com>
126237
126238        Unreviewed, rolling out r138436.
126239        http://trac.webkit.org/changeset/138436
126240        https://bugs.webkit.org/show_bug.cgi?id=105723
126241
126242        Asserts on state restoration in debug builds (Requested by
126243        apavlov on #webkit).
126244
126245        * inspector/InspectorAgent.cpp:
126246        (InspectorAgentState):
126247        (WebCore::InspectorAgent::enable):
126248        (WebCore::InspectorAgent::disable):
126249        (WebCore::InspectorAgent::evaluateForTestInFrontend):
126250        (WebCore::InspectorAgent::inspect):
126251        * inspector/InspectorApplicationCacheAgent.cpp:
126252        (ApplicationCacheAgentState):
126253        (WebCore::InspectorApplicationCacheAgent::restore):
126254        (WebCore::InspectorApplicationCacheAgent::enable):
126255        * inspector/InspectorCSSAgent.cpp:
126256        (CSSAgentState):
126257        (WebCore::InspectorCSSAgent::restore):
126258        (WebCore::InspectorCSSAgent::enable):
126259        (WebCore::InspectorCSSAgent::disable):
126260        * inspector/InspectorCanvasAgent.cpp:
126261        (CanvasAgentState):
126262        (WebCore::InspectorCanvasAgent::restore):
126263        (WebCore::InspectorCanvasAgent::enable):
126264        (WebCore::InspectorCanvasAgent::disable):
126265        * inspector/InspectorController.cpp:
126266        (WebCore::InspectorController::InspectorController):
126267        * inspector/InspectorController.h:
126268        (WebCore):
126269        (InspectorController):
126270        * inspector/InspectorDOMStorageAgent.cpp:
126271        (DOMStorageAgentState):
126272        (WebCore::InspectorDOMStorageAgent::restore):
126273        (WebCore::InspectorDOMStorageAgent::enable):
126274        (WebCore::InspectorDOMStorageAgent::disable):
126275        * inspector/InspectorDatabaseAgent.cpp:
126276        (DatabaseAgentState):
126277        (WebCore):
126278        (WebCore::InspectorDatabaseAgent::enable):
126279        (WebCore::InspectorDatabaseAgent::disable):
126280        (WebCore::InspectorDatabaseAgent::restore):
126281        * inspector/InspectorDebuggerAgent.cpp:
126282        (WebCore::InspectorDebuggerAgent::disable):
126283        * inspector/InspectorFileSystemAgent.cpp:
126284        (FileSystemAgentState):
126285        (WebCore):
126286        (WebCore::InspectorFileSystemAgent::enable):
126287        (WebCore::InspectorFileSystemAgent::disable):
126288        (WebCore::InspectorFileSystemAgent::clearFrontend):
126289        (WebCore::InspectorFileSystemAgent::restore):
126290        * inspector/InspectorIndexedDBAgent.cpp:
126291        (IndexedDBAgentState):
126292        (WebCore):
126293        (WebCore::InspectorIndexedDBAgent::restore):
126294        (WebCore::InspectorIndexedDBAgent::enable):
126295        (WebCore::InspectorIndexedDBAgent::disable):
126296        * inspector/InspectorLayerTreeAgent.cpp:
126297        (LayerTreeAgentState):
126298        (WebCore::InspectorLayerTreeAgent::restore):
126299        (WebCore::InspectorLayerTreeAgent::enable):
126300        (WebCore::InspectorLayerTreeAgent::disable):
126301        * inspector/InspectorPageAgent.cpp:
126302        (PageAgentState):
126303        (WebCore::InspectorPageAgent::restore):
126304        (WebCore::InspectorPageAgent::webViewResized):
126305        (WebCore::InspectorPageAgent::enable):
126306        (WebCore::InspectorPageAgent::disable):
126307        (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
126308        (WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
126309        (WebCore::InspectorPageAgent::setDeviceMetricsOverride):
126310        (WebCore::InspectorPageAgent::setShowPaintRects):
126311        (WebCore::InspectorPageAgent::setShowFPSCounter):
126312        (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
126313        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
126314        (WebCore::InspectorPageAgent::applyScreenWidthOverride):
126315        (WebCore::InspectorPageAgent::applyScreenHeightOverride):
126316        (WebCore::InspectorPageAgent::didPaint):
126317        (WebCore::InspectorPageAgent::didLayout):
126318        (WebCore::InspectorPageAgent::setEmulatedMedia):
126319        (WebCore::InspectorPageAgent::applyEmulatedMedia):
126320        * inspector/InspectorResourceAgent.cpp:
126321        (ResourceAgentState):
126322        (WebCore::InspectorResourceAgent::restore):
126323        (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
126324        (WebCore::InspectorResourceAgent::enable):
126325        (WebCore::InspectorResourceAgent::disable):
126326        * inspector/InspectorState.cpp:
126327        (WebCore::InspectorState::InspectorState):
126328        (WebCore::InspectorState::loadFromCookie):
126329        (WebCore):
126330        (WebCore::InspectorState::mute):
126331        (WebCore::InspectorState::unmute):
126332        (WebCore::InspectorState::updateCookie):
126333        (WebCore::InspectorState::remove):
126334        * inspector/InspectorState.h:
126335        (WebCore):
126336        (InspectorState):
126337        (WebCore::InspectorState::setLong):
126338        * inspector/InspectorTimelineAgent.cpp:
126339        (TimelineAgentState):
126340        (WebCore::InspectorTimelineAgent::restore):
126341        (WebCore::InspectorTimelineAgent::start):
126342        (WebCore::InspectorTimelineAgent::stop):
126343        * inspector/WorkerInspectorController.cpp:
126344        (WebCore::WorkerInspectorController::WorkerInspectorController):
126345        * inspector/WorkerInspectorController.h:
126346        (WebCore):
126347        (WorkerInspectorController):
126348
1263492012-12-24  Peter Rybin  <prybin@chromium.org>
126350
126351        Web Inspector: Keep LiveEdit API disabled when idle
126352        https://bugs.webkit.org/show_bug.cgi?id=104039
126353
126354        Reviewed by Pavel Feldman.
126355
126356        Guards are added to LiveEdit call
126357
126358        * bindings/v8/ScriptDebugServer.cpp:
126359        (WebCore::ScriptDebugServer::setScriptSource):
126360
1263612012-12-24  Andrey Lushnikov  <lushnikov@chromium.com>
126362
126363        Web Inspector: refactor TextEditorHighlighter's highlight attributes to dense array
126364        https://bugs.webkit.org/show_bug.cgi?id=105626
126365
126366        Reviewed by Pavel Feldman.
126367
126368        Refactor highlight attributes from sparse array to dense array.
126369
126370        No new tests: no behaviour changes, coverage provided by existing tests.
126371
126372        * inspector/front-end/DefaultTextEditor.js:
126373        (WebInspector.TextEditorMainPanel.prototype._paintLine):
126374        (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
126375        * inspector/front-end/TextEditorHighlighter.js:
126376        (WebInspector.TextEditorHighlighter.prototype._highlightLines):
126377
1263782012-12-21  Alexander Pavlov  <apavlov@chromium.org>
126379
126380        Web Inspector: Make use of the new InspectorState::remove() in inspector agents
126381        https://bugs.webkit.org/show_bug.cgi?id=105438
126382
126383        Reviewed by Yury Semikhatsky.
126384
126385        This patch introduces the following refactorings:
126386        - setting property values of InspectorState to "empty" objects has been replaced by removing them from the state;
126387        - InspectorState instance is no longer shared across agents, so that the property names can no longer clash.
126388          Instead, InspectorCompositeState creates and owns InspectorState instances for every agent;
126389        - agent-specific prefix has been stripped from most property names, where it looked synthetic.
126390        - updateCookie() is called from InspectorState::remove().
126391
126392        No new tests, as there is no visible change in the behavior.
126393
126394        * inspector/InspectorAgent.cpp: Agent-specific property name prefix stripped.
126395        * inspector/InspectorApplicationCacheAgent.cpp: Ditto.
126396        * inspector/InspectorCSSAgent.cpp: Ditto.
126397        * inspector/InspectorCanvasAgent.cpp: Ditto.
126398        * inspector/InspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
126399        * inspector/InspectorController.h: Ditto.
126400        * inspector/InspectorDOMStorageAgent.cpp: Agent-specific property name prefix stripped.
126401        * inspector/InspectorDatabaseAgent.cpp: Ditto.
126402        * inspector/InspectorDebuggerAgent.cpp: Ditto.
126403        (WebCore::InspectorDebuggerAgent::disable):
126404        Use "remove" instead of setting an empty object.
126405        * inspector/InspectorFileSystemAgent.cpp: Agent-specific property name prefix stripped.
126406        * inspector/InspectorIndexedDBAgent.cpp: Ditto.
126407        * inspector/InspectorLayerTreeAgent.cpp: Ditto.
126408        * inspector/InspectorPageAgent.cpp: Ditto.
126409        (WebCore::InspectorPageAgent::disable):
126410        Use "remove" instead of setting empty values for certain properties.
126411        (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
126412        Remove unnecessary code (object is created and put into the map if none is found).
126413        * inspector/InspectorResourceAgent.cpp: Agent-specific property name prefix stripped.
126414        (WebCore::InspectorResourceAgent::disable):
126415        Use "remove" instead of setting an empty object for userAgentOverride.
126416        * inspector/InspectorState.cpp: Add InspectorCompositeState.
126417        (WebCore::InspectorState::setFromCookie): Gets invoked from InspectorCompositeState::loadFromCookie().
126418        (WebCore::InspectorState::updateCookie): Call updateCookie().
126419        (WebCore::InspectorCompositeState::createAgentState): Creates an InspectorState instance to be passed to an agent.
126420        * inspector/InspectorState.h: Add InspectorCompositeState.
126421        (WebCore::InspectorState::setLong): Fix cast.
126422        * inspector/InspectorTimelineAgent.cpp: Agent-specific property name prefix stripped.
126423        * inspector/WorkerInspectorController.cpp: Make use of InspectorCompositeState rather than InspectorState.
126424        * inspector/WorkerInspectorController.h: Ditto.
126425
1264262012-12-23  Dimitri Glazkov  <dglazkov@chromium.org>
126427
126428        Split fast-rejection filter logic off SelectorChecker.
126429        https://bugs.webkit.org/show_bug.cgi?id=105660
126430
126431        The awesome Bloom filter and parent stack logic don't need to be in SelectorChecker. They nicely factor out
126432        into their own pretty thing, named thereby SelectorFilter.
126433
126434        Reviewed by Eric Seidel.
126435
126436        No change in functionality, covered by existing tests.
126437
126438        * CMakeLists.txt: Added SelectorFilter to build systems.
126439        * GNUmakefile.list.am: Ditto.
126440        * Target.pri: Ditto.
126441        * WebCore.gypi: Ditto.
126442        * WebCore.xcodeproj/project.pbxproj: Ditto.
126443        * css/CSSAllInOne.cpp: Ditto.
126444        * css/RuleSet.cpp: Changed to use SelectorFilter.
126445        (WebCore::RuleData::RuleData): Ditto.
126446        * css/SelectorChecker.cpp: Ditto.
126447        * css/SelectorChecker.h: Ditto.
126448        (SelectorChecker):
126449        * css/StyleResolver.cpp: Ditto.
126450        (WebCore):
126451        (WebCore::StyleResolver::pushParentElement): Ditto.
126452        (WebCore::StyleResolver::popParentElement): Ditto.
126453        (WebCore::StyleResolver::collectMatchingRulesForList): Ditto.
126454        * css/StyleResolver.h:
126455        (StyleResolver): Ditto.
126456
1264572012-12-23  Qiankun Miao  <qiankun.miao@intel.com>
126458
126459        Remove unused reference to "class LayerChromium"
126460        https://bugs.webkit.org/show_bug.cgi?id=105502
126461
126462        Reviewed by Kentaro Hara.
126463
126464        class LayerChromium doesn't exist any more. Just remove the unused
126465        code.
126466
126467        * platform/graphics/chromium/Canvas2DLayerBridge.h:
126468
1264692012-12-23  Alexey Proskuryakov  <ap@apple.com>
126470
126471        <rdar://problem/12808377> Network process should respect cookie accept policy
126472        https://bugs.webkit.org/show_bug.cgi?id=105684
126473
126474        Reviewed by Sam Weinig.
126475
126476        Changed cookie change observer to not use platform strategies, to make it usable
126477        in NetworkProcess. startObservingCookieChanges() now just takes a callback pointer.
126478
126479        * WebCore.exp.in:
126480        * platform/CookiesStrategy.h:
126481        * platform/network/CookieStorage.h:
126482        * platform/network/cf/CookieStorageCFNet.cpp:
126483        (WebCore::notifyCookiesChangedOnMainThread):
126484        (WebCore::startObservingCookieChanges):
126485        * platform/network/mac/CookieStorageMac.mm:
126486        (-[WebCookieStorageObjCAdapter notifyCookiesChangedOnMainThread]):
126487        (-[WebCookieStorageObjCAdapter startListeningForCookieChangeNotificationsWithCallback:]):
126488        (WebCore::startObservingCookieChanges):
126489
1264902012-12-23  Tony Chang  <tony@chromium.org>
126491
126492        [Qt][Mac] Unreviewed fix the build after r138413
126493        https://bugs.webkit.org/show_bug.cgi?id=105686
126494
126495        Don't use a temporary const reference so the compiler doesn't make a copy.
126496        An example compile error (clang):
126497        Source/WebCore/loader/CookieJar.cpp:73:67: error: copying parameter of type 'WebCore::NetworkStorageSession' invokes deleted constructor
126498            return platformStrategies()->cookiesStrategy()->cookiesForDOM(SESSION(document), document->firstPartyForCookies(), url);
126499
126500        * loader/CookieJar.cpp:
126501        (WebCore::cookies):
126502        (WebCore::setCookies):
126503        (WebCore::cookiesEnabled):
126504        (WebCore::cookieRequestHeaderFieldValue):
126505        (WebCore::getRawCookies):
126506        (WebCore::deleteCookie):
126507
1265082012-12-22  Alexey Proskuryakov  <ap@apple.com>
126509
126510        Add a separate class for networking related storage
126511        https://bugs.webkit.org/show_bug.cgi?id=105676
126512
126513        Reviewed by Sam Weinig.
126514
126515        NetworkingContext combines a reference to storage (cookies and more) and data that's
126516        only meaningful when loading. This makes it very ugly to use for cookie manipulation
126517        when there is no load (e.g. for document.cookie).
126518
126519        Adding NetworkStorageSession, which encorportes network-related sesion data, such
126520        as cookies and session HTTP credentials.
126521
126522        For some ports, refactoring is not finished, NetworkStorageSession being a wrapper
126523        for NetworkingContext.
126524
126525        * CMakeLists.txt:
126526        * GNUmakefile.list.am:
126527        * Target.pri:
126528        * WebCore.exp.in:
126529        * WebCore.gypi:
126530        * WebCore.vcproj/WebCore.vcproj:
126531        * WebCore.xcodeproj/project.pbxproj:
126532        Updated for new files and functions.
126533
126534        * platform/network/PlatformCookieJar.h:
126535        * loader/CookieJar.cpp:
126536        * platform/CookiesStrategy.h:
126537        * platform/network/cf/CookieJarCFNet.cpp:
126538        * platform/network/chromium/CookieJarChromium.cpp:
126539        * platform/network/curl/CookieJarCurl.cpp:
126540        * platform/network/mac/CookieJarMac.mm:
126541        * platform/network/qt/CookieJarQt.cpp:
126542        * platform/network/soup/CookieJarSoup.cpp:
126543        * platform/network/win/CookieJarWin.cpp:
126544        PlatformCookieJar and strategy cookie functions now take a NetworkStorageSession
126545        instead of NetworkingContext.
126546        Note that they take a const reference to support creating a temporary session
126547        wrapper for ports that just wrap a NetworkingContext.
126548
126549        * loader/ResourceLoader.cpp:
126550        * loader/cache/CachedResource.h:
126551        * platform/network/BlobResourceHandle.cpp:
126552        * platform/network/ResourceHandle.cpp:
126553        * platform/network/ResourceHandle.h:
126554        * platform/network/ResourceHandleInternal.h:
126555        * platform/network/chromium/ResourceHandle.cpp:
126556        * platform/network/curl/ResourceHandleCurl.cpp:
126557        * platform/network/mac/ResourceHandleMac.mm:
126558        * platform/network/qt/QNetworkReplyHandler.cpp:
126559        * platform/network/soup/DNSSoup.cpp:
126560        * platform/network/soup/ResourceHandleSoup.cpp:
126561        * platform/network/win/ResourceHandleWin.cpp:
126562        ResourceHandle no longer includes unneeded NetworkingContext.h and AuthenticationClient.h.
126563        This avoids near-world rebuilds on any NetworkingContext change.
126564
126565        * platform/network/NetworkStorageSession.h: Added.
126566        * platform/network/NetworkStorageSessionStub.cpp: Added.
126567        * platform/network/cf/NetworkStorageSessionCFNet.cpp: Added.
126568        Good new stuff. Stub version just wraps NetworkingContext for platforms that still
126569        need to finish the refactoring.
126570
126571        * platform/network/NetworkingContext.h:
126572        The context now has a NetworkStorageSession, and doesn't expose CFNet level objects directly.
126573
126574        * platform/network/cf/CookieStorageCFNet.cpp:
126575        * platform/network/cf/CookieStorageCFNet.h: Removed.
126576        We no longer have separate free functions to track storage, it's part of NetworkStorageSession now.
126577
126578        * platform/network/cf/ResourceHandleCFNet.cpp: Updated to use NetworkStorageSession.
126579
126580        * platform/network/mac/CookieStorageMac.mm: Dont include CookieStorageCFNet.h, it
126581        was not needed.
126582
1265832012-12-22  Nico Weber  <thakis@chromium.org>
126584
126585        InlineTextBox: Remove potentially confusing "} if" pattern.
126586        https://bugs.webkit.org/show_bug.cgi?id=105499
126587
126588        Reviewed by Ojan Vafai.
126589
126590        It's not clear to me on first look if this is intentional or missing
126591        an "else" (and this pattern was used in just one other place in
126592        webkit, which I've removed). It turns out no else is missing here,
126593        this is checked by fast/text/justified-selection.html
126594
126595        * rendering/InlineTextBox.cpp:
126596        (WebCore::paintTextWithShadows):
126597
1265982012-12-21  Jan Keromnes  <janx@linux.com>
126599
126600        Web Inspector: Update CodeMirror to stable
126601        https://bugs.webkit.org/show_bug.cgi?id=105653
126602
126603        Reviewed by Pavel Feldman.
126604
126605        Fixes several minor issues, including throw scroll on mac.
126606
126607        * inspector/front-end/cm/codemirror.css:
126608        (.cm-negative):
126609        (.cm-positive):
126610        (.CodeMirror-gutter):
126611        (.cm-searching):
126612        * inspector/front-end/cm/codemirror.js:
126613        (window.CodeMirror):
126614        (window.CodeMirror.):
126615        * inspector/front-end/cm/css.js:
126616        (.):
126617        * inspector/front-end/cm/htmlmixed.js:
126618        (.):
126619        * inspector/front-end/cm/javascript.js:
126620        (.):
126621        * inspector/front-end/cm/xml.js:
126622
1266232012-12-21  Elliott Sprehn  <esprehn@chromium.org>
126624
126625        Replace documentFragmentIsShadowRoot with isTreeScope
126626        https://bugs.webkit.org/show_bug.cgi?id=105345
126627
126628        Reviewed by Dimitri Glazkov.
126629
126630        We can replace documentFragmentIsShadowRoot with isTreeScope() which is
126631        trival to detect by checking treeScope()->rootNode() == this. To do this
126632        we must stop adopting ShadowRoots into the document when they're removed,
126633        which was always wrong anyway as it meant that the TreeScope of a ShadowRoot
126634        was no longer itself after it had been removed. It also meant that the
126635        children of a ShadowRoot that was removed were no longer in it's tree scope
126636        despite being descendants of it.
126637
126638        Making this simplification allows further simplication like
126639        Node::containingShadowRoot can be made O(1) instead of O(k) where k is
126640        the depth of the node.
126641
126642        No new tests, just refactoring.
126643
126644        * WebCore.exp.in:
126645        * dom/DocumentFragment.h:
126646        (DocumentFragment):
126647        * dom/ElementShadow.cpp:
126648        (WebCore::ElementShadow::removeAllShadowRoots):
126649        * dom/Node.cpp:
126650        (WebCore::Node::setTreeScope):
126651        (WebCore::Node::isTreeScope):
126652        (WebCore):
126653        * dom/Node.h:
126654        (Node):
126655        (WebCore::Node::isShadowRoot):
126656        * dom/ShadowRoot.cpp:
126657        (WebCore::ShadowRoot::~ShadowRoot):
126658        * dom/ShadowRoot.h:
126659        (ShadowRoot):
126660
1266612012-12-21  Xianzhu Wang  <wangxianzhu@chromium.org>
126662
126663        [Chromium-Android] Use harfbuzz-ng instead of harfbuzz-old on Android
126664        https://bugs.webkit.org/show_bug.cgi?id=104410
126665
126666        Using harfbuzz-ng we can avoid many bugs of the obsolete harfbuzz-old.
126667
126668        Reviewed by Eric Seidel.
126669
126670        No new tests. No change of functionality. Existing tests should pass.
126671
126672        * WebCore.gyp/WebCore.gyp: Use harfbuzz-ng on Android.
126673
1266742012-12-21  Joshua Bell  <jsbell@chromium.org>
126675
126676        IndexedDB: Combine openConnection and openConnectionWithVersion
126677        https://bugs.webkit.org/show_bug.cgi?id=105658
126678
126679        Reviewed by Tony Chang.
126680
126681        Combine the logic from these two methods. Mostly a refactor, but in the "pending calls"
126682        case the behavior is slightly altered since the version and no-version queues were
126683        previously separate, so the order changes. The new order matches the spec and FF/IE
126684        behavior, and a test is added to verify this.
126685
126686        Chromium's webkit_unit_tests rely on a quirk to bypass the upgrade mechanism; the usage
126687        is slightly altered and made more explicit, and requires a small amount of test-only code.
126688
126689        Test: storage/indexeddb/open-ordering.html
126690
126691        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
126692        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
126693        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
126694        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
126695        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
126696        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
126697        (WebCore::IDBDatabaseBackendImpl::openConnection):
126698        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
126699        (WebCore::IDBDatabaseBackendImpl::close):
126700        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
126701        (IDBDatabaseBackendImpl):
126702        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
126703        (WebCore::IDBFactoryBackendImpl::open):
126704
1267052012-12-21  Brady Eidson  <beidson@apple.com>
126706
126707        Update localizable strings as a followup to http://trac.webkit.org/changeset/138387
126708        https://bugs.webkit.org/show_bug.cgi?id=105592
126709
126710        Rubberstamped by Alexey Proskuryakov.
126711
126712        * English.lproj/Localizable.strings: Added a new error string.
126713
1267142012-12-21  Kenneth Russell  <kbr@google.com>
126715
126716        Expose ArrayBufferView constructor on DOMWindow
126717        https://bugs.webkit.org/show_bug.cgi?id=105605
126718
126719        Reviewed by Sam Weinig.
126720
126721        Update IDL to track recent spec change exposing ArrayBufferView
126722        constructor on DOMWindow for instanceof checks. There are no
126723        constructors exposed in the Web IDL, however, so calling it via
126724        operator new throws TypeError.
126725
126726        Test (updated): fast/canvas/webgl/array-unit-tests.html
126727
126728        * html/canvas/ArrayBufferView.idl:
126729            Removed OmitConstructor attribute.
126730        * page/DOMWindow.idl:
126731            Exposed ArrayBufferView constructor function attribute.
126732
1267332012-12-21  Brady Eidson  <beidson@apple.com>
126734
126735        Remove ResourceLoadScheduler::addMainResourceLoad and all related code
126736        <rdar://problem/12925275> and https://bugs.webkit.org/show_bug.cgi?id=105644
126737
126738        Reviewed by Alexey Proskuryakov.
126739
126740        Now that main resources loads are scheduled (bug 49246) we don't need this stuff anymore.
126741
126742        No new tests (No change in behavior).
126743
126744        * WebCore.exp.in:
126745        * loader/ResourceLoadScheduler.cpp:
126746        * loader/ResourceLoadScheduler.h:
126747
1267482012-12-21  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
126749
126750        [WebGL][EFL][Qt] Transparent canvas composited non-transparent
126751        https://bugs.webkit.org/show_bug.cgi?id=105325
126752
126753        Reviewed by Kenneth Rohde Christiansen.
126754
126755        glXPixmap is always created without alpha channel because 1st GLXFBConfig 
126756        in a list doesn't support transparency. 
126757        Use the same code that is used to find GLXFBConfig with alpha for window 
126758        creation in GraphicsSurfacePrivate::createPixmap(). Code is moved to 
126759        findFBConfigWithAlpha() method.
126760
126761        Covered by fast/canvas/webgl/webgl-composite-modes-repaint.html
126762
126763        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
126764        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
126765        (WebCore::GraphicsSurfacePrivate::createPixmap):
126766        (WebCore::GraphicsSurfacePrivate::findFBConfigWithAlpha):
126767        (GraphicsSurfacePrivate):
126768
1267692012-12-21  Dimitri Glazkov  <dglazkov@chromium.org>
126770
126771        Unreviewed, rolling out r138376.
126772        http://trac.webkit.org/changeset/138376
126773        https://bugs.webkit.org/show_bug.cgi?id=104995
126774
126775        Broke a bunch of tests on mac.
126776
126777        * dom/ShadowRoot.cpp:
126778        (WebCore::ShadowRoot::nodeName):
126779        (WebCore):
126780        * dom/ShadowRoot.h:
126781        (ShadowRoot):
126782
1267832012-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>
126784
126785        Unreviewed, rolling out r138237.
126786        http://trac.webkit.org/changeset/138237
126787        https://bugs.webkit.org/show_bug.cgi?id=105637
126788
126789        Regresses web inspector's editor performance. (Requested by
126790        pfeldman on #webkit).
126791
126792        * inspector/front-end/DefaultTextEditor.js:
126793        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
126794        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
126795        (WebInspector.TextEditorMainChunk.prototype.expand):
126796
1267972012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
126798
126799        Various tests in media/track are intermittently crashing.
126800        https://bugs.webkit.org/show_bug.cgi?id=105606
126801
126802        Reviewed by Eric Seidel.
126803
126804        The root of problem is the fact that we update tracks even if we are in process of deleting the document.
126805        Media element can stop doing that if the document informed the element via ::stop that it is going away.
126806
126807        * html/HTMLMediaElement.cpp:
126808        (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):
126809
1268102012-12-21  Alexei Svitkine  <asvitkine@chromium.org>
126811
126812        [Chromium/Mac] Don't send an onclick event from a ctrl-click
126813        https://bugs.webkit.org/show_bug.cgi?id=105554
126814
126815        Reviewed by Dimitri Glazkov.
126816
126817        Don't send the onclick event on a control click event (which
126818        triggers the context menu on the Mac). This matches the
126819        behaviour of the Apple Mac port, although the Apple port
126820        does this by checking whether the context menu is visible
126821        in WebPage::mouseEvent().
126822
126823        This is a fix for http://crbug.com/146143
126824
126825        Test: fast/events/controlclick-no-onclick.html
126826
126827        * page/EventHandler.cpp:
126828        (WebCore::EventHandler::handleMouseReleaseEvent):
126829
1268302012-12-21  Shinya Kawanaka  <shinyak@chromium.org>
126831
126832        Implement ShadowRoot::elementFromPoint
126833        https://bugs.webkit.org/show_bug.cgi?id=104579
126834
126835        Reviewed by Dimitri Glazkov.
126836
126837        Move elementFromPoint and nodeFromPoint to TreeScope from Document so that ShadowRoot can call it.
126838        In the elementFromPoint(), the element taken by nodeFromPoint is not in the same tree scope, its ancestor is returned.
126839
126840        Since nodeFromPoint does not return the shadow ancestor of the result node, I don't make it TreeScope method.
126841
126842        Test: fast/dom/shadow/elementfrompoint.html
126843
126844        * dom/Document.cpp:
126845        (WebCore::Document::elementFromPoint): Code is shared with TreeScope.
126846        (WebCore::Document::caretRangeFromPoint):
126847        * dom/ShadowRoot.idl:
126848        * dom/TreeScope.cpp:
126849        (WebCore::nodeFromPoint): Moved from Document.cpp
126850        (WebCore):
126851        (WebCore::TreeScope::elementFromPoint):
126852        * dom/TreeScope.h:
126853        (WebCore):
126854        (TreeScope):
126855
1268562012-12-21  Kenneth Rohde Christiansen  <kenneth@webkit.org>
126857
126858        [EFL][WK2] Never create WebCore scrollbars for EFL/WK2
126859        https://bugs.webkit.org/show_bug.cgi?id=105632
126860
126861        Reviewed by Antonio Gomes.
126862
126863        For delegates scroll we must not use the scroll animator,
126864        or similar as those depends on creating WebCore scrollbars.
126865
126866        Handle the wheel event manually for delegates scrolling.
126867
126868        * page/FrameView.cpp:
126869        (WebCore::FrameView::wheelEvent):
126870
1268712012-12-21  Shinya Kawanaka  <shinyak@chromium.org>
126872
126873        [Shadow DOM]: ShadowRoot wrong nodeName attribute
126874        https://bugs.webkit.org/show_bug.cgi?id=104995
126875
126876        Reviewed by Dimitri Glazkov.
126877
126878        According to the Shadow DOM spec, ShadowRoot.nodeName should return '#document-fragment' instead of '#shadow-root'.
126879        We remove ShadowRoot::nodeName.
126880
126881        No new tests, covered by existing tests.
126882
126883        * dom/ShadowRoot.cpp:
126884        * dom/ShadowRoot.h:
126885        (ShadowRoot):
126886
1268872012-12-21  Mihai Parparita  <mihaip@chromium.org>
126888
126889        Slow performance with <select> with many options and size >= 2
126890        https://bugs.webkit.org/show_bug.cgi?id=105483
126891
126892        Reviewed by Eric Seidel.
126893        
126894        Avoids creating renderers for children of list <select>s that are not
126895        <option> or <optgroup>. This is both more correct (no other browser
126896        displays them) and provides a performance benefit (direct text children 
126897        of <select> would have O(N^2) behavior; this usually happened due to
126898        whitespace between <option>...</option> tags).
126899
126900        Test: fast/forms/menulist-no-renderer-for-unexpected-children.html
126901
126902        * html/HTMLSelectElement.cpp:
126903        (WebCore::HTMLSelectElement::childShouldCreateRenderer):
126904
1269052012-12-21  Keishi Hattori  <keishi@webkit.org>
126906
126907        Fix typing zero into multiple field input
126908        https://bugs.webkit.org/show_bug.cgi?id=105501
126909
126910        Reviewed by Kent Tamura.
126911
126912        We have a couple of problems when handling zero in a multiple fields
126913        element.
126914        1. Typing '02' into a month field will set '12'.
126915        2. Typing '0' into 12 hour hour field will set '12' and move to the 
126916           focus to the next field.
126917        This change adds a type ahead buffer so we can handle these cases
126918        properly. If the value in the type ahead buffer is valid we set it so a
126919        change event will fire.
126920
126921        Added tests to *-multiple-fields-keyboard-events.html.
126922
126923        * html/shadow/DateTimeNumericFieldElement.cpp:
126924        (WebCore::DateTimeNumericFieldElement::didBlur): Clear the type ahead
126925        buffer. handleKeyboardEvent() won't set the type ahead value if it is
126926        not in range, so we set the value here.
126927        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
126928        (WebCore::DateTimeNumericFieldElement::setEmptyValue): Clear type ahead buffer.
126929        (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
126930        (WebCore::DateTimeNumericFieldElement::stepDown): Clear type ahead buffer.
126931        (WebCore::DateTimeNumericFieldElement::stepUp): Clear type ahead buffer.
126932        (WebCore::DateTimeNumericFieldElement::typeAheadValue): Returns integer
126933        value for the type ahead characters.
126934        (WebCore):
126935        (WebCore::DateTimeNumericFieldElement::visibleValue): If we have type
126936        ahead characters, show that.
126937        * html/shadow/DateTimeNumericFieldElement.h:
126938        (DateTimeNumericFieldElement):
126939
1269402012-12-21  Xabier Rodriguez Calvar  <calvaris@igalia.com>
126941
126942        [GStreamer] Buffering ranges are reported incorrectly with GStreamer 1.0
126943        https://bugs.webkit.org/show_bug.cgi?id=105319
126944
126945        Reviewed by Philippe Normand.
126946
126947        We add the gPercentMax constant to select between 100 and
126948        GST_FORMAT_PERCENT_MAX depending if we are compiling against
126949        GStreamer 0.10 or 1.0 and we use that in the corresponding method.
126950
126951        Current tests should suffice.
126952
126953        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
126954        (WebCore::MediaPlayerPrivateGStreamer::buffered): Added the use of
126955        gPercentMax constant instead of 100 to have the different code
126956        paths for GStreamer 0.10 and 1.0.
126957
1269582012-12-21  Tim Horton  <timothy_horton@apple.com>
126959
126960        PDFPlugin: Cannot drop files/URLs on PDFPlugin
126961        https://bugs.webkit.org/show_bug.cgi?id=105516
126962        <rdar://problem/12729443>
126963
126964        Reviewed by Alexey Proskuryakov.
126965
126966        * page/DragController.cpp:
126967        (WebCore::DragController::operationForLoad): If we drag over a PluginDocument, check if its PluginView
126968        claims to support navigation resulting from a drag (only PDFPlugin will for now). If it does, allow the drag.
126969        * plugins/PluginViewBase.h:
126970        (WebCore::PluginViewBase::shouldAllowNavigationFromDrags): Add shouldAllowNavigationFromDrags.
126971
1269722012-12-21  Sheriff Bot  <webkit.review.bot@gmail.com>
126973
126974        Unreviewed, rolling out r138338.
126975        http://trac.webkit.org/changeset/138338
126976        https://bugs.webkit.org/show_bug.cgi?id=105621
126977
126978        speculative rollout because fast/dom/shadow/content-element-
126979        distributed-nodes.html is crashing on linux debug. (Requested
126980        by loislo on #webkit).
126981
126982        * WebCore.exp.in:
126983        * dom/DocumentFragment.h:
126984        * dom/Node.cpp:
126985        (WebCore::Node::documentFragmentIsShadowRoot):
126986        (WebCore):
126987        * dom/Node.h:
126988        (Node):
126989        (WebCore::Node::isShadowRoot):
126990        * dom/ShadowRoot.h:
126991
1269922012-12-21  Adam Bergkvist  <adam.bergkvist@ericsson.com>
126993
126994        MediaStream API: Update the MediaStream constructor
126995        https://bugs.webkit.org/show_bug.cgi?id=98416
126996
126997        Reviewed by Adam Barth.
126998
126999        Updated the MediaStream constructor to support the more general argument
127000        list from the latest Media Capture and Streams specification:
127001        http://dev.w3.org/2011/webrtc/editor/getusermedia.html
127002
127003        Added more test cases to existing tests.
127004
127005        * Modules/mediastream/MediaStream.cpp:
127006        (WebCore::containsSource):
127007        (WebCore):
127008        (WebCore::processTrack):
127009        (WebCore::createFromSourceVectors):
127010        (WebCore::MediaStream::create):
127011        * Modules/mediastream/MediaStream.h:
127012        * Modules/mediastream/MediaStream.idl:
127013
1270142012-12-20  Ryosuke Niwa  <rniwa@webkit.org>
127015
127016        More fix after r138348.
127017
127018        * platform/network/cf/SocketStreamHandleCFNet.cpp:
127019        (WebCore::SocketStreamHandle::createStreams):
127020
1270212012-12-20  Alexey Proskuryakov  <ap@apple.com>
127022
127023        Disable Nagle algorithm on WebSocket implementation for CF.
127024        https://bugs.webkit.org/show_bug.cgi?id=102079
127025
127026        Build fix. Disable the new code on Lion, _kCFStreamSocketSetNoDelay apparently
127027        cannot be used on this OS version.
127028
127029        * platform/network/cf/SocketStreamHandleCFNet.cpp:
127030        (WebCore::SocketStreamHandle::createStreams):
127031
1270322012-12-20  KyungTae Kim  <ktf.kim@samsung.com>
127033
127034        Fix build warnings related with gstreamer
127035        https://bugs.webkit.org/show_bug.cgi?id=105614
127036
127037        Reviewed by Kentaro Hara.
127038
127039        The below functions have unused parameters.
127040        Remove the parameter names to fix 'unused parameter' build warnings.
127041
127042        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
127043        (WebCore::onGStreamerWavparsePadAddedCallback):
127044        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
127045        (WebCore::messageCallback):
127046        (WebCore::onGStreamerDeinterleavePadAddedCallback):
127047        (WebCore::onGStreamerDeinterleaveReadyCallback):
127048        (WebCore::onGStreamerDecodebinPadAddedCallback):
127049
1270502012-12-20  Takashi Toyoshima  <toyoshim@chromium.org>
127051
127052        Disable Nagle algorithm on WebSocket implementation for CF.
127053        https://bugs.webkit.org/show_bug.cgi?id=102079
127054
127055        Reviewed by Alexey Proskuryakov.
127056
127057        Set TCP_NODELAY on CFWriteStream for SocketStreamHandle to improve
127058        communication latency. Combination of Nagle and delayed-ACK could
127059        affect performance in some environment, e.g., over Wifi network.
127060
127061        * platform/network/cf/SocketStreamHandleCFNet.cpp:
127062        (WebCore::SocketStreamHandle::createStreams):
127063
1270642012-12-20  Huang Dongsung  <luxtella@company100.net>
127065
127066        [WebGL][EFL][Qt][GTK] Jelly fishes leave trails on webgl canvas.
127067        https://bugs.webkit.org/show_bug.cgi?id=105326
127068
127069        Reviewed by Noam Rosenthal.
127070
127071        Clear a drawing buffer after compositing if preserveDrawingBuffer is
127072        false.
127073        http://www.khronos.org/registry/webgl/specs/latest/#2.2
127074
127075        No new tests. Covered by existing webgl-preserve-drawing-buffer-repaint test.
127076
127077        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
127078        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
127079        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
127080        (GraphicsContext3DPrivate::copyToGraphicsSurface):
127081        * platform/graphics/qt/GraphicsContext3DQt.cpp:
127082        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
127083        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
127084
1270852012-12-20  Filip Pizlo  <fpizlo@apple.com>
127086
127087        Create a variable name for a RAII scope so it doesn't die immediately.
127088
127089        Reviewed by Sam Weinig.
127090
127091        No new tests.
127092
127093        * html/HTMLMediaElement.cpp:
127094        (WebCore::HTMLMediaElement::textTrackAddCues):
127095        (WebCore::HTMLMediaElement::textTrackRemoveCues):
127096        (WebCore::HTMLMediaElement::removeTrack):
127097        (WebCore::HTMLMediaElement::removeAllInbandTracks):
127098
1270992012-12-20  Elliott Sprehn  <esprehn@chromium.org>
127100
127101        Replace documentFragmentIsShadowRoot with isTreeScope
127102        https://bugs.webkit.org/show_bug.cgi?id=105345
127103
127104        Reviewed by Dimitri Glazkov.
127105
127106        We can replace documentFragmentIsShadowRoot with isTreeScope() which is
127107        trival to detect by checking treeScope()->rootNode() == this;
127108
127109        No new tests, just refactoring.
127110
127111        * WebCore.exp.in:
127112        * dom/DocumentFragment.h:
127113        (DocumentFragment):
127114        * dom/Node.cpp:
127115        (WebCore::Node::isTreeScope):
127116        * dom/Node.h:
127117        (Node):
127118        (WebCore::Node::isShadowRoot):
127119        * dom/ShadowRoot.h:
127120        (ShadowRoot):
127121
1271222012-12-20  Rik Cabanier  <cabanier@adobe.com>
127123
127124        Add canvas blending modes using Core Graphics
127125        https://bugs.webkit.org/show_bug.cgi?id=100070
127126
127127        Reviewed by Dirk Schulze.
127128
127129        globalCompositeOperation is extended so it takes blend modes as well as compositing operators.
127130        This patch adds an implementation for the Core Graphics port.
127131
127132        Tests: fast/canvas/canvas-blend-image.html
127133               fast/canvas/canvas-blend-solid.html
127134
127135        * html/canvas/CanvasRenderingContext2D.cpp:
127136        (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation): Passed blendMode to underlying layer.
127137        (WebCore::CanvasRenderingContext2D::drawImage): Passed blendMode to underlying drawImage call.
127138        (WebCore::CanvasRenderingContext2D::drawImageFromRect): Passed blendMode to platofrm layer.
127139        * html/canvas/CanvasRenderingContext2D.h:
127140        (CanvasRenderingContext2D): Eextended drawImage with new blendmode parameter.
127141        * platform/graphics/cg/GraphicsContextCG.cpp:
127142        (WebCore::GraphicsContext::setPlatformCompositeOperation): Passed blendmode to Core Graphics API.
127143
1271442012-12-20  KyungTae Kim  <ktf.kim@samsung.com>
127145
127146        Percentage min/max width replaced element may incorrectly rendered
127147        https://bugs.webkit.org/show_bug.cgi?id=105264
127148
127149        Reviewed by Tony Chang.
127150
127151        To make do not include percentage min width in preferred logical width calculation,
127152        because we cannot resolve it for preferred width.
127153
127154        Test: fast/css/percent-min-width-img-src-change.html
127155
127156        * rendering/RenderBox.cpp:
127157        (WebCore::RenderBox::computeReplacedLogicalWidth):
127158        Modify includeMaxWidth parameter to shouldComputePreferred.
127159        (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
127160        Modify includeMaxWidth parameter to shouldComputePreferred.
127161        If shouldComputePreferred is ComputePreferred, 
127162        don't use minLogicalWidth or maxLogicalWidth if they are percent type.
127163        * rendering/RenderBox.h:
127164        (RenderBox):
127165        * rendering/RenderReplaced.cpp:
127166        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
127167        Modify includeMaxWidth parameter to shouldComputePreferred.
127168        (WebCore::RenderReplaced::computeMaxPreferredLogicalWidth):
127169        Modify from set includeMaxWidth=false to set shouldComputePreferred=ComputePreferred.
127170        * rendering/RenderReplaced.h:
127171        (RenderReplaced):
127172        * rendering/RenderSVGRoot.cpp:
127173        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
127174        Modify includeMaxWidth parameter to shouldComputePreferred.
127175        * rendering/RenderSVGRoot.h:
127176        (RenderSVGRoot):
127177        * rendering/RenderVideo.cpp:
127178        (WebCore::RenderVideo::computeReplacedLogicalWidth):
127179        Modify includeMaxWidth parameter to shouldComputePreferred.
127180        * rendering/RenderVideo.h:
127181        (RenderVideo):
127182
1271832012-12-20  Alexey Proskuryakov  <ap@apple.com>
127184
127185        REGRESSION (r138191): Tests crash in ResourceRequest::setStorageSession
127186        https://bugs.webkit.org/show_bug.cgi?id=105563
127187
127188        Reviewed by Brady Eidson.
127189
127190        Partially fixes crashing http/tests/appcache/main-resource-redirect.html
127191        (but there is an unrelated regression affecting this test).
127192
127193        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
127194        * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
127195        The client can make the object get destoryed, protect it to avoid accessing deleted memory.
127196
1271972012-12-20  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
127198
127199        [EFL] [WebGL] [Wk2] Contents are not rendered properly.
127200        https://bugs.webkit.org/show_bug.cgi?id=104664
127201
127202        Reviewed by Noam Rosenthal.
127203
127204        WebGL pages that render more than one frame are broken. Only 1st
127205        frame comes to the UI side. All webgl repaint tests fail because
127206        of this.
127207        Specification of EXT_texture_from_pixmap extension here
127208        http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
127209        says, that:
127210        "The contents of the texture after the drawable has been bound are defined
127211        as the result of all rendering that has completed before the call to
127212        glXBindTexImageEXT."
127213        It means that in order to get updates for every frame glXBindTexImageEXT has
127214        to be called on every frame update.
127215
127216        Covered by existing fast/canavs/webgl/*repaint tests.
127217
127218        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
127219        (WebCore::GraphicsSurfacePrivate::isReceiver):
127220        (WebCore::GraphicsSurface::platformSwapBuffers):
127221        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
127222        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
127223
1272242012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>
127225
127226        [EFL] Build break with latest EFL libraries.
127227        https://bugs.webkit.org/show_bug.cgi?id=104827
127228
127229        Reviewed by Laszlo Gombos.
127230
127231        The eo EFL package is introduced and evas and ecore use it since 1.8.
127232        While introducing Eo, EFL changed several structures of Evas and Ecore
127233        from own specific class to Eo.
127234
127235        So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
127236        Ecore_Timer to build with latest EFL libraries.
127237
127238        * PlatformEfl.cmake: Includes eo EFL library.
127239        * platform/Widget.h: Modified declaration of Evas and Evas_Object.
127240        In addition, removed unnecessary declaration.
127241        * platform/efl/EflScreenUtilities.h: Modified declaration of Evas.
127242        * platform/efl/RenderThemeEfl.h: Removed unnecessary declaration.
127243        * platform/graphics/Icon.h: Ditto.
127244        * platform/graphics/Image.h: Modified declaration of Evas and Evas_Object.
127245
1272462012-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>
127247
127248        Unreviewed, rolling out r138270.
127249        http://trac.webkit.org/changeset/138270
127250        https://bugs.webkit.org/show_bug.cgi?id=105589
127251
127252        Many media tests are failing/crashing intermittently, often
127253        pointing at WebCore::HTMLTrackElement::didCompleteLoad as
127254        culprit (Requested by dino_ on #webkit).
127255
127256        * html/HTMLMediaElement.cpp:
127257        (WebCore::HTMLMediaElement::textTrackModeChanged):
127258        * html/HTMLTrackElement.cpp:
127259        (WebCore::HTMLTrackElement::HTMLTrackElement):
127260        (WebCore::HTMLTrackElement::insertedInto):
127261        (WebCore::HTMLTrackElement::parseAttribute):
127262        (WebCore::HTMLTrackElement::scheduleLoad):
127263        (WebCore::HTMLTrackElement::textTrackModeChanged):
127264        * html/HTMLTrackElement.h:
127265        * html/track/TextTrack.cpp:
127266        * html/track/TextTrack.h:
127267
1272682012-12-20  Pratik Solanki  <psolanki@apple.com>
127269
127270        Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
127271        https://bugs.webkit.org/show_bug.cgi?id=105578
127272
127273        Reviewed by Alexey Proskuryakov.
127274
127275        * loader/ResourceBuffer.cpp: Remove duplicate append() call that was under the wrong ifdef.
127276        * loader/ResourceBuffer.h:
127277
1272782012-12-20  Elliott Sprehn  <esprehn@chromium.org>
127279
127280        RenderBlock hit testing should ignore PseudoElements
127281        https://bugs.webkit.org/show_bug.cgi?id=105545
127282
127283        Reviewed by Eric Seidel.
127284
127285        Use nonPseudoNode() in hit testing code in RenderBlock and RenderBox so
127286        that when clicking on the box generated by a pseudo element we never
127287        generate a Position for the PseudoElement, but instead for the
127288        generating node.
127289
127290        Test: fast/css-generated-content/block-and-box-hit-testing.html
127291
127292        * rendering/RenderBlock.cpp:
127293        (WebCore::RenderBlock::positionForBox):
127294        (WebCore::isEditingBoundary):
127295        (WebCore::positionForPointRespectingEditingBoundaries):
127296        * rendering/RenderBox.cpp:
127297        (WebCore::RenderBox::positionForPoint):
127298
1272992012-12-20  Stephen Chenney  <schenney@chromium.org>
127300
127301        SVG: <altglpyh> for a surrogate pair character in a ligature fails
127302        https://bugs.webkit.org/show_bug.cgi?id=102969
127303
127304        Reviewed by Dirk Schulze.
127305
127306        There are two issues with SVG <altglyph> tags applied to surrogate
127307        fonts, particularly when mixed with non-standard forms (arabic,
127308        vertical, etc.).
127309
127310        First, there is an assertion that is invalid when an alt glyph is
127311        substituted for the surrogate, because the text chunk that is consumed
127312        by an alt glyph is the entire run, whereas we assert that a
127313        surrogate's chunk is length 2 regardless. That assertion has been
127314        removed.
127315
127316        Second, when an arabic character or some other characters requiring a
127317        special form appears before the surrogate pair character inside the alt
127318        glyph tag, we reject the alt glyph because it is not compatible with the form.
127319        However, when we process the next character - the surrogate pair - we
127320        do accept the alt glyph. This breaks all the indexes because we have
127321        already consumed part of the run that is now considered the alt glyph.
127322        Chaos ensues. This patch forces us to always accept alt glyph
127323        characters (assuming we have some glyph to draw). This better matches
127324        the intent of the spec - if someone specifies an alt glyph they are
127325        explicitly stating which glyph they want used. We should not argue
127326        with the content author.
127327
127328        Tests: svg/text/alt-glyph-for-surrogate-pair-expected.svg
127329               svg/text/alt-glyph-for-surrogate-pair.svg
127330
127331        * rendering/svg/SVGTextLayoutEngine.cpp:
127332        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Fix some poor code.
127333        * rendering/svg/SVGTextMetricsBuilder.cpp:
127334        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Remove an assert that is not always valid.
127335        * svg/SVGFontData.cpp:
127336        (WebCore::SVGFontData::applySVGGlyphSelection): Always return an altGlyph when found. Do not check it compatibility.
127337
1273382012-12-20  Adam Klein  <adamk@chromium.org>
127339
127340        Properly process <template> end tags when in TemplateContentsMode
127341        https://bugs.webkit.org/show_bug.cgi?id=105556
127342
127343        Reviewed by Eric Seidel.
127344
127345        * html/parser/HTMLTreeBuilder.cpp:
127346        (WebCore::HTMLTreeBuilder::processEndTag): Take care of the FIXME and just call
127347        processTemplateEndTag() instead of incorrectly special-casing the end tag behavior in some cases.
127348
1273492012-12-20  Kondapally Kalyan  <kalyan.kondapally@intel.com>
127350
127351        [EFL][WebGL][Wk2] Replace HAVE(GLX) checks with USE(GLX)
127352        https://bugs.webkit.org/show_bug.cgi?id=105431
127353
127354        Reviewed by Kenneth Rohde Christiansen.
127355
127356        This patch changes the check HAVE(GLX) to USE(GLX).
127357        This would enable us to choose our preferred GL backend during build time.
127358        This patch also adds an additional api to query the shared buffer handle.
127359        Buffer handle is not same as gl surface and would depend on how the content is
127360        backed up.
127361
127362        * platform/graphics/opengl/GLDefs.h:
127363        (WebCore):
127364        * platform/graphics/opengl/GLPlatformContext.cpp:
127365        (WebCore::GLPlatformContext::createContext):
127366        (WebCore::GLPlatformContext::createOffScreenContext):
127367        (WebCore::GLPlatformContext::createCurrentContextWrapper):
127368        * platform/graphics/opengl/GLPlatformSurface.cpp:
127369        (WebCore::GLPlatformSurface::createOffscreenSurface):
127370        (WebCore::GLPlatformSurface::createTransportSurface):
127371        (WebCore::GLPlatformSurface::GLPlatformSurface):
127372        (WebCore::GLPlatformSurface::handle):
127373        (WebCore):
127374        (WebCore::GLPlatformSurface::drawable):
127375        * platform/graphics/opengl/GLPlatformSurface.h:
127376        (GLPlatformSurface):
127377        * platform/graphics/surfaces/glx/GLXContext.cpp:
127378        * platform/graphics/surfaces/glx/GLXContext.h:
127379        * platform/graphics/surfaces/glx/GLXSurface.cpp:
127380        (WebCore::GLXTransportSurface::GLXTransportSurface):
127381        (WebCore::GLXTransportSurface::destroy):
127382        (WebCore::GLXPBuffer::initialize):
127383        (WebCore::GLXPBuffer::freeResources):
127384        * platform/graphics/surfaces/glx/GLXSurface.h:
127385        * platform/graphics/surfaces/glx/GLXWindowResources.h:
127386        * platform/graphics/surfaces/glx/X11WindowResources.cpp:
127387        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
127388        (WebCore::X11OffScreenWindow::setGeometry):
127389        (WebCore::X11OffScreenWindow::createOffscreenWindow):
127390        (WebCore::X11OffScreenWindow::destroyWindow):
127391        * platform/graphics/surfaces/glx/X11WindowResources.h:
127392        (WebCore):
127393        (DummySharedResources):
127394        (WebCore::DummySharedResources::create):
127395        (WebCore::DummySharedResources::nativeDisplay):
127396        (WebCore::DummySharedResources::pBufferContextConfig):
127397        (WebCore::DummySharedResources::surfaceContextConfig):
127398        (WebCore::DummySharedResources::DummySharedResources):
127399        (WebCore::DummySharedResources::~DummySharedResources):
127400
1274012012-12-20  Emil A Eklund  <eae@chromium.org>
127402
127403        [flexbox] Fix handling of very large flex grow/shrink values
127404        https://bugs.webkit.org/show_bug.cgi?id=105579
127405
127406        Reviewed by Tony Chang.
127407
127408        Add isfinite to childSize calculation in RenderFlexibleBox::
127409        resolveFlexibleLengths to avoid overflow.
127410
127411        Covered by css3/flexbox/flex-algorithm.html.
127412
127413        * rendering/RenderFlexibleBox.cpp:
127414        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
127415        Check if value is finite before adding to childSize.
127416
1274172012-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>
127418
127419        Unreviewed, rolling out r138265.
127420        http://trac.webkit.org/changeset/138265
127421        https://bugs.webkit.org/show_bug.cgi?id=105586
127422
127423        Accidentally committed extra code that is not reviewed and
127424        shouldn't go with this commit. (Requested by ostap on
127425        #webkit).
127426
127427        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
127428        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
127429        (WebCore::GraphicsSurfacePrivate::createPixmap):
127430        (GraphicsSurfacePrivate):
127431        (WebCore::GraphicsSurface::platformSwapBuffers):
127432        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
127433        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
127434
1274352012-12-20  Ryosuke Niwa  <rniwa@webkit.org>
127436
127437        REGRESSION(r133820?): SimplifyMarkupTest API test asserts
127438        https://bugs.webkit.org/show_bug.cgi?id=105370
127439
127440        Reviewed by Simon Fraser.
127441
127442        The bug was caused by SimplifyMarkupCommand::doApply calling removeNodePreservingChildren on nodes
127443        that have already been removed. We normally check this condition in pruneSubsequentAncestorsToRemove
127444        but we weren't checking it when there were no ancestor to remove because we early exited in that case.
127445
127446        Fixed the bug by doing the early exit for when the node's parent had already been removed first.
127447
127448        Test: TestWebKitAPI/Tests/mac/SimplifyMarkup.mm
127449
127450        * editing/SimplifyMarkupCommand.cpp:
127451        (WebCore::SimplifyMarkupCommand::doApply):
127452        (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Also removed an unused variable
127453        nodeAfterHighestAncestorToRemove.
127454
1274552012-12-20  Antti Koivisto  <antti@apple.com>
127456
127457        Font description not synchronized correctly on orientation affecting property changes
127458        https://bugs.webkit.org/show_bug.cgi?id=105533
127459
127460        Reviewed by Enrica Casucci.
127461
127462        In StyleResolver checkForOrientationChange() function checks if the new computed orientation differs from the parent
127463        orientation and updates the style's font description only if it does. This is not correct as equal values do not guarantee
127464        the new font description is actually up to date. We can leave the function with the computed orientation and the font
127465        description still out of sync.
127466        
127467        Fix by bailing out fast only if the font description is already in sync.
127468        
127469        No layout test yet, verified with a test app.
127470
127471        * css/StyleResolver.cpp:
127472        (WebCore::checkForOrientationChange):
127473        (WebCore::StyleResolver::updateFont):
127474
1274752012-12-20  Ryan Sleevi  <rsleevi@chromium.org>
127476
127477        window.crypto.getRandomValues should return the input ArrayBufferView
127478        https://bugs.webkit.org/show_bug.cgi?id=104845
127479
127480        The W3C Web Crypto API FPWD, as well as the WHATWG February 2012 draft,
127481        define crypto.getRandomValues() as returning the input ArrayBufferView,
127482        to allow function call chaining. Update the implementation to match
127483        the current spec, rather than the old spec of void/undefined.
127484
127485        Reviewed by Kentaro Hara.
127486
127487        Test: security/crypto-random-values-types.html
127488
127489        * GNUmakefile.list.am:
127490        * Target.pri:
127491        * UseJSC.cmake:
127492        * WebCore.gypi:
127493        * WebCore.xcodeproj/project.pbxproj:
127494        * bindings/js/JSBindingsAllInOne.cpp:
127495        * bindings/js/JSCryptoCustom.cpp: Added.
127496        (WebCore):
127497        (WebCore::JSCrypto::getRandomValues):
127498        Added custom getRandomValues implementation so that the input wrapped
127499        ArrayBufferView can be returned directly to the caller. This is to
127500        preserve the underlying type and indexing accessor for the TypedArray
127501        subclass.
127502        * bindings/v8/custom/V8CryptoCustom.cpp: Added.
127503        (WebCore):
127504        (WebCore::V8Crypto::getRandomValuesCallback):
127505        Added custom getRandomValues implementation so that the input wrapped
127506        ArrayBufferView can be returned directly to the caller. This is to
127507        preserve the underlying type and indexing accessor for the TypedArray
127508        subclass.
127509        * page/Crypto.idl:
127510
1275112012-12-20  Erik Arvidsson  <arv@chromium.org>
127512
127513        CodeGen: Make [Reflect] use getIdAttribute and getNameAttribute
127514        https://bugs.webkit.org/show_bug.cgi?id=105549
127515
127516        Reviewed by Andreas Kling.
127517
127518        Let the codegen use getIdAttribute and getNameAttribute when we know the attribute
127519        is HTMLNames::idAttr or HTMLNames::nameAttr respectively. The more specialized functions
127520        do not search for the attribute if it knows that the element does not have that attribute
127521        speeding up the case where id or name are not present.
127522
127523        This improves Dromaeo/dom-attr by 5% and Bindings/undefined-id-getter by 2% 
127524
127525        No new tests. No change in behavior
127526
127527        * bindings/scripts/CodeGenerator.pm:
127528
1275292012-12-20  Erik Arvidsson  <arv@chromium.org>
127530
127531        fastAttributeLookupAllowed: classAttr is only animatable by SVG styled elements
127532        https://bugs.webkit.org/show_bug.cgi?id=105565
127533
127534        Reviewed by Eric Seidel.
127535
127536        When it comes to determining if we can use fastGetAttribute we should not penalize
127537        all classAttr access just because some SVG styled elements does funky things with
127538        className.
127539
127540        This makes classAttr considered animatable only for styled SVG elements.
127541
127542        No new tests. No change in behavior.
127543
127544        * bindings/scripts/CodeGenerator.pm:
127545        * dom/Element.cpp:
127546        * svg/SVGElement.cpp:
127547        * svg/SVGElement.h:
127548
1275492012-12-20  Huang Dongsung  <luxtella@company100.net>
127550
127551        [TexMap] Remove ParentChange in TextureMapperLayer.
127552        https://bugs.webkit.org/show_bug.cgi?id=105494
127553
127554        Reviewed by Noam Rosenthal.
127555
127556        ParentChange is useless, because ChildrenChange is enough. In addition,
127557        GraphicsLayer uses setParent() method internally. This patch copies
127558        GraphicsLayer::setChildren() into TextureMapperLayer::setChildren().
127559
127560        No new tests. Covered by existing tests.
127561
127562        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
127563        (WebCore):
127564        (WebCore::GraphicsLayerTextureMapper::setChildren):
127565          Match the similar style of replaceChild().
127566        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
127567        (GraphicsLayerTextureMapper):
127568        * platform/graphics/texmap/TextureMapperLayer.cpp:
127569        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
127570        (WebCore::TextureMapperLayer::setChildren):
127571          Copied from GraphicsLayer::setChildren().
127572        (WebCore):
127573        (WebCore::TextureMapperLayer::addChild):
127574          Copied from GraphicsLayer::addChild().
127575        (WebCore::TextureMapperLayer::removeFromParent):
127576          Copied from GraphicsLayer::removeFromParent().
127577        (WebCore::TextureMapperLayer::removeAllChildren):
127578          Copied from GraphicsLayer::removeAllChildren().
127579        * platform/graphics/texmap/TextureMapperLayer.h:
127580        (TextureMapperLayer):
127581
1275822012-12-20  Alec Flett  <alecflett@chromium.org>
127583
127584        IndexedDB: Cursor and IndexWriter cleanup for refactor
127585        https://bugs.webkit.org/show_bug.cgi?id=105449
127586
127587        Reviewed by Tony Chang.
127588
127589        This is a cleanup of some code to make the refactor that is coming
127590        in https://bugs.webkit.org/show_bug.cgi?id=102741 cleaner. Some
127591        CursorType assertions have been removed because the code will be
127592        used in more generic circumstances in a future patch.
127593
127594        The previously-private IndexWriter has been pulled into
127595        IDBObjectStoreBackendImpl and made to just use IDB*Metadata
127596        so it can be reused later.
127597
127598        No new tests as this does not change the logic of executing code.
127599
127600        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
127601        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
127602        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
127603        * Modules/indexeddb/IDBCursorBackendImpl.h:
127604        (WebCore::IDBCursorBackendImpl::create):
127605        (WebCore::IDBCursorBackendImpl::value):
127606        (IDBCursorBackendImpl):
127607        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
127608        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
127609        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
127610        (IDBIndexBackendImpl::OpenIndexCursorOperation):
127611        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
127612        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
127613        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::verifyIndexKeys):
127614        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::writeIndexKeys):
127615        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::addingKeyAllowed):
127616        (WebCore::IDBObjectStoreBackendImpl::makeIndexWriters):
127617        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
127618        (IndexWriter):
127619        (WebCore::IDBObjectStoreBackendImpl::IndexWriter::IndexWriter):
127620        (IDBObjectStoreBackendImpl):
127621        * Modules/indexeddb/IDBRequest.cpp:
127622        (WebCore::IDBRequest::IDBRequest):
127623        (WebCore::IDBRequest::setCursorDetails):
127624        (WebCore::IDBRequest::setResultCursor):
127625        (WebCore::IDBRequest::onSuccess):
127626        * Modules/indexeddb/IDBRequest.h:
127627        (IDBRequest):
127628
1276292012-12-20  Alexey Proskuryakov  <ap@apple.com>
127630
127631        REGRESSION (r138191): Tests fail in ResourceRequest::setStorageSession
127632        https://bugs.webkit.org/show_bug.cgi?id=105563
127633
127634        Reviewed by Sam Weinig.
127635
127636        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::willSendRequest):
127637        * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::willSendRequest):
127638        Don't try to appky a session if client canceled the request by setting it ot a null one.
127639
127640        * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::setStorageSession):
127641        * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::setStorageSession):
127642        Update platform request, so that the session does not get lost once it's updated later.
127643
1276442012-12-20  Nate Chapin  <japhet@chromium.org>
127645
127646        Rename shouldBufferData to dataBufferingPolicy
127647        https://bugs.webkit.org/show_bug.cgi?id=105450
127648
127649        Reviewed by Alexey Proskuryakov.
127650
127651        No new tests, simple rename.
127652
127653        * html/MediaDocument.cpp:
127654        (WebCore::MediaDocumentParser::createDocumentStructure):
127655        * html/PluginDocument.cpp:
127656        (WebCore::PluginDocumentParser::appendBytes):
127657        * inspector/InspectorResourceAgent.cpp:
127658        (WebCore::InspectorResourceAgent::didReceiveData):
127659        * loader/DocumentThreadableLoader.cpp:
127660        (WebCore::DocumentThreadableLoader::loadRequest):
127661        * loader/MainResourceLoader.cpp:
127662        (WebCore::MainResourceLoader::setDataBufferingPolicy):
127663        * loader/MainResourceLoader.h:
127664        (MainResourceLoader):
127665        * loader/ResourceLoader.cpp:
127666        (WebCore::ResourceLoader::setDataBufferingPolicy):
127667        (WebCore::ResourceLoader::addData):
127668        (WebCore::ResourceLoader::willStopBufferingData):
127669        * loader/ResourceLoader.h:
127670        (ResourceLoader):
127671        * loader/ResourceLoaderOptions.h:
127672        (WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
127673        (ResourceLoaderOptions):
127674        * loader/cache/CachedRawResource.cpp:
127675        (WebCore::CachedRawResource::data):
127676        (WebCore::CachedRawResource::setDataBufferingPolicy):
127677        (WebCore::CachedRawResource::canReuse):
127678        * loader/cache/CachedRawResource.h:
127679        (CachedRawResource):
127680        * loader/cache/CachedResource.h:
127681        (WebCore::CachedResource::dataBufferingPolicy):
127682        * loader/mac/ResourceLoaderMac.mm:
127683        (WebCore::ResourceLoader::didReceiveDataArray):
127684        * page/EventSource.cpp:
127685        (WebCore::EventSource::connect):
127686
1276872012-12-19  Dean Jackson  <dino@apple.com>
127688
127689        Track menu in wrong location when fullscreen
127690        https://bugs.webkit.org/show_bug.cgi?id=105234
127691
127692        Reviewed by Eric Carlson.
127693
127694        Add a rule to position the captions menu in the correct location
127695        when the <video> is fullscreen. Also a drive-by removal of unnecessary
127696        CSS selectors, and changing an encoded PNG into an SVG.
127697
127698        * css/fullscreenQuickTime.css:
127699        (video:-webkit-full-screen::-webkit-media-controls-closed-captions-container): Add a rule to position
127700        the menu when in fullscreen.
127701        * css/mediaControlsQuickTime.css: Remove the unnecessary <audio> selectors.
127702        (video::-webkit-media-controls-toggle-closed-captions-button):
127703        (video::-webkit-media-controls-closed-captions-container):
127704        (video::-webkit-media-controls-closed-captions-track-list):
127705
1277062012-12-19  Dean Jackson  <dino@apple.com>
127707
127708        Follow WebVTT line breaking rules
127709        https://bugs.webkit.org/show_bug.cgi?id=105496
127710
127711        Reviewed by Eric Carlson.
127712
127713        WebVTT requires that captions never overflow their containers. In other
127714        words, that it is ok to break within words rather than hide content.
127715        Implement this by using CSS's word-break property.
127716
127717        Test: media/track/track-word-breaking.html
127718
127719        * css/mediaControls.css:
127720        (video::-webkit-media-text-track-container): Add word-break.
127721        * css/mediaControlsQuickTime.css: Drive-by cleanup to make sure selection doesn't happen.
127722        (audio::-webkit-media-controls-closed-captions-container, video::-webkit-media-controls-closed-captions-container):
127723        (audio::-webkit-media-controls-closed-captions-track-list, video::-webkit-media-controls-closed-captions-track-list):
127724
1277252012-12-20  James Simonsen  <simonjam@chromium.org>
127726
127727        [Resource Timing] 304 responses should show up in the timing buffer
127728        https://bugs.webkit.org/show_bug.cgi?id=105490
127729
127730        Reviewed by Tony Gentilcore.
127731
127732        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_cached.html
127733
127734        * loader/cache/CachedResourceLoader.cpp:
127735        (WebCore::CachedResourceLoader::loadDone):
127736
1277372012-12-19  Simon Fraser  <simon.fraser@apple.com>
127738
127739        Lots of sticky tests failing in WK2
127740        https://bugs.webkit.org/show_bug.cgi?id=105464
127741
127742        Reviewed by Brady Eidson.
127743
127744        Fixing this bug altered the timing of InternalSettings::Backup()
127745        and restoreTo(), such that 'canStartMedia' on Page would get saved as false,
127746        and then restored as false, which breaks all media tests.
127747        
127748        'canStartMedia' is set to false initially by the WebPage constructor, and is also
127749        set to false when the WKView leaves the window, so treating it like other Settings
127750        that can be saved and restored is unreliable, as seen here. It's easier and simpler
127751        to just always reset it to 'true' between tests.
127752
127753        * testing/InternalSettings.cpp:
127754        (WebCore::InternalSettings::Backup::Backup):
127755        (WebCore::InternalSettings::Backup::restoreTo):
127756        (WebCore::InternalSettings::InternalSettings):
127757        (WebCore::InternalSettings::reset):
127758        * testing/InternalSettings.h:
127759        (Backup):
127760
1277612012-12-20  Erik Arvidsson  <arv@chromium.org>
127762
127763        REGRESSION(r138263): Don't use fastGetAttribute for HTMLNames::classAttr because it breaks on SVGElement
127764        https://bugs.webkit.org/show_bug.cgi?id=105555
127765
127766        Reviewed by Tony Chang.
127767
127768        The code generated generated code that uses fastGetAttribute for the className WebIDL attribute getter.
127769        However, this attribute is animatable in SVG so we cannot use the fast function for it.
127770
127771        No new tests. The assert is no longer hit.
127772
127773        * bindings/scripts/CodeGenerator.pm:
127774
1277752012-12-20  Carlos Garcia Campos  <cgarcia@igalia.com>
127776
127777        [GTK] Add API to set a TLS errors policy to WebKit2 GTK+ API
127778        https://bugs.webkit.org/show_bug.cgi?id=104482
127779
127780        Reviewed by Martin Robinson.
127781
127782        * platform/network/soup/ResourceError.h:
127783        (WebCore::ResourceError::setTLSErrors): Set the TLS error flags.
127784        (WebCore::ResourceError::setCertificate): Set the certificate.
127785        * platform/network/soup/ResourceErrorSoup.cpp:
127786        (WebCore::ResourceError::tlsError): Set the given TLS errors and
127787        certificate to the ResourceError.
127788        (WebCore::ResourceError::platformCopy): Copy also the TLS errors
127789        and the certificate.
127790        (WebCore::ResourceError::platformCompare): Compare also the TLS
127791        errors.
127792
1277932012-12-20  Antoine Quint  <graouts@apple.com>
127794
127795        onload callback for <track> element attached to <video> does not fire
127796        https://bugs.webkit.org/show_bug.cgi?id=103258
127797
127798        Reviewed by Eric Carlson.
127799
127800        We now correctly implement the track processing model per the latest spec at
127801        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#start-the-track-processing-model.
127802        
127803        For a <track> to load, three conditions must be met:
127804        
127805        1. it must have a non-empty src
127806        2. it must have a mode other than "disabled" (the default)
127807        3. it must have a parent media element
127808        
127809        We used to only check if we were able to load upon setting the track's src,
127810        whereas a change of any of those conditions should have done this, which this
127811        patch now correctly implements.
127812        
127813        We also correctly implement the load model asynchronously after step 4, per
127814        the spec, hence the split of the code previously entirely contained in
127815        HTMLTrackElement::scheduleLoad() in another method fired on a timer.
127816
127817        Test: media/track/track-element-load-event.html
127818
127819        * html/HTMLMediaElement.cpp:
127820        (WebCore::HTMLMediaElement::textTrackModeChanged):
127821        * html/HTMLTrackElement.cpp:
127822        (WebCore::HTMLTrackElement::HTMLTrackElement):
127823        (WebCore::HTMLTrackElement::insertedInto):
127824        (WebCore::HTMLTrackElement::parseAttribute):
127825        (WebCore::HTMLTrackElement::scheduleLoad):
127826        (WebCore):
127827        (WebCore::HTMLTrackElement::loadTimerFired):
127828        (WebCore::HTMLTrackElement::textTrackModeChanged):
127829        * html/HTMLTrackElement.h:
127830        * html/track/TextTrack.cpp:
127831        (WebCore::TextTrack::removeAllCues):
127832        (WebCore):
127833        * html/track/TextTrack.h:
127834        (TextTrack):
127835
1278362012-12-20  Joshua Bell  <jsbell@chromium.org>
127837
127838        IndexedDB: Layout test showing delete database getting two blocked events
127839        https://bugs.webkit.org/show_bug.cgi?id=92674
127840
127841        Reviewed by Tony Chang.
127842
127843        Match the steps specified behavior for deleteDatabase() in the spec: versionchange/blocked
127844        events fire if necessary, then waits until a condition is satisfied before continuing with
127845        the steps to delete the database. The bug was caused by retrying the full call again. Events
127846        are also now sent out immediately when a "versionchange" transaction is running, rather
127847        than entering a limbo state - again, the new behavior matches the spec more accurately.
127848
127849        Tests: storage/indexeddb/delete-in-upgradeneeded-close-in-open-success.html
127850               storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html
127851               storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange.html
127852               storage/indexeddb/intversion-gated-on-delete.html
127853
127854        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
127855        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
127856        (WebCore::IDBDatabaseBackendImpl::deleteDatabase): First half of the steps.
127857        (WebCore):
127858        (WebCore::IDBDatabaseBackendImpl::isDeleteDatabaseBlocked): Pull out condition test.
127859        (WebCore::IDBDatabaseBackendImpl::deleteDatabaseFinal): Second half of the of steps.
127860        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
127861        (IDBDatabaseBackendImpl):
127862
1278632012-12-20  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
127864
127865        [EFL] [WebGL] [Wk2] Contents are not rendered properly.
127866        https://bugs.webkit.org/show_bug.cgi?id=104664
127867
127868        Reviewed by Noam Rosenthal.
127869
127870        WebGL pages that render more than one frame are broken. Only 1st
127871        frame comes to the UI side. All webgl repaint tests fail because
127872        of this.
127873        Specification of EXT_texture_from_pixmap extension here
127874        http://www.opengl.org/registry/specs/EXT/texture_from_pixmap.txt
127875        says, that:
127876        "The contents of the texture after the drawable has been bound are defined
127877        as the result of all rendering that has completed before the call to
127878        glXBindTexImageEXT."
127879        It means that in order to get updates for every frame glXBindTexImageEXT has
127880        to be called on every frame update.
127881
127882        Covered by existing fast/canavs/webgl/*repaint tests.
127883
127884        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
127885        (WebCore::GraphicsSurfacePrivate::isReceiver):
127886        (WebCore::GraphicsSurface::platformSwapBuffers):
127887        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
127888        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
127889
1278902012-12-20  Erik Arvidsson  <arv@chromium.org>
127891
127892        CodeGen: Make [Reflect] use fastGetAttribute and fastHasAttribute
127893        https://bugs.webkit.org/show_bug.cgi?id=105540
127894
127895        Reviewed by Andreas Kling.
127896
127897        Currently the codegen generates code that use getAttribute and hasAttribute. We can use
127898        fastGetAttribute and fastHasAttribute when we use a non SVG animated attribute and not
127899        HTML::styleAttr.
127900
127901        This improves Bindings/id-getter by 16% and Dromaeo/dom-attr by 21%.
127902
127903        No new tests. No change in behavior.
127904
127905        * bindings/scripts/CodeGenerator.pm:
127906        * bindings/scripts/CodeGeneratorV8.pm:
127907        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
127908        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
127909        * bindings/scripts/test/JS/JSTestObj.cpp:
127910        * bindings/scripts/test/ObjC/DOMTestObj.mm:
127911        * bindings/scripts/test/V8/V8TestObj.cpp:
127912
1279132012-12-20  Tiancheng Jiang  <tijiang@rim.com>
127914
127915        [BlackBerry]Change fullscreen back button size
127916        https://bugs.webkit.org/show_bug.cgi?id=105541
127917
127918        Reviewed by Rob Buis.
127919
127920        Internally Reviewed by John Griggs.
127921        Resize fullscreen mode back button size to meet browser back button size.
127922
127923        * platform/blackberry/RenderThemeBlackBerry.cpp:
127924        (WebCore):
127925        (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
127926
1279272012-12-20  Dominic Mazzoni  <dmazzoni@google.com>
127928
127929        AX: support clickPoint in DRT for chromium
127930        https://bugs.webkit.org/show_bug.cgi?id=97359
127931
127932        Reviewed by Chris Fleizach.
127933
127934        When computing the accessible bounding box of an
127935        SVG root, be sure to call a method that uses transforms,
127936        otherwise an assertion fails.
127937
127938        Newly unskipped tests: accessibility/svg-bounds.html and
127939        accessibility/svg-remote-element.html
127940
127941        * accessibility/AccessibilityRenderObject.cpp:
127942        (WebCore::AccessibilityRenderObject::boundingBoxRect):
127943
1279442012-12-20  Carlos Garcia Campos  <cgarcia@igalia.com>
127945
127946        [Qt]REGRESSION(r138222): It made fast/forms/number/number-spinbutton-click-in-iframe.html crash
127947        https://bugs.webkit.org/show_bug.cgi?id=105529
127948
127949        Reviewed by Nate Chapin.
127950
127951        Make sure assignIdentifierToInitialRequest() and
127952        dispatchWillSendRequest() are called before all other
127953        notification callbacks for the substitute data.
127954
127955        Fixes a crash in fast/forms/number/number-spinbutton-click-in-iframe.html.
127956
127957        * loader/MainResourceLoader.cpp:
127958        (WebCore::MainResourceLoader::load): Call
127959        handleSubstituteDataLoadSoon() after assigning the substitute data
127960        identifier.
127961
1279622012-12-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
127963
127964        INPUT_MULTIPLE_FIELDS_UI: Add minimum/maximum value to DateTimeEditElement::LayoutParameters
127965        https://bugs.webkit.org/show_bug.cgi?id=105510
127966
127967        Reviewed by Kent Tamura.
127968
127969        Add two DateComponents fields, minimum and maximum, to DateTimeEditElement::LayoutParameters, replacing minimumYear and maximumYear.
127970        They will be used to limit selectable values of month, day, etc.
127971
127972        No new tests. No behavior change.
127973
127974        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Removed fullYear().
127975        * html/BaseMultipleFieldsDateAndTimeInputType.h:
127976        (BaseMultipleFieldsDateAndTimeInputType): Ditto.
127977        * html/DateInputType.cpp:
127978        (WebCore::DateInputType::setupLayoutParameters): Populates minimum/maximum.
127979        * html/DateTimeInputType.cpp:
127980        (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
127981        * html/DateTimeLocalInputType.cpp:
127982        (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
127983        * html/MonthInputType.cpp:
127984        (WebCore::MonthInputType::setupLayoutParameters): Ditto.
127985        * html/WeekInputType.cpp:
127986        (WebCore::WeekInputType::setupLayoutParameters): Ditto.
127987        * html/shadow/DateTimeEditElement.cpp:
127988        (WebCore::DateTimeEditBuilder::visitField): Replace the usage of minimumYear/maximumYear with minimum/maximum DateComponents.
127989        * html/shadow/DateTimeEditElement.h:
127990        (LayoutParameters): Removed minimumYear, maximumYear, and undefinedYear(), and added minimum and maximum fields.
127991        (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
127992
1279932012-12-20  Zan Dobersek  <zandobersek@gmail.com>
127994
127995        [GTK] Remove the --enable-unstable-features configuration option
127996        https://bugs.webkit.org/show_bug.cgi?id=105327
127997
127998        Reviewed by Martin Robinson.
127999
128000        Remove the ENABLE_UNSTABLE_FEATURES guards in various GNUmakefiles now that
128001        the configuration option is removed.
128002
128003        No new tests - no new testable functionality.
128004
128005        * GNUmakefile.am: Remove the ENABLE_UNSTABLE_FEATURES guards in GNUmakefile.am
128006        where they were used to override certain feature define values in case of a release build.
128007        * GNUmakefile.features.am.in: Adjust the default value for the feature defines that were
128008        previously overriden in release builds. This feature define list will eventually represent
128009        feature status in release builds with overriding being done through build-webkit.
128010        * bindings/gobject/GNUmakefile.am: Move the DOM bindings targets that were previously guarded
128011        by the ENABLE_UNSTABLE_FEATURES guards to the common listing of the video-dependent DOM bindings.
128012
1280132012-12-20  Florin Malita  <fmalita@chromium.org>
128014
128015        Incorrect color space conversion for FEImage
128016        https://bugs.webkit.org/show_bug.cgi?id=105437
128017
128018        Reviewed by Dirk Schulze.
128019
128020        When no color-interpolation-filters property is specified, SVG filters are assumed to
128021        operate in LinearRGB color space (http://www.w3.org/TR/SVG/filters.html#FilterPrimitivesOverviewIntro).
128022        Currently, FilterEffect relies on filters generating results in the same color space they
128023        are requested to use (LinearRGB by default) - but this is not true for FEImage as its
128024        result is always a DeviceRGB image buffer. Hence, in FEImage's case, the filter chain
128025        performs an invalid LinearRGB->DeviceRGB conversion at the end (for an image buffer already
128026        encoded in DeviceRGB).
128027
128028        This patch introduces a mechanism for filters to override the requested result color space
128029        and updates FEImage to always mark its result as DeviceRGB. If a dependent filter requires
128030        input in a different color space, FilterEffect::apply() already handles the conversion.
128031
128032        No new tests - existing tests cover this extensively, after rebaseline.
128033
128034        * platform/graphics/filters/FilterEffect.cpp:
128035        (WebCore::FilterEffect::transformResultColorSpace):
128036        Minor cleanup: asImageBuffer() already handles this logic.
128037
128038        * platform/graphics/filters/FilterEffect.h:
128039        (WebCore::FilterEffect::setResultColorSpace):
128040        (FilterEffect):
128041        New method for overriding the result color space.
128042
128043        * rendering/FilterEffectRenderer.cpp:
128044        (WebCore::FilterEffectRenderer::apply):
128045        * rendering/svg/RenderSVGResourceFilter.cpp:
128046        (WebCore::RenderSVGResourceFilter::postApplyResource):
128047        Do not perform an explicit conversion in these places, as the result color space may be
128048        different from the requested color space. Let FilterEffect::transformResultColorSpace()
128049        figure it out.
128050
128051        * svg/graphics/filters/SVGFEImage.cpp:
128052        (WebCore::FEImage::platformApplySoftware):
128053        FEImage results are always ColorSpaceDeviceRGB.
128054
1280552012-12-20  Dominik Röttsches  <dominik.rottsches@intel.com>
128056
128057        [EFL] MiniBrowser does not play Infinite Gangnam Style
128058        https://bugs.webkit.org/show_bug.cgi?id=103531
128059
128060        Reviewed by Kenneth Rohde Christiansen.
128061
128062        Specifying additional define to avoid deprecation warning.
128063
128064        No new tests, compile time change which doesn't affect behavior.
128065
128066        * PlatformEfl.cmake:
128067
1280682012-12-19  Simon Hausmann  <simon.hausmann@digia.com>, Jedrzej Nowacki <jedrzej.nowacki@digia.com>
128069
128070        [Qt] JS bridge does not transmit QVariants anymore in Qt5
128071        https://bugs.webkit.org/show_bug.cgi?id=104540
128072
128073        Reviewed by Kenneth Rohde Christiansen.
128074
128075        A data corruption exists in the QObject bridge when calling slots that
128076        take a QVariant.
128077
128078        The calling convention for slots is that the void* parameter array must
128079        contain pointers to the actually required destination argument type. If
128080        a function takes an int for example, the corresponding entry in the
128081        void* parameter array must be a pointer to an int that the moc
128082        generated code then can "safely" cast to an int* and dereference.
128083        Similarly if the function takes a QVariant it must be a pointer to a
128084        QVariant.
128085
128086        We implement this calling convention by constructing QVariants of the
128087        requested parameter types and passing the value of data() into the
128088        void* parameter array. This works fine for all types except if the
128089        requested type is a QVariant. In that case data() will _not_ return a
128090        pointer that can later be safely casted to a QVariant pointer and
128091        dereferenced. Instead we must use the address of our variant to ensure
128092        a working cast.
128093
128094        Our auto tests cover this case, but they worked by accident because the
128095        provided pointer when casted to a QVariant happens to have the correct
128096        type id that doesn't produce the warning seen in the test case of the
128097        provided example and the unit test just copies the QVariant and thus
128098        pointer.
128099
128100        * bridge/qt/qt_runtime.cpp:
128101        (JSC::Bindings::QtMethodMatchType::typeId): Replace string based meta
128102        type id determination of QVariant with a quicker table lookup.
128103        (JSC::Bindings::findMethodIndex): Remember the chosen (requested) types
128104        and pass the pointer to the QVariant instead of its data() pointer if
128105        requested.
128106        (JSC::Bindings::QtRuntimeMethod::call): Fixed determination of whether
128107        we need to convert a return value or not solely based on the return
128108        type _specified_ in the meta method instead of the variant value
128109        returned. The latter is not sufficient because a slot can return an
128110        invalid variant, which is not the same as returning void. This was
128111        triggered by an unit test that accidentally passed due to this memory
128112        corruption in the first place.
128113
1281142012-12-20  Yury Semikhatsky  <yurys@chromium.org>
128115
128116        Web Inspector: extract native heap graph representation into a separate file
128117        https://bugs.webkit.org/show_bug.cgi?id=105524
128118
128119        Reviewed by Alexander Pavlov.
128120
128121        Moved native heap graph parser into NativeHeapGraph.js, renamed NativeHeapGraphNode to NativeHeapGraph.Node
128122        and NativeHeapGraphEdge to NativeHeapGraph.Edge
128123        Removed unused pie chart view.
128124
128125        * WebCore.gypi:
128126        * WebCore.vcproj/WebCore.vcproj:
128127        * inspector/InspectorMemoryAgent.cpp:
128128        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution): fixed optional parameter handling
128129        * WebCore.gypi:
128130        * inspector/InspectorMemoryAgent.cpp:
128131        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
128132        * inspector/compile-front-end.py:
128133        * inspector/front-end/NativeHeapGraph.js: Added.
128134        (WebInspector.NativeHeapGraph):
128135        (WebInspector.NativeHeapGraph.prototype.rootNodes):
128136        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
128137        (WebInspector.NativeHeapGraph.prototype._addDummyNode):
128138        (WebInspector.NativeHeapGraph.Edge):
128139        (WebInspector.NativeHeapGraph.Edge.prototype.type):
128140        (WebInspector.NativeHeapGraph.Edge.prototype.name):
128141        (WebInspector.NativeHeapGraph.Edge.prototype.target):
128142        (WebInspector.NativeHeapGraph.Edge.prototype._getStringField):
128143        (WebInspector.NativeHeapGraph.Edge.prototype.toString):
128144        (WebInspector.NativeHeapGraph.Node):
128145        (WebInspector.NativeHeapGraph.Node.prototype.id):
128146        (WebInspector.NativeHeapGraph.Node.prototype.type):
128147        (WebInspector.NativeHeapGraph.Node.prototype.size):
128148        (WebInspector.NativeHeapGraph.Node.prototype.className):
128149        (WebInspector.NativeHeapGraph.Node.prototype.name):
128150        (WebInspector.NativeHeapGraph.Node.prototype.hasReferencedNodes):
128151        (WebInspector.NativeHeapGraph.Node.prototype.referencedNodes):
128152        (WebInspector.NativeHeapGraph.Node.prototype.outgoingEdges):
128153        (WebInspector.NativeHeapGraph.Node.prototype.targetOfEdge):
128154        (WebInspector.NativeHeapGraph.Node.prototype.targetsOfAllEdges):
128155        (WebInspector.NativeHeapGraph.Node.prototype._firstEdgePoistion):
128156        (WebInspector.NativeHeapGraph.Node.prototype._afterLastEdgePosition):
128157        (WebInspector.NativeHeapGraph.Node.prototype._getStringField):
128158        (WebInspector.NativeHeapGraph.Node.prototype.toString):
128159        * inspector/front-end/NativeMemorySnapshotView.js:
128160        * inspector/front-end/ProfilesPanel.js:
128161        * inspector/front-end/WebKit.qrc:
128162
1281632012-12-20  Eugene Klyuchnikov  <eustas.bug@gmail.com>
128164
128165        Web Inspector: Timeline: enhance short-records filter.
128166        https://bugs.webkit.org/show_bug.cgi?id=101749
128167
128168        Reviewed by Pavel Feldman.
128169
128170        Currently filter could be "on" (accepting records longer than 15ms) or
128171        "off" (accepting all records). Adding some options between 0ms and 15ms
128172        will make this feature much more useful.
128173
128174        Additional changes:
128175        - removed hardcoded size constant WebInspector.StatusBarComboBox.width
128176
128177        * English.lproj/localizedStrings.js: Added new / removed orphan strings.
128178        * inspector/front-end/ProfilesPanel.js: Changed offset calculation.
128179        * inspector/front-end/TimelineOverviewPane.js: Enhanced filter.
128180        * inspector/front-end/TimelinePanel.js: Replaced button with combobox.
128181        (WebInspector.TimelineIsLongFilter): Enhanced filter.
128182        * inspector/front-end/TimelinePresentationModel.js:
128183        Removed Record "isLong" method.
128184        * inspector/front-end/timelinePanel.css: Removed orphan styles.
128185
1281862012-12-20  Eugene Klyuchnikov  <eustas@chromium.org>
128187
128188        Web Inspector: [CPU Profile] Idle time is always 0
128189        https://bugs.webkit.org/show_bug.cgi?id=105509
128190
128191        Reviewed by Pavel Feldman.
128192
128193        Fix: pass correct profile object to method.
128194
128195        * inspector/front-end/CPUProfileView.js:
128196        (WebInspector.CPUProfileView.profileCallback):
128197        (WebInspector.CPUProfileView.prototype._injectIdleTimeNode):
128198
1281992012-12-20  Andrey Lushnikov  <lushnikov@chromium.com>
128200
128201        Web Inspector: fix |_repaintAll| behaviour of a DefaultTextEditor
128202        https://bugs.webkit.org/show_bug.cgi?id=105429
128203
128204        Reviewed by Pavel Feldman.
128205
128206        Override |_repainAll| method in TextEditorMainPanel and manually
128207        repaint visible chunks.
128208
128209        * inspector/front-end/DefaultTextEditor.js:
128210        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine): Call |_repaintAll| method because |expand()| does not do any repaints anymore.
128211        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll): Return |false| in case of fast return, and |true| otherwise.
128212        (WebInspector.TextEditorMainPanel.prototype._repaintAll): Added.
128213        (WebInspector.TextEditorMainChunk.prototype.expand): Remove painting operations.
128214
1282152012-12-19  Pavel Feldman  <pfeldman@chromium.org>
128216
128217        Web Inspector: introduce Page.captureScreenshot
128218        https://bugs.webkit.org/show_bug.cgi?id=105315
128219
128220        Reviewed by Yury Semikhatsky.
128221
128222        It will be primarily used by the automation clients, but maybe we find a good place
128223        for it in the front-end as well.
128224
128225        * inspector/Inspector.json:
128226        * inspector/InspectorClient.h:
128227        (WebCore::InspectorClient::captureScreenshot):
128228        (InspectorClient):
128229        * inspector/InspectorPageAgent.cpp:
128230        (WebCore::InspectorPageAgent::captureScreenshot):
128231        (WebCore):
128232        * inspector/InspectorPageAgent.h:
128233
1282342012-12-19  Carlos Garcia Campos  <cgarcia@igalia.com>
128235
128236        Make order iterator member stack allocated in RenderFlexibleBox
128237        https://bugs.webkit.org/show_bug.cgi?id=104366
128238
128239        Reviewed by Tony Chang.
128240
128241        It avoids a heap allocation during layout.
128242
128243        * rendering/RenderFlexibleBox.cpp:
128244        (WebCore::RenderFlexibleBox::OrderIterator::OrderIterator):
128245        (WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
128246        (WebCore::RenderFlexibleBox::OrderIterator::first):
128247        (WebCore::RenderFlexibleBox::OrderIterator::next):
128248        (WebCore::RenderFlexibleBox::OrderIterator::reset):
128249        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
128250        (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
128251        (WebCore::RenderFlexibleBox::layoutBlock):
128252        (WebCore::RenderFlexibleBox::appendChildFrameRects):
128253        (WebCore::RenderFlexibleBox::repaintChildrenDuringLayoutIfMoved):
128254        (WebCore::RenderFlexibleBox::paintChildren):
128255        (WebCore::RenderFlexibleBox::layoutFlexItems):
128256        (WebCore::RenderFlexibleBox::computeNextFlexLine):
128257        (WebCore::RenderFlexibleBox::alignFlexLines):
128258        (WebCore::RenderFlexibleBox::alignChildren):
128259        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
128260        (WebCore::RenderFlexibleBox::flipForWrapReverse):
128261        * rendering/RenderFlexibleBox.h:
128262        (OrderIterator):
128263        (WebCore::RenderFlexibleBox::OrderIterator::currentChild):
128264        (RenderFlexibleBox):
128265
1282662012-12-20  Huang Dongsung  <luxtella@company100.net>
128267
128268        Remove GraphicsLayer::setGraphicsLayerFactory().
128269        https://bugs.webkit.org/show_bug.cgi?id=105503
128270
128271        Reviewed by Kenneth Rohde Christiansen.
128272
128273        We don't need GraphicsLayer::setGraphicsLayerFactory() anymore. After r130302,
128274        we have used a graphics layer factory explicitly.
128275
128276        No new tests. Refactoring only.
128277
128278        * platform/graphics/GraphicsLayer.cpp:
128279        * platform/graphics/GraphicsLayer.h:
128280        (GraphicsLayer):
128281        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
128282        (WebCore::GraphicsLayer::create):
128283
1282842012-12-20  Dominik Röttsches  <dominik.rottsches@intel.com>
128285
128286        [WK2] WebAudio WKTR support
128287        https://bugs.webkit.org/show_bug.cgi?id=95084
128288
128289        Reviewed by Kenneth Rohde Christiansen.
128290
128291        Mac build fixes for adding WebAudio WKTR support.
128292
128293        No new tests, enables audio testing using WebKitTestRunner.
128294
128295        * WebCore.exp.in: toUint8Array symbol exported.
128296        * WebCore.xcodeproj/project.pbxproj: JSUint8Array.h and JSArrayBufferView.h headers made available as private headers.
128297
1282982012-12-20  Patrick Gansterer  <paroga@webkit.org>
128299
128300        Build fix for WinCE after r137534.
128301
128302        * inspector/InspectorInstrumentation.h:
128303        (WebCore):
128304
1283052012-12-19  Yury Semikhatsky  <yurys@chromium.org>
128306
128307        Web Inspector: deny access from injected script to nodes from document with another origin
128308        https://bugs.webkit.org/show_bug.cgi?id=105423
128309
128310        Reviewed by Pavel Feldman.
128311
128312        Check that calling context can access the document inspected node belong to
128313        before returning JS wrapper for the node.
128314
128315        Test: http/tests/inspector-protocol/access-inspected-object.html
128316
128317        * bindings/js/JSInjectedScriptHostCustom.cpp:
128318        (WebCore::JSInjectedScriptHost::inspectedObject):
128319        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
128320        (WebCore::InjectedScriptHost::nodeAsScriptValue):
128321
1283222012-12-19  Nico Weber  <thakis@chromium.org>
128323
128324        Remove slighly confusing "} if" pattern
128325        https://bugs.webkit.org/show_bug.cgi?id=105492
128326
128327        Reviewed by Andreas Kling.
128328
128329        ADVANCE_TO ends in a goto statement, so this doesn't change behavior.
128330
128331        * html/parser/HTMLTokenizer.cpp:
128332        (WebCore::HTMLTokenizer::nextToken):
128333
1283342012-12-19  Mark Pilgrim  <pilgrim@chromium.org>
128335
128336        [Chromium] Remove idbFactory from PlatformSupport
128337        https://bugs.webkit.org/show_bug.cgi?id=105460
128338
128339        Reviewed by Darin Fisher.
128340
128341        Part of a larger refactoring series; see tracking bug 82948.
128342
128343        * WebCore.gyp/WebCore.gyp:
128344        * WebCore.gypi:
128345        * platform/chromium/PlatformSupport.h: Removed.
128346        * storage/chromium: Removed.
128347        * storage/chromium/IDBFactoryBackendInterface.cpp: Removed.
128348
1283492012-12-19  Eric Carlson  <eric.carlson@apple.com>
128350
128351        Crash in TextTrack::trackIndexRelativeToRenderedTracks()
128352        https://bugs.webkit.org/show_bug.cgi?id=105371
128353
128354        Reviewed by Simon Fraser.
128355
128356        Add an RAII object to manage text track update blocking, use it to always process the 
128357        current cues to ensure that cues from a track that is deleted are removed from the 
128358        shadow DOM before the next layout.
128359
128360        No new tests, this fixes a crash in media/video-controls-captions-trackmenu.html.
128361
128362        * html/HTMLMediaElement.cpp:
128363        (WebCore::TrackDisplayUpdateScope::TrackDisplayUpdateScope): New, call beginIgnoringTrackDisplayUpdateRequests.
128364        (WebCore::TrackDisplayUpdateScope::~TrackDisplayUpdateScope): New, call endIgnoringTrackDisplayUpdateRequests.
128365        (WebCore::HTMLMediaElement::beginIgnoringTrackDisplayUpdateRequests):
128366        (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests): Call updateActiveTextTrackCues
128367            when the ignore count reaches zero.
128368        (WebCore::HTMLMediaElement::textTrackAddCues): Use TrackDisplayUpdateScope instead of calling 
128369            beginIgnoringTrackDisplayUpdateRequests and endIgnoringTrackDisplayUpdateRequests directly.
128370        (WebCore::HTMLMediaElement::textTrackRemoveCues): Ditto.
128371        (WebCore::HTMLMediaElement::removeTrack): Ditto.
128372        (WebCore::HTMLMediaElement::removeAllInbandTracks): Ditto.
128373        (WebCore::HTMLMediaElement::didRemoveTrack): Ditto. Call removeTrack.
128374        * html/HTMLMediaElement.h: Declare TrackDisplayUpdateScope as a friend of HTMLMediaElement so it
128375            can call protected methods.
128376
1283772012-12-19  Nate Chapin  <japhet@chromium.org>
128378
128379        REGRESSION(r137607): resource load client callbacks are not called for the main resource when loading HTML string
128380        https://bugs.webkit.org/show_bug.cgi?id=105330
128381
128382        Reviewed by Brady Eidson.
128383
128384        * loader/MainResourceLoader.cpp:
128385        (WebCore::MainResourceLoader::responseReceived):
128386        (WebCore::MainResourceLoader::dataReceived):
128387        (WebCore::MainResourceLoader::didFinishLoading):
128388        (WebCore::MainResourceLoader::load):
128389        (WebCore::MainResourceLoader::identifier):
128390        * loader/MainResourceLoader.h:
128391        (MainResourceLoader):
128392
1283932012-12-19  Cosmin Truta  <ctruta@rim.com>
128394
128395        [BlackBerry] RSS reader mangles UTF-8
128396        https://bugs.webkit.org/show_bug.cgi?id=105440
128397
128398        RIM PR 235099
128399
128400        Reviewed by Yong Li.
128401        Reviewed internally by Liam Quinn.
128402
128403        The HTML string built from RSS parse data is encoded in UTF-8,
128404        and it should not be converted to UTF-8 repeatedly.
128405
128406        * platform/network/blackberry/rss/RSSFilterStream.cpp:
128407        (WebCore::RSSFilterStream::convertContentToHtml):
128408        * platform/network/blackberry/rss/RSSGenerator.cpp:
128409        (WebCore::RSSGenerator::generateHtml):
128410
1284112012-12-19  Jon Lee  <jonlee@apple.com>
128412
128413        Leak in StringImpl::createCFString()
128414        https://bugs.webkit.org/show_bug.cgi?id=105485
128415        <rdar://problem/12801963>
128416
128417        Reviewed by Anders Carlsson.
128418
128419        * platform/text/cf/StringImplCF.cpp:
128420        (WTF::StringImpl::createCFString): Missing adoptCF()'s.
128421
1284222012-12-19  Alexey Proskuryakov  <ap@apple.com>
128423
128424        <rdar://problem/12890242> [WK2 NetworkProcess] Client doesn't receive SSL certificates
128425        https://bugs.webkit.org/show_bug.cgi?id=105467
128426
128427        Reviewed by Brady Eidson.
128428
128429        Implement a way to store certificate chain in ResourceResponse separately from
128430        NSURLResponse. There is no way to re-add it to a deserialized NSURLResponse.
128431
128432        * WebCore.exp.in:
128433        * platform/mac/WebCoreSystemInterface.h:
128434        * platform/mac/WebCoreSystemInterface.mm:
128435        * platform/network/cf/ResourceResponse.h:
128436        * platform/network/mac/ResourceResponseMac.mm:
128437        (WebCore::ResourceResponse::setCertificateChain):
128438        (WebCore::ResourceResponse::certificateChain):
128439
1284402012-12-19  Gustavo Noronha Silva  <gns@gnome.org>
128441
128442        Unreviewed. Add new strings to GTK+'s implementation of
128443        LocalizedStrings, using glib's context-aware macro.
128444
128445        * platform/gtk/LocalizedStringsGtk.cpp:
128446        (WebCore):
128447        (WebCore::textTrackClosedCaptionsText):
128448        (WebCore::textTrackSubtitlesText):
128449        (WebCore::textTrackOffText):
128450        (WebCore::textTrackNoLabelText):
128451
1284522012-12-18  James Simonsen  <simonjam@chromium.org>
128453
128454        Set the original resource's response even on a 304
128455        https://bugs.webkit.org/show_bug.cgi?id=105373
128456
128457        Reviewed by Nate Chapin.
128458
128459        The existing setResponse was renamed to responseReceived to better reflect what it does. A new
128460        setResponse was added that only sets the response. This is used in the 304 case.
128461
128462        No new tests. A new Resource Timing test will depend on this soon.
128463
128464        * loader/SubresourceLoader.cpp:
128465        (WebCore::SubresourceLoader::didReceiveResponse):
128466        * loader/cache/CachedImage.cpp:
128467        (WebCore::CachedImage::responseReceived):
128468        * loader/cache/CachedImage.h:
128469        (CachedImage):
128470        * loader/cache/CachedRawResource.cpp:
128471        (WebCore::CachedRawResource::responseReceived):
128472        * loader/cache/CachedRawResource.h:
128473        (CachedRawResource):
128474        * loader/cache/CachedResource.cpp:
128475        (WebCore::CachedResource::responseReceived):
128476        * loader/cache/CachedResource.h:
128477        (CachedResource):
128478        (WebCore::CachedResource::setResponse):
128479
1284802012-12-19  Emil A Eklund  <eae@chromium.org>
128481
128482        [Regression] text-overflow ellipsis clips content when zoomed
128483        https://bugs.webkit.org/show_bug.cgi?id=105456
128484
128485        Reviewed by Levi Weintraub.
128486
128487        At certain zoom levels text-overflow ellipsis incorrectly clips
128488        content and displays the ellipsis even though the full content
128489        would fit.
128490
128491        Test: fast/sub-pixel/ellipsis-zoom.html
128492        
128493        * rendering/RenderBlock.h:
128494        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
128495        Add bug url to FIXME.
128496        
128497        * rendering/RenderBlockLineLayout.cpp:
128498        (WebCore::RenderBlock::checkLinesForTextOverflow):
128499        Pixel snap the content edge before comparing with the line box
128500        edge as the line box edge is aligned to a pixel boundary.
128501
1285022012-12-19  Antti Koivisto  <antti@apple.com>
128503
128504        Use ElementTraversal in LiveNodeListBase
128505        https://bugs.webkit.org/show_bug.cgi?id=105324
128506
128507        Reviewed by Ryosuke Niwa.
128508
128509        Factor the code so that we get clean minimally branchy traversal functions for all the common cases.
128510
128511        This patch changes the more performance critical forward traversal only, backwards traversal is unaffected for now.
128512
128513        Instruments thinks it is a progression at least in DOM/DOMDivWalk.html. Bots should tell more.
128514
128515        * dom/ClassNodeList.cpp:
128516        (WebCore::ClassNodeList::nodeMatches):
128517        * dom/ClassNodeList.h:
128518        (ClassNodeList):
128519        (WebCore::ClassNodeList::create):
128520        (WebCore):
128521        (WebCore::ClassNodeList::nodeMatchesInlined):
128522
128523            Add inlined version of the matching function for class lists.
128524
128525        * dom/LiveNodeList.cpp:
128526        (WebCore::LiveNodeListBase::rootContainerNode):
128527
128528            Root is always ContainerNode if the list has anything in it. Traversal functions are slightly more
128529            efficient if we know we are operating on ContainerNodes.
128530
128531        (WebCore):
128532        * dom/LiveNodeList.h:
128533        (LiveNodeListBase):
128534        (WebCore::LiveNodeListBase::shouldOnlyIncludeDirectChildren):
128535        * dom/Node.cpp:
128536        (WebCore::Node::getElementsByTagName):
128537        * dom/TagNodeList.cpp:
128538        (WebCore::TagNodeList::TagNodeList):
128539        (WebCore::TagNodeList::~TagNodeList):
128540        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
128541        (WebCore::HTMLTagNodeList::nodeMatches):
128542        * dom/TagNodeList.h:
128543        (WebCore):
128544        (TagNodeList):
128545        (WebCore::TagNodeList::create):
128546        (HTMLTagNodeList):
128547        (WebCore::HTMLTagNodeList::create):
128548
128549            Use separate ContainerType enum value for HTMLTagNodeList so we can tell it apart from TagNodeList.
128550
128551        (WebCore::HTMLTagNodeList::nodeMatchesInlined):
128552
128553            Add inlined version of the matching function for tag lists.
128554
128555        * html/CollectionType.h:
128556        * html/HTMLCollection.cpp:
128557        (WebCore::shouldOnlyIncludeDirectChildren):
128558        (WebCore::rootTypeFromCollectionType):
128559        (WebCore::invalidationTypeExcludingIdAndNameAttributes):
128560        (WebCore):
128561        (WebCore::isMatchingElement):
128562        
128563            List type templated matching functions for common cases.
128564
128565        (WebCore::HTMLCollection::HTMLCollection):
128566        (WebCore::HTMLCollection::create):
128567        (WebCore::HTMLCollection::~HTMLCollection):
128568        (WebCore::previousNode):
128569        (WebCore::lastNode):
128570        (WebCore::LiveNodeListBase::iterateForPreviousNode):
128571        (WebCore::LiveNodeListBase::itemBefore):
128572
128573            Leave the backwards traversal unchanged for now but remove the forward traversal code.
128574
128575        (WebCore::firstMatchingElement):
128576        (WebCore::nextMatchingElement):
128577        (WebCore::firstMatchingChildElement):
128578        (WebCore::nextMatchingChildElement):
128579        (WebCore::traverseMatchingElementsForwardToOffset):
128580
128581            List type templated traversal functions with matching. Separate functions for first and subsequent elements
128582
128583        (WebCore::LiveNodeListBase::traverseChildNodeListForwardToOffset):
128584        (WebCore::LiveNodeListBase::traverseLiveNodeListFirstElement):
128585        (WebCore::LiveNodeListBase::traverseLiveNodeListForwardToOffset):
128586
128587            LiveNodeList traversal, picking the right template.
128588
128589        (WebCore::LiveNodeListBase::item):
128590        (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
128591
128592            Switch to new traversal functions.
128593
128594        (WebCore::HTMLCollection::traverseFirstElement):
128595        (WebCore::HTMLCollection::traverseForwardToOffset):
128596        (WebCore::HTMLCollection::traverseNextElement):
128597
128598            HTMLCollection traversal, picking the right template.
128599
128600        (WebCore::HTMLCollection::namedItem):
128601        (WebCore::HTMLCollection::updateNameCache):
128602
128603            Switch to new traversal functions.
128604
128605        * html/HTMLCollection.h:
128606        (HTMLCollection):
128607
1286082012-12-19  Alexey Proskuryakov  <ap@apple.com>
128609
128610        <rdar://problem/12896478> Cannot log into gmail/facebook with NetworkProcess and private browsing enabled
128611        https://bugs.webkit.org/show_bug.cgi?id=105454
128612
128613        Reviewed by Brady Eidson.
128614
128615        Request was using a wrong session after a redirect, because session cannot be
128616        preserved over IPC.
128617
128618        Just set the storage session after calling the client, it is not really meaningful
128619        for a client to change session behind WebKit's back.
128620
128621        * platform/network/cf/ResourceHandleCFNet.cpp:
128622        (WebCore::ResourceHandle::willSendRequest):
128623        * platform/network/mac/ResourceHandleMac.mm:
128624        (WebCore::ResourceHandle::willSendRequest):
128625
1286262012-12-19  Alexis Menard  <alexis@webkit.org>
128627
128628        Implement CSS parsing for CSS transitions unprefixed.
128629        https://bugs.webkit.org/show_bug.cgi?id=104804
128630
128631        Reviewed by Dean Jackson.
128632
128633        Add support of an unprefixed version of CSS transitions modules by adding unprefixed versions
128634        of each CSS properties. The work is protected behind the flag ENABLE_CSS_TRANSFORMS_ANIMATIONS_TRANSITIONS_UNPREFIXED
128635        to cover the work of unprefixing Transforms, Animations and Transitions. It will let the possibility of each ports to turn it off 
128636        in their release branches until we're confident that these CSS properties are ready to be unprefixed.
128637
128638        Test: transitions/transitions-parsing.html
128639
128640        * Configurations/FeatureDefines.xcconfig:
128641        * GNUmakefile.am:
128642        * GNUmakefile.features.am.in:
128643        * css/CSSPropertyNames.in: alias the unprefixed versions to the prefixed versions.
128644
1286452012-12-12  Antonio Gomes  <a1.gomes@sisa.samsung.com>
128646
128647        Make RenderLayerCompositor::requiresCompositingForScrollableFrame scrollbars agnostic
128648        https://bugs.webkit.org/show_bug.cgi?id=97903
128649
128650        Reviewed by Simon Fraser.
128651
128652        Some ports (including Qt-wk1 and BlackBerry) allow disabling
128653        scrollbars at FrameView creation level. Regardless the scrollbars
128654        presence though, their frame's content can still be scrolled as needed.
128655        The said, checking for the scrollbars presence in order to determine
128656        the scrollability of an inner frame is flaky, as done in RenderLayerCompositor::requiresCompositingForScrollableFrame.
128657
128658        Instead, the patch factors out part of the logic in
128659        FrameView::updateScrollableAreaSet into a new ::isScrollable method.
128660        The later can be used to check the scrollability of a given FrameView.
128661
128662        No new tests added, since there is no behavior change: ports like Chromium and others
128663        who currently check for the scrollbars presence in order to determine
128664        an inner frame scrollability should not be affected.
128665
128666        * page/FrameView.cpp:
128667        (WebCore::FrameView::isScrollable):
128668        (WebCore):
128669        (WebCore::FrameView::updateScrollableAreaSet):
128670        * page/FrameView.h:
128671        (FrameView):
128672        * rendering/RenderLayerCompositor.cpp:
128673        (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
128674
1286752012-12-18  Roger Fong  <roger_fong@apple.com>
128676
128677        Popup menu on Windows should fade in instead of sliding in.
128678        https://bugs.webkit.org/show_bug.cgi?id=105358
128679        <rdar://problem/7611211>
128680
128681        Reviewed by Timothy Horton.
128682
128683        Changing popup menu display animation to match what most other Windows applications do.
128684
128685        * platform/win/PopupMenuWin.cpp:
128686        (WebCore::PopupMenuWin::show):
128687
1286882012-12-19  Levi Weintraub  <leviw@chromium.org>
128689
128690        Correct missing touch event handler de-registration for nested Documents and DOMWindows
128691        https://bugs.webkit.org/show_bug.cgi?id=105384
128692
128693        Reviewed by James Robinson.
128694
128695        Correcting case by which a nested DOMWindow wouldn't clean up its event handler references
128696        on its Document when removeAllEventListeners was called. Also, correctly propagating this
128697        from a nested Document to its owner Document.
128698
128699        Updating fast/events/touch/touch-handler-count.html to catch this bug.
128700
128701        * dom/Document.cpp:
128702        (WebCore::Document::didRemoveEventTargetNode):
128703        * page/DOMWindow.cpp:
128704        (WebCore::DOMWindow::removeAllEventListeners):
128705
1287062012-12-18  Simon Fraser  <simon.fraser@apple.com>
128707
128708        Fix regression from r137923 that caused all tiles to paint when scrolling
128709        https://bugs.webkit.org/show_bug.cgi?id=105394
128710
128711        Reviewed by Dean Jackson.
128712
128713        r137923 removed a 'continue' from the loop that ensures we have tile coverage,
128714        but this caused us to issue repaints for all existing tiles.
128715        
128716        Fix to 'continue' when the tile size is unchanged. Also remove 'primaryLayerCount'
128717        which was unused.
128718
128719        * platform/graphics/ca/mac/TileCache.mm:
128720        (WebCore::TileCache::revalidateTiles):
128721
1287222012-12-19  Nate Chapin  <japhet@chromium.org>
128723
128724        REGRESSION(r137607): PluginDocument loads consume huge amounts of memory
128725        https://bugs.webkit.org/show_bug.cgi?id=105359
128726
128727        Reviewed by Alexey Proskuryakov.
128728
128729        No new tests, verified manually that http://www.scb.se/statistik/_publikationer/NR0001_2012K02_TI_A28TI1203.pdf
128730        no longer consumes several GB of memory.
128731
128732        * loader/ResourceLoader.cpp:
128733        (WebCore::ResourceLoader::setShouldBufferData): shouldBufferData is an enum, not a boolean, so this is reversed.
128734        * loader/cache/CachedRawResource.cpp:
128735        (WebCore::CachedRawResource::data): If the dataReceived() callback tells us to stop buffering data, be sure to
128736            notify the ResourceLoader and clear the data buffer.
128737
1287382012-12-19  Gavin Peters  <gavinp@chromium.org>
128739
128740        [chromium] WebCore::Prerender::didStartPrerender depends on LinkLoader
128741        https://bugs.webkit.org/show_bug.cgi?id=105290
128742
128743        Reviewed by Abhishek Arya.
128744
128745        The LinkLoader now removes itself from its prerender in time.
128746
128747        Tested in unit tests, PrerenderingTest.FastRemoveElement.
128748
128749        * loader/LinkLoader.cpp:
128750        (WebCore::LinkLoader::~LinkLoader):
128751        (WebCore::LinkLoader::released):
128752
1287532012-12-19  Brian Salomon  <bsalomon@google.com>
128754
128755        [Chromium/Skia] Check whether bitmap has pixels in image encoders
128756        https://bugs.webkit.org/show_bug.cgi?id=105349
128757
128758        Reviewed by Stephen White.
128759
128760        This adds NULL checks to the JPEG, PNG, WEBP encoders.
128761
128762        Difficult to test as condition occurs when OOM.
128763
128764        * platform/image-encoders/skia/JPEGImageEncoder.cpp:
128765        (WebCore::JPEGImageEncoder::encode):
128766        * platform/image-encoders/skia/PNGImageEncoder.cpp:
128767        (WebCore::PNGImageEncoder::encode):
128768        * platform/image-encoders/skia/WEBPImageEncoder.cpp:
128769        (WebCore::WEBPImageEncoder::encode):
128770
1287712012-12-19  Arpita Bahuguna  <arpitabahuguna@gmail.com>
128772
128773        Unable to place the caret at the end of the first line, when followed by a block, in the vertical writing mode.
128774        https://bugs.webkit.org/show_bug.cgi?id=104794
128775
128776        Reviewed by Ryosuke Niwa.
128777
128778        In the vertical writing mode, when trying to place the caret at the end
128779        of a text line which is followed by a block, the local point sent as
128780        part of the hitTest result in the mouse click event is not correct.
128781
128782        When clicking on the empty region (beyond the text) in the first line,
128783        the local point computed is not in accordance with the writing mode.
128784
128785        Test: editing/selection/caret-at-end-of-text-line-followed-by-block-in-vertical-mode.html
128786
128787        * rendering/RenderBlock.cpp:
128788        (WebCore::RenderBlock::nodeAtPoint):
128789        Modified the code to handle the point as per the writing mode when
128790        computing the hitTest result. Calling flipForWritingMode() on the
128791        point for achieving the same.
128792
1287932012-12-19  Sheriff Bot  <webkit.review.bot@gmail.com>
128794
128795        Unreviewed, rolling out r138157.
128796        http://trac.webkit.org/changeset/138157
128797        https://bugs.webkit.org/show_bug.cgi?id=105439
128798
128799        Crashes with assertion failures in EFL debug build. (Requested
128800        by drott on #webkit).
128801
128802        * platform/graphics/texmap/TextureMapperGL.cpp:
128803        (SharedGLData):
128804        (WebCore::TextureMapperGL::drawTexture):
128805        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
128806        (WebCore::keyForFilterType):
128807        (WebCore::prepareFilterProgram):
128808        (WebCore::TextureMapperGL::drawFiltered):
128809        (WebCore::TextureMapperGL::beginClip):
128810        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
128811        (WebCore):
128812        (ShaderSpec):
128813        (WebCore::ShaderSpec::ShaderSpec):
128814        (WebCore::getShaderSpec):
128815        (WebCore::TextureMapperShaderManager::getShaderProgram):
128816        * platform/graphics/texmap/TextureMapperShaderManager.h:
128817        (TextureMapperShaderProgram):
128818        (TextureMapperShaderManager):
128819
1288202012-12-19  Zan Dobersek  <zandobersek@gmail.com>
128821
128822        [GTK] Enable Navigation Timing by default
128823        https://bugs.webkit.org/show_bug.cgi?id=105322
128824
128825        Reviewed by Martin Robinson.
128826
128827        The Navigation Timing specification (of which implementation is guarder
128828        by the ENABLE_WEB_TIMING feature define) has been promoted to the W3C Recommendation
128829        status. Because of this we should enable it by default in the release builds of
128830        the GTK port.
128831
128832        No new tests - they already exist and are in majority passing.
128833
128834        * GNUmakefile.am:
128835        * bindings/gobject/GNUmakefile.am: Move the DOM bindings for interfaces related to this
128836        feature out of the unstable features define guard and into the general list.
128837
1288382012-12-19  Pavel Feldman  <pfeldman@chromium.org>
128839
128840        Web Inspector: default font on mac is Monaco (should do be Menlo)
128841        https://bugs.webkit.org/show_bug.cgi?id=105435
128842
128843        Reviewed by Alexander Pavlov.
128844
128845        Regressed when I introduced mountain lion modifier in the inspector.css.
128846
128847        * inspector/front-end/inspector.css:
128848        (body.platform-mac .monospace, body.platform-mac .source-code):
128849        (body.platform-mac.platform-mac-tiger .source-code):
128850
1288512012-12-19  Hayato Ito  <hayato@chromium.org>
128852
128853        Expose WebKitShadowRoot constructor to DOMWindow.
128854        https://bugs.webkit.org/show_bug.cgi?id=105385
128855
128856        Reviewed by Dimitri Glazkov.
128857
128858        This is a follow-up patch for r137870.  WebKitShadowRoot
128859        constructor should be in DOMWindow, just like all of the other
128860        not-callable-constructors like HTMLDivElement, etc.  We need it
128861        for instanceof tests and so on.
128862
128863        Test: fast/dom/shadow/shadow-root-js-api.html
128864              fast/js/global-constructors-expected.html
128865
128866        * page/DOMWindow.idl:
128867
1288682012-12-19  Andrey Lushnikov  <lushnikov@chromium.com>
128869
128870        Web Inspector: refactor DefaultTextEditor's |expanded| setters
128871        https://bugs.webkit.org/show_bug.cgi?id=105415
128872
128873        Reviewed by Pavel Feldman.
128874
128875        Refactor |expanded| setters and getters into |collapse()|, |expand()|
128876        and |expanded()| methods
128877
128878        * inspector/front-end/DefaultTextEditor.js:
128879        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
128880        (WebInspector.TextEditorChunkedPanel.prototype._expandChunks):
128881        (WebInspector.TextEditorGutterPanel.prototype.textChanged):
128882        (WebInspector.TextEditorGutterChunk.prototype.expanded): Added.
128883        (WebInspector.TextEditorGutterChunk.prototype.collapse): Added.
128884        (WebInspector.TextEditorGutterChunk.prototype.expand): Added.
128885        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
128886        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
128887        (WebInspector.TextEditorMainChunk.prototype.expanded): Added.
128888        (WebInspector.TextEditorMainChunk.prototype.collapse): Added.
128889        (WebInspector.TextEditorMainChunk.prototype.expand): Added.
128890
1288912012-12-19  Pan Deng  <pan.deng@intel.com>
128892
128893        Web Inspector: Use Document* as argument in WebSocket Instrumentation.
128894        https://bugs.webkit.org/show_bug.cgi?id=105279.
128895
128896        Reviewed by Pavel Feldman.
128897
128898        Some WebSocket instrumentation fuctions adopted ScriptExecutionContext* as argument, it is not clear that
128899        their clients and implementations are all using Document*. This patch adopt Document* as argument, and 
128900        Document* could supply more information in future.
128901
128902        No functionality changed, no new tests.
128903
128904        * inspector/InspectorInstrumentation.h:
128905        (InspectorInstrumentation):
128906        (WebCore::InspectorInstrumentation::didCreateWebSocket):
128907        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
128908        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
128909        (WebCore::InspectorInstrumentation::didCloseWebSocket):
128910
1289112012-12-19  Tim Volodine  <timvolodine@chromium.org>
128912
128913        Text Autosizing: Work out what to do about form controls
128914        https://bugs.webkit.org/show_bug.cgi?id=102560
128915
128916        Reviewed by Kenneth Rohde Christiansen.
128917
128918        Disallow autosizing of form input controls like buttons, text input fields, selection controls, radio buttons
128919        and check boxes. This is a short term solution to avoid inconsistent autosizing of form controls (which is
128920        worse than not autosizing at all).
128921
128922        Tests: fast/text-autosizing/form-controls-autosizing-button-input-elements.html
128923               fast/text-autosizing/form-controls-autosizing-checkbox-input-element.html
128924               fast/text-autosizing/form-controls-autosizing-radio-input-element.html
128925               fast/text-autosizing/form-controls-autosizing-select-element.html
128926               fast/text-autosizing/form-controls-autosizing-textfield-input-elements.html
128927
128928        * rendering/TextAutosizer.cpp:
128929        (WebCore):
128930        (WebCore::formInputTags):
128931        (WebCore::TextAutosizer::isAutosizingContainer):
128932        (WebCore::TextAutosizer::contentHeightIsConstrained):
128933        (WebCore::TextAutosizer::containerShouldBeAutosized):
128934        (WebCore::TextAutosizer::containerContainsOneOfTags):
128935        * rendering/TextAutosizer.h:
128936
1289372012-12-19  Vsevolod Vlasov  <vsevik@chromium.org>
128938
128939        Web Inspector: Add Workspace.setFileContent() method
128940        https://bugs.webkit.org/show_bug.cgi?id=105434
128941
128942        Reviewed by Pavel Feldman.
128943
128944        Added method that will be usedto save file system-based uiSourceCodes to the disk.
128945
128946        * inspector/front-end/UISourceCode.js:
128947        (WebInspector.UISourceCode.prototype._commitContent):
128948        * inspector/front-end/Workspace.js:
128949        (WebInspector.WorkspaceProvider.prototype.setFileContent):
128950        (WebInspector.Project.prototype.setFileContent):
128951
1289522012-12-19  Vsevolod Vlasov  <vsevik@chromium.org>
128953
128954        Web Inspector: Rename workspace path to uri.
128955        https://bugs.webkit.org/show_bug.cgi?id=105433
128956
128957        Reviewed by Pavel Feldman.
128958
128959        URI should later become file unique id / address in workspace.
128960
128961        * inspector/front-end/NetworkWorkspaceProvider.js:
128962        (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
128963        (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
128964        (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
128965        (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
128966        (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
128967        * inspector/front-end/Workspace.js:
128968        (WebInspector.FileDescriptor):
128969        (WebInspector.WorkspaceProvider.prototype.requestFileContent):
128970        (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
128971        (WebInspector.Project.prototype._fileAdded):
128972        (WebInspector.Project.prototype._fileRemoved):
128973        (WebInspector.Project.prototype.requestFileContent):
128974        (WebInspector.Project.prototype.searchInFileContent):
128975        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
128976
1289772012-12-14  Alexander Pavlov  <apavlov@chromium.org>
128978
128979        Web Inspector: Refactor CSS[Keyword]Completions to augment property metadata
128980        https://bugs.webkit.org/show_bug.cgi?id=105020
128981
128982        Reviewed by Pavel Feldman.
128983
128984        - CSSCompletions and CSSKeywordCompletions of WebInspector have been merged into CSSMetadata.
128985        - Valid value keyword lists have been added or augmented for some properties.
128986        - Some properties have been made inherited or color-aware.
128987
128988        * English.lproj/localizedStrings.js:
128989        * WebCore.gypi:
128990        * WebCore.vcproj/WebCore.vcproj:
128991        * inspector/compile-front-end.py:
128992        * inspector/front-end/CSSCompletions.js: Removed.
128993        * inspector/front-end/CSSKeywordCompletions.js: Removed.
128994        * inspector/front-end/CSSMetadata.js: Added.
128995        (WebInspector.CSSMetadata):
128996        (WebInspector.CSSMetadata.isColorAwareProperty):
128997        (WebInspector.CSSMetadata.colors):
128998        (WebInspector.CSSMetadata.valuesForProperty):
128999        (WebInspector.CSSMetadata.descriptor):
129000        (WebInspector.CSSMetadata.requestCSSShorthandData):
129001        (WebInspector.CSSMetadata.cssPropertiesMetainfoKeySet):
129002        (WebInspector.CSSMetadata.prototype.startsWith):
129003        (WebInspector.CSSMetadata.prototype.mostUsedOf):
129004        (WebInspector.CSSMetadata.prototype._firstIndexOfPrefix):
129005        (WebInspector.CSSMetadata.prototype.keySet):
129006        (WebInspector.CSSMetadata.prototype.next):
129007        (WebInspector.CSSMetadata.prototype.previous):
129008        (WebInspector.CSSMetadata.prototype._closest):
129009        (WebInspector.CSSMetadata.prototype.longhands):
129010        (WebInspector.CSSMetadata.prototype.shorthands):
129011        * inspector/front-end/CSSStyleModel.js:
129012        (WebInspector.CSSStyleDeclaration.prototype.longhandProperties):
129013        * inspector/front-end/SourceCSSTokenizer.js:
129014        (WebInspector.SourceCSSTokenizer):
129015        * inspector/front-end/SourceCSSTokenizer.re2js:
129016        * inspector/front-end/StylesSidebarPane.js:
129017        (WebInspector.StylesSidebarPane.createExclamationMark):
129018        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
129019        (WebInspector.StylesSidebarPane.prototype._containsInherited):
129020        (WebInspector.StylePropertiesSection.prototype.isPropertyInherited):
129021        (WebInspector.StylePropertiesSection.prototype.isPropertyOverloaded):
129022        (WebInspector.StylePropertiesSection.prototype.onpopulate):
129023        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
129024        (WebInspector.StylePropertyTreeElement.prototype):
129025        * inspector/front-end/WebKit.qrc:
129026        * inspector/front-end/inspector.html:
129027        * inspector/front-end/inspector.js:
129028
1290292012-12-19  No'am Rosenthal  <noam@webkit.org>
129030
129031        [Texmap] Instead of having multiple shaders sources with lots of duplication, we should have one shader source with MACRO variants
129032        https://bugs.webkit.org/show_bug.cgi?id=104815
129033
129034        Reviewed by Kenneth Rohde Christiansen.
129035
129036        Created templates for the vertex and fragment shaders, and added some MACROs in 
129037        TextureMapperShaderManager to allow GLSL precompiler-based configuration.
129038
129039        The template follows a pattern where the main function in the shader calls
129040        applyFooBarIfNeeded(), while applyFooBar() is implemented. The Macros prepended to the template define whether applyIfNeeded resolves to the real function or to a noop.
129041
129042        In addition, made some small changes to the filter shaders so that they can use the same code as the normal shaders.
129043
129044        Covered by existing pixel/ref tests when run on Qt/EFL/GTK.
129045
129046        * platform/graphics/texmap/TextureMapperGL.cpp:
129047        (WebCore::TextureMapperGL::drawTexture):
129048        (WebCore::TextureMapperGL::drawSolidColor):
129049        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
129050        (WebCore::optionsForFilterType):
129051        (WebCore):
129052        (WebCore::getPassesRequiredForFilter):
129053        (WebCore::prepareFilterProgram):
129054        (WebCore::TextureMapperGL::drawFiltered):
129055        (WebCore::BitmapTextureGL::applyFilters):
129056            Always draw using the drawQuad function, and use the new TextureMapperShaderManager::Options mask instead of the old ShaderKey.
129057
129058        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
129059        (WebCore):
129060        (WebCore::getShaderSpec):
129061        (WebCore::TextureMapperShaderManager::getShaderProgram):
129062        * platform/graphics/texmap/TextureMapperShaderManager.h:
129063        (TextureMapperShaderProgram):
129064        (TextureMapperShaderManager):
129065
1290662012-12-19  Vsevolod Vlasov  <vsevik@chromium.org>
129067
129068        Web Inspector: Support removing several tabs from TabbedEditorContainer/TabbedPane at once.
129069        https://bugs.webkit.org/show_bug.cgi?id=104881
129070
129071        Reviewed by Alexander Pavlov.
129072
129073        * inspector/front-end/ScriptsPanel.js:
129074        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
129075        * inspector/front-end/TabbedEditorContainer.js:
129076        (WebInspector.TabbedEditorContainer.prototype.removeUISourceCode):
129077        * inspector/front-end/TabbedPane.js:
129078        (WebInspector.TabbedPane.prototype.closeTab):
129079        (WebInspector.TabbedPane.prototype.closeTabs):
129080
1290812012-12-19  Andrey Kosyakov  <caseq@chromium.org>
129082
129083        Web Inspector: scripts to evaluate on load are not removed from inspector state when Page agent is disabled
129084        https://bugs.webkit.org/show_bug.cgi?id=105422
129085
129086        Reviewed by Alexander Pavlov.
129087
129088        - reset scripts to evaluate on load when InspectorPageAgent is disabled.
129089        - added InspectorState::remove();
129090
129091        * inspector/InspectorPageAgent.cpp:
129092        (WebCore::InspectorPageAgent::disable):
129093        * inspector/InspectorState.cpp:
129094        (WebCore::InspectorState::remove):
129095        (WebCore):
129096        * inspector/InspectorState.h:
129097        (InspectorState):
129098
1290992012-12-19  Kunihiko Sakamoto  <ksakamoto@chromium.org>
129100
129101        INPUT_MULTIPLE_FIELDS_UI: Make year field readonly if min and max have the same year
129102        https://bugs.webkit.org/show_bug.cgi?id=105383
129103
129104        Reviewed by Kent Tamura.
129105
129106        Make year field readonly if min and max have the same year, and it does not have
129107        value with different year.
129108
129109        Test: fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html
129110
129111        * css/html.css: Add CSS rule for the year field.
129112        * html/shadow/DateTimeEditElement.cpp:
129113        (DateTimeEditBuilder):
129114        (WebCore::DateTimeEditBuilder::visitField): Make year-field readonly when appropriate.
129115        (WebCore::DateTimeEditBuilder::shouldYearFieldReadOnly): Added.
129116
1291172012-12-19  Max Feil  <mfeil@rim.com>
129118
129119        [BlackBerry] Fix undesired re-entrant calls during media error dialog
129120        https://bugs.webkit.org/show_bug.cgi?id=105398
129121
129122        Reviewed by Rob Buis.
129123
129124        A recent change in libwebview (PR194379) to the dialog
129125        handling means that dialogs are not truly blocking anymore.
129126        While the dialog is up, a sub-event loop is called. Therefore
129127        the HTML5 media code will continue processing pps messages from
129128        mm-renderer, responding to periodic timers, etc., all while a
129129        media error dialog call higher up in the stack is waiting for
129130        the user to respond. Unfortunately certain places in our code
129131        do not anticipate being called in this re-entrant way.
129132
129133        This patch restores previous behaviour, covered by existing tests.
129134
129135        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
129136        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
129137
1291382012-12-19  Alexander Pavlov  <apavlov@chromium.org>
129139
129140        Web Inspector: [REGRESSION] The last remembered tab is not restored when the Settings dialog is opened
129141        https://bugs.webkit.org/show_bug.cgi?id=105414
129142
129143        Reviewed by Vsevolod Vlasov.
129144
129145        Do not force the "General" tab when opening settings upon the Cog button click.
129146
129147        * inspector/front-end/SettingsScreen.js:
129148        (WebInspector.SettingsController.prototype._mouseUp):
129149
1291502012-12-19  Renata Hodovan  <reni@webkit.org>
129151
129152        CSSParser crases, when no context is available, and the value is a valid keyword
129153        https://bugs.webkit.org/show_bug.cgi?id=105275
129154
129155        Reviewed by Tony Chang.
129156
129157        ParserContext could be null even if the keyword is valid. We have to check it.
129158
129159        Test: fast/css/invalid-parsercontext-valid-keyword-crash.svg
129160
129161        * css/CSSParser.cpp:
129162        (WebCore::CSSParser::parseValue):
129163
1291642012-12-19  Kondapally Kalyan  <kalyan.kondapally@intel.com>
129165
129166        [EFL][WebGL] Refactor GLXSurface.
129167        https://bugs.webkit.org/show_bug.cgi?id=105357
129168
129169        Reviewed by Kenneth Rohde Christiansen.
129170
129171        This is in preparation for adding EGL support.
129172        There is lot of X related code which could be shared between our current GLX implementation
129173        and EGL. This patch makes it possible to share the common code but doesn't change any functionality.
129174
129175        * PlatformEfl.cmake:
129176        * platform/graphics/surfaces/glx/GLXSurface.cpp:
129177        (WebCore):
129178        (WebCore::GLXTransportSurface::GLXTransportSurface):
129179        (WebCore::GLXTransportSurface::configuration):
129180        (WebCore::GLXTransportSurface::destroy):
129181        (WebCore::GLXTransportSurface::freeResources):
129182        (WebCore::GLXPBuffer::GLXPBuffer):
129183        (WebCore::GLXPBuffer::initialize):
129184        (WebCore::GLXPBuffer::configuration):
129185        (WebCore::GLXPBuffer::setGeometry):
129186        * platform/graphics/surfaces/glx/GLXSurface.h:
129187        (GLXTransportSurface):
129188        (GLXPBuffer):
129189
129190        GLX related implementation.
129191        * platform/graphics/surfaces/glx/GLXWindowResources.h: Added.
129192        (WebCore):
129193        (SharedGLXResources):
129194        (WebCore::SharedGLXResources::create):
129195        (WebCore::SharedGLXResources::nativeDisplay):
129196        (WebCore::SharedGLXResources::pBufferContextConfig):
129197        (WebCore::SharedGLXResources::surfaceContextConfig):
129198        (WebCore::SharedGLXResources::SharedGLXResources):
129199        (WebCore::SharedGLXResources::createConfig):
129200
129201        Moving X related code to a seperate class.
129202        * platform/graphics/surfaces/glx/X11WindowResources.cpp: Added.
129203        (WebCore):
129204        (WebCore::X11OffScreenWindow::X11OffScreenWindow):
129205        (WebCore::X11OffScreenWindow::~X11OffScreenWindow):
129206        (WebCore::X11OffScreenWindow::setGeometry):
129207        (WebCore::X11OffScreenWindow::createOffscreenWindow):
129208        * platform/graphics/surfaces/glx/X11WindowResources.h: Added.
129209        (WebCore):
129210        (SharedX11Resources):
129211        (WebCore::SharedX11Resources::deref):
129212        (WebCore::SharedX11Resources::x11Display):
129213        (WebCore::SharedX11Resources::getXWindow):
129214        (WebCore::SharedX11Resources::visualInfo):
129215        (WebCore::SharedX11Resources::isXRenderExtensionSupported):
129216        (WebCore::SharedX11Resources::SharedX11Resources):
129217        (WebCore::SharedX11Resources::~SharedX11Resources):
129218        (X11OffScreenWindow):
129219
1292202012-12-19  Tommy Widenflycht  <tommyw@chromium.org>
129221
129222        [JSC] Add support for overloaded constructors
129223        https://bugs.webkit.org/show_bug.cgi?id=103226
129224
129225        Reviewed by Kentaro Hara.
129226
129227        This patch adds the same support for overloaded constructors to JSC as V8.
129228        As proof of implementation soundness WebSockets custom constructor is removed.
129229
129230        Existing tests cover patch. As they should.
129231
129232        * GNUmakefile.list.am:
129233        * Modules/websockets/WebSocket.idl:
129234        * Target.pri:
129235        * UseJSC.cmake:
129236        * WebCore.vcproj/WebCore.vcproj:
129237        * WebCore.xcodeproj/project.pbxproj:
129238        * bindings/js/JSBindingsAllInOne.cpp:
129239        * bindings/js/JSWebSocketCustom.cpp: Removed.
129240        * bindings/scripts/CodeGeneratorJS.pm:
129241        (GenerateConstructorDeclaration):
129242        (GenerateConstructorDefinitions):
129243        (GenerateOverloadedConstructorDefinition):
129244        (GenerateConstructorDefinition):
129245        (GenerateConstructorHelperMethods):
129246        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
129247        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
129248        (WebCore):
129249        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
129250        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
129251        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
129252        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
129253        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
129254        (JSTestOverloadedConstructorsConstructor):
129255
1292562012-12-19  Seokju Kwon  <seokju.kwon@gmail.com>
129257
129258        Pass debuggerTaskMode as a parameter in WorkerScriptDebugServer constructor
129259        https://bugs.webkit.org/show_bug.cgi?id=105085
129260
129261        Reviewed by Yury Semikhatsky.
129262
129263        Leave WorkerDebuggerAgent::debuggerTaskMode
129264        and remove WorkerScriptDebugServer::debuggerTaskMode.
129265
129266        No new tests, no behavior change.
129267
129268        * bindings/js/WorkerScriptDebugServer.cpp:
129269        (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
129270        (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
129271        * bindings/js/WorkerScriptDebugServer.h:
129272        (WorkerScriptDebugServer):
129273        * bindings/v8/WorkerScriptDebugServer.cpp:
129274        (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
129275        (WebCore::WorkerScriptDebugServer::runMessageLoopOnPause):
129276        * bindings/v8/WorkerScriptDebugServer.h:
129277        (WorkerScriptDebugServer):
129278        * inspector/WorkerDebuggerAgent.cpp:
129279        (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
129280
1292812012-12-19  Ilya Tikhonovsky  <loislo@chromium.org>
129282
129283        Unreviewed, rolling out r138129.
129284        http://trac.webkit.org/changeset/138129
129285        https://bugs.webkit.org/show_bug.cgi?id=105399
129286
129287        reapply patch r138123. The problem was on chromium side at r173875.
129288
129289        * dom/Element.cpp:
129290        (WebCore::Element::insertedInto):
129291        (WebCore::Element::removedFrom):
129292        * dom/Element.h:
129293        (WebCore::Node::insertedInto):
129294        (WebCore):
129295        (WebCore::Node::removedFrom):
129296        * dom/Node.cpp:
129297
1292982012-12-19  Takashi Sakamoto  <tasak@google.com>
129299
129300        [Shadow] TITLE elements in Shadow DOM should not affect document.title attribute
129301        https://bugs.webkit.org/show_bug.cgi?id=85864
129302
129303        Reviewed by Ryosuke Niwa.
129304
129305        Modified HTMLTitleElement to check whether a title element is in a
129306        shadow tree or not when it is inserted or removed. Now if a title
129307        element has been just removed from or inserted into a shadow tree,
129308        document.title is not updated independent of inDocument().  If the
129309        title element is not in a shadow tree and in document,
129310        document.title is updated.
129311
129312        Test: fast/dom/shadow/title-element-in-shadow.html
129313
129314        * html/HTMLTitleElement.cpp:
129315        (WebCore::HTMLTitleElement::insertedInto):
129316        Added a condition: isInShadowTree() to the code which checks
129317        inDocument or not.
129318        (WebCore::HTMLTitleElement::removedFrom):
129319        Added a condition: insertionPoint.isInShadowTree() to the code which
129320        checks an insertion point is in a document or not.
129321        (WebCore::HTMLTitleElement::childrenChanged):
129322        Added a condition: isInShadowTree() before setTitle.
129323        If not isInShadowTree, modified to removeTitle from document.
129324
1293252012-12-19  Sheriff Bot  <webkit.review.bot@gmail.com>
129326
129327        Unreviewed, rolling out r138123.
129328        http://trac.webkit.org/changeset/138123
129329        https://bugs.webkit.org/show_bug.cgi?id=105399
129330
129331        It broke compositing/visibility/visibility-simple-video-
129332        layer.html (Requested by loislo on #webkit).
129333
129334        * dom/Element.cpp:
129335        (WebCore::Element::insertedInto):
129336        (WebCore::Element::removedFrom):
129337        * dom/Element.h:
129338        * dom/Node.cpp:
129339        (WebCore::Node::insertedInto):
129340        (WebCore):
129341        (WebCore::Node::removedFrom):
129342
1293432012-12-18  Shinya Kawanaka  <shinyak@chromium.org>
129344
129345        ShadowRoot.getElementById() returns a deleted element
129346        https://bugs.webkit.org/show_bug.cgi?id=105243
129347
129348        Reviewed by Dimitri Glazkov.
129349
129350        Only when the treeScope of an element and the treeScope of insertionPoint is the same in insertedInto or removedFrom,
129351        we can call updatedId() etc. However, we didn't check it's same.
129352
129353        For removedFrom, since an element has been removed, treeScope() doesn't return the original treeScope but document()
129354        every time.
129355
129356        This patch might hurt html5-full-render a bit: the result is here. The first 2 results are without this patch,
129357        the last 2 results are with this patch.
129358
129359        Dromaeo/dom-modify [runs/s]
129360             35.97,   36.09 -->   36.05,   35.69
129361        Parser/html5-full-render [ms]
129362           4156.58, 4166.09 --> 4155.22, 4216.38
129363
129364        Test: fast/dom/shadow/getelementbyid-shadow.html
129365
129366        * dom/Element.cpp:
129367        (WebCore::Element::insertedInto):
129368        (WebCore::Element::removedFrom):
129369        * dom/Element.h:
129370        (WebCore::Node::insertedInto): Moved from Node.cpp to make this inline.
129371        (WebCore):
129372        (WebCore::Node::removedFrom): ditto.
129373        * dom/Node.cpp:
129374
1293752012-12-18  Vivek Galatage  <vivek.vg@samsung.com>
129376
129377        Web Inspector: AuditLauncherView UI components should be disabled until ongoing audit finishes
129378        https://bugs.webkit.org/show_bug.cgi?id=105389
129379
129380        Reviewed by Alexander Pavlov.
129381
129382        While the Audit request is on-going, UI components on the AuditLauncherView are disabled
129383        until the request is completed or explicitly stopped. Also changed the _categoriesElement
129384        from div to fieldset and modified the associated CSS file accordingly.
129385
129386        No new tests as this is a UI change.
129387
129388        * inspector/front-end/AuditLauncherView.js:
129389        (WebInspector.AuditLauncherView.prototype._setAuditRunning):
129390        (WebInspector.AuditLauncherView.prototype._toggleUIComponents):
129391        * inspector/front-end/auditsPanel.css:
129392        (.audit-launcher-view fieldset.audit-categories-container):
129393
1293942012-12-18  KyungTae Kim  <ktf.kim@samsung.com>
129395
129396        [EFL] regression(r138071) Add mission functions for build fix
129397        https://bugs.webkit.org/show_bug.cgi?id=105392
129398
129399        Unreviewed build fix.
129400
129401        r138071 add new functions to LocalizedStrings.cpp, but EFL port doesn't use them.
129402        So, add those functions to LocalizedStringsEfl.cpp 
129403
129404        * platform/efl/LocalizedStringsEfl.cpp:
129405        (WebCore):
129406        (WebCore::textTrackClosedCaptionsText):
129407        (WebCore::textTrackSubtitlesText):
129408        (WebCore::textTrackOffText):
129409        (WebCore::textTrackNoLabelText):
129410
1294112012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
129412
129413        Web Inspector: [Chromium] profiler - differentiate between native code (program) and idle time
129414        https://bugs.webkit.org/show_bug.cgi?id=88446
129415
129416        Reviewed by Pavel Feldman.
129417
129418        Now idleTime is supplied in profile object. In this patch, idleTime,
129419        if any, is subtracted from "(program)" node, and new node "(idle)" is
129420        injected as a top level node to profile.
129421
129422        * inspector/front-end/CPUProfileView.js:
129423        (WebInspector.CPUProfileView.profileCallback): Call _injectIdleTimeNode
129424        if non-zero idleTime is specified.
129425        (WebInspector.CPUProfileView.prototype._injectIdleTimeNode): Lookup for
129426        "(program)" node, modify it, add "(idle)" node.
129427
1294282012-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>
129429
129430        Unreviewed, rolling out r138097.
129431        http://trac.webkit.org/changeset/138097
129432        https://bugs.webkit.org/show_bug.cgi?id=105386
129433
129434        multiple crashes on media tests (Requested by loislo on
129435        #webkit).
129436
129437        * html/HTMLMediaElement.cpp:
129438        (WebCore::HTMLMediaElement::canPlayType):
129439        (WebCore::createFileURLForApplicationCacheResource):
129440        (WebCore::stringForNetworkState):
129441        (WebCore::HTMLMediaElement::preload):
129442        (WebCore::HTMLMediaElement::setLoop):
129443        (WebCore::HTMLMediaElement::getPluginProxyParams):
129444
1294452012-12-18  Julien Chaffraix  <jchaffraix@webkit.org>
129446
129447        Free one bit in RenderObject
129448        https://bugs.webkit.org/show_bug.cgi?id=105065
129449
129450        Reviewed by Simon Fraser.
129451
129452        This change uses the mutual exclusivity between the different position bits to pack
129453        the information more efficiently. Because you can be only in one position at any point
129454        in time, you only need to store 4 states in RenderObject (ie 2 bits of information) but
129455        we were using 3 bits to store this information, thus losing one bit that I am reclaiming.
129456
129457        The change covers the 3 bits into a single PositionState. In order to avoid any extra branch
129458        on the common code path, the logic was modified to be able to convert a EPosition to a PositionState
129459        using only a bit mask. This also means that we now sets up and clears all the bits at once instead
129460        of several calls, which matches more closely what happens at style change.
129461
129462        Change covered by existing tests.
129463
129464        * rendering/RenderBox.cpp:
129465        (WebCore::RenderBox::updateFromStyle):
129466        Removed a call, superseed by the one in RenderBoxModelObject::updateFromStyle.
129467
129468        * rendering/RenderBoxModelObject.cpp:
129469        (WebCore::RenderBoxModelObject::updateFromStyle):
129470        Changed to set the positioned bits in only one call to setPositionedState.
129471
129472        * rendering/RenderObject.cpp:
129473        (WebCore::RenderObject::styleWillChange):
129474        Changed to clear all positioned bits at once.
129475
129476        * rendering/RenderScrollbarPart.cpp:
129477        (WebCore::RenderScrollbarPart::styleDidChange):
129478        Ditto, which was probably the intent anyway.
129479
129480        * rendering/RenderView.cpp:
129481        (WebCore::RenderView::RenderView):
129482        Changed to explicitly be AbsolutelyPositioned, not that it really matters as we only store
129483        the out-of-flow information.
129484
129485        * rendering/RenderObject.h:
129486        (WebCore::RenderObject::isOutOfFlowPositioned):
129487        (WebCore::RenderObject::isInFlowPositioned):
129488        (WebCore::RenderObject::isRelPositioned):
129489        (WebCore::RenderObject::isStickyPositioned):
129490        (WebCore::RenderObject::isPositioned):
129491        (WebCore::RenderObject::clearPositionedState):
129492        Updated after the renaming below.
129493
129494        (WebCore::RenderObject::setPositionState):
129495        Ditto, but added an ASSERT to ensure that the out-of-flow bit is only set on boxes, to match
129496        existing code.
129497
129498        * rendering/style/RenderStyleConstants.h:
129499        Changed the values so that the conversion to PositionState is a simple bit mask, e.g
129500        FixedPosition & 0x3 == AbsolutePosition as we only store the out-of-flow position information.
129501
129502        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
129503        Introduced PositionState to hold the different bits.
129504
129505        (WebCore::RenderObject::RenderObjectBitfields::setPositionedState):
129506        (WebCore::RenderObject::RenderObjectBitfields::clearPositionedState):
129507        (WebCore::RenderObject::RenderObjectBitfields::isOutOfFlowPositioned):
129508        (WebCore::RenderObject::RenderObjectBitfields::isRelPositioned):
129509        (WebCore::RenderObject::RenderObjectBitfields::isStickyPositioned):
129510        (WebCore::RenderObject::RenderObjectBitfields::isPositioned):
129511        Re-implemented these getters / setters and renamed them to match our style while at it.
129512
129513
1295142012-12-18  Anton Vayvod  <avayvod@chromium.org>
129515
129516        Text Autosizing: containers wider than their enclosing clusters should be autosized as separate clusters
129517        https://bugs.webkit.org/show_bug.cgi?id=103627
129518
129519        Reviewed by Julien Chaffraix.
129520
129521        Some blocks of texts might be wider than their parent clusters and need to be autosized separately.
129522
129523        isAutosizingCluster() now checks for the width of the container being greater than the width of the lowest
129524        common ancestor of the text nodes of the enclosing cluster. This block containing all text is passed to all
129525        tree traversal methods.
129526        An overloaded version is added for cases when we don't have the lowest common ancestor yet.
129527
129528        The change fixes several cases covered by existing tests.
129529
129530        * rendering/TextAutosizer.cpp:
129531        (WebCore::TextAutosizer::processSubtree):
129532
129533            Calls processCluster with a new number of arguments.
129534
129535        (WebCore::TextAutosizer::processCluster):
129536
129537            Passes block containing all text nodes into processContainer. Assertion removed since it can no longer be
129538            checked without passing an additional parameter (the parent block containing all text) to the function
129539            for the sake of this assertion only.
129540
129541        (WebCore::TextAutosizer::processContainer):
129542
129543            |parentBlockContainingAllText| parameter passed into isAutosizingCluster.
129544
129545        (WebCore::TextAutosizer::isAutosizingCluster(const RenderBlock*, const RenderBlock*)):
129546
129547            The overloaded method that is used when the render block checked is already known to be an autosizing
129548            container and there's full information necessary to determine if it's a cluster like the parent block
129549            containing all text within the enclosing cluster. 
129550            Considers a block a cluster if it is wider than its parent block containing all text within enclosing
129551            cluster.
129552
129553        (WebCore::TextAutosizer::isAutosizingCluster(const RenderObject*)):
129554
129555            The overloaded method that checks for the given object to be an autosizing container first (for
129556            convenience of the caller) and doesn't require information about the parent cluster. Used when such
129557            information is not available, for example, in the process of retrieving the information for the parent
129558            cluster or when looking for the root cluster in the tree.
129559
129560        (WebCore::TextAutosizer::clusterShouldBeAutosized):
129561
129562            Passes new parameter to measureDescendantTextWidth.
129563
129564        (WebCore::TextAutosizer::measureDescendantTextWidth):
129565
129566            Uses blockContainingAllText parameter to pass to isAutosizingCluster.
129567
129568        (WebCore::TextAutosizer::findDeepestBlockContainingAllText):
129569
129570            Assertion removed since it can no longer be checked without passing an additional parameter (the
129571            parent block containing all text) to the function for the sake of this assertion only.
129572
129573        (WebCore::TextAutosizer::findFirstTextLeafNotInCluster):
129574            Uses shorter isAutosizingCluster call.
129575
1295762012-12-18  Alexey Proskuryakov  <ap@apple.com>
129577
129578        Remove unnecessary functions from CookiesStrategy
129579        https://bugs.webkit.org/show_bug.cgi?id=105369
129580
129581        Reviewed by Brady Eidson.
129582
129583        Remove CookieJar functions that are only ever called from WebKit.
129584
129585        * WebCore.exp.in:
129586        * loader/CookieJar.cpp:
129587        * loader/CookieJar.h:
129588        * platform/CookiesStrategy.h:
129589
1295902012-12-18  ChangSeok Oh  <shivamidow@gmail.com>
129591
129592        [GTK][AC] Assertion failed while destroying GraphicsLayer
129593        https://bugs.webkit.org/show_bug.cgi?id=105312
129594
129595        Reviewed by Gustavo Noronha Silva.
129596
129597        According to the comment in GraphicsLayer::~GraphicsLayer(), we should call
129598        willBeDestroyed() before destructor of GraphicsLayer.
129599
129600        No new tests since this patch can be covered by already existing gtk ac tests.
129601
129602        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
129603        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter): call willBeDestroyed()
129604
1296052012-12-18  Joseph Pecoraro  <pecoraro@apple.com>
129606
129607        Minor improvements to HTMLMediaElement
129608        https://bugs.webkit.org/show_bug.cgi?id=105353
129609
129610        Reviewed by Eric Carlson.
129611
129612        * html/HTMLMediaElement.cpp:
129613        (WebCore::HTMLMediaElement::canPlayType):
129614        (WebCore::createFileURLForApplicationCacheResource):
129615        (WebCore::stringForNetworkState):
129616        (WebCore::HTMLMediaElement::preload):
129617        (WebCore::HTMLMediaElement::getPluginProxyParams):
129618        Use ASCIILiteral for literal strings becoming WTFStrings.
129619
129620        (WebCore::HTMLMediaElement::setLoop):
129621        By going through setAttribute, parseAttribute would already take care of
129622        updating the disable sleep, so the call here is not needed.
129623
1296242012-12-18  Levi Weintraub  <leviw@chromium.org>
129625
129626        Input elements with default touch handlers don't update handler counts when changing documents
129627        https://bugs.webkit.org/show_bug.cgi?id=105334
129628
129629        Reviewed by James Robinson.
129630
129631        When an Input element with default touch event handlers changes documents, it failed to
129632        update the touch event handler sets in both the old and new document. This patch fixes this
129633        case.
129634
129635        Test: fast/events/touch/touch-input-element-change-documents.html
129636
129637        * dom/Document.h:
129638        (WebCore::Document::didRemoveTouchEventTargetNode) This function makes sense when touch
129639        handling is enabled, regardless of whether we're tracking the rects.
129640        * dom/Document.cpp:
129641        * html/HTMLInputElement.cpp:
129642        (WebCore::HTMLInputElement::~HTMLInputElement): Switch from didRemoveTouchEventHandler to
129643        didRemoveTouchEventTargetNode, since we don't care about counts in the destructor.
129644        (WebCore::HTMLInputElement::updateType): Fixing incorrect indentation.
129645        (WebCore::HTMLInputElement::didMoveToNewDocument): Adding the node to the new document and
129646        removing it from the old.
129647
1296482012-12-18  Mark Lam  <mark.lam@apple.com>
129649
129650        Fixed bad merge in "Initial refactoring of database functionality into the manager and server".
129651        https://bugs.webkit.org/show_bug.cgi?id=104748.
129652
129653        Not reviewed.
129654
129655        No new tests.
129656
129657        * Modules/webdatabase/DBBackendServer.cpp:
129658
1296592012-12-18  Mark Lam  <mark.lam@apple.com>
129660
129661        Initial refactoring of database functionality into the manager and server.
129662        https://bugs.webkit.org/show_bug.cgi?id=104748.
129663
129664        Reviewed by Brady Eidson.
129665
129666        This is not a complete refactor, but a stepping stone on the way to isolating
129667        script side database activity from the SQL backend.
129668
129669        No new tests.
129670
129671        * CMakeLists.txt:
129672        * GNUmakefile.list.am:
129673        * Modules/webdatabase/AbstractDatabase.cpp:
129674        (WebCore):
129675        (WebCore::updateGuidVersionMap):
129676        (WebCore::guidForOriginAndName):
129677        (WebCore::AbstractDatabase::AbstractDatabase):
129678        (WebCore::AbstractDatabase::maximumSize):
129679        * Modules/webdatabase/AbstractDatabase.h:
129680        (AbstractDatabase):
129681        - Moved isAvailable() and setIsAvailable() to the DatabaseManager.
129682        * Modules/webdatabase/AbstractDatabaseServer.h:
129683        (AbstractDatabaseServer):
129684        * Modules/webdatabase/DBBackendServer.cpp: Added.
129685        (WebCore::DBBackend::Server::initialize):
129686        (WebCore::DBBackend::Server::setClient):
129687        (WebCore::DBBackend::Server::databaseDirectoryPath):
129688        (WebCore::DBBackend::Server::setDatabaseDirectoryPath):
129689        (WebCore::DBBackend::Server::fullPathForDatabase):
129690        (WebCore::DBBackend::Server::hasEntryForOrigin):
129691        (WebCore::DBBackend::Server::origins):
129692        (WebCore::DBBackend::Server::databaseNamesForOrigin):
129693        (WebCore::DBBackend::Server::detailsForNameAndOrigin):
129694        (WebCore::DBBackend::Server::usageForOrigin):
129695        (WebCore::DBBackend::Server::quotaForOrigin):
129696        (WebCore::DBBackend::Server::setQuota):
129697        (WebCore::DBBackend::Server::deleteAllDatabases):
129698        (WebCore::DBBackend::Server::deleteOrigin):
129699        (WebCore::DBBackend::Server::deleteDatabase):
129700        (WebCore::DBBackend::Server::scheduleNotifyDatabaseChanged):
129701        (WebCore::DBBackend::Server::databaseChanged):
129702        (WebCore::DBBackend::Server::closeDatabasesImmediately):
129703        (WebCore::DBBackend::Server::interruptAllDatabasesForContext):
129704        (WebCore::DBBackend::Server::canEstablishDatabase):
129705        (WebCore::DBBackend::Server::addOpenDatabase):
129706        (WebCore::DBBackend::Server::removeOpenDatabase):
129707        (WebCore::DBBackend::Server::setDatabaseDetails):
129708        (WebCore::DBBackend::Server::getMaxSizeForDatabase):
129709        - Refactored all calls to the DatabaseTracker to go thru the DBBackend::Server.
129710        * Modules/webdatabase/DBBackendServer.h:
129711        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
129712        (WebCore::DOMWindowWebDatabase::openDatabase):
129713        * Modules/webdatabase/Database.cpp:
129714        (WebCore::Database::close):
129715        (WebCore::Database::maximumSize):
129716        * Modules/webdatabase/Database.h:
129717        (Database):
129718        - Moved the openDatabase() factory method to the DatabaseManager.
129719        - Removed the unused deliverPendingCallback() prototype.
129720        * Modules/webdatabase/DatabaseBasicTypes.h: Added.
129721        - A place to define some common basic types used by the database module.
129722        * Modules/webdatabase/DatabaseContext.cpp:
129723        (WebCore::DatabaseContext::databaseExceededQuota):
129724        * Modules/webdatabase/DatabaseManager.cpp:
129725        (WebCore::DatabaseManager::DatabaseManager):
129726        (WebCore::DatabaseManager::initialize):
129727        (WebCore::DatabaseManager::setClient):
129728        (WebCore::DatabaseManager::databaseDirectoryPath):
129729        (WebCore::DatabaseManager::setDatabaseDirectoryPath):
129730        (WebCore::DatabaseManager::isAvailable):
129731        (WebCore::DatabaseManager::setIsAvailable):
129732        (DatabaseCreationCallbackTask):
129733        (WebCore::DatabaseCreationCallbackTask::create):
129734        (WebCore::DatabaseCreationCallbackTask::performTask):
129735        (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
129736        (WebCore::DatabaseManager::openDatabase):
129737        (WebCore::DatabaseManager::openDatabaseSync):
129738        (WebCore::DatabaseManager::setHasOpenDatabases):
129739        (WebCore::DatabaseManager::fullPathForDatabase):
129740        (WebCore::DatabaseManager::hasEntryForOrigin):
129741        (WebCore::DatabaseManager::origins):
129742        (WebCore::DatabaseManager::databaseNamesForOrigin):
129743        (WebCore::DatabaseManager::detailsForNameAndOrigin):
129744        (WebCore::DatabaseManager::usageForOrigin):
129745        (WebCore::DatabaseManager::quotaForOrigin):
129746        (WebCore::DatabaseManager::setQuota):
129747        (WebCore::DatabaseManager::deleteAllDatabases):
129748        (WebCore::DatabaseManager::deleteOrigin):
129749        (WebCore::DatabaseManager::deleteDatabase):
129750        (WebCore::DatabaseManager::scheduleNotifyDatabaseChanged):
129751        (WebCore::DatabaseManager::databaseChanged):
129752        (WebCore::DatabaseManager::closeDatabasesImmediately):
129753        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
129754        (WebCore::DatabaseManager::canEstablishDatabase):
129755        (WebCore::DatabaseManager::addOpenDatabase):
129756        (WebCore::DatabaseManager::removeOpenDatabase):
129757        (WebCore::DatabaseManager::setDatabaseDetails):
129758        (WebCore::DatabaseManager::getMaxSizeForDatabase):
129759        * Modules/webdatabase/DatabaseManager.h:
129760        (DatabaseManager):
129761        * Modules/webdatabase/DatabaseSync.cpp:
129762        (WebCore::DatabaseSync::~DatabaseSync):
129763        (WebCore::DatabaseSync::closeImmediately):
129764        * Modules/webdatabase/DatabaseSync.h:
129765        (DatabaseSync):
129766        - Moved the openDatabaseSync() factory method to the DatabaseManager.
129767        * Modules/webdatabase/DatabaseTask.h:
129768        * Modules/webdatabase/SQLResultSet.h:
129769        * Modules/webdatabase/SQLStatementSync.h:
129770        * Modules/webdatabase/SQLTransaction.h:
129771        * Modules/webdatabase/SQLTransactionClient.cpp:
129772        (WebCore::SQLTransactionClient::didCommitWriteTransaction):
129773        (WebCore::SQLTransactionClient::didExecuteStatement):
129774        (WebCore::SQLTransactionClient::didExceedQuota):
129775        * Modules/webdatabase/SQLTransactionSync.h:
129776        * Modules/webdatabase/WorkerContextWebDatabase.cpp:
129777        (WebCore::WorkerContextWebDatabase::openDatabase):
129778        (WebCore::WorkerContextWebDatabase::openDatabaseSync):
129779        * Target.pri:
129780        * WebCore.gypi:
129781        * WebCore.vcproj/WebCore.vcproj:
129782        * WebCore.xcodeproj/project.pbxproj:
129783
1297842012-12-18  Per-Erik Brodin  <per-erik.brodin@ericsson.com>
129785
129786        EventSource should support CORS
129787        https://bugs.webkit.org/show_bug.cgi?id=61862
129788
129789        Reviewed by Alexey Proskuryakov.
129790
129791        Enabled CORS in EventSource with optional constructor argument to
129792        indicate whether credentials should be included or not, as per the spec.
129793        Added didFailAccessControlCheck to ThreadableLoaderClient to be able to
129794        properly distinguish CORS failures from other errors.
129795
129796        Tests: http/tests/eventsource/eventsource-cors-basic.html
129797               http/tests/eventsource/eventsource-cors-no-server.html
129798               http/tests/eventsource/eventsource-cors-with-credentials.html
129799
129800        * loader/DocumentThreadableLoader.cpp:
129801        (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
129802        (WebCore::DocumentThreadableLoader::didReceiveResponse):
129803        (WebCore::DocumentThreadableLoader::preflightFailure):
129804        * loader/ThreadableLoaderClient.h:
129805        (WebCore::ThreadableLoaderClient::didFailAccessControlCheck):
129806        * loader/ThreadableLoaderClientWrapper.h:
129807        (WebCore::ThreadableLoaderClientWrapper::didFailAccessControlCheck):
129808        (ThreadableLoaderClientWrapper):
129809        * loader/WorkerThreadableLoader.cpp:
129810        (WebCore::workerContextDidFailAccessControlCheck):
129811        (WebCore):
129812        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
129813        * loader/WorkerThreadableLoader.h:
129814        (MainThreadBridge):
129815        * page/EventSource.cpp:
129816        (WebCore::EventSource::EventSource):
129817        (WebCore::EventSource::create):
129818        (WebCore::EventSource::connect):
129819        (WebCore::EventSource::withCredentials):
129820        (WebCore):
129821        (WebCore::EventSource::didReceiveResponse):
129822        (WebCore::EventSource::didFailAccessControlCheck):
129823        (WebCore::EventSource::didFailRedirectCheck):
129824        (WebCore::EventSource::abortConnectionAttempt):
129825        (WebCore::EventSource::parseEventStreamLine):
129826        (WebCore::EventSource::createMessageEvent):
129827        * page/EventSource.h:
129828        (WebCore):
129829        (EventSource):
129830        (WebCore::EventSource::refEventTarget):
129831        (WebCore::EventSource::derefEventTarget):
129832        * page/EventSource.idl:
129833
1298342012-12-18  Michael Pruett  <michael@68k.org>
129835
129836        IndexedDB: Implement custom bindings for parsing options
129837        https://bugs.webkit.org/show_bug.cgi?id=96614
129838
129839        Reviewed by Darin Adler.
129840
129841        Parsing the options dictionary in IDBDatabase.createObjectStore()
129842        and IDBObjectStore.createIndex() requires custom bindings in JSC.
129843
129844        Tests: storage/indexeddb/*
129845
129846        * GNUmakefile.list.am:
129847        * Modules/indexeddb/IDBDatabase.cpp:
129848        (WebCore::IDBDatabase::createObjectStore):
129849        (WebCore):
129850        * Modules/indexeddb/IDBDatabase.h:
129851        (IDBDatabase):
129852        * Modules/indexeddb/IDBDatabase.idl:
129853        * Modules/indexeddb/IDBObjectStore.cpp:
129854        (WebCore::IDBObjectStore::createIndex):
129855        (WebCore):
129856        * Modules/indexeddb/IDBObjectStore.h:
129857        (IDBObjectStore):
129858        * Modules/indexeddb/IDBObjectStore.idl:
129859        * UseJSC.cmake:
129860        * bindings/js/IDBBindingUtilities.cpp:
129861        (WebCore::idbKeyPathFromValue): Added utility function for converting a JSValue to an IDBKeyPath.
129862        (WebCore):
129863        * bindings/js/IDBBindingUtilities.h:
129864        (WebCore):
129865        * bindings/js/JSIDBDatabaseCustom.cpp: Added.
129866        (WebCore):
129867        (WebCore::JSIDBDatabase::createObjectStore):
129868        * bindings/js/JSIDBObjectStoreCustom.cpp: Added.
129869        (WebCore):
129870        (WebCore::JSIDBObjectStore::createIndex):
129871
1298722012-12-18  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
129873
129874        Cannot click an element at 2nd line or more inside inline-block in vertical writing mode.
129875        https://bugs.webkit.org/show_bug.cgi?id=104775
129876
129877        Reviewed by Dean Jackson.
129878
129879        If the parent of an inline box changes writing mode, then the inline box must flip incoming hit point coordinates.
129880        Otherwise, the coordinate will be misunderstood because the box has a different origin from its parent.
129881        If the InlineBox doesn't flip its offset, its children will use the wrong offset
129882        because they don't know their grandparent changed writing modes.
129883        InlineBox::nodeAtPoint should flip accumulatedOffset like InlineBox::paint().
129884
129885        Test: fast/writing-mode/vertical-inline-block-hittest.html
129886
129887        * rendering/InlineBox.cpp:
129888        (WebCore::InlineBox::nodeAtPoint):
129889
1298902012-12-18  Simon Fraser  <simon.fraser@apple.com>
129891
129892        Allow position:sticky elements to be moved by the scrolling thread
129893        https://bugs.webkit.org/show_bug.cgi?id=105245
129894
129895        Reviewed by Beth Dakin.
129896
129897        Allow sticky position elements to be repositioned on the scrolling thread.
129898        
129899        RenderLayerCompositor::requiresCompositingForPosition() is changed to make
129900        all position:-webkit-sticky elements composited.
129901        
129902        Sticky position constraints are already communicated to the ScrollingCoordinator,
129903        but now we created ScrollingStateStickyNodes for them, and send the constraints
129904        over to the scrolling thread for new ScrollingTreeStickyNodes. That allows
129905        their layers to be repositioned on the scrolling thread.
129906
129907        Tests: platform/mac/tiled-drawing/sticky/sticky-horizontal.html
129908               platform/mac/tiled-drawing/sticky/sticky-vertical.html
129909
129910        * WebCore.xcodeproj/project.pbxproj: Add new files.
129911        * page/scrolling/ScrollingConstraints.h:
129912        (WebCore::StickyPositionViewportConstraints::absoluteContainingBlockRect): New accessors.
129913        (WebCore::StickyPositionViewportConstraints::absoluteStickyBoxRect):
129914        (WebCore::StickyPositionViewportConstraints::operator==):
129915        (WebCore::StickyPositionViewportConstraints::operator!=):
129916        * page/scrolling/ScrollingCoordinator.h: Added StickyNode type.
129917        * page/scrolling/ScrollingStateFixedNode.cpp:
129918        (WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
129919        New virtual method that allows different kinds of nodes to sync layer positions.
129920        * page/scrolling/ScrollingStateFixedNode.h:
129921        * page/scrolling/ScrollingStateNode.h:
129922        (WebCore::ScrollingStateNode::isStickyNode):
129923        (WebCore::ScrollingStateNode::syncLayerPositionForViewportRect):
129924        * page/scrolling/ScrollingStateStickyNode.cpp: Added.
129925        (WebCore::ScrollingStateStickyNode::create):
129926        (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
129927        (WebCore::ScrollingStateStickyNode::~ScrollingStateStickyNode):
129928        (WebCore::ScrollingStateStickyNode::clone):
129929        (WebCore::ScrollingStateStickyNode::updateConstraints):
129930        (WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
129931        (WebCore::ScrollingStateStickyNode::dumpProperties):
129932        * page/scrolling/ScrollingStateStickyNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateFixedNode.h.
129933        (ScrollingStateStickyNode):
129934        (WebCore::ScrollingStateStickyNode::viewportConstraints):
129935        (WebCore::toScrollingStateStickyNode):
129936        * page/scrolling/ScrollingTree.cpp:
129937        (WebCore::ScrollingTree::updateTreeFromStateNode):
129938        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
129939        (WebCore::ScrollingCoordinatorMac::attachToStateTree): Handle sticky nodes.
129940        (WebCore::ScrollingCoordinatorMac::syncChildPositions): Generalize to different kinds of nodes by
129941        calling a virtual method on the node.
129942        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
129943        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
129944        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
129945        * page/scrolling/mac/ScrollingTreeStickyNode.h: Added.
129946        (ScrollingTreeStickyNode):
129947        * page/scrolling/mac/ScrollingTreeStickyNode.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.mm.
129948        (WebCore::ScrollingTreeStickyNode::create):
129949        (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
129950        (WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):
129951        (WebCore::ScrollingTreeStickyNode::update):
129952        (WebCore::operator*):
129953        (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange):
129954        * rendering/RenderLayerBacking.cpp:
129955        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
129956        * rendering/RenderLayerCompositor.cpp:
129957        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
129958        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
129959        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
129960        (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
129961        * rendering/RenderLayerCompositor.h:
129962        (RenderLayerCompositor):
129963
1299642012-12-18  David Grogan  <dgrogan@chromium.org>
129965
129966        IndexedDB: Split BackingStore histogram
129967        https://bugs.webkit.org/show_bug.cgi?id=105222
129968
129969        Reviewed by Tony Chang.
129970
129971        Add separate histograms for Consistency, Write, and Read errors.
129972        Recategorize some read errors as consistency errors.
129973
129974        Tested the preprocessor logic by manually making some functions fail
129975        and printing the histogram string from chromium code.
129976
129977        Next up is logging successes to get an idea of which functions have
129978        the highest failure _rate_.
129979
129980        * Modules/indexeddb/IDBBackingStore.cpp:
129981        (WebCore::recordInternalError):
129982        (WebCore):
129983        (WebCore::setUpMetadata):
129984        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
129985        (WebCore::getNewDatabaseId):
129986        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
129987        (WebCore::IDBBackingStore::getObjectStores):
129988        (WebCore::setMaxObjectStoreId):
129989        (WebCore::IDBBackingStore::deleteObjectStore):
129990        (WebCore::IDBBackingStore::getRecord):
129991        (WebCore::getNewVersionNumber):
129992        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
129993        (WebCore::IDBBackingStore::keyExistsInObjectStore):
129994        (WebCore::IDBBackingStore::getIndexes):
129995        (WebCore::setMaxIndexId):
129996        (WebCore::versionExists):
129997        (WebCore::IDBBackingStore::findKeyInIndex):
129998        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
129999        (WebCore::IDBBackingStore::keyExistsInIndex):
130000        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
130001        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
130002        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
130003        (WebCore::IndexCursorImpl::loadCurrentRow):
130004
1300052012-12-18  Dean Jackson  <dino@apple.com>
130006
130007        Track menu needs localization
130008        https://bugs.webkit.org/show_bug.cgi?id=105233
130009
130010        Reviewed by Eric Carlson.
130011
130012        Allow the UI strings in the closed captions menu to be localized, and
130013        profile strings for the English locale.
130014
130015        Test: media/video-controls-captions-trackmenu-localized.html
130016
130017        * English.lproj/Localizable.strings: Adds the four new captions strings.
130018        * html/shadow/MediaControlElements.cpp:
130019        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Use localized getters.
130020        * platform/LocalizedStrings.cpp:
130021        (WebCore::textTrackClosedCaptionsText): New localized string getter.
130022        (WebCore::textTrackSubtitlesText): Ditto.
130023        (WebCore::textTrackOffText): Ditto.
130024        (WebCore::textTrackNoLabelText): Ditto.
130025        * platform/LocalizedStrings.h:
130026
1300272012-12-18  Beth Dakin  <bdakin@apple.com>
130028
130029        https://bugs.webkit.org/show_bug.cgi?id=102579
130030        [mac] Enable scaled cursors
130031
130032        Reviewed by Dean Jackson.
130033
130034        Not much is required to get this turned on. We just need the feature to be 
130035        defined, and we need to initialize m_imageScaleFactor in the Cursor constructors.
130036
130037        * Configurations/FeatureDefines.xcconfig:
130038        * platform/mac/CursorMac.mm:
130039        (WebCore::Cursor::Cursor):
130040        (WebCore::Cursor::operator=):
130041
1300422012-12-18  Joseph Pecoraro  <pecoraro@apple.com>
130043
130044        [Mac] Add Build Phase to Check Headers for Inappropriate Macros (Platform.h macros)
130045        https://bugs.webkit.org/show_bug.cgi?id=104279
130046
130047        Reviewed by David Kilzer.
130048
130049        Set the executable as an input path on the check-* build phases.
130050        
130051        * WebCore.xcodeproj/project.pbxproj:
130052
1300532012-12-18  Adam Klein  <adamk@chromium.org>
130054
130055        [HTMLTemplateElement] Prevent first-level recursive <template> from resetting the implied context
130056        https://bugs.webkit.org/show_bug.cgi?id=104142
130057
130058        Reviewed by Eric Seidel.
130059
130060        This patch adds a stack of InsertionModes retains the chosen
130061        "implied context" for each template element.
130062
130063        Based on a patch by Rafael Weinstein.
130064
130065        Tests added to html5lib/run-template.html
130066
130067        * html/parser/HTMLTreeBuilder.cpp:
130068        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): Initialize the stack appropriately for HTMLTemplateElement.innerHTML.
130069        (WebCore::HTMLTreeBuilder::processTemplateStartTag):
130070        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
130071        (WebCore::HTMLTreeBuilder::processStartTag): Once we've figured out the insertion mode for a given <template> store it in the stack.
130072        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
130073        (WebCore::HTMLTreeBuilder::processEndTag):
130074        (WebCore::HTMLTreeBuilder::processEndOfFile): Clear the stack if we hit end of file to allow the assertion in finish().
130075        (WebCore::HTMLTreeBuilder::finished):
130076        * html/parser/HTMLTreeBuilder.h:
130077        (HTMLTreeBuilder):
130078
1300792012-12-18  Andrew Lo  <anlo@rim.com>
130080
130081        [BlackBerry] Use midpoint for fixed position heuristic
130082        https://bugs.webkit.org/show_bug.cgi?id=105329
130083
130084        Reviewed by Rob Buis.
130085        Internally reviewed by Joe Mason.
130086
130087        Use the midpoint of the layer when determining whether the
130088        fixed-position layer is on the top or bottom half of the screen
130089        rather than the top of the layer.
130090        Internal PR 237073.
130091
130092        No new tests are needed.
130093
130094        * platform/graphics/blackberry/LayerRenderer.cpp:
130095        (WebCore::LayerRenderer::updateLayersRecursive):
130096
1300972012-12-18  Andrew Lo  <anlo@rim.com>
130098
130099        [BlackBerry] Fixed position elements should be fixed position on x axis
130100        https://bugs.webkit.org/show_bug.cgi?id=105333
130101
130102        Reviewed by Rob Buis.
130103        Internally reviewed by Joe Mason.
130104
130105        Have fixed position elements be fixed on the X axis as well as Y.
130106        This better aligns with what other ports are doing.
130107        Internal PR237073.
130108
130109        No new tests are needed.
130110
130111        * platform/graphics/blackberry/LayerRenderer.cpp:
130112        (WebCore::LayerRenderer::updateLayersRecursive):
130113
1301142012-12-18  James Simonsen  <simonjam@chromium.org>
130115
130116        [Resource Timing] Populate responseEnd on cross-origin requests
130117        https://bugs.webkit.org/show_bug.cgi?id=105231
130118
130119        Reviewed by Tony Gentilcore.
130120
130121        No new tests. Covered by existing cross-origin test, but masked by iframe bug.
130122
130123        * page/PerformanceResourceTiming.cpp:
130124        (WebCore::PerformanceResourceTiming::responseEnd):
130125
1301262012-12-18  Tim Horton  <timothy_horton@apple.com>
130127
130128        Unreviewed build fix after http://trac.webkit.org/changeset/138041
130129
130130        Need to cast int64_t to int32_t to avoid a warning on some compilers.
130131
130132        * platform/LayoutUnit.h:
130133        (WebCore::boundedMultiply):
130134
1301352012-12-18  Hans Muller  <hmuller@adobe.com>
130136
130137        [CSS Exclusions] shape-inside layout fails to adjust first line correctly for writing-mode: vertical-rl
130138        https://bugs.webkit.org/show_bug.cgi?id=104419
130139
130140        Reviewed by Dirk Schulze.
130141
130142        ExclusionShapes no longer maintain a private "internal" coordinate system,
130143        they're now defined in logical coordinates. The createExclusionShape() method
130144        now handles the one-time conversion from physical to logical coordinates.
130145
130146        Test: fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-003.html
130147
130148        * rendering/ExclusionPolygon.cpp:
130149        (WebCore::ExclusionPolygon::getExcludedIntervals): Removed logical to internal coordinate conversions.
130150        (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
130151        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): Ditto.
130152        * rendering/ExclusionPolygon.h:
130153        * rendering/ExclusionRectangle.cpp:
130154        (WebCore::ExclusionRectangle::getExcludedIntervals): Removed logical to internal coordinate conversions.
130155        (WebCore::ExclusionRectangle::getIncludedIntervals): Ditto.
130156        (WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): Ditto.
130157        * rendering/ExclusionRectangle.h:
130158        * rendering/ExclusionShape.cpp:
130159        (WebCore::physicalRectToLogical): Convert a FloatRect defined with coordinates to logical coordinates.
130160        (WebCore::physicalPointToLogical): Similar.
130161        (WebCore::physicalSizeToLogical): Simlar.
130162        (WebCore::ExclusionShape::createExclusionShape): Convert shapes from physical to logical coordinates.
130163        * rendering/ExclusionShape.h:
130164        (ExclusionShape): Removed internal to logical coordinate conversion utility methods.
130165
1301662012-12-17  Emil A Eklund  <eae@chromium.org>
130167
130168        Optimize LayoutUnit::boundedMultiply
130169        https://bugs.webkit.org/show_bug.cgi?id=105216
130170
130171        Reviewed by Levi Weintraub.
130172
130173        LayoutUnit::boundedMultiply is used for multiplication that's
130174        prone to overflow and for all LayoutUnit multiplication if
130175        SATURATED_LAYOUT_ARITHMETIC is enabled. The current approach is
130176        quite inefficient.
130177
130178        Change it to use a more efficient saturated multiplication
130179        implementation. As the implementation needs to use
130180        kFixedPointDenominator it is implemented in LayoutUnit.h instead
130181        of in wtf/SaturatedArithmetic.h.
130182
130183        Test: Covered by TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
130184
130185        * platform/LayoutUnit.h:
130186        (WebCore::boundedMultiply):
130187
1301882012-12-18  Bear Travis  <betravis@adobe.com>
130189
130190        [CSS Exclusions] Blocks should not re-use their parent's ExclusionShapeInsideInfo
130191        if they participate in inline layout
130192        https://bugs.webkit.org/show_bug.cgi?id=104582
130193
130194        Reviewed by Julien Chaffraix.
130195
130196        Blocks that participate in inline layout should not re-use a parent's
130197        ExclusionShapeInsideInfo, as the parent and child would both use the info for
130198        layout at the same time. This patch alters LayoutState to not include
130199        ExclusionShapeInsideInfo if the current block participates in inline layout (ie,
130200        it is a float, inline-block, or inline-table).
130201
130202        Test: fast/exclusions/shape-inside/shape-inside-recursive-layout.html
130203
130204        * rendering/ExclusionShapeInsideInfo.h:
130205        (WebCore::ExclusionShapeInsideInfo::ownerBlock): Return the block associated with
130206        the shape-inside style.
130207        * rendering/LayoutState.cpp:
130208        (WebCore::LayoutState::LayoutState): Do not re-use ExclusionShapeInsideInfo
130209        on a block that participates in inline layout (floats and inline blocks).
130210        * rendering/RenderBlock.h:
130211        (WebCore::RenderBlock::allowsExclusionShapeInsideInfoSharing): Returns whether the
130212        block can re-use an ExclusionShapeInsideInfo from its parent block.
130213        * rendering/RenderBlockLineLayout.cpp:
130214        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Adding an assert to make sure
130215        we do not overwrite ExclusionShapeInsideInfo's state during a recursive layout.
130216        * rendering/RenderView.h:
130217        (WebCore::RenderView::pushLayoutState): Push a new LayoutState in the case that
130218        ExclusionShapeInsideInfo exists but should not be propagated.
130219
1302202012-12-18  Tony Chang  <tony@chromium.org>
130221
130222        REGRESSION(r136324): flex items with percent heights not resizing
130223        https://bugs.webkit.org/show_bug.cgi?id=105213
130224
130225        Reviewed by Ojan Vafai.
130226
130227        We were missing some of the logic for when to relayout a flex child. Refactor
130228        the code in RenderBlock::layoutBlockChildren so we can use it in RenderFlexibleBox.
130229
130230        Test: css3/flexbox/flexitem-percent-height-change.html
130231
130232        * rendering/RenderBlock.cpp:
130233        (WebCore::RenderBlock::updateNeedsLayoutAndPreferredLogicalWidthsDirtyBeforeBlockChildLayout):
130234        Pull out logic needed by RenderFlexibleBox.
130235        (WebCore::RenderBlock::layoutBlockChildren): Use helper method.
130236        * rendering/RenderBlock.h:
130237        (RenderBlock): Add updateNeedsLayoutAndPreferredLogicalWidthsDirtyBeforeBlockChildLayout.
130238        * rendering/RenderFlexibleBox.cpp:
130239        (WebCore::RenderFlexibleBox::layoutBlock): Pass through relayoutChildren bool.
130240        (WebCore::RenderFlexibleBox::layoutFlexItems): Pass through relayoutChildren and mark the child as needing
130241        layout if it has a percent height.
130242        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): We need to always layout here since we're
130243        trying to get the preferred size.
130244        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
130245        * rendering/RenderFlexibleBox.h:
130246
1302472012-12-17  Simon Fraser  <simon.fraser@apple.com>
130248
130249        Fix position:-webkit-sticky behavior when zoomed
130250        https://bugs.webkit.org/show_bug.cgi?id=105251
130251
130252        Reviewed by Dean Jackson.
130253
130254        Position sticky elements were misplaced when stickily-constrained, under zooming.
130255        The cause was that some of the functions used to compute sticky position
130256        took page scale into account, and some did not.
130257        
130258        Fix by using localToContainerQuad(..., view()) to compute RenderView-relative
130259        quads, which avoids page scale, so all the constraints math is done ignoring
130260        page scale. This also requires that we compute a scale-free viewport rect
130261        in stickyPositionOffset().
130262
130263        Test: fast/css/sticky/sticky-top-zoomed.html
130264
130265        * rendering/RenderBoxModelObject.cpp:
130266        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
130267        (WebCore::RenderBoxModelObject::stickyPositionOffset):
130268
1302692012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
130270
130271        Web Inspector: DataGrid cell values are "clipped" in editing mode.
130272        https://bugs.webkit.org/show_bug.cgi?id=105277
130273
130274        Reviewed by Pavel Feldman.
130275
130276        UIUtils expects that "text-overflow" is not "ellipsis".
130277
130278        * inspector/front-end/dataGrid.css:
130279        (.data-grid td.editing > div): Override text-overflow for editing mode.
130280
1302812012-12-18  Ken Kania  <kkania@chromium.org>
130282
130283        [Inspector] Add frameId for frame owner nodes.
130284        https://bugs.webkit.org/show_bug.cgi?id=105317
130285
130286        Reviewed by Pavel Feldman.
130287
130288        This is needed to translate from a node ID to the execution context ID for
130289        evaluating scripts in the associated frame.
130290
130291        * inspector/Inspector.json:
130292        * inspector/InspectorDOMAgent.cpp:
130293        (WebCore::InspectorDOMAgent::buildObjectForNode):
130294
1302952012-12-18  peavo@outlook.com  <peavo@outlook.com>
130296
130297        [WinCairo] Compile fix.
130298        https://bugs.webkit.org/show_bug.cgi?id=105175
130299
130300        Reviewed by Simon Fraser.
130301
130302        * rendering/RenderLayer.h: Compile fixes for USE(ACCELERATED_COMPOSITING) mismatch.
130303
1303042012-12-18  Emil A Eklund  <eae@chromium.org>
130305
130306        Have kFixedPointDenominator be constant across ports
130307        https://bugs.webkit.org/show_bug.cgi?id=104843
130308
130309        Reviewed by Julien Chaffraix.
130310
130311        Currently the kFixedPointDenominator constant is set to either
130312        64 or 1 depending on the SUBPIXEL_LAYOUT flag. As this constant
130313        is used to limit the range of supported values this results in
130314        inconsistencies across ports.
130315
130316        Change kFixedPointDenominator to always be 64 and introduce a
130317        new constant (kEffectiveFixedPointDenominator) that varies.
130318        This ensures that the same range of values are supported across
130319        ports regardless of the SUBPIXEL_LAYOUT flag.
130320        
130321        Covered by fast/css/large-numbers.html and fast/css/large-number-round-trip.html
130322
130323        * platform/LayoutUnit.h:
130324        Add kEffectiveFixedPointDenominator constant and change
130325        LayoutUnit code to use it instead of kFixedPointDenominator
130326        which is now set to 64 regardless of the SUBPIXEL_LAYOUT flag.
130327
1303282012-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>
130329
130330        Unreviewed, rolling out r137979.
130331        http://trac.webkit.org/changeset/137979
130332        https://bugs.webkit.org/show_bug.cgi?id=105311
130333
130334        nodeName returned by the inspector protocol commands should
130335        match one accessible fro JS (Requested by yurys_ on #webkit).
130336
130337        * inspector/InspectorDOMAgent.cpp:
130338        (WebCore::InspectorDOMAgent::buildObjectForNode):
130339
1303402012-12-18  Alexander Pavlov  <apavlov@chromium.org>
130341
130342        Web Inspector: [Styles] Selector matches are not marked after property editing
130343        https://bugs.webkit.org/show_bug.cgi?id=105284
130344
130345        Reviewed by Vsevolod Vlasov.
130346
130347        Once a property edit is committed, the selector markup is reset and needs to be re-applied.
130348
130349        * inspector/front-end/StylesSidebarPane.js:
130350        (WebInspector.StylePropertiesSection.prototype.update):
130351
1303522012-12-18  Eric Carlson  <eric.carlson@apple.com>
130353
130354        Add in-band text track cues only once
130355        https://bugs.webkit.org/show_bug.cgi?id=104593
130356
130357        Reviewed by Dean Jackson.
130358
130359        Test: media/track/track-in-band-cues-added-once.html
130360
130361        * html/track/InbandTextTrack.cpp:
130362        (WebCore::InbandTextTrack::hasCue): New.
130363        * html/track/InbandTextTrack.h:
130364
130365        * html/track/TextTrackCue.cpp:
130366        (WebCore::TextTrackCue::setCueSettings): Remember the raw cue settings so they can be accessed later.
130367        * html/track/TextTrackCue.h:
130368
130369        * platform/graphics/InbandTextTrackPrivateClient.h: Declare hasCue.
130370
130371        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
130372        (WebCore::InbandTextTrackPrivateAVF::processCue): Early return if m_player has been cleared.
130373        (WebCore::InbandTextTrackPrivateAVF::setMode): Ditto.
130374
130375        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
130376        (WebCore::MediaPlayerPrivateAVFoundation::seek): Clear the partially accumulated cue when the seek 
130377            starts, not when it completes.
130378        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
130379        (WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): Don't add a cue if it is already in the
130380            text track cue list.
130381        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
130382        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Drive-by cleanup, clear the track list completely.
130383
1303842012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
130385
130386        Web Inspector: [Network] Ordering of cookies displayed is nondeterministic.
130387        https://bugs.webkit.org/show_bug.cgi?id=105272
130388
130389        Reviewed by Vsevolod Vlasov.
130390
130391        This patch fixes double-selection of request and sets default ordering
130392        of cookies.
130393
130394        * inspector/front-end/CookiesTable.js: By default sort by name.
130395        * inspector/front-end/NetworkPanel.js: Do not fire "select" on
130396        mouse-click in viewing-request mode.
130397
1303982012-12-18  Alexander Pavlov  <apavlov@chromium.org>
130399
130400        Unreviewed, rolling out r138011.
130401        http://trac.webkit.org/changeset/138011
130402        https://bugs.webkit.org/show_bug.cgi?id=105272
130403
130404        WebInspector: Broke request selection in the Network panel
130405
130406        * inspector/front-end/CookiesTable.js:
130407        (WebInspector.CookiesTable):
130408        * inspector/front-end/NetworkPanel.js:
130409        (WebInspector.NetworkPanel.prototype._toggleGridMode):
130410        (WebInspector.NetworkPanel.prototype._toggleViewingRequestMode):
130411        (WebInspector.NetworkDataGridNode.prototype.createCells):
130412        (WebInspector.NetworkDataGridNode.prototype.get selectable):
130413
1304142012-12-18  Nate Chapin  <japhet@chromium.org>
130415
130416        REGRESSION (r137607): Cannot download files, stuck in “Preparing to download”
130417        https://bugs.webkit.org/show_bug.cgi?id=105044
130418
130419        Reviewed by Antti Koivisto.
130420
130421        The work done by DocumentLoader::mainReceivedError() changed subtly in r137607,
130422        such that it cancels the ResourceHandle. We want to treat switching to a download
130423        like a failure, where WebCore assumes that the load is finished, and no
130424        cancellation is required.
130425
130426        No new tests, tested manually by verifying that downloading files works in
130427        Safari Mac.
130428
130429        * loader/MainResourceLoader.cpp:
130430        (WebCore::MainResourceLoader::continueAfterContentPolicy):
130431        * platform/network/mac/ResourceHandleMac.mm:
130432        (WebCore::ResourceHandle::cancel): Remove the workaround added in r137763.
130433
1304342012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
130435
130436        Web Inspector: [Network] Ordering of cookies displayed is nondeterministic.
130437        https://bugs.webkit.org/show_bug.cgi?id=105272
130438
130439        Reviewed by Alexander Pavlov.
130440
130441        This patch fixes double-selection of request and sets default ordering
130442        of cookies.
130443
130444        * inspector/front-end/CookiesTable.js: By default sort by name.
130445        * inspector/front-end/NetworkPanel.js: Remove redundant member, make
130446        rows "not-selectable", activate request selection on "mouse-down".
130447
1304482012-12-18  Tommy Widenflycht  <tommyw@chromium.org>
130449
130450        [JSC] Refactoring CodeGeneratorJS.pm to simplify adding support for overloaded constructors
130451        https://bugs.webkit.org/show_bug.cgi?id=105271
130452
130453        Reviewed by Kentaro Hara.
130454
130455        This patch splits the very large function that generates constructor code into a few smaller ones.
130456        No changes in actual generated code but some functions in the generated bindings code moves.
130457
130458        Existing tests cover patch.
130459
130460        * bindings/scripts/CodeGeneratorJS.pm:
130461        (GenerateImplementation):
130462        (GenerateConstructorDefinitions):
130463        (GenerateConstructorDefinition):
130464        (GenerateConstructorSupportDefinitions):
130465        (IsCustomConstructable):
130466        (IsConstructable):
130467        * bindings/scripts/test/JS/JSFloat64Array.cpp:
130468        (WebCore::JSFloat64ArrayConstructor::constructJSFloat64Array):
130469        (WebCore):
130470        (WebCore::toJS):
130471        (WebCore::JSFloat64Array::indexSetter):
130472        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
130473        (WebCore):
130474        (WebCore::JSTestEventConstructorConstructor::JSTestEventConstructorConstructor):
130475        (WebCore::JSTestEventConstructorConstructor::finishCreation):
130476        (WebCore::JSTestEventConstructorConstructor::getOwnPropertySlot):
130477        (WebCore::JSTestEventConstructorConstructor::getOwnPropertyDescriptor):
130478        * bindings/scripts/test/JS/JSTestInterface.cpp:
130479        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
130480        (WebCore):
130481        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
130482        (WebCore):
130483        (WebCore::JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor):
130484        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
130485        * bindings/scripts/test/JS/JSTestNode.cpp:
130486        (WebCore::JSTestNodeConstructor::constructJSTestNode):
130487        (WebCore):
130488        * bindings/scripts/test/JS/JSTestObj.cpp:
130489        (WebCore::JSTestObjConstructor::constructJSTestObj):
130490        (WebCore):
130491        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
130492        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
130493        (WebCore):
130494        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
130495        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
130496        (WebCore):
130497
1304982012-12-18  Max Feil  <mfeil@rim.com>
130499
130500        [BlackBerry] Add support for setMuted() for media
130501        https://bugs.webkit.org/show_bug.cgi?id=105254
130502
130503        Reviewed by George Staikos.
130504
130505        Simply pass the API call through to the platform layer.
130506
130507        Covered by existing tests.
130508
130509        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
130510        (WebCore::MediaPlayerPrivate::setMuted):
130511        (WebCore):
130512        (WebCore::MediaPlayerPrivate::muted):
130513        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
130514        (MediaPlayerPrivate):
130515        (WebCore::MediaPlayerPrivate::supportsMuting):
130516
1305172012-12-18  Yury Semikhatsky  <yurys@chromium.org>
130518
130519        Web Inspector: show cached images under MemoryCache -> Images section
130520        https://bugs.webkit.org/show_bug.cgi?id=105261
130521
130522        Reviewed by Pavel Feldman.
130523
130524        Provided class name and name for several objects related to CachedImage.
130525        Changed native memory snapsho view so that MemoryCache.Image section can
130526        be expanded into individual images.
130527
130528        * inspector/front-end/NativeMemorySnapshotView.js:
130529        (WebInspector.NativeMemorySnapshotView):
130530        (WebInspector.NativeSnapshotNode.prototype._addChildrenFromGraph):
130531        (WebInspector.NativeHeapGraphEdge):
130532        (WebInspector.NativeHeapGraphEdge.prototype.type):
130533        (WebInspector.NativeHeapGraphEdge.prototype.name):
130534        (WebInspector.NativeHeapGraphEdge.prototype.target):
130535        (WebInspector.NativeHeapGraphEdge.prototype._getStringField):
130536        (WebInspector.NativeHeapGraphEdge.prototype.toString):
130537        (WebInspector.NativeHeapGraphNode.prototype.size):
130538        (WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
130539        (WebInspector.NativeHeapGraphNode.prototype.outgoingEdges):
130540        (WebInspector.NativeHeapGraphNode.prototype.targetOfEdge):
130541        (WebInspector.NativeHeapGraphNode.prototype.targetsOfAllEdges):
130542        (WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
130543        (WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
130544        (WebInspector.NativeHeapGraphNode.prototype._getStringField):
130545        (WebInspector.NativeHeapGraphNode.prototype.toString):
130546        (WebInspector.NativeHeapGraph):
130547        (WebInspector.NativeHeapGraph.prototype.rootNodes):
130548        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
130549        (WebInspector.NativeHeapGraph.prototype._addDummyNode):
130550        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
130551        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
130552        * loader/cache/CachedImage.cpp:
130553        (WebCore::CachedImage::reportMemoryUsage):
130554        * loader/cache/CachedResource.cpp:
130555        (WebCore::CachedResource::reportMemoryUsage):
130556        * loader/cache/MemoryCache.cpp:
130557        (WebCore::MemoryCache::reportMemoryUsage):
130558        * platform/graphics/BitmapImage.cpp:
130559        (WebCore::BitmapImage::reportMemoryUsage):
130560        (WebCore::FrameData::reportMemoryUsage):
130561        * platform/graphics/Image.cpp:
130562        (WebCore::Image::reportMemoryUsage):
130563        * platform/graphics/skia/MemoryInstrumentationSkia.cpp:
130564        (reportMemoryUsage):
130565
1305662012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
130567
130568        Web Inspector: Calculate "idle" time for CPU profiles.
130569        https://bugs.webkit.org/show_bug.cgi?id=103120
130570
130571        Reviewed by Pavel Feldman.
130572
130573        CPU profiles contain a very confusing "(program)" item.
130574        It is time when there is no JS stack.
130575        That could be either idle time, or time when browser is doing something.
130576
130577        To split "(program)" item to idle and really program time we are to
130578        calculate idle time during profiling.
130579
130580        * bindings/js/ScriptProfile.cpp: Added "idleTime" getter.
130581        * bindings/js/ScriptProfile.h: Ditto.
130582        * bindings/js/ScriptProfiler.h:
130583        Added getter of thread-local map of currently written profiles.
130584        * bindings/v8/ScriptProfile.cpp: Added "idleTime" getter.
130585        * bindings/v8/ScriptProfile.h: Ditto.
130586        * bindings/v8/ScriptProfiler.cpp:
130587        (WebCore::ScriptProfiler::start): Put profile name to map.
130588        (WebCore::ScriptProfiler::stop): Remove profile name from map;
130589        pass idleTime to profile constructor.
130590        * bindings/v8/ScriptProfiler.h:
130591        Added getter of thread-local map of currently written profiles.
130592        * inspector/Inspector.json: Added "idleTime" field to profile.
130593        * inspector/InspectorController.cpp: Pass hooks to profiler agent.
130594        * inspector/InspectorProfilerAgent.cpp:
130595        Add idle time to currently written profiles.
130596        * inspector/InspectorProfilerAgent.h:
130597        Added member to hold reference to map of currently written profiles.
130598        * inspector/InspectorTimelineAgent.h:
130599        Cleanup.
130600        * inspector/ScriptProfile.idl:
130601        Add "idleTime" member.
130602
1306032012-12-17  Yury Semikhatsky  <yurys@chromium.org>
130604
130605        Web Inspector: MediaQueryList listener silently catches errors
130606        https://bugs.webkit.org/show_bug.cgi?id=105162
130607
130608        Reviewed by Alexander Pavlov.
130609
130610        Drive-by: removed unused ScriptCallback::call(bool).
130611
130612        Test: inspector-protocol/media-query-listener-exception.html
130613
130614        * bindings/js/ScriptFunctionCall.cpp:
130615        (WebCore::ScriptCallback::call):
130616        * bindings/js/ScriptFunctionCall.h:
130617        (ScriptCallback):
130618        * bindings/v8/ScriptFunctionCall.cpp: report uncaught exception to the inspector
130619        if it was thrown during the function call.
130620        (WebCore::ScriptCallback::call):
130621        * bindings/v8/ScriptFunctionCall.h:
130622        (ScriptCallback):
130623
1306242012-12-18  Eugene Klyuchnikov  <eustas@chromium.org>
130625
130626        Web Inspector: Network: display JavaScript stack in case of script initiator.
130627        https://bugs.webkit.org/show_bug.cgi?id=104899
130628
130629        Reviewed by Vsevolod Vlasov.
130630
130631        Show popup with navigavle stack-trace.
130632
130633        * inspector/front-end/NetworkPanel.js:
130634        (WebInspector.NetworkLogView.prototype._getPopoverAnchor):
130635        Added new target.
130636        (WebInspector.NetworkLogView.prototype._showPopover):
130637        Added case for new target.
130638        (WebInspector.NetworkLogView.prototype._generateScriptInitiatedPopoverContent):
130639        Generates table with stack trace items.
130640        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
130641        Added target marker, removed annoying titles.
130642
1306432012-12-18  Tamas Czene  <tczene@inf.u-szeged.hu>
130644
130645        Style fix to OpenCL SVG Filters
130646        https://bugs.webkit.org/show_bug.cgi?id=105265
130647
130648        Reviewed by Zoltan Herczeg.
130649
130650        Inserted missing spaces and correct copyright text. There were no vital changes.
130651
130652        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
130653        (WebCore):
130654        * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
130655        (FilterContextOpenCL):
130656        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp:
130657        (WebCore::FilterContextOpenCL::applyFEColorMatrix):
130658        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp:
130659        (WebCore):
130660        (WebCore::FilterContextOpenCL::compileFETurbulence):
130661        (WebCore::FilterContextOpenCL::applyFETurbulence):
130662        (WebCore::FETurbulence::platformApplyOpenCL):
130663        * platform/graphics/gpu/opencl/OpenCLHandle.h:
130664
1306652012-12-17  Andrey Adaikin  <aandrey@chromium.org>
130666
130667        Web Inspector: [WebGL] handle video elements used in WebGL
130668        https://bugs.webkit.org/show_bug.cgi?id=105170
130669
130670        Reviewed by Yury Semikhatsky.
130671
130672        Copy current image of video elements into a canvas to use it later in the replay.
130673
130674        * inspector/InjectedScriptCanvasModuleSource.js:
130675        (.):
130676
1306772012-12-17  Luke Macpherson   <macpherson@chromium.org>
130678
130679        Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
130680        https://bugs.webkit.org/show_bug.cgi?id=104876
130681
130682        Reviewed by Steve Block.
130683
130684        Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
130685        the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
130686        here will produce a more useful backtrace.
130687
130688        No new tests as functionality unchanged.
130689
130690        * css/CSSProperty.h:
130691        (WebCore::CSSProperty::CSSProperty):
130692
1306932012-12-17  Vsevolod Vlasov  <vsevik@chromium.org>
130694
130695        Web Inspector: Make inspector scripts sourceURL absolute.
130696        https://bugs.webkit.org/show_bug.cgi?id=105166
130697
130698        Reviewed by Yury Semikhatsky.
130699
130700        * inspector/front-end/utilities.js:
130701
1307022012-12-17  Huang Dongsung  <luxtella@company100.net>
130703
130704        REGRESSION(r137442): Crash because of an uninitialized member.
130705        https://bugs.webkit.org/show_bug.cgi?id=105246
130706
130707        Reviewed by Noam Rosenthal.
130708
130709        TextureMapperGL defines m_context although TextureMapper defines m_context.
130710        r137442 removes the initialization code in TextureMapperGL, which is
130711        what causes this regression. This patch removes the duplicated member
130712        in TextureMapperGL.
130713
130714        No new tests. Covered by existing tests.
130715
130716        * platform/graphics/texmap/TextureMapper.cpp:
130717        (WebCore::TextureMapper::TextureMapper):
130718        * platform/graphics/texmap/TextureMapper.h:
130719        (WebCore::TextureMapper::setGraphicsContext):
130720        (WebCore::TextureMapper::graphicsContext):
130721        (TextureMapper):
130722        * platform/graphics/texmap/TextureMapperGL.h:
130723        (WebCore):
130724
1307252012-12-17  Philip Rogers  <pdr@google.com>
130726
130727        Queue container size requests while images are loading.
130728        https://bugs.webkit.org/show_bug.cgi?id=105097
130729
130730        Reviewed by Dean Jackson.
130731
130732        We use CachedImage::setContainerSizeForRenderer(...) to notify images of requesting
130733        container sizes. Unfortunately, if the image is not yet loaded we ignore this container
130734        size information! This patch stores requesting container sizes made while the image is
130735        not yet loaded.
130736
130737        This patch fixes a bug where SVG images would display incorrectly on the first load but
130738        correctly thereafter. Additionally, this bug caused the SVGImageCache to not be used in many
130739        real world scenarios.
130740
130741        This patch is loosely based on a patch by blambov in WK98403.
130742
130743        Test: http/tests/misc/svg-image-delayed-size-negotiation.html
130744
130745        * loader/cache/CachedImage.cpp:
130746        (WebCore::CachedImage::didRemoveClient):
130747        (WebCore::CachedImage::allClientsRemoved):
130748        (WebCore::CachedImage::setContainerSizeForRenderer):
130749        (WebCore::CachedImage::clear):
130750        (WebCore::CachedImage::createImage):
130751        * loader/cache/CachedImage.h:
130752
130753            A new map has been added to track renderer -> size information before an image has
130754            loaded. Note that this affects all images (not just images that require container size
130755            information) but we cannot know the image type before the image has loaded.
130756
1307572012-12-17  Shinya Kawanaka  <shinyak@chromium.org>
130758
130759        Web Inspector: need to visually distinguish UA shadow roots
130760        https://bugs.webkit.org/show_bug.cgi?id=104877
130761
130762        Reviewed by Yury Semikhatsky.
130763
130764        Now we have an option to show ShadowRoot in the Inspector. Since the Inspector has displayed UserAgent ShadowRoot and
130765        Author ShadowRoot as the same #shadow-root, a user could not distinguish them.
130766
130767        We would like to show UserAgent ShadowRoot as #webkit-shadow-root.
130768
130769        Test: inspector/shadow-root.html
130770
130771        * inspector/InspectorDOMAgent.cpp:
130772        (WebCore::InspectorDOMAgent::buildObjectForNode): Make nodeName of UserAgent ShadowRoot #webkit-shadow-root.
130773        Since the correct nodeName of ShadowRoot is #document-fragment, we have to specify the nodeName of Author ShadowRoot
130774        as #shadow-root here.
130775
1307762012-12-17  Huang Dongsung  <luxtella@company100.net>
130777
130778        Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
130779        https://bugs.webkit.org/show_bug.cgi?id=103959
130780
130781        Reviewed by Kenneth Rohde Christiansen.
130782
130783        TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
130784        methods cannot be called asynchronously by client. Updates of tiles are
130785        committed as soon as all the events in event queue have been processed.
130786        After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.
130787
130788        In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
130789        which was introduced for Coordinated Graphics.
130790
130791        Refactoring covered by existing tests.
130792
130793        * page/Frame.cpp:
130794        (WebCore::Frame::setTiledBackingStoreEnabled):
130795        * platform/graphics/TiledBackingStore.cpp:
130796        (WebCore::TiledBackingStore::TiledBackingStore):
130797        (WebCore::TiledBackingStore::setTrajectoryVector):
130798          Separate setting a trajectory vector from coverWithTilesIfNeeded().
130799        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
130800        (WebCore::TiledBackingStore::updateTileBuffers):
130801        (WebCore::TiledBackingStore::createTiles):
130802        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
130803        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
130804        (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
130805        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
130806        (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
130807        * platform/graphics/TiledBackingStore.h:
130808        (TiledBackingStore):
130809        (WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
130810        * platform/graphics/TiledBackingStoreClient.h:
130811        (WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
130812            If TiledBackingStore does not create all tiles, TiledBackingStore
130813            notifies a client of needing to create tiles more, when
130814            m_commitTileUpdatesOnIdleEventLoop is false.
130815
1308162012-12-17  Dean Jackson  <dino@apple.com>
130817
130818        Track menu should be sorted
130819        https://bugs.webkit.org/show_bug.cgi?id=105229
130820
130821        Reviewed by Eric Carlson.
130822
130823        Make sure that the <li> elements in the track menu are correctly
130824        sorted as they are built. This uses insertion sort, but it shouldn't
130825        be horrible given that we don't expect a huge number of tracks.
130826
130827        Test: media/video-controls-captions-trackmenu-sorted.html
130828
130829        * html/shadow/MediaControlElements.cpp:
130830        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
130831        (WebCore::insertTextTrackMenuItemIntoSortedContainer): New function that calls insertBefore with
130832        the correct parameters to ensure the <ul> is correctly sorted.
130833        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
130834        * html/shadow/MediaControlElements.h:
130835        (MediaControlClosedCaptionsTrackListElement): Rename menuItems to m_menuItems for consistency.
130836
1308372012-12-17  Matthew Dempsky  <mdempsky@google.com>
130838
130839        Regression causing DOM objects to have unstable NPObject* references with v8 bindings
130840        https://bugs.webkit.org/show_bug.cgi?id=104921
130841
130842        Reviewed by Kentaro Hara.
130843
130844        Fix regression introduced by changeset 135804 resulting in
130845        unstable NPObject* references for v8 objects.  In the iter !=
130846        v8NPObjectMap->end() code path, objectVector was left unassigned
130847        if the for loop terminated without returning.
130848
130849        Also, V8Object::GetIdentityHash() is documented as not being guaranteed
130850        as unique.  As such, don't ASSERT() that two objects with the same hash
130851        must therefor be the same object.
130852
130853        Tests: plugins/npruntime/embed-property-iframe-equality.html
130854
130855        * bindings/v8/NPV8Object.cpp:
130856        (WebCore::npCreateV8ScriptObject): Fix.
130857
1308582012-12-17  Chris Fleizach  <cfleizach@apple.com>
130859
130860        Seamless iframe should not announce a new browsing context
130861        https://bugs.webkit.org/show_bug.cgi?id=86317
130862
130863        Reviewed by Eric Seidel.
130864
130865        Introduce a new role for seamless frames so that the platforms can decide what to do
130866        with this kind of object. For the mac, it's exposed as a group.
130867
130868        Test: platform/mac/accessibility/seamless-iframe.html
130869
130870        * accessibility/AccessibilityNodeObject.cpp:
130871        (WebCore):
130872        * accessibility/AccessibilityNodeObject.h:
130873        (AccessibilityNodeObject):
130874        * accessibility/AccessibilityObject.h:
130875        (WebCore::AccessibilityObject::isWebArea):
130876        (WebCore::AccessibilityObject::isSeamlessWebArea):
130877        * accessibility/AccessibilityRenderObject.cpp:
130878        (WebCore::AccessibilityRenderObject::parentObjectIfExists):
130879        (WebCore::AccessibilityRenderObject::parentObject):
130880        (WebCore::AccessibilityRenderObject::boundingBoxRect):
130881        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
130882        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
130883        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
130884        (createAccessibilityRoleMap):
130885
1308862012-12-17  KyungTae Kim  <ktf.kim@samsung.com>
130887
130888        Percentage width replaced element incorrectly rendered when intrinsic size changed
130889        https://bugs.webkit.org/show_bug.cgi?id=102784
130890
130891        Reviewed by Tony Chang.
130892
130893        To make relayout when the image dimension is changed,
130894        and if the logical width is percent type and the containing block fits to it.
130895        In this case, the containing block's width need to be updated first,
130896        because the 'newWidth' was calculated from the 'old containing block width'.
130897
130898        Test: fast/css/percent-width-img-src-change.html
130899
130900        * rendering/RenderImage.cpp:
130901        (WebCore::RenderImage::imageDimensionsChanged):
130902
1309032012-12-17  Beth Dakin  <bdakin@apple.com>
130904
130905        DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since 
130906        that varies
130907        https://bugs.webkit.org/show_bug.cgi?id=105116
130908        -and corresponding-
130909        <rdar://problem/12889449>
130910
130911        Reviewed by Geoff Garen.
130912
130913        DidHitRelevantRepaintedObjectsAreaThreshold should not use the viewRect since that 
130914        varies depending on window size. This can lead to a huge amount of variability in 
130915        the heuristic which is not desired. Instead, we should use a hard-coded rect.
130916        * page/Page.cpp:
130917        (WebCore::relevantViewRect):
130918        (WebCore):
130919        (WebCore::Page::addRelevantRepaintedObject):
130920        (WebCore::Page::addRelevantUnpaintedObject):
130921
1309222012-12-17  Simon Fraser  <simon.fraser@apple.com>
130923
130924        Fix repositioning of fixed elements on zooming
130925        https://bugs.webkit.org/show_bug.cgi?id=105223
130926
130927        Reviewed by Beth Dakin.
130928
130929        When zoomed, scrolling would move the layers of fixed-position
130930        elements oddly. This happened because on the scrolling thread we
130931        passed a scale of 1, rather than the actual page scale to 
130932        scrollOffsetForFixedPosition().
130933        
130934        Fix by plumbing the page scale through the scrolling state node
130935        to the scrolling node.
130936
130937        Test: platform/mac/tiled-drawing/fixed/four-bars-zoomed.html
130938
130939        * page/scrolling/ScrollingStateScrollingNode.cpp:
130940        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
130941        (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
130942        (WebCore::ScrollingStateScrollingNode::dumpProperties):
130943        * page/scrolling/ScrollingStateScrollingNode.h:
130944        (WebCore::ScrollingStateScrollingNode::frameScaleFactor):
130945        (ScrollingStateScrollingNode):
130946        * page/scrolling/ScrollingTreeScrollingNode.cpp:
130947        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
130948        (WebCore::ScrollingTreeScrollingNode::update):
130949        * page/scrolling/ScrollingTreeScrollingNode.h:
130950        (WebCore::ScrollingTreeScrollingNode::frameScaleFactor):
130951        (ScrollingTreeScrollingNode):
130952        * page/scrolling/mac/ScrollingCoordinatorMac.h:
130953        (ScrollParameters):
130954        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
130955        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
130956        (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
130957        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
130958        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
130959
1309602012-12-17  Dima Gorbik  <dgorbik@apple.com>
130961
130962        Implement matching cue by the class name with ::cue pseudo element
130963        https://bugs.webkit.org/show_bug.cgi?id=104191
130964
130965        Reviewed by Antti Koivisto.
130966
130967        Implemented the ::cue() pseudo-element with an argument that may hold a simple selector list.
130968        This enables matching cue objects by the class name.
130969
130970        Test: media/track/track-css-matching.html
130971
130972        * css/CSSGrammar.y.in: support parsing the ::cue() with an argument.
130973        * css/CSSParser.cpp:
130974        (WebCore::CSSParser::detectFunctionTypeToken): tokenize the 'cue'.
130975        (WebCore::CSSParser::updateSpecifiersWithElementName): do not set the tag for the cue pseudo-element because
130976        the ::cue may match elements with different tags.
130977        (WebCore::CSSParser::updateSpecifiers): the behavior for the PseudoCue selector should be same as for
130978        unknown pseudo elements - the pseudo-element should stay on top of the selector chain.
130979        * css/CSSSelector.cpp: added the type detection for the new selector.
130980        (WebCore::CSSSelector::pseudoId):
130981        (WebCore::nameToPseudoTypeMap):
130982        (WebCore::CSSSelector::extractPseudoType):
130983        * css/CSSSelector.h:
130984        * css/RuleSet.cpp: add a new list to hold all the rulesets for the new pseudo element.
130985        (WebCore::RuleSet::reportMemoryUsage):
130986        (WebCore::RuleSet::addRule):
130987        (WebCore::RuleSet::shrinkToFit):
130988        * css/RuleSet.h:
130989        (RuleSet):
130990        (WebCore::RuleSet::cuePseudoRules):
130991        * css/SelectorChecker.cpp:
130992        (WebCore::SelectorChecker::checkOneSelector):
130993        * css/SelectorChecker.h:
130994        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
130995        * css/StyleResolver.cpp:
130996        (WebCore::StyleResolver::collectMatchingRules):
130997        * dom/Element.cpp: an addition to the rare data to be able to find out if the node is a webvtt node.
130998        (WebCore):
130999        (WebCore::Element::isWebVTTNode):
131000        (WebCore::Element::setIsWebVTTNode):
131001        (WebCore::Element::cloneDataFromElement):
131002        * dom/Element.h:
131003        (Element):
131004        * dom/ElementRareData.h:
131005        (ElementRareData):
131006        * dom/NodeRareData.h:
131007        (WebCore::NodeRareData::NodeRareData):
131008        (NodeRareData):
131009        (WebCore::NodeRareData::isWebVTTNode):
131010        (WebCore::NodeRareData::setIsWebVTTNode):
131011        * html/track/TextTrackCue.cpp:
131012        (WebCore::TextTrackCue::markNodesAsWebVTTNodes): mark the cloned nodes as WebVTT nodes.
131013        (WebCore):
131014        (WebCore::TextTrackCue::getCueAsHTML):
131015        * html/track/TextTrackCue.h:
131016        (TextTrackCue):
131017        * html/track/WebVTTParser.cpp:
131018        (WebCore::WebVTTParser::constructTreeFromToken):
131019        * rendering/style/RenderStyleConstants.h:
131020
1310212012-12-17  Michael Pruett  <michael@68k.org>
131022
131023        IndexedDB: Don't use strings to represent serialized values
131024        https://bugs.webkit.org/show_bug.cgi?id=104354
131025
131026        Reviewed by Kentaro Hara.
131027
131028        Use Vector<uint8_t> rather than String to represent serialized values
131029        in IndexedDB. This change is necessary to implement IndexedDB for JSC.
131030
131031        Tests: storage/indexeddb/*
131032
131033        * Modules/indexeddb/IDBBackingStore.cpp:
131034        (WebCore::IDBBackingStore::getRecord):
131035        (WebCore::IDBBackingStore::putRecord):
131036        (WebCore::ObjectStoreKeyCursorImpl::value):
131037        (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
131038        (WebCore::ObjectStoreCursorImpl::value):
131039        (ObjectStoreCursorImpl):
131040        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
131041        (WebCore::IndexKeyCursorImpl::value):
131042        (WebCore::IndexCursorImpl::value):
131043        (WebCore::IndexCursorImpl::IndexCursorImpl):
131044        (IndexCursorImpl):
131045        (WebCore::IndexCursorImpl::loadCurrentRow):
131046        * Modules/indexeddb/IDBBackingStore.h:
131047        (IDBBackingStore):
131048        (Cursor):
131049        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
131050        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
131051        * Modules/indexeddb/IDBCursorBackendImpl.h:
131052        (WebCore::IDBCursorBackendImpl::value):
131053        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
131054        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
131055        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
131056        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
131057        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
131058        * bindings/js/SerializedScriptValue.cpp:
131059        (WebCore::SerializedScriptValue::SerializedScriptValue):
131060        (WebCore):
131061        * bindings/js/SerializedScriptValue.h:
131062        * bindings/v8/SerializedScriptValue.cpp:
131063        (WebCore::SerializedScriptValue::createFromWireBytes):
131064        (WebCore):
131065        (WebCore::SerializedScriptValue::toWireBytes):
131066        * bindings/v8/SerializedScriptValue.h:
131067        (SerializedScriptValue):
131068
1310692012-12-17  Jaehun Lim  <ljaehun.lim@samsung.com>
131070
131071        Change SET_VAR, SET_BORDERVALUE_COLOR macro to require semicolon(;) at the end of the line
131072        https://bugs.webkit.org/show_bug.cgi?id=104774
131073
131074        Reviewed by Eric Seidel.
131075
131076        Remove the last ; in SET_VAR, SET_BORDERVALUE_COLOR macro definition.
131077        Add the omitted ; in RenderStyle.h | .cpp
131078
131079        No new tests, just style change.
131080
131081        * rendering/style/RenderStyle.cpp:
131082        (WebCore::RenderStyle::setColor):
131083        (WebCore::RenderStyle::setVisitedLinkColor):
131084        (WebCore::RenderStyle::setHorizontalBorderSpacing):
131085        (WebCore::RenderStyle::setVerticalBorderSpacing):
131086        * rendering/style/RenderStyle.h:
131087
1310882012-12-17  Yong Li  <yoli@rim.com>
131089
131090        [BlackBerry] Deadlock caused by PluginViewPrivate::destroyBuffers()
131091        https://bugs.webkit.org/show_bug.cgi?id=105215
131092
131093        Reviewed by Rob Buis.
131094        Also internally reviewed by George Staikos.
131095
131096        PR# 266443
131097        It should release mutexes before sending sync message.
131098
131099        * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
131100        (WebCore::PluginViewPrivate::destroyBuffers):
131101
1311022012-12-17  Sheriff Bot  <webkit.review.bot@gmail.com>
131103
131104        Unreviewed, rolling out r137198.
131105        http://trac.webkit.org/changeset/137198
131106        https://bugs.webkit.org/show_bug.cgi?id=105212
131107
131108        This patch is causing API behavior compatibility problems
131109        (Requested by zdobersek on #webkit).
131110
131111        * platform/network/soup/ResourceRequestSoup.cpp:
131112        (WebCore::ResourceRequest::updateFromSoupMessage):
131113
1311142012-12-17  Dominic Mazzoni  <dmazzoni@google.com>
131115
131116        AX: textUnderElement should consider alt text, but skip links and controls
131117        https://bugs.webkit.org/show_bug.cgi?id=101650
131118
131119        Reviewed by Chris Fleizach.
131120
131121        Getting inner text from an element now ignores focusable descendants
131122        and containers, but uses alternative text.  The computation of
131123        textUnderElement is now recursive and doesn't depend on text
131124        iterators, which might not do the right thing for accessibility
131125        anyways.
131126
131127        For GTK, the old behavior is retained so that support for
131128        the object replacement character is still there. Filed a new
131129        bug (105214) for GTK folks to look at this.
131130
131131        Test: accessibility/button-title-uses-inner-img-alt.html
131132        Test: accessibility/focusable-div.html
131133
131134        * accessibility/AccessibilityNodeObject.cpp:
131135        (WebCore):
131136        (WebCore::shouldUseAccessiblityObjectInnerText):
131137        (WebCore::AccessibilityNodeObject::textUnderElement):
131138        * accessibility/AccessibilityRenderObject.cpp:
131139        (WebCore::AccessibilityRenderObject::textUnderElement):
131140
1311412012-12-17  Otto Derek Cheung  <otcheung@rim.com>
131142
131143        [BlackBerry] Prevent CookieManager from blocking the WKT thread
131144        https://bugs.webkit.org/show_bug.cgi?id=105111
131145
131146        Prevent CookieManager from blocking the WKT Thread.
131147
131148        PR 265603
131149
131150        Reviewed by Rob Buis.
131151
131152        Adding some guards to CookieManager so it will return immedately
131153        if getCookie functions are called when the database isn't loaded yet.
131154
131155        setCookie functions will be redispatched until the database is ready.
131156
131157        * platform/blackberry/CookieManager.cpp:
131158        (WebCore::CookieManager::CookieManager):
131159        (WebCore::CookieManager::setCookies):
131160        (WebCore::CookieManager::getCookie):
131161        (WebCore::CookieManager::generateHtmlFragmentForCookies):
131162        (WebCore::CookieManager::getRawCookies):
131163        (WebCore::CookieManager::removeAllCookies):
131164        (WebCore::CookieManager::getBackingStoreCookies):
131165        (WebCore::CookieManager::setPrivateMode):
131166        (WebCore::CookieManager::removeCookieWithName):
131167        * platform/blackberry/CookieManager.h:
131168
1311692012-12-17  Levi Weintraub  <leviw@chromium.org>
131170
131171        Add support for tracking hit test rectangles to enable fast event rejection in the compositor
131172        https://bugs.webkit.org/show_bug.cgi?id=103914
131173
131174        Reviewed by James Robinson.
131175
131176        Adding support for tracking hit test target regions for the purpose of performing initial hit testing
131177        in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
131178        aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
131179        thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
131180        region. This patch includes the implementation to turn this on in Chromium.
131181
131182        To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
131183        instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
131184        when new touch event handlers are registered or removed, or after layout much like how
131185        nonFastScrollableRegions are currently tracked.
131186
131187        This implementation will not properly update the hit test rects when the renderers are inside a sub-
131188        tree that scrolls.
131189
131190        This change was initially rolled out due to stale Node pointers in Document's touchEventTargets. This
131191        patch adds a callback to remove the Node from that structure to Node's destructor. This is covered
131192        by the touch-target-removed-crash.html test case which is also added.
131193
131194        Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
131195              platform/chromium/fast/events/touch/touch-target-removed-crash.html
131196
131197        * dom/Document.cpp:
131198        (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
131199        are stored as the Document they point to.
131200        (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
131201        to update the ScrollingCoordinator with the change.
131202        (WebCore::Document::didRemoveTouchEventHandler): Ditto.
131203        * dom/Document.h:
131204        (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
131205        expose whether there are any or not.
131206        (WebCore::Document::touchEventTargets):
131207        * dom/Node.cpp:
131208        (WebCore::Node::didMoveToNewDocument):
131209        (WebCore::tryAddEventListener):
131210        (WebCore::tryRemoveEventListener):
131211        * history/CachedFrame.cpp:
131212        (WebCore::CachedFrameBase::restore):
131213        * html/HTMLInputElement.cpp:
131214        (WebCore::HTMLInputElement::~HTMLInputElement):
131215        (WebCore::HTMLInputElement::updateType):
131216        * page/DOMWindow.cpp:
131217        (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
131218        (WebCore::DOMWindow::removeEventListener):
131219        * page/EventHandler.cpp:
131220        (WebCore::EventHandler::handleTouchEvent):
131221        * page/Frame.cpp:
131222        (WebCore::Frame::setDocument):
131223        * page/scrolling/ScrollingCoordinator.cpp:
131224        (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
131225        nodes and generate the absolute hit testing rects.
131226        * page/scrolling/ScrollingCoordinator.h:
131227        (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
131228        the scrolling tree/compositor.
131229        (ScrollingCoordinator):
131230        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
131231        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
131232        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
131233        (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
131234        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
131235        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
131236        (ScrollingCoordinatorChromium):
131237        * testing/Internals.cpp:
131238        (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
131239        it's no longer stored as an int in Document.
131240        (WebCore::Internals::touchEventTargetClientRects):
131241        * testing/Internals.h:
131242        (Internals):
131243        * testing/Internals.idl:
131244
1312452012-12-17  Avi Drissman  <avi@chromium.org>
131246
131247        Dragging a .jpg to Finder saves it as .jpeg
131248        https://bugs.webkit.org/show_bug.cgi?id=105140
131249        https://code.google.com/p/chromium/issues/detail?id=35811
131250
131251        Reviewed by Tony Chang.
131252
131253        If the filename's extension is already valid for the MIME type, we don't
131254        need to rewrite it to the preferred extension.
131255
131256        No layout tests because it involves dragging items to the desktop.
131257
131258        * platform/chromium/ClipboardChromium.cpp:
131259        (WebCore::writeImageToDataObject):
131260
1312612012-12-17  Bem Jones-Bey  <bjonesbe@adobe.com>
131262
131263        [CSS Exclusions] shape-outside on floats for rectangle shapes height/width
131264        https://bugs.webkit.org/show_bug.cgi?id=100398
131265
131266        Reviewed by Julien Chaffraix.
131267
131268        Implement shape outside for floats changing only the height and width
131269        as a simple starting point.
131270
131271        This implementation changes floats to use the bounding box of the
131272        shape outside instead of the margin box for layout. The content box of
131273        the float is unchanged. This patch does not support positioning the
131274        shape outside box, so the x and y parameters are currently ignored in
131275        the specified shape. This will be fixed in a patch for bug 100399.
131276
131277        Tests: fast/exclusions/shape-outside-floats/shape-outside-floats-margin-is-ignored.html
131278               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-horizontal-multiple.html
131279               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle-percentage.html
131280               fast/exclusions/shape-outside-floats/shape-outside-floats-simple-rectangle.html
131281
131282        * CMakeLists.txt: Add ExclusionShapeOutsideInfo.{cpp,h}.
131283        * GNUmakefile.list.am: Add ExclusionShapeOutsideInfo.{cpp,h}.
131284        * Target.pri: Add ExclusionShapeOutsideInfo.{cpp,h}.
131285        * WebCore.gypi: Add ExclusionShapeOutsideInfo.{cpp,h}.
131286        * WebCore.vcproj/WebCore.vcproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
131287        * WebCore.xcodeproj/project.pbxproj: Add ExclusionShapeOutsideInfo.{cpp,h}.
131288        * rendering/ExclusionShapeOutsideInfo.cpp: Added. Associates the
131289            ExclusionShape object for shape outside with a RenderBox. Analagous to
131290            ExclusionShapeInsideInfo.
131291        (WebCore::exclusionShapeOutsideInfoMap):
131292        (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
131293        (WebCore::ExclusionShapeOutsideInfo::~ExclusionShapeOutsideInfo):
131294        (WebCore::ExclusionShapeOutsideInfo::ensureInfoForRenderBox):
131295        (WebCore::ExclusionShapeOutsideInfo::infoForRenderBox):
131296        (WebCore::ExclusionShapeOutsideInfo::isInfoEnabledForRenderBox):
131297        (WebCore::ExclusionShapeOutsideInfo::removeInfoForRenderBox):
131298        (WebCore::ExclusionShapeOutsideInfo::computedShape):
131299        * rendering/ExclusionShapeOutsideInfo.h: Added. Associates the
131300            ExclusionShape object for shape outside with a RenderBox. Analagous to
131301            ExclusionShapeInsideInfo.
131302        (ExclusionShapeOutsideInfo):
131303        (WebCore::ExclusionShapeOutsideInfo::create):
131304        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalLeft):
131305        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalRight):
131306        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalTop):
131307        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalBottom):
131308        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalWidth):
131309        (WebCore::ExclusionShapeOutsideInfo::shapeLogicalHeight):
131310        (WebCore::ExclusionShapeOutsideInfo::setShapeSize):
131311        (WebCore::ExclusionShapeOutsideInfo::dirtyShapeSize):
131312        * rendering/RenderBlock.cpp:
131313        (WebCore::RenderBlock::insertFloatingObject): Use the shape outside's bounding box to set the width that is
131314            used for inline layout for the float and it's siblings.
131315        (WebCore::RenderBlock::positionNewFloats): Use the shape outside's bounding box to set the height that
131316            is used for inline layout for the float and it's siblings. Ignore margins when positioning if the float
131317            has shape outside, per the exclusions spec. 
131318        * rendering/RenderBox.cpp:
131319        (WebCore::RenderBox::willBeDestroyed): Clean up associated ExclusionShape.
131320        (WebCore::RenderBox::styleDidChange): Handle style change for shape outside.
131321        (WebCore::RenderBox::updateExclusionShapeOutsideInfoAfterStyleChange): Handle style change for shape outside.
131322        * rendering/RenderBox.h:
131323        (WebCore::RenderBox::exclusionShapeOutsideInfo): Get the ExclusionShapeOutsideInfo associated with this
131324            RenderBox.
131325
1313262012-12-17  John J. Barton  <johnjbarton@chromium.org>
131327
131328        Web Inspector: Search by selection
131329        https://bugs.webkit.org/show_bug.cgi?id=104970
131330
131331        Reviewed by Vsevolod Vlasov.
131332
131333        Upon activation of the search control, conditionally set input.value to window.getSelection().
131334        For both single file (SearchController) and multifile (AdvancedSearchController).
131335
131336        Test: inspector/editor/text-editor-selection-to-search.html
131337
131338        * inspector/front-end/AdvancedSearchController.js:
131339        (WebInspector.AdvancedSearchController.prototype.show):
131340        (WebInspector.SearchView.prototype.syncToSelection):
131341        * inspector/front-end/SearchController.js:
131342        (WebInspector.SearchController.prototype.showSearchField):
131343
1313442012-12-17  Eduardo Lima Mitev  <elima@igalia.com>
131345
131346        [GStreamer] Use gst_element_link_pads_full() with CHECK_NOTHING for speed and sanity
131347        https://bugs.webkit.org/show_bug.cgi?id=105181
131348
131349        Reviewed by Philippe Normand.
131350
131351        Replace some calls to gst_pad_link() on request pads, by
131352        gst_element_link_pads_full() with CHECK_NOTHING flag, removing
131353        unnecessary pad compatibility checks and simplifying code.
131354
131355        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
131356        (webKitWebAudioSrcConstructed): Links audioconvert source with a
131357        requested interleave sink using gst_element_link_pads_full().
131358        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Links a
131359        requested source pad from videoTee with the queue sink.
131360
1313612012-12-17  Emil A Eklund  <eae@chromium.org>
131362
131363        Clamp values in LayoutUnit::operator/ when SATURATED_LAYOUT_ARITHMETIC is enabled
131364        https://bugs.webkit.org/show_bug.cgi?id=104955
131365
131366        Reviewed by Julien Chaffraix.
131367
131368        LayoutUnit::operator/ currently does not clamp values and
131369        instead overflows when given a value greater than INT_MAX or
131370        less than INT_MIN. 
131371
131372        Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp
131373
131374        * platform/LayoutUnit.h:
131375        (WebCore::operator/):
131376        Clamp value if SATURATED_LAYOUT_ARITHMETIC is enabled.
131377
1313782012-12-17  Simon Fraser  <simon.fraser@apple.com>
131379
131380        Don't allow edge TileCache tiles to be larger than necessary
131381        https://bugs.webkit.org/show_bug.cgi?id=105195
131382
131383        Reviewed by Anders Carlsson.
131384
131385        The TileCache would allow edge tiles to be larger than the required size, with the assumption
131386        that the extra space would never be visible. However, for content tiled layers, it can be,
131387        and it doesn't get correctly cleared. So always keep the edge tiles at the specified size.
131388
131389        * platform/graphics/ca/mac/TileCache.mm:
131390        (WebCore::TileCache::revalidateTiles):
131391
1313922012-12-17  Bem Jones-Bey  <bjonesbe@adobe.com>
131393
131394        [CSS Exclusions] Floats should respect shape-inside on exclusions
131395        https://bugs.webkit.org/show_bug.cgi?id=89261
131396
131397        Reviewed by David Hyatt.
131398
131399        Position floats properly with respect to an exclusion shape. Note that
131400        this will not attempt to position floats in a polygon that has
131401        multiple segments. In the multiple segment case, the floats will be
131402        positioned as if the exclusion did not exist.
131403
131404        Updated an existing test case to test for this.
131405        Test: fast/exclusions/shape-inside/shape-inside-floats-simple.html
131406
131407        * rendering/RenderBlock.cpp:
131408        (WebCore::RenderBlock::computeLogicalLocationForFloat): Adjust the
131409        right and left offsets to take into account the right and left offset
131410        contributed by the exclusion shape.
131411
1314122012-12-17  Antoine Quint  <graouts@apple.com>
131413
131414        GraphicsLayer's repaint count should update even when debugging option to show it is off
131415        https://bugs.webkit.org/show_bug.cgi?id=105178
131416
131417        Reviewed by Simon Fraser.
131418
131419        Update the repain count even if the debug option to show them is turned off.
131420        This allows the count to be accurate in between toggles of the debug option
131421        and to allow the InspectorLayerTreeAgent to get accurate results any time
131422        the layer tree is requested (see webkit.org/b/105024).
131423
131424        * platform/graphics/mac/WebLayer.mm:
131425        (drawLayerContents):
131426
1314272012-12-17  Hans Muller  <hmuller@adobe.com>
131428
131429        [CSS Exclusions] Add helper functions for converting floats to LayoutUnits
131430        https://bugs.webkit.org/show_bug.cgi?id=103450
131431
131432        Reviewed by Dirk Schulze.
131433
131434        When a float logicalTop value is converted to a LayoutUnit it's necessary to
131435        use LayoutUnit::fromFloatCeil() to ensure that we're snapping to a value that's
131436        inside the ExclusionShape.  Similarly, to convert a logicalBottom value from
131437        float to LayoutUnit we use LayoutUnit::fromFloatFloor().  Added a pair of private
131438        ExlcusionShapeInsideInfo methods that do the conversions and refactored existing
131439        code to use them.
131440
131441        This is just a cleanup.  No new tests are needed, the existing tests cover
131442        these changes.
131443
131444        * rendering/ExclusionShapeInsideInfo.cpp:
131445        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): Use the new floatLogicalTopToLayoutUnit() method.
131446        * rendering/ExclusionShapeInsideInfo.h:
131447        (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Use the new floatLogicalTopToLayoutUnit() method.
131448        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom): Use the new floatLogicalBottomToLayoutUnit() method.
131449        (ExclusionShapeInsideInfo):
131450        (WebCore::ExclusionShapeInsideInfo::floatLogicalTopToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatCeil().
131451        (WebCore::ExclusionShapeInsideInfo::floatLogicalBottomToLayoutUnit): Convert a float to a LayoutUnit with LayoutUnit::fromFloatFloor().
131452
1314532012-12-17  Antoine Quint  <graouts@apple.com>
131454
131455        Web Inspector: Provide the paint count of layers through the LayerTreeAgent
131456        https://bugs.webkit.org/show_bug.cgi?id=105024
131457
131458        Reviewed by Pavel Feldman.
131459
131460        We add a new optional .paintCount property to the Layer object, passing through the
131461        relevant information from GraphicsLayer.
131462
131463        * inspector/Inspector.json:
131464        * inspector/InspectorLayerTreeAgent.cpp:
131465        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
131466
1314672012-12-17  Pavel Feldman  <pfeldman@chromium.org>
131468
131469        Web Inspector: [chromium] make toolbar render with Mountain Lion-friendly colors
131470        https://bugs.webkit.org/show_bug.cgi?id=105177
131471
131472        Reviewed by Vsevolod Vlasov.
131473
131474        * inspector/front-end/UIUtils.js:
131475        (WebInspector.platformFlavor):
131476        * inspector/front-end/inspector.css:
131477        (#toolbar):
131478        (body.dock-to-bottom #toolbar):
131479        (.toolbar-item):
131480
1314812012-12-17  Andreas Kling  <akling@apple.com>
131482
131483        Attribute: Remove unused constructor and isNull().
131484        <http://webkit.org/b/105179>
131485
131486        Reviewed by Antti Koivisto.
131487
131488        Removed the Attribute constructor that takes a localName rather than a full QualifiedName as that was never used.
131489        Also removed Attribute::isNull(), since that was only called in one place where isNull() will never be true.
131490
131491        * dom/Attribute.h:
131492        * html/HTMLIFrameElement.cpp:
131493        (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
131494
1314952012-12-17  Anthony Scian  <ascian@rim.com>
131496
131497        [Blackberry] Static code analysis warning fixes
131498        https://bugs.webkit.org/show_bug.cgi?id=105129
131499
131500        Reviewed by Rob Buis.
131501
131502        - alloca can return NULL, recoded to just use a temp var
131503
131504        * plugins/blackberry/PluginViewBlackBerry.cpp:
131505        (WebCore::PluginView::updateBuffer):
131506
1315072012-12-17  Eugene Klyuchnikov  <eustas@chromium.org>
131508
131509        Web Inspector: Make popover content accessible for clicks.
131510        https://bugs.webkit.org/show_bug.cgi?id=105167
131511
131512        Reviewed by Vsevolod Vlasov.
131513
131514        Currently it is very hard to move mouse pointer inside of popover area.
131515        The only maneuver is to precisely jerk the mouse in direction of popover.
131516
131517        This path makes anchor and popover "active" areas overlap, so it becomes
131518        possible to smoothly move mouse to popover interior.
131519
131520        * inspector/front-end/Popover.js:
131521        (WebInspector.Popover.prototype._innerShow): Make popover "outer" border
131522        an be "active" area.
131523        * inspector/front-end/popover.css: Allow popover "outer" border receive
131524        mouse events.
131525
1315262012-12-17  Andrey Kosyakov  <caseq@chromium.org>
131527
131528        Web Inspector: Persist Audit selections across sessions
131529        https://bugs.webkit.org/show_bug.cgi?id=103944
131530
131531        Reviewed by Alexander Pavlov.
131532
131533        Make selected audit categories a persistent setting, to simplify life for those
131534        repeatedly running same set of categories.
131535
131536        * inspector/front-end/AuditLauncherView.js:
131537        (WebInspector.AuditLauncherView):
131538        (WebInspector.AuditLauncherView.prototype.addCategory.get var):
131539        (WebInspector.AuditLauncherView.prototype.addCategory):
131540        (WebInspector.AuditLauncherView.prototype._selectAllClicked):
131541        (WebInspector.AuditLauncherView.prototype._categoryClicked):
131542        (WebInspector.AuditLauncherView.prototype._createCategoryElement):
131543
1315442012-12-17  Zeno Albisser  <zeno@webkit.org>
131545
131546        [Texmap] Drawing of ARB textures broken after r137498.
131547        https://bugs.webkit.org/show_bug.cgi?id=105165
131548
131549        Disable antialiasing for ARB textures after unifying
131550        code paths. We are currently missing a fragment shader
131551        to do antialiasing with ARB textures.
131552
131553        Reviewed by Kenneth Rohde Christiansen.
131554
131555        * platform/graphics/texmap/TextureMapperGL.cpp:
131556        (WebCore::TextureMapperGL::drawTexture):
131557
1315582012-12-17  Eugene Klyuchnikov  <eustas@chromium.org>
131559
131560        Web Inspector: Popup flickers when cursor moves between elements with same anchor.
131561        https://bugs.webkit.org/show_bug.cgi?id=104992
131562
131563        Reviewed by Pavel Feldman.
131564
131565        Popup disappears and then appears again when mouse pointer traverses
131566        between sub-elements of anchor element.
131567
131568        * inspector/front-end/Popover.js: Split method "_mouseOut".
131569        (WebInspector.PopoverHelper.prototype._popoverMouseOut):
131570        Handler for Popover.
131571        (WebInspector.PopoverHelper.prototype._mouseOut):
131572        Handler for PopoverHelper.
131573
1315742012-12-12  Andrey Kosyakov  <caseq@chromium.org>
131575
131576        [Chromium] Remove support for TRACE_EVENT_IF_LONGER_THANx macros
131577        https://bugs.webkit.org/show_bug.cgi?id=104784
131578
131579        Reviewed by Pavel Feldman.
131580
131581        - removed TRACE_EVENT_IF_LONGER_THANx macros;
131582        - changed addTraceEvent() to return void, as we no longer need the index of added event.
131583
131584        * platform/EventTracer.h:
131585        (EventTracer):
131586        * platform/chromium/EventTracerChromium.cpp:
131587        (WebCore::EventTracer::addTraceEvent):
131588        * platform/chromium/TraceEvent.h:
131589        (TraceEvent):
131590        (WebCore::TraceEvent::addTraceEvent):
131591        (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
131592        (Data):
131593
1315942012-12-17  Kentaro Hara  <haraken@chromium.org>
131595
131596        Unreviewed, rolling out r136794.
131597        http://trac.webkit.org/changeset/136794
131598        https://bugs.webkit.org/show_bug.cgi?id=104203
131599
131600        The GC change can leak memory
131601
131602        * bindings/v8/V8GCController.cpp:
131603        (WebCore):
131604        (WebCore::addImplicitReferencesForNodeWithEventListeners):
131605
1316062012-12-17  Gabor Rapcsanyi  <rgabor@webkit.org>
131607
131608        Reduce the code size of ARM SIMD in GraphicsContext3D
131609        https://bugs.webkit.org/show_bug.cgi?id=105086
131610
131611        Reviewed by Zoltan Herczeg.
131612
131613        Reduce the code size of ARM SIMD in GraphicsContext3D and change the ARM
131614        namespace to SIMD.
131615
131616        * platform/graphics/GraphicsContext3D.cpp:
131617        (WebCore):
131618        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
131619        (WebCore::SIMD::unpackOneRowOfRGBA4444ToRGBA8):
131620        (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort4444):
131621        (WebCore::SIMD::unpackOneRowOfRGBA5551ToRGBA8):
131622        (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort5551):
131623        (WebCore::SIMD::unpackOneRowOfRGB565ToRGBA8):
131624        (WebCore::SIMD::packOneRowOfRGBA8ToUnsignedShort565):
131625
1316262012-12-16  Andrey Kosyakov  <caseq@chromium.org>
131627
131628        Web Inspector: frame bars on timeline do not react on hover and double click
131629        https://bugs.webkit.org/show_bug.cgi?id=105153
131630
131631        Reviewed by Alexander Pavlov.
131632
131633        Remove z-index: -100 from #timeline-grid-header, as it prevents mouse events from
131634        reaching frame strip. Use pointer-events: none on frame dividers instead.
131635
131636        * inspector/front-end/timelinePanel.css:
131637        (.timeline .resources-event-divider.timeline-frame-divider):
131638        (#timeline-grid-header):
131639
1316402012-12-16  Kentaro Hara  <haraken@chromium.org>
131641
131642        [V8] Improve performance of a conversion from WebKit strings to V8 strings
131643        https://bugs.webkit.org/show_bug.cgi?id=105150
131644
131645        Reviewed by Eric Seidel.
131646
131647        V8 provides v8::Weak(isolate) and v8::Local::New(isolate, ...),
131648        which are much faster than v8::Weak() and v8::Local::New().
131649        By using the faster APIs, we can improve performance of a conversion
131650        from a WebKit string to a V8 string. This improves performance of
131651        div.id, div.className, ...and a lot of DOM attributes that return
131652        strings.
131653
131654        [Dromaeo/dom-attr]
131655        120 runs/sec, 120 runs/sec, 118 runs/sec => 125 runs/sec, 123 run/sec, 125 runs/sec (+4.1%)
131656
131657        [Dromaeo/dom-traverse]
131658        94 runs/sec, 94 runs/sec, 96 runs/sec => 107 runs/sec, 105 runs/sec, 107 runs/sec (+12.3%)
131659
131660        [Bindings/id-getter]
131661        356 runs/sec, 356 runs/sec, 341 runs/sec => 423 runs/sec, 424 runs/sec, 424 runs/sec (+20.7%)
131662
131663        No tests. No change in behavior.
131664
131665        * bindings/v8/V8ValueCache.h:
131666        (WebCore::StringCache::v8ExternalString):
131667
1316682012-12-16  Arvid Nilsson  <anilsson@rim.com>
131669
131670        [BlackBerry] Adapt to new BlackBerry::Platform::TouchPoint API
131671        https://bugs.webkit.org/show_bug.cgi?id=105143
131672        RIM PR 171941
131673
131674        Reviewed by Rob Buis.
131675        Internally reviewed by George Staikos.
131676
131677        TouchPoint instances now provide document coordinates for the viewport
131678        and content position of the touch event. The pixel coordinates stored
131679        in the TouchPoint should no longer be needed in WebKit.
131680
131681        Also adapt to new method names and encapsulation of TouchPoint data
131682        members.
131683
131684        No change in behavior, no new tests.
131685
131686        * platform/blackberry/PlatformTouchPointBlackBerry.cpp:
131687        (WebCore::PlatformTouchPoint::PlatformTouchPoint):
131688
1316892012-12-16  Eugene Klyuchnikov  <eustas@chromium.org>
131690
131691        Web Inspector: Fix JS compiler warning.
131692        https://bugs.webkit.org/show_bug.cgi?id=105032
131693
131694        Reviewed by Pavel Feldman.
131695
131696        Problem: event handler parameter has actial parameter
131697        type KeyboardEvent, but ".addEventListener" refuses listeners with such
131698        signature.
131699
131700        Solution: explicitly upcast argument type.
131701
131702        * inspector/front-end/ElementsTreeOutline.js: Update JsDocs.
131703
1317042012-12-16  Tim Horton  <timothy_horton@apple.com>
131705
131706        PDFPlugin: The "Open in Preview" HUD button should work
131707        https://bugs.webkit.org/show_bug.cgi?id=102448
131708        <rdar://problem/12695729>
131709
131710        Reviewed by Alexey Proskuryakov.
131711
131712        Expose createCanonicalUUIDString and UUID.h.
131713
131714        * WebCore.exp.in:
131715        * WebCore.xcodeproj/project.pbxproj:
131716
1317172012-12-16  Seokju Kwon  <seokju.kwon@gmail.com>
131718
131719        Fix unused parameter compile warnings
131720        https://bugs.webkit.org/show_bug.cgi?id=105089
131721
131722        Reviewed by Kentaro Hara.
131723
131724        Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
131725
131726        No new tests, no behavior change.
131727
131728        * bindings/js/JSDOMWindowBase.cpp:
131729        (WebCore::JSDOMWindowBase::supportsProfiling):
131730        (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
131731
1317322012-12-16  Alexey Proskuryakov  <ap@apple.com>
131733
131734        <rdar://problem/12886898> Bundle uploads don't work
131735        https://bugs.webkit.org/show_bug.cgi?id=105149
131736
131737        Reviewed by Sam Weinig.
131738
131739        * WebCore.exp.in: Exported FormData::removeGeneratedFilesIfNeeded().
131740
131741        * platform/network/FormData.cpp:
131742        (WebCore::encodeElement):
131743        (WebCore::decodeElement):
131744        Encode generated file name for archive, too. I'm not entirely sure how this affects other uses
131745        of FormData serialization, but it seems logical that if we encode m_hasGeneratedFiles, we
131746        should also encode their names.
131747
1317482012-12-16  Hayato Ito  <hayato@chromium.org>
131749
131750        [Shadow DOM] Kill ShadowRoot constructor
131751        https://bugs.webkit.org/show_bug.cgi?id=102913
131752
131753        Reviewed by Dimitri Glazkov.
131754
131755        Re-landing r137408 which breaks browser tests on chromium. I've
131756        updated the browser tests on chromium so that they do not use
131757        WebKitShadowRoot constructor.
131758
131759        No new tests. Updating existing layout tests.
131760
131761        * dom/ShadowRoot.idl:
131762        * page/DOMWindow.idl:
131763
1317642012-12-16  Jon Lee  <jonlee@apple.com>
131765
131766        Allow built-in PDF plugin and plugin documents to auto-start
131767        https://bugs.webkit.org/show_bug.cgi?id=105000
131768        <rdar://problem/12633351>
131769
131770        Reviewed by Sam Weinig.
131771
131772        Plug-ins in plug-in documents that are in the main frame should always auto-start.
131773
131774        Add a virtual function that returns whether the PluginViewBase should auto-start its plug-in.
131775        Add a callback that gives the HTML plug-in element an opportunity to set the display state
131776        based on the widget.
131777
131778        * plugins/PluginViewBase.h:
131779        (WebCore::PluginViewBase::shouldAlwaysAutoStart): Added. By default returns false.
131780
131781        * html/HTMLPlugInImageElement.cpp:
131782        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Renamed from
131783        subframeLoaderWillLoadPlugIn() for consistency. This call will also be made a little later
131784        in the subframe loader. Adds a check to see if the plug-in is inside a plug-in document
131785        of the main frame. If so, auto-start.
131786        (WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Given the widget created,
131787        check to see if it should always auto-start. If so, set the display state to Playing. Otherwise
131788        leave the display state alone.
131789        * html/HTMLPlugInImageElement.h:
131790
131791        * loader/SubframeLoader.cpp:
131792        (WebCore::SubframeLoader::requestPlugin): Move the will-load-plug-in call into loadPlugin().
131793        (WebCore::SubframeLoader::loadPlugin): Immediately prior to the plug-in's creation, make the
131794        will-create call. If a plug-in was made, make the did-create call. The did-create call should
131795        be made before setWidget() since that might initialize the plug-in, which could take the display
131796        state into account if being initialized synchronously.
131797
1317982012-12-16  Huang Dongsung  <luxtella@company100.net>
131799
131800        [TexMap] Perform the layer-tree traversal in GraphicsLayerTextureMapper.
131801        https://bugs.webkit.org/show_bug.cgi?id=103366
131802
131803        Reviewed by Noam Rosenthal.
131804
131805        Currently, Texture Mapper performs the layer-tree traversal in
131806        TextureMapperLayer, while Coordinated Graphics performs the traversal in
131807        CoordinatedGraphicsLayer. This patch makes Texture Mapper perform the
131808        traversal in GraphicsLayerTextureMapper.
131809
131810        Also removed the SyncOptions enum, which is redundant since no client
131811        calls it with ComputationsOnly.
131812
131813        This is in preparation for refactoring TextureMapper to work in an actor
131814        model (http://webkit.org/b/103854).
131815
131816        No new tests. Covered by existing tests.
131817
131818        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
131819        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
131820        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
131821        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
131822        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
131823        (GraphicsLayerTextureMapper):
131824        * platform/graphics/texmap/TextureMapperLayer.cpp:
131825        (WebCore::TextureMapperLayer::flushCompositingStateForThisLayerOnly):
131826        * platform/graphics/texmap/TextureMapperLayer.h:
131827        (TextureMapperLayer):
131828
1318292012-12-16  Levi Weintraub  <leviw@chromium.org>
131830
131831        Push pixel snapping logic into TransformState
131832        https://bugs.webkit.org/show_bug.cgi?id=101779
131833
131834        Reviewed by Simon Fraser.
131835
131836        The old SnapOffsetForTransforms behavior fell apart when there was content nested in
131837        multiple levels of containers with sub-pixel offsets. The point of this flag was to
131838        mirror the pixel snapping that occurs in paint, where offsets are accumulated bottom-
131839        up through the render tree and snapped at the end. This change eliminates this flag
131840        and pushes pixel snapping logic down into TransformState.
131841
131842        TransformState now tracks a LayoutSize accumulated offset when there's no transform
131843        or we're just translating. We then snap and apply this offset before accumulating
131844        values into a transform, and when returning planar coordinates to callers.
131845
131846        Test: fast/sub-pixel/transformed-iframe-copy-on-scroll.html added,
131847              fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html modified to also catch this bug.
131848
131849        * platform/graphics/transforms/TransformState.cpp:
131850        (WebCore::TransformState::operator=): Pass accumulated offset.
131851        (WebCore::TransformState::translateTransform): Extracted this functionality for
131852        re-use when applying the accumulated offset, or accumulating from a call to move.
131853        (WebCore::TransformState::translateMappedCoordinates): Same as above when we're not
131854        acculating into a transform.
131855        (WebCore::TransformState::move): Changed to accumulate into m_accumulatedOffset when
131856        not accumulating into a transform.
131857        (WebCore::TransformState::applyAccumulatedOffset):
131858        (WebCore::TransformState::applyTransform): Applies the accumulated offset before the
131859        transform.
131860        (WebCore::TransformState::flatten): Ditto for flattening.
131861        (WebCore::TransformState::mappedPoint): Translates by the accumulated offset before
131862        returning.
131863        (WebCore::TransformState::mappedQuad): Ditto.
131864        * platform/graphics/transforms/TransformState.h:
131865        (TransformState): Added m_accumulatedOffset.
131866        * rendering/RenderGeometryMap.cpp:
131867        (WebCore::RenderGeometryMap::mapToContainer): When not using a transform, we still need
131868        to snap our offset before applying to our float result. Also, flatten when we have a
131869        non-uniform step.
131870        * rendering/RenderGeometryMap.h:
131871        (RenderGeometryMap): Remove use of SnapOffsetForTransforms.
131872
131873        Everything below simply drops the use of SnapOffsetForTransforms:
131874
131875        * dom/ContainerNode.cpp:
131876        (WebCore::ContainerNode::getUpperLeftCorner):
131877        * dom/MouseRelatedEvent.cpp:
131878        (WebCore::MouseRelatedEvent::computeRelativePosition):
131879        * editing/FrameSelection.cpp:
131880        (WebCore::CaretBase::absoluteBoundsForLocalRect):
131881        * editing/RenderedPosition.cpp:
131882        (WebCore::RenderedPosition::absoluteRect):
131883        * editing/VisiblePosition.cpp:
131884        (WebCore::VisiblePosition::absoluteCaretBounds):
131885        * html/HTMLSelectElement.cpp:
131886        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
131887        * html/shadow/SliderThumbElement.cpp:
131888        (WebCore::SliderThumbElement::setPositionFromPoint):
131889        * html/shadow/SpinButtonElement.cpp:
131890        (WebCore::SpinButtonElement::defaultEventHandler):
131891        * page/FrameView.cpp:
131892        (WebCore::FrameView::convertFromRenderer):
131893        (WebCore::FrameView::convertToRenderer):
131894        * rendering/InlineTextBox.cpp:
131895        (WebCore::InlineTextBox::paintDocumentMarker):
131896        (WebCore::InlineTextBox::paintTextMatchMarker):
131897        (WebCore::InlineTextBox::computeRectForReplacementMarker):
131898        * rendering/LayoutState.cpp:
131899        (WebCore::LayoutState::LayoutState):
131900        * rendering/RenderBox.cpp:
131901        (WebCore::RenderBox::mapLocalToContainer):
131902        (WebCore::RenderBox::pushMappingToContainer):
131903        * rendering/RenderBox.h:
131904        (RenderBox):
131905        * rendering/RenderBoxModelObject.cpp:
131906        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
131907        * rendering/RenderEmbeddedObject.cpp:
131908        (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
131909        * rendering/RenderFrameSet.cpp:
131910        (WebCore::RenderFrameSet::userResize):
131911        * rendering/RenderInline.cpp:
131912        (WebCore::RenderInline::mapLocalToContainer):
131913        (WebCore::RenderInline::pushMappingToContainer):
131914        * rendering/RenderInline.h:
131915        (RenderInline):
131916        * rendering/RenderLayer.cpp:
131917        (WebCore::RenderLayer::absoluteToContents):
131918        (WebCore::RenderLayer::scrollTo):
131919        (WebCore::RenderLayer::childrenClipRect):
131920        (WebCore::RenderLayer::selfClipRect):
131921        * rendering/RenderLayerBacking.cpp:
131922        (WebCore::RenderLayerBacking::contentsVisible):
131923        * rendering/RenderMediaControls.cpp:
131924        (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
131925        * rendering/RenderMenuList.cpp:
131926        (WebCore::RenderMenuList::showPopup):
131927        * rendering/RenderObject.cpp:
131928        (WebCore::RenderObject::absoluteFocusRingQuads):
131929        * rendering/RenderObject.h:
131930        * rendering/RenderText.cpp:
131931        (WebCore::RenderText::absoluteRectsForRange):
131932        (WebCore::RenderText::absoluteQuads):
131933        (WebCore::RenderText::absoluteQuadsForRange):
131934        * rendering/RenderTheme.cpp:
131935        (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
131936        * rendering/RenderView.cpp:
131937        (WebCore::RenderView::selectionBounds):
131938        * rendering/RenderView.h:
131939        (RenderView):
131940        * rendering/RenderWidget.cpp:
131941        (WebCore::RenderWidget::updateWidgetGeometry):
131942        * rendering/svg/RenderSVGForeignObject.cpp:
131943        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
131944        * rendering/svg/RenderSVGForeignObject.h:
131945        (RenderSVGForeignObject):
131946        * rendering/svg/RenderSVGInline.cpp:
131947        (WebCore::RenderSVGInline::mapLocalToContainer):
131948        * rendering/svg/RenderSVGInline.h:
131949        (RenderSVGInline):
131950        * rendering/svg/RenderSVGModelObject.cpp:
131951        (WebCore::RenderSVGModelObject::mapLocalToContainer):
131952        * rendering/svg/RenderSVGModelObject.h:
131953        (RenderSVGModelObject):
131954        * rendering/svg/RenderSVGRoot.h:
131955        (RenderSVGRoot):
131956        * rendering/svg/RenderSVGText.cpp:
131957        (WebCore::RenderSVGText::mapLocalToContainer):
131958        * rendering/svg/RenderSVGText.h:
131959        (RenderSVGText):
131960        * rendering/svg/SVGRenderSupport.cpp:
131961        (WebCore::SVGRenderSupport::mapLocalToContainer):
131962        * rendering/svg/SVGRenderSupport.h:
131963        (SVGRenderSupport):
131964
1319652012-12-15  Anders Carlsson  <andersca@apple.com>
131966
131967        Rename FrameLoaderClient::download to convertMainResourceLoadToDownload
131968        https://bugs.webkit.org/show_bug.cgi?id=105122
131969
131970        Reviewed by Andreas Kling.
131971
131972        Rename FrameLoaderClient::download to convertMainResourceLoadToDownload and change it to take a MainResourceLoader instead
131973        of a ResourceHandle, since resource handles may not exist when loading isn't done in the web process.
131974
131975        * WebCore.exp.in:
131976        * WebCore.xcodeproj/project.pbxproj:
131977        * loader/EmptyClients.h:
131978        * loader/FrameLoaderClient.h:
131979        (WebCore):
131980        (FrameLoaderClient):
131981        * loader/MainResourceLoader.cpp:
131982        (WebCore::MainResourceLoader::continueAfterContentPolicy):
131983
1319842012-12-16  Eric Carlson  <eric.carlson@apple.com>
131985
131986        Remove in-band text tracks when media element's src changes
131987        https://bugs.webkit.org/show_bug.cgi?id=105081
131988
131989        Reviewed by Sam Weinig.
131990
131991        No new tests, media/track/track-in-band.html was updated to test this change.
131992
131993        * html/HTMLMediaElement.cpp:
131994        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): Move some code into removeTrack.
131995        (WebCore::HTMLMediaElement::removeTrack): New, remove a track and all of its cues.
131996        (WebCore::HTMLMediaElement::removeAllInbandTracks): New, remove all in-band tracks.
131997        (WebCore::HTMLMediaElement::clearMediaPlayer): Call removeAllInbandTracks.
131998        * html/HTMLMediaElement.h:
131999
132000        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
132001        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
132002        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
132003        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Call clearTextTracks.
132004        (WebCore::MediaPlayerPrivateAVFoundationObjC::clearTextTracks): Remove all tracks from client.
132005
1320062012-12-16  Simon Fraser  <simon.fraser@apple.com>
132007
132008        Fix assertions when doing a full repaint of compositing layers
132009        https://bugs.webkit.org/show_bug.cgi?id=105128
132010
132011        Reviewed by Dan Bernstein.
132012
132013        In r137811 I added code to repaint all compositing layers when FrameView::layout()
132014        is doing a full repaint. However, this code needs to avoid calling setContentsNeedDisplay()
132015        on layers that don't actually draw their own content: those that draw into an ancestor,
132016        and those that draw into a window.
132017
132018        Fixes assertions in existing tests.
132019
132020        * rendering/RenderLayerBacking.cpp:
132021        (WebCore::RenderLayerBacking::updateAfterLayout):
132022
1320232012-12-16  ChangSeok Oh  <shivamidow@gmail.com>
132024
132025        [GTK][AC] Build failure with an option --with-acceleration-backend=clutter
132026        https://bugs.webkit.org/show_bug.cgi?id=105027
132027
132028        Reviewed by Gustavo Noronha Silva.
132029
132030        GLContext.* and RedirectedXCompositeWindow.* are meaningful only if opengl is
132031        a backend for the AC. So I wrap them in USE_OPENGL.
132032
132033        No new tests. This patch fixes a build fauilure, not adding new features.
132034
132035        * GNUmakefile.list.am:
132036
1320372012-12-16  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
132038
132039        [GStreamer] create playbin in ::load(), not in player constructor
132040        https://bugs.webkit.org/show_bug.cgi?id=103898
132041
132042        Reviewed by Philippe Normand.
132043
132044        This patch moves the instantiation of the playbin pipeline into the
132045        WebCore::MediaPlayerPrivateGStreamer::load() method, so the pipeline
132046        layout can reflect other predefined settings such as audio pitch
132047        preservation in variable playback rate scenarios
132048
132049        No new tests. Covered by existing tests.
132050
132051        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
132052        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
132053        (WebCore::MediaPlayerPrivateGStreamer::load):
132054        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
132055        (MediaPlayerPrivateGStreamer):
132056
1320572012-12-16  Mihnea Ovidenie  <mihnea@adobe.com>
132058
132059        [CSSRegions] Pseudo-elements should not be directly collected into a named flow
132060        https://bugs.webkit.org/show_bug.cgi?id=105046
132061
132062        Reviewed by Abhishek Arya.
132063
132064        Prevent pseudo-elements to be collected into a named-flow by bailing out early in the collecting stage.
132065        Following the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#flow-into, the pseudo-elements
132066        like ::before/::after/::first-letter/::first-line are not allowed to become content nodes, being directly
132067        collected into a flow thread.
132068
132069        Tests: fast/regions/pseudo-after-content-node.html
132070               fast/regions/pseudo-before-content-node.html
132071               fast/regions/pseudo-first-letter-content-node.html
132072               fast/regions/pseudo-first-line-content-node.html
132073
132074        * dom/NodeRenderingContext.cpp:
132075        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
132076
1320772012-12-16  Mihai Maerean  <mmaerean@adobe.com>
132078
132079        [CSS Regions] broken feature detection: body.webkitRegionOverset and body.webkitGetRegionFlowRanges shouldn't succeed when disabled at runtime
132080        https://bugs.webkit.org/show_bug.cgi?id=99707
132081
132082        Reviewed by Hajime Morita.
132083
132084        The bug is that the CSS Regions feature leaks information at run-time. There are JS properties that exist even
132085        if the feature is disabled at run-time (document.webkitGetNamedFlows, document.body.webkitRegionOverset,
132086        document.body.webkitGetRegionFlowRanges and window.WebKitCSSRegionRule).
132087
132088        The fix is to add V8EnabledAtRuntime=cssRegions in the IDL files to the properties that leak information and to
132089        the interfaces that are the type of those properties.
132090
132091        Test: fast/regions/region-leak-js-information-when-disabled-at-runtime.html
132092
132093        * css/WebKitCSSRegionRule.idl:
132094            added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule interface.
132095        * dom/DOMNamedFlowCollection.idl:
132096            added V8EnabledAtRuntime=cssRegions for the DOMNamedFlowCollection interface.
132097        * dom/Document.idl:
132098            added V8EnabledAtRuntime=cssRegions for the webkitGetNamedFlows method.
132099        * dom/Element.idl:
132100            added V8EnabledAtRuntime=cssRegions for the webkitRegionOverset attribute.
132101            added V8EnabledAtRuntime=cssRegions for the webkitGetRegionFlowRanges method.
132102        * page/DOMWindow.idl:
132103            added V8EnabledAtRuntime=cssRegions for the WebKitCSSRegionRule attribute.
132104
1321052012-12-15  Ian Vollick  <vollick@chromium.org>
132106
132107        [chromium] Automatically use composited scrolling
132108        https://bugs.webkit.org/show_bug.cgi?id=94743
132109
132110        Reviewed by Adrienne Walker.
132111
132112        We currently use the composited scrolling facilities provided by
132113        wkb.ug/91117 if the overflow scroll block element is styled with
132114        -webkit-overflow-scrolling: touch. Ideally, we could automatically
132115        opt into composited scrolling if it is safe to do so. This can affect
132116        antialiasing, so it is important that automatically opting in is only
132117        enabled via a setting.
132118
132119        The way I determine if it is safe is by checking that z-ordering will
132120        not be affected if the overflow scrollable element were promoted to a
132121        stacking context (details below), and that clipping our scrolling
132122        descendants will not affect rendering.
132123
132124        To check the first condition (that z-ordering will not be affected).
132125        I ensure that the candidate element and all its descendants appear as a 
132126        contiguous block in the candidate's stacking context. That is, if no 
132127        other elements are 'between' any of the candidates descendants when we
132128        sort in paint order, then we're safe. This is overly conservative,
132129        however. We could, in future, only consider stacking problems between
132130        elements that actually overlap.
132131
132132        To ensure that clipping will not cause a rendering change, I ensure
132133        that the layer has no out of flow positioned descendant whose
132134        containing block is not also a descendant of ours.
132135
132136        Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html
132137
132138        (WebCore):
132139        * rendering/RenderLayer.cpp:
132140        (WebCore::RenderLayer::RenderLayer):
132141        (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
132142        (WebCore):
132143        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
132144        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
132145        (WebCore::RenderLayer::positionNewlyCreatedOverflowControls):
132146        (WebCore::RenderLayer::canSafelyEstablishAStackingContext):
132147          Returns true if the RenderLayer could become a stacking context without
132148          affecting the stacking order.
132149        (WebCore::RenderLayer::updateDescendantDependentFlags):
132150          We now need to keep track of out of flow positioned descendants.
132151        (WebCore::RenderLayer::addChild):
132152        (WebCore::RenderLayer::removeChild):
132153        (WebCore::RenderLayer::usesCompositedScrolling):
132154          Returns true if the layer actually is using composited scrolling.
132155          This function may return false, even when needsCompositedScrolling
132156          returns true.
132157        (WebCore::RenderLayer::needsCompositedScrolling):
132158          This function returns true if we would like to use composited
132159          scrolling and it is safe to turn it on.
132160        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
132161        (WebCore::RenderLayer::scrollTo):
132162        (WebCore::RenderLayer::dirtyZOrderLists):
132163        (WebCore::RenderLayer::dirtyNormalFlowList):
132164          Since these could affect opting into composited scrolling, we must
132165          request that the RenderLayerCompositor reevaluate compositing.
132166        (WebCore::RenderLayer::updateLayerListsIfNeeded):
132167          We call updateCanSafelyEstablishStackingContext here, if necessary.
132168        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
132169        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
132170          usesCompositedScrolling -> needsCompositedScrolling
132171        (WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
132172        (WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
132173        (WebCore::RenderLayer::updateOutOfFlowPositioned):
132174          Dirties and sets the out of flow positioned descendant state.
132175        (WebCore::RenderLayer::styleChanged):
132176        * rendering/RenderLayer.h:
132177        (RenderLayer):
132178        (WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
132179        * rendering/RenderLayerBacking.cpp:
132180        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
132181        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
132182        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
132183        (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
132184        (WebCore):
132185        * rendering/RenderLayerBacking.h:
132186        (RenderLayerBacking):
132187        * rendering/RenderLayerCompositor.cpp:
132188        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
132189        (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
132190        * rendering/RenderLayerCompositor.h:
132191        (WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
132192        * testing/InternalSettings.cpp:
132193        (WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
132194          Allows enabling the setting in layout tests.
132195        (WebCore):
132196        * testing/InternalSettings.h:
132197        (InternalSettings):
132198        * testing/InternalSettings.idl:
132199
1322002012-12-15  Carlos Garcia Campos  <cgarcia@igalia.com>
132201
132202        Unreviewed. Fix make distcheck.
132203
132204        * bindings/gobject/GNUmakefile.am: Do not dist generated DOM
132205        bindings headers.
132206        * platform/ScrollAnimatorNone.cpp: Include PlatformGestureEvent.h
132207        only if gesture events are enabled.
132208
1322092012-12-15  Alexey Proskuryakov  <ap@apple.com>
132210
132211        Build fix.
132212
132213        * platform/network/FormData.cpp:
132214        (WebCore::encodeElement):
132215        (WebCore::decodeElement):
132216        (WebCore::FormData::encode):
132217        (WebCore::FormData::decode):
132218        Disambiguated encode/decode functions. I'm not quite sure why the compiler was
132219        confused, but distinct names should make the code more readable anyway.
132220
1322212012-12-15  Alexey Proskuryakov  <ap@apple.com>
132222
132223        <rdar://problem/12886312> Cannot upload patches to Bugzilla (<input type=file> doesn't work)
132224        https://bugs.webkit.org/show_bug.cgi?id=105120
132225
132226        Reviewed by Sam Weinig.
132227
132228        * WebCore.exp.in:
132229        * history/HistoryItem.cpp:
132230        * platform/network/FormData.h:
132231        Renamed encodeForBackForward and decodeForBackForward to encode and decode, respectively.
132232        I couldn't find anything in these that would limit them to this use, and data encoded
132233        for b/f has to be good enough to re-create a request anyway.
132234
132235        * platform/network/FormData.cpp: (WebCore::decode): Fixed file data decoder to not
132236        bail out in the general case of posting a complete file.
132237
1322382012-12-15  Nima Ghanavatian  <nghanavatian@rim.com>
132239
132240        [BlackBerry] Pass key modifiers with touch and mouse events
132241        https://bugs.webkit.org/show_bug.cgi?id=105108
132242
132243        Reviewed by Rob Buis.
132244
132245        Call Screen to retrieve current key modifiers.
132246
132247        Internally reviewed by Gen Mak.
132248
132249        * platform/PlatformMouseEvent.h:
132250        (PlatformMouseEvent):
132251        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
132252        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
132253        * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
132254        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
132255        * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
132256        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
132257
1322582012-12-15  Otto Derek Cheung  <otcheung@rim.com>
132259
132260        [BlackBerry] Prevent CookieManager from blocking the WKT thread
132261        https://bugs.webkit.org/show_bug.cgi?id=105111
132262
132263        PR 265603
132264
132265        Reviewed by Rob Buis.
132266        Internally reviewed by Konrad Piascik.
132267
132268        The getBackingStoreCookies in WKT is blocking the thread because it has to wait for
132269        the db to be opened before it can call on it.
132270
132271        The fix is to make CookieDatabaseBackingStore in the cookie_db thread dispatch
132272        a getBackingStoreCookies call on WKT after invokeOpen is finished.
132273
132274        Tested loading the browser. Cookies are being loaded into memory on start up.
132275
132276        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
132277        (WebCore::CookieDatabaseBackingStore::invokeOpen):
132278        * platform/blackberry/CookieManager.cpp:
132279        (WebCore::cookieManager):
132280        * platform/blackberry/CookieManager.h:
132281
1322822012-12-15  Simon Fraser  <simon.fraser@apple.com>
132283
132284        Fix repaint issues when resizing a window with centered content, for platforms with a tile cache
132285        https://bugs.webkit.org/show_bug.cgi?id=105073
132286
132287        Reviewed by Dan Bernstein.
132288
132289        There were several issues with the "do full repaint" code path in
132290        FrameView::layout(). These caused repaint issues when resizing the web view,
132291        especially for platforms that use a tile cache.
132292        
132293        First, the m_doFullRepaint flag wold get clobbered on resize-layouts, because
132294        the call to adjustViewSize() re-enters layout(), and resets the m_doFullRepaint member
132295        variable to false, even if the outer call had previously set it to true. This would
132296        cause us to lose track of whether we needed to do a full repaint. The patch fixes
132297        this by restoring m_doFullRepaint to the value it had before the call to adjustViewSize().
132298        
132299        The second problem was that full repaints would not propagate to compositing
132300        layers. They only repainted the RenderView, and on platforms that use a tile cache,
132301        this only repaints the top portion of that tile cache. This was fixed by sending
132302        a NeedsFullRepaintInBacking flag down into RenderLayer::updateLayerPositions(),
132303        and using that to do a full repaint on all compositing layers.
132304        
132305        Sending this new flag down into updateAfterLayout() prompted some boolean/flags
132306        cleanup with propagated into several files. This also allowed me to no longer
132307        include RenderLayerBacking.h in RenderLayerCompositor.h, but that required
132308        header cleanup in several files.
132309
132310        Automated testing is not possible because WebKitTestRunner resizes the window
132311        asynchronously (bug 105101). Added manual test.
132312
132313        * page/FrameView.cpp:
132314        (WebCore::updateLayerPositionFlags):
132315        (WebCore::FrameView::layout):
132316        * page/scrolling/ScrollingCoordinator.cpp:
132317        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
132318        * rendering/RenderLayer.cpp:
132319        (WebCore::RenderLayer::updateLayerPositions):
132320        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
132321        * rendering/RenderLayer.h:
132322        * rendering/RenderLayerBacking.cpp:
132323        (WebCore::RenderLayerBacking::updateAfterLayout):
132324        (WebCore::RenderLayerBacking::contentChanged):
132325        * rendering/RenderLayerBacking.h:
132326        * rendering/RenderLayerCompositor.cpp:
132327        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
132328        * rendering/RenderLayerCompositor.h:
132329        * rendering/RenderObject.cpp:
132330        * rendering/RenderView.cpp:
132331
1323322012-12-15  Anders Carlsson  <andersca@apple.com>
132333
132334        Fix build.
132335
132336        * platform/graphics/ca/GraphicsLayerCA.h:
132337        Remove an unused member variable.
132338
1323392012-12-15  Simon Fraser  <simon.fraser@apple.com>
132340
132341        REGRESSION (r137006): TileCache flashes to linen, rather than the background color, when scrolling fast
132342        https://bugs.webkit.org/show_bug.cgi?id=104746
132343
132344        Reviewed by Darin Adler.
132345
132346        Make RenderLayerBacking::updateBackgroundColor() responsible for setting the background
132347        color of the main frame's root layer to the document background color (rather than doing
132348        it in code related to overlay scrollbars, which was crazy). This is only done for platforms
132349        that use a TiledBacking (currently, just Mac).
132350        
132351        Also fix updateBackgroundColor() to not call m_graphicsLayer->setContentsToBackgroundColor()
132352        and then call clearBackgroundColor() right away if the color was transparent.
132353        
132354        * page/FrameView.cpp:
132355        (WebCore::FrameView::recalculateScrollbarOverlayStyle): Remove code that calls documentBackgroundColorDidChange().
132356        * rendering/RenderLayerBacking.cpp:
132357        (WebCore::clipBox): Remove blank linke.
132358        (WebCore::RenderLayerBacking::updateBackgroundColor):
132359        * rendering/RenderLayerCompositor.cpp:
132360        * rendering/RenderLayerCompositor.h:
132361        (RenderLayerCompositor):
132362
1323632012-12-15  No'am Rosenthal  <noam.rosenthal@nokia.com>
132364
132365        Disambiguate "background color" and "contents as solid color" on GraphicsLayer
132366        https://bugs.webkit.org/show_bug.cgi?id=104842
132367
132368        Reviewed by Simon Fraser.
132369
132370        Rename overloads in GraphicsLayerTextureMapper and GraphicsLayerChromium to account for the rename in GraphicsLayer.
132371
132372        Covered by existing tests.
132373
132374        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
132375        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
132376        (WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
132377        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
132378        (GraphicsLayerTextureMapper):
132379        (WebCore::GraphicsLayerTextureMapper::solidColor):
132380        * platform/graphics/texmap/TextureMapperLayer.cpp:
132381        (WebCore::TextureMapperLayer::paintSelf):
132382        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
132383        * platform/graphics/texmap/TextureMapperLayer.h:
132384        (State):
132385
1323862012-12-13  Simon Fraser  <simon.fraser@apple.com>
132387
132388        Disambiguate "background color" and "contents as solid color" on GraphicsLayer
132389        https://bugs.webkit.org/show_bug.cgi?id=104842
132390
132391        Reviewed by Dean Jackson.
132392
132393        GraphicsLayer failed to be clear about the distinction between
132394        the layer background color, and setting the layer contents
132395        to a color. This caused some recently added tests to fail,
132396        and required some special-casing for the TileCache in
132397        GraphicsLayerCA.
132398        
132399        Separate these two concepts on GraphicsLayer. setBackgroundColor()
132400        now sets the background color on the entire layer, which will only
132401        be used in special cases like the TileCache.
132402        
132403        The existing setContentsToBackgroundColor() is renamed to
132404        setContentsToSolidColor(), and is an explicit request to create
132405        a contents layer for the purpose of displaying a simple color.
132406        
132407        In both cases, 'clear' methods are not necessary; calling
132408        the setter with an invalid color clears the color.
132409
132410        Covered by existing tests.
132411
132412        * WebCore.exp.in: Remove GraphicsLayer::clearBackgroundColor().
132413        * platform/graphics/GraphicsLayer.cpp:
132414        (WebCore::GraphicsLayer::GraphicsLayer):
132415        (WebCore::GraphicsLayer::setBackgroundColor):
132416        (WebCore::GraphicsLayer::dumpProperties):
132417        * platform/graphics/GraphicsLayer.h:
132418        (GraphicsLayer): Remove m_backgroundColorSet; we just check whether
132419        the color is a valid color now.
132420        (WebCore::GraphicsLayer::setContentsToSolidColor):
132421        * platform/graphics/ca/GraphicsLayerCA.cpp:
132422        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
132423        (WebCore::GraphicsLayerCA::setBackgroundColor):
132424        (WebCore::GraphicsLayerCA::setContentsToSolidColor):
132425        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
132426        (WebCore::GraphicsLayerCA::updateBackgroundColor):
132427        (WebCore::GraphicsLayerCA::updateContentsColorLayer):
132428        (WebCore):
132429        * platform/graphics/ca/GraphicsLayerCA.h:
132430        (GraphicsLayerCA):
132431        * rendering/RenderLayerBacking.cpp:
132432        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): We have
132433        to call updateBackgroundColor(), because the 'is simple compositing layer'
132434        state may change in this code path.
132435        (WebCore::RenderLayerBacking::updateBackgroundColor): Don't initialize
132436        the Color to transparent (it will be invalid initially), and always
132437        call setContentsToSolidColor() which will either set or remove the color.
132438
1324392012-12-15  Mark Lam  <mark.lam@apple.com>
132440
132441        Re-landing patch for "Introducing the DatabaseStrategy and database servers".
132442        https://bugs.webkit.org/show_bug.cgi?id=104934.
132443
132444        Not reviewed.
132445
132446        Merged from r137767. Previously reviewed by Sam Weinig.
132447        Also added __ZTVN7WebCore16DatabaseStrategyE to WebCore.exp.in.
132448
132449        No new tests.
132450
132451        * CMakeLists.txt:
132452        * GNUmakefile.list.am:
132453        * Modules/webdatabase/AbstractDatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabaseServer.h.
132454        * Modules/webdatabase/DBBackendServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
132455        * Modules/webdatabase/DatabaseManager.cpp:
132456        (WebCore::DatabaseManager::DatabaseManager):
132457        * Modules/webdatabase/DatabaseManager.h:
132458        (DatabaseManager):
132459        * Target.pri:
132460        * WebCore.exp.in:
132461        * WebCore.gypi:
132462        * WebCore.vcproj/WebCore.vcproj:
132463        * WebCore.xcodeproj/project.pbxproj:
132464        * platform/DatabaseStrategy.cpp: Copied from Source/WebCore/platform/DatabaseStrategy.cpp.
132465        * platform/DatabaseStrategy.h: Copied from Source/WebCore/platform/DatabaseStrategy.h.
132466        * platform/PlatformStrategies.h:
132467        (WebCore::PlatformStrategies::databaseStrategy):
132468        (PlatformStrategies):
132469        (WebCore::PlatformStrategies::PlatformStrategies):
132470
1324712012-12-14  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
132472
132473        Emphasis mark is printed after inline-block with justify
132474        https://bugs.webkit.org/show_bug.cgi?id=104631
132475
132476        Reviewed by Dean Jackson.
132477
132478        Do not print an emphasis mark after an inline-block when justified.
132479
132480        If an inline-block is expanded, it has a space appended to it.
132481        This space should not have any emphasis marks drawn.
132482
132483        Test: fast/inline/justify-emphasis-inline-box.html
132484
132485        * platform/graphics/SimpleFontData.h:
132486        (WebCore::SimpleFontData::zeroWidthSpaceGlyph): Add getter method to get zero width space glyph.
132487        * platform/graphics/WidthIterator.cpp:
132488        (WebCore::WidthIterator::advanceInternal): We use zero width space for the extra space not to draw emphasis marks.
132489
1324902012-12-14  Jer Noble  <jer.noble@apple.com>
132491
132492        Unreviewed bug fix after r137782.
132493
132494        Add new source file TextTrackRepresentation.cpp to CMakeLists.txt.
132495
132496        * CMakeLists.txt:
132497
1324982012-12-14  Sheriff Bot  <webkit.review.bot@gmail.com>
132499
132500        Unreviewed, rolling out r137767.
132501        http://trac.webkit.org/changeset/137767
132502        https://bugs.webkit.org/show_bug.cgi?id=105062
132503
132504        Broke Mac builds. (Requested by mlam on #webkit).
132505
132506        * CMakeLists.txt:
132507        * GNUmakefile.list.am:
132508        * Modules/webdatabase/AbstractDatabaseServer.h: Removed.
132509        * Modules/webdatabase/DBBackendServer.h: Removed.
132510        * Modules/webdatabase/DatabaseManager.cpp:
132511        (WebCore::DatabaseManager::DatabaseManager):
132512        * Modules/webdatabase/DatabaseManager.h:
132513        * Target.pri:
132514        * WebCore.exp.in:
132515        * WebCore.gypi:
132516        * WebCore.vcproj/WebCore.vcproj:
132517        * WebCore.xcodeproj/project.pbxproj:
132518        * platform/DatabaseStrategy.cpp: Removed.
132519        * platform/DatabaseStrategy.h: Removed.
132520        * platform/PlatformStrategies.h:
132521        (WebCore):
132522        (WebCore::PlatformStrategies::PlatformStrategies):
132523        (PlatformStrategies):
132524
1325252012-12-14  Jer Noble  <jer.noble@apple.com>
132526
132527        Allow the text track contents to be displayed externally to WebCore.
132528        https://bugs.webkit.org/show_bug.cgi?id=105052
132529
132530        Reviewed by Eric Carlson.
132531
132532        Support scenarios where the text track contents must be rendered outside of WebCore, such as to an external
132533        display or window.  Add an abstract base class which encapsulates the external representation to which the
132534        text tracks will be rendered.
132535
132536        Add a new abstract base class and client to wrap the external rendering of a TextTrack.
132537        * platform/graphics/TextTrackRepresentation.h: Added.
132538        (WebCore::TextTrackRepresentationClient::~TextTrackRepresentationClient):
132539        (WebCore::TextTrackRepresentation::~TextTrackRepresentation):
132540
132541        Add an empty concrete implementation for those ports who do not yet support external display of subtitles.
132542        * platform/graphics/TextTrackRepresentation.cpp: Added.
132543        (NullTextTrackRepresentation):
132544        (WebCore::NullTextTrackRepresentation::~NullTextTrackRepresentation):
132545        (WebCore::NullTextTrackRepresentation::update):
132546        (WebCore::NullTextTrackRepresentation::platformLayer):
132547        (WebCore::NullTextTrackRepresentation::setContentScale):
132548        (WebCore::NullTextTrackRepresentation::bounds):
132549        (WebCore::TextTrackRepresentation::create):
132550
132551        Add methods to MediaPlayerPrivateIOS to handle the TextTrackRepresentation.
132552        * platform/graphics/ios/MediaPlayerPrivateIOS.h:
132553        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
132554        (WebCore::MediaPlayerPrivateIOS::deliverNotification): Remove the representation when exiting full screen.
132555        (WebCore::MediaPlayerPrivateIOS::requiresTextTrackRepresentation): Return YES if in full screen mode.
132556        (WebCore::MediaPlayerPrivateIOS::setTextTrackRepresentation): Pass the representation's layer to the player plug-in.
132557
132558        Expose those methods via HTMLMediaElement:
132559        * html/HTMLMediaElement.cpp:
132560        (WebCore::HTMLMediaElement::requiresTextTrackRepresentation):
132561        (WebCore::HTMLMediaElement::setTextTrackRepresentation):
132562        * html/HTMLMediaElement.h:
132563        * platform/graphics/MediaPlayer.cpp:
132564        (WebCore::MediaPlayer::requiresTextTrackRepresentation):
132565        (WebCore::MediaPlayer::setTextTrackRepresentation):
132566        * platform/graphics/MediaPlayer.h:
132567        (WebCore::MediaPlayerClient::textTrackRepresentationBoundsChanged):
132568        (WebCore::MediaPlayerClient::paintTextTrackRepresentation):
132569        * platform/graphics/MediaPlayerPrivate.h:
132570        (WebCore::MediaPlayerPrivateInterface::requiresTextTrackRepresentation):
132571        (WebCore::MediaPlayerPrivateInterface::setTextTrackRepresentation):
132572
132573        * html/shadow/MediaControlElements.cpp:
132574        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Create the representation, if necessary.
132575        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Use the representation to determine the font size.
132576        (WebCore::MediaControlTextTrackContainerElement::paintTextTrackRepresentation): Added. Paint the TextTrack into the provided graphics context.
132577        (WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged): Added. Call updateSizes().
132578        * html/shadow/MediaControlElements.h:
132579
132580        Add the new files to the project.
132581        * WebCore.xcodeproj/project.pbxproj:
132582        * GNUmakefile.list.am:
132583        * Target.pri:
132584        * WebCore.gypi:
132585        * WebCore.vcproj/WebCore.vcproj:
132586
1325872012-12-14  Fady Samuel  <fsamuel@chromium.org>
132588
132589        Allow embedder to observe changes to frame names
132590        https://bugs.webkit.org/show_bug.cgi?id=104404
132591
132592        Reviewed by Darin Fisher.
132593
132594        * loader/FrameLoaderClient.h:
132595        (WebCore::FrameLoaderClient::didChangeName):
132596        (FrameLoaderClient):
132597        * page/DOMWindow.cpp:
132598        (WebCore::DOMWindow::setName):
132599
1326002012-12-14  James Simonsen  <simonjam@chromium.org>
132601
132602        [Resource Timing] Properly report reused connections
132603        https://bugs.webkit.org/show_bug.cgi?id=104986
132604
132605        Reviewed by Tony Gentilcore.
132606
132607        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse.html
132608
132609        * page/PerformanceResourceTiming.cpp:
132610        (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
132611        (WebCore::PerformanceResourceTiming::connectStart):
132612        (WebCore::PerformanceResourceTiming::connectEnd):
132613        * page/PerformanceResourceTiming.h:
132614        (PerformanceResourceTiming):
132615
1326162012-12-14  Roger Fong  <roger_fong@apple.com>
132617
132618        Enable video caption controls on Windows.
132619        https://bugs.webkit.org/show_bug.cgi?id=105045.
132620
132621        Reviewed by Eric Carlson.
132622
132623        Now that video tracks have been enabled on Windows, enable controls as well.
132624
132625        * html/shadow/MediaControlElements.cpp:
132626        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
132627        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
132628        * html/shadow/MediaControlElements.h:
132629        * rendering/RenderThemeWin.h:
132630
1326312012-12-14  Mark Lam  <mark.lam@apple.com>
132632
132633        Introducing the DatabaseStrategy and database servers.
132634        https://bugs.webkit.org/show_bug.cgi?id=104934.
132635
132636        Reviewed by Sam Weinig.
132637
132638        The database server is currently a placeholder that does nothing.
132639
132640        No new tests.
132641
132642        * CMakeLists.txt:
132643        * GNUmakefile.list.am:
132644        * Modules/webdatabase/AbstractDatabaseServer.h: Added.
132645        (WebCore):
132646        (AbstractDatabaseServer):
132647        (WebCore::AbstractDatabaseServer::AbstractDatabaseServer):
132648        (WebCore::AbstractDatabaseServer::~AbstractDatabaseServer):
132649        * Modules/webdatabase/DBBackendServer.h: Added.
132650        (DBBackend):
132651        * Modules/webdatabase/DatabaseManager.cpp:
132652        (WebCore::DatabaseManager::DatabaseManager):
132653        * Modules/webdatabase/DatabaseManager.h:
132654        (WebCore):
132655        (DatabaseManager):
132656        * Target.pri:
132657        * WebCore.exp.in:
132658        * WebCore.gypi:
132659        * WebCore.vcproj/WebCore.vcproj:
132660        * WebCore.xcodeproj/project.pbxproj:
132661        * platform/DatabaseStrategy.cpp: Added.
132662        (WebCore):
132663        (WebCore::DatabaseStrategy::getDatabaseServer):
132664        * platform/DatabaseStrategy.h: Added.
132665        (WebCore):
132666        (DatabaseStrategy):
132667        (WebCore::DatabaseStrategy::~DatabaseStrategy):
132668        * platform/PlatformStrategies.h:
132669        (WebCore):
132670        (WebCore::PlatformStrategies::databaseStrategy):
132671        (PlatformStrategies):
132672        (WebCore::PlatformStrategies::PlatformStrategies):
132673
1326742012-12-14  Anton Vayvod  <avayvod@chromium.org>
132675
132676        Text Autosizing: Consider inline-block and inline-table elements to be autosizing clusters.
132677        https://bugs.webkit.org/show_bug.cgi?id=104702
132678
132679        Reviewed by Julien Chaffraix.
132680
132681        A common pattern for creating adjacent columns in CSS is to set each of the columns to
132682        display:inline-block, display:inline-table or alike WebKit-specific styles. Whenever columns
132683        are used, Text Autosizing needs to assign each of the columns to different clusters (since
132684        the user can zoom in such that a column fills the width of the screen, so text within a column
132685        should have a smaller multiplier than it's wider enclosing cluster would have needed).
132686
132687        This patch causes display:inline-block, display:inline-table and alike styles to trigger new clusters.
132688
132689        Test: fast/text-autosizing/cluster-inline-block-or-table.html
132690        Test: fast/text-autosizing/cluster-inline-grid-flex-box.html
132691
132692        * rendering/TextAutosizer.cpp:
132693        (WebCore::TextAutosizer::isAutosizingContainer):
132694        (WebCore::TextAutosizer::isAutosizingCluster):
132695            Consider display:inline-block, inline-table and alike elements to be autosizing containers and clusters.
132696
1326972012-12-14  Anders Carlsson  <andersca@apple.com>
132698
132699        REGRESSION (r137607): Cannot download files, stuck in "Preparing to download"
132700        https://bugs.webkit.org/show_bug.cgi?id=105044
132701        <rdar://problem/12879657>
132702
132703        Reviewed by Alexey Proskuryakov.
132704
132705        Make ResourceHandle::cancel return early if the handle has been converted to a download.
132706
132707        * platform/network/mac/ResourceHandleMac.mm:
132708        (WebCore::ResourceHandle::cancel):
132709
1327102012-12-14  Sheriff Bot  <webkit.review.bot@gmail.com>
132711
132712        Unreviewed, rolling out r137570.
132713        http://trac.webkit.org/changeset/137570
132714        https://bugs.webkit.org/show_bug.cgi?id=105048
132715
132716        Stale nodes in the touchEventTarget HashCountedSet are
132717        triggering crashes. Rolling out while I find the root cause.
132718        (Requested by leviw on #webkit).
132719
132720        * dom/Document.cpp:
132721        (WebCore::Document::Document):
132722        (WebCore::Document::didAddTouchEventHandler):
132723        (WebCore::Document::didRemoveTouchEventHandler):
132724        * dom/Document.h:
132725        (WebCore::Document::touchEventHandlerCount):
132726        (Document):
132727        * dom/Node.cpp:
132728        (WebCore::Node::didMoveToNewDocument):
132729        (WebCore::tryAddEventListener):
132730        (WebCore::tryRemoveEventListener):
132731        * history/CachedFrame.cpp:
132732        (WebCore::CachedFrameBase::restore):
132733        * html/HTMLInputElement.cpp:
132734        (WebCore::HTMLInputElement::~HTMLInputElement):
132735        (WebCore::HTMLInputElement::updateType):
132736        * page/DOMWindow.cpp:
132737        (WebCore::DOMWindow::addEventListener):
132738        (WebCore::DOMWindow::removeEventListener):
132739        * page/EventHandler.cpp:
132740        (WebCore::EventHandler::handleTouchEvent):
132741        * page/Frame.cpp:
132742        (WebCore::Frame::setDocument):
132743        * page/scrolling/ScrollingCoordinator.cpp:
132744        * page/scrolling/ScrollingCoordinator.h:
132745        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
132746        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
132747        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
132748        (ScrollingCoordinatorChromium):
132749        * testing/Internals.cpp:
132750        (WebCore::Internals::touchEventHandlerCount):
132751        * testing/Internals.h:
132752        (Internals):
132753        * testing/Internals.idl:
132754
1327552012-12-14  Michelangelo De Simone  <michelangelo@webkit.org>
132756
132757        [CSS Shaders] Remove code for the other mesh box types (border-box | padding-box | content-box)
132758        https://bugs.webkit.org/show_bug.cgi?id=103776
132759
132760        Reviewed by Dean Jackson.
132761
132762        The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
132763        and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.
132764
132765        In this patch we remove everything but the parsing code, which shall be addressed in a different patch
132766        (see: https://bugs.webkit.org/show_bug.cgi?id=103778).
132767
132768        Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt
132769
132770        Existing tests have been updated and new parsing legacy cases have been added.
132771
132772        * css/CSSComputedStyleDeclaration.cpp:
132773        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
132774        * css/CSSParser.cpp:
132775        (WebCore::CSSParser::parseCustomFilter):
132776        * css/CSSPrimitiveValueMappings.h:
132777        * css/StyleResolver.cpp:
132778        (WebCore::StyleResolver::createCustomFilterOperation):
132779        * platform/graphics/filters/CustomFilterConstants.h:
132780        * platform/graphics/filters/CustomFilterOperation.cpp:
132781        (WebCore::CustomFilterOperation::CustomFilterOperation):
132782        (WebCore::CustomFilterOperation::blend):
132783        * platform/graphics/filters/CustomFilterOperation.h:
132784        (WebCore::CustomFilterOperation::create):
132785        (CustomFilterOperation):
132786        (WebCore::CustomFilterOperation::operator==):
132787        * platform/graphics/filters/CustomFilterRenderer.cpp:
132788        (WebCore::CustomFilterRenderer::create):
132789        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
132790        * platform/graphics/filters/CustomFilterRenderer.h:
132791        (CustomFilterRenderer):
132792        * platform/graphics/filters/FECustomFilter.cpp:
132793        (WebCore::FECustomFilter::FECustomFilter):
132794        (WebCore::FECustomFilter::create):
132795        * platform/graphics/filters/FECustomFilter.h:
132796        (FECustomFilter):
132797        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
132798        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
132799        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
132800        (WebCore::ValidatedCustomFilterOperation::create):
132801        (WebCore::ValidatedCustomFilterOperation::operator==):
132802        (ValidatedCustomFilterOperation):
132803        * rendering/FilterEffectRenderer.cpp:
132804        (WebCore::createCustomFilterEffect):
132805        * rendering/RenderLayer.cpp:
132806        (WebCore::RenderLayer::computeFilterOperations):
132807        * platform/graphics/texmap/TextureMapperGL.cpp:
132808        (WebCore::TextureMapperGL::drawUsingCustomFilter):
132809
1328102012-12-14  Yury Semikhatsky  <yurys@chromium.org>
132811
132812        Web Inspector: optional parameters of protocol commands should go after required ones
132813        https://bugs.webkit.org/show_bug.cgi?id=105019
132814
132815        Reviewed by Pavel Feldman.
132816
132817        * inspector/Inspector.json: Moved required x and y parameters declaration before
132818        optional ones.
132819        * inspector/InspectorInputAgent.cpp:
132820        (WebCore::InspectorInputAgent::dispatchMouseEvent):
132821        * inspector/InspectorInputAgent.h:
132822        (InspectorInputAgent):
132823
1328242012-12-14  Jessie Berlin  <jberlin@apple.com>
132825
132826        Mac build fix after r137724.
132827
132828        * platform/graphics/MediaPlayer.h:
132829        (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
132830        Comment out the names of the unused parameters so they don't trigger unused parameter
132831        warnings.
132832        (WebCore::MediaPlayerClient::mediaPlayerKeyError):
132833        Ditto.
132834        (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
132835        Ditto.
132836        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
132837        Ditto.
132838
132839        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
132840        (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest):
132841        Pass an empty URL for the new defaultURL parameter in the keyMessage call.
132842
1328432012-12-14  Alberto Garcia  <agarcia@igalia.com>
132844
132845        [GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials to the persistent storage
132846        https://bugs.webkit.org/show_bug.cgi?id=104910
132847
132848        Reviewed by Martin Robinson.
132849
132850        Add new parameter to GtkAuthenticationDialog to select whether we
132851        allow persistent storage of credential information or not. In the
132852        latter case, the "Remember password" check button is not shown and
132853        the credentials are always stored in the session.
132854
132855        * platform/gtk/GtkAuthenticationDialog.cpp:
132856        (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
132857        (WebCore::GtkAuthenticationDialog::createContentsInContainer):
132858        (WebCore::GtkAuthenticationDialog::buttonClickedCallback):
132859        * platform/gtk/GtkAuthenticationDialog.h:
132860        (GtkAuthenticationDialog):
132861
1328622012-12-14  Andrey Kosyakov  <caseq@chromium.org>
132863
132864        Unreviewed, rolling out r129633 and r129757.
132865        http://trac.webkit.org/changeset/129633
132866        http://trac.webkit.org/changeset/129757
132867        https://bugs.webkit.org/show_bug.cgi?id=97659
132868
132869        Causes performance regression whn inspector overlay is
132870        displayed
132871
132872        * inspector/InspectorOverlay.cpp:
132873        (WebCore::InspectorOverlay::paint):
132874
1328752012-12-14  Yury Semikhatsky  <yurys@chromium.org>
132876
132877        Web Inspector: add data grid for exploring native heap graph
132878        https://bugs.webkit.org/show_bug.cgi?id=105012
132879
132880        Reviewed by Pavel Feldman.
132881
132882        Added a view for displaying native heap graph nodes.
132883
132884        * inspector/HeapGraphSerializer.cpp:
132885        (WebCore::HeapGraphSerializer::reportEdge):
132886        * inspector/front-end/NativeMemorySnapshotView.js:
132887        (WebInspector.NativeMemorySnapshotView):
132888        (WebInspector.NativeMemorySnapshotView.prototype._onSelectedViewChanged):
132889        (WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
132890        (WebInspector.NativeHeapGraphNode):
132891        (WebInspector.NativeHeapGraphNode.prototype.id):
132892        (WebInspector.NativeHeapGraphNode.prototype.type):
132893        (WebInspector.NativeHeapGraphNode.prototype.size):
132894        (WebInspector.NativeHeapGraphNode.prototype.className):
132895        (WebInspector.NativeHeapGraphNode.prototype.name):
132896        (WebInspector.NativeHeapGraphNode.prototype.hasReferencedNodes):
132897        (WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
132898        (WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
132899        (WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
132900        (WebInspector.NativeHeapGraphNode.prototype._getStringField):
132901        (WebInspector.NativeHeapGraph):
132902        (WebInspector.NativeHeapGraph.prototype.rootNodes):
132903        (WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
132904        (WebInspector.NativeHeapGraphDataGrid):
132905        (WebInspector.NativeHeapGraphDataGridRoot):
132906        (WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
132907        (WebInspector.NativeHeapGraphDataGridNode):
132908        (WebInspector.NativeHeapGraphDataGridNode.prototype._populate):
132909        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
132910        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
132911
1329122012-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
132913
132914        Web Inspector: Native Memory Instrumentation: do not validate InlineFlowBox objects against tcmalloc data.
132915        https://bugs.webkit.org/show_bug.cgi?id=105001
132916
132917        Reviewed by Yury Semikhatsky.
132918
132919        This is a follow-up change for r137589.
132920
132921        * rendering/InlineFlowBox.cpp:
132922        (WebCore::InlineFlowBox::reportMemoryUsage):
132923        (WebCore):
132924        * rendering/InlineFlowBox.h:
132925        (InlineFlowBox):
132926
1329272012-12-14  Kentaro Hara  <haraken@chromium.org>
132928
132929        ChildNodesLazySnapshot::nextNode() can crash in Debug builds
132930        https://bugs.webkit.org/show_bug.cgi?id=104982
132931
132932        Reviewed by Ryosuke Niwa.
132933
132934        The original fix in r137702 was not enough. r137702 fixed a crash
132935        in Release builds but didn't fix a crash in Debug builds.
132936        We have to also change a return type of ChildNodesLazySnapshot::nextNode()
132937        from a raw pointer to a RefPtr.
132938
132939        Test: fast/dom/insertedIntoDocument-no-crash.html
132940        (Confirm that this test does not crash in Debug builds.)
132941
132942        * dom/ContainerNode.h:
132943        (WebCore::ChildNodesLazySnapshot::nextNode):
132944        * dom/ContainerNodeAlgorithms.cpp:
132945        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
132946        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
132947
1329482012-12-14  John Mellor  <johnme@chromium.org>
132949
132950        Text Autosizing: Don't autosize unwrappable blocks
132951        https://bugs.webkit.org/show_bug.cgi?id=104925
132952
132953        Reviewed by Julien Chaffraix.
132954
132955        If we autosize an unwrappable block (white-space:nowrap/pre), it'll
132956        expand sideways. This doesn't actually improve its legibility, and it
132957        can often severely break web page layouts. This patch prevents us from
132958        autosizing unwrappable blocks. A follow-up patch will address the more
132959        complex issue of unwrappable inline elements.
132960
132961        Tests: fast/text-autosizing/unwrappable-blocks.html
132962               fast/text-autosizing/unwrappable-inlines.html
132963
132964        * rendering/TextAutosizer.cpp:
132965        (WebCore::TextAutosizer::processContainer):
132966            Use containerShouldbeAutosized instead of contentHeightIsConstrained.
132967        (WebCore::contentHeightIsConstrained):
132968            Unchanged, just moved lower down the file.
132969        (WebCore::TextAutosizer::containerShouldbeAutosized):
132970            Checks that the block is wrappable, and also that contentHeightIsConstrained is false.
132971        (WebCore::TextAutosizer::measureDescendantTextWidth):
132972            Use containerShouldbeAutosized instead of contentHeightIsConstrained.
132973        * rendering/TextAutosizer.h:
132974            Declared containerShouldbeAutosized.
132975
1329762012-12-14  Vsevolod Vlasov  <vsevik@chromium.org>
132977
132978        Web Inspector: Duplicate scripts appear in workspace when script was referenced by url with a fragment part.
132979        https://bugs.webkit.org/show_bug.cgi?id=105004
132980
132981        Reviewed by Alexander Pavlov.
132982
132983        * inspector/front-end/NetworkUISourceCodeProvider.js:
132984        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
132985
1329862012-12-14  Kunihiko Sakamoto  <ksakamoto@chromium.org>
132987
132988        Hours field of date/time input UI should respect step attribute
132989        https://bugs.webkit.org/show_bug.cgi?id=104993
132990
132991        Reviewed by Kent Tamura.
132992
132993        This patch makes step-up/-down UI of the hours field respect step attribute when possible.
132994
132995        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
132996
132997        * html/shadow/DateTimeEditElement.cpp:
132998        (WebCore::DateTimeEditBuilder::visitField): Pass step parameters to the hour field constructor.
132999        * html/shadow/DateTimeFieldElements.cpp:
133000        (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Add Parameters argument.
133001        (WebCore::DateTimeHourFieldElement::create): Ditto.
133002        * html/shadow/DateTimeFieldElements.h:
133003        (DateTimeHourFieldElement): Ditto.
133004
1330052012-12-14  Yury Semikhatsky  <yurys@chromium.org>
133006
133007        Unreviewed. Windows compilation fix after r137728.
133008
133009        * inspector/InspectorAllInOne.cpp:
133010
1330112012-12-14  Shinya Kawanaka  <shinyak@chromium.org>
133012
133013        [Shadow DOM] ShadowRoot.getElementById() should work outside document.
133014        https://bugs.webkit.org/show_bug.cgi?id=87815
133015
133016        Reviewed by Hajime Morita.
133017
133018        ShadowRoot.getElementById() didn't work if ShadowRoot is outside document. We need to update id when an element
133019        is in ShadowTree event if it is not in document.
133020
133021        For performance reason, we introduce IsInShadowTree flag, which enables us to check isInTreeScope() fast.
133022        This is maintained in Element::insertedInto and removedFrom. Here, we're anxious about performance regression,
133023        however our benchmark result shows this doesn't regress the performance.
133024
133025        I've measured Dromaeo/dom-modify.html and Parser/html5-full-render.html 2 times.
133026
133027        Dromaeo/dom-modify.html
133028             35.21,   35.27 [runs/s] --->   35.76,   35.56 [runs/s]
133029        Parser/html5-full-render.html
133030           4328.51, 4254.94 [ms]     ---> 4277.14, 4222.43 [ms]
133031
133032        Test: fast/dom/shadow/getelementbyid-in-orphan.html
133033
133034        * dom/Element.cpp:
133035        (WebCore::Element::insertedInto):
133036        * dom/Element.h:
133037        (WebCore::Element::updateId):
133038        * dom/Node.cpp:
133039        (WebCore::Node::insertedInto): If the parent node is in shadow tree, this node should be also in the same shadow tree.
133040        Since this node is inserted, parentOrHostNode() will not be null.
133041        (WebCore::Node::removedFrom): When node is removed from ShadowTree, its treeScope() should not be ShadowRoot.
133042        * dom/Node.h:
133043        (Node):
133044        (WebCore::Node::isInShadowTree):
133045        (WebCore::Node::isInTreeScope):
133046
1330472012-12-14  Antoine Quint  <graouts@apple.com>
133048
133049        LayerTreeAgent should only be enabled upon restore if it was previously in the enabled state
133050        https://bugs.webkit.org/show_bug.cgi?id=104887
133051
133052        Reviewed by Pavel Feldman.
133053
133054        Check that we were previously in the enabled state before re-enabling the agent upon restore,
133055        as suggested by Pavel Feldman in follow-up discussion to https://bugs.webkit.org/show_bug.cgi?id=103513.
133056
133057        * inspector/InspectorLayerTreeAgent.cpp:
133058        (WebCore::InspectorLayerTreeAgent::restore):
133059
1330602012-12-14  Eugene Klyuchnikov  <eustas@chromium.org>
133061
133062        Web Inspector: CPU Profile: Search in "heavy" mode is very slow.
133063        https://bugs.webkit.org/show_bug.cgi?id=103682
133064
133065        Reviewed by Pavel Feldman.
133066
133067        In "heavy" mode the searchable tree is much larger than original tree.
133068        That is why search can cause watchdog timer fired.
133069
133070        Simple optimization makes search much faster.
133071
133072        * inspector/front-end/CPUProfileView.js:
133073        (WebInspector.CPUProfileView.prototype.searchCanceled):
133074        Fix cleanup.
133075        (WebInspector.CPUProfileView.prototype.matchesQuery):
133076        Precompute regexp.
133077        (WebInspector.CPUProfileView.prototype.performSearch):
133078        Use precomputed regexp instead of generating one on each iteration.
133079
1330802012-12-13  Yury Semikhatsky  <yurys@chromium.org>
133081
133082        Web Inspector: collect native heap graph and report it to the front-end
133083        https://bugs.webkit.org/show_bug.cgi?id=104888
133084
133085        Reviewed by Pavel Feldman.
133086
133087        Added an option to serialize native heap graph in a format similar to that
133088        of JS heap profiler and send it in reply to getProcessMemoryDistribution
133089        command. This is a first attempt and we likely change the report mechanism to
133090        use a stream instread of sending whole graph at once.
133091
133092        * CMakeLists.txt:
133093        * GNUmakefile.list.am:
133094        * Target.pri:
133095        * WebCore.gypi:
133096        * WebCore.vcproj/WebCore.vcproj:
133097        * WebCore.xcodeproj/project.pbxproj:
133098        * inspector/HeapGraphSerializer.cpp: Added.
133099        (WebCore):
133100        (HeapGraphNode):
133101        (WebCore::HeapGraphNode::HeapGraphNode):
133102        (HeapGraphEdge):
133103        (WebCore::HeapGraphEdge::HeapGraphEdge):
133104        (WebCore::HeapGraphSerializer::HeapGraphSerializer):
133105        (WebCore::HeapGraphSerializer::~HeapGraphSerializer):
133106        (WebCore::HeapGraphSerializer::serialize):
133107        (WebCore::HeapGraphSerializer::reportNode):
133108        (WebCore::HeapGraphSerializer::reportEdge):
133109        (WebCore::HeapGraphSerializer::reportLeaf):
133110        (WebCore::HeapGraphSerializer::reportBaseAddress):
133111        (WebCore::HeapGraphSerializer::adjutEdgeTargets):
133112        (WebCore::HeapGraphSerializer::addString):
133113        * inspector/HeapGraphSerializer.h: Copied from Source/WebCore/inspector/InspectorMemoryAgent.h.
133114        (WebCore):
133115        (HeapGraphSerializer):
133116        * inspector/Inspector.json:
133117        * inspector/InspectorMemoryAgent.cpp:
133118        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
133119        * inspector/InspectorMemoryAgent.h:
133120        (InspectorMemoryAgent):
133121        * inspector/MemoryInstrumentationImpl.cpp:
133122        (WebCore::MemoryInstrumentationClientImpl::reportNode):
133123        (WebCore):
133124        (WebCore::MemoryInstrumentationClientImpl::reportEdge):
133125        (WebCore::MemoryInstrumentationClientImpl::reportLeaf):
133126        (WebCore::MemoryInstrumentationClientImpl::reportBaseAddress):
133127        * inspector/MemoryInstrumentationImpl.h:
133128        (WebCore):
133129        (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
133130        (MemoryInstrumentationClientImpl):
133131
1331322012-12-14  Yoshifumi Inoue  <yosin@chromium.org>
133133
133134        Handling autoscroll in EventHandler should be re-factor
133135        https://bugs.webkit.org/show_bug.cgi?id=104764
133136
133137        Reviewed by Hajime Morita.
133138
133139        This patch introduces new class AutoscrollController for moving autoscroll
133140        and panscroll from EventHandler class for ease of maintenance of
133141        EventHandler and ease of adding autoscroll related features, e.g. autoscroll
133142        during drag-and-drop, autoscoll by gesture.
133143
133144        No new tests. This patch doesn't change behavior.
133145
133146        * CMakeLists.txt: Changed to add page/AutoscrollController.cpp
133147        * GNUmakefile.list.am:  Changed to add page/AutoscrollController.{cpp,h}
133148        * Target.pri:  Changed to add page/AutoscrollController.cpp
133149        * WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
133150        * WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
133151        * WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
133152        * page/AutoscrollController.cpp: Added.
133153        (WebCore::getMainFrame): Helper function.
133154        (WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
133155        (WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
133156        (WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
133157        (WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
133158        (WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
133159        (WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
133160        (WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
133161        (WebCore::AutoscrollController::didPanScrollStop): ditto
133162        (WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
133163        (WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
133164        (WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
133165        (WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
133166        (WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
133167        (WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
133168        * page/AutoscrollController.h: Added.
133169        (AutoscrollController):
133170        * page/EventHandler.cpp:
133171        (WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
133172        (WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
133173        (WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
133174        (WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
133175        (WebCore::EventHandler::didPanScrollStop): ditto
133176        (WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
133177        (WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
133178        (WebCore::EventHandler::updateAutoscrollRenderer): ditto
133179        (WebCore::EventHandler::autoscrollInProgress): ditto
133180        (WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
133181        (WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
133182        (WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
133183        (WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
133184        (WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
133185        * page/EventHandler.h:
133186        (WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
133187        (WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
133188        * rendering/RenderBox.cpp:
133189        (WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
133190        (WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
133191        * rendering/RenderBox.h:
133192        (RenderBox): Added new functions canAutoscroll() and findAutoscrollable().
133193
1331942012-12-14  David Dorwin  <ddorwin@chromium.org>
133195
133196        EME v0.1: Report defaultURL in KeyMessage.
133197        https://bugs.webkit.org/show_bug.cgi?id=104284
133198
133199        Reviewed by Darin Fisher.
133200
133201        Passes defaultURL down from the media engine to HTMLMediaElement.
133202        Only Valid URLs will be passed.
133203
133204        No test because Clear Key does not provide a defaultURL (in v0.1).
133205
133206        * html/HTMLMediaElement.cpp:
133207        (WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
133208        * html/HTMLMediaElement.h:
133209        (HTMLMediaElement):
133210        * platform/graphics/MediaPlayer.cpp:
133211        (WebCore::MediaPlayer::keyMessage):
133212        * platform/graphics/MediaPlayer.h:
133213        (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
133214        (WebCore::MediaPlayerClient::mediaPlayerKeyError):
133215        (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
133216        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
133217        (MediaPlayer):
133218
1332192012-12-13  Hajime Morrita  <morrita@google.com>
133220
133221        ContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold elements.
133222        https://bugs.webkit.org/show_bug.cgi?id=104918
133223
133224        Reviewed by Kentaro Hara.
133225
133226        This change turns some raw pointers to RefPtrs.
133227
133228        No new tests. Hard to write reliable fast tests since the error
133229        reproduction needs GC to run in certain timing. Although original
133230        report has a repdocution, it takes a few seconds before crash and
133231        isn't suited for a layout test.
133232
133233        * dom/ShadowRoot.cpp:
133234        (WebCore::ShadowRoot::insertionPointList):
133235        * dom/ShadowRoot.h:
133236        (ShadowRoot):
133237        * html/shadow/ContentDistributor.cpp:
133238        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
133239        (WebCore::ContentDistributor::findInsertionPointFor):
133240        (WebCore::ContentDistributor::distribute):
133241        (WebCore::ContentDistributor::invalidate):
133242        * html/shadow/ContentDistributor.h:
133243        (ShadowRootContentDistributionData):
133244        (ContentDistributor):
133245
1332462012-12-13  Hajime Morrita  <morrita@google.com>
133247
133248        NodeRenderingContext is slow due to ComposedShadowTreeWalker
133249        https://bugs.webkit.org/show_bug.cgi?id=104332
133250
133251        Reviewed by Dimitri Glazkov.
133252
133253        NodeRenderingContext has some slowness due to the complexity of
133254        ComposedShadowTreeWalker that NRC relies on. This change
133255        creates some fast paths to address such slowness.
133256
133257        = NodeRenderingTraversal module:
133258
133259        This change introduces NodeRenderingTraversal namespace, a sister
133260        of NodeTraversal. NRT consists of a set of tree traversal
133261        functions that is responsible for traversal in NRC.  Before this
133262        change, NRC directly used CSTW. This NRT module hides and narrows
133263        the usage of CSTW.
133264
133265        - Traversals provided by NRT have fast paths. In many case, such traversals
133266          don't need to use CSTW and just goes to neighboring nodes in a plain DOM way.
133267        - It also handles NRC specific traversal concerns like pseudo elements.
133268          CSTW::pseudoAwareNextSibling() and CSTW::pseudoAwarePreviousSibling() are
133269          merged into this module.
133270        - CSTW::ParentTraversalDetails is moved and renamed to
133271          NRT::ParentDetails with small modification. This is a pure
133272          refactoring: As the name implies, This class is used only by NRC
133273          and used during a traversal there.
133274
133275        NodeRenderingTraversal is an isolation layer between generic DOM and CSTW. This hides CSTW
133276        behind the wall and will help further reduction of its usage.
133277
133278        = Node::NeedsShadowTreeWalkerFlag flag:
133279
133280        NRT fast path is enabled by newly introduced NeedsShadowTreeWalker
133281        node flag. Each DOM node is now markd as NeedsShadowTreeWalker if
133282        it requires non-trivial traversal in NRT which uses CSTW. This
133283        means that each node can go fast path unless it is marked with this flag.
133284
133285        A node is marked as it NeedsShadowTreeWalker if:
133286
133287        - The node is a shadow boundary like InsertionPoint or ShadowRoot,
133288        - The node has pseudo elements like generated content or
133289        - The node is a pseudo element.
133290
133291        This criteria is defined in Node::needsShadowTreeWalkerSlow(). The node actually needs
133292        the walker if the node or its parent is marked with this flag.
133293
133294        The original idea of this change was demonstrated by Antti Koivisto on bug 103208 and bug 104507.
133295        This chagne has 2-3% speedup on Dromaeo/dom-modify/innerHTML on Apple Mac.
133296
133297        No new tests. Covered by existing tests.
133298
133299        * CMakeLists.txt:
133300        * GNUmakefile.list.am:
133301        * Target.pri:
133302        * WebCore.gypi:
133303        * WebCore.xcodeproj/project.pbxproj:
133304        * dom/ComposedShadowTreeWalker.cpp:
133305        * dom/ComposedShadowTreeWalker.h:
133306        (ComposedShadowTreeWalker): Move some part to NodeRenderingTraversal
133307        * dom/ContainerNode.h:
133308        (WebCore::Node::needsShadowTreeWalker): Added. This is located here since it refers ContainerNode definition.
133309        (WebCore):
133310        * dom/DOMAllInOne.cpp:
133311        * dom/Element.cpp:
133312        (WebCore::Element::updatePseudoElement): Refactored.
133313        (WebCore::Element::hasPseudoElements): Ditto.
133314        (WebCore::Element::pseudoElement): Ditto.
133315        (WebCore::Element::setPseudoElement): Refactored and added a flag update logic.
133316        (WebCore):
133317        * dom/Element.h:
133318        (Element):
133319        (WebCore::Element::beforePseudoElement): Refactored.
133320        (WebCore::Element::afterPseudoElement): Refactored.
133321        * dom/ElementRareData.h:
133322        (WebCore::ElementRareData::hasPseudoElements): Factored out.
133323        * dom/ElementShadow.cpp:
133324        (WebCore::ElementShadow::addShadowRoot): Added a flag update logic.
133325        * dom/Node.cpp:
133326        (WebCore::Node::needsShadowTreeWalkerSlow): Added.
133327        * dom/Node.h:
133328        (WebCore::Node::isInsertionPointNode): Added.
133329        (Node):
133330        (WebCore::Node::isInsertionPoint): Changed to use NeedsShadowTreeWalkerFlag.
133331        (WebCore::Node::setNeedsShadowTreeWalker):
133332        (WebCore::Node::resetNeedsShadowTreeWalker):
133333        * dom/NodeRenderingContext.cpp: Adopted NodeRenderingTraversal.
133334        (WebCore::NodeRenderingContext::NodeRenderingContext):
133335        (WebCore::NodeRenderingContext::nextRenderer):
133336        (WebCore::NodeRenderingContext::previousRenderer):
133337        (WebCore::NodeRenderingContext::parentRenderer):
133338        (WebCore::NodeRenderingContext::shouldCreateRenderer):
133339        * dom/NodeRenderingContext.h: Ditto.
133340        (NodeRenderingContext):
133341        (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
133342        * dom/NodeRenderingTraversal.cpp: Added.
133343        (WebCore):
133344        (NodeRenderingTraversal):
133345        (WebCore::NodeRenderingTraversal::ParentDetails::didTraverseInsertionPoint): Moved from ComposedShadowTreeWalker
133346        (WebCore::NodeRenderingTraversal::ParentDetails::didTraverseShadowRoot): Ditto.
133347        (WebCore::NodeRenderingTraversal::parentSlow): Ditto.
133348        (WebCore::NodeRenderingTraversal::nextSiblingSlow): Ditto. The original was pseudoAwareNextSibling.
133349        (WebCore::NodeRenderingTraversal::previousSiblingSlow): Ditto. The original was pseudoAwarePreviousSibling.
133350        * dom/NodeRenderingTraversal.h: Added.
133351        (WebCore):
133352        (NodeRenderingTraversal):
133353        (ParentDetails): Moved from ComposedShadowTreeWalker.
133354        (WebCore::NodeRenderingTraversal::ParentDetails::ParentDetails):
133355        (WebCore::NodeRenderingTraversal::ParentDetails::insertionPoint):
133356        (WebCore::NodeRenderingTraversal::ParentDetails::resetStyleInheritance):
133357        (WebCore::NodeRenderingTraversal::ParentDetails::outOfComposition):
133358        (WebCore::NodeRenderingTraversal::ParentDetails::childWasOutOfComposition):
133359        (WebCore::NodeRenderingTraversal::ParentDetails::operator==):
133360        (WebCore::NodeRenderingTraversal::parent):
133361        (WebCore::NodeRenderingTraversal::nextSibling):
133362        (WebCore::NodeRenderingTraversal::previousSibling):
133363        * dom/PseudoElement.cpp:
133364        (WebCore::PseudoElement::PseudoElement): Added an assertion.
133365        * dom/Text.cpp:
133366        * html/HTMLOptGroupElement.cpp: Added a #include which revealed by a chagne on NodeRenderingContext.h
133367        * html/HTMLOptionElement.cpp: Ditto.
133368        * html/HTMLProgressElement.cpp: Dito.
133369        * html/shadow/InsertionPoint.h: Added an override of isInsertionPointNode().
133370
1333712012-12-13  Kent Tamura  <tkent@chromium.org>
133372
133373        Refactoring: Fix indentation of ChromeClient.h
133374        https://bugs.webkit.org/show_bug.cgi?id=104989
133375
133376        Reviewed by Kentaro Hara.
133377
133378        The contents of an outermost namespace block should not be indented.
133379        http://www.webkit.org/coding/coding-style.html#indentation-namespace
133380
133381        No behavior change.
133382
133383        * page/ChromeClient.h:
133384
1333852012-12-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
133386
133387        Seconds/Minutes field of date/time input UI should respect step attribute
133388        https://bugs.webkit.org/show_bug.cgi?id=104985
133389
133390        Reviewed by Kent Tamura.
133391
133392        This patch makes step-up/-down UI of the seconds and minutes fields respect
133393        step attribute when possible.
133394
133395        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
133396
133397        * html/shadow/DateTimeEditElement.cpp:
133398        (DateTimeEditBuilder):
133399        (WebCore::DateTimeEditBuilder::visitField): Compute step parameters for seconds and minutes fields, and pass it to the field element constructors.
133400        (WebCore::DateTimeEditBuilder::createNumericFieldParameters): Added.
133401        * html/shadow/DateTimeFieldElements.cpp:
133402        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
133403        (WebCore::DateTimeMillisecondFieldElement::create): Ditto.
133404        (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): Add Parameters argument.
133405        (WebCore::DateTimeMinuteFieldElement::create): Ditto.
133406        (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): Ditto.
133407        (WebCore::DateTimeSecondFieldElement::create): Ditto.
133408        * html/shadow/DateTimeFieldElements.h:
133409        (DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
133410        (DateTimeMinuteFieldElement): Add Parameters argument.
133411        (DateTimeSecondFieldElement): Ditto.
133412        * html/shadow/DateTimeNumericFieldElement.cpp:
133413        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Use Parameters instead of step and stepBase.
133414        * html/shadow/DateTimeNumericFieldElement.h:
133415        (DateTimeNumericFieldElement):
133416        (WebCore::DateTimeNumericFieldElement::Parameters::Parameters):
133417        (Parameters): Added.
133418
1334192012-12-13  Filip Pizlo  <fpizlo@apple.com>
133420
133421        Attempt to rationalize and simplify WTF::binarySearch
133422        https://bugs.webkit.org/show_bug.cgi?id=104890
133423
133424        Reviewed by Maciej Stachowiak.
133425
133426        Switch to using the new binarySearch() API. No change in behavior, so no new tests.
133427
133428        * svg/animation/SVGSMILElement.cpp:
133429        (WebCore::SVGSMILElement::findInstanceTime):
133430
1334312012-12-13  Takashi Sakamoto  <tasak@google.com>
133432
133433        [Shadow DOM]: scoped styles are not applied in the cascade order.
133434        https://bugs.webkit.org/show_bug.cgi?id=103239
133435
133436        Reviewed by Dimitri Glazkov.
133437
133438        If the scoping elements of two declarations have an ancestor/
133439        descendant relationship, the declaration whose scoping element is
133440        the descendant should win.
133441        c.f. http://dev.w3.org/csswg/css3-cascade/#cascade
133442
133443        Test: fast/css/style-scoped/style-scoped-nested.html
133444              fast/css/style-scoped/style-scoped-with-important-rule.html
133445
133446        * css/RuleSet.cpp:
133447        (WebCore::RuleSet::addRule):
133448        Removed specificity for @host @-rules. Now @host @-rules use the
133449        cascading order instead.
133450        * css/RuleSet.h:
133451        Removed increaseSpecificity. The method is used by only @host @-rules.
133452        * css/StyleResolver.cpp:
133453        (WebCore::StyleResolver::matchScopedAuthorRules):
133454        (WebCore::StyleResolver::matchHostRules):
133455        (WebCore::StyleResolver::matchAuthorRules):
133456        Modified to invoke sortAndTransferMatchedRules per scoping element.
133457        The order of "matchXXXRules" must be the same as the cascading order.
133458        So matchHostRules was invoked after collecting all scoped author rules.
133459        * css/StyleScopeResolver.cpp:
133460        (WebCore::StyleScopeResolver::addHostRule):
133461        Removed RuleIsHostRule. We don't need the flag.
133462        * html/HTMLStyleElement.cpp:
133463        (WebCore::HTMLStyleElement::registerWithScopingNode):
133464        Needs to pass the last test case of style-scoped-nested.html.
133465        When appending some style element to a shadow root, we should recalc
133466        styles of all elements in the shadow dom tree. And if the style
133467        element has @host @-rules, we have to update the host's style.
133468
1334692012-12-13  Filip Pizlo  <fpizlo@apple.com>
133470
133471        MediaPlayerPrivateAVFoundation::m_inbandTrackConfigurationPending is unused except when HAVE(AVFOUNDATION_TEXT_TRACK_SUPPORT)
133472        https://bugs.webkit.org/show_bug.cgi?id=104987
133473
133474        Rubber stamped by Michael Saboff.
133475
133476        No change in behavior so no new tests.
133477
133478        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
133479        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
133480        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
133481        (MediaPlayerPrivateAVFoundation):
133482
1334832012-12-13  Kentaro Hara  <haraken@chromium.org>
133484
133485        Unreviewed. Rebaselined run-bindings-tests results.
133486
133487        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
133488        (JSTestCustomNamedGetter):
133489        * bindings/scripts/test/JS/JSTestEventTarget.h:
133490        (JSTestEventTarget):
133491
1334922012-12-13  Yoshifumi Inoue  <yosin@chromium.org>
133493
133494        Unreviewed, rolling out r137691.
133495        http://trac.webkit.org/changeset/137691
133496        https://bugs.webkit.org/show_bug.cgi?id=104764
133497
133498        panscroll test on AppleWin failed
133499
133500        * CMakeLists.txt:
133501        * GNUmakefile.list.am:
133502        * Target.pri:
133503        * WebCore.gypi:
133504        * WebCore.vcproj/WebCore.vcproj:
133505        * WebCore.xcodeproj/project.pbxproj:
133506        * page/AutoscrollController.cpp: Removed.
133507        * page/AutoscrollController.h: Removed.
133508        * page/EventHandler.cpp:
133509        (WebCore):
133510        (WebCore::EventHandler::EventHandler):
133511        (WebCore::canAutoscroll):
133512        (WebCore::EventHandler::handleMouseDraggedEvent):
133513        (WebCore::EventHandler::handleMouseReleaseEvent):
133514        (WebCore::EventHandler::handleAutoscroll):
133515        (WebCore::EventHandler::autoscrollTimerFired):
133516        (WebCore::EventHandler::startPanScrolling):
133517        (WebCore::EventHandler::updatePanScrollState):
133518        (WebCore::EventHandler::autoscrollRenderer):
133519        (WebCore::EventHandler::updateAutoscrollRenderer):
133520        (WebCore::EventHandler::setAutoscrollRenderer):
133521        (WebCore::EventHandler::startAutoscrollTimer):
133522        (WebCore::EventHandler::stopAutoscrollTimer):
133523        (WebCore::EventHandler::selectCursor):
133524        (WebCore::EventHandler::handleMousePressEvent):
133525        (WebCore::EventHandler::keyEvent):
133526        * page/EventHandler.h:
133527        (EventHandler):
133528        (WebCore::EventHandler::autoscrollInProgress):
133529        * rendering/RenderBox.cpp:
133530        * rendering/RenderBox.h:
133531        (RenderBox):
133532
1335332012-12-13  Kentaro Hara  <haraken@chromium.org>
133534
133535        ChildNodesLazySnapshot::nextNode() can crash
133536        https://bugs.webkit.org/show_bug.cgi?id=104982
133537
133538        Reviewed by Hajime Morita.
133539
133540        ChildNodesLazySnapshot::nextNode() can crash for
133541        fast/dom/insertedIntoDocument-no-crash.html.
133542        The root cause is that ChildNodesLazySnapshot::m_currentNode
133543        was not a RefPtr. This patch changes it to a RefPtr.
133544
133545        Test: fast/dom/insertedIntoDocument-no-crash.html
133546
133547        * dom/ContainerNode.h:
133548        (WebCore::ChildNodesLazySnapshot::nextNode):
133549        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
133550        (ChildNodesLazySnapshot):
133551
1335522012-12-13  Philip Rogers  <pdr@google.com>
133553
133554        Clear m_timeContainer on SVGSMILElement removal.
133555        https://bugs.webkit.org/show_bug.cgi?id=104972
133556
133557        Reviewed by Abhishek Arya.
133558
133559        This patch fixes a regression introduced by r137509 where we did not clear
133560        m_timeContainer in SVGSMILElement::removedFrom.
133561
133562        Test: svg/custom/removed-from-animation-crash.html
133563
133564        * svg/animation/SVGSMILElement.cpp:
133565        (WebCore::SVGSMILElement::removedFrom):
133566
1335672012-12-13  Filip Pizlo  <fpizlo@apple.com>
133568
133569        Named lookups on HTML documents produce inconsistent results in JavaScriptCore bindings
133570        https://bugs.webkit.org/show_bug.cgi?id=104623
133571
133572        Reviewed by Geoffrey Garen.
133573
133574        All DOM objects that have named getters or directly override getOwnPropertySlot are now marked as
133575        HasImpureGetOwnPropertySlot.
133576
133577        Tests: fast/js/prototype-chain-caching-with-impure-get-own-property-slot-traps
133578               fast/js/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps
133579
133580        * bindings/scripts/CodeGeneratorJS.pm:
133581        (GenerateHeader):
133582
1335832012-12-13  Xianzhu Wang  <wangxianzhu@chromium.org>
133584
133585        Out-of-view check of fixed position element in frame is incorrect when page is scaled
133586        https://bugs.webkit.org/show_bug.cgi?id=104943
133587
133588        Reviewed by Simon Fraser.
133589
133590        Use frameScaleFactor instead of pageScaleFactor to scale the layer bounds.
133591
133592        Tests: compositing/layer-creation/fixed-position-out-of-view-scaled-iframe-scroll.html
133593               compositing/layer-creation/fixed-position-out-of-view-scaled-iframe.html
133594
133595        * rendering/RenderLayerCompositor.cpp:
133596        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
133597
1335982012-12-13  Bear Travis  <betravis@adobe.com>
133599
133600        Positioned replaced elements should resolve vertical margins against their containing
133601        block's logical width
133602        https://bugs.webkit.org/show_bug.cgi?id=103579
133603
133604        Reviewed by Emil A Eklund.
133605
133606        According to the CSS box model & writing modes specifications, percentage margin
133607        & padding values, including top & bottom, should be resolved based on the
133608        containing block's logical width (logical with respect to the containing block's
133609        writing mode).
133610        http://www.w3.org/TR/CSS2/box.html#margin-properties
133611        http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping
133612
133613        Previously, a positioned replaced element resolved margin before/after relative to
133614        its inline direction (containerLogicalHeight), and margin start/end relative to
133615        its block direction (containerLogicalWidth). This patch measures the container's
133616        logical width in its own inline direction (containerRelativeLogicalWidth) to
133617        resolve all margin percentage values.
133618
133619        Test: fast/writing-mode/percentage-margins-absolute-replaced.html
133620
133621        * rendering/RenderBox.cpp:
133622        (WebCore::RenderBox::computePositionedLogicalWidthReplaced): Calculate the logical
133623        width of the container, and use it to calculate margins.
133624        (WebCore::RenderBox::computePositionedLogicalHeightReplaced): Ditto.
133625
1336262012-12-13  Yoshifumi Inoue  <yosin@chromium.org>
133627
133628        Handling autoscroll in EventHandler should be re-factor
133629        https://bugs.webkit.org/show_bug.cgi?id=104764
133630
133631        Reviewed by Hajime Morita.
133632
133633        This patch introduces new class AutoscrollController for moving autoscroll
133634        and panscroll from EventHandler class for ease of maintenance of
133635        EventHandler and ease of adding autoscroll related features, e.g. autoscroll
133636        during drag-and-drop, autoscoll by gesture.
133637
133638        No new tests. This patch doesn't change behavior.
133639
133640        * CMakeLists.txt: Changed to add page/AutoscrollController.cpp
133641        * GNUmakefile.list.am:  Changed to add page/AutoscrollController.{cpp,h}
133642        * Target.pri:  Changed to add page/AutoscrollController.cpp
133643        * WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
133644        * WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
133645        * WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
133646        * page/AutoscrollController.cpp: Added.
133647        (WebCore::getMainFrame): Helper function.
133648        (WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
133649        (WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
133650        (WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
133651        (WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
133652        (WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
133653        (WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
133654        (WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
133655        (WebCore::AutoscrollController::didPanScrollStop): ditto
133656        (WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
133657        (WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
133658        (WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
133659        (WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
133660        (WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
133661        (WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
133662        * page/AutoscrollController.h: Added.
133663        (AutoscrollController):
133664        * page/EventHandler.cpp:
133665        (WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
133666        (WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
133667        (WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
133668        (WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
133669        (WebCore::EventHandler::didPanScrollStop): ditto
133670        (WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
133671        (WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
133672        (WebCore::EventHandler::updateAutoscrollRenderer): ditto
133673        (WebCore::EventHandler::autoscrollInProgress): ditto
133674        (WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
133675        (WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
133676        (WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
133677        (WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
133678        (WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
133679        * page/EventHandler.h:
133680        (WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
133681        (WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
133682        * rendering/RenderBox.cpp:
133683        (WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
133684        (WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
133685        * rendering/RenderBox.h:
133686        (RenderBox): Added new functions canAutoscroll() and findAutoscrollable().
133687
1336882012-12-13  Beth Dakin  <bdakin@apple.com>
133689
133690        https://bugs.webkit.org/show_bug.cgi?id=102599
133691        ASSERT loading Acid3 test in run-safari --debug (r135050)
133692
133693        Reviewed by Simon Fraser.
133694
133695        New flag IncludeCompositedDescendants will always calculate the layer bounds for 
133696        descendants, even when the are composited. 
133697        * rendering/RenderLayer.cpp:
133698        (WebCore::RenderLayer::calculateLayerBounds):
133699        * rendering/RenderLayer.h:
133700
133701        calculateCompositedBounds() should not include this new flag, so instead of 
133702        calling that, call calculateLayerBounds() directly with the 
133703        IncludeCompositedDescendants flag. This will get us the information we need 
133704        upfront and avoid the toggling later on. 
133705        * rendering/RenderLayerCompositor.cpp:
133706        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
133707
1337082012-12-13  Tien-Ren Chen  <trchen@chromium.org>
133709
133710        Don't consider container nodes of other disambiguated nodes
133711        https://bugs.webkit.org/show_bug.cgi?id=104619
133712
133713        Reviewed by Eric Seidel.
133714
133715        It is not uncommon to have a clickable <div> that contains other clickable objects.
133716        This heuristic avoids excessive disambiguation in that case.
133717
133718        New unit test: WebFrameTest.DisambiguationPopupNoContainer
133719
133720        * page/TouchDisambiguation.cpp:
133721        (WebCore::findGoodTouchTargets):
133722
1337232012-12-13  Adrienne Walker  <enne@chromium.org>
133724
133725        Unreviewed, rolling out r137645, r137646, and r137667.
133726        http://trac.webkit.org/changeset/137645
133727        http://trac.webkit.org/changeset/137646
133728        http://trac.webkit.org/changeset/137667
133729        https://bugs.webkit.org/show_bug.cgi?id=104911
133730
133731        Breaks some overflow layout tests
133732
133733        * rendering/RenderLayer.cpp:
133734        (WebCore::RenderLayer::RenderLayer):
133735        (WebCore::RenderLayer::updateDescendantDependentFlags):
133736        (WebCore::RenderLayer::addChild):
133737        (WebCore::RenderLayer::removeChild):
133738        (WebCore::RenderLayer::usesCompositedScrolling):
133739        (WebCore::RenderLayer::scrollTo):
133740        (WebCore::RenderLayer::dirtyZOrderLists):
133741        (WebCore::RenderLayer::dirtyNormalFlowList):
133742        (WebCore::RenderLayer::updateLayerListsIfNeeded):
133743        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
133744        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
133745        (WebCore::RenderLayer::styleChanged):
133746        * rendering/RenderLayer.h:
133747        (RenderLayer):
133748        * rendering/RenderLayerBacking.cpp:
133749        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
133750        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
133751        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
133752        * rendering/RenderLayerBacking.h:
133753        (RenderLayerBacking):
133754        * rendering/RenderLayerCompositor.cpp:
133755        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
133756        (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
133757        * rendering/RenderLayerCompositor.h:
133758        (RenderLayerCompositor):
133759        * testing/InternalSettings.cpp:
133760        * testing/InternalSettings.h:
133761        (InternalSettings):
133762        * testing/InternalSettings.idl:
133763
1337642012-12-13  Andreas Kling  <akling@apple.com>
133765
133766        Event dispatch: Avoid heap allocations in ensureEventAncestors() typical case.
133767        <http://webkit.org/b/104938>
133768
133769        Reviewed by Anders Carlsson.
133770
133771        Give the EventTarget and EventContext vectors an inline capacity of 32 (no science here, just a
133772        non-zero number.) As these vectors are created on the stack already, this is merely using a bit
133773        more stack space to avoid malloc()ing all the gosh-darn time.
133774
133775        Looks like ~6% improvement on Dromaeo/jslib-event-prototype.
133776
133777        * dom/EventDispatcher.cpp:
133778        (WebCore::EventRelatedTargetAdjuster::adjust):
133779        (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
133780        (WebCore::EventDispatcher::ensureEventAncestors):
133781        * dom/EventDispatcher.h:
133782        (EventRelatedTargetAdjuster):
133783        (EventDispatcher):
133784
1337852012-12-13  James Simonsen  <simonjam@chromium.org>
133786
133787        [Resource Timing] Don't report resources with data: urls
133788        https://bugs.webkit.org/show_bug.cgi?id=104868
133789
133790        Reviewed by Tony Gentilcore.
133791
133792        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url.html
133793
133794        * loader/cache/CachedResourceLoader.cpp:
133795        (WebCore::CachedResourceLoader::loadDone):
133796
1337972012-12-13  Ian Vollick  <vollick@chromium.org>
133798
133799        Add a missing nullity check in RenderObject::containingBlock
133800        https://bugs.webkit.org/show_bug.cgi?id=104961
133801
133802        Reviewed by Adrienne Walker.
133803
133804        Adds a missing nullity check in an assert.
133805
133806        No new tests, no change in functionality.
133807
133808        * rendering/RenderObject.cpp:
133809        (WebCore::RenderObject::containingBlock):
133810
1338112012-12-13  Tab Atkins  <tabatkins@google.com>
133812
133813        Switch the gradient drawing code to use bearing angles
133814        https://bugs.webkit.org/show_bug.cgi?id=104616
133815
133816        Reviewed by Dean Jackson.
133817
133818        Switch the gradient math from polar-coordinate angles to bearing angles.
133819        To make this possible without behavior changes, 
133820        switch the m_deprecatedType boolean to an m_gradientType enum,
133821        and fix all usages accordingly.
133822
133823        No new tests, as this is a refactoring and should have no behavior changes. Existing tests suffice.
133824
133825        * css/CSSGradientValue.cpp:
133826        (WebCore::endPointsFromAngle):
133827        This is the only mechanical change. The rest are just fixing the plumbing around the boolean->enum change.
133828
133829        * css/CSSGradientValue.cpp:
133830        (WebCore::CSSGradientValue::sortStopsIfNeeded):
133831        (WebCore::CSSGradientValue::addStops):
133832        (WebCore::CSSLinearGradientValue::customCssText):
133833        (WebCore::CSSLinearGradientValue::createGradient):
133834        (WebCore::CSSRadialGradientValue::customCssText):
133835        * css/CSSGradientValue.h:
133836        (WebCore::CSSGradientValue::gradientType):
133837        (WebCore::CSSGradientValue::CSSGradientValue):
133838        (WebCore::CSSLinearGradientValue::create):
133839        (WebCore::CSSLinearGradientValue::CSSLinearGradientValue):
133840        (WebCore::CSSRadialGradientValue::create):
133841        (WebCore::CSSRadialGradientValue::CSSRadialGradientValue):
133842        * css/CSSParser.cpp:
133843        (WebCore::CSSParser::parseDeprecatedGradient):
133844        (WebCore::CSSParser::parseDeprecatedLinearGradient):
133845        (WebCore::CSSParser::parseDeprecatedRadialGradient):
133846
1338472012-12-13  Ian Vollick  <vollick@chromium.org>
133848
133849        [chromium] Automatically use composited scrolling
133850        https://bugs.webkit.org/show_bug.cgi?id=94743
133851
133852        Reviewed by Adrienne Walker.
133853
133854        We currently use the composited scrolling facilities provided by
133855        wkb.ug/91117 if the overflow scroll block element is styled with
133856        -webkit-overflow-scrolling: touch. Ideally, we could automatically
133857        opt into composited scrolling if it is safe to do so. This can affect
133858        antialiasing, so it is important that automatically opting in is only
133859        enabled via a setting.
133860
133861        The way I determine if it is safe is by checking that z-ordering will
133862        not be affected if the overflow scrollable element were promoted to a
133863        stacking context (details below), and that clipping our scrolling
133864        descendants will not affect rendering.
133865
133866        To check the first condition (that z-ordering will not be affected).
133867        I ensure that the candidate element and all its descendants appear as a 
133868        continuous block in the candidate's stacking context. That is, if no 
133869        other elements are 'between' any of the candidates descendants when we
133870        sort in paint order, then we're safe. This is overly conservative,
133871        however. We could, in future, only consider stacking problems between
133872        elements that actually overlap.
133873
133874        To ensure that clipping will not cause a rendering change, I ensure
133875        that the layer has no out of flow positioned descendant whose
133876        containing block is not also a descendant of ours.
133877
133878        Test: compositing/overflow/automatically-opt-into-compositing-scrolling.html
133879
133880        (WebCore):
133881        * rendering/RenderLayer.cpp:
133882        (WebCore::RenderLayer::RenderLayer):
133883        (WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled):
133884        (WebCore):
133885        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
133886        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive):
133887        (WebCore::RenderLayer::positionOverflowControlsAfterPromotionToCompositedScrolling):
133888        (WebCore::RenderLayer::canSafelyEstablishAStackingContext):
133889          Returns true if the RenderLayer could become a stacking context without
133890          affecting the stacking order.
133891        (WebCore::RenderLayer::updateDescendantDependentFlags):
133892          We now need to keep track of out of flow positioned descendants.
133893        (WebCore::RenderLayer::addChild):
133894        (WebCore::RenderLayer::removeChild):
133895        (WebCore::RenderLayer::usesCompositedScrolling):
133896          Has been updated to return true if it can safely establish a stacking
133897          context, and the setting is turned on.
133898        (WebCore::RenderLayer::needsCompositedScrolling):
133899          This function returns true if we would like to use composited
133900          scrolling.
133901        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
133902        (WebCore::RenderLayer::scrollTo):
133903        (WebCore::RenderLayer::dirtyZOrderLists):
133904        (WebCore::RenderLayer::dirtyNormalFlowList):
133905          Since these could affect opting into composited scrolling, we must
133906          request that the RenderLayerCompositor reevaluate compositing.
133907        (WebCore::RenderLayer::updateLayerListsIfNeeded):
133908          We call updateCanSafelyEstablishStackingContext here, if necessary.
133909        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
133910        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
133911          usesCompositedScrolling -> needsCompositedScrolling
133912        (WebCore::RenderLayer::setAncestorChainHasOutOfFlowPositionedDescendant):
133913        (WebCore::RenderLayer::dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus):
133914        (WebCore::RenderLayer::updateOutOfFlowPositioned):
133915          Dirties and sets the out of flow positioned descendant state.
133916        (WebCore::RenderLayer::styleChanged):
133917        * rendering/RenderLayer.h:
133918        (RenderLayer):
133919        (WebCore::RenderLayer::hasOutOfFlowPositionedDescendant):
133920        * rendering/RenderLayerBacking.cpp:
133921        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
133922        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
133923        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
133924        (WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers):
133925        (WebCore):
133926        * rendering/RenderLayerBacking.h:
133927        (RenderLayerBacking):
133928        * rendering/RenderLayerCompositor.cpp:
133929        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
133930          We now ensure that newly created overflow scroll controls get
133931          positioned.
133932        (WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling):
133933        * rendering/RenderLayerCompositor.h:
133934        (WebCore::RenderLayerCompositor::setShouldReevaluateCompositingAfterLayout):
133935        * testing/InternalSettings.cpp:
133936        (WebCore::InternalSettings::setEnableCompositingForOverflowScroll):
133937          Allows enabling the setting in layout tests.
133938        (WebCore):
133939        * testing/InternalSettings.h:
133940        (InternalSettings):
133941        * testing/InternalSettings.idl:
133942
1339432012-12-13  Ryosuke Niwa  <rniwa@webkit.org>
133944
133945        REGRESSION(r137406): NodeTraversal changes causing large renderer crash
133946        https://bugs.webkit.org/show_bug.cgi?id=104937
133947
133948        Reviewed by Antti Koivisto.
133949
133950        Add a null pointer check to exit early since ElementTraversal::next assumes a non-null pointer.
133951
133952        No new tests since I don't think this function is ever exposed to any ES5 bindings.
133953
133954        * editing/FrameSelection.cpp:
133955        (WebCore::scanForForm):
133956
1339572012-12-13  David Grogan  <dgrogan@chromium.org>
133958
133959        IndexedDB: Improve error messages
133960        https://bugs.webkit.org/show_bug.cgi?id=104624
133961
133962        Reviewed by Tony Chang.
133963
133964        Add detail to error messages so that they are more helpful and can be
133965        traced back to a specific line of code.
133966
133967        Updated test: transaction-error.html
133968
133969        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
133970        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
133971        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
133972        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
133973        (WebCore::IDBDatabaseBackendImpl::openConnection):
133974        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
133975        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
133976        (WebCore::IDBDatabaseBackendImpl::close):
133977        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
133978        (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
133979        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
133980        (WebCore::IDBFactoryBackendImpl::open):
133981        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
133982        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
133983        (WebCore::IDBObjectStoreBackendImpl::createIndex):
133984        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
133985        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
133986        (WebCore::IDBTransactionBackendImpl::abort):
133987        (WebCore::IDBTransactionBackendImpl::commit):
133988
1339892012-12-13  Claudio Saavedra  <csaavedra@igalia.com>
133990
133991        [GTK] Safeguard against possible NULL-dereference
133992        https://bugs.webkit.org/show_bug.cgi?id=104931
133993
133994        Reviewed by Chris Fleizach.
133995
133996        This was spotted by Coverity. See bug 104114.
133997
133998        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
133999        (webkitAccessibleGetIndexInParent): If parent is NULL
134000        bail out early.
134001
1340022012-12-13  David Barton  <dbarton@mathscribe.com>
134003
134004        Heap-use-after-free in WebCore::RenderBlock::finishDelayUpdateScrollInfo
134005        https://bugs.webkit.org/show_bug.cgi?id=103750
134006
134007        Reviewed by Tony Chang.
134008
134009        MathML sometimes creates and destroys renderers for descendants during layout (or even to calculate
134010        preferred logical widths), e.g. for operator stretching. RenderBlock::finishDelayUpdateScrollInfo
134011        must therefore leave gDelayedUpdateScrollInfoSet intact as it iterates over it, so
134012        RenderBlock::willBeDestroyed can call gDelayedUpdateScrollInfoSet->remove(this) effectively if needed.
134013        This also prevents duplicate entries from being added to gDelayedUpdateScrollInfoSet.
134014
134015        Test: mathml/mo-stretch-crash.html
134016
134017        * rendering/RenderBlock.cpp:
134018        (WebCore::RenderBlock::startDelayUpdateScrollInfo):
134019            - Allow gDelayedUpdateScrollInfoSet to be non-null when gDelayUpdateScrollInfo is 0 during
134020              RenderBlock::finishDelayUpdateScrollInfo.
134021        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
134022            - Remove blocks from gDelayedUpdateScrollInfoSet one at a time, waiting for each block until it is
134023              about to be updated.
134024
1340252012-12-13  Alexey Proskuryakov  <ap@apple.com>
134026
134027        <rdar://problem/12838354> Per-Tab WebProcess: DOM cookie access functions should respect private browsing
134028        https://bugs.webkit.org/show_bug.cgi?id=104691
134029
134030        Reviewed by Sam Weinig.
134031
134032        * platform/network/NetworkingContext.h: Added a function that returns current
134033        context type. Ideally, we would track contexts across processes in a generic manner,
134034        but we only have two now, and don't need such complications.
134035
1340362012-12-13  Alexey Proskuryakov  <ap@apple.com>
134037
134038        ResourceLoader::didReceiveAuthenticationChallenge uses a wrong client
134039        https://bugs.webkit.org/show_bug.cgi?id=104935
134040        <rdar://problem/12870361>
134041
134042        Reviewed by Anders Carlsson.
134043
134044        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
134045        The handle is null when NetworkProcess is used. In any case, it should be correct
134046        to use the client carried within AuthenticationChallenge.
134047
1340482012-12-13  Stephen White  <senorblanco@chromium.org>
134049
134050        CanvasRenderingContext2D::setFont() is slow.
134051        https://bugs.webkit.org/show_bug.cgi?id=104923
134052
134053        Reviewed by James Robinson.
134054
134055        This spends most of its time in the CSS parser.  As a first step,
134056        early-out if the new value is the same as unparsed string for the current font.
134057        See also http://code.google.com/p/chromium/issues/detail?id=164016.
134058
134059        Covered by existing tests in canvas/ and fast/canvas, and ManualTests/canvas-font-speed.html.
134060
134061        * html/canvas/CanvasRenderingContext2D.cpp:
134062        (WebCore::CanvasRenderingContext2D::setFont):
134063
1340642012-12-13  Parth Patel  <parpatel@rim.com>, Max Feil <mfeil@rim.com>
134065
134066        Allow plugins to be disabled by shared library filename
134067        https://bugs.webkit.org/show_bug.cgi?id=101274
134068
134069        Reviewed by Antonio Gomes.
134070
134071        This fix makes PluginDatabase changes general so that other ports
134072        can use this mechanism if they wish.
134073
134074        Layout test not included with this patch because there
134075        is currently no framework within LayoutTests to allow calls
134076        from an external application via platform API code (such as the
134077        WebView API).
134078
134079        * plugins/PluginDatabase.cpp:
134080        (WebCore::PluginDatabase::fileExistsAndIsNotDisabled):
134081        (WebCore):
134082        (WebCore::PluginDatabase::getDeletedPlugins):
134083        (WebCore::PluginDatabase::removeDisabledPluginFile):
134084        (WebCore::PluginDatabase::addDisabledPluginFile):
134085        (WebCore::PluginDatabase::getPluginPathsInDirectories):
134086        * plugins/PluginDatabase.h:
134087        (PluginDatabase):
134088
1340892012-12-13  Yongjun Zhang  <yongjun_zhang@apple.com>
134090
134091        Document will never be released when an Image is created inside unload event listener
134092        https://bugs.webkit.org/show_bug.cgi?id=104830
134093
134094        Reviewed by Darin Adler.
134095
134096        When setting src attribute to an Image object inside unload event listener, ImageLoader will
134097        mark it as load failure (by setting m_hasPendingErrorEvent to true) and the following call
134098        to updatedHasPendingEvent will ref the element but won't be deref-ed since the Document is
134099        being dismissed.  This was introduced in r131670.  To match pre r131670 behavior, we shouldn't
134100        trigger error event for image loading when the page is being dismissed.
134101
134102        No new tests, there is no visual change.  Manually tested to verify documents are released by
134103        using heap in Mac OS X.
134104
134105        * loader/ImageLoader.cpp:
134106        (WebCore::pageIsBeingDismissed): add a helper function to test whether the page is being dismissed.
134107        (WebCore::ImageLoader::updateFromElement): don't trigger error event if the page is being dismissed.
134108
1341092012-12-13  Claudio Saavedra  <csaavedra@igalia.com>
134110
134111        [GTK] Add missing breaks in switch-case statements
134112        https://bugs.webkit.org/show_bug.cgi?id=104929
134113
134114        Reviewed by Martin Robinson.
134115
134116        * platform/gtk/ClipboardGtk.cpp:
134117        (WebCore::ClipboardGtk::clearData): Add missing breaks.
134118
1341192012-12-13  Nate Chapin  <japhet@chromium.org>
134120
134121        Route main resource loads through the memory cache.
134122        https://bugs.webkit.org/show_bug.cgi?id=49246
134123
134124        Reviewed by Alexey Proskuryakov.
134125
134126        Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
134127        The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
134128        In several places, the MainResourceLoader's SubresourceLoader is treated as special.
134129
134130        No new tests, as this is primarily a refactor. A couple of expected results changed slightly.
134131
134132        * loader/DocumentLoader.cpp:
134133        (WebCore::DocumentLoader::setRequest):
134134        (WebCore::DocumentLoader::subresource):
134135        (WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
134136            needs special handling in certain cases, track it separately from the real SubresourceLoaders.
134137        (WebCore::DocumentLoader::removeSubresourceLoader):
134138        (WebCore::DocumentLoader::startLoadingMainResource):
134139        * loader/MainResourceLoader.cpp:
134140        (WebCore::MainResourceLoader::MainResourceLoader):
134141        (WebCore::MainResourceLoader::receivedError):
134142        (WebCore::MainResourceLoader::cancel):
134143        (WebCore::MainResourceLoader::clearResource):
134144        (WebCore):
134145        (WebCore::MainResourceLoader::frameLoader):
134146        (WebCore::MainResourceLoader::request):
134147        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
134148        (WebCore::MainResourceLoader::resourceData):
134149        (WebCore::MainResourceLoader::redirectReceived):
134150        (WebCore::MainResourceLoader::willSendRequest):
134151        (WebCore::MainResourceLoader::continueAfterContentPolicy):
134152        (WebCore::MainResourceLoader::responseReceived):
134153        (WebCore::MainResourceLoader::dataReceived):
134154        (WebCore::MainResourceLoader::didFinishLoading):
134155        (WebCore::MainResourceLoader::notifyFinished):
134156        (WebCore::MainResourceLoader::reportMemoryUsage):
134157        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
134158        (WebCore::MainResourceLoader::load):
134159        (WebCore::MainResourceLoader::setDefersLoading):
134160        (WebCore::MainResourceLoader::defersLoading):
134161        (WebCore::MainResourceLoader::setShouldBufferData):
134162        (WebCore::MainResourceLoader::loader):
134163        (WebCore::MainResourceLoader::identifier):
134164        * loader/MainResourceLoader.h:
134165        (MainResourceLoader):
134166        (WebCore::MainResourceLoader::documentLoader):
134167        * loader/ResourceLoader.cpp:
134168        (WebCore::ResourceLoader::willSendRequest):
134169        * loader/ResourceLoader.h:
134170        (WebCore::ResourceLoader::defersLoading):
134171        (WebCore::ResourceLoader::cancelled):
134172        * loader/appcache/ApplicationCacheHost.cpp:
134173        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
134174        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
134175        * loader/mac/DocumentLoaderMac.cpp:
134176        (WebCore::DocumentLoader::schedule):
134177        (WebCore::DocumentLoader::unschedule):
134178
1341792012-12-13  Pratik Solanki  <psolanki@apple.com>
134180
134181        Duplicate code in GraphicsContext3D::validateAttributes() and GraphicsContext3D::validateDepthStencil()
134182        https://bugs.webkit.org/show_bug.cgi?id=97275
134183
134184        Reviewed by Dean Jackson.
134185
134186        Remove duplicate code in validateAttributes(). validateAttributes() calls
134187        validateDepthStencil() which has the exact same code.
134188
134189        No new tests because no change in functionality.
134190
134191        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
134192        (WebCore::GraphicsContext3D::validateAttributes):
134193
1341942012-12-13  Nate Chapin  <japhet@chromium.org>
134195
134196        CachedResources should hang on to stripped fragment identifiers
134197        https://bugs.webkit.org/show_bug.cgi?id=104721
134198
134199        Reviewed by Maciej Stachowiak.
134200
134201        No new tests, this will be unused until bug
134202        https://bugs.webkit.org/show_bug.cgi?id=49246 re-lands. Then, it will
134203        allow http/tests/inspector/resource-parameters.html to continue passing.
134204
134205        * loader/cache/CachedResource.cpp:
134206        (WebCore::CachedResource::CachedResource):
134207        (WebCore::CachedResource::load):
134208        * loader/cache/CachedResource.h:
134209        (CachedResource):
134210        * loader/cache/CachedResourceLoader.cpp:
134211        (WebCore::CachedResourceLoader::requestResource): We override the request's url with the
134212            local variable "url" here. The only difference between url and request.url() is that url
134213            has had any fragment identifier removed. Do this work later (in the CachedResource constructor)
134214            so that the CachedResource can save the fragment for later.
134215
1342162012-12-13  Claudio Saavedra  <csaavedra@igalia.com>
134217
134218        [GTK] Remove deprecated API usage
134219        https://bugs.webkit.org/show_bug.cgi?id=104894
134220
134221        Reviewed by Martin Robinson.
134222
134223        Remove deprecated GTK+ API usage.
134224
134225        * platform/gtk/RenderThemeGtk3.cpp:
134226        (WebCore::spinButtonArrowSize): Do not use deprecated
134227        gtk_style_context_get_font().
134228
1342292012-12-13  Zeno Albisser  <zeno@webkit.org>
134230
134231        [Qt] Remove temporary workaround from GraphicsSurfaceGLX constructor.
134232        https://bugs.webkit.org/show_bug.cgi?id=104904
134233
134234        QXcbNativeInterface::nativeResourceForContext() is now
134235        available in Qt5. Therefore the temporary workaround
134236        in GraphicsSurfaceGLX can be removed.
134237
134238        Reviewed by Kenneth Rohde Christiansen.
134239
134240        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
134241        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
134242
1342432012-12-13  Joanmarie Diggs  <jdiggs@igalia.com>
134244
134245        [GTK] Expose ARIA roles for tab, tabpanel and tablist
134246        https://bugs.webkit.org/show_bug.cgi?id=84043
134247
134248        Reviewed by Martin Robinson.
134249
134250        Mapped the ARIA roles to their corresponding ATK roles.
134251
134252        No new tests; instead unskipped the associated test.
134253
134254        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
134255        (atkRole): Mapped the ARIA roles to their corresponding ATK roles
134256
1342572012-12-13  Vivek Galatage  <vivek.vg@samsung.com>
134258
134259        Web Inspector: "Add Attribute" context menu on closing tag should apply on the opening tag on Elements Panel
134260        https://bugs.webkit.org/show_bug.cgi?id=104902
134261
134262        Reviewed by Alexander Pavlov.
134263
134264        The context menu action on the closing tag scrolls to the opening tag for adding the attribute.
134265
134266        No new tests as this is a UI change.
134267
134268        * inspector/front-end/ElementsTreeOutline.js:
134269        (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
134270        (WebInspector.ElementsTreeElement.prototype._addNewAttribute):
134271
1342722012-12-13  Sheriff Bot  <webkit.review.bot@gmail.com>
134273
134274        Unreviewed, rolling out r137512.
134275        http://trac.webkit.org/changeset/137512
134276        https://bugs.webkit.org/show_bug.cgi?id=104912
134277
134278        The entire GTK+ layout test step has been failing for hours
134279        (Requested by mrobinson on #webkit).
134280
134281        * accessibility/AccessibilityNodeObject.cpp:
134282        (WebCore::AccessibilityNodeObject::textUnderElement):
134283        * accessibility/AccessibilityRenderObject.cpp:
134284        (WebCore::AccessibilityRenderObject::textUnderElement):
134285
1342862012-12-13  Tamas Czene  <tczene@inf.u-szeged.hu>
134287
134288        OpenCL version of FEColorMatrix.
134289        https://bugs.webkit.org/show_bug.cgi?id=103398
134290
134291        Reviewed by Zoltan Herczeg.
134292
134293        ~3x speed-up (depending on hardware configuration)
134294
134295        * Target.pri: Added a new file to the build system.
134296        * platform/graphics/filters/FEColorMatrix.cpp: calculateSaturateComponents and calculateHueRotateComponents methodes are moved to the header, since they are used by OpenCL as well
134297        (WebCore::effectType):
134298        * platform/graphics/filters/FEColorMatrix.h:
134299        (FEColorMatrix):
134300        (WebCore::FEColorMatrix::calculateSaturateComponents):
134301        (WebCore):
134302        (WebCore::FEColorMatrix::calculateHueRotateComponents):
134303        * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Required fields for the ColorMatrix kernels were added
134304        (WebCore::FilterContextOpenCL::FilterContextOpenCL):
134305        (FilterContextOpenCL):
134306        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp: the core implementation goes here
134307        (WebCore):
134308        (WebCore::FilterContextOpenCL::compileFEColorMatrix):
134309        (WebCore::FilterContextOpenCL::applyFEColorMatrix):
134310        (WebCore::FEColorMatrix::platformApplyOpenCL):
134311
1343122012-12-13  Ilya Tikhonovsky  <loislo@chromium.org>
134313
134314        Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
134315        https://bugs.webkit.org/show_bug.cgi?id=104903
134316
134317        Reviewed by Yury Semikhatsky.
134318
134319        This is a simplest approach to do that with zero performance overhead.
134320
134321        * inspector/InspectorResourceAgent.cpp:
134322        (WebCore::InspectorResourceAgent::reportMemoryUsage):
134323        * rendering/InlineBox.cpp:
134324        (WebCore::InlineBox::reportMemoryUsage):
134325        (WebCore):
134326        * rendering/InlineBox.h:
134327        (InlineBox):
134328        * rendering/InlineTextBox.cpp:
134329        (WebCore::InlineTextBox::reportMemoryUsage):
134330        (WebCore):
134331        * rendering/InlineTextBox.h:
134332        (InlineTextBox):
134333        * rendering/RenderLayer.cpp:
134334        (WebCore::RenderLayer::reportMemoryUsage):
134335        * rendering/RenderObject.cpp:
134336        (WebCore::RenderObject::reportMemoryUsage):
134337
1343382012-12-13  Alberto Garcia  <agarcia@igalia.com>
134339
134340        [GTK] Don't leak GStaticRecMutex
134341        https://bugs.webkit.org/show_bug.cgi?id=104901
134342
134343        Reviewed by Martin Robinson.
134344
134345        The mutex in WebKitWebAudioSourceGStreamer is allocated using
134346        g_new(), but that memory is not freed when the object is
134347        destroyed.
134348
134349        This patch replaces that pointer with the structure itself, which
134350        is faster and doesn't need to be explicitly freed.
134351
134352        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
134353        (_WebKitWebAudioSourcePrivate):
134354        (webkit_web_audio_src_init):
134355        (webKitWebAudioSrcFinalize):
134356
1343572012-12-13  Eugene Klyuchnikov  <eustas@chromium.org>
134358
134359        Web Inspector: Network: Sorting cookies by size is broken.
134360        https://bugs.webkit.org/show_bug.cgi?id=104893
134361
134362        Reviewed by Alexander Pavlov.
134363
134364        Problem: cookie "size" is not a field now; its value is accessible
134365        through getter method.
134366
134367        Solution: make cookie fields uniformly accessible (add getters for name,
134368        type and value).
134369
134370        * inspector/front-end/CookieItemsView.js: Adopt changes.
134371        * inspector/front-end/CookieParser.js:
134372        (WebInspector.Cookie): Refine JsDoc.
134373        (WebInspector.Cookie.prototype.name): Added getter.
134374        (WebInspector.Cookie.prototype.value): Ditto.
134375        (WebInspector.Cookie.prototype.type): Ditto.
134376        (WebInspector.Cookies.buildCookiesFromString): Adopt changes.
134377        (WebInspector.Cookies.buildCookieProtocolObject): Ditto.
134378        * inspector/front-end/CookiesTable.js:
134379        (WebInspector.CookiesTable): Remove unused parameter.
134380        (WebInspector.CookiesTable.prototype._sortCookies):
134381        Use getters instead of field names.
134382        (WebInspector.CookiesTable.prototype._createGridNode): Adopt changes.
134383        * inspector/front-end/HAREntry.js: Ditto.
134384        * inspector/front-end/RequestCookiesView.js: Ditto.
134385
1343862012-12-13  Kentaro Hara  <haraken@chromium.org>
134387
134388        Unreviewed, rolling out r137569.
134389        http://trac.webkit.org/changeset/137569
134390        https://bugs.webkit.org/show_bug.cgi?id=104876
134391
134392        A bunch of CSS tests hit ASSERTs
134393
134394        * css/CSSProperty.h:
134395        (WebCore::CSSProperty::CSSProperty):
134396
1343972012-12-13  Byungwoo Lee  <bw80.lee@samsung.com>
134398
134399        [EFL] Remove redundant pipe write to prevent pipe buffer full.
134400        https://bugs.webkit.org/show_bug.cgi?id=101135
134401
134402        Reviewed by Gyuyoung Kim.
134403
134404        To prevent a source of a deadlock, remove the redundant pipe write
134405        in wakeUp() function.
134406
134407        EFL uses ecore_pipe_write() to wake up main run loop, and the function
134408        uses POSIX pipe write with O_NONBLOCK disabled.
134409        With O_NONBLOCK disabled, when written data is more than PIPE_BUF,
134410        pipe write will be blocked until it can be written.
134411
134412        Currently, every wakeUp() function calls ecore_pipe_write() to invoke
134413        wakeUpEvent() callback. And this can make pipe buffer full status
134414        which is the one reason of the lockup problem described in Bug 99494.
134415
134416        * platform/RunLoop.h:
134417        (RunLoop):
134418        * platform/efl/RunLoopEfl.cpp:
134419        (WebCore::RunLoop::RunLoop):
134420        (WebCore::RunLoop::wakeUpEvent):
134421        (WebCore::RunLoop::wakeUp):
134422
1344232012-12-13  Antti Harju  <antti.harju@ixonos.com>
134424
134425        [Qt] Fix deleteAllCookies() invalid SQL statement
134426        https://bugs.webkit.org/show_bug.cgi?id=101580
134427
134428        Reviewed by Jocelyn Turcotte.
134429
134430        * platform/network/qt/CookieJarQt.cpp:
134431        (WebCore::SharedCookieJarQt::deleteAllCookies):
134432
1344332012-12-13  Ryosuke Niwa  <rniwa@webkit.org>
134434
134435        Safari spends a lot of time in WebCore::findSimpleWordBoundary while selecting text on large scrabutility.com page
134436        https://bugs.webkit.org/show_bug.cgi?id=104884
134437
134438        Reviewed by Hajime Morita.
134439
134440        We don't need to do anything in AlternativeTextController if selection is already outside of the editable region.
134441
134442        No new tests are added since this is only a performance improvement, and doesn't change any asymptotic behavior.
134443
134444        * editing/AlternativeTextController.cpp:
134445        (WebCore::AlternativeTextController::respondToChangedSelection):
134446
1344472012-12-12  Jon Lee  <jonlee@apple.com>
134448
134449        Crash in PlugInOriginHash with empty MIME type (104882)
134450        https://bugs.webkit.org/show_bug.cgi?id=104882
134451        <rdar://problem/12872298>
134452
134453        Reviewed by Filip Pizlo.
134454
134455        The crash occurs because the strings might be null. Add a check for it, but also try to infer a MIME type
134456        in case the markup does not include a type attribute, but we can find it from the extension in the URL.
134457
134458        * platform/KURL.cpp: Add a new function mimeTypeFromURL() which tries to return the implied MIME type
134459        based on the URL provided. If nothing was found, return a null string.
134460        (WebCore::mimeTypeFromURL): Factored out from FrameLoader::defaultObjectContentType().
134461        * platform/KURL.h:
134462
134463        * loader/FrameLoader.cpp:
134464        (WebCore::FrameLoader::defaultObjectContentType): Refactor to use mimeTypeFromURL().
134465        * plugins/PlugInOriginHash.cpp:
134466        (WebCore::addCaseFoldedCharacters): Add a check for an empty string.
134467        (WebCore::PlugInOriginHash::hash): If the service type is empty, try to infer the MIME type.
134468
1344692012-12-13  Christophe Dumez  <christophe.dumez@intel.com>
134470
134471        Regression(r137486): Broke EFL build
134472        https://bugs.webkit.org/show_bug.cgi?id=104883
134473
134474        Unreviewed EFL build fix.
134475
134476        Fix EFL build break after r137486 due to missing WebCore::
134477        namespace.
134478
134479        No new tests, no behavior change for layout tests.
134480
134481        * platform/NotImplemented.h:
134482
1344832012-12-07  Levi Weintraub  <leviw@chromium.org>
134484
134485        Add support for tracking hit test rectangles to enable fast event rejection in the compositor
134486        https://bugs.webkit.org/show_bug.cgi?id=103914
134487
134488        Reviewed by Simon Fraser.
134489
134490        Adding support for tracking hit test target regions for the purpose of performing initial hit testing
134491        in the compositor to avoid blocking scrolling on the main thread while waiting to hit test events that
134492        aren't occuring in regions with handlers. This is initially being done to avoid having to go to the main
134493        thread when scrolling by flicking on touch devices when the flick occurs outside a tracked touch event
134494        region. This patch includes the implementation to turn this on in Chromium.
134495
134496        To accomplish this goal, Document will now keep a counted hash set of nodes with touch event handlers
134497        instead of only an unsigned integer of the total count. ScrollingCoordinator then updates the compositor
134498        when new touch event handlers are registered or removed, or after layout much like how
134499        nonFastScrollableRegions are currently tracked.
134500
134501        This implementation will not properly update the hit test rects when the renderers are inside a sub-
134502        tree that scrolls.
134503
134504        Test: platform/chromium/fast/events/touch/compositor-touch-hit-rects.html
134505
134506        * dom/Document.cpp:
134507        (WebCore::Document::Document): Added a HashCountedSet of touch target nodes. Note: DOMWindow targets
134508        are stored as the Document they point to.
134509        (WebCore::Document::didAddTouchEventHandler): Changed to keep track of the handler instead of a count, and
134510        to update the ScrollingCoordinator with the change.
134511        (WebCore::Document::didRemoveTouchEventHandler): Ditto.
134512        * dom/Document.h:
134513        (WebCore::Document::hasTouchEventHandlers): It's no longer O(1) to get the count of touch handlers, so
134514        expose whether there are any or not.
134515        (WebCore::Document::touchEventTargets):
134516        * dom/Node.cpp:
134517        (WebCore::Node::didMoveToNewDocument):
134518        (WebCore::tryAddEventListener):
134519        (WebCore::tryRemoveEventListener):
134520        * history/CachedFrame.cpp:
134521        (WebCore::CachedFrameBase::restore):
134522        * html/HTMLInputElement.cpp:
134523        (WebCore::HTMLInputElement::~HTMLInputElement):
134524        (WebCore::HTMLInputElement::updateType):
134525        * page/DOMWindow.cpp:
134526        (WebCore::DOMWindow::addEventListener): Add the Document to the touch target set instead of DOMWindow.
134527        (WebCore::DOMWindow::removeEventListener):
134528        * page/EventHandler.cpp:
134529        (WebCore::EventHandler::handleTouchEvent):
134530        * page/Frame.cpp:
134531        (WebCore::Frame::setDocument):
134532        * page/scrolling/ScrollingCoordinator.cpp:
134533        (WebCore::ScrollingCoordinator::computeAbsoluteTouchEventTargetRects): Walk the renderers for event handler
134534        nodes and generate the absolute hit testing rects.
134535        * page/scrolling/ScrollingCoordinator.h:
134536        (WebCore::ScrollingCoordinator::setTouchEventTargetRectsChanged): Hook to pass along the hit test rects to
134537        the scrolling tree/compositor.
134538        (ScrollingCoordinator):
134539        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
134540        (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
134541        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRectsChanged):
134542        (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
134543        (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
134544        * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
134545        (ScrollingCoordinatorChromium):
134546        * testing/Internals.cpp:
134547        (WebCore::Internals::touchEventHandlerCount): Changed to do the work to calculate the actual count since
134548        it's no longer stored as an int in Document.
134549        (WebCore::Internals::touchEventTargetClientRects):
134550        * testing/Internals.h:
134551        (Internals):
134552        * testing/Internals.idl:
134553
1345542012-12-12  Luke Macpherson   <macpherson@chromium.org>
134555
134556        Add ASSERTions to ensure that CSSPropertys that are variables only ever refer to CSSValues that are variables.
134557        https://bugs.webkit.org/show_bug.cgi?id=104876
134558
134559        Reviewed by Steve Block.
134560
134561        Add assertions to CSSProperty constructors to make that if it is initialized with CSSPropertyVariable that
134562        the value type associated with it is also a variable. This is already asserted at read time, but ASSERTing
134563        here will produce a more useful backtrace.
134564
134565        No new tests as functionality unchanged.
134566
134567        * css/CSSProperty.h:
134568        (WebCore::CSSProperty::CSSProperty):
134569
1345702012-12-12  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
134571
134572        NetworkInfoController needs to support destructor
134573        https://bugs.webkit.org/show_bug.cgi?id=104642
134574
134575        Reviewed by Kentaro Hara.
134576
134577        Though NetworkInfoController can be referenced by each port in order to update network status change,
134578        there is no virtual interface to destroy it. Beside each port client also needs to be destroyed when
134579        controller is destroyed.
134580
134581        * Modules/networkinfo/NetworkInfoClient.h:
134582        (NetworkInfoClient):
134583        * Modules/networkinfo/NetworkInfoConnection.h:
134584        (WebCore::NetworkInfoConnection::networkInfoControllerDestroyed):
134585        * Modules/networkinfo/NetworkInfoController.cpp:
134586        (WebCore::NetworkInfoController::~NetworkInfoController):
134587
1345882012-12-12  Kent Tamura  <tkent@chromium.org>
134589
134590        Validity of a radio button is not updated correctly when it is detached from an invalid radio group
134591        https://bugs.webkit.org/show_bug.cgi?id=104873
134592
134593        Reviewed by Kentaro Hara.
134594
134595        When a radio button is detached from an invalid radio group,
134596        A) we should update button's validity, and
134597        B) it should be valid.
134598
134599        A is handled by the following code in RadioButtonGroup::remove.
134600            if (!wasValid) {
134601                // A radio button not in a group is always valid. We need to make it
134602                // valid only if the group was invalid.
134603                button->setNeedsValidityCheck();
134604
134605        B was incomplete.
134606            bool RadioInputType::valueMissing(const String&) const
134607            {
134608                return element()->isInRequiredRadioButtonGroup() && !element()->checkedRadioButtonForGroup();
134609        isInRequiredRadioButtonGroup checked required state of a group with the
134610        name attribute value even if the radio button was already detached from
134611        the group. isInRequiredRadioButtonGroup should check membership of the
134612        radio button precisely.
134613
134614        Tests: Update fast/forms/radio/radio-live-validation-style.html
134615
134616        * dom/CheckedRadioButtons.cpp:
134617        (RadioButtonGroup): Declare contains.
134618        (WebCore::RadioButtonGroup::contains): Added.
134619        (WebCore::CheckedRadioButtons::isInRequiredGroup): Renamed from
134620        isRequiredGroup. This function takes HTMLInputElement* argument.
134621        * dom/CheckedRadioButtons.h:
134622        (CheckedRadioButtons): Rename isRequiredGroup to isInRequiredGroup.
134623        * html/HTMLInputElement.cpp:
134624        (WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
134625        Make this non-const becaues RadioButtonGroup::m_members needs non-const
134626        pointers. Use CheckedRadioButtons::isInRequiredGroup.
134627        * html/HTMLInputElement.h:
134628        (HTMLInputElement): Make isInRequiredRadioButtonGroup non-const.
134629
1346302012-12-12  Shinya Kawanaka  <shinyak@chromium.org>
134631
134632        ContainerNodeAlgorithm::notifyInsertedIntoDocument is not used
134633        https://bugs.webkit.org/show_bug.cgi?id=104874
134634
134635        Reviewed by Hajime Morita.
134636
134637        ContainerNodeAlgorithm::notifyInsertedIntoDocument() is not used by anyone. We can remove it safely.
134638
134639        No new tests, no change in behavior.
134640
134641        * dom/ContainerNodeAlgorithms.h:
134642
1346432012-12-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
134644
134645        Milliseconds field of date/time input UI should respect step attribute
134646        https://bugs.webkit.org/show_bug.cgi?id=104628
134647
134648        Reviewed by Kent Tamura.
134649
134650        This patch makes step-up/-down UI of the milliseconds fields respect step attribute
134651        in a special case when the step is divisible by 1000 milliseconds.
134652
134653        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
134654
134655        * html/shadow/DateTimeEditElement.cpp:
134656        (WebCore::DateTimeEditBuilder::visitField):
134657        If step of the element (in milliseconds) is divisible by 1000, use it as the step of the milliseconds field. Otherwise, the millisecond field has step 1.
134658        * html/shadow/DateTimeFieldElements.cpp:
134659        (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Add step and stepBase arguments.
134660        (WebCore::DateTimeMillisecondFieldElement::create): Ditto.
134661        * html/shadow/DateTimeFieldElements.h:
134662        (DateTimeMillisecondFieldElement): Ditto.
134663        * html/shadow/DateTimeNumericFieldElement.cpp:
134664        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Ditto.
134665        (WebCore::DateTimeNumericFieldElement::stepDown): Changed to compute next allowed value using roundDown().
134666        (WebCore::DateTimeNumericFieldElement::stepUp): Changed to compute next allowed value using roundUp().
134667        (WebCore::DateTimeNumericFieldElement::roundDown): Added.
134668        (WebCore::DateTimeNumericFieldElement::roundUp): Added.
134669        * html/shadow/DateTimeNumericFieldElement.h:
134670        (DateTimeNumericFieldElement): Add m_step and m_stepBase fields.
134671
1346722012-12-12  Julien Chaffraix  <jchaffraix@webkit.org>
134673
134674        [CSS Grid Layout] Include paddings and borders into the grid element's logical height / width
134675        https://bugs.webkit.org/show_bug.cgi?id=104818
134676
134677        Reviewed by Tony Chang.
134678
134679        This change makes RenderGrid add the borders and paddings in the right direction during layout
134680        so that the grid element's size accounts them like any other renderer.
134681
134682        Test: fast/css-grid-layout/grid-element-padding-margin.html
134683
134684        * rendering/RenderGrid.cpp:
134685        (WebCore::RenderGrid::computePreferredLogicalWidths):
134686        (WebCore::RenderGrid::layoutGridItems):
134687
1346882012-12-12  Roger Fong  <roger_fong@apple.com>
134689
134690        Include Apple Windows in GraphicsLayer::supportsBackgroundColorContent().
134691        https://bugs.webkit.org/show_bug.cgi?id=104852.
134692
134693        Reviewed by Simon Fraser.
134694
134695        * platform/graphics/GraphicsLayer.h:
134696        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
134697
1346982012-12-12  KyungTae Kim  <ktf.kim@samsung.com>
134699
134700        Unused parameters on TextureMapperImageBuffer.cpp
134701        https://bugs.webkit.org/show_bug.cgi?id=104857
134702
134703        Reviewed by Kentaro Hara.
134704
134705        The updateContents has unused parameter 'textureMapper',
134706        remove the parameter name to fix 'unused parameter' build warning. 
134707
134708        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
134709        (WebCore::BitmapTextureImageBuffer::updateContents):
134710
1347112012-12-12  Shinya Kawanaka  <shinyak@chromium.org>
134712
134713        [Shadow] HTMLContentElement::getDistributedNodes() doesn't work correctly if not in document tree.
134714        https://bugs.webkit.org/show_bug.cgi?id=104345
134715
134716        Reviewed by Hajime Morita.
134717
134718        Since document->updateLayout() does affect nodes in Document, distribution will not occur in
134719        InsertionPoints out of Document. We have to find the element in document tree scope, and start distribution from it.
134720
134721        Test: fast/dom/shadow/get-distributed-nodes-orphan.html
134722
134723        * html/shadow/InsertionPoint.cpp:
134724        (WebCore::InsertionPoint::getDistributedNodes):
134725
1347262012-12-12  Patrick Gansterer  <paroga@webkit.org>
134727
134728        [WIN] Implement WebCore::fileSystemRepresentation() for !USE(CF)
134729        https://bugs.webkit.org/show_bug.cgi?id=104456
134730
134731        Reviewed by Brent Fulgham.
134732
134733        Convert the UTF-16 path to the system default Windows ANSI code page (usually Windows Latin1).
134734
134735        * platform/win/FileSystemWin.cpp:
134736        (WebCore::fileSystemRepresentation):
134737
1347382012-12-12  No'am Rosenthal  <noam@webkit.org>
134739
134740        [Texmap] Remove lowp/highp indicators as they're not needed with ANGLE.
134741        https://bugs.webkit.org/show_bug.cgi?id=104707
134742
134743        Reviewed by Kenneth Rohde Christiansen.
134744
134745        lowp/highp indicator were needed for GLES2, but ANGLE does not require them.
134746
134747        Covered by existing tests.
134748
134749        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
134750        (WebCore::getShaderSpec):
134751
1347522012-12-12  Andy Estes  <aestes@apple.com>
134753
134754        Don't dispatch fake mousemove events when we don't know where the cursor is
134755        https://bugs.webkit.org/show_bug.cgi?id=104861
134756
134757        Reviewed by Sam Weinig.
134758
134759        When EventHandler is instantiated or cleared, it sets the current mouse
134760        position to (0, 0), even though this is probably not where the mouse
134761        cursor really is (and we won't know until the mouse moves into the WebView).
134762        If a fake mousemove event fires and the page has an element at (0, 0)
134763        that responds to mousemove, we might end up changing the cursor or
134764        displaying a tooltip at the current mouse position, even if it is
134765        outside the WebView.
134766
134767        Fake mousemove events are dispatched in order to update a cursor that
134768        is already over the WebView. Don't dispatch the event if we don't know
134769        this to be true.
134770
134771        * page/EventHandler.cpp:
134772        (WebCore::EventHandler::EventHandler): Instantiate m_mousePositionIsUnknown to true.
134773        (WebCore::EventHandler::clear): Reset m_mousePositionIsUnknown to true.
134774        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Return early if the mouse position is unknown.
134775        (WebCore::EventHandler::setLastKnownMousePosition): Set the mouse position from the PlatformMouseEvent and set m_mousePositionIsUnknown to false.
134776        (WebCore::EventHandler::handleMousePressEvent): Call setLastKnownMousePosition() instead of setting the position directly.
134777        (WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
134778        (WebCore::EventHandler::handleMouseMoveEvent): Ditto.
134779        (WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
134780        (WebCore::EventHandler::updateSelectionForMouseDrag): Rename currentMouse(Global)Position to lastKnownMouse(Global)Position.
134781        (WebCore::EventHandler::handleAutoscroll): Ditto.
134782        (WebCore::EventHandler::updatePanScrollState): Ditto.
134783        (WebCore::EventHandler::lastKnownMousePosition): Ditto.
134784        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad): Ditto.
134785        (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Ditto.
134786        (WebCore::EventHandler::hoverTimerFired): Ditto.
134787        * page/FrameView.cpp:
134788        (WebCore::FrameView::lastKnownMousePosition): Ditto.
134789        * platform/ScrollableArea.h:
134790        (WebCore::ScrollableArea::lastKnownMousePosition): Ditto.
134791        * platform/mac/ScrollAnimatorMac.mm:
134792        (-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): Ditto.
134793        (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]): Ditto.
134794        * rendering/RenderLayer.cpp:
134795        (WebCore::RenderLayer::panScrollFromPoint): Ditto.
134796        (WebCore::RenderLayer::autoscroll): Ditto.
134797        (WebCore::RenderLayer::lastKnownMousePosition): Ditto.
134798        * rendering/RenderListBox.cpp:
134799        (WebCore::RenderListBox::panScroll): Ditto.
134800        (WebCore::RenderListBox::autoscroll): Ditto.
134801        (WebCore::RenderListBox::lastKnownMousePosition): Ditto.
134802
1348032012-12-12  Martin Robinson  <mrobinson@igalia.com>
134804
134805        Try to fix the GTK+ debug bulid
134806
134807        Logging.h is no longer included in headers, so we need to include it manually in
134808        files that require logging macros.
134809
134810        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Include Logging.h.
134811
1348122012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>
134813
134814        Unreviewed, rolling out r137524.
134815        http://trac.webkit.org/changeset/137524
134816        https://bugs.webkit.org/show_bug.cgi?id=104859
134817
134818        Causes m_deletionHasBegun assertion failures in
134819        MutationObserver tests (Requested by aklein on #webkit).
134820
134821        * dom/Document.cpp:
134822        (WebCore::Document::Document):
134823        (WebCore::Document::~Document):
134824        (WebCore::Document::suggestedMIMEType):
134825        * dom/Document.h:
134826        (WebCore::Node::isDocumentNode):
134827        (WebCore):
134828        (WebCore::Node::treeScope):
134829        (WebCore::Node::Node):
134830        * dom/Element.cpp:
134831        (WebCore::Element::createRareData):
134832        * dom/ElementRareData.h:
134833        (ElementRareData):
134834        (WebCore::ElementRareData::ElementRareData):
134835        * dom/Node.cpp:
134836        (WebCore::Node::~Node):
134837        (WebCore::Node::setDocument):
134838        (WebCore):
134839        (WebCore::Node::setTreeScope):
134840        (WebCore::Node::createRareData):
134841        (WebCore::Node::attach):
134842        (WebCore::Node::reportMemoryUsage):
134843        * dom/Node.h:
134844        (WebCore):
134845        (WebCore::NodeRareDataBase::treeScope):
134846        (WebCore::NodeRareDataBase::setTreeScope):
134847        (NodeRareDataBase):
134848        (WebCore::NodeRareDataBase::NodeRareDataBase):
134849        (Node):
134850        (WebCore::Node::inDocument):
134851        (WebCore::Node::documentInternal):
134852        * dom/NodeRareData.cpp:
134853        (SameSizeAsNodeRareData):
134854        (WebCore::NodeRareData::reportMemoryUsage):
134855        * dom/NodeRareData.h:
134856        (WebCore::NodeRareData::NodeRareData):
134857        * dom/ShadowRoot.cpp:
134858        (WebCore::ShadowRoot::ShadowRoot):
134859        * dom/TreeScope.cpp:
134860        (SameSizeAsTreeScope):
134861        (WebCore::TreeScope::TreeScope):
134862        (WebCore::TreeScope::setParentTreeScope):
134863        * dom/TreeScope.h:
134864        (WebCore):
134865        (TreeScope):
134866        * dom/TreeScopeAdopter.cpp:
134867        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
134868        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
134869
1348702012-12-12  Seokju Kwon  <seokju.kwon@gmail.com>
134871
134872        Fix build warning when ENABLE_INSPECTOR is disabled
134873        https://bugs.webkit.org/show_bug.cgi?id=104757
134874
134875        Reviewed by Kentaro Hara.
134876
134877        Use UNUSED_PARAM macro to fix build warning -Wunused-parameter.
134878
134879        No new tests, no behavior change.
134880
134881        * inspector/InspectorCanvasInstrumentation.h:
134882        (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
134883        (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
134884        * inspector/InspectorConsoleInstrumentation.h:
134885        (WebCore::InspectorInstrumentation::addMessageToConsole):
134886        (WebCore::InspectorInstrumentation::consoleCount):
134887        (WebCore::InspectorInstrumentation::startConsoleTiming):
134888        (WebCore::InspectorInstrumentation::stopConsoleTiming):
134889        (WebCore::InspectorInstrumentation::consoleTimeStamp):
134890        (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
134891        (WebCore::InspectorInstrumentation::addProfile):
134892        (WebCore::InspectorInstrumentation::profilerEnabled):
134893        (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
134894        * inspector/InspectorCounters.h:
134895        (WebCore::InspectorCounters::incrementCounter):
134896        (WebCore::InspectorCounters::decrementCounter):
134897        * inspector/InspectorDatabaseInstrumentation.h:
134898        (WebCore::InspectorInstrumentation::didOpenDatabase):
134899        * inspector/InspectorInstrumentation.h:
134900        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
134901        (WebCore::InspectorInstrumentation::isDebuggerPaused):
134902        (WebCore::InspectorInstrumentation::willInsertDOMNode):
134903        (WebCore::InspectorInstrumentation::didInsertDOMNode):
134904        (WebCore::InspectorInstrumentation::willRemoveDOMNode):
134905        (WebCore::InspectorInstrumentation::willModifyDOMAttr):
134906        (WebCore::InspectorInstrumentation::didModifyDOMAttr):
134907        (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
134908        (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
134909        (WebCore::InspectorInstrumentation::frameWindowDiscarded):
134910        (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
134911        (WebCore::InspectorInstrumentation::didPushShadowRoot):
134912        (WebCore::InspectorInstrumentation::willPopShadowRoot):
134913        (WebCore::InspectorInstrumentation::didCreateNamedFlow):
134914        (WebCore::InspectorInstrumentation::willRemoveNamedFlow):
134915        (WebCore::InspectorInstrumentation::didUpdateRegionLayout):
134916        (WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
134917        (WebCore::InspectorInstrumentation::handleTouchEvent):
134918        (WebCore::InspectorInstrumentation::handleMousePress):
134919        (WebCore::InspectorInstrumentation::forcePseudoState):
134920        (WebCore::InspectorInstrumentation::characterDataModified):
134921        (WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
134922        (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
134923        (WebCore::InspectorInstrumentation::didInstallTimer):
134924        (WebCore::InspectorInstrumentation::didRemoveTimer):
134925        (WebCore::InspectorInstrumentation::willCallFunction):
134926        (WebCore::InspectorInstrumentation::didCallFunction):
134927        (WebCore::InspectorInstrumentation::willDispatchXHRReadyStateChangeEvent):
134928        (WebCore::InspectorInstrumentation::didDispatchXHRReadyStateChangeEvent):
134929        (WebCore::InspectorInstrumentation::willDispatchEvent):
134930        (WebCore::InspectorInstrumentation::didDispatchEvent):
134931        (WebCore::InspectorInstrumentation::willHandleEvent):
134932        (WebCore::InspectorInstrumentation::didHandleEvent):
134933        (WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
134934        (WebCore::InspectorInstrumentation::didDispatchEventOnWindow):
134935        (WebCore::InspectorInstrumentation::willEvaluateScript):
134936        (WebCore::InspectorInstrumentation::didEvaluateScript):
134937        (WebCore::InspectorInstrumentation::didCreateIsolatedContext):
134938        (WebCore::InspectorInstrumentation::willFireTimer):
134939        (WebCore::InspectorInstrumentation::didFireTimer):
134940        (WebCore::InspectorInstrumentation::didBeginFrame):
134941        (WebCore::InspectorInstrumentation::didCancelFrame):
134942        (WebCore::InspectorInstrumentation::didInvalidateLayout):
134943        (WebCore::InspectorInstrumentation::willLayout):
134944        (WebCore::InspectorInstrumentation::didLayout):
134945        (WebCore::InspectorInstrumentation::didScroll):
134946        (WebCore::InspectorInstrumentation::willDispatchXHRLoadEvent):
134947        (WebCore::InspectorInstrumentation::didDispatchXHRLoadEvent):
134948        (WebCore::InspectorInstrumentation::willPaint):
134949        (WebCore::InspectorInstrumentation::didPaint):
134950        (WebCore::InspectorInstrumentation::willScrollLayer):
134951        (WebCore::InspectorInstrumentation::didScrollLayer):
134952        (WebCore::InspectorInstrumentation::willComposite):
134953        (WebCore::InspectorInstrumentation::didComposite):
134954        (WebCore::InspectorInstrumentation::willRecalculateStyle):
134955        (WebCore::InspectorInstrumentation::didRecalculateStyle):
134956        (WebCore::InspectorInstrumentation::didScheduleStyleRecalculation):
134957        (WebCore::InspectorInstrumentation::willMatchRule):
134958        (WebCore::InspectorInstrumentation::didMatchRule):
134959        (WebCore::InspectorInstrumentation::willProcessRule):
134960        (WebCore::InspectorInstrumentation::didProcessRule):
134961        (WebCore::InspectorInstrumentation::applyUserAgentOverride):
134962        (WebCore::InspectorInstrumentation::applyScreenWidthOverride):
134963        (WebCore::InspectorInstrumentation::applyScreenHeightOverride):
134964        (WebCore::InspectorInstrumentation::shouldApplyScreenWidthOverride):
134965        (WebCore::InspectorInstrumentation::applyEmulatedMedia):
134966        (WebCore::InspectorInstrumentation::shouldApplyScreenHeightOverride):
134967        (WebCore::InspectorInstrumentation::willSendRequest):
134968        (WebCore::InspectorInstrumentation::continueAfterPingLoader):
134969        (WebCore::InspectorInstrumentation::markResourceAsCached):
134970        (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
134971        (WebCore::InspectorInstrumentation::willReceiveResourceData):
134972        (WebCore::InspectorInstrumentation::didReceiveResourceData):
134973        (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
134974        (WebCore::InspectorInstrumentation::didReceiveResourceResponse):
134975        (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
134976        (WebCore::InspectorInstrumentation::continueWithPolicyDownload):
134977        (WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
134978        (WebCore::InspectorInstrumentation::didReceiveData):
134979        (WebCore::InspectorInstrumentation::didFinishLoading):
134980        (WebCore::InspectorInstrumentation::didFailLoading):
134981        (WebCore::InspectorInstrumentation::documentThreadableLoaderStartedLoadingForClient):
134982        (WebCore::InspectorInstrumentation::willLoadXHR):
134983        (WebCore::InspectorInstrumentation::didFailXHRLoading):
134984        (WebCore::InspectorInstrumentation::didFinishXHRLoading):
134985        (WebCore::InspectorInstrumentation::didReceiveXHRResponse):
134986        (WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
134987        (WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
134988        (WebCore::InspectorInstrumentation::scriptImported):
134989        (WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSP):
134990        (WebCore::InspectorInstrumentation::didReceiveScriptResponse):
134991        (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
134992        (WebCore::InspectorInstrumentation::loadEventFired):
134993        (WebCore::InspectorInstrumentation::frameDetachedFromParent):
134994        (WebCore::InspectorInstrumentation::didCommitLoad):
134995        (WebCore::InspectorInstrumentation::loaderDetachedFromFrame):
134996        (WebCore::InspectorInstrumentation::willDestroyCachedResource):
134997        (WebCore::InspectorInstrumentation::willWriteHTML):
134998        (WebCore::InspectorInstrumentation::didWriteHTML):
134999        (WebCore::InspectorInstrumentation::didUseDOMStorage):
135000        (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
135001        (WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart):
135002        (WebCore::InspectorInstrumentation::didStartWorkerContext):
135003        (WebCore::InspectorInstrumentation::workerContextTerminated):
135004        (WebCore::InspectorInstrumentation::didCreateWebSocket):
135005        (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
135006        (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
135007        (WebCore::InspectorInstrumentation::didCloseWebSocket):
135008        (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
135009        (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
135010        (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
135011        (WebCore::InspectorInstrumentation::networkStateChanged):
135012        (WebCore::InspectorInstrumentation::updateApplicationCacheStatus):
135013        (WebCore::InspectorInstrumentation::didRequestAnimationFrame):
135014        (WebCore::InspectorInstrumentation::didCancelAnimationFrame):
135015        (WebCore::InspectorInstrumentation::willFireAnimationFrame):
135016        (WebCore::InspectorInstrumentation::didFireAnimationFrame):
135017        (WebCore::InspectorInstrumentation::overrideGeolocationPosition):
135018        (WebCore::InspectorInstrumentation::overrideDeviceOrientation):
135019        * loader/appcache/ApplicationCacheGroup.cpp:
135020        (WebCore::ApplicationCacheGroup::didFinishLoading):
135021        (WebCore::ApplicationCacheGroup::didFail):
135022
1350232012-12-12  Dean Jackson  <dino@apple.com>
135024
135025        Reinstate CIFilter code for Lion
135026        https://bugs.webkit.org/show_bug.cgi?id=104847
135027
135028        Reviewed by Simon Fraser.
135029
135030        This basically reverts r137500 for Lion, because some
135031        CAFilter types are not available there.
135032
135033        Covered by existing tests, with the warning that Lion
135034        baselines will need updating.
135035
135036        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
135037        (PlatformCALayer::setFilters): Put an ugly #if in to
135038        detect OS X 10.7, and rename caFilter variable to
135039        filter.
135040
1350412012-12-12  Seokju Kwon  <seokju.kwon@gmail.com>
135042
135043        [EFL] Refactor duplicate code into EflInspectorUtilities
135044        https://bugs.webkit.org/show_bug.cgi?id=104329
135045
135046        Reviewed by Kenneth Rohde Christiansen.
135047
135048        Move duplicate work into EflInspectorUtilities.
135049
135050        No new tests, refactoring.
135051
135052        * PlatformEfl.cmake:
135053        * platform/efl/EflInspectorUtilities.cpp: Added.
135054        (WebCore):
135055        (WebCore::inspectorResourcePath):
135056        * platform/efl/EflInspectorUtilities.h: Added.
135057        (WebCore):
135058
1350592012-12-12  Mark Lam  <mark.lam@apple.com>
135060
135061        Fixing a chromium build breakage due to r137520.
135062        https://bugs.webkit.org/show_bug.cgi?id=104741.
135063
135064        Not reviewed.
135065
135066        Added #ifdef !PLATFORM(CHROMIUM) for one function chromium doesn't use.
135067
135068        No new tests.
135069
135070        * Modules/webdatabase/DatabaseManager.cpp:
135071        (WebCore::DatabaseManager::initialize):
135072        * Modules/webdatabase/DatabaseTracker.h:
135073        (DatabaseTracker):
135074
1350752012-12-11  Emil A Eklund  <eae@chromium.org>
135076
135077        REGRESSION (Subpixel layout): Gray vertical lines appear when moving insertion point to right on Mac
135078        https://bugs.webkit.org/show_bug.cgi?id=102402
135079
135080        Reviewed by Simon Fraser.
135081
135082        Round paintOffset in CaretBase::paintCaret to ensure that caret is painted at an integer pixel boundary.
135083
135084        Test: fast/sub-pixel/input-caret-on-subpixel-bound.html
135085
135086        * editing/FrameSelection.cpp:
135087        (WebCore::CaretBase::paintCaret): Round paintOffset to ensure it is on a pixel boundary.
135088
1350892012-12-12  Elliott Sprehn  <esprehn@gmail.com>
135090
135091        REGRESSION(137336): Generated run-ins are not placed correctly
135092        https://bugs.webkit.org/show_bug.cgi?id=104840
135093
135094        Reviewed by Abhishek Arya.
135095
135096        Now that :before and :after are not anonymous we no longer need special
135097        handling for run-ins. Currently placeRunInIfNeeded will only place
135098        a generated content run-in if a special flag is passed, but I removed
135099        the call with the flag as it wasn't needed in r137336. This patch just
135100        removes all special handling for generated content run-ins.
135101
135102        Test: fast/css-generated-content/generated-runin.html
135103
135104        * rendering/RenderBlock.cpp:
135105        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
135106        (WebCore::RenderBlock::placeRunInIfNeeded):
135107        (WebCore::RenderBlock::createReplacementRunIn):
135108            Lots of simplfication since there's no more anonymous run-ins.
135109        * rendering/RenderBlock.h:
135110        (RenderBlock):
135111        * rendering/RenderObject.h:
135112
1351132012-12-12  Simon Fraser  <simon.fraser@apple.com>
135114
135115        Don't unconditionally repaint compositing layers when their size changes
135116        https://bugs.webkit.org/show_bug.cgi?id=104461
135117
135118        Reviewed by James Robinson.
135119
135120        In r137215 I attempted to avoid excessive repainting when compositing layers
135121        change size. This caused stretched layers when layer size changed as a result
135122        of bounds constraining in updateCompositedBounds(), so was conditionalized
135123        based on whether constraining happend, in r137248.
135124        
135125        However, the TileCache layer was affected by constraining, erroneously:
135126        shouldClipCompositedBounds() returned true of the tile cache layer. This
135127        is pointless, because we only constrain to the document bounds (or enclosing
135128        overflow), and the tile cache is already the size of the document bounds.
135129
135130        So, disable size constraining for the tile cache layer, and fix
135131        a confusing comment in updateCompositedBounds() that refers to the
135132        view's bounds, rather than the document's bounds.
135133
135134        * rendering/RenderLayerBacking.cpp:
135135        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
135136        (WebCore::RenderLayerBacking::updateCompositedBounds):
135137
1351382012-12-12  Elliott Sprehn  <esprehn@gmail.com>
135139
135140        [Refactoring] Replace Node's Document pointer with a TreeScope pointer
135141        https://bugs.webkit.org/show_bug.cgi?id=59816
135142
135143        Reviewed by Ryosuke Niwa.
135144
135145        Instead of giving every node in a shadow a rare data, which can be quite
135146        large, we replace the Document pointer in Node with a TreeScope pointer
135147        and we give TreeScope a pointer to it's document scope.
135148
135149        This introduces no branches in document() because in the common
135150        case document() becomes equivalent to m_treeScope->m_documentScope where
135151        the documentScope is actually m_treeScope so this shouldn't introduce a
135152        perf regression.
135153
135154        Note also that TreeScope can never be null after r136328, and the document
135155        pointer is only null for DocumentType nodes so we can use a special
135156        no-document TreeScope for this case that always returns null from
135157        documentScope().
135158
135159        No new tests, no change in behavior.
135160
135161        * dom/Document.cpp:
135162        (WebCore::Document::Document):
135163        (WebCore::Document::~Document):
135164        (WebCore::Document::suggestedMIMEType):
135165        * dom/Document.h:
135166        (WebCore::Node::isDocumentNode):
135167        (WebCore::Node::Node):
135168        * dom/Element.cpp:
135169        (WebCore::Element::createRareData):
135170        * dom/ElementRareData.h:
135171        (ElementRareData):
135172        (WebCore::ElementRareData::ElementRareData):
135173        * dom/Node.cpp:
135174        (WebCore::Node::~Node):
135175        (WebCore::Node::createRareData):
135176        (WebCore::Node::attach):
135177        (WebCore::Node::reportMemoryUsage):
135178        * dom/Node.h:
135179        (WebCore):
135180        (WebCore::NodeRareDataBase::NodeRareDataBase):
135181        (NodeRareDataBase):
135182        (WebCore::Node::treeScope):
135183        (WebCore::Node::inDocument):
135184        (WebCore::Node::documentInternal):
135185        (WebCore::Node::setTreeScope):
135186        (Node):
135187        * dom/NodeRareData.cpp:
135188        (WebCore::NodeRareData::reportMemoryUsage):
135189        * dom/NodeRareData.h:
135190        (WebCore::NodeRareData::NodeRareData):
135191        * dom/ShadowRoot.cpp:
135192        (WebCore::ShadowRoot::ShadowRoot):
135193        * dom/TreeScope.cpp:
135194        (SameSizeAsTreeScope):
135195        (WebCore::TreeScope::TreeScope):
135196        (WebCore::TreeScope::setParentTreeScope):
135197        * dom/TreeScope.h:
135198        (WebCore):
135199        (TreeScope):
135200        (WebCore::TreeScope::documentScope):
135201        (WebCore::TreeScope::noDocumentInstance):
135202            Returns a special tree scope that has no document for use with
135203            DocumentType nodes.
135204        (WebCore::TreeScope::setDocumentScope):
135205        * dom/TreeScopeAdopter.cpp:
135206        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
135207        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
135208        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
135209
1352102012-12-12  Mark Lam  <mark.lam@apple.com>
135211
135212        Encapsulate externally used webdatabase APIs in DatabaseManager.
135213        https://bugs.webkit.org/show_bug.cgi?id=104741.
135214
135215        Reviewed by Sam Weinig.
135216
135217        Use DatabaseManager instead of accessing DatabaseTracker, AbstractDatabase,
135218        and DatabaseContext directly. This is to prepare for upcoming webkit2
135219        refactoring.
135220
135221        No new tests.
135222
135223        * CMakeLists.txt:
135224        * Modules/webdatabase/DatabaseManager.cpp: Added.
135225        (WebCore::DatabaseManager::manager):
135226        (WebCore::DatabaseManager::DatabaseManager):
135227        (WebCore::DatabaseManager::initialize):
135228        (WebCore::DatabaseManager::setClient):
135229        (WebCore::DatabaseManager::isAvailable):
135230        (WebCore::DatabaseManager::setIsAvailable):
135231        (WebCore::DatabaseManager::hasOpenDatabases):
135232        (WebCore::DatabaseManager::stopDatabases):
135233        (WebCore::DatabaseManager::fullPathForDatabase):
135234        (WebCore::DatabaseManager::databaseDirectoryPath):
135235        (WebCore::DatabaseManager::setDatabaseDirectoryPath):
135236        (WebCore::DatabaseManager::hasEntryForOrigin):
135237        (WebCore::DatabaseManager::origins):
135238        (WebCore::DatabaseManager::databaseNamesForOrigin):
135239        (WebCore::DatabaseManager::detailsForNameAndOrigin):
135240        (WebCore::DatabaseManager::usageForOrigin):
135241        (WebCore::DatabaseManager::quotaForOrigin):
135242        (WebCore::DatabaseManager::setQuota):
135243        (WebCore::DatabaseManager::deleteAllDatabases):
135244        (WebCore::DatabaseManager::deleteOrigin):
135245        (WebCore::DatabaseManager::deleteDatabase):
135246        (WebCore::DatabaseManager::closeDatabasesImmediately):
135247        (WebCore::DatabaseManager::interruptAllDatabasesForContext):
135248        * Modules/webdatabase/DatabaseManager.h: Added.
135249        (DatabaseManager):
135250        (WebCore::DatabaseManager::~DatabaseManager):
135251        * Modules/webdatabase/DatabaseManagerClient.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseTrackerClient.h.
135252        (WebCore::DatabaseManagerClient::~DatabaseManagerClient):
135253        * Modules/webdatabase/DatabaseTracker.cpp:
135254        (WebCore::DatabaseTracker::setClient):
135255        * Modules/webdatabase/DatabaseTracker.h:
135256        (DatabaseTracker):
135257        * Modules/webdatabase/DatabaseTrackerClient.h: Removed.
135258        * Target.pri:
135259        * WebCore.exp.in:
135260        * WebCore.gyp/WebCore.gyp:
135261        * WebCore.gypi:
135262        * WebCore.order:
135263        * WebCore.vcproj/WebCore.vcproj:
135264        * WebCore.xcodeproj/project.pbxproj:
135265        * bindings/generic/RuntimeEnabledFeatures.cpp:
135266        (WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
135267        (WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
135268        * history/PageCache.cpp:
135269        (WebCore::logCanCacheFrameDecision):
135270        (WebCore::PageCache::canCachePageContainingThisFrame):
135271        * loader/FrameLoader.cpp:
135272        (WebCore::FrameLoader::stopLoading):
135273        * page/DOMWindow.cpp:
135274        * workers/WorkerThread.cpp:
135275        (WebCore::WorkerThreadShutdownStartTask::performTask):
135276        (WebCore::WorkerThread::stop):
135277
1352782012-12-12  Tony Chang  <tony@chromium.org>
135279
135280        [chromium] don't write additional idl files to a gyp temp file
135281        https://bugs.webkit.org/show_bug.cgi?id=104831
135282
135283        Reviewed by Kentaro Hara.
135284
135285        The <|( command doesn't work for files like <(PRODUCT_DIR) or <(SHARED_INTERMEDIATE_DIR).
135286        For additional_idl_files, pass it as a parameter instead of a file listing the filenames.
135287        There are currently only 3 files in this variable. This shouldn't overflow the command
135288        line since the limit on Windows is 8k and with this change, we're still only around 4.5k.
135289        Also, the longest part of the command line is the list of defines. If needed, we could put
135290        that in a file instead.
135291
135292        No new tests, this is a refactoring of the build files.
135293
135294        * WebCore.gyp/WebCore.gyp: Don't use <|( for additional_idl_files.
135295        * bindings/scripts/generate-bindings.pl: Change --additionalIdlFilesList to
135296        --additionalIdlFiles, which is a shell argument containing the filenames.
135297
1352982012-12-12  Chris Rogers  <crogers@google.com>
135299
135300        Implement OfflineAudioContext constructor
135301        https://bugs.webkit.org/show_bug.cgi?id=104188
135302
135303        Reviewed by Kentaro Hara.
135304
135305        The Web Audio layout tests have relied on an undocumented way (in the specification) to render
135306        audio faster than realtime using an OfflineAudioContext.  We want to expose a proper OfflineAudioContext
135307        object and constructor instead of piggybacking off of the normal AudioContext.
135308             
135309        * CMakeLists.txt:
135310        * DerivedSources.make:
135311        * DerivedSources.pri:
135312        * GNUmakefile.list.am:
135313        * Modules/webaudio/AudioContext.cpp:
135314        (WebCore::AudioContext::isSampleRateRangeGood):
135315        * Modules/webaudio/AudioContext.h:
135316        (AudioContext):
135317        * Modules/webaudio/DOMWindowWebAudio.idl:
135318        * Modules/webaudio/OfflineAudioContext.cpp: Added.
135319        (WebCore):
135320        (WebCore::OfflineAudioContext::create):
135321        (WebCore::OfflineAudioContext::OfflineAudioContext):
135322        (WebCore::OfflineAudioContext::~OfflineAudioContext):
135323        * Modules/webaudio/OfflineAudioContext.h: Added.
135324        (WebCore):
135325        (OfflineAudioContext):
135326        * Modules/webaudio/OfflineAudioContext.idl: Added.
135327        * WebCore.gypi:
135328        * WebCore.xcodeproj/project.pbxproj:
135329        * bindings/generic/RuntimeEnabledFeatures.h:
135330        (WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
135331        * bindings/js/JSAudioContextCustom.cpp:
135332        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
135333        * bindings/v8/custom/V8AudioContextCustom.cpp:
135334        (WebCore::V8AudioContext::constructorCallbackCustom):
135335
1353362012-12-12  John Griggs  <jgriggs@rim.com>
135337
135338        2012-12-12  John Griggs  <jgriggs@rim.com>
135339
135340        [BlackBerry] Update Media Controls for BlackBerry Platform
135341        https://bugs.webkit.org/show_bug.cgi?id=104443
135342        https://przilla.ott.qnx.com/bugzilla/show_bug.cgi?id=204748
135343
135344        Reviewed by Rob Buis.
135345
135346        Update Media Controls for BlackBerry platform to allow audio, embedded video and fullscreen video controls to be positioned and styled differently.
135347
135348        BlackBerry-specific update to Media Controls - No new tests required.
135349
135350        * PlatformBlackBerry.cmake:
135351        * css/mediaControlsBlackBerry.css:
135352        (audio):
135353        (audio::-webkit-media-controls-embedded-panel, video::-webkit-media-controls-embedded-panel):
135354        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
135355        (video::-webkit-media-controls-button-group-container, audio::-webkit-media-controls-button-group-container):
135356        (video::-webkit-media-controls-fullscreen-time-display-container, audio::-webkit-media-controls-fullscreen-time-display-container):
135357        (video::-webkit-media-controls-time-display-container, audio::-webkit-media-controls-time-display-container):
135358        (video::-webkit-media-controls-fullscreen-play-button, audio::-webkit-media-controls-fullscreen-play-button):
135359        (video::-webkit-media-controls-play-button, audio::-webkit-media-controls-play-button):
135360        (audio::-webkit-media-controls-fullscreen-timeline-container, video::-webkit-media-controls-fullscreen-timeline-container):
135361        (video::-webkit-media-controls-timeline-container, audio::-webkit-media-controls-timeline-container):
135362        (audio::-webkit-media-controls-fullscreen-current-time-display, video::-webkit-media-controls-fullscreen-current-time-display):
135363        (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
135364        (video::-webkit-media-controls-fullscreen-time-remaining-display, audio::-webkit-media-controls-fullscreen-time-remaining-display):
135365        (video::-webkit-media-controls-time-remaining-display, audio::-webkit-media-controls-time-remaining-display):
135366        (audio::-webkit-media-controls-fullscreen-timeline, video::-webkit-media-controls-fullscreen-timeline):
135367        (video::-webkit-media-controls-fullscreen-fullscreen-button, audio::-webkit-media-controls-fullscreen-fullscreen-button):
135368        (video::-webkit-media-controls-fullscreen-button):
135369        (audio::-webkit-media-controls-fullscreen-button):
135370        (audio::-webkit-media-controls-audio-mute-button):
135371        (video::-webkit-media-controls-audio-mute-button):
135372        (audio::-webkit-media-controls-volume-slider-container):
135373        (video::-webkit-media-controls-volume-slider-container):
135374        (audio::-webkit-media-controls-volume-slider):
135375        (video::-webkit-media-controls-volume-slider):
135376        (video::-webkit-media-controls-fullscreen-button-divider, audio::-webkit-media-controls-fullscreen-button-divider):
135377        (video::-webkit-media-controls-fullscreen-button-container, video::-webkit-media-controls-play-button-container, audio::-webkit-media-controls-fullscreen-button-container, audio::-webkit-media-controls-play-button-container):
135378        * css/mediaControlsBlackBerryFullscreen.css: Added.
135379        (body:-webkit-full-page-media):
135380        (video:-webkit-full-screen::-webkit-media-controls-embedded-panel):
135381        (video:-webkit-full-screen::-webkit-media-controls-panel):
135382        (video:-webkit-full-screen::-webkit-media-controls-button-group-container):
135383        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-display-container):
135384        (video:-webkit-full-screen::-webkit-media-controls-time-display-container):
135385        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-play-button):
135386        (video:-webkit-full-screen::-webkit-media-controls-play-button):
135387        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline-container):
135388        (video:-webkit-full-screen::-webkit-media-controls-timeline-container):
135389        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-current-time-display):
135390        (video:-webkit-full-screen::-webkit-media-controls-current-time-display):
135391        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-time-remaining-display):
135392        (video:-webkit-full-screen::-webkit-media-controls-time-remaining-display):
135393        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-timeline):
135394        (video:-webkit-full-screen::-webkit-media-controls-timeline):
135395        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-fullscreen-button):
135396        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button):
135397        (video:-webkit-full-screen::-webkit-media-controls-audio-mute-button):
135398        (video:-webkit-full-screen::-webkit-media-controls-volume-slider-container):
135399        (video:-webkit-full-screen::-webkit-media-controls-volume-slider):
135400        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-divider):
135401        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container, video:-webkit-full-screen::-webkit-media-controls-play-button-container):
135402        (video:-webkit-full-screen::-webkit-media-controls-fullscreen-button-container):
135403        (video:-webkit-full-screen::-webkit-media-controls-play-button-container):
135404        (video:-webkit-full-screen::-webkit-media-controls-placeholder):
135405        * html/shadow/MediaControlsBlackBerry.cpp: Added.
135406        (WebCore):
135407        (WebCore::MediaControlButtonGroupContainerElement::MediaControlButtonGroupContainerElement):
135408        (WebCore::MediaControlButtonGroupContainerElement::create):
135409        (WebCore::MediaControlButtonGroupContainerElement::shadowPseudoId):
135410        (WebCore::MediaControlTimeDisplayContainerElement::MediaControlTimeDisplayContainerElement):
135411        (WebCore::MediaControlTimeDisplayContainerElement::create):
135412        (WebCore::MediaControlTimeDisplayContainerElement::shadowPseudoId):
135413        (WebCore::MediaControlEmbeddedPanelElement::MediaControlEmbeddedPanelElement):
135414        (WebCore::MediaControlEmbeddedPanelElement::create):
135415        (WebCore::MediaControlEmbeddedPanelElement::shadowPseudoId):
135416        (WebCore::MediaControlEmbeddedPanelElement::startDrag):
135417        (WebCore::MediaControlEmbeddedPanelElement::continueDrag):
135418        (WebCore::MediaControlEmbeddedPanelElement::endDrag):
135419        (WebCore::MediaControlEmbeddedPanelElement::startTimer):
135420        (WebCore::MediaControlEmbeddedPanelElement::stopTimer):
135421        (WebCore::MediaControlEmbeddedPanelElement::transitionTimerFired):
135422        (WebCore::MediaControlEmbeddedPanelElement::setPosition):
135423        (WebCore::MediaControlEmbeddedPanelElement::resetPosition):
135424        (WebCore::MediaControlEmbeddedPanelElement::makeOpaque):
135425        (WebCore::MediaControlEmbeddedPanelElement::makeTransparent):
135426        (WebCore::MediaControlEmbeddedPanelElement::defaultEventHandler):
135427        (WebCore::MediaControlEmbeddedPanelElement::setCanBeDragged):
135428        (WebCore::MediaControlEmbeddedPanelElement::setIsDisplayed):
135429        (WebCore::MediaControlFullscreenTimeDisplayContainerElement::MediaControlFullscreenTimeDisplayContainerElement):
135430        (WebCore::MediaControlFullscreenTimeDisplayContainerElement::create):
135431        (WebCore::MediaControlFullscreenTimeDisplayContainerElement::shadowPseudoId):
135432        (WebCore::MediaControlFullscreenButtonContainerElement::MediaControlFullscreenButtonContainerElement):
135433        (WebCore::MediaControlFullscreenButtonContainerElement::create):
135434        (WebCore::MediaControlFullscreenButtonContainerElement::shadowPseudoId):
135435        (WebCore::MediaControlFullscreenButtonDividerElement::MediaControlFullscreenButtonDividerElement):
135436        (WebCore::MediaControlFullscreenButtonDividerElement::create):
135437        (WebCore::MediaControlFullscreenButtonDividerElement::shadowPseudoId):
135438        (WebCore::MediaControlPlayButtonContainerElement::MediaControlPlayButtonContainerElement):
135439        (WebCore::MediaControlPlayButtonContainerElement::create):
135440        (WebCore::MediaControlPlayButtonContainerElement::shadowPseudoId):
135441        (WebCore::MediaControlPlaceholderElement::MediaControlPlaceholderElement):
135442        (WebCore::MediaControlPlaceholderElement::create):
135443        (WebCore::MediaControlPlaceholderElement::shadowPseudoId):
135444        (WebCore::MediaControlFullscreenPlayButtonElement::MediaControlFullscreenPlayButtonElement):
135445        (WebCore::MediaControlFullscreenPlayButtonElement::create):
135446        (WebCore::MediaControlFullscreenPlayButtonElement::defaultEventHandler):
135447        (WebCore::MediaControlFullscreenPlayButtonElement::updateDisplayType):
135448        (WebCore::MediaControlFullscreenPlayButtonElement::shadowPseudoId):
135449        (WebCore::MediaControlFullscreenFullscreenButtonElement::MediaControlFullscreenFullscreenButtonElement):
135450        (WebCore::MediaControlFullscreenFullscreenButtonElement::create):
135451        (WebCore::MediaControlFullscreenFullscreenButtonElement::defaultEventHandler):
135452        (WebCore::MediaControlFullscreenFullscreenButtonElement::shadowPseudoId):
135453        (WebCore::MediaControlFullscreenFullscreenButtonElement::setIsFullscreen):
135454        (WebCore::MediaControlFullscreenTimelineContainerElement::MediaControlFullscreenTimelineContainerElement):
135455        (WebCore::MediaControlFullscreenTimelineContainerElement::create):
135456        (WebCore::MediaControlFullscreenTimelineContainerElement::shadowPseudoId):
135457        (WebCore::MediaControlFullscreenTimelineElement::MediaControlFullscreenTimelineElement):
135458        (WebCore::MediaControlFullscreenTimelineElement::create):
135459        (WebCore::MediaControlFullscreenTimelineElement::defaultEventHandler):
135460        (WebCore::MediaControlFullscreenTimelineElement::willRespondToMouseClickEvents):
135461        (WebCore::MediaControlFullscreenTimelineElement::setPosition):
135462        (WebCore::MediaControlFullscreenTimelineElement::setDuration):
135463        (WebCore::MediaControlFullscreenTimelineElement::shadowPseudoId):
135464        (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::create):
135465        (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::MediaControlFullscreenTimeRemainingDisplayElement):
135466        (WebCore::MediaControlFullscreenTimeRemainingDisplayElement::shadowPseudoId):
135467        (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::create):
135468        (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::MediaControlFullscreenCurrentTimeDisplayElement):
135469        (WebCore::MediaControlFullscreenCurrentTimeDisplayElement::shadowPseudoId):
135470        (WebCore::MediaControlAudioMuteButtonElement::MediaControlAudioMuteButtonElement):
135471        (WebCore::MediaControlAudioMuteButtonElement::create):
135472        (WebCore::MediaControlAudioMuteButtonElement::defaultEventHandler):
135473        (WebCore::MediaControlAudioMuteButtonElement::shadowPseudoId):
135474        (WebCore::MediaControlsBlackBerry::MediaControlsBlackBerry):
135475        (WebCore::MediaControls::create):
135476        (WebCore::MediaControlsBlackBerry::createControls):
135477        (WebCore::MediaControlsBlackBerry::setMediaController):
135478        (WebCore::MediaControlsBlackBerry::show):
135479        (WebCore::MediaControlsBlackBerry::hide):
135480        (WebCore::MediaControlsBlackBerry::makeOpaque):
135481        (WebCore::MediaControlsBlackBerry::makeTransparent):
135482        (WebCore::MediaControlsBlackBerry::reset):
135483        (WebCore::MediaControlsBlackBerry::bufferingProgressed):
135484        (WebCore::MediaControlsBlackBerry::playbackStarted):
135485        (WebCore::MediaControlsBlackBerry::playbackProgressed):
135486        (WebCore::MediaControlsBlackBerry::playbackStopped):
135487        (WebCore::MediaControlsBlackBerry::updateCurrentTimeDisplay):
135488        (WebCore::MediaControlsBlackBerry::reportedError):
135489        (WebCore::MediaControlsBlackBerry::changedMute):
135490        (WebCore::MediaControlsBlackBerry::enteredFullscreen):
135491        (WebCore::MediaControlsBlackBerry::exitedFullscreen):
135492        (WebCore::MediaControlsBlackBerry::showVolumeSlider):
135493        (WebCore::MediaControlsBlackBerry::toggleVolumeSlider):
135494        (WebCore::MediaControlsBlackBerry::shouldHideControls):
135495        * html/shadow/MediaControlsBlackBerry.h: Added.
135496        (WebCore):
135497        (MediaControlButtonGroupContainerElement):
135498        (MediaControlTimeDisplayContainerElement):
135499        (MediaControlEmbeddedPanelElement):
135500        (MediaControlFullscreenTimeDisplayContainerElement):
135501        (MediaControlFullscreenButtonContainerElement):
135502        (MediaControlFullscreenButtonDividerElement):
135503        (MediaControlPlayButtonContainerElement):
135504        (MediaControlPlaceholderElement):
135505        (MediaControlFullscreenPlayButtonElement):
135506        (MediaControlFullscreenFullscreenButtonElement):
135507        (MediaControlFullscreenTimelineContainerElement):
135508        (MediaControlFullscreenTimelineElement):
135509        (MediaControlFullscreenTimeRemainingDisplayElement):
135510        (MediaControlFullscreenCurrentTimeDisplayElement):
135511        (MediaControlAudioMuteButtonElement):
135512        (MediaControlsBlackBerry):
135513        * platform/blackberry/RenderThemeBlackBerry.cpp:
135514        (WebCore):
135515        (WebCore::RenderThemeBlackBerry::extraFullScreenStyleSheet):
135516        (WebCore::RenderThemeBlackBerry::adjustSliderThumbSize):
135517        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
135518        (WebCore::RenderThemeBlackBerry::adjustMediaControlStyle):
135519        (WebCore::RenderThemeBlackBerry::adjustSliderTrackStyle):
135520        (WebCore::RenderThemeBlackBerry::paintMediaRewindButton):
135521        (WebCore::RenderThemeBlackBerry::paintMediaMuteButton):
135522        (WebCore::RenderThemeBlackBerry::paintMediaFullscreenButton):
135523        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
135524        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
135525        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
135526        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderThumb):
135527        * platform/blackberry/RenderThemeBlackBerry.h:
135528        (WebCore::RenderThemeBlackBerry::usesVerticalVolumeSlider):
135529        (RenderThemeBlackBerry):
135530
1355312012-12-12  Dominic Mazzoni  <dmazzoni@google.com>
135532
135533        AX: textUnderElement should consider alt text, but skip links and controls
135534        https://bugs.webkit.org/show_bug.cgi?id=101650
135535
135536        Reviewed by Chris Fleizach.
135537
135538        Getting inner text from an element now ignores focusable descendants and
135539        containers, but uses alternative text.
135540
135541        The computation of textUnderElement is now recursive. This caused a crash
135542        if it was called by accessibilityIsIgnored during object destruction,
135543        so I simplified accessibilityIsIgnored to not actually call textUnderElement,
135544        without affecting test results, which should actually be a decent speedup.
135545
135546        Test: accessibility/button-title-uses-inner-img-alt.html
135547        Test: accessibility/focusable-div.html
135548
135549        * accessibility/AccessibilityNodeObject.cpp:
135550        (WebCore):
135551        (WebCore::shouldUseAccessiblityObjectInnerText):
135552        (WebCore::AccessibilityNodeObject::textUnderElement):
135553        * accessibility/AccessibilityRenderObject.cpp:
135554        (WebCore::AccessibilityRenderObject::textUnderElement):
135555
1355562012-12-12  Eberhard Graether  <egraether@google.com>
135557
135558        Web Inspector: follow up to r136974: handle visibility shortcut in keydown event of ElementsTreeOutline.element
135559        https://bugs.webkit.org/show_bug.cgi?id=104694
135560
135561        Reviewed by Pavel Feldman.
135562
135563        Typing H in the StylesSidebarPane caused toggling of the selected elements visibility. This change only handles
135564        the H keydown when the ElementsPanel is focused.
135565
135566        No new tests.
135567
135568        * inspector/front-end/ElementsTreeOutline.js:
135569        (WebInspector.ElementsTreeOutline):
135570        (WebInspector.ElementsTreeOutline.prototype._onkeydown):
135571        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
135572        * inspector/front-end/KeyboardShortcut.js:
135573        (WebInspector.KeyboardShortcut.hasNoModifiers):
135574
1355752012-12-12  Philip Rogers  <pdr@google.com>
135576
135577        Fix target element handling in SVGSMILElement.
135578        https://bugs.webkit.org/show_bug.cgi?id=104495
135579
135580        Reviewed by Abhishek Arya.
135581
135582        This patch fixes two bugs that led to stale target elements in SVGSMILElement.
135583
135584        r122449 changed the <use> code to call removeAllElementReferencesForTarget to rebuild
135585        dependent <use> trees. This contained a bug where element references would be incorrectly
135586        removed. removeAllElementReferencesForTarget calls svgAttributeChanged(href) on all
135587        references, which can then re-add the references back. The bug is that
135588        removeAllElementReferencesForTarget removes a newly-added reference as the last step.
135589
135590        r136906 changed targetElement() to no longer be lazily resolved so any changes to an
135591        animation's href attribute needed to be tracked. r136906 refactored the code but did not
135592        fix a bug where animation elements not in the document would not react to
135593        svgAttributeChanged(href).
135594
135595        The combination of these two bugs allowed stale targetElement references to exist. A
135596        target element could be removed from the document without dependent animation elements
135597        receiving a notification (bug 1) and not reacting to notifications they received (bug 2).
135598
135599        This patch updates SVGUseElement::buildInstanceTree to only rebuild (not remove) the
135600        elements referencing the target by adding rebuildAllElementReferencesForTarget. This patch
135601        also updates SVGSMILElement to correctly react to svgAttributeChanged() notifications
135602        for href changes even when not in the document.
135603
135604        Test: svg/animations/target-condition-crash.html
135605
135606        * svg/SVGDocumentExtensions.cpp:
135607        (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
135608        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
135609
135610            Refactored so that we can notify element references to update without removing
135611            references.
135612
135613        * svg/SVGDocumentExtensions.h:
135614        (SVGDocumentExtensions):
135615        * svg/SVGElement.cpp:
135616        (WebCore::SVGElement::~SVGElement):
135617        (WebCore::SVGElement::removedFrom):
135618
135619            Similar to SVGUseElement::buildShadowAndInstanceTree, this callsite was updated to
135620            only rebuild references instead of removing them.
135621
135622        (WebCore::SVGElement::attributeChanged):
135623        * svg/SVGUseElement.cpp:
135624        (WebCore::SVGUseElement::buildShadowAndInstanceTree):
135625
135626            The comment indicates we just want to rebuild (not remove). This callsite has been
135627            updated to use the new rebuildAllElementReferencesForTarget function.
135628
135629        (WebCore::SVGUseElement::buildInstanceTree):
135630        * svg/animation/SVGSMILElement.cpp:
135631        (WebCore::SVGSMILElement::buildPendingResource):
135632        (WebCore::SVGSMILElement::removedFrom):
135633
135634            Previously, if an SVGSMILElement was not in the document, only clearResourceReferences
135635            would be called when the target changed. This has been refactored to reset the
135636            targetElement if the element needs to build resources but is not in the document.
135637
135638            I looked at moving this into clearResourceReferences (since the target element might
135639            be considered a reference) but we run into issues calling pure virtual functions in
135640            the destructor. The current implementation seemed the cleanest.
135641
135642            SVGSMILElement::removedFrom was cleaned up to match the rest of the code. The comment
135643            in removedFrom appears to be stale since disconnectConditions does not kill the element.
135644
135645        (WebCore::SVGSMILElement::svgAttributeChanged):
135646
135647            Removed the bad !inDocument() checks that broke href change notifications.
135648
135649        (WebCore::SVGSMILElement::setTargetElement):
135650
1356512012-12-12  Alpha Lam  <hclam@chromium.org>
135652
135653        [chromium] Minimize memcpy for encoded image data in ImageFrameGenerator
135654        https://bugs.webkit.org/show_bug.cgi?id=103797
135655
135656        Reviewed by Stephen White.
135657
135658        Added a new class ThreadSafeDataTransport to help transporting data in
135659        SharedBuffer from one thread to another. This class is designed to minimize
135660        thread contention and memory copy.
135661
135662        It is implemented using a data queue. New data segments are copied into
135663        this queue. The queue is then consolidated with existing data when user
135664        requests access to the final SharedBuffer.
135665
135666        Memory is copied into and out of the queue but this approach avoid
135667        copying the entire SharedBuffer.
135668
135669        ImageFrameGenerator is now using this class for data transport between
135670        threads.
135671
135672        Unit tests in ThreadSafeDataTransportTest. Also existing ImageFrameGeneratorTest passes.
135673
135674        * WebCore.gypi:
135675        * platform/graphics/chromium/ImageFrameGenerator.cpp:
135676        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
135677        (WebCore::ImageFrameGenerator::setData):
135678        (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
135679        Added logic to skip decoding if there's no new data.
135680        (WebCore::ImageFrameGenerator::decode):
135681        * platform/graphics/chromium/ImageFrameGenerator.h:
135682        (ImageFrameGenerator):
135683        * platform/graphics/chromium/ThreadSafeDataTransport.cpp: Added.
135684        (WebCore):
135685        (WebCore::ThreadSafeDataTransport::ThreadSafeDataTransport):
135686        (WebCore::ThreadSafeDataTransport::~ThreadSafeDataTransport):
135687        (WebCore::ThreadSafeDataTransport::setData):
135688        (WebCore::ThreadSafeDataTransport::data):
135689        (WebCore::ThreadSafeDataTransport::hasNewData):
135690        * platform/graphics/chromium/ThreadSafeDataTransport.h: Added.
135691        (WebCore):
135692        (ThreadSafeDataTransport):
135693
1356942012-12-12  Roger Fong  <roger_fong@apple.com>
135695
135696        Enable VIDEO_TRACK on Windows.
135697        https://bugs.webkit.org/show_bug.cgi?id=104706.
135698
135699        Reviewed by Timothy Horton.
135700
135701        Enable VIDEO_TRACK on Windows and update project property files.
135702
135703        * DerivedSources.cpp:
135704        * WebCore.vcproj/WebCore.vcproj:
135705        * WebCore.vcproj/WebCoreCommon.vsprops:
135706        * WebCore.vcproj/copyForwardingHeaders.cmd:
135707        * bindings/generic/RuntimeEnabledFeatures.cpp:
135708        (WebCore):
135709        * html/HTMLElementsAllInOne.cpp:
135710        * rendering/RenderingAllInOne.cpp:
135711
1357122012-12-12  No'am Rosenthal  <noam.rosenthal@nokia.com>
135713
135714        REGRESSION: r137481 caused a build failure with GTK
135715        https://bugs.webkit.org/show_bug.cgi?id=104826
135716
135717        Unreviewed build fix.
135718
135719        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
135720        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
135721            Brought back #if PLATFORM(QT) to surround the dynamic_cast call.
135722
1357232012-12-12  Dean Jackson  <dino@apple.com>
135724
135725        Use CAFilter rather than CIFilter
135726        https://bugs.webkit.org/show_bug.cgi?id=104759
135727
135728        Reviewed by Tim Horton.
135729
135730        In order to get better performance in the simple CSS filter
135731        cases, use CAFilter rather than CIFilter. This involved
135732        defining some platform-specific values inside
135733        PlatformCALayerMac to expose CAFilter.
135734
135735        The great side-effect is that this brings our hardware
135736        output much closer to our software filters. For example,
135737        on a random location in the hue-rotate test.
135738
135739        Software: rgb(255, 148, 16)
135740        Hardware before: rgb(255, 204, 50)
135741        Hardware after: rgb(255, 165, 33)
135742
135743        Still some improvement needed, but better.
135744
135745        Covered by existing tests.
135746
135747        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
135748        (CAColorMatrix): New structure to hold 5x4 matrix representing a color operation.
135749        (PlatformCALayer::setFilters): Use CAFilter objects rather than CIFilter.
135750
1357512012-12-12  No'am Rosenthal  <noam@webkit.org>
135752
135753        [Texmap] Consolidate redundant code for ARB_RECT texture
135754        https://bugs.webkit.org/show_bug.cgi?id=104705
135755
135756        Reviewed by Kenneth Rohde Christiansen.
135757
135758        Instead of having a whole different function for RECT textures,
135759        keep the existing functions and pass a flag that tells
135760        TextureMapperGL to use the non-normalized coordinates and the
135761        RECT shaders.
135762
135763        No new tests, refactor only. Tested to not break WebGL on
135764        Qt-Mac.
135765
135766        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
135767        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
135768        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
135769        * platform/graphics/texmap/TextureMapperGL.cpp:
135770        (WebCore::TextureMapperGL::drawQuad):
135771            Compensate for rect textures in drawQuad.
135772
135773        (WebCore::TextureMapperGL::drawBorder):
135774        (WebCore::TextureMapperGL::drawTexture):
135775        (WebCore::TextureMapperGL::drawSolidColor):
135776        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
135777        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
135778            Pass flags to TextureMapperGL::drawQuad instead of a bool.
135779
135780        * platform/graphics/texmap/TextureMapperGL.h:
135781        (TextureMapperGL):
135782        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
135783        (WebCore::getShaderSpec):
135784        * platform/graphics/texmap/TextureMapperShaderManager.h:
135785        (TextureMapperShaderProgram):
135786            Compensate for the texture-size in the vertex
135787            shader instead of in the fragment shader.
135788
1357892012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>
135790
135791        Unreviewed, rolling out r137491.
135792        http://trac.webkit.org/changeset/137491
135793        https://bugs.webkit.org/show_bug.cgi?id=104828
135794
135795        broke the builtd (Requested by rfong on #webkit).
135796
135797        * DerivedSources.cpp:
135798        * WebCore.vcproj/WebCore.vcproj:
135799        * WebCore.vcproj/WebCoreCommon.vsprops:
135800        * WebCore.vcproj/copyForwardingHeaders.cmd:
135801        * bindings/generic/RuntimeEnabledFeatures.cpp:
135802        (WebCore):
135803        * html/HTMLElementsAllInOne.cpp:
135804        * platform/NotImplemented.cpp:
135805        (WebCore):
135806        (WebCore::notImplementedLoggingChannel):
135807        * rendering/RenderingAllInOne.cpp:
135808
1358092012-12-12  John J. Barton  <johnjbarton@chromium.org>
135810
135811        Web Inspector: remove protocol-externs.js temp file after compile-front-end.py
135812        https://bugs.webkit.org/show_bug.cgi?id=98799
135813
135814        Reviewed by Vsevolod Vlasov.
135815
135816        Add os.system rm for protocol-externs.js to the end of the compile script
135817
135818        * inspector/compile-front-end.py:
135819
1358202012-12-12  Robert Hogan  <robert@webkit.org>
135821
135822        White space between inline blocks should be affected by word-spacing property
135823        https://bugs.webkit.org/show_bug.cgi?id=69072
135824
135825        Reviewed by Levi Weintraub.
135826
135827        Allow word-spacing to get added to the spaces between inline blocks in placeBoxesInInlineDirection by setting
135828        needsWordSpacing to true each time an inline block is encountered. This ensures that the next space encountered
135829        in a text run will be treated as a space between two words and will get word-spacing added to it if it is present
135830        in the style.
135831
135832        Tests: fast/css/word-spacing-between-blocks.html
135833               fast/css/word-spacing-between-inlines.html
135834
135835        * rendering/InlineFlowBox.cpp:
135836        (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
135837
1358382012-12-12  Xianzhu Wang  <wangxianzhu@chromium.org>
135839
135840        Pre-painting should not paint out-of-view fixed position elements
135841        https://bugs.webkit.org/show_bug.cgi?id=104724
135842
135843        Reviewed by James Robinson.
135844
135845        Test: ManualTests/compositing/fixed-position-out-of-view-scroll-prepaint.html
135846
135847        * rendering/RenderLayer.cpp:
135848        (WebCore::RenderLayer::paintLayer): Don't paint out-of-view fixed position elements.
135849
1358502012-12-11  Roger Fong  <roger_fong@apple.com>
135851
135852        Enable VIDEO_TRACK on Windows.
135853        https://bugs.webkit.org/show_bug.cgi?id=104706.
135854
135855        Reviewed by Timothy Horton.
135856
135857        Enable VIDEO_TRACK on Windows and update project property files.
135858
135859        * DerivedSources.cpp:
135860        * WebCore.vcproj/WebCore.vcproj:
135861        * WebCore.vcproj/WebCoreCommon.vsprops:
135862        * WebCore.vcproj/copyForwardingHeaders.cmd:
135863        * bindings/generic/RuntimeEnabledFeatures.cpp:
135864        (WebCore):
135865        * html/HTMLElementsAllInOne.cpp:
135866        * rendering/RenderingAllInOne.cpp:
135867
1358682012-12-12  James Simonsen  <simonjam@chromium.org>
135869
135870        [Resource Timing] Failed resources shouldn't be recorded in the buffer
135871        https://bugs.webkit.org/show_bug.cgi?id=104762
135872
135873        Reviewed by Tony Gentilcore.
135874
135875        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_failures.html
135876
135877        * loader/cache/CachedResourceLoader.cpp:
135878        (WebCore::CachedResourceLoader::loadDone):
135879
1358802012-12-12  Martin Robinson  <mrobinson@igalia.com>
135881
135882        [GTK] Add authentication support to DRT and fix exposed issues in the libsoup backend
135883        https://bugs.webkit.org/show_bug.cgi?id=104285
135884
135885        Reviewed by Gustavo Noronha Silva.
135886
135887        Fix issues in the libsoup networking backend that were causing test
135888        failures.
135889
135890        No new tests. This patch unskips authentication tests.
135891
135892        * platform/network/soup/ResourceHandleSoup.cpp:
135893        (WebCore::isAuthenticationFailureStatusCode): Added this helper to catch authentication status codes
135894        and use it everywhere.
135895        (WebCore::applyAuthenticationToRequest): Use an early return instead of an if-statement
135896        and instead of always using manually specified credentials, apply those found in the session
135897        storage as well. Instead of applying the credentials to firstRequest always, accept the request
135898        as a parameter, so this method can be properly used with redirects.
135899        (WebCore::restartedCallback): Instead of creating the KURL directly from soup_uri_to_string
135900        use soupURIToKURL, which preserves the password from the SoupURI. soup_uri_to_string doesn't
135901        include the password. When calling applyAuthenticationToRequest update the new request. Before
135902        applyAuthenticationToRequest always updated the firstRequest. Do not call willSendRequest for
135903        instances when this method is called for authentication handling. willSendRequest should only
135904        be called for server-side redirects.
135905        (WebCore::createSoupRequestAndMessageForHandle): Use soup_requester_request_uri instead of
135906        soup_requester_request. Request::soupURI properly creates a SoupURI with non-null empty strings
135907        when either the username and password are empty.  A null username or password does not trigger
135908        the URI-embedded credential override in SoupAuthenticationManager within libsoup. This is important
135909        because sometimes either the username or password might empty for a request, but the other
135910        part of the credential should still override the per-session credential storage.
135911        (WebCore::ResourceHandle::start): We don't need to clear the username and password from the
135912        internal data structure any longer. These need to be cleared in the CFNetwork backend because
135913        it prevents the same failed per-request credentials from being used over and over again. In our
135914        case we don't use these members during didReceiveAuthenticationChallenge, so this isn't an issue.
135915        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Don't look at the per-request
135916        m_user/m_pass pair here any longer. We use these when initially creating a request, so we don't
135917        want to re-use them if they fail.
135918        * platform/network/soup/ResourceRequest.h:
135919        (ResourceRequest): Rename urlStringForSoup to soupURI.
135920        * platform/network/soup/ResourceRequestSoup.cpp:
135921        (WebCore::ResourceRequest::soupURI): Instead of returning a string for the soup-bound URL
135922        return a SoupURI that properly embeds empty usernames and passwords.
135923
1359242012-12-12  Alexey Proskuryakov  <ap@apple.com>
135925
135926        Make LOG() work in WebProcess and NetworkProcess
135927        https://bugs.webkit.org/show_bug.cgi?id=104718
135928
135929        Reviewed by Tim Horton.
135930
135931        Split initialization function into a new InitializeLogging.h file, because it's
135932        needed in WebKit, but cannot be included along with WebKit version of this file.
135933        We'd have a confilct between LOG_CHANNEL_PREFIX definitions if we tried.
135934
135935        * WebCore.xcodeproj/project.pbxproj: Make Logging.h a project header, and
135936        InitializeLogging.h a private one.
135937
135938        * GNUmakefile.list.am:
135939        * Target.pri:
135940        * platform/InitializeLogging.h: Added.
135941        * platform/Logging.h:
135942
135943        * platform/blackberry/LoggingBlackBerry.cpp:
135944        * platform/efl/LoggingEfl.cpp:
135945        * platform/gtk/LoggingGtk.cpp:
135946        * platform/mac/LoggingMac.mm:
135947        * platform/qt/LoggingQt.cpp:
135948        * platform/win/LoggingWin.cpp:
135949        * platform/wx/LoggingWx.cpp:
135950        Include InitializeLogging.h where this function is implemented.
135951
135952        * platform/NotImplemented.h:
135953        * platform/NotImplemented.cpp: Added.
135954        Changed to not include WebCore's Logging.h in the header, because NotImplemented.h
135955        is used in WebKits, which have incompatibe logging headers.
135956
1359572012-12-12  Chris Fleizach  <cfleizach@apple.com>
135958
135959        AX: aria-busy should be exposed everywhere, not just on live regions
135960        https://bugs.webkit.org/show_bug.cgi?id=104814
135961
135962        Reviewed by Anders Carlsson.
135963
135964        The aria-busy attribute should be exposed on all elements. 
135965        This isn't entirely clear in the ARIA spec, but that will be fixed with
135966        ARIA1.1 (ISSUE-538).
135967
135968        Existing tests that dump attributes cover this new behavior.
135969
135970        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
135971        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
135972
1359732012-12-12  Gavin Peters  <gavinp@chromium.org>
135974
135975        [chromium] Add destructor to WebPrerender
135976        https://bugs.webkit.org/show_bug.cgi?id=104820
135977
135978        Reviewed by James Robinson.
135979
135980        When making WebPrerender default constructible and assignable, the destructor should have been moved out of WEBKIT_IMPLEMENTATION.
135981
135982        Existing WebKit unit tests should test this, as do chromium browser tests.
135983
135984        * platform/chromium/support/WebPrerender.cpp:
135985        (WebKit::WebPrerender::toPrerender):
135986        (WebKit::WebPrerender::reset):
135987
1359882012-12-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
135989
135990        [Qt] Animation fails on large layers
135991        https://bugs.webkit.org/show_bug.cgi?id=104538
135992
135993        Reviewed by Noam Rosenthal.
135994
135995        The backing tiles had no upper limit defined for the non-GL backend, which could cause them
135996        to allocate pixmaps widier or higher than what the underlying graphics systems can handle.
135997
135998        On top of that GraphicsLayerTextureMapper::prepareBackingStore() would allocate an intermediate
135999        pixmap the size of the dirty rect, which would at least on the first paint be the size of the
136000        entire layer, again causing allocation of pixmaps with dimensions outside of platform bounds.
136001
136002        This patch introduces a limit to the size of image buffer tiles, and adds an alternative path
136003        for painting where the GraphicsLayer paints directly to the tile instead of over an intermediate
136004        pixmap. This alternative path can also be useful later to minimize the amount of pixel copying
136005        happening in full repaints.
136006
136007        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
136008        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
136009        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
136010        (GraphicsLayerTextureMapper):
136011        * platform/graphics/texmap/TextureMapper.cpp:
136012        (WebCore::BitmapTexture::updateContents):
136013        * platform/graphics/texmap/TextureMapper.h:
136014        (BitmapTexture):
136015        (TextureMapper):
136016        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
136017        (WebCore::TextureMapperTile::updateContents):
136018        (WebCore::TextureMapperTiledBackingStore::updateContents):
136019        * platform/graphics/texmap/TextureMapperBackingStore.h:
136020        (TextureMapperTile):
136021        (TextureMapperTiledBackingStore):
136022        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
136023        (WebCore::BitmapTextureImageBuffer::updateContents):
136024        (WebCore::TextureMapperImageBuffer::maxTextureSize):
136025        * platform/graphics/texmap/TextureMapperImageBuffer.h:
136026        (BitmapTextureImageBuffer):
136027
1360282012-12-12  Aaron Colwell  <acolwell@chromium.org>
136029
136030        Remove MediaSource 'ended' to 'open' transition when seeking.
136031        https://bugs.webkit.org/show_bug.cgi?id=104583
136032
136033        Reviewed by Eric Carlson.
136034
136035        Remove the 'ended' to 'open' transition on a seek.
136036
136037        No new tests. The following tests were updated to reflect the new behavior.
136038          http/tests/media/media-source/video-media-source-seek.html
136039          http/tests/media/media-source/video-media-source-state-changes.html
136040
136041        * html/HTMLMediaElement.cpp:
136042        (WebCore::HTMLMediaElement::seek):
136043
1360442012-12-12  Julien Chaffraix  <jchaffraix@webkit.org>
136045
136046        [CSS Grid Layout] Implement CSS parsing and handling for min-content and max-content
136047        https://bugs.webkit.org/show_bug.cgi?id=104747
136048
136049        Reviewed by Alexis Menard.
136050
136051        This change adds -webkit-min-content and -webkit-max-content to our <track-breadth> parsing.
136052        The rendering is not plugged in and will probably depend on bug 103311.
136053
136054        Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
136055               fast/css-grid-layout/grid-columns-rows-get-set.html:
136056
136057        * css/CSSParser.cpp:
136058        (WebCore::CSSParser::parseGridBreadth):
136059        * css/StyleResolver.cpp:
136060        (WebCore::createGridTrackBreadth):
136061        Straight-forward extension of the new code. We were already serializing back properly
136062        so no need to touch CSSComputedStyleDeclaration.
136063
1360642012-12-12  Ryosuke Niwa  <rniwa@webkit.org>
136065
136066        Copying text with ruby inserts new lines around rt elements
136067        https://bugs.webkit.org/show_bug.cgi?id=104765
136068
136069        Reviewed by Dan Bernstein.
136070
136071        Don't emit new lines before and after rt.
136072
136073        Test: editing/pasteboard/copy-paste-ruby-text.html
136074
136075        * editing/TextIterator.cpp:
136076        (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
136077
1360782012-12-12  Krzysztof Czech  <k.czech@samsung.com>
136079
136080        [EFL] Possibility to turn off accessibility feature for WebKit-EFL.
136081        https://bugs.webkit.org/show_bug.cgi?id=103036
136082
136083        Reviewed by Laszlo Gombos.
136084
136085        Guard dependencies for accessibility (ATK), so that they can be turned off.
136086
136087        No new tests as there is no new functionality.
136088
136089        * PlatformEfl.cmake:
136090        * accessibility/AccessibilityObject.cpp:
136091        (WebCore::AccessibilityObject::AccessibilityObject):
136092        * accessibility/AccessibilityObject.h:
136093        (AccessibilityObject):
136094
1360952012-12-12  Justin Novosad  <junov@google.com>
136096
136097        Use render box background over border draw strategy in cases with background-image
136098        https://bugs.webkit.org/show_bug.cgi?id=103409
136099
136100        Reviewed by Simon Fraser.
136101
136102        The BackgroundOverBorderBleedAvoidance mode was not being used in
136103        cases where the background is an opaque image. It was also not
136104        being used in cases with multiple layers. The multiple layer
136105        case is now safe with respect to color bleeding if the top layer
136106        is opaque, thank to the recent addition of layer occlusion culling
136107        in r135629.
136108
136109        No new tests. Testing already covered by the following tests:
136110        fast/backgrounds/background-opaque-images-over-color.html
136111        fast/backgrounds/gradient-background-leakage-2.html
136112
136113        * rendering/RenderBox.cpp:
136114        (WebCore::RenderBox::determineBackgroundBleedAvoidance):
136115        (WebCore::RenderBox::backgroundHasOpaqueTopLayer):
136116        * rendering/RenderBox.h:
136117        (RenderBox):
136118
1361192012-12-12  Ilya Tikhonovsky  <loislo@chromium.org>
136120
136121        Web Inspector: instrument static parts of RenderBlock and RenderBox
136122        https://bugs.webkit.org/show_bug.cgi?id=104660
136123
136124        Reviewed by Yury Semikhatsky.
136125
136126        Plain vanilla instrumentation.
136127
136128        * dom/WebCoreMemoryInstrumentation.cpp:
136129        (WebCore):
136130        (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
136131        * dom/WebCoreMemoryInstrumentation.h:
136132        (WebCoreMemoryTypes):
136133        (WebCoreMemoryInstrumentation):
136134        (WebCore):
136135        * inspector/InspectorMemoryAgent.cpp:
136136        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
136137        * rendering/RenderBlock.cpp:
136138        (WebCore::RenderBlock::reportStaticMembersMemoryUsage):
136139        (WebCore):
136140        * rendering/RenderBlock.h:
136141        (RenderBlock):
136142        * rendering/RenderBox.cpp:
136143        (WebCore::RenderBox::reportStaticMembersMemoryUsage):
136144        (WebCore):
136145        * rendering/RenderBox.h:
136146        (RenderBox):
136147
1361482012-12-12  Ilya Tikhonovsky  <loislo@chromium.org>
136149
136150        Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
136151        https://bugs.webkit.org/show_bug.cgi?id=104796
136152
136153        Reviewed by Yury Semikhatsky.
136154
136155        It was not a good idea to introduce a fake root MemoryObjectInfo.
136156        It makes a problem when we visit an object without its own MemoryObjectType.
136157
136158        Example: RenderBox has a global pointer to a hash map.
136159        HashMap doesn't have its own object type because it is a generic container.
136160        It will inherit object type from the fake root memory object info.
136161        The same could happen for another container in another class with other MemoryObjectType.
136162
136163        This fact forces me to create custom process method for root objects
136164        because they need to have their own MemoryObjectInfo with customisable memory object type.
136165
136166        Drive by fix: InstrumentedPointer* was replaced with Wrapper* because actually it is using
136167        for instrumented and not instrumented object classes.
136168
136169        * inspector/MemoryInstrumentationImpl.cpp:
136170        (WebCore::MemoryInstrumentationImpl::processDeferredObjects):
136171        (WebCore::MemoryInstrumentationImpl::deferObject):
136172        (WebCore::MemoryInstrumentationImpl::reportMemoryUsage):
136173        * inspector/MemoryInstrumentationImpl.h:
136174        (MemoryInstrumentationImpl):
136175
1361762012-12-12  Kondapally Kalyan  <kalyan.kondapally@intel.com>
136177
136178        [EFL [WebGL] [Wk2] Resizing the canvas breaks WebGL.
136179        https://bugs.webkit.org/show_bug.cgi?id=104535.
136180
136181        Reviewed by Kenneth Rohde Christiansen.
136182
136183        GraphicsContext3DEfl does not re-create the surface on canvas resize, this
136184        conflicted with the logic in coordinated graphics Layer.
136185        CoordinatedGraphicsLayer checks for GraphicsSurfaceToken to decide if the surface
136186        in UI-Process should be recreated or not. With this
136187        patch we also check for size of the platform Layer.
136188
136189        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
136190        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
136191        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
136192        (GraphicsContext3DPrivate::didResizeCanvas):
136193        (GraphicsContext3DPrivate::platformLayerSize):
136194        * platform/graphics/efl/GraphicsContext3DPrivate.h:
136195        (GraphicsContext3DPrivate):
136196
1361972012-12-12  Antoine Quint  <graouts@apple.com>
136198
136199        Web Inspector: Crash in InspectorDOMAgent::pushNodePathToFrontend when inspecting document with CSS generated content
136200        https://bugs.webkit.org/show_bug.cgi?id=104780
136201
136202        Reviewed by Pavel Feldman.
136203
136204        The pushNodePathForRenderLayerToFrontend() method added to InspectorDOMAgent naively assumed
136205        that all RenderLayers have a Node associated to them. However, in the case of CSS generated
136206        content, that will not be the case and we would call into pushNodePathToFrontend() with a 0
136207        parameter that would hit the first ASSERT in this method. We're now checking that we indeed
136208        have an associated node for the provided RenderLayer and return 0 in case we don't, without
136209        calling into pushNodePathToFrontend().
136210
136211        Test: inspector-protocol/layer-tree-generated-content.html
136212
136213        * inspector/InspectorDOMAgent.cpp:
136214        (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend):
136215
1362162012-12-12  Alexander Pavlov  <apavlov@chromium.org>
136217
136218        Web Inspector: [Crash] Clear cached stylesheet rules in InspectorStyleSheet::deleteRule()
136219        https://bugs.webkit.org/show_bug.cgi?id=104806
136220
136221        Reviewed by Vsevolod Vlasov.
136222
136223        Cached rules (m_flatRules) should get cleared whenever a rule is deleted.
136224
136225        Test: inspector/styles/undo-add-rule-crash.html
136226
136227        * inspector/InspectorStyleSheet.cpp:
136228        (WebCore::InspectorStyleSheet::deleteRule):
136229
1362302012-12-12  Stephen White  <senorblanco@chromium.org>
136231
136232        Unreviewed, rolling out r136975.
136233        http://trac.webkit.org/changeset/136975
136234        https://bugs.webkit.org/show_bug.cgi?id=90405
136235
136236        Correctness issues.
136237
136238        * dom/Element.cpp:
136239        * dom/Element.h:
136240        (Element):
136241        * dom/ElementRareData.h:
136242        (ElementRareData):
136243        (WebCore::ElementRareData::ElementRareData):
136244        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
136245        (WebCore::BitmapTextureImageBuffer::applyFilters):
136246        * rendering/FilterEffectRenderer.cpp:
136247        (WebCore::createCustomFilterEffect):
136248        (WebCore::FilterEffectRenderer::buildReferenceFilter):
136249        (WebCore::FilterEffectRenderer::build):
136250        * rendering/FilterEffectRenderer.h:
136251        (FilterEffectRenderer):
136252        * rendering/RenderLayer.cpp:
136253        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
136254        * rendering/RenderObject.cpp:
136255        (WebCore::RenderObject::willBeDestroyed):
136256        * rendering/svg/RenderSVGResourceContainer.cpp:
136257        (WebCore::RenderSVGResourceContainer::registerResource):
136258        * rendering/svg/SVGResources.cpp:
136259        (WebCore::SVGResources::buildCachedResources):
136260        * rendering/svg/SVGResourcesCache.cpp:
136261        (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
136262        (WebCore::SVGResourcesCache::clientStyleChanged):
136263        (WebCore::SVGResourcesCache::resourceDestroyed):
136264        * svg/SVGDocumentExtensions.cpp:
136265        (WebCore::SVGDocumentExtensions::addPendingResource):
136266        (WebCore::SVGDocumentExtensions::isElementPendingResources):
136267        (WebCore::SVGDocumentExtensions::isElementPendingResource):
136268        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
136269        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
136270        * svg/SVGDocumentExtensions.h:
136271        (WebCore):
136272        (SVGDocumentExtensions):
136273        * svg/SVGElement.cpp:
136274        (WebCore::SVGElement::hasPendingResources):
136275        (WebCore):
136276        (WebCore::SVGElement::setHasPendingResources):
136277        (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
136278        * svg/SVGElement.h:
136279        (SVGElement):
136280        (WebCore::SVGElement::buildPendingResource):
136281        * svg/SVGElementRareData.h:
136282        (WebCore::SVGElementRareData::SVGElementRareData):
136283        (WebCore::SVGElementRareData::hasPendingResources):
136284        (WebCore::SVGElementRareData::setHasPendingResources):
136285        (SVGElementRareData):
136286        * svg/SVGStyledElement.cpp:
136287        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
136288
1362892012-12-12  Stephen White  <senorblanco@chromium.org>
136290
136291        Unreviewed, rolling out r137022.
136292        http://trac.webkit.org/changeset/137022
136293
136294        Precursor to rollout of 136975.
136295
136296        * rendering/svg/SVGResources.cpp:
136297        (WebCore::SVGResources::buildCachedResources):
136298
1362992012-12-12  Stephen White  <senorblanco@chromium.org>
136300
136301        Unreviewed, rolling out r137027.
136302        http://trac.webkit.org/changeset/137027
136303
136304        Precursor to rollout of 136975.
136305
136306        * dom/ElementRareData.h:
136307        (ElementRareData):
136308
1363092012-12-12  Alexei Filippov  <alph@chromium.org>
136310
136311        Web Inspector: add memory used by memory allocator itself to NMI
136312        https://bugs.webkit.org/show_bug.cgi?id=93372
136313
136314        Make native memory instrumentation report memory retained
136315        for the memory allocator internal purposes.
136316
136317        Reviewed by Yury Semikhatsky.
136318
136319        * inspector/front-end/NativeMemorySnapshotView.js:
136320        (WebInspector.MemoryBlockViewProperties._initialize):
136321        * platform/chromium/MemoryUsageSupportChromium.cpp:
136322        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
136323
1363242012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>
136325
136326        Unreviewed, rolling out r137438.
136327        http://trac.webkit.org/changeset/137438
136328        https://bugs.webkit.org/show_bug.cgi?id=104798
136329
136330        assertion reached when removing tile (Requested by tmpsantos
136331        on #webkit).
136332
136333        * page/Frame.cpp:
136334        (WebCore::Frame::setTiledBackingStoreEnabled):
136335        * platform/graphics/TiledBackingStore.cpp:
136336        (WebCore::TiledBackingStore::TiledBackingStore):
136337        (WebCore::TiledBackingStore::setTileCreationDelay):
136338        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
136339        (WebCore::TiledBackingStore::updateTileBuffers):
136340        (WebCore::TiledBackingStore::createTiles):
136341        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
136342        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
136343        (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
136344        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
136345        (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
136346        * platform/graphics/TiledBackingStore.h:
136347        (TiledBackingStore):
136348        (WebCore::TiledBackingStore::tileCreationDelay):
136349        * platform/graphics/TiledBackingStoreClient.h:
136350        (WebCore::TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed):
136351
1363522012-12-12  Csaba Osztrogonác  <ossy@webkit.org>
136353
136354        [Qt] Unreviewed typo fix after r137446.
136355
136356        * WebCore.pri:
136357
1363582012-12-12  Zan Dobersek  <zandobersek@gmail.com>
136359
136360        [GTK] Remove the last of unnecessary configuration options in configure.ac
136361        https://bugs.webkit.org/show_bug.cgi?id=104793
136362
136363        Reviewed by Martin Robinson.
136364
136365        Remove the feature define overriding that's based on the automake variables which are
136366        not set anymore due to the corresponding configuration options being removed.
136367
136368        No new tests - no new functionality.
136369
136370        * GNUmakefile.am:
136371
1363722012-12-12  Simon Hausmann  <simon.hausmann@digia.com>
136373
136374        [Qt] Fix build on Mac
136375
136376        Reviewed by Csaba Osztrogonác.
136377
136378        On Mac OS X we have sqlite as a system library available.
136379
136380        * WebCore.pri:
136381
1363822012-12-12  Simon Hausmann  <simon.hausmann@digia.com>
136383
136384        [Qt] Fix linkage against SQLite
136385        https://bugs.webkit.org/show_bug.cgi?id=104781
136386
136387        Reviewed by Csaba Osztrogonác.
136388
136389        Detect SQLite either through pkg-config, from the SQLITE3SRCDIR
136390        environment variable or from qtbase via a qt5.git build. Bail out early
136391        with an error message if neither option applies.
136392
136393        This removes the usage of $$QT.core.sources and the dependency on Qt's
136394        system-sqlite configure setting. We should always favour a system
136395        library over a copy in Qt.
136396
136397        * Target.pri:
136398        * WebCore.pri:
136399
1364002012-12-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
136401
136402        [TexMap] Uninitialized m_context pointer in TextureMapper
136403        https://bugs.webkit.org/show_bug.cgi?id=104785
136404
136405        Reviewed by Kenneth Rohde Christiansen.
136406
136407        * platform/graphics/texmap/TextureMapper.cpp:
136408        (WebCore::TextureMapper::TextureMapper):
136409        * platform/graphics/texmap/TextureMapperGL.cpp:
136410        (WebCore::TextureMapperGL::TextureMapperGL):
136411
1364122012-12-12  Tommy Widenflycht  <tommyw@google.com>
136413
136414        MediaStream API: Change the data channel descriptor pattern to a handler pattern
136415        https://bugs.webkit.org/show_bug.cgi?id=104543
136416
136417        Reviewed by Kent Tamura.
136418
136419        In short the code is refactured to use the Handler/Client pattern (see RTCPeerConnectionHandler)
136420        instead of the Descriptor pattern.
136421        This will fix lifetime/memory/code structure issues in the chromium port.
136422
136423        Existing tests cover this patch.
136424
136425        * CMakeLists.txt:
136426        * GNUmakefile.list.am:
136427        * Modules/mediastream/RTCDataChannel.cpp:
136428        (WebCore::RTCDataChannel::create):
136429        (WebCore::RTCDataChannel::RTCDataChannel):
136430        (WebCore::RTCDataChannel::~RTCDataChannel):
136431        (WebCore::RTCDataChannel::label):
136432        (WebCore::RTCDataChannel::reliable):
136433        (WebCore::RTCDataChannel::readyState):
136434        (WebCore::RTCDataChannel::bufferedAmount):
136435        (WebCore::RTCDataChannel::send):
136436        (WebCore::RTCDataChannel::close):
136437        (WebCore::RTCDataChannel::didChangeReadyState):
136438        (WebCore::RTCDataChannel::didReceiveStringData):
136439        (WebCore::RTCDataChannel::didReceiveRawData):
136440        (WebCore::RTCDataChannel::didDetectError):
136441        (WebCore::RTCDataChannel::stop):
136442        * Modules/mediastream/RTCDataChannel.h:
136443        (WebCore):
136444        (RTCDataChannel):
136445        * Modules/mediastream/RTCPeerConnection.cpp:
136446        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
136447        * Modules/mediastream/RTCPeerConnection.h:
136448        (RTCPeerConnection):
136449        * WebCore.gypi:
136450        * platform/chromium/support/WebRTCDataChannel.cpp: Removed.
136451        * platform/mediastream/RTCDataChannelDescriptor.h: Removed.
136452        * platform/mediastream/RTCDataChannelHandler.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
136453        (WebCore):
136454        (RTCDataChannelHandler):
136455        (WebCore::RTCDataChannelHandler::~RTCDataChannelHandler):
136456        * platform/mediastream/RTCDataChannelHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/RTCDataChannelDescriptor.cpp.
136457        (WebCore):
136458        (RTCDataChannelHandlerClient):
136459        (WebCore::RTCDataChannelHandlerClient::~RTCDataChannelHandlerClient):
136460        * platform/mediastream/RTCPeerConnectionHandler.cpp:
136461        (WebCore):
136462        (WebCore::RTCPeerConnectionHandler::create):
136463        * platform/mediastream/RTCPeerConnectionHandler.h:
136464        (WebCore):
136465        (RTCPeerConnectionHandler):
136466        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
136467        (WebCore):
136468        (RTCPeerConnectionHandlerClient):
136469        * platform/mediastream/chromium/RTCDataChannelHandlerChromium.cpp: Added.
136470        (WebCore):
136471        (WebCore::RTCDataChannelHandlerChromium::create):
136472        (WebCore::RTCDataChannelHandlerChromium::RTCDataChannelHandlerChromium):
136473        (WebCore::RTCDataChannelHandlerChromium::~RTCDataChannelHandlerChromium):
136474        (WebCore::RTCDataChannelHandlerChromium::setClient):
136475        (WebCore::RTCDataChannelHandlerChromium::label):
136476        (WebCore::RTCDataChannelHandlerChromium::isReliable):
136477        (WebCore::RTCDataChannelHandlerChromium::bufferedAmount):
136478        (WebCore::RTCDataChannelHandlerChromium::sendStringData):
136479        (WebCore::RTCDataChannelHandlerChromium::sendRawData):
136480        (WebCore::RTCDataChannelHandlerChromium::close):
136481        (WebCore::RTCDataChannelHandlerChromium::didChangeReadyState):
136482        (WebCore::RTCDataChannelHandlerChromium::didReceiveStringData):
136483        (WebCore::RTCDataChannelHandlerChromium::didReceiveRawData):
136484        (WebCore::RTCDataChannelHandlerChromium::didDetectError):
136485        * platform/mediastream/chromium/RTCDataChannelHandlerChromium.h: Added.
136486        (WebCore):
136487        (RTCDataChannelHandlerChromium):
136488        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
136489        (WebCore::RTCPeerConnectionHandlerChromium::createDataChannel):
136490        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
136491        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
136492        (WebCore):
136493        (RTCPeerConnectionHandlerChromium):
136494
1364952012-12-12  Huang Dongsung  <luxtella@company100.net>
136496
136497        Coordinated Graphics: Refactor TiledBackingStore code in CoordinatedGraphicsLayer.
136498        https://bugs.webkit.org/show_bug.cgi?id=103959
136499
136500        Reviewed by Kenneth Rohde Christiansen.
136501
136502        TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop() is used when class
136503        methods cannot be called asynchronously by client. Updates of tiles are
136504        committed as soon as all the events in event queue have been processed.
136505        After this patch Frame sets m_commitTileUpdatesOnIdleEventLoop to true.
136506
136507        In addition, remove TiledBackingStoreClient::tiledBackingStoreUpdatesAllowed()
136508        which was introduced for Coordinated Graphics.
136509
136510        Refactoring covered by existing tests.
136511
136512        * page/Frame.cpp:
136513        (WebCore::Frame::setTiledBackingStoreEnabled):
136514        * platform/graphics/TiledBackingStore.cpp:
136515        (WebCore::TiledBackingStore::TiledBackingStore):
136516        (WebCore::TiledBackingStore::setTrajectoryVector):
136517          Separate setting a trajectory vector from coverWithTilesIfNeeded().
136518        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
136519        (WebCore::TiledBackingStore::updateTileBuffers):
136520        (WebCore::TiledBackingStore::createTiles):
136521        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended):
136522        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
136523        (WebCore::TiledBackingStore::tileBufferUpdateTimerFired):
136524        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
136525        (WebCore::TiledBackingStore::backingStoreUpdateTimerFired):
136526        * platform/graphics/TiledBackingStore.h:
136527        (TiledBackingStore):
136528        (WebCore::TiledBackingStore::setCommitTileUpdatesOnIdleEventLoop):
136529        * platform/graphics/TiledBackingStoreClient.h:
136530        (WebCore::TiledBackingStoreClient::tiledBackingStoreHasPendingTileCreation):
136531            If TiledBackingStore does not create all tiles, TiledBackingStore
136532            notifies a client of needing to create tiles more, when
136533            m_commitTileUpdatesOnIdleEventLoop is false.
136534
1365352012-12-11  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
136536
136537        [Qt] Fix the inspector not showing up on Windows
136538        https://bugs.webkit.org/show_bug.cgi?id=104677
136539
136540        Reviewed by Simon Hausmann.
136541
136542        * Target.pri:
136543
1365442012-11-29  Yury Semikhatsky  <yurys@chromium.org>
136545
136546        Web Inspector: Heap snapshot crashes on any page in MacOS Canary
136547        https://bugs.webkit.org/show_bug.cgi?id=103076
136548
136549        Reviewed by Adam Barth.
136550
136551        Provide global object name resolver to the heap profiler. The callback allows
136552        to safely retrieve document URL to be used as a label for corresponding global
136553        object in the heap snapshot.
136554
136555        Test: inspector-protocol/take-heap-snapshot.html
136556
136557        * bindings/v8/ScriptProfiler.cpp:
136558        (WebCore):
136559        (WebCore::ScriptProfiler::takeHeapSnapshot):
136560
1365612012-12-12  Sheriff Bot  <webkit.review.bot@gmail.com>
136562
136563        Unreviewed, rolling out r137428.
136564        http://trac.webkit.org/changeset/137428
136565        https://bugs.webkit.org/show_bug.cgi?id=104776
136566
136567        It broke the build everywhere (Requested by Ossy on #webkit).
136568
136569        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
136570        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
136571        * platform/graphics/texmap/TextureMapperGL.cpp:
136572        (WebCore::TextureMapperGL::drawQuad):
136573        (WebCore::TextureMapperGL::drawBorder):
136574        (WebCore::TextureMapperGL::drawTexture):
136575        (WebCore):
136576        (WebCore::TextureMapperGL::drawTextureRectangleARB):
136577        (WebCore::TextureMapperGL::drawSolidColor):
136578        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
136579        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
136580        * platform/graphics/texmap/TextureMapperGL.h:
136581        (TextureMapperGL):
136582        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
136583        (WebCore::getShaderSpec):
136584        * platform/graphics/texmap/TextureMapperShaderManager.h:
136585        (TextureMapperShaderProgram):
136586
1365872012-12-12  Martin Robinson  <mrobinson@igalia.com>
136588
136589        Web inspector prints a warning about "Debug" not being localized
136590        https://bugs.webkit.org/show_bug.cgi?id=104679
136591
136592        Reviewed by Vsevolod Vlasov.
136593
136594        Add a missing localization entry for the "Debug" string which is used in the web
136595        inspector front-end. This prevents warnings about a missing localized version
136596        of the word "Debug" and allows it to be properly localized.
136597
136598        * English.lproj/localizedStrings.js: Add "Debug"
136599
1366002012-12-12  Shinya Kawanaka  <shinyak@chromium.org>
136601
136602        [Shadow DOM] Implement HTMLShadowElement::olderShadowRoot
136603        https://bugs.webkit.org/show_bug.cgi?id=104218
136604
136605        Reviewed by Hajime Morita.
136606
136607        Implements HTMLShadowElement::olderShadowRoot, which returns the ShadowRoot the HTMLShadowElement is assigned to.
136608        When such ShadowRoot does not exist, 0 is returned.
136609
136610        Test: fast/dom/shadow/olderShadowRoot-in-shadowelement.html
136611
136612        * dom/ElementShadow.cpp:
136613        (WebCore::ElementShadow::ensureDistributionFromDocument): Ensures distribution of this ElementShadow and
136614        all of the parent TreeScope distribution. This function will be shared for Bug 104345.
136615        (WebCore):
136616        * dom/ElementShadow.h:
136617        (ElementShadow):
136618        * html/shadow/HTMLShadowElement.cpp:
136619        (WebCore::HTMLShadowElement::olderShadowRoot):
136620        (WebCore):
136621        * html/shadow/HTMLShadowElement.h:
136622        * html/shadow/HTMLShadowElement.idl:
136623
1366242012-12-12  No'am Rosenthal  <noam@webkit.org>
136625
136626        [Texmap] Consolidate redundant code for ARB_RECT texture
136627        https://bugs.webkit.org/show_bug.cgi?id=104705
136628
136629        Reviewed by Kenneth Rohde Christiansen.
136630
136631        Instead of having a whole different function for RECT textures,
136632        keep the existing functions and pass a flag that tells
136633        TextureMapperGL to use the non-normalized coordinates and the
136634        RECT shaders.
136635
136636        No new tests, refactor only. Tested to not break WebGL on
136637        Qt-Mac.
136638
136639        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
136640        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
136641        * platform/graphics/texmap/TextureMapperGL.cpp:
136642        (WebCore::TextureMapperGL::drawQuad):
136643            Compensate for rect textures in drawQuad.
136644
136645        (WebCore::TextureMapperGL::drawBorder):
136646        (WebCore::TextureMapperGL::drawTexture):
136647        (WebCore::TextureMapperGL::drawSolidColor):
136648        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
136649        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
136650            Pass flags to TextureMapperGL::drawQuad instead of a bool.
136651
136652        * platform/graphics/texmap/TextureMapperGL.h:
136653        (TextureMapperGL):
136654        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
136655        (WebCore::getShaderSpec):
136656        * platform/graphics/texmap/TextureMapperShaderManager.h:
136657        (TextureMapperShaderProgram):
136658            Compensate for the texture-size in the vertex
136659            shader instead of in the fragment shader.
136660
1366612012-12-11  Hayato Ito  <hayato@chromium.org>
136662
136663        REGRESSION(r137408): breaks chromium's browser tests which use WebKitShadowRoot (Requested by hayato on #webkit).
136664        https://bugs.webkit.org/show_bug.cgi?id=104770
136665
136666        Unreviewed, build fix.
136667
136668        * dom/ShadowRoot.idl:
136669        * page/DOMWindow.idl:
136670
1366712012-12-11  Sheriff Bot  <webkit.review.bot@gmail.com>
136672
136673        Unreviewed, rolling out r137333, r137344, r137364, and
136674        r137377.
136675        http://trac.webkit.org/changeset/137333
136676        http://trac.webkit.org/changeset/137344
136677        http://trac.webkit.org/changeset/137364
136678        http://trac.webkit.org/changeset/137377
136679        https://bugs.webkit.org/show_bug.cgi?id=104771
136680
136681        Caused a raft of browser_test failures in Chromium (Requested
136682        by aklein on #webkit).
136683
136684        * loader/DocumentLoader.cpp:
136685        (WebCore::DocumentLoader::setRequest):
136686        (WebCore::DocumentLoader::subresource):
136687        (WebCore::DocumentLoader::addSubresourceLoader):
136688        (WebCore::DocumentLoader::removeSubresourceLoader):
136689        (WebCore::DocumentLoader::startLoadingMainResource):
136690        * loader/MainResourceLoader.cpp:
136691        (WebCore::MainResourceLoader::MainResourceLoader):
136692        (WebCore::MainResourceLoader::~MainResourceLoader):
136693        (WebCore::MainResourceLoader::receivedError):
136694        (WebCore::MainResourceLoader::willCancel):
136695        (WebCore::MainResourceLoader::didCancel):
136696        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
136697        (WebCore::MainResourceLoader::addData):
136698        (WebCore::MainResourceLoader::willSendRequest):
136699        (WebCore::MainResourceLoader::continueAfterContentPolicy):
136700        (WebCore::MainResourceLoader::didReceiveResponse):
136701        (WebCore::MainResourceLoader::didReceiveData):
136702        (WebCore::MainResourceLoader::didFinishLoading):
136703        (WebCore::MainResourceLoader::didFail):
136704        (WebCore::MainResourceLoader::reportMemoryUsage):
136705        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
136706        (WebCore::MainResourceLoader::loadNow):
136707        (WebCore):
136708        (WebCore::MainResourceLoader::load):
136709        (WebCore::MainResourceLoader::setDefersLoading):
136710        * loader/MainResourceLoader.h:
136711        (MainResourceLoader):
136712        * loader/ResourceLoader.cpp:
136713        (WebCore::ResourceLoader::willSendRequest):
136714        * loader/ResourceLoader.h:
136715        (ResourceLoader):
136716        (WebCore::ResourceLoader::defersLoading):
136717        * loader/SubresourceLoader.cpp:
136718        (WebCore::SubresourceLoader::willSendRequest):
136719        * loader/appcache/ApplicationCacheHost.cpp:
136720        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
136721        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
136722        * loader/cache/CachedRawResource.cpp:
136723        (WebCore::CachedRawResource::willSendRequest):
136724        * loader/cache/CachedResourceLoader.cpp:
136725        (WebCore::CachedResourceLoader::loadDone):
136726        * loader/mac/DocumentLoaderMac.cpp:
136727        (WebCore::DocumentLoader::schedule):
136728        (WebCore::DocumentLoader::unschedule):
136729
1367302012-12-11  Kentaro Hara  <haraken@chromium.org>
136731
136732        Unreviewed, rolling out r137398.
136733        http://trac.webkit.org/changeset/137398
136734        https://bugs.webkit.org/show_bug.cgi?id=104188
136735
136736        A bunch of webaudio tests hit ASSERTs
136737
136738        * CMakeLists.txt:
136739        * DerivedSources.make:
136740        * DerivedSources.pri:
136741        * GNUmakefile.list.am:
136742        * Modules/webaudio/AudioContext.cpp:
136743        (WebCore::AudioContext::createOfflineContext):
136744        (WebCore):
136745        * Modules/webaudio/AudioContext.h:
136746        (AudioContext):
136747        * Modules/webaudio/DOMWindowWebAudio.idl:
136748        * Modules/webaudio/OfflineAudioContext.cpp: Removed.
136749        * Modules/webaudio/OfflineAudioContext.h: Removed.
136750        * Modules/webaudio/OfflineAudioContext.idl: Removed.
136751        * WebCore.gypi:
136752        * WebCore.xcodeproj/project.pbxproj:
136753        * bindings/generic/RuntimeEnabledFeatures.h:
136754        * bindings/js/JSAudioContextCustom.cpp:
136755        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
136756        * bindings/v8/custom/V8AudioContextCustom.cpp:
136757        (WebCore::V8AudioContext::constructorCallbackCustom):
136758
1367592012-12-11  Shinya Kawanaka  <shinyak@chromium.org>
136760
136761        [Shadow DOM] registering InsertionPoints to ShadowRoot should work out of a document.
136762        https://bugs.webkit.org/show_bug.cgi?id=104346
136763
136764        Reviewed by Hajime Morita.
136765
136766        We need to register InsertionPoints even if ShadowRoot is out of Document, since distribution should work
136767        out of Document, too.
136768
136769        Instead of checking isInDocument(), we have to make sure InsertionPoint and an element which InsertionPoint
136770        inserted into have the same treescope.
136771
136772        Tests: fast/dom/shadow/has-content-elements.html
136773               fast/dom/shadow/has-shadow-insertion-point.html
136774
136775        * html/shadow/InsertionPoint.cpp:
136776        (WebCore::InsertionPoint::insertedInto):
136777        (WebCore::InsertionPoint::removedFrom):
136778
1367792012-12-11  Takashi Sakamoto  <tasak@google.com>
136780
136781        Text nodes in shadow roots don't inherit style properly
136782        https://bugs.webkit.org/show_bug.cgi?id=101116
136783
136784        Reviewed by Hajime Morita.
136785
136786        Use NodeRenderingContext to resolve styles of text nodes.
136787        If text nodes are direct children of shadow roots, the text nodes
136788        should be inherited styles from their shadow hosts.
136789        But if reset-style-inheritance flag is true, the text nodes should
136790        not be inherited. And if text nodes are distributed nodes,
136791        we have to check whether their insertion point's
136792        reset-style-inheritance.
136793        c.f. shadow dom spec is:
136794        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
136795
136796        Test: fast/dom/shadow/text-node-in-shadow.html
136797
136798        * css/StyleResolver.cpp:
136799        (WebCore::StyleResolver::styleForElement):
136800        Modified to use defaultStyleForElement if the given element has
136801        no parent style.
136802        (WebCore::StyleResolver::initForStyleResolve):
136803        Removed shouldResetStyleInheritance, because now NodeRenderingContext
136804        resetStyleInheritance() takes care of reset-style-inheritance of
136805        both shadow roots and insertion points.
136806        (WebCore::StyleResolver::defaultStyleForElement):
136807        Added to create a default style for elements.
136808        (WebCore):
136809        (WebCore::StyleResolver::styleForText):
136810        Use NodeRenderingContext to find the parent node for style from the
136811        given text node. If no parent node is found or reset-style-inheritance
136812        is true, returns a default style (i.e. empty render style).
136813        Otherwise, just returns the found node's style.
136814        * css/StyleResolver.h:
136815        (StyleResolver):
136816        * dom/ComposedShadowTreeWalker.cpp:
136817        (WebCore::ComposedShadowTreeWalker::ParentTraversalDetails::didTraverseInsertionPoint):
136818        Modify to consider insertion point's resetStyleInheritance.
136819        * dom/NodeRenderingContext.cpp:
136820        (WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
136821        Since NodeRenderingContext has already found a parent node for
136822        rendering and style and a parentRenderer is just the found node's
136823        renderer, we have to only check reset-style-inheritance.
136824        If reset, use default style. Otherwise, the parentRenderer's style.
136825        * dom/Text.cpp:
136826        (WebCore::Text::recalcTextStyle):
136827        Use styleForText instead of parentRenderer's styles if the given text
136828        node is a direct child of a shadow root or a direct child of a shadow
136829        host.
136830
1368312012-12-11  Takashi Sakamoto  <tasak@google.com>
136832
136833        Hide HOST_RULE behind SHADOW_DOM flag.
136834        https://bugs.webkit.org/show_bug.cgi?id=102321
136835
136836        Reviewed by Dimitri Glazkov.
136837
136838        @host @-rules are only available when the rules are declared in styles
136839        in shadow dom trees. So if SHADOW_DOM is disabled, we don't need
136840        @host @-rules.
136841
136842        No new tests. Just hide HOST_RULE behind SHADOW_DOM flag.
136843
136844        * css/StyleResolver.h:
136845        Hide "class ShadowRuleHost".
136846        * css/StyleRule.cpp:
136847        (WebCore::StyleRuleBase::reportMemoryUsage):
136848        (WebCore::StyleRuleBase::destroy):
136849        (WebCore::StyleRuleBase::copy):
136850        (WebCore::StyleRuleBase::createCSSOMWrapper):
136851        * css/StyleRule.h:
136852        (StyleRuleBase):
136853        Hide "Host" type and isHostRule.
136854        (StyleRuleHost):
136855        Hide "class StyleRuleHost".
136856        * css/StyleSheetContents.cpp:
136857        (WebCore::childRulesHaveFailedOrCanceledSubresources):
136858
1368592012-12-11  Dominic Mazzoni  <dmazzoni@google.com>
136860
136861        AX: accessibilityIsIgnored should avoid computing textUnderElement
136862        https://bugs.webkit.org/show_bug.cgi?id=104688
136863
136864        Reviewed by Chris Fleizach.
136865
136866        Simplify the logic in accessibilityIsIgnored without affecting
136867        the results of any tests. In particular, avoid expensive calls to
136868        textUnderElement.
136869
136870        Covered by existing tests.
136871
136872        * accessibility/AccessibilityNodeObject.cpp:
136873        (WebCore::AccessibilityNodeObject::isGenericFocusableElement):
136874        * accessibility/AccessibilityRenderObject.cpp:
136875        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
136876
1368772012-12-11  Kentaro Hara  <haraken@chromium.org>
136878
136879        [V8] Reachable event listeners on image elements can be collected in a minor DOM GC
136880        https://bugs.webkit.org/show_bug.cgi?id=104734
136881
136882        Reviewed by Kenneth Russell.
136883
136884        A major DOM GC treats image elements specially. In
136885        V8GCController::opaqueRootForGC(), a major DOM GC puts image elements
136886        that have pending activities into the same object group of their document.
136887        This guarantees that image elements that have pending activities
136888        are not garbage collected in the major DOM GC.
136889
136890        This patch adds the same special handling to a minor DOM GC to guarantee
136891        the same thing in the minor DOM GC too.
136892
136893        In long-term, we might want to remove the special handling by making
136894        image elements active DOM nodes.
136895
136896        Test: Manually confirmed that all characters in
136897        http://alteredqualia.com/three/examples/webgl_animation_skinning_tf2.html
136898        are rendered correctly.
136899
136900        * bindings/v8/V8GCController.cpp:
136901        (WebCore::V8GCController::opaqueRootForGC):
136902        (WebCore::gcTree):
136903
1369042012-12-11  Dominic Mazzoni  <dmazzoni@google.com>
136905
136906        AX: Make isActionSupported cross-platform.
136907        https://bugs.webkit.org/show_bug.cgi?id=104681
136908
136909        Reviewed by Chris Fleizach.
136910
136911        Add UserGestureIndicator to increment() and decrement()
136912        so that all accessibility actions are treated as
136913        user actions, not scripted actions.
136914
136915        * accessibility/AccessibilityNodeObject.cpp:
136916        (WebCore::AccessibilityNodeObject::increment):
136917        (WebCore::AccessibilityNodeObject::decrement):
136918
1369192012-12-11  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
136920
136921        Remove conversion to/from float and float division from ImageFrame::setRGBA
136922        https://bugs.webkit.org/show_bug.cgi?id=103693
136923
136924        Reviewed by Brent Fulgham.
136925
136926        Replace floating point operations used for alpha premultiply with fixed point arithmetic
136927        which is basically integer operations. Allows to shave extra couple percent from decoding
136928        images with transparency.
136929
136930        Covered by existing tests.
136931
136932        * platform/image-decoders/ImageDecoder.h:
136933        (ImageFrame):
136934        (WebCore::ImageFrame::fixPointUnsignedMultiply):
136935        (WebCore::ImageFrame::setRGBA):
136936
1369372012-12-11  Kihong Kwon  <kihong.kwon@samsung.com>
136938
136939        Vibration API: IDL type doesn't match implementation type
136940        https://bugs.webkit.org/show_bug.cgi?id=103899
136941
136942        Reviewed by Kentaro Hara.
136943
136944        According to WebIDL, "unsigned long" corresponds to "unsigned" in the platform.
136945        Therefore unsigned long need to be changed to unsigned for the Vibration API.
136946        - Change a parameter type of vibrate function from unsigned long to unsigned.
136947
136948        No new tests, it is covered by exist test.
136949
136950        * Modules/vibration/NavigatorVibration.cpp:
136951        (WebCore::NavigatorVibration::vibrate):
136952        * Modules/vibration/NavigatorVibration.h:
136953        (NavigatorVibration):
136954        * Modules/vibration/Vibration.cpp:
136955        (WebCore::Vibration::vibrate):
136956        * Modules/vibration/Vibration.h:
136957        (Vibration):
136958        * Modules/vibration/VibrationClient.h:
136959        (VibrationClient):
136960        * bindings/js/JSDOMBinding.h:
136961        * bindings/scripts/CodeGeneratorJS.pm:
136962        Remove workaround codes for the Vibration API which is mapped from unsigned long to unsigned long.
136963        It should be mapped from unsigned long to unsigned by WebIDL spec.
136964        (GetNativeVectorInnerType):
136965        * bindings/scripts/test/JS/JSTestObj.cpp:
136966        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
136967        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
136968
1369692012-12-11  Xinazhu Wang  <wangxianzhu@chromium.org>
136970
136971        ScrollingCoordinator::hasVisibleSlowRepaintFixedObject() should exclude out-of-view fixed position elements
136972        https://bugs.webkit.org/show_bug.cgi?id=102543
136973
136974        Let RenderLayerCompositor manage the reasons that fixed position elements are not composited.
136975        Check the reason in ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects(), don't let fixed position layer not composited with explicit reasons cause slow scrolling.
136976
136977        Reviewed by James Robinson.
136978
136979        Test: compositing/layer-creation/fixed-position-out-of-view-scroll-reason.html
136980
136981        * page/scrolling/ScrollingCoordinator.cpp:
136982        (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects): Exclude fixed position elements that are not composited for explicit reasons.
136983        * rendering/RenderLayerCompositor.cpp:
136984        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Manages m_fixedPositionLayerNotCompositedReasonMap.
136985        (WebCore::RenderLayerCompositor::needsToBeComposited):
136986        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
136987        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
136988        * rendering/RenderLayerCompositor.h:
136989        (WebCore::RenderLayerCompositor::fixedPositionLayerNotCompositedReason): Now outputs fixedPositionLayerNotCompositedreason.
136990        (RenderLayerCompositor):
136991
1369922012-12-11  Hayato Ito  <hayato@chromium.org>
136993
136994        [Shadow DOM] Kill ShadowRoot constructor
136995        https://bugs.webkit.org/show_bug.cgi?id=102913
136996
136997        Reviewed by Dimitri Glazkov.
136998
136999        Remove ShadowRoot constructor in favor of Element.webkitCreateShadowRoot().
137000
137001        No new tests. Update existing tests.
137002
137003        * dom/ShadowRoot.idl:
137004        * page/DOMWindow.idl:
137005        * testing/Internals.cpp:
137006        (WebCore::Internals::createShadowRoot):
137007        (WebCore):
137008        * testing/Internals.h:
137009        (Internals):
137010        * testing/Internals.idl:
137011
1370122012-12-11  Antti Koivisto  <antti@apple.com>
137013
137014        Add Element-specific traversal functions
137015        https://bugs.webkit.org/show_bug.cgi?id=104685
137016
137017        Reviewed by Ryosuke Niwa.
137018
137019        In many cases where we use NodeTraversal we really only want Elements. By having
137020        Element specific iteration functions we can tighten the code and make it faster too.
137021
137022        This patch adds ElementTraversal namespace, similar to NodeTraversal. It also switches
137023        bunch of NodeTraversal call sites that obviously only care about elements to using
137024        the new interface.
137025        
137026        This should be a speedup too as we avoid number of branches by not having to look
137027        for children of non-ContainerNodes and by allowing use of ContainerNode specific
137028        accessors.
137029
137030        * accessibility/AccessibilityRenderObject.cpp:
137031        (WebCore::AccessibilityRenderObject::addImageMapChildren):
137032        * css/SelectorChecker.cpp:
137033        (WebCore::linkAttribute):
137034        (WebCore::SelectorChecker::allVisitedStateChanged):
137035        (WebCore::SelectorChecker::visitedStateChanged):
137036        * css/StyleInvalidationAnalysis.cpp:
137037        (WebCore::elementMatchesSelectorScopes):
137038        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
137039        * dom/ContainerNodeAlgorithms.h:
137040        (WebCore::ChildFrameDisconnector::collectDescendant):
137041        * dom/Document.cpp:
137042        (WebCore::Document::buildAccessKeyMap):
137043        (WebCore::Document::updateBaseURL):
137044        (WebCore::Document::processBaseElement):
137045        * dom/DocumentOrderedMap.cpp:
137046        (WebCore::DocumentOrderedMap::get):
137047        * dom/Element.cpp:
137048        (WebCore::Element::firstElementChild):
137049        * dom/Element.h:
137050        (WebCore):
137051        * dom/ElementShadow.cpp:
137052        (WebCore::ElementShadow::collectSelectFeatureSetFrom):
137053        * dom/NodeTraversal.h:
137054        (ElementTraversal):
137055        (WebCore):
137056        (WebCore::ElementTraversal::traverseNextElementTemplate):
137057        (WebCore::ElementTraversal::next):
137058        (WebCore::ElementTraversal::firstWithin):
137059        (WebCore::ElementTraversal::traverseNextElementSkippingChildrenTemplate):
137060        (WebCore::ElementTraversal::nextSkippingChildren):
137061        (NodeTraversal):
137062        * dom/TreeScope.cpp:
137063        (WebCore::TreeScope::labelElementForId):
137064        (WebCore::TreeScope::findAnchor):
137065        * editing/CompositeEditCommand.cpp:
137066        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
137067        * editing/DeleteSelectionCommand.cpp:
137068        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
137069        * editing/FrameSelection.cpp:
137070        (WebCore::scanForForm):
137071        * editing/markup.cpp:
137072        (WebCore::completeURLs):
137073        * html/HTMLFieldSetElement.cpp:
137074        (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
137075        (WebCore::HTMLFieldSetElement::childrenChanged):
137076        (WebCore::HTMLFieldSetElement::legend):
137077        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
137078        * html/HTMLFormElement.cpp:
137079        (WebCore::HTMLFormElement::formElementIndex):
137080        * html/HTMLLabelElement.cpp:
137081        (WebCore::HTMLLabelElement::control):
137082        * html/HTMLLegendElement.cpp:
137083        (WebCore::HTMLLegendElement::associatedControl):
137084        * html/HTMLMapElement.cpp:
137085        (WebCore::HTMLMapElement::mapMouseEvent):
137086        * html/HTMLNameCollection.cpp:
137087        (WebCore::HTMLNameCollection::virtualItemAfter):
137088        * html/HTMLObjectElement.cpp:
137089        (WebCore::HTMLObjectElement::containsJavaApplet):
137090        * html/HTMLSelectElement.cpp:
137091        (WebCore::HTMLSelectElement::recalcListItems):
137092        * html/shadow/ContentDistributor.cpp:
137093        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
137094        * page/FocusController.cpp:
137095        (WebCore::FocusController::findFocusCandidateInContainer):
137096        * rendering/RenderCounter.cpp:
137097        (WebCore::nextInPreOrder):
137098        * svg/SVGSVGElement.cpp:
137099        (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
137100        * svg/SVGStyledElement.cpp:
137101        (WebCore::SVGStyledElement::title):
137102        * svg/SVGUseElement.cpp:
137103        (WebCore::removeDisallowedElementsFromSubtree):
137104        * svg/animation/SMILTimeContainer.cpp:
137105        (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
137106
1371072012-12-11  KyungTae Kim  <ktf.kim@samsung.com>
137108
137109        [soup] Unused parameter in ResourceHandleSoup.cpp
137110        https://bugs.webkit.org/show_bug.cgi?id=104728
137111
137112        Reviewed by Kentaro Hara.
137113
137114        The soupLogPrinter has unused parameter 'logger', 
137115        remove the parameter name to fix 'unused parameter' build warning.
137116
137117        * platform/network/soup/ResourceHandleSoup.cpp:
137118        (WebCore::soupLogPrinter):
137119
1371202012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>
137121
137122        Fixed position out-of-view check is incorrect when page is scaled
137123        https://bugs.webkit.org/show_bug.cgi?id=104303
137124
137125        Reviewed by Kenneth Rohde Christiansen.
137126
137127        Test: compositing/layer-creation/fixed-position-out-of-view-scaled.html
137128              compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html
137129
137130        * rendering/RenderLayerCompositor.cpp:
137131        (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Scale the content rect of the fixed position layer before checking out-of-view.
137132
1371332012-12-11  Chris Rogers  <crogers@google.com>
137134
137135        Implement OfflineAudioContext constructor
137136        https://bugs.webkit.org/show_bug.cgi?id=104188
137137
137138        Reviewed by Kentaro Hara.
137139
137140        The Web Audio layout tests have relied on an undocumented way (in the specification) to render
137141        audio faster than realtime using an OfflineAudioContext.  We want to expose a proper OfflineAudioContext
137142        object and constructor instead of piggybacking off of the normal AudioContext.
137143            
137144        * CMakeLists.txt:
137145        * DerivedSources.make:
137146        * DerivedSources.pri:
137147        * GNUmakefile.list.am:
137148        * Modules/webaudio/AudioContext.cpp:
137149        (WebCore::AudioContext::isSampleRateRangeGood):
137150        * Modules/webaudio/AudioContext.h:
137151        (AudioContext):
137152        * Modules/webaudio/DOMWindowWebAudio.idl:
137153        * Modules/webaudio/OfflineAudioContext.cpp: Added.
137154        (WebCore):
137155        (WebCore::OfflineAudioContext::create):
137156        (WebCore::OfflineAudioContext::OfflineAudioContext):
137157        (WebCore::OfflineAudioContext::~OfflineAudioContext):
137158        * Modules/webaudio/OfflineAudioContext.h: Added.
137159        (WebCore):
137160        (OfflineAudioContext):
137161        * Modules/webaudio/OfflineAudioContext.idl: Added.
137162        * WebCore.gypi:
137163        * WebCore.xcodeproj/project.pbxproj:
137164        * bindings/generic/RuntimeEnabledFeatures.h:
137165        (WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
137166        * bindings/js/JSAudioContextCustom.cpp:
137167        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
137168        * bindings/v8/custom/V8AudioContextCustom.cpp:
137169        (WebCore::V8AudioContext::constructorCallbackCustom):
137170
1371712012-12-11  Jun Jiang  <jun.a.jiang@intel.com>
137172
137173        WebGL: Avoid unnecessary memory copy or conversion in texImage2D and texSubImage2D for HTMLVideoElement
137174        https://bugs.webkit.org/show_bug.cgi?id=102161
137175
137176        Reviewed by Kenneth Russell.
137177
137178        There are several memory copy or conversions in the texImage2D and texSubImage2D for HTMLVideoElement which may be avoided. This patch removes the redundant BackingStore copy if the corresponding Graphics port supports the DontCopyBackingStore behavior. Moreover, it optimizes the AlphaOp if the Image source is from HTMLVideoElement to avoid unnecessary Unmultiply or Premultiply operation in unpack/pack. 
137179
137180        Already covered by current tests. 
137181
137182        * html/canvas/WebGLRenderingContext.cpp:
137183        (WebCore):
137184        (WebCore::WebGLRenderingContext::texImage2DImpl):
137185        (WebCore::WebGLRenderingContext::texImage2D):
137186        (WebCore::WebGLRenderingContext::videoFrameToImage): add a parameter to choose BackingStore copy behavior.
137187        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
137188        (WebCore::WebGLRenderingContext::texSubImage2D):
137189        * html/canvas/WebGLRenderingContext.h:
137190        (WebGLRenderingContext):
137191        * platform/graphics/GraphicsContext3D.cpp:
137192        (WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
137193        * platform/graphics/GraphicsContext3D.h:
137194        (ImageExtractor):
137195        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
137196        (WebCore::GraphicsContext3D::ImageExtractor::imageHtmlDomSource):
137197        * platform/graphics/ImageBuffer.h:
137198        (ImageBuffer):
137199        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
137200        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
137201        * platform/graphics/cairo/ImageBufferCairo.cpp:
137202        (WebCore::ImageBuffer::fastCopyImageMode):
137203        (WebCore):
137204        * platform/graphics/cg/ImageBufferCG.cpp:
137205        (WebCore::ImageBuffer::fastCopyImageMode):
137206        (WebCore):
137207        * platform/graphics/qt/ImageBufferQt.cpp:
137208        (WebCore::ImageBuffer::fastCopyImageMode):
137209        (WebCore):
137210        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
137211        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): optimize the AlphaOp for HTMLVideoElement input.
137212        * platform/graphics/skia/ImageBufferSkia.cpp:
137213        (WebCore::ImageBuffer::fastCopyImageMode):
137214        (WebCore):
137215        * platform/graphics/wince/ImageBufferWinCE.cpp:
137216        (WebCore::ImageBuffer::fastCopyImageMode):
137217        (WebCore):
137218        * platform/graphics/wx/ImageBufferWx.cpp:
137219        (WebCore::ImageBuffer::fastCopyImageMode):
137220        (WebCore):
137221
1372222012-12-11  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
137223
137224        [EFL] Missing implementation of GraphicsContext3DPrivate::platformLayerSize()
137225        https://bugs.webkit.org/show_bug.cgi?id=104726
137226
137227        Reviewed by Kenneth Rohde Christiansen.
137228
137229        Add common implementation of GraphicsContext3DPrivate::platformLayerSize() similar
137230        to Qt version. There is nothing platform specific in Qt version. 
137231
137232        Covered by existing tests.
137233
137234        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
137235        (GraphicsContext3DPrivate::platformLayerSize):
137236        * platform/graphics/efl/GraphicsContext3DPrivate.h:
137237        (GraphicsContext3DPrivate):
137238
1372392012-12-11  No'am Rosenthal  <noam@webkit.org>
137240
137241        [Texmap] Slightly improve readability of the antialias shader
137242        https://bugs.webkit.org/show_bug.cgi?id=104708
137243
137244        Reviewed by Martin Robinson.
137245
137246        Modify the antialiasing shader to include separate function that perform
137247        discrete operations, rather than one big function that repeats the same
137248        operations.
137249
137250        No new tests, readability fix.
137251
137252        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
137253        (WebCore::getShaderSpec):
137254
1372552012-12-11  Tim Horton  <timothy_horton@apple.com>
137256
137257        -webkit-svg-shadow radius changes don't cause children's boundaries to be recomputed
137258        https://bugs.webkit.org/show_bug.cgi?id=104722
137259        <rdar://problem/12821080>
137260
137261        Reviewed by Simon Fraser.
137262
137263        Changes to -webkit-svg-shadow currently cause a relayout of the directly affected renderer
137264        and its parents, but not its children. However, children have the shadow radius
137265        baked into their cached boundaries, so these need to be invalidated.
137266
137267        Test: svg/repaint/repaint-webkit-svg-shadow-container.html
137268
137269        * rendering/RenderObject.h: Expose needsBoundariesUpdate().
137270        * rendering/svg/RenderSVGContainer.h: Expose needsBoundariesUpdate().
137271        * rendering/svg/RenderSVGImage.h: Expose needsBoundariesUpdate().
137272        * rendering/svg/RenderSVGRoot.h: Expose needsBoundariesUpdate().
137273        * rendering/svg/RenderSVGShape.h: Expose needsBoundariesUpdate().
137274        * rendering/svg/SVGRenderSupport.cpp:
137275        (WebCore::SVGRenderSupport::layoutChildren): If the renderer has a shadow and
137276        is in needs of a boundaries update, mark children as needing boundaries updates too.
137277
1372782012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>
137279
137280        Add window.internals.mainThreadScrollReasonsAsText for testing slow scrolling
137281        https://bugs.webkit.org/show_bug.cgi?id=104714
137282
137283        Reviewed by Eric Seidel.
137284
137285        No new tests. Adds test api for bug 102543 and other bugs.
137286
137287        * WebCore.exp.in:
137288        * page/Page.cpp:
137289        (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText): Extracted from ScrollingStateScrollingNode::dumpProperties for layout tests.
137290        (WebCore):
137291        * page/Page.h:
137292        (Page):
137293        * page/scrolling/ScrollingCoordinator.cpp:
137294        (WebCore::ScrollingCoordinator::mainThreadScrollingReasonsAsText):
137295        (WebCore):
137296        * page/scrolling/ScrollingCoordinator.h:
137297        (ScrollingCoordinator):
137298        * page/scrolling/ScrollingStateScrollingNode.cpp:
137299        (WebCore::ScrollingStateScrollingNode::dumpProperties): Moved code for mainThreadScrollingReasons to ScrollingCoordinator.cpp.
137300        * testing/Internals.cpp:
137301        (WebCore::Internals::mainThreadScrollingReasons):
137302        (WebCore):
137303        * testing/Internals.h:
137304        * testing/Internals.idl:
137305
1373062012-12-11  Simon Fraser  <simon.fraser@apple.com>
137307
137308        Enhance the TileCache to cache more tiles
137309        https://bugs.webkit.org/show_bug.cgi?id=104612
137310
137311        Reviewed by Tim Horton.
137312
137313        Add smarts to the TileCache so that it keeps some tiles around
137314        for longer and can prepopulate tiles in to-be-scrolled-to regions.
137315
137316        The new tile management is as follows:
137317        * As before, we expand the visible rect to create a "tile coverage rect"
137318        which is twice the width, and three times the height of the visible rect.
137319        * At the edges, this coverage rect is constrained by them, rather than being
137320        truncated as before (leading to larger initial tile coverage).
137321        * When tiles leave the coverage rect, we keep them around but track
137322        them in cohorts (where a cohort is a set of tiles that left the coverage rect
137323        at the same time).
137324        * If a repaint comes in for a "secondary" tile, we don't paint it, but mark
137325        the tile as being stale. It will get repainted (in full) if it moves back inside
137326        the coverage rect.
137327        * Cohorts are kept around for 2 seconds after they were created. A repeating
137328        1-second timer clears tiles in old cohorts.
137329        * Secondary tiles are pruned if the visible rect changes, or if zooming happens.
137330        * TiledBacking exposes a way to prepopulate a rect with tiles; this is called
137331        when scrolling (e.g. via Home/End keys). Tiles created this way (if outside
137332        the coverage rect) go into a cohort.
137333
137334        * page/FrameView.cpp:
137335        (WebCore::FrameView::requestScrollPositionUpdate): Tell the TiledBacking
137336        to prepopulate some tiles.
137337        * platform/graphics/TiledBacking.h:
137338        (TiledBacking): Add prepopulateRect().
137339        * platform/graphics/ca/mac/TileCache.h:
137340        (TileInfo): The TileMap contains TileInfos, which contain a pointer
137341        to the layer, their cohort, and a 'stale content' flag.
137342        (WebCore::TileCache::TileInfo::TileInfo):
137343        (TileCache):
137344        (TileCohortInfo):
137345        (WebCore::TileCache::TileCohortInfo::TileCohortInfo):
137346        * platform/graphics/ca/mac/TileCache.mm:
137347        (WebCore::TileCache::TileCache):
137348        (WebCore::TileCache::~TileCache):
137349        (WebCore::TileCache::setNeedsDisplay):
137350        (WebCore::TileCache::setNeedsDisplayInRect):
137351        (WebCore::TileCache::setTileNeedsDisplayInRect):
137352        (WebCore::TileCache::setScale):
137353        (WebCore::TileCache::setAcceleratesDrawing):
137354        (WebCore::TileCache::setTilesOpaque):
137355        (WebCore::TileCache::prepopulateRect):
137356        (WebCore::TileCache::setTileDebugBorderWidth):
137357        (WebCore::TileCache::setTileDebugBorderColor):
137358        (WebCore::TileCache::computeTileCoverageRect):
137359        (WebCore::TileCache::tileSizeForCoverageRect):
137360        (WebCore::TileCache::tileRevalidationTimerFired):
137361        (WebCore::TileCache::blankPixelCount):
137362        (WebCore::queueTileForRemoval):
137363        (WebCore::TileCache::removeAllTiles):
137364        (WebCore::TileCache::removeAllSecondaryTiles):
137365        (WebCore::TileCache::removeTilesInCohort):
137366        (WebCore::TileCache::revalidateTiles):
137367        (WebCore::TileCache::nextTileCohort):
137368        (WebCore::TileCache::startedNewCohort):
137369        (WebCore::TileCache::newestTileCohort):
137370        (WebCore::TileCache::oldestTileCohort):
137371        (WebCore::TileCache::scheduleCohortRemoval):
137372        (WebCore::TileCache::cohortRemovalTimerFired):
137373        (WebCore::TileCache::ensureTilesForRect):
137374        (WebCore::TileCache::tileGridExtent):
137375        (WebCore::TileCache::tileCoverageRect):
137376        (WebCore::TileCache::tileLayerAtIndex):
137377        (WebCore::TileCache::drawTileMapContents):
137378
1373792012-12-11  Simon Fraser  <simon.fraser@apple.com>
137380
137381        Remove redundant AffineTransform in RenderSVGShape::fillAndStrokeShape()
137382        https://bugs.webkit.org/show_bug.cgi?id=104736
137383
137384        Reviewed by Dean Jackson.
137385
137386        RenderSVGShape::fillAndStrokeShape() allocated a AffineTransform on
137387        the stack which was shadowed by another one in narrower scope. It
137388        can be removed.
137389
137390        * rendering/svg/RenderSVGShape.cpp:
137391        (WebCore::RenderSVGShape::fillAndStrokeShape):
137392
1373932012-12-11  Seokju Kwon  <seokju.kwon@gmail.com>
137394
137395        [EFL] Remove unused headers
137396        https://bugs.webkit.org/show_bug.cgi?id=104661
137397
137398        Reviewed by Ryosuke Niwa.
137399
137400        Header inclusion cleanup.
137401        Remove "NotImplemented.h".
137402
137403        No new tests, no behavior change.
137404
137405        * platform/efl/CursorEfl.cpp:
137406        * platform/efl/FileSystemEfl.cpp:
137407        * platform/efl/ScrollViewEfl.cpp:
137408        * platform/efl/ScrollbarThemeEfl.cpp:
137409        * platform/efl/SoundEfl.cpp:
137410
1374112012-12-11  Alec Flett  <alecflett@chromium.org>
137412
137413        IndexedDB: Stub out data operations on IDBDatabaseBackendInterface
137414        https://bugs.webkit.org/show_bug.cgi?id=104592
137415
137416        Reviewed by Dimitri Glazkov.
137417
137418        In preparation for removing objectStore/index backend
137419        interfaces, stub out the basic data operations around
137420        get, put, cursors, etc. on IDBDatabaseBackendInterface.
137421
137422        No new tests, this is just preparation for refactoring.
137423
137424        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
137425        (WebCore::IDBDatabaseBackendImpl::get):
137426        (WebCore):
137427        (WebCore::IDBDatabaseBackendImpl::put):
137428        (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
137429        (WebCore::IDBDatabaseBackendImpl::setIndexesReady):
137430        (WebCore::IDBDatabaseBackendImpl::openCursor):
137431        (WebCore::IDBDatabaseBackendImpl::count):
137432        (WebCore::IDBDatabaseBackendImpl::deleteRange):
137433        (WebCore::IDBDatabaseBackendImpl::clear):
137434        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
137435        (IDBDatabaseBackendImpl):
137436        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
137437        (WebCore):
137438        (IDBDatabaseBackendInterface):
137439
1374402012-12-11  Roger Fong  <roger_fong@apple.com>
137441
137442        Make Video Track compile on Windows in debug mode.
137443        https://bugs.webkit.org/show_bug.cgi?id=104720.
137444
137445        Reviewed by Alexey Proskuryakov.
137446
137447        urlForLogging method was defined in both HTMLMediaElement.cpp and HTMLTrackElement.cpp. 
137448        On Windows all the HTMLElements sources are included in an AllInOne source file, 
137449        so the definitions conflicted. Fixed by renaming the definition in each source file.
137450
137451        * html/HTMLMediaElement.cpp:
137452        (WebCore::urlForLoggingMedia):
137453        (WebCore::HTMLMediaElement::loadResource):
137454        (WebCore::HTMLMediaElement::isSafeToLoadURL):
137455        (WebCore::HTMLMediaElement::didRemoveTrack):
137456        (WebCore::HTMLMediaElement::selectNextSourceChild):
137457        (WebCore::HTMLMediaElement::sourceWasAdded):
137458        (WebCore::HTMLMediaElement::sourceWasRemoved):
137459        * html/HTMLTrackElement.cpp:
137460        (WebCore::urlForLoggingTrack):
137461        (WebCore::HTMLTrackElement::canLoadUrl):
137462
1374632012-12-11  Ryosuke Niwa  <rniwa@webkit.org>
137464
137465        Mail hangs when resizing the font size of a large RTL text
137466        https://bugs.webkit.org/show_bug.cgi?id=104643
137467
137468        Reviewed by Enrica Casucci.
137469
137470        The bug was caused by ApplyStyleCommand::applyInlineStyleToNodeRange obtaining computed styles while
137471        removing and adding nodes. Fixed the slowness by breaking it into three phases:
137472        1. Split the range into contiguous inline runs, and determine whether styles need to be removed or applied.
137473        2. Remove any conflicting styles, and insert dummy elements at positions where inline styles ought to be
137474        computed as needed.
137475        3. Remove the dummy elements and apply ilnine styles as needed.
137476
137477        No new tests are added since there is no behavior change. This is just a performance improvement. 
137478
137479        * editing/ApplyStyleCommand.cpp:
137480        (WebCore::InlineRunToApplyStyle::InlineRunToApplyStyle):
137481        (WebCore::InlineRunToApplyStyle::startAndEndAreStillInDocument):
137482        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
137483        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
137484        (WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
137485        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
137486        (WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange):
137487        (WebCore::ApplyStyleCommand::applyInlineStyleChange):
137488        * editing/ApplyStyleCommand.h:
137489        * editing/EditingStyle.h:
137490        (WebCore::StyleChange::StyleChange):
137491
1374922012-12-11  Xianzhu Wang  <wangxianzhu@chromium.org>
137493
137494        Incorrect position of layers for fixed position elements when page is scaled smaller than viewport
137495        https://bugs.webkit.org/show_bug.cgi?id=104294
137496
137497        Reviewed by James Robinson.
137498
137499        Fixed issue in scrollOffsetForFixedPosition when contentRect is smaller than visibleContentRect.
137500        This happens when a page originally bigger than viewport is scaled down to smaller than the viewport.
137501
137502        Test: compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html
137503
137504        * page/scrolling/ScrollingCoordinator.cpp:
137505        (WebCore::fixedPositionScrollOffset): Moved common code in scrollOffsetForFixedPosition here. Fixed issue when contentsSize < visibleContentSize.
137506        (WebCore::scrollOffsetForFixedPosition):
137507
1375082012-12-11  Beth Dakin  <bdakin@apple.com>
137509
137510        https://bugs.webkit.org/show_bug.cgi?id=104725
137511        Crash in EventHandler::selectCursor() on Mac bots running 
137512        fast/events/mouse-cursor-image-set.html
137513
137514        Reviewed by Tim Horton.
137515
137516        https://bugs.webkit.org/show_bug.cgi?id=99493 enabled image-set for 
137517        the CSS cursor property. Most of the change is guarded behind #if 
137518        ENABLE(MOUSE_CURSOR_SCALE). However, image-set was still allowed to 
137519        parse for the cursor property as long as image-set is enabled 
137520        (which is the current state on the Mac). This would lead to an 
137521        inconsistent state where style information would reflect a world 
137522        where mouse cursor scaling is enabled even though nothing else on 
137523        the Mac would. 
137524
137525        The parsing should also be guarded by the cursor scaling flag.
137526        * css/CSSParser.cpp:
137527        (WebCore::CSSParser::parseValue):
137528
1375292012-12-11  Emil A Eklund  <eae@chromium.org>
137530
137531        Clamp out-of-range numbers in CSS
137532        https://bugs.webkit.org/show_bug.cgi?id=102735
137533
137534        Reviewed by Simon Fraser.
137535
137536        Currently when a large number (outside of the supported range)
137537        is applied from a style rule or set from javascript using
137538        Element.style we check if it is within the supported range and
137539        set it to zero if it is not. This is incorrect and confusing.
137540        
137541        Change it to clamp values to the supported range. This matches
137542        the behavior in Gecko.
137543
137544        Test: fast/css/large-numbers.html
137545
137546        * css/CSSPrimitiveValue.cpp:
137547        (WebCore::CSSPrimitiveValue::computeLength):
137548        Change to clamp out-of-range values instead of interpreting them
137549        as zero.
137550
1375512012-12-11  Nate Chapin  <japhet@chromium.org>
137552
137553        Ensure ResourceRequests for main resources include fragment indentifiers when necessary,
137554        regressed by r137333.
137555        https://bugs.webkit.org/show_bug.cgi?id=104721
137556
137557        Rubber-stamped by Dimitri Glazkov.
137558
137559        No new tests.
137560
137561        * loader/SubresourceLoader.cpp:
137562        (WebCore::SubresourceLoader::willSendRequest):
137563
1375642012-12-11  Huang Dongsung  <luxtella@company100.net>
137565
137566        [GTK] REGRESSION(r135620): Accelerated Compositing does not draw some pages.
137567        https://bugs.webkit.org/show_bug.cgi?id=104640
137568
137569        Reviewed by Noam Rosenthal.
137570
137571        After r135620, Accelerated Compositing does not draw some pages, because
137572        r135620 changes the tree-traversal behavior.  Before r135620, we
137573        returned early if TextureMapperLayer can not get TextureMapper from the
137574        root layer. However, after r135620, we run the tree-traversal even if
137575        TextureMapperLayer can not get TextureMapper.  This patch makes
137576        TextureMapperLayer return early like code before r135620.
137577
137578        Covered by existing tests.
137579
137580        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
137581        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
137582
1375832012-12-11  Dan Bernstein  <mitz@apple.com>
137584
137585        <rdar://problem/12771885> Support ruby-position: {before, after}
137586        https://bugs.webkit.org/show_bug.cgi?id=103569
137587
137588        Reviewed by Anders Carlsson.
137589
137590        Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
137591        property takes four values: before, after, inter-character, and inline. This change adds
137592        support for the values before and after.
137593
137594        Test: fast/ruby/position-after.html
137595
137596        * css/CSSComputedStyleDeclaration.cpp:
137597        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
137598        * css/CSSParser.cpp:
137599        (WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
137600        ruby-position.
137601        (WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
137602        values.
137603        (WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
137604        * css/CSSPrimitiveValueMappings.h:
137605        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
137606        (WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
137607        * css/CSSProperty.cpp:
137608        (WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
137609        * css/CSSPropertyNames.in: Added -webkit-ruby-position.
137610        * css/CSSValueKeywords.in: Added after and before.
137611        * css/StyleBuilder.cpp:
137612        (WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
137613        * css/StyleResolver.cpp:
137614        (WebCore::StyleResolver::applyProperty): Added ruby-position.
137615        * rendering/InlineFlowBox.cpp:
137616        (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
137617        hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
137618        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
137619        ruby positioned before the base.
137620        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
137621        positioned after the base.
137622        * rendering/RenderRubyRun.cpp:
137623        (WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
137624        relative to the base.
137625        * rendering/style/RenderStyle.cpp:
137626        (WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
137627        * rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and 
137628        initialRubyPosition().
137629        * rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
137630        * rendering/style/StyleRareInheritedData.cpp:
137631        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
137632        m_rubyPosition. Added copying the value of this member to the copy constructor.
137633        (WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
137634        * rendering/style/StyleRareInheritedData.h:
137635        (StyleRareInheritedData): Added m_rubyPosition member variable.
137636
1376372012-12-11  Michael Pruett  <michael@68k.org>
137638
137639        [JSC] Add tests for explicit serialization values
137640        https://bugs.webkit.org/show_bug.cgi?id=104423
137641
137642        Reviewed by Oliver Hunt.
137643
137644        Add tests for serialization and deserialization mechanisms of
137645        the JSC implementation of SerializedScriptValue. Similar tests
137646        already exist for the V8 implementation.
137647
137648        Test: platform/jsc/fast/storage/serialized-script-value.html
137649
137650        * WebCore.exp.in:
137651        * testing/Internals.cpp:
137652        (WebCore::Internals::serializeObject):
137653        (WebCore::Internals::deserializeBuffer):
137654
1376552012-12-11  Alexis Menard  <alexis@webkit.org>
137656
137657        Cleanup: Use consistent naming in CSSParser when dealing with the forward slash operator.
137658        https://bugs.webkit.org/show_bug.cgi?id=104699
137659
137660        Reviewed by Daniel Bates.
137661
137662        http://trac.webkit.org/changeset/136525 added an helper function to
137663        check if a CSSParserValue is a forward slash operator.
137664        BorderImageParseContext is also dealing with the forward slash operator
137665        but its naming is inconsistent with isForwardSlashOperator(). This is
137666        fixed with this patch where BorderImageParseContext::{allowSlash,
137667        commitSlash}() is now replaced by BorderImageParseContext::{allowForwardSlashOperator,
137668        commitForwardSlashOperator}().
137669
137670        No new tests : just a renaming, covered by existing tests..
137671
137672        * css/CSSParser.cpp:
137673        (WebCore::CSSParser::parseFillPosition): A little fixup on the way, use
137674        isForwardSlashOperator() instead of the current code here.
137675        (WebCore::BorderImageParseContext::BorderImageParseContext):
137676        (WebCore::BorderImageParseContext::allowForwardSlashOperator):
137677        (WebCore::BorderImageParseContext::commitImage):
137678        (WebCore::BorderImageParseContext::commitImageSlice):
137679        (WebCore::BorderImageParseContext::commitForwardSlashOperator):
137680        (WebCore::BorderImageParseContext::commitBorderWidth):
137681        (WebCore::BorderImageParseContext::commitBorderOutset):
137682        (WebCore::BorderImageParseContext::commitRepeat):
137683        (BorderImageParseContext):
137684        (WebCore::CSSParser::parseBorderImage):
137685
1376862012-12-11  Nate Chapin  <japhet@chromium.org>
137687
137688        cr-linux valgrind is showing leaks due to r137333.
137689
137690        Rubber-stamped by Antti Koivisto.
137691
137692        MainResourceLoader's destructor should call m_resource->removeClient(this) is m_resource is still non-null.
137693        The missing removeClient() call will leak the CachedResource.
137694
137695        No new tests, should shut valgrind up.
137696
137697        * loader/MainResourceLoader.cpp:
137698        (WebCore::MainResourceLoader::~MainResourceLoader):
137699
1377002012-12-11  Andreas Kling  <akling@apple.com>
137701
137702        REGRESSION(r133492): Heap-use-after-free in WebCore::Element::normalizeAttributes
137703        <http://webkit.org/b/104488>
137704
137705        Reviewed by Antti Koivisto.
137706
137707        Don't cache the AttrNodeList* in a local when iterating over an Element's Attr nodes since
137708        that pointer may go stale if JS runs in response to a DOMSubtreeModified event below Node::normalize().
137709
137710        Test: fast/dom/normalize-attributes-mutation-event-crash.html
137711
137712        * dom/Element.cpp:
137713        (WebCore::Element::normalizeAttributes):
137714
1377152012-12-11  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
137716
137717        [GTK] Soup network logs are frequently interrupted by other logging messages
137718        https://bugs.webkit.org/show_bug.cgi?id=104668
137719
137720        Reviewed by Martin Robinson.
137721
137722        Set an external soup log printer that uses the WebKit logging
137723        infrastructure so that log messages are properly synchronized.
137724
137725        * platform/network/soup/ResourceHandleSoup.cpp:
137726        (WebCore::soupLogPrinter):
137727        (WebCore):
137728        (WebCore::ensureSessionIsInitialized):
137729
1377302012-12-11  Elliott Sprehn  <esprehn@chromium.org>
137731
137732        Switch to new PseudoElement based :before and :after
137733        https://bugs.webkit.org/show_bug.cgi?id=104462
137734
137735        Reviewed by Antti Koivisto.
137736
137737        Switch to the new PseudoElement based generated content implementation
137738        that moves :before and :after into the DOM. This also switches to using
137739        the ComposedShadowTreeWalker for determining the siblings of PseudoElement's
137740        making the new generated content implementation support adding :before
137741        and :after into <input> elements.
137742
137743        Tests: fast/css-generated-content/block-inside-inline.html
137744               fast/css-generated-content/box-orient.html
137745
137746        * dom/ComposedShadowTreeWalker.cpp:
137747        (WebCore::ComposedShadowTreeWalker::pseudoAwareNextSibling):
137748        (WebCore):
137749        (WebCore::ComposedShadowTreeWalker::pseudoAwarePreviousSibling):
137750        (WebCore::ComposedShadowTreeWalker::traverseParent):
137751        * dom/ComposedShadowTreeWalker.h:
137752        (ComposedShadowTreeWalker):
137753        * dom/Element.cpp:
137754        (WebCore::Element::attach):
137755        (WebCore::Element::recalcStyle):
137756        * dom/Node.cpp:
137757        * dom/Node.h:
137758        (Node):
137759        * dom/NodeRenderingContext.cpp:
137760        (WebCore::NodeRenderingContext::nextRenderer):
137761        (WebCore::NodeRenderingContext::previousRenderer):
137762        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
137763        * dom/Position.cpp:
137764        (WebCore::Position::Position):
137765        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
137766        * editing/visible_units.cpp:
137767        (WebCore::logicallyPreviousBox):
137768        (WebCore::logicallyNextBox):
137769        (WebCore::startPositionForLine):
137770        (WebCore::endPositionForLine):
137771        * html/HTMLTextFormControlElement.cpp:
137772        (WebCore::HTMLTextFormControlElement::childShouldCreateRenderer):
137773        * page/DragController.cpp:
137774        (WebCore::DragController::draggableNode):
137775        * rendering/RenderBlock.cpp:
137776        (WebCore::RenderBlock::styleDidChange):
137777        (WebCore::RenderBlock::splitBlocks):
137778        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
137779        (WebCore::RenderBlock::createReplacementRunIn):
137780        (WebCore::RenderBlock::isSelectionRoot):
137781        * rendering/RenderBlock.h:
137782        (RenderBlock):
137783        * rendering/RenderButton.cpp:
137784        * rendering/RenderButton.h:
137785        (RenderButton):
137786        * rendering/RenderInline.cpp:
137787        (WebCore::RenderInline::styleDidChange):
137788        (WebCore::RenderInline::addChildIgnoringContinuation):
137789        (WebCore::RenderInline::splitInlines):
137790        * rendering/RenderListItem.cpp:
137791        (WebCore::RenderListItem::updateMarkerLocation):
137792        * rendering/RenderObject.cpp:
137793        (WebCore::RenderObject::createVisiblePosition):
137794        * rendering/RenderObject.h:
137795        (WebCore::RenderObject::nonPseudoNode):
137796        (RenderObject):
137797        (WebCore::RenderObject::clearNode):
137798        (WebCore::RenderObject::generatingNode):
137799        * rendering/RenderObjectChildList.cpp:
137800        * rendering/RenderObjectChildList.h:
137801        (RenderObjectChildList):
137802        * rendering/RenderRubyText.cpp:
137803        * rendering/RenderRubyText.h:
137804        (RenderRubyText):
137805        * rendering/RenderTableRow.cpp:
137806        (WebCore::RenderTableRow::styleDidChange):
137807        * rendering/RenderTableRow.h:
137808        * rendering/RenderTableSection.cpp:
137809        (WebCore::RenderTableSection::addChild):
137810        * rendering/RenderWidget.cpp:
137811        (WebCore::RenderWidget::destroy):
137812
1378132012-12-11  Jacky Jiang  <zhajiang@rim.com>
137814
137815        [BlackBerry] Clean up unused defaultViewportArguments in RenderThemeBlackBerry.cpp
137816        https://bugs.webkit.org/show_bug.cgi?id=104683
137817
137818        Reviewed by Rob Buis.
137819
137820        * platform/blackberry/RenderThemeBlackBerry.cpp:
137821        (WebCore::determineFullScreenMultiplier):
137822
1378232012-12-11  Nate Chapin  <japhet@chromium.org>
137824
137825        Route main resource loads through the memory cache.
137826        https://bugs.webkit.org/show_bug.cgi?id=49246
137827
137828        Reviewed by Antti Koivisto.
137829
137830        Note that this patch doesn't actually enable caching of main resources. That will be done in a later patch.
137831        The MainResourceLoader actually has an underlying SubresourceLoader (with the cache layer between them).
137832        In several places, the MainResourceLoader's SubresourceLoader is treated as special.
137833
137834        No new tests, as this is primarily a refactor. A couple of expected results changed slightly.
137835
137836        * loader/DocumentLoader.cpp:
137837        (WebCore::DocumentLoader::setRequest):
137838        (WebCore::DocumentLoader::subresource):
137839        (WebCore::DocumentLoader::addSubresourceLoader): Because the SubresourceLoader underlying the main resource
137840            needs special handling in certain cases, track it separately from the real SubresourceLoaders.
137841        (WebCore::DocumentLoader::removeSubresourceLoader):
137842        (WebCore::DocumentLoader::startLoadingMainResource):
137843        * loader/MainResourceLoader.cpp:
137844        (WebCore::MainResourceLoader::MainResourceLoader):
137845        (WebCore::MainResourceLoader::receivedError):
137846        (WebCore::MainResourceLoader::cancel):
137847        (WebCore::MainResourceLoader::clearResource):
137848        (WebCore):
137849        (WebCore::MainResourceLoader::frameLoader):
137850        (WebCore::MainResourceLoader::request):
137851        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
137852        (WebCore::MainResourceLoader::resourceData):
137853        (WebCore::MainResourceLoader::redirectReceived):
137854        (WebCore::MainResourceLoader::willSendRequest):
137855        (WebCore::MainResourceLoader::continueAfterContentPolicy):
137856        (WebCore::MainResourceLoader::responseReceived):
137857        (WebCore::MainResourceLoader::dataReceived):
137858        (WebCore::MainResourceLoader::didFinishLoading):
137859        (WebCore::MainResourceLoader::notifyFinished):
137860        (WebCore::MainResourceLoader::reportMemoryUsage):
137861        (WebCore::MainResourceLoader::handleSubstituteDataLoadNow):
137862        (WebCore::MainResourceLoader::load):
137863        (WebCore::MainResourceLoader::setDefersLoading):
137864        (WebCore::MainResourceLoader::defersLoading):
137865        (WebCore::MainResourceLoader::setShouldBufferData):
137866        (WebCore::MainResourceLoader::loader):
137867        (WebCore::MainResourceLoader::identifier):
137868        * loader/MainResourceLoader.h:
137869        (MainResourceLoader):
137870        (WebCore::MainResourceLoader::documentLoader):
137871        * loader/ResourceLoader.cpp:
137872        (WebCore::ResourceLoader::willSendRequest):
137873        * loader/ResourceLoader.h:
137874        (WebCore::ResourceLoader::defersLoading):
137875        (WebCore::ResourceLoader::cancelled):
137876        * loader/appcache/ApplicationCacheHost.cpp:
137877        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
137878        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
137879        * loader/mac/DocumentLoaderMac.cpp:
137880        (WebCore::DocumentLoader::schedule):
137881        (WebCore::DocumentLoader::unschedule):
137882
1378832012-12-11  Aaron Colwell  <acolwell@chromium.org>
137884
137885        Update MediaSource to allow append() calls in "ended" state.
137886        https://bugs.webkit.org/show_bug.cgi?id=104581
137887
137888        Reviewed by Eric Carlson.
137889
137890        Updated append and setTimestampOffset to allow appending in the "ended" readyState. An append() call
137891        in the "ended" state now triggers a transition to the "open" state and allows the append to succeed.
137892
137893        Tests: http/tests/media/media-source/video-media-source-append-in-ended-state.html
137894               http/tests/media/media-source/video-media-source-append-with-offset-in-ended-state.html
137895               http/tests/media/media-source/video-media-source-zero-byte-append-in-ended-state.html
137896
137897        * Modules/mediasource/MediaSource.cpp:
137898        (WebCore::MediaSource::append):
137899        (WebCore::MediaSource::setTimestampOffset):
137900
1379012012-12-11  Robert Hogan  <robert@webkit.org>
137902
137903        REGRESSION(r121789): Text not wrapping in presence of floating objects
137904        https://bugs.webkit.org/show_bug.cgi?id=101803
137905
137906        Reviewed by David Hyatt.
137907
137908        When determining if a line needs to offset to avoid any floats use RenderBlock::lineHeight() 
137909        to estimate the height of the line. If the container has floats stacked up with different widths
137910        that straddle the line, using a height of zero will make the first line think it has
137911        more width available than it actually does and it will end up extruding from its container.
137912        
137913        The logic for finding the offset of inline blocks and images needs to use a similar heuristic.
137914        So nextLineBreak() now updates the available width if it encounters a replaced element (e.g. inline block,
137915        image) at the start of a line, using the height of the element to decide which floats to avoid. 
137916        RenderBlock::computeInlineDirectionPositionsForLine() does the same thing when laying out the line.
137917
137918        Tests: fast/block/float/floats-offset-image-quirk-lineheight.html
137919               fast/block/float/floats-offset-image-quirk.html
137920               fast/block/float/floats-offset-image-strict-lineheight.html
137921               fast/block/float/floats-offset-image-strict.html
137922               fast/block/float/floats-offset-inline-block-quirk-lineheight.html
137923               fast/block/float/floats-offset-inline-block-strict-lineheight.html
137924               fast/block/float/floats-offset-linebox-contain-block.html
137925               fast/block/float/floats-offset-linebox-contain-inline.html
137926               fast/block/float/floats-wrap-inside-inline-006.html
137927               fast/block/float/floats-wrap-inside-inline-007.html
137928
137929        * rendering/RenderBlockLineLayout.cpp:
137930        (LineWidth):
137931        (WebCore::logicalHeightForLine):
137932            This method needs to cope with the quirk where an image alone on a line will get its descent stripped away so
137933            ignore the height of the line and use the height of the image in that case.
137934        (WebCore::LineWidth::updateAvailableWidth):
137935        (WebCore::updateLogicalInlinePositions):
137936        (WebCore):
137937        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
137938        (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment):
137939        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
137940
1379412012-12-11  Carlos Garcia Campos  <cgarcia@igalia.com>
137942
137943        [GTK] Install GObject DOM bindings headers in its own directory
137944        https://bugs.webkit.org/show_bug.cgi?id=104663
137945
137946        Reviewed by Gustavo Noronha Silva.
137947
137948        Move the headers from webkit to webkitdom directory.
137949
137950        * bindings/gobject/GNUmakefile.am:
137951        * bindings/gobject/WebKitDOMBinding.h:
137952        * bindings/gobject/WebKitDOMCustom.h:
137953        * bindings/gobject/WebKitDOMEventTarget.h:
137954        * bindings/gobject/WebKitDOMEventTargetPrivate.h:
137955        * bindings/gobject/WebKitDOMObject.h:
137956        * bindings/scripts/CodeGeneratorGObject.pm:
137957        (Generate):
137958        (WriteData):
137959        * bindings/scripts/gobject-generate-headers.pl:
137960        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
137961        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
137962        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
137963        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
137964        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
137965        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
137966        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
137967        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
137968        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
137969        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
137970        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
137971        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
137972        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
137973        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
137974        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
137975        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
137976        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
137977        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
137978        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
137979        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
137980        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
137981        * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
137982        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
137983        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
137984        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
137985        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h:
137986        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
137987        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
137988
1379892012-12-11  Mark Pilgrim  <pilgrim@chromium.org>
137990
137991        [Chromium] Clean up unused interfaces in PlatformSupport
137992        https://bugs.webkit.org/show_bug.cgi?id=104674
137993
137994        Reviewed by Darin Fisher.
137995
137996        Part of a refactoring series. See tracking bug 82948. Also, there
137997        were some function declarations that were supposed to be removed
137998        as part of bug 102699 but got left out of the final patch.
137999
138000        * platform/chromium/PlatformSupport.h:
138001        (WebCore):
138002        (PlatformSupport):
138003
1380042012-12-11  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
138005
138006        [GTK] Update GraphicsLayerClutter
138007        https://bugs.webkit.org/show_bug.cgi?id=92045
138008
138009        Reviewed by Gustavo Noronha Silva.
138010
138011        Add more methods to GraphicsLayerClutter in order to run CSS 3D transforms 
138012        by using GraphicsLayerActor.
138013
138014        No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
138015        compositing and 3D transforms.
138016
138017        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
138018        (WebCore):
138019        (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
138020        (WebCore::idleDestroy):
138021        (WebCore::GraphicsLayerClutter::~GraphicsLayerClutter):
138022        (WebCore::GraphicsLayerClutter::setName):
138023        (WebCore::GraphicsLayerClutter::platformLayer): Returns the platform layer(ClutterAcotr).
138024        (WebCore::GraphicsLayerClutter::setNeedsDisplay): Update the display.
138025        (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect): Update part of the Display.
138026        (WebCore::GraphicsLayerClutter::setAnchorPoint):
138027        (WebCore::GraphicsLayerClutter::setPosition):
138028        (WebCore::GraphicsLayerClutter::setSize):
138029        (WebCore::GraphicsLayerClutter::setTransform):
138030        (WebCore::GraphicsLayerClutter::setDrawsContent):
138031        (WebCore::GraphicsLayerClutter::setParent):
138032        (WebCore::GraphicsLayerClutter::setChildren):
138033        (WebCore::GraphicsLayerClutter::addChild):
138034        (WebCore::GraphicsLayerClutter::addChildAtIndex):
138035        (WebCore::GraphicsLayerClutter::addChildBelow):
138036        (WebCore::GraphicsLayerClutter::addChildAbove):
138037        (WebCore::GraphicsLayerClutter::replaceChild):
138038        (WebCore::GraphicsLayerClutter::removeFromParent):
138039        (WebCore::GraphicsLayerClutter::platformClutterLayerPaintContents):
138040        (WebCore::GraphicsLayerClutter::platformClutterLayerAnimationStarted):
138041        (WebCore::GraphicsLayerClutter::repaintLayerDirtyRects):
138042        (WebCore::GraphicsLayerClutter::computePositionRelativeToBase):
138043        (WebCore::GraphicsLayerClutter::flushCompositingState): Synchronize the corresponding Actors with the current 
138044        compositing states of this GraphicsLayer and its child layers. 
138045        (WebCore::GraphicsLayerClutter::recursiveCommitChanges):
138046        (WebCore::GraphicsLayerClutter::flushCompositingStateForThisLayerOnly): Commit batched changes non-recursively. 
138047        (WebCore::GraphicsLayerClutter::commitLayerChangesAfterSublayers): Reset layer changes after we recurse on children.
138048        (WebCore::GraphicsLayerClutter::noteSublayersChanged):
138049        (WebCore::GraphicsLayerClutter::noteLayerPropertyChanged):
138050        (WebCore::GraphicsLayerClutter::commitLayerChangesBeforeSublayers): Commit layer changes before we recurse on children.
138051        (WebCore::GraphicsLayerClutter::updateGeometry): Updated the position and size of the Actor.
138052        (WebCore::GraphicsLayerClutter::updateSublayerList): Updated the list of child Actors. 
138053        (WebCore::GraphicsLayerClutter::updateLayerNames):
138054        (WebCore::GraphicsLayerClutter::updateTransform):
138055        (WebCore::GraphicsLayerClutter::updateLayerDrawsContent):
138056        (WebCore::GraphicsLayerClutter::layerForSuperlayer):
138057        * platform/graphics/clutter/GraphicsLayerClutter.h:
138058        (WebCore):
138059        (WebCore::GraphicsLayerClutter::primaryLayer):
138060        (GraphicsLayerClutter):
138061
1380622012-12-11  Jessie Berlin  <jberlin@apple.com>
138063
138064        Revert incorrect build fix.
138065
138066        * WebCore.exp.in:
138067
1380682012-12-11  Jessie Berlin  <jberlin@apple.com>
138069
138070        Fix the Mac build after r137261
138071
138072        * WebCore.exp.in:
138073
1380742012-12-11  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
138075
138076        [GTK] Add GraphicsLayerActor
138077        https://bugs.webkit.org/show_bug.cgi?id=91940
138078
138079        Reviewed by Gustavo Noronha Silva.
138080
138081        GraphicsLayerActor, which is a new ClutterActor, represents a node in the GPU-renderable layer tree
138082        when accelerated compositing is enabled with Clutter as acceleration backend.
138083        This patch allows to support basic features of CSS 3D Transforms.
138084
138085        No new tests. This will be covered by pixel tests for Qt and GTK+ accelerated
138086        compositing and 3D transforms.
138087
138088        * GNUmakefile.list.am:
138089        * platform/graphics/clutter/GraphicsLayerActor.cpp: Added.
138090        (_GraphicsLayerActorPrivate):
138091        (graphics_layer_actor_class_init): GObject configuration of a new Clutter Actor.
138092        (graphics_layer_actor_init): Initialization of the private data of this actor.
138093        (graphicsLayerActorSetProperty): GObject property setter.
138094        (graphicsLayerActorGetProperty): GObject property getter.
138095        (graphicsLayerActorDispose): Called to drop all references to other objects.
138096        (graphicsLayerActorAllocate):  Called to set the coordinates of an actor.
138097        (graphicsLayerActorApplyTransform): Applying the transformation to an actor before painting it.
138098        (graphicsLayerActorPaint): Called to paint the actor.
138099        (graphicsLayerActorDraw): Called each time a ClutterCairoTexture has been invalidated.
138100        (graphicsLayerActorAdded): Called each time an actor has been added to container.
138101        (graphicsLayerActorRemoved): Called each time an actor is removed from container.
138102        (graphicsLayerActorNew): Create a specific layer type of GraphicsLayerActor object.
138103        (graphicsLayerActorNewWithClient): Create a specific layer type of GraphicsLayerActor object with 
138104        its PlatformClutterClientLayer.
138105        (graphicsLayerActorSetClient): Added setter to set the PlatformClutterClientLayer.
138106        (graphicsLayerActorGetClient): Added getter to get the PlatformClutterClientLayer.
138107        (graphicsLayerActorRemoveAll): Remove all child actors.
138108        (graphicsLayerUpdateTexture): Create a ClutterCairoTexture.
138109        (graphicsLayerActorGetSurface): Added setter to set a cairo_surface_t.
138110        (graphicsLayerActorSetSurface): Added getter to get the cairo_surface_t.
138111        (graphicsLayerActorInvalidateRectangle):
138112        (graphicsLayerActorSetTransform): Set a CoglMatrix to apply matrix transform.
138113        (graphicsLayerActorSetAnchorPoint):
138114        (graphicsLayerActorGetAnchorPoint):
138115        (graphicsLayerActorSetScrollPosition):
138116        (graphicsLayerActorGetnChildren):
138117        (graphicsLayerActorReplaceSublayer):
138118        (graphicsLayerActorInsertSublayer):
138119        (graphicsLayerActorSetSublayers):
138120        (graphicsLayerActorGetLayerType):
138121        (graphicsLayerActorSetLayerType):
138122        (graphicsLayerActorSetTranslateX):
138123        (graphicsLayerActorGetTranslateX):
138124        (graphicsLayerActorSetTranslateY):
138125        (graphicsLayerActorGetTranslateY):
138126        (graphicsLayerActorSetDrawsContent): Added setter to paint content inside a layer.
138127        (graphicsLayerActorGetDrawsContent): Added getter to get the value of the drawsContent. 
138128        * platform/graphics/clutter/GraphicsLayerActor.h: Added.
138129        (_GraphicsLayerActor):
138130        (_GraphicsLayerActorClass):
138131        * platform/graphics/clutter/GraphicsLayerClutter.h:
138132        (WebCore):
138133
1381342012-12-11  Mike West  <mkwst@chromium.org>
138135
138136        Web Inspector: ConsoleTypes should not expose MessageType - it should be private to inspector.
138137        https://bugs.webkit.org/show_bug.cgi?id=66371
138138
138139        Reviewed by Pavel Feldman.
138140
138141        We can simplify console message generation a bit, as nothing outside the
138142        Console object itself will generate messages of any type other than
138143        LogMessageType. This patch refactors the externally-facing API endpoints
138144        on ScriptExecutionContext and Console to drop the MessageType parameter,
138145        moves the MessageType enum into a new InspectorConsoleTypes.h header,
138146        and updates all the call sites (and ChromeClients) to drop the parameter
138147        from their interfaces.
138148
138149        As a temporary bandage for ports using this interface, this patch
138150        includes aliases for the new methods that retain the old interface.
138151        I'll remove them in a future patch.
138152
138153        Here, we only refactor an internal interface. No tests should break.
138154
138155        * GNUmakefile.list.am:
138156        * Target.pri:
138157        * WebCore.gypi:
138158        * WebCore.vcproj/WebCore.vcproj:
138159        * WebCore.xcodeproj/project.pbxproj:
138160            We added a new file! OMG!
138161        * Modules/webaudio/AudioBufferSourceNode.cpp:
138162        (WebCore::AudioBufferSourceNode::looping):
138163        (WebCore::AudioBufferSourceNode::setLooping):
138164        * Modules/webdatabase/AbstractDatabase.cpp:
138165        (WebCore::AbstractDatabase::logErrorMessage):
138166        * Modules/websockets/WebSocket.cpp:
138167        (WebCore::WebSocket::connect):
138168        (WebCore::WebSocket::send):
138169        (WebCore::WebSocket::close):
138170        (WebCore::WebSocket::setBinaryType):
138171        * Modules/websockets/WebSocketChannel.cpp:
138172        (WebCore::WebSocketChannel::fail):
138173        (WebCore::WebSocketChannel::didFailSocketStream):
138174        * bindings/js/JSCustomXPathNSResolver.cpp:
138175        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
138176        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
138177        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
138178        * css/MediaList.cpp:
138179        (WebCore::addResolutionWarningMessageToConsole):
138180        * dom/Document.cpp:
138181        (WebCore::Document::logExceptionToConsole):
138182        (WebCore::Document::processHttpEquiv):
138183        (WebCore::Document::addMessage):
138184        * dom/Document.h:
138185        (Document):
138186        * dom/ScriptElement.cpp:
138187        (WebCore::ScriptElement::notifyFinished):
138188        * dom/ScriptExecutionContext.cpp:
138189        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask):
138190        (WebCore::ScriptExecutionContext::addConsoleMessage):
138191        * dom/ScriptExecutionContext.h:
138192        (ScriptExecutionContext):
138193        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create):
138194        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
138195        * dom/ViewportArguments.cpp:
138196        (WebCore::reportViewportWarning):
138197        * fileapi/WebKitBlobBuilder.cpp:
138198        (WebCore::BlobBuilder::append):
138199        * html/HTMLFormControlElement.cpp:
138200        (WebCore::shouldAutofocus):
138201        * html/HTMLFormElement.cpp:
138202        (WebCore::HTMLFormElement::validateInteractively):
138203        * html/HTMLIFrameElement.cpp:
138204        (WebCore::HTMLIFrameElement::parseAttribute):
138205        * html/HTMLTrackElement.cpp:
138206        (WebCore::HTMLTrackElement::canLoadUrl):
138207        * html/canvas/CanvasRenderingContext2D.cpp:
138208        (WebCore::CanvasRenderingContext2D::getImageData):
138209        * html/canvas/WebGLRenderingContext.cpp:
138210        (WebCore):
138211        (WebCore::WebGLRenderingContext::printWarningToConsole):
138212        * html/parser/XSSAuditor.cpp:
138213        (WebCore::XSSAuditor::init):
138214        (WebCore::XSSAuditor::filterToken):
138215        * inspector/ConsoleAPITypes.h: Added.
138216        (WebCore):
138217        * inspector/ConsoleMessage.h:
138218        * inspector/InspectorConsoleAgent.h:
138219        * inspector/InspectorDebuggerAgent.h:
138220        * inspector/InspectorInstrumentation.cpp:
138221        (WebCore):
138222        * inspector/InspectorInstrumentation.h:
138223        * inspector/InspectorProfilerAgent.cpp:
138224        * loader/EmptyClients.h:
138225        (WebCore::EmptyChromeClient::addMessageToConsole):
138226        * loader/FrameLoader.cpp:
138227        (WebCore::FrameLoader::reportLocalLoadFailed):
138228        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
138229        * loader/ImageLoader.cpp:
138230        (WebCore::ImageLoader::notifyFinished):
138231        * loader/MainResourceLoader.cpp:
138232        (WebCore::MainResourceLoader::didReceiveResponse):
138233        * loader/MixedContentChecker.cpp:
138234        (WebCore::MixedContentChecker::logWarning):
138235        * loader/TextTrackLoader.cpp:
138236        (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
138237        * loader/appcache/ApplicationCacheGroup.cpp:
138238        (WebCore::ApplicationCacheGroup::abort):
138239        (WebCore::ApplicationCacheGroup::didReceiveResponse):
138240        (WebCore::ApplicationCacheGroup::didFinishLoading):
138241        (WebCore::ApplicationCacheGroup::didFail):
138242        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
138243        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
138244        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
138245        * loader/cache/CachedResourceLoader.cpp:
138246        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
138247        * page/ChromeClient.h:
138248        (ChromeClient):
138249            Drop LogMessageType from everywhere.
138250        * page/Console.cpp:
138251        (WebCore::Console::addMessage):
138252        (WebCore::internalAddMessage):
138253        (WebCore::Console::error):
138254        (WebCore::Console::log):
138255        (WebCore::Console::warn):
138256        (WebCore::Console::dir):
138257        (WebCore::Console::dirxml):
138258        (WebCore::Console::clear):
138259        (WebCore::Console::trace):
138260        (WebCore::Console::assertCondition):
138261        * page/Console.h:
138262        (Console):
138263            Create a new internalAddMessage that's used for the various
138264            Console message types. Everything else routes through
138265            ::addMessage.
138266        * page/ConsoleTypes.h:
138267            Drop MessageTypes from this file, add it to ConsoleAPIType.h
138268        * page/ContentSecurityPolicy.cpp:
138269        (WebCore::ContentSecurityPolicy::logToConsole):
138270        * page/DOMWindow.cpp:
138271        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
138272        (WebCore::DOMWindow::printErrorMessage):
138273        * page/EventSource.cpp:
138274        (WebCore::EventSource::didReceiveResponse):
138275        * svg/SVGDocumentExtensions.cpp:
138276        (WebCore::reportMessage):
138277        * workers/DefaultSharedWorkerRepository.cpp:
138278        (SharedWorkerProxy):
138279        (WebCore::postConsoleMessageTask):
138280        (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
138281        * workers/SharedWorkerContext.cpp:
138282        (WebCore::SharedWorkerContext::logExceptionToConsole):
138283        * workers/WorkerContext.cpp:
138284        (WebCore::WorkerContext::addMessage):
138285        (WebCore::WorkerContext::addMessageToWorkerConsole):
138286        * workers/WorkerContext.h:
138287        (WorkerContext):
138288        * workers/WorkerMessagingProxy.cpp:
138289        (WebCore::postConsoleMessageTask):
138290        (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
138291        * workers/WorkerMessagingProxy.h:
138292        (WorkerMessagingProxy):
138293        * workers/WorkerReportingProxy.h:
138294        (WorkerReportingProxy):
138295        * xml/XMLHttpRequest.cpp:
138296        (WebCore::logConsoleError):
138297        (WebCore::XMLHttpRequest::send):
138298        * xml/XSLTProcessorLibxslt.cpp:
138299        (WebCore::XSLTProcessor::parseErrorFunc):
138300        * xml/XSLTProcessorQt.cpp:
138301        (WebCore::XSLTMessageHandler::handleMessage):
138302            Drop LogMessageType from everywhere.
138303
1383042012-12-11  Simon Hausmann  <simon.hausmann@digia.com>
138305
138306        [Qt] Unreviewed, rolling out r137313 and r137316 because they broke the system-sqlite build.
138307
138308        * WebCore.pri:
138309
1383102012-12-11  Simon Hausmann  <simon.hausmann@digia.com>
138311
138312        Unreviewed Qt build fix: Don't error out if SQLITE3SRCDIR isn't set but
138313        we have a system sqlite to use.
138314
138315        * WebCore.pri:
138316
1383172012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
138318
138319        [Qt] make qtbase source requirement explicit
138320
138321        Reviewed by Simon Hausmann.
138322
138323        getting rid of QT.<module>.sources references, as they don't go well
138324        with real modularization.
138325
138326        * WebCore.pri:
138327
1383282012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
138329
138330        [Qt] move SQLITE3SRCDIR assignment to only use site
138331
138332        Reviewed by Simon Hausmann.
138333
138334        Target.pri includes WebCore.pri the almost first thing, so that is
138335        covered as well.
138336
138337        * WebCore.pri:
138338
1383392012-12-11  Eugene Klyuchnikov  <eustas@chromium.org>
138340
138341        Web Inspector: Timeline: rename "Parse" to "Parse HTML".
138342        https://bugs.webkit.org/show_bug.cgi?id=104639
138343
138344        Reviewed by Yury Semikhatsky.
138345
138346        "Parse" sounds ambiguous, it could mean JSON.parse() or Date.parse().
138347        "Parse HTML" is a much more clear record description.
138348
138349        * inspector/front-end/TimelinePresentationModel.js: Fix text.
138350
1383512012-12-11  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
138352
138353        [Qt] change setup of QMAKE_MOC
138354
138355        Reviewed by Simon Hausmann.
138356
138357        don't load(moc) explicitly - turns out that this breaks
138358        debug_and_release builds (the feature does not like being loaded before
138359        default_post has been loaded).
138360        so instead just do a minimal call to find the moc executable.
138361
138362        as it's in fact only two files which need it, so de-centralize this call
138363        for the sake of saving some cpu cycles spent in qmake.
138364
138365        * DerivedSources.pri:
138366
1383672012-12-11  Alexander Pavlov  <apavlov@chromium.org>
138368
138369        REGRESSION(r136948): inspector/styles/import-pseudoclass-crash.html hits an assertion
138370        https://bugs.webkit.org/show_bug.cgi?id=104473
138371
138372        Reviewed by Vsevolod Vlasov.
138373
138374        Avoid building full CSSOM wrappers up front during rule matching.
138375        Instead, move this code down to the point where these wrappers are actually needed.
138376
138377        * inspector/InspectorCSSAgent.cpp:
138378        (WebCore::InspectorCSSAgent::willMatchRule):
138379        (WebCore::InspectorCSSAgent::willProcessRule):
138380        * inspector/InspectorCSSAgent.h:
138381        (WebCore):
138382        (InspectorCSSAgent):
138383        * inspector/InspectorInstrumentation.cpp:
138384        (WebCore):
138385        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
138386        (WebCore::InspectorInstrumentation::willProcessRuleImpl):
138387
1383882012-12-11  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
138389
138390        [GStreamer] Avoid linking to GStreamer video libraries if only using ENABLE_AUDIO
138391        https://bugs.webkit.org/show_bug.cgi?id=104590
138392
138393        Reviewed by Philippe Normand.
138394
138395        Make getVideoSizeAndFormatFromCaps() only available when ENABLE_VIDEO is set.
138396
138397        No new tests, no change in behavior.
138398
138399        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
138400        * platform/graphics/gstreamer/GStreamerVersioning.h:
138401
1384022012-12-11  Zeno Albisser  <zeno@webkit.org>
138403
138404        [Qt][Mac] Fix transparency for WebGL content.
138405        https://bugs.webkit.org/show_bug.cgi?id=104659
138406
138407        When drawing a texture to the TextureMapper the flag SupportsBlending
138408        must be passed in order to allow for transparent webgl content.
138409        We are doing this for GLX already, but the flag was still missing
138410        in GraphicsSurfaceMac.
138411
138412        Reviewed by Kenneth Rohde Christiansen.
138413
138414        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
138415        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
138416
1384172012-12-11  Alexander Pavlov  <apavlov@chromium.org>
138418
138419        Web Inspector: Duplicate emulated touch events in iframe
138420        https://bugs.webkit.org/show_bug.cgi?id=104653
138421
138422        Reviewed by Vsevolod Vlasov.
138423
138424        Synthetic touch events should be dispatched only on the frame containing its target, not on its ancestor frames,
138425        up to the top frame.
138426
138427        * page/EventHandler.cpp:
138428        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):
138429          Do not dispatch a synthetic touch event on the current frame if its target is in a subframe.
138430
1384312012-12-11  Kondapally Kalyan  <kalyan.kondapally@intel.com>
138432
138433        [EFL][WebGL] Regression(r137211) WebGL is broken with NVIDIA Drivers.
138434        https://bugs.webkit.org/show_bug.cgi?id=104652.
138435
138436        Reviewed by Kenneth Rohde Christiansen.
138437
138438        Reverting some of the changes from r137211, as it causes regressions
138439        on NVIDIA drivers.
138440
138441        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
138442        (WebCore::GraphicsContext3D::GraphicsContext3D):
138443        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
138444        (GraphicsContext3DPrivate::copyToGraphicsSurface):
138445        * platform/graphics/opengl/GLPlatformSurface.cpp:
138446        (WebCore::GLPlatformSurface::updateContents):
138447        * platform/graphics/opengl/GLPlatformSurface.h:
138448        (GLPlatformSurface):
138449
1384502012-12-11  Pavel Feldman  <pfeldman@chromium.org>
138451
138452        Web Inspector: follow up to r136974: do not process shortcuts while editing
138453        https://bugs.webkit.org/show_bug.cgi?id=104440
138454
138455        Reviewed by Alexander Pavlov.
138456
138457        Currently, typing H while editing node results in corresponding shortcut processing.
138458
138459        * inspector/front-end/ElementsTreeOutline.js:
138460        (WebInspector.ElementsTreeOutline):
138461        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
138462        (WebInspector.ElementsTreeElement.prototype.onenter):
138463        (WebInspector.ElementsTreeElement.prototype._startEditingAttribute):
138464        (WebInspector.ElementsTreeElement.prototype.dispose):
138465        (WebInspector.ElementsTreeElement.prototype._startEditingAsHTML):
138466        (WebInspector.ElementsTreeElement.prototype._editingCancelled):
138467
1384682012-12-11  Ken Kania  <kkania@chromium.org>
138469
138470        [Inspector] Add command for dispatching mouse events.
138471        https://bugs.webkit.org/show_bug.cgi?id=104074
138472
138473        Reviewed by Yury Semikhatsky.
138474
138475        Platform mouse event coordinates are relative to the containing window,
138476        but the inspector command assumes they follow standard web coordinates,
138477        where the origin is at the top left of the page and y increases as you
138478        go down. We convert the coordinates to the window before constructing
138479        the event. This also fixes the fact that some platforms have flipped
138480        coordinate systems.
138481        Also, update dispatchKeyEvent test to follow simpler dispatchMouseEvent
138482        test.
138483
138484        Test: inspector-protocol/input/dispatchMouseEvent.html
138485
138486        * inspector/Inspector.json:
138487        * inspector/InspectorInputAgent.cpp:
138488        (WebCore::InspectorInputAgent::dispatchMouseEvent):
138489        (WebCore):
138490        * inspector/InspectorInputAgent.h:
138491        (InspectorInputAgent):
138492
1384932012-12-11  Pavel Feldman  <pfeldman@chromium.org>
138494
138495        Not reviewed: follow up to r137283: reduce inspector toolbar spacing 1px.
138496
138497        * inspector/front-end/inspector.css:
138498        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
138499        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
138500
1385012012-12-11  Kent Tamura  <tkent@chromium.org>
138502
138503        Refactoring: Rename Element::shouldMatchReadOnlySelector and shouldMatchReadWriteSelector
138504        https://bugs.webkit.org/show_bug.cgi?id=104651
138505
138506        Reviewed by Kentaro Hara.
138507
138508        ':read-only' and ':read-write' are pseudo classes. They are not
138509        selectors in the context of these functions.  This patch rename them so
138510        that they contain 'pseudo class,' and make them match to an existing
138511        function, matchesFocusPseudoClass.
138512
138513        No new tests. This shouldn't make behavior changes.
138514
138515        * css/SelectorChecker.cpp:
138516        (WebCore::SelectorChecker::checkOneSelector):
138517        * dom/Element.cpp:
138518        (WebCore::Element::recalcStyle):
138519        (WebCore::Element::matchesReadOnlyPseudoClass):
138520        (WebCore::Element::matchesReadWritePseudoClass):
138521        * dom/Element.h:
138522        (Element):
138523        * html/HTMLInputElement.cpp:
138524        (WebCore::HTMLInputElement::matchesReadOnlyPseudoClass):
138525        (WebCore::HTMLInputElement::matchesReadWritePseudoClass):
138526        * html/HTMLInputElement.h:
138527        (HTMLInputElement):
138528        * html/HTMLTextAreaElement.cpp:
138529        (WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass):
138530        (WebCore::HTMLTextAreaElement::matchesReadWritePseudoClass):
138531        * html/HTMLTextAreaElement.h:
138532        (HTMLTextAreaElement):
138533        * html/shadow/SliderThumbElement.cpp:
138534        (WebCore::SliderThumbElement::matchesReadOnlyPseudoClass):
138535        (WebCore::SliderThumbElement::matchesReadWritePseudoClass):
138536        * html/shadow/SliderThumbElement.h:
138537        (SliderThumbElement):
138538        * html/shadow/SpinButtonElement.cpp:
138539        (WebCore::SpinButtonElement::matchesReadOnlyPseudoClass):
138540        (WebCore::SpinButtonElement::matchesReadWritePseudoClass):
138541        * html/shadow/SpinButtonElement.h:
138542        (SpinButtonElement):
138543        * rendering/RenderTheme.cpp:
138544        (WebCore::RenderTheme::isReadOnlyControl):
138545
1385462012-12-11  Pavel Feldman  <pfeldman@chromium.org>
138547
138548        Web Inspector: add more horizontal spacing for toolbar items in docked to bottom mode
138549        https://bugs.webkit.org/show_bug.cgi?id=104655
138550
138551        Reviewed by Alexander Pavlov.
138552
138553        Drive-by increase height to 26px.
138554
138555        * inspector/front-end/inspector.css:
138556        (#toolbar):
138557        (body:not(.show-toolbar-icons) .toolbar-item):
138558        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable):
138559        (body.dock-to-bottom:not(.show-toolbar-icons) .toolbar-item.toggleable.toggled-on):
138560        (body.show-toolbar-icons.dock-to-bottom .toolbar-item.toggleable):
138561        (#toolbar-dropdown-arrow):
138562        (#main):
138563
1385642012-12-11  Keishi Hattori  <keishi@webkit.org>
138565
138566        Use histogram enumeration in Calendar Picker so we can get stats on UI usage
138567        https://bugs.webkit.org/show_bug.cgi?id=104646
138568
138569        Reviewed by Kent Tamura.
138570
138571        Use histogram support to get stats on the calendar picker so we can improve the UI.
138572
138573        No new tests.
138574
138575        * Resources/pagepopups/calendarPicker.js:
138576        (CalendarPicker):
138577        (CalendarPicker.prototype.recordAction): Records action to histogram.
138578        (CalendarPicker.prototype.handleToday): Record action.
138579        (CalendarPicker.prototype.handleClear): Ditto.
138580        (YearMonthController.prototype._showPopup): Ditto.
138581        (YearMonthController.prototype._handleYearMonthChange): Ditto.
138582        (YearMonthController.prototype._handleButtonClick): Ditto.
138583        (DaysTable.prototype._handleDayClick): Ditto.
138584        * page/PagePopupController.cpp:
138585        (WebCore::PagePopupController::histogramEnumeration):
138586        (WebCore):
138587        * page/PagePopupController.h:
138588        (PagePopupController):
138589        * page/PagePopupController.idl: Added histogramEnumeration.
138590
1385912012-12-11  Hajime Morrita  <morrita@google.com>
138592
138593        IsActiveFlag, IsHoverFlag, InActiveChainFlag can be unified.
138594        https://bugs.webkit.org/show_bug.cgi?id=103697
138595
138596        Reviewed by Ryosuke Niwa.
138597
138598        To save two more NodeFlags bits, this patch inroduces
138599        UserActionElementSet to get IsLinkFlag, IsHoverFlag,
138600        InActiveChainFlag together. These three old flags are replaced by
138601        UserActionElementSet::ElementFlags and UserActionElementSet
138602        collection which tracks elements which are flagged with one of
138603        a ElementFlags.
138604
138605        When marking an element as active for example, WebKit sets
138606        UserActionElementSet::IsActiveFlag to the element and store it
138607        into corresponding element set of the document. This set maintains
138608        marked elements and corresponding flags for each elements.
138609
138610        UserActionElementSet can be seen as a yet another rare data for
138611        these flags. However, the following characteristics of these flags
138612        make adding a new data structure on Document an attractive
138613        alternative:
138614
138615        - UserActionElementSet is maintained for each Document instead of a
138616          global collecton. This fits element lifetime better.
138617
138618        - The number of elements which have these flags is generally
138619          small, and a group of elements for each flag is largely overlapped
138620          due to its nature. This property keeps the set small, and lets
138621          flag retrieval efficient. On majority of the elements, all these
138622          flags are false thus the check is done by just checking
138623          IsInUserActionFlag.
138624
138625        As a bonus, isFocused flag, which was on NodeRareData, is also moved to this model.
138626
138627        No new tests, covered by existing test.
138628
138629        * CMakeLists.txt:
138630        * GNUmakefile.list.am:
138631        * Target.pri:
138632        * WebCore.gypi:
138633        * WebCore.xcodeproj/project.pbxproj:
138634        * dom/DOMAllInOne.cpp:
138635        * dom/Document.cpp:
138636        (WebCore::Document::removedLastRef):
138637        (WebCore::Document::updateHoverActiveState):
138638        * dom/Document.h:
138639        (WebCore::Document::userActionElements): Added.
138640        (Document):
138641        * dom/Node.cpp:
138642        (WebCore::Node::detach):
138643        * dom/Node.h:
138644        (WebCore):
138645        (WebCore::Node::isUserActionElement): Added.
138646        (WebCore::Node::setUserActionElement): Added.
138647        (Node):
138648        (WebCore::Node::active): Switched to UserActionElementSet.
138649        (WebCore::Node::inActiveChain): Switched to UserActionElementSet.
138650        (WebCore::Node::hovered): Switched to UserActionElementSet.
138651        (WebCore::Node::focused): Switched to UserActionElementSet.
138652        (WebCore::Node::setFocus): Switched to UserActionElementSet.
138653        (WebCore::Node::setActive): Switched to UserActionElementSet.
138654        (WebCore::Node::setHovered): Switched to UserActionElementSet.
138655        * dom/NodeRareData.h:
138656        (WebCore::NodeRareData::NodeRareData):
138657        (NodeRareData):
138658        * dom/UserActionElementSet.cpp: Added.
138659        (WebCore):
138660        (WebCore::UserActionElementSet::instanceFor):
138661        (WebCore::UserActionElementSet::UserActionElementSet):
138662        (WebCore::UserActionElementSet::~UserActionElementSet):
138663        (WebCore::UserActionElementSet::didDetach):
138664        (WebCore::UserActionElementSet::documentDidRemoveLastRef):
138665        (WebCore::UserActionElementSet::hasFlags):
138666        (WebCore::UserActionElementSet::setFlags):
138667        (WebCore::UserActionElementSet::clearFlags):
138668        * dom/UserActionElementSet.h: Added.
138669        (WebCore):
138670        (UserActionElementSet):
138671        (WebCore::UserActionElementSet::create):
138672        (WebCore::UserActionElementSet::isFocused):
138673        (WebCore::UserActionElementSet::setFocused):
138674        (WebCore::UserActionElementSet::isActive):
138675        (WebCore::UserActionElementSet::setActive):
138676        (WebCore::UserActionElementSet::isInActiveChain):
138677        (WebCore::UserActionElementSet::setInActiveChain):
138678        (WebCore::UserActionElementSet::isHovered):
138679        (WebCore::UserActionElementSet::setHovered):
138680        (WebCore::UserActionElementSet::setFlags):
138681
1386822012-12-11  Kent Tamura  <tkent@chromium.org>
138683
138684        INPUT_MULTIPLE_FIELDS_UI: Disable focus navigation by right/left keys in RTL locales
138685        https://bugs.webkit.org/show_bug.cgi?id=104644
138686
138687        Reviewed by Hajime Morita.
138688
138689        Pressing the left key should focus on the field at the left of the
138690        current focused field, and pressing the right key should focus on the
138691        field at the right of the current focused field. This works well in LTR
138692        locales.
138693        In RTL locale, the current code doesn't work. We disable this behavior
138694        for RTL locales for now. This issue will be handled in Bug 104650.
138695
138696        No new tests. Update some *-multiple-fields tests for new behavior.
138697
138698        * html/shadow/DateTimeFieldElement.cpp:
138699        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
138700        If this sub-field is in an RTL locale, we don't change focus.
138701        (WebCore::DateTimeFieldElement::localeForOwner):
138702        Moved from DateTimeNumericFieldElement.
138703        * html/shadow/DateTimeFieldElement.h:
138704        (DateTimeFieldElement): Remove isRTL, add localeForOwner.
138705        * html/shadow/DateTimeNumericFieldElement.cpp: Remove localeForOwner.
138706        * html/shadow/DateTimeNumericFieldElement.h:
138707        (DateTimeNumericFieldElement): Ditto.
138708
1387092012-12-11  Pavel Podivilov  <podivilov@google.com>
138710
138711        Remove pango files deleted at r137263 form WebCore.gypi.
138712
138713        Unreviewed, gardening.
138714
138715        * WebCore.gypi:
138716
1387172012-12-11  Zan Dobersek  <zandobersek@gmail.com>
138718
138719        [GTK] Feature enabling/disabling should be possible through build-webkit
138720        https://bugs.webkit.org/show_bug.cgi?id=99271
138721
138722        Reviewed by Gustavo Noronha Silva.
138723
138724        Move the contents of GNUmakefile.features.am into GNUmakefile.features.am.in.
138725        The former is then copied from the latter but then appropriately modified if
138726        the build-webkit script overrides any of the default feature defines.
138727
138728        No new tests - no new testable functionality.
138729
138730        * GNUmakefile.features.am.in: Renamed from Source/WebCore/GNUmakefile.features.am.
138731
1387322012-12-11  Jinwoo Song  <jinwoo7.song@samsung.com>
138733
138734        [QT][EFL][WK2] Move the GraphicsSurfaceGLX.cpp to common place
138735        https://bugs.webkit.org/show_bug.cgi?id=104433
138736
138737        Reviewed by Kenneth Rohde Christiansen.
138738
138739        QT and EFL are commonly using the GraphicsSurfaceGLX.cpp and
138740        it looks better to move this file to /glx directory.
138741
138742        * PlatformEfl.cmake:
138743        * Target.pri:
138744        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Renamed from Source/WebCore/platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp.
138745        (WebCore):
138746        (OffScreenRootWindow):
138747        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
138748        (WebCore::OffScreenRootWindow::getXWindow):
138749        (WebCore::OffScreenRootWindow::display):
138750        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
138751        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
138752        (GraphicsSurfacePrivate):
138753        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
138754        (WebCore::GraphicsSurfacePrivate::createSurface):
138755        (WebCore::GraphicsSurfacePrivate::createPixmap):
138756        (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
138757        (WebCore::GraphicsSurfacePrivate::makeCurrent):
138758        (WebCore::GraphicsSurfacePrivate::doneCurrent):
138759        (WebCore::GraphicsSurfacePrivate::swapBuffers):
138760        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
138761        (WebCore::GraphicsSurfacePrivate::display):
138762        (WebCore::GraphicsSurfacePrivate::glxPixmap):
138763        (WebCore::GraphicsSurfacePrivate::size):
138764        (WebCore::resolveGLMethods):
138765        (WebCore::GraphicsSurface::platformExport):
138766        (WebCore::GraphicsSurface::platformGetTextureID):
138767        (WebCore::GraphicsSurface::platformCopyToGLTexture):
138768        (WebCore::GraphicsSurface::platformCopyFromTexture):
138769        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
138770        (WebCore::GraphicsSurface::platformFrontBuffer):
138771        (WebCore::GraphicsSurface::platformSwapBuffers):
138772        (WebCore::GraphicsSurface::platformSize):
138773        (WebCore::GraphicsSurface::platformCreate):
138774        (WebCore::GraphicsSurface::platformImport):
138775        (WebCore::GraphicsSurface::platformLock):
138776        (WebCore::GraphicsSurface::platformUnlock):
138777        (WebCore::GraphicsSurface::platformDestroy):
138778        (WebCore::GraphicsSurface::platformBeginPaint):
138779        (WebCore::GraphicsSurface::createReadOnlyImage):
138780
1387812012-12-11  Mike West  <mkwst@chromium.org>
138782
138783        Web Inspector: Evaluate private browsing mode's effect on console messages.
138784        https://bugs.webkit.org/show_bug.cgi?id=104383
138785
138786        Reviewed by Pavel Feldman.
138787
138788        Two sets of console messages are currently gated on private browsing
138789        mode being inactive. This patch centralizes the private browsing checks
138790        in order to apply them equally to all console messages, and changes the
138791        granularity at which they act.
138792
138793        The current checks block the console messages entirely. This patch
138794        blocks only notifications to ChromeClient and ensures that messages
138795        won't be passed to printf where they might end up in system logs.
138796        Notifications to InspectorInstrumentation seem safe; so far as I can
138797        tell, there's no compelling reason to prevent console-based debugging
138798        in private browsing mode. This patch excludes those calls from the
138799        private browsing check.
138800
138801        Test: inspector/console/clients-ignored-in-privatebrowsing.html
138802
138803        * loader/cache/CachedResourceLoader.cpp:
138804        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
138805            Drop the private browsing check.
138806        * page/Console.cpp:
138807        (WebCore::Console::addMessage):
138808            Add private browsing checks to the two ::addMessage variants that
138809            do real work. Ensure that calls to printf and notifications to
138810            ChromeClients are gated on these checks, but always allow
138811            notifications to InspectorInstrumentation.
138812        * page/DOMWindow.cpp:
138813        (WebCore::DOMWindow::printErrorMessage):
138814            Drop the private browsing check.
138815
1388162012-12-10  Dan Winship  <danw@gnome.org>
138817
138818        [Soup] Fix spelling of "initiating" in API.
138819
138820        Reviewed by Martin Robinson.
138821
138822        No new tests (just internal renaming).
138823
138824        * platform/network/ResourceHandle.h:
138825        (ResourceHandle):
138826        * platform/network/soup/ResourceHandleSoup.cpp:
138827        (WebCore):
138828        (WebCore::setSoupRequestInitiatingPageIDFromNetworkingContext):
138829        (WebCore::ResourceHandle::start):
138830        (WebCore::ResourceHandle::getSoupRequestInitiatingPageID):
138831
1388322012-12-10  Martin Robinson  <mrobinson@igalia.com>
138833
138834        [GTK] Remove the Pango backend
138835        https://bugs.webkit.org/show_bug.cgi?id=104569
138836
138837        Reviewed by Daniel Bates.
138838
138839        Remove the Pango backend entirely. The EFL build has no support for it and it's
138840        not really maintained enough for the GTK+ port, now that HarfbuzzNG shapes complex
138841        text when Freetype is the active text rendering backend.
138842
138843        No new tests. This does not change behavior.
138844
138845        * GNUmakefile.am: Remove Pango backend options and move Freetype options to the common list.
138846        * GNUmakefile.list.am: Ditto.
138847        * platform/graphics/FontPlatformData.h:
138848        * platform/graphics/pango/FontCachePango.cpp: Removed.
138849        * platform/graphics/pango/FontCustomPlatformDataPango.cpp: Removed.
138850        * platform/graphics/pango/FontPango.cpp: Removed.
138851        * platform/graphics/pango/FontPlatformData.h: Removed.
138852        * platform/graphics/pango/FontPlatformDataPango.cpp: Removed.
138853        * platform/graphics/pango/GlyphPageTreeNodePango.cpp: Removed.
138854        * platform/graphics/pango/PangoUtilities.cpp: Removed.
138855        * platform/graphics/pango/PangoUtilities.h: Removed.
138856        * platform/graphics/pango/SimpleFontDataPango.cpp: Removed.
138857
1388582012-12-11  Andrey Adaikin  <aandrey@chromium.org>
138859
138860        Web Inspector: [WebGL] prevent GC from collecting WebGLObject instances currently bound to the context state
138861        https://bugs.webkit.org/show_bug.cgi?id=104119
138862
138863        Reviewed by Pavel Feldman.
138864
138865        This is to prevent GC from collecting resources bound to a context (WebGL or 2D).
138866        Otherwise, for example in WebGL, subsequent calls to gl.getParameter() may return a recently created
138867        instance that is no longer bound to a Resource object (thus, no history to replay it later).
138868
138869        * inspector/InjectedScriptCanvasModuleSource.js:
138870        (.):
138871
1388722012-12-11  Zan Dobersek  <zandobersek@gmail.com>
138873
138874        Unreviewed build fix after r137243.
138875
138876        * bindings/gobject/GNUmakefile.am:
138877
1388782012-12-10  No'am Rosenthal  <noam@webkit.org>
138879
138880        REGRESSION (r137006): CSS clip on solid color composited div broken
138881        https://bugs.webkit.org/show_bug.cgi?id=104604
138882
138883        Reviewed by Simon Fraser.
138884
138885        Disable direct compositing of background color for clipping layers.
138886
138887        Test: compositing/geometry/clip-inside.html
138888
138889        * rendering/RenderLayerBacking.cpp:
138890        (WebCore::supportsDirectBoxDecorationsComposition):
138891            Never allow direct background composition if there is a clip.
138892
1388932012-12-10  Simon Fraser  <simon.fraser@apple.com>
138894
138895        REGRESSION (r137215): WebKit stretches and shrinks a part of screen on scroll
138896        https://bugs.webkit.org/show_bug.cgi?id=104626
138897
138898        Reviewed by Beth Dakin.
138899
138900        r137215 removed a compositing layer repaint on size changes. However, there
138901        are cases where the compositing code constrains layer size by clipping
138902        with the viewport and a clipping ancestor. When that happens, we must
138903        invalidate the layer on a size change to avoid showing stretched or
138904        shrunken content.
138905
138906        Test: compositing/repaint/clipped-layer-size-change.html
138907
138908        * rendering/RenderLayerBacking.cpp:
138909        (WebCore::RenderLayerBacking::RenderLayerBacking):
138910        (WebCore::RenderLayerBacking::updateCompositedBounds):
138911        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
138912        * rendering/RenderLayerBacking.h:
138913        (RenderLayerBacking):
138914
1389152012-12-10  Dean Jackson  <dino@apple.com>
138916
138917        Remove old WebKit Animation API code
138918        https://bugs.webkit.org/show_bug.cgi?id=104611
138919
138920        Reviewed by Simon Fraser.
138921
138922        Remove the existing, unused animation API code. We'll look into
138923        implementing the W3C Animation API if/when it is stable.
138924
138925        * CMakeLists.txt: Remove WebKitAnimation and WebKitAnimationList classes.
138926        * DerivedSources.cpp:
138927        * DerivedSources.make:
138928        * DerivedSources.pri:
138929        * GNUmakefile.list.am:
138930        * Target.pri:
138931        * UseJSC.cmake:
138932        * UseV8.cmake:
138933        * WebCore.gypi:
138934        * WebCore.vcproj/WebCore.vcproj:
138935        * WebCore.xcodeproj/project.pbxproj:
138936        * bindings/js/JSBindingsAllInOne.cpp: Remove includes.
138937        * bindings/js/JSWebKitAnimationCustom.cpp: Removed.
138938        * bindings/js/JSWebKitAnimationListCustom.cpp: Removed.
138939        * dom/Element.cpp: Remove API.
138940        * dom/Element.h: Ditto.
138941        * dom/Element.idl: Ditto.
138942        * page/DOMWindow.idl: Ditto.
138943        * page/WebKitAnimation.cpp: Removed.
138944        * page/WebKitAnimation.h: Removed.
138945        * page/WebKitAnimation.idl: Removed.
138946        * page/WebKitAnimationList.cpp: Removed.
138947        * page/WebKitAnimationList.h: Removed.
138948        * page/WebKitAnimationList.idl: Removed.
138949        * page/animation/AnimationController.cpp: Remove API.
138950        * page/animation/AnimationController.h: Ditto.
138951        * page/animation/AnimationControllerPrivate.h: Ditto.
138952        * page/animation/CompositeAnimation.cpp: Ditto.
138953        * page/animation/CompositeAnimation.h: Ditto.
138954
1389552012-12-10  Jessie Berlin  <jberlin@apple.com>
138956
138957        Fix the Mac build after r137233
138958
138959        * html/shadow/HTMLShadowElement.h:
138960        Remove a declaration of a member variable that was moved to the InsertionPoint superclass.
138961
1389622012-12-10  KyungTae Kim  <ktf.kim@samsung.com>
138963
138964        Build fix after r137221
138965        https://bugs.webkit.org/show_bug.cgi?id=104617
138966
138967        Unreviewed build fix
138968
138969        * html/HTMLPropertiesCollection.cpp:
138970        (WebCore::nextNodeWithProperty):
138971
1389722012-12-10  Hajime Morrita  <morrita@google.com>
138973
138974        [Shadow DOM][Refactoring] HTMLContentElement,HTMLShadowElement::m_registeredWithShadowRoot should be moved to InsertionPoint
138975        https://bugs.webkit.org/show_bug.cgi?id=104516
138976
138977        Reviewed by Dimitri Glazkov.
138978
138979        This change pulls duplicated code in removedFrom() and
138980        insertedInto() of both both HTMLShadowElement and
138981        HTMLContentElement to their super class InsertionPoint.
138982
138983        This is a part of effor that encapsulate node distribution algorithm to
138984        ContentDistributor and its family.
138985
138986        No new tests, no behavior change.
138987
138988        * dom/ShadowRoot.cpp:
138989        (WebCore::ShadowRoot::registerInsertionPoint): Added.
138990        (WebCore::ShadowRoot::unregisterInsertionPoint): Added.
138991        * dom/ShadowRoot.h:
138992        (ShadowRoot):
138993        * html/shadow/ContentDistributor.cpp:
138994        (WebCore::ShadowRootContentDistributionData::regiterInsertionPoint): Generalized two methods for <content> and <shadow>.
138995        (WebCore):
138996        (WebCore::ShadowRootContentDistributionData::unregisterInsertionPoint): Ditto.
138997        * html/shadow/ContentDistributor.h:
138998        (ShadowRootContentDistributionData):
138999        * html/shadow/HTMLContentElement.cpp:
139000        (WebCore::HTMLContentElement::HTMLContentElement):
139001        * html/shadow/HTMLContentElement.h:
139002        * html/shadow/HTMLShadowElement.cpp:
139003        (WebCore::HTMLShadowElement::HTMLShadowElement):
139004        * html/shadow/HTMLShadowElement.h:
139005        * html/shadow/InsertionPoint.cpp:
139006        (WebCore::InsertionPoint::InsertionPoint):
139007        (WebCore::InsertionPoint::insertedInto): Pulled up from subclasses
139008        (WebCore::InsertionPoint::removedFrom): Pulled up from subclasses
139009        * html/shadow/InsertionPoint.h:
139010        (InsertionPoint):
139011
1390122012-12-10  Jon Lee  <jonlee@apple.com>
139013
139014        Keep track of plug-in snapshots clicked by user
139015        https://bugs.webkit.org/show_bug.cgi?id=103206
139016        <rdar://problem/12746483>
139017
139018        Reviewed by Anders Carlsson.
139019
139020        * html/HTMLPlugInImageElement.cpp:
139021        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initially the hash is
139022        unknown. Set to 0. Move the check for whether to snapshot the plugin into the
139023        new function subframeLoaderWillLoadPlugIn.
139024        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Rename
139025        setPendingClickEvent to userDidClickSnapshot. In addition to holding onto the
139026        click event used to activate the plug-in, the function now also tells the plug-in
139027        client to add the origin hash as an auto-start origin.
139028        (WebCore::HTMLPlugInImageElement::subframeLoaderWillLoadPlugIn): Calculate the
139029        hash based on the provided URL, which is the URL the plug-in will load. Extend
139030        the check that used to be in the constructor to see if the plug-in should not
139031        automatically load, including checking the plug-in size and whether the hash
139032        is an auto-start origin.
139033        * html/HTMLPlugInImageElement.h: Rename setPendingClickEvent to userDidClickSnapshot
139034        and add a variable for the origin hash.
139035
139036        * loader/SubframeLoader.cpp:
139037        (WebCore::SubframeLoader::requestPlugin): When the loader is about to load the
139038        plug-in, pass the URL to the element, so that it can calculate the hash.
139039
139040        * page/Page.cpp:
139041        (WebCore::Page::Page): Take the plugInClient from the page clients.
139042        (WebCore::Page::~Page): If the client exists, tell it that the page is being
139043        destroyed.
139044        (WebCore::Page::PageClients::PageClients): Initialize this optional client to
139045        null.
139046        * page/Page.h: Add PlugInClient to page clients.
139047        (PageClients): Add PlugInClient variable.
139048        (WebCore::Page::plugInClient):
139049        * page/PlugInClient.h: Added.
139050
139051        * rendering/RenderSnapshottedPlugIn.cpp:
139052        (WebCore::RenderSnapshottedPlugIn::handleEvent): Call the renamed function
139053        userDidClickSnapshot().
139054        (WebCore::RenderSnapshottedPlugIn::layout): Move the check of the plug-in size
139055        to subframeLoaderWillLoadPlugIn.
139056
139057        Add PlugInClient.h.
139058        * GNUmakefile.list.am:
139059        * Target.pri:
139060        * WebCore.vcproj/WebCore.vcproj:
139061        * WebCore.xcodeproj/project.pbxproj:
139062
1390632012-12-10  Antti Koivisto  <antti@apple.com>
139064
139065        Not reviewed.
139066        
139067        Build fix.
139068
139069        * html/HTMLPropertiesCollection.cpp:
139070        (WebCore::nextNodeWithProperty):
139071        * page/TouchDisambiguation.cpp:
139072        (WebCore::boundingBoxForEventNodes):
139073
1390742012-12-10  Beth Dakin  <bdakin@apple.com>
139075
139076        https://bugs.webkit.org/show_bug.cgi?id=104602
139077        DidHitRelevantRepaintedObjectsAreaThreshold LayoutMilestone fires too 
139078        early on some pages with iframes
139079
139080        Reviewed by Simon Fraser.
139081
139082        This change makes it so that any RenderObjects inside iframes are not 
139083        considered relevant.
139084        * page/Page.cpp:
139085        (WebCore::Page::addRelevantRepaintedObject):
139086
1390872012-12-10  David Grogan  <dgrogan@chromium.org>
139088
139089        IndexedDB: Propagate more leveldb errors to script
139090        https://bugs.webkit.org/show_bug.cgi?id=104422
139091
139092        Reviewed by Tony Chang.
139093
139094        These are the last places that ignore leveldb errors that can get the
139095        usual ok/found treatment.
139096
139097        Nothing called getBool, so it is deleted.
139098
139099        * Modules/indexeddb/IDBBackingStore.cpp:
139100        (WebCore):
139101        (WebCore::getInt):
139102        (WebCore::isSchemaKnown):
139103        (WebCore::setUpMetadata):
139104        (WebCore::getMaxObjectStoreId):
139105        (WebCore::IDBBackingStore::open):
139106        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
139107        (WebCore::getNewDatabaseId):
139108        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
139109        (WebCore::setMaxObjectStoreId):
139110        (WebCore::getNewVersionNumber):
139111        (WebCore::IDBBackingStore::putRecord):
139112        (WebCore::setMaxIndexId):
139113        * Modules/indexeddb/IDBBackingStore.h:
139114        (IDBBackingStore):
139115        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
139116        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
139117        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
139118
1391192012-12-09  Antti Koivisto  <antti@apple.com>
139120
139121        Factor node traversal into standalone functions
139122        https://bugs.webkit.org/show_bug.cgi?id=104507
139123
139124        Reviewed by Eric Seidel.
139125
139126        Node traversal functions are currently Node and ContainerNode members. Their implementations
139127        are confusingly scattered over multiple header and source files. These functions have no particular
139128        reason to be members as they don't require non-public access. They should be made freestanding
139129        function instead and gathered together.
139130        
139131        This patch adds NodeTraversal namespace, defined in NodeTraversal.h. It contains freestanding
139132        functions for traversing Nodes. Most popular functions are inlined (as before) and
139133        there are ContainerNode specific specializations (as before).
139134        
139135        In client code
139136        
139137            node = node->traverseNextNode();
139138            node = node->traverseNextSibling();
139139        
139140        becomes
139141        
139142            node = NodeTraversal::next(node);
139143            node = NodeTraversal::nextSkippingChildren(node);
139144            
139145        etc.
139146
139147        * WebCore.exp.in:
139148        * WebCore.xcodeproj/project.pbxproj:
139149        * accessibility/AccessibilityNodeObject.cpp:
139150        (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
139151        * accessibility/AccessibilityObject.cpp:
139152        (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
139153        * accessibility/AccessibilityRenderObject.cpp:
139154        (WebCore::AccessibilityRenderObject::addImageMapChildren):
139155        * bindings/js/JSDocumentCustom.cpp:
139156        (WebCore::toJS):
139157        * css/SelectorChecker.cpp:
139158        (WebCore::SelectorChecker::allVisitedStateChanged):
139159        (WebCore::SelectorChecker::visitedStateChanged):
139160        * css/StyleInvalidationAnalysis.cpp:
139161        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
139162        * dom/ContainerNode.cpp:
139163        (WebCore::dispatchChildInsertionEvents):
139164        (WebCore::dispatchChildRemovalEvents):
139165        * dom/ContainerNode.h:
139166        (ContainerNode):
139167        (WebCore):
139168        * dom/ContainerNodeAlgorithms.h:
139169        (WebCore::ChildFrameDisconnector::collectDescendant):
139170        * dom/Document.cpp:
139171        (WebCore::Document::buildAccessKeyMap):
139172        (WebCore::Document::removeAllEventListeners):
139173        (WebCore::Document::updateBaseURL):
139174        (WebCore::Document::processBaseElement):
139175        (WebCore::Document::nodeAbsIndex):
139176        (WebCore::Document::nodeWithAbsIndex):
139177        (WebCore::Document::getFocusableNodes):
139178        * dom/DocumentMarkerController.cpp:
139179        (WebCore::DocumentMarkerController::markersInRange):
139180        (WebCore::DocumentMarkerController::setMarkersActive):
139181        (WebCore::DocumentMarkerController::hasMarkers):
139182        (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
139183        * dom/DocumentOrderedMap.cpp:
139184        (WebCore::DocumentOrderedMap::get):
139185        * dom/ElementShadow.cpp:
139186        (WebCore::ElementShadow::collectSelectFeatureSetFrom):
139187        * dom/Node.cpp:
139188        (WebCore::Node::normalize):
139189        (WebCore::Node::lazyAttach):
139190        (WebCore):
139191        (WebCore::Node::detach):
139192        (WebCore::traverseTreeAndMark):
139193        * dom/Node.h:
139194        (Node):
139195        * dom/NodeIterator.cpp:
139196        (WebCore::NodeIterator::NodePointer::moveToNext):
139197        (WebCore::NodeIterator::NodePointer::moveToPrevious):
139198        (WebCore::NodeIterator::updateForNodeRemoval):
139199        * dom/NodeTraversal.h: Added.
139200        (WebCore):
139201        (NodeTraversal):
139202        (WebCore::NodeTraversal::traverseNextNodeTemplate):
139203        (WebCore::NodeTraversal::next):
139204        (WebCore::NodeTraversal::traverseNextSiblingTemplate):
139205        (WebCore::NodeTraversal::nextSibling):
139206        * dom/Range.cpp:
139207        (WebCore::Range::toString):
139208        (WebCore::Range::checkDeleteExtract):
139209        (WebCore::Range::firstNode):
139210        (WebCore::Range::pastLastNode):
139211        (WebCore::Range::textRects):
139212        (WebCore::Range::textQuads):
139213        (WebCore::Range::getBorderAndTextQuads):
139214        * dom/TreeScope.cpp:
139215        (WebCore::TreeScope::labelElementForId):
139216        (WebCore::TreeScope::findAnchor):
139217        * dom/TreeScopeAdopter.cpp:
139218        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
139219        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
139220        * dom/TreeWalker.cpp:
139221        (WebCore::TreeWalker::nextNode):
139222        * editing/ApplyStyleCommand.cpp:
139223        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
139224        (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
139225        (WebCore::containsNonEditableRegion):
139226        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
139227        (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
139228        (WebCore::ApplyStyleCommand::removeInlineStyle):
139229        * editing/BreakBlockquoteCommand.cpp:
139230        (WebCore::BreakBlockquoteCommand::doApply):
139231        * editing/CompositeEditCommand.cpp:
139232        (WebCore::CompositeEditCommand::deleteInsignificantText):
139233        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
139234        * editing/DeleteSelectionCommand.cpp:
139235        (WebCore::firstEditablePositionInNode):
139236        (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
139237        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
139238        * editing/EditCommand.cpp:
139239        (WebCore::SimpleEditCommand::addNodeAndDescendants):
139240        * editing/EditingStyle.cpp:
139241        (WebCore::EditingStyle::triStateOfStyle):
139242        (WebCore::EditingStyle::textDirectionForSelection):
139243        * editing/Editor.cpp:
139244        (WebCore::Editor::simplifyMarkup):
139245        * editing/FrameSelection.cpp:
139246        (WebCore::scanForForm):
139247        (WebCore::FrameSelection::setSelectionFromNone):
139248        * editing/InsertParagraphSeparatorCommand.cpp:
139249        (WebCore::InsertParagraphSeparatorCommand::doApply):
139250        * editing/ReplaceSelectionCommand.cpp:
139251        (WebCore::ReplacementFragment::removeUnrenderedNodes):
139252        (WebCore::ReplacementFragment::removeInterchangeNodes):
139253        (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):
139254        (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
139255        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
139256        (WebCore::removeHeadContents):
139257        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
139258        * editing/ReplaceSelectionCommand.h:
139259        (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
139260        * editing/SimplifyMarkupCommand.cpp:
139261        (WebCore::SimplifyMarkupCommand::doApply):
139262        * editing/TextIterator.cpp:
139263        (WebCore::TextIterator::advance):
139264        (WebCore::shouldEmitNewlineAfterNode):
139265        * editing/htmlediting.cpp:
139266        (WebCore::hasARenderedDescendant):
139267        * editing/mac/EditorMac.mm:
139268        (WebCore::Editor::fontForSelection):
139269        * editing/markup.cpp:
139270        (WebCore::completeURLs):
139271        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
139272        (WebCore::findNodesSurroundingContext):
139273        (WebCore::trimFragment):
139274        * editing/visible_units.cpp:
139275        (WebCore::startOfParagraph):
139276        (WebCore::endOfParagraph):
139277        * html/HTMLCollection.cpp:
139278        (WebCore::nextNode):
139279        * html/HTMLElement.cpp:
139280        (WebCore::setHasDirAutoFlagRecursively):
139281        (WebCore::HTMLElement::directionality):
139282        (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
139283        (WebCore::HTMLElement::getItemRefElements):
139284        * html/HTMLFieldSetElement.cpp:
139285        (WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
139286        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
139287        * html/HTMLFormElement.cpp:
139288        (WebCore::HTMLFormElement::formElementIndex):
139289        * html/HTMLLabelElement.cpp:
139290        (WebCore::HTMLLabelElement::control):
139291        * html/HTMLLegendElement.cpp:
139292        (WebCore::HTMLLegendElement::associatedControl):
139293        * html/HTMLMapElement.cpp:
139294        (WebCore::HTMLMapElement::mapMouseEvent):
139295        * html/HTMLNameCollection.cpp:
139296        (WebCore::HTMLNameCollection::virtualItemAfter):
139297        * html/HTMLOptionElement.cpp:
139298        (WebCore::HTMLOptionElement::collectOptionInnerText):
139299        * html/HTMLPropertiesCollection.cpp:
139300        (WebCore::nextNodeWithProperty):
139301        * html/HTMLSelectElement.cpp:
139302        (WebCore::HTMLSelectElement::recalcListItems):
139303        * html/HTMLTextFormControlElement.cpp:
139304        (WebCore::HTMLTextFormControlElement::selection):
139305        (WebCore::HTMLTextFormControlElement::innerTextValue):
139306        (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
139307        * html/RadioInputType.cpp:
139308        (WebCore::RadioInputType::handleKeydownEvent):
139309        * html/shadow/ContentDistributor.cpp:
139310        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
139311        * inspector/InspectorDOMAgent.cpp:
139312        (WebCore::InspectorDOMAgent::performSearch):
139313        * inspector/InspectorMemoryAgent.cpp:
139314        * page/FocusController.cpp:
139315        (WebCore::FocusController::findFocusCandidateInContainer):
139316        * page/Frame.cpp:
139317        (WebCore::Frame::searchForLabelsAboveCell):
139318        (WebCore::Frame::searchForLabelsBeforeElement):
139319        * rendering/RenderNamedFlowThread.cpp:
139320        (WebCore::RenderNamedFlowThread::getRanges):
139321        * svg/SVGSVGElement.cpp:
139322        (WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
139323        (WebCore::SVGSVGElement::getElementById):
139324        * svg/SVGUseElement.cpp:
139325        (WebCore::removeDisallowedElementsFromSubtree):
139326        * svg/animation/SMILTimeContainer.cpp:
139327        (WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
139328        * xml/XPathNodeSet.cpp:
139329        (WebCore::XPath::NodeSet::traversalSort):
139330        * xml/XPathStep.cpp:
139331        (WebCore::XPath::Step::nodesInAxis):
139332        * xml/XPathUtil.cpp:
139333        (WebCore::XPath::stringValue):
139334
1393352012-12-10  Min Qin  <qinmin@chromium.org>
139336
139337        Sending multi-touch events to the same Iframe
139338        https://bugs.webkit.org/show_bug.cgi?id=97973
139339
139340        Reviewed by Dimitri Glazkov.
139341
139342        Multi-Touch in different iframe can give both documents access to each other.
139343        This could cause cross-origin access. To solve this, all the touch events should
139344        be sent to the iframe where the first touchstart happens.
139345
139346        Test: fast/events/touch/multi-touch-inside-iframes.html
139347              fast/events/touch/multi-touch-inside-nested-iframes.html
139348
139349        * page/EventHandler.cpp:
139350        (WebCore::EventHandler::handleTouchEvent):
139351        * page/EventHandler.h:
139352
1393532012-12-10  KyungTae Kim  <ktf.kim@samsung.com>
139354
139355        [soup] Fix build warning in ResourceHandleSoup.cpp
139356        https://bugs.webkit.org/show_bug.cgi?id=104605
139357
139358        Reviewed by Martin Robinson.
139359
139360        The nextMultipartResponsePartCallback has unused parameter 'source',
139361        comment out it to fix 'unused parameter' build warning.
139362
139363        * platform/network/soup/ResourceHandleSoup.cpp:
139364        (WebCore::nextMultipartResponsePartCallback):
139365
1393662012-12-10  Simon Fraser  <simon.fraser@apple.com>
139367
139368        Fix frame border painting in tiled drawing mode
139369        https://bugs.webkit.org/show_bug.cgi?id=104453
139370        <rdar://problem/11678611>
139371
139372        Reviewed by Dan Bernstein.
139373
139374        Frame borders were not correctly invalidated when in tiled drawing mode, because
139375        RenderFrameSet::layout() invalidated directly on the view, which skips the tile
139376        cache.
139377        
139378        Fix by invalidating like all other renderers, via the repaint container.
139379        
139380        Also, the layer transform should be updated before the invalidation, and
139381        we make use of RenderObject::updateLayerTransform() which has the same behavior
139382        as the old code.
139383
139384        Attempts to make a layout test failed. Resizing composited framesets repainted
139385        via layer resizing, and an attempt to make a ref test in tiled drawing mode
139386        failed (the test passed without the patch).
139387
139388        * rendering/RenderFrameSet.cpp:
139389        (WebCore::RenderFrameSet::layout):
139390
1393912012-12-10  Simon Fraser  <simon.fraser@apple.com>
139392
139393        When converting a layer into a tiled layer, ensure that we update the visible rect
139394        https://bugs.webkit.org/show_bug.cgi?id=104467
139395
139396        Reviewed by Darin Adler.
139397
139398        When a GraphicsLayerCA toggles to use a TileCache, we have to ensure that the
139399        layer's visible rect (which is used to ensure tile coverage) is updated in
139400        the same commit. Otherwise we can get blank layers until something else causes
139401        the visible rect to be updated.
139402
139403        Test: compositing/tiling/tiled-layer-resize.html
139404
139405        * platform/graphics/ca/GraphicsLayerCA.cpp:
139406        (WebCore::GraphicsLayerCA::dumpAdditionalProperties): With the debug flag, dump the TiledBacking
139407        address for ease of debugging.
139408        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Set the VisibleRectChanged bit in
139409        m_uncommittedChanges if we've just switched to a tiled layer.
139410
1394112012-12-10  Simon Fraser  <simon.fraser@apple.com>
139412
139413        Don't unconditionally repaint compositing layers when their size changes
139414        https://bugs.webkit.org/show_bug.cgi?id=104461
139415
139416        Reviewed by Sam Weinig.
139417
139418        RenderLayerBacking always repainted the entire compositing layer when its size
139419        changed. This was done to fix repaint issues when outline widths changes, but
139420        that issue is now solved by repainting in GraphicsLayer::setOffsetFromRenderer(),
139421        add in r134628. I believe this is no longer necessary.
139422        
139423        Always repainting when the size changes is terrible for the tile cache when
139424        loading large documents, as all tiles repaint every time the document gets
139425        longer.
139426
139427        Test: compositing/repaint/resize-repaint.html
139428
139429        * rendering/RenderLayerBacking.cpp:
139430        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
139431
1394322012-12-10  Ojan Vafai  <ojan@chromium.org>
139433
139434        Unreviewed, rolling out r134150.
139435        http://trac.webkit.org/changeset/134150
139436        https://bugs.webkit.org/show_bug.cgi?id=99940
139437
139438        Caused JS-based tooltips to remain during scroll on Facebook
139439        and Gmail. Rollout until I have time to experiment with less
139440        aggresive approaches.
139441
139442        * page/EventHandler.cpp:
139443        (WebCore):
139444        (WebCore::MaximumDurationTracker::MaximumDurationTracker):
139445        (WebCore::MaximumDurationTracker::~MaximumDurationTracker):
139446        (MaximumDurationTracker):
139447        (WebCore::EventHandler::EventHandler):
139448        (WebCore::EventHandler::clear):
139449        (WebCore::EventHandler::mouseMoved):
139450        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
139451        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
139452        * page/EventHandler.h:
139453        (EventHandler):
139454        * platform/Timer.h:
139455
1394562012-12-10  Yi Shen  <max.hong.shen@gmail.com>
139457
139458        Keyboard caret movement in textarea with RTL Override Character can make tab unresponsive
139459        https://bugs.webkit.org/show_bug.cgi?id=103067
139460
139461        Reviewed by Ryosuke Niwa.
139462
139463        For textarea with RTL override character, the line break could be the previous leaf InlineTextBox of
139464        the InlineTextBox for the RTL override text. When overshots the left/right, make sure the 
139465        leftVisuallyDistinctCandidate and rightVisuallyDistinctCandidate return the visually distinct 
139466        left/right position by ignoring the line break.
139467
139468        Test: editing/selection/move-by-character-crash-test-textarea.html
139469
139470        * editing/VisiblePosition.cpp:
139471        (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
139472        (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
139473
1394742012-12-10  Kondapally Kalyan  <kalyan.kondapally@intel.com>
139475
139476        [EFL][WebGL] Minor Refactoring in GraphicsContext3DEfl.
139477        https://bugs.webkit.org/show_bug.cgi?id=104553.
139478
139479        Reviewed by Kenneth Rohde Christiansen.
139480
139481        We use different FBO for canvas and offscreen surface of our platform layer.
139482        Thus we need to manage any bound buffers while copying contents to the surface. Currently, Surface
139483        always uses double buffering but in future we should be able to configure it to use either
139484        double or single buffer. For these use cases, it would be handy to bind buffers directly to
139485        FBO used by the surface. This patch does the needed changes in GraphicsContext3DEfl and
139486        PlatformSurface. Also, removes some unused code.
139487
139488        Covered by existing tests.
139489
139490        Relevant changes in GraphicsContext3DEfl to obtain FBO id from PlatformSurface.
139491        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
139492        (WebCore::GraphicsContext3D::GraphicsContext3D):
139493        (WebCore::GraphicsContext3D::~GraphicsContext3D):
139494
139495        Renamed createGraphicsSurface to didResizeCanvas.
139496        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
139497        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
139498        (GraphicsContext3DPrivate::didResizeCanvas):
139499        (GraphicsContext3DPrivate::copyToGraphicsSurface):
139500        * platform/graphics/efl/GraphicsContext3DPrivate.h:
139501        (GraphicsContext3DPrivate):
139502
139503        Header cleanup.
139504        * platform/graphics/opengl/GLDefs.h:
139505        * platform/graphics/opengl/GLPlatformContext.cpp:
139506        (WebCore::GLPlatformContext::createContext):
139507        * platform/graphics/opengl/GLPlatformContext.h:
139508
139509        Added initialize method to expose FBO id of the surface.
139510        Removed unused code.
139511        * platform/graphics/opengl/GLPlatformSurface.cpp:
139512        (WebCore::GLPlatformSurface::initialize):
139513        (WebCore):
139514        (WebCore::GLPlatformSurface::updateContents):
139515        * platform/graphics/opengl/GLPlatformSurface.h:
139516        (GLPlatformSurface):
139517        * platform/graphics/surfaces/glx/GLXSurface.h:
139518
1395192012-12-07  Simon Fraser  <simon.fraser@apple.com>
139520
139521        Tidy up the tiled scrolling indicator, fix with zooming
139522        https://bugs.webkit.org/show_bug.cgi?id=104386
139523
139524        Reviewed by Tim Horton.
139525
139526        Fix the tiled scrolling indicator to not get tiny when zooming,
139527        to not poke out of the bottom of the window, and to not look
139528        so crappy.
139529
139530        * platform/graphics/ca/mac/TileCache.mm:
139531        (WebCore::TileCache::updateTileCoverageMap):
139532        (WebCore::TileCache::drawTileMapContents):
139533
1395342012-12-10  Sheriff Bot  <webkit.review.bot@gmail.com>
139535
139536        Unreviewed, rolling out r136817.
139537        http://trac.webkit.org/changeset/136817
139538        https://bugs.webkit.org/show_bug.cgi?id=104596
139539
139540        This patch was an unnecessarily complex solution to handling
139541        conversion of union types. (Requested by mpruett on #webkit).
139542
139543        * bindings/js/JSDictionary.cpp:
139544        (WebCore::JSDictionary::convertValue):
139545        * bindings/js/JSDictionary.h:
139546        (WebCore::JSDictionary::tryGetPropertyAndResult):
139547
1395482012-12-10  Tab Atkins  <tabatkins@google.com>
139549
139550        Deprecate prefixed linear-gradient and radial-gradient functions
139551        https://bugs.webkit.org/show_bug.cgi?id=104591
139552
139553        Reviewed by Dean Jackson.
139554
139555        Rename the old gradient parsing functions in anticipation of functions that parse the new syntax.
139556
139557        No new tests added - this is a rename and has no functionality change.
139558
139559        * css/CSSParser.cpp:
139560        (WebCore::CSSParser::parseDeprecatedLinearGradient):
139561        (WebCore::CSSParser::parseDeprecatedRadialGradient):
139562        (WebCore::CSSParser::parseGeneratedImage):
139563        * css/CSSParser.h:
139564
1395652012-12-10  Mark Pilgrim  <pilgrim@chromium.org>
139566
139567        [Chromium][Win] Remove theme-related functions from PlatformSupport
139568        https://bugs.webkit.org/show_bug.cgi?id=102699
139569
139570        Reviewed by Adam Barth.
139571
139572        Call theme engine directly instead of going through
139573        PlatformSupport. Part of a refactoring series. See tracking bug 82948.
139574
139575        * platform/chromium/PlatformSupport.h:
139576        (PlatformSupport):
139577        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
139578        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
139579        (WebCore::ScrollbarThemeChromiumWin::paintButton):
139580        * rendering/RenderThemeChromiumWin.cpp:
139581        (WebCore):
139582        (WebCore::RenderThemeChromiumWin::paintButton):
139583        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
139584        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
139585        (WebCore::RenderThemeChromiumWin::paintMenuList):
139586        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
139587        (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
139588        (WebCore::RenderThemeChromiumWin::paintProgressBar):
139589
1395902012-12-10  Dean Jackson  <dino@apple.com>
139591
139592        Support for CSS widows and orphans
139593        https://bugs.webkit.org/show_bug.cgi?id=9410
139594
139595        Reviewed by Darin Adler.
139596
139597        The CSS 'widow' and 'orphan' properties were supported by the parser and
139598        style system, but were not actually doing anything in layout. Now they do!
139599
139600        In order to not break existing content, I unfortunately had to go against
139601        the specification and change our default value from 2 to auto. A value of
139602        auto means that widows and orphans will not cause any page/column breaks.
139603
139604        Supporting orphans was a small change. During line layout, if we realise
139605        we need to move to a new page in a situation that would create an orphan,
139606        move the entire block to the new page. There was already code to do this.
139607
139608        Support for widows was trickier. When we finish laying out a block, count
139609        the number of hanging lines. If we've created a widow, and there are enough
139610        available lines on the previous page, then steal some and remember the line
139611        to break at. Trigger a relayout. Then notice the line that was marked for
139612        breaking and avoid the widow. This means some blocks go through layout
139613        twice, but as long as the widow value is small it shouldn't be a huge penalty.
139614
139615        Tests: fast/multicol/widows-and-orphans.html (new test)
139616               printing/page-break-orphans.html
139617               printing/page-break-orphans-and-widows.html
139618               printing/page-break-widows.html
139619
139620        * css/CSSComputedStyleDeclaration.cpp:
139621        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Return CSSValueAuto for widows and orphans if necessary.
139622        * css/CSSParser.cpp:
139623        (WebCore::CSSParser::parseValue): Support "auto" in widow and orphan property parsing.
139624        * css/StyleBuilder.cpp:
139625        (WebCore::StyleBuilder::StyleBuilder): Change property handler to something that supports auto.
139626        * page/animation/CSSPropertyAnimation.cpp:
139627        (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add widows and orphans to the animation map.
139628        * rendering/RenderBlock.cpp:
139629        (WebCore::RenderBlock::layoutBlockChild): Detect if we've caused a widow-fixing break, and request relayout evaluation.
139630        (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): Test for a widow-fixing line.
139631        (WebCore::RenderBlock::setBreakAtLineToAvoidWidow): New function to remember where we should break on next layout.
139632        (WebCore::RenderBlock::adjustLinePositionForPagination): Move the entire block to a new page if this would create an orphan.
139633        * rendering/RenderBlock.h:
139634        (WebCore::RenderBlock::shouldBreakAtLineToAvoidWidow): New function to indicate if we are remembering a widow.
139635        (WebCore::RenderBlock::clearShouldBreakAtLineToAvoidWidow): Reset the line breaks.
139636        (WebCore::RenderBlock::lineBreakToAvoidWidow):
139637        (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData): Add a flag for indicating if we are remembering a line, and the actual line itself.
139638        * rendering/RenderBlockLineLayout.cpp:
139639        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): The code to detect and fix widows. Explained above.
139640        * rendering/style/RenderStyle.h: New methods for indicating if widows and orphans are non-default values.
139641        * rendering/style/StyleRareInheritedData.cpp: Ditto.
139642        * rendering/style/StyleRareInheritedData.h: Ditto.
139643
1396442012-12-10  Zan Dobersek  <zandobersek@gmail.com>
139645
139646        REGRESSION (r118735): svg/dom/complex-svgView-specification.html, svg/dom/SVGViewSpec.html, svg/dom/viewspec-parser.html failing on GTK Linux 64-bit Release
139647        https://bugs.webkit.org/show_bug.cgi?id=87734
139648
139649        Reviewed by Martin Robinson.
139650
139651        Don't modify ResourceRequest's URL to have the value of the (encoded)
139652        URI of the SoupMessage. The only exception is in the case of cancelled
139653        SoupMessage - the URL of the ResourceRequest should then be null.
139654
139655        No new tests - existing tests should show no regressions.
139656
139657        * platform/network/soup/ResourceRequestSoup.cpp:
139658        (WebCore::ResourceRequest::updateFromSoupMessage):
139659
1396602012-12-10  Gustavo Noronha Silva  <gns@gnome.org>
139661
139662        Unreviewed distcheck fix.
139663
139664        * GNUmakefile.list.am:
139665
1396662012-12-10  Eric Seidel  <eric@webkit.org>
139667
139668        Caused crashes in v8.  Rolling out until abarth can fix.  See cr-issue 165136 for more info
139669        https://bugs.webkit.org/show_bug.cgi?id=104575
139670
139671        Unreviewed, just rolling out r136559.
139672
139673        * bindings/v8/V8GCController.cpp:
139674        * bindings/v8/V8NodeFilterCondition.cpp:
139675        (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
139676        (WebCore::V8NodeFilterCondition::acceptNode):
139677        * bindings/v8/V8NodeFilterCondition.h:
139678        (WebCore::V8NodeFilterCondition::create):
139679        (V8NodeFilterCondition):
139680        * dom/NodeFilter.h:
139681
1396822012-12-10  Eric Carlson  <eric.carlson@apple.com>
139683
139684        Unreviewed build fix after r137167.
139685
139686        * WebCore.xcodeproj/project.pbxproj: Add InbandTextTrackPrivate.h to framework private 
139687            headers.
139688
1396892012-12-10  Martin Robinson  <mrobinson@igalia.com>
139690
139691        Fix the GTK+ build after a collision of two patches.
139692
139693        Unreviewed build fix.
139694
139695        * bindings/gobject/GNUmakefile.am: The GObject DOM bindings library needs to
139696        include the harfbuzz cflags when compiling.
139697
1396982012-12-10  Parth Patel  <parpatel@rim.com>
139699
139700        Make hiddenPageDomTimerInterval a setting
139701        https://bugs.webkit.org/show_bug.cgi?id=104555
139702
139703        Reviewed by Yong Li.
139704
139705        Make hiddenPageDomTimerInterval a setting so client can customize it.
139706
139707        No new tests are needed.
139708
139709        * page/Page.cpp:
139710        (WebCore):
139711        (WebCore::Page::setVisibilityState):
139712        * page/Settings.cpp:
139713        (WebCore):
139714        (WebCore::Settings::setHiddenPageDOMTimerAlignmentInterval):
139715        (WebCore::Settings::hiddenPageDOMTimerAlignmentInterval):
139716        * page/Settings.h:
139717        (Settings):
139718
1397192012-12-10  peavo@outlook.com  <peavo@outlook.com>
139720
139721        [WinCairo] Compile fix in ImageCairoWin.cpp
139722        https://bugs.webkit.org/show_bug.cgi?id=104554
139723
139724        Reviewed by Brent Fulgham.
139725
139726        * platform/graphics/win/ImageCairoWin.cpp:
139727        (WebCore::BitmapImage::getHBITMAPOfSize): Added parameter.
139728        (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added parameter.
139729
1397302012-12-10  Mike West  <mkwst@chromium.org>
139731
139732        Log to console when script is blocked by sandbox attributes.
139733        https://bugs.webkit.org/show_bug.cgi?id=104365
139734
139735        Reviewed by Ojan Vafai.
139736
139737        Adds a console message to cover script execution blocked within the
139738        context of a sandboxed frame which lacks the 'allow-scripts' permission.
139739
139740        * bindings/ScriptControllerBase.cpp:
139741        (WebCore::ScriptController::canExecuteScripts):
139742            Log a warning when sandboxing flags block script execution.
139743
1397442012-12-10  Chris Fleizach  <cfleizach@apple.com>
139745
139746        AX: Crash in NSAccessibilityUnignoredDescendant
139747        https://bugs.webkit.org/show_bug.cgi?id=104468
139748
139749        Reviewed by Anders Carlsson.
139750
139751        This crash occurred because AccessibilityScrollView stopped retaining it's ScrollView pointer.
139752
139753        Unfortunately, there was still a case that didn't correctly clear that variable. 
139754
139755        That case was when a Frame had a new FrameView associated with it. The old FrameView didn't inform the 
139756        accessibility object cache that it should be removed. As a result, when the FrameView deallocated and 
139757        did try to remove, it used the wrong AXObjectCache because it was no longer correctly hooked into the 
139758        document tree.
139759
139760        No new tests. Existing tests will stop crashing.
139761 
139762        * page/Frame.cpp:
139763        (WebCore::Frame::setView): change the name of the method that tells the FrameView to detach
139764        * page/FrameView.cpp:
139765        (WebCore::FrameView::~FrameView):
139766        (WebCore::FrameView::removeFromAXObjectCache): add a method that can be called in multiple places
139767        (WebCore::FrameView::isFrameView):
139768        (WebCore::FrameView::prepareForDetach): detaches scrollbars and accessibility
139769        * page/FrameView.h:
139770        (FrameView):
139771
1397722012-12-10  Mark Pilgrim  <pilgrim@chromium.org>
139773
139774        [Chromium] Move getPluginsList out of PlatformSupport
139775        https://bugs.webkit.org/show_bug.cgi?id=96507
139776
139777        Reviewed by Darin Fisher.
139778
139779        Part of a refactoring series. See tracking bug 82948.
139780
139781        * WebCore.gypi:
139782        * platform/chromium/PlatformSupport.h:
139783        (PlatformSupport):
139784        * plugins/chromium/PluginDataChromium.cpp:
139785        (WebCore::PluginCache::plugins):
139786        * plugins/chromium/PluginListBuilder.cpp: Added.
139787        (WebKit):
139788        (WebKit::PluginListBuilder::addPlugin):
139789        (WebKit::PluginListBuilder::addMediaTypeToLastPlugin):
139790        (WebKit::PluginListBuilder::addFileExtensionToLastMediaType):
139791        * plugins/chromium/PluginListBuilder.h: Added.
139792        (WebKit):
139793        (PluginListBuilder):
139794        (WebKit::PluginListBuilder::PluginListBuilder):
139795
1397962012-12-10  Carlos Garcia Campos  <cgarcia@igalia.com>
139797
139798        [GTK] Build GObject DOM bindings as a separate library
139799        https://bugs.webkit.org/show_bug.cgi?id=104527
139800
139801        Reviewed by Xan Lopez.
139802
139803        * bindings/gobject/GNUmakefile.am: Add libWebCoreDOM library.
139804        * bindings/gobject/WebKitDOMBinding.h: Define private macros.
139805        * bindings/gobject/WebKitDOMCustom.h: Don't include webkit/webkitdefines.h.
139806        * bindings/gobject/WebKitDOMEventTarget.h: Ditto.
139807        * bindings/gobject/WebKitDOMObject.h: Ditto.
139808        * bindings/scripts/CodeGeneratorGObject.pm:
139809        (Generate): Don't include webkitglobalsprivate.h.
139810        (WriteData): Don't include webkit/webkitdefines.h.
139811        * bindings/scripts/gobject-generate-headers.pl: Define WEBKIT_API
139812        macro in webkitdomdefines.h.
139813        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
139814        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
139815        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
139816        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
139817        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
139818        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
139819        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
139820        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
139821        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
139822        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
139823        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
139824        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
139825        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
139826        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
139827        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
139828        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
139829        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
139830        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
139831        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
139832        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
139833        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
139834        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
139835        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
139836        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
139837        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
139838        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
139839        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
139840        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
139841
1398422012-12-10  Adam Klein  <adamk@chromium.org>
139843
139844        In InbandTextTrackPrivate, return emptyAtoms instead of emptyString() by default.
139845
139846        Unreviewed build fix.
139847
139848        * platform/graphics/InbandTextTrackPrivate.h:
139849        (WebCore::InbandTextTrackPrivate::label):
139850        (WebCore::InbandTextTrackPrivate::language):
139851
1398522012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>
139853
139854        Web Inspector: Native Memory Instrumentation: instrument RenderBox descendants.
139855        https://bugs.webkit.org/show_bug.cgi?id=104026
139856
139857        Reviewed by Eric Seidel.
139858
139859        Plain vanilla instrumentation for RenderBox descendants.
139860
139861        * rendering/RenderFrameSet.cpp:
139862        (WebCore::RenderFrameSet::reportMemoryUsage):
139863        (WebCore):
139864        (WebCore::RenderFrameSet::GridAxis::reportMemoryUsage):
139865        * rendering/RenderFrameSet.h:
139866        (RenderFrameSet):
139867        (GridAxis):
139868        * rendering/RenderListMarker.cpp:
139869        (WebCore::RenderListMarker::reportMemoryUsage):
139870        (WebCore):
139871        * rendering/RenderListMarker.h:
139872        (RenderListMarker):
139873        * rendering/RenderReplaced.cpp:
139874        (WebCore::RenderReplaced::reportMemoryUsage):
139875        (WebCore):
139876        * rendering/RenderReplaced.h:
139877        (RenderReplaced):
139878        * rendering/RenderTableCol.cpp:
139879        (WebCore::RenderTableCol::reportMemoryUsage):
139880        (WebCore):
139881        * rendering/RenderTableCol.h:
139882        (RenderTableCol):
139883        * rendering/RenderTableRow.cpp:
139884        (WebCore::RenderTableRow::reportMemoryUsage):
139885        (WebCore):
139886        * rendering/RenderTableRow.h:
139887        (RenderTableRow):
139888        * rendering/RenderTableSection.cpp:
139889        (WebCore::RenderTableSection::reportMemoryUsage):
139890        (WebCore):
139891        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
139892        (WebCore::RenderTableSection::CellStruct::reportMemoryUsage):
139893        * rendering/RenderTableSection.h:
139894        (CellStruct):
139895        (RowStruct):
139896
1398972012-12-10  Alejandro Piñeiro  <apinheiro@igalia.com>
139898
139899        AX: wrong Enabled states on a ListBox
139900        https://bugs.webkit.org/show_bug.cgi?id=104483
139901
139902        Reviewed by Chris Fleizach.
139903
139904        Test: accessibility/listbox-enabled-states.html
139905
139906        * accessibility/AccessibilityListBoxOption.cpp:
139907        (WebCore::AccessibilityListBoxOption::isEnabled): taking into
139908        account the DISABLED attribute and the aria-disabled attribute to
139909        decide if the item is enabled or not.
139910
1399112012-12-10  Adam Klein  <adamk@chromium.org>
139912
139913        cr-win build fix after r137161.
139914
139915        Unreviewed.
139916
139917        * platform/graphics/MediaPlayer.h: Replace forward-decl of
139918        InbandTextTrackPrivate with #include as the definition is required.
139919
1399202012-12-10  Alexis Menard  <alexis@webkit.org>
139921
139922        [CSS3 Backgrounds and Borders] Remove CSS3_BACKGROUND feature flag.
139923        https://bugs.webkit.org/show_bug.cgi?id=104539
139924
139925        Reviewed by Antonio Gomes.
139926
139927        As discussed on webkit-dev it is not needed to keep this feature flag 
139928        as support for <position> type is a small feature that is already 
139929        implemented by three other UAs. It was useful while landing this 
139930        feature as partial bits were landed one after one.
139931
139932        No new tests : the feature is covered by various tests and it is already enabled in many ports.
139933
139934        * Configurations/FeatureDefines.xcconfig:
139935        * GNUmakefile.am:
139936        * GNUmakefile.features.am:
139937        * css/CSSParser.cpp:
139938        (WebCore::CSSParser::parseFillPosition):
139939        (WebCore::CSSParser::parseFillProperty):
139940        * css/CSSParser.h:
139941        * css/CSSToStyleMap.cpp:
139942        (WebCore::CSSToStyleMap::mapFillXPosition):
139943        (WebCore::CSSToStyleMap::mapFillYPosition):
139944        * rendering/style/FillLayer.cpp:
139945        (SameSizeAsFillLayer):
139946        (WebCore::FillLayer::FillLayer):
139947        (WebCore::FillLayer::operator=):
139948        (WebCore::FillLayer::operator==):
139949        (WebCore::FillLayer::fillUnsetProperties):
139950        * rendering/style/FillLayer.h:
139951        (WebCore::FillLayer::backgroundXOrigin):
139952        (WebCore::FillLayer::backgroundYOrigin):
139953        (WebCore::FillLayer::isBackgroundOriginSet):
139954        (WebCore::FillLayer::clearXPosition):
139955        (WebCore::FillLayer::clearYPosition):
139956        (FillLayer):
139957
1399582012-12-10  Eric Carlson  <eric.carlson@apple.com>
139959
139960        Add support for in-band text tracks to Mac port
139961        https://bugs.webkit.org/show_bug.cgi?id=103663
139962
139963        Reviewed by Sam Weinig.
139964
139965        Test: media/track/track-in-band.html
139966
139967        * GNUmakefile.list.am: Move InbandTextTrackPrivate.h to platform/graphics. Add InbandTextTrackPrivateClient.h.
139968        * Target.pri: Ditto.
139969        * WebCore.gypi: Ditto.
139970
139971        * WebCore.xcodeproj/project.pbxproj: Add new files.
139972
139973        * html/HTMLMediaElement.cpp:
139974        (WebCore::HTMLMediaElement::setReadyState): No need to call processInbandTextTracks, in-band tracks
139975            are now registered by the media engine as they are discovered.
139976        (WebCore::HTMLMediaElement::mediaPlayerDidAddTrack): New, called by the media player when a new
139977            in-band track is found.
139978        (WebCore::HTMLMediaElement::mediaPlayerDidRemoveTrack): New, called by the media player when an
139979            in-band track goes away.
139980        * html/HTMLMediaElement.h:
139981
139982        * html/track/InbandTextTrack.cpp:
139983        (WebCore::InbandTextTrack::InbandTextTrack): Use m_private instead of tracksPrivate because
139984            it is zeroed during assignment.
139985
139986        * platform/graphics/MediaPlayer.cpp:
139987        (WebCore::MediaPlayer::addTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
139988            to add a new in-band track.
139989        (WebCore::MediaPlayer::removeTextTrack): New MediaPlayerClient method to allow MediaPlayerPrivate subclasses
139990            to remove a new in-band track.
139991        * platform/graphics/MediaPlayer.h:
139992        * platform/graphics/MediaPlayerPrivate.h:
139993
139994        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Added.
139995        (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF):
139996        (WebCore::InbandTextTrackPrivateAVF::~InbandTextTrackPrivateAVF):
139997        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Convert an attribute string into WebVTT 
139998            cue setting and content strings.
139999        (WebCore::InbandTextTrackPrivateAVF::processCue): Process a new cue.
140000        (WebCore::InbandTextTrackPrivateAVF::disconnect): Clear member variables.
140001        (WebCore::InbandTextTrackPrivateAVF::resetCueValues): Reset cue values to defaults.
140002        (WebCore::InbandTextTrackPrivateAVF::setMode): Set track mode and call player's trackModeChanged.
140003        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Added.
140004
140005        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Initialize 
140006            m_inbandTrackConfigurationPending.
140007        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
140008        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Flush the currently accumulating
140009            cue so it doesn't get the wrong duration.
140010        (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Handle InbandTracksNeedConfiguration.
140011        (WebCore::MediaPlayerPrivateAVFoundation::flushCurrentCue): New, pass the current cue up to the client.
140012        (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Configure in-band tracks.
140013        (WebCore::MediaPlayerPrivateAVFoundation::trackModeChanged): Schedule a call to configureInbandTracks.
140014        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
140015
140016        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Added.
140017        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm: Added.
140018        (WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC):
140019        (WebCore::InbandTextTrackPrivateAVFObjC::disconnect):
140020        (WebCore::InbandTextTrackPrivateAVFObjC::kind): Return track kind.
140021        (WebCore::InbandTextTrackPrivateAVFObjC::label): Return track label.
140022        (WebCore::InbandTextTrackPrivateAVFObjC::language): Return track language.
140023        (WebCore::InbandTextTrackPrivateAVFObjC::isDefault): 
140024        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
140025        (MediaPlayerPrivateAVFoundationObjC):
140026        (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItem):
140027        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
140028        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize m_currentTrack.
140029        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_legibleOutput.
140030        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Create and initialize m_legibleOutput.
140031        (WebCore::MediaPlayerPrivateAVFoundationObjC::processTextTracks): Called when the player item's
140032            "tracks" changes, add and remove in-band text tracks as necessary.
140033        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass an attributed string to the current 
140034            track to be processed.
140035        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Tell AVFoundation to select an in-band track.
140036        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTrack): Return the current track.
140037        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]): Legible
140038            output delegate.
140039
1400402012-12-10  Pavel Feldman  <pfeldman@chromium.org>
140041
140042        Web Inspector: fix front-end compilation warnings
140043        https://bugs.webkit.org/show_bug.cgi?id=104557
140044
140045        Reviewed by Alexander Pavlov.
140046
140047        Corresponding annotations added.
140048
140049        * inspector/Inspector.json:
140050        * inspector/InspectorDOMAgent.cpp:
140051        (WebCore::InspectorDOMAgent::highlightNode):
140052        * inspector/InspectorDOMAgent.h:
140053        (InspectorDOMAgent):
140054        * inspector/front-end/CSSStyleModel.js:
140055        (WebInspector.CSSStyleDeclaration.prototype.):
140056        (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
140057        * inspector/front-end/ConsoleMessage.js:
140058        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
140059        * inspector/front-end/DOMAgent.js:
140060        (WebInspector.DOMAgent.prototype.highlightDOMNode):
140061        * inspector/front-end/DOMPresentationUtils.js:
140062        (WebInspector.DOMPresentationUtils.linkifyNodeReference):
140063        * inspector/front-end/ObjectPropertiesSection.js:
140064        (WebInspector.ObjectPropertyTreeElement.prototype.update):
140065        * inspector/front-end/Toolbar.js:
140066
1400672012-12-10  Zeno Albisser  <zeno@webkit.org>
140068
140069        [Qt] MediaPlayerQTKit broken after switching QPainter to raster engine.
140070        https://bugs.webkit.org/show_bug.cgi?id=104550
140071
140072        With Qt5 QPainter changed to using the raster engine.
140073        Therefore we no longer have an NSGraphicsContext that we can
140074        use for drawing video frames.
140075        With this patch we are rendering the video frame into an image buffer
140076        and then paint it manually using QPainter.
140077
140078        Reviewed by Simon Hausmann.
140079
140080        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
140081        (WebCore):
140082        (WebCore::swapBgrToRgb):
140083            Swap the color format from BGR to RGB,
140084            since BGR is not supported by QImage.
140085        (WebCore::MediaPlayerPrivateQTKit::paint):
140086
1400872012-12-10  peavo@outlook.com  <peavo@outlook.com>
140088
140089        [WinCairo] Link fix in InspectorController.cpp
140090        https://bugs.webkit.org/show_bug.cgi?id=104556
140091
140092        Reviewed by Pavel Feldman.
140093
140094        * inspector/InspectorController.cpp:
140095        (WebCore::InspectorController::InspectorController): Added missing #if check.
140096
1400972012-12-10  Pavel Feldman  <pfeldman@chromium.org>
140098
140099        Web Inspector: remove the Overrides / Settings context menu from gear icon
140100        https://bugs.webkit.org/show_bug.cgi?id=104546
140101
140102        Reviewed by Alexander Pavlov.
140103
140104        It sounds like too many people don't like the way it works. Bringing things back: overrides will be a tab in settings for now.
140105        Moving present behavior to under experiment.
140106
140107        * inspector/front-end/OverridesView.js:
140108        (WebInspector.OverridesView):
140109        * inspector/front-end/Settings.js:
140110        (WebInspector.ExperimentsSettings):
140111        * inspector/front-end/SettingsScreen.js:
140112        (WebInspector.OverridesSettingsTab):
140113        (WebInspector.SettingsController):
140114        (WebInspector.SettingsController.prototype.get statusBarItem):
140115        (WebInspector.SettingsController.prototype._mouseDown.showSettings):
140116        (WebInspector.SettingsController.prototype._mouseDown):
140117        (WebInspector.SettingsController.prototype._mouseUp):
140118        * inspector/front-end/helpScreen.css:
140119        (#settings-screen .tabbed-pane-header):
140120        (#settings-screen .tabbed-pane-header-tabs):
140121        (#settings-screen .tabbed-pane-header-tab):
140122
1401232012-12-10  Kent Tamura  <tkent@chromium.org>
140124
140125        Visual order of empty value placeholder in INPUT_MULTIPLE_FIELDS_UI is wrong in RTL
140126        https://bugs.webkit.org/show_bug.cgi?id=104438
140127
140128        Reviewed by Hajime Morita.
140129
140130        No new tests. This updates datetimelocal-appearance-l10n.html for he-il
140131        and ar-eg locales.
140132
140133        * html/shadow/DateTimeNumericFieldElement.cpp:
140134        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
140135        We should not append Right-to-left-mark to each of placeholder
140136        strings. It makes numeric field separators such as ':' and '/' RTL, and
140137        makes a wrong visual order. We use unicode-bidi:bidi-override and
140138        direction:ltr instead. It means we force LTR only to this element
140139        * html/shadow/DateTimeNumericFieldElement.h:
140140        Makes m_placeholder const again.
140141        * html/shadow/DateTimeEditElement.cpp:
140142        (WebCore::DateTimeEditBuilder::visitLiteral):
140143        Explicitly set right-to-left-mark before S, WS, ON types according to
140144        Unicod Bidirectional Algorithm Table 4 [1]. This is needed because we
140145        don't have context like "This literal follows European/Arabic numbers"
140146        in a case of showing placeholders.
140147        [1] http://www.unicode.org/reports/tr9/#Bidirectional_Character_Types
140148
1401492012-12-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
140150
140151        [Soup] utilize multipart/x-mixed-replace support recently added to libsoup
140152        https://bugs.webkit.org/show_bug.cgi?id=94515
140153
140154        Reviewed by Martin Robinson.
140155
140156        The multipart/x-mixed-replace content type is often used for providing
140157        "push" server support, with each part in the multipart response
140158        replacing the previous one in the rendering. Soup recently acquired
140159        support for multipart/x-mixed replace, which this change utilizes.
140160
140161        Covered by existing multipart/x-mixed-replace tests.
140162
140163        * platform/network/ResourceHandleInternal.h:
140164        (ResourceHandleInternal): add new member to this class, the multipart input stream
140165        * platform/network/soup/ResourceHandleSoup.cpp:
140166        (WebCore::cleanupSoupRequestOperation): also clear the multipart input stream on
140167        cleanup
140168        (WebCore::nextPartCallback): callback that handles reporting the new response delivered
140169        with the new part, if any; uses the factored out updateFromSoupMessageHeaders method
140170        (WebCore::sendRequestCallback): handle multipart/x-mixed-replace responses by
140171        requesting the next part
140172        (WebCore::readCallback): when reading has finished, request the next part when
140173        handling a multipart/x-mixed-replace response
140174        * platform/network/soup/ResourceResponse.h:
140175        (ResourceResponse): add declaration for new method
140176        * platform/network/soup/ResourceResponseSoup.cpp:
140177        (WebCore::ResourceResponse::updateFromSoupMessage): call new updateFromSoupMessageHeaders
140178        method, instead of dealing with the message headers directly
140179        (WebCore::ResourceResponse::updateFromSoupMessageHeaders): new method, factored out from
140180        updateFromSoupMessage, so this same code can be reused for updating responses for
140181        multipart/x-mixed-replace responses parts
140182
1401832012-12-10  Zoltan Nyul  <zoltan.nyul@intel.com>
140184
140185        Implement testRunner.setViewModeMediaFeature() in WebKitTestRunner
140186        https://bugs.webkit.org/show_bug.cgi?id=103886
140187
140188        Reviewed by Kenneth Rohde Christiansen.
140189
140190        Export symbol for WebCore::Page::setViewMode on Mac.
140191
140192        No new tests, no behavior change for layout tests.
140193
140194        * WebCore.exp.in:
140195
1401962012-12-10  Martin Robinson  <mrobinson@igalia.com>
140197
140198        [GTK] Bring Harfbuzz-ng support to Gtk
140199        https://bugs.webkit.org/show_bug.cgi?id=92098
140200
140201        Reviewed by Gustavo Noronha Silva.
140202
140203        Enable HarfBuzz support by default. With the Freetype backend we no longer
140204        fall back to Pango for rendering complex text.
140205
140206        No new tests. This is covered by existing tests.
140207
140208        * GNUmakefile.am: Add HarfBuzz include directories and define.
140209        * GNUmakefile.list.am: Add HarfBuzz files to source list and remove
140210        Pango ones.
140211        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
140212        (WebCore::FontPlatformData::operator==): To properly render fallback
140213        fonts via HarfBuzz , it's important that we actually ask Fontconfig
140214        whether or not two patterns are the same. This ensures that when patterns
140215        are just copies of one another they only take up one slot in the font cache
140216        and appear to be the same font to HarfBuzzShaper.
140217
1402182012-12-10  Alexander Pavlov  <apavlov@chromium.org>
140219
140220        Web Inspector: [Overrides] Unable to change values in Device Metrics override setting
140221        https://bugs.webkit.org/show_bug.cgi?id=104542
140222
140223        Reviewed by Vsevolod Vlasov.
140224
140225        Remove inadvertent object property assignment.
140226
140227        * inspector/front-end/OverridesView.js:
140228
1402292012-12-10  Michael Brüning  <michael.bruning@digia.com>
140230
140231        [Qt] Builds for Mac are tied to the OS system instead of the SDK version.
140232        https://bugs.webkit.org/show_bug.cgi?id=104529
140233
140234        Reviewed by Simon Hausmann.
140235
140236        Using work by Eike Ziller <eike.ziller@digia.com>.
140237
140238        The build system now first tries to assign the correct system libraries
140239        for the SDK being used for Mac builds. If this does not yield any
140240        result, it falls back to using the Mac OS version to determine the
140241        correct library.
140242
140243        No new tests (not applicable).
140244
140245        * WebCore.pri:
140246
1402472012-12-10  Ilya Tikhonovsky  <loislo@chromium.org>
140248
140249        Unreviewed: touch RenderingAllInOne.cpp to fix Apple Windows builder.
140250
140251        * rendering/RenderingAllInOne.cpp:
140252
1402532012-12-10  Eugene Klyuchnikov  <eustas@chromium.org>
140254
140255        Web Inspector: Network: newly added items are not filtered.
140256        https://bugs.webkit.org/show_bug.cgi?id=104021
140257
140258        Reviewed by Vsevolod Vlasov.
140259
140260        Extracted method to higlight/hide record according to filter.
140261        Used this method to process newly created records.
140262
140263        * inspector/front-end/NetworkPanel.js:
140264        (WebInspector.NetworkLogView.prototype._applyFilter): Extracted.
140265        (WebInspector.NetworkLogView.prototype.performFilter): Refactored.
140266
1402672012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>
140268
140269        Web Inspector: Unreviewed: move reportMemoryUsage to public section.
140270
140271        * rendering/RenderBlock.h:
140272        (RenderBlock):
140273        * rendering/RenderBox.h:
140274        (RenderBox):
140275
1402762012-12-08  Pavel Feldman  <pfeldman@chromium.org>
140277
140278        Web Inspector: adds an option to remove toolbar icons.
140279        https://bugs.webkit.org/show_bug.cgi?id=95654
140280
140281        Reviewed by Vsevolod Vlasov.
140282
140283        - removes compact mode in favor or dock-to-bottom
140284        - introduces setting for hiding toolbar icons
140285
140286        * inspector/front-end/DockController.js:
140287        (WebInspector.DockController.prototype._toggleDockState):
140288        * inspector/front-end/Settings.js:
140289        (WebInspector.ExperimentsSettings):
140290        * inspector/front-end/Toolbar.js:
140291        (WebInspector.Toolbar.prototype.setDockedToBottom):
140292        (WebInspector.Toolbar.prototype._toolbarDragStart):
140293        (WebInspector.Toolbar.prototype._toolbarDrag):
140294        * inspector/front-end/helpScreen.css:
140295        (body.dock-to-bottom .help-content):
140296        * inspector/front-end/inspector.css:
140297        (body.dock-to-bottom #toolbar):
140298        (body.no-toolbar-icons #toolbar):
140299        (body.dock-to-bottom.port-qt #toolbar):
140300        (body.dock-to-bottom.inactive #toolbar):
140301        (body.no-toolbar-icons .toolbar-item.toggleable):
140302        (body.dock-to-bottom .toolbar-item.toggleable):
140303        (body.dock-to-bottom .toolbar-icon):
140304        (body.no-toolbar-icons .toolbar-icon):
140305        (body.no-toolbar-icons #main):
140306        (body.dock-to-bottom .toolbar-icon.custom-toolbar-icon):
140307        (body.dock-to-bottom .toolbar-item:active .toolbar-icon):
140308        (body.dock-to-bottom .toolbar-label):
140309        (body.dock-to-bottom #search-toolbar-label):
140310        (body.no-toolbar-icons .toolbar-label):
140311        (body.no-toolbar-icons #toolbar-dropdown):
140312        (#toolbar-dropdown .scrollable-content):
140313        (#toolbar-dropdown .toolbar-item.toggleable:hover):
140314        (body.no-toolbar-icons #toolbar-dropdown .toolbar-label):
140315        (body.no-toolbar-icons #toolbar-dropdown .toolbar-item):
140316        (body.dock-to-bottom .toolbar-item.resources .toolbar-icon):
140317        (body.dock-to-bottom .toolbar-item.network .toolbar-icon):
140318        (body.dock-to-bottom .toolbar-item.scripts .toolbar-icon):
140319        (body.dock-to-bottom .toolbar-item.timeline .toolbar-icon):
140320        (body.dock-to-bottom .toolbar-item.profiles .toolbar-icon):
140321        (body.dock-to-bottom .toolbar-item.audits .toolbar-icon):
140322        (body.dock-to-bottom .toolbar-item.console .toolbar-icon):
140323        (body.dock-to-bottom.port-qt .toolbar-item.close-left, body.dock-to-bottom.port-qt .toolbar-item.close-right):
140324        (body.dock-to-bottom #main):
140325
1403262012-12-10  Kent Tamura  <tkent@chromium.org>
140327
140328        Refactoring: Remove HTMLFormControlElement::autofocus
140329        https://bugs.webkit.org/show_bug.cgi?id=104524
140330
140331        Reviewed by Kentaro Hara.
140332
140333        autofocus function is used only by HTMLFormControlElement itself, no
140334        sub-classes override it, and it is not exposed via an IDL attribute,
140335
140336        No new tests. This doesn't make any behavior changes.
140337
140338        * html/HTMLFormControlElement.cpp:
140339        (WebCore::shouldAutofocus): Use fastHasAttribute instead of autofocus().
140340        * html/HTMLFormControlElement.h: Remove autofocus().
140341
1403422012-12-10  Jonathan Liu  <net147@gmail.com>
140343
140344        Fix GC3Dintptr and GC3Dsizeiptr typedefs for Win64
140345        https://bugs.webkit.org/show_bug.cgi?id=104426
140346
140347        Reviewed by Simon Hausmann.
140348
140349        The GC3Dintptr and GC3Dsizeiptr typedefs are incorrect for Win64 as
140350        LLP64 is used there. This would result in compile error due to
140351        narrowing conversion of 64-bit pointer to signed long int which is
140352        32-bit.
140353
140354        * platform/graphics/GraphicsTypes3D.h:
140355
1403562012-12-10  Kent Tamura  <tkent@chromium.org>
140357
140358        Refactoring: Introduce HTMLFormControlElement::isDisabledOrReadOnly
140359        https://bugs.webkit.org/show_bug.cgi?id=104508
140360
140361        Reviewed by Kentaro Hara.
140362
140363        We have a lot of code like element->disabled || element->readOnly().
140364        isDisabledOrReadOnly makes them simpler.
140365
140366        No new tests. This make no behaivor change.
140367
140368        * html/HTMLFormControlElement.h:
140369        (WebCore::HTMLFormControlElement::isDisabledOrReadOnly):
140370        Added. Note that the implmentation of disabled() is not just "return m_disabled;".
140371
140372        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
140373        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
140374        Use isDisabledOrReadOnly.
140375        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
140376        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
140377        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Ditto.
140378        * html/ColorInputType.cpp:
140379        (WebCore::ColorInputType::handleDOMActivateEvent): Ditto.
140380        (WebCore::ColorInputType::didChooseColor): Ditto.
140381        * html/HTMLFormControlElement.cpp:
140382        (WebCore::HTMLFormControlElement::recalcWillValidate): Ditto.
140383        * html/HTMLTextAreaElement.h:
140384        (WebCore::HTMLTextAreaElement::valueMissing): Ditto.
140385        * html/RangeInputType.cpp:
140386        (WebCore::RangeInputType::handleMouseDownEvent): Ditto.
140387        (WebCore::RangeInputType::handleTouchEvent): Ditto.
140388        (WebCore::RangeInputType::handleKeydownEvent): Ditto.
140389        * html/SearchInputType.cpp:
140390        (WebCore::SearchInputType::handleKeydownEvent): Ditto.
140391        * html/TextFieldInputType.cpp:
140392        (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Ditto.
140393        (WebCore::TextFieldInputType::shouldSpinButtonRespondToMouseEvents): Ditto.
140394        * html/shadow/TextControlInnerElements.cpp:
140395        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): Ditto.
140396        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents): Ditto.
140397        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Ditto.
140398        * html/shadow/TextFieldDecorationElement.cpp:
140399        (WebCore::TextFieldDecorationElement::defaultEventHandler): Ditto.
140400        (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Ditto.
140401        (WebCore::TextFieldDecorationElement::willRespondToMouseClickEvents): Ditto.
140402
1404032012-12-10  Pavel Feldman  <pfeldman@chromium.org>
140404
140405        Web Inspector: console broken? - console.dirxml behaves like console.log
140406        https://bugs.webkit.org/show_bug.cgi?id=104245
140407
140408        Reviewed by Vsevolod Vlasov.
140409
140410        Do not generate preview for dirxml.
140411
140412        * inspector/front-end/ConsoleMessage.js:
140413        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
140414
1404152012-12-10  Kent Tamura  <tkent@chromium.org>
140416
140417        Refactoring: Remove HTMLFormControlElement::setDisabled
140418        https://bugs.webkit.org/show_bug.cgi?id=104510
140419
140420        Reviewed by Kentaro Hara.
140421
140422        Remove it because the number of call sites is only one, and the
140423        setDisabled implementation is equivalent to setBooleanAttribute.
140424
140425        No new tests. This should not make behavior changes.
140426
140427        * html/HTMLFormControlElement.cpp: Remove setDisabled.
140428        * html/HTMLFormControlElement.h: Ditto.
140429        * html/FileInputType.cpp:
140430        (WebCore::FileInputType::disabledAttributeChanged):
140431        Replace setDisabled with setBooleanAttribute.
140432
1404332012-12-10  Hajime Morrita  <morrita@google.com>
140434
140435        [Shadow DOM][Refacdtoring] nextTo() and previousTo() can be part of ContentDistribution
140436        https://bugs.webkit.org/show_bug.cgi?id=104514
140437
140438        Reviewed by Kentaro Hara.
140439
140440        InsertionPoint::nextTo() and InsertionPoint::previousTo() are an
140441        query to distributed nodes, which is what ContentDistribution
140442        represents. We can move them to better home.
140443
140444        No new tests. No behavior change.
140445
140446        * html/shadow/ContentDistributor.cpp:
140447        (WebCore::ContentDistribution::nextTo): Moved from InsertionPoint
140448        (WebCore):
140449        (WebCore::ContentDistribution::previousTo): Moved from InsertionPoint
140450        * html/shadow/ContentDistributor.h:
140451        (ContentDistribution):
140452        * html/shadow/InsertionPoint.cpp:
140453        * html/shadow/InsertionPoint.h:
140454        (WebCore::InsertionPoint::nextTo): Delegated to ContentDistribution
140455        (WebCore::InsertionPoint::previousTo): Delegated to ContentDistribution
140456
1404572012-12-10  Joanmarie Diggs  <jdiggs@igalia.com>
140458
140459        [GTK] accessibility/language-attribute.html is failing
140460        https://bugs.webkit.org/show_bug.cgi?id=98369
140461
140462        Reviewed by Chris Fleizach.
140463
140464        The test is failing for two reasons: Not exposing the language
140465        for accessible objects and AccessibilityUIElement::language() not
140466        being implemented.
140467
140468        No new tests; instead, unskipped the previously-failing test.
140469
140470        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
140471        (getAttributeSetForAccessibilityObject): Expose the language via AtkText attribute
140472
1404732012-12-09  Takashi Sakamoto  <tasak@google.com>
140474
140475        [Shadow DOM]: reset-style-inheritance doesn't work for insertion point
140476        https://bugs.webkit.org/show_bug.cgi?id=103711
140477
140478        Reviewed by Hajime Morita.
140479
140480        reset-style-inheritance can be specified by using insertion points'
140481        attribute, e.g. <content reset-style-inheritance>.
140482        c.f. shadow dom spec:
140483        https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
140484
140485        No new tests. Updated an existing test,
140486        fast/dom/shadow/insertion-point-resetStyleInheritance.html to cover
140487        this feature.
140488
140489        * html/HTMLAttributeNames.in:
140490        Added HTMLNames::reset_style_inheritanceAttr.
140491        * html/shadow/InsertionPoint.cpp:
140492        (WebCore::InsertionPoint::InsertionPoint):
140493        (WebCore::InsertionPoint::parseAttribute):
140494        Since both shadow and content elements have to support
140495        reset-style-inheritance, added InsertionPoint::parseAttribute.
140496        (WebCore::InsertionPoint::resetStyleInheritance):
140497        (WebCore::InsertionPoint::setResetStyleInheritance):
140498        Modified to update reset-style-inheritance attribute value.
140499        * html/shadow/InsertionPoint.h:
140500        (InsertionPoint):
140501        Removed m_shouldResetStyleInheritance. Instead, use
140502        reset-style-inheritance attribute value.
140503
1405042012-12-09  Ilya Tikhonovsky  <loislo@chromium.org>
140505
140506        Native Memory Instrumentation: instrument a part of RenderObject class tree.
140507        https://bugs.webkit.org/show_bug.cgi?id=103564
140508
140509        Reviewed by Eric Seidel.
140510
140511        Many RenderObject descendants have OwnPtrs and RefPtrs members.
140512        Looks like we have to instrument all the RenderObject classes and visit
140513        all the render objects instead of counting entire render arena memory.
140514
140515        * WebCore.exp.in:
140516        * dom/Node.cpp:
140517        (WebCore::Node::reportMemoryUsage):
140518        * dom/WebCoreMemoryInstrumentation.cpp:
140519        (WebCore):
140520        * inspector/InspectorMemoryAgent.cpp:
140521        (WebCore::reportRenderTreeInfo):
140522        (WebCore):
140523        * platform/PlatformMemoryInstrumentation.cpp:
140524        (WebCore):
140525        * platform/PlatformMemoryInstrumentation.h:
140526        (PlatformMemoryTypes):
140527        * platform/graphics/GraphicsLayer.cpp:
140528        (WebCore::GraphicsLayer::reportMemoryUsage):
140529        (WebCore):
140530        * platform/graphics/GraphicsLayer.h:
140531        (GraphicsLayer):
140532        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
140533        (WebCore::GraphicsLayerChromium::reportMemoryUsage):
140534        (WebCore):
140535        * platform/graphics/chromium/GraphicsLayerChromium.h:
140536        (GraphicsLayerChromium):
140537        * rendering/RenderBlock.cpp:
140538        (WebCore::RenderBlock::reportMemoryUsage):
140539        (WebCore):
140540        * rendering/RenderBlock.h:
140541        (RenderBlock):
140542        * rendering/RenderBox.cpp:
140543        (WebCore::RenderBox::reportMemoryUsage):
140544        (WebCore):
140545        * rendering/RenderBox.h:
140546        (RenderBox):
140547        * rendering/RenderInline.cpp:
140548        (WebCore::RenderInline::reportMemoryUsage):
140549        (WebCore):
140550        * rendering/RenderInline.h:
140551        (RenderInline):
140552        * rendering/RenderLayer.cpp:
140553        (WebCore::RenderLayer::reportMemoryUsage):
140554        (WebCore):
140555        * rendering/RenderLayer.h:
140556        (RenderLayer):
140557        * rendering/RenderLayerBacking.cpp:
140558        (WebCore::RenderLayerBacking::reportMemoryUsage):
140559        (WebCore):
140560        * rendering/RenderLayerBacking.h:
140561        (RenderLayerBacking):
140562        * rendering/RenderLayerCompositor.cpp:
140563        (WebCore::RenderLayerCompositor::reportMemoryUsage):
140564        (WebCore):
140565        * rendering/RenderLayerCompositor.h:
140566        (RenderLayerCompositor):
140567        * rendering/RenderLayerModelObject.cpp:
140568        (WebCore::RenderLayerModelObject::reportMemoryUsage):
140569        (WebCore):
140570        * rendering/RenderLayerModelObject.h:
140571        (RenderLayerModelObject):
140572        * rendering/RenderObject.cpp:
140573        (WebCore::RenderObject::reportMemoryUsage):
140574        (WebCore):
140575        * rendering/RenderObject.h:
140576        (RenderObject):
140577        * rendering/RenderText.cpp:
140578        (WebCore::RenderText::reportMemoryUsage):
140579        (WebCore):
140580        * rendering/RenderText.h:
140581        (RenderText):
140582        * rendering/RenderView.cpp:
140583        (WebCore::RenderView::reportMemoryUsage):
140584        (WebCore):
140585        * rendering/RenderView.h:
140586        (RenderView):
140587
1405882012-12-09  Ryosuke Niwa  <rniwa@webkit.org>
140589
140590        REGRESSION (r137003): failures in MicroData tests on EFL, GTK
140591        https://bugs.webkit.org/show_bug.cgi?id=104469
140592
140593        Reviewed by Darin Adler.
140594
140595        Fix the regression by calling propertyNodeList on HTMLPropertiesCollection
140596        in the named getter for HTMLCollection. It's a miracle that the old code prior to r137003
140597        worked at all since the return type of namedItem was different.
140598
140599        Existing tests cover this.
140600
140601        * bindings/js/JSHTMLCollectionCustom.cpp:
140602        (WebCore::JSHTMLCollection::nameGetter):
140603        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
140604        (WebCore::V8HTMLCollection::namedPropertyGetter):
140605
1406062012-12-09  Joanmarie Diggs  <jdiggs@igalia.com>
140607
140608        [GTK] accessibility/placeholder.html is failing
140609        https://bugs.webkit.org/show_bug.cgi?id=98373
140610
140611        Reviewed by Martin Robinson.
140612
140613        The test was failing because the placeholder text was not supported and
140614        AccessibilityUIElement::stringAttributeValue() was not implemented.
140615
140616        No new tests; instead the failing test was unskipped.
140617
140618        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
140619        (webkitAccessibleGetAttributes): Add the placeholder text as an AtkAttribute
140620        of the AtkObject, as is done in Gtk+ 3.
140621
1406222012-12-09  Kondapally Kalyan  <kalyan.kondapally@intel.com>
140623
140624        [EFL] [WebGL] Path is not resized correctly.
140625        https://bugs.webkit.org/show_bug.cgi?id=104458.
140626
140627        Reviewed by Kenneth Rohde Christiansen.
140628
140629        In GraphicsContext3D::paintToCanvas, we flip the contents and draw on the surface.
140630        The operations done to flip the image (translation and scale) are done before rectangle with correct size
140631        is added to current path. This resulted in updating pixels at wrong positions.
140632
140633        Covered by existing tests.
140634
140635        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
140636        (WebCore::GraphicsContext3D::paintToCanvas):
140637
1406382012-12-09  Joone Hur  <joone.hur@intel.com>
140639
140640        [GTK][AC] build fix after r130525 and r133332
140641        https://bugs.webkit.org/show_bug.cgi?id=104491
140642
140643        Reviewed by Martin Robinson.
140644
140645        Build fix for Accelerated Compositing Clutter backend after r130525 and r133332.
140646
140647        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
140648        * platform/gtk/RedirectedXCompositeWindow.cpp:
140649        * platform/gtk/RedirectedXCompositeWindow.h:
140650
1406512012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
140652
140653        [GTK] Use GObject casts instead of C++ cast for GObjects in DOM bindings
140654        https://bugs.webkit.org/show_bug.cgi?id=104492
140655
140656        Reviewed by Martin Robinson.
140657
140658        * bindings/scripts/CodeGeneratorGObject.pm:
140659        (GenerateCFile):
140660        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
140661        (WebKit::kit):
140662        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
140663        (WebKit::kit):
140664        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
140665        (WebKit::kit):
140666        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
140667        (WebKit::kit):
140668        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
140669        (WebKit::kit):
140670        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
140671        (WebKit::kit):
140672        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
140673        (WebKit::kit):
140674        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
140675        (WebKit::kit):
140676        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
140677        (WebKit::kit):
140678        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
140679        (WebKit::kit):
140680        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
140681        (WebKit::kit):
140682        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
140683        (WebKit::kit):
140684        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
140685        (WebKit::kit):
140686        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
140687        (WebKit::kit):
140688
1406892012-12-09  Pavel Feldman  <pfeldman@chromium.org>
140690
140691        Web Inspector: do not treat object as equal to itself when logging to console
140692        https://bugs.webkit.org/show_bug.cgi?id=104487
140693
140694        Reviewed by Alexander Pavlov.
140695
140696        Otherwise, mutating object in a loop results in the repeat count update instead of generation of the new preview.
140697
140698        Test: inspector/console/console-object-preview.html
140699
140700        * inspector/ConsoleMessage.cpp:
140701        (WebCore::ConsoleMessage::isEqual):
140702
1407032012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
140704
140705        Remove unused code in GObject DOM bindings generator
140706        https://bugs.webkit.org/show_bug.cgi?id=104490
140707
140708        Reviewed by Martin Robinson.
140709
140710        * bindings/scripts/CodeGeneratorGObject.pm:
140711        (GenerateProperties): Remove code to install event listeners and
140712        signals.
140713
1407142012-12-09  Zan Dobersek  <zandobersek@gmail.com>
140715
140716        Unreviewed update for the GObject bindings after r137074 and r137078.
140717
140718        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
140719        (webkit_dom_test_event_target_dispatch_event):
140720        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
140721        (webkit_dom_test_interface_supplemental_method2):
140722        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
140723        (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
140724        (webkit_dom_test_obj_method_with_exception):
140725        (webkit_dom_test_obj_with_script_state_void_exception):
140726        (webkit_dom_test_obj_with_script_state_obj_exception):
140727        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
140728        (webkit_dom_test_obj_strict_function):
140729        (webkit_dom_test_obj_get_attr_with_getter_exception):
140730        (webkit_dom_test_obj_set_attr_with_setter_exception):
140731        (webkit_dom_test_obj_get_string_attr_with_getter_exception):
140732        (webkit_dom_test_obj_set_string_attr_with_setter_exception):
140733        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
140734        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
140735        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
140736
1407372012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
140738
140739        Fix the GError check in GObject DOM bindings.
140740
140741        Reviewed by Xan Lopez.
140742
140743        Previous commit introduced a check to make sure the passed GError
140744        is valid in all DOM methods receiving an error.
140745
140746        * bindings/scripts/CodeGeneratorGObject.pm:
140747        (GetGReturnMacro): Check that the passed GError either is NULL or
140748        the pointer has been initialized to NULL.
140749
1407502012-12-09  Leo Yang  <leoyang@rim.com>
140751
140752        [BlackBerry] Adapt to name change of createNetworkBufferByCopyingData()
140753        https://bugs.webkit.org/show_bug.cgi?id=104449
140754
140755        Reviewed by Rob Buis.
140756
140757        Name change no new tests.
140758
140759        * platform/network/blackberry/rss/RSSFilterStream.cpp:
140760        (WebCore::RSSFilterStream::handleRSSContent):
140761
1407622012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
140763
140764        [GTK] Clean up g_return macros usage in GObject DOM bindings
140765        https://bugs.webkit.org/show_bug.cgi?id=101079
140766
140767        Reviewed by Xan Lopez.
140768
140769        Several improvements:
140770
140771          - Move g_return macros at the beginning of the methods.
140772          - Use them only to check parameters of public API.
140773          - Use GObject macros to check GObjects.
140774          - Check also GError parameters.
140775          - Use early returns in kit and core methods, since they should
140776            work even if g_return macros are disabled handling NULL
140777            gracefully.
140778
140779        * bindings/scripts/CodeGeneratorGObject.pm:
140780        (GetGReturnMacro):
140781        (GenerateFunction):
140782        (GenerateCFile):
140783        (Generate):
140784        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
140785        (WebKit::kit):
140786        (WebKit::core):
140787        (WebKit::wrapFloat64Array):
140788        (webkit_dom_float64array_foo):
140789        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
140790        (WebKit::kit):
140791        (WebKit::core):
140792        (WebKit::wrapTestActiveDOMObject):
140793        (webkit_dom_test_active_dom_object_exciting_function):
140794        (webkit_dom_test_active_dom_object_post_message):
140795        (webkit_dom_test_active_dom_object_get_exciting_attr):
140796        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
140797        (WebKit::kit):
140798        (WebKit::core):
140799        (WebKit::wrapTestCallback):
140800        (webkit_dom_test_callback_callback_with_no_param):
140801        (webkit_dom_test_callback_callback_with_class1param):
140802        (webkit_dom_test_callback_callback_with_class2param):
140803        (webkit_dom_test_callback_callback_with_non_bool_return_type):
140804        (webkit_dom_test_callback_callback_with_string_list):
140805        (webkit_dom_test_callback_callback_with_boolean):
140806        (webkit_dom_test_callback_callback_requires_this_to_pass):
140807        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
140808        (WebKit::kit):
140809        (WebKit::core):
140810        (WebKit::wrapTestCustomNamedGetter):
140811        (webkit_dom_test_custom_named_getter_another_function):
140812        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
140813        (WebKit::kit):
140814        (WebKit::core):
140815        (WebKit::wrapTestEventConstructor):
140816        (webkit_dom_test_event_constructor_get_attr1):
140817        (webkit_dom_test_event_constructor_get_attr2):
140818        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
140819        (WebKit::kit):
140820        (WebKit::core):
140821        (WebKit::wrapTestEventTarget):
140822        (webkit_dom_test_event_target_item):
140823        (webkit_dom_test_event_target_dispatch_event):
140824        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
140825        (WebKit::kit):
140826        (WebKit::core):
140827        (WebKit::wrapTestException):
140828        (webkit_dom_test_exception_get_name):
140829        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
140830        (WebKit::kit):
140831        (WebKit::core):
140832        (WebKit::wrapTestInterface):
140833        (webkit_dom_test_interface_supplemental_method1):
140834        (webkit_dom_test_interface_supplemental_method2):
140835        (webkit_dom_test_interface_supplemental_method4):
140836        (webkit_dom_test_interface_get_supplemental_str1):
140837        (webkit_dom_test_interface_get_supplemental_str2):
140838        (webkit_dom_test_interface_set_supplemental_str2):
140839        (webkit_dom_test_interface_get_supplemental_node):
140840        (webkit_dom_test_interface_set_supplemental_node):
140841        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
140842        (WebKit::kit):
140843        (WebKit::core):
140844        (WebKit::wrapTestMediaQueryListListener):
140845        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
140846        (WebKit::kit):
140847        (WebKit::core):
140848        (WebKit::wrapTestNamedConstructor):
140849        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
140850        (WebKit::kit):
140851        (WebKit::core):
140852        (WebKit::wrapTestNode):
140853        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
140854        (WebKit::kit):
140855        (WebKit::core):
140856        (WebKit::wrapTestObj):
140857        (webkit_dom_test_obj_void_method):
140858        (webkit_dom_test_obj_void_method_with_args):
140859        (webkit_dom_test_obj_long_method):
140860        (webkit_dom_test_obj_long_method_with_args):
140861        (webkit_dom_test_obj_obj_method):
140862        (webkit_dom_test_obj_obj_method_with_args):
140863        (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
140864        (webkit_dom_test_obj_serialized_value):
140865        (webkit_dom_test_obj_idb_key):
140866        (webkit_dom_test_obj_options_object):
140867        (webkit_dom_test_obj_method_with_exception):
140868        (webkit_dom_test_obj_with_script_state_void):
140869        (webkit_dom_test_obj_with_script_state_obj):
140870        (webkit_dom_test_obj_with_script_state_void_exception):
140871        (webkit_dom_test_obj_with_script_state_obj_exception):
140872        (webkit_dom_test_obj_with_script_execution_context):
140873        (webkit_dom_test_obj_with_script_execution_context_and_script_state):
140874        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
140875        (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
140876        (webkit_dom_test_obj_method_with_optional_arg):
140877        (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
140878        (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
140879        (webkit_dom_test_obj_method_with_optional_string):
140880        (webkit_dom_test_obj_method_with_optional_string_is_undefined):
140881        (webkit_dom_test_obj_method_with_optional_string_is_null_string):
140882        (webkit_dom_test_obj_conditional_method1):
140883        (webkit_dom_test_obj_conditional_method2):
140884        (webkit_dom_test_obj_conditional_method3):
140885        (webkit_dom_test_obj_class_method):
140886        (webkit_dom_test_obj_class_method_with_optional):
140887        (webkit_dom_test_obj_overloaded_method1):
140888        (webkit_dom_test_obj_convert1):
140889        (webkit_dom_test_obj_convert2):
140890        (webkit_dom_test_obj_convert4):
140891        (webkit_dom_test_obj_convert5):
140892        (webkit_dom_test_obj_mutable_point_function):
140893        (webkit_dom_test_obj_immutable_point_function):
140894        (webkit_dom_test_obj_orange):
140895        (webkit_dom_test_obj_strict_function):
140896        (webkit_dom_test_obj_variadic_string_method):
140897        (webkit_dom_test_obj_variadic_double_method):
140898        (webkit_dom_test_obj_variadic_node_method):
140899        (webkit_dom_test_obj_get_read_only_long_attr):
140900        (webkit_dom_test_obj_get_read_only_string_attr):
140901        (webkit_dom_test_obj_get_read_only_test_obj_attr):
140902        (webkit_dom_test_obj_get_short_attr):
140903        (webkit_dom_test_obj_set_short_attr):
140904        (webkit_dom_test_obj_get_unsigned_short_attr):
140905        (webkit_dom_test_obj_set_unsigned_short_attr):
140906        (webkit_dom_test_obj_get_long_attr):
140907        (webkit_dom_test_obj_set_long_attr):
140908        (webkit_dom_test_obj_get_long_long_attr):
140909        (webkit_dom_test_obj_set_long_long_attr):
140910        (webkit_dom_test_obj_get_unsigned_long_long_attr):
140911        (webkit_dom_test_obj_set_unsigned_long_long_attr):
140912        (webkit_dom_test_obj_get_string_attr):
140913        (webkit_dom_test_obj_set_string_attr):
140914        (webkit_dom_test_obj_get_test_obj_attr):
140915        (webkit_dom_test_obj_set_test_obj_attr):
140916        (webkit_dom_test_obj_get_xml_obj_attr):
140917        (webkit_dom_test_obj_set_xml_obj_attr):
140918        (webkit_dom_test_obj_get_create):
140919        (webkit_dom_test_obj_set_create):
140920        (webkit_dom_test_obj_get_reflected_string_attr):
140921        (webkit_dom_test_obj_set_reflected_string_attr):
140922        (webkit_dom_test_obj_get_reflected_integral_attr):
140923        (webkit_dom_test_obj_set_reflected_integral_attr):
140924        (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
140925        (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
140926        (webkit_dom_test_obj_get_reflected_boolean_attr):
140927        (webkit_dom_test_obj_set_reflected_boolean_attr):
140928        (webkit_dom_test_obj_get_reflected_url_attr):
140929        (webkit_dom_test_obj_set_reflected_url_attr):
140930        (webkit_dom_test_obj_get_reflected_custom_integral_attr):
140931        (webkit_dom_test_obj_set_reflected_custom_integral_attr):
140932        (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
140933        (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
140934        (webkit_dom_test_obj_get_reflected_custom_url_attr):
140935        (webkit_dom_test_obj_set_reflected_custom_url_attr):
140936        (webkit_dom_test_obj_get_attr_with_getter_exception):
140937        (webkit_dom_test_obj_set_attr_with_getter_exception):
140938        (webkit_dom_test_obj_get_attr_with_setter_exception):
140939        (webkit_dom_test_obj_set_attr_with_setter_exception):
140940        (webkit_dom_test_obj_get_string_attr_with_getter_exception):
140941        (webkit_dom_test_obj_set_string_attr_with_getter_exception):
140942        (webkit_dom_test_obj_get_string_attr_with_setter_exception):
140943        (webkit_dom_test_obj_set_string_attr_with_setter_exception):
140944        (webkit_dom_test_obj_get_with_script_state_attribute):
140945        (webkit_dom_test_obj_set_with_script_state_attribute):
140946        (webkit_dom_test_obj_get_with_script_execution_context_attribute):
140947        (webkit_dom_test_obj_set_with_script_execution_context_attribute):
140948        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
140949        (webkit_dom_test_obj_set_with_script_state_attribute_raises):
140950        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
140951        (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
140952        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
140953        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
140954        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
140955        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
140956        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
140957        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
140958        (webkit_dom_test_obj_get_conditional_attr1):
140959        (webkit_dom_test_obj_set_conditional_attr1):
140960        (webkit_dom_test_obj_get_conditional_attr2):
140961        (webkit_dom_test_obj_set_conditional_attr2):
140962        (webkit_dom_test_obj_get_conditional_attr3):
140963        (webkit_dom_test_obj_set_conditional_attr3):
140964        (webkit_dom_test_obj_get_any_attribute):
140965        (webkit_dom_test_obj_set_any_attribute):
140966        (webkit_dom_test_obj_get_content_document):
140967        (webkit_dom_test_obj_get_mutable_point):
140968        (webkit_dom_test_obj_set_mutable_point):
140969        (webkit_dom_test_obj_get_immutable_point):
140970        (webkit_dom_test_obj_set_immutable_point):
140971        (webkit_dom_test_obj_get_strawberry):
140972        (webkit_dom_test_obj_set_strawberry):
140973        (webkit_dom_test_obj_get_strict_float):
140974        (webkit_dom_test_obj_set_strict_float):
140975        (webkit_dom_test_obj_get_description):
140976        (webkit_dom_test_obj_get_id):
140977        (webkit_dom_test_obj_set_id):
140978        (webkit_dom_test_obj_get_hash):
140979        (webkit_dom_test_obj_get_replaceable_attribute):
140980        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
140981        (WebKit::kit):
140982        (WebKit::core):
140983        (WebKit::wrapTestSerializedScriptValueInterface):
140984        (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
140985        (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
140986        (webkit_dom_test_serialized_script_value_interface_get_value):
140987        (webkit_dom_test_serialized_script_value_interface_set_value):
140988        (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
140989        (webkit_dom_test_serialized_script_value_interface_get_cached_value):
140990        (webkit_dom_test_serialized_script_value_interface_set_cached_value):
140991        (webkit_dom_test_serialized_script_value_interface_get_ports):
140992        (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
140993
1409942012-12-09  Carlos Garcia Campos  <cgarcia@igalia.com>
140995
140996        [GTK] Use a private struct and placement new syntax in GObject DOM bindings
140997        https://bugs.webkit.org/show_bug.cgi?id=101074
140998
140999        Reviewed by Xan Lopez.
141000
141001        It allows to use RefPtr for the wrapped object and it simplifies
141002        the code. Only the classes deriving from WebKitDOMObject keep a
141003        reference of the wrapped object in a private struct. The wrapped
141004        object is added to the cache in GObjectClass::constructor() and
141005        removed in GObjectClass::finalize().
141006
141007        * bindings/gobject/WebKitDOMBinding.cpp:
141008        (WebKit::createWrapper):
141009        (WebKit::kit):
141010        (WebKit::wrapEventTarget):
141011        * bindings/scripts/CodeGeneratorGObject.pm:
141012        (GetParentImplClassName):
141013        (GenerateProperties):
141014        (GenerateCFile):
141015        (Generate):
141016        (WriteData):
141017        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
141018        (WebKit::kit):
141019        (WebKit::core):
141020        (WebKit::wrapFloat64Array):
141021        (webkit_dom_float64array_class_init):
141022        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
141023        (_WebKitDOMTestActiveDOMObjectPrivate):
141024        (WebKit::kit):
141025        (WebKit::core):
141026        (WebKit::wrapTestActiveDOMObject):
141027        (webkit_dom_test_active_dom_object_finalize):
141028        (webkit_dom_test_active_dom_object_constructor):
141029        (webkit_dom_test_active_dom_object_class_init):
141030        (webkit_dom_test_active_dom_object_init):
141031        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
141032        (_WebKitDOMTestCallbackPrivate):
141033        (WebKit::kit):
141034        (WebKit::core):
141035        (WebKit::wrapTestCallback):
141036        (webkit_dom_test_callback_finalize):
141037        (webkit_dom_test_callback_constructor):
141038        (webkit_dom_test_callback_class_init):
141039        (webkit_dom_test_callback_init):
141040        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
141041        (_WebKitDOMTestCustomNamedGetterPrivate):
141042        (WebKit::kit):
141043        (WebKit::core):
141044        (WebKit::wrapTestCustomNamedGetter):
141045        (webkit_dom_test_custom_named_getter_finalize):
141046        (webkit_dom_test_custom_named_getter_constructor):
141047        (webkit_dom_test_custom_named_getter_class_init):
141048        (webkit_dom_test_custom_named_getter_init):
141049        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
141050        (_WebKitDOMTestEventConstructorPrivate):
141051        (WebKit::kit):
141052        (WebKit::core):
141053        (WebKit::wrapTestEventConstructor):
141054        (webkit_dom_test_event_constructor_finalize):
141055        (webkit_dom_test_event_constructor_constructor):
141056        (webkit_dom_test_event_constructor_class_init):
141057        (webkit_dom_test_event_constructor_init):
141058        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
141059        (_WebKitDOMTestEventTargetPrivate):
141060        (WebKit::kit):
141061        (WebKit::core):
141062        (WebKit::wrapTestEventTarget):
141063        (webkit_dom_test_event_target_finalize):
141064        (webkit_dom_test_event_target_constructor):
141065        (webkit_dom_test_event_target_class_init):
141066        (webkit_dom_test_event_target_init):
141067        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
141068        (_WebKitDOMTestExceptionPrivate):
141069        (WebKit::kit):
141070        (WebKit::core):
141071        (WebKit::wrapTestException):
141072        (webkit_dom_test_exception_finalize):
141073        (webkit_dom_test_exception_constructor):
141074        (webkit_dom_test_exception_class_init):
141075        (webkit_dom_test_exception_init):
141076        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
141077        (_WebKitDOMTestInterfacePrivate):
141078        (WebKit::kit):
141079        (WebKit::core):
141080        (WebKit::wrapTestInterface):
141081        (webkit_dom_test_interface_finalize):
141082        (webkit_dom_test_interface_constructor):
141083        (webkit_dom_test_interface_class_init):
141084        (webkit_dom_test_interface_init):
141085        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
141086        (_WebKitDOMTestMediaQueryListListenerPrivate):
141087        (WebKit::kit):
141088        (WebKit::core):
141089        (WebKit::wrapTestMediaQueryListListener):
141090        (webkit_dom_test_media_query_list_listener_finalize):
141091        (webkit_dom_test_media_query_list_listener_constructor):
141092        (webkit_dom_test_media_query_list_listener_class_init):
141093        (webkit_dom_test_media_query_list_listener_init):
141094        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
141095        (_WebKitDOMTestNamedConstructorPrivate):
141096        (WebKit::kit):
141097        (WebKit::core):
141098        (WebKit::wrapTestNamedConstructor):
141099        (webkit_dom_test_named_constructor_finalize):
141100        (webkit_dom_test_named_constructor_constructor):
141101        (webkit_dom_test_named_constructor_class_init):
141102        (webkit_dom_test_named_constructor_init):
141103        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
141104        (WebKit::kit):
141105        (WebKit::core):
141106        (WebKit::wrapTestNode):
141107        (webkit_dom_test_node_class_init):
141108        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
141109        (_WebKitDOMTestObjPrivate):
141110        (WebKit::kit):
141111        (WebKit::core):
141112        (WebKit::wrapTestObj):
141113        (webkit_dom_test_obj_finalize):
141114        (webkit_dom_test_obj_constructor):
141115        (webkit_dom_test_obj_class_init):
141116        (webkit_dom_test_obj_init):
141117        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
141118        (_WebKitDOMTestOverloadedConstructorsPrivate):
141119        (WebKit::kit):
141120        (WebKit::core):
141121        (WebKit::wrapTestOverloadedConstructors):
141122        (webkit_dom_test_overloaded_constructors_finalize):
141123        (webkit_dom_test_overloaded_constructors_constructor):
141124        (webkit_dom_test_overloaded_constructors_class_init):
141125        (webkit_dom_test_overloaded_constructors_init):
141126        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
141127        (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
141128        (WebKit::kit):
141129        (WebKit::core):
141130        (WebKit::wrapTestSerializedScriptValueInterface):
141131        (webkit_dom_test_serialized_script_value_interface_finalize):
141132        (webkit_dom_test_serialized_script_value_interface_constructor):
141133        (webkit_dom_test_serialized_script_value_interface_class_init):
141134        (webkit_dom_test_serialized_script_value_interface_init):
141135
1411362012-12-09  Jon Lee  <jonlee@apple.com>
141137
141138        [WK2] Move button image to injected bundle
141139        https://bugs.webkit.org/show_bug.cgi?id=104107
141140        <rdar://problem/12813842>
141141
141142        Reviewed by Simon Fraser.
141143
141144        Update RenderSnapshottedPlugIn to retrieve the start button image from the ChromeClient. Expand the
141145        kinds of images available for use as the button. Try to find the best sized button to use for the plug-in,
141146        otherwise use no image at all.
141147
141148        * rendering/RenderSnapshottedPlugIn.h: Add an enum representing the size to use. Remove the label rect
141149        variable since it is unneeded.
141150        * rendering/RenderSnapshottedPlugIn.cpp:
141151        (WebCore::RenderSnapshottedPlugIn::startLabelImage): Maintain a cache of the images for reuse. Index into the
141152        array using the enum. If the image has been loaded, or an attempt was made, then return the result. Otherwise
141153        ask the chrome client for the image.
141154        (WebCore::RenderSnapshottedPlugIn::paintLabel): Determine the proper label to use, and paint if the image is
141155        available.
141156        (WebCore::RenderSnapshottedPlugIn::tryToFitStartLabel): Compare the label size with the provided content
141157        box. Return a LayoutRect representing the label's placement. If it doesn't fit, return an empty rect.
141158        (WebCore::RenderSnapshottedPlugIn::layout): The rect is not needed because it is all determined at paint time.
141159
141160        * page/ChromeClient.h:
141161        (WebCore::ChromeClient::plugInStartLabelImage): Added.
141162
141163        * WebCore.exp.in: Expose GraphicsContext::drawNativeImage() for WKImageCG.cpp.
141164        * WebCore.xcodeproj/project.pbxproj: Remove start button assets.
141165        * Resources/startButton.png: Removed.
141166        * Resources/startButton@2x.png: Removed.
141167
1411682012-12-09  Sheriff Bot  <webkit.review.bot@gmail.com>
141169
141170        Unreviewed, rolling out r137053.
141171        http://trac.webkit.org/changeset/137053
141172        https://bugs.webkit.org/show_bug.cgi?id=104471
141173
141174        Broke PerformanceTests/Parser/html-parser.html (Requested by
141175        mkwst_ on #webkit).
141176
141177        * bindings/ScriptControllerBase.cpp:
141178        (WebCore::ScriptController::canExecuteScripts):
141179
1411802012-12-09  Kangil Han  <kangil.han@samsung.com>
141181
141182        Fix unused parameter compile warnings
141183        https://bugs.webkit.org/show_bug.cgi?id=104463
141184
141185        Reviewed by Kentaro Hara.
141186
141187        Remove compile warning messages by omitting parameter name.
141188
141189        * platform/graphics/surfaces/GraphicsSurface.cpp:
141190        (WebCore::GraphicsSurface::GraphicsSurface):
141191
1411922012-12-08  Rakesh KN  <rakeshchaitan@gmail.com>
141193
141194        Build break if SVG is disabled
141195        https://bugs.webkit.org/show_bug.cgi?id=104452
141196
141197        Reviewed by Darin Adler.
141198
141199        Build breaking after r136975 if SVG is disabled.
141200        No new tests required.
141201
141202        * rendering/FilterEffectRenderer.cpp:
141203        (WebCore::FilterEffectRenderer::buildReferenceFilter):
141204        As document is not an argument anymore, removing UNUSED_PARAM against it.
141205        * rendering/FilterEffectRenderer.h:
141206        Added forward declaration for RenderObject.
141207
1412082012-12-08  Mike West  <mkwst@chromium.org>
141209
141210        Log to console when script is blocked by sandbox attributes.
141211        https://bugs.webkit.org/show_bug.cgi?id=104365
141212
141213        Reviewed by Ojan Vafai.
141214
141215        Adds a console message to cover script execution blocked within the
141216        context of a sandboxed frame which lacks the 'allow-scripts' permission.
141217
141218        * bindings/ScriptControllerBase.cpp:
141219        (WebCore::ScriptController::canExecuteScripts):
141220            Log a warning when sandboxing flags block script execution.
141221
1412222012-12-08  No'am Rosenthal  <noam@webkit.org>
141223
141224        Use background color for GraphicsLayers when applicable
141225        https://bugs.webkit.org/show_bug.cgi?id=103786
141226
141227        Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
141228        1. The layer doesn't paint its own content, other than background/decoration.
141229        2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
141230        3. The image has only a background color, and no background image.
141231        4. background-composite is set to source-over, and background-clip is anything apart from text.
141232        5. The port supports setContentsToBackgroundColor.
141233
141234        This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
141235        for that layer, but instead draw that solid color directly.
141236        In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
141237        a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
141238        background-clip property.
141239
141240        Reviewed by Simon Fraser.
141241
141242        Tests: compositing/background-color/background-color-alpha.html
141243               compositing/background-color/background-color-change-to-text.html
141244               compositing/background-color/background-color-composite.html
141245               compositing/background-color/background-color-container.html
141246               compositing/background-color/background-color-content-clip.html
141247               compositing/background-color/background-color-padding-change.html
141248               compositing/background-color/background-color-padding-clip.html
141249               compositing/background-color/background-color-simple.html
141250               compositing/background-color/background-color-text-change.html
141251               compositing/background-color/background-color-text-clip.html
141252
141253        * platform/graphics/GraphicsLayer.h:
141254        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
141255            Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
141256            Currently only the MAC implementation and TextureMapper falls under that category.
141257
141258        * rendering/RenderBox.h:
141259        (WebCore::RenderBox::paddingBoxRect):
141260            Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
141261            background-clip: padding.
141262
141263        * rendering/RenderLayerBacking.cpp:
141264        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
141265            Update the background color if needed, for every configuration change.
141266            This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
141267
141268        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
141269            Move the contentsRect logic to updateContentsRect.
141270
141271        (WebCore::RenderLayerBacking::updateContentsRect):
141272            Use the background box when directly compositing backgrounds.
141273
141274        (WebCore::RenderLayerBacking::updateBackgroundColor):
141275            Set the background color if applicable, otherwise set to trasnparent and clear.
141276            This was not needed in the past because background colors were only used for the special case of full-screen.
141277
141278        (WebCore::supportsDirectBoxDecorationsComposition):
141279            Helper function to determine whether a particular background can be directly composited. Right now only 
141280            background color can be composited, and only if the GraphicsLayer implementation supports background colors.
141281            Also we don't yet support background-clip: text and any background-composite other than source-over.
141282
141283        (WebCore::RenderLayerBacking::paintsBoxDecorations):
141284            Apply the new supportsDirectBoxDecorationsComposition logic.
141285
141286        (WebCore::RenderLayerBacking::contentsBox):
141287            Remove unnecessary local variable.
141288
141289        (WebCore::backgroundRectForBox):
141290        (WebCore::RenderLayerBacking::backgroundBox):
141291            Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
141292            The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
141293            GraphicsLayer::contentsRect expects snapped pixels.
141294
141295
1412962012-12-08  Patrick Gansterer  <paroga@webkit.org>
141297
141298        Build fix for WinCE after r137011.
141299
141300        * platform/graphics/GraphicsContext.h:
141301        * platform/graphics/wince/GraphicsContextWinCE.cpp:
141302        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141303        (WebCore::GraphicsContext::drawBitmap):
141304        * platform/graphics/wince/ImageBufferWinCE.cpp:
141305        (WebCore::BufferedImage::draw):
141306        (WebCore::ImageBuffer::draw):
141307        * platform/graphics/wince/ImageWinCE.cpp:
141308        (WebCore::BitmapImage::getHBITMAPOfSize):
141309        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
141310        (WebCore::BitmapImage::draw):
141311        * platform/graphics/wince/SharedBitmap.cpp:
141312        (WebCore::SharedBitmap::draw):
141313        * platform/graphics/wince/SharedBitmap.h:
141314
1413152012-12-08  Gavin Peters  <gavinp@chromium.org>
141316
141317        Add status events on <link rel=prerender> elements.
141318        https://bugs.webkit.org/show_bug.cgi?id=96474
141319
141320        Reviewed by Adam Barth.
141321
141322        The new PrerenderStatusEvent is sent to link elements when
141323        prerenders are started by the embedder, and also sent when they
141324        are stopped. Pages using this feature can now serialize launching
141325        prerenders, and track timing performance.
141326
141327        Tested in a new WebKitUnitTest for the chromium port.
141328
141329        * GNUmakefile.list.am:
141330        * Target.pri:
141331        * WebCore.gypi:
141332        * WebCore.vcproj/WebCore.vcproj:
141333        * WebCore.xcodeproj/project.pbxproj:
141334        * dom/EventNames.h:
141335        (WebCore):
141336        * html/HTMLLinkElement.cpp:
141337        (WebCore):
141338        (WebCore::HTMLLinkElement::didStartLinkPrerender):
141339        (WebCore::HTMLLinkElement::didStopLinkPrerender):
141340        (WebCore::HTMLLinkElement::didSendLoadForLinkPrerender):
141341        (WebCore::HTMLLinkElement::didSendDOMContentLoadedForLinkPrerender):
141342        * html/HTMLLinkElement.h:
141343        (HTMLLinkElement):
141344        * loader/LinkLoader.cpp:
141345        (WebCore::LinkLoader::didStartPrerender):
141346        (WebCore):
141347        (WebCore::LinkLoader::didStopPrerender):
141348        (WebCore::LinkLoader::didSendLoadForPrerender):
141349        (WebCore::LinkLoader::didSendDOMContentLoadedForPrerender):
141350        (WebCore::LinkLoader::loadLink):
141351        * loader/LinkLoader.h:
141352        (LinkLoader):
141353        * loader/LinkLoaderClient.h:
141354        (LinkLoaderClient):
141355        * loader/Prerenderer.cpp:
141356        (WebCore::Prerenderer::render):
141357        * loader/Prerenderer.h:
141358        (WebCore):
141359        (Prerenderer):
141360        * platform/PrerenderClient.h: Copied from Source/WebCore/loader/LinkLoaderClient.h.
141361        (WebCore):
141362        (PrerenderClient):
141363        (WebCore::PrerenderClient::~PrerenderClient):
141364        * platform/PrerenderHandle.h:
141365        (WebCore):
141366        (PrerenderHandle):
141367        * platform/chromium/Prerender.cpp:
141368        (WebCore::Prerender::Prerender):
141369        (WebCore::Prerender::removeClient):
141370        (WebCore):
141371        (WebCore::Prerender::add):
141372        (WebCore::Prerender::cancel):
141373        (WebCore::Prerender::abandon):
141374        (WebCore::Prerender::didStartPrerender):
141375        (WebCore::Prerender::didStopPrerender):
141376        (WebCore::Prerender::didSendLoadForPrerender):
141377        (WebCore::Prerender::didSendDOMContentLoadedForPrerender):
141378        * platform/chromium/Prerender.h:
141379        (WebKit):
141380        (WebCore):
141381        (Prerender):
141382        * platform/chromium/PrerenderHandle.cpp:
141383        (WebCore::PrerenderHandle::create):
141384        (WebCore::PrerenderHandle::PrerenderHandle):
141385        (WebCore::PrerenderHandle::~PrerenderHandle):
141386        (WebCore::PrerenderHandle::removeClient):
141387        (WebCore):
141388        * platform/chromium/support/WebPrerender.cpp:
141389        (WebKit::WebPrerender::toPrerender):
141390        (WebKit):
141391        (WebKit::WebPrerender::assign):
141392        (WebKit::WebPrerender::isNull):
141393        (WebKit::WebPrerender::didStartPrerender):
141394        (WebKit::WebPrerender::didStopPrerender):
141395        (WebKit::WebPrerender::didSendLoadForPrerender):
141396        (WebKit::WebPrerender::didSendDOMContentLoadedForPrerender):
141397
1413982012-12-08  Gustavo Noronha Silva  <gns@gnome.org>
141399
141400        Reviewed by Martin Robinson.
141401
141402        Update the Chromium/Chrome version we advertise in our User-Agent
141403        string to version 25, to better match our current reality.
141404
141405        * platform/gtk/UserAgentGtk.cpp:
141406        (WebCore::standardUserAgent):
141407
1414082012-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
141409
141410        Unreviewed, rolling out r137006.
141411        http://trac.webkit.org/changeset/137006
141412        https://bugs.webkit.org/show_bug.cgi?id=104446
141413
141414        Broke plugin painting on Mac (youtube, etc.) (Requested by
141415        thorton_ on #webkit).
141416
141417        * platform/graphics/GraphicsLayer.h:
141418        (GraphicsLayer):
141419        * rendering/RenderBox.h:
141420        * rendering/RenderLayerBacking.cpp:
141421        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
141422        (WebCore::clipBox):
141423        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
141424        (WebCore::RenderLayerBacking::updateDrawsContent):
141425        (WebCore::RenderLayerBacking::updateBackgroundColor):
141426        (WebCore::RenderLayerBacking::paintsBoxDecorations):
141427        (WebCore::RenderLayerBacking::contentChanged):
141428        (WebCore::RenderLayerBacking::updateImageContents):
141429        (WebCore::RenderLayerBacking::contentsBox):
141430        * rendering/RenderLayerBacking.h:
141431        (RenderLayerBacking):
141432
1414332012-12-08  Wei James  <james.wei@intel.com>
141434
141435        Remove incorrect ASSERT for m_error in CachedResource
141436        https://bugs.webkit.org/show_bug.cgi?id=104333
141437
141438        Reviewed by Nate Chapin.
141439
141440        This assertion was brought in https://bugs.webkit.org/show_bug.cgi?id=100901 
141441        When the request is canceled, m_error.isNull() should be true.
141442
141443        run webkit_unit_tests Debug build.
141444
141445        * loader/cache/CachedResource.cpp:
141446        (WebCore::CachedResource::stopLoading):
141447
1414482012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
141449
141450        Qt Linux Minimal build fix after r136975.
141451
141452        * dom/ElementRareData.h:
141453        (ElementRareData):
141454
1414552012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
141456
141457        Qt Linux Minimal build fix attempt after r136959.
141458
141459        * inspector/InspectorInstrumentation.h:
141460        (WebCore::InspectorInstrumentation::layerTreeDidChange):
141461        (WebCore::InspectorInstrumentation::renderLayerDestroyed):
141462
1414632012-12-08  Xan Lopez  <xlopez@igalia.com>
141464
141465        Build fix after r137003. Wrap Microdata only sections with ENABLE(MICRODATA).
141466
141467        * dom/NodeRareData.h:
141468        (NodeRareData):
141469
1414702012-12-08  Ryosuke Niwa  <rniwa@webkit.org>
141471
141472        Build fix after r137003. Wrap NodeMutationObserverData with ENABLE(MUTATION_OBSERVERS).
141473
141474        * dom/NodeRareData.h:
141475        (NodeRareData):
141476
1414772012-12-08  Patrick Gansterer  <paroga@webkit.org>
141478
141479        Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r136975.
141480
141481        * rendering/svg/SVGResources.cpp:
141482        (WebCore::SVGResources::buildCachedResources):
141483
1414842012-12-08  Adam Klein  <adamk@chromium.org>
141485
141486        HTMLTemplateElement.innerHTML should be parsed into the template contents owner document
141487        https://bugs.webkit.org/show_bug.cgi?id=104407
141488
141489        Reviewed by Eric Seidel.
141490
141491        When parsing via innerHTML, ensure that all operations (including the
141492        initial fragment creation) occur in the proper document to avoid,
141493        e.g., images loading while being parsed into the template contents.
141494        This matches the parsing behavior during page load.
141495
141496        Test: fast/dom/HTMLTemplateElement/innerHTML-inert.html
141497
141498        * editing/markup.cpp:
141499        (WebCore::createFragmentForInnerOuterHTML):
141500
1415012012-12-08  ChangSeok Oh  <shivamidow@gmail.com>
141502
141503        Assertion failed at WebCore::RedirectedXCompositeWindow::context()
141504        https://bugs.webkit.org/show_bug.cgi?id=104349
141505
141506        Reviewed by Martin Robinson.
141507
141508        We should return GLContext if m_needsContext is CreateGLContext. By the way
141509        CreateGLContext is a enum value and its default value is 0. So checking
141510        ASSERT(m_needsContext) causes a crash on debug build.
141511        ASSERT(m_needsContext == CreateGLContext) is better here.
141512
141513        No new tests since we can verify this with already existing AC tests.
141514
141515        * platform/gtk/RedirectedXCompositeWindow.cpp:
141516        (WebCore::RedirectedXCompositeWindow::context):
141517
1415182012-12-07  Rik Cabanier  <cabanier@adobe.com>
141519
141520        Extend platform layer so it can pass blend modes to the compositing calls
141521        https://bugs.webkit.org/show_bug.cgi?id=104176
141522
141523        Reviewed by Dirk Schulze.
141524
141525        Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 
141526
141527        No new tests, no new functionality.
141528
141529        * html/HTMLCanvasElement.cpp:
141530        (WebCore::HTMLCanvasElement::paint):
141531        * platform/graphics/BitmapImage.h:
141532        * platform/graphics/CrossfadeGeneratedImage.cpp:
141533        (WebCore::CrossfadeGeneratedImage::draw):
141534        * platform/graphics/CrossfadeGeneratedImage.h:
141535        (CrossfadeGeneratedImage):
141536        * platform/graphics/GeneratedImage.h:
141537        (GeneratedImage):
141538        * platform/graphics/GeneratorGeneratedImage.cpp:
141539        (WebCore::GeneratorGeneratedImage::draw):
141540        * platform/graphics/GeneratorGeneratedImage.h:
141541        (GeneratorGeneratedImage):
141542        * platform/graphics/GraphicsContext.cpp:
141543        (WebCore::GraphicsContext::drawImage):
141544        (WebCore):
141545        (WebCore::GraphicsContext::drawImageBuffer):
141546        (WebCore::GraphicsContext::setCompositeOperation):
141547        * platform/graphics/GraphicsContext.h:
141548        (WebCore::GraphicsContextState::GraphicsContextState):
141549        (GraphicsContextState):
141550        (GraphicsContext):
141551        * platform/graphics/Image.cpp:
141552        (WebCore::Image::draw):
141553        (WebCore::Image::drawTiled):
141554        * platform/graphics/Image.h:
141555        (Image):
141556        * platform/graphics/ImageBuffer.h:
141557        (ImageBuffer):
141558        * platform/graphics/cairo/BitmapImageCairo.cpp:
141559        (WebCore::BitmapImage::draw):
141560        * platform/graphics/cairo/GraphicsContextCairo.cpp:
141561        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141562        * platform/graphics/cairo/ImageBufferCairo.cpp:
141563        (WebCore::ImageBuffer::draw):
141564        * platform/graphics/cg/BitmapImageCG.cpp:
141565        (WebCore::BitmapImage::draw):
141566        * platform/graphics/cg/GraphicsContextCG.cpp:
141567        (WebCore::GraphicsContext::drawNativeImage):
141568        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141569        * platform/graphics/cg/ImageBufferCG.cpp:
141570        (WebCore::ImageBuffer::draw):
141571        * platform/graphics/cg/PDFDocumentImage.cpp:
141572        (WebCore::PDFDocumentImage::draw):
141573        * platform/graphics/cg/PDFDocumentImage.h:
141574        (PDFDocumentImage):
141575        * platform/graphics/qt/GraphicsContextQt.cpp:
141576        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141577        * platform/graphics/qt/ImageBufferQt.cpp:
141578        (WebCore::ImageBuffer::draw):
141579        * platform/graphics/qt/ImageQt.cpp:
141580        (WebCore::BitmapImage::draw):
141581        * platform/graphics/qt/StillImageQt.cpp:
141582        (WebCore::StillImage::draw):
141583        * platform/graphics/qt/StillImageQt.h:
141584        (StillImage):
141585        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
141586        (BitmapImageSingleFrameSkia):
141587        * platform/graphics/skia/GraphicsContextSkia.cpp:
141588        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141589        * platform/graphics/skia/ImageBufferSkia.cpp:
141590        (WebCore::ImageBuffer::draw):
141591        * platform/graphics/skia/ImageSkia.cpp:
141592        (WebCore::BitmapImage::draw):
141593        (WebCore::BitmapImageSingleFrameSkia::draw):
141594        * platform/graphics/win/ImageCGWin.cpp:
141595        (WebCore::BitmapImage::getHBITMAPOfSize):
141596        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
141597        * svg/graphics/SVGImage.cpp:
141598        (WebCore::SVGImage::drawSVGToImageBuffer):
141599        (WebCore::SVGImage::draw):
141600        (WebCore::SVGImage::nativeImageForCurrentFrame):
141601        * svg/graphics/SVGImage.h:
141602        (SVGImage):
141603
1416042012-12-07  Alpha Lam  <hclam@chromium.org>
141605
141606        [chromium] ImageDecodingStore should cache partially decoded images
141607        https://bugs.webkit.org/show_bug.cgi?id=103796
141608
141609        Reviewed by Stephen White.
141610
141611        Implement caching for incomplete images, meaning the image is partially
141612        decoded. The image is cached together with partially decoded ImageDecoder.
141613        This allows decoding to resume in a later time.
141614
141615        Caching logic for incomplete images is implemented in ImageDecodingStore.
141616
141617        Logic for resuming image decoding is implemented in ImageFrameGenerator.
141618
141619        ImageDecodingStore allows storing incomplete image with the decoder.
141620        The cache entry can be used in a later time to read and write (i.e. resume
141621        decoding.) To avoid the same entry being written and read at the same time,
141622        an incomplete entry can be used by one user only. Concurrent access to
141623        an incomplete entry should never happen and is checked by an assert.
141624        An entry can becomes complete when decoding is finished. In this case
141625        the associated decoder is deleted. Once an entry becomes complete concurrent
141626        read is allowed.
141627
141628        ImageFrameGenerator performs the logic to resume image decoding. It
141629        performs the following operations in sequence:
141630        - Try to lookup a complete image
141631        - Try to perform scaling on a complete image
141632        - Try to lookup an incomplete image and resume decoding & scaling
141633        - Everything fails, start decoding from scratch
141634        The entire sequence of operations in under a mutex, hence there will be
141635        no more than 1 user of an incomplete cache entry at the same time.
141636
141637        New unit tests in ImageDecodingStoreTest and ImageFrameGeneratorTest.
141638
141639        * platform/graphics/chromium/ImageDecodingStore.cpp:
141640        (WebCore::ImageDecodingStore::lockCache):
141641        Change of method definition to return an image and ImageDecoder.
141642        (WebCore::ImageDecodingStore::unlockCache):
141643        (WebCore::ImageDecodingStore::insertAndLockCache):
141644        (WebCore::ImageDecodingStore::overwriteAndLockCache):
141645        New method to allow an incomplete cache entry be overwritten.
141646        (WebCore):
141647        * platform/graphics/chromium/ImageDecodingStore.h:
141648        (ImageDecodingStore):
141649        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
141650        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
141651        (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
141652        (WebCore::ImageDecodingStore::CacheEntry::cachedDecoder):
141653        (WebCore::ImageDecodingStore::CacheEntry::releaseCachedDecoder):
141654        (WebCore::ImageDecodingStore::CacheEntry::overwriteCachedImage):
141655        New method to allow an incomplete image be overwitten.
141656        (CacheEntry):
141657        * platform/graphics/chromium/ImageFrameGenerator.cpp:
141658        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
141659        (WebCore::ImageFrameGenerator::decodeAndScale):
141660        (WebCore::ImageFrameGenerator::tryToLockCompleteCache):
141661        (WebCore::ImageFrameGenerator::tryToScale):
141662        (WebCore::ImageFrameGenerator::tryToResumeDecodeAndScale):
141663        New method to lookup an incomplete cache entry and resume decoding.
141664        (WebCore):
141665        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
141666        (WebCore::ImageFrameGenerator::decoder):
141667        New helper method to do decoding for a full sized image.
141668        (WebCore::ImageFrameGenerator::prepareData):
141669        New helper method to prepare data safely.
141670        * platform/graphics/chromium/ImageFrameGenerator.h:
141671        (ImageFrameGenerator):
141672        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
141673        (WebCore::LazyDecodingPixelRef::onLockPixels):
141674        * platform/graphics/chromium/ScaledImageFragment.h:
141675        (WebCore::ScaledImageFragment::setIsComplete):
141676
1416772012-12-07  Alexis Menard  <alexis@webkit.org>
141678
141679        Enable CSS3 position offset for CSS Masking.
141680        https://bugs.webkit.org/show_bug.cgi?id=104252
141681
141682        Reviewed by Dirk Schulze.
141683
141684        To follow CSS3 background-position, mask-position should also support
141685        the new <position> type (http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property).
141686        Now the code is shared between background and mask I renamed the
141687        functions used to be more generic. Note that the feature flag is not
141688        meant to stay and will be removed in a following commit.
141689
141690        No new tests : I modified LayoutTests/fast/masking/parsing-mask.html to
141691        cover the new feature.
141692
141693        * css/CSSComputedStyleDeclaration.cpp:
141694        (WebCore::createPositionListForLayer):
141695        * css/CSSParser.cpp:
141696        (WebCore::isFillPositionKeyword):
141697        (WebCore::CSSParser::parse4ValuesFillPosition):
141698        (WebCore::CSSParser::parse3ValuesFillPosition):
141699        (WebCore::CSSParser::isPotentialPositionValue):
141700        (WebCore::CSSParser::parseFillPosition):
141701        (WebCore::CSSParser::parse2ValuesFillPosition):
141702        (WebCore::CSSParser::parseFillProperty):
141703        (WebCore::CSSParser::parseTransformOriginShorthand):
141704        (WebCore::CSSParser::parseRadialGradient):
141705        (WebCore::CSSParser::parsePerspectiveOrigin):
141706        * css/CSSParser.h:
141707        * css/CSSToStyleMap.cpp:
141708        (WebCore::CSSToStyleMap::mapFillXPosition):
141709        (WebCore::CSSToStyleMap::mapFillYPosition):
141710
1417112012-12-07  No'am Rosenthal  <noam@webkit.org>
141712
141713        Use background color for GraphicsLayers when applicable
141714        https://bugs.webkit.org/show_bug.cgi?id=103786
141715
141716        Updated RenderLayerBacking to call GraphicsLayer::setContentsToBackgroundColor when the following conditions take place:
141717        1. The layer doesn't paint its own content, other than background/decoration.
141718        2. There are no borders or other box decorations (border radius, borders, outline, shadow etc.)
141719        3. The image has only a background color, and no background image.
141720        4. background-composite is set to source-over, and background-clip is anything apart from text.
141721        5. The port supports setContentsToBackgroundColor.
141722
141723        This allows any implementation of GraphicsLayer that supports setContentsToBackgroundColor to avoid allocating a backing store
141724        for that layer, but instead draw that solid color directly.
141725        In addition to setting the background color, the layer's contentsRect needs to be adjusted, since the default contents rect of
141726        a layer is not always equivalent to the rect where the background is supposed to be painted, which is derived from the box's
141727        background-clip property.
141728
141729        Reviewed by Simon Fraser.
141730
141731        Tests: compositing/background-color/background-color-alpha.html
141732               compositing/background-color/background-color-change-to-text.html
141733               compositing/background-color/background-color-composite.html
141734               compositing/background-color/background-color-container.html
141735               compositing/background-color/background-color-content-clip.html
141736               compositing/background-color/background-color-padding-change.html
141737               compositing/background-color/background-color-padding-clip.html
141738               compositing/background-color/background-color-simple.html
141739               compositing/background-color/background-color-text-change.html
141740               compositing/background-color/background-color-text-clip.html
141741
141742        * platform/graphics/GraphicsLayer.h:
141743        (WebCore::GraphicsLayer::supportsBackgroundColorContent):
141744            Allows different implementation of GraphicsLayer to identify whether they implement setContentsToBackgroundColor.
141745            Currently only the MAC implementation and TextureMapper falls under that category.
141746
141747        * rendering/RenderBox.h:
141748        (WebCore::RenderBox::paddingBoxRect):
141749            Added paddingBoxRect to compliment borderBoxRect and contentsBoxRect. paddingBoxRect corresponds to 
141750            background-clip: padding.
141751
141752        * rendering/RenderLayerBacking.cpp:
141753        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
141754            Update the background color if needed, for every configuration change.
141755            This should accomodate the old behavior for full-screen, while enabling background color changes for other layers.
141756
141757        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
141758            Move the contentsRect logic to updateContentsRect.
141759
141760        (WebCore::RenderLayerBacking::updateContentsRect):
141761            Use the background box when directly compositing backgrounds.
141762
141763        (WebCore::RenderLayerBacking::updateBackgroundColor):
141764            Set the background color if applicable, otherwise set to trasnparent and clear.
141765            This was not needed in the past because background colors were only used for the special case of full-screen.
141766
141767        (WebCore::supportsDirectBoxDecorationsComposition):
141768            Helper function to determine whether a particular background can be directly composited. Right now only 
141769            background color can be composited, and only if the GraphicsLayer implementation supports background colors.
141770            Also we don't yet support background-clip: text and any background-composite other than source-over.
141771
141772        (WebCore::RenderLayerBacking::paintsBoxDecorations):
141773            Apply the new supportsDirectBoxDecorationsComposition logic.
141774
141775        (WebCore::RenderLayerBacking::contentsBox):
141776            Remove unnecessary local variable.
141777
141778        (WebCore::backgroundRectForBox):
141779        (WebCore::RenderLayerBacking::backgroundBox):
141780            Figure out the correct rect for the GraphicsLayer's contentsRect, based on the renderer's backgroundClip.
141781            The rectangle has to be adjusted based on the composited layer offset, and snapped to an IntRect as 
141782            GraphicsLayer::contentsRect expects snapped pixels.
141783
141784
1417852012-12-06  Ryosuke Niwa  <rniwa@webkit.org>
141786
141787        Shrink the size of NodeRareData by moving pointers into separate objects
141788        https://bugs.webkit.org/show_bug.cgi?id=104312
141789
141790        Reviewed by Andreas Kling.
141791
141792        This patch does three things:
141793        1. Move ChildNodeList back into NodeListsNodeData.
141794        2. Move m_mutationObserverRegistry & m_transientMutationObserverRegistry into a separate object owned by NodeRareData.
141795        3. Move m_itemProp, m_itemRef, m_itemType & into a separate object owned by NodeRareData.
141796
141797        Moving m_childNodeList from NodeRareData to NodeListsNodeData also has a nice side-effect of making ChildNodeList
141798        behave more like other LiveNodeLists.
141799
141800        This patch also fixes Mac build when microdata is enabled.
141801
141802        There should be no user-visible behavior change.
141803
141804        * dom/ChildNodeList.cpp:
141805        (WebCore::ChildNodeList::~ChildNodeList):
141806        * dom/Node.cpp:
141807        (WebCore::Node::childNodes): Moved the code to create ChildNodeList into NodeListsNodeData to match other node lists.
141808        (WebCore::Node::invalidateNodeListCachesInAncestors):
141809        (WebCore): Removed removeCachedChildNodeList.
141810        * dom/Node.h:
141811        (Node):
141812        * dom/NodeRareData.cpp:
141813        (WebCore): Assert the size of NodeRareData at compilation time.
141814        (WebCore::NodeListsNodeData::reportMemoryUsage):
141815        (WebCore::NodeRareData::reportMemoryUsage):
141816        * dom/NodeRareData.h:
141817        (WebCore::NodeListsNodeData::clearChildNodeListCache): Moved from NodeRareData.
141818        (WebCore::NodeListsNodeData::ensureChildNodeList): Extracted from Node::childNodes.
141819        (WebCore::NodeListsNodeData::removeChildNodeList): Added.
141820        (WebCore::NodeListsNodeData::NodeListsNodeData): Initialize m_childNodeList.
141821        (WebCore::NodeRareData::NodeMutationObserverData): Extracted from NodeRareData.
141822        (WebCore::NodeRareData::NodeMutationObserverData::create):
141823        (WebCore::NodeRareData::NodeMicroDataTokenLists): Ditto.
141824        (WebCore::NodeRareData::NodeMicroDataTokenLists::create):
141825        (WebCore::NodeRareData::NodeRareData):
141826        (WebCore::NodeRareData::ensureNodeLists): Merged setNodeLists since it's not called elsewhere.
141827        (WebCore::NodeRareData::mutationObserverRegistry):
141828        (WebCore::NodeRareData::ensureMutationObserverRegistry): Added.
141829        (WebCore::NodeRareData::transientMutationObserverRegistry):
141830        (WebCore::NodeRareData::ensureTransientMutationObserverRegistry):
141831        (WebCore::NodeRareData::ensureMicroDataTokenLists):
141832        (NodeRareData):
141833        (WebCore::NodeRareData::itemProp):
141834        (WebCore::NodeRareData::setItemProp):
141835        (WebCore::NodeRareData::itemRef):
141836        (WebCore::NodeRareData::setItemRef):
141837        (WebCore::NodeRareData::itemType):
141838        (WebCore::NodeRareData::setItemType):
141839        * html/HTMLPropertiesCollection.cpp:
141840        (WebCore::HTMLPropertiesCollection::propertyNodeList): Renamed from namedItem since its return type, PropertyNodeList,
141841        is different from that, Node, of LiveNodeList::namedItem. It was shadowing the function name instead of overriding.
141842        * html/HTMLPropertiesCollection.h:
141843        (HTMLPropertiesCollection):
141844        * html/HTMLPropertiesCollection.idl:
141845
1418462012-12-07  Sheriff Bot  <webkit.review.bot@gmail.com>
141847
141848        Unreviewed, rolling out r136993.
141849        http://trac.webkit.org/changeset/136993
141850        https://bugs.webkit.org/show_bug.cgi?id=104415
141851
141852        This patch breaks the mac build (Requested by cabanier on
141853        #webkit).
141854
141855        * html/HTMLCanvasElement.cpp:
141856        (WebCore::HTMLCanvasElement::paint):
141857        * platform/graphics/BitmapImage.h:
141858        * platform/graphics/CrossfadeGeneratedImage.cpp:
141859        (WebCore::CrossfadeGeneratedImage::draw):
141860        * platform/graphics/CrossfadeGeneratedImage.h:
141861        (CrossfadeGeneratedImage):
141862        * platform/graphics/GeneratedImage.h:
141863        (GeneratedImage):
141864        * platform/graphics/GeneratorGeneratedImage.cpp:
141865        (WebCore::GeneratorGeneratedImage::draw):
141866        * platform/graphics/GeneratorGeneratedImage.h:
141867        (GeneratorGeneratedImage):
141868        * platform/graphics/GraphicsContext.cpp:
141869        (WebCore::GraphicsContext::drawImage):
141870        (WebCore::GraphicsContext::drawImageBuffer):
141871        (WebCore::GraphicsContext::setCompositeOperation):
141872        * platform/graphics/GraphicsContext.h:
141873        (WebCore::GraphicsContextState::GraphicsContextState):
141874        (GraphicsContextState):
141875        (GraphicsContext):
141876        * platform/graphics/Image.cpp:
141877        (WebCore::Image::draw):
141878        (WebCore::Image::drawTiled):
141879        * platform/graphics/Image.h:
141880        (Image):
141881        * platform/graphics/ImageBuffer.h:
141882        (ImageBuffer):
141883        * platform/graphics/cairo/BitmapImageCairo.cpp:
141884        (WebCore::BitmapImage::draw):
141885        * platform/graphics/cairo/GraphicsContextCairo.cpp:
141886        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141887        * platform/graphics/cairo/ImageBufferCairo.cpp:
141888        (WebCore::ImageBuffer::draw):
141889        * platform/graphics/cg/BitmapImageCG.cpp:
141890        (WebCore::BitmapImage::draw):
141891        * platform/graphics/cg/GraphicsContextCG.cpp:
141892        (WebCore::GraphicsContext::drawNativeImage):
141893        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141894        * platform/graphics/cg/ImageBufferCG.cpp:
141895        (WebCore::ImageBuffer::draw):
141896        * platform/graphics/cg/PDFDocumentImage.cpp:
141897        (WebCore::PDFDocumentImage::draw):
141898        * platform/graphics/cg/PDFDocumentImage.h:
141899        (PDFDocumentImage):
141900        * platform/graphics/qt/GraphicsContextQt.cpp:
141901        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141902        * platform/graphics/qt/ImageBufferQt.cpp:
141903        (WebCore::ImageBuffer::draw):
141904        * platform/graphics/qt/ImageQt.cpp:
141905        (WebCore::BitmapImage::draw):
141906        * platform/graphics/qt/StillImageQt.cpp:
141907        (WebCore::StillImage::draw):
141908        * platform/graphics/qt/StillImageQt.h:
141909        (StillImage):
141910        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
141911        (BitmapImageSingleFrameSkia):
141912        * platform/graphics/skia/GraphicsContextSkia.cpp:
141913        (WebCore::GraphicsContext::setPlatformCompositeOperation):
141914        * platform/graphics/skia/ImageBufferSkia.cpp:
141915        (WebCore::ImageBuffer::draw):
141916        * platform/graphics/skia/ImageSkia.cpp:
141917        (WebCore::BitmapImage::draw):
141918        (WebCore::BitmapImageSingleFrameSkia::draw):
141919        * platform/graphics/win/ImageCGWin.cpp:
141920        (WebCore::BitmapImage::getHBITMAPOfSize):
141921        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
141922        * svg/graphics/SVGImage.cpp:
141923        (WebCore::SVGImage::drawSVGToImageBuffer):
141924        (WebCore::SVGImage::draw):
141925        (WebCore::SVGImage::nativeImageForCurrentFrame):
141926        * svg/graphics/SVGImage.h:
141927        (SVGImage):
141928
1419292012-12-07  Alexey Proskuryakov  <ap@apple.com>
141930
141931        There is no need to change cached resource storage policy through ResourceHandleClient
141932        https://bugs.webkit.org/show_bug.cgi?id=104413
141933
141934        Reviewed by Brady Eidson.
141935
141936        This code was only needed to prevent storing responses to disk in private browsing
141937        mode, but we now have a storage session to take care of that in a cleaner and more
141938        reliable way.
141939
141940        * loader/ResourceLoader.cpp:
141941        * loader/ResourceLoader.h: (WebCore::ResourceLoader::receivedCancellation):
141942        * platform/network/ResourceHandleClient.h:
141943        * platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::willCacheResponse):
141944        * platform/network/mac/ResourceHandleMac.mm:
141945        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
141946
1419472012-12-07  Adam Klein  <adamk@chromium.org>
141948
141949        MutationRecord addedNodes/removedNodes should never be null
141950        https://bugs.webkit.org/show_bug.cgi?id=98921
141951
141952        Reviewed by Ryosuke Niwa.
141953
141954        Per an update to the DOM4 spec that matches Gecko's behavior,
141955        addedNodes/removedNodes should be empty NodeLists on 'attributes'
141956        and 'characterData' records, rather than null.
141957
141958        This is accomplished with lazy initialization of addedNodes/removedNodes
141959        attributes on 'attributes'/'characterData' records and the
141960        addition of a new StaticNodeList::createEmpty() factory method.
141961
141962        * dom/MutationRecord.cpp:
141963        * dom/MutationRecord.h:
141964        (MutationRecord):
141965        * dom/StaticNodeList.h:
141966        (WebCore::StaticNodeList::adopt):
141967        (StaticNodeList):
141968        (WebCore::StaticNodeList::createEmpty):
141969        (WebCore::StaticNodeList::StaticNodeList):
141970
1419712012-12-07  Brent Fulgham  <bfulgham@webkit.org>
141972
141973        Unreviewed build correction after 136959.
141974
141975        The initialization list should follow the same compiler macro
141976        exclusions as the class members.
141977
141978        * inspector/InstrumentingAgents.h: Add USE(ACCELERATED_COMPOSITING)
141979          guards around m_inspectorLayerTreeAgent as this does not exist
141980          when the guard is false.
141981
1419822012-12-07  Rik Cabanier  <cabanier@adobe.com>
141983
141984        Extend platform layer so it can pass blend modes to the compositing calls
141985        https://bugs.webkit.org/show_bug.cgi?id=104176
141986
141987        Reviewed by Dirk Schulze.
141988
141989        Adding blend mode enumeration to drawImage functions + stored blendmode in graphics context 
141990
141991        No new tests, no new functionality.
141992
141993        * html/HTMLCanvasElement.cpp:
141994        (WebCore::HTMLCanvasElement::paint):
141995        * platform/graphics/BitmapImage.h:
141996        * platform/graphics/CrossfadeGeneratedImage.cpp:
141997        (WebCore::CrossfadeGeneratedImage::draw):
141998        * platform/graphics/CrossfadeGeneratedImage.h:
141999        (CrossfadeGeneratedImage):
142000        * platform/graphics/GeneratedImage.h:
142001        (GeneratedImage):
142002        * platform/graphics/GeneratorGeneratedImage.cpp:
142003        (WebCore::GeneratorGeneratedImage::draw):
142004        * platform/graphics/GeneratorGeneratedImage.h:
142005        (GeneratorGeneratedImage):
142006        * platform/graphics/GraphicsContext.cpp:
142007        (WebCore::GraphicsContext::drawImage):
142008        (WebCore):
142009        (WebCore::GraphicsContext::drawImageBuffer):
142010        (WebCore::GraphicsContext::setCompositeOperation):
142011        * platform/graphics/GraphicsContext.h:
142012        (WebCore::GraphicsContextState::GraphicsContextState):
142013        (GraphicsContextState):
142014        (GraphicsContext):
142015        * platform/graphics/Image.cpp:
142016        (WebCore::Image::draw):
142017        (WebCore::Image::drawTiled):
142018        * platform/graphics/Image.h:
142019        (Image):
142020        * platform/graphics/ImageBuffer.h:
142021        (ImageBuffer):
142022        * platform/graphics/cairo/BitmapImageCairo.cpp:
142023        (WebCore::BitmapImage::draw):
142024        * platform/graphics/cairo/GraphicsContextCairo.cpp:
142025        (WebCore::GraphicsContext::setPlatformCompositeOperation):
142026        * platform/graphics/cairo/ImageBufferCairo.cpp:
142027        (WebCore::ImageBuffer::draw):
142028        * platform/graphics/cg/BitmapImageCG.cpp:
142029        (WebCore::BitmapImage::draw):
142030        * platform/graphics/cg/GraphicsContextCG.cpp:
142031        (WebCore::GraphicsContext::drawNativeImage):
142032        (WebCore::GraphicsContext::setPlatformCompositeOperation):
142033        * platform/graphics/cg/ImageBufferCG.cpp:
142034        (WebCore::ImageBuffer::draw):
142035        * platform/graphics/cg/PDFDocumentImage.cpp:
142036        (WebCore::PDFDocumentImage::draw):
142037        * platform/graphics/cg/PDFDocumentImage.h:
142038        (PDFDocumentImage):
142039        * platform/graphics/qt/GraphicsContextQt.cpp:
142040        (WebCore::GraphicsContext::setPlatformCompositeOperation):
142041        * platform/graphics/qt/ImageBufferQt.cpp:
142042        (WebCore::ImageBuffer::draw):
142043        * platform/graphics/qt/ImageQt.cpp:
142044        (WebCore::BitmapImage::draw):
142045        * platform/graphics/qt/StillImageQt.cpp:
142046        (WebCore::StillImage::draw):
142047        * platform/graphics/qt/StillImageQt.h:
142048        (StillImage):
142049        * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
142050        (BitmapImageSingleFrameSkia):
142051        * platform/graphics/skia/GraphicsContextSkia.cpp:
142052        (WebCore::GraphicsContext::setPlatformCompositeOperation):
142053        * platform/graphics/skia/ImageBufferSkia.cpp:
142054        (WebCore::ImageBuffer::draw):
142055        * platform/graphics/skia/ImageSkia.cpp:
142056        (WebCore::BitmapImage::draw):
142057        (WebCore::BitmapImageSingleFrameSkia::draw):
142058        * platform/graphics/win/ImageCGWin.cpp:
142059        (WebCore::BitmapImage::getHBITMAPOfSize):
142060        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
142061        * svg/graphics/SVGImage.cpp:
142062        (WebCore::SVGImage::drawSVGToImageBuffer):
142063        (WebCore::SVGImage::draw):
142064        (WebCore::SVGImage::nativeImageForCurrentFrame):
142065        * svg/graphics/SVGImage.h:
142066        (SVGImage):
142067
1420682012-12-07  Alec Flett  <alecflett@chromium.org>
142069
142070        IndexedDB: propagate transaction_ids through open/upgradeneeded
142071        https://bugs.webkit.org/show_bug.cgi?id=103922
142072
142073        Reviewed by Tony Chang.
142074
142075        Make sure front-end is always generating the transaction id,
142076        so that it can be relied upon as an alternative to the
142077        to-be-deprecated IDBTransactionBackendInterface pointer.
142078
142079        No new tests, this is one stage in a larger refactor.
142080
142081        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
142082        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
142083        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
142084        (IDBDatabaseBackendImpl::VersionChangeOperation):
142085        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
142086        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::transactionId):
142087        (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
142088        (IDBDatabaseBackendImpl::PendingOpenCall):
142089        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
142090        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::transactionId):
142091        (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
142092        (IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
142093        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
142094        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
142095        (WebCore::IDBDatabaseBackendImpl::createTransaction):
142096        (WebCore::IDBDatabaseBackendImpl::openConnection):
142097        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
142098        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
142099        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
142100        (IDBDatabaseBackendImpl):
142101        * Modules/indexeddb/IDBFactory.cpp:
142102        (WebCore::IDBFactory::openInternal):
142103        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
142104        (WebCore::IDBFactoryBackendImpl::open):
142105
1421062012-12-07  Dima Gorbik  <dgorbik@apple.com>
142107
142108        Implement general ::cue pseudo element for the <video>
142109        https://bugs.webkit.org/show_bug.cgi?id=104043
142110
142111        Reviewed by Eric Carlson.
142112
142113        Implemented the ::cue pseudo element to be able to style all WebVTT cues.
142114        Added the subcontainer with a '::cue' pseudoId in between the TextTrackContainerElement and WebVTT nodes to separate
142115        user agent default styles from user defined styles for the cue elements.
142116
142117        Test: media/track/track-css-all-cues.html
142118
142119        * css/CSSSelector.cpp: ::cue pseudo selector doesn't have a valid prefix but should be allowed in the user-agent stylesheet.
142120        (WebCore::CSSSelector::parsePseudoType):
142121        * html/shadow/MediaControlElements.cpp:
142122        (WebCore):
142123        (WebCore::MediaControlTextTrackContainerElement::createSubtrees): create a subcontainer and set its pseudoId to '::cue'.
142124        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): append WebVTT nodes to the newly created subcontainer.
142125        * html/shadow/MediaControlElements.h:
142126        (MediaControlTextTrackContainerElement):
142127        * html/shadow/MediaControls.cpp:
142128        (WebCore::MediaControls::createTextTrackDisplay): initiate creating subtrees for the MediaControlTextTrackContainerElement.
142129        * html/shadow/MediaControlsChromium.cpp:
142130        (WebCore::MediaControlsChromium::createTextTrackDisplay):
142131
1421322012-12-06  Geoffrey Garen  <ggaren@apple.com>
142133
142134        Crash in JSC::Bindings::RootObject::globalObject() sync'ing notes in Evernote
142135        https://bugs.webkit.org/show_bug.cgi?id=104321
142136        <rdar://problem/12770497>
142137
142138        Reviewed by Sam Weinig.
142139
142140        Missed a null check.
142141
142142        * bindings/objc/WebScriptObject.mm:
142143        (-[WebScriptObject JSObject]): If our root object has been cleared, don't
142144        try to dereference it. This happens in Evernote during tear-down.
142145
142146        This matches the behavior of other methods in the same class.
142147
142148        (_isSafeScript returns false if the root object has been cleared.)
142149
142150        If we believe _isSafeScript is a good idea, it's probably the right test
142151        to use here (as opposed to just null-checking _rootObject) because this API
142152        gives the client unlimited access to the underlying JavaScript object.
142153
1421542012-12-07  Stephen Chenney  <schenney@chromium.org>
142155
142156        XMLSerializer is too aggressive in adding prefixes
142157        https://bugs.webkit.org/show_bug.cgi?id=104387
142158
142159        Reviewed by Ryosuke Niwa.
142160
142161        We have been adding "xlink:" and "xmlns:" and "xml:" prefixes to any
142162        attribute that is in one of those namespaces but which did not already
142163        have the matching prefix. This appears to be in error, at least
142164        compared to other browsers.
142165
142166        The correct behavior appears to be to add the prefix only if there is
142167        no existing prefix. If there is an existing prefix, we now leave it alone.
142168
142169        No new tests. Existing test expanded.
142170
142171        * editing/MarkupAccumulator.cpp:
142172        (WebCore::MarkupAccumulator::appendAttribute): Only replace the prefix
142173        attribute name prefix if it is empty, and in one of the recognised
142174        namespaces.
142175
1421762012-12-07  Jon Lee  <jonlee@apple.com>
142177
142178        Display the auto-start label image after a delay
142179        https://bugs.webkit.org/show_bug.cgi?id=104173
142180        <rdar://problem/12820071>
142181
142182        Reviewed by Dan Bernstein.
142183
142184        Treat the button now as a label. Once the user has hovered over the plug-in, wait a little while before showing the label.
142185
142186        * rendering/RenderSnapshottedPlugIn.h:
142187        (RenderSnapshottedPlugIn): Add a one-shot timer, and a variable representing whether the label should
142188        be drawn. Remove the variable that determines whether the label is active.
142189
142190        * rendering/RenderSnapshottedPlugIn.cpp:
142191        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Set the time to a delay of 1 second.
142192        (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the label only when we should.
142193        (WebCore::RenderSnapshottedPlugIn::paintLabel): The label should only paint in its hovered state.
142194        (WebCore::startLabelImage): Renamed.
142195        (WebCore::RenderSnapshottedPlugIn::repaintLabel): Renamed.
142196        (WebCore::RenderSnapshottedPlugIn::hoverDelayTimerFired): Now that the timer has fired, we should paint
142197        the label. Repaint.
142198        (WebCore::RenderSnapshottedPlugIn::handleEvent): Update event handling. Click event handler is the
142199        same, except we move the label check inside so that if the click is not the left label we don't
142200        fall through to the other irrevelant if clauses.
142201            For the mouse down handler, make sure to check for the left label. If the hover timer is still running,
142202        stop it, so that we don't draw a label while the user is in the middle of a mouse gesture.
142203            Redo mouse over and out. On mouse over we start the delay timer. On mouse out we stop the delay timer
142204        if it is still running, reset state, and paint the label out.
142205        (WebCore::RenderSnapshottedPlugIn::layout): Refactor.
142206
142207        * Resources/startButtonPressed.png: Removed.
142208        * Resources/startButtonPressed@2x.png: Removed.
142209        * WebCore.xcodeproj/project.pbxproj:
142210
1422112012-12-07  Scott Violet  <sky@chromium.org>
142212
142213        [chromium] Remove linux theme related files and switch to default
142214        https://bugs.webkit.org/show_bug.cgi?id=103897
142215
142216        Reviewed by Dimitri Glazkov.
142217
142218        Linux related theme files are now named Default.
142219
142220        No new tests, code cleanup.
142221
142222        * WebCore.gyp/WebCore.gyp: Update files
142223        * WebCore.gypi: Update files
142224        * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
142225        * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
142226        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
142227        * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
142228        * rendering/RenderThemeChromiumAndroid.cpp:
142229        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
142230        * rendering/RenderThemeChromiumAndroid.h: Change superclass
142231        * rendering/RenderThemeChromiumLinux.cpp: Removed.
142232        * rendering/RenderThemeChromiumLinux.h: Removed.
142233
1422342012-12-07  Eric Carlson  <eric.carlson@apple.com>
142235
142236        Captions menu doesn't update to track changes
142237        https://bugs.webkit.org/show_bug.cgi?id=104393
142238
142239        Reviewed by Dean Jackson.
142240
142241        Flag the captions menu as needing an update when tracks are added or removed. Don't actually
142242        change the menu until it needs to be displayed.
142243
142244        No new tests, media/video-controls-captions-trackmenu.html was updated to test this.
142245
142246        * html/HTMLMediaElement.cpp:
142247        (WebCore::HTMLMediaElement::addTextTrack): Call closedCaptionTracksChanged().
142248        (WebCore::HTMLMediaElement::didRemoveTrack): Ditto.
142249        (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
142250
142251        * html/shadow/MediaControlElements.cpp:
142252        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
142253            Intialize m_trackListHasChanged.
142254        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Call rebuildTrackListMenu if
142255            the track list has changed.
142256        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu): Renamed from resetTrackListMenu.
142257        * html/shadow/MediaControlElements.h:
142258        (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): Just set m_trackListHasChanged.
142259
142260        * html/shadow/MediaControls.h:
142261        (WebCore::MediaControls::closedCaptionTracksChanged): New, do nothing for base class.
142262
142263        * html/shadow/MediaControlsApple.cpp:
142264        (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Update the track list before 
142265            showing it.
142266        (WebCore::MediaControlsApple::closedCaptionTracksChanged):
142267        * html/shadow/MediaControlsApple.h:
142268
1422692012-12-07  Stephen White  <senorblanco@chromium.org>
142270
142271        CSS url() filters with forward references don't work
142272        https://bugs.webkit.org/show_bug.cgi?id=90405
142273
142274        Based on a patch by Keyar Hood.
142275
142276        Reviewed by Dirk Schulze.
142277
142278        In order for CSS to reference SVG filters that will occur later in
142279        the document, or will be added at a future time, we need a way to
142280        notify the target element (the one the filter style is applied to)
142281        when the correct SVG filter is added to the DOM.
142282        There is already code for SVG elements that handles this problem, in
142283        SVGResourcesCache. This patch allows any element to have a reference to
142284        an SVG element in SVGResourceCache.
142285
142286        Tests: css3/filters/effect-reference-after.html
142287               css3/filters/effect-reference-delete-crash.html
142288               css3/filters/effect-reference-delete.html
142289               css3/filters/effect-reference-rename.html
142290               css3/filters/effect-reference-reset-style-delete-crash.html
142291               svg/filters/filter-cycle.html
142292
142293        * dom/Element.cpp:
142294        (WebCore::Element::hasPendingResources): Added
142295        (WebCore::Element::setHasPendingResources): Added
142296        (WebCore::Element::clearHasPendingResources): Added
142297        * dom/Element.h:
142298        Accessors for ElementRareData's new bit flag.
142299        (WebCore::Element::buildPendingResource):
142300        Virtual function to override for referenced elements (moved from SVGElement).
142301        * dom/ElementRareData.h:
142302        (WebCore::ElementRareData::ElementRareData):
142303        Add a new bit flag to indicate whether the element depends on pending resources or not.
142304        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
142305        (WebCore::BitmapTextureImageBuffer::applyFilters):
142306        Changed to the new function signature for FilterEffectRenderer::build().
142307        * rendering/FilterEffectRenderer.cpp:
142308        (WebCore::FilterEffectRenderer::buildReferenceFilter):
142309        Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.  If the referenced filter cannot be found, add its id as a pending reference.
142310        (WebCore::FilterEffectRenderer::build):
142311        Changed signature to accept a RenderObject rather than a Document, so we know which node to notify when the SVG filter arrives.
142312        * rendering/FilterEffectRenderer.h:
142313        Change to signatures of build() and buildReferenceFilter() to pass
142314        a RenderObject instead of a Document.
142315        * rendering/RenderLayer.cpp:
142316        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
142317        Use the new semantics for FilterEffectRenderer::build().
142318        * rendering/RenderObject.cpp:
142319        (WebCore::RenderObject::willBeDestroyed):
142320        Notify the cache if a RenderObject is destroyed.
142321        * rendering/svg/RenderSVGResourceContainer.cpp:
142322        (WebCore::RenderSVGResourceContainer::registerResource):
142323        Call clearHasPendingResourceIfPossible on the SVGDocumentExtensions, not
142324        on the element, since we want to support generic Elements.
142325        * rendering/svg/SVGResources.cpp:
142326        (WebCore::SVGResources::buildCachedResources):
142327        Add support for building filters on non-SVG elements.
142328        * rendering/svg/SVGResourcesCache.cpp:
142329        (WebCore::SVGResourcesCache::addResourcesFromRenderObject):
142330        Do cycle detection only on SVG elements.
142331        (WebCore::SVGResourcesCache::clientStyleChanged):
142332        For non-SVG elements, set a synthetic style change when parent resources
142333        are invalidated.
142334        (WebCore::SVGResourcesCache::resourceDestroyed):
142335        Add support for non-SVG Elements.
142336        * svg/SVGDocumentExtensions.cpp:
142337        (WebCore::SVGDocumentExtensions::addPendingResource):
142338        (WebCore::SVGDocumentExtensions::isElementPendingResources):
142339        (WebCore::SVGDocumentExtensions::isElementPendingResource):
142340        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
142341        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
142342        Changed to allow use of Element instead of SVGElement.
142343        (WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
142344        Moved from SVGElement, and made to work on any Element.  This way,
142345        we avoid adding this function to Element itself.
142346        * svg/SVGDocumentExtensions.h:
142347        SVGElement -> Element.
142348        * svg/SVGElement.cpp:
142349        * svg/SVGElement.h:
142350        All functions moved to Element, except for clearHasPendingResourcesIfPossible() moved to SVGDocumentExtensions.
142351        * svg/SVGElementRareData.h:
142352        (WebCore::SVGElementRareData::SVGElementRareData):
142353        m_hasPendingResources add accessors moved to ElementRareData.
142354        * svg/SVGStyledElement.cpp:
142355        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
142356        SVGElement -> Element, and call SVGDocumentExtensions for
142357        clearHasPendingResourcesIfPossible().
142358
1423592012-12-07  Eberhard Graether  <egraether@google.com>
142360
142361        Web Inspector: Add shortcut to set visibility:hidden on elements in the ElementsPanel
142362        https://bugs.webkit.org/show_bug.cgi?id=104146
142363
142364        Reviewed by Pavel Feldman.
142365
142366        This change adds the shortcut H to set and unset visibility:hidden on the inline style
142367        of elements in the Elementspanel. This feature makes it easier to look for elements that
142368        cause bad rendering performance, because visibility:hidden does not paint the element,
142369        but preserves the layout.
142370
142371        No new tests.
142372
142373        * English.lproj/localizedStrings.js:
142374        * inspector/front-end/CSSStyleModel.js:
142375        (WebInspector.CSSStyleModel.prototype.toggleInlineVisibility):
142376        * inspector/front-end/ElementsPanelDescriptor.js:
142377        (WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
142378        * inspector/front-end/ElementsTreeOutline.js:
142379        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
142380        * inspector/front-end/KeyboardShortcut.js:
142381
1423822012-12-07  Andreas Kling  <akling@apple.com>
142383
142384        Improve our decoded data size estimation for style sheets.
142385        <http://webkit.org/b/104388>
142386
142387        Reviewed by Antti Koivisto.
142388
142389        Tweak how we estimate the total decoded size of a given style sheet. (We were guessing at about 30% of actual size.)
142390        This is just used as a hint to the WebCore cache.
142391
142392        * css/StylePropertySet.cpp:
142393        (WebCore::StylePropertySet::averageSizeInBytes):
142394        * css/StyleRule.cpp:
142395        (WebCore::StyleRule::averageSizeInBytes):
142396
1423972012-12-07  Robert Hogan  <robert@webkit.org>
142398
142399        REGRESSION(r127163): Content is offset to the right at rea.ru
142400        https://bugs.webkit.org/show_bug.cgi?id=103116
142401
142402        Reviewed by David Hyatt.
142403
142404        The top margin edge of a self-collapsing block that clears a float intrudes up into it by the height of the margin,
142405        so to ensure any child floats of the self-collapsing block only go as far as the top content edge 
142406        add the margin back in to the block's current height before placing them.
142407
142408        Tests: fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html
142409               fast/block/margin-collapse/self-collapsing-block-with-float-child.html
142410
142411        * rendering/RenderBlockLineLayout.cpp:
142412        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
142413
1424142012-12-07  Alexis Menard  <alexis@webkit.org>
142415
142416        Improve r136754 by hardening checks of expected values for background-position.
142417        https://bugs.webkit.org/show_bug.cgi?id=104380
142418
142419        Reviewed by Antti Koivisto.
142420
142421        r136754 was landed to fix the problem of checking successively two calc
142422        values with validUnit. It was asserting as validUnit expect you to use
142423        the parsed value of the calc after the call. In this case we pre-check the
142424        background-position longhand to count how many values it has to then
142425        call the right parsing functions accordingly. While r136754 is not
142426        wrong it is better to harden isPotentialPositionValue with the real
142427        expected units and keywords. For this matter we can reuse the
142428        ReleaseParsedCalcValueCondition enum which was created with the same
142429        idea as this patch. If you are not interested of the calc parsed
142430        value when calling validUnit() you can now specify it, I believe it is
142431        good to have it explicit to avoid mistake in the future.
142432
142433        No new tests : this is covered by css3/*, fast/backgrounds/*.
142434
142435        * css/CSSParser.cpp:
142436        (WebCore::CSSParser::validCalculationUnit):
142437        (WebCore::CSSParser::validUnit):
142438        (WebCore::CSSParser::isPotentialPositionValue):
142439        * css/CSSParser.h:
142440        (WebCore::CSSParser::validUnit):
142441        (CSSParser):
142442
1424432012-12-07  Brent Fulgham  <bfulgham@webkit.org>
142444
142445        Remove unnecessary casts in transformations.
142446        https://bugs.webkit.org/show_bug.cgi?id=104376
142447
142448        Reviewed by Simon Fraser.
142449
142450        Several casts from float-to-double are performed prior to
142451        storing the result in a double type. These casts are unnecessary
142452        overhead and reduce the clarity of the source code.
142453
142454        No new tests. Covered by existing CSS test cases.
142455
142456        * platform/graphics/transforms/RotateTransformOperation.cpp:
142457        * platform/graphics/transforms/TransformationMatrix.cpp:
142458
1424592012-12-07  Antoine Quint  <graouts@apple.com>
142460
142461        Provide the backend for exposing the layer tree to the Web Inspector
142462        https://bugs.webkit.org/show_bug.cgi?id=103513
142463
142464        Reviewed by Pavel Feldman.
142465
142466        The purpose of this patch is to provide a new agent enabling the Web Inspector to interface
142467        with WebCore to access information about the render layer tree and, more specifically, expose
142468        useful information about layers backed by textures composited on the GPU such as metrics and
142469        backing store. Thus we now provide a LayerTreeAgent which will inform the front-end of 
142470        changes to the render layer tree via a new layerTreeDidChange event, providing an object
142471        containing the entire hierarchy of RenderLayers for the inspected document. This hierarchy 
142472        can be queried at any time using the .getLayerTree() method on the LayerTreeAgent. Finally, 
142473        the LayerTreeAgent also exposes a .nodeIdForLayerId() method allowing to get the id of the 
142474        node associated with the RenderLayer with the provided layer id.
142475        
142476        In terms of implementation, RenderLayerCompositor has been changed such that in its 
142477        updateCompositingLayers() method we call the layerTreeDidChange method on the 
142478        InspectorLayerTreeAgent instance via the InspectorInstrumentation.
142479
142480        Test: inspector-protocol/layer-tree.html
142481
142482        * CMakeLists.txt:
142483        * GNUmakefile.list.am:
142484        * Target.pri:
142485        * WebCore.gypi:
142486        * WebCore.vcproj/WebCore.vcproj:
142487        * WebCore.xcodeproj/project.pbxproj:
142488        * inspector/Inspector.json: Define new types IntRect (x, y, width, height) and Layer, which 
142489        holds the information for a RenderLayer (layerId, bounds, isComposited, memory, 
142490        compositedBounds) and its children (childLayers). We also define the methods of the 
142491        LayerTreeAgent object (enable, disable, getLayerTree, nodeIdForLayerId) and the 
142492        layerTreeDidChange event it  
142493        fires.
142494        * inspector/InspectorAllInOne.cpp:
142495        * inspector/InspectorController.cpp:
142496        (WebCore::InspectorController::InspectorController):
142497        * inspector/InspectorDOMAgent.cpp:
142498        (WebCore::InspectorDOMAgent::pushNodePathForRenderLayerToFrontend): New method facilitating 
142499        pushing the node associated with a given RenderLayer to the front-end.
142500        (WebCore):
142501        * inspector/InspectorDOMAgent.h:
142502        (InspectorDOMAgent):
142503        * inspector/InspectorInstrumentation.cpp:
142504        (WebCore):
142505        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
142506        (WebCore::InspectorInstrumentation::layerTreeDidChangeImpl):
142507        (WebCore::InspectorInstrumentation::renderLayerDestroyedImpl):
142508        * inspector/InspectorInstrumentation.h:
142509        (WebCore):
142510        (InspectorInstrumentation):
142511        (WebCore::InspectorInstrumentation::layerTreeDidChange):
142512        (WebCore::InspectorInstrumentation::renderLayerDestroyed):
142513        * inspector/InspectorLayerTreeAgent.cpp: Added.
142514        (WebCore):
142515        (LayerTreeAgentState):
142516        (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
142517        (WebCore::InspectorLayerTreeAgent::~InspectorLayerTreeAgent):
142518        (WebCore::InspectorLayerTreeAgent::setFrontend):
142519        (WebCore::InspectorLayerTreeAgent::clearFrontend):
142520        (WebCore::InspectorLayerTreeAgent::restore):
142521        (WebCore::InspectorLayerTreeAgent::reset):
142522        (WebCore::InspectorLayerTreeAgent::enable):
142523        (WebCore::InspectorLayerTreeAgent::disable):
142524        (WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
142525        (WebCore::InspectorLayerTreeAgent::renderLayerDestroyed):
142526        (WebCore::InspectorLayerTreeAgent::getLayerTree):
142527        (WebCore::InspectorLayerTreeAgent::buildObjectForRootLayer):
142528        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Build the entire hierarchy of 
142529        RenderLayers from the provided RenderLayer.
142530        (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
142531        (WebCore::InspectorLayerTreeAgent::bind):
142532        (WebCore::InspectorLayerTreeAgent::unbind):
142533        (WebCore::InspectorLayerTreeAgent::nodeIdForLayerId):
142534        * inspector/InspectorLayerTreeAgent.h: Added.
142535        (WebCore):
142536        (InspectorLayerTreeAgent):
142537        (WebCore::InspectorLayerTreeAgent::create):
142538        * inspector/InstrumentingAgents.h:
142539        (WebCore):
142540        (WebCore::InstrumentingAgents::InstrumentingAgents):
142541        (InstrumentingAgents):
142542        (WebCore::InstrumentingAgents::inspectorLayerTreeAgent):
142543        (WebCore::InstrumentingAgents::setInspectorLayerTreeAgent):
142544        * rendering/RenderLayerCompositor.cpp:
142545        (WebCore::RenderLayerCompositor::updateCompositingLayers): Call the layerTreeDidChange method 
142546        on the LayerTreeAgent via the InspectorInstrumentation to inform the front-end that the 
142547        RenderLayer hierarchy has changed.
142548        (WebCore):
142549        (WebCore::RenderLayerCompositor::layerBecameNonComposited): Call the renderLayerDestroyed 
142550        method on the LayerTreeAgent via the InspectorInstrumentation to unbind the layer that is 
142551        being destroyed.
142552        * rendering/RenderLayerCompositor.h:
142553        (RenderLayerCompositor):
142554
1425552012-12-07  Joshua Bell  <jsbell@chromium.org>
142556
142557        IndexedDB: Check SSV version when opening database
142558        https://bugs.webkit.org/show_bug.cgi?id=102243
142559
142560        Reviewed by Tony Chang.
142561
142562        Ensure that the data format (SerializedScriptValue) isn't "from the future" when opening
142563        a backing store. Treat an unknown version the same as an unknown schema version.
142564
142565        Chromium-side test at https://codereview.chromium.org/11470013/ (same as other schema version tests)
142566
142567        * Modules/indexeddb/IDBBackingStore.cpp:
142568        (WebCore):
142569        (WebCore::isSchemaKnown): Check data version as well.
142570        (WebCore::setUpMetadata): Ensure data version is recorded; bump schema version.
142571        * Modules/indexeddb/IDBLevelDBCoding.cpp: Encoding for "DataVersion" global metadata entry.
142572        (IDBLevelDBCoding):
142573        (WebCore::IDBLevelDBCoding::compare):
142574        (WebCore::IDBLevelDBCoding::DataVersionKey::encode):
142575        * Modules/indexeddb/IDBLevelDBCoding.h:
142576        (DataVersionKey):
142577        (IDBLevelDBCoding):
142578        * bindings/js/SerializedScriptValue.cpp:
142579        (SerializedScriptValue::wireFormatVersion): New method (JSC side).
142580        * bindings/js/SerializedScriptValue.h:
142581        * bindings/v8/SerializedScriptValue.cpp:
142582        (WebCore::SerializedScriptValue::wireFormatVersion): New method (V8 side).
142583        (WebCore):
142584        * bindings/v8/SerializedScriptValue.h:
142585        (SerializedScriptValue):
142586
1425872012-12-07  Andreas Kling  <akling@apple.com>
142588
142589        Throw away StyleResolvers that haven't been used for a long time.
142590        <http://webkit.org/b/104314>
142591
142592        Reviewed by Antti Koivisto.
142593
142594        A lot of memory gets tied up in StyleResolver and the structures and caches that hang from it.
142595        Add a mechanism to throw it away after it's been unused for a while (1 minute.)
142596        This frees up large amounts of memory on inactive pages (background tabs) and static content.
142597
142598        We already have a number of scenarios where the document style is invalidated by throwing away
142599        the StyleResolver so the major code paths are prepared for having a null StyleResolver* on occasion.
142600
142601        ~20MB progression on Membuster3.
142602
142603        * css/StyleResolver.cpp:
142604        (WebCore::StyleResolver::styleForElement):
142605        (WebCore::StyleResolver::styleForKeyframe):
142606        (WebCore::StyleResolver::pseudoStyleForElement):
142607        (WebCore::StyleResolver::styleForPage):
142608
142609            Call document()->didAccessStyleResolver() from the relevant parts of StyleResolver's public API.
142610            This prevents Document from throwing the StyleResolver away for 1 minute after it's used.
142611
142612        * dom/Document.h:
142613        * dom/Document.cpp:
142614        (WebCore::Document::Document):
142615        (WebCore::Document::createStyleResolver):
142616        (WebCore::Document::didAccessStyleResolver):
142617        (WebCore::Document::styleResolverThrowawayTimerFired):
142618
142619            Add a mechanism to call clearStyleResolver() on a refreshing timer.
142620
142621        * dom/Element.cpp:
142622        (WebCore::Element::attributeChanged):
142623
142624            If an attribute change occurs while the document doesn't have a StyleResolver, dirty the element style
142625            since we can't be sure that the attribute change didn't affect any rules.
142626
1426272012-12-07  Antonio Gomes  <a1.gomes@sisa.samsung.com>
142628
142629        REGRESSION(r136947): Made two tests fail on all platforms (Requested by tonikitoo-ll on #webkit).
142630        https://bugs.webkit.org/show_bug.cgi?id=104368
142631
142632        Unreviewed partial rollout.
142633
142634        r136947 was too aggressive in the sense of fixing RenderBox::canBeScrolledAndHasScrollableArea
142635        as part of itself. Revert the related changes in order to fix both
142636        fast/events/autoscroll-should-not-stop-on-keypress.html and
142637        fast/events/autoscroll-in-textfield.html
142638
142639        * rendering/RenderBox.cpp:
142640        (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
142641        * rendering/RenderBox.h:
142642
1426432012-12-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
142644
142645        [TexMap] Can not do multiple accelerated animations
142646        https://bugs.webkit.org/show_bug.cgi?id=104364
142647
142648        Reviewed by Kenneth Rohde Christiansen.
142649
142650        By removing all animations with the same name, it is not possible to animate more than one property accelerated. 
142651        Instead only remove any animations with both same name and property.
142652
142653        Covered by animations/opacity-transform-animation.html.
142654
142655        * platform/graphics/GraphicsLayerAnimation.cpp:
142656        (WebCore::GraphicsLayerAnimations::add):
142657        (WebCore::GraphicsLayerAnimations::remove):
142658        * platform/graphics/GraphicsLayerAnimation.h:
142659        (GraphicsLayerAnimations):
142660
1426612012-12-07  Sujin Park  <sujjin.park@gmail.com>
142662
142663        [EFL] Fix build warning in StyleResolver.cpp using gcc 4.7.2
142664        https://bugs.webkit.org/show_bug.cgi?id=104262
142665
142666        Reviewed by Alexis Menard.
142667
142668        EFL port treats build warning as compile error and there are
142669        maybe-uninitialized when building with gcc 4.7.2.
142670        This patch adds default case to resolve a build break.
142671
142672        * css/StyleResolver.cpp:
142673        (WebCore::getFontAndGlyphOrientation):
142674
1426752012-12-06  Alexander Pavlov  <apavlov@chromium.org>
142676
142677        Web Inspector: [Chromium] Ctrl + ']' "Goto right panel" keyboard shortcut doesn't work
142678        https://bugs.webkit.org/show_bug.cgi?id=104250
142679
142680        Reviewed by Pavel Feldman.
142681
142682        Ignore "keypress" event resulting from a WM_CHAR message emitted by Win7 upon Ctrl + ']' keypress.
142683
142684        * inspector/front-end/InspectorView.js:
142685        (WebInspector.InspectorView.prototype._keyPress): Ignore all events with charCode < 32.
142686
1426872012-10-03  Pavel Feldman  <pfeldman@chromium.org>
142688
142689        Web Inspector: provide a way to reload page with given script preprocessor.
142690        https://bugs.webkit.org/show_bug.cgi?id=80992
142691
142692        Reviewed by Yury Semikhatsky.
142693
142694        This change introduces a way to inject 'preprocessor' script that would process
142695        each JavaScript file before it gets into the VM for compilation. That way inspector
142696        can expose capabilities such as assessing code coverage or tracing all the calls.
142697
142698        Preprocessor script is stored in the page agent where it waits for reload to happen.
142699        Upon reload, ScriptDebugServer is using it to patch the script sources.
142700
142701        
142702        Test: inspector/debugger/debugger-script-preprocessor.html
142703
142704        * bindings/js/ScriptDebugServer.h:
142705        (WebCore::ScriptDebugServer::setScriptPreprocessor):
142706        (ScriptDebugServer):
142707        * bindings/v8/DebuggerScript.js:
142708        * bindings/v8/ScriptDebugServer.cpp:
142709        (ScriptDebugServer::ScriptPreprocessor):
142710        (WebCore::ScriptDebugServer::ScriptPreprocessor::ScriptPreprocessor):
142711        (WebCore::ScriptDebugServer::ScriptPreprocessor::preprocessSourceCode):
142712        (WebCore::ScriptDebugServer::ScriptPreprocessor::~ScriptPreprocessor):
142713        (WebCore):
142714        (WebCore::ScriptDebugServer::~ScriptDebugServer):
142715        (WebCore::ScriptDebugServer::setScriptSource):
142716        (WebCore::ScriptDebugServer::setScriptPreprocessor):
142717        (WebCore::ScriptDebugServer::handleV8DebugEvent):
142718        * bindings/v8/ScriptDebugServer.h:
142719        (ScriptDebugServer):
142720        * bindings/v8/custom/V8InjectedScriptManager.cpp:
142721        (WebCore::InjectedScriptManager::createInjectedScript):
142722        * inspector/Inspector.json:
142723        * inspector/InspectorController.cpp:
142724        (WebCore::InspectorController::InspectorController):
142725        * inspector/InspectorDebuggerAgent.h:
142726        (InspectorDebuggerAgent):
142727        * inspector/InspectorPageAgent.cpp:
142728        (WebCore::InspectorPageAgent::reload):
142729        (WebCore::InspectorPageAgent::frameNavigated):
142730        * inspector/InspectorPageAgent.h:
142731        (WebCore::InspectorPageAgent::page):
142732        (WebCore::InspectorPageAgent::scriptPreprocessor):
142733        (InspectorPageAgent):
142734        * inspector/PageDebuggerAgent.cpp:
142735        (WebCore::PageDebuggerAgent::create):
142736        (WebCore::PageDebuggerAgent::PageDebuggerAgent):
142737        (WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
142738        (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
142739        (WebCore::PageDebuggerAgent::injectedScriptForEval):
142740        (WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
142741        (WebCore):
142742        * inspector/PageDebuggerAgent.h:
142743        (WebCore):
142744        (PageDebuggerAgent):
142745
1427462012-12-07  Alexander Pavlov  <apavlov@chromium.org>
142747
142748        Web Inspector: the "Sources" column is always empty in CSS selector profiles
142749        https://bugs.webkit.org/show_bug.cgi?id=104225
142750
142751        Reviewed by Pavel Feldman.
142752
142753        r112923 and preceding changesets modified the CSSOM wrapper creation for StyleRules in a way
142754        that would not specify the parent CSSStyleSheet for the CSSStyleRules created. Instead,
142755        styleResolver->ensureFullCSSOMWrapperForInspector(rule) is now used to make sure the CSSStyleRule
142756        has a valid parent CSSStyleSheet.
142757
142758        Test: inspector/profiler/selector-profiler-url.html
142759
142760        * css/StyleResolver.cpp:
142761        (WebCore::StyleResolver::collectMatchingRulesForList):
142762        (WebCore::StyleResolver::applyProperties):
142763        * inspector/InspectorInstrumentation.cpp:
142764        (WebCore):
142765        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
142766        (WebCore::InspectorInstrumentation::willProcessRuleImpl):
142767        * inspector/InspectorInstrumentation.h:
142768        (WebCore):
142769        (InspectorInstrumentation):
142770        (WebCore::InspectorInstrumentation::willMatchRule):
142771        (WebCore::InspectorInstrumentation::willProcessRule):
142772
1427732012-12-05  Antonio Gomes  <a1.gomes@sisa.samsung.com>
142774
142775        Rework bug 97927 to not depend on RenderLayer::allowsScrolling
142776        https://bugs.webkit.org/show_bug.cgi?id=103999
142777
142778        Reviewed by James Robinson.
142779
142780        Patch makes it possible for methods like
142781        RenderLayer::{updateScrollbarsAfterLayout,updateScrollbarsAfterStyleChange}
142782        to not depend on RenderLayer::allowsScrolling to determine if a layer should
142783        be added or removed from its FrameView's ScrollableArea set.
142784
142785        Following the same logic, the patch also fixes RenderBox::canBeScrolledAndHasScrollableArea
142786        method to take into account the box' scroll allowance in a given direction only
142787        when it overflows. This allows simplifying custom methods like InRegionScrollerPrivate::canScrollRenderBox
142788        (@WebKit/blackberry/Api/InRegionScroller.cpp).
142789
142790        The naming pattern for the newly added methods were chosen to keep the consistency
142791        with the existing ones, in the same class.
142792
142793        No new test: it is already covered by ScrollingCoordinatorChromiumTest.clippedBodyTest.
142794
142795        * rendering/RenderBox.cpp:
142796        (WebCore::RenderBox::canBeScrolledAndHasScrollableArea):
142797        * rendering/RenderBox.h:
142798        (RenderBox):
142799        (WebCore::RenderBox::hasScrollableOverflowX):
142800        (WebCore::RenderBox::hasScrollableOverflowY):
142801        * rendering/RenderLayer.cpp:
142802        (WebCore::RenderLayer::hasScrollableHorizontalOverflow):
142803        (WebCore):
142804        (WebCore::RenderLayer::hasScrollableVerticalOverflow):
142805        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
142806        (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
142807        * rendering/RenderLayer.h:
142808        (RenderLayer):
142809
1428102012-12-07  Max Feil  <mfeil@rim.com>
142811
142812        [BlackBerry] make "isVideo" information available to platform media player
142813        https://bugs.webkit.org/show_bug.cgi?id=104334
142814
142815        Reviewed by Rob Buis.
142816
142817        The platform player needs to know whether the element is <video>
142818        or <audio>, so it can make certain decisions before metadata
142819        is ready. This is part of a performance optimization refactor
142820        which does not change functionality so no new tests are required.
142821
142822        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
142823        (WebCore::MediaPlayerPrivate::load):
142824
1428252012-12-07  Kondapally Kalyan  <kalyan.kondapally@intel.com>
142826
142827        [EFL] [AC] Implement ImageExtractor::extractImage in GraphicsContext3DEfl.
142828        https://bugs.webkit.org/show_bug.cgi?id=104271.
142829
142830        Reviewed by Kenneth Rohde Christiansen.
142831
142832        This patch implements ImageExtractor::extractImage in GraphicsContext3DEfl.
142833
142834        Covered by existing tests.
142835
142836        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
142837        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
142838        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
142839
1428402012-12-06  Carlos Garcia Campos  <cgarcia@igalia.com>
142841
142842        Use always the order iterator from data member in RenderFlexibleBox
142843        https://bugs.webkit.org/show_bug.cgi?id=104112
142844
142845        Reviewed by Tony Chang.
142846
142847        Some methods receive it as parameter and others use the data
142848        member.
142849
142850        * rendering/RenderFlexibleBox.cpp:
142851        (WebCore::RenderFlexibleBox::layoutBlock):
142852        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
142853        (WebCore::RenderFlexibleBox::layoutFlexItems):
142854        (WebCore::RenderFlexibleBox::computeNextFlexLine):
142855        (WebCore::RenderFlexibleBox::alignFlexLines):
142856        (WebCore::RenderFlexibleBox::alignChildren):
142857        (WebCore::RenderFlexibleBox::flipForRightToLeftColumn):
142858        (WebCore::RenderFlexibleBox::flipForWrapReverse):
142859        * rendering/RenderFlexibleBox.h:
142860
1428612012-12-07  Kent Tamura  <tkent@chromium.org>
142862
142863        Improve confusing code in BaseMultipleFieldsDateAndTimeInputType
142864        https://bugs.webkit.org/show_bug.cgi?id=104353
142865
142866        Reviewed by Kentaro Hara.
142867
142868        This doesn't change any behavior because call sites of
142869        isEditControlOwnerDisabled and isEditControlOwnerReadOnly treat them
142870        similarly.
142871
142872        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
142873        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled):
142874        Checks element()->disabled, not readOnly.
142875        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly):
142876        Checks element()->readOnly, not disabled.
142877
1428782012-12-07  Jon Lee  <jonlee@apple.com>
142879
142880        Build fix.
142881
142882        * plugins/PlugInOriginHash.cpp:
142883        (WebCore::PlugInOriginHash::hash):
142884
1428852012-12-04  Jon Lee  <jonlee@apple.com>
142886
142887        Add PlugInOriginHash
142888        https://bugs.webkit.org/show_bug.cgi?id=103655
142889        <rdar://problem/12778949>
142890
142891        Reviewed by Alexey Proskuryakov.
142892
142893        Add the concept of plug-in origin hashes, which are based on a combination of the base domains of the
142894        page's main frame and the plug-in, and the plug-in MIME type.
142895
142896        * plugins/PlugInOriginHash.cpp: Added.
142897        (WebCore::addCaseFoldedCharacters): Add the case-folded string to the hash.
142898        (WebCore::PlugInOriginHash::hash): The hash is based on the concatenation of the page's host, the plug-in
142899        URL's host, and the MIME type. We use StringHasher to get all 32-bits of the hash, since using StringImpl's hash
142900        masks out 8 of the hash bits to make room for bit flags.
142901        * plugins/PlugInOriginHash.h: Added.
142902
142903        * CMakeLists.txt:
142904        * GNUmakefile.list.am:
142905        * Target.pri:
142906        * WebCore.gypi:
142907        * WebCore.vcproj/WebCore.vcproj:
142908        * WebCore.xcodeproj/project.pbxproj:
142909
1429102012-12-06  Kent Tamura  <tkent@chromium.org>
142911
142912        Refactoring: Clean up placeholder attribute usage
142913        https://bugs.webkit.org/show_bug.cgi?id=104337
142914
142915        Reviewed by Kentaro Hara.
142916
142917        No new tests. This doesn't change any behavior.
142918
142919        * html/HTMLInputElement.cpp: Remove placeholder and setPlacehodler.
142920        * html/HTMLInputElement.h: Ditto.
142921        * html/HTMLTextFormControlElement.cpp:
142922        (WebCore::HTMLTextFormControlElement::strippedPlaceholder):
142923        We can use fastGetAttribute for placeholder.
142924        (WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
142925        Ditto.
142926
1429272012-12-06  Kent Tamura  <tkent@chromium.org>
142928
142929        Refactoring: Rename HTMLFormControlElement::required to isRequired
142930        https://bugs.webkit.org/show_bug.cgi?id=104336
142931
142932        Reviewed by Kentaro Hara.
142933
142934        m_required should be m_isRequired, and required() should be
142935        isRequired. It's safe to rename them because HTML*Element::required IDL
142936        attributes are [Reflected].
142937        http://www.webkit.org/coding/coding-style.html#names-bool
142938
142939        * accessibility/AccessibilityNodeObject.cpp:
142940        (WebCore::AccessibilityNodeObject::isRequired):
142941        * css/StyleResolver.cpp:
142942        (WebCore::StyleResolver::canShareStyleWithControl):
142943        * dom/CheckedRadioButtons.cpp:
142944        (WebCore::RadioButtonGroup::add):
142945        (WebCore::RadioButtonGroup::requiredAttributeChanged):
142946        (WebCore::RadioButtonGroup::remove):
142947        * html/CheckboxInputType.cpp:
142948        (WebCore::CheckboxInputType::valueMissing):
142949        * html/FileInputType.cpp:
142950        (WebCore::FileInputType::valueMissing):
142951        * html/HTMLFormControlElement.cpp:
142952        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
142953        (WebCore::HTMLFormControlElement::parseAttribute):
142954        (WebCore::HTMLFormControlElement::isRequired):
142955        * html/HTMLFormControlElement.h:
142956        (HTMLFormControlElement):
142957        * html/HTMLInputElement.cpp:
142958        (WebCore::HTMLInputElement::isRequiredFormControl):
142959        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
142960        * html/HTMLSelectElement.cpp:
142961        (WebCore::HTMLSelectElement::valueMissing):
142962        (WebCore::HTMLSelectElement::isRequiredFormControl):
142963        * html/HTMLTextAreaElement.h:
142964        (WebCore::HTMLTextAreaElement::isRequiredFormControl):
142965        * html/TextFieldInputType.cpp:
142966        (WebCore::TextFieldInputType::valueMissing):
142967
1429682012-12-06  Hajime Morrita  <morrita@google.com>
142969
142970        [Shadow DOM] Implement Element::shadowRoot with prefix
142971        https://bugs.webkit.org/show_bug.cgi?id=102912
142972
142973        Reviewed by Dimitri Glazkov.
142974
142975        - Added Element::shadowRoot() which return the youngest author shadow root.
142976        - Renamed existing Node::shadowRoot() to containingShadowRoot() to avoid name shadowing.
142977          The name shadowRoot() is confusing anyway so this is good opportunity to rename it.
142978
142979        Test: fast/dom/shadow/shadow-aware-shadow-root.html
142980
142981        * css/SelectorChecker.cpp:
142982        (WebCore::SelectorChecker::checkSelector):
142983        * css/StyleScopeResolver.cpp:
142984        (WebCore::StyleScopeResolver::scopeFor):
142985        (WebCore::StyleScopeResolver::addHostRule):
142986        * dom/Element.cpp:
142987        (WebCore::Element::shadowRoot):
142988        (WebCore):
142989        * dom/Element.h:
142990        (Element):
142991        * dom/Element.idl:
142992        * dom/ElementShadow.cpp:
142993        (WebCore::ElementShadow::setShouldCollectSelectFeatureSet):
142994        * dom/Node.cpp:
142995        (WebCore::Node::rendererIsEditable):
142996        (WebCore::Node::shadowHost):
142997        (WebCore::Node::shadowAncestorNode):
142998        (WebCore::Node::containingShadowRoot):
142999        * dom/Node.h:
143000        (Node):
143001        * dom/Range.cpp:
143002        (WebCore::Range::shadowRoot):
143003        * dom/ShadowRoot.cpp:
143004        (WebCore::ShadowRoot::insertedInto):
143005        (WebCore::ShadowRoot::removedFrom):
143006        * dom/ShadowRoot.h:
143007        (WebCore::ShadowRoot::isAccessible):
143008        * editing/TextIterator.cpp:
143009        (WebCore::TextIterator::handleReplacedElement):
143010        * editing/htmlediting.cpp:
143011        (WebCore::indexForVisiblePosition):
143012        * html/HTMLStyleElement.cpp:
143013        (WebCore::HTMLStyleElement::scopedAttributeChanged):
143014        (WebCore::HTMLStyleElement::registerWithScopingNode):
143015        (WebCore::HTMLStyleElement::removedFrom):
143016        * html/shadow/ContentDistributor.cpp:
143017        (WebCore::ContentDistributor::distribute):
143018        * html/shadow/HTMLContentElement.cpp:
143019        (WebCore::HTMLContentElement::parseAttribute):
143020        (WebCore::HTMLContentElement::insertedInto):
143021        (WebCore::HTMLContentElement::removedFrom):
143022        * html/shadow/HTMLShadowElement.cpp:
143023        (WebCore::HTMLShadowElement::insertedInto):
143024        (WebCore::HTMLShadowElement::removedFrom):
143025        * html/shadow/InsertionPoint.cpp:
143026        (WebCore::InsertionPoint::attach):
143027        (WebCore::InsertionPoint::detach):
143028        (WebCore::InsertionPoint::isActive):
143029        (WebCore::InsertionPoint::childrenChanged):
143030        (WebCore::InsertionPoint::insertedInto):
143031        (WebCore::InsertionPoint::removedFrom):
143032        (WebCore::InsertionPoint::setResetStyleInheritance):
143033        * page/EventHandler.cpp:
143034        (WebCore::instanceAssociatedWithShadowTreeElement):
143035        * svg/SVGElement.cpp:
143036        (WebCore::SVGElement::correspondingElement):
143037        (WebCore::collectInstancesForSVGElement):
143038
1430392012-12-06  Michael Pruett  <michael@68k.org>
143040
143041        IndexedDB: Replace int64 with int64_t
143042        https://bugs.webkit.org/show_bug.cgi?id=104338
143043
143044        Reviewed by Kentaro Hara.
143045
143046        Cleaning up coding inconsistencies, no change in behavior.
143047
143048        Tests: storage/indexeddb/*
143049
143050        * Modules/indexeddb/IDBFactory.cpp:
143051        (WebCore::IDBFactory::openInternal):
143052
1430532012-12-06  James Simonsen  <simonjam@chromium.org>
143054
143055        [Resource Timing] Allow detailed timing on same origin sites
143056        https://bugs.webkit.org/show_bug.cgi?id=104328
143057
143058        Reviewed by Tony Gentilcore.
143059
143060        This block was lost when I moved it to PerformanceResourceTiming.cpp.
143061
143062        Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_attribute_order.html
143063
143064        * page/PerformanceResourceTiming.cpp:
143065        (WebCore::passesTimingAllowCheck):
143066
1430672012-12-06  Rick Byers  <rbyers@chromium.org>
143068
143069        CSS cursor property should support webkit-image-set
143070        https://bugs.webkit.org/show_bug.cgi?id=99493
143071
143072        Reviewed by Beth Dakin.
143073
143074        Add support for image scale factors attached to custom mouse cursor images
143075        behind ENABLE(MOUSE_CURSOR_SCALE).
143076
143077        This required refactoring CSSCursorImageValue to derive directly from
143078        CSSValue since it can contain either a CSSImageValue or a CSSImageSetValue.
143079        If it contains an image-set, then we can plumb directly through to the
143080        CSSImageSetValue.  If it contains an image, then either we can plumb directly
143081        through to the CSSImageValue, or if the URL represents an SVG cursor we have
143082        to intercept the image loading in order to substitute the actual SVG image URL
143083        and do the appropriate lifetime management.
143084
143085        Tests: fast/css/cursor-parsing-image-set.html
143086               fast/events/mouse-cursor-image-set.html
143087
143088        * Configurations/FeatureDefines.xcconfig: Add ENABLE_MOUSE_CURSOR_SCALE - disabled
143089        * GNUmakefile.features.am: ditto
143090        * css/CSSCursorImageValue.cpp: Refactor to inherit directly from CSSValue and support image sets
143091        (WebCore::CSSCursorImageValue::CSSCursorImageValue):
143092        (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
143093        (WebCore::CSSCursorImageValue::customCssText):
143094        (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
143095        (WebCore::CSSCursorImageValue::cachedImage):
143096        (WebCore::CSSCursorImageValue::cachedOrPendingImage):
143097        (WebCore::CSSCursorImageValue::isSVGCursor):
143098        (WebCore::CSSCursorImageValue::cachedImageURL):
143099        (WebCore::CSSCursorImageValue::clearCachedImage):
143100        (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
143101        * css/CSSCursorImageValue.h: Remove cursor-specific hacks
143102        (WebCore::CSSCursorImageValue::create):
143103        (CSSCursorImageValue):
143104        * css/CSSImageValue.cpp:
143105        (WebCore::CSSImageValue::cachedImage):
143106        * css/CSSImageValue.h:
143107        (CSSImageValue):
143108        * css/CSSParser.cpp:
143109        (WebCore::CSSParser::parseValue): Parse cursor(-webkit-image-set(...)) rules
143110        * css/CSSValue.h:
143111        (WebCore::CSSValue::isImageValue):
143112        * css/StyleBuilder.cpp:
143113        (WebCore::ApplyPropertyCursor::applyValue):
143114        * css/StyleResolver.cpp: Hook up new CSSCursorImageValue support since it can't be handled like other images any more.
143115        (WebCore::StyleResolver::styleImage):
143116        (WebCore::StyleResolver::cursorOrPendingFromValue):
143117        (WebCore::StyleResolver::loadPendingImage):
143118        * css/StyleResolver.h:
143119        (StyleResolver):
143120        * page/EventHandler.cpp:
143121        (WebCore::EventHandler::selectCursor): Handle StyleCachedImageSet images and plumb scale factor through
143122        * platform/Cursor.cpp:
143123        (WebCore::Cursor::Cursor): Add imageScaleFactor
143124        * platform/Cursor.h: Add imageScaleFactor
143125        (Cursor):
143126        (WebCore::Cursor::imageScaleFactor):
143127        * platform/chromium/CursorChromium.cpp: Add imageScaleFactor
143128        (WebCore::Cursor::Cursor):
143129        (WebCore::Cursor::operator=):
143130        * rendering/style/CursorData.h: Clarify hotspot units
143131        (CursorData):
143132        * rendering/style/StyleCachedImage.h:
143133        (StyleCachedImage::cachedImage): Override new virtual.
143134        * rendering/style/StyleCachedImageSet.h:
143135        (StyleCachedImageSet::cachedImage): Override new virtual.
143136        * rendering/style/StyleImage.h:
143137        (StyleImage::cachedImage): Add new virtual method to avoid lots of casts and typechecks.
143138        * rendering/style/StylePendingImage.h: Add CSSCursorImageValue support
143139        (WebCore::StylePendingImage::cssCursorImageValue):
143140        * testing/Internals.cpp:
143141        (WebCore::Internals::getCurrentCursorInfo): Print non-identity scale factors for testing
143142
1431432012-12-06  Hayato Ito  <hayato@chromium.org>
143144
143145        Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
143146        https://bugs.webkit.org/show_bug.cgi?id=102681
143147
143148        Reviewed by Dimitri Glazkov.
143149
143150        Make sure that event's relatedTarget re-targeting occurs for mouse
143151        events created by event.initMouseEvent().  Since user-generated
143152        mouse events can have a relatedTarget which is same to the target
143153        node, the algorithm which calculates event's ancestors is also
143154        updated so that ancestors are not shrunk wrongly.
143155
143156        Test: fast/events/dispatch-synthetic-mouseevent.html
143157              fast/dom/shadow/shadow-dom-event-dispatching.html
143158
143159        * dom/EventDispatcher.cpp:
143160        (WebCore::EventRelatedTargetAdjuster::adjust):
143161        * dom/MouseEvent.cpp:
143162        (WebCore::MouseEventDispatchMediator::create):
143163        (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
143164        (WebCore::MouseEventDispatchMediator::dispatchEvent):
143165        * dom/MouseEvent.h:
143166        (WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
143167        (MouseEventDispatchMediator):
143168        * dom/Node.cpp:
143169        (WebCore::Node::dispatchEvent):
143170
1431712012-12-06  Kunihiko Sakamoto  <ksakamoto@chromium.org>
143172
143173        Disabled file input box stops a certain other div from being rendered
143174        https://bugs.webkit.org/show_bug.cgi?id=104226
143175
143176        Reviewed by Dimitri Glazkov.
143177
143178        The bug was caused by setNeedsStyleRecalc() call during style recalculation,
143179        which resulted in inconsistent ChildNeedsStyleRecalc flags in DOM tree.
143180
143181        When reattach of file input happens during style recalculation,
143182        RenderFileUploadControl::updateFromElement() is called from attach().
143183        It may change the disabled state of the upload button in its shadow tree,
143184        but it triggers style recalculation.
143185
143186        This patch solves this issue by setting disabled state of the upload button in
143187        FileInputType::disabledAttributeChanged instead of RenderFileUploadControl.
143188
143189        Test: fast/forms/file/sibling-of-disabled-file-input.html
143190
143191        * html/FileInputType.cpp:
143192        (WebCore::FileInputType::disabledAttributeChanged): Added.
143193        * html/FileInputType.h:
143194        (FileInputType): Declare disabledAttributeChanged.
143195        * rendering/RenderFileUploadControl.cpp:
143196        (WebCore::RenderFileUploadControl::updateFromElement): Remove call to button->setDisabled().
143197
1431982012-12-06  Dominic Cooney  <dominicc@chromium.org>
143199
143200        Element.pseudo property should be prefixed
143201        https://bugs.webkit.org/show_bug.cgi?id=104060
143202
143203        Reviewed by Hajime Morita.
143204
143205        Other Shadow DOM properties are prefixed; pseudo should be too.
143206
143207        Covered by updated tests in fast/dom/shadow.
143208
143209        * dom/Element.idl:
143210
1432112012-12-06  Andrei Bucur  <abucur@adobe.com>
143212
143213        [CSS Regions] Remove the sanitize mechanism from LineFragmentationData
143214        https://bugs.webkit.org/show_bug.cgi?id=104234
143215
143216        Reviewed by David Hyatt.
143217
143218        Remove previous work that ensured an invalid region is never returned by the containingRegion getter. After r136793 the blocks always
143219        relayout children if the region chain changes. This means the sanitize() method is only necessary when all the regions are removed.
143220        This case is treated separately in layoutInlineChildren.
143221
143222        Tests: no new functionality, no bug fixed.
143223
143224        * rendering/RenderBlock.cpp:
143225        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
143226        * rendering/RenderBlockLineLayout.cpp:
143227        (WebCore::RenderBlock::layoutInlineChildren):
143228        * rendering/RootInlineBox.cpp:
143229        (WebCore::RootInlineBox::containingRegion):
143230        (WebCore):
143231        (WebCore::RootInlineBox::setContainingRegion):
143232        * rendering/RootInlineBox.h:
143233        (RootInlineBox):
143234        (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
143235        (LineFragmentationData):
143236
1432372012-12-06  Kenneth Russell  <kbr@google.com>
143238
143239        Associate URLs with GraphicsContext3D instances created for WebGL
143240        https://bugs.webkit.org/show_bug.cgi?id=103793
143241
143242        Reviewed by Adam Barth.
143243
143244        Pass down the URL of the topmost frame's document creating the
143245        WebGL context to the platform layer through
143246        GraphicsContext3D::Attributes.
143247
143248        Not feasible to write a layout test for this change; has no
143249        user-visible effect. Tested manually with failure injection in
143250        Chromium port.
143251
143252        * html/canvas/WebGLRenderingContext.cpp:
143253        (WebCore):
143254        (WebCore::WebGLRenderingContext::create):
143255            Pass top document's URL in context creation attributes.
143256        * platform/chromium/support/GraphicsContext3DChromium.cpp:
143257        (WebCore::GraphicsContext3D::create):
143258            Pass URL through WebKit API.
143259        * platform/graphics/GraphicsContext3D.h:
143260        (Attributes):
143261            Add top document's URL to context creation attributes.
143262
1432632012-12-06  Philip Rogers  <pdr@google.com>
143264
143265        Unify SVG's animation and target tracking systems.
143266        https://bugs.webkit.org/show_bug.cgi?id=102655
143267
143268        Reviewed by Dirk Schulze.
143269
143270        This patch unifies our animation target tracking system and regular target tracking system.
143271        This simplifies the code, fixes a bug, and cleans up a historically security-sensitive area.
143272
143273        Background: When <use>, <mpath>, <animate>, etc. reference another element using
143274        xlink:href="#id", we need to track when #id changes to #otherId, when #id is removed, etc.
143275        This bookkeeping of element -> target is done in SVGDocumentExtensions. Additionally, when
143276        a target changes that causes layout (e.g., rect.x is changed), all dependent elements with
143277        renderers are notified (<animate> has no renderer and will not use this).
143278
143279        Previously, xlink:href changes were lazily resolved when targetElement() was called, target
143280        changes were tracked using the animation tracking framework, and pending targets did not
143281        work (e.g., <animate xlink:href="#p"><!--animate is now pending #p --><rect id="p"/>).
143282
143283        After this patch, we no longer lazily resolve targetElement() but instead change it when
143284        our xlink:href attribute changes. Instead of using the animation tracking framework in
143285        SVGDocumentExtensions, we now use the regular target tracking framework. Lastly, by using
143286        the regular target tracking framework we are able to hook into the pending resource handling
143287        which fixes a bug (see the test).
143288
143289        A test has been added to test that the order of animation elements does not matter. A second
143290        test has been added to show we do not regress a pending-while-pending case.
143291
143292        Tests: svg/animations/svg-animation-order.html
143293               svg/custom/svg-pending-twice.html
143294
143295        * svg/SVGAnimateElement.cpp:
143296        (WebCore::SVGAnimateElement::setTargetElement):
143297
143298            setTargetElement and setAttributeName now work similarly. When the corresponding attribute
143299            changes, we update our internal state (target or attributeName) and save it instead of
143300            looking these values up on each iteration.
143301
143302        (WebCore::SVGAnimateElement::setAttributeName):
143303        (WebCore):
143304        (WebCore::SVGAnimateElement::resetAnimatedPropertyType):
143305        * svg/SVGAnimateElement.h:
143306        (SVGAnimateElement):
143307        * svg/SVGAnimationElement.cpp:
143308        (WebCore::SVGAnimationElement::setAttributeType):
143309        (WebCore::SVGAnimationElement::setTargetElement):
143310        (WebCore::SVGAnimationElement::setAttributeName):
143311        * svg/SVGAnimationElement.h:
143312        (SVGAnimationElement):
143313        * svg/SVGDocumentExtensions.cpp:
143314        (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
143315        (WebCore):
143316        * svg/SVGDocumentExtensions.h:
143317        (SVGDocumentExtensions):
143318        * svg/SVGElement.cpp:
143319        (WebCore::SVGElement::~SVGElement):
143320        (WebCore::SVGElement::removedFrom):
143321        (WebCore::SVGElement::attributeChanged):
143322        * svg/SVGElementInstance.cpp:
143323        (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
143324
143325            This can be removed after r131631 landed.
143326
143327        * svg/SVGMPathElement.cpp:
143328        (WebCore::SVGMPathElement::buildPendingResource):
143329        * svg/SVGTextPathElement.cpp:
143330        (WebCore::SVGTextPathElement::buildPendingResource):
143331
143332            A bug was discovered in review with our resource tracking in a pending-while-pending
143333            case. SVGMpathElement and SVGTextPathElement have been updated to fix this as well.
143334
143335        * svg/animation/SVGSMILElement.cpp:
143336
143337            The changes in SVGSMILElement should look very similar to SVGFEImageElement,
143338            SVGMPathElement, etc. The idea is to build pending resources when added or
143339            removed from the document, or when the href attribute changes.
143340
143341        (WebCore::SVGSMILElement::~SVGSMILElement):
143342        (WebCore):
143343        (WebCore::SVGSMILElement::clearResourceReferences):
143344        (WebCore::SVGSMILElement::buildPendingResource):
143345        (WebCore::SVGSMILElement::insertedInto):
143346        (WebCore::SVGSMILElement::removedFrom):
143347        (WebCore::SVGSMILElement::svgAttributeChanged):
143348        (WebCore::SVGSMILElement::setAttributeName):
143349        (WebCore::SVGSMILElement::setTargetElement):
143350        * svg/animation/SVGSMILElement.h:
143351        (WebCore):
143352        (WebCore::SVGSMILElement::targetElement):
143353        (SVGSMILElement):
143354
1433552012-12-06  Jon Lee  <jonlee@apple.com>
143356
143357        Retry snapshots if they are too empty
143358        https://bugs.webkit.org/show_bug.cgi?id=104174
143359        <rdar://problem/12820146>
143360
143361        Reviewed by Simon Fraser.
143362
143363        * html/HTMLPlugInImageElement.cpp:
143364        (WebCore::HTMLPlugInImageElement::updateSnapshot): Change the state machine check so that even
143365        when the plug-in is displaying a snapshot, the snapshot can still be updated. This allows for the
143366        retries to be drawn.
143367
1433682012-12-06  Adam Klein  <adamk@chromium.org>
143369
143370        [HTMLTemplateElement] make content readonly and cloneNode(deep) clone content
143371        https://bugs.webkit.org/show_bug.cgi?id=104181
143372
143373        Reviewed by Adam Barth.
143374
143375        Note that this patch also adds IDL attributes/custom code to tie the lifetime
143376        of the content DocumentFragment wrapper to the lifetime of the template element wrapper
143377        via a hidden JS property.
143378
143379        Based on a patch by Rafael Weinstein.
143380
143381        Test: fast/dom/HTMLTemplateElement/contentWrappers.html
143382
143383        * DerivedSources.cpp:
143384        * Target.pri:
143385        * UseJSC.cmake:
143386        * WebCore.gypi:
143387        * WebCore.xcodeproj/project.pbxproj:
143388        * bindings/js/JSBindingsAllInOne.cpp:
143389        * bindings/js/JSHTMLTemplateElementCustom.cpp: Copied from Source/WebCore/html/HTMLTemplateElement.idl.
143390        (WebCore):
143391        (WebCore::JSHTMLTemplateElement::content):
143392        * bindings/scripts/CodeGeneratorV8.pm: Add support for new V8CacheAttributeForGC attribute.
143393        * dom/Element.h:
143394        (Element): Annotate cloneNode() with OVERRIDE
143395        * html/HTMLTemplateElement.cpp:
143396        (WebCore::HTMLTemplateElement::cloneNode):
143397        * html/HTMLTemplateElement.h:
143398        (HTMLTemplateElement): override cloneNode
143399        * html/HTMLTemplateElement.idl: Make content readonly and add custom attributes.
143400
1434012012-12-06  Brent Fulgham  <bfulgham@webkit.org>
143402
143403        [Windows, WinCairo] Unreviewed build correction.
143404
143405        Exclude 'DocumentSharedObjectPool.cpp' from build, since it is
143406        built as part of DOMAllInOne.cpp.  The build (besides wasting
143407        time) generates a bunch of build warnings for duplicate symbols.
143408
143409        * WebCore.vcproj/WebCore.vcproj: Mark DocumentSharedObjectPool.cpp
143410        to not build independently of DOMAllInOne.cpp.
143411
1434122012-12-06  David Grogan  <dgrogan@chromium.org>
143413
143414        IndexedDB: Abort transactions because of leveldb errors part 4
143415        https://bugs.webkit.org/show_bug.cgi?id=103964
143416
143417        Reviewed by Tony Chang.
143418
143419        deleteDatabase, open, and deleteObjectStore will now fire more aborts
143420        and errors in case of leveldb problems
143421
143422        * Modules/indexeddb/IDBBackingStore.cpp:
143423        (WebCore::getVarInt): Make return value indicate leveldb error.
143424        (WebCore::getString): ditto.
143425        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
143426        Change return value to indicate leveldb error.
143427
143428        (WebCore::IDBBackingStore::deleteDatabase):
143429        Already had the desired return value semantics. As a consumer of
143430        getIDBDatabaseMetadata, will return an error (causing an abort) more
143431        often.
143432
143433        (WebCore::IDBBackingStore::deleteObjectStore):
143434        Needed return value change. Will return error to DatabaseBackend to
143435        indicate leveldb problems.
143436
143437        * Modules/indexeddb/IDBBackingStore.h:
143438        (IDBBackingStore):
143439        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
143440        (WebCore::IDBDatabaseBackendImpl::openInternal):
143441        Pass leveldb errors up to callers, who already handle internal errors.
143442
143443        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
143444        Abort transaction if there were leveldb problems deleting an object
143445        store.
143446
1434472012-12-06  David Grogan  <dgrogan@chromium.org>
143448
143449        IndexedDB: Add webkitErrorMessage to IDBTransaction
143450        https://bugs.webkit.org/show_bug.cgi?id=104199
143451
143452        Reviewed by Tony Chang.
143453
143454        Don't drop error messages on the floor.
143455
143456        Expose an error message on IDBTransaction to give developers more
143457        information than the opaque error code currently available. This is
143458        exactly what is done in IDBRequest. 
143459
143460        Tests - transaction-error.html
143461
143462        * Modules/indexeddb/IDBDatabaseError.h:
143463        (WebCore::IDBDatabaseError::create):
143464        * Modules/indexeddb/IDBRequest.cpp:
143465        (WebCore::IDBRequest::dispatchEvent):
143466        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
143467        * Modules/indexeddb/IDBTransaction.cpp:
143468        (WebCore::IDBTransaction::setError):
143469        (WebCore):
143470        (WebCore::IDBTransaction::webkitErrorMessage):
143471        (WebCore::IDBTransaction::onAbort):
143472        * Modules/indexeddb/IDBTransaction.h:
143473        (IDBTransaction):
143474        * Modules/indexeddb/IDBTransaction.idl:
143475
1434762012-12-06  Alexander Shalamov  <alexander.shalamov@intel.com>
143477
143478        XMLHttpRequest Content-Type should be taken from Blob type
143479        https://bugs.webkit.org/show_bug.cgi?id=99983
143480
143481        Reviewed by Alexey Proskuryakov.
143482
143483        Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
143484        http://www.w3.org/TR/XMLHttpRequest/#the-send-method
143485
143486        Added test that check if content type is set correctly when blob object is sent.
143487
143488        Test: http/tests/xmlhttprequest/post-blob-content-type.html
143489
143490        * xml/XMLHttpRequest.cpp:
143491        (WebCore::XMLHttpRequest::send):
143492            Set correct MIME type for Blob objects.
143493        * WebCore.vcproj/WebCore.vcproj:
143494            Added ParsedContentType to project file.
143495
1434962012-12-06  Min Qin  <qinmin@chromium.org>
143497
143498        Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
143499        https://bugs.webkit.org/show_bug.cgi?id=103555
143500
143501        Reviewed by Stephen White.
143502
143503        Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
143504        No test added for now as impl side paiting is still WIP.
143505
143506        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
143507        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
143508        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
143509        (WebCore):
143510        (WebCore::LazyDecodingPixelRef::Decode):
143511        * platform/graphics/chromium/LazyDecodingPixelRef.h:
143512        (LazyDecodingPixelRef):
143513
1435142012-12-06  Kentaro Hara  <haraken@chromium.org>
143515
143516        [V8] Make an Isolate mandatory in v8UnsignedInteger()
143517        https://bugs.webkit.org/show_bug.cgi?id=104235
143518
143519        Reviewed by Adam Barth.
143520
143521        No tests. No change in behavior.
143522
143523        * bindings/v8/ArrayValue.cpp:
143524        (WebCore::ArrayValue::get):
143525        * bindings/v8/V8Binding.h:
143526        (WebCore::v8UnsignedInteger):
143527        * bindings/v8/V8LazyEventListener.cpp:
143528        (WebCore::V8LazyEventListener::prepareListenerObject):
143529
1435302012-12-06  David Hyatt  <hyatt@apple.com>
143531
143532        [New Multicolumn] Add requiresBalancing booleans to track which column sets need to rebalance.
143533        https://bugs.webkit.org/show_bug.cgi?id=104297
143534
143535        Reviewed by Simon Fraser.
143536
143537        Add requiresBalancing booleans to RenderMultiColumnBlock and RenderMultiColumnSet. For now the former is just propagated
143538        to the latter, but eventually RenderMultiColumnSets will have a notion of balancing that has to be independent of the
143539        owning block (e.g., maybe only the last set rebalances, or maybe only a set that contains the content between two forced
143540        breaks wants to rebalance, etc.).
143541
143542        * rendering/RenderMultiColumnBlock.cpp:
143543        (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
143544        (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
143545        (WebCore::RenderMultiColumnBlock::ensureColumnSets):
143546        * rendering/RenderMultiColumnBlock.h:
143547        (WebCore::RenderMultiColumnBlock::requiresBalancing):
143548        (RenderMultiColumnBlock):
143549        * rendering/RenderMultiColumnSet.cpp:
143550        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
143551        * rendering/RenderMultiColumnSet.h:
143552        (WebCore::RenderMultiColumnSet::requiresBalancing):
143553        (WebCore::RenderMultiColumnSet::setRequiresBalancing):
143554        (RenderMultiColumnSet):
143555        (WebCore::toRenderMultiColumnSet):
143556        (WebCore):
143557
1435582012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>
143559
143560        Unreviewed, rolling out r136871.
143561        http://trac.webkit.org/changeset/136871
143562        https://bugs.webkit.org/show_bug.cgi?id=104293
143563
143564        crashes on bots and memory leaks (Requested by esprehn on
143565        #webkit).
143566
143567        * dom/Document.h:
143568        (WebCore::Node::treeScope):
143569        * dom/Element.cpp:
143570        (WebCore::Element::createRareData):
143571        * dom/ElementRareData.h:
143572        (ElementRareData):
143573        (WebCore::ElementRareData::ElementRareData):
143574        * dom/Node.cpp:
143575        (WebCore::Node::setTreeScope):
143576        (WebCore::Node::ensureRareData):
143577        (WebCore::Node::createRareData):
143578        (WebCore::Node::clearRareData):
143579        * dom/Node.h:
143580        (WebCore::NodeRareDataBase::~NodeRareDataBase):
143581        (WebCore::NodeRareDataBase::NodeRareDataBase):
143582        (NodeRareDataBase):
143583        (WebCore::Node::renderer):
143584        (WebCore::Node::setRenderer):
143585        (Node):
143586        (WebCore::Node::hasRareData):
143587        * dom/NodeRareData.h:
143588        (WebCore::NodeRareData::NodeRareData):
143589        (NodeRareData):
143590
1435912012-12-06  Adam Klein  <adamk@chromium.org>
143592
143593        Remove non-v8 binding files from WebCore.gypi
143594        https://bugs.webkit.org/show_bug.cgi?id=104288
143595
143596        Reviewed by Adam Barth.
143597
143598        Since the gyp build is only used by the Chromium project,
143599        there's no need for cpp, gobject, objc, or jsc bindings
143600        in these build files.
143601
143602        * WebCore.gypi:
143603
1436042012-12-06  Tony Chang  <tony@chromium.org>
143605
143606        REGRESSION(r135082): Restore the ability to insert author level style sheets from script
143607        https://bugs.webkit.org/show_bug.cgi?id=104042
143608
143609        Reviewed by Antti Koivisto.
143610
143611        Add DocumentStyleSheetCollection::addAuthorSheet so embedders can allow scripts
143612        to insert author level styles. Expose the method to window.interals for testing.
143613
143614        Test: userscripts/insert-stylesheets.html
143615
143616        * WebCore.exp.in: Update exports for Internals.cpp.
143617        * WebCore.order: Update exports for Internals.cpp.
143618        * dom/DocumentStyleSheetCollection.cpp:
143619        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
143620        (WebCore::DocumentStyleSheetCollection::addAuthorSheet): Add the stylesheet and force a style recalc.
143621        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets): Include author level styles.
143622        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage): Include author styles.
143623        * dom/DocumentStyleSheetCollection.h:
143624        (WebCore::DocumentStyleSheetCollection::documentAuthorStyleSheets): Accessor.
143625        (DocumentStyleSheetCollection): Keep track of author styles added by script.
143626        * testing/Internals.cpp:
143627        (WebCore::Internals::insertAuthorCSS): Testing addAuthorSheet.
143628        (WebCore::Internals::insertUserCSS): Testing addUserSheet.
143629        * testing/Internals.h:
143630        * testing/Internals.idl: Add addAuthorSheet and addUserSheet.
143631
1436322012-12-06  Elliott Sprehn  <esprehn@gmail.com>
143633
143634        Create only NodeRareDataBase when setting TreeScope
143635        https://bugs.webkit.org/show_bug.cgi?id=104202
143636
143637        Reviewed by Dimitri Glazkov.
143638
143639        Move many fields from NodeRareData into NodeRareDataBase and rename it
143640        UncommonNodeData and add a flag to determine if a UncommonNodeData is
143641        actually a full NodeRareData instance. By moving fields up from NodeRareData
143642        we ensure that this new flag in the base class doesn't make NodeRareData
143643        grow in size.
143644
143645        We then make setting the tree scope only allocate the UncommonNodeData
143646        instead of creating the full NodeRareData or ElementRareData. This is
143647        important because when putting nodes into ShadowRoot or any descendant
143648        we must associate the node with a tree scope which adds rare data to the
143649        node making NodeRareData and ElementRareData not very rare.
143650
143651        On 64bit, this reduces the overhead per element from 136 bytes to
143652        32 bytes for a 76% savings, and on other nodes from 64 bytes to 32 bytes
143653        for a 50% savings.
143654
143655        No new tests, no change in behavior.
143656
143657        * dom/Document.h:
143658        (WebCore::Node::treeScope):
143659        * dom/Element.cpp:
143660        (WebCore::Element::createRareData):
143661        * dom/ElementRareData.h:
143662        (ElementRareData):
143663        (WebCore::ElementRareData::ElementRareData):
143664        * dom/Node.cpp:
143665        (WebCore::Node::setTreeScope):
143666        (WebCore::Node::ensureRareData):
143667        (WebCore::Node::createRareData):
143668        (WebCore::Node::clearRareData):
143669        * dom/Node.h:
143670        (WebCore::UncommonNodeData::create):
143671        (UncommonNodeData):
143672        (WebCore::UncommonNodeData::~UncommonNodeData):
143673        (WebCore::UncommonNodeData::isNodeRareData):
143674        (WebCore::UncommonNodeData::UncommonNodeData):
143675        (WebCore::Node::renderer):
143676        (WebCore::Node::setRenderer):
143677        (Node):
143678        (WebCore::Node::hasRareData):
143679        (WebCore::Node::hasUncommonNodeData):
143680        * dom/NodeRareData.h:
143681        (WebCore::NodeRareData::NodeRareData):
143682        (NodeRareData):
143683
1436842012-12-06  Joshua Bell  <jsbell@chromium.org>
143685
143686        IndexedDB: Remove IDBDatabaseException.idl
143687        https://bugs.webkit.org/show_bug.cgi?id=102961
143688
143689        Reviewed by Adam Barth.
143690
143691        Delete the IDL and references to it. No longer needed as a enum member
143692        in the autogenerated ExceptionCodeDescription.h so removed from the ".in"
143693        file; only direct references are retained in the autogenerated cpp file.
143694
143695        Ideally the code generator would handle these new-style DOMExceptions,
143696        but we don't have any other examples yet to know what pattern to follow.
143697
143698        No new tests - just removing dead code.
143699
143700        * CMakeLists.txt:
143701        * DerivedSources.cpp:
143702        * DerivedSources.make:
143703        * DerivedSources.pri:
143704        * GNUmakefile.list.am:
143705        * Modules/indexeddb/IDBDatabaseException.idl: Removed.
143706        * WebCore.gypi:
143707        * WebCore.vcproj/WebCore.vcproj:
143708        * WebCore.xcodeproj/project.pbxproj:
143709        * dom/DOMExceptions.in:
143710        * dom/make_dom_exceptions.pl:
143711        (generateImplementation):
143712
1437132012-12-06  Andreas Kling  <akling@apple.com>
143714
143715        [Mac] Drain the CSSValuePool on memory pressure.
143716        <http://webkit.org/b/104274>
143717
143718        Reviewed by Antti Koivisto.
143719
143720        Add a drain() mechanism to CSSValuePool and call it when we're under memory pressure.
143721
143722        * WebCore.xcodeproj/project.pbxproj:
143723        * css/CSSValuePool.cpp:
143724        (WebCore::CSSValuePool::drain):
143725        * css/CSSValuePool.h:
143726        * platform/mac/MemoryPressureHandlerMac.mm:
143727        (WebCore::MemoryPressureHandler::releaseMemory):
143728
1437292012-12-05  Adam Klein  <adamk@chromium.org>
143730
143731        Remove gyp config for incomplete and unused Apple Mac gyp build
143732        https://bugs.webkit.org/show_bug.cgi?id=104068
143733
143734        Reviewed by Adam Barth.
143735
143736        As part of the removal, move some files to the proper sections
143737        of the gypi file.
143738
143739        * WebCore.gyp/WebCore.gyp:
143740        * WebCore.gypi:
143741
1437422012-12-06  Hans Muller  <hmuller@adobe.com>
143743
143744        [CSS Exclusions] Add support for computing the first included interval position.
143745        https://bugs.webkit.org/show_bug.cgi?id=103327
143746
143747        Reviewed by Levi Weintraub.
143748
143749        If the first "word" in a line doesn't fit within the shape-inside when lineTop
143750        is the top of the shape's logical bounding box, adjust lineTop downwards to where
143751        the word fits.  Currently only rounded rectangle shapes are supported.
143752
143753        Added ExclusionShape::firstIncludedIntervalLogicalTop(). The new virtual method
143754        computes the topmost/leftmost location where a line segment with the specified
143755        minLogicalIntervalSize will fit within the exclusion shape and returns the
143756        corresponding logical Y coordinate.  The result is additionally constrained to
143757        be at or below minLogicalIntervalTop. If the segment will not fit anywhere within
143758        the shape, then false is returned.
143759
143760        During layout, minLogicalIntervalTop is the nominal top of the line being laid
143761        out within the exclusion shape.
143762
143763        RenderBlock::layoutRunsAndFloatsInRange() now calls a new ExclusionShapeInsideInfo
143764        method, adjustLogicalLineTop(), which uses firstIncludedIntervalLogicalTop() to
143765        decide if the logical top of the line has to be moved downwards, for the first
143766        word to fit within the exclusion shape.
143767
143768        Tests: fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-001.html
143769               fast/exclusions/shape-inside/shape-inside-rounded-rectangle-fit-002.html
143770
143771        * rendering/ExclusionPolygon.cpp:
143772        (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This is a stub implementation.
143773        * rendering/ExclusionPolygon.h:
143774        * rendering/ExclusionRectangle.cpp:
143775        (WebCore::ellipseXIntercept): Added spaces to conform to webkit style and to be consistent with ellipseYIntercept()
143776        (WebCore::ellipseYIntercept): Compute an ellipse's Y intercept for an X coordinate.
143777        (WebCore::ExclusionRectangle::firstIncludedIntervalLogicalTop): See the description above.
143778        * rendering/ExclusionRectangle.h:
143779        * rendering/ExclusionShape.h:
143780        (ExclusionShape):
143781        (WebCore::ExclusionShape::logicalTopForMinY): Internal to logical coordinate conversion.
143782        * rendering/ExclusionShapeInsideInfo.cpp:
143783        (WebCore::ExclusionShapeInsideInfo::adjustLogicalLineTop): A new method that updates m_lineTop with firstIncludedIntervalPosition().
143784        * rendering/ExclusionShapeInsideInfo.h:
143785        (ExclusionShapeInsideInfo):
143786        (WebCore::ExclusionShapeInsideInfo::logicalLineTop): This is just a cover for the private m_lineTop field.
143787        * rendering/RenderBlockLineLayout.cpp:
143788        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added code that restarts the layout loop if it's necessary to adjust the line's logicalTop.
143789        (WebCore::RenderBlock::restartLayoutRunsAndFloatsInRange): Factored newly common code into this helper function.
143790
1437912012-12-06  Ryosuke Niwa  <rniwa@webkit.org>
143792
143793        Use ownerNode() instead of base() in HTMLCollection
143794        https://bugs.webkit.org/show_bug.cgi?id=104244
143795
143796        Reviewed by Adam Barth.
143797
143798        Use ownerNode() instead of base() in HTMLCollection to match LiveNodeList.
143799        Notice that the definition of base(), which this patch removes, is "return ownerNode()".
143800
143801        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
143802        (WebCore::getNamedItems):
143803        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
143804        (WebCore::JSHTMLOptionsCollection::indexSetter):
143805        (WebCore::JSHTMLOptionsCollection::remove):
143806        * bindings/scripts/CodeGeneratorJS.pm:
143807        (GenerateImplementation):
143808        * bindings/scripts/CodeGeneratorV8.pm:
143809        (GenerateOpaqueRootForGC):
143810        * bindings/scripts/IDLAttributes.txt:
143811        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
143812        (WebCore::getNamedItems):
143813        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
143814        (WebCore::V8HTMLOptionsCollection::removeCallback):
143815        (WebCore::V8HTMLOptionsCollection::indexedPropertySetter):
143816        * dom/WebKitNamedFlow.cpp:
143817        (WebCore::WebKitNamedFlow::ownerNode):
143818        * dom/WebKitNamedFlow.h:
143819        (WebKitNamedFlow):
143820        * dom/WebKitNamedFlow.idl:
143821        * html/HTMLAllCollection.idl:
143822        * html/HTMLCollection.h:
143823        (HTMLCollection):
143824        * html/HTMLCollection.idl:
143825        * html/HTMLFormControlsCollection.cpp:
143826        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
143827        (WebCore::HTMLFormControlsCollection::create):
143828        (WebCore::HTMLFormControlsCollection::formControlElements):
143829        (WebCore::HTMLFormControlsCollection::formImageElements):
143830        (WebCore::HTMLFormControlsCollection::namedItem):
143831        (WebCore::HTMLFormControlsCollection::updateNameCache):
143832        * html/HTMLFormControlsCollection.idl:
143833        * html/HTMLNameCollection.cpp:
143834        (WebCore::HTMLNameCollection::~HTMLNameCollection):
143835        (WebCore::HTMLNameCollection::virtualItemAfter):
143836        * html/HTMLOptionsCollection.cpp:
143837        (WebCore::HTMLOptionsCollection::add):
143838        (WebCore::HTMLOptionsCollection::remove):
143839        (WebCore::HTMLOptionsCollection::selectedIndex):
143840        (WebCore::HTMLOptionsCollection::setSelectedIndex):
143841        (WebCore::HTMLOptionsCollection::setLength):
143842        * html/HTMLOptionsCollection.idl:
143843        * html/HTMLPropertiesCollection.cpp:
143844        (WebCore::HTMLPropertiesCollection::updateRefElements):
143845        (WebCore::HTMLPropertiesCollection::namedItem):
143846        * html/HTMLTableRowsCollection.cpp:
143847        (WebCore::HTMLTableRowsCollection::virtualItemAfter):
143848
1438492012-12-06  Tommy Widenflycht  <tommyw@google.com>
143850
143851        Speech Recognition API: Change the error code to a string on SpeechRecognitionError
143852        https://bugs.webkit.org/show_bug.cgi?id=104254
143853
143854        Reviewed by Adam Barth.
143855
143856        SpeechRecognitionError::code (numeric value) has been changed to SpeechRecognitionError::error (string)
143857        in the latest specification.
143858
143859        http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-error
143860
143861        Existing tests modified to cover this patch.
143862
143863        * Modules/speech/SpeechRecognitionError.cpp:
143864        (WebCore::ErrorCodeToString):
143865        (WebCore):
143866        (WebCore::SpeechRecognitionError::create):
143867        (WebCore::SpeechRecognitionError::SpeechRecognitionError):
143868        * Modules/speech/SpeechRecognitionError.h:
143869        (SpeechRecognitionErrorInit):
143870        (WebCore::SpeechRecognitionError::error):
143871        (SpeechRecognitionError):
143872        * Modules/speech/SpeechRecognitionError.idl:
143873
1438742012-12-06  Stephen Chenney  <schenney@chromium.org>
143875
143876        SVG <use> element inside an svg-as-image fails
143877        https://bugs.webkit.org/show_bug.cgi?id=104007
143878
143879        Reviewed by Eric Seidel.
143880
143881        Upon redraw, SVGImage calls layout on the document it is drawing into
143882        the image if the image, provided it believes the redraw does not need
143883        to be delayed. Unfortunately, when an SVG <use> element is modified
143884        (by animation, say) and regenerates its shadow tree, the destructors
143885        invoke redraw, causing the SVGImage to call layout on something that
143886        is in the process of being deleted. That's bad.
143887
143888        This change causes SVGImage to always delay the redraw. It is the most robust
143889        way to protect against this problem, as there may be any number of
143890        ways to cause this issue (a node being deleted in an svg-as-image
143891        target) and this protects against them all.
143892
143893        The test case crashes in Asan Chromium.
143894
143895        Test: svg/as-image/animated-use-as-image-crash.html
143896
143897        * svg/graphics/SVGImageCache.cpp:
143898        (WebCore::SVGImageCache::imageContentChanged): Always redraw on the timer.
143899
1439002012-12-06  Antoine Quint  <graouts@apple.com>
143901
143902        TextTrack's .cues not ordered correctly when two cues have the same .startTime
143903        https://bugs.webkit.org/show_bug.cgi?id=103266
143904
143905        Reviewed by Eric Carlson.
143906
143907        Adding a new method TextTrackCueList::updateCueIndex() to update the list of
143908        cues after changing the .startTime or .endTime of a TextTrackCue. I elected to
143909        add a new method to TextTrackCueList rather than calling remove() and then add()
143910        on the list from TextTrack::cueDidChange() so that the nature of the operation
143911        is abstracted and we can easily change the way we keep the cue list sorted at
143912        a later time should we choose to.
143913
143914        * html/track/TextTrack.cpp:
143915        (WebCore::TextTrack::cueDidChange):
143916        * html/track/TextTrackCueList.cpp:
143917        (WebCore::TextTrackCueList::updateCueIndex):
143918        (WebCore):
143919        * html/track/TextTrackCueList.h:
143920        (TextTrackCueList):
143921
1439222012-12-06  Andras Becsi  <andras.becsi@digia.com>
143923
143924        [Qt][Mac] Fix libxslt and libxml2 config tests
143925        https://bugs.webkit.org/show_bug.cgi?id=104164
143926
143927        Reviewed by Simon Hausmann.
143928
143929        Since libxml2 is a dependency for libxslt and is not used
143930        standalone the configurations for it should also depend on
143931        whether XSLT is enabled.
143932        Also avoid using pkg-config on Mac, instead use direct
143933        include paths and add needed libraries to the linker.
143934
143935        No new tests needed.
143936
143937        * WebCore.pri:
143938
1439392012-12-06  Shinya Kawanaka  <shinyak@chromium.org>
143940
143941        Internals.getElementByIdInShadowRoot is nonsense now.
143942        https://bugs.webkit.org/show_bug.cgi?id=104241
143943
143944        Reviewed by Kent Tamura.
143945
143946        Since we have ShadowRoot.getElementById() now, we don't need Internals.getElementByIdInShadowRoot, which is
143947        the same functionality of ShadowRoot.getElementById().
143948
143949        Test: fast/dom/shadow/get-element-by-id-in-shadow-root.html
143950
143951        * WebCore.exp.in:
143952        * testing/Internals.cpp:
143953        * testing/Internals.h:
143954        (Internals):
143955        * testing/Internals.idl:
143956
1439572012-12-06  Kondapally Kalyan  <kalyan.kondapally@intel.com>
143958
143959        [EFL] Active texture state gets corrupted after updating graphics surface contents.
143960        https://bugs.webkit.org/show_bug.cgi?id=104248.
143961
143962        Reviewed by Kenneth Rohde Christiansen.
143963
143964        GraphicsContext3DPrivate::copyToGraphicsSurface() doesn't restore the previously bound texture
143965        after copying texture contents. This corrupts the texture state.
143966
143967        Existing Tests should cover this.
143968
143969        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
143970        (GraphicsContext3DPrivate::copyToGraphicsSurface):
143971        * platform/graphics/opengl/GLPlatformSurface.cpp:
143972        (WebCore::GLPlatformSurface::updateContents):
143973        * platform/graphics/opengl/GLPlatformSurface.h:
143974        (GLPlatformSurface):
143975
1439762012-12-06  Alexander Pavlov  <apavlov@chromium.org>
143977
143978        Web Inspector: Goto panel shortcuts and description are reversed
143979        https://bugs.webkit.org/show_bug.cgi?id=103988
143980
143981        Reviewed by Pavel Feldman.
143982
143983        Swap the square brackets in the shortcuts.
143984
143985        * inspector/front-end/inspector.js:
143986        (WebInspector._registerShortcuts):
143987
1439882012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>
143989
143990        Unreviewed, rolling out r136818.
143991        http://trac.webkit.org/changeset/136818
143992        https://bugs.webkit.org/show_bug.cgi?id=104249
143993
143994        simulatedClick does not work as per #chrmium irc. (Requested
143995        by hayato on #webkit).
143996
143997        * dom/EventDispatcher.cpp:
143998        (WebCore::EventRelatedTargetAdjuster::adjust):
143999        * dom/MouseEvent.cpp:
144000        (WebCore::MouseEventDispatchMediator::create):
144001        (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
144002        (WebCore::MouseEventDispatchMediator::dispatchEvent):
144003        * dom/MouseEvent.h:
144004        (MouseEventDispatchMediator):
144005        * dom/Node.cpp:
144006        (WebCore::Node::dispatchEvent):
144007
1440082012-12-06  Ulan Degenbaev  <ulan@chromium.org>
144009
144010        [v8] Fix hidden property name of V8ArrayBufferView flag.
144011        https://bugs.webkit.org/show_bug.cgi?id=104099
144012
144013        Reviewed by Kentaro Hara.
144014
144015        Fix hidden property name of V8ArrayBufferView hidden copy method.
144016
144017        * bindings/v8/V8HiddenPropertyName.h:
144018        (WebCore):
144019        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
144020        (WebCore::getHiddenCopyMethod):
144021        (WebCore::installHiddenCopyMethod):
144022
1440232012-12-06  Kentaro Hara  <haraken@chromium.org>
144024
144025        Unreviewed. Fixed a wrong comment landed in r136822.
144026
144027        * bindings/v8/V8Binding.h:
144028        (WebCore):
144029
1440302012-12-05  Kentaro Hara  <haraken@chromium.org>
144031
144032        [V8] Implement deprecatedV8String()
144033        https://bugs.webkit.org/show_bug.cgi?id=104230
144034
144035        Reviewed by Adam Barth.
144036
144037        To make an Isolate mandatory in v8String(), we implement
144038        deprecatedV8String() for call sites that don't have
144039        an Isolate. Eventually we want to kill the method though.
144040
144041        No tests. No change in behavior.
144042
144043        * bindings/scripts/test/V8/V8TestCallback.cpp:
144044        (WebCore::V8TestCallback::callbackWithClass2Param):
144045        * bindings/v8/Dictionary.cpp:
144046        (WebCore::Dictionary::getKey):
144047        * bindings/v8/IDBBindingUtilities.cpp:
144048        (WebCore::get):
144049        (WebCore::set):
144050        * bindings/v8/JavaScriptCallFrame.cpp:
144051        (WebCore::JavaScriptCallFrame::evaluate):
144052        * bindings/v8/ScriptController.cpp:
144053        (WebCore::ScriptController::compileAndRunScript):
144054        (WebCore::ScriptController::bindToWindowObject):
144055        (WebCore::ScriptController::disableEval):
144056        * bindings/v8/ScriptDebugServer.cpp:
144057        (WebCore::ScriptDebugServer::setBreakpoint):
144058        (WebCore::ScriptDebugServer::removeBreakpoint):
144059        (WebCore::ScriptDebugServer::setScriptSource):
144060        (WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
144061        (WebCore::ScriptDebugServer::compileScript):
144062        * bindings/v8/ScriptFunctionCall.cpp:
144063        (WebCore::ScriptCallArgumentHandler::appendArgument):
144064        (WebCore::ScriptFunctionCall::call):
144065        (WebCore::ScriptFunctionCall::construct):
144066        * bindings/v8/ScriptProfiler.cpp:
144067        (WebCore::ScriptProfiler::start):
144068        (WebCore::ScriptProfiler::stop):
144069        (WebCore::ScriptProfiler::takeHeapSnapshot):
144070        * bindings/v8/ScriptSourceCode.cpp:
144071        (WebCore::ScriptSourceCode::compileScript):
144072        * bindings/v8/V8Binding.h:
144073        (WebCore):
144074        (WebCore::deprecatedV8String):
144075        * bindings/v8/V8DOMWindowShell.cpp:
144076        (WebCore::V8DOMWindowShell::initializeIfNeeded):
144077        (WebCore::V8DOMWindowShell::namedItemAdded):
144078        (WebCore::V8DOMWindowShell::namedItemRemoved):
144079        * bindings/v8/V8LazyEventListener.cpp:
144080        (WebCore::V8LazyEventListener::prepareListenerObject):
144081        * bindings/v8/V8WindowErrorHandler.cpp:
144082        (WebCore::V8WindowErrorHandler::callListenerFunction):
144083        * bindings/v8/V8WorkerContextErrorHandler.cpp:
144084        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
144085        * bindings/v8/WorkerScriptController.cpp:
144086        (WebCore::WorkerScriptController::evaluate):
144087        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
144088        (WebCore::installHiddenCopyMethod):
144089        (WebCore::copyElements):
144090        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
144091        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
144092        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
144093        (WebCore::V8InjectedScriptHost::getEventListenersCallback):
144094        * bindings/v8/custom/V8InjectedScriptManager.cpp:
144095        (WebCore::InjectedScriptManager::createInjectedScript):
144096        * bindings/v8/custom/V8MessageEventCustom.cpp:
144097        (WebCore::V8MessageEvent::dataAccessorGetter):
144098        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
144099        (WebCore::toV8Object):
144100        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
144101
1441022012-12-06  Keishi Hattori  <keishi@webkit.org>
144103
144104        Page popup should align to the right when the anchor element is rtl
144105        https://bugs.webkit.org/show_bug.cgi?id=104219
144106
144107        Reviewed by Kent Tamura.
144108
144109        Page popup should align to the right edge of the anchor element when the anchor element is rtl.
144110
144111        No new tests. Mock page popup can't test popup window position.
144112
144113        * Resources/pagepopups/pickerCommon.js:
144114        (_adjustWindowRectHorizontally): Align to the right edge when anchor element is rtl. Removed some redundant lines.
144115        (setWindowRect): If the window is hidden we want to move first then resize so the popup doesn't flicker.
144116        (isWindowHidden): Returns true if the window is hidden using hideWindow().
144117
1441182012-12-06  Kentaro Hara  <haraken@chromium.org>
144119
144120        [V8] Make an Isolate mandatory for v8StringOrNull() and v8StringOrUndefined()
144121        https://bugs.webkit.org/show_bug.cgi?id=104213
144122
144123        Reviewed by Adam Barth.
144124
144125        All call sites of v8StringOrNull() and v8StringOrUndefined() have an Isolate.
144126
144127        No tests. No change in behavior.
144128
144129        * bindings/v8/V8Binding.h:
144130        (WebCore::v8StringOrNull):
144131        (WebCore::v8StringOrUndefined):
144132
1441332012-12-05  Kentaro Hara  <haraken@chromium.org>
144134
144135        [V8] Implement deprecatedV8Integer(int i)
144136        https://bugs.webkit.org/show_bug.cgi?id=104220
144137
144138        Reviewed by Adam Barth.
144139
144140        To make an Isolate mandatory in v8Integer(), we implement
144141        deprecatedV8Integer(int i) for call sites that don't have
144142        an Isolate. Eventually we want to kill deprecatedV8Integer(int i).
144143
144144        No new tests. No change in behavior.
144145
144146        * bindings/v8/Dictionary.cpp:
144147        (WebCore::Dictionary::get):
144148        * bindings/v8/NPV8Object.cpp:
144149        (_NPN_Enumerate):
144150        * bindings/v8/PageScriptDebugServer.cpp:
144151        (WebCore::PageScriptDebugServer::addListener):
144152        * bindings/v8/ScriptDebugServer.cpp:
144153        (WebCore::ScriptDebugServer::setBreakpoint):
144154        (WebCore::ScriptDebugServer::compileScript):
144155        * bindings/v8/ScriptSourceCode.cpp:
144156        (WebCore::ScriptSourceCode::compileScript):
144157        * bindings/v8/V8Binding.h:
144158        (WebCore):
144159        (WebCore::deprecatedV8Integer):
144160        * bindings/v8/V8DOMConfiguration.cpp:
144161        (WebCore::V8DOMConfiguration::batchConfigureConstants):
144162        * bindings/v8/V8NPUtils.cpp:
144163        (WebCore::convertNPVariantToV8Object):
144164        * bindings/v8/V8Utilities.cpp:
144165        (WebCore::createHiddenDependency):
144166        (WebCore::removeHiddenDependency):
144167        * bindings/v8/V8WindowErrorHandler.cpp:
144168        (WebCore::V8WindowErrorHandler::callListenerFunction):
144169        * bindings/v8/V8WorkerContextErrorHandler.cpp:
144170        (WebCore::V8WorkerContextErrorHandler::callListenerFunction):
144171        * bindings/v8/WorkerScriptDebugServer.cpp:
144172        (WebCore::WorkerScriptDebugServer::addListener):
144173        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
144174        (WebCore::V8MutationCallback::handleEvent):
144175
1441762012-12-06  Hayato Ito  <hayato@chromium.org>
144177
144178        Event's relatedTarget re-targeting does not occur for manually fired mouse events created by event.initMouseEvent().
144179        https://bugs.webkit.org/show_bug.cgi?id=102681
144180
144181        Reviewed by Dimitri Glazkov.
144182
144183        Make sure that event's relatedTarget re-targeting occurs for mouse
144184        events created by event.initMouseEvent().  Since user-generated
144185        mouse events can have a relatedTarget which is same to the target
144186        node, the algorithm which calculates event's ancestors is also
144187        updated so that ancestors are not shrunk wrongly.
144188
144189        Test: fast/events/dispatch-synthetic-mouseevent.html
144190              fast/dom/shadow/shadow-dom-event-dispatching.html
144191
144192        * dom/EventDispatcher.cpp:
144193        (WebCore::EventRelatedTargetAdjuster::adjust):
144194        * dom/MouseEvent.cpp:
144195        (WebCore::MouseEventDispatchMediator::create):
144196        (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator):
144197        (WebCore::MouseEventDispatchMediator::dispatchEvent):
144198        * dom/MouseEvent.h:
144199        (WebCore::MouseEventDispatchMediator::isSyntheticMouseEvent):
144200        (MouseEventDispatchMediator):
144201        * dom/Node.cpp:
144202        (WebCore::Node::dispatchEvent):
144203
1442042012-12-06  Michael Pruett  <michael@68k.org>
144205
144206        [JSC] Check whether property is an array before attempting conversion to array in JSDictionary
144207        https://bugs.webkit.org/show_bug.cgi?id=96614
144208
144209        Reviewed by Kentaro Hara.
144210
144211        JSDictionary should check whether the property being accessed in get()
144212        is an array before attempting to convert the value to an array.
144213
144214        Previously calling get() with a result type of Vector<String> when
144215        the named property could not be converted to an array would generate
144216        an exception.
144217
144218        Tests: storage/indexeddb/*
144219
144220        * bindings/js/JSDictionary.cpp:
144221        (WebCore::JSDictionary::convertValue):
144222        * bindings/js/JSDictionary.h:
144223        (WebCore::JSDictionary::tryGetPropertyAndResult):
144224
1442252012-12-05  Kentaro Hara  <haraken@chromium.org>
144226
144227        [V8] Pass Isolate to toDOMStringList()
144228        https://bugs.webkit.org/show_bug.cgi?id=104224
144229
144230        Reviewed by Adam Barth.
144231
144232        No tests. No change in behavior.
144233
144234        * bindings/scripts/CodeGeneratorV8.pm:
144235        (JSValueToNative):
144236        * bindings/scripts/test/V8/V8TestObj.cpp:
144237        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
144238        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
144239        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
144240        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
144241        * bindings/v8/V8Binding.cpp:
144242        (WebCore::toDOMStringList):
144243        * bindings/v8/V8Binding.h:
144244        (WebCore):
144245
1442462012-12-06  Kentaro Hara  <haraken@chromium.org>
144247
144248        Remove JSDependentRetained.h and V8DependentRetained.h
144249        https://bugs.webkit.org/show_bug.cgi?id=104232
144250
144251        Reviewed by Adam Barth.
144252
144253        Although (JS|V8)DependentRetained.h were introduced for MutationObservers,
144254        they are not going to be used (See the discussion in bug 95519).
144255        We can remove them.
144256
144257        No tests. No change in behavior.
144258
144259        * GNUmakefile.list.am:
144260        * WebCore.gypi:
144261        * WebCore.vcproj/WebCore.vcproj:
144262        * WebCore.xcodeproj/project.pbxproj:
144263        * bindings/js/JSDependentRetained.h: Removed.
144264        * bindings/v8/V8DependentRetained.h: Removed.
144265        * bindings/v8/V8PerIsolateData.cpp:
144266        (WebCore::V8PerIsolateData::V8PerIsolateData):
144267        * bindings/v8/V8PerIsolateData.h:
144268        (V8PerIsolateData):
144269
1442702012-12-06  Kentaro Hara  <haraken@chromium.org>
144271
144272        [V8] Replace v8String("symbol") with v8::String::NewSymbol("symbol")
144273        https://bugs.webkit.org/show_bug.cgi?id=104209
144274
144275        Reviewed by Adam Barth.
144276
144277        V8 can look up symbols faster than strings.
144278
144279        No tests. No change in behavior.
144280
144281        * bindings/v8/JavaScriptCallFrame.cpp:
144282        (WebCore::JavaScriptCallFrame::caller):
144283        (WebCore::JavaScriptCallFrame::sourceID):
144284        (WebCore::JavaScriptCallFrame::line):
144285        (WebCore::JavaScriptCallFrame::column):
144286        (WebCore::JavaScriptCallFrame::functionName):
144287        (WebCore::JavaScriptCallFrame::scopeChain):
144288        (WebCore::JavaScriptCallFrame::scopeType):
144289        (WebCore::JavaScriptCallFrame::thisObject):
144290        (WebCore::JavaScriptCallFrame::evaluate):
144291        (WebCore::JavaScriptCallFrame::restart):
144292        * bindings/v8/V8ThrowException.cpp:
144293        (WebCore::domExceptionStackGetter):
144294        (WebCore::domExceptionStackSetter):
144295        (WebCore::V8ThrowException::setDOMException):
144296        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
144297        (WebCore::V8InspectorFrontendHost::platformCallback):
144298        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
144299        (WebCore::V8JavaScriptCallFrame::typeAccessorGetter):
144300
1443012012-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>
144302
144303        Unreviewed, rolling out r136784 and r136802.
144304        http://trac.webkit.org/changeset/136784
144305        http://trac.webkit.org/changeset/136802
144306        https://bugs.webkit.org/show_bug.cgi?id=104231
144307
144308        breaks chromium canary (Requested by morrita on #webkit).
144309
144310        * WebCore.gyp/WebCore.gyp:
144311        * WebCore.gypi:
144312        * platform/chromium/PlatformThemeChromiumLinux.cpp: Added.
144313        (WebCore):
144314        (WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
144315        (WebCore::clamp):
144316        (WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
144317        (WebCore::PlatformThemeChromiumLinux::outlineColor):
144318        (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
144319        * platform/chromium/PlatformThemeChromiumLinux.h: Added.
144320        (WebCore):
144321        (PlatformThemeChromiumLinux):
144322        (WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
144323        (WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
144324        (WebCore::PlatformThemeChromiumLinux::trackColor):
144325        (WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
144326        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
144327        (WebCore):
144328        (WebCore::ScrollbarTheme::nativeTheme):
144329        (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
144330        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
144331        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
144332        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
144333        (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
144334        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
144335        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
144336        * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
144337        (ScrollbarThemeChromiumLinux):
144338        * rendering/RenderThemeChromiumAndroid.cpp:
144339        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
144340        * rendering/RenderThemeChromiumAndroid.h:
144341        * rendering/RenderThemeChromiumLinux.cpp: Added.
144342        (WebCore):
144343        (WebCore::getWebThemeState):
144344        (WebCore::RenderThemeChromiumLinux::create):
144345        (WebCore::RenderTheme::themeForPage):
144346        (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
144347        (WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
144348        (WebCore::RenderThemeChromiumLinux::systemColor):
144349        (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
144350        (WebCore::RenderThemeChromiumLinux::controlSupportsTints):
144351        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionBackgroundColor):
144352        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionForegroundColor):
144353        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionBackgroundColor):
144354        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionForegroundColor):
144355        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
144356        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
144357        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
144358        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
144359        (WebCore::RenderThemeChromiumLinux::sliderTickSize):
144360        (WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter):
144361        (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
144362        (WebCore::RenderThemeChromiumLinux::supportsControlTints):
144363        (WebCore::RenderThemeChromiumLinux::setCaretBlinkInterval):
144364        (WebCore::RenderThemeChromiumLinux::caretBlinkIntervalInternal):
144365        (WebCore::RenderThemeChromiumLinux::setSelectionColors):
144366        (WebCore::RenderThemeChromiumLinux::paintCheckbox):
144367        (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
144368        (WebCore::RenderThemeChromiumLinux::paintRadio):
144369        (WebCore::RenderThemeChromiumLinux::setRadioSize):
144370        (WebCore::RenderThemeChromiumLinux::paintButton):
144371        (WebCore::RenderThemeChromiumLinux::paintTextField):
144372        (WebCore::RenderThemeChromiumLinux::paintMenuList):
144373        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
144374        (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
144375        (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
144376        (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
144377        (WebCore::RenderThemeChromiumLinux::paintProgressBar):
144378        (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key):
144379        * rendering/RenderThemeChromiumLinux.h: Added.
144380        (WebCore):
144381        (RenderThemeChromiumLinux):
144382
1443832012-12-05  Sankeerth V S  <sankeerth.vs@samsung.com>
144384
144385        Web Inspector: Title of "Record Timeline" status button on "Timeline
144386        Panel" should reflect the recording state.
144387        https://bugs.webkit.org/show_bug.cgi?id=104108
144388
144389        Reviewed by Alexander Pavlov.
144390
144391        Title should be toggled between "Record"/"Stop" to reflect current
144392        state of the Status bar button.
144393
144394        No new tests as UI related change.
144395
144396        * inspector/front-end/TimelinePanel.js:
144397        (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
144398
1443992012-12-03  Kent Tamura  <tkent@chromium.org>
144400
144401        INPUT_MULTIPLE_FIELDS_UI doesn't show digits well in RTL locales
144402        https://bugs.webkit.org/show_bug.cgi?id=103869
144403
144404        Reviewed by Hajime Morita.
144405
144406        We need to use display:inline elements to wrap sub-fields and static
144407        text in DateTimeEditElement children to apply the Unicode Bidi
144408        Algorithm.
144409
144410        Because we can't use display:inline-block for them, we can't specify
144411        min-width CSS property for them. We stop using customStyleForRenderer of
144412        sub-fields to specify each of their widths, and use
144413        customStyleForRenderer of DateTimeEditElement to specify the total
144414        required width. A sub-field width shrink and grow so that the width fits
144415        to the field value, and a DateTimeEditElement doesn't.
144416
144417        No new tests. Coverred by existing tests, especially
144418        fast/forms/datetime/datetime-appearance-l10n.html shows "23:59"
144419        correctly.
144420
144421        * css/html.css:
144422        (input::-webkit-datetime-edit-year-field):
144423        - Make this display:inline to apply the Unicode Bidi Algorithm.
144424        - Use padding instead of margin because of ease of width computation.
144425          Also, the focus apparance gets better by padding.
144426        - Don't allow to specify font property here because of ease of width
144427          computation.
144428        - Remove text-align:center. It doesn't work for display:inline.
144429        (input::-webkit-datetime-edit-text):
144430        - Make this display:inline to apply the Unicode Bidi Algorithm.
144431        - Don't allow to specify font property here because of ease of width
144432          computation.
144433
144434        * html/shadow/DateTimeEditElement.h:
144435        (DateTimeEditElement): Declare customStyleForRenderer.
144436        * html/shadow/DateTimeEditElement.cpp:
144437        (WebCore::DateTimeEditElement::DateTimeEditElement):
144438        Enable customStyleForRenderer.
144439        (WebCore::DateTimeEditElement::customStyleForRenderer):
144440        Compute required width with a font for this element and child maximum
144441        widths, and set it to min-width style.
144442        The resultant width value can be inaccurate if a page author specifies
144443        padding, border, margin, etc. to ::-webkit-datetime-edit-*-field or
144444        ::-webkit-datetime-edit-text. In such case, the page author should specify
144445        wider width to <input>.
144446
144447        * dom/Element.h:
144448        (Element): Add isDateTimeFieldElement to do static_cast<DateTimeFieldElement> safely.
144449        * dom/Element.cpp:
144450        (WebCore::Element::isDateTimeFieldElement): Added.
144451
144452        * html/shadow/DateTimeFieldElement.h:
144453        (DateTimeFieldElement): Declare isDateTimeFieldElement and maximumWidth.
144454        * html/shadow/DateTimeFieldElement.cpp:
144455        (WebCore::DateTimeFieldElement::isDateTimeFieldElement):
144456        Added. Returns true.
144457        (WebCore::DateTimeFieldElement::maximumWidth):
144458        Added. Returns padding width.
144459
144460        * html/shadow/DateTimeSymbolicFieldElement.h:
144461        (DateTimeSymbolicFieldElement):
144462        Remove customStyleForRenderer, and declare maximumWidth.
144463        * html/shadow/DateTimeSymbolicFieldElement.cpp:
144464        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
144465        Disable customStyleForRenderer.
144466        (WebCore::DateTimeSymbolicFieldElement::maximumWidth):
144467        Added. Returns the expected maximum width with the specified font.
144468
144469        * html/shadow/DateTimeNumericFieldElement.h:
144470        (DateTimeNumericFieldElement):
144471        Remove customStyleForRenderer, declare maximumWidth, and make m_placeholder
144472        non-const because it is updated in the constructor.
144473        * html/shadow/DateTimeNumericFieldElement.cpp:
144474        (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
144475        Disable customStyleForRenderer.
144476        If a numeric value for this field is LTR and the whole direction is RTL,
144477        wrap the placeholder string with left-to-right-mark and
144478        right-to-left-mark so that it is handled as LTR. Without this,
144479        sub-fields order would be changed when the content of a field is changed
144480        from a placeholder to a numeric value.
144481        (WebCore::DateTimeNumericFieldElement::maximumWidth):
144482        Added. Returns the expected maximum width with the specified font.
144483
1444842012-12-05  Kent Tamura  <tkent@chromium.org>
144485
144486        INPUT_MULTIPLE_FIELDS_UI: The hour, am/pm, millisecond fields should support read-only state correctly
144487        https://bugs.webkit.org/show_bug.cgi?id=104210
144488
144489        Reviewed by Kentaro Hara.
144490
144491        1. The hour, am/pm, and millisecond fields should have CSS rules for
144492           [readonly]. They should be gray when they are read-only.
144493        2. The am/pm field should reject to set an empty value like other
144494           numeric fields do.
144495
144496        Tests: Add test cases to fast/forms/time/time-appearance-basic.html.
144497
144498        * css/html.css: merge existing readonly rules, and add ampm, hour, and
144499        millisecond pseudo classes.
144500        * html/shadow/DateTimeSymbolicFieldElement.cpp:
144501        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
144502        Reject to set empty value if it is read-only.
144503
1445042012-12-05  Dan Beam  <dbeam@chromium.org>
144505
144506        HTMLFormElement#requestAutocomplete() should require a user action
144507        https://bugs.webkit.org/show_bug.cgi?id=102320
144508
144509        Reviewed by Kent Tamura.
144510
144511        This patch dispatches an autocompleteerror when HTMLFormElement::requestAutocomplete() is called while not processing
144512        a user gesture.
144513
144514        * fast/forms/form-request-autocomplete.html is updated.
144515
144516        * html/HTMLFormElement.cpp:
144517        (WebCore::HTMLFormElement::requestAutocomplete):
144518
144519        Asynchronously dispatch an autocomplete error when not processing a user action when
144520        HTMLFormElement#requestAutocomplete() is invoked.
144521
1445222012-12-05  Kentaro Hara  <haraken@chromium.org>
144523
144524        [V8] Optimize v8StringOrNull() and v8StringOrUndefined()
144525        https://bugs.webkit.org/show_bug.cgi?id=104206
144526
144527        Reviewed by Adam Barth.
144528
144529        Currently v8StringOrNull() and v8StringOrUndefined() are checking
144530        a null string twice. It is redundant.
144531
144532        [div.localName]
144533        Before this patch: 20.03 ns
144534        After this patch:  19.34 ns
144535
144536        * bindings/v8/V8Binding.h:
144537        (WebCore::v8StringOrNull):
144538        (WebCore::v8StringOrUndefined):
144539
1445402012-12-05  Kentaro Hara  <haraken@chromium.org>
144541
144542        [V8] Optimize v8String() for uninitialized DOM attributes
144543        https://bugs.webkit.org/show_bug.cgi?id=104205
144544
144545        Reviewed by Adam Barth.
144546
144547        This patch makes uninitialized div.lang, div.title etc 6.3% faster.
144548
144549        [div.lang]
144550        Before this patch: 12.6 ns
144551        After this patch:  11.8 ns
144552
144553        * bindings/v8/V8Binding.h:
144554        (WebCore::v8String):
144555
1445562012-12-05  Kentaro Hara  <haraken@chromium.org>
144557
144558        [V8] Remove addImplicitReferencesForNodeWithEventListeners()
144559        https://bugs.webkit.org/show_bug.cgi?id=104203
144560
144561        Reviewed by Adam Barth.
144562
144563        We can use opaqueRootForGC() instead. By this change, we can remove
144564        all AddImplicitReferences() from V8 bindings.
144565
144566        Tests: fast/dom/gc-image-element.html
144567               fast/dom/gc-image-element-2.html
144568               fast/dom/inline-event-attributes-lookup-removed.html
144569
144570        * bindings/v8/V8GCController.cpp:
144571
1445722012-12-05  Andrei Bucur  <abucur@adobe.com>
144573
144574        [CSS Regions] Blocks don't relayout children if the width of a region changes
144575        https://bugs.webkit.org/show_bug.cgi?id=103993
144576
144577        Reviewed by David Hyatt.
144578
144579        After r135750 lines are no longer invalidating when regions change width. This is happening because the detection for the width change was being done
144580        only at line layout time. This patch moves the line relayout decision to the containing block by setting the relayoutChildren flag if the block
144581        has no region chain attached.
144582
144583        Tests: fast/regions/region-width-change-relayout-1.html
144584               fast/regions/region-width-change-relayout-2.html
144585               fast/regions/region-width-change-relayout-3.html
144586
144587        * rendering/RenderFlowThread.cpp:
144588        (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
144589
1445902012-12-05  Kihong Kwon  <kihong.kwon@samsung.com>
144591
144592        Parameter event need to covert to RefPtr in the DeviceController::dispatchDeviceEvent
144593        https://bugs.webkit.org/show_bug.cgi?id=104201
144594
144595        Reviewed by Laszlo Gombos.
144596
144597        Parameter 'event' need to covert to RefPtr in the DeviceController::dispatchDeviceEvent.
144598        This can make crash sometimes.
144599
144600        No new tests. Covered by existing layout tests.
144601
144602        * page/DeviceController.cpp:
144603        (WebCore::DeviceController::dispatchDeviceEvent):
144604
1446052012-12-05  Halton Huo  <halton.huo@intel.com>
144606
144607        [CMake] Unify coding style for CMake files
144608        https://bugs.webkit.org/show_bug.cgi?id=103605
144609
144610        Reviewed by Laszlo Gombos.
144611
144612        Update cmake files(.cmake, CMakeLists.txt) with following style rules:
144613        1. Indentation
144614        1.1 Use spaces, not tabs.
144615        1.2 Four spaces as indent.
144616        2. Spacing
144617        2.1 Place one space between control statements and their parentheses.
144618            For eg, if (), else (), elseif (), endif (), foreach (),
144619            endforeach (), while (), endwhile (), break ().
144620        2.2 Do not place spaces between function and macro statements and
144621            their parentheses. For eg, macro(), endmacro(), function(),
144622            endfunction().
144623        2.3 Do not place spaces between a command or function or macro and its
144624            parentheses, or between a parenthesis and its content. For eg,
144625            message("testing") not message( "testing") or message ("testing" )
144626        2.4 No space at line ending.
144627        3. Lowercase when call commands macros and functions. For eg,
144628           add_executable() not ADD_EXECUTABLE(), set() not SET().
144629
144630        * CMakeLists.txt:
144631        * PlatformBlackBerry.cmake:
144632        * PlatformEfl.cmake:
144633        * PlatformWinCE.cmake:
144634        * UseJSC.cmake:
144635        * UseV8.cmake:
144636
1446372012-12-05  Kentaro Hara  <haraken@chromium.org>
144638
144639        [V8] Remove unused property names from V8HiddenPropertyName
144640        https://bugs.webkit.org/show_bug.cgi?id=104194
144641
144642        Reviewed by Adam Barth.
144643
144644        We can remove unused property names from V8HiddenPropertyName.
144645
144646        No tests. No change in behavior.
144647
144648        * bindings/v8/V8HiddenPropertyName.h:
144649        (WebCore):
144650
1446512012-12-05  Greg Billock  <gbillock@google.com>
144652
144653        Add runtime enable for web intents.
144654        https://bugs.webkit.org/show_bug.cgi?id=103669
144655
144656        Reviewed by Adam Barth.
144657
144658        Make web intents Javascript API enabled by a runtime setting.
144659
144660        * Modules/intents/DOMWindowIntents.idl:
144661        * Modules/intents/NavigatorIntents.idl:
144662        * bindings/generic/RuntimeEnabledFeatures.cpp:
144663        (WebCore):
144664        * bindings/generic/RuntimeEnabledFeatures.h:
144665        (RuntimeEnabledFeatures):
144666        (WebCore::RuntimeEnabledFeatures::webkitStartActivityEnabled):
144667        (WebCore::RuntimeEnabledFeatures::webkitIntentEnabled):
144668        (WebCore::RuntimeEnabledFeatures::webKitIntentEnabled):
144669        (WebCore::RuntimeEnabledFeatures::setWebIntentsEnabled):
144670
1446712012-12-05  Scott Violet  <sky@chromium.org>
144672
144673        [chromium] Remove linux theme related files and switch to default
144674        https://bugs.webkit.org/show_bug.cgi?id=103897
144675
144676        Reviewed by Tony Chang.
144677
144678        Linux related theme files are now named Default.
144679
144680        No new tests, code cleanup.
144681
144682        * WebCore.gyp/WebCore.gyp: Update files
144683        * WebCore.gypi: Update files
144684        * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
144685        * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
144686        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
144687        * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
144688        * rendering/RenderThemeChromiumAndroid.cpp:
144689        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet): Linux->Default
144690        * rendering/RenderThemeChromiumAndroid.h: Change superclass
144691        * rendering/RenderThemeChromiumLinux.cpp: Removed.
144692        * rendering/RenderThemeChromiumLinux.h: Removed.
144693
1446942012-12-05  Joshua Bell  <jsbell@chromium.org>
144695
144696        IndexedDB: Allow multiple transactions to interleave request execution
144697        https://bugs.webkit.org/show_bug.cgi?id=97570
144698
144699        Reviewed by Tony Chang.
144700
144701        Implement spec logic for allowing read-only transactions, and read-write transactions
144702        with non-overlapping scopes, to run concurrently. Transactions all still run in the
144703        same thread with tasks triggered via timers, so tasks and the underlying database
144704        operations are interleaved rather than truly parallelized.
144705
144706        Within IDBTransactionCoordinator, rename started->queued, running->started to match
144707        spec terminology and clear up confusion.
144708
144709        Test: storage/indexeddb/transaction-coordination-across-databases.html
144710              storage/indexeddb/transaction-coordination-within-database.html
144711              storage/indexeddb/transaction-readwrite-exclusive.html
144712              storage/indexeddb/transaction-scope-sequencing.html
144713              storage/indexeddb/transaction-starvation.html
144714
144715        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Use IDBTransaction::Mode enum
144716        (WebCore::IDBDatabaseBackendImpl::createTransaction):
144717        * Modules/indexeddb/IDBDatabaseBackendImpl.h: Ditto.
144718        (IDBDatabaseBackendImpl):
144719        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Ditto.
144720        (IDBDatabaseBackendInterface):
144721        * Modules/indexeddb/IDBTransactionBackendImpl.cpp: Convert scope as a HashSet for
144722        fast intersecting.
144723        (WebCore::IDBTransactionBackendImpl::create):
144724        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
144725        * Modules/indexeddb/IDBTransactionBackendImpl.h:
144726        (IDBTransactionBackendImpl):
144727        (WebCore::IDBTransactionBackendImpl::mode):
144728        (WebCore::IDBTransactionBackendImpl::scope):
144729        * Modules/indexeddb/IDBTransactionCoordinator.cpp: Spec logic goes here.
144730        (WebCore::IDBTransactionCoordinator::processStartedTransactions): Extend this
144731        method to test all plausibly runnable transactions.
144732        (WebCore):
144733        (WebCore::IDBTransactionCoordinator::canRunTransaction): Test to see if one
144734        particular transaction can be run.
144735        (WebCore::IDBTransactionCoordinator::doScopesOverlap): Do a quick intersection
144736        test between transaction scopes.
144737        * Modules/indexeddb/IDBTransactionCoordinator.h:
144738        (IDBTransactionCoordinator):
144739
1447402012-12-05  No'am Rosenthal  <noam@webkit.org>
144741
144742        Coordinated Graphics: Enable support for setContentsToBackgroundColor
144743        https://bugs.webkit.org/show_bug.cgi?id=104128
144744
144745        Reviewed by Kenneth Rohde Christiansen.
144746
144747        Enable background color in GraphicsLayerTextureMapper, and paint it using TextureMapper::drawSolidColor.
144748        Once https://bugs.webkit.org/show_bug.cgi?id=103786 is enabled, this would enable Qt/GTK/EFL to directly
144749        composite colors that only have a background color, without having to create a backing store for them.
144750        This would eliminate the memory usage for those layers, reduce the time needed for them to draw into the
144751        backing store and upload the texture, and in the future allow direct compositing of things other than
144752        background colors.
144753
144754        Compositing tests cover this, but are still skipped for ports using coordinated graphics. 
144755        See https://bugs.webkit.org/show_bug.cgi?id=104129.
144756
144757        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
144758        (WebCore::GraphicsLayerTextureMapper::setContentsToBackgroundColor):
144759        (WebCore::GraphicsLayerTextureMapper::backgroundColor):
144760            Maintain a backgroundColor member variable in GraphicsLayerTextureMapper
144761
144762        * platform/graphics/texmap/TextureMapperGL.cpp:
144763        (WebCore::TextureMapperGL::drawSolidColor):
144764            TextureMapperGL::drawSolidColor should allow blending when the solid color has alpha.
144765
144766        * platform/graphics/texmap/TextureMapperLayer.cpp:
144767        (WebCore::TextureMapperLayer::paintSelf):
144768        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
144769        * platform/graphics/texmap/TextureMapperLayer.h:
144770        (State):
144771
1447722012-12-05  Kentaro Hara  <haraken@chromium.org>
144773
144774        Unreviewed, rolling out r136481.
144775        http://trac.webkit.org/changeset/136481
144776        https://bugs.webkit.org/show_bug.cgi?id=103868
144777
144778        it might have regressed dom_perf/CloneNodes (See bug 104177)
144779
144780        * dom/ContainerNodeAlgorithms.h:
144781        (ChildNodeInsertionNotifier):
144782        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
144783        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
144784        (WebCore::ChildNodeInsertionNotifier::notify):
144785
1447862012-12-05  David Grogan  <dgrogan@chromium.org>
144787
144788        IndexedDB: Abort transactions because of leveldb errors part 3
144789        https://bugs.webkit.org/show_bug.cgi?id=103960
144790
144791        Reviewed by Tony Chang.
144792
144793        Transactions are aborted when there are leveldb problems creating
144794        indexes on an object store with existing data or when adding data to an
144795        objectstore that has indexes.
144796
144797        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
144798        (WebCore):
144799        (WebCore::makeIndexWriters):
144800        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
144801        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
144802
1448032012-12-05  Simon Fraser  <simon.fraser@apple.com>
144804
144805        Fix some repaint/paintCounter confusion, and reset it when getting layers out of the layer pool
144806        https://bugs.webkit.org/show_bug.cgi?id=104180
144807
144808        Reviewed by Tim Horton.
144809
144810        Layers retrieved from the LayerPool by TileCache need to have their
144811        repaint counters reset, otherwise the scroll performance logging gets
144812        confused.
144813        
144814        Also, the counter counts paints, not repaints (invalidations), so
144815        rename it accordingly.
144816
144817        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
144818        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea): Whitespace fix.
144819        * platform/graphics/GraphicsLayer.h:
144820        * platform/graphics/ca/mac/TileCache.mm:
144821        (WebCore::TileCache::blankPixelCountForTiles):
144822        (WebCore::TileCache::createTileLayer):
144823        (WebCore::TileCache::drawRepaintCounter):
144824        * platform/graphics/ca/mac/WebTileLayer.h:
144825        * platform/graphics/ca/mac/WebTileLayer.mm:
144826        (-[WebTileLayer resetPaintCount]):
144827        (-[WebTileLayer incrementPaintCount]):
144828        (-[WebTileLayer paintCount]):
144829        (-[WebTileLayer logFilledFreshTile]):
144830
1448312012-12-05  Oliver Hunt  <oliver@apple.com>
144832
144833        Empty parse cache when receiving a low memory warning
144834        https://bugs.webkit.org/show_bug.cgi?id=104161
144835
144836        Reviewed by Filip Pizlo.
144837
144838        Use new discardAllCode() function on the global data, rather than
144839        directly interacting with the heap.
144840
144841        * bindings/js/GCController.cpp:
144842        (WebCore::GCController::discardAllCompiledCode):
144843
1448442012-12-05  Dan Bernstein  <mitz@apple.com>
144845
144846        Text decorations are rotated when text-combine takes effect
144847        https://bugs.webkit.org/show_bug.cgi?id=104172
144848
144849        Reviewed by Dave Hyatt.
144850
144851        Test: fast/text/decorations-with-text-combine.html
144852
144853        * rendering/InlineTextBox.cpp:
144854        (WebCore::InlineTextBox::paint): Applied a rotation to the graphics context when painting
144855        the text decorations for combined text.
144856
1448572012-12-05  Justin Novosad  <junov@google.com>
144858
144859        [skia] Improve performance of GraphicsContext::createCompatibleBuffer by using SkDevice:createCompatibleDevice
144860        https://bugs.webkit.org/show_bug.cgi?id=103896
144861
144862        Reviewed by Stephen White.
144863
144864        Refactored GraphicsContext::createCompatibleBuffer (platform common
144865        code) to use platform-specific implementations provided by ImageBuffer.
144866        There is no change in behavior for non-skia ports. The skia
144867        implementation uses skia'a own createCompatibleDevice implementation,
144868        which offers several performance benefits:
144869        1. For accelerated contexts, the backing store may be allocated from
144870        the scratch texture pool, which minimizes texture allocation and
144871        deallocation overhead.
144872        2. The backing store will not be initially cleared if it is known
144873        in advance that fully opaque contents will be drawn into the buffer.
144874        3. For non-accelerated contexts, if the backing store is flagged as
144875        opaque, faster blitter loop implementations will be used for drawing
144876        the buffer contents into other buffers. (e.g. generated opaque gradient
144877        fills)
144878
144879        No new tests: covered by existing layout tests 
144880
144881        * platform/graphics/Generator.h:
144882        (Generator):
144883        Added hasAlpha method so that it can be used by GeneratorGeneratedImage
144884        * platform/graphics/GeneratorGeneratedImage.cpp:
144885        (WebCore::GeneratorGeneratedImage::drawPattern):
144886        Passing m_generator->hasAlpha() to createCompatibleBuffer in order to
144887        take advantage of optimizations that apply to opaque buffers.
144888        * platform/graphics/Gradient.h:
144889        (Gradient):
144890        Made hasAlpha virtual so that it now overrides Generator::hasAlpha
144891        * platform/graphics/GraphicsContext.cpp:
144892        (WebCore::GraphicsContext::createCompatibleBuffer):
144893        Refactored to use platform-specific implementation
144894        * platform/graphics/GraphicsContext.h:
144895        * platform/graphics/ImageBuffer.cpp:
144896        (WebCore::createCompatibleBuffer):
144897        Non-skia implementation. Mimics old
144898        GraphicsContext::createCompatibleBuffer
144899        * platform/graphics/ImageBuffer.h:
144900        (ImageBuffer):
144901        New skia-specific constructor
144902        * platform/graphics/skia/ImageBufferSkia.cpp:
144903        (WebCore::ImageBuffer::createCompatibleBuffer):
144904        (WebCore::ImageBuffer::ImageBuffer):
144905        * platform/graphics/skia/PlatformContextSkia.cpp:
144906        (WebCore::PlatformContextSkia::createCompatibleDevice):
144907        (WebCore):
144908        * platform/graphics/skia/PlatformContextSkia.h:
144909        (PlatformContextSkia):
144910
1449112012-12-05  Alexis Menard  <alexis@webkit.org>
144912
144913        REGRESSION (r136683): css3/calc/background-position-parsing.html failing on EFL Linux 64-bit Debug WK2
144914        https://bugs.webkit.org/show_bug.cgi?id=104131
144915
144916        Reviewed by Antti Koivisto.
144917
144918        css3/calc/background-position-parsing.html assert in debug because we
144919        call CSSParser::validUnit multiple times in a row. The problem was with
144920        validUnit which check calc() values and save the result inside
144921        m_parsedCalculation for later usage. validUnit expects you to
144922        use m_parsedCalculation therefore calling validUnit again with
144923        m_parsedCalculation being set asserts. As parseFillBackgroundPosition
144924        just want to check wether the current value is maybe valid for
144925        background-position we can just relax the check to allow either the
144926        valid keywords or any other units (we will anyway filter the incorrect
144927        values later in the parsing). The most important check at this point
144928        for the shorthand is the validity of the keyword.
144929
144930        No new tests : the assert was covered by css3/calc/background-position-parsing.html.
144931
144932        * css/CSSParser.cpp:
144933        (WebCore::CSSParser::isPotentialPositionValue):
144934        (WebCore::CSSParser::parseFillBackgroundPosition):
144935        * css/CSSParser.h:
144936
1449372012-12-05  Stephen White  <senorblanco@chromium.org>
144938
144939        Unreviewed, rolling out r136735.
144940        http://trac.webkit.org/changeset/136735
144941        https://bugs.webkit.org/show_bug.cgi?id=102699
144942
144943        Broke Chrome/Win build.
144944
144945        * platform/chromium/PlatformSupport.h:
144946        (PlatformSupport):
144947        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
144948        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
144949        (WebCore::ScrollbarThemeChromiumWin::paintButton):
144950        (WebCore::ScrollbarThemeChromiumWin::paintThumb):
144951        * rendering/RenderThemeChromiumWin.cpp:
144952        (WebCore):
144953        (WebCore::RenderThemeChromiumWin::paintButton):
144954        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
144955        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
144956        (WebCore::RenderThemeChromiumWin::paintMenuList):
144957        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
144958        (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
144959        (WebCore::RenderThemeChromiumWin::paintProgressBar):
144960
1449612012-12-05  Jun Jiang  <jun.a.jiang@intel.com>
144962
144963        WebGL: use pointer to the source data for Image directly in texImage2D and texSubImage2D to avoid memory copy if no conversion is needed
144964        https://bugs.webkit.org/show_bug.cgi?id=103885
144965
144966        Reviewed by Kenneth Russell.
144967
144968        In texImage2D() and texSubImage2D(), there is a redundant memory copy from Image data to the intermediate vector when no conversion is needed. If the Image resource can be locked properly, it is better to use the pointer to the image source directly and hence avoid the memory copy and improve the performance. 
144969
144970        Already covered by current tests.
144971
144972        * html/canvas/WebGLRenderingContext.cpp:
144973        (WebCore):
144974        (WebCore::WebGLRenderingContext::texImage2DBase):
144975        (WebCore::WebGLRenderingContext::texImage2DImpl):
144976        (WebCore::WebGLRenderingContext::texSubImage2DBase):
144977        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
144978        * html/canvas/WebGLRenderingContext.h:
144979        (WebGLRenderingContext):
144980        * platform/graphics/GraphicsContext3D.h:
144981        (ImageExtractor):
144982
1449832012-12-05  Elliott Sprehn  <esprehn@chromium.org>
144984
144985        Add infrastructure for :before and :after in DOM
144986        https://bugs.webkit.org/show_bug.cgi?id=103705
144987
144988        Reviewed by Eric Seidel.
144989
144990        Add all infrastructure for reimplementing generated content :before and
144991        :after as DOM Elements. Now ElementRareData has two pointers to PseudoElements
144992        for the generated content and Node has methods for traversing the tree
144993        including generated content.
144994
144995        This will allow the generated content to be treated as real nodes instead
144996        of anonymous and take part in the usual recalcStyle and attach flow which
144997        fixes many bugs and vastly simplifies the ifecycle of generated content.
144998
144999        Instead of attempting to land both the infrastructure and enable it at
145000        the same time which has proven problematic due to how drastic this change
145001        is, this patch contains only the support code so a much smaller future
145002        patch can be used to switch it on.
145003
145004        No new behavior, this is just the infrastructure.
145005
145006        * CMakeLists.txt:
145007        * GNUmakefile.list.am:
145008        * Target.pri:
145009        * WebCore.gypi:
145010        * WebCore.vcproj/WebCore.vcproj:
145011        * WebCore.xcodeproj/project.pbxproj:
145012        * dom/DOMAllInOne.cpp:
145013        * dom/Element.cpp:
145014        (WebCore::Element::~Element):
145015        (WebCore::Element::detach):
145016        (WebCore::Element::updatePseudoElement):
145017        (WebCore::Element::createPseudoElementIfNeeded):
145018        (WebCore::Element::beforePseudoElement):
145019        (WebCore::Element::afterPseudoElement):
145020        * dom/Element.h:
145021        (Element):
145022        * dom/ElementRareData.h:
145023        (ElementRareData):
145024        (WebCore::ElementRareData::ElementRareData):
145025        (WebCore::ElementRareData::~ElementRareData):
145026        (WebCore::ElementRareData::setPseudoElement):
145027        (WebCore::ElementRareData::pseudoElement):
145028        (WebCore::ElementRareData::releasePseudoElement):
145029        * dom/Node.cpp:
145030        (WebCore::Node::pseudoAwarePreviousSibling):
145031        (WebCore::Node::pseudoAwareNextSibling):
145032        (WebCore::Node::rendererIsEditable):
145033        (WebCore::checkAcceptChild):
145034        * dom/Node.h:
145035        (Node):
145036        (WebCore::Node::isPseudoElement):
145037        (WebCore::Node::isBeforePseudoElement):
145038        (WebCore::Node::isAfterPseudoElement):
145039        (WebCore::Node::pseudoId):
145040        (WebCore::Node::customPseudoId):
145041        * dom/NodeRenderingContext.cpp:
145042        (WebCore::NodeRenderingContext::nextRenderer):
145043        (WebCore::NodeRenderingContext::previousRenderer):
145044        * dom/Position.cpp:
145045        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
145046        * dom/PseudoElement.cpp: Added.
145047        (WebCore::pseudoElementTagName):
145048        (WebCore::PseudoElement::PseudoElement):
145049        (WebCore::PseudoElement::customStyleForRenderer):
145050        (WebCore::PseudoElement::attach):
145051        (WebCore::PseudoElement::rendererIsNeeded):
145052        (WebCore::PseudoElement::updateChildStyle):
145053        (WebCore::PseudoElement::didRecalcStyle):
145054        * dom/PseudoElement.h: Added.
145055        (PseudoElement):
145056        (WebCore::PseudoElement::create):
145057        (WebCore::pseudoElementIsNeeded):
145058        * editing/visible_units.cpp:
145059        (WebCore::logicallyPreviousBox):
145060        (WebCore::logicallyNextBox):
145061        (WebCore::startPositionForLine):
145062        (WebCore::endPositionForLine):
145063        * page/animation/AnimationController.cpp:
145064        (WebCore::AnimationController::updateAnimations):
145065        * rendering/HitTestResult.cpp:
145066        (WebCore::HitTestResult::setInnerNode):
145067        (WebCore::HitTestResult::setInnerNonSharedNode):
145068        * rendering/RenderBlock.cpp:
145069        (WebCore::RenderBlock::isSelectionRoot):
145070        (WebCore::RenderBlock::renderName):
145071        * rendering/RenderCounter.cpp:
145072        (WebCore::RenderCounter::originalText):
145073        * rendering/RenderDeprecatedFlexibleBox.cpp:
145074        (WebCore::RenderDeprecatedFlexibleBox::renderName):
145075        * rendering/RenderInline.cpp:
145076        (WebCore::RenderInline::renderName):
145077        * rendering/RenderMultiColumnBlock.cpp:
145078        (WebCore::RenderMultiColumnBlock::renderName):
145079        * rendering/RenderObject.cpp:
145080        (WebCore::RenderObject::createObject):
145081        (WebCore::RenderObject::setPseudoStyle):
145082        (WebCore::RenderObject::createVisiblePosition):
145083        * rendering/RenderObject.h:
145084        (WebCore::RenderObject::isPseudoElement):
145085        (RenderObject):
145086        (WebCore::RenderObject::generatingNode):
145087        * rendering/RenderTableCell.h:
145088        (WebCore::RenderTableCell::renderName):
145089        * rendering/RenderTableRow.h:
145090        (WebCore::RenderTableRow::renderName):
145091        * rendering/RenderTableSection.h:
145092        (WebCore::RenderTableSection::renderName):
145093        * rendering/RenderTreeAsText.cpp:
145094        (WebCore::RenderTreeAsText::writeRenderObject):
145095        * rendering/style/ContentData.cpp:
145096        (WebCore::ImageContentData::createRenderer):
145097        (WebCore::TextContentData::createRenderer):
145098        (WebCore::CounterContentData::createRenderer):
145099        (WebCore::QuoteContentData::createRenderer):
145100
1451012012-12-05  Justin Novosad  <junov@google.com>
145102
145103        Use of uninitialized variable in WebCore::RenderBox::paintFillLayers
145104        https://bugs.webkit.org/show_bug.cgi?id=104154
145105
145106        Reviewed by Stephen White.
145107
145108        Method FillLayer::clipOccludesNextLayers performs an internal
145109        initialization when called on the first layer of a list of layers.
145110        Without this initialization, calls to clipOccludesNextLayers on
145111        subsequent layers will use uninitialized data.  In some cases, the
145112        call to clipOccludesNextLayers was being short-circuited in
145113        RenderBox::paintFillLayers. 
145114        Fix: Predicate was permuted to ensure that clipOccludesNextLayers
145115        is never short-circuited.
145116        
145117        Test: fast/backgrounds/size/contain-and-cover-zoomed.html
145118        Running with valgrind reveals the error.
145119
145120        * rendering/RenderBox.cpp:
145121        (WebCore::RenderBox::paintFillLayers):
145122
1451232012-12-05  Elliott Sprehn  <esprehn@gmail.com>
145124
145125        Encapsulate ElementRareData for possible future sharing
145126        https://bugs.webkit.org/show_bug.cgi?id=103948
145127
145128        Reviewed by Eric Seidel.
145129
145130        Encapsulate ElementRareData and make all access go through getters and
145131        setters. This is already true for NodeRareData, but ElementRareData
145132        had many places where people directly access it.
145133
145134        This the first step in possible future sharing of ElementRareData
145135        instances across nodes. All nodes in a shadow tree have rare data to
145136        store the TreeScope, but in most cases all they have is the TreeScope!
145137        Instead of making every node in a shadow subtree have rare data
145138        and use lots of memory we could just share a single instance of rare data
145139        and only allocate a unique one on modification. Encapsulation lets us
145140        assert about mutations on shared instances.
145141
145142        * dom/Element.cpp:
145143        (WebCore::Element::~Element):
145144        (WebCore::Element::attributes):
145145        (WebCore::Element::shadow):
145146        (WebCore::Element::ensureShadow):
145147        (WebCore::Element::minimumSizeForResizing):
145148        (WebCore::Element::setMinimumSizeForResizing):
145149        (WebCore::Element::computedStyle):
145150        (WebCore::Element::classList):
145151        (WebCore::Element::optionalClassList):
145152        (WebCore::Element::dataset):
145153        (WebCore::Element::hasNamedNodeMap):
145154        (WebCore::Element::savedLayerScrollOffset):
145155        (WebCore::Element::setSavedLayerScrollOffset):
145156        * dom/ElementRareData.cpp:
145157        (WebCore::ElementRareData::reportMemoryUsage):
145158        * dom/ElementRareData.h:
145159        (WebCore::ElementRareData::needsFocusAppearanceUpdateSoonAfterAttach):
145160        (WebCore::ElementRareData::setNeedsFocusAppearanceUpdateSoonAfterAttach):
145161        (ElementRareData):
145162        (WebCore::ElementRareData::styleAffectedByEmpty):
145163        (WebCore::ElementRareData::setStyleAffectedByEmpty):
145164        (WebCore::ElementRareData::isInCanvasSubtree):
145165        (WebCore::ElementRareData::setIsInCanvasSubtree):
145166        (WebCore::ElementRareData::containsFullScreenElement):
145167        (WebCore::ElementRareData::setContainsFullScreenElement):
145168        (WebCore::ElementRareData::isInTopLayer):
145169        (WebCore::ElementRareData::setIsInTopLayer):
145170        (WebCore::ElementRareData::childrenAffectedByHover):
145171        (WebCore::ElementRareData::setChildrenAffectedByHover):
145172        (WebCore::ElementRareData::childrenAffectedByActive):
145173        (WebCore::ElementRareData::setChildrenAffectedByActive):
145174        (WebCore::ElementRareData::childrenAffectedByDrag):
145175        (WebCore::ElementRareData::setChildrenAffectedByDrag):
145176        (WebCore::ElementRareData::childrenAffectedByFirstChildRules):
145177        (WebCore::ElementRareData::setChildrenAffectedByFirstChildRules):
145178        (WebCore::ElementRareData::childrenAffectedByLastChildRules):
145179        (WebCore::ElementRareData::setChildrenAffectedByLastChildRules):
145180        (WebCore::ElementRareData::childrenAffectedByDirectAdjacentRules):
145181        (WebCore::ElementRareData::setChildrenAffectedByDirectAdjacentRules):
145182        (WebCore::ElementRareData::childrenAffectedByForwardPositionalRules):
145183        (WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules):
145184        (WebCore::ElementRareData::childrenAffectedByBackwardPositionalRules):
145185        (WebCore::ElementRareData::setChildrenAffectedByBackwardPositionalRules):
145186        (WebCore::ElementRareData::childIndex):
145187        (WebCore::ElementRareData::setChildIndex):
145188        (WebCore::ElementRareData::shadow):
145189        (WebCore::ElementRareData::setShadow):
145190        (WebCore::ElementRareData::attributeMap):
145191        (WebCore::ElementRareData::setAttributeMap):
145192        (WebCore::ElementRareData::computedStyle):
145193        (WebCore::ElementRareData::setComputedStyle):
145194        (WebCore::ElementRareData::classList):
145195        (WebCore::ElementRareData::setClassList):
145196        (WebCore::ElementRareData::dataset):
145197        (WebCore::ElementRareData::setDataset):
145198        (WebCore::ElementRareData::minimumSizeForResizing):
145199        (WebCore::ElementRareData::setMinimumSizeForResizing):
145200        (WebCore::ElementRareData::savedLayerScrollOffset):
145201        (WebCore::ElementRareData::setSavedLayerScrollOffset):
145202        (WebCore::ElementRareData::resetComputedStyle):
145203        * dom/NodeRareData.h:
145204        (NodeRareData):
145205
1452062012-12-05  Mark Pilgrim  <pilgrim@chromium.org>
145207
145208        [Chromium][Win] Remove theme-related functions from PlatformSupport
145209        https://bugs.webkit.org/show_bug.cgi?id=102699
145210
145211        Reviewed by Adam Barth.
145212
145213        Call theme engine directly instead of going through
145214        PlatformSupport. Part of a refactoring series. See tracking bug 82948.
145215
145216        * platform/chromium/PlatformSupport.h:
145217        (PlatformSupport):
145218        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
145219        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
145220        (WebCore::ScrollbarThemeChromiumWin::paintButton):
145221        * rendering/RenderThemeChromiumWin.cpp:
145222        (WebCore):
145223        (WebCore::RenderThemeChromiumWin::paintButton):
145224        (WebCore::RenderThemeChromiumWin::paintSliderTrack):
145225        (WebCore::RenderThemeChromiumWin::paintSliderThumb):
145226        (WebCore::RenderThemeChromiumWin::paintMenuList):
145227        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
145228        (WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
145229        (WebCore::RenderThemeChromiumWin::paintProgressBar):
145230
1452312012-12-05  Stephen White  <senorblanco@chromium.org>
145232
145233        Unreviewed, rolling out r136609.
145234        http://trac.webkit.org/changeset/136609
145235        https://bugs.webkit.org/show_bug.cgi?id=103793
145236
145237        Breaking Chrome/Mac Debug builds.
145238
145239        * html/canvas/WebGLRenderingContext.cpp:
145240        (WebCore):
145241        (WebCore::WebGLRenderingContext::create):
145242        * platform/chromium/support/GraphicsContext3DChromium.cpp:
145243        (WebCore::GraphicsContext3D::create):
145244        * platform/graphics/GraphicsContext3D.h:
145245        (Attributes):
145246
1452472012-12-05  Bear Travis  <betravis@adobe.com>
145248
145249        [CSS Exclusions] Enable shape-inside for multiple-segment polygons
145250        https://bugs.webkit.org/show_bug.cgi?id=91878
145251
145252        Reviewed by David Hyatt.
145253
145254        Patch adding support for multiple-segment polygons for shape-insides from
145255        the CSS Exclusions specification. The layout code has been modified to first
145256        support dividing text into multiple segments per line, and then to lay out
145257        multiple segments per line box.
145258
145259        Tests:  fast/exclusions/shape-inside/shape-inside-multiple-segments-001.html
145260                fast/exclusions/shape-inside/shape-inside-multiple-segments-002.html
145261                fast/exclusions/shape-inside/shape-inside-multiple-segments-003.html
145262                fast/exclusions/shape-inside/shape-inside-multiple-segments-004.html
145263
145264        * platform/text/BidiResolver.h:
145265        (WebCore::BidiCharacterRun::BidiCharacterRun):
145266        (BidiCharacterRun): Added a 'startsSegment' bitfield to track whether a
145267        run begins a new segment. The field is here, rather than in BidiRun, in
145268        order to save space. See Bug 100173.
145269        * rendering/BidiRun.h:
145270        (WebCore::BidiRun::BidiRun):
145271        (BidiRun): Set the initial value for 'startsSegment'.
145272        * rendering/ExclusionShapeInsideInfo.cpp:
145273        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine): Clear the
145274        segment ranges when computing segments for a new line.
145275        * rendering/ExclusionShapeInsideInfo.h:
145276        (LineSegmentRange): Added a new type to track segment offsets.
145277        (WebCore::ExclusionShapeInsideInfo::segmentRanges): Added a getter for
145278        the line segment ranges vector.
145279        * rendering/InlineFlowBox.cpp:
145280        (WebCore::InlineFlowBox::placeBoxesInInlineDirection): Modified to call
145281        a refactored box placement algorithm that takes a beginning and end position.
145282        (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection): Similar to the
145283        placeBoxes method, but takes an end position that may occur before the end
145284        of the line.
145285        * rendering/RenderBlock.cpp:
145286        (WebCore::RenderBlock::exclusionShapeInsideInfo): Factored out calls
145287        to ExclusionShapeInsideInfo to the .cpp file, as ExclusionShapeInsideInfo
145288        requires InlineIterator.h, which would create a circular dependency in
145289        ExclusionShapeInsideInfo.h.
145290        * rendering/RenderBlock.h:
145291        (WebCore::RenderBlock::exclusionShapeInsideInfo): Modified to call
145292        exclusionShapeInsideInfo to be non-inline.
145293        * rendering/RenderBlockLineLayout.cpp:
145294        (WebCore::LineWidth::LineWidth): LineWidth now uses the number of computed
145295        segmentRanges to determine which LineSegment to use when calculating width.
145296        (WebCore::RenderBlock::createLineBoxes): Now takes a boolean to determine
145297        whether or not it can share the same parentBox as its siblings (segments
145298        must be able to position themselves separately in the RootInlineBox).
145299        (WebCore::RenderBlock::constructLine):
145300        (WebCore::computeExpansionForJustifiedText): Do include runs that start new
145301        segments when calculating justification for the current segment.
145302        (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Modified to
145303        use the computeInlineDirectionPositionsForSegment, which can position
145304        multiple segments of text per line.
145305        (WebCore::RenderBlock::computeInlineDirectionPositionsForSegment): Positions
145306        the given segment of text and calculates its layout offsets.
145307        (WebCore::constructBidiRuns): Modified some variables from 'endOfLine' to 'endOfSegment'.
145308        (WebCore::constructBidiRunsForLine): Construct the bidi runs for each segment in
145309        the given line.
145310        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Call constructBidiRunsForLine.
145311        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Moved the line breaking code
145312        to break segments, with nextLineBreak iterating over segment breaks for the entire line.
145313        (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Calculates how much text a
145314        segment can hold. This code was originally in nextLineBreak.
145315
1453162012-12-05  Stephen White  <senorblanco@chromium.org>
145317
145318        Unreviewed, rolling out r136630.
145319        http://trac.webkit.org/changeset/136630
145320        https://bugs.webkit.org/show_bug.cgi?id=103555
145321
145322        It's breaking Chrome/Win Debug builds.
145323
145324        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
145325        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
145326        * platform/graphics/chromium/LazyDecodingPixelRef.h:
145327        (LazyDecodingPixelRef):
145328
1453292012-12-05  Andreas Kling  <akling@apple.com>
145330
145331        REGRESSION(r136615): Incorrect style sharing in view-source documents.
145332        <http://webkit.org/b/104089>
145333
145334        Reviewed by Antti Koivisto.
145335
145336        Make sure we collect feature data about the default view-source style sheet before evaluating
145337        style sharing candidates, otherwise it won't know which class selectors to care about.
145338
145339        * css/StyleResolver.cpp:
145340        (WebCore::StyleResolver::collectFeatures):
145341
1453422012-12-05  Mike West  <mkwst@chromium.org>
145343
145344        Stop generating call stacks inside ContentSecurityPolicy
145345        https://bugs.webkit.org/show_bug.cgi?id=104126
145346
145347        Reviewed by Yury Semikhatsky.
145348
145349        Now that bug 100650 has made it possible for ConsoleMessage to generate
145350        call stacks, we can remove the stack being generated in
145351        ContentSecurityPolicy::logToConsole. We need the ScriptState*, however,
145352        so this patch makes it possible to pipe it through addConsoleMessage
145353        down into the guts of the inspector.
145354
145355        This patch also removes an unused addConsoleMessage variant from
145356        ScriptExecutionContext, which should have been removed from the patch to
145357        100650 before landing it. My bad.
145358
145359        * dom/Document.cpp:
145360        (WebCore::Document::addMessage):
145361        * dom/Document.h:
145362        (Document):
145363            Accept a ScriptState* parameter in Document::addMessage, and pass it
145364            through to Console::addMessage.
145365        * dom/ScriptExecutionContext.cpp:
145366        (WebCore::ScriptExecutionContext::addConsoleMessage):
145367        * dom/ScriptExecutionContext.h:
145368        (ScriptExecutionContext):
145369            Accept a ScriptState* parameter in Document::addMessage, and pass it
145370            through to ScriptExecutionContext::addMessage. Also, remove an unused
145371            variant of ScriptExecutionContext::addConsoleMessage that accepted
145372            only a call stack in addition to the basics.
145373        * inspector/ConsoleMessage.cpp:
145374        (WebCore::ConsoleMessage::ConsoleMessage):
145375        * inspector/ConsoleMessage.h:
145376        (ConsoleMessage):
145377            Accept a ScriptState* and pass it into autogenerateMetadata for
145378            call stack generational goodness.
145379        * inspector/InspectorConsoleAgent.cpp:
145380        (WebCore::InspectorConsoleAgent::addMessageToConsole):
145381            Accept a ScriptState* and pass it into addConsoleMessage.
145382        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
145383        (WebCore::InspectorConsoleAgent::didReceiveResponse):
145384        (WebCore::InspectorConsoleAgent::didFailLoading):
145385            Add an empty ScriptState parameter to the addConsoleMessage call.
145386        * inspector/InspectorConsoleAgent.h:
145387        (InspectorConsoleAgent):
145388        * inspector/InspectorConsoleInstrumentation.h:
145389        (WebCore::InspectorInstrumentation::addMessageToConsole):
145390        * inspector/InspectorInstrumentation.cpp:
145391        (WebCore):
145392        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
145393        * inspector/InspectorInstrumentation.h:
145394        (InspectorInstrumentation):
145395        * page/Console.cpp:
145396        (WebCore::Console::addMessage):
145397        * page/Console.h:
145398        (Console):
145399            Pipe ScriptState through the intermediate classes.
145400        * page/ContentSecurityPolicy.cpp:
145401        (WebCore::ContentSecurityPolicy::logToConsole):
145402            Drop call stack generation, and pass ScriptState* into addConsoleMessage.
145403        * workers/WorkerContext.cpp:
145404        (WebCore::WorkerContext::addConsoleMessage):
145405        (WebCore::WorkerContext::addMessage):
145406        (WebCore::WorkerContext::addMessageToWorkerConsole):
145407        * workers/WorkerContext.h:
145408        (WorkerContext):
145409            Accept ScriptState* and pass it into addMessageToConsole.
145410
1454112012-12-05  Rafael Weinstein  <rafaelw@chromium.org>
145412
145413        DOMImplementation.createDocument should call appendChild rather than parserAppendChild to add docType and documentElement
145414        https://bugs.webkit.org/show_bug.cgi?id=104040
145415
145416        Reviewed by Ojan Vafai.
145417
145418        createDocument now calls appendChild.
145419
145420        No new tests (no observable changes).
145421
145422        * dom/ContainerNode.cpp:
145423        (WebCore::ContainerNode::parserAppendChild):
145424        * dom/DOMImplementation.cpp:
145425        (WebCore::DOMImplementation::createDocument):
145426
1454272012-12-05  Alec Flett  <alecflett@chromium.org>
145428
145429        IndexedDB: Stub out transaction-backend methods
145430        https://bugs.webkit.org/show_bug.cgi?id=103921
145431
145432        Reviewed by Dimitri Glazkov.
145433
145434        In preparation for a refactoring. Legacy methods 
145435        will be removed in https://bugs.webkit.org/show_bug.cgi?id=103923.
145436
145437        No new tests, just adding unused methods for refactoring.
145438
145439        * Modules/indexeddb/IDBCallbacks.h:
145440        (WebCore::IDBCallbacks::onUpgradeNeeded):
145441        * Modules/indexeddb/IDBDatabase.cpp:
145442        (WebCore::IDBDatabase::onAbort):
145443        (WebCore):
145444        (WebCore::IDBDatabase::onComplete):
145445        * Modules/indexeddb/IDBDatabase.h:
145446        (IDBDatabase):
145447        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
145448        (WebCore::IDBDatabaseBackendImpl::createTransaction):
145449        (WebCore):
145450        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
145451        (IDBDatabaseBackendImpl):
145452        (WebCore::IDBDatabaseBackendImpl::commit):
145453        (WebCore::IDBDatabaseBackendImpl::abort):
145454        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
145455        (IDBDatabaseBackendInterface):
145456        * Modules/indexeddb/IDBDatabaseCallbacks.h:
145457        (IDBDatabaseCallbacks):
145458        * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
145459        (WebCore::IDBDatabaseCallbacksImpl::onAbort):
145460        (WebCore):
145461        (WebCore::IDBDatabaseCallbacksImpl::onComplete):
145462        * Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
145463        (IDBDatabaseCallbacksImpl):
145464        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
145465        (WebCore::IDBFactoryBackendImpl::open):
145466        * Modules/indexeddb/IDBFactoryBackendImpl.h:
145467        (WebCore::IDBFactoryBackendImpl::open):
145468        (IDBFactoryBackendImpl):
145469        * Modules/indexeddb/IDBFactoryBackendInterface.h:
145470        (IDBFactoryBackendInterface):
145471        * Modules/indexeddb/IDBOpenDBRequest.cpp:
145472        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
145473        (WebCore):
145474        * Modules/indexeddb/IDBOpenDBRequest.h:
145475        (IDBOpenDBRequest):
145476        * Modules/indexeddb/IDBTransactionBackendInterface.h:
145477        (WebCore):
145478        * Modules/indexeddb/IDBTransactionCoordinator.h:
145479
1454802012-11-27  Alec Flett  <alecflett@chromium.org>
145481
145482        IndexedDB: remove IDBDatabaseBackendInterface::transaction()
145483        https://bugs.webkit.org/show_bug.cgi?id=102733
145484
145485        Reviewed by Darin Fisher.
145486
145487        Part 3 of a refactor, remove the old transaction() method.
145488
145489        No new tests as this is just post-refactor cleanup.
145490
145491        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
145492        (IDBDatabaseBackendInterface):
145493
1454942012-12-05  Robert Hogan  <robert@webkit.org>
145495
145496        REGRESSION(r126683): Table cell are getting borders when the style doesn't mention any
145497        https://bugs.webkit.org/show_bug.cgi?id=101677
145498
145499        Reviewed by Julien Chaffraix.
145500
145501        The bordercolor attribute on a cell or row has no effect on FF and Opera, even when the parent
145502        table has a border attribute. IE displays the bordercolor of the cell and row in all cases except when
145503        the parent has no border attribute. WebKit's old behaviour (before r126683) was to display the
145504        bordercolor of the row but not the cells (I don't think this behaviour was particularly deliberate). No
145505        browser displays the bordercolor for a col or tbody element.
145506
145507        Bring WebKit into line with Opera and FF by ignoring the bordercolor attribute on cells, rows, cols, rowgroups, and
145508        colgroups in all cases, regardless of whether the table has a border or not.
145509
145510        Test: fast/table/td-bordercolor-attribute.html
145511
145512        * html/HTMLTablePartElement.cpp:
145513        (WebCore::HTMLTablePartElement::isPresentationAttribute):
145514        (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
145515
1455162012-12-05  Krzysztof Czech  <k.czech@samsung.com>
145517
145518        [EFL][WK2] Introduce WebKit-EFL to Assistive Technologies
145519        https://bugs.webkit.org/show_bug.cgi?id=104000
145520
145521        Reviewed by Chris Fleizach.
145522
145523        Introduce Webkit-EFL so that Assistive Technologies can distinguish it.
145524
145525        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
145526        (webkitAccessibleGetAttributes):
145527
1455282012-12-05  Carlos Garcia Campos  <cgarcia@igalia.com>
145529
145530        Remove unneeded WTF prefix from WTF types in RenderFlexibleBox
145531        https://bugs.webkit.org/show_bug.cgi?id=104109
145532
145533        Reviewed by Eric Seidel.
145534
145535        WTF prefix is not needed because WTF headers have a using
145536        statement at the end of the file.
145537
145538        * rendering/RenderFlexibleBox.cpp:
145539        (WebCore::RenderFlexibleBox::layoutBlock):
145540        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
145541        (WebCore::RenderFlexibleBox::layoutFlexItems):
145542        (WebCore::RenderFlexibleBox::freezeViolations):
145543        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
145544        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
145545        (WebCore::RenderFlexibleBox::alignFlexLines):
145546        (WebCore::RenderFlexibleBox::alignChildren):
145547        (WebCore::RenderFlexibleBox::flipForWrapReverse):
145548        * rendering/RenderFlexibleBox.h:
145549
1455502012-12-05  Andras Becsi  <andras.becsi@digia.com>
145551
145552        Fix compilation for Qt5.0.0 stable branch.
145553        https://bugs.webkit.org/show_bug.cgi?id=103870
145554
145555        Reviewed by Simon Hausmann.
145556
145557        This is a squashed patch consisting of patches by multiple authors.
145558
145559        Fixed use of to-be-removed compatibility functions in QWindow
145560        Patch by Samuel Rødal <samuel.rodal@digia.com>
145561
145562        Build fix. No new tests needed.
145563
145564        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
145565        (FullScreenVideoWindow::FullScreenVideoWindow):
145566        (PlatformVideoWindow::PlatformVideoWindow):
145567
1455682012-12-05  John J. Barton  <johnjbarton@chromium.org>
145569
145570        Web Inspector: more robust treeoutline.findTreeElement
145571        https://bugs.webkit.org/show_bug.cgi?id=103911
145572
145573        Reviewed by Vsevolod Vlasov.
145574
145575        Non-recursive algorithm to populate the treeoutline given an DOMNode
145576        as representedObject. Walk up the parents from the desired object
145577        until we find one that is currently represented in the treeoutline 
145578        cache. Then walk down, putting children in the cache until we get 
145579        to the desired object again. 
145580        With Pavel Feldeman <pfeldman@chromium.org>
145581
145582        No new tests, refactoring, no new function
145583
145584       * inspector/front-end/treeoutline.js:
145585        (TreeOutline.prototype.findTreeElement):
145586
1455872012-12-05  Alexander Shalamov  <alexander.shalamov@intel.com>
145588
145589        [EFL][GTK] List value response headers are not handled in RespourceResponse (libsoup specific)
145590        https://bugs.webkit.org/show_bug.cgi?id=95181
145591
145592        Reviewed by Martin Robinson.
145593
145594        When list-value response headers are received, they are handled as single
145595        value headers. This patch fixes incorrect behavior. New test was added to
145596        verify list-value header handling.
145597
145598        Test: http/tests/xmlhttprequest/xmlhttprequest-test-custom-headers.html
145599
145600        * platform/network/soup/ResourceResponseSoup.cpp:
145601        (WebCore::ResourceResponse::updateFromSoupMessage):
145602
1456032012-12-05  Pavel Feldman  <pfeldman@chromium.org>
145604
145605        Web Inspector: Don't include error message text in the editor buffer.
145606        https://bugs.webkit.org/show_bug.cgi?id=103932
145607
145608        Reviewed by Alexander Pavlov.
145609
145610        Skip entire decoration content when collecting dirty regions.
145611        
145612        * inspector/front-end/DefaultTextEditor.js:
145613        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
145614
1456152012-12-05  Joshua Bell  <jsbell@chromium.org>
145616
145617        IndexedDB: Replace use of ScriptExecutionContext::Task (Part 2)
145618        https://bugs.webkit.org/show_bug.cgi?id=103931
145619
145620        Reviewed by Tony Chang.
145621
145622        Actually drop use of ScriptExecutionContext::Task and remove incorrect usage of
145623        ThreadSafeRefCounted<>. Define a new IDBTransactionBackendImpl::Operation base class
145624        for operations; storage of per-operation data becomes explicit.
145625
145626        No new tests - just a refactor.
145627
145628        * Modules/indexeddb/IDBCallbacks.h: Remove bogus "ThreadSafe"
145629        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
145630        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::create):
145631        (IDBCursorBackendImpl::CursorIterationOperation):
145632        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::CursorIterationOperation):
145633        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::create):
145634        (IDBCursorBackendImpl::CursorAdvanceOperation):
145635        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::CursorAdvanceOperation):
145636        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::create):
145637        (IDBCursorBackendImpl::CursorPrefetchIterationOperation):
145638        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::CursorPrefetchIterationOperation):
145639        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::perform):
145640        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::perform):
145641        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
145642        * Modules/indexeddb/IDBCursorBackendInterface.h: Remove bogus "ThreadSafe"
145643        * Modules/indexeddb/IDBDatabase.cpp:
145644        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
145645        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::create):
145646        (IDBDatabaseBackendImpl::CreateObjectStoreOperation):
145647        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::CreateObjectStoreOperation):
145648        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::create):
145649        (IDBDatabaseBackendImpl::DeleteObjectStoreOperation):
145650        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
145651        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
145652        (IDBDatabaseBackendImpl::VersionChangeOperation):
145653        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
145654        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::create):
145655        (IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation):
145656        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
145657        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::create):
145658        (IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation):
145659        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
145660        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
145661        (IDBDatabaseBackendImpl::VersionChangeAbortOperation):
145662        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
145663        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
145664        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
145665        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
145666        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
145667        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
145668        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
145669        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::perform):
145670        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::perform):
145671        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
145672        * Modules/indexeddb/IDBDatabaseBackendInterface.h: Remove bogus "ThreadSafe"
145673        * Modules/indexeddb/IDBDatabaseCallbacks.h: Remove bogus "ThreadSafe"
145674        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
145675        * Modules/indexeddb/IDBFactoryBackendInterface.h: Remove bogus "ThreadSafe"
145676        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
145677        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
145678        (IDBIndexBackendImpl::OpenIndexCursorOperation):
145679        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::OpenIndexCursorOperation):
145680        (WebCore::IDBIndexBackendImpl::IndexCountOperation::create):
145681        (IDBIndexBackendImpl::IndexCountOperation):
145682        (WebCore::IDBIndexBackendImpl::IndexCountOperation::IndexCountOperation):
145683        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::create):
145684        (IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation):
145685        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::IndexReferencedValueRetrievalOperation):
145686        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::create):
145687        (IDBIndexBackendImpl::IndexValueRetrievalOperation):
145688        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::IndexValueRetrievalOperation):
145689        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
145690        (WebCore::IDBIndexBackendImpl::openCursor):
145691        (WebCore::IDBIndexBackendImpl::openKeyCursor):
145692        (WebCore::IDBIndexBackendImpl::IndexCountOperation::perform):
145693        (WebCore::IDBIndexBackendImpl::count):
145694        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
145695        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::perform):
145696        (WebCore::IDBIndexBackendImpl::get):
145697        (WebCore::IDBIndexBackendImpl::getKey):
145698        * Modules/indexeddb/IDBIndexBackendInterface.h: Remove bogus "ThreadSafe"
145699        * Modules/indexeddb/IDBKey.h: Remove bogus "ThreadSafe"
145700        (IDBKey):
145701        * Modules/indexeddb/IDBKeyRange.h: Remove bogus "ThreadSafe"
145702        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
145703        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::create):
145704        (IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation):
145705        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::ObjectStoreRetrievalOperation):
145706        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::create):
145707        (IDBObjectStoreBackendImpl::ObjectStoreStorageOperation):
145708        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::ObjectStoreStorageOperation):
145709        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::create):
145710        (IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation):
145711        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::ObjectStoreIndexesReadyOperation):
145712        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::create):
145713        (IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation):
145714        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::ObjectStoreDeletionOperation):
145715        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::create):
145716        (IDBObjectStoreBackendImpl::ObjectStoreClearOperation):
145717        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::ObjectStoreClearOperation):
145718        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::create):
145719        (IDBObjectStoreBackendImpl::CreateIndexOperation):
145720        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::CreateIndexOperation):
145721        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::create):
145722        (IDBObjectStoreBackendImpl::DeleteIndexOperation):
145723        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::DeleteIndexOperation):
145724        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::create):
145725        (IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation):
145726        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::OpenObjectStoreCursorOperation):
145727        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::create):
145728        (IDBObjectStoreBackendImpl::ObjectStoreCountOperation):
145729        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::ObjectStoreCountOperation):
145730        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::create):
145731        (IDBObjectStoreBackendImpl::CreateIndexAbortOperation):
145732        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::CreateIndexAbortOperation):
145733        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::create):
145734        (IDBObjectStoreBackendImpl::DeleteIndexAbortOperation):
145735        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
145736        (WebCore::IDBObjectStoreBackendImpl::get):
145737        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
145738        (WebCore::IDBObjectStoreBackendImpl::put):
145739        (WebCore):
145740        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
145741        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::perform):
145742        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
145743        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
145744        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::perform):
145745        (WebCore::IDBObjectStoreBackendImpl::clear):
145746        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::perform):
145747        (WebCore::IDBObjectStoreBackendImpl::createIndex):
145748        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
145749        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
145750        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::perform):
145751        (WebCore::IDBObjectStoreBackendImpl::openCursor):
145752        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::perform):
145753        (WebCore::IDBObjectStoreBackendImpl::count):
145754        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::perform):
145755        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::perform):
145756        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::perform):
145757        * Modules/indexeddb/IDBObjectStoreBackendInterface.h: Remove bogus "ThreadSafe"
145758        * Modules/indexeddb/IDBRequest.h: Remove bogus "ThreadSafe"
145759        (IDBRequest):
145760        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
145761        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Appease RefPtr<> adoption strictness.
145762        (WebCore::IDBTransactionBackendImpl::scheduleTask):
145763        (WebCore::IDBTransactionBackendImpl::abort):
145764        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
145765        * Modules/indexeddb/IDBTransactionBackendImpl.h:
145766        (Operation):
145767        (WebCore::IDBTransactionBackendImpl::Operation::~Operation):
145768        (IDBTransactionBackendImpl):
145769        (WebCore::IDBTransactionBackendImpl::scheduleTask):
145770        * Modules/indexeddb/IDBTransactionBackendInterface.h: Remove bogus "ThreadSafe"
145771
1457722012-12-05  Noel Gordon  <noel.gordon@gmail.com>
145773
145774        ENABLE(IMAGE_DECODER_DOWN_SAMPLING): Don't swizzle decode down sampled images
145775        https://bugs.webkit.org/show_bug.cgi?id=103856
145776
145777        Reviewed by Yong Li.
145778
145779        For ports using ENABLE(IMAGE_DECODER_DOWN_SAMPLING), turbo swizzle decodes provide
145780        no speed-up when the decoded image will be down sampled because the data must pass
145781        through the buffer.setRGBA() slow path. That is not the swizzled path. Instead use
145782        JCS_RGB decodes to clarify the output color space handling in outputScanlines().
145783
145784        No new tests. Covered by existing JPEG decoding tests.
145785
145786        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
145787        (WebCore::JPEGImageReader::decode): libjpeg-turbo swizzle decodes provides no real
145788        speed-up if the image will be down sampled. Revert to using JCS_RGA in this case.
145789        (WebCore::setPixel): Remove the libjpeg-turbo JCS_EXT_BGRA and JCS_EXT_RGBA cases.
145790        (WebCore::JPEGImageDecoder::outputScanlines): ditto.
145791        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
145792        (WebCore::JPEGImageDecoder::willDownSample): Return true if image down sampling 
145793        will be applied to the decoded image (m_scaled). Note: the willDownSample() return
145794        value is valid only after setSize() has been called: add an ASSERT for that.
145795
1457962012-12-05  Michael Pruett  <michael@68k.org>
145797
145798        IndexedDB: Implement IndexedDB bindings for JSC
145799        https://bugs.webkit.org/show_bug.cgi?id=103484
145800
145801        Reviewed by Kentaro Hara.
145802
145803        IndexedDB is currently implemented only for V8. This change adds
145804        the bindings necessary for IndexedDB to work with JSC. With this
145805        patch, IndexedDB for JSC passes 112 out of the 196 layout tests in
145806        storage/indexeddb. IndexedDB is still not enabled for any JSC port.
145807
145808        Tests: storage/indexeddb/*
145809
145810        * CMakeLists.txt:
145811        * GNUmakefile.list.am:
145812        * Modules/indexeddb/IDBOpenDBRequest.idl:
145813        * Modules/indexeddb/IDBVersionChangeRequest.idl:
145814        * UseJSC.cmake:
145815        * WebCore.xcodeproj/project.pbxproj:
145816        * bindings/js/DOMRequestState.h: Added to match bindings/v8/DOMRequestState.h.
145817        (WebCore):
145818        (DOMRequestState):
145819        (WebCore::DOMRequestState::DOMRequestState):
145820        (WebCore::DOMRequestState::clear):
145821        (Scope):
145822        (WebCore::DOMRequestState::Scope::Scope):
145823        (WebCore::DOMRequestState::exec):
145824        * bindings/js/IDBBindingUtilities.cpp: Add utility functions matching those in bindings/v8/IDBBindingUtilities.cpp.
145825        (WebCore::get):
145826        (WebCore):
145827        (WebCore::canSet):
145828        (WebCore::set):
145829        (WebCore::createIDBKeyFromValue):
145830        (WebCore::getNthValueOnKeyPath):
145831        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
145832        (WebCore::ensureNthValueOnKeyPath):
145833        (WebCore::canInjectNthValueOnKeyPath):
145834        (WebCore::injectIDBKeyIntoScriptValue):
145835        (WebCore::canInjectIDBKeyIntoScriptValue):
145836        (WebCore::deserializeIDBValue):
145837        (WebCore::idbKeyToScriptValue):
145838        * bindings/js/IDBBindingUtilities.h: Add utility functions matching those in bindings/v8/IDBBindingUtilities.h.
145839        (WebCore):
145840        * bindings/js/JSIDBAnyCustom.cpp:
145841        (WebCore::toJS):
145842        * bindings/js/JSIDBKeyCustom.cpp:
145843        (WebCore::toJS):
145844        * bindings/js/JSIDBVersionChangeRequestCustom.cpp: Removed.
145845
1458462012-12-05  Antoine Quint  <graouts@apple.com>
145847
145848        TextTrackCue's .endTime property should fire a TypeError when NaN is assigned
145849        https://bugs.webkit.org/show_bug.cgi?id=103413
145850
145851        Reviewed by Eric Carlson.
145852
145853        Check whether the new time passed to setStartTime() and setEndTime() is none of NaN or Infinity,
145854        otherwise throwing a TypeError.
145855        
145856        Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrackCue/endTime.html and
145857        media/track/opera/interfaces/TextTrackCue/startTime.html.
145858
145859        * html/track/TextTrackCue.cpp:
145860        (WebCore::TextTrackCue::setStartTime):
145861        (WebCore::TextTrackCue::setEndTime):
145862        * html/track/TextTrackCue.h:
145863        (TextTrackCue):
145864        * html/track/TextTrackCue.idl:
145865
1458662012-12-05  Alexis Menard  <alexis@webkit.org>
145867
145868        [CSS3 Backgrounds and Borders] Allow the CSS3 background position offset for background shorthand.
145869        https://bugs.webkit.org/show_bug.cgi?id=104014
145870
145871        Reviewed by Dirk Schulze.
145872
145873        Add the support of the new <position> type if set from within the
145874        background shorthand. The patch just modify the way we count the values
145875        of the current context by checking wether we encounter a comma (it is
145876        then the next background layer), or if we encounter a '/' (which is in the
145877        background shorthand context the background-size) or any value that is
145878        not a valid background-position keyword or length (which means we are
145879        already parsing the next property of the background shorthand).
145880
145881        Tests: LayoutTests/fast/backgrounds/background-position-parsing-2.html
145882        has been modified to cover this use case.
145883
145884        * css/CSSParser.cpp:
145885        (WebCore::CSSParser::isPositionValue):
145886        (WebCore):
145887        (WebCore::CSSParser::parseFillBackgroundPosition):
145888        (WebCore::CSSParser::parseFillProperty):
145889        * css/CSSParser.h:
145890
1458912012-12-05  Elliott Sprehn  <esprehn@gmail.com>
145892
145893        ShadowRoot should recalcStyle for itself
145894        https://bugs.webkit.org/show_bug.cgi?id=103933
145895
145896        Reviewed by Hajime Morita.
145897
145898        ShadowRoot should support recalcStyle just like Element instead of
145899        having the code inside ElementShadow. This was once the case and
145900        the dead method prototype for recalcShadowTreeStyle is still in
145901        ShadowRoot.h.
145902
145903        No new tests, just refactoring.
145904
145905        * dom/ElementShadow.cpp:
145906        (WebCore::ElementShadow::recalcStyle):
145907        * dom/ShadowRoot.cpp:
145908        (WebCore::ShadowRoot::recalcStyle):
145909        * dom/ShadowRoot.h:
145910
1459112012-12-05  Keishi Hattori  <keishi@webkit.org>
145912
145913        Fix text direction in datalist popup for time controls
145914        https://bugs.webkit.org/show_bug.cgi?id=103853
145915
145916        Reviewed by Kent Tamura.
145917
145918        The datalist entry value should be displayed with the same text direction as the date/time format.
145919
145920        Tests: platform/chromium/fast/forms/suggestion-picker/datetime-suggestion-picker-appearance-locale-hebrew.html
145921               platform/chromium/fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html
145922               platform/chromium/fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html
145923
145924        * Resources/pagepopups/calendarPicker.js: Renamed isCalendarRTL to isLocaleRTL.
145925        (CalendarPicker.prototype._layout):
145926        (CalendarPicker.prototype.fixWindowSize):
145927        (DaysTable.prototype._handleKey):
145928        (MonthPickerDaysTable.prototype._handleKey):
145929        (WeekPickerDaysTable.prototype._handleKey):
145930        * Resources/pagepopups/suggestionPicker.css:
145931        (.suggestion-list-entry .title): Title should have the same text direction as the locale.
145932        (.locale-rtl .suggestion-list-entry .title):
145933        * Resources/pagepopups/suggestionPicker.js:
145934        (SuggestionPicker.prototype._layout): Add locale-rtl class if the isLocaleRTL is true.
145935
1459362012-12-05  Keishi Hattori  <keishi@webkit.org>
145937
145938        Fix flickering when hiding page popup
145939        https://bugs.webkit.org/show_bug.cgi?id=104100
145940
145941        Reviewed by Kent Tamura.
145942
145943        Moving the page popup while hiding was causing flickering in some environments.
145944
145945        No new tests. Can't reproduce in layout test.
145946
145947        * Resources/pagepopups/pickerCommon.js:
145948        (hideWindow): Don't move and just resize.
145949
1459502012-12-05  Allan Sandfeld Jensen  <allan.jensen@digia.com>
145951
145952        [Qt] Don't rely on QMimeDatabase for essential MIME types
145953        https://bugs.webkit.org/show_bug.cgi?id=103865
145954
145955        Based on patch by Pierre Rossi.
145956        Reviewed by Jocelyn Turcotte.
145957
145958        Extend the short static list to also include MIME types essential to WebKit,
145959        and detect these first before checking the system mimedatabase.
145960
145961        * platform/qt/MIMETypeRegistryQt.cpp:
145962        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
145963        (WebCore::MIMETypeRegistry::getMIMETypeForPath):
145964
1459652012-12-05  Zoltan Herczeg  <zherczeg@webkit.org>
145966
145967        Optimize ColorMatrix filter
145968        https://bugs.webkit.org/show_bug.cgi?id=103728
145969
145970        Reviewed by Dirk Schulze.
145971
145972        ColorMatrix filter recalculates several constants for
145973        every pixel. It is enough to do these calculations only
145974        once during the initialization. Style issues also fixed.
145975
145976        Existing tests cover this feature.
145977
145978        * platform/graphics/filters/FEColorMatrix.cpp:
145979        (WebCore::matrix):
145980        (WebCore::saturateAndHueRotate):
145981        (WebCore::effectType):
145982
1459832012-12-05  Carlos Garcia Campos  <cgarcia@igalia.com>
145984
145985        Flex item auto margins in the cross direction should safe center
145986        https://bugs.webkit.org/show_bug.cgi?id=103919
145987
145988        Reviewed by Ojan Vafai.
145989
145990        Do not apply auto margins for cross axis if there's no alignment
145991        space available.
145992
145993        Test: css3/flexbox/flex-flow-auto-margins-no-available-space.html
145994
145995        * rendering/RenderFlexibleBox.cpp:
145996        (WebCore::RenderFlexibleBox::alignChildren): Make sure we pass a
145997        positive value for availableAlignmentSpace to
145998        updateAutoMarginsInCrossAxis().
145999
1460002012-12-05  Mike West  <mkwst@chromium.org>
146001
146002        Web Inspector: Autogenerate stack traces and line numbers when possible.
146003        https://bugs.webkit.org/show_bug.cgi?id=100650
146004
146005        Reviewed by Yury Semikhatsky.
146006
146007        Console messages generated in WebCore generally are asked to do a bit of
146008        work in order to provide a developer with a detailed report. We ask the
146009        caller to either generate stack traces, or pass in a url/line number
146010        pair, which can be a bit of work. Predictably, most callers don't pass
146011        in what we'd like to see.
146012
146013        This patch creates a new, simpler console message generation API that we
146014        expect most call sites to use. Source, type, level, and message are
146015        required, and an optional request ID can be passed in. Everything else
146016        will be autogenerated inside ConsoleMessage when appropriate.
146017
146018        In a subsequent patch, we expect to be able to trim down more of the
146019        external call sites (ContentSecurityPolicy springs to mind) in order to
146020        further consolidate the external interface. Simple is good.
146021
146022        * Modules/websockets/WebSocket.cpp:
146023        (WebCore::WebSocket::connect):
146024        * Modules/websockets/WebSocketChannel.cpp:
146025        (WebCore::WebSocketChannel::didFailSocketStream):
146026            Drop the now-redundant URL parameter from various WebSocket errors.
146027        * css/MediaList.cpp:
146028        (WebCore::addResolutionWarningMessageToConsole):
146029            Switch to Document::addConsoleMessage, which means that we can move
146030            line-number generation out of MediaList.
146031        * dom/Document.cpp:
146032        (WebCore::Document::logExceptionToConsole):
146033            Use the long-form 'addMessage()' rather than the public interface.
146034        (WebCore::Document::processHttpEquiv):
146035            Drop the URL parameter, as it's now autogenerated.
146036        (WebCore::Document::addConsoleMessage):
146037        (WebCore):
146038        * dom/Document.h:
146039        (Document):
146040            Override the pure virtual method on ScriptExecutionContext, and pass
146041            the call through to the new Console::addMessage, which accepts a
146042            pointer to the Document in order to do line-number generation.
146043        * dom/ScriptExecutionContext.h:
146044        (ScriptExecutionContext):
146045            Add a pure virtual variant of addConsoleMessage which accepts only
146046            bare minimum data, and expects autogeneration of the rest.
146047            Additionally, ensure that the other variants always have either a
146048            URL/line number, or a stack trace.
146049        * dom/ViewportArguments.cpp:
146050        (WebCore::reportViewportWarning):
146051            Drop line numbers and URLs from Viewport warnings. We can generate
146052            these now.
146053        * html/HTMLFormElement.cpp:
146054        (WebCore::HTMLFormElement::validateInteractively):
146055            Drop the URL from form autofocus warnings
146056        * html/HTMLIFrameElement.cpp:
146057        (WebCore::HTMLIFrameElement::parseAttribute):
146058            Drop the URL and line from sandbox attribute warnings.
146059        * html/canvas/WebGLRenderingContext.cpp:
146060        (WebCore):
146061        (WebCore::WebGLRenderingContext::printWarningToConsole):
146062            Drop the URL from WebGL warnings.
146063        * inspector/ConsoleMessage.cpp:
146064        (WebCore::ConsoleMessage::ConsoleMessage):
146065            Call 'autogenerateMetadata' to ensure that a stack trace is
146066            generated if one isn't provided. Create a new constructor that
146067            accepts a ScriptState/ScriptArguments pair, and use it for console
146068            API calls.
146069        (WebCore):
146070        (WebCore::ConsoleMessage::autogenerateMetadata):
146071            Generate a stack trace given whatever information we've got.
146072        * inspector/ConsoleMessage.h:
146073        (ConsoleMessage):
146074            Create a new constructor that accepts a ScriptState/ScriptArguments
146075            pair, and use it for console API calls.
146076        * inspector/InspectorConsoleAgent.cpp:
146077        (WebCore::InspectorConsoleAgent::enable):
146078            Use the short-form ConsoleMessage constructor.
146079        (WebCore::InspectorConsoleAgent::addMessageToConsole):
146080            Use the stack-only constructor, or the ScriptState
146081            constructor, as appropriate.
146082        (WebCore::InspectorConsoleAgent::count):
146083            We generated a stack, pass it in.
146084        * inspector/InspectorConsoleAgent.cpp:
146085        (WebCore::InspectorConsoleAgent::isWorkerAgent):
146086        * inspector/PageConsoleAgent.h:
146087        (WebCore::PageConsoleAgent::isWorkerAgent):
146088        * inspector/PageConsoleAgent.h:
146089        (WebCore::PageConsoleAgent::isWorkerAgent):
146090            We only want to generate call stacks for non-Workers (because
146091            createScriptCallStack explodes in JSC if we're not on the main
146092            thread). This method will allow us to distinguish between those
146093            messages generated from Workers, and those from Pages.
146094        * loader/FrameLoader.cpp:
146095        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
146096        * loader/MainResourceLoader.cpp:
146097        (WebCore::MainResourceLoader::didReceiveResponse):
146098            Drop the URL parameter from the console message for X-Frame-Options
146099            parsing errors.
146100        * page/Console.cpp:
146101        (WebCore::Console::addMessage):
146102            When given a Document*, generate a line number if: 1) the document
146103            is still being parsed, 2) the document is not in document.write(),
146104            3) the parser isn't waiting for script, and 4) the parser isn't
146105            executing script. Many callsites didn't check all of these, which
146106            is why the SVG rebaseline (for example) drops lots and lots of line
146107            numbers which point at a closing '</script>' tag.
146108        (WebCore):
146109        * page/Console.h:
146110        (WebCore):
146111        (Console):
146112            Update the public API to accept a Document* and little else.
146113        * page/DOMWindow.cpp:
146114        (WebCore::DOMWindow::printErrorMessage):
146115            Don't generate a stack here. We can do it later.
146116        * svg/SVGDocumentExtensions.cpp:
146117        (WebCore::reportMessage):
146118            Drop the URL and line number. We'll generate them. It'll be sweet.
146119        * workers/WorkerContext.cpp:
146120        (WebCore::WorkerContext::addConsoleMessage):
146121        (WebCore):
146122        * workers/WorkerContext.h:
146123        (WorkerContext):
146124            Implement the new addConsoleMessage variant.
146125
1461262012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
146127
146128        Reduce the children repaints when moved multiple times during the layout
146129        https://bugs.webkit.org/show_bug.cgi?id=103510
146130
146131        Reviewed by Darin Adler.
146132
146133        Cache the children positions before the layout and move to the
146134        final position after the layout.
146135
146136        Test: css3/flexbox/repaint-column-reverse.html
146137
146138        * rendering/RenderFlexibleBox.cpp:
146139        (WebCore::RenderFlexibleBox::OrderIterator::OrderIterator): Do not
146140        call first() on the consructor.
146141        (WebCore::RenderFlexibleBox::layoutBlock): Use a Vector with the
146142        children frame rects before the layout and call
146143        repaintChildrenDuringLayoutIfMoved() to repaint the children that
146144        have been moved.
146145        (WebCore::RenderFlexibleBox::appendChildrenFrameRects): Return a
146146        Vector with children frame rects.
146147        (WebCore::RenderFlexibleBox::repaintChildrenDuringLayoutIfMoved):
146148        Call repaintDuringLayoutIfMoved() for every children using the old
146149        frame rects.
146150        (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Do not
146151        call repaintDuringLayoutIfMoved().
146152        (WebCore::RenderFlexibleBox::layoutFlexItems): Make sure the
146153        passed iterator points to the first child.
146154        * rendering/RenderFlexibleBox.h:
146155
1461562012-12-05  Dan Carney  <dcarney@google.com>
146157
146158        [V8] toV8Fast for all classes with ScriptWrapper Holder objects
146159        https://bugs.webkit.org/show_bug.cgi?id=102686
146160
146161        Reviewed by Adam Barth.
146162
146163        This patch makes most generated bindings use toV8Fast
146164        by adding a fast path to the main world DOMDataStore.
146165        Additionally, toV8Fast is now being called on callbacks
146166        which use v8::Arguments.
146167
146168        No new tests. No change in functionality.
146169
146170        * bindings/scripts/CodeGeneratorV8.pm:
146171        (GenerateHeader):
146172        (GenerateNormalAttrGetter):
146173        (GenerateFunctionCallString):
146174        (NativeToJSValue):
146175        * bindings/v8/DOMDataStore.cpp:
146176        (WebCore::DOMDataStore::mainWorldStore):
146177        (WebCore::DOMDataStore::current):
146178        * bindings/v8/DOMDataStore.h:
146179
1461802012-12-05  Andrey Adaikin  <aandrey@chromium.org>
146181
146182        Web Inspector: [Canvas] nit: add more typization for js compiler
146183        https://bugs.webkit.org/show_bug.cgi?id=103994
146184
146185        Reviewed by Pavel Feldman.
146186
146187        * inspector/InjectedScriptCanvasModuleSource.js:
146188        (.):
146189
1461902012-12-05  Hans Muller  <hmuller@adobe.com>
146191
146192        [CSS Exclusions] ExclusionShape inlines should use isFlippedBlocksWritingMode()
146193        https://bugs.webkit.org/show_bug.cgi?id=103939
146194
146195        Reviewed by Dirk Schulze.
146196
146197        Just a minor cleanup: the protected ExclusionShape inlines, like minYForLogicalLine(),
146198        now use isFlippedBlocksWritingMode() instead of testing for RightToLeftWritingMode directly.
146199        This changeimproves consistency with the rest of WebKit and will work correctly
146200        if "horizontal-bt" writing-mode support is ever added.
146201
146202        No new tests were added since the existing tests cover these methods.
146203
146204        * rendering/ExclusionShape.h:
146205        (WebCore::ExclusionShape::minYForLogicalLine):
146206        (WebCore::ExclusionShape::maxYForLogicalLine):
146207        (WebCore::ExclusionShape::internalToLogicalBoundingBox):
146208
1462092012-12-05  Bear Travis  <betravis@adobe.com>
146210
146211        Absolutely positioned non-replaced elements should resolve vertical margins against
146212        their containing block's logical width
146213        https://bugs.webkit.org/show_bug.cgi?id=103576
146214
146215        Reviewed by Emil A Eklund.
146216
146217        According to the CSS box model specification, all percentage margin & padding values,
146218        including top & bottom, should be resolved based on the containing block's width.
146219        http://www.w3.org/TR/CSS2/box.html#margin-properties
146220        The writing modes specification has refined this definition to use the containing
146221        block's logical width to resolve percentage margin & padding values.
146222        http://dev.w3.org/csswg/css3-writing-modes/#dimension-mapping
146223
146224        Previously, positioned elements measured their container in the element's block
146225        direction (containerLogicalHeight) to resolve margin-before/after, and in the inline
146226        direction (containerLogicalWidth) to resolve margin-start/end. This patch measures the
146227        container's logical width in its own inline direction (containerRelativeLogicalWidth)
146228        to resolve all margin percentage values.
146229
146230        Test: fast/writing-mode/percentage-margins-absolute.html
146231
146232        * rendering/RenderBox.cpp:
146233        (WebCore::RenderBox::computePositionedLogicalWidthUsing): Calculate the logical width
146234        of the container, and use it to calculate margins.
146235        (WebCore::RenderBox::computePositionedLogicalHeightUsing): Ditto.
146236
1462372012-12-04  Kentaro Hara  <haraken@chromium.org>
146238
146239        [V8] Replace String::New("symbol") with String::NewSymbol("symbol") (part 2)
146240        https://bugs.webkit.org/show_bug.cgi?id=104082
146241
146242        Reviewed by Adam Barth.
146243
146244        V8 can look up symbols faster than strings.
146245
146246        No tests. No change in behavior.
146247
146248        * bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
146249        (WebCore::getHiddenCopyMethod):
146250        (WebCore::installHiddenCopyMethod):
146251        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
146252        (WebCore::constructWebGLArray):
146253        (WebCore::setWebGLArrayHelper):
146254        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
146255        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
146256        * bindings/v8/custom/V8DOMWindowCustom.cpp:
146257        (WebCore::DialogHandler::dialogCreated):
146258        (WebCore::DialogHandler::returnValue):
146259        * bindings/v8/custom/V8GeolocationCustom.cpp:
146260        (WebCore::createPositionOptions):
146261        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
146262        (WebCore::V8HTMLDocument::wrapInShadowObject):
146263        (WebCore::V8HTMLDocument::openCallback):
146264        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
146265        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
146266        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
146267        (WebCore::V8SQLTransaction::executeSqlCallback):
146268
1462692012-12-04  Elliott Sprehn  <esprehn@chromium.org>
146270
146271        Clicking a scrollbar unfocuses the current activeElement
146272        https://bugs.webkit.org/show_bug.cgi?id=96335
146273
146274        Reviewed by Ojan Vafai.
146275
146276        Previously we only tested for clicks inside frame scrollbars before
146277        moving the focus, this patch expands the check to overflow scrollbars.
146278        Now clicking inside a scrollbar only moves the focus when the scrollbar
146279        has an ancestor that is mouse focusable.
146280
146281        This matches Gecko behavior, and was agreed to be the most sensible for now:
146282        http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037759.html
146283
146284        Test: fast/overflow/scrollbar-click-retains-focus.html
146285
146286        * page/EventHandler.cpp:
146287        (WebCore::EventHandler::handleMousePressEvent):
146288          Never start selections inside scrollbars because it would cause asserts. 
146289          This wasn't a problem before because we always moved the focus when clicking a scrollbar.        
146290        (WebCore::EventHandler::dispatchMouseEvent): 
146291          Check that the click is not inside a scrollbar before moving the focus.
146292        (WebCore::EventHandler::isInsideScrollbar): Tests if a point is in a scrollbar.
146293        (WebCore):
146294        (WebCore::EventHandler::sendContextMenuEvent):
146295          Never start selections inside scrollbars because it would cause asserts.
146296        * page/EventHandler.h:
146297        (EventHandler):
146298        * rendering/RenderLayer.cpp:
146299        (WebCore::RenderLayer::hitTestOverflowControls):
146300
1463012012-12-04  Kentaro Hara  <haraken@chromium.org>
146302
146303        [V8] Replace String::New("symbol") with String::NewSymbol("symbol")
146304        https://bugs.webkit.org/show_bug.cgi?id=104084
146305
146306        Reviewed by Adam Barth.
146307
146308        V8 can look up symbols faster than strings. This is a final patch for the replacement.
146309
146310        No tests. No change in behavior.
146311
146312        * bindings/v8/DateExtension.cpp:
146313        (WebCore::DateExtension::setAllowSleep):
146314        (WebCore::DateExtension::GetNativeFunction):
146315        * bindings/v8/NPV8Object.cpp:
146316        (WebCore::npIdentifierToV8Identifier):
146317        (_NPN_Invoke):
146318        * bindings/v8/PageScriptDebugServer.cpp:
146319        (WebCore::PageScriptDebugServer::addListener):
146320        * bindings/v8/ScriptController.cpp:
146321        (WebCore::ScriptController::setContextDebugId):
146322        * bindings/v8/ScriptDebugServer.cpp:
146323        (WebCore::ScriptDebugServer::callDebuggerMethod):
146324        (WebCore::ScriptDebugServer::setBreakpoint):
146325        (WebCore::ScriptDebugServer::removeBreakpoint):
146326        (WebCore::ScriptDebugServer::clearBreakpoints):
146327        (WebCore::ScriptDebugServer::setBreakpointsActivated):
146328        (WebCore::ScriptDebugServer::handleV8DebugEvent):
146329        (WebCore::ScriptDebugServer::dispatchDidParseSource):
146330        * bindings/v8/ScriptObject.cpp:
146331        (WebCore::ScriptGlobalObject::set):
146332        (WebCore::ScriptGlobalObject::get):
146333        (WebCore::ScriptGlobalObject::remove):
146334        * bindings/v8/V8Binding.h:
146335        (WebCore::toV8Sequence):
146336        * bindings/v8/V8DOMWindowShell.cpp:
146337        (WebCore::setInjectedScriptContextDebugId):
146338        (WebCore::V8DOMWindowShell::updateDocumentProperty):
146339        (WebCore::V8DOMWindowShell::clearDocumentProperty):
146340        * bindings/v8/V8NPObject.cpp:
146341        (WebCore::npObjectPropertyEnumerator):
146342        * bindings/v8/V8NodeFilterCondition.cpp:
146343        (WebCore::V8NodeFilterCondition::acceptNode):
146344        * bindings/v8/V8PerIsolateData.cpp:
146345        (WebCore::V8PerIsolateData::constructorOfToString):
146346        * bindings/v8/WorkerScriptController.cpp:
146347        (WebCore::WorkerScriptController::initializeContextIfNeeded):
146348        * bindings/v8/WorkerScriptDebugServer.cpp:
146349        (WebCore::WorkerScriptDebugServer::addListener):
146350
1463512012-12-04  Dan Bernstein  <mitz@apple.com>
146352
146353        Support text-orientation: sideways-right (and sideways when it maps to sideways-right)
146354        https://bugs.webkit.org/show_bug.cgi?id=104035
146355
146356        Reviewed by Anders Carlsson.
146357
146358        Test: fast/text/orientation-sideways.html
146359
146360        * GNUmakefile.list.am: Updated for rename of TextOrientation.h.
146361
146362        * WebCore.gypi: Ditto.
146363
146364        * WebCore.xcodeproj/project.pbxproj: Ditto.
146365
146366        * css/CSSComputedStyleDeclaration.cpp:
146367        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Changed to retrieve
146368        text-orientation from RenderStyle rather than from the font description.
146369
146370        * css/CSSParser.cpp:
146371        (WebCore::CSSParser::parseValue): Added sideways and sideways-right as acceptable
146372        text-orientation values.
146373
146374        * css/CSSPrimitiveValueMappings.h:
146375        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mappings for sideways and
146376        sideways-right.
146377        (WebCore::CSSPrimitiveValue::operator TextOrientation): Ditto.
146378
146379        * css/CSSValueKeywords.in: Added sideways and sideways-right.
146380
146381        * css/StyleBuilder.cpp:
146382        (WebCore::StyleBuilder::StyleBuilder): Removed text-orientation property handler, as it is
146383        now handled in CSSStyleResolver.
146384
146385        * css/StyleResolver.cpp:
146386        (WebCore::getFontAndGlyphOrientation): Added this helper function that determines the font
146387        orientation and non-CJK glyph orientation based on writing-mode and text-orientation.
146388        (WebCore::StyleResolver::styleForDocument): Added code to set the font orientation and
146389        non-CJK glyph orientation in the document style.
146390        (WebCore::checkForOrientationChange): Added. Sets the font orientation and non-CJK glyph
146391        orientation in the child style if the difference between the parent and child styles requires
146392        doing so.
146393        (WebCore::StyleResolver::updateFont): Added call to checkForOrientationChange().
146394        (WebCore::StyleResolver::applyProperty): Changed the writing-mode case to call the new
146395        setWritingMode helper, which dirties the font as needed, rather than changing the font
146396        here. Moved handling of text-orientation here, by calling setTextOrientation, which also
146397        dirties the font as needed.
146398
146399        * css/StyleResolver.h:
146400        (WebCore::StyleResolver::setWritingMode): Added. Dirties the font if the writing mode changes.
146401        (WebCore::StyleResolver::setTextOrientation): Ditto for text orientation.
146402
146403        * platform/graphics/FontDescription.h:
146404        (WebCore::FontDescription::FontDescription): Updated initializer for rename.
146405        (WebCore::FontDescription::nonCJKGlyphOrientation): Renamed textOrientation to this.
146406        (WebCore::FontDescription::setNonCJKGlyphOrientation): Renamed setTextOrientation to this.
146407        (FontDescription): Renamed member variable m_textOrientation to m_nonCJKGlyphOrientation.
146408        (WebCore::FontDescription::operator==): Updated for rename.
146409
146410        * platform/graphics/FontFastPath.cpp:
146411        (WebCore::glyphDataAndPageForNonCJKCharacterWithGlyphOrientation): Renamed
146412        glyphDataAndPageForCharacterWithTextOrientation to this and changed the parameter type from
146413        TextOrientation to NonCJKGlyphOrientation.
146414        (WebCore::Font::glyphDataAndPageForCharacter): Updated for above rename.
146415
146416        * platform/graphics/mac/FontComplexTextMac.cpp:
146417        (WebCore::Font::fontDataForCombiningCharacterSequence): Updated for rename of
146418        FontDescription::textOrientation().
146419
146420        * platform/text/NonCJKGlyphOrientation.h: Renamed TextOrientation.h to this, and renamed
146421        the enum and its values to better reflect that they describe how glyphs for non-CJK
146422        characters are to be rendered in vertical text.
146423
146424        * rendering/InlineFlowBox.cpp:
146425        (WebCore::InlineFlowBox::requiresIdeographicBaseline): Updated for rename of
146426        FontDescription::textOrientation().
146427
146428        * rendering/style/RenderStyle.cpp:
146429        (WebCore::RenderStyle::diff): Made text-orientation change a layout change.
146430
146431        * rendering/style/RenderStyle.h:
146432        (WebCore::RenderStyle::setTextOrientation): Added.
146433
146434        * rendering/style/RenderStyleConstants.h: Added a new TextOrientation enum here.
146435
146436        * rendering/style/StyleRareInheritedData.cpp:
146437        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialization and copying
146438        of m_textOrientation member variable.
146439        (WebCore::StyleRareInheritedData::operator==): Added comparing of m_textOrientation.
146440
146441        * rendering/style/StyleRareInheritedData.h:
146442        (StyleRareInheritedData): Added m_textOrientation member variable.
146443
1464442012-12-04  Kentaro Hara  <haraken@chromium.org>
146445
146446        [V8] Use ScopedPersistent for IntegerCache::smallIntegers
146447        https://bugs.webkit.org/show_bug.cgi?id=104066
146448
146449        Reviewed by Adam Barth.
146450
146451        We can use ScopedPersistent for IntegerCache::smallIntegers
146452        instead of manual Persistent::New().
146453
146454        I confirmed no performance regression in Bindings/scroll-top.html
146455
146456        No tests. No change in behavior.
146457
146458        * bindings/v8/V8PerIsolateData.cpp:
146459        (WebCore::V8PerIsolateData::V8PerIsolateData):
146460        * bindings/v8/V8ValueCache.cpp:
146461        (WebCore::IntegerCache::IntegerCache):
146462        * bindings/v8/V8ValueCache.h:
146463        (IntegerCache):
146464        (WebCore::IntegerCache::v8Integer):
146465        (WebCore::IntegerCache::v8UnsignedInteger):
146466
1464672012-12-04  Eugene Klyuchnikov  <eustas@chromium.org>
146468
146469        Web Inspector: Resources: domain cookies are not shown for sub-sub domain pages.
146470        https://bugs.webkit.org/show_bug.cgi?id=104016
146471
146472        Reviewed by Pavel Feldman.
146473
146474        Fixed regexp to allow zero or more subdomain prefix (was zero or one).
146475
146476        * inspector/front-end/CookieParser.js:
146477        (WebInspector.Cookies.cookieDomainMatchesResourceDomain): Fixed regexp.
146478
1464792012-12-04  Alpha Lam  <hclam@chromium.org>
146480
146481        Not reviewed. Build fix.
146482
146483        Fix Chromium Windows build.
146484
146485        * platform/graphics/chromium/ImageDecodingStore.h:
146486        (CacheEntry):
146487
1464882012-12-04  Kentaro Hara  <haraken@chromium.org>
146489
146490        [V8] Remove toV8Object()
146491        https://bugs.webkit.org/show_bug.cgi?id=103987
146492
146493        Reviewed by Adam Barth.
146494
146495        toV8Object() is used only for MessagePort and ArrayBuffer
146496        only by SerializedScriptValue. It is wasteful to generate
146497        toV8Object() for all interfaces.
146498
146499        No tests. No change in behavior.
146500
146501        * bindings/scripts/CodeGeneratorV8.pm:
146502        (GenerateHeader):
146503        * bindings/scripts/test/V8/V8Float64Array.h:
146504        (WebCore):
146505        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
146506        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
146507        * bindings/scripts/test/V8/V8TestEventConstructor.h:
146508        * bindings/scripts/test/V8/V8TestEventTarget.h:
146509        * bindings/scripts/test/V8/V8TestException.h:
146510        * bindings/scripts/test/V8/V8TestInterface.h:
146511        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
146512        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
146513        * bindings/scripts/test/V8/V8TestNode.h:
146514        * bindings/scripts/test/V8/V8TestObj.h:
146515        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
146516        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
146517        * bindings/v8/SerializedScriptValue.cpp:
146518
1465192012-12-04  Kentaro Hara  <haraken@chromium.org>
146520
146521        [V8] Replace v8::Null(isolate) with v8Null(isolate)
146522        https://bugs.webkit.org/show_bug.cgi?id=104070
146523
146524        Reviewed by Adam Barth.
146525
146526        v8Null(isolate) is a faster version of v8::Null(isolate).
146527
146528        No tests. No change in behavior.
146529
146530        * bindings/v8/V8Binding.h:
146531        (WebCore::v8StringOrNull):
146532        * bindings/v8/custom/V8ClipboardCustom.cpp:
146533        (WebCore::V8Clipboard::typesAccessorGetter):
146534        * bindings/v8/custom/V8CoordinatesCustom.cpp:
146535        (WebCore::V8Coordinates::altitudeAccessorGetter):
146536        (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
146537        (WebCore::V8Coordinates::headingAccessorGetter):
146538        (WebCore::V8Coordinates::speedAccessorGetter):
146539        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
146540        (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
146541        (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
146542        (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
146543        (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
146544        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
146545        (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
146546        (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
146547        (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
146548        (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
146549        * bindings/v8/custom/V8DocumentLocationCustom.cpp:
146550        (WebCore::V8Document::locationAccessorGetter):
146551        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
146552        (WebCore::V8HTMLCanvasElement::getContextCallback):
146553        * bindings/v8/custom/V8HistoryCustom.cpp:
146554        (WebCore::V8History::stateAccessorGetter):
146555        * bindings/v8/custom/V8MessageEventCustom.cpp:
146556        (WebCore::V8MessageEvent::dataAccessorGetter):
146557        * bindings/v8/custom/V8MicroDataItemValueCustom.cpp:
146558        (WebCore::toV8):
146559        * bindings/v8/custom/V8NodeCustom.cpp:
146560        (WebCore::V8Node::insertBeforeCallback):
146561        (WebCore::V8Node::replaceChildCallback):
146562        (WebCore::V8Node::removeChildCallback):
146563        (WebCore::V8Node::appendChildCallback):
146564        * bindings/v8/custom/V8PopStateEventCustom.cpp:
146565        (WebCore::V8PopStateEvent::stateAccessorGetter):
146566        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
146567        (WebCore::V8SQLResultSetRowList::itemCallback):
146568        * bindings/v8/custom/V8TrackEventCustom.cpp:
146569        (WebCore::V8TrackEvent::trackAccessorGetter):
146570        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
146571        (WebCore::toV8Object):
146572        (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
146573        (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
146574
1465752012-12-04  Min Qin  <qinmin@chromium.org>
146576
146577        Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
146578        https://bugs.webkit.org/show_bug.cgi?id=103555
146579
146580        Reviewed by Stephen White.
146581
146582        Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
146583        No test added for now as impl side paiting is still WIP.
146584
146585        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
146586        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
146587        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
146588        (WebCore):
146589        (WebCore::LazyDecodingPixelRef::Decode):
146590        * platform/graphics/chromium/LazyDecodingPixelRef.h:
146591        (LazyDecodingPixelRef):
146592
1465932012-12-04  Takashi Sakamoto  <tasak@google.com>
146594
146595        Fix compile error when SVG is disabled.
146596
146597        Unreviewed gardening.
146598
146599        * css/StyleResolver.cpp:
146600        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
146601
1466022012-12-04  Anthony Scian  <ascian@rim.com>
146603
146604        Static code analysis warning fixes
146605        https://bugs.webkit.org/show_bug.cgi?id=103837
146606
146607        Reviewed by Rob Buis.
146608
146609        172,174: disable copy ctor, op= in AutofillBackingStore
146610        504,506: disable copy ctor, op= in CookieManager
146611        1488,1491: disable copy ctor, op= in RSSParserBase
146612        1489,1490: disable copy ctor, op= in RSSItem
146613        514,516: disable copy ctor, op= in CredentialBackingStore
146614        1363: m_state not initialized in ctor
146615
146616        * platform/blackberry/CookieManager.h:
146617        * platform/blackberry/PlatformTouchPointBlackBerry.cpp:
146618        (WebCore::PlatformTouchPoint::PlatformTouchPoint):
146619        * platform/network/blackberry/AutofillBackingStore.h:
146620        (AutofillBackingStore):
146621        * platform/network/blackberry/CredentialBackingStore.h:
146622        (CredentialBackingStore):
146623        * platform/network/blackberry/rss/RSSParserBase.h:
146624        (RSSParserBase):
146625
1466262012-12-04  Noel Gordon  <noel.gordon@gmail.com>
146627
146628        [v8] Improve worker.postMessage() string performance: avoid utf8 conversion
146629        https://bugs.webkit.org/show_bug.cgi?id=102230
146630
146631        Reviewed by Eric Seidel.
146632
146633        Avoid utf8 conversion when serializing strings with SerializedScriptValue. Provide 
146634        Ascii and UChar writers for v8 string serialization and provide a UChar reader for
146635        deserialization. Define/use serialization StringUCharTag to indicate UChar strings
146636        in the wire format. Increment the SerializedScriptValue wire format version.
146637
146638        In the wire format, StringUCharTag is followed by the string length in bytes, then
146639        the length/2 UChars of the string.
146640
146641        Note the string length is VarInt encoded. During serialization, compute the number
146642        of bytes used to encode the length and prepend a PaddingTag if needed so the UChar
146643        data appears on an even-byte boundary. This prevents unaligned reads of UChar data
146644        during deserialization (the deserialization buffer is even-byte aligned).
146645
146646        Testing transfers of large strings to and from workers indicates a 10X improvement
146647        in transfer rate for strings, and strings within js objects, with this change. For
146648        example, 500 MByte/s on my test machine (50 MByte/s without this change) for flat,
146649        32 MByte string postMessage() transfers.
146650
146651        Covered by platform/chromium/fast/storage/serialized-script-value.html
146652
146653        * bindings/v8/SerializedScriptValue.cpp:
146654
1466552012-12-04  Kentaro Hara  <haraken@chromium.org>
146656
146657        [V8] V8Binding::v8ExternalString() is redundant
146658        https://bugs.webkit.org/show_bug.cgi?id=103979
146659
146660        Reviewed by Adam Barth.
146661
146662        v8String(), v8StringOrNull() and v8StringOrUndefined() are enough.
146663        We can remove V8Binding::v8ExternalString().
146664
146665        No tests. No change in behavior.
146666
146667        * bindings/scripts/CodeGeneratorV8.pm:
146668        (GenerateNormalAttrGetter):
146669        * bindings/v8/ScriptController.cpp:
146670        (WebCore::ScriptController::compileAndRunScript):
146671        * bindings/v8/ScriptDebugServer.cpp:
146672        (WebCore::ScriptDebugServer::compileScript):
146673        * bindings/v8/V8Binding.h:
146674        (WebCore):
146675        (WebCore::v8String):
146676        (WebCore::v8StringOrNull):
146677        (WebCore::v8StringOrUndefined):
146678        * bindings/v8/V8LazyEventListener.cpp:
146679        (WebCore::V8LazyEventListener::prepareListenerObject):
146680        * bindings/v8/WorkerScriptController.cpp:
146681        (WebCore::WorkerScriptController::evaluate):
146682
1466832012-12-04  Kentaro Hara  <haraken@chromium.org>
146684
146685        [V8] Remove v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
146686        https://bugs.webkit.org/show_bug.cgi?id=103981
146687
146688        Reviewed by Adam Barth.
146689
146690        v8NonStringValueToWebCoreString() and v8NonStringValueToAtomicWebCoreString()
146691        are equivalent to what StringResource does.
146692
146693        No tests. No change in behavior.
146694
146695        * bindings/v8/V8Binding.cpp:
146696        * bindings/v8/V8Binding.h:
146697        (WebCore::toWebCoreString):
146698        (WebCore):
146699        (WebCore::toWebCoreStringWithNullCheck):
146700        (WebCore::toWebCoreStringWithUndefinedOrNullCheck):
146701        (WebCore::toWebCoreAtomicString):
146702        (WebCore::toWebCoreAtomicStringWithNullCheck):
146703        * bindings/v8/V8StringResource.h:
146704        (WebCore::V8StringResource::V8StringResource):
146705        (V8StringResource):
146706
1467072012-12-04  Abhishek Arya  <inferno@chromium.org>
146708
146709        Crash in WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode
146710        https://bugs.webkit.org/show_bug.cgi?id=103515
146711
146712        Reviewed by Ryosuke Niwa.
146713
146714        |current| is weak node pointer that iterates in the hierarchy chain
146715        between |highestAncestor| and |targetNode|. Script executed as part
146716        of iframe onload event can blow away the nodes and we no longer have
146717        |targetNode| in our descendants chain. So, we RefPtr |current| and bail
146718        out when |targetNode| stops being a part of descendant chain.
146719
146720        Test blocked on https://bugs.webkit.org/show_bug.cgi?id=104044.
146721
146722        * editing/ApplyStyleCommand.cpp:
146723        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
146724
1467252012-12-04  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
146726
146727        Avoid repeated calls to decorationColor on RenderObject::getTextDecorationColors
146728        https://bugs.webkit.org/show_bug.cgi?id=94131
146729
146730        Reviewed by Brent Fulgham.
146731
146732        Replaces repeated calls to decorationColor by adding a variable that reads the
146733        return value from that function just once on each loop and gets used upon need.
146734
146735        This change won't affect text decoration behavior, so current tests suffice.
146736
146737        * rendering/RenderObject.cpp:
146738        (WebCore::RenderObject::getTextDecorationColors):
146739
1467402012-12-04  Alpha Lam  <hclam@chromium.org>
146741
146742        [chromium] Implement cache eviction logic in ImageDecodingStore
146743        https://bugs.webkit.org/show_bug.cgi?id=103480
146744
146745        Reviewed by James Robinson.
146746
146747        This patch implements these features in the new image cache:
146748        - Least-recently-used eviction logic
146749        - Setting cache limit (default is 32MB)
146750        - Remove cache entries when ImageFrameGenerator is removed
146751
146752        New tests in ImageDecodingTestTest. Also covered by platform/chromium/virtual/deferred.
146753
146754        * platform/graphics/chromium/ImageDecodingStore.cpp:
146755        (WebCore::ImageDecodingStore::ImageDecodingStore):
146756        (WebCore::ImageDecodingStore::~ImageDecodingStore):
146757        Code to assert that everything is cleaned up.
146758        (WebCore::ImageDecodingStore::lockCompleteCache):
146759        (WebCore::ImageDecodingStore::unlockCache):
146760        (WebCore::ImageDecodingStore::insertAndLockCache):
146761        (WebCore::ImageDecodingStore::removeCacheIndexedByGenerator):
146762        New method to remove all cache entries index by ImageFrameGenerator.
146763        (WebCore):
146764        (WebCore::ImageDecodingStore::setCacheLimitInBytes):
146765        (WebCore::ImageDecodingStore::memoryUsageInBytes):
146766        (WebCore::ImageDecodingStore::cacheEntries):
146767        (WebCore::ImageDecodingStore::prune):
146768        New code to implement LRU eviction logic.
146769        (WebCore::ImageDecodingStore::insertCacheInternal):
146770        New method to help new cache insertion. This is separately because it touches 3 containers.
146771        (WebCore::ImageDecodingStore::removeFromCacheInternal):
146772        New method to help remove a cache entry from containers.
146773        (WebCore::ImageDecodingStore::removeFromCacheListInternal):
146774        New helper method to help remove cache entry from doubly linked list.
146775        * platform/graphics/chromium/ImageDecodingStore.h:
146776        (ImageDecodingStore):
146777        (CacheEntry):
146778        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
146779        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
146780        (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
146781        (WebCore::ImageDecodingStore::CacheEntry::cacheKey):
146782        (WebCore::ImageDecodingStore::CacheEntry::cachedImage):
146783        (WebCore::ImageDecodingStore::CacheEntry::useCount):
146784        (WebCore::ImageDecodingStore::CacheEntry::incrementUseCount):
146785        (WebCore::ImageDecodingStore::CacheEntry::decrementUseCount):
146786        (WebCore::ImageDecodingStore::CacheEntry::memoryUsageInBytes):
146787        (WebCore::ImageDecodingStore::incrementMemoryUsage):
146788        (WebCore::ImageDecodingStore::decrementMemoryUsage):
146789        New helper methods.
146790        * platform/graphics/chromium/ImageFrameGenerator.cpp:
146791        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
146792
1467932012-12-04  Andreas Kling  <akling@apple.com>
146794
146795        Style sharing: Allow sharing between elements with classes not referenced by any selectors.
146796        <http://webkit.org/b/103925>
146797
146798        Reviewed by Antti Koivisto.
146799
146800        When looking for elements that can share style, instead of blindly rejecting candidates with
146801        a different "class" attribute, check if it's actually referenced by any of the tracked style rules.
146802        It's surprisingly common for web pages to have elements with classes to which no rules apply,
146803        mediawiki content is especially good at this.
146804
146805        ~2100 new sharing "hits" on <https://en.wikipedia.org/wiki/Steve_Jobs>.
146806
146807        * css/StyleResolver.cpp:
146808        (WebCore::StyleResolver::canShareStyleWithElement):
146809
146810            Don't bail early if the two elements have different return values for hasClass().
146811
146812        (WebCore::StyleResolver::classNamesAffectedByRules):
146813
146814            Helper function that returns whether a SpaceSplitString contains a class name referenced
146815            by any style rules.
146816
146817        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
146818
146819            Make this a member function since we need access to m_features.classesInRules.
146820
146821        * css/StyleResolver.h:
146822        (StyleResolver):
146823        * css/StyleResolver.cpp:
146824        (WebCore::StyleResolver::locateSharedStyle):
146825
146826            Cache whether the element we're resolving style for has a "class" attribute referenced by style rules.
146827
1468282012-12-04  Silvia Pfeiffer  <silviapf@chromium.org>
146829
146830        Refactor Media Control Elements to remove code duplication.
146831        https://bugs.webkit.org/show_bug.cgi?id=101877
146832
146833        Reviewed by Eric Carlson.
146834
146835        Instead of having two different types of inheritance trees for
146836        MediaControlElement and MediaControlInputElement, this
146837        creates a stand-alone virtual class MediaControlElement that
146838        provides the common functions: show(), hide(), isShowing(),
146839        setMediaController(), displayType(), isMediaControlElement(),
146840        shadowPseudoId(), mediaController(), setDisplayType().
146841
146842        The individual elements inherit from MediaControlElement and
146843        either HTMLInputElement or HTMLDivElement. They extend/override
146844        the base functions as appropriate.
146845
146846        As part of this, the RenderXXX classes mixed in between the media
146847        controls in MediaControlElements.cpp are also moved to
146848        rendering/RenderMediaControls.h/cpp to follow common code separation.
146849
146850        No new tests since this is just a refactoring.
146851
146852        * CMakeLists.txt:
146853        * GNUmakefile.list.am:
146854        * Target.pri:
146855        * WebCore.gypi:
146856        * WebCore.vcproj/WebCore.vcproj:
146857        * WebCore.xcodeproj/project.pbxproj:
146858        Build files extended with new files.
146859
146860        * html/HTMLMediaElement.h:
146861        (WebCore::HTMLMediaElement::textTracksIndexNotFound):
146862        Replaced const with function, since it is used in multiple files.
146863
146864        * html/shadow/MediaControlElementTypes.cpp: new file
146865        * html/shadow/MediaControlElementTypes.h: new file
146866        Added new MediaControlElement class. Moved MediaControlDivElement and MediaControlInputElement
146867        classes into these files from MediaControlElements.cpp/h. Moved MediaControlElementTypes enum
146868        into these. Moved other media control element classes that are the basis for inheriting media
146869        control elements into these (MediaControlTimeDisplayElement, MediaControlMuteButtonElement,
146870        MediaControlSeekButtonElement, MediaControlVolumeSliderElement).
146871
146872        * html/shadow/MediaControlElements.cpp:
146873        * html/shadow/MediaControlElements.h:
146874        Removed common functions between media elements that are now in the common
146875        base class MediaControlElement.
146876        Also moved common base classes to MediaControlElementTypes.h/cpp
146877
146878        * html/shadow/MediaControls.cpp:
146879        * html/shadow/MediaControls.h:
146880        Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
146881        to be consistent in inheritance tree. Updated copyright date.
146882
146883        * html/shadow/MediaControlsApple.cpp:
146884        * html/shadow/MediaControlsApple.h:
146885        Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
146886        to be consistent in inheritance tree. Updated copyright dates.n
146887
146888        * html/shadow/MediaControlsChromium.cpp:
146889        * html/shadow/MediaControlsChromium.h:
146890        Renamed MediaControlVolumeSliderElement to MediaControlPanelVolumeSliderElement
146891        to be consistent in inheritance tree.
146892        Moved enclosure element definitions to common MediaControlElements.cpp/h
146893        file through which different media elements are made available to different ports.
146894
146895        * html/shadow/MediaControlsChromiumAndroid.cpp:
146896        * html/shadow/MediaControlsChromiumAndroid.h:
146897        Moved enclosure for overlay button to MediaControlElements.cpp/h files
146898        through which different media elements are made available to different ports.
146899
146900        * rendering/RenderMediaControlElements.cpp: new file
146901        * rendering/RenderMediaControlElements.h: new file
146902        Moved rendering classes for media control elements into these files from
146903        MediaControlElements.cpp/h.
146904
146905        * rendering/RenderThemeMac.mm:
146906        Added new RenderMediaControlElements.h file.
146907
146908        * rendering/RenderingAllInOne.cpp:
146909        Added new RenderMediaControlEleemnt.cpp file.
146910
1469112012-12-04  Kenneth Russell  <kbr@google.com>
146912
146913        Associate URLs with GraphicsContext3D instances created for WebGL
146914        https://bugs.webkit.org/show_bug.cgi?id=103793
146915
146916        Reviewed by Adam Barth.
146917
146918        Pass down the URL of the topmost frame's document creating the
146919        WebGL context to the platform layer through
146920        GraphicsContext3D::Attributes.
146921
146922        Not feasible to write a layout test for this change; has no
146923        user-visible effect. Tested manually with failure injection in
146924        Chromium port.
146925
146926        * html/canvas/WebGLRenderingContext.cpp:
146927        (WebCore):
146928        (WebCore::WebGLRenderingContext::create):
146929            Pass top document's URL in context creation attributes.
146930        * platform/chromium/support/GraphicsContext3DChromium.cpp:
146931        (WebCore::GraphicsContext3D::create):
146932            Pass URL through WebKit API.
146933        * platform/graphics/GraphicsContext3D.h:
146934        (Attributes):
146935            Add top document's URL to context creation attributes.
146936
1469372012-12-04  Yury Semikhatsky  <yurys@chromium.org>
146938
146939        Web Inspector: simplify reportMemoryUsage signature
146940        https://bugs.webkit.org/show_bug.cgi?id=104028
146941
146942        Reviewed by Vsevolod Vlasov.
146943
146944        Removed const& modifier from instrumented pointer type. Was const T* const&,
146945        now it is const T*
146946
146947        * platform/graphics/NativeImagePtr.h:
146948        (WebCore):
146949        * platform/graphics/skia/NativeImageSkia.cpp:
146950        (WebCore::reportMemoryUsage):
146951
1469522012-12-04  Adam Barth  <abarth@webkit.org>
146953
146954        [V8] Rename V8DOMWrapper member functions to be more descriptive
146955        https://bugs.webkit.org/show_bug.cgi?id=104069
146956
146957        Reviewed by Eric Seidel.
146958
146959        In addition to the renames, this patch also inline lookupDOMWrapper
146960        into its callers.
146961
146962        * bindings/scripts/CodeGeneratorV8.pm:
146963        (GenerateDomainSafeFunctionGetter):
146964        (GenerateDomainSafeFunctionSetter):
146965        (GenerateNormalAttrGetter):
146966        (GenerateSingleConstructorCallback):
146967        (GenerateEventConstructorCallback):
146968        (GenerateNamedConstructorCallback):
146969        (GenerateToV8Converters):
146970        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
146971        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
146972        * bindings/v8/Dictionary.cpp:
146973        (WebCore::Dictionary::get):
146974        * bindings/v8/PageScriptDebugServer.cpp:
146975        (WebCore::retrieveFrameWithGlobalObjectCheck):
146976        * bindings/v8/V8Binding.cpp:
146977        (WebCore::toDOMWindow):
146978        (WebCore::toScriptExecutionContext):
146979        * bindings/v8/V8DOMWindowShell.cpp:
146980        (WebCore::V8DOMWindowShell::clearForNavigation):
146981        (WebCore::V8DOMWindowShell::installDOMWindow):
146982        * bindings/v8/V8DOMWrapper.cpp:
146983        (WebCore::V8DOMWrapper::create):
146984        * bindings/v8/V8DOMWrapper.h:
146985        (V8DOMWrapper):
146986        (WebCore::V8DOMWrapper::setNativeInfo):
146987        (WebCore::V8DOMWrapper::clearNativeInfo):
146988        (WebCore::V8DOMWrapper::associateObjectWithWrapper):
146989        * bindings/v8/V8Initializer.cpp:
146990        (WebCore::findFrame):
146991        * bindings/v8/V8NPObject.cpp:
146992        (WebCore::createV8ObjectForNPObject):
146993        (WebCore::forgetV8ObjectForNPObject):
146994        * bindings/v8/WorkerScriptController.cpp:
146995        (WebCore::WorkerScriptController::initializeContextIfNeeded):
146996        (WebCore::WorkerScriptController::controllerForContext):
146997        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
146998        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
146999        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
147000        (WebCore::wrapArrayBufferView):
147001        (WebCore::constructWebGLArray):
147002        * bindings/v8/custom/V8AudioContextCustom.cpp:
147003        (WebCore::V8AudioContext::constructorCallbackCustom):
147004        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
147005        (WebCore::V8DOMFormData::constructorCallbackCustom):
147006        * bindings/v8/custom/V8DOMWindowCustom.cpp:
147007        (WebCore::V8DOMWindow::eventAccessorGetter):
147008        (WebCore::V8DOMWindow::eventAccessorSetter):
147009        (WebCore::V8DOMWindow::toStringCallback):
147010        (WebCore::V8DOMWindow::namedSecurityCheck):
147011        (WebCore::V8DOMWindow::indexedSecurityCheck):
147012        (WebCore::toV8):
147013        * bindings/v8/custom/V8DataViewCustom.cpp:
147014        (WebCore::V8DataView::constructorCallbackCustom):
147015        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
147016        (WebCore::V8HTMLDocument::wrapInShadowObject):
147017        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
147018        (WebCore::v8HTMLImageElementConstructorCallback):
147019        * bindings/v8/custom/V8InjectedScriptManager.cpp:
147020        (WebCore::createInjectedScriptHostV8Wrapper):
147021        (WebCore::InjectedScriptManager::canAccessInspectedWindow):
147022        * bindings/v8/custom/V8IntentCustom.cpp:
147023        (WebCore::V8Intent::constructorCallbackCustom):
147024        * bindings/v8/custom/V8LocationCustom.cpp:
147025        (WebCore::V8Location::reloadAccessorGetter):
147026        (WebCore::V8Location::replaceAccessorGetter):
147027        (WebCore::V8Location::assignAccessorGetter):
147028        * bindings/v8/custom/V8MessageChannelCustom.cpp:
147029        (WebCore::V8MessageChannel::constructorCallbackCustom):
147030        * bindings/v8/custom/V8MessageEventCustom.cpp:
147031        (WebCore::V8MessageEvent::initMessageEventCallback):
147032        * bindings/v8/custom/V8MutationObserverCustom.cpp:
147033        (WebCore::V8MutationObserver::constructorCallbackCustom):
147034        * bindings/v8/custom/V8ScriptProfileCustom.cpp:
147035        (WebCore::toV8):
147036        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
147037        (WebCore::toV8):
147038        * bindings/v8/custom/V8WebKitPointCustom.cpp:
147039        (WebCore::V8WebKitPoint::constructorCallbackCustom):
147040        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
147041        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
147042
1470432012-12-04  Adam Barth  <abarth@webkit.org>
147044
147045        [V8] Cleanup style in V8DOMWrapper
147046        https://bugs.webkit.org/show_bug.cgi?id=104062
147047
147048        Reviewed by Kentaro Hara.
147049
147050        This patch moves a number of functions from inside the class
147051        declaration to below the class declaration. I've also inlined
147052        domWrapperType into each of its callers and renamed a few functions.
147053        A subsequent patch will improve the names of the remaining functions.
147054
147055        * bindings/scripts/CodeGeneratorV8.pm:
147056        (GenerateToV8Converters):
147057        * bindings/v8/ScriptProfiler.cpp:
147058        (WebCore::ScriptProfiler::visitExternalArrays):
147059        * bindings/v8/V8Collection.h:
147060        (WebCore::getNamedPropertyOfCollection):
147061        (WebCore::getIndexedPropertyOfCollection):
147062        * bindings/v8/V8DOMWrapper.cpp:
147063        (WebCore::V8DOMWrapper::instantiateDOMWrapper):
147064        (WebCore::V8DOMWrapper::isWrapperOfType):
147065        * bindings/v8/V8DOMWrapper.h:
147066        (V8DOMWrapper):
147067        (WebCore::V8DOMWrapper::setWrapperClass):
147068        (WebCore::V8DOMWrapper::setDOMWrapper):
147069        (WebCore):
147070        (WebCore::V8DOMWrapper::clearDOMWrapper):
147071        (WebCore::V8DOMWrapper::lookupDOMWrapper):
147072        (WebCore::V8DOMWrapper::createDOMWrapper):
147073        * bindings/v8/V8GCController.cpp:
147074        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
147075        (WebCore::V8InspectorFrontendHost::showContextMenuCallback):
147076
1470772012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>
147078
147079        Unreviewed, rolling out r136597.
147080        http://trac.webkit.org/changeset/136597
147081        https://bugs.webkit.org/show_bug.cgi?id=104065
147082
147083        broke Windows compilation (Requested by yurys on #webkit).
147084
147085        * platform/graphics/NativeImagePtr.h:
147086        (WebCore):
147087        * platform/graphics/skia/NativeImageSkia.cpp:
147088        (WebCore::reportMemoryUsage):
147089
1470902012-12-04  Yury Semikhatsky  <yurys@chromium.org>
147091
147092        Web Inspector: simplify reportMemoryUsage signature
147093        https://bugs.webkit.org/show_bug.cgi?id=104028
147094
147095        Reviewed by Vsevolod Vlasov.
147096
147097        Removed const& modifier from instrumented pointer type. Was const T* const&,
147098        now it is const T*
147099
147100        * platform/graphics/NativeImagePtr.h:
147101        (WebCore):
147102        * platform/graphics/skia/NativeImageSkia.cpp:
147103        (WebCore::reportMemoryUsage):
147104
1471052012-12-04  Adam Barth  <abarth@webkit.org>
147106
147107        [V8] V8DOMWrapper shouldn't know about NodeFilter
147108        https://bugs.webkit.org/show_bug.cgi?id=104057
147109
147110        Reviewed by Kentaro Hara.
147111
147112        This patch just moves this code into V8Bindings.h, which is where we
147113        have our other type conversion functions. It's too bad that we still
147114        need to special case NodeFilter, but fixing that is going to be a bit
147115        more work.
147116
147117        * bindings/scripts/CodeGeneratorV8.pm:
147118        (JSValueToNative):
147119        * bindings/v8/V8Binding.cpp:
147120        (WebCore::toNodeFilter):
147121        (WebCore):
147122        * bindings/v8/V8Binding.h:
147123        (WebCore):
147124        * bindings/v8/V8DOMWrapper.cpp:
147125        * bindings/v8/V8DOMWrapper.h:
147126        (WebCore):
147127        (V8DOMWrapper):
147128
1471292012-12-04  Simon Fraser  <simon.fraser@apple.com>
147130
147131        Show a mini visualizer for the tile cache tiles
147132        https://bugs.webkit.org/show_bug.cgi?id=104053
147133
147134        Reviewed by Beth Dakin.
147135
147136        Replace the current red/green/yellow scrolling indicator with a
147137        mini map of the tile cache that shows the current tiles, and the
147138        visible rect.
147139        
147140        Visibility is controlled via a new preference.
147141
147142        * WebCore.exp.in: Add Settings::setShowTiledScrollingIndicator(bool),
147143        and remove ScrollingTree::setDebugRootLayer(CALayer*)
147144        * WebCore.xcodeproj/project.pbxproj: Remove ScrollingTreeMac.mm which
147145        is no longer needed; it just contained debug layer stuff.
147146        * page/Settings.cpp:
147147        (WebCore::Settings::Settings): Support the new setting.
147148        (WebCore::Settings::setShowTiledScrollingIndicator):
147149        * page/Settings.h:
147150        (WebCore::Settings::showTiledScrollingIndicator):
147151        * page/scrolling/ScrollingTree.cpp:
147152        (WebCore::ScrollingTree::commitNewTreeState): We no longer update the debug
147153        indicator on tree commit.
147154        * page/scrolling/ScrollingTree.h:
147155        (WebCore::ScrollingTree::hasWheelEventHandlers): Needed for the tiled
147156        scrolling indicator.
147157        (ScrollingTree):
147158        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
147159        (WebCore::ScrollingCoordinatorMac::commitTreeState): Tell the TiledBacking
147160        about the current scrolling mode.
147161        * page/scrolling/mac/ScrollingTreeMac.mm: Removed.
147162        * platform/graphics/TiledBacking.h: Add functions to set the indicator scrolling
147163        mode, and to get the tiled scrolling indicator layer. This has to be parented by
147164        the DrawingArea, to ensure that it's in front of all other layers.
147165        * platform/graphics/ca/mac/TileCache.h:
147166        (WebCore::TileCache::scale): Exposed for the indicator drawing code to use.
147167        * platform/graphics/ca/mac/TileCache.mm:
147168        (-[WebTileCacheMapLayer init]): The indicator has a sublayer which renders the
147169        visible rect frame, owned by it.
147170        (-[WebTileCacheMapLayer drawInContext:]):
147171        (WebCore::TileCache::TileCache): The indicator mode has to be stored here,
147172        since it can be pushed down before we have an indicator layer.
147173        (WebCore::TileCache::~TileCache): Clear the TileCache on the indicator layer, which
147174        may outlive us.
147175        (WebCore::TileCache::revalidateTiles): Call updateTileCoverageMap().
147176        (WebCore::TileCache::updateTileCoverageMap): Resize the indicator layer to fit
147177        within the window, and update the indicator color.
147178        (WebCore::TileCache::tiledScrollingIndicatorLayer): Create and initialize the layer.
147179        (WebCore::TileCache::setScrollingModeIndication):
147180        (WebCore::TileCache::drawTileMapContents): Draw small white rects for the tiles over
147181        an translucent gray background.
147182
1471832012-12-04  David Grogan  <dgrogan@chromium.org>
147184
147185        IndexedDB: Propagate more leveldb errors to IDBIndex and IDBObjectStore
147186        https://bugs.webkit.org/show_bug.cgi?id=103782
147187
147188        Reviewed by Tony Chang.
147189
147190        index.get[Key]() and objectStore.get() will receive more error events.
147191
147192        * Modules/indexeddb/IDBBackingStore.cpp:
147193        (WebCore::IDBBackingStore::getRecord):
147194        (WebCore::versionExists):
147195        (WebCore::IDBBackingStore::findKeyInIndex):
147196        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
147197        (WebCore::IDBBackingStore::keyExistsInIndex):
147198        * Modules/indexeddb/IDBBackingStore.h:
147199        (IDBBackingStore):
147200        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
147201        (WebCore::IDBIndexBackendImpl::getInternal):
147202        (WebCore::IDBIndexBackendImpl::getKeyInternal):
147203        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
147204        (WebCore::IDBObjectStoreBackendImpl::getInternal):
147205        (WebCore):
147206
1472072012-12-04  Kentaro Hara  <haraken@chromium.org>
147208
147209        [V8] Remove IntegerCache::m_initialized
147210        https://bugs.webkit.org/show_bug.cgi?id=103978
147211
147212        Reviewed by Adam Barth.
147213
147214        Thanks to r136479, we can now initialize V8 integers in IntegerCache's
147215        constructor. We can remove IntegerCache::m_initialized, which slightly
147216        improves performance.
147217
147218        [Bindings/scroll-top.html in Chromium/Linux]
147219        Before this patch: 285 runs/sec, 281 runs/sec, 281 runs/sec, 280 runs/sec
147220        After this patch : 290 runs/sec, 291 runs/sec, 297 runs/sec, 291 runs/sec
147221
147222        No tests. No change in behavior.
147223
147224        * bindings/v8/V8ValueCache.cpp:
147225        (WebCore::IntegerCache::IntegerCache):
147226        (WebCore::IntegerCache::~IntegerCache):
147227        * bindings/v8/V8ValueCache.h:
147228        (IntegerCache):
147229        (WebCore::IntegerCache::v8Integer):
147230        (WebCore::IntegerCache::v8UnsignedInteger):
147231        (WebCore):
147232
1472332012-12-04  Kentaro Hara  <haraken@chromium.org>
147234
147235        [V8] Replace String::New("symbol") with String::NewSymbol("symbol")
147236        https://bugs.webkit.org/show_bug.cgi?id=103989
147237
147238        Reviewed by Adam Barth.
147239
147240        In V8, a symbol lookup is faster than a string lookup. We should use
147241        String::NewSymbol("symbol") for symbols.
147242
147243        No tests. No change in behavior.
147244
147245        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
147246        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
147247        (WebCore::V8HTMLCanvasElement::getContextCallback):
147248        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
147249        (WebCore::V8InjectedScriptHost::typeCallback):
147250        (WebCore::V8InjectedScriptHost::functionDetailsCallback):
147251        (WebCore::getJSListenerFunctions):
147252        * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
147253        (WebCore::populateContextMenuItems):
147254
1472552012-12-04  Julien Chaffraix  <jchaffraix@webkit.org>
147256
147257        [CSS Grid Layout] Implement CSS parsing and handling for <track-minmax>
147258        https://bugs.webkit.org/show_bug.cgi?id=103799
147259
147260        Reviewed by Tony Chang.
147261
147262        This change adds support for:
147263        <track-minmax> => minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth>
147264        (note that we already supported auto | <track-breadth>).
147265
147266        The change is mostly mechanical, the only newness is that GridTrackSize was updated to
147267        hold 2 Lengths internally and we map the single Length case to 2 by duplicating the value
147268        as this matches the rendering algorithm in the spec.
147269
147270        Tests: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html
147271               fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js
147272
147273        * css/CSSComputedStyleDeclaration.cpp:
147274        (WebCore::valueForGridTrackBreadth):
147275        Changed the function to do the conversion of one track breadth (one Length).
147276        This was forgotten in the preparatory change in bug 103703.
147277
147278        (WebCore::valueForGridTrackMinMax):
147279        Convert the value back using valueForGridTrackBreadth.
147280
147281        * css/CSSFunctionValue.cpp:
147282        (WebCore::CSSFunctionValue::CSSFunctionValue):
147283        * css/CSSFunctionValue.h:
147284        (WebCore::CSSFunctionValue::create):
147285        (CSSFunctionValue):
147286        Added a new constructor. This enables us to return minmax(..., ...) when queried
147287        from JavaScript. I couldn't find a better way to serialize inside CSSComputedStyleDeclaration
147288        so that it properly match the function output.
147289
147290        * css/CSSParser.cpp:
147291        (WebCore::CSSParser::parseGridTrackMinMax):
147292        Added parsing for the new syntax. We convert the 2 values into a Pair if we manage to
147293        parse both values correctly.
147294
147295        * css/StyleResolver.cpp:
147296        (WebCore::createGridTrackMinMax):
147297        Updated to handle a Pair - for minmax - and set the 2 values on GridTrackSize.
147298
147299        * rendering/RenderGrid.cpp:
147300        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
147301        Updated to check the style. For now, we don't handle minmax values.
147302
147303        * rendering/style/GridTrackSize.h:
147304        (WebCore::GridTrackSize::GridTrackSize):
147305        (WebCore::GridTrackSize::length):
147306        (WebCore::GridTrackSize::setLength):
147307        (WebCore::GridTrackSize::minTrackBreadth):
147308        (WebCore::GridTrackSize::maxTrackBreadth):
147309        (WebCore::GridTrackSize::setMinMax):
147310        (WebCore::GridTrackSize::operator==):
147311        Updated the class to handle minmax values. This means that we now always store
147312        2 values (the <length> case being a subset of minmax, however we kept the distinction
147313        to be able to reconstruct a <length> for getComputedStyle).
147314
1473152012-12-04  Elliott Sprehn  <esprehn@chromium.org>
147316
147317        parser* methods in ContainerNode should not support DocumentFragment
147318        https://bugs.webkit.org/show_bug.cgi?id=103965
147319
147320        Reviewed by Darin Adler.
147321
147322        Only parserInsertBefore ever supported DocumentFragment and this feature
147323        is never used. It appears this code ended up in parserInsertBefore when
147324        it was created as a copy of insertBefore that didn't fire events. This
147325        patch removes that code and adds assertions that we never pass
147326        DocumentFragments since doing so would cause a corrupted tree as we never
147327        check checkAcceptChild or do other validation in the parser methods.
147328
147329        No new tests, just refactoring.
147330
147331        * dom/ContainerNode.cpp:
147332        (WebCore::ContainerNode::parserInsertBefore):
147333        (WebCore::ContainerNode::parserRemoveChild):
147334        (WebCore::ContainerNode::parserAppendChild):
147335
1473362012-12-04  Elliott Sprehn  <esprehn@gmail.com>
147337
147338        Simplify ShadowRoot::cloneNode(bool,ExceptionCode)
147339        https://bugs.webkit.org/show_bug.cgi?id=103928
147340
147341        Reviewed by Dimitri Glazkov.
147342
147343        ShadowRoot can never be cloned and ShadowRoot::cloneNode(bool) always
147344        returns null so there's no reason to have code in the cloneNode method
147345        for script that acts as if it may not return null.
147346
147347        * dom/ShadowRoot.cpp:
147348        (WebCore::ShadowRoot::cloneNode):
147349
1473502012-12-04  Elliott Sprehn  <esprehn@chromium.org>
147351
147352        setIsInTopLayer is not really a setter
147353        https://bugs.webkit.org/show_bug.cgi?id=103912
147354
147355        Reviewed by Eric Seidel.
147356
147357        Element::setInTopLayer isn't just a setter, it also adds the element
147358        to the top layer vector in the document which changes it's display and
147359        causes a reattach.
147360
147361        To make this more obvious make HTMLDialogElement use the methods on
147362        Document and make those update the state boolean.
147363
147364        There also doesn't seem to be any reason for setInTopLayer
147365        or isInTopLayer to be virtual, it appears it was a typo.
147366
147367        No new tests, just refactoring.
147368
147369        * dom/Document.cpp:
147370        (WebCore::Document::addToTopLayer):
147371        (WebCore::Document::removeFromTopLayer):
147372        * dom/Element.cpp:
147373        (WebCore::Element::setIsInTopLayer):
147374        * dom/Element.h:
147375        * html/HTMLDialogElement.cpp:
147376        (WebCore::HTMLDialogElement::close):
147377        (WebCore::HTMLDialogElement::showModal):
147378
1473792012-12-04  Elliott Sprehn  <esprehn@chromium.org>
147380
147381        Automatically handle suspend and resume of post attach callbacks
147382        https://bugs.webkit.org/show_bug.cgi?id=103910
147383
147384        Reviewed by Eric Seidel.
147385
147386        Use RAII to handle suspend and resume of post attach callbacks since
147387        they should always be called in pairs.
147388
147389        No new tests, just refactoring.
147390
147391        * dom/ContainerNode.h:
147392        (PostAttachCallbackDisabler):
147393        (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
147394        (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
147395        (ContainerNode):
147396        * dom/Document.cpp:
147397        (WebCore::Document::recalcStyle):
147398        * dom/Element.cpp:
147399        (WebCore::Element::attach):
147400        * html/HTMLFormControlElement.cpp:
147401        (WebCore::HTMLFormControlElement::attach):
147402        * html/HTMLInputElement.cpp:
147403        (WebCore::HTMLInputElement::attach):
147404        * html/HTMLPlugInImageElement.cpp:
147405        (WebCore::HTMLPlugInImageElement::attach):
147406        (WebCore):
147407
1474082012-12-04  Elliott Sprehn  <esprehn@chromium.org>
147409
147410        createRareData should return a PassOwnPtr
147411        https://bugs.webkit.org/show_bug.cgi?id=103851
147412
147413        Reviewed by Eric Seidel.
147414
147415        createRareData should return a PassOwnPtr, not an OwnPtr since it's
147416        transfering ownership.
147417
147418        * dom/Element.cpp:
147419        (WebCore::Element::createRareData):
147420        * dom/Element.h:
147421        (Element):
147422        * dom/Node.cpp:
147423        (WebCore::Node::createRareData):
147424        * dom/Node.h:
147425
1474262012-12-04  Filip Pizlo  <fpizlo@apple.com>
147427
147428        Rename Profiler to LegacyProfiler
147429        https://bugs.webkit.org/show_bug.cgi?id=104031
147430
147431        Rubber stamped by Mark Hahnenberg
147432
147433        Just renaming, no new tests.
147434
147435        * ForwardingHeaders/profiler/LegacyProfiler.h: Copied from Source/WebCore/ForwardingHeaders/profiler/Profiler.h.
147436        * ForwardingHeaders/profiler/Profiler.h: Removed.
147437        * bindings/js/ScriptProfiler.cpp:
147438        (WebCore::ScriptProfiler::start):
147439        (WebCore::ScriptProfiler::stop):
147440
1474412012-12-04  James Simonsen  <simonjam@chromium.org>
147442
147443        [User Timing] Fix clang build by removing need for exit time destructor
147444        https://bugs.webkit.org/show_bug.cgi?id=104036
147445
147446        Reviewed by Tony Gentilcore.
147447
147448        Modeled after r99588.
147449
147450        No new tests. No change in functionality.
147451
147452        * page/PerformanceUserTiming.cpp:
147453        (WebCore::UserTiming::UserTiming):
147454        (WebCore::UserTiming::mark):
147455        (WebCore::UserTiming::findExistingMarkStartTime):
147456        * page/PerformanceUserTiming.h:
147457        (UserTiming):
147458
1474592012-12-04  James Simonsen  <simonjam@chromium.org>
147460
147461        [User Timing] Fix negative durations
147462        https://bugs.webkit.org/show_bug.cgi?id=104038
147463
147464        Reviewed by Tony Gentilcore.
147465
147466        At some point, we went from passing in a duration to passing in the end time. User Timing
147467        wasn't updated.
147468
147469        Tests: http/tests/w3c/webperf/submission/Intel/user-timing
147470
147471        * page/PerformanceMark.h:
147472        (WebCore::PerformanceMark::PerformanceMark):
147473        * page/PerformanceUserTiming.cpp:
147474        (WebCore::UserTiming::measure):
147475
1474762012-12-04  Abhishek Arya  <inferno@chromium.org>
147477
147478        Heap-use-after-free in WebCore::StyleCachedImageSet::cssValue
147479        https://bugs.webkit.org/show_bug.cgi?id=100621
147480
147481        Reviewed by Eric Seidel.
147482
147483        r115639 fixed a memory leak caused by reference cycle between StyleCachedImageSet
147484        and its owner CSSImageSetValue. The fix caused StyleCachedImageSet to maintain
147485        a weak pointer to CSSImageSetValue. This patch makes sure that the weak pointer
147486        is cleared when CSSImageSetValue is going away.
147487
147488        Test: fast/css/image-set-value-not-removed-crash.html
147489
147490        * css/CSSImageSetValue.cpp:
147491        (WebCore::CSSImageSetValue::~CSSImageSetValue):
147492        * rendering/style/StyleCachedImageSet.h:
147493        (WebCore::StyleCachedImageSet::clearImageSetValue):
147494        (StyleCachedImageSet):
147495
1474962012-12-04  Adam Barth  <abarth@webkit.org>
147497
147498        NodeFilter leaks memory in V8
147499        https://bugs.webkit.org/show_bug.cgi?id=104027
147500
147501        Reviewed by Eric Seidel.
147502
147503        NodeFilter holds a RefPtr to NodeFilterCondition, which holds a
147504        ScopedPersistent to its callback function. If the callback function can
147505        see the NodeFilter wrapper, we have a cycle and a leak.
147506
147507        This patch makes the NodeFilterCondition hold a weak pointer to the
147508        callback function and ties the lifetime of that callback function to
147509        the NodeFilter wrapper (so they live and die together).
147510
147511        * bindings/v8/V8GCController.cpp:
147512        * bindings/v8/V8NodeFilterCondition.cpp:
147513        (WebCore::V8NodeFilterCondition::V8NodeFilterCondition):
147514        (WebCore::V8NodeFilterCondition::weakCallback):
147515        (WebCore):
147516        (WebCore::V8NodeFilterCondition::acceptNode):
147517        * bindings/v8/V8NodeFilterCondition.h:
147518        (WebCore::V8NodeFilterCondition::create):
147519        (V8NodeFilterCondition):
147520        (WebCore::V8NodeFilterCondition::callback):
147521        * dom/NodeFilter.h:
147522        (WebCore::NodeFilter::condition):
147523
1475242012-12-04  Abhishek Arya  <inferno@chromium.org>
147525
147526        Crash in CachedResource::checkNotify due to -webkit-crossfade.
147527        https://bugs.webkit.org/show_bug.cgi?id=98068
147528
147529        Reviewed by Nate Chapin.
147530
147531        Make sure to not re-add the same client again for |m_cachedFromImage|
147532        and |m_cachedToImage|. This would otherwise cause the CSSCrossfadeValue
147533        client to not get removed from its cached image resource (when it is
147534        going away).
147535
147536        Test: fast/images/crossfade-client-not-removed-crash.html
147537
147538        * css/CSSCrossfadeValue.cpp:
147539        (WebCore::CSSCrossfadeValue::loadSubimages):
147540
1475412012-12-04  Julien Chaffraix  <jchaffraix@webkit.org>
147542
147543        Heap-use-after-free in WebCore::RenderLayer::paintList [MathML]
147544        https://bugs.webkit.org/show_bug.cgi?id=100764
147545
147546        Reviewed by Eric Seidel.
147547
147548        Test: mathml/mfenced-root-layer.html
147549
147550        * rendering/RenderLayer.cpp:
147551        (WebCore::RenderLayer::stackingContext):
147552        Fixed this function to ensure that it always returns a stacking context, the bug
147553        was that the document element's layer wasn't guaranteed to be a stacking context.
147554
1475552012-12-04  Adam Barth  <abarth@webkit.org>
147556
147557        [V8] GetNativeType in CodeGeneratorV8.pm needs a bath
147558        https://bugs.webkit.org/show_bug.cgi?id=104022
147559
147560        Reviewed by Eric Seidel.
147561
147562        This change shouldn't have any effect on the generated code.
147563
147564        * bindings/scripts/CodeGeneratorV8.pm:
147565        (GetNativeType):
147566            - DOMUserData was removed in 2005. There's no need for the code
147567              generator to still know about it.
147568        (JSValueToNative):
147569        (ConvertToV8StringResource):
147570
1475712012-12-04  Adam Barth  <abarth@webkit.org>
147572
147573        [V8] EventTarget shouldn't be a special snowflake
147574        https://bugs.webkit.org/show_bug.cgi?id=104018
147575
147576        Reviewed by Eric Seidel.
147577
147578        Previously we special-cased the toV8 operation for event targets.
147579        There's no need for that. We can use IDL attribute to handle
147580        EventTarget using the same general-purpose code that we use for other
147581        interfaces.
147582
147583        * WebCore.gypi:
147584        * bindings/scripts/CodeGeneratorV8.pm:
147585        (NativeToJSValue):
147586        * bindings/v8/V8AbstractEventListener.cpp:
147587        (WebCore::V8AbstractEventListener::getReceiverObject):
147588        * bindings/v8/V8DOMWrapper.cpp:
147589        * bindings/v8/V8DOMWrapper.h:
147590        (V8DOMWrapper):
147591        * bindings/v8/V8WorkerContextEventListener.cpp:
147592        (WebCore::V8WorkerContextEventListener::getReceiverObject):
147593        * bindings/v8/custom/V8EventTargetCustom.cpp: Added.
147594        (WebCore):
147595        (WebCore::toV8):
147596        * dom/EventTarget.idl:
147597
1475982012-12-04  Florin Malita  <fmalita@chromium.org>
147599
147600        Stale SVGUseElement reference in CachedResource::checkNotify()
147601        https://bugs.webkit.org/show_bug.cgi?id=104004
147602
147603        Reviewed by Eric Seidel.
147604
147605        SVGUseElement tracks one CachedSVGDocument at a time (for external references), but when
147606        the href attribute is updated it fails to unregister with the current CachedSVGDocument
147607        and only updates its CachedSVGDocument with the new instance. This leaves an untracked
147608        reference with the original CachedSVGDocument.
147609
147610        The patch adds the missing removeClient() call on href change, and encapsulates the
147611        CachedSVGDocument manipulation in a helper method which handles the necessary cleanup.
147612
147613        Test: svg/custom/use-href-update-crash.svg
147614
147615        * svg/SVGUseElement.cpp:
147616        (WebCore::SVGUseElement::~SVGUseElement):
147617        (WebCore::SVGUseElement::svgAttributeChanged):
147618        (WebCore::SVGUseElement::setCachedDocument):
147619        (WebCore):
147620        * svg/SVGUseElement.h:
147621        (SVGUseElement):
147622
1476232012-12-04  Yury Semikhatsky  <yurys@chromium.org>
147624
147625        Web Inspector: Can't take a heap snapshot in chromium ("Uncaught ReferenceError")
147626        https://bugs.webkit.org/show_bug.cgi?id=103997
147627
147628        Reviewed by Pavel Feldman.
147629
147630        utilities.js used in both page and worker contexts should not access window
147631        object as there is no one in case of workers. NonLeakingMutationObserver implementation
147632        has moved to DOMExtension.js
147633
147634        * inspector/front-end/DOMExtension.js:
147635        (NonLeakingMutationObserver.NonLeakingMutationObserver._unloadListener):
147636        (NonLeakingMutationObserver):
147637        (NonLeakingMutationObserver.prototype.observe):
147638        (NonLeakingMutationObserver.prototype.disconnect):
147639        * inspector/front-end/utilities.js:
147640
1476412012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>
147642
147643        Unreviewed, rolling out r136509.
147644        http://trac.webkit.org/changeset/136509
147645        https://bugs.webkit.org/show_bug.cgi?id=104015
147646
147647        broke layout tests (Requested by eae on #webkit).
147648
147649        * platform/graphics/IntSize.h:
147650        (WebCore::IntSize::scale):
147651
1476522012-12-04  Antoine Quint  <graouts@apple.com>
147653
147654        INVALID_STATE_ERR error upon calling .addCue() for an already-in-use cue
147655        https://bugs.webkit.org/show_bug.cgi?id=103264
147656
147657        Reviewed by Eric Carlson.
147658
147659        Adhere to the latest spec for TextTrack's .addCue() method. This also fixes
147660        https://bugs.webkit.org/show_bug.cgi?id=103265 and we've removed
147661        media/track/opera/interfaces/TextTrack/addCue.html from the Skipped list.
147662
147663        * html/track/TextTrack.cpp:
147664        (WebCore::TextTrack::addCue):
147665        * html/track/TextTrack.h:
147666        (TextTrack):
147667        * html/track/TextTrack.idl:
147668
1476692012-12-04  Mike West  <mkwst@chromium.org>
147670
147671        Log to console when forms and popups are blocked by 'sandbox'.
147672        https://bugs.webkit.org/show_bug.cgi?id=103615
147673
147674        Reviewed by Adam Barth.
147675
147676        Adds two console messages to cover form submissions blocked by a
147677        sandboxed frame lacking the 'allow-forms' permission, and window
147678        creation blocked by a sandboxed frame lacking the 'allow-popups'
147679        permission.
147680
147681        * loader/FrameLoader.cpp:
147682        (WebCore::FrameLoader::submitForm):
147683            Log a warning when form submission is blocked by sandboxing flags.
147684        (WebCore::createWindow):
147685            Log a warning when window.open is blocked due to sandboxing flags.
147686
1476872012-12-04  Kentaro Hara  <haraken@chromium.org>
147688
147689        [V8] Make v8::Null(isolate) faster by caching the value in V8 bindings
147690        https://bugs.webkit.org/show_bug.cgi?id=103862
147691
147692        Reviewed by Adam Barth.
147693
147694        Performance comparison between V8 and JSC revealed that DOM attributes
147695        that return v8::Null(isolate) are much slower than JSC.
147696        (https://docs.google.com/a/chromium.org/spreadsheet/ccc?key=0AlobCOyvTnPKdDg5S0dMdGRGRTRSaW53V1ppVzh6eXc#gid=2)
147697
147698        We can optimize v8::Null(isolate) by caching the value to V8PerIsolateData.
147699        (Although I don't like the optimization, it looks difficult to optimize
147700        v8::Null(isolate) more.)
147701
147702        [Bindings/undefined-first-child.html]
147703        Before: 969 runs/sec, 970 runs/sec, 962 runs/sec
147704        After:  1086 runs/sec, 1085 runs/sec, 1086 runs/sec
147705
147706        No tests. No change in behavior.
147707
147708        * bindings/scripts/CodeGeneratorV8.pm:
147709        (GenerateHeader):
147710        (GenerateNormalAttrGetter):
147711        (GenerateFunctionCallback):
147712        (NativeToJSValue):
147713        * bindings/scripts/test/V8/V8TestNode.h:
147714        (WebCore::toV8Fast):
147715        * bindings/scripts/test/V8/V8TestObj.cpp:
147716        (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
147717        (WebCore::TestObjV8Internal::getSVGDocumentCallback):
147718        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
147719        (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
147720        (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
147721        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
147722        (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
147723        * bindings/v8/V8Binding.h:
147724        (WebCore):
147725        (WebCore::v8Null):
147726        (WebCore::v8NullWithCheck):
147727        * bindings/v8/V8PerIsolateData.cpp:
147728        (WebCore::V8PerIsolateData::V8PerIsolateData):
147729        * bindings/v8/V8PerIsolateData.h:
147730        (WebCore::V8PerIsolateData::v8Null):
147731        (V8PerIsolateData):
147732
1477332012-12-04  Alexis Menard  <alexis@webkit.org>
147734
147735        Add an helper function in CSSParser to check for '/' character.
147736        https://bugs.webkit.org/show_bug.cgi?id=104009
147737
147738        Reviewed by Ryosuke Niwa.
147739
147740        Remove unwanted null check from r136525
147741
147742        No new tests : just a refactor, existing tests should cover.
147743
147744        * css/CSSParser.cpp:
147745        (WebCore::isForwardSlashOperator):
147746
1477472012-12-04  Alexis Menard  <alexis@webkit.org>
147748
147749        Add an helper function in CSSParser to check for '/' character.
147750        https://bugs.webkit.org/show_bug.cgi?id=104009
147751
147752        Reviewed by Ryosuke Niwa.
147753
147754        I'm about to add the same pattern in a following patch. Let's do an
147755        helper function first. We also did that for the comma. The slash
147756        character is pretty used in shorthands definitions.
147757
147758        No new tests : just a refactor, existing tests should cover.
147759
147760        * css/CSSParser.cpp:
147761        (WebCore::isForwardSlashOperator):
147762        (WebCore):
147763        (WebCore::CSSParser::parseFillShorthand):
147764        (WebCore::CSSParser::parseFont):
147765        (WebCore::CSSParser::parseBorderImage):
147766        (WebCore::CSSParser::parseAspectRatio):
147767
1477682012-12-04  Ken Kania  <kkania@chromium.org>
147769
147770        Inspector: Introduce Input.dispatchKeyEvent and DOM.focus for typing simulation.
147771        https://bugs.webkit.org/show_bug.cgi?id=103530
147772
147773        Reviewed by Yury Semikhatsky.
147774
147775        Input.dispatchKeyEvent simply calls EventHandler::keyEvent with the key event data
147776        from the command parameters. The client will be responsible for providing proper
147777        events to simulate desired typing behavior.
147778        DOM.focus calls focus on a dom element.
147779
147780        Tests: inspector-protocol/dom-focus.html
147781               inspector-protocol/input-dispatchKeyEvent.html
147782
147783        * CMakeLists.txt:
147784        * GNUmakefile.list.am:
147785        * Target.pri:
147786        * WebCore.gypi:
147787        * WebCore.vcproj/WebCore.vcproj:
147788        * WebCore.xcodeproj/project.pbxproj:
147789        * inspector/Inspector.json:
147790        * inspector/InspectorAllInOne.cpp:
147791        * inspector/InspectorController.cpp:
147792        (WebCore::InspectorController::InspectorController):
147793        * inspector/InspectorDOMAgent.cpp:
147794        (WebCore::InspectorDOMAgent::focus):
147795        (WebCore):
147796        (WebCore::InspectorDOMAgent::resolveNode):
147797        * inspector/InspectorDOMAgent.h:
147798        (InspectorDOMAgent):
147799        * inspector/InspectorInputAgent.cpp: Added.
147800        (WebCore):
147801        (WebCore::InspectorInputAgent::InspectorInputAgent):
147802        (WebCore::InspectorInputAgent::~InspectorInputAgent):
147803        (WebCore::InspectorInputAgent::dispatchKeyEvent):
147804        * inspector/InspectorInputAgent.h: Added.
147805        (WebCore):
147806        (InspectorInputAgent):
147807        (WebCore::InspectorInputAgent::create):
147808
1478092012-12-04  Dan Bernstein  <mitz@apple.com>
147810
147811        FontPlatformData has unnecessary m_textOrientation member
147812        https://bugs.webkit.org/show_bug.cgi?id=103971
147813
147814        Reviewed by Darin Adler.
147815
147816        Nothing in SimpleFontData depends on the FontPlatformData’s textOrientation, so we don’t
147817        need separate data for vertical-right and upright. We simply choose between
147818        verticalRightOrientationFontData() and uprightOrientationFontData() based on the
147819        textOrientation in the FontDescription.
147820
147821        * WebCore.exp.in: Updated FontPlatformData constructor exports.
147822
147823        * css/CSSFontFaceSource.cpp:
147824        (WebCore::CSSFontFaceSource::getFontData): Removed the text orientation bit from the hash key,
147825        and updated for the removal of the TextOrientation parameter to
147826        CachedFont::platformDataFromCustomData().
147827
147828        * loader/cache/CachedFont.cpp:
147829        (WebCore::CachedFont::platformDataFromCustomData): Removed the TextOrientation parameter.
147830        * loader/cache/CachedFont.h:
147831
147832        * platform/graphics/FontCache.cpp:
147833        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): Removed the TextOrientation
147834        parameter and initializer.
147835        (WebCore::FontPlatformDataCacheKey::operator==): Updated for removal of m_textOrientation
147836        member variable.
147837        (FontPlatformDataCacheKey): Removed m_textOrientation member variable.
147838        (WebCore::computeHash): Removed text orientation bit from the hash.
147839        (WebCore::FontCache::getCachedFontPlatformData): Updated for FontPlatformDataCacheKey
147840        change.
147841
147842        * platform/graphics/FontPlatformData.cpp:
147843        (WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameters and
147844        initializers.
147845        (WebCore::FontPlatformData::operator=): Updated for removal of m_textOrientation
147846        member variable.
147847        * platform/graphics/FontPlatformData.h:
147848        (FontPlatformData): Removed m_textOrientation member variable, removed TextOrientation
147849        parameters from constructors.
147850        (WebCore::FontPlatformData::hash): Removed text orientation bit.
147851        (WebCore::FontPlatformData::operator==): Updated for removed member variable.
147852
147853        * platform/graphics/cairo/FontCustomPlatformData.h:
147854        (FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147855
147856        * platform/graphics/chromium/FontCacheAndroid.cpp:
147857        (WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.
147858
147859        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
147860        (WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameter and
147861        initializer.
147862
147863        * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
147864        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147865        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
147866        (WebCore::FontPlatformData::FontPlatformData): Removed TextOrientation parameter and
147867        initializers.
147868        (WebCore::FontPlatformData::operator=): Updated for removed member variable.
147869        (WebCore::FontPlatformData::operator==): Ditto.
147870        (WebCore::FontPlatformData::hash): Removed text orientation bit.
147871
147872        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
147873        (FontPlatformData): Removed TextOrientation parameter from the constructor declaration.
147874
147875        * platform/graphics/mac/FontCacheMac.mm:
147876        (WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.
147877
147878        * platform/graphics/mac/FontCustomPlatformData.cpp:
147879        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147880
147881        * platform/graphics/mac/FontCustomPlatformData.h:
147882        (FontCustomPlatformData): Removed TextOrientation parameter from declaration of
147883        fontPlatformData().
147884
147885        * platform/graphics/mac/SimpleFontDataMac.mm:
147886        (WebCore::SimpleFontData::getCompositeFontReferenceFontData): Updated for FontPlatformData
147887        change.
147888
147889        * platform/graphics/pango/FontCustomPlatformDataPango.cpp:
147890        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147891        * platform/graphics/qt/FontCustomPlatformData.h:
147892
147893        * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
147894        (WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
147895
147896        * platform/graphics/skia/FontCacheSkia.cpp:
147897        (WebCore::FontCache::createFontPlatformData): Updated for FontPlatformData change.
147898
147899        * platform/graphics/skia/FontCustomPlatformData.cpp:
147900        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147901        * platform/graphics/skia/FontCustomPlatformData.h:
147902
147903        * platform/graphics/win/FontCustomPlatformData.cpp:
147904        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147905        * platform/graphics/win/FontCustomPlatformData.h:
147906
147907        * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
147908        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147909        * platform/graphics/win/FontCustomPlatformDataCairo.h:
147910
147911        * platform/graphics/win/FontPlatformDataCGWin.cpp:
147912        (WebCore::FontPlatformData::FontPlatformData): Removed m_textOrientation initializer.
147913
147914        * platform/graphics/win/FontPlatformDataCairoWin.cpp:
147915        (WebCore::FontPlatformData::FontPlatformData): Ditto.
147916
147917        * platform/graphics/win/FontPlatformDataWin.cpp:
147918        (WebCore::FontPlatformData::FontPlatformData): Ditto.
147919
147920        * platform/graphics/wince/FontCustomPlatformData.cpp:
147921        (WebCore::FontCustomPlatformData::fontPlatformData): Removed TextOrientation parameter.
147922        * platform/graphics/wince/FontCustomPlatformData.h:
147923
1479242012-12-04  Charlie Reis  <creis@chromium.org>
147925
147926        Add FrameLoaderClient::didDisownOpener
147927        https://bugs.webkit.org/show_bug.cgi?id=103789
147928
147929        Reviewed by Darin Fisher.
147930
147931        Adds a didDisownOwner notification when a frame's opener is cleared,
147932        so that FrameLoaderClients can react.
147933
147934        No new tests.
147935
147936        * loader/FrameLoader.cpp:
147937        (WebCore::FrameLoader::setOpener): Calls didDisownOpener if opener is cleared.
147938        * loader/FrameLoaderClient.h:
147939        (FrameLoaderClient):
147940        (WebCore::FrameLoaderClient::didDisownOpener):
147941
1479422012-12-04  Robert Hogan  <robert@webkit.org>
147943
147944        Redrawing issue with inserting new inline element between existing inline elements
147945        https://bugs.webkit.org/show_bug.cgi?id=50315
147946
147947        Reviewed by Levi Weintraub.
147948
147949        When inserting an element such as '<span>text<br></span>' between two lineboxes, the second of which has leading space
147950        collapsed away after a line-break, dirtyLinesFromChangeChild() needs to ensure that the linebox the fragment is inserted into (the second 
147951        of the two lineboxes) gets dirtied. 
147952        
147953        Since the element has been inserted before the first element in the linebox, but after the collapsed leading
147954        space, the search for the new element's linebox will go past the leading space to the previous linebox and select that
147955        one by mistake.
147956        
147957        So in order to ensure the element's linebox is dirtied make sure its previous sibling is not the line-break object of the
147958        linebox we selected when searching for a linebox to dirty. If the previous sibling is the linebox's line-break object then
147959        the element is in the one after the one we selected and we should dirty that linebox too. 
147960
147961        Test: fast/inline/layout-after-inserting-nested-br.html
147962
147963        * rendering/RenderLineBoxList.cpp:
147964        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
147965
1479662012-12-04  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
147967
147968        IntSize::scale() should return rounded value
147969        https://bugs.webkit.org/show_bug.cgi?id=103984
147970
147971        Reviewed by Kenneth Rohde Christiansen.
147972
147973        IntSize::scale() is now rounding float value to the nearest integer instead of blind type casting.
147974
147975        Test: css3/device-adapt/viewport-width-not-affecting-next-page.html
147976
147977        * platform/graphics/IntSize.h:
147978        (WebCore::IntSize::scale):
147979
1479802012-12-04  Adam Bergkvist  <adam.bergkvist@ericsson.com>
147981
147982        Add support for generic types in arrays and sequences to the code generators
147983        https://bugs.webkit.org/show_bug.cgi?id=103642
147984
147985        Reviewed by Kentaro Hara.
147986
147987        Updated the bindings generators to support arrays and sequences of host objects.
147988
147989        - Arrays and sequences of host objects are mapped to Vector<RefPtr<%RefPtrType%> >.
147990        - Fixed issue where "sequence<String>" was used in IDL files instead of "sequence<DOMString>".
147991
147992        Updated existing test results.
147993
147994        * Modules/indexeddb/IDBDatabase.idl:
147995        * Modules/indexeddb/IDBObjectStore.idl:
147996        * Modules/mediastream/RTCStatsElement.idl:
147997        * Modules/websockets/WebSocket.idl:
147998        * bindings/js/JSDOMBinding.h:
147999        (WebCore::toRefPtrNativeArray):
148000        (WebCore):
148001        * bindings/scripts/CodeGenerator.pm:
148002        (IsRefPtrType):
148003        * bindings/scripts/CodeGeneratorJS.pm:
148004        (AddIncludesForType):
148005        (GetNativeType):
148006        (GetNativeVectorInnerType):
148007        (JSValueToNative):
148008        (NativeToJSValue):
148009        * bindings/scripts/CodeGeneratorV8.pm:
148010        (GenerateNormalAttrGetter):
148011        (GenerateNormalAttrSetter):
148012        (GenerateParametersCheckExpression):
148013        (GenerateFunctionCallString):
148014        (GetNativeType):
148015        (JSValueToNative):
148016        (CreateCustomSignature):
148017        (NativeToJSValue):
148018        * bindings/scripts/test/JS/JSTestObj.cpp:
148019        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
148020        * bindings/scripts/test/V8/V8TestObj.cpp:
148021        (WebCore::TestObjV8Internal::longLongAttrAttrSetter):
148022        (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetter):
148023        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
148024        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
148025        * bindings/v8/V8Binding.h:
148026        (WebCore::toRefPtrNativeArray):
148027        * testing/Internals.idl:
148028
1480292012-12-04  Antoine Quint  <graouts@apple.com>
148030
148031        TextTrack's .kind property should return lower-case values
148032        https://bugs.webkit.org/show_bug.cgi?id=103411
148033
148034        Reviewed by Eric Carlson.
148035
148036        While the HTML "kind" attribute on the <track> element allows upper-case values, the related APIs
148037        on HTMLMediaElement and TextTrack expect only to deal with lower-case values. As such, we're updating
148038        TextTrack::isValidKindKeyword() to be case-sensitive and ensure that values fed from the DOM (the values
148039        read from HTML attributes) are lower-case'd.
148040
148041        Thanks to this fix, we're no longer skipping media/track/opera/interfaces/TextTrack/kind.html and
148042        media/track/opera/interfaces/HTMLElement/HTMLMediaElement/addTextTrack.html 
148043
148044        This patch also fixes https://bugs.webkit.org/show_bug.cgi?id=103256.
148045
148046        * html/HTMLTrackElement.cpp:
148047        (WebCore::HTMLTrackElement::parseAttribute):
148048        (WebCore::HTMLTrackElement::ensureTrack):
148049        * html/track/TextTrack.cpp:
148050        (WebCore::TextTrack::isValidKindKeyword):
148051
1480522012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>
148053
148054        Unreviewed, rolling out r136498.
148055        http://trac.webkit.org/changeset/136498
148056        https://bugs.webkit.org/show_bug.cgi?id=103992
148057
148058        Patch causes a lot of tests to crash in GTK+ bots (Requested
148059        by KaL on #webkit).
148060
148061        * bindings/scripts/CodeGeneratorGObject.pm:
148062        (GenerateProperties):
148063        (GenerateHeader):
148064        (GenerateCFile):
148065        (GenerateEventTargetIface):
148066        (WriteData):
148067        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
148068        (WebKit::core):
148069        (WebKit::wrapFloat64Array):
148070        (webkit_dom_float64array_finalize):
148071        (webkit_dom_float64array_class_init):
148072        (webkit_dom_float64array_init):
148073        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
148074        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
148075        (WebKit::core):
148076        (WebKit::wrapTestActiveDOMObject):
148077        (webkit_dom_test_active_dom_object_finalize):
148078        (webkit_dom_test_active_dom_object_class_init):
148079        (webkit_dom_test_active_dom_object_init):
148080        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
148081        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
148082        (WebKit::core):
148083        (WebKit::wrapTestCallback):
148084        (webkit_dom_test_callback_finalize):
148085        (webkit_dom_test_callback_class_init):
148086        (webkit_dom_test_callback_init):
148087        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
148088        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
148089        (WebKit::core):
148090        (WebKit::wrapTestCustomNamedGetter):
148091        (webkit_dom_test_custom_named_getter_finalize):
148092        (webkit_dom_test_custom_named_getter_class_init):
148093        (webkit_dom_test_custom_named_getter_init):
148094        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
148095        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
148096        (WebKit::core):
148097        (WebKit::wrapTestEventConstructor):
148098        (webkit_dom_test_event_constructor_finalize):
148099        (webkit_dom_test_event_constructor_class_init):
148100        (webkit_dom_test_event_constructor_init):
148101        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
148102        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
148103        (WebKit::core):
148104        (WebKit::wrapTestEventTarget):
148105        (webkit_dom_test_event_target_dispatch_event):
148106        (webkit_dom_test_event_target_add_event_listener):
148107        (webkit_dom_test_event_target_remove_event_listener):
148108        (webkit_dom_test_event_target_finalize):
148109        (webkit_dom_test_event_target_class_init):
148110        (webkit_dom_test_event_target_init):
148111        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
148112        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
148113        (WebKit::core):
148114        (WebKit::wrapTestException):
148115        (webkit_dom_test_exception_finalize):
148116        (webkit_dom_test_exception_class_init):
148117        (webkit_dom_test_exception_init):
148118        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
148119        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
148120        (WebKit::core):
148121        (WebKit::wrapTestInterface):
148122        (webkit_dom_test_interface_finalize):
148123        (webkit_dom_test_interface_class_init):
148124        (webkit_dom_test_interface_init):
148125        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
148126        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
148127        (WebKit::core):
148128        (WebKit::wrapTestMediaQueryListListener):
148129        (webkit_dom_test_media_query_list_listener_finalize):
148130        (webkit_dom_test_media_query_list_listener_class_init):
148131        (webkit_dom_test_media_query_list_listener_init):
148132        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
148133        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
148134        (WebKit::core):
148135        (WebKit::wrapTestNamedConstructor):
148136        (webkit_dom_test_named_constructor_finalize):
148137        (webkit_dom_test_named_constructor_class_init):
148138        (webkit_dom_test_named_constructor_init):
148139        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
148140        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
148141        (WebKit::core):
148142        (WebKit::wrapTestNode):
148143        (webkit_dom_test_node_dispatch_event):
148144        (webkit_dom_test_node_add_event_listener):
148145        (webkit_dom_test_node_remove_event_listener):
148146        (webkit_dom_test_node_finalize):
148147        (webkit_dom_test_node_class_init):
148148        (webkit_dom_test_node_init):
148149        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
148150        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
148151        (WebKit::core):
148152        (WebKit::wrapTestObj):
148153        (webkit_dom_test_obj_finalize):
148154        (webkit_dom_test_obj_class_init):
148155        (webkit_dom_test_obj_init):
148156        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
148157        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
148158        (WebKit::core):
148159        (WebKit::wrapTestOverloadedConstructors):
148160        (webkit_dom_test_overloaded_constructors_finalize):
148161        (webkit_dom_test_overloaded_constructors_class_init):
148162        (webkit_dom_test_overloaded_constructors_init):
148163        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
148164        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
148165        (WebKit::core):
148166        (WebKit::wrapTestSerializedScriptValueInterface):
148167        (webkit_dom_test_serialized_script_value_interface_finalize):
148168        (webkit_dom_test_serialized_script_value_interface_class_init):
148169        (webkit_dom_test_serialized_script_value_interface_init):
148170        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
148171
1481722012-12-04  Markus Heintz  <markusheintz@chromium.org>
148173
148174        Web Inspector: Viewport console warnings cleanup.
148175        https://bugs.webkit.org/show_bug.cgi?id=102890
148176
148177        Reviewed by Jochen Eisinger.
148178
148179        Improve the console message text for a viewport console warning and
148180        change the log level to warning.
148181
148182        No new tests added, as this change is covered by updates to existing
148183        test expectations.
148184
148185        * dom/ViewportArguments.cpp:
148186        (WebCore::viewportErrorMessageTemplate):
148187            Improve the console message text for invalid values.
148188        (WebCore::viewportErrorMessageLevel):
148189            Upgraded the TruncatedViewportArgumentValueError and the
148190            TargetDensityDpiUnsupported messages's MessageLeval to warning.
148191        (WebCore::reportViewportWarning):
148192            Adding only a comment for a FIXIT reminder.
148193
1481942012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
148195
148196        [GTK] Use a private struct and placement new syntax in GObject DOM bindings
148197        https://bugs.webkit.org/show_bug.cgi?id=101074
148198
148199        Reviewed by Xan Lopez.
148200
148201        It allows to use RefPtr for the wrapped object and it simplifies
148202        the code.
148203
148204        * bindings/scripts/CodeGeneratorGObject.pm:
148205        (GenerateProperties):
148206        (GenerateHeader):
148207        (GenerateCFile):
148208        (GenerateEventTargetIface):
148209        (WriteData):
148210        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
148211        (_WebKitDOMFloat64ArrayPrivate):
148212        (WebKit::core):
148213        (WebKit::wrapFloat64Array):
148214        (webkit_dom_float64array_finalize):
148215        (webkit_dom_float64array_constructor):
148216        (webkit_dom_float64array_class_init):
148217        (webkit_dom_float64array_init):
148218        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
148219        (_WebKitDOMFloat64Array):
148220        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
148221        (_WebKitDOMTestActiveDOMObjectPrivate):
148222        (WebKit::core):
148223        (WebKit::wrapTestActiveDOMObject):
148224        (webkit_dom_test_active_dom_object_finalize):
148225        (webkit_dom_test_active_dom_object_constructor):
148226        (webkit_dom_test_active_dom_object_class_init):
148227        (webkit_dom_test_active_dom_object_init):
148228        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
148229        (_WebKitDOMTestActiveDOMObject):
148230        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
148231        (_WebKitDOMTestCallbackPrivate):
148232        (WebKit::core):
148233        (WebKit::wrapTestCallback):
148234        (webkit_dom_test_callback_finalize):
148235        (webkit_dom_test_callback_constructor):
148236        (webkit_dom_test_callback_class_init):
148237        (webkit_dom_test_callback_init):
148238        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
148239        (_WebKitDOMTestCallback):
148240        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
148241        (_WebKitDOMTestCustomNamedGetterPrivate):
148242        (WebKit::core):
148243        (WebKit::wrapTestCustomNamedGetter):
148244        (webkit_dom_test_custom_named_getter_finalize):
148245        (webkit_dom_test_custom_named_getter_constructor):
148246        (webkit_dom_test_custom_named_getter_class_init):
148247        (webkit_dom_test_custom_named_getter_init):
148248        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
148249        (_WebKitDOMTestCustomNamedGetter):
148250        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
148251        (_WebKitDOMTestEventConstructorPrivate):
148252        (WebKit::core):
148253        (WebKit::wrapTestEventConstructor):
148254        (webkit_dom_test_event_constructor_finalize):
148255        (webkit_dom_test_event_constructor_constructor):
148256        (webkit_dom_test_event_constructor_class_init):
148257        (webkit_dom_test_event_constructor_init):
148258        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
148259        (_WebKitDOMTestEventConstructor):
148260        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
148261        (_WebKitDOMTestEventTargetPrivate):
148262        (WebKit::core):
148263        (WebKit::wrapTestEventTarget):
148264        (webkit_dom_test_event_target_dispatch_event):
148265        (webkit_dom_test_event_target_add_event_listener):
148266        (webkit_dom_test_event_target_remove_event_listener):
148267        (webkit_dom_test_event_target_finalize):
148268        (webkit_dom_test_event_target_constructor):
148269        (webkit_dom_test_event_target_class_init):
148270        (webkit_dom_test_event_target_init):
148271        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
148272        (_WebKitDOMTestEventTarget):
148273        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
148274        (_WebKitDOMTestExceptionPrivate):
148275        (WebKit::core):
148276        (WebKit::wrapTestException):
148277        (webkit_dom_test_exception_finalize):
148278        (webkit_dom_test_exception_constructor):
148279        (webkit_dom_test_exception_class_init):
148280        (webkit_dom_test_exception_init):
148281        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
148282        (_WebKitDOMTestException):
148283        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
148284        (_WebKitDOMTestInterfacePrivate):
148285        (WebKit::core):
148286        (WebKit::wrapTestInterface):
148287        (webkit_dom_test_interface_finalize):
148288        (webkit_dom_test_interface_constructor):
148289        (webkit_dom_test_interface_class_init):
148290        (webkit_dom_test_interface_init):
148291        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
148292        (_WebKitDOMTestInterface):
148293        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
148294        (_WebKitDOMTestMediaQueryListListenerPrivate):
148295        (WebKit::core):
148296        (WebKit::wrapTestMediaQueryListListener):
148297        (webkit_dom_test_media_query_list_listener_finalize):
148298        (webkit_dom_test_media_query_list_listener_constructor):
148299        (webkit_dom_test_media_query_list_listener_class_init):
148300        (webkit_dom_test_media_query_list_listener_init):
148301        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
148302        (_WebKitDOMTestMediaQueryListListener):
148303        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
148304        (_WebKitDOMTestNamedConstructorPrivate):
148305        (WebKit::core):
148306        (WebKit::wrapTestNamedConstructor):
148307        (webkit_dom_test_named_constructor_finalize):
148308        (webkit_dom_test_named_constructor_constructor):
148309        (webkit_dom_test_named_constructor_class_init):
148310        (webkit_dom_test_named_constructor_init):
148311        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
148312        (_WebKitDOMTestNamedConstructor):
148313        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
148314        (_WebKitDOMTestNodePrivate):
148315        (WebKit::core):
148316        (WebKit::wrapTestNode):
148317        (webkit_dom_test_node_dispatch_event):
148318        (webkit_dom_test_node_add_event_listener):
148319        (webkit_dom_test_node_remove_event_listener):
148320        (webkit_dom_test_node_finalize):
148321        (webkit_dom_test_node_constructor):
148322        (webkit_dom_test_node_class_init):
148323        (webkit_dom_test_node_init):
148324        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
148325        (_WebKitDOMTestNode):
148326        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
148327        (_WebKitDOMTestObjPrivate):
148328        (WebKit::core):
148329        (WebKit::wrapTestObj):
148330        (webkit_dom_test_obj_finalize):
148331        (webkit_dom_test_obj_constructor):
148332        (webkit_dom_test_obj_class_init):
148333        (webkit_dom_test_obj_init):
148334        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
148335        (_WebKitDOMTestObj):
148336        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
148337        (_WebKitDOMTestSerializedScriptValueInterfacePrivate):
148338        (WebKit::core):
148339        (WebKit::wrapTestSerializedScriptValueInterface):
148340        (webkit_dom_test_serialized_script_value_interface_finalize):
148341        (webkit_dom_test_serialized_script_value_interface_constructor):
148342        (webkit_dom_test_serialized_script_value_interface_class_init):
148343        (webkit_dom_test_serialized_script_value_interface_init):
148344        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
148345        (_WebKitDOMTestSerializedScriptValueInterface):
148346
1483472012-12-04  David Grogan  <dgrogan@chromium.org>
148348
148349        IndexedDB: Make leveldb histogram entries more fine-grained
148350        https://bugs.webkit.org/show_bug.cgi?id=103688
148351
148352        Reviewed by Tony Chang.
148353
148354        Allow us better insight into which functions the IO errors originate
148355        from.
148356
148357        * Modules/indexeddb/IDBBackingStore.cpp:
148358        (WebCore::setUpMetadata):
148359        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
148360        (WebCore::IDBBackingStore::getObjectStores):
148361        (WebCore::IDBBackingStore::getRecord):
148362        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
148363        (WebCore::IDBBackingStore::keyExistsInObjectStore):
148364        (WebCore::IDBBackingStore::getIndexes):
148365        (WebCore::IDBBackingStore::findKeyInIndex):
148366        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
148367        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
148368        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
148369        (WebCore::IndexCursorImpl::loadCurrentRow):
148370
1483712012-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
148372
148373        [GTK] Avoid unnecessary heap allocations during drag and drop operations
148374        https://bugs.webkit.org/show_bug.cgi?id=87938
148375
148376        Reviewed by Martin Robinson.
148377
148378        * platform/gtk/GtkDragAndDropHelper.cpp:
148379        (WebCore::GtkDragAndDropHelper::handleDragMotion): Return a
148380        pointer to the DataObjectGtk so that the caller can create the
148381        DragData object in the stack.
148382        (WebCore::GtkDragAndDropHelper::handleDragDataReceived): Ditto.
148383        (WebCore::GtkDragAndDropHelper::handleDragDrop): Ditto.
148384        * platform/gtk/GtkDragAndDropHelper.h:
148385
1483862012-12-04  Alexander Pavlov  <apavlov@chromium.org>
148387
148388        Web Inspector: [Overrides] Add ability to override the page CSS media type
148389        https://bugs.webkit.org/show_bug.cgi?id=103752
148390
148391        Reviewed by Pavel Feldman.
148392
148393        This change emulates the CSS media types through the instrumentation of FrameView::mediaType().
148394        Even though it already checks the associated FrameLoaderClient::overrideMediaType(), instrumenting
148395        every single platform FrameLoaderClient implementation out there seems wrong.
148396
148397        Test: inspector/styles/media-emulation.html
148398
148399        * English.lproj/localizedStrings.js:
148400        * inspector/Inspector.json: Add Page.setEmulatedMedia().
148401        * inspector/InspectorInstrumentation.cpp:
148402        (WebCore::InspectorInstrumentation::applyEmulatedMediaImpl): Added.
148403        * inspector/InspectorInstrumentation.h:
148404        (WebCore::InspectorInstrumentation::applyEmulatedMedia): Added.
148405        * inspector/InspectorPageAgent.cpp:
148406        (WebCore::InspectorPageAgent::restore): Restores the media emulation state.
148407        (WebCore::InspectorPageAgent::disable): Resets the media emulation state.
148408        (WebCore::InspectorPageAgent::setEmulatedMedia): Added.
148409        (WebCore::InspectorPageAgent::applyEmulatedMedia): Applies the emulated CSS media if needed.
148410        * inspector/InspectorPageAgent.h:
148411        * inspector/front-end/CSSStyleModel.js: Add the list of media types.
148412        * inspector/front-end/OverridesView.js: Add the CSS media type override UI.
148413        (WebInspector.OverridesView):
148414        (WebInspector.OverridesView.prototype._createMediaEmulationElement): Builds the UI.
148415        (WebInspector.OverridesView.prototype._emulateMediaChanged): Handles the control value changes.
148416        * inspector/front-end/Settings.js: Add the "emulatedCSSMedia" setting.
148417        * page/FrameView.cpp:
148418        (WebCore::FrameView::mediaType):
148419          Uses InspectorInstrumentation::applyEmulatedMedia() to provide the emulated value.
148420
1484212012-12-03  Carlos Garcia Campos  <cgarcia@igalia.com>
148422
148423        [GTK] Simplify GObject DOM bindings code for handling properties
148424        https://bugs.webkit.org/show_bug.cgi?id=101072
148425
148426        Reviewed by Xan Lopez.
148427
148428        Do not override GObjectClass::set_property if the wrapped object
148429        doesn't have writable properties, and don't override
148430        GObjectClass::get_property if the wrapped object doesn't have
148431        properties at all. It reduces some GObject boilerplate in
148432        generated code for some objects.
148433
148434        * bindings/scripts/CodeGeneratorGObject.pm:
148435        (GenerateProperties):
148436        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
148437        (webkit_dom_float64array_class_init):
148438        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
148439        (webkit_dom_test_active_dom_object_class_init):
148440        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
148441        (webkit_dom_test_callback_class_init):
148442        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
148443        (webkit_dom_test_custom_named_getter_class_init):
148444        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
148445        (webkit_dom_test_event_constructor_class_init):
148446        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
148447        (webkit_dom_test_event_target_class_init):
148448        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
148449        (webkit_dom_test_exception_class_init):
148450        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
148451        (webkit_dom_test_interface_class_init):
148452        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
148453        (webkit_dom_test_media_query_list_listener_class_init):
148454        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
148455        (webkit_dom_test_named_constructor_class_init):
148456        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
148457        (webkit_dom_test_node_class_init):
148458        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
148459        (webkit_dom_test_obj_class_init):
148460        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
148461        (webkit_dom_test_serialized_script_value_interface_class_init):
148462
1484632012-12-04  Kentaro Hara  <haraken@chromium.org>
148464
148465        Unreviewed. Rebaselined run-bindings-tests.
148466
148467        * bindings/scripts/test/JS/JSTestNode.cpp:
148468        (WebCore::JSTestNode::visitChildren):
148469        (WebCore):
148470
1484712012-12-03  Alexander Pavlov  <apavlov@chromium.org>
148472
148473        Web Inspector: [REGRESSION] [Styles] Rule disappears if edited selector does not affect selected node
148474        https://bugs.webkit.org/show_bug.cgi?id=103059
148475
148476        Reviewed by Pavel Feldman.
148477
148478        This change effectively turns WebInspector.cssModel.setRuleSelector() into a _userOperation
148479        (in terms of StylesSidebarPane), which finishes upon the _finishOperationAndMoveEditor() invocation.
148480
148481        * inspector/front-end/CSSStyleModel.js:
148482        (WebInspector.CSSRule): Fix selectorText now that r136370 has landed.
148483        * inspector/front-end/StylesSidebarPane.js:
148484        (WebInspector.StylePropertiesSection.prototype.update): Update the selector text from the model.
148485        (WebInspector.StylePropertiesSection.prototype._markSelectorMatches): Set the "selector" className regardless of the matched selectors presence.
148486        (WebInspector.StylePropertiesSection.prototype.successCallback): Make use of the _userOperation flag.
148487        (WebInspector.StylePropertiesSection.prototype.finishOperationAndMoveEditor): Delete the _userOperation flag.
148488        (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted): Make use of the _userOperation flag.
148489        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted): Mark selector matches.
148490        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCancelled): Delete the _userOperation flag.
148491
1484922012-12-04  Kondapally Kalyan  <kalyan.kondapally@intel.com>
148493
148494        [EFL][WK2][AC] USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
148495        https://bugs.webkit.org/show_bug.cgi?id=103710.
148496
148497        Reviewed by Kenneth Rohde Christiansen.
148498
148499        When using GLX back-end we are dependent on GLX support, Xcomposite and Xrender extensions.
148500        In this case, GraphicsSurface usage depends on Xcomposite and Xrender extensions. 
148501        USE_GRAPHICS_SURFACE should be enabled only if Xcomposite and Xrender extensions are found.
148502
148503        * platform/graphics/opengl/GLPlatformSurface.cpp:
148504        (WebCore::GLPlatformSurface::createTransportSurface):
148505        * platform/graphics/surfaces/glx/GLXSurface.cpp:
148506        (WebCore):
148507        * platform/graphics/surfaces/glx/GLXSurface.h:
148508        (WebCore::SharedX11Resources::createConfig):
148509        (SharedX11Resources):
148510
1485112012-12-04  Michael Pruett  <michael@68k.org>
148512
148513        [JSC] Generate visitChildren() for uncustomized EventTarget interfaces
148514        https://bugs.webkit.org/show_bug.cgi?id=103908
148515
148516        Reviewed by Geoffrey Garen.
148517
148518        CodeGeneratorJS.pm should automatically generate visitChildren()
148519        for EventTarget interfaces without custom mark functions even if
148520        those interfaces have no functions or cached attributes.
148521
148522        This change is needed for IDBOpenDBRequest and IDBVersionChangeRequest.
148523
148524        No new tests. Covered by existing tests.
148525
148526        * bindings/scripts/CodeGeneratorJS.pm:
148527        (GenerateImplementation):
148528
1485292012-12-04  Kentaro Hara  <haraken@chromium.org>
148530
148531        Change ChildNodeInsertionNotifier::m_postInsertionsNotificationTargets from a Vector to an OwnPtr
148532        https://bugs.webkit.org/show_bug.cgi?id=103868
148533
148534        Reviewed by Darin Adler.
148535
148536        ChildNodeInsertionNotifier::m_postInsertionsNotificationTargets is
148537        used for HTMLFrameElement and HTMLBodyElement only, which would be
148538        a cold path. We can change it from a Vector to an OwnPtr<Vector>
148539        so that ChildNodeInsertionNotifier can be allocated faster. This patch
148540        optimizes Dromaeo/dom-modify by 1.4%.
148541
148542        [Dromaeo/dom-modify in Chromium/Linux]
148543        Before: 4532 runs/sec, 4545 runs/sec, 4530 runs/sec, 4536 runs/sec
148544        After:  4595 runs/sec, 4606 runs/sec, 4597 runs/sec, 4602 runs/sec
148545
148546        No tests. No change in behavior.
148547
148548        * dom/ContainerNodeAlgorithms.h:
148549        (ChildNodeInsertionNotifier):
148550        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
148551        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoTree):
148552        (WebCore::ChildNodeInsertionNotifier::notify):
148553
1485542012-12-03  Rafael Weinstein  <rafaelw@chromium.org>
148555
148556        Unreviewed build fix after r136467
148557
148558        The template element patch added asserts in parserAppendChild and parserInsertBefore which should be valid, but DOMImplementation::createDocument() calls parserAppendChild with docType without regard to its owner. This patch removes the assert and adds a FIXME.
148559
148560        * dom/ContainerNode.cpp:
148561        (WebCore::ContainerNode::parserInsertBefore):
148562        (WebCore::ContainerNode::parserAppendChild):
148563
1485642012-12-03  Kentaro Hara  <haraken@chromium.org>
148565
148566        [V8] Enter an Isolate before initializing PerIsolateData
148567        https://bugs.webkit.org/show_bug.cgi?id=103949
148568
148569        Reviewed by Adam Barth.
148570
148571        Currently we initialize PerIsolateData before entering an Isolate,
148572        which prevents us from using an Isolate in the PerIsolateData
148573        constructor. We should enter an Isolate first and then initialize
148574        PerIsolateData.
148575
148576        No tests. No change in behavior.
148577
148578        * bindings/v8/WorkerScriptController.cpp:
148579        (WebCore::WorkerScriptController::WorkerScriptController):
148580
1485812012-12-03  Sergio Villar Senin  <svillar@igalia.com>
148582
148583        [GTK] Add WebKitDOMShadowRoot.h to the list of public API headers after r135693
148584        https://bugs.webkit.org/show_bug.cgi?id=103909
148585
148586        Reviewed by Martin Robinson.
148587
148588        WebKitDOMShadowRoot was added in r135693. As it is added to
148589        webkitdom.h we have to export the include file, otherwise clients
148590        will fail to build due to the missing file.
148591
148592        * bindings/gobject/GNUmakefile.am:
148593
1485942012-12-03  Joshua Bell  <jsbell@chromium.org>
148595
148596        IndexedDB: Correct database version after aborted upgrade
148597        https://bugs.webkit.org/show_bug.cgi?id=103763
148598
148599        Reviewed by Tony Chang.
148600
148601        After an aborted "versionchange" transaction, the IDBDatabase would fetch a fresh snapshot
148602        of the metadata from the back end. If the back end had already started a new "versionchange"
148603        transaction the snapshot would be bogus. Instead, save a copy of the IDBDatabase's metadata
148604        and roll back to that, as is done for IDBObjectStore.
148605
148606        Tests: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html
148607               storage/indexeddb/mozilla/versionchange-abort.html
148608               storage/indexeddb/unblocked-version-changes.html
148609
148610        * Modules/indexeddb/IDBDatabase.cpp:
148611        (WebCore::IDBDatabase::IDBDatabase):
148612        (WebCore::IDBDatabase::transactionCreated):
148613        * Modules/indexeddb/IDBDatabase.h:
148614        (WebCore::IDBDatabase::setMetadata): Let IDBOpenDBRequest and IDBTransaction tinker.
148615        * Modules/indexeddb/IDBOpenDBRequest.cpp:
148616        (WebCore::IDBOpenDBRequest::onUpgradeNeeded): Fetch new and compute old metadata.
148617        (WebCore::IDBOpenDBRequest::onSuccess): Fetch new metadata, in case upgrade changed it.
148618        * Modules/indexeddb/IDBTransaction.cpp:
148619        (WebCore::IDBTransaction::create): Stash the old metadata, in case of rollback.
148620        (WebCore::IDBTransaction::IDBTransaction):
148621        (WebCore::IDBTransaction::onAbort): Revert the database as well as the stores.
148622        * Modules/indexeddb/IDBTransaction.h:
148623        (IDBTransaction):
148624
1486252012-12-03  Rafael Weinstein  <rafaelw@chromium.org>
148626
148627        Implement HTMLTemplateElement
148628        https://bugs.webkit.org/show_bug.cgi?id=86031
148629
148630        Reviewed by Adam Barth.
148631
148632        Initial implementation. This patch includes the parser changes, new IDL and element implementation for <template>.
148633
148634        Spec: http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html
148635
148636        Tests: fast/dom/HTMLTemplateElement/cloneNode.html
148637               fast/dom/HTMLTemplateElement/inertContents.html
148638               fast/dom/HTMLTemplateElement/innerHTML.html
148639               fast/dom/HTMLTemplateElement/ownerDocument.html
148640               html5lib/run-template.html
148641
148642        * WebCore.gypi:
148643        * css/html.css:
148644        (template):
148645        * dom/Document.cpp:
148646        (WebCore):
148647        (WebCore::Document::templateContentsOwnerDocument):
148648        * dom/Document.h:
148649        (Document):
148650        * editing/MarkupAccumulator.cpp:
148651        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
148652        * html/HTMLElement.h:
148653        (HTMLElement):
148654        * html/HTMLElementsAllInOne.cpp:
148655        * html/HTMLTagNames.in:
148656        * html/HTMLTemplateElement.cpp: Added.
148657        (WebCore):
148658        (WebCore::HTMLTemplateElement::HTMLTemplateElement):
148659        (WebCore::HTMLTemplateElement::setInnerHTML):
148660        (WebCore::HTMLTemplateElement::~HTMLTemplateElement):
148661        (WebCore::HTMLTemplateElement::create):
148662        (WebCore::HTMLTemplateElement::content):
148663        (WebCore::HTMLTemplateElement::setContent):
148664        (WebCore::toHTMLTemplateElement):
148665        * html/HTMLTemplateElement.h: Added.
148666        (WebCore):
148667        (HTMLTemplateElement):
148668        (WebCore::toHTMLTemplateElement):
148669        * html/HTMLTemplateElement.idl: Added.
148670        * html/parser/HTMLConstructionSite.cpp:
148671        (WebCore::executeTask):
148672        (WebCore::HTMLConstructionSite::insertComment):
148673        (WebCore::HTMLConstructionSite::insertTextNode):
148674        (WebCore::HTMLConstructionSite::createElement):
148675        (WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
148676        (WebCore):
148677        (WebCore::HTMLConstructionSite::createHTMLElement):
148678        (WebCore::HTMLConstructionSite::findFosterSite):
148679        * html/parser/HTMLConstructionSite.h:
148680        (HTMLConstructionSite):
148681        * html/parser/HTMLElementStack.cpp:
148682        (WebCore):
148683        (WebCore::HTMLElementStack::hasTemplateInHTMLScope):
148684        * html/parser/HTMLElementStack.h:
148685        (HTMLElementStack):
148686        * html/parser/HTMLTreeBuilder.cpp:
148687        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
148688        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
148689        (WebCore):
148690        (WebCore::HTMLTreeBuilder::processTemplateEndTag):
148691        (WebCore::HTMLTreeBuilder::processStartTagForInTable):
148692        (WebCore::HTMLTreeBuilder::processStartTag):
148693        (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
148694        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
148695        (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
148696        (WebCore::HTMLTreeBuilder::processEndTagForInRow):
148697        (WebCore::HTMLTreeBuilder::processEndTagForInCell):
148698        (WebCore::HTMLTreeBuilder::processEndTagForInBody):
148699        (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
148700        (WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
148701        (WebCore::HTMLTreeBuilder::processEndTag):
148702        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
148703        (WebCore::HTMLTreeBuilder::processEndOfFile):
148704        (WebCore::HTMLTreeBuilder::processStartTagForInHead):
148705        * html/parser/HTMLTreeBuilder.h:
148706        (HTMLTreeBuilder):
148707        (WebCore::HTMLTreeBuilder::isParsingTemplateContents):
148708        (WebCore::HTMLTreeBuilder::isParsingFragmentOrTemplateContents):
148709        * page/DOMWindow.idl:
148710
1487112012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>
148712
148713        Unreviewed, rolling out r136460.
148714        http://trac.webkit.org/changeset/136460
148715        https://bugs.webkit.org/show_bug.cgi?id=103958
148716
148717        This patch caused compile error when building DumpRenderTree
148718        (Requested by tasak on #webkit).
148719
148720        * WebCore.gyp/WebCore.gyp:
148721        * WebCore.gypi:
148722        * platform/chromium/PlatformThemeChromiumLinux.cpp: Added.
148723        (WebCore):
148724        (WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
148725        (WebCore::clamp):
148726        (WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
148727        (WebCore::PlatformThemeChromiumLinux::outlineColor):
148728        (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
148729        * platform/chromium/PlatformThemeChromiumLinux.h: Added.
148730        (WebCore):
148731        (PlatformThemeChromiumLinux):
148732        (WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
148733        (WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
148734        (WebCore::PlatformThemeChromiumLinux::trackColor):
148735        (WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
148736        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
148737        (WebCore):
148738        (WebCore::ScrollbarTheme::nativeTheme):
148739        (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
148740        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
148741        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
148742        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
148743        (WebCore::ScrollbarThemeChromiumLinux::shouldCenterOnThumb):
148744        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
148745        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
148746        * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
148747        (ScrollbarThemeChromiumLinux):
148748        * rendering/RenderThemeChromiumAndroid.cpp:
148749        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
148750        * rendering/RenderThemeChromiumAndroid.h:
148751        * rendering/RenderThemeChromiumLinux.cpp: Added.
148752        (WebCore):
148753        (WebCore::getWebThemeState):
148754        (WebCore::RenderThemeChromiumLinux::create):
148755        (WebCore::RenderTheme::themeForPage):
148756        (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
148757        (WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
148758        (WebCore::RenderThemeChromiumLinux::systemColor):
148759        (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
148760        (WebCore::RenderThemeChromiumLinux::controlSupportsTints):
148761        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionBackgroundColor):
148762        (WebCore::RenderThemeChromiumLinux::activeListBoxSelectionForegroundColor):
148763        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionBackgroundColor):
148764        (WebCore::RenderThemeChromiumLinux::inactiveListBoxSelectionForegroundColor):
148765        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionBackgroundColor):
148766        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionBackgroundColor):
148767        (WebCore::RenderThemeChromiumLinux::platformActiveSelectionForegroundColor):
148768        (WebCore::RenderThemeChromiumLinux::platformInactiveSelectionForegroundColor):
148769        (WebCore::RenderThemeChromiumLinux::sliderTickSize):
148770        (WebCore::RenderThemeChromiumLinux::sliderTickOffsetFromTrackCenter):
148771        (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
148772        (WebCore::RenderThemeChromiumLinux::supportsControlTints):
148773        (WebCore::RenderThemeChromiumLinux::setCaretBlinkInterval):
148774        (WebCore::RenderThemeChromiumLinux::caretBlinkIntervalInternal):
148775        (WebCore::RenderThemeChromiumLinux::setSelectionColors):
148776        (WebCore::RenderThemeChromiumLinux::paintCheckbox):
148777        (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
148778        (WebCore::RenderThemeChromiumLinux::paintRadio):
148779        (WebCore::RenderThemeChromiumLinux::setRadioSize):
148780        (WebCore::RenderThemeChromiumLinux::paintButton):
148781        (WebCore::RenderThemeChromiumLinux::paintTextField):
148782        (WebCore::RenderThemeChromiumLinux::paintMenuList):
148783        (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
148784        (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
148785        (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
148786        (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
148787        (WebCore::RenderThemeChromiumLinux::paintProgressBar):
148788        (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key):
148789        * rendering/RenderThemeChromiumLinux.h: Added.
148790        (WebCore):
148791        (RenderThemeChromiumLinux):
148792
1487932012-12-03  Julien Chaffraix  <jchaffraix@webkit.org>
148794
148795        [CSS Grid Layout] Support paddings and margins on grid items
148796        https://bugs.webkit.org/show_bug.cgi?id=103677
148797
148798        Reviewed by Tony Chang.
148799
148800        After bug 102968, we properly resolve grid items' width and height against the
148801        grid areas' sizes. However we didn't check for paddings and margins, which is
148802        what this change fixes..
148803
148804        Test: fast/css-grid-layout/percent-padding-margin-resolution-grid-item.html
148805
148806        * rendering/RenderBox.cpp:
148807        (WebCore::RenderBox::computeLogicalWidthInRegion):
148808        Don't stretch the end margin to match the containing block's extent.
148809        The fix is similar to what was done for flex-box in bug 65887.
148810
148811        * rendering/RenderBoxModelObject.cpp:
148812        (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
148813        Added a comment about not using containingBlockLogicalWidthForContent.
148814
148815        (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
148816        (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
148817        (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
148818        (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
148819        (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
148820        (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
148821        (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
148822        (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
148823        Updated these functions to use containingBlockLogicalWidthForContent.
148824
148825        * rendering/RenderGrid.h:
148826        * rendering/RenderObject.h:
148827        (WebCore::RenderObject::isRenderGrid):
148828        Added isRenderGrid.
148829
1488302012-12-03  Scott Violet  <sky@chromium.org>
148831
148832        [chromium] Remove linux theme related files and switch to default
148833        https://bugs.webkit.org/show_bug.cgi?id=103897
148834
148835        Reviewed by Darin Fisher.
148836
148837        linux theme related files are now named default. This removes
148838        linux theme files, updates build files and removes ifdefs.
148839
148840        Code cleanup, no new tests.
148841
148842        * WebCore.gyp/WebCore.gyp: Update build rules
148843        * WebCore.gypi: Update build rules
148844        * platform/chromium/PlatformThemeChromiumLinux.cpp: Removed.
148845        * platform/chromium/PlatformThemeChromiumLinux.h: Removed.
148846        * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Removed.
148847        * platform/chromium/ScrollbarThemeChromiumLinux.h: Removed.
148848        * rendering/RenderThemeChromiumAndroid.h: Change superclass
148849        * rendering/RenderThemeChromiumAndroid.cpp: Change call to superclass
148850        * rendering/RenderThemeChromiumLinux.cpp: Removed.
148851        * rendering/RenderThemeChromiumLinux.h: Removed.
148852
1488532012-12-03  Pierre Rossi  <pierre.rossi@digia.com>
148854
148855        [Qt] Unreviewed build fix after r136410
148856
148857        When building without libjpeg, take JPEGImageDecoder's header out, since it now includes libjpeg.h.
148858
148859        * Target.pri: conditionally add JPEGImageDecoder.h to HEADERS
148860        * platform/image-decoders/ImageDecoder.cpp: guard JPEGImageDecoder.h's include
148861
1488622012-12-03  Kenneth Rohde Christiansen  <kenneth@webkit.org>
148863
148864        [EFL][Qt][WK2] Fixed position elements are not always fixed
148865        https://bugs.webkit.org/show_bug.cgi?id=103452
148866
148867        Reviewed by Simon Fraser.
148868
148869        The code figuring out whether fixed position layers are inside
148870        the visible viewport, assumes that the visible viewport is always
148871        the size of the layout viewport. This assumption doesn't hold with
148872        how the Qt and EFL tiled backing store and coordinated graphics
148873        works, so instead using the visibleContentsRect(), which provides
148874        the right values in all cases.
148875
148876        * rendering/RenderLayerCompositor.cpp:
148877        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
148878
148879            Use visibleContentsRect instead of scrollOffsetForFixedPosition().
148880
148881            scrollOffsetForFixedPosition() is needed sometimes in the Mac code
148882            because visibleContentRect() will return negative offsets when you
148883            are in the rubber-band phase of a scroll on the Mac.
148884
148885            However that is not an issue here.
148886
1488872012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>
148888
148889        Unreviewed, rolling out r135271.
148890        http://trac.webkit.org/changeset/135271
148891        https://bugs.webkit.org/show_bug.cgi?id=103940
148892
148893        Some user stylesheet API clients broken (Requested by anttik
148894        on #webkit).
148895
148896        * css/StyleResolver.cpp:
148897        (WebCore::StyleResolver::StyleResolver):
148898        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
148899        (WebCore::collectCSSOMWrappers):
148900        * css/StyleResolver.h:
148901        (StyleResolver):
148902        * dom/Document.cpp:
148903        (WebCore::Document::setCompatibilityMode):
148904        * dom/DocumentStyleSheetCollection.cpp:
148905        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
148906        (WebCore::DocumentStyleSheetCollection::pageUserSheet):
148907        (WebCore::DocumentStyleSheetCollection::clearPageUserSheet):
148908        (WebCore::DocumentStyleSheetCollection::updatePageUserSheet):
148909        (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
148910        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
148911        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
148912        * dom/DocumentStyleSheetCollection.h:
148913        (DocumentStyleSheetCollection):
148914        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
148915        * page/Page.cpp:
148916        (WebCore::Page::userStyleSheetLocationChanged):
148917
1489182012-11-30  Andrey Kosyakov  <caseq@chromium.org>
148919
148920        Web Inspector: make it possible to fliter out messages from console.{time,timeEnd}()
148921        https://bugs.webkit.org/show_bug.cgi?id=103781
148922
148923        Reviewed by Yury Semikhatsky.
148924
148925        - make console messages produced by console.timeEnd() TimingMessageType & DebugMessageLevel;
148926        - add console filter for Debug messages;
148927
148928        * inspector/ConsoleMessage.cpp:
148929        (WebCore::messageTypeValue):
148930        * inspector/Inspector.json:
148931        * inspector/InspectorConsoleAgent.cpp:
148932        (WebCore::InspectorConsoleAgent::stopTiming):
148933        * inspector/front-end/ConsoleMessage.js:
148934        (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
148935        * inspector/front-end/ConsoleView.js:
148936        (WebInspector.ConsoleView.prototype.):
148937        (WebInspector.ConsoleView.prototype.filter):
148938        * inspector/front-end/inspector.css:
148939        (.console-warning-level, .console-error-level, .console-log-level, .console-debug-level):
148940        (.filter-all .console-debug-level, .filter-debug .console-debug-level):
148941        (.filter-all .console-debug-level.repeated-message, .filter-debug .console-debug-level.repeated-message):
148942        * page/ConsoleTypes.h:
148943
1489442012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>
148945
148946        Unreviewed, rolling out r136444.
148947        http://trac.webkit.org/changeset/136444
148948        https://bugs.webkit.org/show_bug.cgi?id=103938
148949
148950        broke chromium build (Requested by zhenyao_wfh on #webkit).
148951
148952        * Target.pri:
148953        * platform/image-decoders/ImageDecoder.cpp:
148954
1489552012-12-03  Pierre Rossi  <pierre.rossi@digia.com>
148956
148957        [Qt] Unreviewed build fix after r136410
148958
148959        When building without libjpeg, take JPEGImageDecoder's header out, since it now includes libjpeg.h.
148960
148961        * Target.pri: conditionally add JPEGImageDecoder.h to HEADERS
148962        * platform/image-decoders/ImageDecoder.cpp: guard JPEGImageDecoder.h's include
148963
1489642012-11-30  James Simonsen  <simonjam@chromium.org>
148965
148966        [Resource Timing] Record and report initiator
148967        https://bugs.webkit.org/show_bug.cgi?id=103777
148968
148969        Reviewed by Nate Chapin.
148970
148971        This will start populating the Resource Timing buffer with entries. The initiator will be
148972        recorded for each CachedResourceLoader. This should match the next update of the spec.
148973
148974        Tests: http/tests/w3c/webperf/submission/resource-timing
148975
148976        * css/CSSFontSelector.cpp:
148977        (WebCore::CSSFontSelector::beginLoadTimerFired):
148978        * loader/ResourceLoadNotifier.cpp: Always record timing information if ENABLE(RESOURCE_TIMING).
148979        (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
148980        * loader/SubresourceLoader.cpp:
148981        (WebCore::SubresourceLoader::releaseResources): Report the actual resource that called loadDone().
148982        * loader/cache/CachedResourceLoader.cpp:
148983        (WebCore::CachedResourceLoader::loadResource): Record the initiator.
148984        (WebCore::CachedResourceLoader::loadDone): Record the entry in Resource Timing.
148985        * loader/cache/CachedResourceLoader.h:
148986        (CachedResourceLoader):
148987        (InitiatorInfo):
148988
1489892012-12-03  Florin Malita  <fmalita@chromium.org>
148990
148991        [Skia] Deferred SkCanvas save()
148992        https://bugs.webkit.org/show_bug.cgi?id=102272
148993
148994        Reviewed by Stephen White.
148995
148996        Implement a lazy save() strategy: instead of delegating to the canvas upfront, defer and
148997        only commit when a clip/matrix mutation is observed.
148998
148999        The patch yields a 1-20% SkCanvas save/restore reduction for heavy pages, with much larger
149000        gains observed for deeply nested SVG content.
149001
149002        No new tests: no behaviour changes, coverage provided by existing tests.
149003
149004        * platform/graphics/skia/GraphicsContextSkia.cpp:
149005        (WebCore::GraphicsContext::canvasClip):
149006        * platform/graphics/skia/PlatformContextSkia.cpp:
149007        (WebCore):
149008        (WebCore::PlatformContextSkia::DeferredSaveState::DeferredSaveState):
149009        (PlatformContextSkia::DeferredSaveState):
149010        (WebCore::PlatformContextSkia::PlatformContextSkia):
149011        (WebCore::PlatformContextSkia::save):
149012        (WebCore::PlatformContextSkia::saveLayer):
149013        (WebCore::PlatformContextSkia::beginLayerClippedToImage):
149014        (WebCore::PlatformContextSkia::restore):
149015        (WebCore::PlatformContextSkia::applyClipFromImage):
149016        * platform/graphics/skia/PlatformContextSkia.h:
149017        (PlatformContextSkia):
149018        (WebCore::PlatformContextSkia::realizeSave):
149019        (WebCore):
149020        (WebCore::PlatformContextSkia::canvas):
149021        (WebCore::PlatformContextSkia::clipPath):
149022        (WebCore::PlatformContextSkia::clipRect):
149023        (WebCore::PlatformContextSkia::setMatrix):
149024        (WebCore::PlatformContextSkia::concat):
149025        (WebCore::PlatformContextSkia::rotate):
149026        (WebCore::PlatformContextSkia::scale):
149027        (WebCore::PlatformContextSkia::translate):
149028
1490292012-12-03  Simon Fraser  <simon.fraser@apple.com>
149030
149031        When animating mask-postion on a composited layer, element renders incorrectly
149032        https://bugs.webkit.org/show_bug.cgi?id=103700
149033
149034        Reviewed by Tim Horton.
149035
149036        When a composited layer has a mask, we clipped the layer bounds to the
149037        size of the mask. This caused problems when animating the mask origin,
149038        which is considered a 'repaint' style change and so should not require
149039        layout or compositing geometry changes.
149040        
149041        Fix by ignoring the mask when computing the bounds of the compositing
149042        layer.
149043
149044        Test: compositing/masks/mask-layer-size.html
149045
149046        * rendering/RenderLayer.cpp:
149047        (WebCore::RenderLayer::localBoundingBox):
149048        (WebCore::RenderLayer::calculateLayerBounds):
149049        * rendering/RenderLayer.h:
149050        (RenderLayer):
149051        * rendering/RenderLayerCompositor.cpp:
149052        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
149053
1490542012-12-03  Xan Lopez  <xan@igalia.com>
149055
149056        [CSS Grid Layout] Support <percentage> and viewport-relative breadth sizes
149057        https://bugs.webkit.org/show_bug.cgi?id=103335
149058
149059        Reviewed by Julien Chaffraix.
149060
149061        Test: fast/css-grid-layout/breadth-size-resolution-grid.html
149062
149063        * css/CSSComputedStyleDeclaration.cpp:
149064        (WebCore::valueForGridTrackBreadth): Support the new types.
149065        (WebCore::valueForGridTrackMinMax): Modify the call to previous
149066        method, since the signature has changed.
149067        (WebCore::valueForGridTrackGroup): Ditto.
149068        (WebCore::valueForGridTrackList): Ditto.
149069        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Ditto.
149070        * rendering/RenderGrid.cpp:
149071        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Suport
149072        percent and viewport relative types, calc() will be supported in a
149073        follow up (see bug #103761)
149074
1490752012-12-03  Peter Rybin  <prybin@chromium.org>
149076
149077        Web Inspector: make ASSERTION FAILED: foundPropertiesCount == object->size() more useful
149078        https://bugs.webkit.org/show_bug.cgi?id=103254
149079
149080        Reviewed by Pavel Feldman.
149081
149082        Assert code generation is slightly changed so that it dumped JSON object text before crashing.
149083
149084        * inspector/CodeGeneratorInspector.py:
149085
1490862012-12-03  Max Vujovic  <mvujovic@adobe.com>
149087
149088        [CSS Shaders] Do not clamp indirect array indices during CSS Shaders ANGLE validation pass
149089        https://bugs.webkit.org/show_bug.cgi?id=102731
149090
149091        Reviewed by Dean Jackson.
149092
149093        Before this patch, we validated all shaders with the compile flag
149094        SH_CLAMP_INDIRECT_ARRAY_BOUNDS in ANGLEWebKitBridge. This would insert a GLSL function
149095        "webgl_int_clamp" in validated CSS shaders. However, when validated CSS shaders would pass
149096        through ANGLE again at the GC3D level, ANGLE would reject them because they would contain
149097        the "webgl_" restricted prefix.
149098
149099        Now, we only pass the compile flag SH_CLAMP_INDIRECT_ARRAY_BOUNDS at the GC3D level.
149100
149101        Test: css3/filters/custom/custom-filter-array-uniform-indirect-index.html
149102
149103        * platform/graphics/ANGLEWebKitBridge.cpp:
149104        (WebCore::ANGLEWebKitBridge::compileShaderSource):
149105            Remove the SH_CLAMP_INDIRECT_ARRAY_BOUNDS compile flag.
149106        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
149107        (WebCore::CustomFilterValidatedProgram::compiledProgram):
149108            Add an assert that validated programs compile at the GC3D or platform level to help us
149109            catch validation and rewriting issues.
149110        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
149111        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
149112            Pass the SH_CLAMP_INDIRECT_ARRAY_BOUNDS to compileShaderSource.
149113
1491142012-12-03  Eugene Klyuchnikov  <eustas@chromium.org>
149115
149116        Web Inspector: Make main-thread monitoring go through InspectorController
149117        https://bugs.webkit.org/show_bug.cgi?id=103550
149118
149119        Reviewed by Pavel Feldman.
149120
149121        InspectorInstrumentation was a wrong path.
149122
149123        * inspector/InspectorClient.h: Remove start/stop methods.
149124        * inspector/InspectorController.cpp:
149125        Dispatch main thread activity notifications.
149126        * inspector/InspectorController.h: Ditto.
149127        * inspector/InspectorInstrumentation.cpp: Remove dispatchng.
149128        * inspector/InspectorInstrumentation.h: Ditto.
149129        * inspector/InspectorTimelineAgent.cpp:
149130        Do not subscribe for notifications explicitly.
149131
1491322012-12-03  Philip Rogers  <pdr@google.com>
149133
149134        Invalidate SVG width on width attribute changes.
149135        https://bugs.webkit.org/show_bug.cgi?id=103304
149136
149137        Reviewed by Dirk Schulze.
149138
149139        An inline SVG element's replaced width can depend on both attributes and style properties.
149140        After r105513, we invalidated this width on style changes but not attribute changes. With
149141        this patch we invalidate the replaced width on width attribute changes too. Note that height
149142        is handled differently for replaced elements so only the width attribute needs this handling
149143        (the added test covers this too).
149144
149145        Test: svg/custom/root-size-attribute-changes.html
149146
149147        * svg/SVGSVGElement.cpp:
149148        (WebCore::SVGSVGElement::svgAttributeChanged):
149149
1491502012-12-03  Alec Flett  <alecflett@chromium.org>
149151
149152        IndexedDB: remove IDBDatabaseBackendInterface::transaction()
149153        https://bugs.webkit.org/show_bug.cgi?id=102733
149154
149155        Reviewed by Darin Fisher.
149156
149157        Part 3 of a refactor, remove the old transaction() method.
149158
149159        No new tests as this is just post-refactor cleanup.
149160
149161        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
149162        (IDBDatabaseBackendInterface):
149163
1491642012-12-03  Andrey Adaikin  <aandrey@chromium.org>
149165
149166        Web Inspector: [Canvas] show replay screenshot of the last call's canvas
149167        https://bugs.webkit.org/show_bug.cgi?id=103739
149168
149169        Reviewed by Pavel Feldman.
149170
149171        When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
149172        Meanwhile, show the screenshot of the last-touched canvas during the current replay.
149173
149174        * inspector/InjectedScriptCanvasModuleSource.js:
149175        (.):
149176
1491772012-12-03  Joshua Bell  <jsbell@chromium.org>
149178
149179        IndexedDB: Rename exception enum members from UGLY_ERR to PrettyError
149180        https://bugs.webkit.org/show_bug.cgi?id=103759
149181
149182        Reviewed by Darin Fisher.
149183
149184        Now that IDBDatabaseException isn't exposed to script with constants, the exception types
149185        can be renamed to match the much friendlier names used in newer iterations of the spec. Also
149186        remove the legacy/unused types.
149187
149188        No new tests, just constant renames.
149189
149190        * Modules/indexeddb/IDBCursor.cpp:
149191        (WebCore::IDBCursor::update):
149192        (WebCore::IDBCursor::advance):
149193        (WebCore::IDBCursor::continueFunction):
149194        (WebCore::IDBCursor::deleteFunction):
149195        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
149196        (WebCore::IDBCursorBackendImpl::continueFunction):
149197        (WebCore::IDBCursorBackendImpl::advance):
149198        (WebCore::IDBCursorBackendImpl::prefetchContinue):
149199        * Modules/indexeddb/IDBDatabase.cpp:
149200        (WebCore::IDBDatabase::createObjectStore):
149201        (WebCore::IDBDatabase::deleteObjectStore):
149202        (WebCore::IDBDatabase::transaction):
149203        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
149204        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
149205        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
149206        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
149207        (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
149208        (WebCore::IDBDatabaseBackendImpl::openConnection):
149209        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
149210        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
149211        (WebCore::IDBDatabaseBackendImpl::close):
149212        * Modules/indexeddb/IDBDatabaseException.cpp: Tidying and renaming.
149213        (WebCore):
149214        (WebCore::getErrorEntry):
149215        * Modules/indexeddb/IDBDatabaseException.h:
149216        * Modules/indexeddb/IDBFactory.cpp:
149217        (WebCore::IDBFactory::cmp):
149218        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
149219        (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
149220        (WebCore::IDBFactoryBackendImpl::deleteDatabase):
149221        (WebCore::IDBFactoryBackendImpl::open):
149222        * Modules/indexeddb/IDBIndex.cpp:
149223        (WebCore::IDBIndex::openCursor):
149224        (WebCore::IDBIndex::count):
149225        (WebCore::IDBIndex::openKeyCursor):
149226        (WebCore::IDBIndex::get):
149227        (WebCore::IDBIndex::getKey):
149228        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
149229        (WebCore::IDBIndexBackendImpl::openCursor):
149230        (WebCore::IDBIndexBackendImpl::openKeyCursor):
149231        (WebCore::IDBIndexBackendImpl::count):
149232        (WebCore::IDBIndexBackendImpl::get):
149233        (WebCore::IDBIndexBackendImpl::getKey):
149234        * Modules/indexeddb/IDBKeyRange.cpp:
149235        (WebCore::IDBKeyRange::only):
149236        (WebCore::IDBKeyRange::lowerBound):
149237        (WebCore::IDBKeyRange::upperBound):
149238        (WebCore::IDBKeyRange::bound):
149239        * Modules/indexeddb/IDBObjectStore.cpp:
149240        (WebCore::IDBObjectStore::get):
149241        (WebCore::IDBObjectStore::put):
149242        (WebCore::IDBObjectStore::deleteFunction):
149243        (WebCore::IDBObjectStore::clear):
149244        (WebCore):
149245        (WebCore::IDBObjectStore::createIndex):
149246        (WebCore::IDBObjectStore::index):
149247        (WebCore::IDBObjectStore::deleteIndex):
149248        (WebCore::IDBObjectStore::openCursor):
149249        (WebCore::IDBObjectStore::count):
149250        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
149251        (WebCore::IDBObjectStoreBackendImpl::get):
149252        (WebCore::IDBObjectStoreBackendImpl::put):
149253        (WebCore):
149254        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
149255        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
149256        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
149257        (WebCore::IDBObjectStoreBackendImpl::clear):
149258        (WebCore::IDBObjectStoreBackendImpl::createIndex):
149259        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
149260        (WebCore::IDBObjectStoreBackendImpl::openCursor):
149261        (WebCore::IDBObjectStoreBackendImpl::count):
149262        * Modules/indexeddb/IDBOpenDBRequest.cpp:
149263        (WebCore::IDBOpenDBRequest::dispatchEvent):
149264        * Modules/indexeddb/IDBRequest.cpp:
149265        (WebCore::IDBRequest::result):
149266        (WebCore::IDBRequest::error):
149267        (WebCore::IDBRequest::errorCode):
149268        (WebCore::IDBRequest::webkitErrorMessage):
149269        (WebCore::IDBRequest::abort):
149270        (WebCore::IDBRequest::dispatchEvent):
149271        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
149272        * Modules/indexeddb/IDBTransaction.cpp:
149273        (WebCore::IDBTransaction::objectStore):
149274        (WebCore::IDBTransaction::abort):
149275        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
149276        (WebCore::IDBTransactionBackendImpl::objectStore):
149277        (WebCore::IDBTransactionBackendImpl::abort):
149278        (WebCore::IDBTransactionBackendImpl::commit):
149279
1492802012-12-03  Alexis Menard  <alexis@webkit.org>
149281
149282        [Mac] Enable CSS3 background-position offset by default.
149283        https://bugs.webkit.org/show_bug.cgi?id=103905
149284
149285        Reviewed by Simon Fraser.
149286
149287        Turn the flag on by default.
149288
149289        No new tests : covered by tests landed previously.
149290
149291        * Configurations/FeatureDefines.xcconfig:
149292        * css/CSSToStyleMap.cpp:
149293        (WebCore::CSSToStyleMap::mapFillXPosition): Build fix in release on Mac with unused variable.
149294        (WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
149295
1492962012-12-03  Jan Keromnes  <janx@linux.com>
149297
149298        Web Inspector: Implement context menus in CodeMirrorTextEditor
149299        https://bugs.webkit.org/show_bug.cgi?id=94062
149300
149301        Reviewed by Pavel Feldman.
149302
149303        Listen for contextmenu events in the editor and handle them differently
149304        if triggered on gutter line number or in text body. This adds controls
149305        for breakpoints (including disabled / conditional), debugger navigation
149306        and text input methods.
149307
149308        * inspector/front-end/CodeMirrorTextEditor.js:
149309        (WebInspector.CodeMirrorTextEditor):
149310        (WebInspector.CodeMirrorTextEditor.prototype._contextMenu):
149311
1493122012-12-03  Nate Chapin  <japhet@chromium.org>
149313
149314        Make MainResourceLoader not use m_frame directly.
149315        https://bugs.webkit.org/show_bug.cgi?id=103907
149316
149317        Reviewed by Darin Adler.
149318
149319        MainResourceLoader will soon cease to be a ResourceLoader subclass.  It currently
149320        makes extensively use of both m_documentLoader and m_frame from ResourceLoader.
149321        By moving everything over to going through m_documentLoader, we reduce the number
149322        of members we have to add to MainResourceLoader in https://bugs.webkit.org/show_bug.cgi?id=49246.
149323
149324        No new tests, refactor only.
149325
149326        * loader/DocumentLoader.cpp:
149327        (WebCore::DocumentLoader::startLoadingMainResource):
149328        * loader/MainResourceLoader.cpp:
149329        (WebCore::MainResourceLoader::MainResourceLoader):
149330        (WebCore::MainResourceLoader::create):
149331        (WebCore::MainResourceLoader::receivedError):
149332        (WebCore::MainResourceLoader::willSendRequest):
149333        (WebCore::MainResourceLoader::continueAfterContentPolicy):
149334        (WebCore::MainResourceLoader::didReceiveResponse):
149335        (WebCore::MainResourceLoader::didReceiveData):
149336        (WebCore::MainResourceLoader::startDataLoadTimer):
149337        * loader/MainResourceLoader.h:
149338        (MainResourceLoader):
149339
1493402012-12-03  Anton Vayvod  <avayvod@chromium.org>
149341
149342        Text Autosizing: don't autosize horizontal menu items implemented via floating list items
149343        https://bugs.webkit.org/show_bug.cgi?id=103840
149344
149345        Reviewed by Kenneth Rohde Christiansen.
149346
149347        Floating list items are often used to implement horizontal menus. Currently, text autosizing 
149348        disregards such elements as autosizing containers. List items are often then autosized as part
149349        of a bigger cluster (usually the whole page) and look too big.
149350        This change turns floating list items into autosizing clusters so they are autosized separately
149351        resulting in no font size multiplication for menu items implemented in this manner.
149352
149353        Test: fast/text-autosizing/cluster-list-item.html
149354
149355        * rendering/TextAutosizer.cpp:
149356        (WebCore::TextAutosizer::isAutosizingContainer): Returns true for floating list items; split the
149357        condition logically.
149358
1493592012-12-03  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
149360
149361        Optimization in image decoding
149362        https://bugs.webkit.org/show_bug.cgi?id=88424
149363
149364        Reviewed by Brent Fulgham.
149365
149366        Replace int with J_COLOR_SPACE in parameters of templates setPixel and
149367        outputScanlines to avoid casting from int to enum. It required move 
149368        inclusion of jpeglib.h and related #if to JPEGImageDecoder.h .
149369
149370        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
149371        (WebCore):
149372        (WebCore::setPixel):
149373        (WebCore::JPEGImageDecoder::outputScanlines):
149374        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
149375        (JPEGImageDecoder):
149376
1493772012-12-03  Tony Chang  <tony@chromium.org>
149378
149379        [mathml] Improve performance of nested sup or sub elements
149380        https://bugs.webkit.org/show_bug.cgi?id=103665
149381
149382        Reviewed by Darin Adler.
149383
149384        Reduce the number of extra layouts. Since RenderMathMLSubSup calls
149385        layout twice, this can lead to an exponential number of layouts. Avoid
149386        extra layouts.
149387
149388        Test: mathml/presentation/sup-nested.html - Should not time out.
149389
149390        * css/mathml.css:
149391        (msup): Stretching children also causes extra layouts. Avoid this by aligning to the top.
149392        (msub): Same as msup, but align to the bottom.
149393        * rendering/mathml/RenderMathMLSubSup.cpp:
149394        (WebCore::RenderMathMLSubSup::layout): Only do the second layout if the padding changed.
149395        Also fix up the calls to setNeedsLayout (since we're calling it on this) and
149396        setChildNeedsLayout (since we're calling it on a child).
149397
1493982012-12-03  Konrad Piascik  <kpiascik@rim.com>
149399
149400        Web Inspector: free Page resources on inspector disconnect
149401        https://bugs.webkit.org/show_bug.cgi?id=103888
149402
149403        Reviewed by Yury Semikhatsky.
149404
149405        We don't need to keep the page around and can free up memory when disconnecting web inspector.
149406
149407        Not testable.
149408
149409        * inspector/InspectorController.cpp:
149410        (WebCore::InspectorController::disconnectFrontend):
149411        * inspector/InspectorOverlay.cpp:
149412        (WebCore::InspectorOverlay::freePage):
149413        (WebCore):
149414        * inspector/InspectorOverlay.h:
149415        (InspectorOverlay):
149416
1494172012-12-03  Alexis Menard  <alexis@webkit.org>
149418
149419        [GTK] Enable CSS3 background-background position offset by default.
149420        https://bugs.webkit.org/show_bug.cgi?id=103903
149421
149422        Reviewed by Philippe Normand.
149423
149424        Turn the feature on by default.
149425
149426        No new tests : covered by tests already landed.
149427
149428        * GNUmakefile.features.am:
149429
1494302012-12-03  Hajime Morrita  <morrita@google.com>
149431
149432        Corrupted DOM tree during appendChild/insertBefore
149433        https://bugs.webkit.org/show_bug.cgi?id=103601
149434
149435        Reviewed by Abhishek Arya.
149436
149437        There are some missing protection in appendChild() and insertBefore().
149438        This change added these.
149439
149440        Dromaeo dom-modify shows no speed regression (5445run/s before vs 5351run/s after)
149441
149442        Tests: fast/events/mutation-during-append-child.html
149443               fast/events/mutation-during-insert-before.html
149444
149445        * dom/ContainerNode.cpp:
149446        (WebCore::checkAcceptChildGuaranteedNodeTypes):
149447        (WebCore):
149448        (WebCore::ContainerNode::insertBefore):
149449        (WebCore::ContainerNode::appendChild):
149450
1494512012-12-03  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
149452
149453        Document::initSecurityContext() fails to call securityOrigin().grantLoadLocalResources()
149454        https://bugs.webkit.org/show_bug.cgi?id=68711
149455
149456        Reviewed by Adam Barth.
149457
149458        It currently fails since Document::loader() will return 0 until
149459        Frame::setDocument is called and we are doing this check before it happens.
149460
149461        Delay the check and let the FrameLoader take care of doing grantLoadLocalResources()
149462        on the Document along with other header checks in FrameLoader::didBeginDocument.
149463
149464        * dom/Document.cpp:
149465        (WebCore::Document::initSecurityContext):
149466        * loader/FrameLoader.cpp:
149467        (WebCore::FrameLoader::didBeginDocument):
149468
1494692012-12-03  Yong Li  <yoli@rim.com>
149470
149471        ENABLE(IMAGE_DECODER_DOWN_SAMPLING): Should use TURBO_JPEG_RGB_SWIZZLE fast path for non-scaled images
149472        https://bugs.webkit.org/show_bug.cgi?id=103749
149473
149474        Reviewed by Rob Buis.
149475
149476        Replace !ENABLE(IMAGE_DECODER_DOWN_SAMPLING) with !m_scaled.
149477
149478        No new tests as existing jpegs are good with IMAGE_DECODER_DOWN_SAMPLING set up.
149479
149480        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
149481        (WebCore::JPEGImageDecoder::outputScanlines):
149482
1494832012-12-03  Tommy Widenflycht  <tommyw@google.com>
149484
149485        Speech Recognition API: Update SpeechRecognitionEvent to match the specification
149486        https://bugs.webkit.org/show_bug.cgi?id=103407
149487
149488        Reviewed by Kentaro Hara.
149489
149490        Specification for the Speech Recognition API:
149491        http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
149492
149493        This patch does the following:
149494        o Adds results, and removing result, on SpeechRecognitionEvent
149495        o Renaming SpeechRecognitionResult::final to isFinal
149496        o Removing emma from SpeechRecognitionResult
149497
149498        The emma attribute is supposed to move from SpeechRecognitionResult to the SpeechRecognitionEvent,
149499        but that caused GC issues for unrelated code so it will be added later when properly fixed.
149500
149501        Existing tests updated to test the new API.
149502
149503        * Modules/speech/SpeechRecognition.cpp:
149504        (WebCore::SpeechRecognition::start):
149505        (WebCore::SpeechRecognition::didReceiveResults):
149506        (WebCore):
149507        * Modules/speech/SpeechRecognition.h:
149508        (SpeechRecognition):
149509        * Modules/speech/SpeechRecognitionEvent.cpp:
149510        (WebCore::SpeechRecognitionEvent::createResult):
149511        (WebCore):
149512        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
149513        (WebCore::SpeechRecognitionEvent::~SpeechRecognitionEvent):
149514        * Modules/speech/SpeechRecognitionEvent.h:
149515        (SpeechRecognitionEventInit):
149516        (SpeechRecognitionEvent):
149517        (WebCore::SpeechRecognitionEvent::resultIndex):
149518        (WebCore::SpeechRecognitionEvent::results):
149519        * Modules/speech/SpeechRecognitionEvent.idl:
149520        * Modules/speech/SpeechRecognitionResult.cpp:
149521        * Modules/speech/SpeechRecognitionResult.h:
149522        (WebCore::SpeechRecognitionResult::isFinal):
149523        (SpeechRecognitionResult):
149524        * Modules/speech/SpeechRecognitionResult.idl:
149525        * WebCore.gypi:
149526        * bindings/js/JSDictionary.cpp:
149527        (WebCore::JSDictionary::convertValue):
149528        (WebCore):
149529        * bindings/js/JSDictionary.h:
149530        * bindings/v8/Dictionary.cpp:
149531        (WebCore::Dictionary::get):
149532        (WebCore):
149533        * bindings/v8/Dictionary.h:
149534        (Dictionary):
149535        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp: Removed.
149536
1495372012-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>
149538
149539        Unreviewed, rolling out r136377.
149540        http://trac.webkit.org/changeset/136377
149541        https://bugs.webkit.org/show_bug.cgi?id=103881
149542
149543        Causes crashes on debug builds that use JSC. (Requested by
149544        mkwst on #webkit).
149545
149546        * Modules/websockets/WebSocket.cpp:
149547        (WebCore::WebSocket::connect):
149548        * Modules/websockets/WebSocketChannel.cpp:
149549        (WebCore::WebSocketChannel::didFailSocketStream):
149550        * css/MediaList.cpp:
149551        (WebCore::addResolutionWarningMessageToConsole):
149552        * dom/Document.cpp:
149553        (WebCore::Document::logExceptionToConsole):
149554        (WebCore::Document::processHttpEquiv):
149555        * dom/Document.h:
149556        (Document):
149557        * dom/ScriptExecutionContext.h:
149558        (ScriptExecutionContext):
149559        * dom/ViewportArguments.cpp:
149560        (WebCore):
149561        (WebCore::parserLineNumber):
149562        (WebCore::reportViewportWarning):
149563        * html/HTMLFormElement.cpp:
149564        (WebCore::HTMLFormElement::validateInteractively):
149565        * html/HTMLIFrameElement.cpp:
149566        (WebCore::HTMLIFrameElement::parseAttribute):
149567        * html/canvas/WebGLRenderingContext.cpp:
149568        (WebCore):
149569        (WebCore::WebGLRenderingContext::printWarningToConsole):
149570        * inspector/ConsoleMessage.cpp:
149571        (WebCore::ConsoleMessage::ConsoleMessage):
149572        * inspector/ConsoleMessage.h:
149573        (ConsoleMessage):
149574        * inspector/InspectorConsoleAgent.cpp:
149575        (WebCore::InspectorConsoleAgent::enable):
149576        (WebCore::InspectorConsoleAgent::addMessageToConsole):
149577        (WebCore::InspectorConsoleAgent::count):
149578        * loader/FrameLoader.cpp:
149579        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
149580        * loader/MainResourceLoader.cpp:
149581        (WebCore::MainResourceLoader::didReceiveResponse):
149582        * page/Console.cpp:
149583        * page/Console.h:
149584        (Console):
149585        * page/DOMWindow.cpp:
149586        (WebCore::DOMWindow::printErrorMessage):
149587        * svg/SVGDocumentExtensions.cpp:
149588        (WebCore):
149589        (WebCore::parserLineNumber):
149590        (WebCore::reportMessage):
149591        * workers/WorkerContext.cpp:
149592        * workers/WorkerContext.h:
149593        (WorkerContext):
149594
1495952012-12-03  Kihong Kwon  <kihong.kwon@samsung.com>
149596
149597        Remove useless included header and change position of Proximity Events test cases
149598        https://bugs.webkit.org/show_bug.cgi?id=103871
149599
149600        Reviewed by Antonio Gomes.
149601
149602        Remove useless included header from DeviceProximityEvent.cpp.
149603
149604        No new tests, It is just code refactoring.
149605
149606        * Modules/proximity/DeviceProximityEvent.cpp:
149607
1496082012-12-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
149609
149610        [GStreamer] initial volume events on media elements should happen earlier
149611        https://bugs.webkit.org/show_bug.cgi?id=96912
149612
149613        Reviewed by Philippe Normand.
149614
149615        Update mediaelement volume and mute properties to whatever values
149616        playbin has as soon as possible (when the playbin reaches PAUSED state).
149617        This will improve user experience as the volume visuals won't suddenly
149618        change when user clicks play.
149619
149620        No new tests: media/event-attributes.html already tests media events.
149621        Unfortunately this test is flaky on EFL and GTK (more specifically
149622        it is flaky on pulseaudio-using gstreamer platforms: http://webkit.org/b/83704).
149623
149624        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
149625        (WebCore::MediaPlayerPrivateGStreamer::load):
149626        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
149627        (MediaPlayerPrivateGStreamer):
149628
1496292012-12-03  Alexis Menard  <alexis@webkit.org>
149630
149631        Unreviewed build fix after r136378.
149632
149633        * css/CSSPrimitiveValueMappings.h:
149634        (WebCore):
149635        (WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):
149636
1496372012-12-03  Alexis Menard  <alexis@webkit.org>
149638
149639        [CSS3 Backgrounds and Borders] Implement CSS3 background-position offsets rendering.
149640        https://bugs.webkit.org/show_bug.cgi?id=103440
149641
149642        Reviewed by Julien Chaffraix.
149643
149644        Add the rendering bits of the new background-position offsets. It adds
149645        new bits in FillLayer to store the edges used to position the
149646        background. The old x and y members are used the same way as before, to
149647        store the value of the offset.
149648
149649        Test: fast/backgrounds/background-position-rendering.html
149650
149651        * css/CSSComputedStyleDeclaration.cpp:
149652        (WebCore::createPositionListForLayer): Refactor into a function the
149653        code duplicated in getPropertyCSSValue to avoid more code
149654        duplication.
149655        (WebCore):
149656        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
149657        * css/CSSPrimitiveValueMappings.h:
149658        (WebCore):
149659        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
149660        Add implicit conversion from the enums used in the rendering code to
149661        CSS values.
149662        (WebCore::CSSPrimitiveValue::operator BackgroundEdgeOrigin):
149663        * css/CSSToStyleMap.cpp:
149664        (WebCore::CSSToStyleMap::mapFillXPosition):
149665        (WebCore::CSSToStyleMap::mapFillYPosition):
149666        * rendering/RenderBoxModelObject.cpp:
149667        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Add
149668        support for the new positioning and refactor a little naming of the
149669        variables for better readability.
149670        * rendering/style/FillLayer.cpp:
149671        (SameSizeAsFillLayer):
149672        (WebCore::FillLayer::FillLayer):
149673        (WebCore::FillLayer::operator=):
149674        (WebCore::FillLayer::operator==):
149675        (WebCore::FillLayer::fillUnsetProperties):
149676        (WebCore::FillLayer::fillUnsetProperties): When filling the layer with
149677        unset properties make sure we also set the x and y origins of the
149678        background in case they were set.
149679        * rendering/style/FillLayer.h:
149680        (WebCore::FillLayer::backgroundXOrigin):
149681        (WebCore::FillLayer::backgroundYOrigin):
149682        (WebCore::FillLayer::isBackgroundOriginSet):
149683        (FillLayer):
149684        (WebCore::FillLayer::setBackgroundXOrigin):
149685        (WebCore::FillLayer::setBackgroundYOrigin):
149686        (WebCore::FillLayer::clearPositionX):
149687        (WebCore::FillLayer::clearPositionY):
149688        * rendering/style/RenderStyleConstants.h:
149689
1496902012-12-03  Mike West  <mkwst@chromium.org>
149691
149692        Web Inspector: Autogenerate stack traces and line numbers when possible.
149693        https://bugs.webkit.org/show_bug.cgi?id=100650
149694
149695        Reviewed by Yury Semikhatsky.
149696
149697        Console messages generated in WebCore generally are asked to do a bit of
149698        work in order to provide a developer with a detailed report. We ask the
149699        caller to either generate stack traces, or pass in a url/line number
149700        pair, which can be a bit of work. Predictably, most callers don't pass
149701        in what we'd like to see.
149702
149703        This patch creates a new, simpler console message generation API that we
149704        expect most call sites to use. Source, type, level, and message are
149705        required, and an optional request ID can be passed in. Everything else
149706        will be autogenerated inside ConsoleMessage when appropriate.
149707
149708        In a subsequent patch, we expect to be able to trim down more of the
149709        external call sites (ContentSecurityPolicy springs to mind) in order to
149710        further consolidate the external interface. Simple is good.
149711
149712        * Modules/websockets/WebSocket.cpp:
149713        (WebCore::WebSocket::connect):
149714        * Modules/websockets/WebSocketChannel.cpp:
149715        (WebCore::WebSocketChannel::didFailSocketStream):
149716            Drop the now-redundant URL parameter from various WebSocket errors.
149717        * css/MediaList.cpp:
149718        (WebCore::addResolutionWarningMessageToConsole):
149719            Switch to Document::addConsoleMessage, which means that we can move
149720            line-number generation out of MediaList.
149721        * dom/Document.cpp:
149722        (WebCore::Document::logExceptionToConsole):
149723            Use the long-form 'addMessage()' rather than the public interface.
149724        (WebCore::Document::processHttpEquiv):
149725            Drop the URL parameter, as it's now autogenerated.
149726        (WebCore::Document::addConsoleMessage):
149727        (WebCore):
149728        * dom/Document.h:
149729        (Document):
149730            Override the pure virtual method on ScriptExecutionContext, and pass
149731            the call through to the new Console::addMessage, which accepts a
149732            pointer to the Document in order to do line-number generation.
149733        * dom/ScriptExecutionContext.h:
149734        (ScriptExecutionContext):
149735            Add a pure virtual variant of addConsoleMessage which accepts only
149736            bare minimum data, and expects autogeneration of the rest.
149737            Additionally, ensure that the other variants always have either a
149738            URL/line number, or a stack trace.
149739        * dom/ViewportArguments.cpp:
149740        (WebCore::reportViewportWarning):
149741            Drop line numbers and URLs from Viewport warnings. We can generate
149742            these now.
149743        * html/HTMLFormElement.cpp:
149744        (WebCore::HTMLFormElement::validateInteractively):
149745            Drop the URL from form autofocus warnings
149746        * html/HTMLIFrameElement.cpp:
149747        (WebCore::HTMLIFrameElement::parseAttribute):
149748            Drop the URL and line from sandbox attribute warnings.
149749        * html/canvas/WebGLRenderingContext.cpp:
149750        (WebCore):
149751        (WebCore::WebGLRenderingContext::printWarningToConsole):
149752            Drop the URL from WebGL warnings.
149753        * inspector/ConsoleMessage.cpp:
149754        (WebCore::ConsoleMessage::ConsoleMessage):
149755            Call 'autogenerateMetadata' to ensure that a stack trace is
149756            generated if one isn't provided. Create a new constructor that
149757            accepts a ScriptState/ScriptArguments pair, and use it for console
149758            API calls.
149759        (WebCore):
149760        (WebCore::ConsoleMessage::autogenerateMetadata):
149761            Generate a stack trace given whatever information we've got.
149762        * inspector/ConsoleMessage.h:
149763        (ConsoleMessage):
149764            Create a new constructor that accepts a ScriptState/ScriptArguments
149765            pair, and use it for console API calls.
149766        * inspector/InspectorConsoleAgent.cpp:
149767        (WebCore::InspectorConsoleAgent::enable):
149768            Use the short-form ConsoleMessage constructor.
149769        (WebCore::InspectorConsoleAgent::addMessageToConsole):
149770            Use the stack-only constructor, or the ScriptState
149771            constructor, as appropriate.
149772        (WebCore::InspectorConsoleAgent::count):
149773            We generated a stack, pass it in.
149774        * loader/FrameLoader.cpp:
149775        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
149776        * loader/MainResourceLoader.cpp:
149777        (WebCore::MainResourceLoader::didReceiveResponse):
149778            Drop the URL parameter from the console message for X-Frame-Options
149779            parsing errors.
149780        * page/Console.cpp:
149781        (WebCore::Console::addMessage):
149782            When given a Document*, generate a line number if: 1) the document
149783            is still being parsed, 2) the document is not in document.write(),
149784            3) the parser isn't waiting for script, and 4) the parser isn't
149785            executing script. Many callsites didn't check all of these, which
149786            is why the SVG rebaseline (for example) drops lots and lots of line
149787            numbers which point at a closing '</script>' tag.
149788        (WebCore):
149789        * page/Console.h:
149790        (WebCore):
149791        (Console):
149792            Update the public API to accept a Document* and little else.
149793        * page/DOMWindow.cpp:
149794        (WebCore::DOMWindow::printErrorMessage):
149795            Don't generate a stack here. We can do it later.
149796        * svg/SVGDocumentExtensions.cpp:
149797        (WebCore::reportMessage):
149798            Drop the URL and line number. We'll generate them. It'll be sweet.
149799        * workers/WorkerContext.cpp:
149800        (WebCore::WorkerContext::addConsoleMessage):
149801            Generate a stack here, as we likely won't have the context to do
149802            so later. Pass it through.
149803        (WebCore):
149804        * workers/WorkerContext.h:
149805        (WorkerContext):
149806            Implement the new addConsoleMessage variant.
149807
1498082012-12-03  Gabor Rapcsanyi  <rgabor@webkit.org>
149809
149810        [Qt] Remove an unnecessary masking from swapBgrToRgb()
149811        https://bugs.webkit.org/show_bug.cgi?id=103630
149812
149813        Reviewed by Zoltan Herczeg.
149814
149815        Get rid of a masking command in swapBgrToRgb() to speed up a little bit.
149816
149817        * platform/graphics/qt/GraphicsContext3DQt.cpp:
149818        (WebCore::swapBgrToRgb):
149819
1498202012-12-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
149821
149822        CSS Device Adaptation: window.innerWidth returns wrong value if CSS viewport descriptors are applied
149823        https://bugs.webkit.org/show_bug.cgi?id=103737
149824
149825        Reviewed by Kenneth Rohde Christiansen.
149826
149827        ViewportStyleResolver used frame view visibleContentRect size as initial viewport size.
149828        This however caused a problem when page enabled/disabled CSS stylesheets, having viewport
149829        descriptors. Viewport descriptors from new stylesheet were applied to the visibleContentRect
149830        affected already by the viewport descriptors from the previous stylesheet.
149831
149832        New 'initialViewportSize' property (http://dev.w3.org/csswg/css-device-adapt/#initial-viewport)
149833        was added to frame view so that viewport descriptors can always be applied to the reliable
149834        viewport size.
149835
149836        Test: css3/device-adapt/viewport-width-check-window-innerwidth-correct.html
149837
149838        * css/ViewportStyleResolver.cpp:
149839        (WebCore::ViewportStyleResolver::ViewportStyleResolver):
149840        (WebCore::ViewportStyleResolver::getViewportArgumentValue):
149841        * css/ViewportStyleResolver.h:
149842        (ViewportStyleResolver):
149843        * dom/Document.cpp:
149844        (WebCore):
149845        (WebCore::Document::initialViewportSize):
149846        * dom/Document.h:
149847        (Document):
149848        * page/FrameView.h:
149849        (FrameView):
149850        (WebCore::FrameView::initialViewportSize):
149851        (WebCore::FrameView::setInitialViewportSize):
149852
1498532012-12-03  Alexander Pavlov  <apavlov@chromium.org>
149854
149855        Web Inspector: [Styles] Retain selector case as written in the source code
149856        https://bugs.webkit.org/show_bug.cgi?id=103118
149857
149858        Reviewed by Antti Koivisto.
149859
149860        This change:
149861        - adds parsing of selector group components in the CSSParser;
149862        - builds the SelectorList.selectors based on the source code whenever possible.
149863          Strips [multiline] comments and whitespace;
149864        - adds the MultilineMode to RegularExpression.
149865
149866        Test: inspector/styles/selector-list.html
149867
149868        * WebCore.exp.in: Update the exported symbol.
149869        * css/CSSGrammar.y.in: Add invocations for CSSParser::markSelector[Start|End]() as required.
149870        * css/CSSParser.cpp:
149871        (WebCore::CSSParser::markSelectorStart): Gets invoked to mark a selector group item start offset.
149872        (WebCore::CSSParser::markSelectorEnd): Ditto for the end offset.
149873        * css/CSSParser.h: Add new methods and a SourceRange tracking field.
149874        * css/CSSPropertySourceData.h: Add SelectorRangeList to the CSSRuleSourceData.
149875        * inspector/InspectorStyleSheet.cpp:
149876        (WebCore::selectorsFromSource): Builds the SelectorList based on the underlying source data.
149877        Strips comments and whitespace from selectors.
149878        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
149879        Builds SelectorList based on the availability of the source code.
149880        * inspector/front-end/StylesSidebarPane.js:
149881        (WebInspector.StylePropertiesSection.prototype._markSelectorMatches):
149882        Update selectors in all cases to make use of the source-based information whenever possible.
149883        * platform/text/RegularExpression.cpp:
149884        Add the MultilineMode parameter into the constructor/factory method and ultimately pass it into YarrPattern.
149885        (WebCore::RegularExpression::Private::create): See above.
149886        (WebCore::RegularExpression::Private::Private): See above.
149887        (WebCore::RegularExpression::Private::compile): See above.
149888        (WebCore::RegularExpression::RegularExpression): See above.
149889        * platform/text/RegularExpression.h:
149890        Add enum MultilineMode, modify constructor and factory method signatures accordingly.
149891
1498922012-12-02  Noel Gordon  <noel.gordon@gmail.com>
149893
149894        ImageOrientation::transformFromDefault() case labels should be in numerical order
149895        https://bugs.webkit.org/show_bug.cgi?id=101596
149896
149897        Reviewed by Simon Fraser.
149898
149899        Place the orientation case labels in numerical order to better match the EXIF2.2 spec
149900        definitions of orientation values and their ImageOrientation.h enumeration.
149901
149902        No change in behavior. Covered by existing tests:
149903           fast/images/exif-orientation-css.html
149904           fast/images/exif-orientation-image-document.html
149905           fast/images/exif-orientation.html
149906
149907        * platform/graphics/ImageOrientation.cpp:
149908        (WebCore::ImageOrientation::transformFromDefault): Numerically order the orientation 
149909        case statement labels.
149910
1499112012-12-02  Mary Wu  <mary.wu@torchmobile.com.cn>
149912
149913        should sniff it if mimetype don't contain a slash.
149914        https://bugs.webkit.org/show_bug.cgi?id=102778
149915
149916        Reviewed by George Staikos.
149917
149918        Based on http://mimesniff.spec.whatwg.org/, a valid media type
149919        is the string represented by concatenating type, the string "/",
149920        and subtype. So if the mimetype don't contain slash, we should
149921        possible get sniffed type from the content like Firefox/chrome/safari.
149922
149923        RIM Bug# 219590, internally reviewed by Liam Quinn.
149924
149925        No new tests, the patch only impact qt/blackberry porting to be consistent
149926        with chrome, other portings have their own behavior.
149927
149928        * platform/network/MIMESniffing.cpp:
149929        (std::isUnknownType):
149930
1499312012-12-02  Otto Derek Cheung  <otcheung@rim.com>
149932
149933        [BlackBerry] Adding checks for null when checking cookie status in CookieJarBlackBerry
149934        https://bugs.webkit.org/show_bug.cgi?id=103748
149935
149936        Reviewed by Rob Buis.
149937
149938        The logic is flipped in the previous patch.
149939
149940        * loader/blackberry/CookieJarBlackBerry.cpp:
149941        (WebCore::cookiesEnabled):
149942
1499432012-12-02  Robert Hogan  <robert@webkit.org>
149944
149945        Bad rendering of web page because of image's height is set to 100%
149946        https://bugs.webkit.org/show_bug.cgi?id=28035
149947
149948        Reviewed by Eric Seidel.
149949
149950        Call computeReplacedLogicalHeight() to get the correct logical height of a replaced element
149951        for calculating the element's width. RenderBox::computeLogicalHeightUsing() is a helper function designed for finding
149952        the min and max height values and is not the way to find the actual used height of a replaced element.
149953
149954        WebKit's quirks-mode behaviour for the test case is unaffected by this change.
149955
149956        Tests: fast/css/computed-image-width-with-percent-height-quirksmode.html
149957               fast/css/computed-image-width-with-percent-height.html
149958
149959        * rendering/RenderReplaced.cpp:
149960        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
149961
1499622012-12-02  Mihnea Ovidenie  <mihnea@adobe.com>
149963
149964        [CSS Regions] regionlayoutupdate event fires continuously
149965        https://bugs.webkit.org/show_bug.cgi?id=102101
149966
149967        Reviewed by David Hyatt.
149968
149969        According to the CSSRegions spec, http://dev.w3.org/csswg/css3-regions/#region-flow-layout-events, the regionlayoutupdate event
149970        should be dispatched when there is a possible layout change in the region chain.
149971        In the current implementation, regionlayoutupdate is dispatched when:
149972        1. a region from region chain changed its regionOverset value
149973        2. a region from region chain has regionOverset = fit| overset
149974
149975        In the case of a named flow having an auto-height region with regionOverset = fit, the second step of layout was done
149976        also when there was not required, therefore the regionlayoutuodate was unnecessary triggered.
149977
149978        We should proceed with the 2-pass layout only if the flow-thread having auto-height regions in region chain needs layout.
149979
149980        Test: fast/regions/autoheight-regionlayoutupdate-multipletimes.html
149981
149982        * rendering/FlowThreadController.cpp:
149983        (WebCore::FlowThreadController::hasRenderNamedFlowThreadsNeedingLayout):
149984        * rendering/FlowThreadController.h:
149985        * rendering/RenderView.cpp:
149986        (WebCore::RenderView::layout):
149987
1499882012-12-02  Rik Cabanier  <cabanier@adobe.com>
149989
149990        Extend JavaScript support for blending in canvas
149991        https://bugs.webkit.org/show_bug.cgi?id=101804
149992
149993        Reviewed by Dirk Schulze.
149994
149995        Added parsing code and variables to support additional canvas blend modes
149996        see spec: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#canvascompositingandblending
149997
149998        Test: canvas/philip/tests/2d.composite.globalComposite.html
149999
150000        * html/HTMLImageElement.cpp:
150001        (WebCore::HTMLImageElement::parseAttribute):
150002        * html/canvas/CanvasRenderingContext2D.cpp:
150003        (WebCore::CanvasRenderingContext2D::State::State):
150004        (WebCore::CanvasRenderingContext2D::State::operator=):
150005        (WebCore::CanvasRenderingContext2D::globalCompositeOperation):
150006        (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation):
150007        (WebCore::CanvasRenderingContext2D::drawImageFromRect):
150008        * html/canvas/CanvasRenderingContext2D.h:
150009        (State):
150010        * platform/graphics/GraphicsTypes.cpp:
150011        (WebCore):
150012        (WebCore::parseCompositeAndBlendOperator):
150013        (WebCore::compositeOperatorName):
150014        * platform/graphics/GraphicsTypes.h:
150015
1500162012-12-02  KyungTae Kim  <ktf.kim@samsung.com>
150017
150018        [EFL] Fix build warning in GraphicsContext3DEfl.cpp
150019        https://bugs.webkit.org/show_bug.cgi?id=103807
150020
150021        Reviewed by Laszlo Gombos.
150022
150023        Because GraphicsContext3D::ImageExtractor::extractImage is not implemented yet, 
150024        comment out the parameter names for removing -Wunused-parameter warnings.
150025
150026        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
150027        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150028
1500292012-12-02  Andreas Kling  <akling@apple.com>
150030
150031        Keep ElementAttributeData sharing cache open for a while after document parsing finishes.
150032        <http://webkit.org/b/103720>
150033
150034        Reviewed by Antti Koivisto.
150035
150036        Allow web pages that generate content dynamically to benefit more from the ElementAttributeData sharing
150037        cache by keeping it open for 10 seconds after document parsing finishes. This enables elements constructed
150038        from HTML fragments to share attribute data with other identical elements.
150039
150040        Elements created via Document.createElement are still unsupported since we don't know the list of attributes
150041        at the time of construction.
150042
150043        401kB progression on Membuster3.
150044
150045        Document now holds on to a DocumentSharedObjectPool, accessible via Document::sharedObjectPool().
150046        It is non-null during parsing and for some time afterwards, and can be used to implement additional
150047        caches that are not worth holding on to permanently.
150048
150049        * CMakeLists.txt:
150050        * GNUmakefile.list.am:
150051        * Target.pri:
150052        * WebCore.gypi:
150053        * WebCore.xcodeproj/project.pbxproj:
150054        * WebCore.vcproj/WebCore.vcproj:
150055
150056            Add new class DocumentSharedObjectPool.
150057
150058        * dom/Document.cpp:
150059        (WebCore::Document::Document):
150060        (WebCore::Document::setParsing):
150061        (WebCore::Document::finishedParsing):
150062        (WebCore::Document::sharedObjectPoolClearTimerFired):
150063        * dom/Document.h:
150064        (WebCore::Document::sharedObjectPool):
150065
150066            Create DocumentSharedObjectPool when parsing starts, kill it on a 10s timer after parsing finishes.
150067
150068        * dom/DocumentSharedObjectPool.cpp: Added.
150069        (ImmutableElementAttributeDataCacheKey):
150070        (WebCore::ImmutableElementAttributeDataCacheKey::ImmutableElementAttributeDataCacheKey):
150071        (WebCore::ImmutableElementAttributeDataCacheKey::operator!=):
150072        (WebCore::ImmutableElementAttributeDataCacheKey::hash):
150073        (ImmutableElementAttributeDataCacheEntry):
150074        (WebCore::ImmutableElementAttributeDataCacheEntry::ImmutableElementAttributeDataCacheEntry):
150075        (WebCore::DocumentSharedObjectPool::cachedImmutableElementAttributeData):
150076        (WebCore::DocumentSharedObjectPool::DocumentSharedObjectPool):
150077        (WebCore::DocumentSharedObjectPool::~DocumentSharedObjectPool):
150078        * dom/DocumentSharedObjectPool.h: Added.
150079        (DocumentSharedObjectPool):
150080        (WebCore::DocumentSharedObjectPool::create):
150081        * dom/Element.cpp:
150082        (WebCore::Element::parserSetAttributes):
150083
150084            Moved the ElementAttributeData cache to DocumentSharedObjectPool.
150085
1500862012-12-02  John Bauman  <jbauman@chromium.org>
150087
150088        [chromium] Let Pepper Flash use integrated GPU
150089        https://bugs.webkit.org/show_bug.cgi?id=103800
150090
150091        Reviewed by Kenneth Russell.
150092
150093        Pepper Flash uses the SharedGraphicsContext3D as a parent, so don't
150094        require that to use the discrete GPU. This means that accelerated
150095        canvas will use the integrated GPU, but that will save battery life
150096        and seems acceptable. 
150097
150098        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
150099        (WebCore::SharedGraphicsContext3DImpl::createContext):
150100
1501012012-12-02  Elliott Sprehn  <esprehn@gmail.com>
150102
150103        documentElement should not always get a renderer
150104        https://bugs.webkit.org/show_bug.cgi?id=103475
150105
150106        Reviewed by Ojan Vafai.
150107
150108        Only SVG documents need a renderer on the documentElement when it's
150109        display: none. This behavior is wrong, but there's assumptions in
150110        FrameView and SVGImage that depend on a RenderSVGRoot existing for all
150111        loaded SVG document and images.
150112
150113        The current code has logic that makes it appear as if we always create
150114        a renderer for the documentElement even when it's display: none, but
150115        because HTMLElement::createRenderer doesn't call super we end up with
150116        HTMLElement::rendererIsNeeded returning true for display: none, but
150117        HTMLElement::createRenderer returning null.
150118
150119        Instead of this generic documentElement logic only special case SVG
150120        until someone can fix Bug 103493 so we don't need it.
150121
150122        Test: fast/css/display-none-documentElement.html
150123
150124        * dom/Element.cpp:
150125        (WebCore::Element::rendererIsNeeded):
150126        (WebCore::Element::createRenderer):
150127        * svg/SVGSVGElement.cpp:
150128        (WebCore::SVGSVGElement::rendererIsNeeded):
150129        * svg/SVGSVGElement.h:
150130        (SVGSVGElement):
150131
1501322012-12-02  Pan Deng  <pan.deng@intel.com>
150133
150134        [Resource Timing] implementation of cross origin resouce timing restrictions.
150135        https://bugs.webkit.org/show_bug.cgi?id=84886.
150136
150137        Reviewed by Tony Gentilcore.
150138
150139        This patch implemented resource timing behaviors of cross origin. By default, detailed timing info is hided in cross origin resource timing, only startTime, duration, fetchStart and responseEnd can be observed. Exceptions are, server side allow its origin can be timing by another through a header with "timing-allow-origin" field.
150140
150141        Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html
150142               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html
150143
150144        * page/Performance.cpp:
150145        (WebCore::passesTimingAllowCheck):
150146        (WebCore):
150147        (WebCore::Performance::addResourceTiming):
150148        * page/Performance.h:
150149        (WebCore):
150150        (Performance):
150151        * page/PerformanceResourceTiming.cpp:
150152        (WebCore):
150153        * page/PerformanceResourceTiming.h:
150154        (WebCore::PerformanceResourceTiming::create):
150155        (PerformanceResourceTiming):
150156
1501572012-12-02  Elliott Sprehn  <esprehn@gmail.com>
150158
150159        Simplify treeScope and setTreeScope
150160        https://bugs.webkit.org/show_bug.cgi?id=103708
150161
150162        Reviewed by Hajime Morita.
150163
150164        By making the default treeScope in NodeRareData the document and then
150165        moving the m_treeScope field to NodeRareDataBase we can make treeScope
150166        inline and make setTreeScope much simpler.
150167
150168        There's also no reason to save calls to rareData() now that the map has
150169        been eliminated by r133372 so we can eliminate the return value from
150170        setTreeScope.
150171
150172        No new tests, just refactoring.
150173
150174        * WebCore.exp.in:
150175        * dom/Document.h:
150176        (WebCore::Node::treeScope):
150177        (WebCore):
150178        * dom/Element.cpp:
150179        (WebCore::Element::createRareData):
150180        * dom/ElementRareData.h:
150181        (ElementRareData):
150182        (WebCore::ElementRareData::ElementRareData):
150183        * dom/Node.cpp:
150184        (WebCore::Node::setTreeScope):
150185        (WebCore::Node::createRareData):
150186        * dom/Node.h:
150187        (NodeRareDataBase):
150188        (WebCore::NodeRareDataBase::treeScope):
150189        (WebCore::NodeRareDataBase::setTreeScope):
150190        (WebCore::NodeRareDataBase::NodeRareDataBase):
150191        (Node):
150192        * dom/NodeRareData.cpp:
150193        (WebCore::NodeRareData::reportMemoryUsage):
150194        * dom/NodeRareData.h:
150195        (WebCore::NodeRareData::NodeRareData):
150196        (NodeRareData):
150197        * dom/TreeScopeAdopter.cpp:
150198        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
150199
1502002012-12-02  Justin Novosad  <junov@google.com>
150201
150202        Fix occlusion culling logic to handle css background layer clipping
150203        https://bugs.webkit.org/show_bug.cgi?id=103276
150204
150205        Reviewed by Simon Fraser.
150206
150207        Bug was introduced by r135629
150208        This patch fixes it by verifying layer clip.  A fill layer must
150209        not be treated as if it occludes the layers under it unless it has
150210        a larger or equal clip setting than the layers under it.
150211
150212        Test: fast/backgrounds/background-opaque-clipped-gradients.html
150213
150214        * rendering/RenderBox.cpp:
150215        (WebCore::RenderBox::paintFillLayers):
150216        * rendering/style/FillLayer.cpp:
150217        (WebCore::clipMax):
150218        (WebCore::FillLayer::computeClipMax):
150219        (WebCore::FillLayer::clipOccludesNextLayers):
150220        * rendering/style/FillLayer.h:
150221        (FillLayer):
150222
1502232012-12-02  Tony Chang  <tony@chromium.org>
150224
150225        Avoid a second layout of flex items in layoutAndPlaceChildren()
150226        https://bugs.webkit.org/show_bug.cgi?id=102352
150227
150228        Reviewed by Ojan Vafai.
150229
150230        Avoid doing a second layout if we're going to get the same size as before.
150231        This prevents us from doing an exponential number of layouts in some
150232        common cases.
150233
150234        Test: css3/flexbox/stretch-after-sibling-size-change.html
150235
150236        * html/shadow/SliderThumbElement.cpp:
150237        (WebCore::RenderSliderContainer::layout): Force a layout of the track, which positions the thumb.
150238        * rendering/RenderFlexibleBox.cpp:
150239        (WebCore::RenderFlexibleBox::needToStretchChild): Determine if a child is going to stretch.
150240        (WebCore::RenderFlexibleBox::resetAutoMarginsAndLogicalTopInCrossAxis): Makes sure we're in a consistent state before
150241        we apply auto margins.
150242        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
150243        * rendering/RenderFlexibleBox.h: Add needToStretchChild.
150244
1502452012-12-02  Yongjun Zhang  <yongjun_zhang@apple.com>
150246
150247        Need a method to close all idle localstorage databases immediately.
150248        https://bugs.webkit.org/show_bug.cgi?id=103469
150249
150250        Reviewed by David Kilzer.
150251
150252        Add a new PageGroup method closeIdleLocalStorageDatabases, which walks through
150253        all local storage areas that don't have document referencing to them and closes
150254        their underlying databases.
150255
150256        Test: storage/domstorage/localstorage/close-idle-localstorage-databases-immediately.html
150257
150258        * WebCore.exp.in:
150259        * page/PageGroup.cpp:
150260        (WebCore::PageGroup::clearLocalStorageForOrigin):
150261        (WebCore):
150262        (WebCore::PageGroup::closeIdleLocalStorageDatabases): walking through all idle local storages and
150263            closing their databases.
150264        * page/PageGroup.h:
150265        (PageGroup):
150266        * storage/StorageArea.h:
150267        (WebCore::StorageArea::closeDatabaseIfIdle):
150268        * storage/StorageAreaImpl.cpp:
150269        (WebCore::StorageAreaImpl::closeDatabaseIfIdle): close the database if it is idle.
150270        (WebCore):
150271        * storage/StorageAreaImpl.h:
150272        (StorageAreaImpl):
150273        * storage/StorageNamespace.h:
150274        (StorageNamespace):
150275        * storage/StorageNamespaceImpl.cpp:
150276        (WebCore::StorageNamespaceImpl::closeIdleLocalStorageDatabases):
150277        (WebCore):
150278        * storage/StorageNamespaceImpl.h:
150279        (StorageNamespaceImpl):
150280
1502812012-12-02  Otto Derek Cheung  <otcheung@rim.com>
150282
150283        [BlackBerry] Adding checks for null when checking cookie status in CookieJarBlackBerry
150284        https://bugs.webkit.org/show_bug.cgi?id=103748
150285
150286        Reviewed by Rob Buis.
150287
150288        Updating CookieJarBlackBerry::cookieEnabled and have other methods in the class call that
150289        method. Also, adding null checks for document->settings().
150290
150291        No change in behaviour.
150292
150293        * loader/blackberry/CookieJarBlackBerry.cpp:
150294        (WebCore::cookies):
150295        (WebCore::setCookies):
150296        (WebCore::cookiesEnabled):
150297        (WebCore::getRawCookies):
150298        (WebCore::deleteCookie):
150299        (WebCore::cookieRequestHeaderFieldValue):
150300
1503012012-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>
150302
150303        Unreviewed, rolling out r136236.
150304        http://trac.webkit.org/changeset/136236
150305        https://bugs.webkit.org/show_bug.cgi?id=103833
150306
150307        [chromium] Flakey crashes in SpeechRecognitionEvent::emma
150308        during GC. (Requested by mkwst on #webkit).
150309
150310        * Modules/speech/SpeechRecognition.cpp:
150311        (WebCore::SpeechRecognition::start):
150312        * Modules/speech/SpeechRecognition.h:
150313        (SpeechRecognition):
150314        * Modules/speech/SpeechRecognitionEvent.cpp:
150315        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
150316        * Modules/speech/SpeechRecognitionEvent.h:
150317        (SpeechRecognitionEventInit):
150318        (SpeechRecognitionEvent):
150319        (WebCore::SpeechRecognitionEvent::resultIndex):
150320        * Modules/speech/SpeechRecognitionEvent.idl:
150321        * Modules/speech/SpeechRecognitionResult.cpp:
150322        (WebCore::emmaQualifiedName):
150323        (WebCore):
150324        (WebCore::SpeechRecognitionResult::emma):
150325        * Modules/speech/SpeechRecognitionResult.h:
150326        (WebCore):
150327        (WebCore::SpeechRecognitionResult::final):
150328        (SpeechRecognitionResult):
150329        * Modules/speech/SpeechRecognitionResult.idl:
150330        * WebCore.gypi:
150331        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8SpeechRecognitionEventCustom.cpp.
150332        (WebCore):
150333        (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
150334
1503352012-12-01  Sheriff Bot  <webkit.review.bot@gmail.com>
150336
150337        Unreviewed, rolling out r136015.
150338        http://trac.webkit.org/changeset/136015
150339        https://bugs.webkit.org/show_bug.cgi?id=103821
150340
150341        Did not heal performance bot and caused other performance
150342        regressions (Requested by abarth on #webkit).
150343
150344        * bindings/scripts/CodeGeneratorV8.pm:
150345        (GenerateHeader):
150346
1503472012-12-01  Xiaobo Wang  <xiaobo.wang@torchmobile.com.cn>
150348
150349        DRT - crashed in WebCore::SearchFieldCancelButtonElement::defaultEventHandler
150350        https://bugs.webkit.org/show_bug.cgi?id=103592
150351
150352        Reviewed by Kent Tamura.
150353
150354        The crash happened when the search field cancel button handles mouseout
150355        event after the search input was detached. When it happens the input
150356        element returned from shadowHost() is null, need to check the pointer
150357        before dereferencing.
150358        InputFieldSpeechButton and SearchFieldResultsButtonElement have the
150359        similar issue.
150360
150361        No new tests. The patch fixes the following test on BlackBerry platform.
150362        Test: fast/forms/search-delete-while-cancel-button-clicked.html
150363
150364        * html/shadow/TextControlInnerElements.cpp:
150365        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
150366        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
150367        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
150368        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
150369        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents):
150370        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
150371
1503722012-11-30  Mike West  <mkwst@chromium.org>
150373
150374        CSP 1.1: Make the CSP_NEXT flag runtime enabled.
150375        https://bugs.webkit.org/show_bug.cgi?id=103652
150376
150377        Reviewed by Adam Barth.
150378
150379        Content Security Policy 1.1 continues to live behind the CSP_NEXT flag,
150380        this patch adds another layer on top of that in order to enable runtime
150381        decisions about whether it should be active.
150382
150383        * bindings/generic/RuntimeEnabledFeatures.cpp:
150384        (WebCore):
150385        * bindings/generic/RuntimeEnabledFeatures.h:
150386        (RuntimeEnabledFeatures):
150387        (WebCore::RuntimeEnabledFeatures::experimentalContentSecurityPolicyFeaturesEnabled):
150388        (WebCore::RuntimeEnabledFeatures::setExperimentalContentSecurityPolicyFeaturesEnabled):
150389            Adds methods in order to correctly handle enabling and disabling
150390            CSP 1.1 features.
150391        * dom/Document.idl:
150392            Gate the 'document.securityPolicy' object on the runtime flag.
150393        * page/ContentSecurityPolicy.cpp:
150394        (WebCore::CSPDirectiveList::addDirective):
150395            Check that experimental features are runtime enabled before
150396            processing 1.1 directives.
150397        (WebCore::ContentSecurityPolicy::experimentalFeaturesEnabled):
150398        (WebCore):
150399        * page/ContentSecurityPolicy.h:
150400            Adds a new method which checks against the runtime flag to determine
150401            whether CSP 1.1 features are enabled.
150402
1504032012-11-30  Simon Fraser  <simon.fraser@apple.com>
150404
150405        Avoid calling into NSUserDefaults every time we start a scroll
150406        https://bugs.webkit.org/show_bug.cgi?id=103804
150407
150408        Reviewed by Dan Bernstein.
150409
150410        Cache the NSScrollAnimationEnabled preference to avoid
150411        hitting NSUserDefaults every time we start scrolling.
150412
150413        * platform/mac/ScrollAnimatorMac.mm:
150414        (WebCore::scrollAnimationEnabledForSystem):
150415
1504162012-11-30  Beth Dakin  <bdakin@apple.com>
150417
150418        https://bugs.webkit.org/show_bug.cgi?id=103790
150419        The LayerPool m_pruneTimer should have a longer delay
150420
150421        Reviewed by Simon Fraser.
150422
150423        A 1 second delay is more appropriate here.
150424        * platform/graphics/ca/mac/LayerPool.mm:
150425        (WebCore::LayerPool::schedulePrune):
150426
1504272012-11-30  Jer Noble  <jer.noble@apple.com>
150428
150429        Unreviewed Windows build fix.
150430
150431        Add a default: entry to an case statement to fix a build error when compiled in VS2005.
150432
150433        * html/MediaController.cpp:
150434        (MediaController::playbackState):
150435
1504362012-11-30  Jer Noble  <jer.noble@apple.com>
150437
150438        Add support for the 'unpause()' method on MediaController.
150439        https://bugs.webkit.org/show_bug.cgi?id=103751
150440
150441        Reviewed by Eric Carlson.
150442
150443        The MediaController spec has been updated to add an unpause() method
150444        which is functionally identical to the old play() method, and changes
150445        the semantics of play() to call play() on the underlying slaved media
150446        elements. The spec also added a playbackState() method, returning a
150447        string representing the last calculated playback state.
150448
150449        Test: media/media-controller-unpause.html
150450
150451        * html/MediaController.cpp:
150452        (MediaController::unpause): Renamed from play().
150453        (MediaController::play): Added. Same as unpause(), but also call
150454            play() on slaved media elements.
150455        (playbackStateWaiting): Static string accessor.
150456        (playbackStatePlaying): Ditto.
150457        (playbackStateEnded): Ditto.
150458        (MediaController::playbackState): Added. Returns string value of
150459            m_playbackState.
150460        * html/MediaController.h:
150461        * html/MediaController.idl:
150462
1504632012-11-30  Julien Chaffraix  <jchaffraix@webkit.org>
150464
150465        [CSS Grid Layout] Align the grid track code with the specification's production rules
150466        https://bugs.webkit.org/show_bug.cgi?id=103703
150467
150468        Reviewed by Alexis Menard.
150469
150470        In order to support more of the syntax and make the code more readable, this change
150471        splits following the grammar's production rules (see
150472        http://dev.w3.org/csswg/css3-grid-layout/#grid-definition-columns-and-grid-definit).
150473
150474        Refactoring covered by existing tests.
150475
150476        * css/CSSComputedStyleDeclaration.cpp:
150477        (WebCore::valueForGridTrackMinMax):
150478        (WebCore::valueForGridTrackGroup):
150479        (WebCore::valueForGridTrackList):
150480        * css/CSSParser.cpp:
150481        (WebCore::CSSParser::parseGridTrackList):
150482        (WebCore::CSSParser::parseGridTrackGroup):
150483        (WebCore::CSSParser::parseGridTrackMinMax):
150484        * css/CSSParser.h:
150485        * css/StyleResolver.cpp:
150486        (WebCore::createGridTrackMinMax):
150487        (WebCore::createGridTrackGroup):
150488        (WebCore::createGridTrackList):
150489        Mechanical split of the parsing, resolving and computed style code into
150490        <track-list>, <track-group>, <track-minmax> and <track-breadth> parts.
150491
150492        * css/CSSParser.cpp:
150493        (WebCore::CSSParser::parseGridBreadth):
150494        Changed this function to just parse a single value (without any extra logic).
150495
150496        * css/StyleResolver.cpp:
150497        (WebCore::createGridTrackBreadth):
150498        Changed this function to take a Length as it is used to parse a <track-breadth>.
150499        The goal is for it to be the low-level function createGridTrackMinmax will call on
150500        each function parameter.
150501
1505022012-11-30  Simon Fraser  <simon.fraser@apple.com>
150503
150504        Fix potential crash when canceling animations on renderers with no node
150505        https://bugs.webkit.org/show_bug.cgi?id=103784
150506
150507        Reviewed by Dan Bernstein.
150508
150509        We could crash when tearing down RenderScrollbars because we hit
150510        AnimationController::cancelAnimations() for a renderer with no node.
150511        The assertion already check for a null node, but the line after
150512        does not, so fix that.
150513
150514        I tried to make a test with animations/transitions on a custom scrollbar, but was not able
150515        to get it to crash.
150516
150517        * page/animation/AnimationController.cpp:
150518        (WebCore::AnimationController::cancelAnimations):
150519
1505202012-11-30  Tim Horton  <timothy_horton@apple.com>
150521
150522        PluginDocument fires didFinishDocumentLoadForFrame upon receiving initial bytes instead of when load completes
150523        https://bugs.webkit.org/show_bug.cgi?id=103702
150524        <rdar://problem/12762534>
150525
150526        Reviewed by Alexey Proskuryakov.
150527
150528        Remove the call to finish() from PluginDocumentParser::appendBytes().
150529
150530        This was introduced in http://trac.webkit.org/changeset/14838, when finish() wouldn't get
150531        called for PluginDocuments any other way. In the time since, DocumentWriter::end() was made
150532        to call finish() anyway, at the correct time (the call from appendBytes makes a PluginDocument
150533        appear to be finished loading after the first bytes are received).
150534
150535        No new tests, because there doesn't seem to be any state in a PluginDocument that can be accessed
150536        from JavaScript to determine whether or not it has finished loading.
150537
150538        * html/PluginDocument.cpp:
150539        (WebCore::PluginDocumentParser::appendBytes):
150540
1505412012-11-29  Ilya Tikhonovsky  <loislo@chromium.org>
150542
150543        RenderBlock minor clean-up: replace raw pointers with OwnPtrs.
150544        https://bugs.webkit.org/show_bug.cgi?id=103690
150545
150546        Reviewed by Eric Seidel.
150547
150548        raw pointers were replaced with OwnPtrs.
150549        Probably we also gain a small performance improvements because
150550        I replaced get && remove pair with take.
150551
150552        * rendering/RenderBlock.cpp:
150553        (WebCore):
150554        (WebCore::removeBlockFromDescendantAndContainerMaps):
150555        (WebCore::RenderBlock::~RenderBlock):
150556        (WebCore::RenderBlock::addOverflowFromFloats):
150557        (WebCore::RenderBlock::addContinuationWithOutline):
150558        (WebCore::RenderBlock::paintContinuationOutlines):
150559        (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
150560        (WebCore::RenderBlock::removeFromTrackedRendererMaps):
150561        (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
150562        * rendering/RenderBlock.h:
150563        (WebCore):
150564
1505652012-11-30  Jun Jiang  <jun.a.jiang@intel.com>
150566
150567        WebGL: Add a class to abstract the status of the Image in texImage2D() and texSubImage2D()
150568        https://bugs.webkit.org/show_bug.cgi?id=103606
150569
150570        Reviewed by Kenneth Russell.
150571
150572        In texImage2D() and texSubImage2D() for WebGL, the status of the Image is extracted and kept in the function GraphicsContext3D::getImageData() but provides no interface or guaranteed way to use the status of the Image outside GraphicsContext3D::getImageData() safely. For example, you can not get the address of the raw Image data and operate it outside the scope of the GraphicsContext3D::getImageData() and there is at least one memory copy existed from the Image to the intermediate vector.
150573       This patch refactors the code by adding a ImageExtractor class to abstract and keep the status of the Image. The lifetime and validity of Image status are determined by the lifetime of the object instead of the scope of getImageData(). It provides flexibility on future optimizations.
150574
150575        No new tests. It is a code refactoring patch.
150576
150577        * html/canvas/WebGLRenderingContext.cpp:
150578        (WebCore):
150579        (WebCore::WebGLRenderingContext::texImage2DImpl):
150580        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
150581        * platform/graphics/GraphicsContext3D.cpp:
150582        (WebCore::GraphicsContext3D::ImageExtractor::ImageExtractor):
150583        (WebCore):
150584        (WebCore::GraphicsContext3D::packImageData):
150585        * platform/graphics/GraphicsContext3D.h:
150586        (WebCore):
150587        (GraphicsContext3D):
150588        (ImageExtractor):
150589        (WebCore::GraphicsContext3D::ImageExtractor::extractSucceeded):
150590        (WebCore::GraphicsContext3D::ImageExtractor::imagePixelData):
150591        (WebCore::GraphicsContext3D::ImageExtractor::imageWidth):
150592        (WebCore::GraphicsContext3D::ImageExtractor::imageHeight):
150593        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceFormat):
150594        (WebCore::GraphicsContext3D::ImageExtractor::imageAlphaOp):
150595        (WebCore::GraphicsContext3D::ImageExtractor::imageSourceUnpackAlignment):
150596        * platform/graphics/NativeImagePtr.h:
150597        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
150598        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
150599        (WebCore):
150600        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150601        * platform/graphics/cg/GraphicsContext3DCG.cpp:
150602        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
150603        (WebCore):
150604        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150605        * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
150606        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
150607        (WebCore):
150608        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150609        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
150610        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
150611        (WebCore):
150612        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150613        * platform/graphics/qt/GraphicsContext3DQt.cpp:
150614        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
150615        (WebCore):
150616        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150617        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
150618        (WebCore::GraphicsContext3D::ImageExtractor::~ImageExtractor):
150619        (WebCore):
150620        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
150621
1506222012-11-30  Simon Fraser  <simon.fraser@apple.com>
150623
150624        Make RenderLayer::updateLayerPosition() private
150625        https://bugs.webkit.org/show_bug.cgi?id=102624
150626
150627        Reviewed by Ryosuke Niwa.
150628
150629        Made updateLayerPosition() private. The only external caller was
150630        MouseRelatedEvent::computeRelativePosition(), which has no business updating
150631        layer positions. In fact it had positively dangerous behavior; doing just
150632        a style update without layout, and then calling absoluteToLocal() and walking
150633        layers. Fixed by having it call updateLayoutIgnorePendingStylesheets().
150634        
150635        This revealed a bug where event.offsetX/offsetY could be wrong in some cases.
150636        fast/events/stopPropagation-submit.html does a simulated click (which has
150637        client coordinates at 0,0), so the image submit coordinates were incorrectly
150638        0,0. Now that we do layout before computing them, they are correctly reported
150639        as being relative to the element.
150640
150641        * dom/MouseRelatedEvent.cpp:
150642        (WebCore::MouseRelatedEvent::computeRelativePosition):
150643        * rendering/RenderLayer.cpp:
150644        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
150645        * rendering/RenderLayer.h:
150646        (RenderLayer):
150647
1506482012-11-30  Simon Fraser  <simon.fraser@apple.com>
150649
150650        Late-loading stylesheets can cause composited layers to be blank
150651        https://bugs.webkit.org/show_bug.cgi?id=103773
150652
150653        Reviewed by Tim Horton.
150654
150655        Early painting can be short-circuited in RenderBlock::paintContents() if we know a stylesheet
150656        is pending, which is done to avoid a flash of unstyled content (FOUC). When the stylesheet
150657        finally loaded, Document::styleResolverChanged() would try to repaint everything by calling
150658        repaint() on the RenderView(). In a composited world, however, this repaint() doesn't repaint
150659        composited layers.
150660        
150661        This was particularly prevalent on this specific URL because it failed to load
150662        a CSS file from typekit.com, so Document::styleResolverChanged()
150663        just did the repaint and returned (rather than doing a recalc style as would
150664        happen for correctly loaded stylesheets).
150665        
150666        Fix by making a way to repaint all compositing layers, and calling it
150667        from Document::styleResolverChanged().
150668
150669        No tests because this is timing-dependant.
150670
150671        * dom/Document.cpp:
150672        (WebCore::Document::styleResolverChanged): Call repaintViewAndCompositedLayers().
150673        * rendering/RenderBlock.cpp:
150674        (WebCore::RenderBlock::paintContents): Fix the comment.
150675        * rendering/RenderLayerCompositor.cpp: Convert repaintCompositedLayersAbsoluteRect()
150676        and associated recursiveRepaintLayerRect() to allow the rect to be null, which indicates
150677        that we should just repaint the entire layer, and improve their names.
150678        (WebCore::RenderLayerCompositor::repaintCompositedLayers):
150679        (WebCore::RenderLayerCompositor::recursiveRepaintLayer):
150680        * rendering/RenderLayerCompositor.h:
150681        * rendering/RenderView.cpp:
150682        (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers): repaintCompositedLayersAbsoluteRect()
150683        was renamed to repaintCompositedLayers().
150684        (WebCore::RenderView::repaintViewAndCompositedLayers):
150685        * rendering/RenderView.h:
150686        (RenderView): repaintViewRectangle() and repaintRectangleInViewAndCompositedLayers() should not
150687        be virtual. Add repaintViewAndCompositedLayers().
150688
1506892012-11-30  Sheriff Bot  <webkit.review.bot@gmail.com>
150690
150691        Unreviewed, rolling out r136142.
150692        http://trac.webkit.org/changeset/136142
150693        https://bugs.webkit.org/show_bug.cgi?id=103768
150694
150695        break a bunch of interactive_ui_tests in chromium win
150696        (Requested by zhenyao_home on #webkit).
150697
150698        * css/CSSComputedStyleDeclaration.cpp:
150699        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
150700        * css/CSSParser.cpp:
150701        (WebCore::isValidKeywordPropertyAndValue):
150702        (WebCore::isKeywordPropertyID):
150703        (WebCore::CSSParser::parseValue):
150704        * css/CSSPrimitiveValueMappings.h:
150705        * css/CSSProperty.cpp:
150706        (WebCore::CSSProperty::isInheritedProperty):
150707        * css/CSSPropertyNames.in:
150708        * css/CSSValueKeywords.in:
150709        * css/StyleBuilder.cpp:
150710        (WebCore::StyleBuilder::StyleBuilder):
150711        * css/StyleResolver.cpp:
150712        (WebCore::StyleResolver::applyProperty):
150713        * rendering/InlineFlowBox.cpp:
150714        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
150715        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
150716        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
150717        * rendering/RenderRubyRun.cpp:
150718        (WebCore::RenderRubyRun::layout):
150719        * rendering/style/RenderStyle.cpp:
150720        (WebCore::RenderStyle::diff):
150721        * rendering/style/RenderStyle.h:
150722        * rendering/style/RenderStyleConstants.h:
150723        * rendering/style/StyleRareInheritedData.cpp:
150724        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
150725        (WebCore::StyleRareInheritedData::operator==):
150726        * rendering/style/StyleRareInheritedData.h:
150727        (StyleRareInheritedData):
150728
1507292012-11-30  Joshua Bell  <jsbell@chromium.org>
150730
150731        IndexedDB: Replace use of ScriptExecutionContext::Task (Part 1)
150732        https://bugs.webkit.org/show_bug.cgi?id=101483
150733
150734        Reviewed by Tony Chang.
150735
150736        The IDB back end (which runs on a single thread) makes use of ScriptExecutionContext's
150737        Task and facilities for cross-task posting with callbacks, and requires decorating various
150738        IDB classes with "ThreadSafe" when they are not. Move towards encapsulating the tasks
150739        in "Operation" classes which are IDB-operation specific.
150740
150741        Part 1 (this patch) retains the use of ScriptExecutionContext::Task but wraps the creation
150742        and the callback function in an Operation class which will be fleshed out in later patches.
150743        As an aside, a little bit of RefPtr churn is eliminated, and IDB_TRACE sprinkled in.
150744
150745        No new tests - just a refactor.
150746
150747        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
150748        (IDBCursorBackendImpl::CursorIterationOperation):
150749        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::create):
150750        (WebCore):
150751        (IDBCursorBackendImpl::CursorAdvanceOperation):
150752        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::create):
150753        (IDBCursorBackendImpl::CursorPrefetchIterationOperation):
150754        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::create):
150755        (WebCore::IDBCursorBackendImpl::continueFunction):
150756        (WebCore::IDBCursorBackendImpl::advance):
150757        (WebCore::IDBCursorBackendImpl::CursorAdvanceOperation::perform):
150758        (WebCore::IDBCursorBackendImpl::CursorIterationOperation::perform):
150759        (WebCore::IDBCursorBackendImpl::prefetchContinue):
150760        (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
150761        * Modules/indexeddb/IDBCursorBackendImpl.h:
150762        (IDBCursorBackendImpl):
150763        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
150764        (IDBDatabaseBackendImpl::CreateObjectStoreOperation):
150765        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::create):
150766        (WebCore):
150767        (IDBDatabaseBackendImpl::DeleteObjectStoreOperation):
150768        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::create):
150769        (IDBDatabaseBackendImpl::VersionChangeOperation):
150770        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
150771        (IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation):
150772        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::create):
150773        (IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation):
150774        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::create):
150775        (IDBDatabaseBackendImpl::VersionChangeAbortOperation):
150776        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
150777        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
150778        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreOperation::perform):
150779        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
150780        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreOperation::perform):
150781        (WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
150782        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
150783        (WebCore::IDBDatabaseBackendImpl::CreateObjectStoreAbortOperation::perform):
150784        (WebCore::IDBDatabaseBackendImpl::DeleteObjectStoreAbortOperation::perform):
150785        (WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
150786        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
150787        (IDBDatabaseBackendImpl):
150788        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
150789        (IDBIndexBackendImpl::OpenIndexCursorOperation):
150790        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::create):
150791        (WebCore):
150792        (IDBIndexBackendImpl::IndexCountOperation):
150793        (WebCore::IDBIndexBackendImpl::IndexCountOperation::create):
150794        (IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation):
150795        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::create):
150796        (IDBIndexBackendImpl::IndexValueRetrievalOperation):
150797        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::create):
150798        (WebCore::IDBIndexBackendImpl::OpenIndexCursorOperation::perform):
150799        (WebCore::IDBIndexBackendImpl::openCursor):
150800        (WebCore::IDBIndexBackendImpl::openKeyCursor):
150801        (WebCore::IDBIndexBackendImpl::IndexCountOperation::perform):
150802        (WebCore::IDBIndexBackendImpl::count):
150803        (WebCore::IDBIndexBackendImpl::IndexReferencedValueRetrievalOperation::perform):
150804        (WebCore::IDBIndexBackendImpl::IndexValueRetrievalOperation::perform):
150805        (WebCore::IDBIndexBackendImpl::get):
150806        (WebCore::IDBIndexBackendImpl::getKey):
150807        * Modules/indexeddb/IDBIndexBackendImpl.h:
150808        (WebCore::IDBIndexBackendImpl::metadata):
150809        (IDBIndexBackendImpl):
150810        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
150811        (IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation):
150812        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::create):
150813        (WebCore):
150814        (IDBObjectStoreBackendImpl::ObjectStoreStorageOperation):
150815        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::create):
150816        (IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation):
150817        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::create):
150818        (IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation):
150819        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::create):
150820        (IDBObjectStoreBackendImpl::ObjectStoreClearOperation):
150821        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::create):
150822        (IDBObjectStoreBackendImpl::CreateIndexOperation):
150823        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::create):
150824        (IDBObjectStoreBackendImpl::DeleteIndexOperation):
150825        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::create):
150826        (IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation):
150827        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::create):
150828        (IDBObjectStoreBackendImpl::ObjectStoreCountOperation):
150829        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::create):
150830        (IDBObjectStoreBackendImpl::CreateIndexAbortOperation):
150831        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::create):
150832        (IDBObjectStoreBackendImpl::DeleteIndexAbortOperation):
150833        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::create):
150834        (WebCore::IDBObjectStoreBackendImpl::get):
150835        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreRetrievalOperation::perform):
150836        (WebCore::IDBObjectStoreBackendImpl::put):
150837        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
150838        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreIndexesReadyOperation::perform):
150839        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreStorageOperation::perform):
150840        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
150841        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreDeletionOperation::perform):
150842        (WebCore::IDBObjectStoreBackendImpl::clear):
150843        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreClearOperation::perform):
150844        (WebCore::IDBObjectStoreBackendImpl::createIndex):
150845        (WebCore::IDBObjectStoreBackendImpl::CreateIndexOperation::perform):
150846        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
150847        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexOperation::perform):
150848        (WebCore::IDBObjectStoreBackendImpl::openCursor):
150849        (WebCore::IDBObjectStoreBackendImpl::OpenObjectStoreCursorOperation::perform):
150850        (WebCore::IDBObjectStoreBackendImpl::count):
150851        (WebCore::IDBObjectStoreBackendImpl::ObjectStoreCountOperation::perform):
150852        (WebCore::IDBObjectStoreBackendImpl::CreateIndexAbortOperation::perform):
150853        (WebCore::IDBObjectStoreBackendImpl::DeleteIndexAbortOperation::perform):
150854        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
150855        (IDBObjectStoreBackendImpl):
150856
1508572012-11-30  Tim Horton  <timothy_horton@apple.com>
150858
150859        (Simple)PDFPlugin: Support conversion of PostScript documents
150860        https://bugs.webkit.org/show_bug.cgi?id=103289
150861        <rdar://problem/10235708>
150862
150863        Reviewed by Dan Bernstein.
150864
150865        SimplePDFPlugin (and PDFPlugin) should support converting PostScript files
150866        to PDF before handing them off to their respective backends.
150867
150868        * English.lproj/Localizable.strings:
150869        * WebCore.exp.in:
150870        * platform/LocalizedStrings.cpp:
150871        (WebCore::postScriptDocumentTypeDescription):
150872        * platform/LocalizedStrings.h:
150873        Add and export postScriptDocumentTypeDescription, for PostScript files.
150874
1508752012-11-30  Justin Novosad  <junov@google.com>
150876
150877        [Chromium] Animation updates fail when using a canvas as a CSS backround-image style with -webkit-canvas
150878        https://bugs.webkit.org/show_bug.cgi?id=103643
150879
150880        Reviewed by Stephen White.
150881
150882        CanvasRenderingContext2D::didDraw was not propagating the change
150883        notification to observers in the accelerated compositing case.
150884        Problem fixed by adding observer notifications.
150885
150886        New manual test: animated-canvas-as-background.html
150887
150888        * html/HTMLCanvasElement.cpp:
150889        (WebCore::HTMLCanvasElement::didDraw):
150890        The observer notification was factored out into a separate method
150891        so that it can be invoked directly for accelerated compositing.
150892        (WebCore):
150893        (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged):
150894        * html/HTMLCanvasElement.h:
150895        (HTMLCanvasElement):
150896        * html/canvas/CanvasRenderingContext2D.cpp:
150897        (WebCore::CanvasRenderingContext2D::didDraw):
150898        Added observer notification call to trigger repainting of elements that
150899        use this canvas for their style.
150900
1509012012-11-30  James Simonsen  <simonjam@chromium.org>
150902
150903        Report CSS as initiator instead of elements, except body
150904        https://bugs.webkit.org/show_bug.cgi?id=103546
150905
150906        Reviewed by Tony Gentilcore.
150907
150908        The Resource Timing spec says the initiator should be "css" when the the load comes from a
150909        url() rule in a stylesheet. Separately, WebKit reports <body background> as a CSS load, we
150910        need to override that to match the spec.
150911
150912        Tests: http/tests/w3c/webperf/submission/resource-timing
150913
150914        * css/CSSCursorImageValue.cpp:
150915        (WebCore::CSSCursorImageValue::cachedImage):
150916        * css/CSSImageValue.cpp:
150917        (WebCore::CSSImageValue::cachedImage): By default, the initiator is "css".
150918        * css/CSSImageValue.h:
150919        (CSSImageValue):
150920        (WebCore::CSSImageValue::setInitiator): Allow users to manually override it (see body).
150921        * css/StyleResolver.cpp:
150922        (WebCore::StyleResolver::loadPendingImage):
150923        * html/HTMLBodyElement.cpp:
150924        (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute): Record "body" as the initiator.
150925
1509262012-11-30  James Simonsen  <simonjam@chromium.org>
150927
150928        Remember the CachedResourceRequest for preloads
150929        https://bugs.webkit.org/show_bug.cgi?id=102995
150930
150931        Reviewed by Tony Gentilcore.
150932
150933        Without this, the initiator is lost.
150934
150935        Tests: http/tests/w3c/webperf/submission/resource-timing
150936
150937        * loader/cache/CachedResourceLoader.cpp:
150938        (WebCore::CachedResourceLoader::requestResource):
150939        (WebCore::CachedResourceLoader::loadResource):
150940        (WebCore::CachedResourceLoader::preload):
150941        (WebCore::CachedResourceLoader::checkForPendingPreloads):
150942        (WebCore::CachedResourceLoader::requestPreload):
150943        (WebCore::CachedResourceLoader::isPreloaded):
150944        * loader/cache/CachedResourceLoader.h:
150945        (CachedResourceLoader):
150946        (PendingPreload):
150947
1509482012-11-30  Michelangelo De Simone  <michelangelo@webkit.org>
150949
150950        [CSS Shaders] Clamp input colors before blending
150951        https://bugs.webkit.org/show_bug.cgi?id=98962
150952
150953        Reviewed by Dean Jackson.
150954
150955        The result of css_ColorMatrix multiplication is now clamped in [0.0, 1.0]
150956        before the blending step.
150957
150958        Relevant spec section is:
150959        http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-processing-model
150960
150961        Tests: css3/filters/custom/custom-filter-color-clamping-negative.html
150962               css3/filters/custom/custom-filter-color-clamping.html
150963
150964        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
150965        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): Added clamping
150966        code.
150967
1509682012-11-30  Abhishek Arya  <inferno@chromium.org>
150969
150970        Crash due to intruding float not removed after writing mode changed.
150971        https://bugs.webkit.org/show_bug.cgi?id=100149
150972
150973        Reviewed by Levi Weintraub.
150974
150975        When RenderView writing mode changes, make sure to mark all descendants
150976        with floats for layout.
150977
150978        Test: fast/block/float/intruding-float-not-removed-writing-mode.xhtml
150979
150980        * rendering/RenderBox.cpp:
150981        (WebCore::RenderBox::styleDidChange):
150982
1509832012-11-30  Florin Malita  <fmalita@chromium.org>
150984
150985        SVG pattern data deleted while in use
150986        https://bugs.webkit.org/show_bug.cgi?id=103415
150987
150988        Reviewed by Dirk Schulze.
150989
150990        Various calls in RenderSVGResourcePattern::applyResource() can trigger invalidations,
150991        which may end up deleting our current pattern data (via removeAllClientsFromCache).
150992        To avoid this, we should add the pattern data to the cache only after it is fully built.
150993        For clarity, the patch also refactors the pattern setup code into a separate method.
150994
150995        Test: svg/custom/large-image-pattern-crash.html
150996
150997        * rendering/svg/RenderSVGResourcePattern.cpp:
150998        (WebCore::RenderSVGResourcePattern::buildPattern):
150999        (WebCore::RenderSVGResourcePattern::applyResource):
151000        * rendering/svg/RenderSVGResourcePattern.h:
151001        (RenderSVGResourcePattern):
151002
1510032012-11-30  Alexander Pavlov  <apavlov@chromium.org>
151004
151005        Web Inspector: It's Sass, not SASS
151006        https://bugs.webkit.org/show_bug.cgi?id=103626
151007
151008        Reviewed by Yury Semikhatsky.
151009
151010        Change "SASS" to "Sass" in UI strings.
151011
151012        * English.lproj/localizedStrings.js:
151013        * inspector/front-end/Settings.js:
151014        (WebInspector.ExperimentsSettings):
151015        * inspector/front-end/SettingsScreen.js:
151016
1510172012-11-29  Tommy Widenflycht  <tommyw@google.com>
151018
151019        Speech Recognition API: Update SpeechRecognitionEvent/Result to match the specification
151020        https://bugs.webkit.org/show_bug.cgi?id=103407
151021
151022        Reviewed by Adam Barth.
151023
151024        This patch does the following:
151025        o Adds results, and removing result on SpeechRecognitionEvent
151026        o Renaming SpeechRecognitionResult::final to isFinal
151027        o Moving emma to SpeechRecognitionEvent from SpeechRecognitionResult
151028
151029        Existing tests updated to test the new API.
151030
151031        * Modules/speech/SpeechRecognition.cpp:
151032        (WebCore::SpeechRecognition::start):
151033        (WebCore::SpeechRecognition::didReceiveResults):
151034        (WebCore):
151035        * Modules/speech/SpeechRecognition.h:
151036        (SpeechRecognition):
151037        * Modules/speech/SpeechRecognitionEvent.cpp:
151038        (WebCore::SpeechRecognitionEvent::createResult):
151039        (WebCore):
151040        (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
151041        (WebCore::SpeechRecognitionEvent::~SpeechRecognitionEvent):
151042        (WebCore::emmaQualifiedName):
151043        (WebCore::SpeechRecognitionEvent::emma):
151044        * Modules/speech/SpeechRecognitionEvent.h:
151045        (WebCore):
151046        (SpeechRecognitionEventInit):
151047        (SpeechRecognitionEvent):
151048        (WebCore::SpeechRecognitionEvent::resultIndex):
151049        (WebCore::SpeechRecognitionEvent::results):
151050        * Modules/speech/SpeechRecognitionEvent.idl:
151051        * Modules/speech/SpeechRecognitionResult.cpp:
151052        * Modules/speech/SpeechRecognitionResult.h:
151053        (WebCore::SpeechRecognitionResult::isFinal):
151054        (SpeechRecognitionResult):
151055        * Modules/speech/SpeechRecognitionResult.idl:
151056        * WebCore.gypi:
151057        * bindings/v8/custom/V8SpeechRecognitionEventCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp.
151058        (WebCore):
151059        (WebCore::V8SpeechRecognitionEvent::opaqueRootForGC):
151060
1510612012-11-30  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi  <pierre.rossi@digia.com>
151062
151063        [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
151064        https://bugs.webkit.org/show_bug.cgi?id=99314
151065
151066        Reviewed by Tor Arne Vestbø.
151067
151068        This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
151069        shared libraries.
151070
151071        It's a big refactoring that mostly involves moving WebCore dependent
151072        code into QtWebKit and accessing it through exported QWebFrameAdapter
151073        and QWebPageAdapter classes.
151074
151075        * Target.pri:
151076        * platform/qt/QStyleFacade.h: Get rid of styleForPage function, not needed
151077        anymore.
151078        * platform/qt/QWebPageClient.h:
151079        (QWebPageClient): Remove a whole lot of cruft in favour of a simple GL enabling
151080        callback to select the GL texture mapper.
151081        (QWebPageClient::makeOpenGLContextCurrentIfAvailable):
151082
1510832012-11-30  Simon Hausmann  <simon.hausmann@digia.com>
151084
151085        Unreviewed, rolling out r136227.
151086        http://trac.webkit.org/changeset/136227
151087
151088        Broke the Qt bots due to version mismatch
151089
151090        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
151091        (FullScreenVideoWindow::FullScreenVideoWindow):
151092        (PlatformVideoWindow::PlatformVideoWindow):
151093
1510942012-11-30  Samuel Rødal  <samuel.rodal@digia.com>
151095
151096        [Qt] Fixed use of to-be-removed compatibility functions in QWindow.
151097
151098        Reviewed by Simon Hausmann.
151099
151100        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
151101        (FullScreenVideoWindow::FullScreenVideoWindow):
151102        (PlatformVideoWindow::PlatformVideoWindow):
151103
1511042012-11-30  Arpita Bahuguna  <arpitabahuguna@gmail.com>
151105
151106        Caret is painted horizontally in vertical writing mode when there are no visible text
151107        https://bugs.webkit.org/show_bug.cgi?id=102359
151108
151109        Reviewed by Ryosuke Niwa.
151110
151111        In the vertical writing mode the caret rect on an empty editable box or
151112        an empty line is rendered as per the horizontal writing mode.
151113
151114        This changes though when any text is added; the caret is then displayed
151115        in accordance with the vertical writing mode.
151116
151117        Test: editing/selection/caret-alignment-for-vertical-text.html
151118
151119        * rendering/RenderBox.cpp:
151120        (WebCore::RenderBox::localCaretRect):
151121        * rendering/RenderBoxModelObject.cpp:
151122        (WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
151123        The caret rect should be transposed for the vertical writing mode. Its
151124        width and height values need to be interchanged for it to be oriented
151125        as per the vertical text.
151126
1511272012-11-30  Sankeerth V S  <sankeerth.vs@samsung.com>
151128
151129        Web Inspector: [Timeline] JS error when clicking in Memory Statistics view
151130        https://bugs.webkit.org/show_bug.cgi?id=103486
151131
151132        Reviewed by Alexander Pavlov.
151133
151134        The counter value can be null/undefined. Hence a check is needed
151135        before we access the "time" property on this counter object.
151136
151137        No new tests required as UI related change.
151138
151139        * inspector/front-end/MemoryStatistics.js:
151140        (WebInspector.MemoryStatistics.prototype._onClick):
151141
1511422012-11-30  Kent Tamura  <tkent@chromium.org>
151143
151144        Fix typos in DateTimeNumericFieldElement.cpp and DateTimeSymbolicFieldElement.cpp
151145        https://bugs.webkit.org/show_bug.cgi?id=103717
151146
151147        Reviewed by Hajime Morita.
151148
151149        * html/shadow/DateTimeNumericFieldElement.cpp:
151150        (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
151151        maximum, not maxium.
151152        * html/shadow/DateTimeSymbolicFieldElement.cpp:
151153        (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
151154
1511552012-11-30  Halton Huo  <halton.huo@intel.com>
151156
151157        [EFL] libwebcore_efl.a fail to link when enable webgl
151158        https://bugs.webkit.org/show_bug.cgi?id=103610
151159
151160        Reviewed by Gyuyoung Kim.
151161
151162        libwebcore_efl.a should link to X11, Xcomposite and Xrender libraries when ENABLE_WEBGL is ON
151163
151164        No new tests, no behavior change for layout tests.
151165
151166        * PlatformEfl.cmake: Append ${X11_X11_LIB}, ${X11_Xcomposite_LIB} and ${X11_Xrender_LIB} to WebCore_LIBRARIES
151167
1511682012-11-30  Tim Horton  <timothy_horton@apple.com>
151169
151170        Unreviewed, fix the PDFPlugin build after http://trac.webkit.org/changeset/136205.
151171
151172        * WebCore.xcodeproj/project.pbxproj:
151173
1511742012-11-30  Mihai Maerean  <mmaerean@adobe.com>
151175
151176        [CSSRegions] when WebKit uses V8, there should be a single variable to store if the CSS Regions feature is enabled
151177        https://bugs.webkit.org/show_bug.cgi?id=101192
151178
151179        Reviewed by Hajime Morita.
151180
151181        Removed the CSS Regions flag in Settings and switched to using the new flag I have added in RuntimeEnabledFeatures.
151182
151183        Tests: No new tests because there is no functional change.
151184
151185        * WebCore.exp.in:
151186        * WebCore.vcproj/copyForwardingHeaders.cmd:
151187        * WebCore.xcodeproj/project.pbxproj:
151188        * bindings/generic/RuntimeEnabledFeatures.cpp:
151189        (WebCore):
151190        * bindings/generic/RuntimeEnabledFeatures.h:
151191        (RuntimeEnabledFeatures):
151192        (WebCore::RuntimeEnabledFeatures::setCSSRegionsEnabled):
151193        (WebCore::RuntimeEnabledFeatures::cssRegionsEnabled):
151194        * dom/Document.cpp:
151195        (WebCore::Document::cssRegionsEnabled):
151196        * page/Settings.cpp:
151197        (WebCore::Settings::Settings):
151198        * page/Settings.h:
151199        (Settings):
151200
1512012012-11-29  Martin Robinson  <mrobinson@igalia.com>
151202
151203        [GTK] [WebKit2] WebKitWebViewBase creates a GL context for the redirected XComposite window crashing WebKit in Xvfb
151204        https://bugs.webkit.org/show_bug.cgi?id=103476
151205
151206        Reviewed by Alejandro G. Castro.
151207
151208        Allow creation of RedirectedXCompositeWindow in a mode which does not have a backing
151209        GLContext. For WebKit2 the GLContext is always in the WebProcess. Creating the GLContext
151210        in both processes can cause crashes when library is run in Xvfb.
151211
151212        No new tests. This fixes a crash running tests on some systems.
151213
151214        * platform/gtk/RedirectedXCompositeWindow.cpp:
151215        (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
151216        (WebCore::RedirectedXCompositeWindow::resize): Do not create the GLContext when
151217        in the new no-GLContext mode.
151218        (WebCore::RedirectedXCompositeWindow::context): ASSERT that we are not in
151219        no-GLContext mode.
151220
1512212012-11-29  Keishi Hattori  <keishi@webkit.org>
151222
151223        Better type ahead for DateTimeSymbolicFieldElement
151224        https://bugs.webkit.org/show_bug.cgi?id=103031
151225
151226        Reviewed by Kent Tamura.
151227
151228        This cuts out the type ahead code that will be used by HTMLSelectElement
151229        and DateTimeSymbolicFieldElement into a TypeAhead class. This will
151230        improve DateTimeSymbolicFieldElement type ahead which was first
151231        character match only, by adding cycling, prefix match and index number
151232        match.
151233
151234        Added tests to month-multiple-fields-keyboard-events.html.
151235
151236        * GNUmakefile.list.am: Added TypeAhead.{h,cpp}
151237        * Target.pri: Ditto.
151238        * WebCore.gypi: Ditto.
151239        * WebCore.vcproj/WebCore.vcproj: Ditto.
151240        * WebCore.xcodeproj/project.pbxproj: Ditto.
151241        * CMakeLists.txt: Ditto.
151242        * html/HTMLSelectElement.cpp:
151243        (WebCore):
151244        (WebCore::HTMLSelectElement::HTMLSelectElement):
151245        (WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection.
151246        (WebCore::HTMLSelectElement::optionCount): Returns total number of options.
151247        (WebCore::HTMLSelectElement::optionAtIndex): Returns option at index.
151248        (WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead.
151249        * html/HTMLSelectElement.h:
151250        (HTMLSelectElement):
151251        * html/TypeAhead.cpp: Added.
151252        (WebCore):
151253        (WebCore::TypeAhead::TypeAhead):
151254        (WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp.
151255        (WebCore::TypeAhead::handleEvent): Returns index for match.
151256        * html/TypeAhead.h: Added.
151257        (WebCore):
151258        (TypeAheadDataSource): Provide the data about the options that TypeAhead should match against.
151259        (TypeAhead):
151260        * html/shadow/DateTimeSymbolicFieldElement.cpp:
151261        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
151262        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
151263        (WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption):
151264        (WebCore):
151265        (WebCore::DateTimeSymbolicFieldElement::optionCount):
151266        (WebCore::DateTimeSymbolicFieldElement::optionAtIndex):
151267        * html/shadow/DateTimeSymbolicFieldElement.h:
151268        (DateTimeSymbolicFieldElement):
151269
1512702012-11-29  Rafael Weinstein  <rafaelw@chromium.org>
151271
151272        [HTMLTemplateElement] Add feature flag
151273        https://bugs.webkit.org/show_bug.cgi?id=103694
151274
151275        Reviewed by Adam Barth.
151276
151277        This flag will guard the implementation of the HTMLTemplateElement.
151278        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html
151279
151280        * Configurations/FeatureDefines.xcconfig:
151281        * GNUmakefile.features.am:
151282
1512832012-11-29  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
151284
151285        Fix typo in commit 136189
151286        https://bugs.webkit.org/show_bug.cgi?id=103706
151287
151288        Reviewed by Kentaro Hara.
151289
151290        Because of typo in commit 136189 blue color value was set twice for every pixel.
151291
151292        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
151293        (WebCore::setPixel):
151294
1512952012-11-29  Elliott Sprehn  <esprehn@chromium.org>
151296
151297        Node::isDescendantOf contains logic that duplicates isDocumentNode
151298        https://bugs.webkit.org/show_bug.cgi?id=103698
151299
151300        Reviewed by Hajime Morita.
151301
151302        Instead of checking for documents with node->document() == node just
151303        use node->isDocumentNode().
151304
151305        * dom/Node.cpp:
151306        (WebCore::Node::isDescendantOf):
151307
1513082012-11-29  Alexey Proskuryakov  <ap@apple.com>
151309
151310        [WK2] Forward cookie jar calls to NetworkProcess
151311        https://bugs.webkit.org/show_bug.cgi?id=103457
151312
151313        Reviewed by Darin Adler.
151314
151315        * WebCore.exp.in:
151316        * WebCore.xcodeproj/project.pbxproj:
151317        PlatformCookieJar.h functions are now used in WebKit2.
151318
151319        * loader/CookieJar.cpp:
151320        (WebCore::cookies):
151321        (WebCore::setCookies):
151322        (WebCore::cookiesEnabled):
151323        (WebCore::cookieRequestHeaderFieldValue):
151324        (WebCore::getRawCookies):
151325        (WebCore::deleteCookie):
151326        (WebCore::getHostnamesWithCookies):
151327        (WebCore::deleteCookiesForHostname):
151328        (WebCore::deleteAllCookies):
151329        Use a strategy instead of going to PlatformCookieJar directly.
151330
151331        * platform/Cookie.h: (Cookie): Added a default constructor, so that Cookie could be
151332        sent over IPC.
151333
151334        * platform/CookiesStrategy.h: Added functions for cookie jar.
151335
1513362012-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>
151337
151338        Unreviewed, rolling out r136167.
151339        http://trac.webkit.org/changeset/136167
151340        https://bugs.webkit.org/show_bug.cgi?id=103701
151341
151342        Win debug build failure (Requested by zhenyao on #webkit).
151343
151344        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
151345        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
151346        * platform/graphics/chromium/LazyDecodingPixelRef.h:
151347        (LazyDecodingPixelRef):
151348
1513492012-11-29  David Grogan  <dgrogan@chromium.org>
151350
151351        IndexedDB: Propagate more leveldb errors to script
151352        https://bugs.webkit.org/show_bug.cgi?id=103580
151353
151354        Reviewed by Tony Chang.
151355
151356        LevelDBDatabase used a single return value to indicate both I/O problems
151357        and a missing key. Now an out variable is used to indicate if the
151358        requested key was found. The return value is used to report corruption
151359        or disk error.
151360
151361        This is a small step toward propagating low level errors everywhere
151362        possible. So far only one scenario will newly cause script to receive
151363        an error: when leveldb has trouble looking for existing keys during an
151364        objectstore->add.
151365
151366        * Modules/indexeddb/IDBBackingStore.cpp:
151367        (WebCore::getInt):
151368        (WebCore::getVarInt):
151369        (WebCore::getString):
151370        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
151371        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
151372        (WebCore::IDBBackingStore::keyExistsInObjectStore):
151373        * Modules/indexeddb/IDBBackingStore.h:
151374        (IDBBackingStore):
151375        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
151376        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
151377        (WebCore::IDBObjectStoreBackendImpl::putInternal):
151378        (WebCore::IDBObjectStoreBackendImpl::generateKey):
151379        (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
151380        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
151381        (IDBObjectStoreBackendImpl):
151382        * platform/leveldb/LevelDBDatabase.cpp:
151383        (WebCore::LevelDBDatabase::safeGet):
151384        * platform/leveldb/LevelDBDatabase.h:
151385        (LevelDBDatabase):
151386        * platform/leveldb/LevelDBTransaction.cpp:
151387        (WebCore::LevelDBTransaction::safeGet):
151388        (WebCore):
151389        (WebCore::LevelDBTransaction::get):
151390        * platform/leveldb/LevelDBTransaction.h:
151391        (LevelDBTransaction):
151392
1513932012-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>
151394
151395        Unreviewed, rolling out r136171.
151396        http://trac.webkit.org/changeset/136171
151397        https://bugs.webkit.org/show_bug.cgi?id=103695
151398
151399        Likely caused ReOpenedWithID and ReOpenedWithURL to fail in
151400        linux/chromeos (Requested by zhenyao on #webkit).
151401
151402        * inspector/InspectorClient.h:
151403        (WebCore::InspectorClient::startMainThreadMonitoring):
151404        (WebCore::InspectorClient::stopMainThreadMonitoring):
151405        * inspector/InspectorController.cpp:
151406        * inspector/InspectorController.h:
151407        (InspectorController):
151408        * inspector/InspectorInstrumentation.cpp:
151409        (WebCore):
151410        (WebCore::InspectorInstrumentation::willProcessTaskImpl):
151411        (WebCore::InspectorInstrumentation::didProcessTaskImpl):
151412        * inspector/InspectorInstrumentation.h:
151413        (InspectorInstrumentation):
151414        (WebCore::InspectorInstrumentation::willProcessTask):
151415        (WebCore):
151416        (WebCore::InspectorInstrumentation::didProcessTask):
151417        * inspector/InspectorTimelineAgent.cpp:
151418        (WebCore::InspectorTimelineAgent::start):
151419        (WebCore::InspectorTimelineAgent::stop):
151420
1514212012-11-29  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
151422
151423        Optimization in image decoding.
151424        https://bugs.webkit.org/show_bug.cgi?id=88424
151425
151426        Reviewed by Brent Fulgham.
151427
151428        Reduce branching and multiplications in JPEG image decoding loops and functions.
151429        Code is moved to the template functions with scale and color space template parameters
151430        because they were reason of branches inside loops. With templated funtions compiler
151431        will generate separate instance of function for every set of parameters removing
151432        unreachable code in every condition where constant value is used.
151433
151434        Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com> .
151435
151436        Thanks to Noel Gordon for his help in cleaning up remaining issues.
151437
151438        Covered by existing tests.
151439
151440        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
151441        (WebCore):
151442        (WebCore::setPixel):
151443        (WebCore::JPEGImageDecoder::outputScanlines):
151444        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
151445        (JPEGImageDecoder):
151446
1514472012-11-29  Kentaro Hara  <haraken@chromium.org>
151448
151449        Unreviewed, rolling out r135862.
151450        http://trac.webkit.org/changeset/135862
151451        https://bugs.webkit.org/show_bug.cgi?id=103367
151452
151453        We've been observing 'Fatal error in
151454        v8::V8::AddMessageListener()' in bots
151455
151456        * bindings/v8/V8Binding.cpp:
151457        (WebCore::v8NonStringValueToWebCoreString):
151458        * bindings/v8/V8StringResource.cpp:
151459        (WebCore::int32ToWebCoreStringFast):
151460        (WebCore::int32ToWebCoreString):
151461        * bindings/v8/V8StringResource.h:
151462        (WebCore::V8StringResource::V8StringResource):
151463        (WebCore::V8StringResource::prepareBase):
151464        (WebCore::V8StringResource::setString):
151465        (V8StringResource):
151466        (WebCore::V8StringResource::toString):
151467        (WebCore::::prepare):
151468
1514692012-11-29  Pavel Feldman  <pfeldman@chromium.org>
151470
151471        Web Inspector: optimize repaint regions upon text editing
151472        https://bugs.webkit.org/show_bug.cgi?id=103674
151473
151474        Reviewed by Vsevolod Vlasov.
151475
151476        There is a lot happening that makes repaint area larger than it should be,
151477        namely unnecessary tabbed pane and navigator updates.
151478
151479        * inspector/front-end/NavigatorView.js:
151480        (WebInspector.NavigatorView.prototype._updateScriptTitle):
151481        * inspector/front-end/TabbedPane.js:
151482        (WebInspector.TabbedPaneTab.prototype.set title):
151483
1514842012-11-29  KyungTae Kim  <ktf.kim@samsung.com>
151485
151486        Unused parameters on plugins/npapi.cpp
151487        https://bugs.webkit.org/show_bug.cgi?id=103676
151488
151489        Reviewed by Kentaro Hara.
151490
151491        Because 'instance' and 'menu' are not used when !PLATFORM(QT) || !defined(XP_MACOSX),
151492        use UNUSED_PARAM macro to fix build warning -Wunused-parameter
151493
151494        * plugins/npapi.cpp:
151495        (NPN_PopUpContextMenu):
151496
1514972012-11-29  Pablo Flouret  <pablof@motorola.com>
151498
151499        REGRESSION(r134693): Compilation error on @supports grammar code
151500        https://bugs.webkit.org/show_bug.cgi?id=103678
151501
151502        Reviewed by Tony Chang.
151503
151504        Coming from https://bugs.webkit.org/show_bug.cgi?id=102295
151505
151506        No new tests, compile fix.
151507
151508        * css/CSSGrammar.y.in:
151509
1515102012-11-29  Simon Fraser  <simon.fraser@apple.com>
151511
151512        Avoid painting lots of small rects in WebLayer painting
151513        https://bugs.webkit.org/show_bug.cgi?id=103673
151514
151515        Reviewed by Tim Horton.
151516
151517        r109186 added code in drawLayerContents() to enumerate over the rects in
151518        the CALayer's dirty region, and paint them individually. This was done
151519        to help performance on the IE Maze Solver test.
151520        
151521        On large, complex pages like Facebook, the overhead of traversing the
151522        RenderLayer tree for painting is such that it's better to paint a single,
151523        or fewer rects rather than lots of little ones.
151524        
151525        So adopt a heuristic similar to that in DrawingArea, where if the
151526        combined area of the small rects is 75% or more of the combined rect,
151527        just paint the combined rect. Also paint the combined rect if there
151528        are more than 5 individual rects.
151529        
151530        I verified that this preserves the optimization for IE Maze Solver.
151531
151532        * platform/graphics/mac/WebLayer.mm:
151533        (drawLayerContents):
151534
1515352012-11-29  Eugene Klyuchnikov  <eustas@chromium.org>
151536
151537        Web Inspector: Web Inspector: Make main-thread monitoring go through InspectorController.
151538        https://bugs.webkit.org/show_bug.cgi?id=103550
151539
151540        Reviewed by Pavel Feldman.
151541
151542        InspectorInstrumentation was a wrong path.
151543
151544        * inspector/InspectorClient.h: Remove start/stop methods.
151545        * inspector/InspectorController.cpp:
151546        Dispatch main thread activity notifications. 
151547        * inspector/InspectorController.h: Ditto.
151548        * inspector/InspectorInstrumentation.cpp: Remove dispatching.
151549        * inspector/InspectorInstrumentation.h: Ditto.
151550        * inspector/InspectorTimelineAgent.cpp:
151551        Do not subscribe for notifications explicitly.
151552
1515532012-11-29  Adam Barth  <abarth@webkit.org>
151554
151555        [V8] DOM callbacks shouldn't reimplement ScopedPersistent they should use it
151556        https://bugs.webkit.org/show_bug.cgi?id=103662
151557
151558        Reviewed by Eric Seidel.
151559
151560        This patch replaces yet another instance of the ScopedPersistent
151561        pattern with ScopedPersistent.
151562
151563        * bindings/scripts/CodeGeneratorV8.pm:
151564        (GenerateCallbackHeader):
151565        (GenerateCallbackImplementation):
151566        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
151567        (WebCore::V8SQLStatementErrorCallback::handleEvent):
151568        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
151569        (WebCore::V8MutationCallback::handleEvent):
151570
1515712012-11-29  Min Qin  <qinmin@chromium.org>
151572
151573        Make LazyDecodingPixelRef inherit from skia::LazyPixelRef so that cc thread can access it
151574        https://bugs.webkit.org/show_bug.cgi?id=103555
151575
151576        Reviewed by Stephen White.
151577
151578        Expose LazyDecodingPixelRef to the cc thread by inheriting from skia::LazyPixelRef.
151579        No test added for now as impl side paiting is still WIP.
151580
151581        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
151582        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
151583        (WebCore::LazyDecodingPixelRef::PrepareToDecode):
151584        (WebCore):
151585        (WebCore::LazyDecodingPixelRef::Decode):
151586        * platform/graphics/chromium/LazyDecodingPixelRef.h:
151587        (LazyDecodingPixelRef):
151588
1515892012-11-29  Julien Chaffraix  <jchaffraix@webkit.org>
151590
151591        Unreviewed build fix.
151592
151593        * WebCore.gypi:
151594        The new file is GridTrackSize.h not GridTrackSizes.h. For some reason, the
151595        EWS didn't complain.
151596
1515972012-11-29  John Knottenbelt  <jknotten@chromium.org>
151598
151599        Use GeolocationController's last geoposition as cached position.
151600        https://bugs.webkit.org/show_bug.cgi?id=103540
151601
151602        Reviewed by Benjamin Poulain.
151603
151604        The page's GeolocationController mediates access to the
151605        GeolocationClient for multiple frames' Geolocation instances. This
151606        patch changes the position cache to be on the GeolocationController
151607        rather than on the Geolocation instance.
151608
151609        This fixes a bug where if one frame has has received a fresh
151610        position, then a request for a cached position from a second frame
151611        does not succeed because the Geolocation instance in the second
151612        frame's position cache hasn't received the position update that
151613        went to the first frame.
151614
151615        Test: fast/dom/Geolocation/cached-position-iframe.html
151616
151617        * Modules/geolocation/Geolocation.cpp:
151618        (WebCore::Geolocation::makeCachedPositionCallbacks):
151619        (WebCore::Geolocation::haveSuitableCachedPosition):
151620        (WebCore::Geolocation::positionChanged):
151621        * Modules/geolocation/Geolocation.h:
151622        * Modules/geolocation/GeolocationController.h:
151623        (GeolocationController):
151624
1516252012-11-29  Alexei Filippov  <alph@chromium.org>
151626
151627        Web Inspector: Allow sorting in NMI snapshot grid view
151628        https://bugs.webkit.org/show_bug.cgi?id=102955
151629
151630        Reviewed by Yury Semikhatsky.
151631
151632        * English.lproj/localizedStrings.js:
151633        * inspector/front-end/NativeMemorySnapshotView.js:
151634        (WebInspector.NativeSnapshotDataGrid.prototype.sortingChanged):
151635        (WebInspector.NativeSnapshotDataGrid.prototype._sortingFunction):
151636        (WebInspector.NativeSnapshotNode):
151637        (WebInspector.NativeSnapshotNode.prototype._storeState):
151638        (WebInspector.NativeSnapshotNode.prototype._restoreState):
151639        (WebInspector.NativeSnapshotNode.prototype.uid):
151640        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
151641
1516422012-11-29  Martin Robinson  <mrobinson@igalia.com>
151643
151644        [GTK] [WebKit2] Embed the HTTP authentication dialog into the WebView
151645        https://bugs.webkit.org/show_bug.cgi?id=103277
151646
151647        Reviewed by Carlos Garcia Campos.
151648
151649        Refactor the WebCore authentication dialog so that it can be reused for the WebKit2
151650        embedded authentication dialog. The main purpose of this refactor is so that the
151651        dialog does not rely on GtkDialog to add the action buttons to the dialog itself.
151652        This also simplifies the structure of the dialog, using the GtkTable or GtkGrid to
151653        contain more of the widget elements, greatly simplifying this code. We also expose
151654        a new constructor that does not create the parent GtkDialog -- so that WebKit2
151655        can embed the dialog directly into the WebView.
151656
151657        No new tests. This shouldn't change behavior, only slightly the look of the authentication
151658        dialog.
151659
151660        * platform/gtk/GtkAuthenticationDialog.cpp:
151661        (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Added this new constructor
151662        which does not add the dialog contents to a GtkDialog.
151663        (WebCore::packTwoColumnLayoutInBox): Added this generic method for creating a two column
151664        layout in the style the dialog box needs (for both GTK+ 2.x and GTK+ 3.x).
151665        (WebCore::createDialogLabel): Added this helper.
151666        (WebCore::createDialogEntry): ditto.
151667        (WebCore::GtkAuthenticationDialog::createContentsInContainer): Added this method which
151668        can be used by subclasses to add the guts of the dialog to the parent container.
151669        (WebCore::GtkAuthenticationDialog::show): Added some focus/default handling code that
151670        GtkDialog was calling before.
151671        (WebCore::GtkAuthenticationDialog::buttonClickedCallback): Added a button clicked handler.
151672        Before GtkDialog handled this.
151673        * platform/gtk/GtkAuthenticationDialog.h: Updated methods to reflect new functionality.
151674        (WebCore::GtkAuthenticationDialog::~GtkAuthenticationDialog): Inline the default constructor.
151675
1516762012-11-29  Beth Dakin  <bdakin@apple.com>
151677
151678        https://bugs.webkit.org/show_bug.cgi?id=103577
151679        TiledDrawingArea should recycle tiles
151680        -and corresponding-
151681        <rdar://problem/12714586>
151682
151683        Reviewed by Simon Fraser.
151684
151685        New class LayerPool will keep a list of layers to reuse so that 
151686        we can avoid creating and destroying so many layer.
151687
151688        When removing layers, add them to the LayerPool
151689        * platform/graphics/ca/mac/TileCache.mm:
151690        (WebCore::TileCache::revalidateTiles):
151691
151692        Before creating a new layer, try to get one of the appropriate size 
151693        from the LayerPool.
151694        (WebCore::TileCache::createTileLayer):
151695
151696        New class.
151697        * WebCore.xcodeproj/project.pbxproj:
151698        * platform/graphics/ca/mac/LayerPool.h: Added.
151699        (WebCore):
151700        (LayerPool):
151701        (WebCore::LayerPool::capacity):
151702        (WebCore::LayerPool::canReuseLayerWithSize):
151703        * platform/graphics/ca/mac/LayerPool.mm: Added.
151704        (WebCore):
151705        (WebCore::LayerPool:: LayerPool):
151706        (WebCore::LayerPool::sharedPool):
151707        (WebCore::LayerPool::bytesBackingLayerWithPixelSize):
151708        (WebCore::LayerPool::listOfLayersWithSize):
151709        (WebCore::LayerPool::addLayer):
151710        (WebCore::LayerPool::takeLayerWithSize):
151711        (WebCore::LayerPool::decayedCapacity):
151712        (WebCore::LayerPool::schedulePrune):
151713        (WebCore::LayerPool::prune):
151714        (WebCore::LayerPool::drain):
151715
151716        If we're under memory pressure, drain the LayerPool
151717        * platform/mac/MemoryPressureHandlerMac.mm:
151718        (WebCore::MemoryPressureHandler::releaseMemory):
151719
1517202012-11-29  Julien Chaffraix  <jchaffraix@webkit.org>
151721
151722        [CSS Grid Layout] track sizing functions should have their own type
151723        https://bugs.webkit.org/show_bug.cgi?id=103343
151724
151725        Reviewed by Tony Chang.
151726
151727        The current code uses a Length to represent the track sizing function. This is
151728        fine as we only parse <length> | <percentage> but in order to support minmax
151729        sizing, we have to store 2 Lengths. We could go with a pair but that would make
151730        the code not very readable so this change introduces GridTrackSize.
151731
151732        Refactoring, covered by existing tests.
151733
151734        * GNUmakefile.list.am:
151735        * Target.pri:
151736        * WebCore.gypi:
151737        * WebCore.vcproj/WebCore.vcproj:
151738        * WebCore.xcodeproj/project.pbxproj:
151739        Added GridTrackSize.h to all our build systems.
151740
151741        * css/CSSComputedStyleDeclaration.cpp:
151742        (WebCore::valueForGridTrackBreadth):
151743        (WebCore::valueForGridTrackList):
151744        * css/StyleResolver.cpp:
151745        (WebCore::createGridTrackBreadth):
151746        (WebCore::createGridTrackList):
151747        (WebCore::StyleResolver::applyProperty):
151748        * rendering/RenderGrid.cpp:
151749        (WebCore::RenderGrid::computePreferredLogicalWidths):
151750        (WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
151751        * rendering/style/RenderStyle.h:
151752        Updated the above call sites to use GridTrackSize. While
151753        touching them, changed the code to use an empty Vector to represent
151754        'none' instead of Length(Undefined).
151755
151756        * rendering/style/StyleGridData.h:
151757        Updated #include, removed a comment as it would have gone stale after
151758        adding more grammar support and added a FIXME to rename some variables.
151759
151760        * rendering/RenderGrid.cpp:
151761        (WebCore::RenderGrid::layoutGridItems):
151762        Implemented a work-around to avoid crashing due to implicit columns / rows.
151763
151764        * rendering/style/GridTrackSize.h: Added.
151765        (WebCore::GridTrackSize::GridTrackSize):
151766        (WebCore::GridTrackSize::length):
151767        (WebCore::GridTrackSize::setLength):
151768        (WebCore::GridTrackSize::type):
151769        (WebCore::GridTrackSize::operator==):
151770        New class, it now only wraps a single Length.
151771
1517722012-11-29  Helder Correia  <helder.correia@nokia.com>
151773
151774        Typo in Color creation function name
151775        https://bugs.webkit.org/show_bug.cgi?id=103464
151776
151777        Reviewed by Alexey Proskuryakov.
151778
151779        Renaming createUnCheked() as createUnchecked().
151780
151781        No new tests.
151782
151783        * platform/graphics/Color.cpp:
151784        (WebCore::colorFromPremultipliedARGB):
151785        * platform/graphics/Color.h:
151786        (WebCore::Color::createUnchecked):
151787
1517882012-11-29  Otto Derek Cheung  <otcheung@rim.com>
151789
151790        [BlackBerry] Cookies in private mode should not have access to public cookies
151791        https://bugs.webkit.org/show_bug.cgi?id=103649
151792
151793        Reviewed by Rob Buis.
151794
151795        PR 253983
151796
151797        When CookieManager switches back from public to private mode,
151798        we will clear the cookie tree so the browser won't have access
151799        to the public cookies.
151800
151801        Tested using browser.swlab.rim.net cookie tests and the steps in
151802        the PR.
151803
151804        * platform/blackberry/CookieManager.cpp:
151805        (WebCore::CookieManager::setPrivateMode):
151806
1518072012-11-29  Brent Fulgham  <bfulgham@gmail.com>
151808
151809        Be consistent in handling of frameAtIndex (and related) returns.
151810        https://bugs.webkit.org/show_bug.cgi?id=103207
151811
151812        Reviewed by David Hyatt.
151813
151814        Under various conditions, frameAtIndex (and therefore,
151815        nativeImageForCurrentFrame) returns null. A series of bugs over
151816        the years has ensured null returns are handled in some cases,
151817        but there are a handful of remaining cases where this is still a
151818        problem. 
151819
151820        No new tests, as these low-level functions are covered by
151821        numerous existing test cases.
151822
1518232012-11-29  David Hyatt  <hyatt@apple.com>
151824
151825        [New Multicolumn] Add minimum column height tracking and forced break tracking to column sets.
151826        https://bugs.webkit.org/show_bug.cgi?id=103657
151827
151828        Reviewed by Simon Fraser.
151829
151830        * rendering/RenderMultiColumnSet.cpp:
151831        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
151832        * rendering/RenderMultiColumnSet.h:
151833        (WebCore::RenderMultiColumnSet::updateMinimumColumnHeight):
151834        (WebCore::RenderMultiColumnSet::minimumColumnHeight):
151835        (RenderMultiColumnSet):
151836        (WebCore::RenderMultiColumnSet::forcedBreaksCount):
151837        (WebCore::RenderMultiColumnSet::forcedBreakOffset):
151838        (WebCore::RenderMultiColumnSet::maximumDistanceBetweenForcedBreaks):
151839        (WebCore::RenderMultiColumnSet::clearForcedBreaks):
151840        (WebCore::RenderMultiColumnSet::addForcedBreak):
151841
1518422012-11-29  Pavel Feldman  <pfeldman@chromium.org>
151843
151844        Web Inspector: introduce fast case for within-chunk edit
151845        https://bugs.webkit.org/show_bug.cgi?id=103545
151846
151847        Reviewed by Vsevolod Vlasov.
151848
151849        Special-casing edits within the chunk for faster operation.
151850
151851        * inspector/front-end/DOMExtension.js:
151852        (removeSubsequentNodes):
151853        * inspector/front-end/DefaultTextEditor.js:
151854        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
151855
1518562012-11-29  Pavel Feldman  <pfeldman@chromium.org>
151857
151858        Web Inspector: Console: hovering node wrappers in object tree should highlight them on the page
151859        https://bugs.webkit.org/show_bug.cgi?id=101150
151860
151861        Reviewed by Vsevolod Vlasov.
151862
151863        - Introduced a way to highlight nodes by object id in addition to node id.
151864        - Decorated nodes in the object tree outline and added on-hover highlighting.
151865
151866        * inspector/Inspector.json:
151867        * inspector/InspectorDOMAgent.cpp:
151868        (WebCore::InspectorDOMAgent::highlightNode):
151869        * inspector/InspectorDOMAgent.h:
151870        (InspectorDOMAgent):
151871        * inspector/front-end/ConsoleMessage.js:
151872        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
151873        * inspector/front-end/DOMAgent.js:
151874        (WebInspector.DOMAgent.prototype.highlightDOMNode):
151875        * inspector/front-end/DOMPresentationUtils.js:
151876        (WebInspector.DOMPresentationUtils.createSpansForNodeTitle):
151877        * inspector/front-end/ObjectPropertiesSection.js:
151878        (WebInspector.ObjectPropertyTreeElement.prototype.update):
151879        (WebInspector.ObjectPropertyTreeElement.prototype._mouseMove):
151880        (WebInspector.ObjectPropertyTreeElement.prototype._mouseOut):
151881        * inspector/front-end/RemoteObject.js:
151882        (WebInspector.RemoteObject.prototype.highlightAsDOMNode):
151883        (WebInspector.RemoteObject.prototype.hideDOMNodeHighlight):
151884        * inspector/front-end/TestController.js:
151885        * inspector/front-end/externs.js:
151886        * inspector/front-end/inspector.css:
151887        (.console-formatted-node:hover):
151888        * inspector/front-end/utilities.js:
151889
1518902012-11-29  Dan Bernstein  <mitz@apple.com>
151891
151892        <rdar://problem/12771885> Support ruby-position: {before, after}
151893        https://bugs.webkit.org/show_bug.cgi?id=103569
151894
151895        Reviewed by Anders Carlsson.
151896
151897        Specified in <http://www.w3.org/TR/2011/WD-css3-ruby-20110630/#rubypos>, the ruby-position
151898        property takes four values: before, after, inter-character, and inline. This change adds
151899        support for the values before and after.
151900
151901        Test: fast/ruby/position-after.html
151902
151903        * css/CSSComputedStyleDeclaration.cpp:
151904        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Handle ruby-position.
151905        * css/CSSParser.cpp:
151906        (WebCore::isValidKeywordPropertyAndValue): Accept before and after as valid values for
151907        ruby-position.
151908        (WebCore::isKeywordPropertyID): Added ruby-position to the list of properties with keyword
151909        values.
151910        (WebCore::CSSParser::parseValue): Added ruby-position to the switch statement.
151911        * css/CSSPrimitiveValueMappings.h:
151912        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from RubyPosition.
151913        (WebCore::CSSPrimitiveValue::operator RubyPosition): Added mapping from CSSPrimitiveValue.
151914        * css/CSSProperty.cpp:
151915        (WebCore::CSSProperty::isInheritedProperty): Added ruby-position as an inherited property.
151916        * css/CSSPropertyNames.in: Added -webkit-ruby-position.
151917        * css/CSSValueKeywords.in: Added after and before.
151918        * css/StyleBuilder.cpp:
151919        (WebCore::StyleBuilder::StyleBuilder): Added a handler for ruby-position.
151920        * css/StyleResolver.cpp:
151921        (WebCore::StyleResolver::applyProperty): Added ruby-position.
151922        * rendering/InlineFlowBox.cpp:
151923        (WebCore::InlineFlowBox::placeBoxesInBlockDirection): Changed to choose which of
151924        hasAnnotationsBefore and hasAnnotationsAfter to set based on ruby position.
151925        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment): Changed to adjust only for
151926        ruby positioned before the base.
151927        (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment): Added adjustment for ruby
151928        positioned after the base.
151929        * rendering/RenderRubyRun.cpp:
151930        (WebCore::RenderRubyRun::layout): Account for ruby-position when positioning the ruby text
151931        relative to the base.
151932        * rendering/style/RenderStyle.cpp:
151933        (WebCore::RenderStyle::diff): Made a ruby-position difference a layout difference.
151934        * rendering/style/RenderStyle.h: Added rubyPosition(), setRubyPosition(), and 
151935        initialRubyPosition().
151936        * rendering/style/RenderStyleConstants.h: Added the RubyPosition enum.
151937        * rendering/style/StyleRareInheritedData.cpp:
151938        (WebCore::StyleRareInheritedData::StyleRareInheritedData): Added initialized for
151939        m_rubyPosition. Added copying the value of this member to the copy constructor.
151940        (WebCore::StyleRareInheritedData::operator==): Added comparison of m_rubyPosition.
151941        * rendering/style/StyleRareInheritedData.h:
151942        (StyleRareInheritedData): Added m_rubyPosition member variable.
151943
1519442012-11-29  Tiancheng Jiang  <tijiang@rim.com>
151945
151946        [BlackBerry] Update BB10 form theme.
151947        https://bugs.webkit.org/show_bug.cgi?id=100760
151948
151949        Reviewed by Rob Buis.
151950
151951        Internally Reviewed by Eli Fidler.
151952        Set text color after buttons are pressed.
151953
151954        * css/themeBlackBerry.css:
151955        (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]:active::-webkit-file-upload-button, button:active):
151956        (select:active):
151957        * platform/blackberry/RenderThemeBlackBerry.cpp:
151958        (WebCore):
151959        (WebCore::RenderThemeBlackBerry::paintButton):
151960        (WebCore::RenderThemeBlackBerry::paintMenuList):
151961
1519622012-11-29  Zeno Albisser  <zeno@webkit.org>
151963
151964        GraphicsSurfaceGLX: remove redundant parameter from resolveGLMethods.
151965        https://bugs.webkit.org/show_bug.cgi?id=103636
151966
151967        Reviewed by Kenneth Rohde Christiansen.
151968
151969        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
151970        (WebCore::resolveGLMethods):
151971        (WebCore::GraphicsSurface::platformCreate):
151972        (WebCore::GraphicsSurface::platformImport):
151973
1519742012-11-29  Mike West  <mkwst@chromium.org>
151975
151976        Typo in 'autofocus' sandboxing error message.
151977        https://bugs.webkit.org/show_bug.cgi?id=103616
151978
151979        Reviewed by Jochen Eisinger.
151980
151981        The sandbox attribute name is 'allow-scripts', not 'allow-script'. :(
151982
151983        * html/HTMLFormControlElement.cpp:
151984        (WebCore::shouldAutofocus):
151985
1519862012-11-29  Hajime Morrita  <morrita@google.com>
151987
151988        HTMLMediaElement's .textTracks property does not reflect <track> element
151989        https://bugs.webkit.org/show_bug.cgi?id=103420
151990
151991        Reviewed by Eric Carlson.
151992
151993        There were some assumptions that <track> elements are valid only
151994        if the parent <media> is in document. This change relaxes this
151995        assumption so that <track> is valid when it has <media> as a
151996        parent regardless whether the <media> is in the document or not.
151997
151998        HTMLMediaElement::didAddTrack and didRemoveTrack are now called
151999        when the <track> is inserted to or removed from the parent <media>
152000        element.
152001
152002        Test: media/track/track-node-add-remove.html
152003
152004        * html/HTMLMediaElement.cpp:
152005        (WebCore::HTMLMediaElement::didRemoveTrack):
152006        Renamed from willRemoveTrack() to reflect the timing. This was once called from
152007        Node::willRemove(), which was removed a while ago.
152008        * html/HTMLMediaElement.h:
152009        (HTMLMediaElement):
152010        * html/HTMLTrackElement.cpp:
152011        (WebCore::HTMLTrackElement::insertedInto):
152012        The old code notified parent <media> only if the subtree became a part of the document.
152013        Now it notifies the <media> when this <track> becomes a child of that <media>.
152014
152015        (WebCore::HTMLTrackElement::removedFrom):
152016        The old code notifies the parent <media> every time as long as the parent is available.
152017        Now it notifies the <media> only if this <track> is removed from the parent <media>.
152018        This matches how corresponding notification is done in insertedInto().
152019
152020        * html/track/LoadableTextTrack.cpp:
152021        (WebCore::LoadableTextTrack::trackElementIndex):
152022
1520232012-11-29  Florin Malita  <fmalita@chromium.org>
152024
152025        [Skia] Add missing OpaqueRegionSkia notifier calls
152026        https://bugs.webkit.org/show_bug.cgi?id=102824
152027
152028        Reviewed by Stephen White.
152029
152030        http://trac.webkit.org/changeset/135390 exposed some canvas draw clients which are not
152031        updating the opaque region tracker. This patch adds the required notifier calls.
152032
152033        No new tests: platform unit tests added.
152034
152035        * platform/graphics/skia/OpaqueRegionSkia.h:
152036        (OpaqueRegionSkia):
152037        * platform/graphics/skia/PlatformContextSkia.h:
152038        (WebCore::PlatformContextSkia::writePixels):
152039        (WebCore::PlatformContextSkia::drawBitmap):
152040        (WebCore::PlatformContextSkia::drawBitmapRect):
152041        (WebCore::PlatformContextSkia::drawIRect):
152042        (WebCore::PlatformContextSkia::drawPosText):
152043        (WebCore::PlatformContextSkia::drawPosTextH):
152044        (WebCore::PlatformContextSkia::drawTextOnPath):
152045
1520462012-11-29  Andy Shaw  <andy.shaw@digia.com>
152047
152048        [Qt] Implement support for Cocoa based NPAPI plugins on Mac
152049        https://bugs.webkit.org/show_bug.cgi?id=72358
152050
152051        Reviewed by Simon Hausmann.
152052
152053        With later versions of Flash they are only Cocoa based which meant that it was not possible to use Flash in a QtWebKit browser.
152054        This makes it possible to also use 64bit based plugins too.  
152055
152056        * plugins/PluginPackage.cpp:
152057        (WebCore::PluginPackage::initializeBrowserFuncs):
152058        (WebCore):
152059        * plugins/PluginQuirkSet.h:
152060        * plugins/PluginView.cpp:
152061        (WebCore::PluginView::handleEvent):
152062        (WebCore::PluginView::PluginView):
152063        (WebCore):
152064        (WebCore::PluginView::userAgent):
152065        * plugins/PluginView.h:
152066        (WebCore):
152067        (PluginView):
152068        * plugins/mac/PluginPackageMac.cpp:
152069        (WebCore::PluginPackage::determineQuirks):
152070        (WebCore::PluginPackage::fetchInfo):
152071        * plugins/mac/PluginViewMac.mm:
152072        (WebCore):
152073        (WebCore::initializeNPCocoaEvent):
152074        (WebCore::getModifiers):
152075        (WebCore::PluginView::platformStart):
152076        * plugins/npapi.cpp:
152077        (NPN_PopUpContextMenu):
152078        * plugins/npapi.h:
152079
1520802012-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>
152081
152082        Unreviewed, rolling out r136111.
152083        http://trac.webkit.org/changeset/136111
152084        https://bugs.webkit.org/show_bug.cgi?id=103620
152085
152086        Broke compilation on Mac (unused private field m_matchMode)
152087        (Requested by apavlov on #webkit).
152088
152089        * CMakeLists.txt:
152090        * GNUmakefile.list.am:
152091        * Target.pri:
152092        * WebCore.gypi:
152093        * WebCore.vcproj/WebCore.vcproj:
152094        * WebCore.xcodeproj/project.pbxproj:
152095        * html/HTMLSelectElement.cpp:
152096        (WebCore):
152097        (WebCore::HTMLSelectElement::HTMLSelectElement):
152098        (WebCore::stripLeadingWhiteSpace):
152099        (WebCore::HTMLSelectElement::typeAheadFind):
152100        * html/HTMLSelectElement.h:
152101        (HTMLSelectElement):
152102        * html/TypeAhead.cpp: Removed.
152103        * html/TypeAhead.h: Removed.
152104        * html/shadow/DateTimeSymbolicFieldElement.cpp:
152105        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
152106        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
152107        * html/shadow/DateTimeSymbolicFieldElement.h:
152108        (DateTimeSymbolicFieldElement):
152109
1521102012-11-29  Keishi Hattori  <keishi@webkit.org>
152111
152112        Better type ahead for DateTimeSymbolicFieldElement
152113        https://bugs.webkit.org/show_bug.cgi?id=103031
152114
152115        Reviewed by Kent Tamura.
152116
152117        This cuts out the type ahead code that will be used by HTMLSelectElement
152118        and DateTimeSymbolicFieldElement into a TypeAhead class. This will
152119        improve DateTimeSymbolicFieldElement type ahead which was first
152120        character match only, by adding cycling, prefix match and index number
152121        match.
152122
152123        Added tests to month-multiple-fields-keyboard-events.html.
152124
152125        * GNUmakefile.list.am: Added TypeAhead.{h,cpp}
152126        * Target.pri: Ditto.
152127        * WebCore.gypi: Ditto.
152128        * WebCore.vcproj/WebCore.vcproj: Ditto.
152129        * WebCore.xcodeproj/project.pbxproj: Ditto.
152130        * CMakeLists.txt: Ditto.
152131        * html/HTMLSelectElement.cpp:
152132        (WebCore):
152133        (WebCore::HTMLSelectElement::HTMLSelectElement):
152134        (WebCore::HTMLSelectElement::indexOfSelectedOption): Returns index of current selection.
152135        (WebCore::HTMLSelectElement::optionCount): Returns total number of options.
152136        (WebCore::HTMLSelectElement::optionAtIndex): Returns option at index.
152137        (WebCore::HTMLSelectElement::typeAheadFind): Use TypeAhead.
152138        * html/HTMLSelectElement.h:
152139        (HTMLSelectElement):
152140        * html/TypeAhead.cpp: Added.
152141        (WebCore):
152142        (WebCore::TypeAhead::TypeAhead):
152143        (WebCore::stripLeadingWhiteSpace): Moved from HTMLSelectElement.cpp.
152144        (WebCore::TypeAhead::handleEvent): Returns index for match.
152145        * html/TypeAhead.h: Added.
152146        (WebCore):
152147        (TypeAheadDataSource): Provide the data about the options that TypeAhead should match against.
152148        (TypeAhead):
152149        * html/shadow/DateTimeSymbolicFieldElement.cpp:
152150        (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
152151        (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
152152        (WebCore::DateTimeSymbolicFieldElement::indexOfSelectedOption):
152153        (WebCore):
152154        (WebCore::DateTimeSymbolicFieldElement::optionCount):
152155        (WebCore::DateTimeSymbolicFieldElement::optionAtIndex):
152156        * html/shadow/DateTimeSymbolicFieldElement.h:
152157        (DateTimeSymbolicFieldElement):
152158
1521592012-11-29  Andrei Bucur  <abucur@adobe.com>
152160
152161        [CSS Regions] Fix content node renderers ordering inside the named flow thread
152162        https://bugs.webkit.org/show_bug.cgi?id=103501
152163
152164        Reviewed by David Hyatt.
152165
152166        This patch fixes two issues with how content nodes renderers are added to a named flow thread.
152167        The first issue was about determining the insertion position of a renderer inside the children list of a named flow thread. Before this patch, the
152168        insertion point was based on both the DOM ordering of the elements and insertion order of previous renderers.
152169        The patch fixes this and makes the renderer position just a function of the DOM ordering of elements.
152170        The second issue appeared when next/previousRenderer methods were skipping nodes because they had the flow-into property as a side effect
152171        of copying the style of the parent element (e.g. Text nodes). The patch ensures the skipped nodes are also elements.
152172
152173        Tests: fast/regions/named-flow-content-order-1.html
152174               fast/regions/named-flow-content-order-2.html
152175               fast/regions/named-flow-content-order-3.html
152176
152177        * dom/NodeRenderingContext.cpp:
152178        (WebCore::NodeRenderingContext::nextRenderer): Skip only elements.
152179        (WebCore::NodeRenderingContext::previousRenderer): Skip only elements.
152180        * rendering/RenderNamedFlowThread.cpp:
152181        (WebCore::RenderNamedFlowThread::addFlowChild): Insert the renderer in the list based on the DOM position of the owner element.
152182        * rendering/RenderNamedFlowThread.h:
152183        (RenderNamedFlowThread):
152184        * rendering/RenderObject.cpp:
152185        (WebCore::RenderObject::renderNamedFlowThreadWrapper): Rename to eliminate the confusion with enclosingRenderFlowThread.
152186        (WebCore::RenderObject::insertedIntoTree):
152187        (WebCore::RenderObject::willBeRemovedFromTree):
152188        * rendering/RenderObject.h:
152189        (RenderObject):
152190
1521912012-11-28  Mike West  <mkwst@chromium.org>
152192
152193        Add a test to ensure that 'seamless' iframes do not inherit contenteditable.
152194        https://bugs.webkit.org/show_bug.cgi?id=95890
152195
152196        Reviewed by Ojan Vafai.
152197
152198        We don't currently support inheriting contenteditable into a seamless
152199        frame. http://html5.org/tools/web-apps-tracker?from=7318&to=7319
152200        brought the spec in line with WebKit's behavior (ha!). This patch
152201        defends the behavior by adding a test, and removes a FIXME comment
152202        now that the question is settled.
152203
152204        It also exposes a brand new bug: https://bugs.webkit.org/show_bug.cgi?id=103539
152205        How exciting.
152206
152207        Test: fast/frames/seamless/seamless-contenteditable-not-inherited.html
152208
152209        * css/StyleResolver.cpp:
152210        (WebCore::StyleResolver::styleForDocument):
152211            No functional change, just dropping a FIXME comment.
152212
1522132012-11-28  Mike West  <mkwst@chromium.org>
152214
152215        Web Inspector: Console message's anchor element should be trimmed for readability.
152216        https://bugs.webkit.org/show_bug.cgi?id=100095
152217
152218        Reviewed by Pavel Feldman.
152219
152220        We're currently trimming URLs that go through
152221        'WebInspector.linkifyURLAsNode' down to 150 characters total. Not all
152222        URLs go that path, however. We were missing a few cases that dropped
152223        back to the default Linkifier (which especially showed up for "Live"
152224        anchor elements).
152225
152226        This patch ensures that anything using WebInspector.Linkifier is also
152227        trimmed by default. It adds a new constant to do so in order to avoid
152228        magic numbers in the code.
152229
152230        Test: http/tests/inspector/network/script-as-text-loading-long-url.html
152231
152232        * inspector/front-end/Linkifier.js:
152233        (WebInspector.Linkifier):
152234            Pass the max length into the default formatter that's created and
152235            stored when creating a 'WebInspector.Linkifier' object.
152236        * inspector/front-end/ResourceUtils.js:
152237        (WebInspector.linkifyURLAsNode):
152238            Use the new maxlength constant rather than hard-coding 150.
152239
1522402012-11-28  Kentaro Hara  <haraken@chromium.org>
152241
152242        Unreviewed. Rebaselined run-bindings-tests.
152243
152244        * bindings/scripts/test/V8/V8TestNode.h:
152245        (WebCore::toV8Fast):
152246
1522472012-11-28  Shinya Kawanaka  <shinyak@chromium.org>
152248
152249        [Shadow] ShadowRoot should cache InsertionPointList.
152250        https://bugs.webkit.org/show_bug.cgi?id=103212
152251
152252        Reviewed by Hajime Morita.
152253
152254        When distributing or invalidating distribution, we used to traverse all descendent nodes in Shadow DOM.
152255        If ShadowRoot has a InsertionPoint list, we can just traverse the list.
152256
152257        No new tests, should be covered by existing tests.
152258
152259        * dom/ShadowRoot.cpp:
152260        (WebCore::ShadowRoot::insertionPointList):
152261        (WebCore):
152262        * dom/ShadowRoot.h:
152263        (ShadowRoot):
152264        * html/shadow/ContentDistributor.cpp:
152265        (WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData):
152266        (WebCore::ShadowRootContentDistributionData::invalidateInsertionPointList):
152267        (WebCore):
152268        (WebCore::ShadowRootContentDistributionData::ensureInsertionPointList): Creates InsertionPoint list
152269        if it's not created and return it.
152270        (WebCore::ContentDistributor::distribute): Traverse InsertionPointList instead of all descendent nodes in Shadow DOM.
152271        (WebCore::ContentDistributor::invalidate): ditto.
152272        * html/shadow/ContentDistributor.h:
152273        (WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren): Invalidate InsertionPointList cache.
152274        (WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren): ditto.
152275        (WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren): ditto.
152276        (WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren): ditto.
152277        (ShadowRootContentDistributionData):
152278
1522792012-11-28  Michael Pruett  <michael@68k.org>
152280
152281        IndexedDB: Remove duplicate toWireString() and createFromWire() methods in JSC SerializedScriptValue
152282        https://bugs.webkit.org/show_bug.cgi?id=103554
152283
152284        Reviewed by Kentaro Hara.
152285
152286        In r135022, duplicate createFromWire() and toWireString() methods
152287        were added to the JSC version of SerializedScriptValue. In
152288        order to allow the JSC SerializedScriptValue to compile when
152289        ENABLE(INDEXED_DATABASE) is turned on, these new methods have
152290        been removed and the old methods have been moved outside the
152291        ENABLE(INDEXED_DATABASE) guard.
152292
152293        No new tests. No change in functionality.
152294
152295        * WebCore.exp.in:
152296        * bindings/js/SerializedScriptValue.cpp:
152297        (WebCore::SerializedScriptValue::toWireString):
152298        (WebCore):
152299        (WebCore::SerializedScriptValue::createFromWire):
152300        * bindings/js/SerializedScriptValue.h:
152301
1523022012-11-28  Hajime Morrita  <morrita@google.com>
152303
152304        [Shadow DOM] Element.createShadowRoot() should be prefixed.
152305        https://bugs.webkit.org/show_bug.cgi?id=103595
152306
152307        Reviewed by Kentaro Hara.
152308
152309        No new tests, updated shadow-aware-create-shadow-root.html to follow the change.
152310
152311        * dom/Element.idl:
152312
1523132012-11-28  Hayato Ito  <hayato@chromium.org>
152314
152315        Node::compareDocumentPosition returns wrong value for a node in the different shadow tree.
152316        https://bugs.webkit.org/show_bug.cgi?id=103502
152317
152318        Reviewed by Dimitri Glazkov.
152319
152320        Make Node::compareDocumentPosition() return the correct value when two nodes are in the different shadow trees.
152321
152322        Test: fast/dom/shadow/compare-document-position.html
152323
152324        * dom/Node.cpp:
152325        (WebCore::Node::compareDocumentPosition):
152326
1523272012-11-28  Joshua Bell  <jsbell@chromium.org>
152328
152329        [Chromium] IndexedDB: Assert/crash in indexing layout tests in content_shell
152330        https://bugs.webkit.org/show_bug.cgi?id=103562
152331
152332        Reviewed by Tony Chang.
152333
152334        In multi-process ports, an commit request or setIndexesReady request may arrive from the
152335        front-end after the back-end has already aborted. Don't freak out if those occur.
152336
152337        Tests: storage/indexeddb/index-population.html
152338               storage/indexeddb/lazy-index-population.html
152339               storage/indexeddb/transaction-error.html
152340
152341        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
152342        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys): Ensure transaction hasn't finished before continuing.
152343        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady): Ditto.
152344        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
152345        (WebCore::IDBTransactionBackendImpl::commit): Ignore a commit request if already aborted.
152346
1523472012-11-28  Shinya Kawanaka  <shinyak@chromium.org>
152348
152349        [Shadow] Move Distribution requirements from ShadowRoot
152350        https://bugs.webkit.org/show_bug.cgi?id=103481
152351
152352        Reviewed by Hajime Morita.
152353
152354        We would like to shrink the ShadowRoot memory size in this patch. ShadowRoot had several distribution related members,
152355        however they were used only if ShadowRoot has <content>, <shadow>, or nested ShadowRoot.
152356        Since <input> or <textarea> do not have such requirements, the members consume a few amount of memory.
152357
152358        We remove them from ShadowRoot and introduce some RareData-like data structure for ShadowRoot.
152359        This will reduce memory footprint in most cases.
152360
152361        No new tests, refactoring.
152362
152363        * WebCore.exp.in:
152364        * dom/ShadowRoot.cpp:
152365        (SameSizeAsShadowRoot): Reduced 3 * sizeof(unsigned) bytes from ShadowRoot.
152366        (WebCore::ShadowRoot::ShadowRoot): DistributionData is created only when necessary. <input> or <textarea> won't
152367        create such data.
152368        (WebCore::ShadowRoot::assignedTo):
152369        (WebCore):
152370        (WebCore::ShadowRoot::setAssignedTo):
152371        (WebCore::ShadowRoot::ensureDistributionData):
152372        (WebCore::ShadowRoot::registerShadowElement):
152373        (WebCore::ShadowRoot::unregisterShadowElement):
152374        (WebCore::ShadowRoot::hasShadowInsertionPoint):
152375        (WebCore::ShadowRoot::registerContentElement):
152376        (WebCore::ShadowRoot::unregisterContentElement):
152377        (WebCore::ShadowRoot::hasContentElement):
152378        (WebCore::ShadowRoot::registerElementShadow):
152379        (WebCore::ShadowRoot::unregisterElementShadow):
152380        (WebCore::ShadowRoot::hasElementShadow):
152381        (WebCore::ShadowRoot::countElementShadow):
152382        (WebCore::ShadowRoot::reportMemoryUsage):
152383        * dom/ShadowRoot.h:
152384        (WebCore):
152385        (ShadowRoot):
152386        (WebCore::ShadowRoot::distributionData):
152387        * html/shadow/ContentDistributor.cpp:
152388        (WebCore::ShadowRootContentDistributionData::ShadowRootContentDistributionData):
152389        (WebCore):
152390        * html/shadow/ContentDistributor.h:
152391        (ShadowRootContentDistributionData): Distribution related fields in ShadowRoot are moved to here.
152392        (WebCore::ShadowRootContentDistributionData::insertionPointAssignedTo):
152393        (WebCore::ShadowRootContentDistributionData::setInsertionPointAssignedTo):
152394        (WebCore::ShadowRootContentDistributionData::incrementNumberOfShadowElementChildren):
152395        (WebCore::ShadowRootContentDistributionData::decrementNumberOfShadowElementChildren):
152396        (WebCore::ShadowRootContentDistributionData::numberOfShadowElementChildren):
152397        (WebCore::ShadowRootContentDistributionData::incrementNumberOfContentElementChildren):
152398        (WebCore::ShadowRootContentDistributionData::decrementNumberOfContentElementChildren):
152399        (WebCore::ShadowRootContentDistributionData::numberOfContentElementChildren):
152400        (WebCore::ShadowRootContentDistributionData::incrementNumberOfElementShadowChildren):
152401        (WebCore::ShadowRootContentDistributionData::decrementNumberOfElementShadowChildren):
152402        (WebCore::ShadowRootContentDistributionData::numberOfElementShadowChildren):
152403        (WebCore):
152404
1524052012-11-23  Dirk Schulze  <krit@webkit.org>
152406
152407        Remove -webkit-mask-attachment
152408        https://bugs.webkit.org/show_bug.cgi?id=67137
152409
152410        Reviewed by David Hyatt.
152411
152412        Remove CSS property '-webkit-attachment'. The CSS WG agreed that this should not be
152413        part of the CSS Masking specification. WebKit never implemented the behavior of
152414        attached masks either. The property was just exposed in CSSOM.
152415
152416        Test: Added negative tests to fast/masking/parsing-mask.html.
152417
152418        * css/CSSComputedStyleDeclaration.cpp:
152419        (WebCore):
152420        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
152421        * css/CSSParser.cpp:
152422        (WebCore::CSSParser::parseValue):
152423        (WebCore::CSSParser::parseFillProperty):
152424        * css/CSSProperty.cpp:
152425        (WebCore::CSSProperty::isInheritedProperty):
152426        * css/CSSPropertyNames.in:
152427        * css/StyleBuilder.cpp:
152428        (WebCore::StyleBuilder::StyleBuilder):
152429        * css/StylePropertySet.cpp:
152430        (WebCore::StylePropertySet::asText):
152431        * css/StylePropertyShorthand.cpp:
152432        (WebCore::webkitMaskShorthand):
152433        * css/StyleResolver.cpp:
152434        (WebCore::StyleResolver::applyProperty):
152435        * rendering/style/RenderStyle.h:
152436
1524372012-11-28  Michael Pruett  <michael@68k.org>
152438
152439        IndexedDB: Add forward declaration of SecurityOrigin to IDBBackingStore.h
152440        https://bugs.webkit.org/show_bug.cgi?id=103578
152441
152442        Reviewed by Kentaro Hara.
152443
152444        Add forward declaration of SecurityOrigin to IDBBackingStore.h
152445        in order to enable compilation of IndexedDB for JSC.
152446
152447        Tests: storage/indexeddb/*
152448
152449        * Modules/indexeddb/IDBBackingStore.h:
152450        (WebCore):
152451
1524522012-11-28  Hajime Morrita  <morrita@google.com>
152453
152454        checkAcceptChild() needs fewer virtual calls
152455        https://bugs.webkit.org/show_bug.cgi?id=103372
152456
152457        Reviewed by Ojan Vafai.
152458
152459        This change reorganizes checkAcceptChild family for speed.
152460
152461        - Made Node::checkAddChild and Node::checkReplaceChild() static inline functions
152462          in ContainerNode.cpp. checkAcceptChild() was also moved to the same file. This allows us
152463          more aggressive inlining.
152464
152465        - Added a fast path in checkAcceptChild(), where we can assume that the parent is element
152466          and the new child is element or text. Under this assumption, we need no extra type checks
152467          and just needs a cycle prevention through Node::contains(). This is faster than current generic version.
152468
152469        - Moved extra checks from checkAddChild() and checkReplaceChild() to
152470          checkAcceptChild(). This allows the fast path skips even these extra checks.
152471
152472        - Node::canReplaceChild() is devirtualized. Since the only override is on
152473          Document, we can check isDocumentNode() to call it directly.
152474
152475        - The default implemenation of Node::canReplaceChild() just calls isChildTypeAllowed().
152476          That is what an extra check for checkAddChild() did. So we can share these code path in checkAcceptChild().
152477
152478        This gains 2-3% win on Dromaeo dom-modify.html.
152479
152480        No new tests, covered by existing tests.
152481
152482        * dom/ContainerNode.cpp:
152483        (WebCore::isChildTypeAllowed): Moved from Node.cpp
152484        (WebCore::checkAcceptChild): Moved from Node.cpp, Added a fast path.
152485        (WebCore::checkAddChild): Moved from Node.cpp
152486        (WebCore::checkReplaceChild): Moved from Node.cpp
152487        (WebCore::ContainerNode::insertBefore): Followed the signature change.
152488        (WebCore::ContainerNode::replaceChild): Followed the signature change, moved null check from checkReplaceChild to here.
152489        (WebCore::ContainerNode::appendChild): Followed the signature change.
152490        * dom/Document.h:
152491        (Document):
152492        * dom/Node.cpp:
152493        * dom/Node.h:
152494        (WebCore::Node::isDocumentTypeNode): Added for better readability of call sites.
152495
1524962012-11-28  Kenichi Ishibashi  <bashi@chromium.org>
152497
152498        StyleResolver should not set NaN to font size
152499        https://bugs.webkit.org/show_bug.cgi?id=99506
152500
152501        Reviewed by Abhishek Arya.
152502
152503        fixedScaleFactor could be NaN since settings->defaultFixedFontSize()
152504        and settings->defaultFontSize() are zero in some case. This turns
152505        out setting NaN to font size. Add a zero checks so that
152506        fixedScaleFactor won't be NaN.
152507
152508        Test: fast/css/font-size-nan.html
152509
152510        * css/StyleResolver.cpp:
152511        (WebCore::StyleResolver::checkForGenericFamilyChange):
152512
1525132012-11-28  Tim Horton  <timothy_horton@apple.com>
152514
152515        [mac] WebHTMLConverter should maintain font size even when there is no related NSFont
152516        https://bugs.webkit.org/show_bug.cgi?id=103568
152517
152518        Reviewed by Alexey Proskuryakov.
152519
152520        WebHTMLConverter should use the default font at the correct size when it
152521        encounters a font that cannot be backed by an NSFont (e.g. a WebFont).
152522
152523        * platform/mac/HTMLConverter.mm:
152524        (+[WebHTMLConverter editingAttributedStringFromRange:]):
152525
1525262012-11-23  Dirk Schulze  <krit@webkit.org>
152527
152528        CSS parser does not support -webkit-mask-size for -webkit-mask shorthand
152529        https://bugs.webkit.org/show_bug.cgi?id=103020
152530
152531        Reviewed by David Hyatt.
152532
152533        Harmonize the syntax of '-webkit-mask' property with 'background' according to the
152534        CSS Masking specification[1]. This should make it easier to maintain both shorthand
152535        properties in the long term.
152536        It is very unlikely that a lot of content (if any) is affected by this change. The
152537        computed style still is not implemented and this change should rather make it easier
152538        for developers.
152539
152540        With the harmonization, the '-webkit-mask-size' property is part of the shorthand as
152541        well now.
152542
152543        parsing-mask.html covers all the changes. Added new tests for the changed syntax and
152544        '-webkit-mask-size'
152545
152546        [1] http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#mask-property
152547
152548        * css/CSSParser.cpp:
152549        (WebCore::CSSParser::parseValue):
152550        (WebCore::CSSParser::parseFillShorthand):
152551        * css/StylePropertySet.cpp:
152552        (WebCore::StylePropertySet::getLayeredShorthandValue):
152553        * css/StylePropertyShorthand.cpp:
152554        (WebCore::webkitMaskShorthand):
152555
1525562012-11-28  Alec Flett  <alecflett@chromium.org>
152557
152558        IndexedDB: Change frontend to call IDBDatabaseBackendInterface::createTransaction()
152559        https://bugs.webkit.org/show_bug.cgi?id=102732
152560
152561        Reviewed by Tony Chang.
152562
152563        Use the new createTransaction, now that it has been stubbed
152564        out. This is part 2 of 3 of a refactor. See
152565        https://bugs.webkit.org/show_bug.cgi?id=102733 for part 3.
152566
152567        No new tests as this refactor simply keeps and propagates a
152568        counter that is currently unused.
152569
152570        * Modules/indexeddb/IDBDatabase.cpp:
152571        (WebCore::IDBDatabase::nextTransactionId):
152572        (WebCore):
152573        (WebCore::IDBDatabase::transaction):
152574        * Modules/indexeddb/IDBDatabase.h:
152575        (IDBDatabase):
152576        * Modules/indexeddb/IDBOpenDBRequest.cpp:
152577        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
152578        * Modules/indexeddb/IDBRequest.cpp:
152579        (WebCore::IDBRequest::onSuccess):
152580        * Modules/indexeddb/IDBTransaction.cpp:
152581        (WebCore::IDBTransaction::create):
152582        (WebCore::IDBTransaction::IDBTransaction):
152583        * Modules/indexeddb/IDBTransaction.h:
152584        (IDBTransaction):
152585
1525862012-11-28  Michael Saboff  <msaboff@apple.com>
152587
152588        HTMLFontElement font size parsing should directly handle 8 bit strings
152589        https://bugs.webkit.org/show_bug.cgi?id=103315
152590
152591        Reviewed by Oliver Hunt.
152592
152593        Split parseFontSize() into a templated function based on character type and a wrapper that determines
152594        a string's bitness before calling the template.
152595
152596        No new tests. No change in functionality.
152597
152598        * html/HTMLFontElement.cpp:
152599        (WebCore::parseFontSize):
152600
1526012012-11-28  Robert Kroeger  <rjkroege@chromium.org>
152602
152603        remove unused PlatformGestureCurve code
152604        https://bugs.webkit.org/show_bug.cgi?id=103296
152605
152606        Reviewed by Adam Barth.
152607
152608        Previous CLs have made the Chromium embedder provide gesture fling
152609        curve implementation to WebKit. Consequently no platform uses the
152610        gestural fling code currently found in WebKit. This CL removes this code.
152611
152612        Code removal only: covered by existing tests.
152613
152614        * CMakeLists.txt:
152615        * GNUmakefile.list.am:
152616        * WebCore.gypi:
152617        * platform/ActivePlatformGestureAnimation.cpp: Removed.
152618        * platform/ActivePlatformGestureAnimation.h: Removed.
152619        * platform/PlatformGestureCurve.h: Removed.
152620        * platform/PlatformGestureCurveTarget.h: Removed.
152621        * platform/ScrollAnimatorNone.cpp: References to removed code removed.
152622        * platform/ScrollAnimatorNone.h:
152623        * platform/TouchFlingPlatformGestureCurve.cpp: Removed.
152624        * platform/TouchFlingPlatformGestureCurve.h: Removed.
152625        * platform/WheelFlingPlatformGestureCurve.cpp: Removed.
152626        * platform/WheelFlingPlatformGestureCurve.h: Removed.
152627        * platform/chromium/support/PlatformGestureCurveFactory.cpp: Removed.
152628        * platform/chromium/support/PlatformGestureCurveFactory.h: Removed.
152629        * platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Removed.
152630
1526312012-11-28  Abhishek Arya  <inferno@chromium.org>
152632
152633        Heap-use-after-free in WebCore::EventHandler::handleMousePressEvent
152634        https://bugs.webkit.org/show_bug.cgi?id=101098
152635
152636        Reviewed by Adam Barth.
152637
152638        |subframe| can be blown away inside passMousePressEventToSubframe
152639        call. Use RefPtr to protect it in handleMousePressEvent function.
152640        We use similar approach in handleMouseMoveEvent function.
152641
152642        No new tests. Test is extremely time dependent and needs to trigger
152643        interaction gesture. Reproduced on ClusterFuzz.
152644
152645        * page/EventHandler.cpp:
152646        (WebCore::EventHandler::handleMousePressEvent):
152647
1526482012-11-28  Tom Sepez  <tsepez@chromium.org>
152649
152650        XSSAuditor bypass with script src=data: URL ending in <!--
152651        https://bugs.webkit.org/show_bug.cgi?id=103548
152652
152653        Reviewed by Adam Barth.
152654
152655        This fixes an additional case where characters from the page itself are
152656        included with the snippet to match against the reflected vector, and the
152657        JS remains legitimate because of a <!--- comment. Truncate the snippet at
152658        such a comment.
152659        
152660        Test: http/tests/security/xssAuditor/script-tag-with-source-data-url3.html
152661
152662        * html/parser/XSSAuditor.cpp:
152663        (WebCore::XSSAuditor::decodedSnippetForAttribute):
152664
1526652012-11-28  Abhishek Arya  <inferno@chromium.org>
152666
152667        Heap-use-after-free in WebCore::RenderLayerModelObject::hasSelfPaintingL
152668ayer
152669        https://bugs.webkit.org/show_bug.cgi?id=101970
152670
152671        Reviewed by David Hyatt.
152672
152673        RenderInline::splitFlow and RenderBlock::splitFlow re-use |pre|
152674        block in some cases. In those cases, |pre| might hold floating objects
152675        and those floating descendants might get moved to |post| block. If
152676        the |pre| block does not get a layout later, then the floating
152677        descendant will never get removed since it is now part of |post|
152678        ancestor chain. We don't want failing-to-layout bugs turned into
152679        security bugs and hence clear floating objects list since we expect
152680        it to be rebuilt in subsequent layout.
152681
152682        Test: fast/block/float/float-not-removed-from-pre-block.html
152683
152684        * rendering/RenderBlock.cpp:
152685        (WebCore::RenderBlock::splitFlow): Call removeFloatingObjects on |pre| block.
152686        (WebCore::RenderBlock::removeFloatingObjects): Clear all floating objects from our list.
152687        (WebCore):
152688        * rendering/RenderBlock.h: 
152689        (RenderBlock):
152690        * rendering/RenderInline.cpp:
152691        (WebCore::RenderInline::splitFlow): Call removeFloatingObjects on |pre| block.
152692
1526932012-11-28  Mark Pilgrim  <pilgrim@chromium.org>
152694
152695        [Chromium] Remove pluginsScriptableObject from PlatformSupport
152696        https://bugs.webkit.org/show_bug.cgi?id=103542
152697
152698        Reviewed by Adam Barth.
152699
152700        Part of a refactoring series. See tracking bug 82948.
152701
152702        * bindings/v8/ScriptController.cpp:
152703        (WebCore::ScriptController::createScriptInstanceForWidget):
152704        * platform/chromium/PlatformSupport.h:
152705        (PlatformSupport):
152706        * plugins/PluginViewBase.h:
152707        (PluginViewBase):
152708        (WebCore::PluginViewBase::scriptableObject):
152709
1527102012-11-28  Otto Derek Cheung  <otcheung@rim.com>
152711
152712        [BlackBerry] CookieJarBlackBerry will use document settings for cookiesEnabled
152713        https://bugs.webkit.org/show_bug.cgi?id=103560
152714
152715        Reviewed by Rob Buis.
152716
152717        PR 253490
152718
152719        CookieJarBlackBerry will now use page settings to check whether
152720        cookie is enabled.
152721
152722        Tested setting/reading cookies on different client cookie settings using
152723        javascript and HTTP. Cookie behaviour is now back to spec.
152724
152725        * loader/blackberry/CookieJarBlackBerry.cpp:
152726        (WebCore::cookies):
152727        (WebCore::cookieRequestHeaderFieldValue):
152728
1527292012-11-28  Mark Pilgrim  <pilgrim@chromium.org>
152730
152731        [Chromium][Win] Remove ensureFontLoaded from PlatformSupport
152732        https://bugs.webkit.org/show_bug.cgi?id=97696
152733
152734        Reviewed by Adam Barth.
152735
152736        Move ensureFontLoaded() from PlatformSupport to
152737        FontPlatformDataChromiumWin. Part of a refactoring series; see
152738        tracking bug 82948.
152739
152740        * platform/chromium/PlatformSupport.h:
152741        (PlatformSupport):
152742        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
152743        (WebCore::fontContainsCharacter):
152744        * platform/graphics/chromium/FontChromiumWin.cpp:
152745        (WebCore::drawGlyphsWin):
152746        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
152747        (WebCore::FontPlatformData::scriptFontProperties):
152748        (WebCore):
152749        (WebCore::FontPlatformData::ensureFontLoaded):
152750        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
152751        (FontPlatformData):
152752        * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
152753        (WebCore::getGlyphIndices):
152754        (WebCore::fillBMPGlyphs):
152755        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
152756        (WebCore::SimpleFontData::platformInit):
152757        (WebCore::SimpleFontData::determinePitch):
152758        (WebCore::SimpleFontData::platformBoundsForGlyph):
152759        (WebCore::SimpleFontData::platformWidthForGlyph):
152760        * platform/graphics/chromium/UniscribeHelperTextRun.cpp:
152761        (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
152762        * platform/graphics/skia/SkiaFontWin.cpp:
152763        (WebCore::paintSkiaText):
152764
1527652012-11-28  peavo@outlook.com  <peavo@outlook.com>
152766
152767        [WinCairo] Crash when requesting favicon.
152768        https://bugs.webkit.org/show_bug.cgi?id=102689
152769
152770        Reviewed by Brent Fulgham.
152771
152772        * platform/graphics/BitmapImage.h: Made frameCount() method virtual, subclasses made for testing can then override it.
152773        * platform/graphics/win/ImageCairoWin.cpp:
152774        (WebCore::BitmapImage::getHBITMAPOfSize): Added NULL pointer check.
152775        (WebCore::BitmapImage::drawFrameMatchingSourceSize): Added NULL pointer check.
152776
1527772012-11-28  Tony Chang  <tony@chromium.org>
152778
152779        Move internals.settings.setPageScaleFactor to internals.setPageScaleFactor
152780        https://bugs.webkit.org/show_bug.cgi?id=103559
152781
152782        Reviewed by Jochen Eisinger.
152783
152784        This method doesn't alter the Settings object, so move it to internals.
152785
152786        No new tests, this is a refactor.
152787
152788        * testing/InternalSettings.cpp: Remove.
152789        * testing/InternalSettings.h: Remove.
152790        * testing/InternalSettings.idl: Remove.
152791        * testing/Internals.cpp:
152792        (WebCore::Internals::resetToConsistentState): Add reset code.
152793        (WebCore::Internals::setPageScaleFactor): Add method.
152794        * testing/Internals.h: Add method.
152795        * testing/Internals.idl: Add method.
152796
1527972012-11-28  Alexandru Chiculita  <achicu@adobe.com>
152798
152799        [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region
152800        https://bugs.webkit.org/show_bug.cgi?id=102826
152801
152802        Reviewed by Dave Hyatt.
152803
152804        Follow up update of a comment after the patch was landed by the commit queue in r135921.
152805
152806        * rendering/RenderObject.cpp:
152807        (WebCore::RenderObject::containerForRepaint):
152808
1528092012-11-28  Christophe Dumez  <christophe.dumez@intel.com>
152810
152811        CSS3 Multicolumn: column-span should accept value 'none' (instead of '1')
152812        https://bugs.webkit.org/show_bug.cgi?id=101462
152813
152814        Reviewed by David Hyatt.
152815
152816        According to the latest CSS3 Multi-column specification:
152817        http://www.w3.org/TR/2011/CR-css3-multicol-20110412/#column-span
152818
152819        column-span should accept values [ none | all ], instead of
152820        [ 1 | all ]. This patch updates WebKit implementation to reflect
152821        this change in the specification. The value 1 is still supported
152822        for compatibility reasons and is mapped to none.
152823
152824        No new tests, already covered by existing tests.
152825
152826        * css/CSSComputedStyleDeclaration.cpp:
152827        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
152828        * css/CSSParser.cpp:
152829        (WebCore::CSSParser::parseValue):
152830        * css/CSSPrimitiveValueMappings.h:
152831        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
152832        (WebCore::CSSPrimitiveValue::operator ColumnSpan):
152833        * rendering/style/RenderStyle.h:
152834        * rendering/style/RenderStyleConstants.h:
152835
1528362012-11-28  Anton Vayvod  <avayvod@chromium.org>
152837
152838        Text Autosizing: Clusters should use width of LCA of their text nodes
152839        https://bugs.webkit.org/show_bug.cgi?id=102562
152840
152841        Reviewed by Kenneth Rohde Christiansen.
152842
152843        Many pages set a max-width on their content. So especially for the
152844        RenderView, instead of just taking the width of |cluster| we find
152845        the lowest common ancestor of the first and last descendant text node of
152846        the cluster (i.e. the deepest wrapper block that contains all the text),
152847        and use its width instead.
152848
152849        Tests: fast/text-autosizing/cluster-with-narrow-lca-and-cluster.html
152850               fast/text-autosizing/cluster-with-narrow-lca.html
152851               fast/text-autosizing/cluster-with-wide-lca.html
152852               fast/text-autosizing/list-item-out-of-flow.html
152853               fast/text-autosizing/wide-in-narrow-overflow-scroll.html
152854
152855        * rendering/TextAutosizer.cpp:
152856        (WebCore::TextAutosizer::processCluster): use text nodes LCA instead of cluster for width calculation
152857        (WebCore::TextAutosizer::isAutosizingContainer): list items that are out of parent list element's flow are valid containers (that therefore become clusters in isAutosizingCluster)
152858        (WebCore::TextAutosizer::findDeepestBlockContainingAllText): searches for LCA of text nodes ignoring descendant clusters
152859        (WebCore::TextAutosizer::findFirstTextLeafNotInCluster): searches for the first or the last (depending on specified direction) text leaf node in-order ignoring any descendant clusters
152860        * rendering/TextAutosizer.h: new private methods declarations and an enum for tree traversal direction.
152861
1528622012-11-28  Sadrul Habib Chowdhury  <sadrul@chromium.org>
152863
152864        cleanup: Change some code to be cleaner, more readable and style conforming
152865        https://bugs.webkit.org/show_bug.cgi?id=103543
152866
152867        Reviewed by Antonio Gomes.
152868
152869        Use more appropriate function name and more meaningful variable names to make the code cleaner.
152870        This is covered by existing tests. This does not make any behavioural changes, so no new tests.
152871
152872        * page/EventHandler.cpp:
152873        (WebCore::closestScrollableNodeInDocumentIfPossible):
152874        (WebCore::EventHandler::handleWheelEvent):
152875
1528762012-11-28  Alexandru Chiculita  <achicu@adobe.com>
152877
152878        [CSS Regions] Crash when using hover and first-letter inside a flow-thread
152879        https://bugs.webkit.org/show_bug.cgi?id=102957
152880
152881        Reviewed by David Hyatt.
152882
152883        Some RenderObjects use a different path when they are destroyed. That's because they are dynamically
152884        added just before layout happens and their parent is usually not their actual owner. In those cases the parent
152885        will remove the object from the tree, but it's actually the owner that will destroy the object and all its
152886        children.
152887
152888        RenderFlowThread maintains a RenderBoxRegionInfo object for each RenderObject that is rendered inside the
152889        flow-thread. When the RenderObject is removed from the RenderFlowThread, the associated RenderBoxRegionInfo object
152890        also needs to be removed.
152891
152892        In these special cases (list-marker, first-letter), the object itself was removed from the RenderFlowThread,
152893        but its children were still left in the flow-thread. When the these special objects were later destroyed, 
152894        they will remove their own children. Removing their children means it will try to remove them from the
152895        associated RenderFlowThread. However, in this cases there would be no link back to the parent flow-thread,
152896        as the tree is now detached from the enclosing RenderFlowThread.
152897
152898        Added code that recursively removes the whole children tree from the RenderFlowThread when the root is removed.
152899
152900        Tests: fast/regions/firstletter-inside-flowthread.html
152901               fast/regions/listmarker-inside-flowthread.html
152902
152903        * rendering/RenderObject.cpp:
152904        (WebCore::RenderObject::willBeRemovedFromTree):
152905        (WebCore::RenderObject::removeFromRenderFlowThread):
152906        (WebCore):
152907        (WebCore::RenderObject::removeFromRenderFlowThreadRecursive):
152908        * rendering/RenderObject.h:
152909        (RenderObject):
152910
1529112012-11-28  Alexandru Chiculita  <achicu@adobe.com>
152912
152913        [CSS Regions] Auto-height regions will not calculate the height correctly when the content changes dynamically
152914        https://bugs.webkit.org/show_bug.cgi?id=102954
152915
152916        Reviewed by David Hyatt.
152917
152918        Whenever the flow changes, we need to reset the region computed auto-heights.
152919        However, when we reset the region heights to "auto" or "un-computed", we also need to make
152920        sure that all the region breaks are counted again, so that we split regions correctly during the new layout.
152921        I've reused the m_regionsInvalidated property to force the flow do a complete layout.
152922
152923        Test: fast/regions/autoheight-dynamic-update.html
152924
152925        * rendering/RenderFlowThread.cpp:
152926        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
152927
1529282012-11-28  Alexandru Chiculita  <achicu@adobe.com>
152929
152930        [CSS Regions] InRenderFlowThread returns false in the first setStyle
152931        https://bugs.webkit.org/show_bug.cgi?id=102839
152932
152933        Reviewed by Dave Hyatt.
152934
152935        Some render objects use the "inRenderFlowThread" during the first styleWillChange/styleDidChange.
152936        The first call to these methods comes from NodeRendererFactory::createRenderer. That happens before the RenderObject is 
152937        attached to the parent renderer, meaning that inRenderFlowThread is false. That means a RenderLayerBacking will be 
152938        created for renderers inside the RenderFlowThread, but composited layers inside the RenderFlowThread are not supported yet.
152939        https://bugs.webkit.org/show_bug.cgi?id=84900
152940
152941        Test: fast/repaint/region-painting-composited-element.html
152942
152943        * dom/NodeRenderingContext.cpp:
152944        (WebCore::NodeRendererFactory::createRenderer):
152945        Added code to propagate the inRenderFlowThread flag from the parent node before the style is set for the first time.
152946
1529472012-11-28  Dan Bernstein  <mitz@apple.com>
152948
152949        <rdar://problem/12645085> REGRESSION (r130851): With kerning enabled, a white-space: pre-wrap inline starting with tab+space has the wrong width
152950        https://bugs.webkit.org/show_bug.cgi?id=103541
152951
152952        Reviewed by Anders Carlsson.
152953
152954        Test: fast/text/tab-with-kerning.html
152955
152956        When kerning is enabled, words are measured with their trailing space, then the width of a
152957        space is subtracted. The logic to do this was incorrectly being invoked even when the
152958        trailing whitespace character was a tab or a newline.
152959
152960        * rendering/RenderBlockLineLayout.cpp:
152961        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to check only for the space
152962        character, not other space-like characters.
152963
1529642012-11-28  Nate Chapin  <japhet@chromium.org>
152965
152966        Move empty loading to DocumentLoader, simplify FrameLoader::init()
152967        https://bugs.webkit.org/show_bug.cgi?id=101512
152968
152969        Reviewed by Adam Barth.
152970
152971        No new tests, though several outputs changed because we no longer send resource
152972            load callbacks for empty loads.
152973
152974        * loader/DocumentLoader.cpp:
152975        (WebCore::DocumentLoader::DocumentLoader):
152976        (WebCore::DocumentLoader::~DocumentLoader):
152977        (WebCore::DocumentLoader::finishedLoading):
152978        (WebCore::DocumentLoader::commitData):
152979        (WebCore::DocumentLoader::clearMainResourceLoader):
152980        (WebCore::DocumentLoader::isLoadingInAPISense):
152981        (WebCore::DocumentLoader::documentURL):
152982        (WebCore::DocumentLoader::isLoadingMainResource):
152983        (WebCore::DocumentLoader::maybeLoadEmpty):
152984        (WebCore):
152985        (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
152986             loads directly here.
152987        * loader/DocumentLoader.h:
152988        (WebCore::DocumentLoader::serverRedirectSourceForHistory):
152989        (DocumentLoader):
152990        * loader/FrameLoader.cpp:
152991        (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
152992            were previously being reset in init(). Given that the FrameLoader is in
152993            an inconsistent state before init() is called anyway, there doesn't seem
152994            to be a disadvantage to just initializing them to their post-init() values.
152995        (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
152996            doing a bunch of direct calls to functions FrameLoader shouldn't know about.
152997        * loader/FrameLoaderStateMachine.cpp:
152998        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
152999        * loader/FrameLoaderStateMachine.h:
153000        * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
153001        (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
153002            load got deferred, which won't happen now. Return void and always treat
153003            as returning false.
153004        * loader/MainResourceLoader.h:
153005        (MainResourceLoader):
153006
1530072012-11-28  Antoine Quint  <graouts@apple.com>
153008
153009        Calling .removeCue() for a cue that was never added should raise a NOT_FOUND_ERR
153010        https://bugs.webkit.org/show_bug.cgi?id=103412
153011
153012        Reviewed by Eric Carlson.
153013
153014        Updating the .removeCue() implementation to match the latest spec. This means we now
153015        raise a NOT_FOUND_ERR exception when trying to remove a cue that wasn't present in the
153016        cue list instead of a INVALID_STATE_ERR exception like the spec used to mandate.
153017
153018        * html/track/TextTrack.cpp:
153019        (WebCore::TextTrack::removeCue):
153020
1530212012-11-28  Zeno Albisser  <zeno@webkit.org>
153022
153023        [Qt][Win] Enable usage of QTWEBKIT_PLUGIN_PATH.
153024        https://bugs.webkit.org/show_bug.cgi?id=103529
153025
153026        This patch enables the same behavior for Windows
153027        as it is currently implemented for all other operating
153028        systems supported by Qt.
153029        Directories listed in the environment variable
153030        QTWEBKIT_PLUGIN_PATH are being searched for additional
153031        plugins.
153032        The only difference is that directories on Windows
153033        need to be separated by a semicolon instead of a colon.
153034
153035        Reviewed by Kenneth Rohde Christiansen.
153036
153037        * plugins/win/PluginDatabaseWin.cpp:
153038        (WebCore):
153039        (WebCore::addQtWebKitPluginPath):
153040        (WebCore::PluginDatabase::defaultPluginDirectories):
153041
1530422012-11-28  Adam Barth  <abarth@webkit.org>
153043
153044        [v8] 4% regression in dom_traverse tests
153045        https://bugs.webkit.org/show_bug.cgi?id=102858
153046
153047        Unreviewed.
153048
153049        This patch is a manual rollout of
153050        http://trac.webkit.org/changeset/134729. We can't do a mechanical
153051        rollout because V8DOMWrapper::getCachedWrapper no longer exists.
153052
153053        * bindings/scripts/CodeGeneratorV8.pm:
153054        (GenerateHeader):
153055
1530562012-11-28  Denis Nomiyama  <d.nomiyama@samsung.com>
153057
153058        Removed extra definition of GLXContext.
153059        https://bugs.webkit.org/show_bug.cgi?id=103500
153060
153061        Reviewed by Martin Robinson.
153062
153063        A minor cleanup to remove a spare definition of GLXContext in GLContextGLX.h.
153064
153065        No new tests. This doesn't change any behavior.
153066
153067        * platform/graphics/glx/GLContextGLX.h:
153068
1530692012-11-28  Sadrul Habib Chowdhury  <sadrul@chromium.org>
153070
153071        Fix gesture scrolling when the target-element of scroll-begin is removed
153072        https://bugs.webkit.org/show_bug.cgi?id=103355
153073
153074        Reviewed by Antonio Gomes.
153075
153076        When a touch-scroll starts, the node under the touch-point gets latched, and
153077        subsequent scroll-update events are dispatched to that node. But if the node is
153078        removed while the gesture event is in progress (e.g. in a dynamically updated
153079        list), then the scrolling stops, although there are enough elements to still
153080        enable scrolling. So instead of latching on to the node immediately under the
153081        touch point, latch on to the scrollable node under the touch point.
153082
153083        Test: fast/events/touch/gesture/touch-gesture-scroll-remove-node.html
153084
153085        * page/EventHandler.cpp:
153086        (WebCore::getClosestScrollableNodeInDocumentIfPossible):
153087        (WebCore):
153088        (WebCore::EventHandler::handleWheelEvent):
153089
1530902012-11-28  Anton Obzhirov  <a.obzhirov@samsung.com>
153091
153092        Fix .libs/libwebkitgtk-3.0.so: undefined reference to `WebCore::validationMessageBadInputForNumberText().
153093        https://bugs.webkit.org/show_bug.cgi?id=103509
153094
153095        Reviewed by Philippe Normand.
153096
153097        GTK build fix after r136001.
153098
153099        * platform/gtk/LocalizedStringsGtk.cpp:
153100        (WebCore::validationMessageBadInputForNumberText):
153101        (WebCore):
153102
1531032012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
153104
153105        [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
153106        https://bugs.webkit.org/show_bug.cgi?id=101132
153107
153108        Reviewed by Gyuyoung Kim.
153109
153110        Add mutex locker for the ecore pipe to ensure thread-safety of
153111        RunLoop::wakeUp().
153112
153113        RunLoop::wakeUp() can be called by multiple thread. It uses
153114        ecore_pipe_write() function but the function is not thread-safe.
153115
153116        * platform/RunLoop.h:
153117        (RunLoop):
153118        * platform/efl/RunLoopEfl.cpp:
153119        (WebCore::RunLoop::wakeUp):
153120
1531212012-11-28  Ryuan Choi  <ryuan.choi@gmail.com>
153122
153123        [EFL] Refactor theme to choose whether to support foreground color of selection
153124        https://bugs.webkit.org/show_bug.cgi?id=102037
153125
153126        Reviewed by Kenneth Rohde Christiansen.
153127
153128        If foreground selection color is supported, selected text is painted to
153129        SelectionForegroundColor instead of text color. If not, text can be painted
153130        to text color.
153131
153132        However, EFL port does not have a way to disable support of foreground
153133        selection color. So this patch refactors color classes of theme from
153134        active and inactive to foreground and background in order to disable support
153135        of foreground selection color when foreground color class is not specified.
153136
153137        * platform/efl/RenderThemeEfl.cpp:
153138        (WebCore::fillColorsFromEdjeClass):
153139        Returned false without error message when colorClass is not specified.
153140        (WebCore::RenderThemeEfl::setColorFromThemeClass):
153141        (WebCore::RenderThemeEfl::loadTheme):
153142        (WebCore::RenderThemeEfl::RenderThemeEfl):
153143        (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
153144        (WebCore):
153145        * platform/efl/RenderThemeEfl.h:
153146        (RenderThemeEfl):
153147
1531482012-11-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>
153149
153150        Move childrenAffectedBy bits from RenderStyle to Element
153151        https://bugs.webkit.org/show_bug.cgi?id=101448
153152
153153        Unreviewed buildfix.
153154
153155        To use renderStyle() on some Macs we need to include NodeRenderStyle.h.
153156
153157        * dom/ContainerNode.cpp:
153158
1531592012-11-28  Allan Sandfeld Jensen  <allan.jensen@digia.com>
153160
153161        Move childrenAffectedBy bits from RenderStyle to Element
153162        https://bugs.webkit.org/show_bug.cgi?id=101448
153163        https://bugs.webkit.org/show_bug.cgi?id=98021
153164
153165        Reviewed by Antti Koivisto.
153166
153167        Moves facts observed about restyling dependencies out of RenderStyle and
153168        into RareData for Node and Element. This also enables further cleanup
153169        in related code that tried to deal with problems caused with the placement
153170        of the data.
153171
153172        Test: fast/css/nth-child-not-in-rightmost.html
153173
153174        * css/SelectorChecker.cpp:
153175        (WebCore::SelectorChecker::checkSelector):
153176        (WebCore::SelectorChecker::checkOneSelector):
153177        * css/SiblingTraversalStrategies.h:
153178        (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
153179        * css/StyleResolver.cpp:
153180        (WebCore::StyleResolver::sortAndTransferMatchedRules):
153181        (WebCore::StyleResolver::canShareStyleWithElement):
153182        (WebCore::parentElementPreventsSharing):
153183        (WebCore::StyleResolver::locateSharedStyle):
153184        * dom/ContainerNode.cpp:
153185        (WebCore::ContainerNode::setActive):
153186        (WebCore::ContainerNode::setHovered):
153187        * dom/Element.cpp:
153188        (WebCore::Element::detach):
153189        (WebCore::Element::recalcStyle):
153190        (WebCore::checkForEmptyStyleChange):
153191        (WebCore::checkForSiblingStyleChanges):
153192        (WebCore::Element::setChildrenAffectedByHover):
153193        (WebCore::Element::setChildrenAffectedByActive):
153194        (WebCore::Element::setChildrenAffectedByDrag):
153195        (WebCore::Element::setChildrenAffectedByFirstChildRules):
153196        (WebCore::Element::setChildrenAffectedByLastChildRules):
153197        (WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
153198        (WebCore::Element::setChildrenAffectedByForwardPositionalRules):
153199        (WebCore::Element::setChildrenAffectedByBackwardPositionalRules):
153200        (WebCore::Element::setChildIndex):
153201        (WebCore::Element::rareDataStyleAffectedByEmpty):
153202        (WebCore::Element::rareDataChildrenAffectedByHover):
153203        (WebCore::Element::rareDataChildrenAffectedByActive):
153204        (WebCore::Element::rareDataChildrenAffectedByDrag):
153205        (WebCore::Element::rareDataChildrenAffectedByFirstChildRules):
153206        (WebCore::Element::rareDataChildrenAffectedByLastChildRules):
153207        (WebCore::Element::rareDataChildrenAffectedByDirectAdjacentRules):
153208        (WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules):
153209        (WebCore::Element::rareDataChildrenAffectedByBackwardPositionalRules):
153210        (WebCore::Element::rareDataChildIndex):
153211        * dom/Element.h:
153212        (Element):
153213        (WebCore::Element::styleAffectedByEmpty):
153214        (WebCore::Element::childrenAffectedByHover):
153215        (WebCore::Element::childrenAffectedByActive):
153216        (WebCore::Element::childrenAffectedByDrag):
153217        (WebCore::Element::childrenAffectedByPositionalRules):
153218        (WebCore::Element::childrenAffectedByFirstChildRules):
153219        (WebCore::Element::childrenAffectedByLastChildRules):
153220        (WebCore::Element::childrenAffectedByDirectAdjacentRules):
153221        (WebCore::Element::childrenAffectedByForwardPositionalRules):
153222        (WebCore::Element::childrenAffectedByBackwardPositionalRules):
153223        (WebCore::Element::childIndex):
153224        * dom/ElementRareData.h:
153225        (ElementRareData):
153226        (WebCore::ElementRareData::resetComputedStyle):
153227        (WebCore::ElementRareData::resetDynamicRestyleObservations):
153228        * dom/Node.cpp:
153229        (WebCore::Node::diff):
153230        * dom/NodeRareData.h:
153231        (WebCore::NodeRareData::NodeRareData):
153232        (WebCore::NodeRareData::childrenAffectedByHover):
153233        (WebCore::NodeRareData::setChildrenAffectedByHover):
153234        (WebCore::NodeRareData::childrenAffectedByActive):
153235        (WebCore::NodeRareData::setChildrenAffectedByActive):
153236        (WebCore::NodeRareData::childrenAffectedByDrag):
153237        (WebCore::NodeRareData::setChildrenAffectedByDrag):
153238        (NodeRareData):
153239        (WebCore::NodeRareData::childrenAffectedByFirstChildRules):
153240        (WebCore::NodeRareData::setChildrenAffectedByFirstChildRules):
153241        (WebCore::NodeRareData::childrenAffectedByLastChildRules):
153242        (WebCore::NodeRareData::setChildrenAffectedByLastChildRules):
153243        (WebCore::NodeRareData::childrenAffectedByDirectAdjacentRules):
153244        (WebCore::NodeRareData::setChildrenAffectedByDirectAdjacentRules):
153245        (WebCore::NodeRareData::childrenAffectedByForwardPositionalRules):
153246        (WebCore::NodeRareData::setChildrenAffectedByForwardPositionalRules):
153247        (WebCore::NodeRareData::childrenAffectedByBackwardPositionalRules):
153248        (WebCore::NodeRareData::setChildrenAffectedByBackwardPositionalRules):
153249        (WebCore::NodeRareData::childIndex):
153250        (WebCore::NodeRareData::setChildIndex):
153251        * dom/NodeRenderingContext.cpp:
153252        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
153253        * page/TouchAdjustment.cpp:
153254        (WebCore::TouchAdjustment::nodeRespondsToTapGesture):
153255        * rendering/RenderObject.cpp:
153256        (WebCore::RenderObject::updateDragState):
153257        * rendering/style/RenderStyle.cpp:
153258        (WebCore::RenderStyle::copyNonInheritedFrom):
153259        * rendering/style/RenderStyle.h:
153260
1532612012-11-28  Zeno Albisser  <zeno@webkit.org>
153262
153263        GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
153264        https://bugs.webkit.org/show_bug.cgi?id=103497
153265
153266        Unreviewed buildfix.
153267
153268        Any usage of GraphicsSurface needs to be wrapped with USE(GRAPHICS_SURFACE).
153269
153270        * platform/graphics/qt/GraphicsContext3DQt.cpp:
153271        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
153272
1532732012-11-28  Zeno Albisser  <zeno@webkit.org>
153274
153275        GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
153276        https://bugs.webkit.org/show_bug.cgi?id=103497
153277
153278        This is a temporary workaround for an issue with GraphicsSurfaceMac.
153279        GraphicsSurfaceMac is currently implemented using CGL only.
153280        CGL does not allow us to properly restore the NSView a context was made current with.
153281        Therefore we have to go through QOpenGLContext to ensure the context
153282        is being restored correctly.
153283        As soon as we are updating GraphicsSurfaceMac to use NSOpenGL,
153284        we should revert this patch.
153285
153286        Reviewed by Simon Hausmann.
153287
153288        * platform/graphics/qt/GraphicsContext3DQt.cpp:
153289        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
153290
1532912012-11-28  Zeno Albisser  <zeno@webkit.org>
153292
153293        GraphicsSurface: Implement usage of GraphicsSurface for WebGL in WK1.
153294        https://bugs.webkit.org/show_bug.cgi?id=103497
153295
153296        Using GraphicsSurface for WebGL in WK1 allows us to share
153297        the code with the WK2 implementation.
153298
153299        Reviewed by Simon Hausmann.
153300
153301        * platform/graphics/qt/GraphicsContext3DQt.cpp:
153302        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
153303            Remove obsolete code.
153304        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
153305            After blitting the multisample framebuffer,
153306            we can copy the contents onto the GraphicsSurface.
153307            Right after that we can use the GraphicsSurface
153308            as a texture origin to paint to the TextureMapper.
153309            Flags related to flipping and blending are being resolved
153310            by GraphicsSurface, and do not need to be handled here anymore.
153311        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
153312            Remove a redundant makeCurrentIfNeeded call.
153313            The original context is being restored by
153314            blitMultisampleFramebufferAndRestoreContext anyway.
153315            Instead of explicitly calling swapBuffers here,
153316            we call swapBuffers on the GraphicsSurface implicitly
153317            after in GraphicsSurfacePrivate::copyFromTexture().
153318        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
153319            Add members to hold the reading end texture IDs.
153320            The texture on the reading side are in a different
153321            context than the texture on the writing side.
153322            By using GraphicsSurface in WK1 we have to distinguish
153323            between these textures, as a single instance serves
153324            for reading and writing.
153325        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
153326        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
153327        (WebCore::GraphicsSurfacePrivate::swapBuffers):
153328        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
153329            Add an implicit call to swapBuffers().
153330        (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
153331        (GraphicsSurfacePrivate):
153332        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
153333        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
153334            Add a flag to distinguish between sending and receiving/reading
153335            side of the surface. This flag is being initialized in the constructor
153336            which is the only place where we know if an instance will be used for
153337            writing or reading.
153338            The purpose of this flag is to avoid erroneously swapping the buffers
153339            on the reading side. We can no longer rely on m_xPixmap for this purpose.
153340        (WebCore::GraphicsSurfacePrivate::swapBuffers):
153341        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
153342        (WebCore::GraphicsSurfacePrivate::glxPixmap):
153343            Lazily create the GLX pixmap on demand.
153344        (GraphicsSurfacePrivate):
153345        (WebCore::GraphicsSurface::platformImport):
153346
1533472012-11-28  Roger Fong  <roger_fong@apple.com>
153348
153349        Unreviewed. Fix extra spaces in SimpleFontData::initGDIFont().
153350
153351        * platform/graphics/win/SimpleFontDataWin.cpp:
153352        (WebCore::SimpleFontData::initGDIFont):
153353
1533542012-11-28  Dan Carney  <dcarney@google.com>
153355
153356        [V8] Crash wrapping media element when MediaPlayer isn't available
153357        https://bugs.webkit.org/show_bug.cgi?id=103431
153358
153359        Reviewed by Kentaro Hara.
153360
153361        Call HTMLElement::createWrapper directly when dispatching a
153362        disabled MediaElement wrap.
153363
153364        No new tests. Testing this must apparently be manual.
153365
153366        * bindings/scripts/CodeGeneratorV8.pm:
153367        (GenerateHeader):
153368        * dom/make_names.pl:
153369        (printWrapperFunctions):
153370        (printWrapperFactoryHeaderFile):
153371
1533722012-11-28  Roger Fong  <roger_fong@apple.com>
153373
153374        Initialize identity matrix in SimpleFontData::initGDIFont() properly.
153375        https://bugs.webkit.org/show_bug.cgi?id=103499
153376        <rdar://problem/12400700>
153377
153378        Reviewed by Timothy Horton.
153379
153380        We are incorrectly initializing the matrix passed into GetGlyphOutline.
153381        This patch fixes MAT2 initialization to match the way we initialize the 
153382        identity matrix in SimpleFontData::boundsForGDIGlyph and SimpleFontData::widthForGDIGlyph.
153383
153384        * platform/graphics/win/SimpleFontDataWin.cpp:
153385        (WebCore::SimpleFontData::initGDIFont):
153386
1533872012-11-28  Huang Dongsung  <luxtella@company100.net>
153388
153389        [Texmap] REGRESSION(r135620) QtTestBrowser crashes on Google-gravity.
153390        https://bugs.webkit.org/show_bug.cgi?id=103410
153391
153392        Reviewed by Noam Rosenthal.
153393
153394        GraphicsLayerTextureMapper::updateBackingStore() should return early
153395        before TextureMapper is set.
153396
153397        GraphicsLayer::FlushCompositingState() can be called by RenderLayerBacking. It
153398        means this method can be called before creating TextureMapper. So
153399        TextureMapperLayer::flushCompositingState() checks and returns early if
153400        TextureMapper was not created.
153401
153402        However, GraphicsLayerTextureMapper::updateBackingStore() expects that TextureMapper
153403        always exists. updateBackingStore should also return early when TextureMapper
153404        was not created.
153405
153406        No new tests. Covered by existing tests.
153407
153408        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
153409        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
153410        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
153411        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
153412        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
153413
1534142012-11-28  Tommy Widenflycht  <tommyw@google.com>
153415
153416        Add basic implementation for MediaStreamAudioDestinationNode
153417        https://bugs.webkit.org/show_bug.cgi?id=101815
153418
153419        Reviewed by Chris Rogers.
153420
153421        Implements an audio destination node which has a MediaStream.
153422        This can be added to a PeerConnection with peerConnection.addStream().
153423        Please see use case (3):
153424        https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html
153425
153426        Test: webaudio/mediastreamaudiodestinationnode.html
153427
153428        * Modules/webaudio/AudioContext.cpp:
153429        (WebCore):
153430        (WebCore::AudioContext::createMediaStreamDestination):
153431        * Modules/webaudio/AudioContext.h:
153432        (WebCore):
153433        (AudioContext):
153434        * Modules/webaudio/AudioContext.idl:
153435        * Modules/webaudio/AudioNode.h:
153436        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp: Added.
153437        (WebCore):
153438        (WebCore::MediaStreamAudioDestinationNode::create):
153439        (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
153440        (WebCore::MediaStreamAudioDestinationNode::mediaStreamSource):
153441        (WebCore::MediaStreamAudioDestinationNode::~MediaStreamAudioDestinationNode):
153442        (WebCore::MediaStreamAudioDestinationNode::process):
153443        (WebCore::MediaStreamAudioDestinationNode::reset):
153444        * Modules/webaudio/MediaStreamAudioDestinationNode.h: Added.
153445        (WebCore):
153446        (MediaStreamAudioDestinationNode):
153447        (WebCore::MediaStreamAudioDestinationNode::stream):
153448        * Modules/webaudio/MediaStreamAudioDestinationNode.idl: Added.
153449        * WebCore.gypi:
153450        * platform/audio/AudioDestinationConsumer.h: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.cpp.
153451        (WebCore):
153452        (AudioDestinationConsumer):
153453        (WebCore::AudioDestinationConsumer::~AudioDestinationConsumer):
153454        * platform/chromium/support/WebMediaStreamSource.cpp:
153455        (WebKit::WebMediaStreamSource::extraData):
153456        (WebKit::WebMediaStreamSource::setExtraData):
153457        (WebKit::WebMediaStreamSource::requiresAudioConsumer):
153458        (WebKit):
153459        (ConsumerWrapper):
153460        (WebKit::ConsumerWrapper::create):
153461        (WebKit::ConsumerWrapper::consumer):
153462        (WebKit::ConsumerWrapper::ConsumerWrapper):
153463        (WebKit::ConsumerWrapper::consumeAudio):
153464        (WebKit::WebMediaStreamSource::addAudioConsumer):
153465        (WebKit::WebMediaStreamSource::removeAudioConsumer):
153466        * platform/mediastream/MediaStreamSource.cpp:
153467        (WebCore::MediaStreamSource::create):
153468        (WebCore::MediaStreamSource::MediaStreamSource):
153469        (WebCore::MediaStreamSource::addAudioConsumer):
153470        (WebCore):
153471        (WebCore::MediaStreamSource::removeAudioConsumer):
153472        (WebCore::MediaStreamSource::consumeAudio):
153473        * platform/mediastream/MediaStreamSource.h:
153474        (WebCore):
153475        (MediaStreamSource):
153476        (WebCore::MediaStreamSource::requiresAudioConsumer):
153477        (WebCore::MediaStreamSource::audioConsumers):
153478
1534792012-11-27  Mike West  <mkwst@chromium.org>
153480
153481        Improve WebSocketChannel connection failure console messages.
153482        https://bugs.webkit.org/show_bug.cgi?id=103448
153483
153484        Reviewed by Adam Barth.
153485
153486        When a WebSocket connection fails, the current implementation of
153487        WebSocketChannel::fail binds the generated console message to the
153488        document's URL, but doesn't give much indication as to the connection
153489        itself. This patch adjusts the console message to explicitly show the
153490        URL of the failed connection to give developers a better chance of
153491        debugging and resolving errors.
153492
153493        * Modules/websockets/WebSocketChannel.cpp:
153494        (WebCore::WebSocketChannel::fail):
153495            Drop the URL parameter from addConsoleMessage, in favour of adding
153496            the WebSocketHandshake's URL to the message text.
153497
1534982012-11-27  Zan Dobersek  <zandobersek@gmail.com>
153499
153500        Unreviewed functionality fix, return the height in ImageFrame::height()
153501        on non-Skia platforms.
153502
153503        * platform/image-decoders/ImageDecoder.h:
153504        (WebCore::ImageFrame::height):
153505
1535062012-11-27  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
153507
153508        Optimization in image decoding
153509        https://bugs.webkit.org/show_bug.cgi?id=88424
153510
153511        Reviewed by Brent Fulgham.
153512
153513        Optimization in image decoding.
153514        Reduce branching and multiplications in GIF image decoding loops and functions.
153515        Rebase and update of original patch by Misha Tyutyunik <michael.tyuytunik@nokia.com>
153516
153517        Covered by existing tests.
153518
153519        * platform/image-decoders/gif/GIFImageDecoder.cpp:
153520        (WebCore::GIFImageDecoder::haveDecodedRow):
153521
1535222012-11-27  Michael Saboff  <msaboff@apple.com>
153523
153524        TextIterator unnecessarily converts 8 bit strings to 16 bits
153525        https://bugs.webkit.org/show_bug.cgi?id=103295
153526
153527        Reviewed by Brent Fulgham.
153528
153529        Changed TextIterator to use the contained string instead of calling characters() on that string.
153530        Other sources of text, like emitCharacter() still use the contained UChar* buffer.
153531        Added appendTextToStringBuilder() to append the text contents of the current iterator to a string builder
153532        irrespective of the source of the text.
153533
153534        No new tests as functionality covered by existing tests.
153535
153536        * WebCore.exp.in: Updated plainText export and eliminated plainTextToMallocAllocatedBuffer export
153537        * accessibility/AccessibilityObject.cpp:
153538        (WebCore::AccessibilityObject::stringForVisiblePositionRange): Updated to use TextIterator::appendTextToStringBuilder()
153539        * editing/TextIterator.cpp:
153540        (WebCore::TextIterator::characterAt): New function to return the indexed character of the current TextIterator
153541        (WebCore::TextIterator::appendTextToStringBuilder): Added method to append whatever the current text to a StringBuilder
153542        (WebCore::TextIterator::emitText): Eliminated accessing the character data via characters().
153543        (WebCore::TextIterator::rangeFromLocationAndLength): Changed to use characterAt().
153544        (WebCore::plainText): Combined with plainTextToMallocAllocatedBuffer().
153545        * editing/TextIterator.h:
153546        (WebCore::TextIterator::startOffset): New getter.
153547        (WebCore::TextIterator::string): New getter.
153548        (WebCore::TextIterator::characters): Updated to use correct test source.
153549        * page/ContextMenuController.cpp:
153550        (WebCore::selectionContainsPossibleWord): Changed to use characterAt().
153551
1535522012-11-27  Noel Gordon  <noel.gordon@gmail.com>
153553
153554        Inline ImageFrame width() and height()
153555        https://bugs.webkit.org/show_bug.cgi?id=103401
153556
153557        Reviewed by Brent Fulgham.
153558
153559        Inline ImageFrame width() and height() to improve the performance of ImageFrame
153560        function getAddr(x,y) per https://bugs.webkit.org/show_bug.cgi?id=88424#c38
153561
153562        No new tests. Covered by many existing tests.
153563
153564        * platform/image-decoders/ImageDecoder.cpp: Remove width() and height() routines
153565        since they now inlined in the ImageFrame class definition in ImageDecoder.h.
153566        * platform/image-decoders/ImageDecoder.h: Add inline definitions of width() and
153567        height() for all ports.
153568        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
153569        (WebCore::ImageFrame::width): Remove.
153570        (WebCore::ImageFrame::height): Remove.
153571
1535722012-11-27  Michael Pruett  <michael@68k.org>
153573
153574        Remove ASSERT_NOT_REACHED() from IDBCursorBackendImpl::postSuccessHandlerCallback()
153575        https://bugs.webkit.org/show_bug.cgi?id=103461
153576
153577        Reviewed by Kentaro Hara.
153578
153579        The assertion is applicable only to the Chromium port.
153580
153581        Tests: storage/indexeddb/*
153582
153583        * Modules/indexeddb/IDBCursorBackendImpl.h:
153584        (WebCore::IDBCursorBackendImpl::postSuccessHandlerCallback):
153585
1535862012-11-27  Shinya Kawanaka  <shinyak@chromium.org>
153587
153588        [Refactoring] HasSelectorForClassStyleFunctor in Element.cpp seems verbose
153589        https://bugs.webkit.org/show_bug.cgi?id=103474
153590
153591        Reviewed by Hajime Morita.
153592
153593        The code introduced in r135174 looks verbose. We would like to make it simpler.
153594        We have removed several inline functions and unnecessary structs.
153595
153596        No new tests, simple refactoring.
153597
153598        * dom/Element.cpp:
153599        (WebCore):
153600        (WebCore::checkSelectorForClassChange):
153601        (WebCore::Element::classAttributeChanged):
153602        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
153603
1536042012-11-27  Julien Chaffraix  <jchaffraix@webkit.org>
153605
153606        Support proper <percent> / calc() resolution for grid items
153607        https://bugs.webkit.org/show_bug.cgi?id=102968
153608
153609        Reviewed by Ojan Vafai.
153610
153611        This change introduces a mechanism similar to logical height / width override
153612        but for containing block. This is required as we don't have a renderer for the
153613        grid area but any <percent> or calc() size should be resolved against the grid
153614        area size (which is sized after the grid tracks).
153615
153616        Tests: fast/css-grid-layout/calc-resolution-grid-item.html
153617               fast/css-grid-layout/percent-resolution-grid-item.html
153618               fast/css-grid-layout/percent-grid-item-in-percent-grid-track.html
153619               fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid.html
153620
153621        * rendering/RenderBox.cpp:
153622        (WebCore::RenderBox::willBeDestroyed):
153623        Remove any containing block size override.
153624
153625        (WebCore::RenderBox::overrideContainingBlockContentLogicalWidth):
153626        (WebCore::RenderBox::overrideContainingBlockContentLogicalHeight):
153627        (WebCore::RenderBox::hasOverrideContainingBlockLogicalWidth):
153628        (WebCore::RenderBox::hasOverrideContainingBlockLogicalHeight):
153629        (WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
153630        (WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
153631        (WebCore::RenderBox::clearContainingBlockOverrideSize):
153632        Containing block override size functions.
153633
153634        (WebCore::RenderBox::containingBlockLogicalWidthForContent):
153635        Updated the function to check for any override logical width.
153636
153637        (WebCore::RenderBox::containingBlockLogicalHeightForContent):
153638        New function, similar to RenderBox::containingBlockLogicalWidthForContent.
153639
153640        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
153641        (WebCore::RenderBox::computePercentageLogicalHeight):
153642        Updated these function to return overrideContainingBlockContentLogicalHeight as needed.
153643
153644        (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
153645        (WebCore::RenderBox::availableLogicalHeightUsing):
153646        Updated these functions to use the new containingBlockLogicalHeightForContent instead
153647        of availableLogicalHeight.
153648
153649        * rendering/RenderBox.h:
153650        Added the previous new functions.
153651
153652        * rendering/RenderGrid.cpp:
153653        (WebCore::RenderGrid::layoutGridItems):
153654        Updated to override the containing block size so that we properly size our grid items.
153655
1536562012-11-27  Kent Tamura  <tkent@chromium.org>
153657
153658        Fix build errors by r135955.
153659
153660        * dom/ShadowRoot.cpp: Use struct instead of class.
153661        * dom/TreeScope.cpp: Ditto.
153662
1536632012-11-27  Eugene Klyuchnikov  <eustas@chromium.com>
153664
153665        Web Inspector: [Timeline] "Show CPU activity on the ruler" settings checkbox does not take effect until Inspector restart
153666        https://bugs.webkit.org/show_bug.cgi?id=102210
153667
153668        Reviewed by Pavel Feldman.
153669
153670        The checkbox changes should take effect in the real time.
153671
153672        * inspector/front-end/SettingsScreen.js:
153673        (WebInspector.GenericSettingsTab):
153674        Do not show checkpox if browser is not capable.
153675        * inspector/front-end/TimelinePanel.js:
153676        Added setting change listener.
153677
1536782012-11-27  Andreas Kling  <akling@apple.com>
153679
153680        Compile time size assertions for TreeScope, ShadowRoot and ElementAttributeData.
153681
153682        Rubber-stamped by Anders Carlsson.
153683
153684        * dom/ShadowRoot.cpp:
153685        (SameSizeAsShadowRoot):
153686        * dom/TreeScope.cpp:
153687        (SameSizeAsTreeScope):
153688        * dom/ElementAttributeData.cpp: Derp.
153689
1536902012-11-27  James Simonsen  <simonjam@chromium.org>
153691
153692        Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
153693        https://bugs.webkit.org/show_bug.cgi?id=102151
153694
153695        Reviewed by Adam Barth.
153696
153697        There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
153698        There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
153699        the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
153700        the refactoring done with CachedResourceRequest and CachedResourceLoader.
153701
153702        No new tests. No change in functionality.
153703
153704        * WebCore.exp.in:
153705        * loader/FrameLoadRequest.h:
153706        (WebCore::FrameLoadRequest::FrameLoadRequest):
153707        (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
153708        (WebCore::FrameLoadRequest::lockHistory): Ditto.
153709        (FrameLoadRequest):
153710        (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
153711        (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
153712        (WebCore::FrameLoadRequest::substituteData): Ditto.
153713        (WebCore::FrameLoadRequest::setSubstituteData): Ditto.
153714        (WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
153715        * loader/FrameLoader.cpp:
153716        (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
153717        * loader/FrameLoader.h:
153718        (FrameLoader):
153719        * page/DragController.cpp:
153720        (WebCore::DragController::performDrag):
153721
1537222012-11-27  Jer Noble  <jer.noble@apple.com>
153723
153724        Unreviewed build fix; NSSize is not a CGSize in 32-bit.
153725
153726        * platform/mac/WebCoreFullScreenWarningView.mm:
153727
1537282012-11-27  Dean Jackson  <dino@apple.com>
153729
153730        Attempted build fix for my last commit. The private member variable
153731        is only used on MAC (at the moment) so guard it with #if PLATFORM.
153732        I did this rather than having another constructor, because I expect
153733        other platforms will follow the MAC code soon.
153734
153735        * html/shadow/MediaControlElements.cpp:
153736        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
153737        * html/shadow/MediaControlElements.h:
153738
1537392012-11-14  Jer Noble  <jer.noble@apple.com>
153740
153741        Add a new shared class WebCoreFullScreenPlaceholderView, for use in WebKit and WebKit2.
153742        https://bugs.webkit.org/show_bug.cgi?id=102300
153743
153744        Reviewed by Anders Carlsson.
153745
153746        Add a new shared class WebCoreFullScreenPlaceholderView, which presents the contents of the 
153747        WebView prior to full screen with a message informing the user how to exit from full screen mode.
153748
153749        * platform/mac/WebCoreFullScreenPlaceholderView.mm:
153750        (-[WebCoreFullScreenPlaceholderView initWithFrame:]): Create the warning view and set up the placeholder layer.
153751        (-[WebCoreFullScreenPlaceholderView setContents:]): Pass along to content view layer.
153752        (-[WebCoreFullScreenPlaceholderView contents]): Ditto.
153753        (-[WebCoreFullScreenPlaceholderView setExitWarningVisible:]): Show or hide the exit warning.
153754        (-[WebCoreFullScreenPlaceholderView mouseDown:]): Call the target with action.
153755
153756         Add a localized string entry for the "click to exit" text:
153757         * English.lproj/Localizable.strings:
153758        * platform/LocalizedStrings.cpp:
153759        (WebCore::clickToExitFullScreenText):
153760        * platform/LocalizedStrings.h:
153761        * English.lproj/Localizable.strings:
153762
153763        Add the new files to the project and exports list:
153764        * WebCore.exp.in:
153765        * WebCore.xcodeproj/project.pbxproj:
153766
1537672012-11-27  Andreas Kling  <akling@apple.com>
153768
153769        Shrink ShadowRoot and TreeScope.
153770        <http://webkit.org/b/103459>
153771
153772        Reviewed by Antti Koivisto.
153773
153774        We're creating ~1500 ShadowRoots on Apple's PLT3 content (from <input> and <textarea> elements)
153775        and a lot of this is wasted space.
153776
153777        Shrink ShadowRoot and TreeScope a bit by making TreeScope's DocumentOrderedMaps heap-allocated
153778        and packing the counters on ShadowRoot harder together with the bits.
153779
153780        202kB progression on Membuster3.
153781
153782        * dom/ShadowRoot.cpp:
153783        (WebCore::ShadowRoot::ShadowRoot):
153784        * dom/ShadowRoot.h:
153785        (WebCore::ShadowRoot::countElementShadow):
153786        (ShadowRoot):
153787        * dom/TreeScope.cpp:
153788        (WebCore::TreeScope::TreeScope):
153789        (WebCore::TreeScope::getElementById):
153790        (WebCore::TreeScope::addElementById):
153791        (WebCore::TreeScope::removeElementById):
153792        (WebCore::TreeScope::addImageMap):
153793        (WebCore::TreeScope::removeImageMap):
153794        (WebCore::TreeScope::getImageMap):
153795        (WebCore::TreeScope::addLabel):
153796        (WebCore::TreeScope::removeLabel):
153797        (WebCore::TreeScope::labelElementForId):
153798        * dom/TreeScope.h:
153799        (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
153800        (TreeScope):
153801        (WebCore::TreeScope::hasElementWithId):
153802        (WebCore::TreeScope::containsMultipleElementsWithId):
153803
1538042012-11-14  Jer Noble  <jer.noble@apple.com>
153805
153806        Add a new shared class WebCoreFullScreenWarningView which presents a styled warning message.
153807        https://bugs.webkit.org/show_bug.cgi?id=102299
153808
153809        Reviewed by Alexey Proskuryakov.
153810
153811        Add a shared implementation of a warning view for use in WebKit and WebKit2.
153812
153813        * platform/mac/WebCoreFullScreenWarningView.h: Added.
153814        * platform/mac/WebCoreFullScreenWarningView.mm: Added.
153815        (-[WebCoreFullScreenWarningView initWithTitle:]): Create the view.
153816
153817        Add the new files to the project and exports list:
153818        * WebCore.exp.in:
153819        * WebCore.xcodeproj/project.pbxproj:
153820
1538212012-11-27  Dean Jackson  <dino@apple.com>
153822
153823        Make track list control active
153824        https://bugs.webkit.org/show_bug.cgi?id=101670
153825
153826        Reviewed by Eric Carlson.
153827
153828        Hook up the event handler for the captions menu so that it enables or
153829        disables tracks in the associated HTMLMediaElement.
153830
153831        Test: media/video-controls-captions-trackmenu.html
153832
153833        * html/HTMLMediaElement.cpp:
153834        (WebCore::HTMLMediaElement::toggleTrackAtIndex): New method to toggle the state of a track, by index.
153835        * html/HTMLMediaElement.h:
153836        (HTMLMediaElement): Ditto.
153837        (WebCore::HTMLMediaElement::textTracksOffIndex): Static method to return the "Off" value.
153838        * html/shadow/MediaControlElements.cpp:
153839        (WebCore::trackListIndexForElement): Helper function to take a track list <li> element and return the value of the custom attribute.
153840        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType): Toggle the state of the button based on captions visibility.
153841        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): On Mac platforms show the captions menu. On other platforms, toggle captions.
153842        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Now has a reference to the controls.
153843        (WebCore::MediaControlClosedCaptionsTrackListElement::create):
153844        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): When the user clicks on a track list item, look
153845        for the custom attribute that identifies the associated track, and then toggle that track.
153846        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Set a class on the track list elements so they can be
153847        styled by the injected CSS (with tick marks to represent visibility).
153848        (WebCore::MediaControlClosedCaptionsTrackListElement::resetTrackListMenu): When building the list of track menu items, add
153849        a custom HTML attribute to the element so that the corresponding track can be found in the event handler.
153850        * html/shadow/MediaControlElements.h:
153851        (MediaControlClosedCaptionsTrackListElement): Add a list of elements representing the track list.
153852        * html/shadow/MediaControlsApple.cpp:
153853        (WebCore::MediaControlsApple::createControls):
153854        (WebCore::MediaControlsApple::changedClosedCaptionsVisibility): Make sure to update the track menu.
153855        (WebCore::MediaControlsApple::reset):
153856        * html/shadow/MediaControlsApple.h:
153857        (MediaControlsApple):
153858
1538592012-11-27  Joshua Bell  <jsbell@chromium.org>
153860
153861        IndexedDB: Simplify transaction timers and event tracking
153862        https://bugs.webkit.org/show_bug.cgi?id=102984
153863
153864        Reviewed by Tony Chang.
153865
153866        Now that the transaction "commit" decision is made on the front-end, the back end no-longer
153867        needs to be aware of when individual IDBRequests have dispatched to script or track pending
153868        events (except for preemptive ones like createIndex). This also lets two timers be collapsed
153869        into one which significantly simplifies the code flow in IDBTransactionBackendImpl.
153870
153871        No new tests - just simplification. Exercised by storage/indexeddb/transaction-*.html etc.
153872
153873        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
153874        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal): No more tracking.
153875        (WebCore::IDBCursorBackendImpl::prefetchReset): No more tracking.
153876        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
153877        (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal): No more tracking.
153878        (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal): No more tracking.
153879        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
153880        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal): No more tracking.
153881        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal): No more tracking.
153882        (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal): No more tracking.
153883        * Modules/indexeddb/IDBRequest.cpp:
153884        (WebCore::IDBRequest::dispatchEvent): Order must be:
153885        1. request is unregistered from transaction (so request list may be empty)
153886        2. abort transaction if event being dispatched was an error
153887        3. deactivate transaction (which may commit if #1 left it empty and #2 didn't abort)
153888        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
153889        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): Need to track if commit
153890        was requested; previously the front end would have triggered an event timer which, on
153891        completion, would be the signal that the front end was finished.
153892        (WebCore::IDBTransactionBackendImpl::scheduleTask): Schedule a timer to service the new
153893        task, if necessary.
153894        (WebCore::IDBTransactionBackendImpl::abort):
153895        (WebCore::IDBTransactionBackendImpl::hasPendingTasks):
153896        (WebCore::IDBTransactionBackendImpl::commit):
153897        (WebCore::IDBTransactionBackendImpl::taskTimerFired): Picks up "commit" responsibilities
153898        from the now deleted taskEventTimerFired, if everything is truly complete done.
153899        * Modules/indexeddb/IDBTransactionBackendImpl.h:
153900        (IDBTransactionBackendImpl):
153901        * Modules/indexeddb/IDBTransactionBackendInterface.h:
153902        (WebCore::IDBTransactionBackendInterface::didCompleteTaskEvents): Removed from interface.
153903
1539042012-11-27  Kentaro Hara  <haraken@chromium.org>
153905
153906        [V8] Replace toWebCoreString()/toWebCoreAtomicString() in CodeGeneratorV8.pm with V8StringResource
153907        https://bugs.webkit.org/show_bug.cgi?id=103391
153908
153909        Reviewed by Adam Barth.
153910
153911        This is an incremental effort for fixing bug 103331.
153912        I confirmed that this patch causes no performance regression
153913        for the micro benchmarks (https://bugs.webkit.org/attachment.cgi?id=176178).
153914
153915        No tests. No change in behavior.
153916
153917        * bindings/scripts/CodeGeneratorV8.pm:
153918        (GenerateNormalAttrSetter):
153919        (GenerateEventListenerCallback):
153920        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
153921        (WebCore::TestEventTargetV8Internal::addEventListenerCallback):
153922        (WebCore::TestEventTargetV8Internal::removeEventListenerCallback):
153923        * bindings/scripts/test/V8/V8TestObj.cpp:
153924        (WebCore::TestObjV8Internal::addEventListenerCallback):
153925        (WebCore::TestObjV8Internal::removeEventListenerCallback):
153926
1539272012-11-27  Alexandru Chiculita  <achicu@adobe.com>
153928
153929        [CSS Regions] Elements using transforms are not repainted correctly when rendered in a region
153930        https://bugs.webkit.org/show_bug.cgi?id=102826
153931
153932        Reviewed by David Hyatt.
153933
153934        When the page is composited, all the elements will have a composited repaint container. In that case we will
153935        never catch the repaints in the RenderFlowThread, but they will go directly to the RenderView. 
153936        There's a single case when the parent composited layer of an element inside the RenderFlowThread will get 
153937        its own repaints. That case only happens when the parent composited layer is also part of the same flow thread.
153938        Right now compositing is disabled for elements inside the RenderFlowThread, so that case doesn't even happen yet.
153939        That will be fixed in https://bugs.webkit.org/show_bug.cgi?id=84900.
153940
153941        Test: fast/repaint/region-painting-in-composited-view.html
153942
153943        * rendering/RenderObject.cpp:
153944        (WebCore::RenderObject::containerForRepaint):
153945
1539462012-11-27  Tony Chang  <tony@chromium.org>
153947
153948        Unreviewed, win compile fix take 2.
153949
153950        Try again to force this file to recompile.
153951
153952        * rendering/RenderingAllInOne.cpp:
153953
1539542012-11-27  Tony Chang  <tony@chromium.org>
153955
153956        Unreviewed, win compile fix.
153957
153958        Touch RenderingAllInOne.cpp to force it to rebuild.
153959
153960        * rendering/RenderingAllInOne.cpp:
153961
1539622012-11-27  Tim Horton  <timothy_horton@apple.com>
153963
153964        PDFPlugin: Scroll bars do not grow on hover
153965        https://bugs.webkit.org/show_bug.cgi?id=103382
153966        <rdar://problem/12555262>
153967
153968        Reviewed by Beth Dakin.
153969
153970        Export a few WebCore::Scrollbar methods to WebKit(2).
153971
153972        * WebCore.exp.in:
153973
1539742012-11-27  Tom Sepez  <tsepez@chromium.org>
153975
153976        Regression(r129406): Fix the scope of the WidgetHierarchyUpdateSuspensionScope in Element::Attach().
153977        https://bugs.webkit.org/show_bug.cgi?id=100803
153978
153979        Reviewed by Abhishek Arya.
153980
153981        Ensures that the suspension scope has gone out of scope before calling into
153982        resumePostAttachCallbacks().
153983        
153984        Test: fast/dom/adopt-node-crash-2.html
153985
153986        * dom/Element.cpp:
153987        (WebCore::Element::attach):
153988
1539892012-11-27  Tony Chang  <tony@chromium.org>
153990
153991        Remove hidden limiter div in the input slider shadow DOM
153992        https://bugs.webkit.org/show_bug.cgi?id=102993
153993
153994        Reviewed by Ojan Vafai.
153995
153996        The shadow DOM for input sliders would have a hidden div (the TrackLimiterElement)
153997        the size of the thumb which would limit the position of thumb since the width of
153998        the thumb takes up space in the track. This patch simplifies the shadow DOM by
153999        removing this hidden div and computing the position of the thumb taking the size of
154000        the thumb into account.
154001
154002        No new tests, covered by existing tests in fast/forms.
154003
154004        * css/mediaControlsChromium.css:
154005        (input[type="range"]::-webkit-media-slider-container > div): We were depending on the behavior of the limiter having negative margins, causing the slider div
154006        to overflow. Moving the negative margin to the slider produces the same effect.
154007        * css/mediaControlsChromiumAndroid.css:
154008        (input[type="range"]::-webkit-media-slider-container > div): Ditto.
154009        * html/RangeInputType.cpp:
154010        (WebCore::RangeInputType::createShadowSubtree): Remove limiter div.
154011        * html/shadow/SliderThumbElement.cpp:
154012        (WebCore::RenderSliderContainer::layout): Adjust the available space for the thumb and correctly position in the vertical case.
154013        (WebCore::SliderThumbElement::setPositionFromPoint): Adjust the usable track size and simplify RTL code (no need to account for the limiter).
154014        (WebCore): Delete limiter code.
154015        * html/shadow/SliderThumbElement.h:
154016        (WebCore): Delete limiter code.
154017        * rendering/RenderSlider.cpp:
154018        (WebCore::RenderSlider::layout): Delete limiter code.
154019        * rendering/RenderTheme.cpp:
154020        (WebCore::RenderTheme::paintSliderTicks): Simplify code for painting tick marks.
154021
1540222012-11-27  Alpha Lam  <hclam@chromium.org>
154023
154024        [chromium] Implement full-featured image cache
154025        https://bugs.webkit.org/show_bug.cgi?id=99784
154026
154027        Reviewed by Stephen White.
154028
154029        Implement a thread-safe image cache to be used with deferred image
154030        decoding. Image cache can now be accessed on any thread.
154031
154032        The patch implements the following logic:
154033        1. Mutex to protect all cache operations.
154034        2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize)
154035        3. Cache lookup.
154036        4. Cache insertion.
154037        5. Generation of cache entry by scaling full size image.
154038        6. Generation of cache entries by decoding and scaling.
154039
154040        Classes involved:
154041
154042        ImageDecodingStore
154043
154044        Responsible for owning cache entries and indexing. Pruning and memory
154045        management will be added later.
154046
154047        ImageFrameGenerator
154048
154049        Responsible for generating new cache enties and insert them into
154050        ImageDecodingStore.
154051
154052        LazyDecodingPixelRef
154053
154054        Responsible for cache lookup and lazy generation of cache entries
154055        using ImageFrameGenerator. There is a mutex to protect concurrent
154056        lock operations.
154057
154058        These items are not implemented in this patch:
154059        1. Cache pruning.
154060        2. Setting cache memory limit.
154061        3. Cache deletion.
154062        4. Caching incomplete images and ImageDecoder.
154063
154064        Unit tests added in ImageFrameGeneratorTest.cpp.
154065        Layout tests are under platform/chromium/virtual/fast/images.
154066
154067        * platform/graphics/chromium/DeferredImageDecoder.cpp:
154068        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
154069        (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
154070        (WebCore::DeferredImageDecoder::setEnabled):
154071        (WebCore):
154072        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
154073        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
154074        * platform/graphics/chromium/DeferredImageDecoder.h:
154075        (DeferredImageDecoder):
154076        * platform/graphics/chromium/ImageDecodingStore.cpp:
154077        (WebCore::ImageDecodingStore::instance):
154078        (WebCore::ImageDecodingStore::initializeOnce):
154079        (WebCore::ImageDecodingStore::shutdown):
154080        (WebCore::ImageDecodingStore::lockCompleteCache):
154081        Lookup complete cache entry using hash key, increment use count.
154082        (WebCore::ImageDecodingStore::lockIncompleteCache): TODO.
154083        (WebCore::ImageDecodingStore::unlockCache):
154084        Lookup cache entry using hash key, decrement use count.
154085        (WebCore):
154086        (WebCore::ImageDecodingStore::insertAndLockCache):
154087        Insert new cache entry and increment use count.
154088        (WebCore::ImageDecodingStore::prune): TODO.
154089        * platform/graphics/chromium/ImageDecodingStore.h:
154090        (WebCore):
154091        (ImageDecodingStore):
154092        (WebCore::ImageDecodingStore::CacheEntry::create):
154093        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
154094        (CacheEntry):
154095        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
154096        (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
154097        * platform/graphics/chromium/ImageFrameGenerator.cpp:
154098        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
154099        (WebCore::ImageFrameGenerator::setData):
154100        (WebCore::ImageFrameGenerator::decodeAndScale):
154101        Method for creating new cache entries. This is protected by a mutex
154102        to prevent concurrent operations. Which means only one thread can
154103        generate new cache entries for a set of encoded data.
154104        (WebCore):
154105        (WebCore::ImageFrameGenerator::tryToLockCache):
154106        Tries to lookup a cache entry.
154107        (WebCore::ImageFrameGenerator::tryToScale):
154108        Tries to lookup a full size cache entry and generate a scaled version.
154109        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
154110        Tries to decode and scale.
154111        * platform/graphics/chromium/ImageFrameGenerator.h:
154112        (WebCore):
154113        (ImageDecoderFactory):
154114        (WebCore::ImageFrameGenerator::create):
154115        (ImageFrameGenerator):
154116        (WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting):
154117        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
154118        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
154119        (WebCore::LazyDecodingPixelRef::onLockPixels):
154120        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
154121        * platform/graphics/chromium/LazyDecodingPixelRef.h:
154122        (WebCore):
154123        (LazyDecodingPixelRef):
154124        * platform/graphics/chromium/ScaledImageFragment.cpp:
154125        (WebCore::ScaledImageFragment::ScaledImageFragment):
154126        * platform/graphics/chromium/ScaledImageFragment.h:
154127        (WebCore):
154128        (WebCore::ScaledImageFragment::create):
154129        (ScaledImageFragment):
154130        (WebCore::ScaledImageFragment::scaledSize):
154131        * platform/graphics/chromium/SkSizeHash.h: Added.
154132        (WTF):
154133
1541342012-11-27  Mike West  <mkwst@chromium.org>
154135
154136        Expanding variable names in ConsoleMessage.
154137        https://bugs.webkit.org/show_bug.cgi?id=103436
154138
154139        Reviewed by Adam Barth.
154140
154141        Variable names like 'm' should be replaced with full words, like
154142        'myOhMyThisIsAnAwesomeVariable' (or something more descriptive).
154143
154144        * inspector/ConsoleMessage.cpp:
154145        (WebCore::ConsoleMessage::ConsoleMessage):
154146        * inspector/ConsoleMessage.h:
154147        (ConsoleMessage):
154148
1541492012-11-27  Aaron Colwell  <acolwell@chromium.org>
154150
154151        Use-after-free in media player handling
154152        https://bugs.webkit.org/show_bug.cgi?id=103426
154153
154154        Reviewed by Eric Carlson.
154155
154156        Fixed use-after-free bugs caused by the MediaSource not being closed before the HTMLMediaElement or the MediaPlayer
154157        is destroyed. Closing the MediaSource causes it to clear its reference to the MediaPlayer which prevents
154158        the use-after-free problems from happening.
154159
154160        Test: http/tests/media/media-source/video-media-source-closed-on-htmlmediaelement-destruction.html
154161
154162        * html/HTMLMediaElement.cpp:
154163        (WebCore::HTMLMediaElement::~HTMLMediaElement):
154164        (WebCore::HTMLMediaElement::clearMediaPlayer):
154165
1541662012-11-27  David Grogan  <dgrogan@chromium.org>
154167
154168        IndexedDB: Remove IDBDatabase.setVersion API
154169        https://bugs.webkit.org/show_bug.cgi?id=94972
154170
154171        Reviewed by Tony Chang.
154172
154173        This has been out of the spec for over a year. No other browser has
154174        implemented it for close to a year.
154175
154176        Tests - removed.html
154177
154178        * Modules/indexeddb/IDBCallbacks.h:
154179        (IDBCallbacks):
154180        * Modules/indexeddb/IDBDatabase.cpp:
154181        (WebCore::IDBDatabase::IDBDatabase):
154182        * Modules/indexeddb/IDBDatabase.h:
154183        (IDBDatabase):
154184        * Modules/indexeddb/IDBDatabase.idl:
154185        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
154186        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
154187        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
154188        (IDBDatabaseBackendImpl):
154189        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
154190        (IDBDatabaseBackendInterface):
154191        * Modules/indexeddb/IDBRequest.cpp:
154192        * Modules/indexeddb/IDBRequest.h:
154193
1541942012-11-27  Mike West  <mkwst@chromium.org>
154195
154196        Log to console when autofocus is blocked by sandbox attribute.
154197        https://bugs.webkit.org/show_bug.cgi?id=103255
154198
154199        Reviewed by Ojan Vafai.
154200
154201        Adding a short log message when autofocus is blocked by a document's
154202        sandbox flags, as it's currently a black box.
154203
154204        Test: fast/forms/autofocus-in-sandbox-without-allow-scripts.html
154205
154206        * html/HTMLFormControlElement.cpp:
154207        (WebCore::shouldAutofocus):
154208
1542092012-11-27  Dean Jackson  <dino@apple.com>
154210
154211        Attempted build fix after http://trac.webkit.org/changeset/135888.
154212
154213        * WebCore.exp.in:
154214        * WebCore.order:
154215
1542162012-11-27  Ryosuke Niwa  <rniwa@webkit.org>
154217
154218        Build fix after r135890. #else, not #elif.
154219
154220        * platform/graphics/ca/PlatformCALayer.h:
154221        (PlatformCALayer):
154222
1542232012-11-27  Ryosuke Niwa  <rniwa@webkit.org>
154224
154225        HTMLCollection on Document should be stored on NodeListsNodeData like other HTMLCollections and LiveNodeLists
154226        https://bugs.webkit.org/show_bug.cgi?id=103364
154227
154228        Reviewed by Anders Carlsson.
154229
154230        Replaced the HTMLCollection storage in Document by NodeListsNodeData used by other HTMLCollection's
154231        and LiveNodeList's. Now NodeListsNodeData is the only storage for HTMLCollection and LiveNodeList.
154232
154233        * dom/Document.cpp:
154234        (WebCore::Document::Document): Removed code for m_collection since it has been removed.
154235        (WebCore::Document::~Document): Ditto.
154236        (WebCore::Document::registerNodeList): Renamed. 
154237        (WebCore::Document::unregisterNodeList): Ditto.
154238        (WebCore::Document::ensureCachedCollection): Renamed from cachedCollection to match the convetion
154239        used elsewhere. Also use NodeListNodeData::addCacheWithAtomicName now that m_collection is gone.
154240        (WebCore::Document::images):
154241        (WebCore::Document::applets):
154242        (WebCore::Document::embeds):
154243        (WebCore::Document::plugins):
154244        (WebCore::Document::scripts):
154245        (WebCore::Document::links):
154246        (WebCore::Document::forms):
154247        (WebCore::Document::anchors):
154248        (WebCore::Document::all):
154249        (WebCore::Document::windowNamedItems): Use addCacheWithAtomicName.
154250        (WebCore::Document::documentNamedItems): Ditto.
154251        (WebCore::Document::reportMemoryUsage): Removed code for m_collection since it has been removed.
154252        * dom/Document.h:
154253        (WebCore::Document): Removed m_collections, m_documentNamedItemCollections, and
154254        m_windowNamedItemCollections.
154255        * dom/Element.cpp:
154256        (WebCore::Element::ensureCachedHTMLCollection): Merged ElementRareData::ensureCachedHTMLCollection.
154257        (WebCore::Element::cachedHTMLCollection): Merged ElementRareData::cachedHTMLCollection.
154258        * Source/WebCore/dom/ElementRareData.h: Removed ensureCachedHTMLCollection, cachedHTMLCollection,
154259        and removeCachedHTMLCollection since they're no longer used.
154260        * dom/LiveNodeList.h:
154261        (WebCore::LiveNodeListBase::LiveNodeListBase): Call registerNodeList now that LiveNodeList
154262        and HTMLCollection share the same storage in all nodes.
154263        (WebCore::LiveNodeListBase::~LiveNodeListBase): Ditto about unregisterNodeList.
154264        (WebCore::LiveNodeList): Removed the calls to registerNodeList and unregisterNodeList since they
154265        are now called in the base class.
154266        * dom/NameNodeList.h:
154267        (WebCore::NameNodeList::create):
154268        * dom/NodeRareData.h:
154269        (WebCore::NodeListsNodeData::addCacheWithAtomicName): Pass in CollectionType as the second argument
154270        to T::create. This is used in HTMLNameCollection::create. Sevearl LiveNodeList constructors and
154271        create functions have been modified to support this.
154272        (WebCore::NodeListsNodeData::adoptTreeScope):
154273        (WebCore::NodeListsNodeData::namedNodeListKey): CollectionType is no longer restricted in its range.
154274        * dom/TagNodeList.h:
154275        (WebCore::TagNodeList::create):
154276        (WebCore::HTMLTagNodeList::create):
154277        * html/CollectionType.h: Deleted a bunch of unused inline functions and constants, and cleanup enum.
154278        * html/HTMLCollection.cpp:
154279        (WebCore::HTMLCollection::HTMLCollection): Removed the call to registerNodeListCache since it's called
154280        in LiveNodeListBase now.
154281        (WebCore::HTMLCollection::~HTMLCollection): Ditto. Also replaced calls to removeCachedHTMLCollection
154282        of Element and Document by a call to NodeListsNodeData::removeCacheWithAtomicName.
154283        * html/HTMLFormControlsCollection.cpp:
154284        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
154285        (WebCore::HTMLFormControlsCollection::create):
154286        * html/HTMLFormControlsCollection.h:
154287        (HTMLFormControlsCollection):
154288        * html/HTMLNameCollection.cpp:
154289        (WebCore::HTMLNameCollection::HTMLNameCollection):
154290        (WebCore::HTMLNameCollection::~HTMLNameCollection):
154291        * html/HTMLNameCollection.h:
154292        (WebCore::HTMLNameCollection::create):
154293        (HTMLNameCollection):
154294        * html/HTMLOptionsCollection.cpp:
154295        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
154296        (WebCore::HTMLOptionsCollection::create):
154297        * html/HTMLOptionsCollection.h:
154298        (HTMLOptionsCollection):
154299        * html/HTMLTableRowsCollection.cpp:
154300        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
154301        (WebCore::HTMLTableRowsCollection::create):
154302        * html/HTMLTableRowsCollection.h:
154303        (HTMLTableRowsCollection):
154304        * html/LabelsNodeList.h:
154305        (WebCore::LabelsNodeList::create):
154306        * html/RadioNodeList.h:
154307        (WebCore::RadioNodeList::create):
154308
1543092012-11-27  Pravin D  <pravind.2k4@gmail.com>
154310
154311        max-height property not respected in case of tables
154312        https://bugs.webkit.org/show_bug.cgi?id=98633
154313
154314        Reviewed by Julien Chaffraix.
154315
154316        The max-height property determines the maximum computed height an element can have. In case of tables
154317        the computed height was not being limited by the max-height property. The current patch fixes the same.
154318
154319        Test: fast/table/css-table-max-height.html
154320
154321        * rendering/RenderTable.cpp:
154322        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
154323          Helper function to compute height from the given style height.
154324          This function handles style height of type fixed, percent and viewport percent.
154325          As height of type 'calculated' gets internally resolved to either fixed or percent
154326          there is no special handling required for the same.
154327
154328        (WebCore):
154329        (WebCore::RenderTable::layout):
154330          Logic to compute the logical height of an element such that it does not exceed the max-height value given that
154331          min-width < Content height < max-height, when min-height < max-height.
154332          However max-height value is not respected if either min-height > max-height or Content height > max-height.
154333
154334        * rendering/RenderTable.h:
154335        (RenderTable):
154336          Function definition for the newly add function convertStyleLogicalHeightToComputedHeight().
154337
1543382012-11-27  Roger Fong  <roger_fong@apple.com>
154339
154340        Windows specific implementation of usesTileCacheLayer needed after r133056.
154341        https://bugs.webkit.org/show_bug.cgi?id=103321
154342
154343        Reviewed by Simon Fraser.
154344
154345        After r133056 it no longer suffices to use the existing usesTileCacheLayer method on Windows.
154346        The change resulted in 3 crashing tests:
154347        compositing/rotated-tiled-clamped
154348        compositing/rotated-tiled-preserve3d-clamped
154349        fast/events/tabindex-focus-blur-all
154350
154351        * platform/graphics/ca/PlatformCALayer.h:
154352        (WebCore::PlatformCALayer::usesTileCacheLayer):
154353        (PlatformCALayer): 
154354        Adding in platform specific method for Windows that returns false for this method.
154355
1543562012-11-27  Christophe Dumez  <christophe.dumez@intel.com>
154357
154358        Canvas does not draw any text if the font is not fully loaded yet
154359        https://bugs.webkit.org/show_bug.cgi?id=103392
154360
154361        Reviewed by Kenneth Rohde Christiansen.
154362
154363        Update CanvasRenderingContext2D::drawTextInternal() so that the
154364        text is being drawn, even if custom fonts are still being loaded.
154365        Without this, WebKit was not drawing any text on the canvas if
154366        the needed font is custom and is not fully loaded yet. This seems
154367        broken.
154368
154369        The new behavior is according to specification:
154370        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html
154371
154372        The specification says: "If a font is used before it is fully
154373        loaded, or if the font style source object does not have that
154374        font in scope at the time the font is to be used, then it must be
154375        treated as if it was an unknown font, falling back to another as
154376        described by the relevant CSS specifications."
154377
154378        Test: http/tests/canvas/canvas-slow-font-loading.html
154379
154380        * html/canvas/CanvasRenderingContext2D.cpp:
154381        (WebCore::CanvasRenderingContext2D::drawTextInternal):
154382        * platform/graphics/Font.cpp:
154383        (WebCore::Font::drawText): Add argument to specify the behavior
154384        when custom fonts are not ready. By default, it will not draw
154385        anything (same behavior as before). However, the Canvas code
154386        can now request that a fallback font is used if the custom
154387        font is not fully loaded yet.
154388        * platform/graphics/Font.h: #undef Complex if defined to avoid
154389        conflicting with Complex value in CodePath enum. X11/X.h is
154390        defining Complex to 0.
154391        * platform/graphics/GraphicsContext.cpp:
154392        (WebCore::GraphicsContext::drawBidiText):
154393        * platform/graphics/GraphicsContext.h:
154394        (WebCore):
154395        (GraphicsContext):
154396
1543972012-11-27  Dean Jackson  <dino@apple.com>
154398
154399        No need for ExceptionCode in HTMLMediaElement::load
154400        https://bugs.webkit.org/show_bug.cgi?id=103438
154401
154402        Reviewed by Eric Carlson.
154403
154404        After https://bugs.webkit.org/show_bug.cgi?id=103318, there is no
154405        need for the ExceptionCode parameter in load(). The HTML5 spec says
154406        that all errors in loading are communicated via state.
154407        http://dev.w3.org/html5/spec/media-elements.html#dom-media-load
154408
154409        Of the 29 tests exercising load(), none of them were exercising
154410        exceptions (obviously).
154411
154412        * html/HTMLMediaElement.cpp:
154413        (WebCore::HTMLMediaElement::load):
154414        (WebCore::HTMLMediaElement::resume):
154415        * html/HTMLMediaElement.h:
154416        * html/HTMLMediaElement.idl:
154417
1544182012-11-27  Robert Hogan  <robert@webkit.org>
154419
154420        REGRESSION (r125578): word-wrapping in absolute position with nbsp, word-spacing and custom font
154421        https://bugs.webkit.org/show_bug.cgi?id=101443
154422
154423        Reviewed by David Hyatt.
154424
154425        Leading non-breaking space in a text run should always get word-spacing applied. When RenderText
154426        calculates the preferred with of a run of text it breaks it up into word segments that contain
154427        no breaking spaces and calculates the width of each. So when calculating the width of '&nbsp;b' 
154428        it needs to add word-spacing to the leading non-breaking space as it does not get collapsed away.
154429
154430        Test: fast/text/word-space-nbsp.html
154431
154432        * platform/graphics/WidthIterator.cpp:
154433        (WebCore::WidthIterator::advanceInternal):
154434
1544352012-11-27  Yong Li  <yoli@rim.com>
154436
154437        [BlackBerry] EventLoop should end when WebKit thread is exiting
154438        https://bugs.webkit.org/show_bug.cgi?id=103301
154439
154440        Reviewed by Rob Buis.
154441        RIM PR# 194379.
154442        Internally reviewed by Joe Mason.
154443
154444        Break the nested event loop when WebKit thread has been asked to quit.
154445
154446        * platform/blackberry/EventLoopBlackBerry.cpp:
154447        (WebCore::EventLoop::cycle):
154448
1544492012-11-27  Pratik Solanki  <psolanki@apple.com>
154450
154451        objc/objc-runtime.h does not exist on all PLATFORM(MAC)
154452        https://bugs.webkit.org/show_bug.cgi?id=101780
154453
154454        Reviewed by Brent Fulgham.
154455
154456        Clean up header includes so we don't include objc/objc-runtime.h.
154457
154458        No new tests because no functional changes.
154459
154460        * bridge/objc/objc_header.h:
154461        * page/mac/EventHandlerMac.mm:
154462        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
154463        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
154464        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
154465        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
154466        * platform/graphics/mac/WebLayer.mm:
154467        * platform/mac/WebCoreObjCExtras.mm:
154468        * platform/mac/WebVideoFullscreenController.mm:
154469
1544702012-11-27  Eberhard Graether  <egraether@google.com>
154471
154472        Plumbing showPaintRects out of InspectorPageAgent to use a different drawing implementation if available.
154473        https://bugs.webkit.org/show_bug.cgi?id=102452
154474
154475        Reviewed by Pavel Feldman.
154476
154477        This change makes the showPaintRects setting in the Web Inspector's settings notify InspectorClient
154478        when changed. And the default paint rects drawing is not used if an alternative is available.
154479        This allows Chromium to draw the paint rects in the compositor's HUDLayer.
154480
154481        No new tests.
154482
154483        * inspector/InspectorClient.h:
154484        (WebCore::InspectorClient::overridesShowPaintRects):
154485        (WebCore::InspectorClient::setShowPaintRects):
154486        (InspectorClient):
154487        * inspector/InspectorPageAgent.cpp:
154488        (PageAgentState):
154489        (WebCore::InspectorPageAgent::restore):
154490        (WebCore::InspectorPageAgent::disable):
154491        (WebCore::InspectorPageAgent::setShowPaintRects):
154492        (WebCore::InspectorPageAgent::didPaint):
154493
1544942012-11-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
154495
154496        Unreviewed cleanup.
154497
154498        Remove leftover file that was replaced by PlatformScreenQt.cpp 4 years ago.
154499
154500        * platform/qt/ScreenQt.cpp: Removed.
154501
1545022012-11-27  Istiaque Ahmed  <lazyboy@chromium.org>
154503
154504        freeV8NPObject: Skip trying to remove object from per context data's ObjectMap if the object does not exist in the map.
154505        https://bugs.webkit.org/show_bug.cgi?id=103356
154506
154507        Reviewed by Adam Barth.
154508
154509        Before introducing per context data, it used to be the case that we would ignore removing v8 object
154510        from context data's map if we couldn't find it. With perContextData change, this turned into an ASSERT
154511        instead and we had crash reports.
154512        Related crbug.com/154462.
154513
154514        Test: platform/chromium/plugins/release-frame-content-window.html
154515
154516        * bindings/v8/NPV8Object.cpp:
154517        (WebCore::freeV8NPObject):
154518
1545192012-11-27  Marja Hölttä  <marja@chromium.org>
154520
154521        Add callbacks to the FrameLoaderClient when a resource is requested
154522        https://bugs.webkit.org/show_bug.cgi?id=92761
154523
154524        Reviewed by Adam Barth.
154525
154526        In Chromium, when an extension script cancels a network
154527        request (which happens out of process), we'd like to
154528        notify content scripts running on the current page about
154529        which elements failed to load because the requests were
154530        cancelled (as opposed to e.g. the network request just
154531        didn't work). Since the resource request itself does not
154532        carry any information what DOM element is was made for,
154533        currently a content script has to search the DOM tree and
154534        guess which requests will be cancelled by its counter
154535        part. By adding these callbacks, the embedder can make
154536        this connection explictly.
154537
154538        Test: platform/chromium/fast/loader/resource-request-callbacks.html
154539
154540        * loader/FrameLoaderClient.h:
154541        (WebCore):
154542        (WebCore::FrameLoaderClient::dispatchWillRequestResource):
154543        (FrameLoaderClient):
154544        * loader/cache/CachedResourceLoader.cpp:
154545        (WebCore::CachedResourceLoader::requestResource):
154546
1545472012-11-27  Dean Jackson  <dino@apple.com>
154548
154549        Unreviewed build fix for r135866.
154550
154551        * html/HTMLMediaElement.cpp:
154552        (WebCore::HTMLMediaElement::load):
154553
1545542012-11-27  Leo Yang  <leoyang@rim.com>
154555
154556        [BlackBerry] Adapt to the change of BlackBerry::Platform::FilterStream::notifyHeadersReceived
154557        https://bugs.webkit.org/show_bug.cgi?id=103425
154558
154559        Reviewed by Yong Li.
154560
154561        A const has been added for HeaderList parameter of BlackBerry::Platform::FilterStream::notifyHeadersReceived.
154562        The patch is adapting to this change.
154563
154564        No functionalities changed no new tests.
154565
154566        * platform/network/blackberry/NetworkJob.cpp:
154567        (WebCore::NetworkJob::notifyHeadersReceived):
154568        * platform/network/blackberry/NetworkJob.h:
154569        (NetworkJob):
154570        * platform/network/blackberry/rss/RSSFilterStream.cpp:
154571        (WebCore::RSSFilterStream::notifyHeadersReceived):
154572        * platform/network/blackberry/rss/RSSFilterStream.h:
154573
1545742012-11-27  Min Qin  <qinmin@chromium.org>
154575
154576        Don't throw an exception if user gesture is required for load
154577        https://bugs.webkit.org/show_bug.cgi?id=103318
154578
154579        Reviewed by Eric Carlson.
154580
154581        There is no need to throw an exception if media load requires user gesture.
154582        Since chrome does not render the poster and media control after an exception is thrown, throwing an exception may break a lot of sites on android.
154583        Change a current test to match the new behavior: media/video-load-require-user-gesture.html
154584
154585        * html/HTMLMediaElement.cpp:
154586        (WebCore::HTMLMediaElement::load):
154587
1545882012-11-27  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
154589
154590        [GStreamer] Verify if GStreamer was previously initialized
154591        https://bugs.webkit.org/show_bug.cgi?id=103151
154592
154593        Reviewed by Philippe Normand.
154594
154595        This patch calls gst_is_initialized() before calling gst_init_check()
154596        in order to verify if GStreamer has not been initialized before.
154597
154598        This is useful particularly for WebKit1 so the applications could
154599        initialize GStreamer before.
154600
154601        As the API call was added in GStreamer v0.10.31, the patch fences the
154602        call only in that version of GStreamer or above.
154603
154604        No new tests, existing media tests cover this change.
154605
154606        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
154607        (WebCore::initializeGStreamer):
154608
1546092012-11-27  Kentaro Hara  <haraken@chromium.org>
154610
154611        [V8] Remove V8StringResource::m_string
154612        https://bugs.webkit.org/show_bug.cgi?id=103367
154613
154614        Reviewed by Adam Barth.
154615
154616        This patch cleans up V8StringResource and removes V8StringResource::m_string.
154617        This patch won't change performance. (This patch just adds one redundant IsString()
154618        check and one IsInt32() check.) I confirmed no performance regression in micro benchmarks
154619        (https://bugs.webkit.org/attachment.cgi?id=176178).
154620
154621        No tests. No change in behavior.
154622
154623        * bindings/v8/V8Binding.cpp:
154624        (WebCore::v8NonStringValueToWebCoreString):
154625        * bindings/v8/V8StringResource.cpp:
154626        (WebCore::int32ToWebCoreStringFast):
154627        (WebCore::String):
154628        (WebCore::AtomicString):
154629        (WebCore):
154630        * bindings/v8/V8StringResource.h:
154631        (WebCore::V8StringResource::V8StringResource):
154632        (WebCore::V8StringResource::prepareBase):
154633        (WebCore::V8StringResource::toString):
154634        (V8StringResource):
154635        (WebCore::::prepare):
154636
1546372012-11-27  Alec Flett  <alecflett@chromium.org>
154638
154639        IndexedDB: stub out IDBDatabaseBackendInterface::createTransaction
154640        https://bugs.webkit.org/show_bug.cgi?id=102730
154641
154642        Reviewed by Darin Fisher.
154643
154644        Stub out and support passing a 64-bit transaction id
154645        so the frontend can refer to transactions by id rather than
154646        a proxy object or a direct pointer reference. This will ultimately
154647        loosen ownership and lifetime of transactions from the frontend
154648        and backend.
154649
154650        No new tests, this is just part of a refactor.
154651
154652        * Modules/indexeddb/IDBDatabase.cpp:
154653        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
154654        (WebCore):
154655        (WebCore::IDBDatabaseBackendImpl::transaction):
154656        (WebCore::IDBDatabaseBackendImpl::createTransaction):
154657        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
154658        (IDBDatabaseBackendImpl):
154659        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
154660        (IDBDatabaseBackendInterface):
154661        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
154662        (WebCore::IDBTransactionBackendImpl::create):
154663        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
154664        * Modules/indexeddb/IDBTransactionBackendImpl.h:
154665        (IDBTransactionBackendImpl):
154666        (WebCore::IDBTransactionBackendImpl::id):
154667
1546682012-11-27  Andrei Bucur  <abucur@adobe.com>
154669
154670        [CSS Regions] Crash when dispatching regionlayoutupdate
154671        https://bugs.webkit.org/show_bug.cgi?id=102944
154672
154673        Reviewed by Andreas Kling.
154674
154675        The event dispatch function was incorrectly assuming the RenderNamedFlowThread is valid. Because the event is asynchronous it's
154676        possible for the flow to be in the "NULL" state (the renderer is 0) while the regionlayoutupdate event is dispatched.
154677
154678        Test: fast/regions/webkit-named-flow-event-crash.html
154679
154680        * dom/WebKitNamedFlow.cpp:
154681        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Remove the ASSERT and don't dispatch the event if the flow is
154682            in the "NULL" state.
154683
1546842012-11-27  Mihnea Ovidenie  <mihnea@adobe.com>
154685
154686        [CSS Regions] Absolutely positioned regions do not expand to fill their container
154687        https://bugs.webkit.org/show_bug.cgi?id=102385
154688
154689        Reviewed by Julien Chaffraix.
154690
154691        In the case of an absolutely positioned region with height auto, height computation should follow
154692        the path of block elements instead of replaced elements.
154693
154694        Tests: fast/regions/autosize-abspos-anchoredregion-vertlr.html
154695               fast/regions/autosize-abspos-anchoredregion.html
154696
154697        * rendering/RenderBox.cpp:
154698        (WebCore::RenderBox::computePositionedLogicalHeight): Skip replaced element height computation when a region has height auto.
154699        * rendering/RenderRegion.h:
154700        (WebCore::RenderRegion::shouldHaveAutoLogicalHeight): Make it private since it is not accessed from outside.
154701
1547022012-11-27  Alexander Pavlov  <apavlov@chromium.org>
154703
154704        Incorrect value of CSSStyleDeclaration#length when a shorthand property is inherit or initial
154705        https://bugs.webkit.org/show_bug.cgi?id=73002
154706
154707        Reviewed by Alexis Menard.
154708
154709        Before the patch, "inherit" and "initial" shorthands would get added to the StylePropertySet as-is, their longhands unspecified.
154710        This patch tackles two aspects of the problem:
154711        - When parsing "initial" and "inherit" shorthands, their longhands are added to the property set with the corresponding values.
154712        - When querying "initial" and "inherit" shorthands, their values are reconstructed from the longhands as usual, but if all of the longhands
154713          are found to have the same explicit "initial" or "inherit" value, the respective single value is returned as the shorthand value.
154714
154715        When reconstructing shorthands, a "common value" is tracked. If all longhands involved have the same explicit value, it becomes the
154716        "common value", otherwise it is a String(). The "inherit" or "initial" common value ultimately becomes the shorthand value
154717        (except for the "background-position" shorthand, which is a special case).
154718
154719        * css/CSSParser.cpp:
154720        (WebCore::parseKeywordValue): Parse shorthands' "initial" and "inherit" values using the CSSParser.
154721        (WebCore::CSSParser::addExpandedPropertyForValue): Add simple property or all sharthand's longhands with given value and priority.
154722        (WebCore::CSSParser::parseValue): For "initial" and "inherit" shorthands, add their longhands with the respective value, not the shorthands proper.
154723        * css/CSSParser.h: Add addExpandedPropertyForValue().
154724        * css/StylePropertySet.cpp:
154725        (WebCore::isInitialOrInherit): Check if the value is "initial" or "inherit".
154726        (WebCore):
154727        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit): Modified to track the common value for the "font" shorthand.
154728        (WebCore::StylePropertySet::fontValue): Ditto.
154729        (WebCore::StylePropertySet::get4Values): Return "inherit" or "initial" if all 4 values are explicitly "inherit" or "initial".
154730        (WebCore::StylePropertySet::getLayeredShorthandValue): Use the common value approach for layered shorthands.
154731        (WebCore::StylePropertySet::getShorthandValue): Ditto for ordinary shorthands.
154732        (WebCore::StylePropertySet::borderPropertyValue): Ditto for the "border" shorthand.
154733        * css/StylePropertySet.h: Modify the appendFontLonghandValueIfExplicit() signature.
154734        * html/canvas/CanvasRenderingContext2D.cpp:
154735        (WebCore::CanvasRenderingContext2D::setFont): Now that "inherit" and "initial" shorthands are represented by their longhands,
154736        we need to check the string value of the "font" shorthand for being "inherit" or "initial" instead: getPropertyCSSValue() no longer works,
154737        since the shorthand itself is no longer added to the StylePropertySet.
154738
1547392012-11-27  Kentaro Hara  <haraken@chromium.org>
154740
154741        Unreviewed. Renamed TRYCATCH => V8TRYCATCH.
154742        (I forgot to apply reviewer's comment in bug 103352 when landing r135817.)
154743
154744        * bindings/scripts/CodeGeneratorV8.pm:
154745        (GenerateParametersCheck):
154746        (GenerateEventConstructorCallback):
154747        (ConvertToV8StringResource):
154748        * bindings/scripts/test/V8/V8Float64Array.cpp:
154749        (WebCore::Float64ArrayV8Internal::fooCallback):
154750        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
154751        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
154752        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
154753        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
154754        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
154755        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
154756        (WebCore::V8TestEventConstructor::constructorCallback):
154757        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
154758        (WebCore::TestEventTargetV8Internal::itemCallback):
154759        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
154760        * bindings/scripts/test/V8/V8TestInterface.cpp:
154761        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
154762        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
154763        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
154764        (WebCore::V8TestInterface::constructorCallback):
154765        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
154766        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
154767        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
154768        (WebCore::V8TestNamedConstructorConstructorCallback):
154769        * bindings/scripts/test/V8/V8TestObj.cpp:
154770        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
154771        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
154772        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
154773        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
154774        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
154775        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
154776        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
154777        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
154778        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
154779        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
154780        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
154781        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
154782        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
154783        (WebCore::TestObjV8Internal::idbKeyCallback):
154784        (WebCore::TestObjV8Internal::optionsObjectCallback):
154785        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
154786        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
154787        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
154788        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
154789        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
154790        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
154791        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
154792        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
154793        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
154794        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
154795        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
154796        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
154797        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
154798        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
154799        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
154800        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
154801        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
154802        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
154803        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
154804        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
154805        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
154806        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
154807        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
154808        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
154809        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
154810        (WebCore::TestObjV8Internal::convert1Callback):
154811        (WebCore::TestObjV8Internal::convert2Callback):
154812        (WebCore::TestObjV8Internal::convert4Callback):
154813        (WebCore::TestObjV8Internal::convert5Callback):
154814        (WebCore::TestObjV8Internal::strictFunctionCallback):
154815        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
154816        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
154817        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
154818        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
154819        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
154820        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
154821        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
154822        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
154823        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
154824        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
154825        * bindings/v8/V8Binding.h:
154826        (WebCore::toV8Sequence):
154827        * bindings/v8/V8BindingMacros.h:
154828        * bindings/v8/custom/V8BlobCustom.cpp:
154829        (WebCore::V8Blob::constructorCallbackCustom):
154830        * bindings/v8/custom/V8ConsoleCustom.cpp:
154831        (WebCore::V8Console::profileCallback):
154832        (WebCore::V8Console::profileEndCallback):
154833        * bindings/v8/custom/V8DOMWindowCustom.cpp:
154834        (WebCore::handlePostMessageCallback):
154835        * bindings/v8/custom/V8DataViewCustom.cpp:
154836        (WebCore::V8DataView::getInt8Callback):
154837        (WebCore::V8DataView::getUint8Callback):
154838        (WebCore::V8DataView::setInt8Callback):
154839        (WebCore::V8DataView::setUint8Callback):
154840        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
154841        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
154842        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
154843        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
154844        * bindings/v8/custom/V8DocumentCustom.cpp:
154845        (WebCore::V8Document::evaluateCallback):
154846        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
154847        (WebCore::V8HTMLOptionsCollection::addCallback):
154848        * bindings/v8/custom/V8HistoryCustom.cpp:
154849        (WebCore::V8History::pushStateCallback):
154850        (WebCore::V8History::replaceStateCallback):
154851        * bindings/v8/custom/V8IntentCustom.cpp:
154852        (WebCore::V8Intent::constructorCallbackCustom):
154853        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
154854        (WebCore::V8SQLTransaction::executeSqlCallback):
154855        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
154856        (WebCore::V8SQLTransactionSync::executeSqlCallback):
154857        * bindings/v8/custom/V8SVGLengthCustom.cpp:
154858        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
154859        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
154860        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
154861        * bindings/v8/custom/V8WorkerContextCustom.cpp:
154862        (WebCore::V8WorkerContext::importScriptsCallback):
154863
1548642012-11-27  Dan Carney  <dcarney@google.com>
154865
154866        [V8] add contextForWorld helper function to ScriptController
154867        https://bugs.webkit.org/show_bug.cgi?id=103376
154868
154869        Reviewed by Kentaro Hara.
154870
154871        Reducing some commonly occuring code with an inline function.
154872
154873        No new tests. No change in functionality.
154874
154875        * bindings/v8/ScriptController.cpp:
154876        (WebCore::ScriptController::contextForWorld):
154877        (WebCore):
154878        (WebCore::ScriptController::currentWorldContext):
154879        (WebCore::ScriptController::mainWorldContext):
154880        * bindings/v8/ScriptController.h:
154881        (ScriptController):
154882
1548832012-11-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
154884
154885        [Qt] Implement the mimetype icon methods
154886        https://bugs.webkit.org/show_bug.cgi?id=103260
154887
154888        Reviewed by Simon Hausmann.
154889
154890        * platform/graphics/Icon.h:
154891        (Icon):
154892        * platform/graphics/qt/IconQt.cpp:
154893        (WebCore::Icon::createIconForFiles):
154894        (WebCore::Icon::paint):
154895
1548962012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
154897
154898        Incorrect rect-based hit-test result when hit-test region includes culled inlines
154899        https://bugs.webkit.org/show_bug.cgi?id=88376
154900
154901        Reviewed by Dave Hyatt.
154902
154903        Move the handling of culled inlines from HitTestResult::addNodeToRectBasedTestResult to 
154904        InlineFlowBox::nodeAtPoint. This makes it possible to fix a number of bugs with how
154905        culled inlines were handled. They are now checked after all their children, and may
154906        terminate area-based hit-testing if they contain the whole area.
154907
154908        Tests: fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html
154909               fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html
154910
154911        * rendering/HitTestResult.cpp:
154912        (WebCore::HitTestLocation::HitTestLocation):
154913        (WebCore::HitTestResult::addNodeToRectBasedTestResult):
154914        * rendering/HitTestResult.h:
154915        (HitTestLocation):
154916        * rendering/InlineFlowBox.cpp:
154917        (WebCore::InlineFlowBox::nodeAtPoint):
154918        * rendering/RenderInline.cpp:
154919        (WebCore::RenderInline::hitTestCulledInline):
154920        * rendering/RenderInline.h:
154921        (RenderInline):
154922
1549232012-11-27  Kenneth Rohde Christiansen  <kenneth@webkit.org>
154924
154925        REGRESSION(134887) [Qt][EFL][WK2] Repaint counter not working
154926        https://bugs.webkit.org/show_bug.cgi?id=103261
154927
154928        Reviewed by Noam Rosenthal.
154929
154930        Fixed regression introduced in 134887, which introduced the
154931        updateContentsNoSwizzle method and called it directly from
154932        the repaint counter.
154933
154934        This method obviously needs to bind the texture.
154935
154936        * platform/graphics/texmap/TextureMapperGL.cpp:
154937        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
154938
1549392012-11-27  Sheriff Bot  <webkit.review.bot@gmail.com>
154940
154941        Unreviewed, rolling out r135786.
154942        http://trac.webkit.org/changeset/135786
154943        https://bugs.webkit.org/show_bug.cgi?id=103379
154944
154945        It made 3 plugin tests timeout on several platforms (Requested
154946        by Ossy on #webkit).
154947
154948        * CMakeLists.txt:
154949        * GNUmakefile.list.am:
154950        * Target.pri:
154951        * WebCore.exp.in:
154952        * WebCore.gypi:
154953        * WebCore.vcproj/WebCore.vcproj:
154954        * WebCore.xcodeproj/project.pbxproj:
154955        * loader/FrameLoadRequest.cpp: Removed.
154956        * loader/FrameLoadRequest.h:
154957        (WebCore::FrameLoadRequest::FrameLoadRequest):
154958        (FrameLoadRequest):
154959        * loader/FrameLoader.cpp:
154960        (WebCore::FrameLoader::load):
154961        * loader/FrameLoader.h:
154962        (FrameLoader):
154963        * page/DragController.cpp:
154964        (WebCore::DragController::performDrag):
154965        * plugins/PluginView.cpp:
154966        (WebCore::PluginView::performRequest):
154967
1549682012-11-27  Kent Tamura  <tkent@chromium.org>
154969
154970        Implement ValidityState::badInput
154971        https://bugs.webkit.org/show_bug.cgi?id=102861
154972
154973        Reviewed by Hajime Morita.
154974
154975        Add ValidityState::badInput, add hasBadInput, which always returns
154976        false, to FormAssociatedElement, HTMLInputElement, and InputType.
154977
154978        For NumberInputType, we had hasUnacceptableValue, which was a hack to
154979        make an input element match to :invalid if the element had non-number
154980        strings. We don't need the hack any more because badInput affects :invalid
154981        style. hasUnacceptableValue is re-used for hasBadInput implementation.
154982        We cleared invalid numbers when elements lost focus to tell users that
154983        the element had invalid numbers. We don't need this behavior because the
154984        interactive validation tells it.
154985
154986        For date/time input types, we should make an input badInput when the
154987        input has empty value but its sub-fields have values. It covers both of
154988        partial input cases such as 12/--/2012 and invalid dates such as
154989        02/31/2012.
154990
154991        For other types, ValidityState::badInput always returns false.
154992
154993        This patch doesn't contain tests for badInput validation messages. They
154994        will be added later.
154995
154996        Tests: fast/forms/date-multiple-fields/date-multiple-fields-validity-badinput.html
154997               fast/forms/datetime-multiple-fields/datetime-multiple-fields-validity-badinput.html
154998               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-validity-badinput.html
154999               fast/forms/month-multiple-fields/month-multiple-fields-validity-badinput.html
155000               fast/forms/number/number-validity-badinput.html
155001               fast/forms/time-multiple-fields/time-multiple-fields-validity-badinput.html
155002               fast/forms/week-multiple-fields/week-multiple-fields-validity-badinput.html
155003
155004        * html/ValidityState.idl: Add badInput IDL attribute.
155005        * html/ValidityState.h:
155006        (ValidityState): Add badInput.
155007        * html/ValidityState.cpp:
155008        (WebCore::ValidityState::badInput):
155009        Added. Calls FormAssociatedElement::hasBadInput.
155010
155011        * html/FormAssociatedElement.h:
155012        (FormAssociatedElement): Add hasBadInput.
155013        * html/FormAssociatedElement.cpp:
155014        (WebCore::FormAssociatedElement::hasBadInput):
155015        Added. It always returns false.
155016        (WebCore::FormAssociatedElement::valid): Takes account of hasBadInput().
155017
155018        * html/HTMLInputElement.h:
155019        (HTMLInputElement):
155020        Remove hasUnacceptableValue, and add hasBadInput override.
155021        * html/HTMLInputElement.cpp:
155022        (WebCore::HTMLInputElement::hasBadInput):
155023        Added. Delegate to InputType::hasBadInput.
155024        (WebCore): Remove hasUnacceptableValue.
155025
155026        * html/InputType.h:
155027        (InputType): Add hasBadInput and badInputText, and remove
155028        hasUnacceptableValue.
155029        * html/InputType.cpp:
155030        (WebCore::InputType::hasBadInput): Added. Returns false.
155031        (WebCore::InputType::badInputText):
155032        Added. This function should not be called because hasBadInput always
155033        returns false.
155034        (WebCore::InputType::validationMessage):
155035        Supports badInput. This returns badInputText if hasBadInput is true.
155036
155037        * html/NumberInputType.h:
155038        (NumberInputType): Add hasBadInput and badInputTest. Remove
155039        handleBlurEvent and hasUnacceptableValue.
155040        * html/NumberInputType.cpp:
155041        Remove handleBlurEvent, which cleared invalid number strings.
155042        (WebCore::NumberInputType::hasBadInput):
155043        Added. We don't need to check existence of a renderer. The standard form
155044        validation feature doesn't care of it.
155045        (WebCore::NumberInputType::badInputText): Returns
155046        validationMessageBadInputForNumberText defined in LocalizedStrings.h.
155047        * css/SelectorChecker.cpp:
155048        (WebCore::SelectorChecker::checkOneSelector):
155049        Remove a hack for hasUnacceptableValue. isValidFormControlElement takes
155050        account of badInput.
155051        * dom/Element.h: Remove hasUnacceptableValue.
155052
155053        * html/BaseMultipleFieldsDateAndTimeInputType.h:
155054        (BaseMultipleFieldsDateAndTimeInputType): Add hasBadInput and badInputText.
155055        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
155056        (WebCore::BaseMultipleFieldsDateAndTimeInputType::badInputText):
155057        Returns validationMessageBadInputForDateTimeText defined in LocalizedStrings.h.
155058        (WebCore::BaseMultipleFieldsDateAndTimeInputType::hasBadInput):
155059        Added.
155060        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
155061        Add setNeedsValidityCheck call. It is needed because
155062        updateInnerTextValue can modify subfields empty state.
155063
155064        * html/TextFieldInputType.cpp:
155065        (WebCore::TextFieldInputType::subtreeHasChanged): Update a comment.
155066        * platform/LocalizedStrings.h:
155067        (WebCore): Add validationMessageBadInputForNumberText and
155068        validationMessageBadInputForDateTimeText.
155069        * platform/LocalizedStrings.cpp:
155070        (WebCore::validationMessageBadInputForNumberText):
155071        Added a placeholder implementation. This should be fixed later.
155072        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
155073        (WebCore::validationMessageBadInputForNumberText): Ditto.
155074        * platform/efl/LocalizedStringsEfl.cpp:
155075        (WebCore::validationMessageBadInputForNumberText): Ditto.
155076        * platform/qt/LocalizedStringsQt.cpp:
155077        (WebCore::validationMessageBadInputForNumberText): Ditto.
155078
1550792012-11-27  Hajime Morrita  <morrita@google.com>
155080
155081        [Refactoring] NodeFlags::IsShadowRootFlag should be Node::IsDocumentFragmentFlag
155082        https://bugs.webkit.org/show_bug.cgi?id=103370
155083
155084        Reviewed by Kentaro Hara.
155085
155086        This chagne introduces Node::IsDocumentFragmentFlag so that we can
155087        have fast Node::isDocumentFragment().
155088
155089        Note that Node::isShadowRoot() can become slightly slower when it
155090        returns true, but that is minor in terms of the number of calls at runtime.
155091
155092        No new tests. No behavior change.
155093
155094        * dom/DocumentFragment.cpp:
155095        (WebCore::DocumentFragment::create):
155096        * dom/DocumentFragment.h:
155097        * dom/Node.cpp:
155098        (WebCore::Node::documentFragmentIsShadowRoot):
155099        (WebCore):
155100        * dom/Node.h:
155101        (Node):
155102        (WebCore::Node::isDocumentFragment):
155103        (WebCore::Node::isShadowRoot):
155104        (WebCore::Node::parentNode):
155105        (WebCore::Node::parentNodeGuaranteedHostFree):
155106        * dom/ShadowRoot.h:
155107
1551082012-11-26  Kent Tamura  <tkent@chromium.org>
155109
155110        :read-only selector should match to date/time input types
155111        https://bugs.webkit.org/show_bug.cgi?id=103350
155112
155113        Reviewed by Kentaro Hara.
155114
155115        We supported :read-only and :read-write only for text form controls;
155116        i.e. <textarea> and text-field <input>. According to [1], we should
155117        support them for date/time types. So, this patch removes
155118        isTextFormControl check in SelectorChecker, and just relies on
155119        shouldMatchRead{Only,Write}Selector virtual functions.
155120
155121        Tests: Update fast/forms/*/*-appearance-pseudo-classes.html.
155122
155123        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
155124
155125        * css/SelectorChecker.cpp:
155126        (WebCore::SelectorChecker::checkOneSelector):
155127        Remove isFormControlElement check and isTextFormControl check.
155128
155129        * html/HTMLFormControlElement.cpp:
155130        Remove shouldMatchRead{Only,Write}Selector functions. We don't need
155131        common implementations any more.
155132        * html/HTMLFormControlElement.h: Ditto.
155133
155134        * html/HTMLTextAreaElement.h:
155135        (HTMLTextAreaElement): Add shouldMatchRead{Only,Write}Selector overrides.
155136        * html/HTMLTextAreaElement.cpp:
155137        (WebCore::HTMLTextAreaElement::shouldMatchReadOnlySelector): Added.
155138        (WebCore::HTMLTextAreaElement::shouldMatchReadWriteSelector): Added.
155139
155140        * html/HTMLInputElement.h:
155141        (HTMLInputElement): Add shouldMatchRead{Only,Write}Selector overrides.
155142        * html/HTMLInputElement.cpp:
155143        (WebCore::HTMLInputElement::shouldMatchReadOnlySelector):
155144        Added. This checks InputType::supportsReadOnly and readOnly.
155145        (WebCore::HTMLInputElement::shouldMatchReadWriteSelector): Ditto.
155146
155147        * html/InputType.h:
155148        (InputType): Add supportsReadOnly.
155149        * html/InputType.cpp:
155150        (WebCore::InputType::supportsReadOnly): Added. Returns false by default.
155151
155152        * html/BaseDateAndTimeInputType.h:
155153        (BaseDateAndTimeInputType): Add supportsReadOnly.
155154        * html/BaseDateAndTimeInputType.cpp:
155155        (WebCore::BaseDateAndTimeInputType::supportsReadOnly): Added. Returns true.
155156        * html/TextFieldInputType.h:
155157        (TextFieldInputType): Add supportsReadOnly.
155158        * html/TextFieldInputType.cpp:
155159        (WebCore::TextFieldInputType::supportsReadOnly): Added. Returns true.
155160
1551612012-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>
155162
155163        Unreviewed, rolling out r135822.
155164        http://trac.webkit.org/changeset/135822
155165        https://bugs.webkit.org/show_bug.cgi?id=103369
155166
155167        Undo the revert of r135818, since that change does not affect
155168        code used by Chromium (Requested by apavlov on #webkit).
155169
155170        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
155171        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
155172        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
155173
1551742012-11-26  Michael Pruett  <michael@68k.org>
155175
155176        [GTK] Fix build error on GTK due to r135749
155177        https://bugs.webkit.org/show_bug.cgi?id=103365
155178
155179        Reviewed by Dean Jackson.
155180
155181        In r135749, many files which were already included
155182        in webcore_built_sources were erroneously added to
155183        webcore_svg_built_sources in GNUmakefile.list.am.
155184
155185        * GNUmakefile.list.am:
155186
1551872012-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>
155188
155189        Unreviewed, rolling out r135818.
155190        http://trac.webkit.org/changeset/135818
155191        https://bugs.webkit.org/show_bug.cgi?id=103368
155192
155193        platform/chromium/virtual/threaded/compositing/visibility
155194        /visibility-simple-webgl-layer.html crash on Mountain Lion
155195        (Requested by apavlov on #webkit).
155196
155197        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
155198        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
155199        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
155200
1552012012-11-26  Huang Dongsung  <luxtella@company100.net>
155202
155203        Coordinated Graphics: Set visibility to a mask layer in GraphicsLayer::setContentsVisible().
155204        https://bugs.webkit.org/show_bug.cgi?id=103297
155205
155206        Reviewed by Noam Rosenthal.
155207
155208        GraphicsLayerTextureMapper and CoordinatedGraphicsLayer set the visibility of a
155209        mask layer in setContentsVisible() and setMaskLayer() like setting a size.
155210        This patch is needed because RenderLayerBacking does not set the visibility to a
155211        mask layer like the size.
155212
155213        This patch does not change user experience because an invisible layer is not
155214        rendered although the mask layer is rendered. In that sense, it is an
155215        optimization patch.
155216
155217        No new tests. It is an optimization patch.
155218
155219        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
155220        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
155221        (WebCore::GraphicsLayerTextureMapper::setContentsVisible):
155222
1552232012-11-26  Kentaro Hara  <haraken@chromium.org>
155224
155225        [V8] Rename EXCEPTION_BLOCK() macros
155226        https://bugs.webkit.org/show_bug.cgi?id=103352
155227
155228        Reviewed by Adam Barth.
155229
155230        Since V8Parameter was renamed to V8StringResource,
155231        we rename macros that use V8Parameter.
155232
155233        EXCEPTION_BLOCK() => V8TRYCATCH()
155234        STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() => V8TRYCATCH_FOR_V8STRINGRESOURCE()
155235        STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() => V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID()
155236
155237        No tests. No change in behavior.
155238
155239        * bindings/scripts/CodeGeneratorV8.pm:
155240        (GenerateParametersCheck):
155241        (GenerateEventConstructorCallback):
155242        (ConvertToV8StringResource):
155243        * bindings/scripts/test/V8/V8Float64Array.cpp:
155244        (WebCore::Float64ArrayV8Internal::fooCallback):
155245        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
155246        (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
155247        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
155248        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
155249        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
155250        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
155251        (WebCore::V8TestEventConstructor::constructorCallback):
155252        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
155253        (WebCore::TestEventTargetV8Internal::itemCallback):
155254        (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
155255        * bindings/scripts/test/V8/V8TestInterface.cpp:
155256        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
155257        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
155258        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
155259        (WebCore::V8TestInterface::constructorCallback):
155260        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
155261        (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
155262        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
155263        (WebCore::V8TestNamedConstructorConstructorCallback):
155264        * bindings/scripts/test/V8/V8TestObj.cpp:
155265        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
155266        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
155267        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
155268        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
155269        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
155270        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
155271        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
155272        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
155273        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
155274        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
155275        (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
155276        (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
155277        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
155278        (WebCore::TestObjV8Internal::idbKeyCallback):
155279        (WebCore::TestObjV8Internal::optionsObjectCallback):
155280        (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
155281        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
155282        (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
155283        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
155284        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
155285        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
155286        (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
155287        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
155288        (WebCore::TestObjV8Internal::overloadedMethod2Callback):
155289        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
155290        (WebCore::TestObjV8Internal::overloadedMethod4Callback):
155291        (WebCore::TestObjV8Internal::overloadedMethod6Callback):
155292        (WebCore::TestObjV8Internal::overloadedMethod7Callback):
155293        (WebCore::TestObjV8Internal::overloadedMethod8Callback):
155294        (WebCore::TestObjV8Internal::overloadedMethod9Callback):
155295        (WebCore::TestObjV8Internal::overloadedMethod10Callback):
155296        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
155297        (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
155298        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
155299        (WebCore::TestObjV8Internal::classMethodWithClampCallback):
155300        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
155301        (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
155302        (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
155303        (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
155304        (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
155305        (WebCore::TestObjV8Internal::convert1Callback):
155306        (WebCore::TestObjV8Internal::convert2Callback):
155307        (WebCore::TestObjV8Internal::convert4Callback):
155308        (WebCore::TestObjV8Internal::convert5Callback):
155309        (WebCore::TestObjV8Internal::strictFunctionCallback):
155310        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
155311        (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
155312        (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
155313        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
155314        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
155315        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
155316        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
155317        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
155318        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
155319        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
155320        * bindings/v8/V8Binding.h:
155321        (WebCore::toV8Sequence):
155322        * bindings/v8/V8BindingMacros.h:
155323        * bindings/v8/custom/V8BlobCustom.cpp:
155324        (WebCore::V8Blob::constructorCallbackCustom):
155325        * bindings/v8/custom/V8ConsoleCustom.cpp:
155326        (WebCore::V8Console::profileCallback):
155327        (WebCore::V8Console::profileEndCallback):
155328        * bindings/v8/custom/V8DOMWindowCustom.cpp:
155329        (WebCore::handlePostMessageCallback):
155330        * bindings/v8/custom/V8DataViewCustom.cpp:
155331        (WebCore::V8DataView::getInt8Callback):
155332        (WebCore::V8DataView::getUint8Callback):
155333        (WebCore::V8DataView::setInt8Callback):
155334        (WebCore::V8DataView::setUint8Callback):
155335        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
155336        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
155337        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
155338        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
155339        * bindings/v8/custom/V8DocumentCustom.cpp:
155340        (WebCore::V8Document::evaluateCallback):
155341        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
155342        (WebCore::V8HTMLOptionsCollection::addCallback):
155343        * bindings/v8/custom/V8HistoryCustom.cpp:
155344        (WebCore::V8History::pushStateCallback):
155345        (WebCore::V8History::replaceStateCallback):
155346        * bindings/v8/custom/V8IntentCustom.cpp:
155347        (WebCore::V8Intent::constructorCallbackCustom):
155348        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
155349        (WebCore::V8SQLTransaction::executeSqlCallback):
155350        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
155351        (WebCore::V8SQLTransactionSync::executeSqlCallback):
155352        * bindings/v8/custom/V8SVGLengthCustom.cpp:
155353        (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
155354        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
155355        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
155356        * bindings/v8/custom/V8WorkerContextCustom.cpp:
155357        (WebCore::V8WorkerContext::importScriptsCallback):
155358
1553592012-11-26  Andreas Kling  <akling@apple.com>
155360
155361        Node: Move AreSVGAttributesValidFlag to ElementAttributeData.
155362        <http://webkit.org/b/103349>
155363
155364        Reviewed by Anders Carlsson.
155365
155366        Moved AreSVGAttributesValidFlag to ElementAttributeData and change it to use "dirty" semantics.
155367        This frees up a bit on Node, and we will always have ElementAttributeData if the animated
155368        attributes are dirty anyway.
155369
155370        * dom/Element.cpp:
155371        (WebCore::Element::getAttribute):
155372        * dom/Element.h:
155373        (WebCore::Element::updateInvalidAttributes):
155374        * dom/ElementAttributeData.cpp:
155375        (WebCore::ElementAttributeData::ElementAttributeData):
155376        * dom/ElementAttributeData.h:
155377        (WebCore::ElementAttributeData::ElementAttributeData):
155378        (ElementAttributeData):
155379        * dom/Node.h:
155380        (Node):
155381        * svg/SVGElement.cpp:
155382        (WebCore::SVGElement::updateAnimatedSVGAttribute):
155383        * svg/SVGElement.h:
155384        (WebCore::SVGElement::invalidateSVGAttributes):
155385
1553862012-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>
155387
155388        Unreviewed, rolling out r135798.
155389        http://trac.webkit.org/changeset/135798
155390        https://bugs.webkit.org/show_bug.cgi?id=103354
155391
155392        Broke the chrome mac build (Requested by noel_ on #webkit).
155393
155394        * platform/graphics/chromium/DeferredImageDecoder.cpp:
155395        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
155396        (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
155397        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
155398        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
155399        * platform/graphics/chromium/DeferredImageDecoder.h:
155400        (DeferredImageDecoder):
155401        * platform/graphics/chromium/ImageDecodingStore.cpp:
155402        (WebCore::ImageDecodingStore::instanceOnMainThread):
155403        (WebCore::ImageDecodingStore::initializeOnMainThread):
155404        (WebCore::ImageDecodingStore::shutdown):
155405        (WebCore::ImageDecodingStore::calledOnValidThread):
155406        (WebCore::ImageDecodingStore::lookupFrameCache):
155407        (WebCore::ImageDecodingStore::deleteFrameCache):
155408        * platform/graphics/chromium/ImageDecodingStore.h:
155409        (WebCore):
155410        (ImageDecodingStore):
155411        * platform/graphics/chromium/ImageFrameGenerator.cpp:
155412        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
155413        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
155414        (WebCore::ImageFrameGenerator::setData):
155415        (WebCore::ImageFrameGenerator::decodeAndScale):
155416        * platform/graphics/chromium/ImageFrameGenerator.h:
155417        (WebCore):
155418        (WebCore::ImageFrameGenerator::create):
155419        (ImageFrameGenerator):
155420        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
155421        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
155422        (WebCore::LazyDecodingPixelRef::onLockPixels):
155423        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
155424        * platform/graphics/chromium/LazyDecodingPixelRef.h:
155425        (WebCore):
155426        (LazyDecodingPixelRef):
155427        * platform/graphics/chromium/ScaledImageFragment.cpp:
155428        (WebCore::ScaledImageFragment::ScaledImageFragment):
155429        (WebCore::ScaledImageFragment::isEqual):
155430        (WebCore):
155431        * platform/graphics/chromium/ScaledImageFragment.h:
155432        (WebCore):
155433        (WebCore::ScaledImageFragment::create):
155434        (ScaledImageFragment):
155435        * platform/graphics/chromium/SkSizeHash.h: Removed.
155436
1554372012-11-26  Huang Dongsung  <luxtella@company100.net>
155438
155439        [TexMap] GraphicsLayerTextureMapper::setSize() sets the size of a mask layer.
155440        https://bugs.webkit.org/show_bug.cgi?id=103297
155441
155442        Reviewed by Noam Rosenthal.
155443
155444        Currently, CoordinatedGraphicsLayer sets the size of a mask layer in setSize()
155445        and setMaksLayer(). GraphicsLayerTextureMapper follows the behavior. If so we
155446        don't have to check the size of the mask layer in TextureMapperLayer::flushCompositingState().
155447
155448        No new tests. Covered by existing tests.
155449
155450        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
155451        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
155452        (WebCore::GraphicsLayerTextureMapper::setSize):
155453        * platform/graphics/texmap/TextureMapperLayer.cpp:
155454        (WebCore::TextureMapperLayer::flushCompositingState):
155455
1554562012-11-26  Kentaro Hara  <haraken@chromium.org>
155457
155458        [V8] Remove V8Parameter::object()
155459        https://bugs.webkit.org/show_bug.cgi?id=103340
155460
155461        Reviewed by Adam Barth.
155462
155463        V8Parameter can use m_v8Object directly.
155464
155465        No tests. No change in behavior.
155466
155467        * bindings/v8/V8StringResource.h:
155468        (WebCore::::prepare):
155469
1554702012-11-26  Kentaro Hara  <haraken@chromium.org>
155471
155472        [V8] Rename V8Parameter to V8StringResource
155473        https://bugs.webkit.org/show_bug.cgi?id=103341
155474
155475        Reviewed by Adam Barth.
155476
155477        We can rename V8Parameter to V8StringResource. In a follow-up patch,
155478        I will rename macros around V8Parameter.
155479
155480        No tests. No change in behavior.
155481
155482        * bindings/scripts/CodeGeneratorV8.pm:
155483        (GenerateNormalAttrGetter):
155484        (GenerateNormalAttrSetter):
155485        (GenerateParametersCheck):
155486        (GenerateEventConstructorCallback):
155487        (GetNativeTypeFromSignature):
155488        (GetNativeType):
155489        (ConvertToV8StringResource):
155490        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
155491        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
155492        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
155493        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
155494        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
155495        (WebCore::V8TestEventConstructor::constructorCallback):
155496        * bindings/scripts/test/V8/V8TestInterface.cpp:
155497        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
155498        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
155499        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
155500        (WebCore::V8TestInterface::constructorCallback):
155501        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
155502        (WebCore::V8TestNamedConstructorConstructorCallback):
155503        * bindings/scripts/test/V8/V8TestObj.cpp:
155504        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
155505        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
155506        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
155507        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
155508        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
155509        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
155510        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
155511        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
155512        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
155513        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
155514        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
155515        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
155516        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
155517        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
155518        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
155519        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
155520        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
155521        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
155522        (WebCore::TestObjV8Internal::strictFunctionCallback):
155523        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
155524        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
155525        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
155526        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
155527        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
155528        * bindings/v8/V8StringResource.h:
155529        (WebCore::V8StringResource::V8StringResource):
155530        (WebCore::::prepare):
155531        * bindings/v8/custom/V8ConsoleCustom.cpp:
155532        (WebCore::V8Console::profileCallback):
155533        (WebCore::V8Console::profileEndCallback):
155534        * bindings/v8/custom/V8DOMWindowCustom.cpp:
155535        (WebCore::handlePostMessageCallback):
155536        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
155537        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
155538        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
155539        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
155540        * bindings/v8/custom/V8HistoryCustom.cpp:
155541        (WebCore::V8History::pushStateCallback):
155542        (WebCore::V8History::replaceStateCallback):
155543        * bindings/v8/custom/V8IntentCustom.cpp:
155544        (WebCore::V8Intent::constructorCallbackCustom):
155545        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
155546        (WebCore::V8SQLTransaction::executeSqlCallback):
155547        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
155548        (WebCore::V8SQLTransactionSync::executeSqlCallback):
155549        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
155550        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
155551
1555522012-11-26  Andreas Kling  <akling@apple.com>
155553
155554        HTMLOptionElement: Remove two unused members.
155555        <http://webkit.org/b/103337>
155556
155557        Reviewed by Kent Tamura.
155558
155559        Remove two unused members from HTMLOptionElement, m_value and m_label.
155560        40kB progression on Membuster3.
155561
155562        * html/HTMLOptionElement.h:
155563        (HTMLOptionElement):
155564
1555652012-11-26  Stephen White  <senorblanco@chromium.org>
155566
155567        [Chromium] Shared graphics context should only pushGroupMarker() once
155568        https://bugs.webkit.org/show_bug.cgi?id=103082
155569
155570        Reviewed by James Robinson.
155571
155572        GraphicsContext3D's pushGroupMarkerEXT() is being called every time
155573        an ImageBuffer is created, leading to unlimited memory growth, since
155574        they share a common GraphicsContext3D.  It should be called only once,
155575        on context creation.
155576
155577        Tested by manually checking the memory usage in Chrome's TaskManager.
155578        (Sorry, I can't think of a way to test this automatically.)
155579
155580        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
155581        (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
155582        * platform/graphics/skia/ImageBufferSkia.cpp:
155583        (WebCore::createAcceleratedCanvas):
155584
1555852012-11-26  Kentaro Hara  <haraken@chromium.org>
155586
155587        [V8] Remove WorkerContextExecutionProxy.{h,cpp}
155588        https://bugs.webkit.org/show_bug.cgi?id=103325
155589
155590        Reviewed by Adam Barth.
155591
155592        Now WorkerContextExecutionProxy.{h,cpp} are empty.
155593
155594        No tests. No change in behavior.
155595
155596        * UseV8.cmake:
155597        * WebCore.gypi:
155598        * bindings/v8/ScheduledAction.cpp:
155599        * bindings/v8/V8AbstractEventListener.cpp:
155600        * bindings/v8/V8DOMWrapper.cpp:
155601        * bindings/v8/V8WorkerContextEventListener.h:
155602        (WebCore):
155603        * bindings/v8/WorkerContextExecutionProxy.cpp: Removed.
155604        * bindings/v8/WorkerContextExecutionProxy.h: Removed.
155605        * bindings/v8/WorkerScriptController.cpp:
155606        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
155607        * bindings/v8/custom/V8MessageChannelCustom.cpp:
155608        * bindings/v8/custom/V8MessagePortCustom.cpp:
155609        * bindings/v8/custom/V8WorkerCustom.cpp:
155610        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
155611
1556122012-11-26  Michael Saboff  <msaboff@apple.com>
155613
155614        Grapheme cluster functions can be simplified for 8 bit Strings
155615        https://bugs.webkit.org/show_bug.cgi?id=102996
155616
155617        Reviewed by Alexey Proskuryakov.
155618
155619        For 8 bit strings, check for the uncommon CR-LF by looking for any CR.  If there aren't any CR characters,
155620        the number of Extended Grapheme Clusters is equal to the string length.  If we need to handle Tailored
155621        Graheme Clusters, then this will need to change.
155622
155623        No new tests. No change in functionality.
155624
155625        * platform/text/TextBreakIterator.cpp:
155626        (WebCore::numGraphemeClusters):
155627        (WebCore::numCharactersInGraphemeClusters):
155628
1556292012-11-26  Istiaque Ahmed  <lazyboy@chromium.org>
155630
155631        Check for empty perContextData while creating NP V8 Object.
155632        https://bugs.webkit.org/show_bug.cgi?id=98448
155633
155634        Reviewed by Adam Barth.
155635
155636        Fixes crash in npCreateV8ScriptObject(), if NP Invoke is called from a document
155637        that is no longer displayed in frame (isCurrentlyDisplayedInFrame() ==
155638        false), we have empty perContextData and this results in invalid memory access.
155639
155640        Test: platform/chromium/plugins/empty-per-context-data.html
155641
155642        * bindings/v8/NPV8Object.cpp:
155643        (WebCore::npCreateV8ScriptObject):
155644
1556452012-11-26  Michael Saboff  <msaboff@apple.com>
155646
155647        HTML/XML parser helper unconsumeCharacters() can push back 8 bit text as 16 bit text
155648        https://bugs.webkit.org/show_bug.cgi?id=103317
155649
155650        Reviewed by Oliver Hunt.
155651
155652        Changed to use the String directly from the StringBuilder instead of creating our own.
155653        Used toStringPreserveCapacity() in case the caller may want to add to the StringBuilder
155654        even though current callers don't.
155655
155656        No new tests. No change in functionality.
155657
155658        * xml/parser/CharacterReferenceParserInlines.h:
155659        (WebCore::unconsumeCharacters):
155660
1556612012-11-26  Noel Gordon  <noel.gordon@gmail.com>
155662
155663        PNG decode performance: avoid using frame buffer.setRGBA(x,y)
155664        https://bugs.webkit.org/show_bug.cgi?id=103216
155665
155666        Reviewed by Brent Fulgham.
155667
155668        Writing decoded row pixels to the frame buffer with buffer.setRGBA(x,y) is slow compared
155669        to writing direct to the frame buffer address. Use buffer.getAddr() to obtain the output
155670        pixel row address, write the decoded row pixels to that address.
155671
155672        No new tests. Covered by many existing tests.
155673
155674        * platform/image-decoders/ImageDecoder.h:
155675        (WebCore::ImageFrame::setRGBA): Make routine setRGBA(PixelData* dest, ...) public. Test
155676        m_premultiplyAlpha once to minimize code branching in this routine.
155677        * platform/image-decoders/png/PNGImageDecoder.cpp:
155678        (WebCore::PNGImageDecoder::rowAvailable): Write decoded row pixels to the frame buffer
155679        using the pixel address form: buffer.setRGBA(address++, ...).
155680
1556812012-11-26  Alpha Lam  <hclam@chromium.org>
155682
155683        [chromium] Implement full-featured image cache
155684        https://bugs.webkit.org/show_bug.cgi?id=99784
155685
155686        Reviewed by James Robinson.
155687
155688        Implement a thread-safe image cache to be used with deferred image
155689        decoding. Image cache can now be accessed on any thread.
155690
155691        The patch implements the following logic:
155692        1. Mutex to protect all cache operations.
155693        2. Cache indexing using key (ImageFrameGenerator*, SkISize scaledSize)
155694        3. Cache lookup.
155695        4. Cache insertion.
155696        5. Generation of cache entry by scaling full size image.
155697        6. Generation of cache entries by decoding and scaling.
155698
155699        Classes involved:
155700
155701        ImageDecodingStore
155702
155703        Responsible for owning cache entries and indexing. Pruning and memory
155704        management will be added later.
155705
155706        ImageFrameGenerator
155707
155708        Responsible for generating new cache enties and insert them into
155709        ImageDecodingStore.
155710
155711        LazyDecodingPixelRef
155712
155713        Responsible for cache lookup and lazy generation of cache entries
155714        using ImageFrameGenerator. There is a mutex to protect concurrent
155715        lock operations.
155716
155717        These items are not implemented in this patch:
155718        1. Cache pruning.
155719        2. Setting cache memory limit.
155720        3. Cache deletion.
155721        4. Caching incomplete images and ImageDecoder.
155722
155723        Unit tests added in ImageFrameGeneratorTest.cpp.
155724        Layout tests are under platform/chromium/virtual/fast/images.
155725
155726        * platform/graphics/chromium/DeferredImageDecoder.cpp:
155727        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
155728        (WebCore::DeferredImageDecoder::createResizedLazyDecodingBitmap):
155729        (WebCore::DeferredImageDecoder::setEnabled):
155730        (WebCore):
155731        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
155732        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
155733        * platform/graphics/chromium/DeferredImageDecoder.h:
155734        (DeferredImageDecoder):
155735        * platform/graphics/chromium/ImageDecodingStore.cpp:
155736        (WebCore::ImageDecodingStore::instance):
155737        (WebCore::ImageDecodingStore::initializeOnce):
155738        (WebCore::ImageDecodingStore::shutdown):
155739        (WebCore::ImageDecodingStore::lockCompleteCache):
155740        Lookup complete cache entry using hash key, increment use count.
155741        (WebCore::ImageDecodingStore::lockIncompleteCache): TODO.
155742        (WebCore::ImageDecodingStore::unlockCache):
155743        Lookup cache entry using hash key, decrement use count.
155744        (WebCore):
155745        (WebCore::ImageDecodingStore::insertAndLockCache):
155746        Insert new cache entry and increment use count.
155747        (WebCore::ImageDecodingStore::prune): TODO.
155748        * platform/graphics/chromium/ImageDecodingStore.h:
155749        (WebCore):
155750        (ImageDecodingStore):
155751        (WebCore::ImageDecodingStore::CacheEntry::create):
155752        (WebCore::ImageDecodingStore::CacheEntry::createAndUse):
155753        (CacheEntry):
155754        (WebCore::ImageDecodingStore::CacheEntry::CacheEntry):
155755        (WebCore::ImageDecodingStore::CacheEntry::~CacheEntry):
155756        * platform/graphics/chromium/ImageFrameGenerator.cpp:
155757        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
155758        (WebCore::ImageFrameGenerator::setData):
155759        (WebCore::ImageFrameGenerator::decodeAndScale):
155760        Method for creating new cache entries. This is protected by a mutex
155761        to prevent concurrent operations. Which means only one thread can
155762        generate new cache entries for a set of encoded data.
155763        (WebCore):
155764        (WebCore::ImageFrameGenerator::tryToLockCache):
155765        Tries to lookup a cache entry.
155766        (WebCore::ImageFrameGenerator::tryToScale):
155767        Tries to lookup a full size cache entry and generate a scaled version.
155768        (WebCore::ImageFrameGenerator::tryToDecodeAndScale):
155769        Tries to decode and scale.
155770        * platform/graphics/chromium/ImageFrameGenerator.h:
155771        (WebCore):
155772        (ImageDecoderFactory):
155773        (WebCore::ImageFrameGenerator::create):
155774        (ImageFrameGenerator):
155775        (WebCore::ImageFrameGenerator::setImageDecoderFactoryForTesting):
155776        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
155777        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
155778        (WebCore::LazyDecodingPixelRef::onLockPixels):
155779        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
155780        * platform/graphics/chromium/LazyDecodingPixelRef.h:
155781        (WebCore):
155782        (LazyDecodingPixelRef):
155783        * platform/graphics/chromium/ScaledImageFragment.cpp:
155784        (WebCore::ScaledImageFragment::ScaledImageFragment):
155785        * platform/graphics/chromium/ScaledImageFragment.h:
155786        (WebCore):
155787        (WebCore::ScaledImageFragment::create):
155788        (ScaledImageFragment):
155789        (WebCore::ScaledImageFragment::scaledSize):
155790        * platform/graphics/chromium/SkSizeHash.h: Added.
155791        (WTF):
155792
1557932012-11-26  Andreas Kling  <akling@apple.com>
155794
155795        Node: Remove IsSynchronizingSVGAttributesFlag.
155796        <http://webkit.org/b/103328>
155797
155798        Reviewed by Antti Koivisto.
155799
155800        Animated SVG attributes used to be synchronized by using DOM API which could use unwanted re-entrancy
155801        via callbacks below Element::attributeChanged(). The "is synchronizing SVG attributes" flag was used
155802        to protect against such re-entrancy.
155803
155804        These days, lazy attributes are synchronized using Element::setSynchronizedLazyAttribute() to avoid
155805        issues like this. The flag does nothing, so we can just remove it.
155806
155807        * dom/Node.h:
155808        (WebCore):
155809        * svg/SVGElement.cpp:
155810        (WebCore::SVGElement::attributeChanged):
155811        (WebCore::SVGElement::updateAnimatedSVGAttribute):
155812
1558132012-11-26  Kentaro Hara  <haraken@chromium.org>
155814
155815        [V8] Refactor WorkerScriptController
155816        https://bugs.webkit.org/show_bug.cgi?id=103330
155817
155818        Reviewed by Adam Barth.
155819
155820        r135703 just moved methods from WorkerContextExecutionProxy
155821        to WorkerScriptController. We should refactor the methods as a follow-up.
155822
155823        No tests. No change in behavior.
155824
155825        * bindings/v8/WorkerScriptController.cpp:
155826        (WebCore::WorkerScriptController::~WorkerScriptController):
155827        (WebCore::WorkerScriptController::disposeContext):
155828        (WebCore::WorkerScriptController::initializeContextIfNeeded):
155829        (WebCore::WorkerScriptController::evaluate):
155830        (WebCore::WorkerScriptController::disableEval):
155831        * bindings/v8/WorkerScriptController.h:
155832        (WorkerScriptController):
155833
1558342012-11-26  Varun Jain  <varunjain@chromium.org>
155835
155836        LongPress and LongTap gestures should start drag/drop and open context menu respectively.
155837        https://bugs.webkit.org/show_bug.cgi?id=101545
155838
155839        Reviewed by Antonio Gomes.
155840
155841        For LongPress, we simulate drag by sending a mouse down and mouse drag
155842        events. If a drag is not started (because maybe there is no draggable
155843        element), then we show context menu instead (which is the current
155844        behavior for LongPress). For LongTap, we use the existing functions that
155845        LongPress uses to summon the context menu. LongPress initiated drag and
155846        drop can be enabled/disabled by the platform using the Setting
155847        touchDragDropEnabled which is disabled by default.
155848
155849        Tests: fast/events/touch/gesture/context-menu-on-long-tap.html
155850               fast/events/touch/gesture/long-press-on-draggable-element-triggers-drag.html
155851
155852        * page/EventHandler.cpp:
155853        (WebCore::EventHandler::EventHandler):
155854        (WebCore::EventHandler::clear):
155855        (WebCore::EventHandler::handleMouseDraggedEvent):
155856        (WebCore::EventHandler::handleGestureEvent):
155857        (WebCore::EventHandler::handleGestureLongPress):
155858        (WebCore::EventHandler::handleGestureLongTap):
155859        (WebCore):
155860        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
155861        (WebCore::EventHandler::adjustGesturePosition):
155862        (WebCore::EventHandler::handleDrag):
155863        * page/EventHandler.h:
155864        (EventHandler):
155865        * page/Settings.in:
155866
1558672012-11-26  Andreas Kling  <akling@apple.com>
155868
155869        RenderStyle: Move 'list-style-image' to rare inherited data.
155870        <http://webkit.org/b/103300>
155871
155872        Reviewed by Antti Koivisto.
155873
155874        list-style-image is not nearly common enough to merit a spot in StyleInheritedData.
155875        Move it to StyleRareInheritedData.
155876
155877        134kB progression on Membuster3.
155878
155879        * rendering/style/RenderStyle.cpp:
155880        (WebCore::RenderStyle::diff):
155881        (WebCore::RenderStyle::listStyleImage):
155882        (WebCore::RenderStyle::setListStyleImage):
155883        * rendering/style/StyleInheritedData.cpp:
155884        (WebCore::StyleInheritedData::StyleInheritedData):
155885        (WebCore::StyleInheritedData::operator==):
155886        * rendering/style/StyleInheritedData.h:
155887        (StyleInheritedData):
155888        * rendering/style/StyleRareInheritedData.h:
155889        * rendering/style/StyleRareInheritedData.cpp:
155890        (SameSizeAsStyleRareInheritedData):
155891        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
155892        (WebCore::StyleRareInheritedData::operator==):
155893
1558942012-11-26  James Simonsen  <simonjam@chromium.org>
155895
155896        Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
155897        https://bugs.webkit.org/show_bug.cgi?id=102151
155898
155899        Reviewed by Adam Barth.
155900
155901        There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
155902        There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
155903        the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
155904        the refactoring done with CachedResourceRequest and CachedResourceLoader.
155905
155906        No new tests. No change in functionality.
155907
155908        * WebCore.exp.in:
155909        * loader/FrameLoadRequest.h:
155910        (WebCore::FrameLoadRequest::FrameLoadRequest):
155911        (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
155912        (WebCore::FrameLoadRequest::lockHistory): Ditto.
155913        (FrameLoadRequest):
155914        (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
155915        (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
155916        (WebCore::FrameLoadRequest::substituteData): Ditto.
155917        (WebCore::FrameLoadRequest::setSubstituteData): Ditto.
155918        (WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
155919        * loader/FrameLoader.cpp:
155920        (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
155921        * loader/FrameLoader.h:
155922        (FrameLoader):
155923        * page/DragController.cpp:
155924        (WebCore::DragController::performDrag):
155925
1559262012-11-24 Genevieve Mak <gmak@rim.com>
155927
155928        [BlackBerry] Stop sending touch events to plugins.
155929        https://bugs.webkit.org/show_bug.cgi?id=103188
155930
155931        Reviewed by Rob Buis.
155932
155933        Reviewed internally by Jeff Rogers and Mike Lattanzio.
155934        No tests required.
155935        PR #248605
155936
155937        * plugins/blackberry/PluginViewBlackBerry.cpp:
155938        (WebCore::PluginView::handleTouchEvent):
155939        (WebCore::PluginView::handleMouseEvent):
155940
1559412012-11-26  Adenilson Cavalcanti  <cavalcantii@gmail.com>
155942
155943        Removing unnecessary friend classes in RenderObject: LayoutRepainter, RenderSVGContainer
155944        https://bugs.webkit.org/show_bug.cgi?id=103164
155945
155946        Reviewed by Simon Fraser.
155947
155948        Removing some of classes marked as friend of RenderObject. This patch solves this issue
155949        for 2 classes: RenderSVGContainer (that is derived from RenderObject) and LayoutRepainter
155950        (that accesses one const member function in RenderObject that is now made public).
155951
155952        No new tests, no changes in functionality.
155953
155954        * rendering/RenderObject.h:
155955        (RenderObject):
155956        (WebCore::RenderObject::outlineBoundsForRepaint):
155957
1559582012-11-26  Jon Lee  <jonlee@apple.com>
155959
155960        Pass clicks through to the restarted plugin
155961        https://bugs.webkit.org/show_bug.cgi?id=102150
155962        <rdar://problem/12695575>
155963
155964        Reviewed by Simon Fraser.
155965
155966        Add a new state to the machine for plugin snapshotting, called PlayingWithPendingMouseClick.
155967        This represents the state where the plugin is playing, but before the pending mouse click
155968        has been fired. Once the click is sent, the plugin state transitions to Playing. For
155969        situations where the plugin just runs normally without a simulated click, the plugin state
155970        jumps from DisplayingSnapshot straight to Playing, as before.
155971
155972        * html/HTMLPlugInElement.h: Add new display state to represent when the plugin is running,
155973        but a pending mouse click is about to be sent to the plugin.
155974        (WebCore::HTMLPlugInElement::dispatchPendingMouseClick): Called by the plugin when it is
155975        ok for the element to send the pending mouse click.
155976        * html/HTMLPlugInElement.cpp:
155977        (WebCore::HTMLPlugInElement::defaultEventHandler): Update the handler to pass the event
155978        to the renderer to handle if the state is before PlayingWithPendingMouseClick.
155979
155980        * html/HTMLPlugInImageElement.h:
155981        * html/HTMLPlugInImageElement.cpp: Add a click timer to delay the mouse click so that the
155982        plugin has some time to initialize.
155983        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize the mouse timer.
155984        (WebCore::HTMLPlugInImageElement::setPendingClickEvent): Keep track of the click event
155985        the user made to restart the plugin.
155986        (WebCore::HTMLPlugInImageElement::dispatchPendingMouseClick): Start the timer.
155987        (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): When the timer fires,
155988        dispatch the simulated click, with mouse over, mouse down, and mouse up events. Transition
155989        to the Playing state, and we no longer need the click event.
155990
155991        * rendering/RenderSnapshottedPlugIn.cpp: Change the threshold state to PlayingWithPendingMouseClick
155992        instead of Playing, since that is the earliest state where the plugin is playing.
155993        (WebCore::RenderSnapshottedPlugIn::paint):
155994        (WebCore::RenderSnapshottedPlugIn::paintReplaced):
155995        (WebCore::RenderSnapshottedPlugIn::getCursor):
155996        (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the button, jump to
155997        Playing, and don't send a simulated click. Otherwise, transition to PlayingWithPendingMouseClick,
155998        and keep track of that mouse event.
155999
156000        * WebCore.exp.in: Export MouseRelatedEvent::offsetX() and offsetY().
156001
1560022012-11-26  Dan Carney  <dcarney@google.com>
156003
156004        Refactor V8 bindings to allow content scripts to access subframes
156005        https://bugs.webkit.org/show_bug.cgi?id=93646
156006
156007        Reviewed by Adam Barth.
156008
156009        Isolated window shells are now initialized on the fly
156010        as needed.
156011
156012        No new tests. Existing test modified.
156013
156014        * bindings/v8/DOMWrapperWorld.cpp:
156015        (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
156016        * bindings/v8/DOMWrapperWorld.h:
156017        (WebCore::DOMWrapperWorld::createdFromUnitializedWorld):
156018        (DOMWrapperWorld):
156019        * bindings/v8/ScriptController.cpp:
156020        (WebCore::ScriptController::currentWorldContext):
156021
1560222012-11-26  Alex Christensen  <alex.christensen@flexsim.com>
156023
156024        clipboardwin compile error for win64
156025        https://bugs.webkit.org/show_bug.cgi?id=94124
156026
156027        Reviewed by Brent Fulgham.
156028
156029        The clipboard utilities code uses std::min with one unsigned int parameter and one size_t parameter.
156030        This causes a problem when compiling for 64-bit Windows because the two types are not the same size.
156031        To resolve this issue, we specify the template type as the type the return value is being cast into
156032
156033        Fixed a few compile errors for Windows x64 by specifying template parameters.
156034
156035        * platform/win/ClipboardUtilitiesWin.cpp:
156036        (WebCore::setFileDescriptorData): Specify the types for the std::min macro to avoid compiler errors
156037        under 64-bit builds.
156038
1560392012-11-26  Arnaud Renevier  <a.renevier@sisa.samsung.com>
156040
156041        [GTK] GtkSocket is leaked until webview is destroyed.
156042        https://bugs.webkit.org/show_bug.cgi?id=102564
156043
156044        Reviewed by Martin Robinson.
156045
156046        Remove GtkSocket from its parent when pluginview is destroyed. Then,
156047        the GtkSocket and it's possible child widgets are realeased when it is
156048        no more needed.
156049
156050        No new tests, already covered by existing tests.
156051
156052        * plugins/gtk/PluginViewGtk.cpp:
156053        (WebCore::PluginView::platformDestroy):
156054
1560552012-11-26  Luke Macpherson   <macpherson@chromium.org>
156056
156057        Make StyleResolver::applyProperty use isInherit in CSSPropertyWebkitMarquee instead of calculating equivalent in-place.
156058        https://bugs.webkit.org/show_bug.cgi?id=102446
156059
156060        Reviewed by Tony Chang.
156061
156062        !m_parentNode || !value->isInheritedValue() is equivalent to !isInherit (by De Morgan's law).
156063
156064        No new tests / code is provably equivalent.
156065
156066        * css/StyleResolver.cpp:
156067        (WebCore::StyleResolver::applyProperty):
156068
1560692012-11-26  Pratik Solanki  <psolanki@apple.com>
156070
156071        Add ResourceBuffer::append(CFDataRef) to get code to compile with USE(NETWORK_CFDATA_ARRAY_CALLBACK)
156072        https://bugs.webkit.org/show_bug.cgi?id=102706
156073
156074        Reviewed by Brent Fulgham.
156075
156076        No new tests because the flag isn't enabled. Also the functionality should be covered by
156077        existing tests.
156078
156079        * loader/ResourceBuffer.cpp:
156080        (WebCore):
156081        (WebCore::ResourceBuffer::append):
156082        * loader/ResourceBuffer.h:
156083        (ResourceBuffer):
156084        * loader/mac/ResourceLoaderMac.mm:
156085
1560862012-11-26  Tony Chang  <tony@chromium.org>
156087
156088        Move more functions from internals.settings to internals
156089        https://bugs.webkit.org/show_bug.cgi?id=102976
156090
156091        Reviewed by Adam Barth.
156092
156093        Move functions that don't have to do with Settings off of internals.settings.
156094        setPagination and configurationForViewport were defined on internals, so we
156095        can inline the functions (no test change).
156096
156097        setEnableMockPagePopup is moved to Internals.
156098
156099        No new tests, this is a refactor.
156100
156101        * testing/InternalSettings.cpp:
156102        (WebCore::InternalSettings::reset): Move reset code into Internals.
156103        * testing/InternalSettings.h:
156104        (InternalSettings): Remove code for setPagination, configurationForViewport and setEnableMockPagePopup.
156105        * testing/InternalSettings.idl: Remove setPagination and setEnableMockPagePopup.
156106        * testing/Internals.cpp:
156107        (WebCore): Use a static to keep track of the MockPagePopupDriver.
156108        (WebCore::Internals::resetToConsistentState): Code from InternalSettings::reset
156109        (WebCore::Internals::setEnableMockPagePopup): Code copied from InternalSettings.
156110        (WebCore::Internals::pagePopupController): Code copied from InternalSettings.
156111        (WebCore::Internals::setPagination): Code copied from InternalSettings.
156112        (WebCore::Internals::configurationForViewport): Code copied from InternalSettings.
156113        * testing/Internals.h:
156114        (Internals): Add setEnableMockPagePopup.
156115        * testing/Internals.idl: Add setEnableMockPagePopup.
156116
1561172012-11-26  Andrei Bucur  <abucur@adobe.com>
156118
156119        [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
156120        https://bugs.webkit.org/show_bug.cgi?id=101332
156121
156122        Reviewed by David Hyatt.
156123
156124        Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
156125        the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
156126        including two new members, the containing Region for the line and a boolean that states if the line was laid out in a Region or not.
156127        The flag is necessary because the sanitize function on LineFragmentationData resets the containing Region to 0 if the Region was removed from
156128        chain (so a value of 0 for the containing Region means two things). The sanitize function should prevent access to an invalid address.
156129        The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
156130        styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
156131        A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
156132        the task of updating the containing Region to the block.
156133
156134        Tests: fast/regions/line-containing-region-crash.html
156135
156136        * rendering/InlineFlowBox.cpp:
156137        (SameSizeAsInlineFlowBox):
156138        * rendering/InlineFlowBox.h:
156139        (WebCore::InlineFlowBox::InlineFlowBox):
156140        (InlineFlowBox):
156141        * rendering/RenderBlock.cpp:
156142        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
156143        * rendering/RenderBlockLineLayout.cpp:
156144        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
156145        (WebCore::RenderBlock::linkToEndLineIfNeeded):
156146        (WebCore::RenderBlock::determineStartPosition):
156147        * rendering/RootInlineBox.cpp:
156148        (WebCore::RootInlineBox::RootInlineBox):
156149        (WebCore::RootInlineBox::setContainingRegion):
156150        (WebCore):
156151        (WebCore::RootInlineBox::LineFragmentationData::sanitize): This is an O(1) function that checks if the containig Region is still valid pointer.
156152        * rendering/RootInlineBox.h:
156153        (WebCore):
156154        (WebCore::RootInlineBox::paginationStrut):
156155        (WebCore::RootInlineBox::setPaginationStrut):
156156        (WebCore::RootInlineBox::isFirstAfterPageBreak):
156157        (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
156158        (WebCore::RootInlineBox::paginatedLineWidth):
156159        (WebCore::RootInlineBox::setPaginatedLineWidth):
156160        (RootInlineBox):
156161        (WebCore::RootInlineBox::containingRegion):
156162        (WebCore::RootInlineBox::hasContainingRegion): Use this to determine if the line has a region or not.
156163        (WebCore::RootInlineBox::ensureLineFragmentationData):
156164        (LineFragmentationData):
156165        (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
156166
156167
1561682012-11-26  Michelangelo De Simone  <michelangelo@webkit.org>
156169
156170        [CSS Shaders] Add IDL file and bindings for mix function
156171        https://bugs.webkit.org/show_bug.cgi?id=93011
156172
156173        Reviewed by Dean Jackson.
156174
156175        JavaScript bindings have been added for the Custom Filter mix()
156176        function (WebKitCSSMixFunctionValue). As of now, this is only a
156177        placeholder that extends CSSValueList without adding any new
156178        property.
156179
156180        Test: css3/filters/custom/custom-filter-mix-bindings.html
156181
156182        * CMakeLists.txt: mix() IDL has been added to the Generator;
156183        DerivedSources have been included.
156184        * DerivedSources.cpp: Ditto.
156185        * DerivedSources.make: Ditto.
156186        * DerivedSources.pri: Ditto.
156187        * GNUmakefile.list.am: Ditto.
156188        * WebCore.gypi: Ditto.
156189        * WebCore.vcproj/WebCore.vcproj: Ditto.
156190        * WebCore.xcodeproj/project.pbxproj: Ditto.
156191        * bindings/js/JSCSSValueCustom.cpp:
156192        (WebCore::toJS): return a JSC DOM wrapper for WebKitCSSMixFunctionValue.
156193        * bindings/v8/custom/V8CSSValueCustom.cpp:
156194        (WebCore::V8CSSValue::dispatchWrapCustom): Ditto, for V8.
156195        * css/WebKitCSSMixFunctionValue.idl: Added.
156196
1561972012-11-26  Simon Fraser  <simon.fraser@apple.com>
156198
156199        Optimize layer updates after scrolling
156200        https://bugs.webkit.org/show_bug.cgi?id=102635
156201
156202        Reviewed by Sam Weinig.
156203
156204        updateLayerPositionsAfterScroll() previously unconditionally cleared clip
156205        rects, and recomputed repaint rects too often. Recomputing both of these
156206        can be very expensive, as they involve tree walks up to the root.
156207        
156208        We can optimize layer updates after document scrolling by only clearing clip
156209        rects, and recomputing repaint rects, if we encounter a fixed- or sticky-position
156210        element. For overflow scroll, we have to clear clip rects and recompute repaint rects.
156211
156212        * page/FrameView.cpp:
156213        (WebCore::FrameView::repaintFixedElementsAfterScrolling): Call updateLayerPositionsAfterDocumentScroll().
156214        * rendering/RenderLayer.cpp:
156215        (WebCore::RenderLayer::updateLayerPositions): Call clearClipRects() because
156216        updateLayerPosition() no longer does.
156217        (WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll): Version of updateLayerPositionsAfterScroll()
156218        that is for document scrolls. It has no need to push layers to the geometry map.
156219        (WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll): Pushes layers to the geometry map,
156220        and calls updateLayerPositionsAfterScroll() with the IsOverflowScroll flag.
156221        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Set the HasChangedAncestor flag
156222        if our location changed, and use that as a hint to clear cached rects. Be more conservative
156223        than before about when to clear cached clip rects.
156224        (WebCore::RenderLayer::updateLayerPosition):  Move responsibility for calling
156225        clearClipRects() ouf of this function and into callers.
156226        (The one caller outside RenderLayer will be removed via bug 102624).
156227        Return a bool indicating whether our position changed.
156228        (WebCore::RenderLayer::scrollTo): Call updateLayerPositionsAfterOverflowScroll().
156229        (WebCore::RenderLayer::updateClipRects): Added some #ifdeffed out code that is useful
156230        to verify that cached clips are correct; it's too slow to leave enabled in debug builds.
156231        * rendering/RenderLayer.h:
156232        (WebCore::RenderLayer::setLocation): Change to take a LayoutPoint, rather than separate
156233        x and y.
156234
1562352012-11-26  Rafael Brandao  <rafael.lobo@openbossa.org>
156236
156237        [Cairo] Surface should not be destroyed before its usage
156238        https://bugs.webkit.org/show_bug.cgi?id=103273
156239
156240        Reviewed by Brent Fulgham.
156241
156242        * platform/graphics/texmap/TextureMapperGL.cpp:
156243        (WebCore::TextureMapperGL::drawRepaintCounter): There's some calls to get
156244        the bits and stride from surface right after its destructions. It should
156245        be postponed to avoid annoying bugs.
156246
1562472012-11-26  Julien Chaffraix  <jchaffraix@webkit.org>
156248
156249        RenderBox::computePercentageLogicalHeight should use containingBlockLogicalWidthForContent
156250        https://bugs.webkit.org/show_bug.cgi?id=103075
156251
156252        Reviewed by Ojan Vafai.
156253
156254        Using the containing block's content logical block was working for most renderers but 2 renderers
156255        were special and were broken in orthogonal writing modes:
156256        - captions as they override containingBlockLogicalWidthForContent to return the table's logical width.
156257        - multi-column renderers as they override availableLogicalWidth to constrain the child to the column logical width.
156258
156259        By switching to containingBlockLogicalWidthForContent, we got those 2 cases covered.
156260
156261        Tests: fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html
156262               fast/table/caption-orthogonal-writing-mode-sizing.html
156263
156264        * rendering/RenderBox.cpp:
156265        (WebCore::RenderBox::computePercentageLogicalHeight):
156266        Updated the function to track which renderer's containing block we use and call
156267        containingBlockLogicalWidthForContent on it.
156268
1562692012-11-26  Abhishek Arya  <inferno@chromium.org>
156270
156271        Crash in Frame::dispatchVisibilityStateChangeEvent.
156272        https://bugs.webkit.org/show_bug.cgi?id=102053
156273
156274        Reviewed by Adam Barth.
156275
156276        Child frame can go away inside webkitvisibilitychange
156277        event handler. Store it in a ref counted vector.
156278
156279        Test: fast/frames/page-visibility-crash.html
156280
156281        * page/Frame.cpp:
156282        (WebCore::Frame::dispatchVisibilityStateChangeEvent):
156283
1562842012-11-26  Hurnjoo Lee  <hurnjoo.lee@samsung.com>
156285
156286        [Cairo] fillRectWithColor with Color::transparent doesn't perform anything
156287        https://bugs.webkit.org/show_bug.cgi?id=101911
156288
156289        Reviewed by Kenneth Rohde Christiansen.
156290
156291        fillRectWithColor with Color::transparent doesn't perform anything
156292        because fillRectWithColor does early-return if the alpha value of
156293        color is zero. But we expect that fill the rect with transparent color
156294        in case the cairo_operator is CAIRO_OPERATOR_SOURCE.
156295
156296        Covered by existing tests.
156297
156298        * platform/graphics/cairo/GraphicsContextCairo.cpp:
156299        (WebCore::fillRectWithColor):Add condition to prevent early-return if
156300        cairo_operator is not CAIRO_OPERATOR_OVER
156301
1563022012-11-26  Jae Hyun Park  <jae.park@company100.net>
156303
156304        Remove redundant assignment in TextureMapperLayer::flushCompositingStateSelf
156305        https://bugs.webkit.org/show_bug.cgi?id=103233
156306
156307        Reviewed by Noam Rosenthal.
156308
156309        This patch removes redundant assignment in TextureMapperLayer::flushCompositingStateSelf.
156310
156311        No new tests, because no change in bahavior.
156312
156313        * platform/graphics/texmap/TextureMapperLayer.cpp:
156314        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
156315
1563162012-11-26  Tamas Czene  <tczene@inf.u-szeged.hu>
156317
156318        OpenCL version of SourceAlpha, SourceGraphics and FETurbulence filter effects 
156319        https://bugs.webkit.org/show_bug.cgi?id=99829
156320
156321        Reviewed by Zoltan Herczeg.
156322
156323        This patch contains the OpenCL implementation of SourceAlpha, SourceGraphic, FETurbulence and a simple OpenCL environment. 
156324        At the moment only the Qt build system is supported 
156325        ~3x speed-up (depending on hardware configuration)
156326
156327        * Target.pri:
156328        * WebCore.pri:
156329        * platform/graphics/filters/FETurbulence.h: Added platformApplyOpenCL() virtual function.
156330        (FETurbulence):
156331        * platform/graphics/filters/FilterEffect.cpp: Added platform specific apply.
156332        (WebCore::FilterEffect::apply):
156333        (WebCore):
156334        (WebCore::FilterEffect::platformApplyOpenCL): A function to use software computing if a filter is not implemented on OpenCL. It will be deleted after all of the filters are implemented.
156335        (WebCore::FilterEffect::clearResult):
156336        (WebCore::FilterEffect::asImageBuffer):
156337        (WebCore::FilterEffect::openCLImageToImageBuffer): Gets the result of the filter from the OpenCL device and converts it to ImageBuffer type.
156338        (WebCore::FilterEffect::createOpenCLImageResult): Allocates memory on OpenCL device and if it gets an image as a parameter, it uploads the image to the OpenCL device.
156339        (WebCore::FilterEffect::transformResultColorSpace): 
156340        * platform/graphics/filters/FilterEffect.h:
156341        (FilterEffect):
156342        (WebCore::FilterEffect::openCLImage):
156343        (WebCore::FilterEffect::setOpenCLImage):
156344        (WebCore::FilterEffect::hasResult):
156345        * platform/graphics/filters/SourceAlpha.h:
156346        (SourceAlpha):
156347        * platform/graphics/filters/SourceGraphic.h:
156348        (SourceGraphic):
156349        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp: Added.
156350        (WebCore):
156351        (WebCore::FilterContextOpenCL::context): Configures the OpenCL environment.
156352        (WebCore::FilterContextOpenCL::createOpenCLImage): Allocates memory on OpenCL device.
156353        (WebCore::FilterContextOpenCL::openCLTransformColorSpace): OpenCL implementation of transformColorSpace.
156354        (WebCore::FilterContextOpenCL::compileProgram):
156355        * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Added.
156356        (WebCore):
156357        (FilterContextOpenCL):
156358        (WebCore::FilterContextOpenCL::deviceId):
156359        (WebCore::FilterContextOpenCL::deviceContext):
156360        (WebCore::FilterContextOpenCL::commandQueue):
156361        (RunKernel):
156362        (WebCore::FilterContextOpenCL::RunKernel::RunKernel):
156363        (WebCore::FilterContextOpenCL::RunKernel::addArgument):
156364        (WebCore::FilterContextOpenCL::RunKernel::run):
156365        (WebCore::FilterContextOpenCL::kernelByName): Returns the reference of a function in the OpenCL program.
156366        * platform/graphics/gpu/opencl/OpenCLFESourceAlpha.cpp: Added.
156367        (WebCore):
156368        (WebCore::SourceAlpha::platformApplyOpenCL):
156369        * platform/graphics/gpu/opencl/OpenCLFESourceGraphic.cpp: Added.
156370        (WebCore):
156371        (WebCore::SourceGraphic::platformApplyOpenCL):
156372        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp: Added.
156373        (WebCore):
156374        (WebCore::FilterContextOpenCL::compileFETurbulence):
156375        (WebCore::FilterContextOpenCL::applyFETurbulence):
156376        (WebCore::FETurbulence::platformApplyOpenCL):
156377        * platform/graphics/gpu/opencl/OpenCLHandle.h: Added.
156378        (WebCore):
156379        (OpenCLHandle):
156380        (WebCore::OpenCLHandle::OpenCLHandle):
156381        (WebCore::OpenCLHandle::operator cl_mem):
156382        (WebCore::OpenCLHandle::operator=):
156383        (WebCore::OpenCLHandle::operator UnspecifiedBoolType):
156384        (WebCore::OpenCLHandle::handleAddress):
156385        (WebCore::OpenCLHandle::clear):
156386
1563872012-11-26  'Pavel Feldman'  <pfeldman@chromium.org>
156388
156389        Not reviewed: follow up for r135720, fixing node highlight.
156390
156391        * inspector/InspectorOverlayPage.html:
156392
1563932012-11-26  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
156394
156395        [EFL] Crashes in compositing layout tests with AC on.
156396        https://bugs.webkit.org/show_bug.cgi?id=103144
156397
156398        Reviewed by Noam Rosenthal.
156399
156400        Application could leave texture packing parameters in non-zero state before
156401        texture mapper drawing/texture uploading. To avoid crash texture upload should
156402        specify packing parameters before each texture upload if packing is supported.
156403
156404        Covered by existing tests.
156405
156406        * platform/graphics/texmap/TextureMapperGL.cpp:
156407        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
156408
1564092012-11-26  George Staikos  <staikos@webkit.org>
156410
156411        [BlackBerry] Remove a lot of unnecessary and incorrect code causing crashes
156412        https://bugs.webkit.org/show_bug.cgi?id=103199
156413
156414        Reviewed by Yong Li.
156415
156416        This is the first big step to unforking this code.  It's very close to
156417        where it needs to be now, but the first step is to get rid of the
156418        crashes by deleting code that isn't needed and makes bad assumptions
156419        about object lifetime.  Crashes were found by automation without
156420        test case or reproduction steps.
156421
156422        * loader/blackberry/CookieJarBlackBerry.cpp:
156423        (WebCore::cookies): delete most code
156424        (WebCore::setCookies): delete most code
156425
1564262012-11-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
156427
156428        Viewport CSS rules should not clamp values like Viewport META
156429        https://bugs.webkit.org/show_bug.cgi?id=103068
156430
156431        Reviewed by Kenneth Rohde Christiansen.
156432
156433        CSS Device Adaption does not clamp the length and zoom values the
156434        same way as the Viewport META. In fact, they are not clamped at all,
156435        but instead, we just make sure that length values are at least 1px.
156436
156437        Tests: css3/device-adapt/opera/constrain-018.xhtml
156438               css3/device-adapt/opera/constrain-019.xhtml
156439               css3/device-adapt/opera/constrain-023.xhtml
156440               css3/device-adapt/opera/constrain-024.xhtml
156441
156442        * dom/ViewportArguments.cpp:
156443        (WebCore::ViewportArguments::resolve):
156444
1564452012-11-26  Mike West  <mkwst@chromium.org>
156446
156447        Web Inspector: URLs containing '^' are improperly linked in console messages.
156448        https://bugs.webkit.org/show_bug.cgi?id=103248
156449
156450        Reviewed by Yury Semikhatsky.
156451
156452        This patch adds '^' to WebInspector's regex of acceptable characters for
156453        URLs that it knows how to display.
156454
156455        Test: http/tests/inspector/network/script-as-text-loading-with-caret.html
156456
156457        * inspector/front-end/ResourceUtils.js:
156458        (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
156459
1564602012-11-26  Yury Semikhatsky  <yurys@chromium.org>
156461
156462        Unreviewed. Fix Qt minimal compilation after r135713.
156463
156464        * inspector/InspectorController.h: hid file content behind ENABLE(INSPECTOR)
156465
1564662012-11-26  Pavel Feldman  <pfeldman@chromium.org>
156467
156468        Web Inspector: object preview does not render node id, className; logs too many functions for jQuery.
156469        https://bugs.webkit.org/show_bug.cgi?id=103222
156470
156471        Reviewed by Yury Semikhatsky.
156472
156473        - Added node class name and id into the preview
156474        - Now keeps track of properties separately from array indexes.
156475
156476        * inspector/InjectedScriptSource.js:
156477        (.):
156478        * inspector/InspectorOverlayPage.html:
156479        * inspector/front-end/ConsoleMessage.js:
156480        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
156481        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
156482
1564832012-11-26  Florin Malita  <fmalita@chromium.org>
156484
156485        RenderSVGResourceContainer does not clear cached data on removal
156486        https://bugs.webkit.org/show_bug.cgi?id=102620
156487
156488        Reviewed by Dirk Schulze.
156489
156490        RenderSVGResourceContainer::removeClient needs to also remove the client from specialized
156491        caches, otherwise we can end up with stale references.
156492
156493        Test: svg/custom/stale-resource-data-crash.svg
156494
156495        * rendering/svg/RenderSVGResourceContainer.cpp:
156496        (WebCore::RenderSVGResourceContainer::removeClient):
156497
1564982012-11-26  'Pavel Feldman'  <pfeldman@chromium.org>
156499
156500        Not reviewed: rolling out r135714 and r135712 for breaking debug tests.
156501
156502        * inspector/InjectedScriptSource.js:
156503        (.):
156504        * inspector/InspectorOverlayPage.html:
156505        * inspector/front-end/ConsoleMessage.js:
156506        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
156507
1565082012-11-26  Zeno Albisser  <zeno@webkit.org>
156509
156510        [Qt][Win] buildfix after r135706.
156511        https://bugs.webkit.org/show_bug.cgi?id=103249
156512
156513        The Windows implementation of GraphicsSurface cannot use
156514        m_size anymore, as this member has been removed.
156515        Further it needs to implement a platformSize() function.
156516
156517        Reviewed by Kenneth Rohde Christiansen.
156518
156519        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
156520        (WebCore::GraphicsSurfacePrivate::size):
156521        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
156522        (WebCore::GraphicsSurface::platformSize):
156523        (WebCore):
156524
1565252012-11-26  Yury Semikhatsky  <yurys@chromium.org>
156526
156527        Web Inspector: unify agents handling in Page and Worker inspector controllers
156528        https://bugs.webkit.org/show_bug.cgi?id=103238
156529
156530        Reviewed by Alexander Pavlov.
156531
156532        Introduced a class that represents a collection of inspector agents and allows
156533        to call methods declared on InspectorAgentBaseInterface for all registered agents.
156534        InspectorController and WorkerInspectorController switched to this class.
156535
156536        * inspector/InspectorBaseAgent.cpp:
156537        (WebCore::InspectorAgentRegistry::append):
156538        (WebCore):
156539        (WebCore::InspectorAgentRegistry::setFrontend):
156540        (WebCore::InspectorAgentRegistry::clearFrontend):
156541        (WebCore::InspectorAgentRegistry::restore):
156542        (WebCore::InspectorAgentRegistry::registerInDispatcher):
156543        (WebCore::InspectorAgentRegistry::discardAgents):
156544        * inspector/InspectorBaseAgent.h:
156545        (InspectorAgentRegistry):
156546        (WebCore):
156547        * inspector/InspectorController.cpp:
156548        (WebCore::InspectorController::~InspectorController):
156549        (WebCore::InspectorController::connectFrontend):
156550        (WebCore::InspectorController::disconnectFrontend):
156551        (WebCore::InspectorController::reconnectFrontend):
156552        * inspector/InspectorController.h:
156553        (InspectorController):
156554
1565552012-11-26  Pavel Feldman  <pfeldman@chromium.org>
156556
156557        Web Inspector: object preview does not render node id, className; logs too many functions for jQuery.
156558        https://bugs.webkit.org/show_bug.cgi?id=103222
156559
156560        Reviewed by Yury Semikhatsky.
156561
156562        - Added node class name and id into the preview
156563        - Now keeps track of properties separately from array indexes.
156564
156565        * inspector/InjectedScriptSource.js:
156566        (.):
156567        * inspector/InspectorOverlayPage.html:
156568        * inspector/front-end/ConsoleMessage.js:
156569        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
156570        (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreview):
156571
1565722012-11-26  Andrey Adaikin  <aandrey@chromium.org>
156573
156574        Web Inspector: [WebGL] Save WebGL extensions and restore on replay
156575        https://bugs.webkit.org/show_bug.cgi?id=103141
156576
156577        Reviewed by Yury Semikhatsky.
156578
156579        Save WebGL extensions that were enabled by the application, and restore it before the replay.
156580        Drive-by: remove redundant if- checks in WebGL custom function wrappers (similar to 2D canvas).
156581
156582        * inspector/InjectedScriptCanvasModuleSource.js:
156583        (.):
156584
1565852012-11-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
156586
156587        HitTestResult should not be a HitTestLocation
156588        https://bugs.webkit.org/show_bug.cgi?id=101590
156589
156590        Reviewed by Sam Weinig.
156591
156592        Change HitTestResult from being a HitTestLocation to having a HitTestLocation. 
156593        A result of a test should not be a special case of the location of the test.
156594
156595        No change in functionality. No new tests.
156596
156597        * rendering/HitTestResult.cpp:
156598        (WebCore::HitTestResult::HitTestResult):
156599        (WebCore::HitTestResult::operator=):
156600        (WebCore::HitTestResult::isSelected):
156601        (WebCore::HitTestResult::spellingToolTip):
156602        (WebCore::HitTestResult::replacedString):
156603        * rendering/HitTestResult.h:
156604        (WebCore::HitTestResult::isRectBasedTest):
156605        (WebCore::HitTestResult::pointInInnerNodeFrame):
156606        (WebCore::HitTestResult::hitTestLocation):
156607        (HitTestResult):
156608
1566092012-11-26  Marja Hölttä  <marja@chromium.org>
156610
156611        Circular reference between Document and MediaQueryMatcher.
156612        https://bugs.webkit.org/show_bug.cgi?id=103242
156613
156614        Reviewed by Kenneth Rohde Christiansen.
156615
156616        It's not enough to clean up listeners in MediaQueryMatcher in ~Document,
156617        since MediaQueryListListener keeps the Document alive. This caused
156618        www.crbug.com/113983.
156619
156620        No new tests: No visible change in behavior (except that it doesn't leak memory).
156621
156622        * dom/Document.cpp:
156623        (WebCore::Document::~Document):
156624        (WebCore::Document::detach):
156625
1566262012-11-26  Eugene Klyuchnikov  <eustas@chromium.org>
156627
156628        Web Inspector: HeapProfiler: remove snapshotView reference from data-grids.
156629        https://bugs.webkit.org/show_bug.cgi?id=103240
156630
156631        Reviewed by Yury Semikhatsky.
156632
156633        Cleanup: remove redundant dependency.
156634
156635        * inspector/front-end/HeapSnapshotDataGrids.js: Do not store view ref.
156636        * inspector/front-end/HeapSnapshotGridNodes.js:
156637        Removed unused assignments.
156638        * inspector/front-end/HeapSnapshotView.js:
156639        Do not pass self to data-grids.
156640
1566412012-11-26  Zeno Albisser  <zeno@webkit.org>
156642
156643        GraphicsSurface should only store its size in a single place.
156644        https://bugs.webkit.org/show_bug.cgi?id=103143
156645
156646        Reviewed by Kenneth Rohde Christiansen.
156647
156648        * platform/graphics/qt/GraphicsContext3DQt.cpp:
156649        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
156650            Cosmetics only.
156651        * platform/graphics/surfaces/GraphicsSurface.cpp:
156652        (WebCore::GraphicsSurface::size):
156653            Return the size as received from the platform abstraction.
156654        (WebCore):
156655        (WebCore::GraphicsSurface::GraphicsSurface):
156656        * platform/graphics/surfaces/GraphicsSurface.h:
156657        (GraphicsSurface):
156658            Remove data member m_size.
156659        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
156660        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
156661            Always take the size of the GraphicsSurface as an argument.
156662        (WebCore::GraphicsSurfacePrivate::size):
156663        (GraphicsSurfacePrivate):
156664        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
156665            Retrieve the size from GraphicsSurfacePrivate where necessary.
156666        (WebCore::GraphicsSurface::platformSize):
156667        (WebCore):
156668        (WebCore::GraphicsSurface::platformImport):
156669        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
156670        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
156671            Add a constructor that takes a window id as an argument
156672            for the receiving side of the GraphcisSurface.
156673            The GraphicsSurface can then determine its dimensions
156674            from the provided XWindow.
156675        (WebCore::GraphicsSurfacePrivate::createPixmap):
156676        (WebCore::GraphicsSurfacePrivate::size):
156677            Query the size of the GraphicsSurface backing from X.
156678        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
156679            Retrieve the size from GraphicsSurfacePrivate where necessary.
156680        (WebCore::GraphicsSurface::platformSize):
156681        (WebCore):
156682        (WebCore::GraphicsSurface::platformImport):
156683
1566842012-11-26  Thiago Santos  <thiago.sousa.santos@collabora.com>
156685
156686        [GStreamer] Floating reference handling fix
156687        https://bugs.webkit.org/show_bug.cgi?id=101349
156688
156689        Reviewed by Philippe Normand.
156690
156691        GStreamer 0.10 and 1.0 differ when creating GstGhostPad from pad
156692        templates, the 1.0 doesn't take ownership on the passed
156693        GstPadTemplate, while 0.10 does. So this patch adds a
156694        GStreamerVersioning function to handle this different approach
156695        transparently in Webkit gstreamer elements.
156696
156697        Existing media tests cover this change.
156698
156699        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
156700        (webkit_web_audio_src_init):
156701        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
156702        (webkitGstGhostPadFromStaticTemplate):
156703        * platform/graphics/gstreamer/GStreamerVersioning.h:
156704        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
156705        (webkit_web_src_init):
156706
1567072012-11-26  Kentaro Hara  <haraken@chromium.org>
156708
156709        [V8] Remove WorkerContextExecutionProxy
156710        https://bugs.webkit.org/show_bug.cgi?id=103210
156711
156712        Reviewed by Adam Barth.
156713
156714        This patch moves all methods in WorkerContextExecutionProxy
156715        to WorkerScriptController.
156716
156717        Due to the dependency between WorkerContextExecutionProxy's methods,
156718        it is a bit difficult to split this patch into pieces.
156719        This patch simply moves methods without changing their logic.
156720        Also this patch doesn't remove empty WorkerContextExecutionProxy.{h,cpp}
156721        to keep the diff sane. I will address these issues in a follow-up patch.
156722
156723        Tests: fast/worker/*
156724
156725        * bindings/v8/ScriptState.cpp:
156726        (WebCore::scriptStateFromWorkerContext):
156727        * bindings/v8/V8Binding.cpp:
156728        (WebCore::toV8Context):
156729        * bindings/v8/V8WorkerContextEventListener.cpp:
156730        (WebCore::V8WorkerContextEventListener::handleEvent):
156731        * bindings/v8/WorkerContextExecutionProxy.cpp:
156732        * bindings/v8/WorkerContextExecutionProxy.h:
156733        * bindings/v8/WorkerScriptController.cpp:
156734        (WebCore::WorkerScriptController::WorkerScriptController):
156735        (WebCore::WorkerScriptController::~WorkerScriptController):
156736        (WebCore::WorkerScriptController::dispose):
156737        (WebCore):
156738        (WebCore::WorkerScriptController::initializeIfNeeded):
156739        (WebCore::WorkerScriptController::evaluate):
156740        (WebCore::WorkerScriptController::setEvalAllowed):
156741        (WebCore::WorkerScriptController::disableEval):
156742        * bindings/v8/WorkerScriptController.h:
156743        (WebCore):
156744        (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
156745        (WorkerContextExecutionState):
156746        (WorkerScriptController):
156747        (WebCore::WorkerScriptController::context):
156748        * bindings/v8/WorkerScriptDebugServer.cpp:
156749        (WebCore::WorkerScriptDebugServer::addListener):
156750        * bindings/v8/custom/V8WorkerContextCustom.cpp:
156751        (WebCore::SetTimeoutOrInterval):
156752        (WebCore::toV8):
156753
1567542012-11-26  Hajime Morrita  <morrita@google.com>
156755
156756        [Refactoring] Some Node::isDescendant calls can be replaced with Node::contains()
156757        https://bugs.webkit.org/show_bug.cgi?id=103211
156758
156759        Reviewed by Daniel Bates.
156760
156761        A couple of call sites of isDescendant() does same as Node::contains().
156762        This change replaces these locations with Node::contains().
156763
156764        No new tests, no behavior change.
156765
156766        * dom/Node.cpp:
156767        (WebCore::checkAcceptChild):
156768        * dom/Range.cpp:
156769        (WebCore::Range::surroundContents):
156770
1567712012-11-26  Kunihiko Sakamoto  <ksakamoto@chromium.org>
156772
156773        [Chromium] Enable input type datetime-local
156774        https://bugs.webkit.org/show_bug.cgi?id=103213
156775
156776        Reviewed by Kent Tamura.
156777
156778        This patch enables <input type=datetime-local> for Chromium.
156779
156780        No new tests. Covered by existing tests.
156781
156782        * bindings/generic/RuntimeEnabledFeatures.cpp:
156783        (WebCore): Changed RuntimeEnabledFeatures::isInputTypeDateTimeLocalEnabled to true
156784        if INPUT_TYPE_DATETIMELOCAL is enabled.
156785
1567862012-11-26  Hajime Morrita  <morrita@google.com>
156787
156788        [Shadow DOM] Implement Element::createShadowRoot()
156789        https://bugs.webkit.org/show_bug.cgi?id=102911
156790
156791        Reviewed by Kentaro Hara.
156792
156793        Added an API implementation and exposed it.
156794
156795        This is basically an alias of the ShadowRoot constructor, which
156796        will be removed as bug 102913.
156797
156798        Test: fast/dom/shadow/shadow-aware-create-shdow-root.html
156799
156800        * bindings/gobject/GNUmakefile.am:
156801        * dom/Element.cpp:
156802        (WebCore::Element::createShadowRoot):
156803        (WebCore):
156804        * dom/Element.h:
156805        (Element):
156806        * dom/Element.idl:
156807
1568082012-11-26  Jon Lee  <jonlee@apple.com>
156809
156810        Extend EventDispatcher::dispatchSimulatedClick to allow sending a mouseover event
156811        https://bugs.webkit.org/show_bug.cgi?id=102610
156812        <rdar://problem/12725663>
156813
156814        Reviewed by Darin Adler.
156815
156816        Update the dispatchSimulatedClick() to take option enums for dispatching events.
156817
156818        * dom/SimulatedClickOptions.h: Added. Define two options enums. One tracks which mouse
156819        events to send. The other determines whether to force the element to repaint.
156820
156821        * dom/EventDispatcher.cpp:
156822        (WebCore::EventDispatcher::dispatchSimulatedClick): Refactor to use the option enums.
156823        * dom/EventDispatcher.h:
156824        (EventDispatcher): Update function signature.
156825
156826        * dom/Node.cpp: Refactor parameters to use the options enums rather than booleans.
156827        (WebCore::Node::dispatchSimulatedClick):
156828        * dom/Node.h:
156829
156830        Refactor. Remove redundant comments.
156831        * html/BaseCheckableInputType.cpp:
156832        (WebCore::BaseCheckableInputType::accessKeyAction):
156833        * html/BaseClickableWithKeyInputType.cpp:
156834        (WebCore::BaseClickableWithKeyInputType::accessKeyAction):
156835        * html/HTMLAnchorElement.cpp:
156836        (WebCore::HTMLAnchorElement::accessKeyAction):
156837        * html/HTMLButtonElement.cpp:
156838        (WebCore::HTMLButtonElement::accessKeyAction):
156839        * html/HTMLElement.cpp:
156840        (WebCore::HTMLElement::click):
156841        (WebCore::HTMLElement::accessKeyAction):
156842        * html/HTMLSelectElement.cpp:
156843        (WebCore::HTMLSelectElement::accessKeyAction):
156844        * html/RadioInputType.cpp:
156845        (WebCore::RadioInputType::handleKeydownEvent):
156846        * html/RangeInputType.cpp:
156847        (WebCore::RangeInputType::accessKeyAction):
156848
156849        Add SimulatedClickOptions.h.
156850        * GNUmakefile.list.am:
156851        * Target.pri:
156852        * WebCore.gypi:
156853        * WebCore.vcproj/WebCore.vcproj:
156854        * WebCore.xcodeproj/project.pbxproj:
156855
1568562012-11-26  Shinya Kawanaka  <shinyak@chromium.org>
156857
156858        [Shadow] Attaching children of a shadow host takes O(N^2) where N is the number of host children
156859        https://bugs.webkit.org/show_bug.cgi?id=103017
156860
156861        Reviewed by Hajime Morita.
156862
156863        Since ContentDistribution was just a Vector, ContentDistribution::find() took O(N). Each child of shadow host calls it.
156864        As a result, attaching children of shadow host takes O(N^2) at all.
156865
156866        In this patch, we make ContentDistribution::find() O(1) amortizedly. We introduce HashMap from a Node to Vector index,
156867        and use it for ContentDistribution::find().
156868
156869        No new tests, covered by existing tests.
156870
156871        * html/shadow/ContentDistributor.cpp:
156872        (WebCore::ContentDistribution::swap):
156873        (WebCore):
156874        (WebCore::ContentDistribution::append):
156875        (WebCore::ContentDistribution::find):
156876        (WebCore::ContentDistributor::distributeSelectionsTo):
156877        * html/shadow/ContentDistributor.h:
156878        (ContentDistribution): ContentDistribution now contains Vector and a reverse map.
156879        (WebCore::ContentDistribution::first):
156880        (WebCore::ContentDistribution::last):
156881        (WebCore::ContentDistribution::at):
156882        (WebCore::ContentDistribution::size):
156883        (WebCore::ContentDistribution::isEmpty):
156884        (WebCore::ContentDistribution::clear):
156885        (WebCore::ContentDistribution::contains):
156886        (WebCore::ContentDistribution::nodes):
156887
1568882012-11-26  Dan Carney  <dcarney@google.com>
156889
156890        [V8] Give isolated shells a lifecycle like that of main shells
156891        https://bugs.webkit.org/show_bug.cgi?id=96522
156892
156893        Reviewed by Adam Barth.
156894
156895        Refactored the isolated shells in ScriptController
156896        to be cleaned up the same way the main shell is.
156897
156898        No new tests. No change in functionality.
156899
156900        * bindings/v8/ScriptController.cpp:
156901        (WebCore::ScriptController::~ScriptController):
156902        (WebCore::ScriptController::clearForOutOfMemory):
156903        (WebCore::ScriptController::clearForClose):
156904        (WebCore::ScriptController::clearWindowShell):
156905        * bindings/v8/ScriptController.h:
156906        (ScriptController):
156907        * bindings/v8/V8DOMWindowShell.cpp:
156908        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
156909        (WebCore::V8DOMWindowShell::clearForClose):
156910        * bindings/v8/V8DOMWindowShell.h:
156911        (V8DOMWindowShell):
156912
1569132012-11-25  Sheriff Bot  <webkit.review.bot@gmail.com>
156914
156915        Unreviewed, rolling out r135656.
156916        http://trac.webkit.org/changeset/135656
156917        https://bugs.webkit.org/show_bug.cgi?id=103218
156918
156919        Made a few SVG tests crash on all platforms (Requested by
156920        apavlov on #webkit).
156921
156922        * css/CSSComputedStyleDeclaration.cpp:
156923        (WebCore::valueForFamily):
156924        * css/CSSValuePool.cpp:
156925        (WebCore::CSSValuePool::createFontFamilyValue):
156926
1569272012-11-25  Takashi Sakamoto  <tasak@google.com>
156928
156929        WebCore::RenderBlock::determineStartPosition crash
156930        https://bugs.webkit.org/show_bug.cgi?id=98993
156931
156932        Reviewed by Brent Fulgham.
156933
156934        If we move some node and the node has some text,
156935        InlineFlowBox::removeChild() is invoked. The method invokes
156936        RootInlineBox::childRemoved(). childRemoved() checks whether the
156937        removed inlinebox has the renderer of its parent's line break object.
156938        If so, use setLineBreakInfo to make the parent's line break info to
156939        be 0. However in RenderBlock::determineStartPosition(), the code
156940        assume that all line break info is solved, i.e.
156941        prevRootBox->lineBreakObj()->isText(). Since lineBreakObj() returns 0
156942        because of removeChild(), determineStartPosition crash occurs.
156943
156944        Test: fast/inline/inline-box-append-child-crash.html
156945
156946        * rendering/RenderBlockLineLayout.cpp:
156947        (WebCore::RenderBlock::determineStartPosition):
156948        Checks whether lineBreakObj() is 0 or not before using lineBreakObj().
156949
1569502012-11-25  Nikita Vasilyev  <me@elv1s.ru>
156951
156952        Web Inspector: use native Element.prototype.normalize instead of custom defined Element.prototype.pruneEmptyTextNodes
156953        https://bugs.webkit.org/show_bug.cgi?id=103205
156954
156955        Reviewed by Pavel Feldman.
156956
156957        * inspector/front-end/DOMExtension.js:
156958        * inspector/front-end/TextPrompt.js:
156959        (WebInspector.TextPrompt.prototype.clearAutoComplete):
156960        (WebInspector.TextPrompt.prototype._completionsReady):
156961        (WebInspector.TextPrompt.prototype.applySuggestion):
156962
1569632012-11-25  Nikita Vasilyev  <me@elv1s.ru>
156964
156965        Web Inspector: remove unused DOM methods
156966        https://bugs.webkit.org/show_bug.cgi?id=103204
156967
156968        Reviewed by Pavel Feldman.
156969
156970        * inspector/front-end/DOMExtension.js:
156971
1569722012-11-25  Nikita Vasilyev  <me@elv1s.ru>
156973
156974        Web Inspector: Remove unused Array.convert method
156975        https://bugs.webkit.org/show_bug.cgi?id=103202
156976
156977        Reviewed by Daniel Bates.
156978
156979        * inspector/front-end/utilities.js:
156980
1569812012-11-25  Chris Fleizach  <cfleizach@apple.com>
156982
156983        AX: file upload input cannot be activated with VoiceOver
156984        https://bugs.webkit.org/show_bug.cgi?id=100343
156985
156986        Reviewed by Sam Weinig.
156987
156988        Simulated events were not allowed to be processed in the file input type in the DOMActivate handler.
156989        This was a problem for accessibility clients which rely on simulated events.
156990
156991        The solution is to mark the UserGestureIndicator as definitely processing an event.
156992
156993        Test: accessibility/file-upload-button-with-axpress.html
156994
156995        * accessibility/AccessibilityObject.cpp:
156996        (WebCore::AccessibilityObject::press):
156997
1569982012-11-25  Nikita Vasilyev  <me@elv1s.ru>
156999
157000        Web Inspector: dispatch an event upon heap snapshot filter change
157001        https://bugs.webkit.org/show_bug.cgi?id=103201
157002
157003        Reviewed by Pavel Feldman.
157004
157005        Dispatch heapSnapshotFilterChanged event so it can be received by third parties.
157006
157007        * inspector/front-end/HeapSnapshotView.js:
157008        (WebInspector.HeapSnapshotView.prototype._changeFilter):
157009        * inspector/front-end/UserMetrics.js:
157010
1570112012-11-25  Kent Tamura  <tkent@chromium.org>
157012
157013        Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
157014        https://bugs.webkit.org/show_bug.cgi?id=103195
157015
157016        Reviewed by Kentaro Hara.
157017
157018        HTMLInputElement::subtreeHasChanged is called only if the input is
157019        a text field. The code should be moved to TextFieldInputType.
157020
157021        No new tests. This should not change any behavior.
157022
157023        * html/HTMLInputElement.cpp:
157024        - Remove unnecessary NumberInputType.h inclusion.
157025        - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
157026        (WebCore::HTMLInputElement::subtreeHasChanged):
157027        Move the code to TextFieldInputType::subtreeHasChanged except
157028        calculateAndAdjustDirectionality, which is a protected member of
157029        HTMLElement.
157030        * html/HTMLInputElement.h:
157031        (HTMLInputElement): Remove convertFromVisibleValue.
157032
157033        * html/InputType.cpp:
157034        Move convertFromVisibleValue to TextFieldInputType.
157035        (WebCore::InputType::subtreeHasChanged):
157036        Add ASSERT_NOT_REACHED.
157037        * html/InputType.h:
157038        (InputType): Remove convertFromVisibleValue.
157039
157040        * html/TextFieldInputType.cpp:
157041        (WebCore::TextFieldInputType::convertFromVisibleValue):
157042        Moved from InputType.
157043        (WebCore::TextFieldInputType::subtreeHasChanged):
157044        Moved from HTMLInputElement. A latter part is moved to
157045        didSetValueByUserEdit to be hooked by SearchInputType.
157046        (WebCore::TextFieldInputType::didSetValueByUserEdit):
157047        Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
157048        * html/TextFieldInputType.h:
157049        (TextFieldInputType):
157050        - Move convertFromVisibleValue from InputType.
157051        - Add didSetValueByUserEdit and subtreeHasChanged.
157052
157053        * html/SearchInputType.cpp:
157054        (WebCore::SearchInputType::didSetValueByUserEdit):
157055        Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
157056        * html/SearchInputType.h:
157057        (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
157058
1570592012-11-22  Kentaro Hara  <haraken@chromium.org>
157060
157061        [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
157062        https://bugs.webkit.org/show_bug.cgi?id=103061
157063
157064        Reviewed by Adam Barth.
157065
157066        This is an incremental step to remove WorkerExecutionContextProxy.
157067        This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
157068        This patch also renames methods so that the names become consistent
157069        between the main thread and workers.
157070
157071        No tests. No change in behavior.
157072
157073        * bindings/v8/V8Initializer.cpp:
157074        (WebCore::reportFatalErrorInMainThread):
157075        (WebCore::messageHandlerInMainThread):
157076        (WebCore::failedAccessCheckCallbackInMainThread):
157077        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
157078        (WebCore::reportFatalErrorInWorker):
157079        (WebCore):
157080        (WebCore::messageHandlerInWorker):
157081        (WebCore::V8Initializer::initializeWorkerIfNeeded):
157082        * bindings/v8/V8Initializer.h:
157083        (V8Initializer):
157084        * bindings/v8/WorkerContextExecutionProxy.cpp:
157085        (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
157086        * bindings/v8/WorkerContextExecutionProxy.h:
157087        (WorkerContextExecutionProxy):
157088
1570892012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
157090
157091        [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
157092        https://bugs.webkit.org/show_bug.cgi?id=103189
157093
157094        Reviewed by Kenneth Rohde Christiansen.
157095
157096        Check if the entry size and type changed in
157097        RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
157098        useless processing if one of them did not change.
157099
157100        Remove useless call to cairo_surface_finish() since
157101        we are using a smart pointer for the surface.
157102
157103        Resize the edge object *after* loading its content
157104        from the theme file as it seems more logical this
157105        way.
157106
157107        No new tests, no behavior change for layout tests.
157108
157109        * platform/efl/RenderThemeEfl.cpp:
157110        (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
157111        * platform/efl/RenderThemeEfl.h:
157112        (ThemePartCacheEntry):
157113
1571142012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
157115
157116        Rename DynamicNodeList to LiveNodeList
157117        https://bugs.webkit.org/show_bug.cgi?id=103197
157118
157119        Reviewed by Ojan Vafai.
157120
157121        Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
157122        http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
157123        "A collection (either NodeList or HTMLCollection) can be either live or static".
157124
157125        Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
157126        into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
157127        is the former calling registerNodeListCache and unregisterNodeListCache on Document.
157128
157129        This patch completes the series of simplification of NodeList/HTMLCollection classes.
157130
157131        * CMakeLists.txt:
157132        * GNUmakefile.list.am:
157133        * Target.pri:
157134        * WebCore.gypi:
157135        * WebCore.xcodeproj/project.pbxproj:
157136        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
157137        (WebCore::getNamedItems):
157138        * bindings/js/JSNodeListCustom.cpp:
157139        (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
157140        * bindings/v8/custom/V8NodeListCustom.cpp:
157141        (WebCore::V8NodeList::opaqueRootForGC):
157142        * dom/ChildNodeList.cpp:
157143        (WebCore::ChildNodeList::ChildNodeList):
157144        (WebCore::ChildNodeList::nodeMatches):
157145        * dom/ChildNodeList.h:
157146        * dom/ClassNodeList.cpp:
157147        (WebCore::ClassNodeList::ClassNodeList):
157148        * dom/ClassNodeList.h:
157149        * dom/DOMAllInOne.cpp:
157150        * dom/Document.cpp:
157151        (WebCore::Document::registerNodeListCache):
157152        (WebCore::Document::unregisterNodeListCache):
157153        (WebCore):
157154        * dom/Document.h:
157155        (WebCore):
157156        (Document):
157157        * dom/DynamicNodeList.cpp: Removed.
157158        * dom/DynamicNodeList.h: Removed.
157159        * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
157160        (WebCore::LiveNodeListBase::rootNode):
157161        (WebCore::LiveNodeListBase::invalidateCache):
157162        (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
157163        (WebCore::LiveNodeListBase::reportMemoryUsage):
157164        (WebCore::LiveNodeList::namedItem):
157165        * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
157166        (WebCore::LiveNodeListBase::LiveNodeListBase):
157167        (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
157168        (WebCore::LiveNodeList::LiveNodeList):
157169        (WebCore::LiveNodeList::~LiveNodeList):
157170        (LiveNodeList):
157171        * dom/MicroDataItemList.cpp:
157172        (WebCore::MicroDataItemList::MicroDataItemList):
157173        * dom/MicroDataItemList.h:
157174        * dom/NameNodeList.cpp:
157175        (WebCore::NameNodeList::NameNodeList):
157176        * dom/NameNodeList.h:
157177        * dom/Node.cpp:
157178        (WebCore::shouldInvalidateNodeListCachesForAttr):
157179        (WebCore::Document::invalidateNodeListCaches):
157180        * dom/Node.h:
157181        (WebCore):
157182        * dom/NodeList.h:
157183        (WebCore::NodeList::isLiveNodeList):
157184        * dom/NodeRareData.h:
157185        (NodeListsNodeData):
157186        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
157187        (WebCore::NodeListsNodeData::removeCacheWithName):
157188        (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
157189        (WebCore::NodeListsNodeData::adoptTreeScope):
157190        * dom/PropertyNodeList.cpp:
157191        (WebCore::PropertyNodeList::PropertyNodeList):
157192        * dom/PropertyNodeList.h:
157193        * dom/TagNodeList.cpp:
157194        (WebCore::TagNodeList::TagNodeList):
157195        * dom/TagNodeList.h:
157196        * html/HTMLCollection.cpp:
157197        (WebCore::HTMLCollection::HTMLCollection):
157198        (WebCore::LiveNodeListBase::iterateForNextNode):
157199        (WebCore::LiveNodeListBase::itemBeforeOrAfter):
157200        (WebCore::LiveNodeListBase::itemBefore):
157201        (WebCore::LiveNodeListBase::itemAfter):
157202        (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
157203        (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
157204        (WebCore::LiveNodeListBase::setItemCache):
157205        (WebCore::LiveNodeListBase::length):
157206        (WebCore::LiveNodeListBase::item):
157207        (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
157208        * html/HTMLCollection.h:
157209        * html/LabelsNodeList.cpp:
157210        (WebCore::LabelsNodeList::LabelsNodeList):
157211        * html/LabelsNodeList.h:
157212        * html/RadioNodeList.cpp:
157213        (WebCore::RadioNodeList::RadioNodeList):
157214        * html/RadioNodeList.h:
157215
1572162012-10-08  Robert Hogan  <robert@webkit.org>
157217
157218        Changing position:relative to position:static results in mis-positioned div
157219        https://bugs.webkit.org/show_bug.cgi?id=26397
157220
157221        Reviewed by Ojan Vafai.
157222
157223        When a block changes position from relative to static it is no longer the containing block for any
157224        positioned objects it may have. If any of those positioned objects actually have a position specified
157225        they are going to need a layout as their new containing block will likely have a different location they
157226        need to offset from. Positioned objects without a specified position always get a layout anyway 
157227        in layoutPositionedObjects() so no need to worry about them in this situation. 
157228
157229        Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
157230
157231        * rendering/RenderBlock.cpp:
157232        (WebCore::RenderBlock::styleWillChange):
157233        (WebCore::RenderBlock::layoutPositionedObjects):
157234        (WebCore::RenderBlock::removePositionedObjects):
157235        * rendering/RenderBlock.h:
157236        (RenderBlock):
157237
1572382012-11-24  Antti Koivisto  <antti@apple.com>
157239
157240        Make renderer construction less generic
157241        https://bugs.webkit.org/show_bug.cgi?id=103175
157242
157243        Reviewed by Ojan Vafai.
157244
157245        The renderer construction code currently operates on Nodes and is very generic. In reality
157246        only Element and Text nodes can have renderers and the Text case is much simpler.
157247
157248        This patch separates the Text and Element renderer construction paths and makes it statically
157249        known that other Node types can't have renderers. Less generic code is less branchy and enables
157250        further optimizations.
157251
157252        * dom/CharacterData.cpp:
157253        (WebCore::CharacterData::parserAppendData):
157254        (WebCore::CharacterData::setDataAndUpdate):
157255        (WebCore):
157256        (WebCore::CharacterData::rendererIsNeeded):
157257        (WebCore::CharacterData::createRenderer):
157258        
157259            Only Text subclass of CharacterData can have renderers.
157260
157261        * dom/CharacterData.h:
157262        (CharacterData):
157263        * dom/ContainerNode.h:
157264        (WebCore::ContainerNode::childShouldCreateRenderer):
157265        
157266            Move childShouldCreateRenderer from Node to ContainerNode.
157267
157268        (ContainerNode):
157269        * dom/Element.cpp:
157270        (WebCore::Element::rendererIsNeeded):
157271        (WebCore):
157272        (WebCore::Element::attach):
157273        (WebCore::Element::childShouldCreateRenderer):
157274        * dom/Element.h:
157275        
157276            Move rendererIsNeeded and createRenderer from Node to Element.
157277
157278        (Element):
157279        * dom/Node.cpp:
157280        (WebCore::Node::attach):
157281        (WebCore):
157282        * dom/Node.h:
157283        (Node):
157284        * dom/NodeRenderingContext.cpp:
157285        (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
157286        (WebCore::NodeRenderingContext::createRendererForTextIfNeeded):
157287        
157288            Separate the Element and Text renderer creation paths. Both are less branchy.
157289            The Text path is much simpler and avoids a bunch of virtual calls.
157290
157291        (WebCore):
157292        * dom/NodeRenderingContext.h:
157293        (NodeRenderingContext):
157294        * dom/Text.cpp:
157295        (WebCore::Text::textRendererIsNeeded):
157296        (WebCore::Text::createTextRendererIfNeeded):
157297        (WebCore):
157298        (WebCore::Text::createTextRenderer):
157299        (WebCore::Text::attach):
157300        (WebCore::Text::updateTextRenderer):
157301        * dom/Text.h:
157302        
157303                Add non-virtual Text specific functions.
157304
157305        (WebCore):
157306        (Text):
157307        * rendering/RenderBlock.cpp:
157308        (WebCore::RenderBlock::clone):
157309
1573102012-11-22  Ryosuke Niwa  <rniwa@webkit.org>
157311
157312        REGRESSION(r135493): HTMLCollection and DynamicNodeList have two vtable pointers
157313        https://bugs.webkit.org/show_bug.cgi?id=103096
157314
157315        Reviewed by Sam Weinig.
157316
157317        Co-authored by Ilya Tikhonovsky.
157318
157319        Made DynamicNodeListCacheBase inherit from NodeList. While HTMLCollection doesn't inherit
157320        from NodeList in IDL, it makes a lot of sense for the C++ implementation to do so via
157321        DynamicNodeListCacheBase since HTMLCollection and live NodeList share a lot of code in
157322        DynamicNodeListCacheBase.
157323
157324        This lets remove proxies for item() and length() in DynamicNodeList and HTMLCollection
157325        and directly implement them in DynamicNodeListCacheBase which used to provide itemCommon()
157326        and lengthCommon().
157327
157328        Also renamed NodeList::itemWithName() to NodeList::namedItem() to match HTMLCollection's
157329        naming convention.
157330
157331        Finally, removed reportMemoryUsage in DynamicNodeList::reportMemoryUsage since DynamicNodeList
157332        now uses single inheritance.
157333
157334        * bindings/js/JSNodeListCustom.cpp:
157335        (WebCore::JSNodeList::canGetItemsForName): Calls namedItem, which has been renamed from
157336        itemWithName.
157337        (WebCore::JSNodeList::nameGetter): Ditto.
157338        * bindings/v8/custom/V8NodeListCustom.cpp:
157339        (WebCore::V8NodeList::namedPropertyGetter): Ditto.
157340        * bindings/v8/custom/V8NamedNodesCollection.cpp:
157341        (WebCore::V8NamedNodesCollection::namedItem): Renamed from itemWithName.
157342        * bindings/v8/custom/V8NamedNodesCollection.h:
157343        * dom/ChildNodeList.cpp:
157344        (WebCore::ChildNodeList::nodeMatches): Updated comment.
157345        * dom/DynamicNodeList.cpp:
157346        (WebCore::DynamicNodeList::namedItem): Renamed from itemWithName.
157347        * dom/DynamicNodeList.h:
157348        (DynamicNodeListCacheBase): Inhertis from NodeList and renamed lengthCommon and itemCommon
157349        to virtual length and item respectively.
157350        (DynamicNodeList): Now inherits from just DynamicNodeListCacheBase instead of NodeList
157351        and DynamicNodeListCacheBase since the former now inhertis from NodeList. Also removed
157352        length() and item() since they're implemented in DynamicNodeListCacheBase now and renamed
157353        itemWithName() to namedItem() to match HTMLCollection's naming convention.
157354        * dom/NodeList.h:
157355        (NodeList::namedItem): Renamed from itemWithName. Note that this member function is not
157356        exposed via IDL. It's merely used in the binding code.
157357        * dom/StaticHashSetNodeList.cpp:
157358        (WebCore::StaticHashSetNodeList::namedItem): Ditto.
157359        * dom/StaticHashSetNodeList.h:
157360        (StaticHashSetNodeList::namedItem): Ditto.
157361        * dom/StaticNodeList.cpp:
157362        (WebCore::StaticNodeList::namedItem): Ditto.
157363        * dom/StaticNodeList.h:
157364        (StaticNodeList::namedItem): Ditto.
157365        * html/HTMLCollection.cpp:
157366        (WebCore::DynamicNodeListCacheBase::length): Renamed from lengthCommon.
157367        (WebCore::DynamicNodeListCacheBase::item): Renamed from itemCommon.
157368        * html/HTMLCollection.h:
157369        (HTMLCollection): Inherits from DynamicNodeListCacheBase since DynamicNodeListCacheBase
157370        is already RefCount'ed and NodeList, from which DynamicNodeListCacheBase inherits,
157371        inherits from ScriptWrappable.
157372
1573732012-11-24  Christophe Dumez  <christophe.dumez@intel.com>
157374
157375        [EFL] Refactor RenderThemeEfl::paintThemePart()
157376        https://bugs.webkit.org/show_bug.cgi?id=103192
157377
157378        Reviewed by Kenneth Rohde Christiansen.
157379
157380        Refactor RenderThemeEfl::paintThemePart() so that:
157381        - Some C'ism is removed
157382        - RTL related code is moved to applyEdjeRTLState()
157383        - evas_render() is called instead of evas_render_updates()
157384          to avoid creating uselessly update rects.
157385
157386        No new tests, no behavior change for layout tests.
157387
157388        * platform/efl/RenderThemeEfl.cpp:
157389        (WebCore::RenderThemeEfl::applyEdjeRTLState):
157390        (WebCore):
157391        (WebCore::RenderThemeEfl::paintThemePart):
157392        * platform/efl/RenderThemeEfl.h:
157393        (RenderThemeEfl):
157394
1573952012-11-24  Brent Fulgham  <bfulgham@webkit.org>
157396
157397        [WinCairo] Avoid access violation when frame is NULL.
157398        https://bugs.webkit.org/show_bug.cgi?id=68753
157399
157400        BitmapImage::drawFrameMatchingSourceSize causes an access violation
157401        if BitmapImage::frameAtIndex returns NULL. (Found by David Delaune).
157402
157403        Reviewed by Simon Fraser.
157404
157405        * platform/graphics/win/ImageCairoWin.cpp:
157406        (WebCore::BitmapImage::drawFrameMatchingSourceSize): Check for null
157407        cairo_surface_t pointer and avoid dereferencing.
157408
1574092012-11-24  Christophe Dumez  <christophe.dumez@intel.com>
157410
157411        [EFL] Refactor RenderThemeEfl::getThemePartFromCache()
157412        https://bugs.webkit.org/show_bug.cgi?id=103186
157413
157414        Reviewed by Kenneth Rohde Christiansen.
157415
157416        Refactor getThemePartFromCache() so that a list is used
157417        for the cache instead of a vector. The function moves
157418        items to the head of the container which is much more
157419        efficient with a list than a vector.
157420
157421        The list ordering is also slightly altered so that the
157422        cached parts that were used last come first. Previously,
157423        they were sorted by creation time which may cause an
157424        item to be removed from the cache because it is older
157425        even if is was used recently.
157426
157427        This patch also gets rid of some code duplication at the
157428        end of the function.
157429
157430        No new tests, no behavior change.
157431
157432        * platform/efl/RenderThemeEfl.cpp:
157433        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create): Return
157434        a smart pointer instead of a raw pointer.
157435        (WebCore::RenderThemeEfl::getThemePartFromCache):
157436        (WebCore::RenderThemeEfl::clearThemePartCache): Rename 
157437        flushThemePartCache to clearThemePartCache for clarity.
157438        (WebCore::RenderThemeEfl::loadTheme):
157439        (WebCore::RenderThemeEfl::RenderThemeEfl):
157440        (WebCore::RenderThemeEfl::~RenderThemeEfl):
157441        * platform/efl/RenderThemeEfl.h:
157442        (ThemePartCacheEntry):
157443        (RenderThemeEfl):
157444
1574452012-11-24  Liam Quinn  <lquinn@rim.com>
157446
157447        [BlackBerry] RTSP should use the same MediaDocument as HTTP videos.
157448        https://bugs.webkit.org/show_bug.cgi?id=103185
157449        RIM PR 250114
157450
157451        Reviewed by George Staikos.
157452
157453        Make our MediaPlayer implementation indicate that it supports RTSP. That way, DOMImplementation::createDocument will create the same MediaDocument as is used for HTTP videos.
157454
157455        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
157456        (WebCore::MediaPlayerPrivate::supportsType):
157457
1574582012-11-24  Andreas Kling  <akling@apple.com>
157459
157460        Put computed style 'font-family' values in the CSSValuePool.
157461        <http://webkit.org/b/103184>
157462
157463        Reviewed by Ojan Vafai.
157464
157465        Use CSSValuePool::createFontFamilyValue() when handing out 'font-family' values from CSSComputedStyleDeclaration.
157466        This avoids creating extra CSSPrimitiveValue objects since we already have these in the pool from parsing.
157467        Also added a max capacity to the font-family cache (using random eviction.)
157468
157469        * css/CSSComputedStyleDeclaration.cpp:
157470        (WebCore::valueForFamily):
157471        * css/CSSValuePool.cpp:
157472        (WebCore::CSSValuePool::createFontFamilyValue):
157473
1574742012-11-24  Hayato Ito  <hayato@chromium.org>
157475
157476        It's confusing that return values of 'bool Node::dispatchEvent(...)' and 'bool Node::dispatchMouseEvent(..)' have the opposite meanings.
157477        https://bugs.webkit.org/show_bug.cgi?id=103058
157478
157479        Reviewed by Ojan Vafai.
157480
157481        Refactor MouseEventDispatchMediator::dispatchEvent() and
157482        EventHandler::dispatchMouseEvent() so that they return bool
157483        which has the same meaning of the return value of
157484        Node::dispatchEvent().
157485
157486        No tests. No change in behavior.
157487
157488        * dom/MouseEvent.cpp:
157489        (WebCore::MouseEventDispatchMediator::dispatchEvent):
157490        * page/EventHandler.cpp:
157491        (WebCore::EventHandler::handleMousePressEvent):
157492        (WebCore::EventHandler::handleMouseDoubleClickEvent):
157493        (WebCore::EventHandler::handleMouseMoveEvent):
157494        (WebCore::EventHandler::handleMouseReleaseEvent):
157495        (WebCore::EventHandler::dispatchMouseEvent):
157496        (WebCore::EventHandler::sendContextMenuEvent):
157497        (WebCore::EventHandler::sendContextMenuEventForKey):
157498
1574992012-11-23  Kangil Han  <kangil.han@samsung.com>
157500
157501        Fix unused parameter compile warnings
157502        https://bugs.webkit.org/show_bug.cgi?id=103167
157503
157504        Reviewed by Gyuyoung Kim.
157505
157506        Remove compile warning messages by omitting parameter name and using UNUSED_PARAM.
157507
157508        * accessibility/atk/WebKitAccessibleHyperlink.cpp:
157509        (webkitAccessibleHyperlinkIsSelectedLink):
157510        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
157511        (webkitAccessibleTextGetTextAfterOffset):
157512        (webkitAccessibleTextGetTextAtOffset):
157513        (webkitAccessibleTextGetTextBeforeOffset):
157514        (webkitAccessibleTextGetOffsetAtPoint):
157515
1575162012-11-23  Michael Saboff  <msaboff@apple.com>
157517
157518        listMarkerText() should create 8 bit strings when possible
157519        https://bugs.webkit.org/show_bug.cgi?id=103011
157520
157521        Reviewed by Filip Pizlo.
157522
157523        Made processing of marker text items use 8 bit strings where possible in order to reduce 16 bit strings.
157524
157525        Changes covered by existing tests.
157526
157527        * rendering/RenderListMarker.cpp:
157528        (WebCore::toRoman): Changed character constants and buffer to build string to LChar's
157529        (WebCore::toAlphabeticOrNumeric): Made a template based on character type.
157530        (WebCore::toSymbolic): Made a template based on character type.
157531        (WebCore::toAlphabetic): Made a template based on character type.
157532        (WebCore::toNumeric): Added character type template parameter.
157533        (WebCore::listMarkerText): Changed character constants to LChar where possible.
157534
1575352012-11-23  Robert Kroeger  <rjkroege@chromium.org>
157536
157537        Remove unused ScrollByPixelVelocity
157538        https://bugs.webkit.org/show_bug.cgi?id=102840
157539
157540        Reviewed by Sam Weinig.
157541
157542        https://bugs.webkit.org/show_bug.cgi?id=80311 wrongly introduced a new
157543        kind of scroll: "ScrollByPixelVelocity". This code is not used on any platform
157544        and will not be of use in the future so this patch removes it.
157545
157546        No new tests: code removal/cleanup.
157547
157548        * page/EventHandler.cpp:
157549        (WebCore::EventHandler::defaultWheelEventHandler):
157550        (WebCore::EventHandler::handleGestureEvent):
157551        * platform/PlatformWheelEvent.h:
157552        * platform/ScrollAnimator.cpp:
157553        (WebCore::ScrollAnimator::handleWheelEvent):
157554        * platform/ScrollAnimatorNone.cpp:
157555        (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
157556        (WebCore::ScrollAnimatorNone::scroll):
157557        (WebCore::ScrollAnimatorNone::cancelAnimations):
157558        (WebCore::ScrollAnimatorNone::animationTimerFired):
157559        * platform/ScrollAnimatorNone.h:
157560        (ScrollAnimatorNone):
157561        * platform/ScrollTypes.h:
157562        * platform/ScrollableArea.cpp:
157563        (WebCore::ScrollableArea::scroll):
157564
1575652012-11-23  Adenilson Cavalcanti  <cavalcantii@gmail.com>
157566
157567        Removing unnecessary RenderBox friend access in RenderObject
157568        https://bugs.webkit.org/show_bug.cgi?id=103159
157569
157570        Reviewed by Eric Seidel.
157571
157572        RenderObject has several classes marked as friend, between them,
157573        there is RenderBox which is derived from it indirectly and is not accessing
157574        its forefather private data making unnecessary the 'friend' access level.
157575
157576        No new tests, no changes in functionality.
157577
157578        * rendering/RenderObject.h:
157579        (RenderObject):
157580
1575812012-11-23  Alexis Menard  <alexis@webkit.org>
157582
157583        [CSS3 Backgrounds and Borders] Implement new CSS3 background-position parsing.
157584        https://bugs.webkit.org/show_bug.cgi?id=102104
157585
157586        Reviewed by Julien Chaffraix.
157587
157588        Implement the parsing of the CSS3 background-position property which
157589        allows to specify up to four values to position the background. It is
157590        documented here :
157591        http://www.w3.org/TR/css3-background/#the-background-position . I
157592        decided to split up the patch is two pieces, the parsing and later I
157593        will do the rendering. I kept the old code as much as possible (i.e.
157594        the two values parsing) as it is used not only by background-position
157595        but by few other properties. The new four values support is only valid
157596        on the property itself but does not work on the shorthand.
157597
157598        Opera has already implemented this feature.
157599
157600        I extended backgrounds/background-position-parsing-2.html to cover the
157601        new possible values as well as buggy values.
157602
157603        * Configurations/FeatureDefines.xcconfig:
157604        * GNUmakefile.am:
157605        * GNUmakefile.features.am:
157606        * css/CSSParser.cpp:
157607        (WebCore::CSSParser::parseFillPositionComponent): Modify this function
157608        to allow creation of CSS primitive values with not only percentage or
157609        length but with keywords also as the new <position> type allows to
157610        specify keywords, for example top 30px right 20px.
157611        (WebCore):
157612        (WebCore::isValueConflictingWithCurrentEdge):
157613        (WebCore::isBackgroundPositionKeyword):
157614        (WebCore::CSSParser::parse3ValuesBackgroundPosition):
157615        (WebCore::CSSParser::parse4ValuesBackgroundPosition):
157616        (WebCore::CSSParser::parseFillBackgroundPosition): This function counts
157617        the number of words for the property value and call dedicated parsing
157618        functions for each case. Note that in case of two values we just call the old CSS 2.1
157619        method.
157620        (WebCore::CSSParser::parseFillPosition):
157621        (WebCore::CSSParser::parseFillProperty): Only call the new parsing
157622        function if the feature is activated otherwise fallback to the old code
157623        path.
157624        * css/CSSParser.h:
157625
1576262012-11-23  Justin Novosad  <junov@google.com>
157627
157628        Adding occlusion detection to reduce overdraw in RenderBox background rendering
157629        https://bugs.webkit.org/show_bug.cgi?id=102557
157630
157631        Reviewed by Stephen White.
157632
157633        Adding hasAlpha method to all classes dervived from CSSImageValue and
157634        StyleImage, in order to support occlusion testing. 
157635        This allows the FillLayer recursion to stop early when an opaque layer
157636        is encountered while applying a CSS background style. This also allows
157637        the elimination of background color application when the background is
157638        completely covered by an image.  The optimization also skips the
157639        clearing of the page's root element when the page background is
157640        entirely covered by an image (e.g a tiled bitmap or a gradient)
157641
157642        Test: fast/backgrounds/background-opaque-images-over-color.html
157643
157644        * css/CSSCrossfadeValue.cpp:
157645        (WebCore::subimageHasAlpha):
157646        (WebCore):
157647        (WebCore::CSSCrossfadeValue::isPending):
157648        (WebCore::CSSCrossfadeValue::hasAlpha):
157649        * css/CSSCrossfadeValue.h:
157650        (CSSCrossfadeValue):
157651        * css/CSSGradientValue.cpp:
157652        (WebCore::CSSGradientValue::hasAlpha):
157653        (WebCore):
157654        * css/CSSGradientValue.h:
157655        (CSSGradientValue):
157656        * css/CSSImageGeneratorValue.cpp:
157657        (WebCore::CSSImageGeneratorValue::hasAlpha):
157658        (WebCore):
157659        * css/CSSImageGeneratorValue.h:
157660        (CSSImageGeneratorValue):
157661        * css/CSSImageValue.cpp:
157662        (WebCore::CSSImageValue::hasAlpha):
157663        (WebCore):
157664        * css/CSSImageValue.h:
157665        (WebCore):
157666        (CSSImageValue):
157667        * loader/cache/CachedImage.cpp:
157668        (WebCore::CachedImage::currentFrameHasAlpha):
157669        Test whether a cached image has alpha, with side effect of ensuring
157670        the image is in cache. (new method)
157671        (WebCore):
157672        * loader/cache/CachedImage.h:
157673        (CachedImage):
157674        * rendering/RenderBox.cpp:
157675        (WebCore::RenderBox::paintFillLayers):
157676        Added layer recursion early exit when an opaque layer is encountered.
157677        * rendering/RenderBoxModelObject.cpp:
157678        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
157679        Eliminated background color fill when the layer contains an opaque
157680        image that covers the entire RenderBox.
157681        * rendering/style/FillLayer.cpp:
157682        (WebCore::FillLayer::hasOpaqueImage):
157683        Returns true if the layer's image is known to be fully opaque.
157684        (WebCore):
157685        (WebCore::FillLayer::hasRepeatXY):
157686        * rendering/style/FillLayer.h:
157687        (FillLayer):
157688        * rendering/style/StyleCachedImage.cpp:
157689        (WebCore::StyleCachedImage::hasAlpha):
157690        (WebCore):
157691        * rendering/style/StyleCachedImage.h:
157692        (StyleCachedImage):
157693        * rendering/style/StyleCachedImageSet.cpp:
157694        (WebCore::StyleCachedImageSet::hasAlpha):
157695        (WebCore):
157696        * rendering/style/StyleCachedImageSet.h:
157697        (StyleCachedImageSet):
157698        * rendering/style/StyleGeneratedImage.cpp:
157699        (WebCore::StyleGeneratedImage::hasAlpha):
157700        (WebCore):
157701        * rendering/style/StyleGeneratedImage.h:
157702        (StyleGeneratedImage):
157703        * rendering/style/StyleImage.h:
157704        (StyleImage):
157705        * rendering/style/StylePendingImage.h:
157706        (WebCore::StylePendingImage::hasAlpha):
157707
1577082012-11-23  Justin Novosad  <junov@google.com>
157709
157710        Page background color bleeds through inner edge of div border with rounded edges
157711        https://bugs.webkit.org/show_bug.cgi?id=103089
157712
157713        Reviewed by Stephen White.
157714
157715        Test that verifies whether a RenderBoxEdge is more than 2 pixels wide
157716        was applying the content scale factor backwards, so the
157717        obscuresBackgroundEdge was falsely passing for downsized boxes.
157718
157719        Test: fast/backgrounds/gradient-background-leakage-2.html
157720
157721        * rendering/RenderBoxModelObject.cpp:
157722        (WebCore::BorderEdge::obscuresBackgroundEdge):
157723
1577242012-11-23  Huang Dongsung  <luxtella@company100.net>
157725
157726        [TexMap] Remove dependency of TextureMapperLayer on GraphicsLayerTextureMapper.
157727        https://bugs.webkit.org/show_bug.cgi?id=103046
157728
157729        Reviewed by Noam Rosenthal.
157730
157731        It is a preparation patch for Threaded Coordinated Graphics on WK1.
157732
157733        We want to make TextureMapperLayer into an actor model. After making an actor
157734        model, GraphicsLayerTextureMapper and LayerTreeRenderer will communicate with
157735        TextureMapperLayer using message passing. In the first step, we want to hide
157736        GraphicsLayerTextureMapper from TextureMapperLayer.
157737
157738        There are 2 kinds of dependencies of TextureMapperLayer in GraphicsLayerTextureMapper.
157739        1. To query layer states
157740        2. To paint layer contents
157741
157742        In this patch, we removed the second dependency. Currently, TextureMapperLayer
157743        requests painting contents to GraphicsLayerTextureMapper in WK1 while
157744        Coordinated Graphics prepares the contents in LayerTreeRenderer. This patch
157745        makes WK1 prepare the contents in GraphicsLayerTextureMapper like
157746        LayerTreeRenderer.
157747
157748        We will remove the first dependency in a follow-up patch.
157749
157750        Covered by existing layout tests.
157751
157752        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
157753        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
157754        (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
157755        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
157756        (WebCore):
157757        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingState):
157758        (WebCore::GraphicsLayerTextureMapper::didFlushCompositingStateRecursive):
157759        (WebCore::GraphicsLayerTextureMapper::updateBackingStore):
157760        (WebCore::GraphicsLayerTextureMapper::prepareBackingStore):
157761        (WebCore::GraphicsLayerTextureMapper::shouldHaveBackingStore):
157762        (WebCore::GraphicsLayerTextureMapper::drawRepaintCounter):
157763        (WebCore::GraphicsLayerTextureMapper::setDebugBorder):
157764        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
157765        (GraphicsLayerTextureMapper):
157766        (WebCore::GraphicsLayerTextureMapper::setHasOwnBackingStore):
157767        * platform/graphics/texmap/TextureMapperLayer.cpp:
157768        (WebCore::TextureMapperLayer::rootLayer):
157769        (WebCore::TextureMapperLayer::paintSelf):
157770        (WebCore::TextureMapperLayer::textureMapper):
157771        (WebCore):
157772        (WebCore::TextureMapperLayer::flushCompositingState):
157773        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
157774        * platform/graphics/texmap/TextureMapperLayer.h:
157775        (WebCore):
157776        (WebCore::TextureMapperLayer::TextureMapperLayer):
157777        (TextureMapperLayer):
157778        (WebCore::TextureMapperLayer::setBackingStore):
157779        (State):
157780        (WebCore::TextureMapperLayer::State::State):
157781
1577822012-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>
157783
157784        [ENCHANT] Infinite loop when end word position is not found
157785        https://bugs.webkit.org/show_bug.cgi?id=103139
157786
157787        Reviewed by Martin Robinson.
157788
157789        Covered by existing tests in editing/spelling.
157790
157791        * editing/visible_units.cpp:
157792        (WebCore::isLogicalStartOfWord): Make it private again.
157793        (WebCore::islogicalEndOfWord): Ditto.
157794        * editing/visible_units.h:
157795        * platform/text/enchant/TextCheckerEnchant.cpp:
157796        (WebCore::TextCheckerEnchant::checkSpellingOfWord): Helper funtion
157797        to check a word inside a string using the loaded dictionaries.
157798        (WebCore::TextCheckerEnchant::checkSpellingOfString): Optimize and
157799        simply the code by using the word iterator to iterate the
157800        words.
157801        * platform/text/enchant/TextCheckerEnchant.h:
157802        (TextCheckerEnchant):
157803
1578042012-11-23  Zeno Albisser  <zeno@webkit.org>
157805
157806        [Qt] GraphicsContext3DQt makes wrong surface current.
157807        https://bugs.webkit.org/show_bug.cgi?id=103136
157808
157809        blitMultisampleFramebufferAndRestoreContext restores
157810        the wrong surface in case the currentContext is the same
157811        as m_platformContext.
157812        In this case we would reset the bound surface to NULL.
157813        Instead we should just leave the context unchanged.
157814
157815        Reviewed by Kenneth Rohde Christiansen.
157816
157817        * platform/graphics/qt/GraphicsContext3DQt.cpp:
157818        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
157819
1578202012-11-23  Alexei Filippov  <alph@chromium.org>
157821
157822        Web Inspector: remove total item from NMI snapshot grid
157823        https://bugs.webkit.org/show_bug.cgi?id=101926
157824
157825        Reviewed by Yury Semikhatsky.
157826
157827        * inspector/front-end/NativeMemorySnapshotView.js:
157828        (WebInspector.NativeSnapshotDataGrid):
157829
1578302012-11-23  Zeno Albisser  <zeno@webkit.org>
157831
157832        [Qt] GraphicsContext3DQt should not overwrite glClearColor of sharing context.
157833        https://bugs.webkit.org/show_bug.cgi?id=103135
157834
157835        In case we use GraphicsContext3DQt to render into or
157836        read from an existing context, we should not reset
157837        the glClearColor on construction.
157838        Otherwise we might overwrite an existing definition from
157839        the sharing context.
157840
157841        Reviewed by Kenneth Rohde Christiansen.
157842
157843        * platform/graphics/qt/GraphicsContext3DQt.cpp:
157844        (WebCore::GraphicsContext3D::GraphicsContext3D):
157845
1578462012-11-23  Pavel Feldman  <pfeldman@chromium.org>
157847
157848        Web Inspector: damaging last chunk does not remove its garbage from DOM
157849        https://bugs.webkit.org/show_bug.cgi?id=103132
157850
157851        Reviewed by Vsevolod Vlasov.
157852
157853        Removing everything between undamaged chunks, not registered chunk rows.
157854
157855        * inspector/front-end/DefaultTextEditor.js:
157856        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
157857        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
157858        (WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
157859        (WebInspector.TextEditorMainChunk.prototype.firstElement):
157860        (WebInspector.TextEditorMainChunk.prototype.lastElement):
157861
1578622012-11-23  Ilya Tikhonovsky  <loislo@chromium.org>
157863
157864        RenderLayer minor clean-up: replace raw pointers with OwnPtrs.
157865        https://bugs.webkit.org/show_bug.cgi?id=103134
157866
157867        Reviewed by Eric Seidel.
157868
157869        I found that RenderLayer still uses raw pointers to the objects which it owns.
157870        Looks like these pointers could be replaced with OwnPtrs.
157871
157872        * rendering/RenderLayer.cpp:
157873        (WebCore::RenderLayer::RenderLayer):
157874        (WebCore::RenderLayer::~RenderLayer):
157875        (WebCore::RenderLayer::paintLayerContents):
157876        (WebCore::RenderLayer::hitTestLayer):
157877        (WebCore::RenderLayer::updateNormalFlowList):
157878        (WebCore::RenderLayer::collectLayers):
157879        (WebCore::RenderLayer::styleChanged):
157880        * rendering/RenderLayer.h:
157881        (WebCore::RenderLayer::marquee):
157882        (WebCore::RenderLayer::posZOrderList):
157883        (WebCore::RenderLayer::negZOrderList):
157884        (WebCore::RenderLayer::normalFlowList):
157885        (RenderLayer):
157886        (WebCore::RenderLayer::clearZOrderLists):
157887
1578882012-11-23  Christophe Dumez  <christophe.dumez@intel.com>
157889
157890        [EFL][AC] Mouse cursor is not updated when accelerated compositing is enabled
157891        https://bugs.webkit.org/show_bug.cgi?id=103131
157892
157893        Reviewed by Kenneth Rohde Christiansen.
157894
157895        Make sure we try to get the Ecore_X_Window using ecore_evas_gl_x11_window_get()
157896        in applyFallbackCursor() if accelerated compositing is enabled instead of
157897        using ecore_evas_software_x11_window_get(). This fixes mouse cursor update
157898        when accelerated compositing is enabled.
157899
157900        No new tests, no behavior change for layout tests.
157901
157902        * platform/efl/EflScreenUtilities.cpp:
157903        (WebCore::applyFallbackCursor):
157904
1579052012-11-16  Yury Semikhatsky  <yurys@chromium.org>
157906
157907        Memory instrumentation: extract MemoryObjectInfo declaration into a separate file
157908        https://bugs.webkit.org/show_bug.cgi?id=102510
157909
157910        Reviewed by Pavel Feldman.
157911
157912        Added necessary includes where MemoryObjectInfo declaration is required.
157913
157914        * platform/audio/FFTFrame.cpp:
157915        * rendering/style/RenderStyle.cpp:
157916        * rendering/style/StyleRareInheritedData.cpp:
157917        * rendering/style/StyleRareNonInheritedData.cpp:
157918
1579192012-11-23  Dan Carney  <dcarney@google.com>
157920
157921        Remove V8DOMWindowShell::getEntered
157922        https://bugs.webkit.org/show_bug.cgi?id=96637
157923
157924        Reviewed by Adam Barth.
157925
157926        V8DOMWindowShell::getEntered was refactored so that the window shell
157927        no longer has to be kept alive by a v8 context. Instead, only
157928        the DOMWrapperWorld will be kept alive.
157929
157930        No new tests. No change in functionality.
157931
157932        * bindings/v8/DOMDataStore.cpp:
157933        (WebCore::DOMDataStore::current):
157934        * bindings/v8/DOMWrapperWorld.cpp:
157935        (WebCore::isolatedWorldWeakCallback):
157936        (WebCore):
157937        (WebCore::DOMWrapperWorld::makeContextWeak):
157938        (WebCore::DOMWrapperWorld::setIsolatedWorldField):
157939        * bindings/v8/DOMWrapperWorld.h:
157940        (DOMWrapperWorld):
157941        (WebCore::DOMWrapperWorld::isolated):
157942        * bindings/v8/ScriptController.cpp:
157943        (WebCore::ScriptController::existingWindowShell):
157944        (WebCore::ScriptController::windowShell):
157945        (WebCore::ScriptController::evaluateInIsolatedWorld):
157946        (WebCore::ScriptController::currentWorldContext):
157947        (WebCore::ScriptController::collectIsolatedContexts):
157948        * bindings/v8/ScriptController.h:
157949        (ScriptController):
157950        * bindings/v8/V8Binding.h:
157951        (WebCore::worldForEnteredContextIfIsolated):
157952        * bindings/v8/V8DOMWindowShell.cpp:
157953        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
157954        (WebCore::V8DOMWindowShell::disposeContext):
157955        (WebCore::V8DOMWindowShell::initializeIfNeeded):
157956        * bindings/v8/V8DOMWindowShell.h:
157957        (V8DOMWindowShell):
157958        * bindings/v8/V8PerContextData.h:
157959        * bindings/v8/WorldContextHandle.cpp:
157960        (WebCore::WorldContextHandle::WorldContextHandle):
157961
1579622012-11-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
157963
157964        Web Inspector: Refine JsDoc in ProfilesPanel.js
157965        https://bugs.webkit.org/show_bug.cgi?id=103042
157966
157967        Reviewed by Yury Semikhatsky.
157968
157969        I'm going to make profiler output typed.
157970
157971        This will require some amount of refactoring.
157972
157973        Before refactoring I would like to make things
157974        unambiguous by adding JsDoc where they are missing.
157975
157976        * inspector/front-end/ProfilesPanel.js:
157977        (WebInspector.ProfilesPanel.prototype._onToggleProfiling):
157978        Added to eliminate parameter type ambiguity.
157979
1579802012-11-23  Kent Tamura  <tkent@chromium.org>
157981
157982        Correct input[type=number] value sanitization for user-input
157983        https://bugs.webkit.org/show_bug.cgi?id=103018
157984
157985        Reviewed by Kentaro Hara.
157986
157987        If a number field has non-number string, HTMLInputElement::value is not
157988        updated and returns the past valid value. It doesn't match to the value
157989        sanitization algorithm defined by the HTML standard [1], and Opera's
157990        behavior. We should sanitize non-number strings to "".
157991
157992        [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
157993        > The value sanitization algorithm is as follows: If the value of the
157994        > element is not a valid floating-point number, then set it to the empty
157995        > string instead.
157996
157997        No new tests. Update existing tests;
157998        fast/forms/number/number-commit-valid-only.html and
157999        fast/forms/number/number-unacceptable-style.html
158000
158001        * html/HTMLInputElement.cpp:
158002        (WebCore::HTMLInputElement::subtreeHasChanged):
158003        Remove isAcceptableValue check.
158004
158005        * html/HTMLInputElement.h:
158006        (HTMLInputElement): isAcceptableValue is no longer needed.
158007        * html/InputType.cpp: Remove isAcceptableValue.
158008        * html/InputType.h: Ditto.
158009        * html/NumberInputType.cpp: Ditto.
158010        (WebCore::NumberInputType::hasUnacceptableValue):
158011        Fold the isAcceptableValue content into this.
158012        * html/NumberInputType.h:
158013        (NumberInputType): Remove isAcceptableValue.
158014
1580152012-11-23  Sheriff Bot  <webkit.review.bot@gmail.com>
158016
158017        Unreviewed, rolling out r135592.
158018        http://trac.webkit.org/changeset/135592
158019        https://bugs.webkit.org/show_bug.cgi?id=103126
158020
158021        broke Chromium Mac compilation (Requested by yurys on
158022        #webkit).
158023
158024        * WebCore.gypi:
158025
1580262012-11-23  Yury Semikhatsky  <yurys@chromium.org>
158027
158028        Remove references to non-chromium entries from WebCore.gypi (part 2)
158029        https://bugs.webkit.org/show_bug.cgi?id=103124
158030
158031        Reviewed by Pavel Feldman.
158032
158033        * WebCore.gypi: removed references to gtk, cocoa, posix, ios, cf, win and mac
158034
1580352012-11-23  Andrey Adaikin  <aandrey@chromium.org>
158036
158037        Web Inspector: [Canvas] add startCapturing and stopCapturing methods to protocol
158038        https://bugs.webkit.org/show_bug.cgi?id=103053
158039
158040        Reviewed by Pavel Feldman.
158041
158042        Add startCapturing and stopCapturing methods to the protocol to instrument several canvas frames in a row.
158043        Drive-by: support start offset index in retrieving trace logs in the backend as well as "alive" flag.
158044
158045        * inspector/InjectedScriptCanvasModule.cpp:
158046        (WebCore::InjectedScriptCanvasModule::captureFrame):
158047        (WebCore):
158048        (WebCore::InjectedScriptCanvasModule::startCapturing):
158049        (WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
158050        (WebCore::InjectedScriptCanvasModule::stopCapturing):
158051        (WebCore::InjectedScriptCanvasModule::dropTraceLog):
158052        (WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
158053        (WebCore::InjectedScriptCanvasModule::traceLog):
158054        * inspector/InjectedScriptCanvasModule.h:
158055        (InjectedScriptCanvasModule):
158056        * inspector/InjectedScriptCanvasModuleSource.js:
158057        (.):
158058        * inspector/Inspector.json:
158059        * inspector/InspectorCanvasAgent.cpp:
158060        (WebCore::InspectorCanvasAgent::startCapturing):
158061        (WebCore):
158062        (WebCore::InspectorCanvasAgent::stopCapturing):
158063        (WebCore::InspectorCanvasAgent::getTraceLog):
158064        * inspector/InspectorCanvasAgent.h:
158065        (InspectorCanvasAgent):
158066        * inspector/front-end/CanvasProfileView.js:
158067        (WebInspector.CanvasProfileView):
158068
1580692012-11-23  Andrey Kosyakov  <caseq@chromium.org>
158070
158071        Web Inspector: dispatch events upon certain user actions on inspector's notification services
158072        https://bugs.webkit.org/show_bug.cgi?id=103114
158073
158074        Reviewed by Pavel Feldman.
158075
158076        Add a bunch of WebInspector.UserMetrics.UserAction, so platform-specific code can wire to user actions
158077        without breaking too often.
158078
158079        * inspector/front-end/ElementsPanel.js:
158080        (WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
158081        * inspector/front-end/JavaScriptSourceFrame.js:
158082        (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
158083        * inspector/front-end/NetworkItemView.js:
158084        (WebInspector.NetworkItemView.prototype._tabSelected.set WebInspector):
158085        (WebInspector.NetworkItemView.prototype._tabSelected):
158086        * inspector/front-end/NetworkPanel.js:
158087        (WebInspector.NetworkLogView.prototype._sortItems):
158088        (WebInspector.NetworkDataGridNode.prototype.select):
158089        * inspector/front-end/ProfilesPanel.js:
158090        (WebInspector.ProfilesPanel.prototype.addProfileHeader):
158091        * inspector/front-end/ScriptsPanel.js:
158092        (WebInspector.ScriptsPanel.prototype._showSourceLine):
158093        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
158094        * inspector/front-end/UISourceCode.js:
158095        (WebInspector.UISourceCode.prototype.revertToOriginal):
158096        (WebInspector.UISourceCode.prototype.revertAndClearHistory):
158097        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
158098        * inspector/front-end/UserMetrics.js:
158099        * inspector/front-end/externs.js:
158100        * inspector/front-end/inspector.js:
158101        (WebInspector._requestZoom.set var):
158102        (WebInspector._requestZoom):
158103
1581042012-11-23  Christophe Dumez  <christophe.dumez@intel.com>
158105
158106        WebSocket's MessageEvent.origin attribute is an empty string
158107        https://bugs.webkit.org/show_bug.cgi?id=102889
158108
158109        Reviewed by Kentaro Hara.
158110
158111        Fix WebSocket implementation so that the message event's origin
158112        attribute is properly set to the Unicode serialization of the
158113        origin of the URL that was passed to the WebSocket object's
158114        constructor, instead of an empty string.
158115
158116        The new behavior is according to the specification:
158117        http://www.whatwg.org/specs/web-apps/current-work/multipage/network.html#feedback-from-the-protocol
158118
158119        It also matches the behavior of Firefox.
158120
158121        Tests: http/tests/websocket/tests/hybi/send-blob-onmessage-origin.html
158122               http/tests/websocket/tests/hybi/send-onmessage-origin.html
158123
158124        * Modules/websockets/WebSocket.cpp:
158125        (WebCore::WebSocket::didReceiveMessage):
158126        (WebCore::WebSocket::didReceiveBinaryData):
158127        * dom/MessageEvent.cpp:
158128        (WebCore::MessageEvent::MessageEvent):
158129        * dom/MessageEvent.h:
158130        (WebCore::MessageEvent::create):
158131        (MessageEvent):
158132
1581332012-11-22  Eugene Klyuchnikov  <eustas.bug@gmail.com>
158134
158135        Web Inspector: No "Save Heap Snapshot" option after canceling save to file dialog.
158136        https://bugs.webkit.org/show_bug.cgi?id=100916
158137
158138        Reviewed by Yury Semikhatsky.
158139
158140        Fixed order of operations - now receiver is assigned only when save
158141        dialog responds.
158142
158143        * inspector/front-end/HeapSnapshotView.js: Fixed order of operations.
158144
1581452012-11-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
158146
158147        [Qt] REGRESSION(r135507): It made 13 tests fail
158148        https://bugs.webkit.org/show_bug.cgi?id=103069
158149
158150        Reviewed by Simon Hausmann.
158151
158152        The subframe loading logic depends on that script extensions are not recognized,
158153        so avoid recognizing them in getMIMETypeForExtension which is used for pre-load
158154        mimetype detection.
158155
158156        * platform/qt/MIMETypeRegistryQt.cpp:
158157        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
158158
1581592012-11-23  Jochen Eisinger  <jochen@chromium.org>
158160
158161        REGRESSION (r135455): Compilation without SVG enabled broken
158162        https://bugs.webkit.org/show_bug.cgi?id=103108
158163
158164        Reviewed by Yury Semikhatsky.
158165
158166        Move SVG-only code behind #if ENABLE(SVG) that was accidentially moved
158167        outside of the #if block during the refactoring.
158168
158169        * platform/graphics/filters/FilterOperation.h:
158170        (ReferenceFilterOperation):
158171
1581722012-11-23  Julian Pastarmov  <pastarmovj@chromium.org>
158173
158174        REGRESSION (r128633): td changes size during re-layout of table although it shouldn't
158175        https://bugs.webkit.org/show_bug.cgi?id=102802
158176
158177        Reviewed by Ojan Vafai.
158178
158179        The bug was caused by incorrectly rewriting a nested condition which caused the else
158180        clause to trigger in wrong cases.
158181
158182        Test: fast/table/nested-tables-with-div-offset.html
158183
158184        * rendering/RenderBox.cpp:
158185        (WebCore::RenderBox::computePercentageLogicalHeight):
158186        Reverted wrong combination of nested if statements.
158187
1581882012-11-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
158189
158190        [Qt] REGRESSION(r135507): It made 13 tests fail
158191        https://bugs.webkit.org/show_bug.cgi?id=103069
158192
158193        Reviewed by Simon Hausmann.
158194
158195        Fix regression in recognizing MHTML on some platforms.
158196
158197        * platform/qt/MIMETypeRegistryQt.cpp:
158198        (ExtensionMap):
158199        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
158200        (WebCore::MIMETypeRegistry::getMIMETypeForPath):
158201
1582022012-11-22  Pavel Feldman  <pfeldman@chromium.org>
158203
158204        Web Inspector: ctrl+end in editor does not select the last symbol.
158205        https://bugs.webkit.org/show_bug.cgi?id=103078
158206
158207        Reviewed by Vsevolod Vlasov.
158208
158209        Test: inspector/editor/text-editor-selection.html
158210
158211        * inspector/front-end/DefaultTextEditor.js:
158212        (WebInspector.DefaultTextEditor.prototype._handleScrollChanged):
158213        (WebInspector.DefaultTextEditor.prototype.overrideViewportForTest):
158214        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
158215        (WebInspector.TextEditorChunkedPanel.prototype._scrollTop):
158216        (WebInspector.TextEditorChunkedPanel.prototype._clientHeight):
158217        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
158218        (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
158219        (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
158220
1582212012-11-23  Yury Semikhatsky  <yurys@chromium.org>
158222
158223        Remove references to non-chromium entries from WebCore.gypi
158224        https://bugs.webkit.org/show_bug.cgi?id=103103
158225
158226        Reviewed by Pavel Feldman.
158227
158228        * WebCore.gypi: Removed references to files specific for wince, cairo, qt, wx and efl.
158229
1582302012-11-23  Alexander Pavlov  <apavlov@chromium.org>
158231
158232        Web Inspector: inspector overlay is always updated when inspector is open
158233        https://bugs.webkit.org/show_bug.cgi?id=103106
158234
158235        Reviewed by Pavel Feldman.
158236
158237        Provide empty size into the InspectorOverlay if the metrics emulation is disabled,
158238        so that it will not get painted in all cases.
158239
158240        * inspector/InspectorController.cpp:
158241        (WebCore::InspectorController::webViewResized): Call InspectorPageAgent::webViewResized() rather than InspectorOverlay::resize().
158242        * inspector/InspectorPageAgent.cpp:
158243        (WebCore::InspectorPageAgent::webViewResized): Provide empty size into InspectorOverlay::resize() if device metrics are not emulated.
158244        * inspector/InspectorPageAgent.h:
158245
1582462012-11-23  Krzysztof Czech  <k.czech@samsung.com>
158247
158248        [EFL] Platform support for Accessibility feature.
158249        https://bugs.webkit.org/show_bug.cgi?id=100848
158250
158251        Reviewed by Gyuyoung Kim.
158252
158253        Add EFL platform's definitions to enable proper accessibility routines.
158254
158255        No new tests. Covered by existing layout tests.
158256
158257        * PlatformEfl.cmake: Add accessibility/atk content to compilation.
158258        * accessibility/AccessibilityObject.cpp:
158259        (WebCore::AccessibilityObject::AccessibilityObject):
158260        * accessibility/AccessibilityObject.h:
158261        (AccessibilityObject):
158262        * accessibility/efl/AccessibilityObjectEfl.cpp: Removed. No needed platform specific implementation. ATK shared implementation will be used.
158263
1582642012-11-23  Thiago Marcos P. Santos  <thiago.santos@intel.com>
158265
158266        Expose DOM interface for CSS Device Adaptation
158267        https://bugs.webkit.org/show_bug.cgi?id=95966
158268
158269        Reviewed by Kenneth Rohde Christiansen.
158270
158271        Added V8 and JSC bindings for CSS Device Adapation.
158272
158273        Test: css3/device-adapt/opera/cssom-001.xhtml
158274
158275        * CMakeLists.txt:
158276        * DerivedSources.make:
158277        * DerivedSources.pri:
158278        * GNUmakefile.list.am:
158279        * WebCore.gypi:
158280        * WebCore.xcodeproj/project.pbxproj:
158281        * bindings/js/JSCSSRuleCustom.cpp:
158282        (WebCore::toJS):
158283        * bindings/objc/DOMCSS.mm:
158284        (kitClass):
158285        * bindings/v8/custom/V8CSSRuleCustom.cpp:
158286        (WebCore::wrap):
158287        * css/CSSRule.idl:
158288        * css/WebKitCSSViewportRule.idl: Added.
158289        * page/DOMWindow.idl:
158290
1582912012-11-22  Sheriff Bot  <webkit.review.bot@gmail.com>
158292
158293        Unreviewed, rolling out r135549.
158294        http://trac.webkit.org/changeset/135549
158295        https://bugs.webkit.org/show_bug.cgi?id=103102
158296
158297        Multiple layout test crashes (Requested by yurys on #webkit).
158298
158299        * rendering/RenderTable.cpp:
158300        (WebCore::RenderTable::layout):
158301        * rendering/RenderTable.h:
158302        (RenderTable):
158303
1583042012-11-22  Rick Byers  <rbyers@chromium.org>
158305
158306        window is missing Touch and TouchList - touch event conformance test failure
158307        https://bugs.webkit.org/show_bug.cgi?id=96295
158308
158309        Reviewed by Adam Barth.
158310
158311        Add Touch and TouchList constructors to window for ENABLE(TOUCH_EVENTS).
158312
158313        Tests: fast/js/global-constructors.html
158314               fast/events/touch/document-create-touch-list.html
158315
158316        * page/DOMWindow.idl:
158317
1583182012-11-22  Dan Carney  <dcarney@google.com>
158319
158320        [V8] Make worker context prototype chain match other browsers
158321        https://bugs.webkit.org/show_bug.cgi?id=103057
158322
158323        Reviewed by Adam Barth.
158324
158325        The following should be defined in a worker:
158326        Object.getOwnPropertyDescriptor(this.__proto__, "postMessage")
158327        It is currently undefined in chrome only. This patch fixes that.
158328
158329        No new tests. No change in functionality.
158330
158331        * bindings/scripts/CodeGeneratorV8.pm:
158332        (GenerateImplementation):
158333
1583342012-11-22  Rafael Brandao  <rafael.lobo@openbossa.org>
158335
158336        Remove PLATFORM(HAIKU) leftovers code
158337        https://bugs.webkit.org/show_bug.cgi?id=103086
158338
158339        Reviewed by Antti Koivisto.
158340
158341        * platform/PlatformWheelEvent.h:
158342        (PlatformWheelEvent):
158343
1583442012-11-22  Dirk Schulze  <krit@webkit.org>
158345
158346        -webkit-mask shorthand switches -webkit-mask-clip and -webkit-mask-origin values
158347        https://bugs.webkit.org/show_bug.cgi?id=103083
158348
158349        Reviewed by Antti Koivisto.
158350
158351        The order of CSSPropertyWebkitMaskOrigin and CSSPropertyWebkitMaskClip was not correct
158352        for property value. Just changed the order in the property array to match behavior of
158353        background and CSS Masking spec.
158354
158355        Test: fast/masking/parsing-mask.html
158356
158357        * css/StylePropertyShorthand.cpp:
158358        (WebCore::webkitMaskShorthand):
158359
1583602012-11-22  John Mellor  <johnme@chromium.org>
158361
158362        Text Autosizing: Improve handling of nested comments on reddit.com
158363        https://bugs.webkit.org/show_bug.cgi?id=102409
158364
158365        Reviewed by Kenneth Rohde Christiansen.
158366
158367        No longer consider overflow != visible as requiring an independent
158368        cluster. Some sites (e.g. reddit.com) wrap ordinary blocks (such as
158369        comments) in overflow:hidden or overflow:auto, for various reasons
158370        (like allowing it to be scrollable, or clipping an element that sticks
158371        out). These reasons are not sufficient justification for a new cluster.
158372
158373        On reddit.com this means that comments will all get the same multiplier,
158374        rather than being independently assigned a variety of multipliers based
158375        on how much text each comment contains (etc), which significantly
158376        improves the look.
158377
158378        Test: fast/text-autosizing/cluster-narrow-in-wide-ohidden.html
158379
158380        * rendering/TextAutosizer.cpp:
158381        (WebCore::TextAutosizer::isAutosizingCluster):
158382
1583832012-11-22  Pravin D  <pravind.2k4@gmail.com>
158384
158385        max-height property not respected in case of tables
158386        https://bugs.webkit.org/show_bug.cgi?id=98633
158387
158388        Reviewed by Julien Chaffraix.
158389
158390        The max-height property determines the maximum computed height an element can have. In case of tables
158391        the computed height was not being limited by the max-height property. The current patch fixes the same.
158392
158393        Test: fast/table/css-table-max-height.html
158394
158395        * rendering/RenderTable.cpp:
158396        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
158397          Helper function to compute height from the given style height.
158398          This function handles style height of type fixed, percent and viewport percent.
158399          As height of type 'calculated' gets internally resolved to either fixed or percent
158400          there is no special handling required for the same.
158401
158402        (WebCore):
158403        (WebCore::RenderTable::layout):
158404          Logic to compute the logical height of an element such that it does not exceed the max-height value given that
158405          min-width < Content height < max-height, when min-height < max-height.
158406          However max-height value is not respected if either min-height > max-height or Content height > max-height.
158407
158408        * rendering/RenderTable.h:
158409        (RenderTable):
158410          Function definition for the newly add function convertStyleLogicalHeightToComputedHeight().
158411
1584122012-11-22  Kentaro Hara  <haraken@chromium.org>
158413
158414        Remove 'module' from IDL parser
158415        https://bugs.webkit.org/show_bug.cgi?id=102670
158416
158417        Reviewed by Adam Barth.
158418
158419        The Web IDL spec no longer supports 'module'. We already removed
158420        'module's from WebKit IDL files. So this patch removes 'module'
158421        from the IDL parser.
158422
158423        No tests. No change in behavior.
158424
158425        * bindings/scripts/IDLParser.pm:
158426        (Parse):
158427        (parseDefinitionOld):
158428
1584292012-11-22  Dan Carney  <dcarney@google.com>
158430
158431        [V8] fix DOMWrapperWorld destructor
158432        https://bugs.webkit.org/show_bug.cgi?id=103066
158433
158434        Reviewed by Jochen Eisinger.
158435
158436        DOMWrapperWorld had a workaround in place during deletion.
158437        This patch brings it in line with WebKit standards.
158438
158439        No new tests: refactor.
158440
158441        * bindings/v8/DOMWrapperWorld.cpp:
158442        (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
158443        (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
158444        * bindings/v8/DOMWrapperWorld.h:
158445        (DOMWrapperWorld):
158446        (WebCore::DOMWrapperWorld::isolatedWorldDOMDataStore):
158447
1584482012-11-22  Antti Koivisto  <antti@apple.com>
158449
158450        Remove SVGShadowText class
158451        https://bugs.webkit.org/show_bug.cgi?id=103088
158452
158453        Reviewed by Ryosuke Niwa.
158454
158455        Remove SVGShadowText class and merge the little functionality it has to Text.
158456
158457        * dom/Text.cpp:
158458        (WebCore):
158459        (WebCore::isSVGShadowText):
158460        
158461            Figure out if we are a SVGShadowText from the context.
158462
158463        (WebCore::isSVGText):
158464        (WebCore::Text::createRenderer):
158465        (WebCore::Text::recalcTextStyle):
158466        
158467            Factor SVG special case testing to functions.
158468
158469        * dom/Text.h:
158470        (Text):
158471
158472            Get rid of the now unnecessary willRecalcTextStyle mechanism.
158473
158474        * svg/SVGTRefElement.cpp:
158475        (WebCore):
158476        (WebCore::SVGTRefElement::updateReferencedText):
158477
1584782012-11-22  Andreas Kling  <akling@apple.com>
158479
158480        Style sharing: Remove O(n^2) presentation attribute checks that never found anything anyway.
158481        <http://webkit.org/b/103019>
158482
158483        Reviewed by Ojan Vafai.
158484
158485        Rely on the global presentation attribute cache and remove the slow-path code that compares
158486        the full StylePropertySets for attribute-derived style.
158487        There are virtually no cases of logically equivalent presentation attribute styles that don't
158488        already share the same memory address. (Zero hits on Apple and Chromium PLT content.)
158489
158490        * css/StyleResolver.cpp:
158491        (WebCore::haveIdenticalStyleAffectingAttributes):
158492        (WebCore::StyleResolver::canShareStyleWithElement):
158493
1584942012-11-22  Pavel Feldman  <pfeldman@chromium.org>
158495
158496        Web Inspector: evaluate on hover regressed with the editor change
158497        https://bugs.webkit.org/show_bug.cgi?id=103063
158498
158499        Reviewed by Vsevolod Vlasov.
158500
158501        We are no longer mutating the editor's dom from outside.
158502
158503        * inspector/front-end/DOMExtension.js:
158504        (Element.prototype.remove):
158505        * inspector/front-end/DefaultTextEditor.js:
158506        (WebInspector.DefaultTextEditor.prototype.highlightRangesWithStyleClass):
158507        (WebInspector.DefaultTextEditor.prototype.highlightExpression):
158508        (WebInspector.DefaultTextEditor.prototype.hideHighlightedExpression):
158509        * inspector/front-end/JavaScriptSourceFrame.js:
158510        (WebInspector.JavaScriptSourceFrame.prototype._getPopoverAnchor):
158511        (WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
158512        (WebInspector.JavaScriptSourceFrame.prototype._highlightExpression):
158513
1585142012-09-26  Gustavo Noronha Silva  <gns@gnome.org>
158515
158516        [GTK] Split SVG from WebCore to work-around make limitation
158517        https://bugs.webkit.org/show_bug.cgi?id=97735
158518
158519        Reviewed by Carlos Garcia Campos.
158520
158521        Add a new libtool convenience library, libWebCoreSVG.la, to work-around
158522        make limitation when linking libWebCore.
158523
158524        * GNUmakefile.am: new libWebCoreSVG.la library.
158525        * GNUmakefile.list.am: move SVG-related files to be part of the new library.
158526
1585272012-11-22  Pan Deng  <pan.deng@intel.com>
158528
158529        [Web Inspector]Code Style changes in TimelinePresentationModel.js.
158530        https://bugs.webkit.org/show_bug.cgi?id=102885.
158531
158532        Reviewed by Pavel Feldman.
158533
158534        This patch changes "switch" code style for TimelinePresentationModel.js, no functionality update.
158535
158536        No new tests.
158537
158538        * inspector/front-end/TimelinePresentationModel.js:
158539        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
158540
1585412012-11-22  Ryosuke Niwa  <rniwa@webkit.org>
158542
158543        Build fix attempt.
158544
158545        * html/HTMLCollection.h:
158546        (HTMLCollection):
158547
1585482012-11-22  Ryosuke Niwa  <rniwa@webkit.org>
158549
158550        Get rid of HTMLCollectionCacheBase
158551        https://bugs.webkit.org/show_bug.cgi?id=103085
158552
158553        Reviewed by Sam Weinig.
158554
158555        Merged HTMLCollectionCacheBase into HTMLCollection now that DynamicNodeList and HTMLCollection
158556        share one implementation.
158557
158558        * dom/DynamicNodeList.cpp:
158559        (WebCore::DynamicNodeListCacheBase::rootNode): Merged ownerNodeHasItemRefAttribute since this was
158560        the only caller of this function, and the function name didn't match what it was checking.
158561        (WebCore::DynamicNodeListCacheBase::invalidateCache):
158562        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
158563        * dom/DynamicNodeList.h:
158564        (WebCore):
158565        (WebCore::DynamicNodeListCacheBase::cachedItemOffset):
158566        (DynamicNodeListCacheBase):
158567        * html/HTMLCollection.cpp:
158568        (WebCore::HTMLCollection::HTMLCollection):
158569        (WebCore::DynamicNodeListCacheBase::setItemCache):
158570        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfterCachedItem): Merged cachedElementsArrayOffset()
158571        now that this is the only caller.
158572        (WebCore::HTMLCollection::append):
158573        * html/HTMLCollection.h:
158574        (HTMLCollection):
158575        (WebCore::HTMLCollection::idCache): Moved from HTMLCollectionCacheBase.
158576        (WebCore::HTMLCollection::nameCache): Ditto.
158577        (WebCore::HTMLCollection::appendIdCache): Ditto.
158578        (WebCore::HTMLCollection::appendNameCache): Ditto.
158579
1585802012-11-22  Antti Koivisto  <antti@apple.com>
158581
158582        Merge EditingText into Text
158583        https://bugs.webkit.org/show_bug.cgi?id=103060
158584
158585        Reviewed by Ryosuke Niwa.
158586
158587        Remove the EditingText class. Its only function beyond the regular Text is that it always creates a renderer.
158588        It can be replaced with a bit.
158589
158590        * CMakeLists.txt:
158591        * GNUmakefile.list.am:
158592        * Target.pri:
158593        * WebCore.gypi:
158594        * WebCore.vcproj/WebCore.vcproj:
158595        * WebCore.xcodeproj/project.pbxproj:
158596        * dom/CDATASection.cpp:
158597        (WebCore::CDATASection::CDATASection):
158598        * dom/Document.cpp:
158599        (WebCore::Document::createEditingTextNode):
158600        * dom/Document.h:
158601        (WebCore):
158602        (Document):
158603        * dom/EditingText.cpp: Removed.
158604        * dom/EditingText.h: Removed.
158605        * dom/Node.h:
158606        (WebCore::Node::hasName):
158607        (WebCore::Node::isEditingText):
158608        (WebCore::Node::setHasName):
158609        
158610            Use the same bit as hasName() which is Element specific.
158611
158612        * dom/Text.cpp:
158613        (WebCore::Text::create):
158614        (WebCore):
158615        (WebCore::Text::createEditingText):
158616        (WebCore::Text::rendererIsNeeded):
158617        * dom/Text.h:
158618        (Text):
158619        (WebCore::Text::Text):
158620        * editing/Editor.cpp:
158621        * editing/InsertTextCommand.cpp:
158622        * editing/ReplaceSelectionCommand.cpp:
158623        * editing/htmlediting.cpp:
158624        * editing/mac/EditorMac.mm:
158625        * page/Frame.cpp:
158626
1586272012-11-22  Eugene Klyuchnikov  <eustas.bug@gmail.com>
158628
158629        Web Inspector: Timeline: Disclosure arrows rendered underneath frame boundaries
158630        https://bugs.webkit.org/show_bug.cgi?id=101053
158631
158632        Reviewed by Yury Semikhatsky.
158633
158634        In Timeline, when in "frames" mode, event disclosure arrows are rendered
158635        below the dividing lines for the frame (div.timeline-frame-divider).
158636        When this happens, the frame divider can capture mouse clicks and make
158637        it difficult to open the disclosure arrow.
158638
158639        * inspector/front-end/timelinePanel.css:
158640        (#timeline-grid-header): Render dividers under timeline bars.
158641
1586422012-11-22  Huang Dongsung  <luxtella@company100.net>
158643
158644        [TexMap] Reduce public methods of TextureMapperTiledBackingStore.
158645        https://bugs.webkit.org/show_bug.cgi?id=103032
158646
158647        Reviewed by Noam Rosenthal.
158648
158649        This patch makes two methods private and removes one method.
158650
158651        No new tests, refactoring only.
158652
158653        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
158654        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
158655        * platform/graphics/texmap/TextureMapperBackingStore.h:
158656        (WebCore::TextureMapperTiledBackingStore::create):
158657        (TextureMapperTiledBackingStore):
158658        (WebCore::TextureMapperTiledBackingStore::setContentsToImage):
158659        (WebCore::TextureMapperTiledBackingStore::rect):
158660
1586612012-11-22  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi <pierre.rossi@digia.com>
158662
158663        [Qt] Separate QWidget dependant code into separate WebKitWidgets static library
158664        https://bugs.webkit.org/show_bug.cgi?id=102800
158665
158666        Reviewed by Tor Arne Vestbø.
158667
158668        This patch separates code that needs to use QWidget related APIs in
158669        WebKit/qt/WebCoreSupport and Api from code that doesn't. This means for
158670        example FrameLoaderClientQt.cpp remains in the WebKit1 static library,
158671        while qwebpage.cpp and qwebframe.cpp become part of the WebKitWidgets
158672        static library. WebKit1 is compiled without QT += widgets and therefore
158673        any widget related dependency has been moved "up" and out of WebKit1 into
158674        the WebKitWidgets library.
158675
158676        Between the code in WebKit.a and WebKitWidgets.a new adapters and
158677        interfaces have been introduced, such as QWebPageAdapter and
158678        QWebFrameAdapter. QWebPageAdapter, when used from WebKit1, is a way to
158679        call out into the API layer, implemented by QWebPage (QWebPagePrivate).
158680        The other way around if QWebPage wants to access WebCore or
158681        WebCoreSupport related functionality, it will go through
158682        QWebPageAdapater (as base class). The separation in the direction up
158683        into the API layer is complete with this patch, no code in WebKit1
158684        depends on QtWidgets. The separation the other way around, code in the
158685        API layer not using any WebCore types, is not complete yet.
158686
158687        Some classes such as QWebSettings, QWebElement or
158688        DumpRenderTreeSupportQt remain in WebKit1. While they are API layer,
158689        they do not depend on widget related Qt APIs and they make much more
158690        use of WebCore internal APIs and therefore are easier to keep in
158691        WebKit1.
158692
158693        In the future we plan to place a real shared library boundary between
158694        WebKit1 and WebKitWidgets, by keeping the WebKit1 static library as
158695        part of the QtWebKit shared library and by turning the WebKitWidgets
158696        static library into a shared one.
158697
158698        * platform/qt/QWebPageClient.h:
158699        (QWebPageClient):
158700
1587012012-11-22  Dan Carney  <dcarney@google.com>
158702
158703        [V8] Add context checks to WorldContextHandle and V8DOMWindowShell
158704        https://bugs.webkit.org/show_bug.cgi?id=101573
158705
158706        Reviewed by Adam Barth.
158707
158708        Added a bunch of assertions to ensure the problems with IndexedDB
158709        contexts cannot reemerge.
158710
158711        No new tests. No change in functionality.
158712
158713        * bindings/v8/V8DOMWindowShell.cpp:
158714        (WebCore):
158715        (WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
158716        * bindings/v8/V8DOMWindowShell.h:
158717        (V8DOMWindowShell):
158718        (WebCore::V8DOMWindowShell::isolated):
158719        * bindings/v8/WorldContextHandle.cpp:
158720        (WebCore::WorldContextHandle::WorldContextHandle):
158721
1587222012-11-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
158723
158724        [Qt] Correct extensions on preferredFilename
158725        https://bugs.webkit.org/show_bug.cgi?id=103054
158726
158727        Reviewed by Simon Hausmann.
158728
158729        When guessing a filename we will now ensure it has an extension that is valid for its mimetype.
158730        To do this the two missing methods getExtensionsForMIMEType and getPreferredExtensionForMIMEType
158731        have been added to the Qt implementation of MIMETypeRegistry.
158732
158733        * platform/network/qt/QNetworkReplyHandler.cpp:
158734        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
158735        * platform/qt/MIMETypeRegistryQt.cpp:
158736        (WebCore::MIMETypeRegistry::getExtensionsForMIMEType):
158737        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
158738
1587392012-11-22  Kent Tamura  <tkent@chromium.org>
158740
158741        INPUT_MULTIPLE_FIELDS_UI: Refactoring: Do not call updateInnerTextValue if only read-only sub-fields have values
158742        https://bugs.webkit.org/show_bug.cgi?id=103033
158743
158744        Reviewed by Kentaro Hara.
158745
158746        input[type=time] can have read-only sub fields. If only read-only fields
158747        have values, we don't need to call updateInnerTextValue when
158748        HTMLInputElement::value is set to "".
158749
158750        Tests: this patch doesn't change any visible behavior, but we add test cases to
158751        fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
158752        just in case.
158753
158754        * html/shadow/DateTimeEditElement.h:
158755        (DateTimeEditElement): Declare anyEditableFieldsHaveValues.
158756        * html/shadow/DateTimeEditElement.cpp:
158757        (WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
158758        Added. This function checks value existence against only editable sub-fields.
158759        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
158760        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
158761        Call DateTimeEditElement::anyEditableFieldsHaveValues() instead of
158762        DateTimeFieldsState::hasAnyValue().
158763        * html/DateTimeFieldsState.h: Remove hasAnyValue.
158764
1587652012-11-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
158766
158767        [Qt] Lookup mimetypes using QMimeDatabase
158768        https://bugs.webkit.org/show_bug.cgi?id=102667
158769
158770        Reviewed by Simon Hausmann.
158771
158772        The Qt backend of MIMETypeRegistry now looks up using QMimeDatabase.
158773
158774        * loader/archive/ArchiveFactory.cpp:
158775        (WebCore::archiveMIMETypes):
158776            Also map the preferred freedesktop mimetype for MIME archives to MIME archive constructor.
158777        * platform/MIMETypeRegistry.cpp:
158778        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
158779        * platform/qt/MIMETypeRegistryQt.cpp:
158780        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
158781        (WebCore::MIMETypeRegistry::getMIMETypeForPath):
158782        (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
158783
1587842012-11-22  Cosmin Truta  <ctruta@rim.com>
158785
158786        Move URL-checking code into Frame
158787        https://bugs.webkit.org/show_bug.cgi?id=103014
158788
158789        Reviewed by Ojan Vafai.
158790
158791        Move the common URL checking logic from HTMLFrameElementBase::isURLAllowed
158792        and HTMLPlugInImageElement::allowedToLoadFrameURL into Frame::isURLAllowed.
158793
158794        No new tests. Refactoring.
158795
158796        * html/HTMLFrameElementBase.cpp:
158797        (WebCore::HTMLFrameElementBase::isURLAllowed): Call Frame::isURLAllowed.
158798        * html/HTMLPlugInImageElement.cpp:
158799        (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL): Call Frame::isURLAllowed.
158800        * page/Frame.cpp:
158801        (WebCore::Frame::isURLAllowed): Added.
158802        * page/Frame.h:
158803        (Frame): Added isURLAllowed.
158804
1588052012-11-22  Kentaro Hara  <haraken@chromium.org>
158806
158807        [V8] Rename toWebCoreStringWithNullOrUndefinedCheck() with toWebCoreStringWithUndefinedOrNullCheck()
158808        https://bugs.webkit.org/show_bug.cgi?id=103013
158809
158810        Reviewed by Adam Barth.
158811
158812        IDL attributes and other V8 and JSC files use "UndefinedOrNull" instead of "NullOrUndefined".
158813
158814        No tests. No change in behavior.
158815
158816        * bindings/v8/JavaScriptCallFrame.cpp:
158817        (WebCore::JavaScriptCallFrame::functionName):
158818        * bindings/v8/ScriptDebugServer.cpp:
158819        (WebCore::ScriptDebugServer::setScriptSource):
158820        (WebCore::ScriptDebugServer::dispatchDidParseSource):
158821        (WebCore::ScriptDebugServer::compileScript):
158822        (WebCore::ScriptDebugServer::runScript):
158823        * bindings/v8/ScriptEventListener.cpp:
158824        (WebCore::eventListenerHandlerLocation):
158825        * bindings/v8/V8Binding.h:
158826        (WebCore::toWebCoreStringWithUndefinedOrNullCheck):
158827        * bindings/v8/custom/V8DOMWindowCustom.cpp:
158828        (WebCore::V8DOMWindow::showModalDialogCallback):
158829        (WebCore::V8DOMWindow::openCallback):
158830        * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
158831        (WebCore::V8JavaScriptCallFrame::evaluateCallback):
158832
1588332012-11-22  Harald Alvestrand  <hta@google.com>
158834
158835        Name enumerator function for GetStats RTCStatsElement
158836        https://bugs.webkit.org/show_bug.cgi?id=102933
158837
158838        Reviewed by Adam Barth.
158839
158840        Tested by extensions to the RTCPeerConnection-stats test.
158841
158842        * Modules/mediastream/RTCStatsElement.cpp:
158843        (WebCore::RTCStatsElement::names):
158844        (WebCore):
158845        * Modules/mediastream/RTCStatsElement.h:
158846        (RTCStatsElement):
158847        * Modules/mediastream/RTCStatsElement.idl:
158848
1588492012-11-22  Kentaro Hara  <haraken@chromium.org>
158850
158851        Rename the "eden" bit to something more descriptive
158852        https://bugs.webkit.org/show_bug.cgi?id=102985
158853
158854        Reviewed by Adam Barth.
158855
158856        InEdenFlag is not descriptive. Per the discussion in IRC,
158857        we rename InEdenFlag to V8CollectableDuringMinorGCFlag.
158858
158859        No tests. No change in behavior.
158860
158861        * bindings/v8/V8GCController.cpp:
158862        (WebCore::gcTree):
158863        (WebCore::V8GCController::didCreateWrapperForNode):
158864        (WebCore::V8GCController::minorGCPrologue):
158865        * dom/Node.h:
158866        (WebCore::Node::isV8CollectableDuringMinorGC):
158867        (WebCore::Node::setV8CollectableDuringMinorGC):
158868
1588692012-11-22  Kentaro Hara  <haraken@chromium.org>
158870
158871        [V8] Move AddMessageListener() from WorkerContextExecutionProxy::initializeIfNeeded() to WorkerContextExecutionProxy::initIsolate()
158872        https://bugs.webkit.org/show_bug.cgi?id=102998
158873
158874        Reviewed by Adam Barth.
158875
158876        This is an incremental step for moving initializeIfNeeded()
158877        to V8Initializer.h. Given that AddMessageListener() needs to
158878        be called once per Isolate, we can move AddMessageListener()
158879        from initializeIfNeeded() to initIsolate().
158880
158881        No tests. No change in behavior.
158882
158883        * bindings/v8/WorkerContextExecutionProxy.cpp:
158884        (WebCore::WorkerContextExecutionProxy::initIsolate):
158885        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
158886
1588872012-11-22  Michael Saboff  <msaboff@apple.com>
158888
158889        HTML integer parsing functions don't natively handle 8 bit strings
158890        https://bugs.webkit.org/show_bug.cgi?id=102997
158891
158892        Reviewed by Filip Pizlo.
158893
158894        In order to avoid unnecessary up convering of 8 bit strings to 16 bits, added 8 bit paths to
158895        parseHTMLInteger() and parseHTMLNonNegativeInteger() by breaking out the core logic into
158896        templated helper functions.  These methods are primarily used to process attribute values.
158897
158898        No new tests needed, functionnality covered by existing tests.
158899
158900        * html/parser/HTMLParserIdioms.cpp:
158901        (WebCore::parseHTMLIntegerInternal):
158902        (WebCore::parseHTMLInteger):
158903        (WebCore::parseHTMLNonNegativeIntegerInternal):
158904        (WebCore::parseHTMLNonNegativeInteger):
158905
1589062012-11-22  Kentaro Hara  <haraken@chromium.org>
158907
158908        [V8] WebCoreStringResourceBase should be located in V8StringResource.h
158909        https://bugs.webkit.org/show_bug.cgi?id=103002
158910
158911        Reviewed by Adam Barth.
158912
158913        Currently WebCoreStringResourceBase is mis-located in V8ValueCache.h.
158914        It should be in V8StringResource.h.
158915
158916        No tests. No change in behavior.
158917
158918        * bindings/v8/V8StringResource.cpp:
158919        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
158920        (WebCore):
158921        (WebCore::WebCoreStringResourceBase::visitStrings):
158922        * bindings/v8/V8StringResource.h:
158923        (WebCore):
158924        (WebCoreStringResourceBase):
158925        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
158926        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
158927        (WebCore::WebCoreStringResourceBase::webcoreString):
158928        (WebCore::WebCoreStringResourceBase::atomicString):
158929        (WebCore::WebCoreStringResourceBase::memoryConsumption):
158930        (WebCoreStringResource16):
158931        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
158932        (WebCoreStringResource8):
158933        (WebCore::WebCoreStringResource8::WebCoreStringResource8):
158934        * bindings/v8/V8ValueCache.cpp:
158935        * bindings/v8/V8ValueCache.h:
158936        (WebCore):
158937
1589382012-11-21  Ilya Tikhonovsky  <loislo@chromium.org>
158939
158940        Web Inspector: NMI add instrumentation to DynamicNodeList classes hierarchy.
158941        https://bugs.webkit.org/show_bug.cgi?id=103025
158942
158943        Reviewed by Yury Semikhatsky.
158944
158945        RNiwa changed pointer type in NodeRareData::NodeListAtomicNameCacheMap from the topmost
158946        DynamicSubtreeNodeList to the base DynamicNodeListCacheBase at r135429.
158947        As a result we got non zero count of pointers that don't match with tcmalloc data,
158948        because DynamicNodeList uses multiple inheritance.
158949        It could be fixed with help of explicit native memory instrumentation for DynamicNodeList class hierarchy.
158950
158951        No change in behavior, so no new tests.
158952
158953        * dom/Document.cpp: drive by fix.
158954        (WebCore::Document::reportMemoryUsage):
158955        * dom/DynamicNodeList.cpp:
158956        (WebCore::DynamicNodeListCacheBase::reportMemoryUsage):
158957        (WebCore):
158958        (WebCore::DynamicNodeList::reportMemoryUsage):
158959        (WebCore::DynamicSubtreeNodeList::reportMemoryUsage):
158960        * dom/DynamicNodeList.h:
158961        (WebCore::DynamicNodeListCacheBase::~DynamicNodeListCacheBase):
158962        (DynamicNodeListCacheBase):
158963        (DynamicNodeList):
158964        (DynamicSubtreeNodeList):
158965
1589662012-11-22  Kentaro Hara  <haraken@chromium.org>
158967
158968        Unreviewed, rolling out r135482.
158969        http://trac.webkit.org/changeset/135482
158970        https://bugs.webkit.org/show_bug.cgi?id=103002
158971
158972        It broke Chrome/Linux Debug build
158973
158974        * bindings/v8/V8StringResource.cpp:
158975        * bindings/v8/V8StringResource.h:
158976        * bindings/v8/V8ValueCache.cpp:
158977        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
158978        (WebCore):
158979        (WebCore::WebCoreStringResourceBase::visitStrings):
158980        * bindings/v8/V8ValueCache.h:
158981        (WebCore):
158982        (WebCoreStringResourceBase):
158983        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
158984        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
158985        (WebCore::WebCoreStringResourceBase::webcoreString):
158986        (WebCore::WebCoreStringResourceBase::atomicString):
158987        (WebCore::WebCoreStringResourceBase::memoryConsumption):
158988        (WebCoreStringResource16):
158989        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
158990        (WebCoreStringResource8):
158991        (WebCore::WebCoreStringResource8::WebCoreStringResource8):
158992
1589932012-11-22  Sheriff Bot  <webkit.review.bot@gmail.com>
158994
158995        Unreviewed, rolling out r134927 and r134944.
158996        http://trac.webkit.org/changeset/134927
158997        http://trac.webkit.org/changeset/134944
158998        https://bugs.webkit.org/show_bug.cgi?id=103028
158999
159000        Reverting the reverts after merging. (Requested by vsevik on
159001        #webkit).
159002
159003        * English.lproj/localizedStrings.js:
159004        * WebCore.gypi:
159005        * WebCore.vcproj/WebCore.vcproj:
159006        * inspector/compile-front-end.py:
159007        * inspector/front-end/AdvancedSearchController.js:
159008        * inspector/front-end/CallStackSidebarPane.js:
159009        (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
159010        * inspector/front-end/ConsoleView.js:
159011        (WebInspector.ConsoleView.prototype._registerShortcuts):
159012        * inspector/front-end/ElementsPanel.js:
159013        (WebInspector.ElementsPanel):
159014        * inspector/front-end/ElementsPanelDescriptor.js:
159015        (WebInspector.ElementsPanelDescriptor.prototype.registerShortcuts):
159016        * inspector/front-end/GoToLineDialog.js:
159017        (WebInspector.GoToLineDialog.install):
159018        * inspector/front-end/KeyboardShortcut.js:
159019        (WebInspector.KeyboardShortcut._keyName):
159020        * inspector/front-end/Panel.js:
159021        (WebInspector.Panel.prototype.registerShortcuts):
159022        (WebInspector.PanelDescriptor.prototype.panel):
159023        (WebInspector.PanelDescriptor.prototype.registerShortcuts):
159024        * inspector/front-end/ScriptsPanel.js:
159025        (WebInspector.ScriptsPanel):
159026        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
159027        (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
159028        * inspector/front-end/ScriptsPanelDescriptor.js:
159029        (WebInspector.ScriptsPanelDescriptor.prototype.registerShortcuts):
159030        * inspector/front-end/ShortcutsScreen.js:
159031        (WebInspector.ShortcutsScreen):
159032        (WebInspector.ShortcutsSection):
159033        (WebInspector.ShortcutsSection.prototype._renderKey):
159034        * inspector/front-end/StylesSidebarPane.js:
159035        * inspector/front-end/TimelinePanel.js:
159036        (WebInspector.TimelinePanel.prototype._registerShortcuts):
159037        * inspector/front-end/TimelinePanelDescriptor.js: Copied from Source/WebCore/inspector/front-end/ScriptsPanelDescriptor.js.
159038        (WebInspector.TimelinePanelDescriptor):
159039        (WebInspector.TimelinePanelDescriptor.prototype.registerShortcuts):
159040        * inspector/front-end/WebKit.qrc:
159041        * inspector/front-end/inspector.html:
159042        * inspector/front-end/inspector.js:
159043        (WebInspector._panelDescriptors):
159044        (WebInspector._registerShortcuts):
159045
1590462012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>
159047
159048        Unreviewed, rolling out r135433 and r135479.
159049        http://trac.webkit.org/changeset/135433
159050        http://trac.webkit.org/changeset/135479
159051        https://bugs.webkit.org/show_bug.cgi?id=103029
159052
159053        "IDBRequestTest.EventsAfterStopping crashes" (Requested by
159054        yurys on #webkit).
159055
159056        * bindings/v8/DOMDataStore.cpp:
159057        (WebCore::DOMDataStore::current):
159058        * bindings/v8/DOMWrapperWorld.cpp:
159059        * bindings/v8/DOMWrapperWorld.h:
159060        * bindings/v8/ScriptController.cpp:
159061        (WebCore::ScriptController::existingWindowShell):
159062        (WebCore::ScriptController::windowShell):
159063        (WebCore::ScriptController::evaluateInIsolatedWorld):
159064        (WebCore::ScriptController::currentWorldContext):
159065        (WebCore::ScriptController::collectIsolatedContexts):
159066        * bindings/v8/ScriptController.h:
159067        (ScriptController):
159068        * bindings/v8/V8Binding.h:
159069        (WebCore::worldForEnteredContextIfIsolated):
159070        * bindings/v8/V8DOMWindowShell.cpp:
159071        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
159072        (WebCore::isolatedContextWeakCallback):
159073        (WebCore):
159074        (WebCore::V8DOMWindowShell::disposeContext):
159075        (WebCore::V8DOMWindowShell::initializeIfNeeded):
159076        (WebCore::V8DOMWindowShell::installDOMWindow):
159077        * bindings/v8/V8DOMWindowShell.h:
159078        (WebCore::V8DOMWindowShell::isolated):
159079        (V8DOMWindowShell):
159080        * bindings/v8/V8PerContextData.h:
159081        * bindings/v8/WorldContextHandle.cpp:
159082        (WebCore::WorldContextHandle::WorldContextHandle):
159083
1590842012-11-21  Pavel Feldman  <pfeldman@chromium.org>
159085
159086        Web Inspector: simplify the _updateChunksForRanges routine
159087        https://bugs.webkit.org/show_bug.cgi?id=102927
159088
159089        Reviewed by Vsevolod Vlasov.
159090
159091        * inspector/front-end/DefaultTextEditor.js:
159092        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
159093        (WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
159094        (WebInspector.TextEditorMainChunk.prototype.detachFromDOM):
159095        (WebInspector.TextEditorMainChunk.prototype.anchorElement):
159096
1590972012-11-21  Kentaro Hara  <haraken@chromium.org>
159098
159099        [V8] WebCoreStringResourceBase should be located in V8StringResource.h
159100        https://bugs.webkit.org/show_bug.cgi?id=103002
159101
159102        Reviewed by Adam Barth.
159103
159104        Currently WebCoreStringResourceBase is mis-located in V8ValueCache.h.
159105        It should be in V8StringResource.h.
159106
159107        No tests. No change in behavior.
159108
159109        * bindings/v8/V8StringResource.cpp:
159110        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
159111        (WebCore):
159112        (WebCore::WebCoreStringResourceBase::visitStrings):
159113        * bindings/v8/V8StringResource.h:
159114        (WebCore):
159115        (WebCoreStringResourceBase):
159116        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
159117        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
159118        (WebCore::WebCoreStringResourceBase::webcoreString):
159119        (WebCore::WebCoreStringResourceBase::atomicString):
159120        (WebCore::WebCoreStringResourceBase::memoryConsumption):
159121        (WebCoreStringResource16):
159122        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
159123        (WebCoreStringResource8):
159124        (WebCore::WebCoreStringResource8::WebCoreStringResource8):
159125        * bindings/v8/V8ValueCache.cpp:
159126        * bindings/v8/V8ValueCache.h:
159127        (WebCore):
159128
1591292012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>
159130
159131        Unreviewed, rolling out r135464.
159132        http://trac.webkit.org/changeset/135464
159133        https://bugs.webkit.org/show_bug.cgi?id=103026
159134
159135        breaks gtk bot (Requested by morrita on #webkit).
159136
159137        * dom/Element.cpp:
159138        * dom/Element.h:
159139        (Element):
159140        * dom/Element.idl:
159141
1591422012-11-21  Dan Carney  <dcarney@google.com>
159143
159144        Remove V8DOMWindowShell::getEntered
159145        https://bugs.webkit.org/show_bug.cgi?id=96637
159146
159147        Reviewed by Adam Barth.
159148
159149        V8DOMWindowShell::getEntered was refactored so that the window shell
159150        no longer has to be kept alive by a v8 context. Instead, only
159151        the DOMWrapperWorld will be kept alive.
159152
159153        No new tests. No change in functionality.
159154
159155        * bindings/v8/DOMDataStore.cpp:
159156        (WebCore::DOMDataStore::current):
159157        * bindings/v8/DOMWrapperWorld.cpp:
159158        (WebCore::isolatedWorldWeakCallback):
159159        (WebCore):
159160        (WebCore::DOMWrapperWorld::makeContextWeak):
159161        (WebCore::DOMWrapperWorld::setIsolatedWorldField):
159162        * bindings/v8/DOMWrapperWorld.h:
159163        (DOMWrapperWorld):
159164        (WebCore::DOMWrapperWorld::isolated):
159165        * bindings/v8/ScriptController.cpp:
159166        (WebCore::ScriptController::existingWindowShell):
159167        (WebCore::ScriptController::windowShell):
159168        (WebCore::ScriptController::evaluateInIsolatedWorld):
159169        (WebCore::ScriptController::currentWorldContext):
159170        (WebCore::ScriptController::collectIsolatedContexts):
159171        * bindings/v8/ScriptController.h:
159172        (ScriptController):
159173        * bindings/v8/V8Binding.h:
159174        (WebCore::worldForEnteredContextIfIsolated):
159175        * bindings/v8/V8DOMWindowShell.cpp:
159176        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
159177        (WebCore::V8DOMWindowShell::disposeContext):
159178        (WebCore::V8DOMWindowShell::initializeIfNeeded):
159179        * bindings/v8/V8DOMWindowShell.h:
159180        (V8DOMWindowShell):
159181        * bindings/v8/V8PerContextData.h:
159182        * bindings/v8/WorldContextHandle.cpp:
159183        (WebCore::WorldContextHandle::WorldContextHandle):
159184
1591852012-11-21  Cosmin Truta  <ctruta@rim.com>
159186
159187        Numeric identifiers of events should not be globally sequential
159188        https://bugs.webkit.org/show_bug.cgi?id=102244
159189
159190        Reviewed by Alexey Proskuryakov.
159191
159192        The functions setTimeout, setInterval and navigator.geolocation.watchPosition
159193        are currently returning values that are unique across all JavaScript execution
159194        contexts, due to their dependency on global variables.
159195        Such a guarantee is unnecessarily strong. In this patch, we constrain uniqueness
159196        to these functions' own script execution context only.
159197
159198        Tests: fast/dom/Geolocation/watchPosition-unique.html
159199               fast/dom/Window/setTimeout-setInterval-unique.html
159200
159201        * Modules/geolocation/Geolocation.cpp:
159202        (WebCore): Remove firstAvailableWatchId.
159203        (WebCore::Geolocation::watchPosition): Get new watchID from script execution context.
159204        (WebCore::Geolocation::clearWatch): Invalid watchID means less than or equal to 0.
159205        * Modules/geolocation/Geolocation.h:
159206        (Geolocation): Renamed the argument of Geolocation::clearWatch to WatchID.
159207        * dom/ScriptExecutionContext.cpp:
159208        (WebCore::ScriptExecutionContext::ScriptExecutionContext): Update initialization.
159209        (WebCore::ScriptExecutionContext::newUniqueID): Add.
159210        * dom/ScriptExecutionContext.h:
159211        (ScriptExecutionContext): Add m_sequentialID.
159212        (WebCore::ScriptExecutionContext::addTimeout): Inline.
159213        (WebCore::ScriptExecutionContext::removeTimeout): Inline.
159214        (WebCore::ScriptExecutionContext::findTimeout): Inline.
159215        * page/DOMTimer.cpp:
159216        (WebCore): Remove timeoutId.
159217        (WebCore::DOMTimer::DOMTimer): Get new timeoutId from script execution context.
159218
1592192012-11-21  Ryosuke Niwa  <rniwa@webkit.org>
159220
159221        CollectionType and DynamicNodeList::NodeListType should be merged
159222        https://bugs.webkit.org/show_bug.cgi?id=102983
159223
159224        Reviewed by Antti Koivisto.
159225
159226        Merged DynamicNodeList::NodeListType (for live NodeList) into CollectionType.
159227
159228        * dom/ClassNodeList.cpp:
159229        (WebCore::ClassNodeList::~ClassNodeList):
159230        * dom/Document.cpp:
159231        (WebCore::Document::registerNodeListCache):
159232        (WebCore::Document::unregisterNodeListCache):
159233        (WebCore::Document::getItems):
159234        * dom/DynamicNodeList.cpp:
159235        (WebCore::DynamicNodeListCacheBase::invalidateCache):
159236        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
159237        * dom/DynamicNodeList.h:
159238        (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
159239        (WebCore::DynamicNodeListCacheBase::hasIdNameCache): Added. Returns iff this is a HTMLCollection.
159240        (WebCore::DynamicNodeListCacheBase::invalidateCache):
159241        (WebCore::DynamicNodeList::DynamicNodeList):
159242        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
159243        * dom/MicroDataItemList.cpp:
159244        (WebCore::MicroDataItemList::~MicroDataItemList):
159245        * dom/NameNodeList.cpp:
159246        (WebCore::NameNodeList::~NameNodeList):
159247        * dom/Node.cpp:
159248        (WebCore::Node::getElementsByTagName):
159249        (WebCore::Node::getElementsByName):
159250        (WebCore::Node::getElementsByClassName):
159251        (WebCore::Node::radioNodeList):
159252        (WebCore::Node::propertyNodeList):
159253        * dom/NodeRareData.h:
159254        (WebCore::NodeListsNodeData::addCacheWithAtomicName): No longer converts CollectionType to
159255        a NodeListType equivalent since two enums have been merged.
159256        (WebCore::NodeListsNodeData::cacheWithAtomicName): Ditto.
159257        (WebCore::NodeListsNodeData::addCacheWithName): Ditto.
159258        (WebCore::NodeListsNodeData::removeCacheWithAtomicName): Ditto.
159259        (WebCore::NodeListsNodeData::removeCacheWithName): Ditto.
159260        (WebCore::NodeListsNodeData::namedNodeListKey): Ignore types before FirstNodeCollectionType
159261        to minimize the hash conflicts.
159262        * dom/PropertyNodeList.cpp:
159263        (WebCore::PropertyNodeList::~PropertyNodeList):
159264        * dom/TagNodeList.cpp:
159265        (WebCore::TagNodeList::~TagNodeList):
159266        * html/CollectionType.h:
159267        (WebCore::isNodeList): Added.
159268        * html/HTMLCollection.cpp:
159269        (WebCore::shouldOnlyIncludeDirectChildren):
159270        (WebCore::rootTypeFromCollectionType):
159271        (WebCore::invalidationTypeExcludingIdAndNameAttributes):
159272        (WebCore::isAcceptableElement):
159273        (WebCore::DynamicNodeListCacheBase::iterateForNextNode):
159274        (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
159275        * html/LabelableElement.cpp:
159276        (WebCore::LabelableElement::labels):
159277        * html/LabelsNodeList.cpp:
159278        (WebCore::LabelsNodeList::~LabelsNodeList):
159279        * html/RadioNodeList.cpp:
159280        (WebCore::RadioNodeList::~RadioNodeList):
159281
1592822012-11-21  Michael Pruett  <michael@68k.org>
159283
159284        IndexedDB: Obtain ScriptState from IDL binding generator
159285        https://bugs.webkit.org/show_bug.cgi?id=102552
159286
159287        Reviewed by Kentaro Hara.
159288
159289        Obtain ScriptState from IDL binding generator rather than directly
159290        calling ScriptState::current() since that method does not exist
159291        in JSC.
159292
159293        Tests: storage/indexeddb/*
159294
159295        * Modules/indexeddb/IDBCursor.cpp:
159296        (WebCore::IDBCursor::update):
159297        * Modules/indexeddb/IDBCursor.h:
159298        (IDBCursor):
159299        * Modules/indexeddb/IDBCursor.idl:
159300        * Modules/indexeddb/IDBObjectStore.cpp:
159301        (WebCore::IDBObjectStore::add):
159302        (WebCore::IDBObjectStore::put):
159303        * Modules/indexeddb/IDBObjectStore.h:
159304        (WebCore::IDBObjectStore::add):
159305        (WebCore::IDBObjectStore::put):
159306        (IDBObjectStore):
159307        * Modules/indexeddb/IDBObjectStore.idl:
159308
1593092012-11-21  Filip Pizlo  <fpizlo@apple.com>
159310
159311        Rename dataLog() and dataLogV() to dataLogF() and dataLogFV()
159312        https://bugs.webkit.org/show_bug.cgi?id=103001
159313
159314        Rubber stamped by Dan Bernstein.
159315
159316        No change in behavior, so no new tests.
159317
159318        * platform/KURLWTFURL.cpp:
159319        (WebCore::KURL::print):
159320
1593212012-11-21  Kondapally Kalyan  <kalyan.kondapally@intel.com>
159322
159323        [EFL] Refactor GraphicsContext3DEFL.
159324        https://bugs.webkit.org/show_bug.cgi?id=101291.
159325
159326        Reviewed by Kenneth Rohde Christiansen.
159327
159328        GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
159329        GraphicsContext3DPrivate needs to handle the following cases:
159330        1) To provide an off-screen buffer for accelerated composition.
159331        2) Render to a current context.
159332        3) To render directly to host window. (currently not supported.)
159333
159334        Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
159335        the other supported case. Evas acts as a glue layer to provide us with appropriate
159336        GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
159337        However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
159338
159339        It would be for our advantage to be able to take in to use any optimisations/extensions
159340        provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
159341        This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
159342        and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
159343        Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
159344        GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
159345
159346        GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
159347        It uses GL extension ARB_robustness (when available) to detect driver resets.
159348        It defines a simple interface for things that need to be handled by the context. Support
159349        for multi-threaded usage and shared context-group would be added later.
159350
159351        GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
159352        It defines a simple interface for things that need to be handled by the surface.
159353        It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
159354        can be used to render into this off-screen area.
159355
159356        This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
159357
159358        * PlatformEfl.cmake:
159359        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
159360        (WebCore::GraphicsContext3D::create):
159361        (WebCore::GraphicsContext3D::GraphicsContext3D):
159362        (WebCore::GraphicsContext3D::~GraphicsContext3D):
159363        (WebCore::GraphicsContext3D::makeContextCurrent):
159364        (WebCore::GraphicsContext3D::setContextLostCallback):
159365        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
159366        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
159367        (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
159368        (GraphicsContext3DPrivate::releaseResources):
159369        (GraphicsContext3DPrivate::setContextLostCallback):
159370        (GraphicsContext3DPrivate::platformGraphicsContext3D):
159371        (GraphicsContext3DPrivate::makeContextCurrent):
159372        (GraphicsContext3DPrivate::createGraphicsSurfaces):
159373        (GraphicsContext3DPrivate::copyToGraphicsSurface):
159374        (GraphicsContext3DPrivate::graphicsSurfaceToken):
159375        * platform/graphics/efl/GraphicsContext3DPrivate.h:
159376        (GraphicsContext3DPrivate):
159377        * platform/graphics/opengl/GLDefs.h: Added.
159378        (WebCore):
159379        * platform/graphics/opengl/GLPlatformContext.cpp: Added.
159380        (WebCore):
159381        (WebCore::GLPlatformContext::createContext):
159382        (WebCore::GLPlatformContext::createOffScreenContext):
159383        (WebCore::GLPlatformContext::createCurrentContextWrapper):
159384        (WebCore::GLPlatformContext::GLPlatformContext):
159385        (WebCore::GLPlatformContext::~GLPlatformContext):
159386        (WebCore::GLPlatformContext::makeCurrent):
159387        (WebCore::GLPlatformContext::isValid):
159388        (WebCore::GLPlatformContext::releaseCurrent):
159389        (WebCore::GLPlatformContext::handle):
159390        (WebCore::GLPlatformContext::isCurrentContext):
159391        (WebCore::GLPlatformContext::initialize):
159392        (WebCore::GLPlatformContext::getCurrent):
159393        (WebCore::GLPlatformContext::platformMakeCurrent):
159394        (WebCore::GLPlatformContext::platformReleaseCurrent):
159395        (WebCore::GLPlatformContext::destroy):
159396        * platform/graphics/opengl/GLPlatformContext.h: Added.
159397        (WebCore):
159398        (GLPlatformContext):
159399        * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
159400        (WebCore):
159401        (WebCore::GLPlatformSurface::createOffscreenSurface):
159402        (WebCore::GLPlatformSurface::createTransportSurface):
159403        (WebCore::GLPlatformSurface::GLPlatformSurface):
159404        (WebCore::GLPlatformSurface::~GLPlatformSurface):
159405        (WebCore::GLPlatformSurface::handle):
159406        (WebCore::GLPlatformSurface::geometry):
159407        (WebCore::GLPlatformSurface::sharedDisplay):
159408        (WebCore::GLPlatformSurface::configuration):
159409        (WebCore::GLPlatformSurface::swapBuffers):
159410        (WebCore::GLPlatformSurface::copyTexture):
159411        (WebCore::GLPlatformSurface::updateContents):
159412        (WebCore::GLPlatformSurface::setGeometry):
159413        (WebCore::GLPlatformSurface::destroy):
159414        * platform/graphics/opengl/GLPlatformSurface.h: Added.
159415        (WebCore):
159416        (GLPlatformSurface):
159417            GLXOffScreenContext creates an off-screen context. This is used when
159418            renderstyle is RenderOffscreen.
159419            It uses GL extension GLX_ARB_create_context (when available)
159420            to create a context else falls back to use glXCreateNewContext.
159421        * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
159422        (WebCore):
159423        (WebCore::initializeARBExtensions):
159424        (WebCore::GLXOffScreenContext::GLXOffScreenContext):
159425        (WebCore::GLXOffScreenContext::initialize):
159426        (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
159427        (WebCore::GLXOffScreenContext::isCurrentContext):
159428        (WebCore::GLXOffScreenContext::platformMakeCurrent):
159429        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
159430        (WebCore::GLXOffScreenContext::freeResources):
159431        (WebCore::GLXOffScreenContext::destroy):
159432            GLXCurrentContextWrapper acts as a wrapper for current context.
159433            This is used when renderstyle is RenderToCurrentGLContext.
159434        * platform/graphics/surfaces/glx/GLXContext.h: Added.
159435        (WebCore):
159436        (GLXCurrentContextWrapper):
159437        (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
159438        (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
159439        (GLXOffScreenContext):
159440        * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
159441        (WebCore):
159442        (WebCore::GLXSurface::GLXSurface):
159443        (WebCore::GLXSurface::~GLXSurface):
159444        (WebCore::GLXSurface::visualInfo):
159445        (WebCore::GLXSurface::xWindow):
159446        (WebCore::GLXSurface::pBufferConfiguration):
159447        (WebCore::GLXSurface::transportSurfaceConfiguration):
159448        (WebCore::GLXSurface::isXRenderExtensionSupported):
159449            GLXTransportSurface creates Window and uses it as an off-screen surface.
159450            Any GLContext that was created with respect to configuration can be used
159451            to render into this.
159452            This is used when contents of the buffer are to be provided to UI Process
159453            for display.
159454        (WebCore::GLXTransportSurface::GLXTransportSurface):
159455        (WebCore::GLXTransportSurface::~GLXTransportSurface):
159456        (WebCore::GLXTransportSurface::configuration):
159457        (WebCore::GLXTransportSurface::swapBuffers):
159458        (WebCore::GLXTransportSurface::setGeometry):
159459        (WebCore::GLXTransportSurface::initialize):
159460        (WebCore::GLXTransportSurface::destroy):
159461        (WebCore::GLXTransportSurface::freeResources):
159462           GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
159463           Any GLContext that was created with respect to configuration can be used
159464           to render into this.
159465        (WebCore::GLXPBuffer::GLXPBuffer):
159466        (WebCore::GLXPBuffer::~GLXPBuffer):
159467        (WebCore::GLXPBuffer::initialize):
159468        (WebCore::GLXPBuffer::configuration):
159469        (WebCore::GLXPBuffer::destroy):
159470        (WebCore::GLXPBuffer::freeResources):
159471        * platform/graphics/surfaces/glx/GLXSurface.h: Added.
159472        (WebCore):
159473            Creates X resources which are shared between surface and context.
159474        (SharedX11Resources):
159475        (WebCore::SharedX11Resources::create):
159476        (WebCore::SharedX11Resources::deref):
159477        (WebCore::SharedX11Resources::getXWindow):
159478        (WebCore::SharedX11Resources::display):
159479        (WebCore::SharedX11Resources::visualInfo):
159480        (WebCore::SharedX11Resources::createConfig):
159481        (WebCore::SharedX11Resources::pBufferContextConfig):
159482        (WebCore::SharedX11Resources::surfaceContextConfig):
159483        (WebCore::SharedX11Resources::isXRenderExtensionSupported):
159484        (WebCore::SharedX11Resources::SharedX11Resources):
159485        (WebCore::SharedX11Resources::~SharedX11Resources):
159486        (GLXSurface):
159487        (GLXTransportSurface):
159488        (GLXPBuffer):
159489
1594902012-11-21  Andreas Kling  <akling@apple.com>
159491
159492        Re-virtualize CSSRule.
159493        <http://webkit.org/b/103003>
159494
159495        Reviewed by Anders Carlsson.
159496
159497        Make CSSRule virtual once again, since it's no longer important to keep it as small as possible.
159498        StyleRuleBase and its various subclasses are the relevant ones now.
159499
159500        * css/CSSCharsetRule.cpp:
159501        (WebCore::CSSCharsetRule::CSSCharsetRule):
159502        (WebCore::CSSCharsetRule::reportMemoryUsage):
159503        * css/CSSCharsetRule.h:
159504        (WebCore::CSSCharsetRule::~CSSCharsetRule):
159505        (WebCore::CSSCharsetRule::encoding):
159506        (WebCore::CSSCharsetRule::setEncoding):
159507        * css/CSSFontFaceRule.cpp:
159508        (WebCore::CSSFontFaceRule::CSSFontFaceRule):
159509        (WebCore::CSSFontFaceRule::reattach):
159510        (WebCore::CSSFontFaceRule::reportMemoryUsage):
159511        * css/CSSFontFaceRule.h:
159512        (CSSFontFaceRule):
159513        * css/CSSImportRule.cpp:
159514        (WebCore::CSSImportRule::CSSImportRule):
159515        (WebCore::CSSImportRule::reportMemoryUsage):
159516        (WebCore::CSSImportRule::reattach):
159517        (WebCore):
159518        * css/CSSImportRule.h:
159519        (CSSImportRule):
159520        * css/CSSMediaRule.cpp:
159521        (WebCore::CSSMediaRule::CSSMediaRule):
159522        (WebCore::CSSMediaRule::reattach):
159523        (WebCore::CSSMediaRule::reportMemoryUsage):
159524        * css/CSSMediaRule.h:
159525        (CSSMediaRule):
159526        * css/CSSPageRule.cpp:
159527        (WebCore::CSSPageRule::CSSPageRule):
159528        (WebCore::CSSPageRule::reattach):
159529        (WebCore::CSSPageRule::reportMemoryUsage):
159530        * css/CSSPageRule.h:
159531        (CSSPageRule):
159532        * css/CSSRule.cpp:
159533        (SameSizeAsCSSRule):
159534        (WebCore::CSSRule::reportMemoryUsage):
159535        * css/CSSRule.h:
159536        (WebCore::CSSRule::~CSSRule):
159537        (CSSRule):
159538        (WebCore::CSSRule::CSSRule):
159539        * css/CSSStyleRule.cpp:
159540        (WebCore::CSSStyleRule::CSSStyleRule):
159541        (WebCore::CSSStyleRule::reattach):
159542        (WebCore::CSSStyleRule::reportMemoryUsage):
159543        * css/CSSStyleRule.h:
159544        (CSSStyleRule):
159545        (WebCore::CSSStyleRule::type):
159546        * css/CSSStyleSheet.cpp:
159547        (WebCore::CSSStyleSheet::rules):
159548        * css/CSSUnknownRule.h:
159549        (WebCore::CSSUnknownRule::CSSUnknownRule):
159550        (WebCore::CSSUnknownRule::~CSSUnknownRule):
159551        * css/StyleResolver.cpp:
159552        (WebCore::collectCSSOMWrappers):
159553        * css/WebKitCSSKeyframeRule.cpp:
159554        (WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
159555        (WebCore::WebKitCSSKeyframeRule::reportMemoryUsage):
159556        (WebCore::WebKitCSSKeyframeRule::reattach):
159557        (WebCore):
159558        * css/WebKitCSSKeyframeRule.h:
159559        (WebKitCSSKeyframeRule):
159560        * css/WebKitCSSKeyframesRule.cpp:
159561        (WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
159562        (WebCore::WebKitCSSKeyframesRule::reattach):
159563        (WebCore::WebKitCSSKeyframesRule::reportMemoryUsage):
159564        * css/WebKitCSSKeyframesRule.h:
159565        (WebKitCSSKeyframesRule):
159566        * css/WebKitCSSRegionRule.cpp:
159567        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
159568        (WebCore::WebKitCSSRegionRule::reattach):
159569        (WebCore::WebKitCSSRegionRule::reportMemoryUsage):
159570        * css/WebKitCSSRegionRule.h:
159571        (WebKitCSSRegionRule):
159572        * css/WebKitCSSViewportRule.cpp:
159573        (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
159574        (WebCore::WebKitCSSViewportRule::reattach):
159575        (WebCore::WebKitCSSViewportRule::reportMemoryUsage):
159576        * css/WebKitCSSViewportRule.h:
159577        * inspector/InspectorCSSAgent.cpp:
159578        (WebCore::InspectorCSSAgent::asCSSStyleRule):
159579        (WebCore::InspectorCSSAgent::collectStyleSheets):
159580        * inspector/InspectorStyleSheet.cpp:
159581        (WebCore::asCSSRuleList):
159582        (WebCore::fillMediaListChain):
159583        * page/PageSerializer.cpp:
159584        (WebCore::PageSerializer::serializeCSSStyleSheet):
159585
1595862012-11-21  Hajime Morrita  <morrita@google.com>
159587
159588        [Shadow DOM] Implement Element::createShadowRoot()
159589        https://bugs.webkit.org/show_bug.cgi?id=102911
159590
159591        Reviewed by Kentaro Hara.
159592
159593        Added an API implementation and exposed it.
159594
159595        This is basically an alias of the ShadowRoot constructor, which
159596        will be removed as bug 102913.
159597
159598        Test: fast/dom/shadow/shadow-aware-create-shdow-root.html
159599
159600        * dom/Element.cpp:
159601        (WebCore::Element::createShadowRoot):
159602        (WebCore):
159603        * dom/Element.h:
159604        (Element):
159605        * dom/Element.idl:
159606
1596072012-11-20  James Simonsen  <simonjam@chromium.org>
159608
159609        [Resource Timing] Populate PerformanceResourceTiming structs with timing data
159610        https://bugs.webkit.org/show_bug.cgi?id=102862
159611
159612        Reviewed by Tony Gentilcore.
159613
159614        This allows CachedResourceLoader to pass in all of the necessary values and populates
159615        them in the PerformanceResourceTiming struct. A follow up patch will actually call
159616        addResourceTiming() as necessary.
159617
159618        Tests: http/tests/w3c/webperf/submission/resource-timing
159619
159620        * page/Performance.cpp:
159621        (WebCore::Performance::addResourceTiming): Accept all necessary timing data.
159622        * page/Performance.h:
159623        (WebCore):
159624        (Performance):
159625        * page/PerformanceEntry.cpp:
159626        (WebCore::PerformanceEntry::PerformanceEntry):
159627        * page/PerformanceEntry.h:
159628        (PerformanceEntry):
159629        * page/PerformanceResourceTiming.cpp:
159630        (WebCore::monotonicTimeToDocumentMilliseconds):
159631        (WebCore):
159632        (WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
159633        (WebCore::PerformanceResourceTiming::initiatorType): Return the spec'd values.
159634        (WebCore::PerformanceResourceTiming::fetchStart):
159635        (WebCore::PerformanceResourceTiming::domainLookupStart):
159636        (WebCore::PerformanceResourceTiming::domainLookupEnd):
159637        (WebCore::PerformanceResourceTiming::connectStart):
159638        (WebCore::PerformanceResourceTiming::connectEnd):
159639        (WebCore::PerformanceResourceTiming::secureConnectionStart):
159640        (WebCore::PerformanceResourceTiming::requestStart):
159641        (WebCore::PerformanceResourceTiming::responseStart):
159642        (WebCore::PerformanceResourceTiming::responseEnd):
159643        (WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
159644        * page/PerformanceResourceTiming.h:
159645        (WebCore::PerformanceResourceTiming::create):
159646        (PerformanceResourceTiming):
159647
1596482012-11-21  Hajime Morrita  <morrita@google.com>
159649
159650        [Shadow DOM][V8] Assertion failure when shadow host is reclaimed before ShadowRoot
159651        https://bugs.webkit.org/show_bug.cgi?id=102893
159652
159653        Reviewed by Kentaro Hara.
159654
159655        Due to bug 88834, shadow hosts can be reclaimed before
159656        corresponding ShadowRoots are.  This breaks an invariant, that is,
159657        the host is always available for any ShadowRoot.  This change adds
159658        guards for the possibly broken invariant.
159659
159660        Since bug 88834 is planned to be fixed shortly, this change
159661        doesn't aim to fix this problem by make it work correctly, but
159662        just lays a safety net which is needed until the root cause is
159663        gone.
159664
159665        Test: fast/dom/shadow/host-wrapper-reclaimed.html
159666
159667        * dom/ShadowRoot.cpp:
159668        (WebCore::ShadowRoot::setInnerHTML):
159669        (WebCore::ShadowRoot::setApplyAuthorStyles):
159670        (WebCore::ShadowRoot::setResetStyleInheritance):
159671        (WebCore::ShadowRoot::childrenChanged):
159672
1596732012-11-21  Dirk Schulze  <krit@webkit.org>
159674
159675        Make CachedSVGDocumentReference independent of FilterOperation
159676        https://bugs.webkit.org/show_bug.cgi?id=102967
159677
159678        Reviewed by Antti Koivisto.
159679
159680        Make CachedSVGDocumentReference independent of FilterOperation to reuse the code for clip-path and masking.
159681
159682        No new tests, refactoring.
159683
159684        * GNUmakefile.list.am: Move CachedSVGDocumentReference to it's proper location and it to the projects. 
159685        * WebCore.gypi:
159686        * WebCore.vcproj/WebCore.vcproj:
159687        * WebCore.xcodeproj/project.pbxproj:
159688        * css/StyleResolver.cpp:
159689        (WebCore::StyleResolver::loadPendingSVGDocuments):
159690        (WebCore::StyleResolver::createFilterOperations):
159691        * loader/cache/CachedSVGDocumentReference.h: Renamed from Source/WebCore/css/CachedSVGDocumentReference.h.
159692        (WebCore):
159693        (CachedSVGDocumentReference):
159694        (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
159695        (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
159696        (WebCore::CachedSVGDocumentReference::document):
159697        * platform/graphics/filters/FilterOperation.h: Rename data() and setData() to
159698            cachedSVGDocumentReference() and its setter. Adapt other classes.
159699        (WebCore::FilterOperation::ReferenceFilterOperation::cachedSVGDocumentReference):
159700        (WebCore::FilterOperation::ReferenceFilterOperation::setCachedSVGDocumentReference):
159701        (ReferenceFilterOperation):
159702        * rendering/FilterEffectRenderer.cpp:
159703        (WebCore::FilterEffectRenderer::buildReferenceFilter):
159704        * rendering/RenderLayerFilterInfo.cpp:
159705        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
159706
1597072012-11-21  James Simonsen  <simonjam@chromium.org>
159708
159709        Remove the concept of initiatorDocument from CachedResourceRequest
159710        https://bugs.webkit.org/show_bug.cgi?id=102855
159711
159712        Reviewed by Sam Weinig.
159713
159714        It turns out this isn't necessary for the new implementation of Resource Timing. Instead,
159715        we can get at it from the CachedResourceLoader. I don't think anyone else needed it either.
159716
159717        No new tests. This was never used.
159718
159719        * css/CSSFontFaceSrcValue.cpp:
159720        (WebCore::CSSFontFaceSrcValue::cachedFont):
159721        * css/CSSImageSetValue.cpp:
159722        (WebCore::CSSImageSetValue::cachedImageSet):
159723        * css/CSSImageValue.cpp:
159724        (WebCore::CSSImageValue::cachedImage):
159725        * css/StyleRuleImport.cpp:
159726        (WebCore::StyleRuleImport::requestStyleSheet):
159727        * css/WebKitCSSSVGDocumentValue.cpp:
159728        (WebCore::WebKitCSSSVGDocumentValue::load):
159729        * css/WebKitCSSShaderValue.cpp:
159730        (WebCore::WebKitCSSShaderValue::cachedShader):
159731        * html/parser/CSSPreloadScanner.cpp:
159732        (WebCore::CSSPreloadScanner::emitRule):
159733        * html/parser/HTMLPreloadScanner.cpp:
159734        (WebCore::PreloadTask::preload):
159735        * loader/cache/CachedResourceRequest.cpp:
159736        (WebCore::CachedResourceRequest::setInitiator):
159737        * loader/cache/CachedResourceRequest.h:
159738        (CachedResourceRequest):
159739        * loader/icon/IconLoader.cpp:
159740        (WebCore::IconLoader::startLoading):
159741
1597422012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>
159743
159744        Unreviewed, rolling out r135437.
159745        http://trac.webkit.org/changeset/135437
159746        https://bugs.webkit.org/show_bug.cgi?id=102986
159747
159748        This patch causes crash to some layout tests (Requested by
159749        jianli on #webkit).
159750
159751        * dom/NodeRenderingContext.cpp:
159752        (WebCore::NodeRenderingContext::createRendererIfNeeded):
159753        * rendering/RenderObject.cpp:
159754        (WebCore::RenderObject::createObject):
159755
1597562012-11-21  Andreas Kling  <akling@apple.com>
159757
159758        Style sharing: Compare class lists via SpaceSplitString instead of string comparison.
159759        <http://webkit.org/b/102982>
159760
159761        Reviewed by Antti Koivisto.
159762
159763        Add an operator!= to SpaceSplitString and use that check if two elements are eligible
159764        for style sharing instead of comparing the fastGetAttribute(classAttr) return values.
159765        This works because SpaceSplitString maps equal strings to the same data internally.
159766
159767        * css/StyleResolver.cpp:
159768        (WebCore::haveIdenticalStyleAffectingAttributes):
159769        * dom/SpaceSplitString.h:
159770        (WebCore::SpaceSplitString::operator!=):
159771        (SpaceSplitString):
159772
1597732012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>
159774
159775        Unreviewed, rolling out r135338, r135359, and r135378.
159776        http://trac.webkit.org/changeset/135338
159777        http://trac.webkit.org/changeset/135359
159778        http://trac.webkit.org/changeset/135378
159779        https://bugs.webkit.org/show_bug.cgi?id=102981
159780
159781        Likely caused a 10% regression in
159782        dromaeo_domcoreattr/dom_attr_getAttribute (Requested by abarth
159783        on #webkit).
159784
159785        * bindings/scripts/CodeGeneratorV8.pm:
159786        (GenerateEventConstructorCallback):
159787        (ConvertToV8Parameter):
159788        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
159789        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
159790        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
159791        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
159792        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
159793        (WebCore::V8TestEventConstructor::constructorCallback):
159794        * bindings/scripts/test/V8/V8TestInterface.cpp:
159795        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
159796        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
159797        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
159798        (WebCore::V8TestInterface::constructorCallback):
159799        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
159800        (WebCore::V8TestNamedConstructorConstructorCallback):
159801        * bindings/scripts/test/V8/V8TestObj.cpp:
159802        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
159803        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
159804        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
159805        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
159806        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
159807        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
159808        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
159809        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
159810        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
159811        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
159812        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
159813        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
159814        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
159815        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
159816        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
159817        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
159818        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
159819        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
159820        (WebCore::TestObjV8Internal::strictFunctionCallback):
159821        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
159822        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
159823        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
159824        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
159825        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
159826        * bindings/v8/V8BindingMacros.h:
159827        * bindings/v8/V8StringResource.h:
159828        (WebCore::V8Parameter::V8Parameter):
159829        (V8Parameter):
159830        (WebCore::V8Parameter::prepareBase):
159831        (WebCore::V8Parameter::object):
159832        (WebCore::::prepare):
159833        * bindings/v8/custom/V8ConsoleCustom.cpp:
159834        (WebCore::V8Console::profileCallback):
159835        (WebCore::V8Console::profileEndCallback):
159836        * bindings/v8/custom/V8DOMWindowCustom.cpp:
159837        (WebCore::handlePostMessageCallback):
159838        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
159839        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
159840        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
159841        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
159842        * bindings/v8/custom/V8HistoryCustom.cpp:
159843        (WebCore::V8History::pushStateCallback):
159844        (WebCore::V8History::replaceStateCallback):
159845        * bindings/v8/custom/V8IntentCustom.cpp:
159846        (WebCore::V8Intent::constructorCallbackCustom):
159847        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
159848        (WebCore::V8SQLTransaction::executeSqlCallback):
159849        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
159850        (WebCore::V8SQLTransactionSync::executeSqlCallback):
159851        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
159852        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
159853
1598542012-11-21  Tien-Ren Chen  <trchen@chromium.org>
159855
159856        Invalidate non-composited content host when page scale factor changes
159857        https://bugs.webkit.org/show_bug.cgi?id=100718
159858
159859        Reviewed by Adam Barth.
159860
159861        During a scale change, non-composited content layer doesn't get invalidated
159862        automatically by the transformation change on RenderView. Need to force
159863        update non-composited contents ourself.
159864
159865        Test: compositing/repaint/page-scale-repaint.html
159866
159867        * page/Page.cpp:
159868        (WebCore::Page::setPageScaleFactor):
159869
1598702012-11-21  Ryosuke Niwa  <rniwa@webkit.org>
159871
159872        Yet another EFL & GTK+ build fix after r135429.
159873
159874        * html/HTMLPropertiesCollection.cpp:
159875        (WebCore::HTMLPropertiesCollection::create):
159876
1598772012-11-21  Elliott Sprehn  <esprehn@chromium.org>
159878
159879        Node::createRenderer should never return null
159880        https://bugs.webkit.org/show_bug.cgi?id=102975
159881
159882        Reviewed by Ojan Vafai.
159883
159884        Node::createRenderer should never return null, instead Node::rendererIsNeeded
159885        should return false if a node doesn't wish to have a renderer. This method
159886        never actually returns null right now, but the code makes it look like it
159887        could.
159888
159889        No new tests, just refactoring.
159890
159891        * dom/NodeRenderingContext.cpp:
159892        (WebCore::NodeRenderingContext::createRendererIfNeeded):
159893        * rendering/RenderObject.cpp:
159894        (WebCore::RenderObject::createObject):
159895
1598962012-11-21  Fady Samuel  <fsamuel@chromium.org>
159897
159898        Clear MousePressed state on context menu to avoid initiating a drag
159899        https://bugs.webkit.org/show_bug.cgi?id=101786
159900
159901        Reviewed by Ojan Vafai.
159902
159903        If a user initiates a drag via left mouse down, brings up the context menu,
159904        and then cancels the context menu while keeping the left mouse button down,
159905        then the drag operation will continue. This does not match the platform
159906        conventions on Windows, Linux or Mac .
159907
159908        This change cancels the drag if the context menu is about to be displayed.
159909
159910        Test: fast/events/context-nodrag.html
159911
159912        * page/EventHandler.cpp:
159913        (WebCore::EventHandler::sendContextMenuEvent):
159914
1599152012-11-21  Patrick Gansterer  <paroga@webkit.org>
159916
159917        Use MIMETypeRegistryWin for WinCE port too
159918        https://bugs.webkit.org/show_bug.cgi?id=102977
159919
159920        Reviewed by Laszlo Gombos.
159921
159922        r135217 made MIMETypeRegistryWin compile on WinCE too,
159923        which allows us to get rid of MIMETypeRegistryWinCE.
159924
159925        * PlatformWinCE.cmake:
159926        * WebCore.gypi:
159927        * platform/wince/MIMETypeRegistryWinCE.cpp: Removed.
159928
1599292012-11-21  Dan Carney  <dcarney@google.com>
159930
159931        [V8] Add context checks to WorldContextHandle and V8DOMWindowShell
159932        https://bugs.webkit.org/show_bug.cgi?id=101573
159933
159934        Reviewed by Adam Barth.
159935
159936        Added a bunch of assertions to ensure the problems with IndexedDB
159937        contexts cannot reemerge.
159938
159939        No new tests. No change in functionality.
159940
159941        * bindings/v8/V8DOMWindowShell.cpp:
159942        (WebCore):
159943        (WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
159944        * bindings/v8/V8DOMWindowShell.h:
159945        (V8DOMWindowShell):
159946        (WebCore::V8DOMWindowShell::isolated):
159947        * bindings/v8/WorldContextHandle.cpp:
159948        (WebCore::WorldContextHandle::WorldContextHandle):
159949
1599502012-11-21  Elliott Sprehn  <esprehn@chromium.org>
159951
159952        Remove unnecessary ternaries in createRendererIfNeeded
159953        https://bugs.webkit.org/show_bug.cgi?id=102974
159954
159955        Reviewed by Ojan Vafai.
159956
159957        parentRenderer, nextRenderer and previousRenderer all handle flow
159958        threads automatically so there's no reason to duplicate the check in 
159959        createRendererIfNeeded.
159960
159961        Note that while these methods first check the node for a renderer and
159962        then delegate to the flow thread the node never has a renderer when
159963        calling createRendererIfNeeded per the assertion at the top so this
159964        change is equivalent.
159965
159966        No new tests, just refactoring.
159967
159968        * dom/NodeRenderingContext.cpp:
159969        (WebCore::NodeRenderingContext::createRendererIfNeeded):
159970
1599712012-11-21  Ryosuke Niwa  <rniwa@webkit.org>
159972
159973        EFL and GTK+ build fix after r135429.
159974
159975        * dom/Element.cpp:
159976        (WebCore::ElementRareData::ensureCachedHTMLCollection):
159977
1599782012-11-20  Ryosuke Niwa  <rniwa@webkit.org>
159979
159980        HTMLCollection should use the same storage as DynamicNodeList
159981        https://bugs.webkit.org/show_bug.cgi?id=102886
159982
159983        Reviewed by Antti Koivisto.
159984
159985        This patch removes ElementRareData::m_collection. HTMLCollections are now held by
159986        NodeListNodeData in NodeRareData like DynamicNodeLists. This simplifies several
159987        Element and Node functions where we used to call into both ElementRareData and
159988        NodeRareData to invalidate caches.
159989
159990        This is a refactoring and there should be no behavioral change.
159991
159992        * dom/DynamicNodeList.h:
159993        * dom/Element.cpp:
159994        (WebCore::ElementRareData::ensureCachedHTMLCollection):
159995        * dom/ElementRareData.cpp:
159996        (WebCore::ElementRareData::reportMemoryUsage):
159997        * dom/ElementRareData.h:
159998        (ElementRareData):
159999        (WebCore::ElementRareData::cachedHTMLCollection):
160000        (WebCore::ElementRareData::removeCachedHTMLCollection):
160001        * dom/Node.cpp:
160002        (WebCore::Node::invalidateNodeListCachesInAncestors):
160003        * dom/NodeRareData.h:
160004        (NodeListsNodeData):
160005        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
160006        (WebCore::NodeListsNodeData::cacheWithAtomicName):
160007        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
160008        (WebCore::NodeListsNodeData::adoptTreeScope):
160009        (WebCore::NodeListsNodeData::namedNodeListKey):
160010        * dom/TreeScopeAdopter.cpp:
160011        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
160012        * html/HTMLFormControlsCollection.cpp:
160013        (WebCore::HTMLFormControlsCollection::create):
160014        * html/HTMLFormControlsCollection.h:
160015        (HTMLFormControlsCollection):
160016        * html/HTMLOptionsCollection.cpp:
160017        (WebCore::HTMLOptionsCollection::create):
160018        * html/HTMLOptionsCollection.h:
160019        (HTMLOptionsCollection::create):
160020        * html/HTMLPropertiesCollection.h:
160021        (HTMLPropertiesCollection::create):
160022        * html/HTMLTableRowsCollection.cpp:
160023        (WebCore::HTMLTableRowsCollection::create):
160024        * html/HTMLTableRowsCollection.h:
160025        (HTMLTableRowsCollection):
160026
1600272012-11-21  Andreas Kling  <akling@apple.com>
160028
160029        Update incorrect assertion in ImmutableElementAttributeData(MutableElementAttributeData).
160030        <http://webkit.org/b/102972>
160031
160032        Reviewed by Antti Koivisto.
160033
160034        Manipulation by editing code may cause an element to have mutable inline style, and this is fine.
160035
160036        Change the assertion to confirm that the inline style doesn't have a CSSOM wrapper attached,
160037        which is where real problems would happen. 
160038
160039        Fixes an assertion on editing/undo/replace-by-span-then-remove.html
160040
160041        * dom/ElementAttributeData.cpp:
160042        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
160043
1600442012-11-21  Kentaro Hara  <haraken@chromium.org>
160045
160046        Remove $outputDir and $outputHeadersDir from global variables of code generators
160047        https://bugs.webkit.org/show_bug.cgi?id=102492
160048
160049        Reviewed by Adam Barth.
160050
160051        $outputDir and $outputHeadersDir are used in WriteData() only.
160052        We don't need to use global variables for them.
160053
160054        No tests. No change in behavior.
160055
160056        * bindings/scripts/CodeGenerator.pm:
160057        (ProcessDocument):
160058        (FileNamePrefix):
160059        * bindings/scripts/CodeGeneratorCPP.pm:
160060        (new):
160061        (GenerateInterface):
160062        (WriteData):
160063        * bindings/scripts/CodeGeneratorGObject.pm:
160064        (new):
160065        (WriteData):
160066        (GenerateInterface):
160067        * bindings/scripts/CodeGeneratorJS.pm:
160068        (new):
160069        (GenerateInterface):
160070        (WriteData):
160071        * bindings/scripts/CodeGeneratorObjC.pm:
160072        (new):
160073        (GenerateInterface):
160074        (WriteData):
160075        * bindings/scripts/CodeGeneratorV8.pm:
160076        (new):
160077        (GenerateInterface):
160078        (WriteData):
160079
1600802012-11-21  Joshua Bell  <jsbell@chromium.org>
160081
160082        Remove IDBDatabaseException
160083        https://bugs.webkit.org/show_bug.cgi?id=102514
160084
160085        Reviewed by Adam Barth.
160086
160087        After the WebKit implementation landed, the IndexedDB spec changed from defining new
160088        exception codes with constants hanging off an interface to using DOM4-styled named
160089        DOMExceptions. Remove the IDBDatabaseException interface and set codes for IDB-specific
160090        exceptions to 0. (The .idl file is retained pending general ExceptionCode cleanup.)
160091
160092        Also remove IDBRequest.errorCode which was used for reporting asynchronous errors;
160093        IDBRequest.error - a DOMError - should be used instead.
160094
160095        No new tests - covered by plenty of existing tests which have been updated.
160096
160097        * Modules/indexeddb/DOMWindowIndexedDatabase.idl: Don't expose the interface.
160098        * Modules/indexeddb/IDBCursor.idl: Remove reference to IDBDatabaseException.
160099        * Modules/indexeddb/IDBDatabase.idl: Ditto.
160100        * Modules/indexeddb/IDBDatabaseException.cpp:
160101        (IDBDatabaseExceptionNameDescription): Use either a DOMException code or 0.
160102        (WebCore::IDBDatabaseException::initializeDescription):
160103        (WebCore::IDBDatabaseException::getLegacyErrorCode):
160104        * Modules/indexeddb/IDBFactory.idl: Remove reference to IDBDatabaseException.
160105        * Modules/indexeddb/IDBIndex.idl: Ditto.
160106        * Modules/indexeddb/IDBKeyRange.idl: Ditto.
160107        * Modules/indexeddb/IDBObjectStore.idl: Ditto.
160108        * Modules/indexeddb/IDBRequest.idl: Ditto.
160109        * Modules/indexeddb/IDBTransaction.idl: Ditto.
160110        * Modules/indexeddb/WorkerContextIndexedDatabase.idl: Don't expose the interface.
160111        * bindings/v8/IDBBindingUtilities.cpp: Remove unneeded #include.
160112
1601132012-11-21  W. James MacLean  <wjmaclean@chromium.org>
160114
160115        [chromium] Fix indenting in RenderThemeChromiumSkia.h.
160116        https://bugs.webkit.org/show_bug.cgi?id=102965
160117
160118        Reviewed by Adam Barth.
160119
160120        Much of RenderThemeChromiumSkia.h was indented too far, making the
160121        file confusing to read. This CL removes the extra indents.
160122
160123        * rendering/RenderThemeChromiumSkia.h:
160124        (RenderThemeChromiumSkia):
160125
1601262012-11-21  Andreas Kling  <akling@apple.com>
160127
160128        Make it possible for elements with different tag names to share attribute data.
160129        <http://webkit.org/b/102845>
160130
160131        Reviewed by Antti Koivisto.
160132
160133        Allow all elements to share ElementAttributeData with one another. This means that the elements
160134        in this hypothetical markup will all point to the same attribute data:
160135
160136            <div class="foo">
160137                <span class="foo">
160138                    <hr class="foo"/>
160139                </span>
160140            </div>
160141
160142        This optimization happens at the expense of an old one. We no longer share attribute data
160143        between elements that have presentation attributes, since they map to different CSS properties
160144        depending on what tag they're attached to. These are mostly used in ye olde web 1.0 content
160145        though, and we should prefer optimizing in favor of modern markup. The global cache for
160146        presentation attribute style in StyledElement.cpp still prevents redundant parsing.
160147
160148        On the upside, excluding elements with presentation attributes from the data cache means that
160149        we can move one pointer (m_presentationAttributeStyle) from ImmutableElementAttributeData
160150        to MutableElementAttributeData.
160151
160152        800kB progression on Membuster3.
160153
160154        * dom/Document.h:
160155        * dom/Document.cpp:
160156        (WebCore::ImmutableAttributeDataCacheKey::ImmutableAttributeDataCacheKey):
160157        (WebCore::ImmutableAttributeDataCacheKey::operator!=):
160158        (WebCore::ImmutableAttributeDataCacheKey::hash):
160159        (ImmutableAttributeDataCacheKey):
160160        (WebCore::Document::cachedImmutableAttributeData):
160161        * dom/Element.cpp:
160162        (WebCore::Element::parserSetAttributes):
160163
160164            Don't use the element's tag name in the key for the immutable attribute data cache.
160165
160166        (WebCore::Element::cloneAttributesFromElement):
160167
160168            Prevent cloneNode() from converting mutable attribute data to immutable if it has
160169            presentation attributes.
160170
160171        * dom/ElementAttributeData.cpp:
160172        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
160173
160174            Add an assertion that mutable-to-immutable conversion never happens with presentation
160175            attribute style present.
160176
160177        (WebCore::ElementAttributeData::ElementAttributeData):
160178        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
160179        (WebCore::ElementAttributeData::reportMemoryUsage):
160180        * dom/ElementAttributeData.h:
160181        (ElementAttributeData):
160182        (MutableElementAttributeData):
160183        (WebCore::ElementAttributeData::presentationAttributeStyle):
160184        (WebCore):
160185        (WebCore::ElementAttributeData::setPresentationAttributeStyle):
160186
160187            Move the RefPtr<StylePropertySet> that holds presentation attribute-derived style
160188            from the common ElementAttributeData base class to MutableElementAttributeData.
160189
160190        * dom/StyledElement.cpp:
160191        (WebCore::StyledElement::attributeChanged):
160192
160193            Always dirty the presentation attribute style when a presentation attribute changes.
160194
160195        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
160196
160197            Force promotion to mutable attribute data when it turns out that we need to hang a
160198            StylePropertySet with the presentation attribute style off of it.
160199
1602002012-11-21  Antti Koivisto  <antti@apple.com>
160201
160202        Replace NodeRendererFactory class with a function
160203        https://bugs.webkit.org/show_bug.cgi?id=102950
160204
160205        Reviewed by Andreas Kling.
160206
160207        Simplify the code by turning NodeRendererFactory single-use class into function of NodeRenderingContext.
160208
160209        * dom/Node.cpp:
160210        (WebCore::Node::createRendererIfNeeded):
160211        * dom/NodeRenderingContext.cpp:
160212        (WebCore::NodeRenderingContext::NodeRenderingContext):
160213        (WebCore):
160214        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
160215        (WebCore::NodeRenderingContext::createRendererIfNeeded):
160216        * dom/NodeRenderingContext.h:
160217        (NodeRenderingContext):
160218        (WebCore::NodeRenderingContext::style):
160219        (WebCore):
160220
1602212012-11-21  W. James MacLean  <wjmaclean@chromium.org>
160222
160223        [chromium] Change default tap highlight color for Chromium Windows & Linux.
160224        https://bugs.webkit.org/show_bug.cgi?id=102939
160225
160226        Reviewed by Adam Barth.
160227
160228        Change default tap highlight colour on Chromium Win/Linux to be 18% black.
160229
160230        * rendering/RenderThemeChromiumSkia.h:
160231        (RenderThemeChromiumSkia): Override platformTapHighlightColor() to change default highlight colour.
160232
1602332012-11-21  Tony Chang  <tony@chromium.org>
160234
160235        Relayout the slider track when a data list is set
160236        https://bugs.webkit.org/show_bug.cgi?id=102851
160237
160238        Reviewed by Ojan Vafai.
160239
160240        Previously, we would relayout the <input>.  Once we fix bug 102352, this
160241        causes the slider track to not relayout.  It should relayout because it
160242        draws the data list tick marks and needs to provide space for them.
160243
160244        No new tests, not testable until bug 102352 is fixed. Specifically,
160245        fast/forms/datalist/update-range-with-datalist.html reveals the bug.
160246
160247        * html/RangeInputType.cpp:
160248        (WebCore::RangeInputType::listAttributeTargetChanged):
160249
1602502012-11-21  Kevin Ellis  <kevers@chromium.org>
160251
160252        [chromium] Add flag to enable/disable touch adjustment at runtime.
160253        https://bugs.webkit.org/show_bug.cgi?id=102534
160254
160255        Reviewed by Antonio Gomes.
160256
160257        Add setting for enabling or disabling touch adjustment.  Note that for
160258        touch adjustment to apply, the compile flag must also be enabled.  A
160259        compile only option is insufficient as it does not allow developers to
160260        quickly test the impact of touch adjustemnt without recompiling.  Nor
160261        does it allow end users to disable touch adjustemnt if they find that
160262        touch adjustment is not working well for a particular site.
160263
160264        No new tests required.
160265
160266        * page/EventHandler.cpp:
160267        (WebCore::EventHandler::handleGestureEvent): Move enable check to adjustGesturePosition.
160268        (WebCore::EventHandler::handleGestureTap): Move enable check to adjustGesturePosition.
160269        (WebCore::EventHandler::shouldApplyTouchAdjustment): Checks if touch adjustment is enabled.
160270        (WebCore):
160271        (WebCore::EventHandler::adjustGesturePosition): Add check for enabling of touch adjustment.
160272        (WebCore::EventHandler::sendContextMenuEventForGesture): Move enable check to adjustGesturePosition.
160273        * page/EventHandler.h:
160274        (EventHandler):
160275        * page/Settings.in:
160276
1602772012-11-21  Philippe Normand  <pnormand@igalia.com>
160278
160279        Unreviewed, build fix after r135410.
160280
160281        * html/track/InbandTextTrack.cpp:
160282        (WebCore::InbandTextTrack::addCue): Prevent unused parameter error.
160283
1602842012-11-21  Andrey Lushnikov  <lushnikov@chromium.com>
160285
160286        Web Inspector: Ctrl+A closes breakpoint condition editor
160287        https://bugs.webkit.org/show_bug.cgi?id=102906
160288
160289        Reviewed by Pavel Feldman.
160290
160291        Check if e.target has no ancestors with className
160292        "webkit-line-decorations" in DefaultTextEditor._handleKeyDown
160293
160294        * inspector/front-end/DefaultTextEditor.js:
160295        (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Add check
160296
1602972012-11-21  Tom Hudson  <tomhudson@chromium.org>
160298
160299        Avoid creating degenerate cubics at corners of rounded rects.
160300        https://bugs.webkit.org/show_bug.cgi?id=102945
160301
160302        Reviewed by Stephen White.
160303
160304        Covered by existing layout tests.
160305
160306        * platform/graphics/Path.cpp:
160307        (Path::addBeziersForRoundedRect):
160308
1603092012-11-21  Eric Carlson  <eric.carlson@apple.com>
160310
160311        In-band text tracks infrastructure
160312        https://bugs.webkit.org/show_bug.cgi?id=102830
160313
160314        Reviewed by Philippe Normand.
160315
160316        Add the infrastructure necessary to allow a port-specific media engine to expose in-band text
160317        tracks.
160318
160319        No new tests, this patch only adds plumbing. Existing tests verify that these changes don't
160320        break existing functionality.
160321
160322        * CMakeLists.txt: Add new project files.
160323        * GNUmakefile.list.am: Ditto.
160324        * Target.pri: Ditto.
160325        * WebCore.gypi: Ditto.
160326        * WebCore.xcodeproj/project.pbxproj: Ditto.
160327
160328        * html/HTMLMediaElement.cpp:
160329        (WebCore::HTMLMediaElement::setReadyState): Call processInbandTextTracks when readyState reaches
160330            HAVE_METADATA
160331        (WebCore::HTMLMediaElement::processInbandTextTracks): Fetch the in-band text tracks from the 
160332            media player and processes them.
160333        * html/HTMLMediaElement.h:
160334
160335        * html/track/InbandTextTrack.cpp: Added.
160336        * html/track/InbandTextTrack.h: Added.
160337        * html/track/InbandTextTrackPrivate.h: Added.
160338
160339        * html/track/TextTrack.h:
160340        (TextTrack):
160341        (WebCore::TextTrack::clearClient): Remove virtual, it is unnecessary
160342        (WebCore::TextTrack::mode): Make virtual so derived classes can override.
160343        (WebCore::TextTrack::setMode): Ditto.
160344
160345        * html/track/TextTrackList.cpp:
160346        (TextTrackList::length): Update to deal with in-band tracks.
160347        (TextTrackList::getTrackIndex): Ditto.
160348        (TextTrackList::getTrackIndexRelativeToRenderedTracks): Ditto.
160349        (TextTrackList::item): Ditto.
160350        (TextTrackList::invalidateTrackIndexesAfterTrack): New, invalidate the cached track indexes of
160351            all tracks after another.
160352        (TextTrackList::append): Update to deal with in-band tracks.
160353        (TextTrackList::remove): Update to deal with in-band tracks.
160354        (TextTrackList::scheduleAddTrackEvent): Remove typo.
160355        * html/track/TextTrackList.h:
160356
160357        * platform/graphics/MediaPlayer.cpp:
160358        (WebCore::MediaPlayer::getTextTracks): New, pass through to the media engine.
160359        (WebCore::MediaPlayer::setTextTrackClient):
160360        * platform/graphics/MediaPlayer.h:
160361
160362        * platform/graphics/MediaPlayerPrivate.h:
160363        (WebCore::MediaPlayerPrivateInterface::setPreload): Cleanup.
160364        (WebCore::MediaPlayerPrivateInterface::sourceEndOfStream): Ditto.
160365        (WebCore::MediaPlayerPrivateInterface::getTextTracks): New client method.
160366        (WebCore::MediaPlayerPrivateInterface::setTextTrackClient): Ditto.
160367
1603682012-11-21  Kai Koehne  <kai.koehne@digia.com>
160369
160370        [Qt] MinGW: Explicitly add OpenGL library dependencies
160371        https://bugs.webkit.org/show_bug.cgi?id=102924
160372
160373        Reviewed by Simon Hausmann.
160374
160375        Adding the dependencies to WebKit1 is too late, because linking will have already failed. Also make sure that 
160376        the we link against OpenGLES1 e.g. for Angle.
160377
160378        * WebCore.pri:
160379
1603802012-11-21  Allan Sandfeld Jensen  <allan.jensen@digia.com>
160381
160382        Disambiguate innerNodeFramePoint and mainFramePoint
160383        https://bugs.webkit.org/show_bug.cgi?id=98139
160384
160385        Reviewed by Julien Chaffraix.
160386
160387        Splits the point() method in HitTestResult into two, innerNodeFramePoint and mainFramePoint().
160388        To do this HitTestResult no longer inherits publically from HitTestLocation, which should also
160389        help to later separate the two classes completely.
160390
160391        Many of the call-sites of hitTestResultAtPoint confuses which coordinates the point is in.
160392        These have not have been fixed in this patch, and they should be audited by the individual ports.
160393
160394        * WebCore.exp.in:
160395        * dom/Document.cpp:
160396        (WebCore::Document::nodesFromRect):
160397        * page/EventHandler.cpp:
160398        (WebCore::EventHandler::eventMayStartDrag):
160399        (WebCore::EventHandler::hitTestResultAtPoint):
160400            Set and maintain pointInMainFrame on the HitTestResult.
160401        * rendering/HitTestResult.cpp:
160402        (WebCore::HitTestResult::HitTestResult):
160403            Construct pointInMainFrame as a copy of pointInInnerNodeFrame. This is correct
160404            for all hit-tests outside of the recursion in EventHandler::hitTestResultAtPoint.
160405        (WebCore::HitTestResult::operator=):
160406        (WebCore::HitTestResult::innerNodeFrame):
160407        (WebCore::HitTestResult::append):
160408        * rendering/HitTestResult.h:
160409        (WebCore::HitTestLocation::point):
160410        (HitTestResult):
160411            Inherits protected now from HitTestLocation to avoid exposing the ambiguous
160412            point() and roundedPoint() methods. 
160413            HitTestResult will be split completely from HitTestLocation in a later patch.
160414        (WebCore::HitTestResult::isRectBasedTest):
160415        (WebCore::HitTestResult::pointInMainFrame):
160416        (WebCore::HitTestResult::roundedPointInMainFrame):
160417        (WebCore::HitTestResult::setPointInMainFrame):
160418        (WebCore::HitTestResult::pointInInnerNodeFrame):
160419        (WebCore::HitTestResult::roundedPointInInnerNodeFrame):
160420        (WebCore::HitTestResult::localPoint):
160421        (WebCore::HitTestResult::setLocalPoint):
160422        * rendering/RenderLayer.cpp:
160423        (WebCore::RenderLayer::hitTest):
160424
1604252012-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>
160426
160427        Unreviewed, rolling out r135383.
160428        http://trac.webkit.org/changeset/135383
160429        https://bugs.webkit.org/show_bug.cgi?id=102935
160430
160431        IDBRequestTest.* unit tests are failing (Requested by yurys on
160432        #webkit).
160433
160434        * bindings/v8/V8DOMWindowShell.cpp:
160435        (WebCore::V8DOMWindowShell::installDOMWindow):
160436        * bindings/v8/V8DOMWindowShell.h:
160437        (V8DOMWindowShell):
160438        (WebCore::V8DOMWindowShell::isolated):
160439        * bindings/v8/WorldContextHandle.cpp:
160440        (WebCore::WorldContextHandle::WorldContextHandle):
160441
1604422012-11-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
160443
160444        [EFL][WK2] Support Context Menu
160445        https://bugs.webkit.org/show_bug.cgi?id=96200
160446
160447        Reviewed by Laszlo Gombos.
160448
160449        * page/ContextMenuController.cpp:
160450        (WebCore::ContextMenuController::populate):
160451        EFL port also doesn't hide unavailable menus as gtk port.
160452
1604532012-11-21  Florin Malita  <fmalita@chromium.org>
160454
160455        [Chromium] Unreviewed Mac build fix after http://trac.webkit.org/changeset/135390.
160456
160457        * platform/graphics/skia/GraphicsContextSkia.cpp:
160458        (WebCore::drawInnerPath):
160459
1604602012-11-21  Florin Malita  <fmalita@chromium.org>
160461
160462        [Skia] Encapsulate access to PlatformContextSkia's SkCanvas
160463        https://bugs.webkit.org/show_bug.cgi?id=102694
160464
160465        Reviewed by Stephen White.
160466
160467        Add SkCanvas-equivalent methods to PlatformContextSkia, and refactor direct canvas call
160468        sites to use these wrappers instead. This reduces the number of canvas() users from 90+
160469        to 22 (mostly theme/ui code).
160470
160471        No new tests: refactoring only.
160472
160473        * platform/chromium/PlatformThemeChromiumLinux.cpp:
160474        (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
160475        * platform/graphics/chromium/FontChromiumWin.cpp:
160476        * platform/graphics/chromium/TransparencyWin.cpp:
160477        (WebCore::TransparencyWin::computeLayerSize):
160478        (WebCore::TransparencyWin::compositeOpaqueComposite):
160479        (WebCore::TransparencyWin::compositeTextComposite):
160480        (WebCore::TransparencyWin::makeLayerOpaque):
160481        * platform/graphics/filters/skia/FEBlendSkia.cpp:
160482        (WebCore::FEBlend::platformApplySkia):
160483        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
160484        (WebCore::FEColorMatrix::platformApplySkia):
160485        * platform/graphics/filters/skia/FEComponentTransferSkia.cpp:
160486        (WebCore::FEComponentTransfer::platformApplySkia):
160487        * platform/graphics/filters/skia/FELightingSkia.cpp:
160488        (WebCore::FELighting::platformApplySkia):
160489        * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
160490        (WebCore::Font::drawGlyphs):
160491        (WebCore::Font::drawComplexText):
160492        * platform/graphics/skia/FontSkia.cpp:
160493        (WebCore::Font::drawGlyphs):
160494        * platform/graphics/skia/GraphicsContextSkia.cpp:
160495        (WebCore::GraphicsContext::addInnerRoundedRectClip):
160496        (WebCore::GraphicsContext::clearRect):
160497        (WebCore::GraphicsContext::clip):
160498        (WebCore::GraphicsContext::clipOut):
160499        (WebCore::GraphicsContext::clipPath):
160500        (WebCore::GraphicsContext::concatCTM):
160501        (WebCore::GraphicsContext::setCTM):
160502        (WebCore::GraphicsContext::drawConvexPolygon):
160503        (WebCore::GraphicsContext::clipConvexPolygon):
160504        (WebCore::GraphicsContext::drawEllipse):
160505        (WebCore::drawOuterPath):
160506        (WebCore::GraphicsContext::drawLine):
160507        (WebCore::GraphicsContext::drawLineForDocumentMarker):
160508        (WebCore::GraphicsContext::drawLineForText):
160509        (WebCore::GraphicsContext::fillPath):
160510        (WebCore::GraphicsContext::fillRect):
160511        (WebCore::GraphicsContext::fillRoundedRect):
160512        (WebCore::GraphicsContext::getCTM):
160513        (WebCore::GraphicsContext::scale):
160514        (WebCore::GraphicsContext::strokeArc):
160515        (WebCore::GraphicsContext::strokePath):
160516        (WebCore::GraphicsContext::strokeRect):
160517        (WebCore::GraphicsContext::rotate):
160518        (WebCore::GraphicsContext::translate):
160519        (WebCore::GraphicsContext::platformFillEllipse):
160520        (WebCore::GraphicsContext::platformStrokeEllipse):
160521        * platform/graphics/skia/ImageBufferSkia.cpp:
160522        (WebCore::getImageData):
160523        (WebCore::ImageBuffer::getUnmultipliedImageData):
160524        (WebCore::ImageBuffer::getPremultipliedImageData):
160525        (WebCore::ImageBuffer::putByteArray):
160526        (WebCore::ImageBuffer::toDataURL):
160527        * platform/graphics/skia/ImageSkia.cpp:
160528        (WebCore::drawResampledBitmap):
160529        (WebCore::hasNon90rotation):
160530        (WebCore::paintSkBitmap):
160531        (WebCore::Image::drawPattern):
160532        * platform/graphics/skia/PlatformContextSkia.cpp:
160533        (WebCore::PlatformContextSkia::save):
160534        (WebCore::PlatformContextSkia::beginLayerClippedToImage):
160535        (WebCore::PlatformContextSkia::restore):
160536        (WebCore::PlatformContextSkia::drawRect):
160537        (WebCore::PlatformContextSkia::couldUseLCDRenderedText):
160538        * platform/graphics/skia/PlatformContextSkia.h:
160539        (PlatformContextSkia):
160540        (WebCore::PlatformContextSkia::layerBitmap):
160541        (WebCore):
160542        (WebCore::PlatformContextSkia::readPixels):
160543        (WebCore::PlatformContextSkia::writePixels):
160544        (WebCore::PlatformContextSkia::isDrawingToLayer):
160545        (WebCore::PlatformContextSkia::isVector):
160546        (WebCore::PlatformContextSkia::clipPath):
160547        (WebCore::PlatformContextSkia::clipRect):
160548        (WebCore::PlatformContextSkia::getClipBounds):
160549        (WebCore::PlatformContextSkia::setMatrix):
160550        (WebCore::PlatformContextSkia::getTotalMatrix):
160551        (WebCore::PlatformContextSkia::concat):
160552        (WebCore::PlatformContextSkia::rotate):
160553        (WebCore::PlatformContextSkia::scale):
160554        (WebCore::PlatformContextSkia::translate):
160555        (WebCore::PlatformContextSkia::drawBitmap):
160556        (WebCore::PlatformContextSkia::drawBitmapRect):
160557        (WebCore::PlatformContextSkia::drawOval):
160558        (WebCore::PlatformContextSkia::drawPath):
160559        (WebCore::PlatformContextSkia::drawPoints):
160560        (WebCore::PlatformContextSkia::drawRect):
160561        (WebCore::PlatformContextSkia::drawIRect):
160562        (WebCore::PlatformContextSkia::drawPosText):
160563        (WebCore::PlatformContextSkia::drawPosTextH):
160564        (WebCore::PlatformContextSkia::drawTextOnPath):
160565        * platform/graphics/skia/SkiaFontWin.cpp:
160566        (WebCore::skiaDrawText):
160567        (WebCore::paintSkiaText):
160568        * platform/graphics/skia/SkiaUtils.cpp:
160569        (WebCore::ClipRectToCanvas):
160570        * platform/graphics/skia/SkiaUtils.h:
160571        (WebCore):
160572
1605732012-11-21  Carlos Garcia Campos  <cgarcia@igalia.com>
160574
160575        Reset the slider thumb location before every layout of the slider container
160576        https://bugs.webkit.org/show_bug.cgi?id=102817
160577
160578        Reviewed by Tony Chang.
160579
160580        The location of the slider thumb is set by the slider container
160581        assuming the slider thumb has been laid out. When this happens,
160582        the location of the slider thumb is reset during the layout
160583        ignoring any previous location set. If the slider thumb is not
160584        laid out, the previous value is added to the new one by the slider
160585        container.
160586
160587        * html/shadow/SliderThumbElement.cpp:
160588        (WebCore::RenderSliderContainer::layout): Reset the location of
160589        the slider thumb before calling RenderFlexibleBox::layout().
160590
1605912012-11-21  Kentaro Hara  <haraken@chromium.org>
160592
160593        Unreviewed, rolling out r135340.
160594        http://trac.webkit.org/changeset/135340
160595        https://bugs.webkit.org/show_bug.cgi?id=102492
160596
160597        It broke Safari's internal build
160598
160599        * bindings/scripts/CodeGenerator.pm:
160600        (ProcessDocument):
160601        (FileNamePrefix):
160602        * bindings/scripts/CodeGeneratorCPP.pm:
160603        (new):
160604        (GenerateInterface):
160605        (WriteData):
160606        * bindings/scripts/CodeGeneratorGObject.pm:
160607        (new):
160608        (WriteData):
160609        (GenerateInterface):
160610        * bindings/scripts/CodeGeneratorJS.pm:
160611        (new):
160612        (GenerateInterface):
160613        (WriteData):
160614        * bindings/scripts/CodeGeneratorObjC.pm:
160615        (new):
160616        (GenerateInterface):
160617        (WriteData):
160618        * bindings/scripts/CodeGeneratorV8.pm:
160619        (new):
160620        (GenerateInterface):
160621        (WriteData):
160622
1606232012-11-21  Pavel Feldman  <pfeldman@chromium.org>
160624
160625        Web Inspector: reparenting view does not detach from the previous parent.
160626        https://bugs.webkit.org/show_bug.cgi?id=102902
160627
160628        Reviewed by Vsevolod Vlasov.
160629
160630        * inspector/front-end/View.js:
160631        (WebInspector.View.prototype.show):
160632
1606332012-11-21  Ilya Tikhonovsky  <loislo@chromium.org>
160634
160635        Web Inspector: NMI add instrumentation to widely used ActiveDOMObjects. XMLHttpRequest, Prerenderer, HTMLMediaElement and DOMTimer.
160636        https://bugs.webkit.org/show_bug.cgi?id=102818
160637
160638        Reviewed by Vsevolod Vlasov.
160639
160640        Our test bot counts pointers which don't match with objects allocated by tcmalloc.
160641        This counter becomes nonzero after instrumenting ActiveDOMObject class.
160642        It happens because it is the base class for many other classes (~30).
160643        And almost all these classes use multiple inheritance.
160644
160645        * dom/Document.cpp:
160646        (WebCore::Document::reportMemoryUsage):
160647        * dom/DocumentEventQueue.cpp:
160648        * html/HTMLMediaElement.cpp:
160649        (WebCore::HTMLMediaElement::reportMemoryUsage):
160650        (WebCore):
160651        * html/HTMLMediaElement.h:
160652        * loader/Prerenderer.cpp:
160653        (WebCore::Prerenderer::reportMemoryUsage):
160654        (WebCore):
160655        * loader/Prerenderer.h:
160656        (Prerenderer):
160657        * page/DOMTimer.cpp:
160658        (WebCore::DOMTimer::reportMemoryUsage):
160659        (WebCore):
160660        * page/DOMTimer.h:
160661        (DOMTimer):
160662        * xml/XMLHttpRequest.cpp:
160663        (WebCore::XMLHttpRequest::reportMemoryUsage):
160664        (WebCore):
160665        * xml/XMLHttpRequest.h:
160666        (XMLHttpRequest):
160667
1606682012-11-21  Dan Carney  <dcarney@google.com>
160669
160670        [V8] Add context checks to WorldContextHandle and V8DOMWindowShell
160671        https://bugs.webkit.org/show_bug.cgi?id=101573
160672
160673        Reviewed by Adam Barth.
160674
160675        Added a bunch of assertions to ensure the problems with IndexedDB
160676        contexts cannot reemerge.
160677
160678        No new tests. No change in functionality.
160679
160680        * bindings/v8/V8DOMWindowShell.cpp:
160681        (WebCore):
160682        (WebCore::V8DOMWindowShell::assertContextHasCorrectPrototype):
160683        * bindings/v8/V8DOMWindowShell.h:
160684        (V8DOMWindowShell):
160685        (WebCore::V8DOMWindowShell::isolated):
160686        * bindings/v8/WorldContextHandle.cpp:
160687        (WebCore::WorldContextHandle::WorldContextHandle):
160688
1606892012-11-21  Harald Alvestrand  <hta@google.com>
160690
160691        WebMediaStreamComponent: Add assignment and copy operators
160692        https://bugs.webkit.org/show_bug.cgi?id=102915
160693
160694        Reviewed by Adam Barth.
160695
160696        Tests that use this functionality are being submitted to Chrome.
160697
160698        * platform/chromium/support/WebMediaStreamComponent.cpp:
160699        (WebKit::WebMediaStreamComponent::assign):
160700        (WebKit):
160701        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
160702
1607032012-11-21  Kentaro Hara  <haraken@chromium.org>
160704
160705        [V8] Remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
160706        https://bugs.webkit.org/show_bug.cgi?id=102917
160707
160708        Reviewed by Adam Barth.
160709
160710        Now EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
160711        are equivalent. We can remove STRING_TO_V8PARAMETER_EXCEPTION_BLOCK().
160712        To make a code generate change smaller, this patch also renames
160713        STRING_TO_V8PARAMETER_EXCEPTION_BLOCK_VOID() to EXCEPTION_BLOCK_VOID().
160714        I will rename these macros in a follow-up patch.
160715
160716        No tests. No change in behavior.
160717
160718        * bindings/scripts/CodeGeneratorV8.pm:
160719        (GenerateEventConstructorCallback):
160720        (ConvertToV8Parameter):
160721        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
160722        (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
160723        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
160724        (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
160725        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
160726        (WebCore::V8TestEventConstructor::constructorCallback):
160727        * bindings/scripts/test/V8/V8TestInterface.cpp:
160728        (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
160729        (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetter):
160730        (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
160731        (WebCore::V8TestInterface::constructorCallback):
160732        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
160733        (WebCore::V8TestNamedConstructorConstructorCallback):
160734        * bindings/scripts/test/V8/V8TestObj.cpp:
160735        (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
160736        (WebCore::TestObjV8Internal::stringAttrAttrSetter):
160737        (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetter):
160738        (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetter):
160739        (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetter):
160740        (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetter):
160741        (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetter):
160742        (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
160743        (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
160744        (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
160745        (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
160746        (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
160747        (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
160748        (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
160749        (WebCore::TestObjV8Internal::overloadedMethod1Callback):
160750        (WebCore::TestObjV8Internal::overloadedMethod3Callback):
160751        (WebCore::TestObjV8Internal::overloadedMethod11Callback):
160752        (WebCore::TestObjV8Internal::overloadedMethod12Callback):
160753        (WebCore::TestObjV8Internal::strictFunctionCallback):
160754        (WebCore::TestObjV8Internal::variadicStringMethodCallback):
160755        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
160756        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
160757        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
160758        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
160759        * bindings/v8/V8BindingMacros.h:
160760        * bindings/v8/V8StringResource.h:
160761        (V8Parameter):
160762        * bindings/v8/custom/V8ConsoleCustom.cpp:
160763        (WebCore::V8Console::profileCallback):
160764        (WebCore::V8Console::profileEndCallback):
160765        * bindings/v8/custom/V8DOMWindowCustom.cpp:
160766        (WebCore::handlePostMessageCallback):
160767        * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
160768        (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
160769        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
160770        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
160771        * bindings/v8/custom/V8HistoryCustom.cpp:
160772        (WebCore::V8History::pushStateCallback):
160773        (WebCore::V8History::replaceStateCallback):
160774        * bindings/v8/custom/V8IntentCustom.cpp:
160775        (WebCore::V8Intent::constructorCallbackCustom):
160776        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
160777        (WebCore::V8SQLTransaction::executeSqlCallback):
160778        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
160779        (WebCore::V8SQLTransactionSync::executeSqlCallback):
160780        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
160781        (WebCore::V8WebGLRenderingContext::getExtensionCallback):
160782
1607832012-11-21  Kentaro Hara  <haraken@chromium.org>
160784
160785        [V8] Move V8DOMWindowShell::initializeV8IfNeeded() to V8Initializer
160786        https://bugs.webkit.org/show_bug.cgi?id=102899
160787
160788        Reviewed by Adam Barth.
160789
160790        This is an incremental step to kill WorkerContextExecutionProxy.
160791        As commented by abarth in bug 97066, we move
160792        V8DOMWindowShell::initializeV8IfNeeded() to V8Initializer.
160793        This patch renames initializeV8IfNeeded() to initializeMainThreadIfNeeded()
160794        because we will add initializeWorkerIfNeeded() in a follow-up patch.
160795
160796        No tests. No change in behavior.
160797
160798        * UseV8.cmake:
160799        * WebCore.gypi:
160800        * bindings/v8/V8DOMWindowShell.cpp:
160801        (WebCore::V8DOMWindowShell::initializeIfNeeded):
160802        * bindings/v8/V8Initializer.cpp: Added.
160803        (WebCore):
160804        (WebCore::findFrame):
160805        (WebCore::reportFatalError):
160806        (WebCore::reportUncaughtException):
160807        (WebCore::reportUnsafeJavaScriptAccess):
160808        (WebCore::V8Initializer::initializeMainThreadIfNeeded):
160809        * bindings/v8/V8Initializer.h: Added.
160810        (WebCore):
160811        (V8Initializer):
160812
1608132012-11-21  Alexander Pavlov  <apavlov@chromium.org>
160814
160815        Turn -webkit-text-emphasis into a shorthand property
160816        https://bugs.webkit.org/show_bug.cgi?id=102879
160817
160818        Reviewed by Antti Koivisto.
160819
160820        -webkit-text-emphasis value is no longer empty.
160821
160822        * css/StylePropertySet.cpp:
160823        (WebCore::StylePropertySet::getPropertyValue): Reconstruct the -webkit-text-emphasis value based on the longhands.
160824
1608252012-11-21  Kentaro Hara  <haraken@chromium.org>
160826
160827        Unreviewed. Build fix.
160828
160829        * bindings/v8/custom/V8BlobCustom.cpp:
160830        (WebCore::V8Blob::constructorCallbackCustom):
160831
1608322012-11-21  Kentaro Hara  <haraken@chromium.org>
160833
160834        [V8] Rename v8/custom/*Constructor.cpp to v8/custom/*Custom.cpp
160835        https://bugs.webkit.org/show_bug.cgi?id=102881
160836
160837        Reviewed by Adam Barth.
160838
160839        Writing constructorCallback()s in *Custom.cpp is a convention of
160840        custom bindings of JSC and V8. We can rename v8/custom/*Constructor.cpp
160841        to v8/custom/*Custom.cpp.
160842
160843        No tests. No change in behavior.
160844
160845        * UseV8.cmake: This file is already out of sync.
160846        * WebCore.gypi:
160847        * bindings/v8/custom/V8IntentCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentConstructor.cpp.
160848        (WebCore):
160849        (WebCore::V8Intent::constructorCallbackCustom):
160850        * bindings/v8/custom/V8MessageChannelCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp.
160851        (WebCore):
160852        (WebCore::V8MessageChannel::constructorCallbackCustom):
160853        * bindings/v8/custom/V8WebKitPointCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp.
160854        (WebCore):
160855        (WebCore::V8WebKitPoint::constructorCallbackCustom):
160856
1608572012-11-21  Dan Carney  <dcarney@google.com>
160858
160859        [V8] Inspector does not callback IDB methods in context
160860        https://bugs.webkit.org/show_bug.cgi?id=101725
160861
160862        Reviewed by Adam Barth.
160863
160864        Inserted v8 context before calling out to IDB.
160865
160866        No new tests.
160867
160868        * inspector/InspectorIndexedDBAgent.cpp:
160869        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
160870        (WebCore::InspectorIndexedDBAgent::requestDatabase):
160871        (WebCore::InspectorIndexedDBAgent::requestData):
160872
1608732012-11-21  Huang Dongsung  <luxtella@company100.net>
160874
160875        REGRESSION(134048): TiledBackingStore must create tiles when the contents rect is changed.
160876        https://bugs.webkit.org/show_bug.cgi?id=102035
160877
160878        Reviewed by Kenneth Rohde Christiansen.
160879
160880        Before r134048, the visibleRect contained information of both the viewport and
160881        the contents rect. Now the visible rect is related to only the viewport. So
160882        TiledBackingStore::coverWithTilesIfNeeded() early returns even if the contents
160883        rect is changed, because changing the contents rect is independent on changing
160884        both a trajectory vector and the visible rect.
160885
160886        * platform/graphics/TiledBackingStore.cpp:
160887        (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
160888
1608892012-11-21  Vsevolod Vlasov  <vsevik@chromium.org>
160890
160891        Web Inspector: Request preview tuning: enable json preview for text/html XHRs
160892        https://bugs.webkit.org/show_bug.cgi?id=102892
160893
160894        Reviewed by Alexander Pavlov.
160895
160896        * inspector/front-end/RequestPreviewView.js:
160897        (WebInspector.RequestPreviewView.prototype._jsonView):
160898        (WebInspector.RequestPreviewView.prototype._htmlView):
160899        (WebInspector.RequestPreviewView.prototype._createPreviewView):
160900
1609012012-11-21  Kentaro Hara  <haraken@chromium.org>
160902
160903        [V8] Remove manually written v8::TryCatches in custom bindings
160904        https://bugs.webkit.org/show_bug.cgi?id=102883
160905
160906        Reviewed by Adam Barth.
160907
160908        We can replace them with the EXCEPTION_BLOCK() macro or its friends.
160909
160910        No new tests. This patch shouldn't change any behavior.
160911
160912        * bindings/v8/custom/V8DOMWindowCustom.cpp:
160913        (WebCore::handlePostMessageCallback):
160914        * bindings/v8/custom/V8DocumentCustom.cpp:
160915        (WebCore::V8Document::evaluateCallback):
160916        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
160917        (WebCore::V8HTMLOptionsCollection::addCallback):
160918        * bindings/v8/custom/V8HistoryCustom.cpp:
160919        (WebCore::V8History::pushStateCallback):
160920        (WebCore::V8History::replaceStateCallback):
160921
1609222012-11-21  Kentaro Hara  <haraken@chromium.org>
160923
160924        Unreviewed, rolling out r135358.
160925        http://trac.webkit.org/changeset/135358
160926        https://bugs.webkit.org/show_bug.cgi?id=102881
160927
160928        It broke Chromium/Linux build
160929
160930        * UseV8.cmake:
160931        * WebCore.gypi:
160932        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementCustom.cpp.
160933        (WebCore):
160934        (WebCore::v8HTMLImageElementConstructorCallback):
160935        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
160936        * bindings/v8/custom/V8HTMLImageElementConstructor.h: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementCustom.h.
160937        (WebCore):
160938        (V8HTMLImageElementConstructor):
160939        * bindings/v8/custom/V8IntentConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentCustom.cpp.
160940        (WebCore):
160941        (WebCore::V8Intent::constructorCallbackCustom):
160942        * bindings/v8/custom/V8MessageChannelConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelCustom.cpp.
160943        (WebCore):
160944        (WebCore::V8MessageChannel::constructorCallbackCustom):
160945        * bindings/v8/custom/V8WebKitPointConstructor.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointCustom.cpp.
160946        (WebCore):
160947        (WebCore::V8WebKitPoint::constructorCallbackCustom):
160948
1609492012-11-21  KyungTae Kim  <ktf.kim@samsung.com>
160950
160951        Unused parameters on ScrollingCoordinator.cpp
160952        https://bugs.webkit.org/show_bug.cgi?id=102884
160953
160954        Reviewed by Kentaro Hara.
160955
160956        Because the 'scrollingLayerPositionAction' parameter is not used when !USE(ACCELERATED_COMPOSITING),
160957        use UNUSED_PARAM macro to fix build warning -Wunused-parameter
160958
160959        * page/scrolling/ScrollingCoordinator.cpp:
160960        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
160961
1609622012-11-21  Kentaro Hara  <haraken@chromium.org>
160963
160964        [V8] Replace V8Parameter::prepare() with V8Parameter::operator=()
160965        https://bugs.webkit.org/show_bug.cgi?id=102870
160966
160967        Reviewed by Adam Barth.
160968
160969        This is an incremental step for V8Parameter refactoring.
160970        By replacing V8Parameter::prepare() with V8Parameter::operator=(),
160971        we can make EXCEPTION_BLOCK() and STRING_TO_V8PARAMETER_EXCEPTION_BLOCK()
160972        equivalent (except for a return value).
160973
160974        Tests: fast/workers/worker-constructor.html
160975               storage/websql/sql-error-codes.html
160976               inspector/console/alert-toString-exception.html
160977               http/tests/websocket/tests/hybi/send-throw.html
160978
160979        * bindings/v8/V8BindingMacros.h:
160980        * bindings/v8/V8StringResource.h:
160981        (WebCore::V8Parameter::V8Parameter):
160982        (V8Parameter):
160983        (WebCore::=):
160984
1609852012-11-21  Kentaro Hara  <haraken@chromium.org>
160986
160987        [V8] Rename v8/custom/*Constructor.cpp to v8/custom/*Custom.cpp
160988        https://bugs.webkit.org/show_bug.cgi?id=102881
160989
160990        Reviewed by Adam Barth.
160991
160992        Writing constructorCallback()s in *Custom.cpp is a convention of
160993        custom bindings of JSC and V8. We can rename v8/custom/*Constructor.cpp
160994        to v8/custom/*Custom.cpp.
160995
160996        No tests. No change in behavior.
160997
160998        * UseV8.cmake: This file is already out of sync.
160999        * WebCore.gypi:
161000        * bindings/v8/custom/V8HTMLImageElementCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp.
161001        (WebCore):
161002        (WebCore::v8HTMLImageElementConstructorCallback):
161003        (WebCore::V8HTMLImageElementConstructor::GetTemplate):
161004        * bindings/v8/custom/V8HTMLImageElementCustom.h: Renamed from Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.h.
161005        (WebCore):
161006        (V8HTMLImageElementConstructor):
161007        * bindings/v8/custom/V8IntentCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8IntentConstructor.cpp.
161008        (WebCore):
161009        (WebCore::V8Intent::constructorCallbackCustom):
161010        * bindings/v8/custom/V8MessageChannelCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8MessageChannelConstructor.cpp.
161011        (WebCore):
161012        (WebCore::V8MessageChannel::constructorCallbackCustom):
161013        * bindings/v8/custom/V8WebKitPointCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitPointConstructor.cpp.
161014        (WebCore):
161015        (WebCore::V8WebKitPoint::constructorCallbackCustom):
161016
1610172012-11-21  Andrey Adaikin  <aandrey@chromium.org>
161018
161019        Web Inspector: [Canvas] throttle wait icon in the ui
161020        https://bugs.webkit.org/show_bug.cgi?id=102685
161021
161022        Reviewed by Vsevolod Vlasov.
161023
161024        Do not show the wait icon for small operations during the replay to reduce flickering.
161025
161026        * inspector/front-end/CanvasProfileView.js:
161027        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
161028
1610292012-11-21  Kunihiko Sakamoto  <ksakamoto@chromium.org>
161030
161031        Enable datalist UI for input types datetime and datetime-local
161032        https://bugs.webkit.org/show_bug.cgi?id=102882
161033
161034        Reviewed by Kent Tamura.
161035
161036        Enabling datalist UI for input types datetime and datetime-local.
161037
161038        No new tests yet. Tests will be added later in Bug 102888.
161039
161040        * platform/text/PlatformLocale.cpp:
161041        (WebCore::Locale::formatDateTime): Support datetime and datetime-local types.
161042        * rendering/RenderThemeChromiumCommon.cpp:
161043        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add datetime and datetimelocal to the list.
161044
1610452012-11-20  Kentaro Hara  <haraken@chromium.org>
161046
161047        [V8] Remove v8/custom/V8XMLHttpRequestConstructor.cpp
161048        https://bugs.webkit.org/show_bug.cgi?id=102876
161049
161050        Reviewed by Sam Weinig.
161051
161052        It doesn't make sense to have one custom cpp file for
161053        XXX::constructorCallback() only. We can move XXX::constructorCallback()
161054        in v8/custom/V8XXXConstructor.cpp to v8/custom/V8XXXCustom.cpp
161055        and thus remove v8/custom/V8XXXConstructor.cpp.
161056
161057        Note: Some XXX::constructorCallback()s are already written in
161058        v8/custom/V8XXXCustom.cpp. JSC already has almost all
161059        XXX::constructorCallback()s in js/JSXXXCustom.cpp.
161060
161061        No tests. No change in behavior.
161062
161063        * UseV8.cmake:
161064        * WebCore.gypi:
161065        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Removed.
161066        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
161067        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
161068        (WebCore):
161069
1610702012-11-20  Kentaro Hara  <haraken@chromium.org>
161071
161072        Unreviewed. Rebaselined run-bindings-tests.
161073
161074        * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
161075        * bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.cpp:
161076        * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
161077        * bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.cpp:
161078        * bindings/scripts/test/CPP/WebDOMTestEventConstructor.cpp:
161079        * bindings/scripts/test/CPP/WebDOMTestEventTarget.cpp:
161080        * bindings/scripts/test/CPP/WebDOMTestException.cpp:
161081        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
161082        * bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.cpp:
161083        * bindings/scripts/test/CPP/WebDOMTestNamedConstructor.cpp:
161084        * bindings/scripts/test/CPP/WebDOMTestNode.cpp:
161085        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
161086        * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp:
161087        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
161088        * bindings/scripts/test/V8/V8TestObj.cpp:
161089        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrGetter):
161090        (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetter):
161091        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrGetter):
161092        (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetter):
161093        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
161094        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
161095        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
161096        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
161097        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
161098        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
161099        (WebCore::TestObjV8Internal::withScriptStateVoidCallback):
161100        (WebCore::TestObjV8Internal::withScriptStateObjCallback):
161101        (WebCore::TestObjV8Internal::withScriptStateVoidExceptionCallback):
161102        (WebCore::TestObjV8Internal::withScriptStateObjExceptionCallback):
161103        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateCallback):
161104        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
161105        (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
161106
1611072012-11-20  Kentaro Hara  <haraken@chromium.org>
161108
161109        [V8] Introduce constructorCallbackCustom()
161110        https://bugs.webkit.org/show_bug.cgi?id=102763
161111
161112        Reviewed by Adam Barth.
161113
161114        Currently custom constructors have the following code:
161115
161116          v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
161117            INC_STATS("DOM.XXX.Constructor");
161118            if (!args.IsConstructCall())
161119              return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate());
161120            if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
161121              return args.Holder();
161122
161123            /* body of the constructor */;
161124          }
161125
161126        To avoid duplicating the same logic in all custom constructors,
161127        this patch changes the generated code as follows:
161128
161129          // Generated automatically
161130          v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
161131            INC_STATS("DOM.XXX.Constructor");
161132            ${maybeObserveFeature}  // Newly supported for custom constructors.
161133            if (!args.IsConstructCall())
161134              return throwTypeError("DOM object constructor cannot be called as a function.", args.GetIsolate());
161135            if (ConstructorMode::current() == ConstructorMode::WrapExistingObject)
161136              return args.Holder();
161137
161138            V8XXX::constructorCallbackCustom(args);
161139          }
161140
161141          // Written manually
161142          v8::Handle<v8::Value> V8XXX::constructorCallback(const v8::Arguments& args) {
161143            /* body of the constructor */;
161144          }
161145
161146        No tests. No change in behavior.
161147
161148        * bindings/scripts/CodeGeneratorV8.pm:
161149        (GenerateHeader):
161150        (HasCustomConstructor):
161151        (GenerateCustomConstructorCallback):
161152        (GenerateImplementation):
161153        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
161154        (WebCore::V8TestEventConstructor::constructorCallback):
161155        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
161156        (WebCore::V8TestNamedConstructorConstructorCallback):
161157        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
161158        (WebCore::V8TestOverloadedConstructors::constructorCallback):
161159        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
161160        (WebCore::V8ArrayBuffer::constructorCallbackCustom):
161161        * bindings/v8/custom/V8AudioContextCustom.cpp:
161162        (WebCore::V8AudioContext::constructorCallbackCustom):
161163        * bindings/v8/custom/V8BlobCustom.cpp:
161164        (WebCore::V8Blob::constructorCallbackCustom):
161165        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
161166        (WebCore::V8DOMFormData::constructorCallbackCustom):
161167        * bindings/v8/custom/V8DataViewCustom.cpp:
161168        (WebCore::V8DataView::constructorCallbackCustom):
161169        * bindings/v8/custom/V8IntentConstructor.cpp:
161170        (WebCore::V8Intent::constructorCallbackCustom):
161171        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
161172        (WebCore::V8MessageChannel::constructorCallbackCustom):
161173        * bindings/v8/custom/V8MutationObserverCustom.cpp:
161174        (WebCore::V8MutationObserver::constructorCallbackCustom):
161175        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
161176        (WebCore::V8WebKitPoint::constructorCallbackCustom):
161177        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
161178        (WebCore::V8XMLHttpRequest::constructorCallbackCustom):
161179
1611802012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
161181
161182        REGRESSION(r135263): Fix a wrong argument for udat_close
161183        https://bugs.webkit.org/show_bug.cgi?id=102856
161184
161185        Reviewed by Kent Tamura.
161186
161187        Fixed a bug that passed wrong pointer to udat_close.
161188
161189        No new tests. No changes in behavior.
161190
161191        * platform/text/LocaleICU.cpp:
161192        (WebCore::LocaleICU::initializeDateTimeFormat): Close correct object.
161193
1611942012-11-20  Kentaro Hara  <haraken@chromium.org>
161195
161196        Remove $outputDir and $outputHeadersDir from global variables of code generators
161197        https://bugs.webkit.org/show_bug.cgi?id=102492
161198
161199        Reviewed by Adam Barth.
161200
161201        $outputDir and $outputHeadersDir are used in WriteData() only.
161202        We don't need to use global variables for them.
161203
161204        No tests. No change in behavior.
161205
161206        * bindings/scripts/CodeGenerator.pm:
161207        (ProcessDocument):
161208        (FileNamePrefix):
161209        * bindings/scripts/CodeGeneratorCPP.pm:
161210        (new):
161211        (GenerateInterface):
161212        (WriteData):
161213        * bindings/scripts/CodeGeneratorGObject.pm:
161214        (new):
161215        (WriteData):
161216        (GenerateInterface):
161217        * bindings/scripts/CodeGeneratorJS.pm:
161218        (new):
161219        (GenerateInterface):
161220        (WriteData):
161221        * bindings/scripts/CodeGeneratorObjC.pm:
161222        (new):
161223        (GenerateInterface):
161224        (WriteData):
161225        * bindings/scripts/CodeGeneratorV8.pm:
161226        (new):
161227        (GenerateInterface):
161228        (WriteData):
161229
1612302012-11-20  Adam Barth  <abarth@webkit.org>
161231
161232        7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__not_in_document
161233        https://bugs.webkit.org/show_bug.cgi?id=102852
161234
161235        Reviewed by Kentaro Hara.
161236
161237        In http://trac.webkit.org/changeset/135208/, we lost the early-exit
161238        check for whether isolatedWorldsExist() in this code path. This
161239        regression points to benchmarks that we can further improve by
161240        continuing to merge the general ScriptWrappable code path with the Node
161241        code path.
161242
161243        * bindings/v8/DOMDataStore.cpp:
161244        (WebCore::DOMDataStore::current):
161245
1612462012-11-20  Kentaro Hara  <haraken@chromium.org>
161247
161248        [V8] Change a return type of V8Parameter::prepare() from bool to void
161249        https://bugs.webkit.org/show_bug.cgi?id=102805
161250
161251        Reviewed by Adam Barth.
161252
161253        This is an incremental step for V8Parameter refactoring.
161254
161255        V8Parameter::prepare() is always called just after V8Parameter's
161256        constructor. So I want to move the logic of V8Parameter::prepare()
161257        to V8Parameter's constructor. In preparation for that (i.e. because
161258        a constructor cannot return any value), this patch changes the return
161259        type of V8Parameter::prepare() from bool to void.
161260
161261        Tests: fast/workers/worker-constructor.html
161262               storage/websql/sql-error-codes.html
161263               inspector/console/alert-toString-exception.html
161264               http/tests/websocket/tests/hybi/send-throw.html
161265               etc
161266
161267        * bindings/v8/V8BindingMacros.h:
161268        * bindings/v8/V8StringResource.h:
161269        (V8Parameter):
161270        (WebCore::V8Parameter::prepareBase): This patch removes a TryCatch block.
161271        This change is safe because (1) all V8Parameter::prepareBase() in the code base
161272        is called inside STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(), and because
161273        (2) STRING_TO_V8PARAMETER_EXCEPTION_BLOCK() has a TryCatch block.
161274        (Note: In a follow-up patch I'm planning to refactor the macros.)
161275        (WebCore::::prepare): I will remove this method shortly.
161276
1612772012-11-20  Adam Klein  <adamk@chromium.org>
161278
161279        [JSC] MutationObserver wrapper should not be collected while still observing
161280        https://bugs.webkit.org/show_bug.cgi?id=102744
161281
161282        Reviewed by Adam Barth.
161283
161284        This is the JSC side of the change landed for V8 in r135228.
161285        It ensures MutationObserver wrapper objects are kept alive as long as
161286        any observed nodes.
161287
161288        * bindings/js/JSMutationObserverCustom.cpp:
161289        (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots): Keep MutationObserver wrappers alive
161290        if any of their observed nodes' roots is an opaque root.
161291        * dom/MutationObserver.idl: Add JSCustomIsReachable
161292
1612932012-11-20  Joshua Bell  <jsbell@chromium.org>
161294
161295        IndexedDB: Move control of transaction completion to front end
161296        https://bugs.webkit.org/show_bug.cgi?id=100903
161297
161298        Reviewed by Tony Chang.
161299
161300        "When a transaction can no longer become active, the implementation must attempt to
161301        commit it" - that is, all requests have dispatched success/error events and no further
161302        requests have been made. Previously, this was done by the back end waiting for events
161303        from the front end, but the front end can more efficiently make the decision.
161304
161305        There should be no detectable behavior change.
161306
161307        Tests: storage/indexeddb/transaction-*.html
161308
161309        * Modules/indexeddb/IDBTransaction.cpp:
161310        (WebCore::IDBTransaction::IDBTransaction):
161311        (WebCore::IDBTransaction::setActive):
161312        (WebCore::IDBTransaction::registerRequest):
161313        * Modules/indexeddb/IDBTransaction.h:
161314        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
161315        (WebCore::IDBTransactionBackendImpl::hasPendingTasks): Added.
161316        (WebCore::IDBTransactionBackendImpl::didCompleteTaskEvents):
161317        (WebCore::IDBTransactionBackendImpl::run):
161318        (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
161319
1613202012-11-20  Kentaro Hara  <haraken@chromium.org>
161321
161322        Unreviewed. Rebaselined run-bindings-tests results.
161323
161324        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
161325        (WebCore::V8TestEventConstructor::constructorCallback):
161326        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
161327        (WebCore::V8TestNamedConstructorConstructorCallback):
161328        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
161329        (WebCore::V8TestOverloadedConstructors::constructorCallback):
161330
1613312012-11-20  Alpha Lam  <hclam@chromium.org>
161332
161333        Unreviewed. Chromium build fix.
161334
161335        Removed unnecessary mutex unlock that triggered crash on Linux debug build.
161336
161337        Chromium Linux Debug layout tests should be green:
161338        platform/chromium/virtual/deferred/fast/images/image-in-map.html
161339
161340        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
161341        (WebCore::LazyDecodingPixelRef::onLockPixels):
161342
1613432012-11-20  Ryosuke Niwa  <rniwa@webkit.org>
161344
161345        Fix another typo. I need to checking that type() != NodeListCollectionType,
161346        not that type() >= FirstNodeCollectionType.
161347
161348        * dom/DynamicNodeList.cpp:
161349        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
161350        * dom/DynamicNodeList.h:
161351        (WebCore::DynamicNodeListCacheBase::invalidateCache):
161352
1613532012-11-20  Michael Pruett  <michael@68k.org>
161354
161355        [V8] Pass ScriptState::current() to functions marked with CallWith=ScriptState
161356        https://bugs.webkit.org/show_bug.cgi?id=102739
161357
161358        Reviewed by Kentaro Hara.
161359
161360        Previously EmptyScriptState rather than ScriptState::current()
161361        was passed to functions marked with [CallWith=ScriptState].
161362        Since the EmptyScriptState has a null v8::Context, any functions
161363        which depended upon a valid v8::Context would fail.
161364
161365        No new tests. Covered by existing tests.
161366
161367        * bindings/scripts/CodeGeneratorV8.pm:
161368        (GenerateNormalAttrGetter):
161369        (GenerateNormalAttrSetter):
161370        (GenerateCallWith):
161371        (GenerateFunctionCallString):
161372        * bindings/v8/ScriptState.h:
161373        (WebCore::ScriptState::clearException): Added.
161374
1613752012-11-20  Brent Fulgham  <bfulgham@webkit.org>
161376
161377        [Qt] Build fix after r135217.
161378        https://bugs.webkit.org/show_bug.cgi?id=102787
161379
161380        * platform/win/WindowsExtras.h: Switch to direct include of
161381          <ObjBase.h>, as is done in other <shlwapi.h> includes.
161382
1613832012-11-20  Ryosuke Niwa  <rniwa@webkit.org>
161384
161385        Fix typos. Apparently XCode failed to text-replace earlier when it was busy making a snapshot :(
161386
161387        * dom/DynamicNodeList.cpp:
161388        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
161389        * dom/DynamicNodeList.h:
161390        (WebCore::DynamicNodeListCacheBase::invalidateCache):
161391        (DynamicNodeListCacheBase):
161392
1613932012-11-20  Kentaro Hara  <haraken@chromium.org>
161394
161395        [V8] Introduce GenerateConstructorHeader() to CodeGeneratorV8.pm
161396        https://bugs.webkit.org/show_bug.cgi?id=102806
161397
161398        Reviewed by Adam Barth.
161399
161400        This is an incremental step for introducing constructorCallbackCustom().
161401        (See bug 102763.) This patch adds GenerateConstructorHeader()
161402        that generates a common code for constructors.
161403
161404        No tests. No change in behavior.
161405
161406        * bindings/scripts/CodeGeneratorV8.pm:
161407        (GenerateOverloadedConstructorCallback):
161408        (GenerateSingleConstructorCallback):
161409        (GenerateEventConstructorCallback):
161410        (GenerateNamedConstructorCallback):
161411        (GenerateConstructorHeader):
161412
1614132012-11-20  Ryosuke Niwa  <rniwa@webkit.org>
161414
161415        HTMLCollection's cache should not be invalidated when id or name attributes are changed
161416        https://bugs.webkit.org/show_bug.cgi?id=102843
161417
161418        Reviewed by Eric Seidel.
161419
161420        When an id or name attribute changes, only invaliate id and name cache maps when the collection
161421        doesn't depend on id and name attributes (e.g. document.images).
161422
161423        Unfortunately, I could not create a reliable test for this performance problem.
161424
161425        * dom/DynamicNodeList.cpp:
161426        (WebCore::DynamicNodeListCacheBase::invalidateIdNameCacheMaps):
161427        * dom/DynamicNodeList.h:
161428        (WebCore::DynamicNodeListCacheBase::invalidateCache):
161429        (DynamicNodeListCacheBase):
161430        * dom/ElementRareData.h:
161431        (WebCore::ElementRareData::clearHTMLCollectionCaches):
161432        * html/HTMLCollection.cpp:
161433        (WebCore::invalidationTypeExcludingIdAndNameAttributes):
161434
1614352012-11-20  Adam Klein  <adamk@chromium.org>
161436
161437        [v8] Avoid unnecessary call to ToObject() in Callback constructors
161438        https://bugs.webkit.org/show_bug.cgi?id=102831
161439
161440        Reviewed by Adam Barth.
161441
161442        The code already asserted that the argument was an object, so calling
161443        ToObject() is unnecessary: a simple Cast() suffices.
161444
161445        * bindings/scripts/CodeGeneratorV8.pm:
161446        (GenerateCallbackHeader):
161447        * bindings/scripts/test/V8/V8TestCallback.h:
161448        (WebCore::V8TestCallback::create):
161449
1614502012-11-20  Brent Fulgham  <bfulgham@webkit.org>
161451
161452        [WinCairo] Build fix after r135316
161453
161454        * platform/network/curl/AuthenticationChallenge.h: Update stub
161455          implementations to match Apple Windows port.
161456        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Add
161457          missing identifier argument.
161458        (WebCore::AuthenticationChallenge::setAuthenticationClient): Supply
161459          missing set method.
161460
1614612012-11-20  Tony Chang  <tony@chromium.org>
161462
161463        When calling DocumentStyleSheetCollection::addUserSheet, pass in a user sheet
161464        https://bugs.webkit.org/show_bug.cgi?id=102835
161465
161466        Reviewed by Ojan Vafai.
161467
161468        After r135082, Chromium browser_tests were triggering the ASSERT in
161469        StyleResolver::collectRulesFromUserStyleSheets. Add an ASSERT that will
161470        trigger earlier and make it clear in the Chromium code that we're always
161471        inserting user level styles.
161472
161473        No new tests, no behavior change except no longer triggering the StyleResolver ASSERT
161474        in Chromium browser_tests.
161475
161476        * dom/DocumentStyleSheetCollection.cpp:
161477        (WebCore::DocumentStyleSheetCollection::addUserSheet):
161478
1614792012-11-20  Bear Travis  <betravis@adobe.com>
161480
161481        [CSS Exclusions] Support outside-shape value on shape-inside
161482        https://bugs.webkit.org/show_bug.cgi?id=101108
161483
161484        Reviewed by Dirk Schulze.
161485
161486        Shape-inside can potentially be: 'auto' | 'outside-shape' | <shape> | <url>.
161487        Webkit currently supports the value 'auto' (null) and <shape> (a BasicShape*).
161488        This patch adds support for the value 'outside-shape.' It adds the ExclusionShapeValue
161489        class, which may be any of the three values: 'auto', 'outside-shape', or <shape>.
161490        Bug 102738 tracks adding <url> support.
161491
161492        Modifying existing tests:
161493        LayoutTests/fast/exclusions/parsing-wrap-shape-inside.html
161494        LayoutTests/fast/exclusions/parsing-wrap-shape-outside.html
161495
161496        * GNUmakefile.list.am: Adding ExclusionShapeValue.h to the build files.
161497        * Target.pri: Ditto.
161498        * WebCore.gypi: Ditto.
161499        * WebCore.vcproj/WebCore.vcproj: Ditto.
161500        * WebCore.xcodeproj/project.pbxproj: Ditto.
161501        (WebCore):
161502        * css/CSSComputedStyleDeclaration.cpp:
161503        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Modifying code to use
161504        ExclusionShapeValue* rather than the previous BasicShape* values.
161505        * css/CSSParser.cpp:
161506        (WebCore::CSSParser::parseValue): Handle the outside-shape value.
161507        * css/CSSValueKeywords.in: Adding outside-shape value.
161508        * css/StyleBuilder.cpp:
161509        (WebCore):
161510        (WebCore::ApplyPropertyExclusionShape::setValue): Modify code to use
161511        ExclusionShapeValue* rather than BasicShape*.
161512        (WebCore::ApplyPropertyExclusionShape::applyValue): Ditto.
161513        (WebCore::ApplyPropertyExclusionShape::createHandler): Ditto.
161514        * page/animation/CSSPropertyAnimation.cpp: Ditto.
161515        (WebCore::blendFunc): Ditto.
161516        (WebCore::PropertyWrapperExclusionShape::PropertyWrapperExclusionShape): Ditto.
161517        (WebCore::CSSPropertyAnimation::ensurePropertyMap): Ditto.
161518        * rendering/ExclusionShapeInsideInfo.cpp:
161519        (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
161520        Ditto.
161521        (WebCore::ExclusionShapeInsideInfo::computeShapeSize): Ditto.
161522        * rendering/RenderBlock.cpp:
161523        (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange): Ditto.
161524        * rendering/RenderBlock.h:
161525        (RenderBlock):
161526        * rendering/style/ExclusionShapeValue.h: Added.
161527        (WebCore):
161528        (ExclusionShapeValue): New type to represent the possible values of shape-inside
161529        and shape-outside. Only shape-inside can have a value of 'outside-shape.'
161530        (WebCore::ExclusionShapeValue::~ExclusionShapeValue):
161531        (WebCore::ExclusionShapeValue::type): Returns the value type.
161532        (WebCore::ExclusionShapeValue::shape): Returns <shape> value's BasicShape*.
161533        (WebCore::ExclusionShapeValue::operator==):
161534        (WebCore::ExclusionShapeInfo::createShapeValue):
161535        (WebCore::ExclusionShapeInfo::createOutsideValue):
161536        (WebCore::ExclusionShapeValue::ExclusionShapeValue):
161537        * rendering/style/RenderStyle.h:
161538        * rendering/style/StyleRareNonInheritedData.h:
161539        (StyleRareNonInheritedData):
161540
1615412012-11-20  Alpha Lam  <hclam@chromium.org>
161542
161543        [chromium] Make lazy image decoding thread-safe
161544        https://bugs.webkit.org/show_bug.cgi?id=102721
161545
161546        Reviewed by Stephen White.
161547
161548        Added mutex to LazyDecodingPixelRef such that there is no parallel
161549        onLockPixels() running on multiple threads.
161550
161551        Added mutex to ImageFrameGenerator to protect the use of raw image
161552        data.
161553
161554        The result is that we can decode on threads other than the main
161555        thread while data is being supplied on the main thread.
161556
161557        New unit test:
161558        DeferredImageDecoderTest.decodeOnOtherThread
161559
161560        * platform/graphics/chromium/ImageFrameGenerator.cpp:
161561        (WebCore::ImageFrameGenerator::setData):
161562        (WebCore::ImageFrameGenerator::decodeAndScale):
161563        * platform/graphics/chromium/ImageFrameGenerator.h:
161564        (ImageFrameGenerator):
161565        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
161566        (WebCore::LazyDecodingPixelRef::onLockPixels):
161567        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
161568        * platform/graphics/chromium/LazyDecodingPixelRef.h:
161569        (LazyDecodingPixelRef):
161570
1615712012-11-20  Brent Fulgham  <bfulgham@webkit.org>
161572
161573        [Qt] Build fix after r135217.
161574        https://bugs.webkit.org/show_bug.cgi?id=102787
161575
161576        * platform/win/WindowsExtras.h: Add #undef of NOSHLWAPI to
161577        allow include of <ObjBase.h> needed by Qt build.
161578
1615792012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
161580
161581        Unreviewed, rolling out r135295.
161582        http://trac.webkit.org/changeset/135295
161583        https://bugs.webkit.org/show_bug.cgi?id=102834
161584
161585        This patch causes assertion to some layout tests on chromium
161586        (Requested by jianli on #webkit).
161587
161588        * CMakeLists.txt:
161589        * GNUmakefile.list.am:
161590        * Target.pri:
161591        * WebCore.exp.in:
161592        * WebCore.gypi:
161593        * WebCore.vcproj/WebCore.vcproj:
161594        * WebCore.xcodeproj/project.pbxproj:
161595        * loader/FrameLoadRequest.cpp: Removed.
161596        * loader/FrameLoadRequest.h:
161597        (WebCore::FrameLoadRequest::FrameLoadRequest):
161598        (FrameLoadRequest):
161599        * loader/FrameLoader.cpp:
161600        (WebCore::FrameLoader::load):
161601        * loader/FrameLoader.h:
161602        (FrameLoader):
161603        * page/DragController.cpp:
161604        (WebCore::DragController::performDrag):
161605        * plugins/PluginView.cpp:
161606        (WebCore::PluginView::performRequest):
161607
1616082012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
161609
161610        Unreviewed, rolling out r135293.
161611        http://trac.webkit.org/changeset/135293
161612        https://bugs.webkit.org/show_bug.cgi?id=102832
161613
161614        This patch causes crash to some layout tests on chromium
161615        (Requested by jianli on #webkit).
161616
161617        * bindings/v8/DOMDataStore.cpp:
161618        (WebCore::DOMDataStore::current):
161619        * bindings/v8/DOMWrapperWorld.cpp:
161620        * bindings/v8/DOMWrapperWorld.h:
161621        * bindings/v8/ScriptController.cpp:
161622        (WebCore::ScriptController::existingWindowShell):
161623        (WebCore::ScriptController::windowShell):
161624        (WebCore::ScriptController::evaluateInIsolatedWorld):
161625        (WebCore::ScriptController::currentWorldContext):
161626        (WebCore::ScriptController::collectIsolatedContexts):
161627        * bindings/v8/ScriptController.h:
161628        (ScriptController):
161629        * bindings/v8/V8Binding.h:
161630        (WebCore::worldForEnteredContextIfIsolated):
161631        * bindings/v8/V8DOMWindowShell.cpp:
161632        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
161633        (WebCore):
161634        (WebCore::isolatedContextWeakCallback):
161635        (WebCore::V8DOMWindowShell::disposeContext):
161636        (WebCore::V8DOMWindowShell::initializeIfNeeded):
161637        * bindings/v8/V8DOMWindowShell.h:
161638        (WebCore::V8DOMWindowShell::isolated):
161639        (V8DOMWindowShell):
161640        * bindings/v8/V8PerContextData.h:
161641        * bindings/v8/WorldContextHandle.cpp:
161642        (WebCore::WorldContextHandle::WorldContextHandle):
161643
1616442012-11-20  David Grogan  <dgrogan@chromium.org>
161645
161646        IndexedDB: Remove legacy enum-based constants from IDL
161647        https://bugs.webkit.org/show_bug.cgi?id=85315
161648
161649        Reviewed by Adam Barth.
161650
161651        These were only present in an earlier working draft of the spec and have
161652        been removed for 8 months. See
161653        http://lists.w3.org/Archives/Public/public-webapps/2012JanMar/0957.html
161654
161655        Tests - legacy-constants.html
161656
161657        * Modules/indexeddb/IDBCursor.cpp:
161658        (WebCore::IDBCursor::stringToDirection):
161659        * Modules/indexeddb/IDBCursor.idl:
161660        * Modules/indexeddb/IDBTransaction.cpp:
161661        (WebCore::IDBTransaction::stringToMode):
161662        * Modules/indexeddb/IDBTransaction.idl:
161663
1616642012-11-20  Elliott Sprehn  <esprehn@chromium.org>
161665
161666        Store MutationObserver callback in a hidden property for V8
161667        https://bugs.webkit.org/show_bug.cgi?id=102555
161668
161669        Reviewed by Adam Barth.
161670
161671        To prevent circular reference leaks we should store the MutationObserver
161672        callback in a hidden property on the wrapper of the observer.
161673
161674        This is done by extending the code generator to support a new owner
161675        argument to ::create() that lets you set the owner of the callback where
161676        the hidden property should be stored.
161677
161678        Test: ManualTests/leak-cycle-observer-wrapper.html
161679
161680        * bindings/scripts/CodeGeneratorV8.pm:
161681        (GenerateCallbackHeader):
161682        (GenerateCallbackImplementation):
161683        * bindings/scripts/test/V8/V8TestCallback.cpp: rebaselined.
161684        * bindings/scripts/test/V8/V8TestCallback.h: rebaselined.
161685        * bindings/v8/V8HiddenPropertyName.h:
161686        * bindings/v8/custom/V8MutationObserverCustom.cpp:
161687        (WebCore::V8MutationObserver::constructorCallback):
161688
1616892012-11-20  Abhishek Arya  <inferno@chromium.org>
161690
161691        Crash in FrameLoader::stopLoading.
161692        https://bugs.webkit.org/show_bug.cgi?id=99504
161693
161694        Reviewed by Nate Chapin.
161695
161696        Frame can be blown away in unload event handler. Need
161697        to protect it with a RefPtr.
161698
161699        Test: fast/frames/frame-unload-crash2.html
161700
161701        * loader/FrameLoader.cpp:
161702        (WebCore::FrameLoader::commitProvisionalLoad):
161703
1617042012-11-20  Dirk Schulze  <krit@webkit.org>
161705
161706        Remove unnecessary FilterOperations header from RenderBoxModelObject
161707        https://bugs.webkit.org/show_bug.cgi?id=102821
161708
161709        Reviewed by Ojan Vafai.
161710
161711        No new tests, simple refactoring.
161712
161713        * rendering/RenderBoxModelObject.cpp:
161714
1617152012-11-20  Tom Sepez  <tsepez@chromium.org>
161716
161717        XSSAuditor::decodedSnippetForJavaScript stopping when comma encountered.
161718        https://bugs.webkit.org/show_bug.cgi?id=102587
161719
161720        Reviewed by Adam Barth.
161721
161722        Rather than returning an empty fragment, continue processing the body
161723        of a script tag when the decoded fragment reduces to nothing.
161724
161725        Test: http/tests/security/xssAuditor/script-tag-with-actual-comma.html
161726
161727        * html/parser/XSSAuditor.cpp:
161728        (WebCore::XSSAuditor::decodedSnippetForJavaScript):
161729
1617302012-11-20  James Simonsen  <simonjam@chromium.org>
161731
161732        Consolidate FrameLoader::load() into one function taking a FrameLoadRequest
161733        https://bugs.webkit.org/show_bug.cgi?id=102151
161734
161735        Reviewed by Adam Barth.
161736
161737        There's a FIXME that we have too many FrameLoader::load*() functions. This patch consolidates 3 into 1.
161738        There are still a few more load functions that will be consolidated later. Using FrameLoadRequest as
161739        the interface into FrameLoader will also provide a place to pass in the initiator. Finally, this matches
161740        the refactoring done with CachedResourceRequest and CachedResourceLoader.
161741
161742        No new tests. No change in functionality.
161743
161744        * WebCore.exp.in:
161745        * loader/FrameLoadRequest.h:
161746        (WebCore::FrameLoadRequest::FrameLoadRequest):
161747        (WebCore::FrameLoadRequest::setLockHistory): These are former arguments to load().
161748        (WebCore::FrameLoadRequest::lockHistory): Ditto.
161749        (FrameLoadRequest):
161750        (WebCore::FrameLoadRequest::setShouldCheckNewWindowPolicy): Ditto.
161751        (WebCore::FrameLoadRequest::shouldCheckNewWindowPolicy): Ditto.
161752        (WebCore::FrameLoadRequest::substituteData): Ditto.
161753        (WebCore::FrameLoadRequest::setSubstituteData): Ditto.
161754        (WebCore::FrameLoadRequest::hasSubstituteData): Ditto.
161755        * loader/FrameLoader.cpp:
161756        (WebCore::FrameLoader::load): No change in behavior, just merged it all into one function.
161757        * loader/FrameLoader.h:
161758        (FrameLoader):
161759        * page/DragController.cpp:
161760        (WebCore::DragController::performDrag):
161761
1617622012-11-20  Dan Carney  <dcarney@google.com>
161763
161764        Remove V8DOMWindowShell::getEntered
161765        https://bugs.webkit.org/show_bug.cgi?id=96637
161766
161767        Reviewed by Adam Barth.
161768
161769        V8DOMWindowShell::getEntered was refactored so that the window shell
161770        no longer has to be kept alive by a v8 context. Instead, only
161771        the DOMWrapperWorld will be kept alive.
161772
161773        No new tests. No change in functionality.
161774
161775        * bindings/v8/DOMDataStore.cpp:
161776        (WebCore::DOMDataStore::current):
161777        * bindings/v8/DOMWrapperWorld.cpp:
161778        (WebCore::isolatedWorldWeakCallback):
161779        (WebCore):
161780        (WebCore::DOMWrapperWorld::makeContextWeak):
161781        (WebCore::DOMWrapperWorld::setIsolatedWorldField):
161782        * bindings/v8/DOMWrapperWorld.h:
161783        (DOMWrapperWorld):
161784        (WebCore::DOMWrapperWorld::isolated):
161785        * bindings/v8/ScriptController.cpp:
161786        (WebCore::ScriptController::existingWindowShell):
161787        (WebCore::ScriptController::windowShell):
161788        (WebCore::ScriptController::evaluateInIsolatedWorld):
161789        (WebCore::ScriptController::currentWorldContext):
161790        (WebCore::ScriptController::collectIsolatedContexts):
161791        * bindings/v8/ScriptController.h:
161792        (ScriptController):
161793        * bindings/v8/V8Binding.h:
161794        (WebCore::worldForEnteredContextIfIsolated):
161795        * bindings/v8/V8DOMWindowShell.cpp:
161796        (WebCore::V8DOMWindowShell::destroyIsolatedShell):
161797        (WebCore::V8DOMWindowShell::disposeContext):
161798        (WebCore::V8DOMWindowShell::initializeIfNeeded):
161799        * bindings/v8/V8DOMWindowShell.h:
161800        (V8DOMWindowShell):
161801        * bindings/v8/V8PerContextData.h:
161802        * bindings/v8/WorldContextHandle.cpp:
161803        (WebCore::WorldContextHandle::WorldContextHandle):
161804
1618052012-11-20  Mike West  <mkwst@chromium.org>
161806
161807        Remove '#include "ScriptCallStackFactory.h"' include when unnecessary.
161808        https://bugs.webkit.org/show_bug.cgi?id=102812
161809
161810        Reviewed by Jochen Eisinger.
161811
161812        "ScriptCallStackFactory.h" is included in a few files where it doesn't
161813        seem to be required. Since I'm in the process of centralizing stack
161814        trace generation anyway, I'll just clean this up as a drive-by.
161815
161816        * bindings/js/JSConsoleCustom.cpp:
161817        * bindings/v8/custom/V8DOMWindowCustom.cpp:
161818        * bindings/v8/custom/V8WorkerContextCustom.cpp:
161819        * loader/FrameLoader.cpp:
161820            Removed "ScriptCallStackFactory.h".
161821        * bindings/js/ScheduledAction.cpp:
161822            This also included (but didn't use) "ScriptCallStack.h". I've
161823            removed it as well.
161824
1618252012-11-20  Elliott Sprehn  <esprehn@chromium.org>
161826
161827        Merge checks for creating renderers into shouldCreateRenderer
161828        https://bugs.webkit.org/show_bug.cgi?id=102768
161829
161830        Reviewed by Ojan Vafai.
161831
161832        Merge the checks for if renderers should be created into shouldCreateRenderer
161833        so simplify the code and ensure correctness if doing
161834        NodeRenderingContext(node).shouldCreateRenderer() in other places in webkit.
161835
161836        No new tests, just refactoring.
161837
161838        * dom/NodeRenderingContext.cpp:
161839        (WebCore::NodeRenderingContext::shouldCreateRenderer):
161840        (WebCore::NodeRendererFactory::createRendererIfNeeded):
161841
1618422012-11-19  Pavel Feldman  <pfeldman@chromium.org>
161843
161844        Web Inspector: simplify? damaged region computation in the editor
161845        https://bugs.webkit.org/show_bug.cgi?id=102688
161846
161847        Reviewed by Vsevolod Vlasov.
161848
161849        This change simplifies the damaged region computation. Drive-by make _getSelection work properly.
161850
161851        * inspector/front-end/DefaultTextEditor.js:
161852        (WebInspector.DefaultTextEditor):
161853        (WebInspector.DefaultTextEditor.prototype._handleCut):
161854        (WebInspector.TextEditorChunkedPanel.prototype._findFirstVisibleLineNumber.compareLineRowOffsetTops):
161855        (WebInspector.TextEditorChunkedPanel.prototype._findFirstVisibleLineNumber):
161856        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
161857        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
161858        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
161859        (WebInspector.TextEditorMainPanel.prototype._getSelection):
161860        (WebInspector.TextEditorMainPanel.prototype._restoreSelection):
161861        (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
161862        (WebInspector.TextEditorMainPanel.prototype._positionToSelection):
161863        (WebInspector.TextEditorMainPanel.prototype._handleMutations):
161864        (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
161865        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
161866        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
161867        (WebInspector.TextEditorMainPanel.prototype._assertDOMMatchesTextModel):
161868        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
161869        (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDOM):
161870        (WebInspector.TextEditorMainChunk):
161871        (WebInspector.TextEditorMainChunk.prototype.addDecoration):
161872        (WebInspector.TextEditorMainChunk.prototype.get endLine):
161873        (WebInspector.TextEditorMainChunk.prototype.lineRowContainingLine):
161874        (WebInspector.TextEditorMainChunk.prototype.expandedLineRow):
161875
1618762012-11-19  Erik Arvidsson  <arv@chromium.org>
161877
161878        Remove historical enums from ExceptionCode.h
161879        https://bugs.webkit.org/show_bug.cgi?id=102095
161880
161881        Reviewed by Ojan Vafai.
161882
161883        Remove unused enums from ExceptionCode.
161884
161885        No new tests. No tests affected.
161886
161887        * Modules/intents/NavigatorIntents.cpp:
161888        (WebCore::NavigatorIntents::webkitStartActivity): The error type for this is unspecified.
161889        * dom/DOMCoreException.cpp:
161890        * dom/ExceptionCode.h:
161891
1618922012-11-20  Keishi Hattori  <keishi@webkit.org>
161893
161894        Week picker width is too small
161895        https://bugs.webkit.org/show_bug.cgi?id=102766
161896
161897        Reviewed by Kent Tamura.
161898
161899        The width of week picker was too small because we were forgetting about
161900        the week number column when calculating the desired width.
161901
161902        No new tests. Covered by week-picker-appearance*.html.
161903
161904        * Resources/pagepopups/calendarPicker.css:
161905        (.week-mode .week-column): Needs to be table-cell.
161906        * Resources/pagepopups/calendarPicker.js:
161907        (CalendarPicker.prototype.fixWindowSize):
161908
1619092012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
161910
161911        [GTK] no volume slider in HTML5 media element controls
161912        https://bugs.webkit.org/show_bug.cgi?id=97192
161913
161914        Reviewed by Philippe Normand.
161915
161916        r115829 was causing this regression so it was partially
161917        reverted. The revert causes some small regressions, in the tests
161918        but it is better to have the volume slider shown.
161919
161920        * css/mediaControlsGtk.css:
161921        (audio::-webkit-media-controls-panel)
161922        (video::-webkit-media-controls-panel): Partially reverted
161923        r115829.
161924
1619252012-11-19  Antti Koivisto  <antti@apple.com>
161926
161927        Collect user style sheets in DocumentStyleSheetCollection
161928        https://bugs.webkit.org/show_bug.cgi?id=102683
161929
161930        Reviewed by Andreas Kling.
161931
161932        Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
161933        
161934        * css/StyleResolver.cpp:
161935        (WebCore::StyleResolver::StyleResolver):
161936        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
161937        (WebCore::collectCSSOMWrappers):
161938        * css/StyleResolver.h:
161939        (StyleResolver):
161940        * dom/DocumentStyleSheetCollection.cpp:
161941        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
161942        (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
161943        (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
161944        (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
161945        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
161946        (WebCore::collectActiveStyleSheetsFromSeamlessParents):
161947        (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
161948        
161949            Factor the StyleResolver updating code to function.
161950
161951        (WebCore):
161952        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
161953        
161954            Collect the user style sheets. Some renaming and other minor refactoring.
161955
161956        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
161957        * dom/DocumentStyleSheetCollection.h:
161958        (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
161959        
161960            Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
161961            similar to activeAuthorStyleSheets.
161962
161963        (DocumentStyleSheetCollection):
161964        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
161965
1619662012-11-20  Elliott Sprehn  <esprehn@chromium.org>
161967
161968        Remove unneeded optimization in Element::isInTopLayer
161969        https://bugs.webkit.org/show_bug.cgi?id=102772
161970
161971        Reviewed by Andreas Kling.
161972
161973        There's no reason to worry about calling elementRareData() multiple
161974        times in this non performance sensitive code path as it's only used
161975        in HTMLDialogElement's showModal and close methods.
161976
161977        No new tests, just simplification.
161978
161979        * dom/Element.cpp:
161980        (WebCore::Element::setIsInTopLayer):
161981
1619822012-11-20  Elliott Sprehn  <esprehn@chromium.org>
161983
161984        Simplify Element::isSpellCheckingEnabled
161985        https://bugs.webkit.org/show_bug.cgi?id=102779
161986
161987        Reviewed by Andreas Kling.
161988
161989        isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
161990        and can be simplified by just calling that.
161991
161992        No new tests, just simplification.
161993
161994        * dom/Element.cpp:
161995        (WebCore::Element::isSpellCheckingEnabled):
161996
1619972012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
161998
161999        Apply DeviceController as parent class of DeviceMotionController.
162000        https://bugs.webkit.org/show_bug.cgi?id=102578
162001
162002        Reviewed by Hajime Morita.
162003
162004        DeviceController needs to be applied as parent class of DeviceMotionController
162005        because DeviceController which is extracted as parent class of
162006        DeviceMotionController and DeviceOrientationController is already added.
162007        Therefore duplicated implementation can be removed.
162008
162009        Covered by existing tests.
162010
162011        * dom/DeviceMotionClient.h:
162012        * dom/DeviceMotionController.cpp:
162013        (WebCore::DeviceMotionController::DeviceMotionController):
162014        (WebCore::DeviceMotionController::didChangeDeviceMotion):
162015        (WebCore::DeviceMotionController::deviceMotionClient):
162016        (WebCore::DeviceMotionController::hasLastData):
162017        (WebCore::DeviceMotionController::getLastEvent):
162018        (WebCore::DeviceMotionController::from):
162019        (WebCore):
162020        * dom/DeviceMotionController.h:
162021        (WebCore):
162022        (WebCore::DeviceMotionController::~DeviceMotionController):
162023        (DeviceMotionController):
162024        * dom/Document.cpp:
162025        Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
162026        Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
162027        (WebCore::Document::suspendActiveDOMObjects):
162028        (WebCore::Document::resumeActiveDOMObjects):
162029        * loader/EmptyClients.h:
162030        * page/DOMWindow.cpp:
162031        (WebCore::DOMWindow::addEventListener):
162032        (WebCore::DOMWindow::removeEventListener):
162033        (WebCore::DOMWindow::removeAllEventListeners):
162034
1620352012-11-20  Kentaro Hara  <haraken@chromium.org>
162036
162037        [V8] Remove V8ParameterBase
162038        https://bugs.webkit.org/show_bug.cgi?id=102774
162039
162040        Reviewed by Adam Barth.
162041
162042        V8ParameterBase is a redundant indirection.
162043        We can flatten methods of V8ParameterBase to V8Parameter.
162044
162045        No tests. No change in behavior.
162046
162047        * bindings/v8/V8StringResource.h:
162048        (WebCore::V8Parameter::V8Parameter):
162049        (V8Parameter):
162050        (WebCore::V8Parameter::toString):
162051        (WebCore::::prepare):
162052
1620532012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
162054
162055        Use localized date-time format in datetime input
162056        https://bugs.webkit.org/show_bug.cgi?id=102769
162057
162058        Reviewed by Kent Tamura.
162059
162060        Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
162061        to its subclasses and use platform-specific methods to get date-time pattern.
162062        Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
162063        pattern for Windows.
162064
162065        Test: fast/forms/datetime/datetime-appearance-l10n.html
162066
162067        * platform/text/LocaleICU.cpp:
162068        (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
162069        (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
162070        (WebCore):
162071        (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
162072        * platform/text/LocaleICU.h:
162073        (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
162074        * platform/text/LocaleNone.cpp:
162075        (LocaleNone):
162076        (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
162077        (WebCore):
162078        (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
162079        * platform/text/PlatformLocale.cpp:
162080        (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
162081        * platform/text/PlatformLocale.h:
162082        (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
162083        * platform/text/mac/LocaleMac.h:
162084        (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
162085        * platform/text/mac/LocaleMac.mm:
162086        (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
162087        (WebCore):
162088        (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
162089        (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
162090        (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
162091        * platform/text/win/LocaleWin.cpp:
162092        (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
162093        (WebCore):
162094        (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
162095        * platform/text/win/LocaleWin.h:
162096        (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
162097
1620982012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
162099
162100        Unreviewed, rolling out r135257.
162101        http://trac.webkit.org/changeset/135257
162102        https://bugs.webkit.org/show_bug.cgi?id=102777
162103
162104        Broke Chromium Debug compilation (Requested by yurys on
162105        #webkit).
162106
162107        * bindings/v8/DOMDataStore.h:
162108        (WebCore::DOMDataStore::getNode):
162109
1621102012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
162111
162112        Web Inspector: Revert r133149: breaks revision reverting
162113        https://bugs.webkit.org/show_bug.cgi?id=102672
162114
162115        Reviewed by Yury Semikhatsky.
162116
162117        * inspector/front-end/JavaScriptSourceFrame.js:
162118        (WebInspector.JavaScriptSourceFrame):
162119        (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
162120        (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
162121        (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
162122
1621232012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
162124
162125        [Qt][Win] Unreviewed speculative buildfix after r135217.
162126
162127        * platform/win/WindowsExtras.h:
162128
1621292012-11-19  Yury Semikhatsky  <yurys@chromium.org>
162130
162131        Unreviewed. Fix Chromium Win compilation after r135255.
162132        https://bugs.webkit.org/show_bug.cgi?id=97803
162133
162134        * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
162135        was deleted in the aforementioned change.
162136
1621372012-11-19  Kentaro Hara  <haraken@chromium.org>
162138
162139        [V8] Merge getCachedWrapper(Node*) into DOMDataStore
162140        https://bugs.webkit.org/show_bug.cgi?id=102158
162141
162142         Reviewed by Adam Barth.
162143
162144        A follow-up patch for r135230. This patch adds a correct ASSERTION.
162145
162146        No tests. No change in behavior.
162147
162148        * bindings/v8/DOMDataStore.h:
162149        (WebCore::DOMDataStore::getNode):
162150
1621512012-11-19  Kentaro Hara  <haraken@chromium.org>
162152
162153        [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
162154        https://bugs.webkit.org/show_bug.cgi?id=102757
162155
162156        Reviewed by Adam Barth.
162157
162158        In CodeGeneratorJS.pm $implClassName and $interfaceName are
162159        equivalent. We're using them interchangeably. We should replace
162160        $implClassName with $interfaceName.
162161
162162        No tests. No change in behavior.
162163
162164        * bindings/scripts/CodeGeneratorJS.pm:
162165        (AddClassForwardIfNeeded):
162166        (GenerateGetOwnPropertySlotBody):
162167        (GenerateGetOwnPropertyDescriptorBody):
162168        (GenerateHeader):
162169        (GenerateOverloadedFunction):
162170        (GenerateImplementation):
162171        (GenerateParametersCheck):
162172        (GenerateImplementationFunctionCall):
162173        (NativeToJSValue):
162174
1621752012-11-19  Patrick Gansterer  <paroga@webkit.org>
162176
162177        Port DragDataWin.cpp to WinCE
162178        https://bugs.webkit.org/show_bug.cgi?id=97803
162179
162180        Reviewed by Brent Fulgham.
162181
162182        Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
162183
162184        * PlatformWinCE.cmake:
162185        * platform/win/DragDataWin.cpp:
162186        (WebCore::DragData::containsFiles):
162187        (WebCore::DragData::numberOfFiles):
162188        (WebCore::DragData::asFilenames):
162189        * platform/wince/DragDataWinCE.cpp: Removed.
162190
1621912012-11-19  Pan Deng  <pan.deng@intel.com>
162192
162193        [Web Inspector] This patch makes script line number search-able in Timeline panel.
162194        https://bugs.webkit.org/show_bug.cgi?id=101910.
162195
162196        Reviewed by Pavel Feldman.
162197
162198        Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
162199
162200        No new tests. 
162201
162202        * inspector/front-end/TimelinePanel.js:
162203        (WebInspector.TimelineRecordListRow.prototype.update):
162204        (WebInspector.TimelineRecordListRow.testContentMatching):
162205        * inspector/front-end/TimelinePresentationModel.js:
162206        (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
162207        (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
162208        (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
162209        (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
162210        (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
162211
1622122012-11-19  Elliott Sprehn  <esprehn@chromium.org>
162213
162214        Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
162215        https://bugs.webkit.org/show_bug.cgi?id=102765
162216
162217        Reviewed by Ojan Vafai.
162218
162219        If parentRenderer() was null then we return early from
162220        createRendererIfNeeded() because shouldCreateRenderer() will return false
162221        so there's no reason to check for it again.
162222
162223        Additionally if either parentRenderer() or style() is null then
162224        implementations of rendererIsNeeded() will crash, so add asserts to
162225        make this assumption more clear.
162226
162227        No new tests, just simplification.
162228
162229        * dom/NodeRenderingContext.cpp:
162230        (WebCore::NodeRendererFactory::createRendererIfNeeded):
162231
1622322012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
162233
162234        [Refactoring] Remove WebCore::isInsertionPoint(Node*)
162235        https://bugs.webkit.org/show_bug.cgi?id=102756
162236
162237        Reviewed by Hajime Morita.
162238
162239        Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
162240
162241        No new tests, simple refactoring.
162242
162243        * dom/ComposedShadowTreeWalker.cpp:
162244        (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
162245        * dom/ContainerNode.cpp:
162246        (WebCore::childAttachedAllowedWhenAttachingChildren):
162247        * html/shadow/ContentDistributor.cpp:
162248        (WebCore::ContentDistributor::invalidate):
162249        * html/shadow/InsertionPoint.cpp:
162250        (WebCore::InsertionPoint::isActive):
162251        * html/shadow/InsertionPoint.h:
162252        (WebCore::toInsertionPoint):
162253        (WebCore::isActiveInsertionPoint):
162254        (WebCore::isLowerEncapsulationBoundary):
162255        (WebCore::parentNodeForDistribution):
162256        * testing/Internals.cpp:
162257        (WebCore::Internals::isValidContentSelect):
162258
1622592012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
162260
162261        [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
162262        https://bugs.webkit.org/show_bug.cgi?id=101703
162263
162264        Reviewed by Hajime Morita.
162265
162266        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
162267        setPseudo()/pseudo() instead.
162268
162269        No new tests, simple refactoring.
162270
162271        * html/shadow/ProgressShadowElement.cpp:
162272        (WebCore::ProgressInnerElement::ProgressInnerElement):
162273        * html/shadow/ProgressShadowElement.h:
162274        (ProgressInnerElement):
162275        (WebCore::ProgressBarElement::ProgressBarElement):
162276        (ProgressBarElement):
162277        (WebCore::ProgressValueElement::ProgressValueElement):
162278
1622792012-11-19  Yury Semikhatsky  <yurys@chromium.org>
162280
162281        Unreviewed. Fix Chromium Debug compilation after r135230.
162282        https://bugs.webkit.org/show_bug.cgi?id=102158
162283
162284        Removed ASSERT that used instance field in a static method.
162285
162286        * bindings/v8/DOMDataStore.h:
162287        (WebCore::DOMDataStore::getWrapperFromObject):
162288
1622892012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
162290
162291        [Blackberry] When a frame is being detached, cancel all its network jobs.
162292        https://bugs.webkit.org/show_bug.cgi?id=102758
162293
162294        Reviewed by George Staikos.
162295
162296        I use FrameDestructionObserver to refactor Networkjob code.
162297        NetworkJob is inheriting from FrameDestructionObserver to be
162298        aware of frame's destroyed. When a frame is being detached,
162299        the willDetachPage() can be called in which we can cancel 
162300        the job. This patch reverted the fix for RIM PR134207 as well.
162301
162302        Manually test is on 
162303        "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
162304        which triggers a ping loader.
162305
162306        No behavior changed, no new layout tests.
162307
162308        * platform/network/blackberry/NetworkJob.cpp:
162309        (WebCore::NetworkJob::NetworkJob):
162310        (WebCore::NetworkJob::initialize):
162311        (WebCore::NetworkJob::handleNotifyHeaderReceived):
162312        (WebCore::NetworkJob::startNewJobWithRequest):
162313        (WebCore::NetworkJob::frameDestroyed):
162314        (WebCore):
162315        (WebCore::NetworkJob::willDetachPage):
162316        * platform/network/blackberry/NetworkJob.h:
162317        (NetworkJob):
162318        * platform/network/blackberry/NetworkManager.cpp:
162319        (WebCore::NetworkManager::startJob):
162320        * platform/network/blackberry/NetworkManager.h:
162321        (NetworkManager):
162322        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
162323        (WebCore::ResourceHandle::start):
162324        (WebCore::ResourceHandle::loadResourceSynchronously):
162325
1623262012-11-19  Matt Falkenhagen  <falken@chromium.org>
162327
162328        Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
162329        https://bugs.webkit.org/show_bug.cgi?id=84796
162330
162331        Reviewed by Julien Chaffraix.
162332
162333        This adds the top layer element stack to Document. The Fullscreen
162334        specification mandates that we track the ordering of the DOM nodes in
162335        the top layer, not the renderers. That makes it hard to implement on
162336        the rendering side only.
162337
162338        Elements in the top layer get a layer. Layers in the top layer are
162339        added to the root layer's child list after normal layers and in the
162340        order of the top layer stack. This way, the top layer appears above
162341        all other stacking contexts and in the desired order.
162342
162343        In addition, top layer renderers are added as children of RenderView
162344        in top layer order. This is to satisfy requirements such as the
162345        containing block of an element in the top layer is the initial
162346        containing block. It also allows RenderLayer to know the proper
162347        stacking order of the layers without going directly from the top layer
162348        elements to their layers.
162349
162350        So far, only modal dialog elements can be added to the top layer.
162351        The plan is to make the Fullscreen API also use the top layer.
162352
162353        Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
162354               fast/dom/HTMLDialogElement/top-layer-display-none.html
162355               fast/dom/HTMLDialogElement/top-layer-nesting.html
162356               fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
162357               fast/dom/HTMLDialogElement/top-layer-stacking.html
162358
162359        * WebCore.exp.in:
162360        * css/StyleResolver.cpp:
162361        (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
162362        * dom/Document.cpp:
162363        (WebCore):
162364        (WebCore::Document::addToTopLayer):
162365        (WebCore::Document::removeFromTopLayer):
162366        * dom/Document.h:
162367        (Document):
162368        (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
162369        * dom/Element.cpp:
162370        (WebCore::Element::removedFrom):
162371        (WebCore):
162372        (WebCore::Element::isInTopLayer):
162373        (WebCore::Element::setIsInTopLayer):
162374        * dom/Element.h:
162375        * dom/ElementRareData.h:
162376        (ElementRareData):
162377        * dom/Node.cpp:
162378        (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
162379        regular position in the render tree.
162380        * dom/NodeRareData.h:
162381        (WebCore::NodeRareData::NodeRareData):
162382        (NodeRareData):
162383        (WebCore::NodeRareData::isInTopLayer):
162384        (WebCore::NodeRareData::setIsInTopLayer):
162385        * dom/NodeRenderingContext.cpp:
162386        (WebCore):
162387        (WebCore::adjustInsertionPointForTopLayerElement):
162388        (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
162389        in top layer stacking order.
162390        * html/HTMLDialogElement.cpp:
162391        (WebCore::HTMLDialogElement::close):
162392        (WebCore::HTMLDialogElement::showModal):
162393        * rendering/RenderLayer.cpp:
162394        (WebCore):
162395        (WebCore::RenderLayer::isInTopLayer):
162396        (WebCore::RenderLayer::isInTopLayerSubtree):
162397        (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
162398        (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
162399        * rendering/RenderLayer.h:
162400        (RenderLayer):
162401
1624022012-11-19  Kentaro Hara  <haraken@chromium.org>
162403
162404        In CodeGeneratorObj.pm we should rename $dataNode to $interface.
162405        https://bugs.webkit.org/show_bug.cgi?id=102749
162406
162407        Reviewed by Adam Barth.
162408
162409        $dataNode is misnamed. It should be renamed to $interface.
162410
162411        No tests. No change in behavior.
162412
162413        * bindings/scripts/CodeGeneratorObjC.pm:
162414        (GenerateInterface):
162415        (GetParentImplClassName):
162416        (GetParentAndProtocols):
162417        (GenerateHeader):
162418        (GenerateImplementation):
162419
1624202012-11-19  Kentaro Hara  <haraken@chromium.org>
162421
162422        In CodeGeneratorV8.pm, we should rename $dataNode to $interface
162423        https://bugs.webkit.org/show_bug.cgi?id=102747
162424
162425        Reviewed by Adam Barth.
162426
162427        $dataNode is misnamed. It should be $interface.
162428
162429        No tests. No change in behavior.
162430
162431        * bindings/scripts/CodeGeneratorV8.pm:
162432        (GenerateInterface):
162433        (NeedsCustomOpaqueRootForGC):
162434        (GetGenerateIsReachable):
162435        (GetCustomIsReachable):
162436        (GenerateOpaqueRootForGC):
162437        (GenerateHeader):
162438        (GetInternalFields):
162439        (GenerateHeaderCustomInternalFieldIndices):
162440        (GenerateHeaderNamedAndIndexedPropertyAccessors):
162441        (GenerateHeaderCustomCall):
162442        (IsConstructable):
162443        (GenerateConstructorGetter):
162444        (GenerateNormalAttrGetter):
162445        (GenerateReplaceableAttrSetter):
162446        (GenerateNormalAttrSetter):
162447        (GenerateOverloadedFunctionCallback):
162448        (GenerateFunctionCallback):
162449        (GenerateArgumentsCountCheck):
162450        (GenerateOverloadedConstructorCallback):
162451        (GenerateSingleConstructorCallback):
162452        (GenerateConstructorCallback):
162453        (GenerateEventConstructorCallback):
162454        (GenerateTypedArrayConstructorCallback):
162455        (GenerateNamedConstructorCallback):
162456        (GenerateBatchedAttributeData):
162457        (IsStandardFunction):
162458        (GenerateNonStandardFunction):
162459        (GenerateImplementationIndexer):
162460        (GenerateImplementationNamedPropertyGetter):
162461        (GenerateImplementationCustomCall):
162462        (GenerateImplementationMasqueradesAsUndefined):
162463        (GenerateImplementation):
162464        (GenerateHeaderContentHeader):
162465        (GenerateImplementationContentHeader):
162466        (GenerateCallbackHeader):
162467        (GenerateCallbackImplementation):
162468        (BaseInterfaceName):
162469        (GenerateToV8Converters):
162470        (GetNativeTypeForConversions):
162471        (GetTypeNameOfExternalTypedArray):
162472        (WriteData):
162473
1624742012-11-19  Keishi Hattori  <keishi@webkit.org>
162475
162476        Move in animation should be disabled until the calendar picker is loaded.
162477        https://bugs.webkit.org/show_bug.cgi?id=102661
162478
162479        Reviewed by Kent Tamura.
162480
162481        On weeks where the first day is in the previous month (e.x. 2013-W01)
162482        the move in animation happens when you open the calendar picker. This
162483        patch disables the move in animation until the calendar picker is fully
162484        loaded.
162485
162486        No new tests.
162487
162488        * Resources/pagepopups/calendarPicker.js:
162489        (CalendarPicker):
162490        (CalendarPicker.prototype._handleWindowResize):
162491        (DaysTable.prototype._startMoveInAnimation):
162492
1624932012-11-19  Elliott Sprehn  <esprehn@chromium.org>
162494
162495        Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
162496        https://bugs.webkit.org/show_bug.cgi?id=102743
162497
162498        Reviewed by Hajime Morita.
162499
162500        Clean up while (true) loops in NodeRenderingContext reducing the
162501        amount of code and the need for ASSERT_NOT_REACHED.
162502
162503        No new tests, just simplifcation.
162504
162505        * dom/NodeRenderingContext.cpp:
162506        (WebCore::NodeRenderingContext::nextRenderer):
162507        (WebCore::NodeRenderingContext::previousRenderer):
162508
1625092012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
162510
162511        [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
162512        https://bugs.webkit.org/show_bug.cgi?id=102753
162513
162514        Reviewed by Hajime Morita.
162515
162516        The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
162517        no value is set.
162518
162519        Test: fast/dom/shadow/pseudo-attribute.html
162520
162521        * dom/Element.idl:
162522
1625232012-11-19  Kentaro Hara  <haraken@chromium.org>
162524
162525        In CodeGeneratorGObject.pm we should rename $dataNode to $interface
162526        https://bugs.webkit.org/show_bug.cgi?id=102751
162527
162528        Reviewed by Adam Barth.
162529
162530        $dataNode is misnamed. It should be $interface.
162531
162532        No tests. No change in behavior.
162533
162534        * bindings/scripts/CodeGeneratorGObject.pm:
162535        (GetParentClassName):
162536        (GetParentGObjType):
162537        (GenerateProperties):
162538        (GenerateFunctions):
162539        (GenerateCFile):
162540        (GenerateEventTargetIface):
162541        (Generate):
162542        (WriteData):
162543        (GenerateInterface):
162544
1625452012-11-19  Kentaro Hara  <haraken@chromium.org>
162546
162547        In CodeGenerator.pm we should rename $dataNode to $interface
162548        https://bugs.webkit.org/show_bug.cgi?id=102754
162549
162550        Reviewed by Adam Barth.
162551
162552        $dataNode is misnamed. It should be $interface.
162553
162554        No tests. No change in behavior.
162555
162556        * bindings/scripts/CodeGenerator.pm:
162557        (ForAllParents):
162558        (AddMethodsConstantsAndAttributesFromParentInterfaces):
162559        (FindSuperMethod):
162560        (IsConstructorTemplate):
162561        (LinkOverloadedFunctions):
162562        (GenerateCompileTimeCheckForEnumsIfNeeded):
162563        (GetVisibleInterfaceName):
162564        (IsSubType):
162565
1625662012-11-19  Kentaro Hara  <haraken@chromium.org>
162567
162568        In CodeGeneratorCPP.pm we should rename $dataNode to $interface
162569        https://bugs.webkit.org/show_bug.cgi?id=102752
162570
162571        Reviewed by Adam Barth.
162572
162573        $dataNode is misnamed. It should be $interface.
162574
162575        No tests. No change in behavior.
162576
162577        * bindings/scripts/CodeGeneratorCPP.pm:
162578        (GenerateInterface):
162579        (GetParentImplClassName):
162580        (GetParent):
162581        (GenerateHeader):
162582        (GenerateImplementation):
162583
1625842012-11-19  Kentaro Hara  <haraken@chromium.org>
162585
162586        In CodeGeneratorJS.pm we should rename $dataNode to $interface
162587        https://bugs.webkit.org/show_bug.cgi?id=102748
162588
162589        Reviewed by Adam Barth.
162590
162591        $dataNode is misnamed. It should be $interface.
162592
162593        No tests. No change in behavior.
162594
162595        * bindings/scripts/CodeGeneratorJS.pm:
162596        (GenerateInterface):
162597        (GetParentClassName):
162598        (GetGenerateIsReachable):
162599        (GetCustomIsReachable):
162600        (GenerateGetOwnPropertySlotBody):
162601        (GenerateGetOwnPropertyDescriptorBody):
162602        (GenerateHeaderContentHeader):
162603        (GenerateImplementationContentHeader):
162604        (ShouldGenerateToJSDeclaration):
162605        (ShouldGenerateToJSImplementation):
162606        (GenerateHeader):
162607        (GenerateAttributesHashTable):
162608        (GenerateOverloadedFunction):
162609        (GenerateImplementation):
162610        (GenerateArgumentsCountCheck):
162611        (GenerateParametersCheck):
162612        (GenerateCallbackHeader):
162613        (GenerateCallbackImplementation):
162614        (WriteData):
162615        (GenerateConstructorDeclaration):
162616        (GenerateConstructorDefinition):
162617        (IsConstructable):
162618
1626192012-11-19  Adam Barth  <abarth@webkit.org>
162620
162621        [V8] Merge getCachedWrapper(Node*) into DOMDataStore
162622        https://bugs.webkit.org/show_bug.cgi?id=102158
162623
162624        Reviewed by Eric Seidel.
162625
162626        This patch is an incremental step towards fully merging the Node code
162627        path with the general code path. After this patch, at least Nodes flow
162628        through the same class.
162629
162630        * Modules/indexeddb/IDBTransactionCoordinator.h:
162631        * bindings/scripts/CodeGeneratorV8.pm:
162632        (GenerateHeader):
162633        (GenerateToV8Converters):
162634        * bindings/v8/DOMDataStore.h:
162635        (WebCore::DOMDataStore::getNode):
162636        (DOMDataStore):
162637        (WebCore::DOMDataStore::getWrapperFromObject):
162638        * bindings/v8/DOMWrapperWorld.cpp:
162639        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
162640        (WebCore):
162641        * bindings/v8/DOMWrapperWorld.h:
162642        (WebCore):
162643        (DOMWrapperWorld):
162644        * bindings/v8/V8DOMWrapper.h:
162645        (V8DOMWrapper):
162646
1626472012-11-19  Kentaro Hara  <haraken@chromium.org>
162648
162649        In the IDL parser, we should rename $dataNode to $interface
162650        https://bugs.webkit.org/show_bug.cgi?id=102746
162651
162652        Reviewed by Adam Barth.
162653
162654        $dataNode is misnamed. It should be $interface.
162655
162656        No tests. No change in behavior.
162657
162658        * bindings/scripts/IDLParser.pm:
162659        (parseInterface):
162660        (parseException):
162661        (parseAttributeOrOperationRest):
162662        (parseOperationOrIterator):
162663        (parseSpecialOperation):
162664        (parseInterfaceOld):
162665        (parseExceptionOld):
162666        (parseAttributeOrOperationOrIteratorOld):
162667        (parseAttributeOrOperationRestOld):
162668        (applyMemberList):
162669        (applyExtendedAttributeList):
162670        * bindings/scripts/generate-bindings.pl:
162671        * bindings/scripts/preprocess-idls.pl:
162672        (checkIDLAttributes):
162673
1626742012-11-19  Adam Klein  <adamk@chromium.org>
162675
162676        MutationObserver wrapper should not be collected while still observing
162677        https://bugs.webkit.org/show_bug.cgi?id=102328
162678
162679        Reviewed by Adam Barth.
162680
162681        Use the new opaqueRootForGC helper in V8GCController to put each
162682        MutationObserver wrapper in the same object group as the nodes it's
162683        observing.
162684
162685        Only includes V8 impl for now, JSC impl coming soon.
162686
162687        Tests: fast/mutation/observer-wrapper-dropoff-transient.html
162688               fast/mutation/observer-wrapper-dropoff.html
162689
162690        * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
162691        with a FIXME to move this out once we update the opaque roots API.
162692        * dom/MutationObserver.cpp:
162693        (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
162694        to the GC controller.
162695        (WebCore):
162696        * dom/MutationObserver.h:
162697        * dom/MutationObserverRegistration.cpp:
162698        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
162699        (WebCore):
162700        * dom/MutationObserverRegistration.h:
162701        (MutationObserverRegistration):
162702
1627032012-11-19  Tony Chang  <tony@chromium.org>
162704
162705        Move more non-settings out of InternalSettings
162706        https://bugs.webkit.org/show_bug.cgi?id=102711
162707
162708        Reviewed by Adam Barth.
162709
162710        Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
162711        from internal.settings since they are already exposed by window.internals (in
162712        fact, no one calls the internal.settings version).
162713
162714        Move setUsesOverlayScrollbars from internals.settings to internals because it is
162715        a global (static) setting and not tied to the lifetime of the Settings object.
162716
162717        No new tests, there should be no behavior change since this is a refactor.
162718
162719        * testing/InternalSettings.cpp:
162720        (WebCore::InternalSettings::reset): Remove custom reset code.
162721        (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
162722        * testing/InternalSettings.h:
162723        * testing/InternalSettings.idl: Remove unnecessary methods.
162724        * testing/Internals.cpp:
162725        (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
162726        (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
162727        (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
162728        (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
162729        (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
162730
1627312012-11-19  David Grogan  <dgrogan@chromium.org>
162732
162733        IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
162734        https://bugs.webkit.org/show_bug.cgi?id=101810
162735
162736        Reviewed by Tony Chang.
162737
162738        Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
162739
162740        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
162741        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
162742        The condition tested by this assert is a valid state.
162743
1627442012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
162745
162746        Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
162747        https://bugs.webkit.org/show_bug.cgi?id=102637
162748
162749        Reviewed by Timothy Hatcher.
162750
162751        Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
162752
162753        No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
162754        worker inspector window.
162755
162756        * bindings/js/ScriptDebugServer.cpp:
162757        (WebCore::ScriptDebugServer::createCallFrame):
162758        (WebCore::ScriptDebugServer::callEvent):
162759        (WebCore::ScriptDebugServer::willExecuteProgram):
162760        * bindings/js/ScriptDebugServer.h:
162761        (ScriptDebugServer):
162762        * bindings/js/WorkerScriptDebugServer.cpp:
162763        (WebCore::WorkerScriptDebugServer::willExecuteProgram):
162764        (WebCore):
162765        * bindings/js/WorkerScriptDebugServer.h:
162766        (WorkerScriptDebugServer):
162767
1627682012-11-19  Pratik Solanki  <psolanki@apple.com>
162769
162770        For single element arrays use the pointer into the CFDataRef instead of copying data
162771        https://bugs.webkit.org/show_bug.cgi?id=102306
162772
162773        Reviewed by Brent Fulgham.
162774
162775        Address review comments for slightly nicer code.
162776
162777        * platform/SharedBuffer.cpp:
162778        (WebCore::SharedBuffer::data):
162779        * platform/cf/SharedBufferCF.cpp:
162780        (WebCore::SharedBuffer::singleDataArrayBuffer):
162781
1627822012-11-19  Chris Rogers  <crogers@google.com>
162783
162784        Remove empirical bass-boost for HRTF spatialization
162785        https://bugs.webkit.org/show_bug.cgi?id=102745
162786
162787        Reviewed by Kenneth Russell.
162788
162789        Some empirically-based post-processing is being removed so that we'll
162790        now process with the exact HRTF impulse response measurements.
162791        Listening tests have determined that this post-processing is not necessary.
162792
162793        * platform/audio/HRTFElevation.cpp:
162794        (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
162795        * platform/audio/HRTFKernel.cpp:
162796        (WebCore::HRTFKernel::HRTFKernel):
162797        * platform/audio/HRTFKernel.h:
162798        (WebCore::HRTFKernel::create):
162799        (HRTFKernel):
162800
1628012012-11-19  Adam Barth  <abarth@webkit.org>
162802
162803        DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
162804        https://bugs.webkit.org/show_bug.cgi?id=102755
162805
162806        Reviewed by Sam Weinig.
162807
162808        WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
162809        how this compiles.
162810
162811        * Modules/indexeddb/IDBBackingStore.h:
162812        (RecordIdentifier):
162813
1628142012-11-19  Chris Rogers  <crogers@google.com>
162815
162816        Implement .detune attribute for BiquadFilterNode
162817        https://bugs.webkit.org/show_bug.cgi?id=102737
162818
162819        Reviewed by Kenneth Russell.
162820
162821        Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
162822
162823        Tests changed: webaudio/biquad-lowpass.html
162824
162825        * Modules/webaudio/BiquadDSPKernel.cpp:
162826        (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
162827        * Modules/webaudio/BiquadFilterNode.h:
162828        (WebCore::BiquadFilterNode::detune):
162829        * Modules/webaudio/BiquadFilterNode.idl:
162830        * Modules/webaudio/BiquadProcessor.cpp:
162831        (WebCore::BiquadProcessor::BiquadProcessor):
162832        (WebCore::BiquadProcessor::checkForDirtyCoefficients):
162833        * Modules/webaudio/BiquadProcessor.h:
162834        (WebCore::BiquadProcessor::parameter4):
162835        (BiquadProcessor):
162836
1628372012-11-19  Patrick Gansterer  <paroga@webkit.org>
162838
162839        [WIN] Add WebCore::getRegistryValue()
162840        https://bugs.webkit.org/show_bug.cgi?id=97828
162841
162842        Reviewed by Brent Fulgham.
162843
162844        The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
162845        Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
162846
162847        * platform/win/MIMETypeRegistryWin.cpp:
162848        (WebCore::mimeTypeForExtension):
162849        (WebCore):
162850        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
162851        * platform/win/WindowsExtras.h:
162852        (WebCore::getRegistryValue):
162853        (WebCore):
162854        * plugins/win/PluginDatabaseWin.cpp:
162855        (WebCore::addPluginPathsFromRegistry):
162856        (WebCore::addWindowsMediaPlayerPluginDirectory):
162857        (WebCore::addQuickTimePluginDirectory):
162858        (WebCore::addAdobeAcrobatPluginDirectory):
162859        (WebCore::addJavaPluginDirectory):
162860
1628612012-11-19  Alpha Lam  <hclam@chromium.org>
162862
162863        Not reviewed. Build fix for Chromium.
162864
162865        Added SkTypes.h includes for Windows.
162866
162867        * platform/graphics/chromium/ImageDecodingStore.h:
162868        * platform/graphics/chromium/ImageFrameGenerator.h:
162869        * platform/graphics/chromium/LazyDecodingPixelRef.h:
162870
1628712012-11-19  Adam Barth  <abarth@webkit.org>
162872
162873        [V8] Simplify V8DOMWindowShell::getEntered
162874        https://bugs.webkit.org/show_bug.cgi?id=102156
162875
162876        Reviewed by Eric Seidel.
162877
162878        This patch is an incremental step towards merging
162879        V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
162880        up DOM wrappers. In order to merge with the general case, we need to
162881        get down to calling v8::Context::GetCurrent once, which means we need
162882        to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
162883
162884        As a side-benefit to this change, we can remove some redundant checks
162885        for isolatedWorldsExist and v8::Context::InContext from callers of
162886        V8DOMWindowShell::getEntered, including in getCachedWrapper.
162887
162888        * bindings/v8/DOMDataStore.cpp:
162889        (WebCore::DOMDataStore::current):
162890        * bindings/v8/ScriptController.cpp:
162891        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
162892        (WebCore::ScriptController::currentWorldContext):
162893        * bindings/v8/V8DOMWindowShell.h:
162894        (WebCore::V8DOMWindowShell::isolated):
162895        (WebCore::V8DOMWindowShell::perContextData):
162896        (WebCore::V8DOMWindowShell::world):
162897        (V8DOMWindowShell):
162898        * bindings/v8/V8DOMWrapper.h:
162899        (WebCore::V8DOMWrapper::getCachedWrapper):
162900        * bindings/v8/WorldContextHandle.cpp:
162901        (WebCore::WorldContextHandle::WorldContextHandle):
162902        * bindings/v8/custom/V8DocumentCustom.cpp:
162903        (WebCore::V8Document::dispatchWrapCustom):
162904        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
162905        (WebCore::V8HTMLDocument::dispatchWrapCustom):
162906        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
162907        (WebCore::V8SVGDocument::dispatchWrapCustom):
162908        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
162909        (WebCore::V8XMLHttpRequest::constructorCallback):
162910
1629112012-11-19  Kentaro Hara  <haraken@chromium.org>
162912
162913        Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
162914        https://bugs.webkit.org/show_bug.cgi?id=102671
162915
162916        Reviewed by Adam Barth.
162917
162918        Most part of code generators use 'interface'. The spec uses 'interface'.
162919        Thus, the IDL parser should use 'interface' instead of 'class'.
162920
162921        No tests. No change in behavior.
162922
162923        * bindings/scripts/CodeGenerator.pm:
162924        (ProcessDocument):
162925        (AddMethodsConstantsAndAttributesFromParentInterfaces):
162926        (ParseInterface):
162927        * bindings/scripts/CodeGeneratorCPP.pm:
162928        (GenerateImplementation):
162929        * bindings/scripts/CodeGeneratorJS.pm:
162930        (GenerateHeader):
162931        * bindings/scripts/CodeGeneratorObjC.pm:
162932        (GenerateImplementation):
162933        * bindings/scripts/CodeGeneratorV8.pm:
162934        (GenerateHeader):
162935        (GenerateFunctionCallback):
162936        * bindings/scripts/IDLParser.pm:
162937        (Parse):
162938        (parseModule):
162939        * bindings/scripts/generate-bindings.pl:
162940
1629412012-11-19  Eric Carlson  <eric.carlson@apple.com>
162942
162943        HTMLMediaElement::configureTextTracks should configure all text tracks
162944        https://bugs.webkit.org/show_bug.cgi?id=102561
162945
162946        Reviewed by Philippe Normand.
162947
162948        No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
162949
162950        * html/HTMLMediaElement.cpp:
162951        (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
162952        (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
162953        (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
162954        (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
162955        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
162956        * html/HTMLMediaElement.h:
162957
162958        * html/HTMLTrackElement.cpp:
162959        (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
162960        (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
162961        (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
162962            "default" argument.
162963        * html/HTMLTrackElement.h:
162964
162965        * html/track/LoadableTextTrack.cpp:
162966        (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
162967        * html/track/LoadableTextTrack.h: 
162968        (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
162969            can be flagged as default.
162970        (WebCore::TextTrack::setIsDefault): Ditto.
162971
162972        * html/track/TextTrack.cpp:
162973        (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
162974        * html/track/TextTrack.h:
162975        (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
162976            need know what type of track it is calling.
162977        (WebCore::TextTrack::setHasBeenConfigured): Ditto.
162978        (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
162979            can be "default".
162980        (WebCore::TextTrack::setIsDefault): Ditto.
162981
1629822012-11-19  Huang Dongsung  <luxtella@company100.net>
162983
162984        Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
162985        https://bugs.webkit.org/show_bug.cgi?id=102664
162986
162987        Reviewed by Noam Rosenthal.
162988
162989        As refactoring Coordinated Graphics in WebKit2, code related to
162990        TextureMapper is changed.
162991
162992        No new tests. Refactoring only.
162993
162994        * platform/graphics/qt/GraphicsContext3DQt.cpp:
162995        (GraphicsContext3DPrivate):
162996        (WebCore::GraphicsContext3DPrivate::platformLayerSize):
162997            We need to know the size of a texture mapper platform layer.
162998        (WebCore):
162999        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
163000          Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
163001          lifecycle, TextureMapperSurfaceBackingStore does not need to know
163002          GraphicsSurfaceToken.
163003        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
163004        (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
163005        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
163006        * platform/graphics/texmap/TextureMapperBackingStore.h:
163007        (TextureMapperSurfaceBackingStore):
163008        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
163009        (WebCore::TextureMapperPlatformLayer::platformLayerSize):
163010
1630112012-11-19  Alpha Lam  <hclam@chromium.org>
163012
163013        [chromium] Lazy image decoding without cache
163014        https://bugs.webkit.org/show_bug.cgi?id=102021
163015
163016        Reviewed by Stephen White.
163017
163018        Goal of this change is to make image decoding in ImageFrameGenerator
163019        completely lazy without caching. Image decoding logic is then removed
163020        from ImageDecodingStore.
163021
163022        These methods are removed.
163023        - ImageDecodingStore::lockPixels
163024        - ImageDecodingStore::unlockPixels
163025
163026        Instead image decoding and scaling is done in
163027        ImageFrameGenerator::decodeAndScale().
163028
163029        Unit tests are updated:
163030        DeferredImageDecoderTest::drawIntoSkPicture
163031        DeferredImageDecoderTest::drawScaledIntoSkPicture
163032
163033        Also covered by layout tests:
163034        platform/chromium/virtual/deferred
163035
163036        * platform/graphics/chromium/DeferredImageDecoder.cpp:
163037        (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
163038        * platform/graphics/chromium/ImageDecodingStore.h:
163039        (ImageDecodingStore):
163040        * platform/graphics/chromium/ImageFrameGenerator.cpp:
163041        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
163042        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
163043        (WebCore::ImageFrameGenerator::setData):
163044        (WebCore::ImageFrameGenerator::decodeAndScale):
163045        * platform/graphics/chromium/ImageFrameGenerator.h:
163046        (WebCore::ImageFrameGenerator::create):
163047        (ImageFrameGenerator):
163048        * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
163049        (WebCore::LazyDecodingPixelRef::onLockPixels):
163050        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
163051        * platform/graphics/chromium/LazyDecodingPixelRef.h:
163052        (LazyDecodingPixelRef):
163053
1630542012-11-19  Abhishek Arya  <inferno@chromium.org>
163055
163056        Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
163057        https://bugs.webkit.org/show_bug.cgi?id=100150
163058
163059        Reviewed by Ryosuke Niwa.
163060
163061        RefPtr startDummySpanAncestor and endDummySpanAncestor since
163062        they can go away inside fixRangeAndApplyInlineStyle call.
163063
163064        Test: editing/style/apply-style-crash.html
163065
163066        * editing/ApplyStyleCommand.cpp:
163067        (WebCore::ApplyStyleCommand::applyInlineStyle):
163068
1630692012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
163070
163071        Unreviewed, rolling out r135172.
163072        http://trac.webkit.org/changeset/135172
163073        https://bugs.webkit.org/show_bug.cgi?id=102710
163074
163075        Broke some WebKit2 api tests :( (Requested by japhet on
163076        #webkit).
163077
163078        * loader/DocumentLoader.cpp:
163079        (WebCore::DocumentLoader::DocumentLoader):
163080        (WebCore::DocumentLoader::~DocumentLoader):
163081        (WebCore::DocumentLoader::finishedLoading):
163082        (WebCore::DocumentLoader::clearMainResourceLoader):
163083        (WebCore::DocumentLoader::isLoadingInAPISense):
163084        (WebCore::DocumentLoader::documentURL):
163085        (WebCore::DocumentLoader::isLoadingMainResource):
163086        (WebCore::DocumentLoader::startLoadingMainResource):
163087        * loader/DocumentLoader.h:
163088        (DocumentLoader):
163089        * loader/FrameLoader.cpp:
163090        (WebCore::FrameLoader::FrameLoader):
163091        (WebCore::FrameLoader::init):
163092        * loader/FrameLoaderStateMachine.cpp:
163093        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
163094        * loader/FrameLoaderStateMachine.h:
163095        * loader/MainResourceLoader.cpp:
163096        (WebCore::shouldLoadAsEmptyDocument):
163097        (WebCore):
163098        (WebCore::MainResourceLoader::continueAfterContentPolicy):
163099        (WebCore::MainResourceLoader::didReceiveResponse):
163100        (WebCore::MainResourceLoader::didFinishLoading):
163101        (WebCore::MainResourceLoader::handleEmptyLoad):
163102        (WebCore::MainResourceLoader::loadNow):
163103        (WebCore::MainResourceLoader::load):
163104        * loader/MainResourceLoader.h:
163105        (MainResourceLoader):
163106
1631072012-11-19  Tony Chang  <tony@chromium.org>
163108
163109        Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
163110        https://bugs.webkit.org/show_bug.cgi?id=102548
163111
163112        Reviewed by Adam Barth.
163113
163114        This allows us to use Settings.in to generate the code for this.
163115
163116        I didn't rename any of the WebKit API methods with similar names because that would
163117        probably break consumers.  It turns out that the getter is only called from
163118        Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
163119
163120        No new tests, just a refactor.
163121
163122        * WebCore.exp.in: Remove symbols that are now inlined.
163123        * WebCore.order: Remove symbols that are now inlined.
163124        * dom/Document.cpp:
163125        (WebCore::Document::initSecurityContext): Rename.
163126        * page/Settings.cpp:
163127        (WebCore::Settings::Settings): Remove code since it will be generated.
163128        * page/Settings.h:
163129        (Settings): Remove code since it will be generated.
163130        * page/Settings.in: Add entries to be generated.
163131        * page/SpatialNavigation.cpp:
163132        (WebCore::isSpatialNavigationEnabled): Fix caller.
163133
1631342012-11-19  Yael Aharon  <yael.aharon@intel.com>
163135
163136        [EFL][TexMap] Complie error when considering warnings as errors
163137        https://bugs.webkit.org/show_bug.cgi?id=102705
163138
163139        Reviewed by Kenneth Rohde Christiansen.
163140
163141        Change GaussianKernelHalfWidth to unsigned.
163142
163143        No new tests.
163144
163145        * platform/graphics/texmap/TextureMapperGL.cpp:
163146        (WebCore):
163147
1631482012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
163149
163150        Unreviewed, rolling out r134830.
163151        http://trac.webkit.org/changeset/134830
163152        https://bugs.webkit.org/show_bug.cgi?id=102701
163153
163154        ActiveDOMObject is not applicable to MutationObservers due to
163155        being tied to a Document (Requested by aklein on #webkit).
163156
163157        * bindings/js/JSMutationObserverCustom.cpp:
163158        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
163159        * bindings/v8/custom/V8MutationObserverCustom.cpp:
163160        (WebCore::V8MutationObserver::constructorCallback):
163161        * dom/MutationObserver.cpp:
163162        (WebCore::MutationObserver::create):
163163        (WebCore::MutationObserver::MutationObserver):
163164        (WebCore::MutationObserver::observationStarted):
163165        (WebCore::MutationObserver::observationEnded):
163166        * dom/MutationObserver.h:
163167        (WebCore):
163168        * dom/MutationObserver.idl:
163169
1631702012-11-19  Brady Eidson  <beidson@apple.com>
163171
163172        NetworkProcess Authentication.
163173        https://bugs.webkit.org/show_bug.cgi?id=102592
163174
163175        Reviewed by Alexey Proskuryakov.
163176
163177        Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
163178
163179        Also export some more stuff.
163180
163181        No new tests (Platform support, no effect in tested configs).
163182
163183        * WebCore.exp.in:
163184
163185        * loader/ResourceLoader.cpp:
163186        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
163187          there is a handle.
163188
1631892012-11-19  Alec Flett  <alecflett@chromium.org>
163190
163191        IndexedDB: simplify RecordIdentifier
163192        https://bugs.webkit.org/show_bug.cgi?id=102018
163193
163194        Reviewed by Tony Chang.
163195
163196        Make IDBBackingStore's RecordIdentifier be a simple
163197        class, existing only as an inline or stack-based instance.
163198        This makes much of the copy semantics more explicit, and
163199        removes refcounting from an object that only ever had a refcount
163200        of 1 or 2.
163201
163202        No new tests, just a refactor.
163203
163204        * Modules/indexeddb/IDBBackingStore.cpp:
163205        (WebCore::IDBBackingStore::putRecord):
163206        (WebCore::IDBBackingStore::deleteRecord):
163207        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
163208        (WebCore::IDBBackingStore::keyExistsInObjectStore):
163209        (WebCore::IDBBackingStore::putIndexDataForRecord):
163210        (WebCore::IDBBackingStore::deleteIndexDataForRecord):
163211        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
163212        (ObjectStoreCursorImpl):
163213        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
163214        (WebCore::IndexKeyCursorImpl::recordIdentifier):
163215        (WebCore::IndexCursorImpl::recordIdentifier):
163216        * Modules/indexeddb/IDBBackingStore.h:
163217        (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
163218        (WebCore::IDBBackingStore::RecordIdentifier::isValid):
163219        (WebCore::IDBBackingStore::RecordIdentifier::reset):
163220        (RecordIdentifier):
163221        (IDBBackingStore):
163222        (WebCore::IDBBackingStore::Cursor::recordIdentifier):
163223        (WebCore::IDBBackingStore::Cursor::Cursor):
163224        (Cursor):
163225        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
163226        (WebCore):
163227        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
163228        (WebCore::IDBObjectStoreBackendImpl::putInternal):
163229        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
163230
1632312012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
163232
163233        Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
163234        https://bugs.webkit.org/show_bug.cgi?id=100927
163235
163236        Reviewed by Alexey Proskuryakov.
163237
163238        This patch adds ParsedContentType class that represents contents of parsed
163239        content type string. isValidContentType function could be used to check if
163240        format of the content type string is acorrding to RFC 2616 section 4.2.
163241
163242        * CMakeLists.txt:
163243        * GNUmakefile.list.am:
163244        * Target.pri:
163245        * WebCore.gypi:
163246        * WebCore.xcodeproj/project.pbxproj:
163247        * platform/network/MIMEHeader.cpp:
163248        (WebCore::MIMEHeader::parseHeader):
163249        * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
163250        (WebCore):
163251        (EmptyParsedContentType):
163252        (WebCore::EmptyParsedContentType::setContentType):
163253        (WebCore::EmptyParsedContentType::setContentTypeParameter):
163254        (WebCore::skipSpaces):
163255        (WebCore::isTokenCharacter):
163256        (WebCore::parseToken):
163257        (WebCore::parseQuotedString):
163258        (WebCore::substringForRange):
163259        (WebCore::parseContentType):
163260        (WebCore::isValidContentType):
163261        (WebCore::ParsedContentType::ParsedContentType):
163262        (WebCore::ParsedContentType::charset):
163263        (WebCore::ParsedContentType::parameterValueForName):
163264        (WebCore::ParsedContentType::parameterCount):
163265        (WebCore::ParsedContentType::setContentType):
163266        (WebCore::ParsedContentType::setContentTypeParameter):
163267        * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
163268        (WebCore):
163269        (ParsedContentType):
163270        (WebCore::ParsedContentType::mimeType):
163271
1632722012-11-19  Erik Arvidsson  <arv@chromium.org>
163273
163274        Update DOMException name: InvalidNodeTypeError
163275        https://bugs.webkit.org/show_bug.cgi?id=102519
163276
163277        Reviewed by Kentaro Hara.
163278
163279        Patch 24 of 25 to update DOMException name to match the spec and Firefox.
163280
163281        No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
163282
163283        * dom/DOMCoreException.cpp:
163284
1632852012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
163286
163287        Changing id, className, or attribute should invalidate distribution
163288        https://bugs.webkit.org/show_bug.cgi?id=100738
163289
163290        Reviewed by Dimitri Glazkov.
163291
163292        When id, className, or attribute is changed, we might have to invalidate distribution.
163293        However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
163294        to invalidate distribution only if necessary.
163295
163296        For the code that className is changed, we can share a lot of code between invalidating distribution and
163297        invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
163298
163299        Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
163300        whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
163301        shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
163302        for this purpose.
163303
163304        We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
163305        DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
163306        will be the most affected by this patch. However, it's only 2% performance regression.
163307
163308        DOM/ModifyAttribute.html
163309        Before this patch:
163310                median  stdev    min    max    [ms]
163311          1st    494.0   3.36  490.0  502.0
163312          2nd    503.5   3.44  497.0  512.0
163313          3rd    494.0   3.48  488.0  499.0
163314
163315        After this patch:
163316                median  stdev  min      max    [ms]
163317          1st    504.0   2.00  501.0  509.0
163318          2nd    505.5   3.08  500.0  513.0
163319          3rd    507.0   2.32  502.0  510.0
163320
163321        Tests: fast/dom/shadow/distribution-attribute-modified.html
163322               fast/dom/shadow/distribution-className-modified.html
163323               fast/dom/shadow/distribution-id-modified.html
163324               fast/dom/shadow/reprojection-attribute-modified.html
163325               fast/dom/shadow/reprojection-className-modified.html
163326               fast/dom/shadow/reprojection-id-modified.html
163327
163328        * dom/Element.cpp:
163329        (WebCore::Element::attributeChanged):
163330        (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
163331        (HasSelectorForClassStyleFunctor):
163332        (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
163333        (WebCore):
163334        (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
163335        (HasSelectorForClassDistributionFunctor):
163336        (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
163337        (WebCore::checkFunctorForClassChange):
163338        (WebCore::checkNeedsStyleInvalidationForClassChange):
163339        (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
163340        (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
163341        * dom/Element.h:
163342        (Element):
163343        * dom/Node.h:
163344        (WebCore::Node::isInsertionPoint):
163345        * html/HTMLElement.h:
163346        (HTMLElement):
163347        * html/shadow/InsertionPoint.cpp:
163348        (WebCore::InsertionPoint::InsertionPoint):
163349        * html/shadow/InsertionPoint.h:
163350        (InsertionPoint):
163351        (WebCore::isInsertionPoint):
163352        (WebCore::shadowOfParentForDistribution):
163353        (WebCore::resolveReprojection):
163354
1633552012-11-19  Nate Chapin  <japhet@chromium.org>
163356
163357        Move empty loading to DocumentLoader, simplify FrameLoader::init()
163358        https://bugs.webkit.org/show_bug.cgi?id=101512
163359
163360        Reviewed by Adam Barth.
163361
163362        No new tests, though several outputs changed because we no longer send resource
163363            load callbacks for empty loads.
163364
163365        * loader/DocumentLoader.cpp:
163366        (WebCore::DocumentLoader::DocumentLoader):
163367        (WebCore::DocumentLoader::~DocumentLoader):
163368        (WebCore::DocumentLoader::finishedLoading):
163369        (WebCore::DocumentLoader::clearMainResourceLoader):
163370        (WebCore::DocumentLoader::isLoadingInAPISense):
163371        (WebCore::DocumentLoader::isLoadingMainResource):
163372        (WebCore::DocumentLoader::maybeLoadEmpty):
163373        (WebCore):
163374        (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
163375             loads directly here.
163376        * loader/DocumentLoader.h:
163377        (DocumentLoader):
163378        * loader/FrameLoader.cpp:
163379        (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
163380            were previously being reset in init(). Given that the FrameLoader is in
163381            an inconsistent state before init() is called anyway, there doesn't seem
163382            to be a disadvantage to just initializing them to their post-init() values.
163383        (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
163384            doing a bunch of direct calls to functions FrameLoader shouldn't know about.
163385        * loader/FrameLoaderStateMachine.cpp:
163386        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
163387        * loader/FrameLoaderStateMachine.h:
163388        * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
163389        (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
163390            load got deferred, which won't happen now. Return void and always treat
163391            as returning false.
163392        * loader/MainResourceLoader.h:
163393        (MainResourceLoader):
163394
1633952012-11-19  Erik Arvidsson  <arv@chromium.org>
163396
163397        Update DOMException name: TimeoutError
163398        https://bugs.webkit.org/show_bug.cgi?id=102513
163399
163400        Reviewed by Kentaro Hara.
163401
163402        Patch 23 of 25 to update DOMException name to match the spec and Firefox.
163403
163404        No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
163405
163406        * dom/DOMCoreException.cpp:
163407
1634082012-11-19  Erik Arvidsson  <arv@chromium.org>
163409
163410        Update DOMException name: DataCloneError
163411        https://bugs.webkit.org/show_bug.cgi?id=102521
163412
163413        Reviewed by Kentaro Hara.
163414
163415        Patch 25 of 25 to update DOMException name to match the spec and Firefox.
163416
163417        Updated existing tests.
163418
163419        * dom/DOMCoreException.cpp:
163420
1634212012-11-19  Tom Hudson  <tomhudson@chromium.org>
163422
163423        Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
163424        https://bugs.webkit.org/show_bug.cgi?id=98660
163425
163426        Reviewed by Simon Fraser.
163427
163428        Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
163429        and paintTranslucentBorderSides() so that we don't do unnecessary work.
163430
163431        If we can avoid setting up and tearing down an unnecessary transparent layer we save
163432        30ms on some mobile platforms.
163433
163434        * rendering/RenderBoxModelObject.h:
163435        * rendering/RenderBoxModelObject.cpp:
163436        (WebCore::RenderBoxModelObject::paintBorder):
163437        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
163438
1634392012-11-19  Hans Muller  <hmuller@adobe.com>
163440
163441        [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
163442        https://bugs.webkit.org/show_bug.cgi?id=100765
163443
163444        Reviewed by Dirk Schulze.
163445
163446        ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
163447        isn't null, since the caller is expected to ensure as much.  No new tests were
163448        needed since this is a near-trivial cleanup.
163449
163450        * rendering/ExclusionShape.cpp:
163451        (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
163452
1634532012-11-19  Sami Kyostila  <skyostil@chromium.org>
163454
163455        Use device scale factor instead of physical screen DPI for screen DPI
163456        https://bugs.webkit.org/show_bug.cgi?id=101769
163457
163458        Reviewed by Adam Barth.
163459
163460        Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
163461        the dots per CSS inch[1] value for the "screen" media type. On Chromium these
163462        functions currently return the physical screen DPI, which is wrong. To fix
163463        this, we remove both of these functions entirely and make media queries use
163464        the device scale factor multiplied by 96 on all ports.
163465
163466        [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
163467
163468        * page/Screen.cpp:
163469        (WebCore::Screen::horizontalDPI):
163470        (WebCore::Screen::verticalDPI):
163471        * platform/PlatformScreen.h:
163472        (WebCore):
163473        * platform/blackberry/PlatformScreenBlackBerry.cpp:
163474        * platform/chromium/PlatformScreenChromium.cpp:
163475        * platform/efl/PlatformScreenEfl.cpp:
163476        * platform/gtk/PlatformScreenGtk.cpp:
163477        * platform/mac/PlatformScreenMac.mm:
163478        * platform/qt/PlatformScreenQt.cpp:
163479        * platform/win/PlatformScreenWin.cpp:
163480        * platform/wx/ScreenWx.cpp:
163481
1634822012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
163483
163484        Computed grid items' positions shouldn't be using Length
163485        https://bugs.webkit.org/show_bug.cgi?id=102537
163486
163487        Reviewed by Tony Chang.
163488
163489        This change refactors how we store the grid items' position to use
163490        a new type GridPosition. Length was a temporary type as it supported
163491        'auto' | <integer> but it was starting to get more and more confusing
163492        as we were implementing the layout routines.
163493
163494        No change in behavior.
163495
163496        * GNUmakefile.list.am:
163497        * WebCore.gypi:
163498        * WebCore.vcproj/WebCore.vcproj:
163499        * WebCore.xcodeproj/project.pbxproj:
163500        Added the new file to the build systems.
163501
163502        * rendering/style/RenderStyle.h:
163503        Updated after the type change. Also made some getters
163504        return a const reference instead of forcing a copy.
163505
163506        * rendering/style/StyleGridItemData.h:
163507        (StyleGridItemData):
163508        Ditto, also removed a comment about adding a new type.
163509
163510        * css/CSSComputedStyleDeclaration.cpp:
163511        (WebCore::valueForGridPosition):
163512        * css/StyleResolver.cpp:
163513        (WebCore::createGridPosition):
163514        (WebCore::StyleResolver::applyProperty):
163515        * rendering/RenderGrid.cpp:
163516        (WebCore::RenderGrid::resolveGridPosition):
163517        Updated these sites after switching to GridPosition.
163518
163519        * rendering/RenderGrid.h:
163520        Changed resolveGridPosition signature: it now takes a GridPosition.
163521
163522        * rendering/style/GridPosition.h: Added.
163523        (WebCore::GridPosition::GridPosition):
163524        Default constructor, creates an 'auto' position.
163525
163526        (WebCore::GridPosition::isPositive):
163527        (WebCore::GridPosition::type):
163528        (WebCore::GridPosition::isAuto):
163529        (WebCore::GridPosition::setIntegerPosition):
163530        (WebCore::GridPosition::integerPosition):
163531        Helper functions.
163532
163533        (WebCore::GridPosition::operator==):
163534        Required comparison operator for StyleGridItemData.
163535
1635362012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
163537
163538        Apply the resolved viewport rules
163539        https://bugs.webkit.org/show_bug.cgi?id=95964
163540
163541        Reviewed by Kenneth Rohde Christiansen.
163542
163543        This patch implements the CSS Device Adaptation specification. The
163544        WebKit implementation relies on the already implemented Viewport Meta
163545        infrastructure to notify the browser of viewport changes.
163546
163547        The implementation was tests with success on the Qt and EFL ports, but
163548        basically every port supporting Viewport Meta should be fine.
163549
163550        The usage of @-webkit-viewport inside media queries (more tests coming
163551        to map all the corner cases) is currently limited when the media query
163552        depends on the viewport dimensions itself. Defining the width and height
163553        based on screen size will fail on ports reporting the screen
163554        size as the size of the browser window instead of the device screen.
163555
163556        Tests: css3/device-adapt/opera/cascading-001.xhtml
163557               css3/device-adapt/opera/cascading-002.xhtml
163558               css3/device-adapt/opera/cascading-003.xhtml
163559               css3/device-adapt/opera/cascading-004.xhtml
163560               css3/device-adapt/opera/constrain-001.xhtml
163561               css3/device-adapt/opera/constrain-002.xhtml
163562               css3/device-adapt/opera/constrain-003.xhtml
163563               css3/device-adapt/opera/constrain-004.xhtml
163564               css3/device-adapt/opera/constrain-005.xhtml
163565               css3/device-adapt/opera/constrain-006.xhtml
163566               css3/device-adapt/opera/constrain-007.xhtml
163567               css3/device-adapt/opera/constrain-008.xhtml
163568               css3/device-adapt/opera/constrain-009.xhtml
163569               css3/device-adapt/opera/constrain-010.xhtml
163570               css3/device-adapt/opera/constrain-011.xhtml
163571               css3/device-adapt/opera/constrain-012.xhtml
163572               css3/device-adapt/opera/constrain-013.xhtml
163573               css3/device-adapt/opera/constrain-014.xhtml
163574               css3/device-adapt/opera/constrain-015.xhtml
163575               css3/device-adapt/opera/constrain-016.xhtml
163576               css3/device-adapt/opera/constrain-017.xhtml
163577               css3/device-adapt/opera/constrain-020.xhtml
163578               css3/device-adapt/opera/syntax-001.xhtml
163579               css3/device-adapt/opera/syntax-002.xhtml
163580               css3/device-adapt/opera/syntax-003.xhtml
163581
163582        * CMakeLists.txt:
163583        * GNUmakefile.list.am:
163584        * Target.pri:
163585        * WebCore.gypi:
163586        * WebCore.vcproj/WebCore.vcproj:
163587        * WebCore.xcodeproj/project.pbxproj:
163588        * css/CSSAllInOne.cpp:
163589        * css/RuleSet.cpp:
163590        (WebCore::RuleSet::addRulesFromSheet):
163591        * css/StyleResolver.cpp:
163592        (WebCore::StyleResolver::StyleResolver):
163593        (WebCore::StyleResolver::appendAuthorStyleSheets):
163594        (WebCore::StyleResolver::~StyleResolver):
163595        * css/StyleResolver.h:
163596        (StyleResolver):
163597        (WebCore::StyleResolver::viewportStyleResolver):
163598        * css/ViewportStyleResolver.cpp: Added.
163599        (WebCore):
163600        (WebCore::ViewportStyleResolver::ViewportStyleResolver):
163601        (WebCore::ViewportStyleResolver::addViewportRule):
163602        (WebCore::ViewportStyleResolver::clearDocument):
163603        (WebCore::ViewportStyleResolver::resolve):
163604        (WebCore::ViewportStyleResolver::getViewportArgumentValue):
163605        * css/ViewportStyleResolver.h: Added.
163606        (WebCore):
163607        (ViewportStyleResolver):
163608        (WebCore::ViewportStyleResolver::create):
163609        * dom/Document.h:
163610        (WebCore::Document::setViewportArguments):
163611        * dom/ViewportArguments.cpp:
163612        (WebCore::compareIgnoringAuto):
163613        (WebCore):
163614        (WebCore::ViewportArguments::resolve):
163615        * dom/ViewportArguments.h:
163616        (ViewportAttributes):
163617        (WebCore::ViewportArguments::ViewportArguments):
163618        (ViewportArguments):
163619        (WebCore::ViewportArguments::operator==):
163620
1636212012-11-19  Erik Arvidsson  <arv@chromium.org>
163622
163623        Update DOMException name: SecurityError
163624        https://bugs.webkit.org/show_bug.cgi?id=102437
163625
163626        Reviewed by Kentaro Hara.
163627
163628        Patch 18 of 25 to update DOMException name to match the spec and Firefox.
163629
163630        Updated existing tests.
163631
163632        * dom/DOMCoreException.cpp:
163633
1636342012-11-19  Erik Arvidsson  <arv@chromium.org>
163635
163636        Update DOMException name: URLMismatchError
163637        https://bugs.webkit.org/show_bug.cgi?id=102511
163638
163639        Reviewed by Kentaro Hara.
163640
163641        Patch 21 of 25 to update DOMException name to match the spec and Firefox.
163642
163643        Updated existing tests.
163644
163645        * dom/DOMCoreException.cpp:
163646        (WebCore):
163647
1636482012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
163649
163650        Add PROXIMITY_EVENTS feature
163651        https://bugs.webkit.org/show_bug.cgi?id=102658
163652
163653        Reviewed by Kentaro Hara.
163654
163655        Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
163656
163657        No new tests. Just add a new feature.
163658
163659        * Configurations/FeatureDefines.xcconfig:
163660        * GNUmakefile.features.am:
163661
1636622012-11-19  Alexei Filippov  <alph@chromium.org>
163663
163664        Web Inspector: Dim a component's subitems' color in NMI snapshot
163665        https://bugs.webkit.org/show_bug.cgi?id=102224
163666
163667        Reviewed by Yury Semikhatsky.
163668
163669        * inspector/front-end/NativeMemorySnapshotView.js:
163670        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
163671        * inspector/front-end/nativeMemoryProfiler.css:
163672        (.native-snapshot-view .data-grid .dimmed div.size-bar):
163673
1636742012-11-19  Erik Arvidsson  <arv@chromium.org>
163675
163676        Update DOMException name: NetworkError
163677        https://bugs.webkit.org/show_bug.cgi?id=102503
163678
163679        Reviewed by Kentaro Hara.
163680
163681        Patch 19 of 25 to update DOMException name to match the spec and Firefox.
163682
163683        No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
163684
163685        * dom/DOMCoreException.cpp:
163686
1636872012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
163688
163689        webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
163690        https://bugs.webkit.org/show_bug.cgi?id=102649
163691
163692        Reviewed by Adam Barth.
163693
163694        AudioContext uses m_document only as a pointer to ScriptExecutionContext.
163695        It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
163696        The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
163697
163698        No new tests as there is no new functionality.
163699
163700        * Modules/webaudio/AudioBufferSourceNode.cpp:
163701        (WebCore::AudioBufferSourceNode::looping):
163702        (WebCore::AudioBufferSourceNode::setLooping):
163703        * Modules/webaudio/AudioContext.cpp:
163704        (WebCore::AudioContext::AudioContext):
163705        (WebCore::AudioContext::stop):
163706        (WebCore::AudioContext::scriptExecutionContext):
163707        (WebCore::AudioContext::fireCompletionEvent):
163708        (WebCore::AudioContext::reportMemoryUsage):
163709        * Modules/webaudio/AudioContext.h:
163710        (AudioContext):
163711        * Modules/webaudio/ScriptProcessorNode.cpp:
163712        (WebCore::ScriptProcessorNode::fireProcessEvent):
163713        (WebCore::ScriptProcessorNode::scriptExecutionContext):
163714
1637152012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
163716
163717        webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
163718        https://bugs.webkit.org/show_bug.cgi?id=102356
163719
163720        Reviewed by Adam Barth.
163721
163722        A clean-up code was moved from uninitialize to clear method.
163723        AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
163724        m_isStopScheduled filters out second ActiveDOMObject::stop call.
163725        markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
163726        adoptRef was added in createOfflineContext method.
163727        A guard was added into deleteMarkedNodes.
163728
163729        Test: inspector-protocol/nmi-webaudio-leak-test.html
163730
163731        * Modules/webaudio/AudioContext.cpp:
163732        (WebCore::AudioContext::createOfflineContext):
163733        (WebCore::AudioContext::AudioContext):
163734        (WebCore::AudioContext::constructCommon):
163735        (WebCore::AudioContext::~AudioContext):
163736        (WebCore::AudioContext::clear):
163737        (WebCore::AudioContext::uninitialize):
163738        (WebCore::AudioContext::stopDispatch):
163739        (WebCore::AudioContext::stop):
163740        (WebCore::AudioContext::markForDeletion):
163741        (WebCore::AudioContext::scheduleNodeDeletion):
163742        (WebCore::AudioContext::deleteMarkedNodes):
163743        * Modules/webaudio/AudioContext.h:
163744        (AudioContext):
163745        * bindings/v8/custom/V8AudioContextCustom.cpp:
163746        (WebCore::V8AudioContext::constructorCallback):
163747        * inspector/InspectorMemoryAgent.cpp:
163748        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
163749        * platform/PlatformMemoryInstrumentation.cpp:
163750        (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
163751        (WebCore):
163752        * platform/PlatformMemoryInstrumentation.h:
163753        (PlatformMemoryInstrumentation):
163754        (WebCore):
163755
1637562012-11-19  Erik Arvidsson  <arv@chromium.org>
163757
163758        Update DOMException name: QuotaExceededError
163759        https://bugs.webkit.org/show_bug.cgi?id=102512
163760
163761        Reviewed by Kentaro Hara.
163762
163763        Patch 22 of 25 to update DOMException name to match the spec and Firefox.
163764
163765        Updated existing tests.
163766
163767        * dom/DOMCoreException.cpp:
163768
1637692012-11-19  Erik Arvidsson  <arv@chromium.org>
163770
163771        Update DOMException name: AbortError
163772        https://bugs.webkit.org/show_bug.cgi?id=102508
163773
163774        Reviewed by Kentaro Hara.
163775
163776        Patch 20 of 25 to update DOMException name to match the spec and Firefox.
163777
163778        No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
163779
163780        * dom/DOMCoreException.cpp:
163781
1637822012-11-19  Kentaro Hara  <haraken@chromium.org>
163783
163784        Unreviewed, rolling out r135111.
163785        http://trac.webkit.org/changeset/135111
163786        https://bugs.webkit.org/show_bug.cgi?id=102356
163787
163788        The patch caused crashes in several layout tests
163789
163790        * Modules/webaudio/AudioContext.cpp:
163791        (WebCore::AudioContext::createOfflineContext):
163792        (WebCore::AudioContext::AudioContext):
163793        (WebCore::AudioContext::constructCommon):
163794        (WebCore::AudioContext::~AudioContext):
163795        (WebCore::AudioContext::uninitialize):
163796        (WebCore::AudioContext::uninitializeDispatch):
163797        (WebCore::AudioContext::stop):
163798        (WebCore::AudioContext::markForDeletion):
163799        (WebCore::AudioContext::scheduleNodeDeletion):
163800        (WebCore::AudioContext::deleteMarkedNodes):
163801        * Modules/webaudio/AudioContext.h:
163802        (AudioContext):
163803        * bindings/v8/custom/V8AudioContextCustom.cpp:
163804        (WebCore::V8AudioContext::constructorCallback):
163805        * inspector/InspectorMemoryAgent.cpp:
163806        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
163807        * platform/PlatformMemoryInstrumentation.cpp:
163808        (WebCore):
163809        * platform/PlatformMemoryInstrumentation.h:
163810
1638112012-11-19  Kentaro Hara  <haraken@chromium.org>
163812
163813        Unreviewed, rolling out r135116.
163814        http://trac.webkit.org/changeset/135116
163815        https://bugs.webkit.org/show_bug.cgi?id=102649
163816
163817        Revert this patch to revert r135111, which caused crashes in
163818        several layout tests
163819
163820        * Modules/webaudio/AudioBufferSourceNode.cpp:
163821        (WebCore::AudioBufferSourceNode::looping):
163822        (WebCore::AudioBufferSourceNode::setLooping):
163823        * Modules/webaudio/AudioContext.cpp:
163824        (WebCore::AudioContext::AudioContext):
163825        (WebCore::AudioContext::stop):
163826        (WebCore::AudioContext::document):
163827        (WebCore):
163828        (WebCore::AudioContext::hasDocument):
163829        (WebCore::AudioContext::scriptExecutionContext):
163830        (WebCore::AudioContext::fireCompletionEvent):
163831        (WebCore::AudioContext::reportMemoryUsage):
163832        * Modules/webaudio/AudioContext.h:
163833        (AudioContext):
163834        * Modules/webaudio/ScriptProcessorNode.cpp:
163835        (WebCore::ScriptProcessorNode::fireProcessEvent):
163836        (WebCore::ScriptProcessorNode::scriptExecutionContext):
163837
1638382012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
163839
163840        Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
163841        https://bugs.webkit.org/show_bug.cgi?id=102673
163842
163843        Reviewed by Vsevolod Vlasov.
163844
163845        DebuggerScriptMapping calls public method "addScript" not defined
163846        in SourceMapping interface.
163847
163848        To make things clear I've added ScriptSourceMapping interface that
163849        extends SourceMapping interface by adding "addScript" method.
163850
163851        * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
163852        * inspector/front-end/CompilerScriptMapping.js:
163853        Updated "@implements" to ScriptSourceMapping.
163854        * inspector/front-end/ResourceScriptMapping.js: Ditto.
163855        * inspector/front-end/ScriptSnippetModel.js: Ditto.
163856        * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
163857        Removed useless code.
163858
1638592012-11-19  Tim Horton  <timothy_horton@apple.com>
163860
163861        Unreviewed, untested build fix.
163862
163863        * bindings/scripts/IDLParser.pm:
163864        (parseModule):
163865
1638662012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
163867
163868        [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
163869        https://bugs.webkit.org/show_bug.cgi?id=102303
163870
163871        Reviewed by Alexis Menard.
163872
163873        Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
163874        into the isValidKeywordPropertyAndValue function, like the same kind of properties.
163875        This will help speed wise in JS.
163876
163877        No new functionality, no new tests.
163878
163879        * css/CSSParser.cpp:
163880        (WebCore::isValidKeywordPropertyAndValue):
163881        (WebCore::isKeywordPropertyID):
163882        (WebCore::CSSParser::parseValue):
163883
1638842012-11-19  Keishi Hattori  <keishi@webkit.org>
163885
163886        REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
163887        https://bugs.webkit.org/show_bug.cgi?id=102660
163888
163889        Reviewed by Kent Tamura.
163890
163891        The calendar picker used to animate when you press 't'.
163892
163893        No new tests.
163894
163895        * Resources/pagepopups/calendarPicker.js:
163896        (DaysTable.prototype.selectRange):
163897
1638982012-11-19  Kent Tamura  <tkent@chromium.org>
163899
163900        input.value="" should clear date/time input elements with partial values
163901        https://bugs.webkit.org/show_bug.cgi?id=102645
163902
163903        Reviewed by Kentaro Hara.
163904
163905        Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
163906               fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
163907               fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
163908               fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
163909               fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
163910               fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
163911
163912        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
163913        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
163914        If the new value is an empty string and sub-fields has values, we should
163915        update the UI value to the empty state.
163916        * html/DateTimeFieldsState.h:
163917        (WebCore::DateTimeFieldsState::hasAnyValue):
163918        Added. It returns true if one or more sub-fields are not empty.
163919
1639202012-11-19  Andrey Adaikin  <aandrey@chromium.org>
163921
163922        Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
163923        https://bugs.webkit.org/show_bug.cgi?id=102522
163924
163925        Reviewed by Yury Semikhatsky.
163926
163927        When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
163928        Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
163929        Drive-by: add more typification for the JS compiler.
163930        Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
163931
163932        * inspector/InjectedScriptCanvasModuleSource.js:
163933        (.):
163934
1639352012-11-19  Kentaro Hara  <haraken@chromium.org>
163936
163937        Remove IDLStructure.pm
163938        https://bugs.webkit.org/show_bug.cgi?id=102642
163939
163940        Reviewed by Adam Barth.
163941
163942        Previously IDLStructure.pm was full of regular expressions to
163943        parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
163944        just contains several data structures for the IDL parser. We can
163945        move them to IDLParser.pm and thus remove IDLStructure.pm.
163946
163947        No tests. No change in generated code.
163948
163949        * CMakeLists.txt:
163950        * DerivedSources.make:
163951        * DerivedSources.pri:
163952        * GNUmakefile.am:
163953        * WebCore.gyp/WebCore.gyp:
163954        * WebCore.vcproj/MigrateScripts:
163955        * WebCore.vcproj/WebCore.vcproj:
163956        * WebCore.xcodeproj/project.pbxproj:
163957        * bindings/scripts/IDLParser.pm:
163958        (Parse):
163959        (parseInterface):
163960        (parseException):
163961        (parseConst):
163962        (parseAttributeRest):
163963        (parseOperationRest):
163964        (parseOptionalOrRequiredArgument):
163965        (parseExceptionField):
163966        (parseInterfaceOld):
163967        (parseExceptionOld):
163968        (parseAttributeRestOld):
163969        (applyExtendedAttributeList):
163970        * bindings/scripts/IDLStructure.pm: Removed.
163971
1639722012-11-19  Alexei Filippov  <alph@chromium.org>
163973
163974        Web Inspector: refine time and bytes output formatting
163975        https://bugs.webkit.org/show_bug.cgi?id=102265
163976
163977        Reviewed by Yury Semikhatsky.
163978
163979        Add a space between number and unit, otherwise it's hard to read things like 88B.
163980        Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
163981
163982        * English.lproj/localizedStrings.js:
163983        * inspector/front-end/CookiesTable.js:
163984        (WebInspector.CookiesTable.prototype._createGridNode):
163985        * inspector/front-end/UIUtils.js:
163986        (Number.secondsToString):
163987        (Number.bytesToString):
163988
1639892012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
163990
163991        Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
163992        https://bugs.webkit.org/show_bug.cgi?id=102383
163993
163994        Reviewed by Yury Semikhatsky.
163995
163996        Fixed string presentation of event.
163997
163998        * inspector/front-end/TimelinePresentationModel.js: Fixed string.
163999
1640002012-11-19  Kentaro Hara  <haraken@chromium.org>
164001
164002        Remove IDLStructure.pm
164003        https://bugs.webkit.org/show_bug.cgi?id=102642
164004
164005        Reviewed by Adam Barth.
164006
164007        Previously IDLStructure.pm was full of regular expressions to
164008        parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
164009        just contains several data structures for the IDL parser. We can
164010        move them to IDLParser.pm and thus remove IDLStructure.pm.
164011
164012        No tests. No change in generated code.
164013
164014        * CMakeLists.txt:
164015        * DerivedSources.make:
164016        * DerivedSources.pri:
164017        * GNUmakefile.am:
164018        * WebCore.gyp/WebCore.gyp:
164019        * WebCore.vcproj/MigrateScripts:
164020        * WebCore.vcproj/WebCore.vcproj:
164021        * WebCore.xcodeproj/project.pbxproj:
164022        * bindings/scripts/IDLParser.pm:
164023        (Parse):
164024        (parseInterface):
164025        (parseException):
164026        (parseConst):
164027        (parseAttributeRest):
164028        (parseOperationRest):
164029        (parseOptionalOrRequiredArgument):
164030        (parseExceptionField):
164031        (parseInterfaceOld):
164032        (parseExceptionOld):
164033        (parseAttributeRestOld):
164034        (applyExtendedAttributeList):
164035        * bindings/scripts/IDLStructure.pm: Removed.
164036
1640372012-11-19  Alexei Filippov  <alph@chromium.org>
164038
164039        Web Inspector: refine time and bytes output formatting
164040        https://bugs.webkit.org/show_bug.cgi?id=102265
164041
164042        Reviewed by Yury Semikhatsky.
164043
164044        Add a space between number and unit, otherwise it's hard to read things like 88B.
164045        Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
164046
164047        * English.lproj/localizedStrings.js:
164048        * inspector/front-end/CookiesTable.js:
164049        (WebInspector.CookiesTable.prototype._createGridNode):
164050        * inspector/front-end/UIUtils.js:
164051        (Number.secondsToString):
164052        (Number.bytesToString):
164053
1640542012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
164055
164056        Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
164057        https://bugs.webkit.org/show_bug.cgi?id=102383
164058
164059        Reviewed by Yury Semikhatsky.
164060
164061        Fixed string presentation of event.
164062
164063        * inspector/front-end/TimelinePresentationModel.js: Fixed string.
164064
1640652012-11-19  Kentaro Hara  <haraken@chromium.org>
164066
164067        Unreviewed, rolling out r135114.
164068        http://trac.webkit.org/changeset/135114
164069        https://bugs.webkit.org/show_bug.cgi?id=102642
164070
164071        it broke Qt build
164072
164073        * CMakeLists.txt:
164074        * DerivedSources.make:
164075        * DerivedSources.pri:
164076        * GNUmakefile.am:
164077        * WebCore.gyp/WebCore.gyp:
164078        * WebCore.vcproj/MigrateScripts:
164079        * WebCore.vcproj/WebCore.vcproj:
164080        * WebCore.xcodeproj/project.pbxproj:
164081        * bindings/scripts/IDLParser.pm:
164082        (Parse):
164083        (parseInterface):
164084        (parseException):
164085        (parseConst):
164086        (parseAttributeRest):
164087        (parseOperationRest):
164088        (parseOptionalOrRequiredArgument):
164089        (parseExceptionField):
164090        (parseInterfaceOld):
164091        (parseExceptionOld):
164092        (parseAttributeRestOld):
164093        (applyExtendedAttributeList):
164094        * bindings/scripts/IDLStructure.pm: Added.
164095
1640962012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
164097
164098        Unreviewed inspector closure compilation fix.
164099
164100        * inspector/front-end/ObjectPropertiesSection.js:
164101        * inspector/front-end/externs.js:
164102
1641032012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
164104
164105        webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
164106        https://bugs.webkit.org/show_bug.cgi?id=102649
164107
164108        Reviewed by Adam Barth.
164109
164110        AudioContext uses m_document only as a pointer to ScriptExecutionContext.
164111        It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
164112        The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
164113
164114        No new tests as there is no new functionality.
164115
164116        * Modules/webaudio/AudioBufferSourceNode.cpp:
164117        (WebCore::AudioBufferSourceNode::looping):
164118        (WebCore::AudioBufferSourceNode::setLooping):
164119        * Modules/webaudio/AudioContext.cpp:
164120        (WebCore::AudioContext::AudioContext):
164121        (WebCore::AudioContext::stop):
164122        (WebCore::AudioContext::fireCompletionEvent):
164123        (WebCore::AudioContext::reportMemoryUsage):
164124        * Modules/webaudio/AudioContext.h:
164125        (WebCore::AudioContext::scriptExecutionContext):
164126        (AudioContext):
164127        * Modules/webaudio/ScriptProcessorNode.cpp:
164128        (WebCore::ScriptProcessorNode::fireProcessEvent):
164129        (WebCore::ScriptProcessorNode::scriptExecutionContext):
164130
1641312012-11-18  Kentaro Hara  <haraken@chromium.org>
164132
164133        [V8] Remove unused variables from CodeGeneratorV8.pm
164134        https://bugs.webkit.org/show_bug.cgi?id=102648
164135
164136        Reviewed by Adam Barth.
164137
164138        No tests. No change in generated code.
164139
164140        * bindings/scripts/CodeGeneratorV8.pm:
164141        (GenerateInterface):
164142        (GenerateHeader):
164143        (GetInternalFields):
164144        (GenerateNormalAttrGetter):
164145        (GenerateSingleBatchedAttribute):
164146        (GenerateImplementationCustomCall):
164147        (GenerateFunctionCallString):
164148        (CreateCustomSignature):
164149        (GetContextEnableFunction):
164150
1641512012-11-18  Kentaro Hara  <haraken@chromium.org>
164152
164153        Remove IDLStructure.pm
164154        https://bugs.webkit.org/show_bug.cgi?id=102642
164155
164156        Reviewed by Adam Barth.
164157
164158        Previously IDLStructure.pm was full of regular expressions to
164159        parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
164160        just contains several data structures for the IDL parser. We can
164161        move them to IDLParser.pm and thus remove IDLStructure.pm.
164162
164163        No tests. No change in generated code.
164164
164165        * CMakeLists.txt:
164166        * DerivedSources.make:
164167        * DerivedSources.pri:
164168        * GNUmakefile.am:
164169        * WebCore.gyp/WebCore.gyp:
164170        * WebCore.vcproj/MigrateScripts:
164171        * WebCore.vcproj/WebCore.vcproj:
164172        * WebCore.xcodeproj/project.pbxproj:
164173        * bindings/scripts/IDLParser.pm:
164174        (Parse):
164175        (parseInterface):
164176        (parseException):
164177        (parseConst):
164178        (parseAttributeRest):
164179        (parseOperationRest):
164180        (parseOptionalOrRequiredArgument):
164181        (parseExceptionField):
164182        (parseInterfaceOld):
164183        (parseExceptionOld):
164184        (parseAttributeRestOld):
164185        (applyExtendedAttributeList):
164186        * bindings/scripts/IDLStructure.pm: Removed.
164187
1641882012-11-18  Kentaro Hara  <haraken@chromium.org>
164189
164190        [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
164191        https://bugs.webkit.org/show_bug.cgi?id=102639
164192
164193        Reviewed by Adam Barth.
164194
164195        We can replace hard-coded "V8${interfaceName}" with $v8Interface.
164196
164197        No tests. No change in generated code.
164198
164199        * bindings/scripts/CodeGeneratorV8.pm:
164200        (GenerateNormalAttrGetter):
164201        (GenerateNormalAttrSetter):
164202        (GenerateFunctionCallback):
164203        (GenerateNamedConstructorCallback):
164204        (GenerateImplementationIndexer):
164205        (GenerateImplementationNamedPropertyGetter):
164206        (GenerateImplementation):
164207
1642082012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
164209
164210        webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
164211        https://bugs.webkit.org/show_bug.cgi?id=102356
164212
164213        Reviewed by Adam Barth.
164214
164215        A clean-up code was moved from uninitialize to clear method.
164216        AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
164217        m_isStopScheduled filters out second ActiveDOMObject::stop call.
164218        markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
164219        adoptRef was added in createOfflineContext method.
164220
164221        Test: inspector-protocol/nmi-webaudio-leak-test.html
164222
164223        * Modules/webaudio/AudioContext.cpp:
164224        (WebCore::AudioContext::createOfflineContext):
164225        (WebCore::AudioContext::AudioContext):
164226        (WebCore::AudioContext::constructCommon):
164227        (WebCore::AudioContext::~AudioContext):
164228        (WebCore::AudioContext::clear):
164229        (WebCore::AudioContext::uninitialize):
164230        (WebCore::AudioContext::stopDispatch):
164231        (WebCore::AudioContext::stop):
164232        (WebCore::AudioContext::markForDeletion):
164233        (WebCore::AudioContext::scheduleNodeDeletion):
164234        (WebCore::AudioContext::deleteMarkedNodes):
164235        * Modules/webaudio/AudioContext.h:
164236        (AudioContext):
164237        * bindings/v8/custom/V8AudioContextCustom.cpp:
164238        (WebCore::V8AudioContext::constructorCallback):
164239        * inspector/InspectorMemoryAgent.cpp:
164240        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
164241        * platform/PlatformMemoryInstrumentation.cpp:
164242        (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
164243        (WebCore):
164244        * platform/PlatformMemoryInstrumentation.h:
164245        (PlatformMemoryInstrumentation):
164246        (WebCore):
164247
1642482012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
164249
164250        min/max/step support for calendar picker on datetime/datetime-local
164251        https://bugs.webkit.org/show_bug.cgi?id=102628
164252
164253        Reviewed by Kent Tamura.
164254
164255        Gray out dates with no allowed values on calendar picker for datetime/datetime-local
164256        when values are limited by min/max/step attributes.
164257
164258        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
164259
164260        * Resources/pagepopups/calendarPicker.js:
164261        (CalendarPicker.prototype._stepMismatch):
164262        Returns true iff there are any allowed values in the given day.
164263
1642642012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
164265
164266        Remove non-existent directories from the make system
164267        https://bugs.webkit.org/show_bug.cgi?id=102632
164268
164269        Reviewed by Adam Barth.
164270
164271        Remove (non-existent) symbian references from the exclude list in gyp project files.
164272
164273        No new tests as there is no new functionality.
164274
164275        * WebCore.gyp/WebCore.gyp:
164276
1642772012-11-18  Patrick Gansterer  <paroga@webkit.org>
164278
164279        [WIN] Add a IMLangFontLinkType typedef
164280        https://bugs.webkit.org/show_bug.cgi?id=102584
164281
164282        Reviewed by Brent Fulgham.
164283
164284        Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
164285
164286        * platform/graphics/FontCache.h:
164287        (WebCore):
164288        * platform/graphics/win/FontCacheWin.cpp:
164289        (WebCore::FontCache::getFontLinkInterface):
164290        (WebCore::getCJKCodePageMasks):
164291        (WebCore::createMLangFont):
164292        (WebCore::FontCache::getFontDataForCharacters):
164293        * platform/graphics/win/SimpleFontDataWin.cpp:
164294        (WebCore::SimpleFontData::containsCharacters):
164295        * platform/graphics/wince/FontCacheWinCE.cpp:
164296        (WebCore):
164297        (WebCore::FontCache::getFontLinkInterface):
164298        (WebCore::getCJKCodePageMasks):
164299        (WebCore::FontCache::getFontDataForCharacters):
164300        * platform/graphics/wince/FontPlatformData.cpp:
164301        (WebCore::FontFamilyCodePageInfo::codePages):
164302        (WebCore::FixedSizeFontData::create):
164303        * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
164304        (WebCore::GlyphPage::fill):
164305
1643062012-11-18  Mike West  <mkwst@chromium.org>
164307
164308        Web Inspector: Remove unused ConsoleMessage constructor.
164309        https://bugs.webkit.org/show_bug.cgi?id=102590
164310
164311        Reviewed by Brent Fulgham.
164312
164313        We currently have a ConsoleMessage constructor that's unused. Let's
164314        kill it.
164315
164316        * inspector/ConsoleMessage.cpp:
164317        * inspector/ConsoleMessage.h:
164318        (ConsoleMessage):
164319            Removing an unused constructor variant.
164320
1643212012-11-18  Andreas Kling  <akling@apple.com>
164322
164323        StyledElement: Make handling the "style" attribute a litte faster.
164324        <http://webkit.org/b/102623>
164325
164326        Reviewed by Ojan Vafai.
164327
164328        We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
164329        by hoisting the parseAttribute() logic up into attributeChanged().
164330        Did the same thing with Element::parseAttribute() for consistency.
164331
164332        Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
164333
164334        * dom/Element.cpp:
164335        (WebCore::Element::attributeChanged):
164336        * dom/Element.h:
164337        (WebCore::Element::parseAttribute):
164338        * dom/StyledElement.cpp:
164339        (WebCore::StyledElement::attributeChanged):
164340        * dom/StyledElement.h:
164341        (StyledElement):
164342
1643432012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
164344
164345        [CMake] Consolidate common input files
164346        https://bugs.webkit.org/show_bug.cgi?id=101632
164347
164348        Reviewed by Rob Buis.
164349
164350        Consolidate and sort the list of files, move common source files
164351        into CMakeLists.txt from the port specific files.
164352
164353        No new tests as there is no new functionality.
164354
164355        * CMakeLists.txt:
164356        * PlatformBlackBerry.cmake:
164357        * PlatformEfl.cmake:
164358        * PlatformWinCE.cmake:
164359
1643602012-11-18  Andreas Kling  <akling@apple.com>
164361
164362        Tighten small SharedBuffers by reserving the exact amount of space needed.
164363        <http://webkit.org/b/102625>
164364
164365        Reviewed by Anders Carlsson.
164366
164367        When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
164368        amount of space needed instead of leaving it to Vector<char>::append().
164369
164370        1.86MB progression on Membuster3.
164371
164372        * platform/SharedBuffer.cpp:
164373        (WebCore::SharedBuffer::append):
164374
1643752012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
164376
164377        Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
164378        https://bugs.webkit.org/show_bug.cgi?id=101311
164379
164380        Reviewed by Darin Adler.
164381
164382        Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
164383        and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
164384        there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
164385        getter and namedItem return exactly one node or null as specified in HTML5:
164386        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
164387
164388        Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
164389        a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
164390
164391        Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
164392
164393        Test: fast/dom/html-collections-namedItem.html
164394
164395        * CMakeLists.txt:
164396        * DerivedSources.cpp:
164397        * DerivedSources.make:
164398        * DerivedSources.pri:
164399        * GNUmakefile.list.am:
164400        * Target.pri:
164401        * UseJSC.cmake:
164402        * UseV8.cmake:
164403        * WebCore.gypi:
164404        * WebCore.vcproj/WebCore.vcproj:
164405        * WebCore.xcodeproj/project.pbxproj:
164406        * bindings/js/JSBindingsAllInOne.cpp:
164407        * bindings/js/JSHTMLAllCollectionCustom.cpp:
164408        (WebCore::getNamedItems):
164409        * bindings/js/JSHTMLCollectionCustom.cpp:
164410        (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
164411        (WebCore::toJS):
164412        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
164413        (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
164414        (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
164415        (WebCore::JSHTMLFormControlsCollection::nameGetter):
164416        (WebCore::JSHTMLFormControlsCollection::namedItem):
164417        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
164418        (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
164419        This is a bug. It should be a live NodeList instead.
164420        (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
164421        (WebCore::JSHTMLOptionsCollection::nameGetter):
164422        (WebCore::JSHTMLOptionsCollection::namedItem):
164423        * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
164424        * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
164425        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
164426        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
164427        (WebCore::getNamedItems): Added a comment about how we should be returning
164428        a HTMLCollection when there are multiple matches.
164429        (WebCore::getItem):
164430        (WebCore::V8HTMLAllCollection::namedPropertyGetter):
164431        (WebCore::V8HTMLAllCollection::namedItemCallback):
164432        * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
164433        (WebCore::V8HTMLCollection::namedPropertyGetter):
164434        (WebCore::toV8):
164435        * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
164436        (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
164437        (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
164438        (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
164439        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
164440        (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
164441        This is a bug. It should be a live NodeList instead.
164442        (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
164443        (WebCore::V8HTMLOptionsCollection::namedItemCallback):
164444        * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
164445        * dom/Document.h:
164446        (Document):
164447        * dom/Element.cpp:
164448        (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
164449        a HTMLFormControlsCollection instead of a HTMLCollection.
164450        * html/CollectionType.h:
164451        * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
164452        * html/HTMLFieldSetElement.cpp:
164453        * html/HTMLFieldSetElement.h:
164454        * html/HTMLFormCollection.cpp: Removed.
164455        * html/HTMLFormCollection.h: Removed.
164456        * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
164457        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
164458        (WebCore::HTMLFormControlsCollection::create):
164459        (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
164460        (WebCore::HTMLFormControlsCollection::formControlElements):
164461        (WebCore::HTMLFormControlsCollection::formImageElements):
164462        (WebCore::HTMLFormControlsCollection::virtualItemAfter):
164463        (WebCore::HTMLFormControlsCollection::namedItem):
164464        (WebCore::HTMLFormControlsCollection::updateNameCache):
164465        * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
164466        (HTMLFormControlsCollection):
164467        * html/HTMLFormControlsCollection.idl: Added.
164468        * html/HTMLFormElement.cpp:
164469        * html/HTMLFormElement.h:
164470        * html/HTMLOptionsCollection.idl:
164471
1644722012-11-18  Kentaro Hara  <haraken@chromium.org>
164473
164474        [V8] Rename $className to $v8InterfaceName
164475        https://bugs.webkit.org/show_bug.cgi?id=102487
164476
164477        Reviewed by Adam Barth.
164478
164479        In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
164480        We should rename $className to $v8InterfaceName. Also we can
164481        remove GetCallbackClassName().
164482
164483        No tests. No change in behavior.
164484
164485        * bindings/scripts/CodeGeneratorV8.pm:
164486        (GenerateHeader):
164487        (GetHeaderClassInclude):
164488        (GenerateDomainSafeFunctionGetter):
164489        (GenerateDomainSafeFunctionSetter):
164490        (GenerateParametersCheck):
164491        (GenerateImplementation):
164492        (GenerateHeaderContentHeader):
164493        (GenerateImplementationContentHeader):
164494        (GenerateCallbackHeader):
164495        (GenerateCallbackImplementation):
164496        (GenerateToV8Converters):
164497        (GetPassRefPtrType):
164498
1644992012-11-18  Kentaro Hara  <haraken@chromium.org>
164500
164501        [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
164502        https://bugs.webkit.org/show_bug.cgi?id=102499
164503
164504        Reviewed by Adam Barth.
164505
164506        No tests. No change in behavior.
164507
164508        * bindings/scripts/CodeGeneratorV8.pm:
164509        (GenerateNormalAttrGetter):
164510        (GenerateNormalAttrSetter):
164511        (GenerateParametersCheckExpression):
164512        (GenerateParametersCheck):
164513        (GenerateFunctionCallString):
164514        (GetNativeTypeFromSignature):
164515        (TranslateParameter):
164516        (TypeCanFailConversion):
164517        (JSValueToNative):
164518        (NativeToJSValue):
164519
1645202012-11-18  Kentaro Hara  <haraken@chromium.org>
164521
164522        Remove GenerateModule() from all code generators
164523        https://bugs.webkit.org/show_bug.cgi?id=102490
164524
164525        Reviewed by Adam Barth.
164526
164527        WebKit IDL files no longer support modules. The Web IDL spec
164528        no longer supports modules. We can remove it from code generators.
164529
164530        No tests. No change in behavior.
164531
164532        * bindings/scripts/CodeGenerator.pm:
164533        (ProcessDocument):
164534        * bindings/scripts/CodeGeneratorCPP.pm:
164535        * bindings/scripts/CodeGeneratorGObject.pm:
164536        * bindings/scripts/CodeGeneratorJS.pm:
164537        * bindings/scripts/CodeGeneratorObjC.pm:
164538        * bindings/scripts/CodeGeneratorV8.pm:
164539
1645402012-11-18  Kentaro Hara  <haraken@chromium.org>
164541
164542        [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
164543        https://bugs.webkit.org/show_bug.cgi?id=102497
164544
164545        Reviewed by Adam Barth.
164546
164547        No tests. No change in behavior.
164548
164549        * bindings/scripts/CodeGeneratorV8.pm:
164550        (GenerateDomainSafeFunctionGetter):
164551        (GenerateNormalAttrGetter):
164552        (GenerateFunctionCallString):
164553
1645542012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
164555
164556        Unreviewed, rolling out r135074.
164557        http://trac.webkit.org/changeset/135074
164558        https://bugs.webkit.org/show_bug.cgi?id=102619
164559
164560        Made most layout tests crash. (Requested by rakuco on
164561        #webkit).
164562
164563        * PlatformEfl.cmake:
164564        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
164565        (WebCore::GraphicsContext3D::create):
164566        (WebCore::GraphicsContext3D::GraphicsContext3D):
164567        (WebCore::GraphicsContext3D::~GraphicsContext3D):
164568        (WebCore::GraphicsContext3D::makeContextCurrent):
164569        (WebCore::GraphicsContext3D::setContextLostCallback):
164570        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
164571        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
164572        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
164573        (WebCore::GraphicsContext3DPrivate::createSurface):
164574        (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
164575        (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
164576        (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
164577        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
164578        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
164579        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
164580        * platform/graphics/efl/GraphicsContext3DPrivate.h:
164581        (GraphicsContext3DPrivate):
164582        * platform/graphics/opengl/GLDefs.h: Removed.
164583        * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
164584        * platform/graphics/opengl/GLPlatformContext.h: Removed.
164585        * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
164586        * platform/graphics/opengl/GLPlatformSurface.h: Removed.
164587        * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
164588        * platform/graphics/surfaces/glx/GLXContext.h: Removed.
164589        * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
164590        * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
164591
1645922012-11-18  Antti Koivisto  <antti@apple.com>
164593
164594        REGRESSION(r129644): User StyleSheet not applying
164595        https://bugs.webkit.org/show_bug.cgi?id=102110
164596
164597        Reviewed by Andreas Kling.
164598
164599        Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
164600        such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
164601        
164602        The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
164603        It also generally cleans up the code around injected and user stylesheets.
164604
164605        Tests: userscripts/user-script-and-stylesheet.html
164606               userscripts/user-stylesheet-invalidate.html
164607
164608        * css/StyleResolver.cpp:
164609        (WebCore::StyleResolver::StyleResolver):
164610        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
164611        (WebCore::collectCSSOMWrappers):
164612        * css/StyleResolver.h:
164613        (StyleResolver):
164614        * dom/Document.cpp:
164615        (WebCore::Document::setCompatibilityMode):
164616        * dom/DocumentStyleSheetCollection.cpp:
164617        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
164618        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
164619        (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
164620        (WebCore):
164621        (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
164622        (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
164623        (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
164624        (WebCore::DocumentStyleSheetCollection::addUserSheet):
164625        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
164626        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
164627        * dom/DocumentStyleSheetCollection.h:
164628        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
164629        (DocumentStyleSheetCollection):
164630        * page/PageGroup.cpp:
164631        (WebCore::PageGroup::addUserStyleSheetToWorld):
164632        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
164633        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
164634        (WebCore::PageGroup::removeAllUserContent):
164635        (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
164636        * page/PageGroup.h:
164637        (PageGroup):
164638
1646392012-11-18  Adam Barth  <abarth@webkit.org>
164640
164641        Unreviewed.
164642
164643        Update run-bindings-tests baselines after
164644        http://trac.webkit.org/changeset/135063
164645
164646        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
164647        (JSTestActiveDOMObjectOwner):
164648        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
164649        (JSTestCustomNamedGetterOwner):
164650        * bindings/scripts/test/JS/JSTestEventConstructor.h:
164651        (JSTestEventConstructorOwner):
164652        * bindings/scripts/test/JS/JSTestEventTarget.h:
164653        (JSTestEventTargetOwner):
164654        * bindings/scripts/test/JS/JSTestException.h:
164655        (JSTestExceptionOwner):
164656        * bindings/scripts/test/JS/JSTestInterface.h:
164657        (JSTestInterfaceOwner):
164658        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
164659        (JSTestMediaQueryListListenerOwner):
164660        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
164661        (JSTestNamedConstructorOwner):
164662        * bindings/scripts/test/JS/JSTestObj.h:
164663        (JSTestObjOwner):
164664        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
164665        (JSTestOverloadedConstructorsOwner):
164666        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
164667        (JSTestSerializedScriptValueInterfaceOwner):
164668
1646692012-11-18  Simon Fraser  <simon.fraser@apple.com>
164670
164671        Make convertToLayerCoords iterative, rather than recursive
164672        https://bugs.webkit.org/show_bug.cgi?id=102618
164673
164674        Reviewed by Antti Koivisto.
164675
164676        RenderLayer::convertToLayerCoords() is a hot function on profiles.
164677        Change it to be iterative, rather than recursive, so that the
164678        bulk of the function can be inlined.
164679        
164680        Was tested with assertions against the old code during development.
164681
164682        * rendering/RenderLayer.cpp:
164683        (WebCore::accumulateOffsetTowardsAncestor):
164684        (WebCore::RenderLayer::convertToLayerCoords):
164685
1646862012-11-18  Andreas Kling  <akling@apple.com>
164687
164688        Inline the StyledElement constructor.
164689        <http://webkit.org/b/102615>
164690
164691        Reviewed by Antti Koivisto.
164692
164693        StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
164694        Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
164695
164696        * dom/StyledElement.cpp:
164697        * dom/StyledElement.h:
164698        (WebCore::StyledElement::StyledElement):
164699
1647002012-11-18  Andreas Kling  <akling@apple.com>
164701
164702        HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
164703        <http://webkit.org/b/102614>
164704
164705        Reviewed by Anders Carlsson.
164706
164707        When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
164708        to know if it's present. If it's not present, 'value' argument will be null.
164709
164710        * html/HTMLMediaElement.cpp:
164711        (WebCore::HTMLMediaElement::parseAttribute):
164712
1647132012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
164714
164715        [EFL] Refactor GraphicsContext3DEFL.
164716        https://bugs.webkit.org/show_bug.cgi?id=101291.
164717
164718        Reviewed by Kenneth Rohde Christiansen.
164719
164720        GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
164721        GraphicsContext3DPrivate needs to handle the following cases:
164722        1) To provide an off-screen buffer for accelerated composition.
164723        2) Render to a current context.
164724        3) To render directly to host window. (currently not supported.)
164725
164726        Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
164727        the other supported case. Evas acts as a glue layer to provide us with appropriate
164728        GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
164729        However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
164730
164731        It would be for our advantage to be able to take in to use any optimisations/extensions
164732        provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
164733        This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
164734        and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
164735        Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
164736        GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
164737
164738        GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
164739        It uses GL extension ARB_robustness (when available) to detect driver resets.
164740        It defines a simple interface for things that need to be handled by the context. Support
164741        for multi-threaded usage and shared context-group would be added later.
164742
164743        GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
164744        It defines a simple interface for things that need to be handled by the surface.
164745        It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
164746        can be used to render into this off-screen area.
164747
164748        This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
164749
164750        * PlatformEfl.cmake:
164751        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
164752        (WebCore::GraphicsContext3D::create):
164753        (WebCore::GraphicsContext3D::GraphicsContext3D):
164754        (WebCore::GraphicsContext3D::~GraphicsContext3D):
164755        (WebCore::GraphicsContext3D::makeContextCurrent):
164756        (WebCore::GraphicsContext3D::setContextLostCallback):
164757        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
164758        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
164759        (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
164760        (GraphicsContext3DPrivate::releaseResources):
164761        (GraphicsContext3DPrivate::setContextLostCallback):
164762        (GraphicsContext3DPrivate::platformGraphicsContext3D):
164763        (GraphicsContext3DPrivate::makeContextCurrent):
164764        (GraphicsContext3DPrivate::createGraphicsSurfaces):
164765        (GraphicsContext3DPrivate::copyToGraphicsSurface):
164766        (GraphicsContext3DPrivate::graphicsSurfaceToken):
164767        * platform/graphics/efl/GraphicsContext3DPrivate.h:
164768        (GraphicsContext3DPrivate):
164769        * platform/graphics/opengl/GLDefs.h: Added.
164770        (WebCore):
164771        * platform/graphics/opengl/GLPlatformContext.cpp: Added.
164772        (WebCore):
164773        (WebCore::GLPlatformContext::createContext):
164774        (WebCore::GLPlatformContext::createOffScreenContext):
164775        (WebCore::GLPlatformContext::createCurrentContextWrapper):
164776        (WebCore::GLPlatformContext::GLPlatformContext):
164777        (WebCore::GLPlatformContext::~GLPlatformContext):
164778        (WebCore::GLPlatformContext::makeCurrent):
164779        (WebCore::GLPlatformContext::isValid):
164780        (WebCore::GLPlatformContext::releaseCurrent):
164781        (WebCore::GLPlatformContext::handle):
164782        (WebCore::GLPlatformContext::isCurrentContext):
164783        (WebCore::GLPlatformContext::initialize):
164784        (WebCore::GLPlatformContext::getCurrent):
164785        (WebCore::GLPlatformContext::platformMakeCurrent):
164786        (WebCore::GLPlatformContext::platformReleaseCurrent):
164787        (WebCore::GLPlatformContext::destroy):
164788        * platform/graphics/opengl/GLPlatformContext.h: Added.
164789        (WebCore):
164790        (GLPlatformContext):
164791        * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
164792        (WebCore):
164793        (WebCore::GLPlatformSurface::createOffscreenSurface):
164794        (WebCore::GLPlatformSurface::createTransportSurface):
164795        (WebCore::GLPlatformSurface::GLPlatformSurface):
164796        (WebCore::GLPlatformSurface::~GLPlatformSurface):
164797        (WebCore::GLPlatformSurface::handle):
164798        (WebCore::GLPlatformSurface::geometry):
164799        (WebCore::GLPlatformSurface::sharedDisplay):
164800        (WebCore::GLPlatformSurface::configuration):
164801        (WebCore::GLPlatformSurface::swapBuffers):
164802        (WebCore::GLPlatformSurface::copyTexture):
164803        (WebCore::GLPlatformSurface::updateContents):
164804        (WebCore::GLPlatformSurface::setGeometry):
164805        (WebCore::GLPlatformSurface::destroy):
164806        * platform/graphics/opengl/GLPlatformSurface.h: Added.
164807        (WebCore):
164808        (GLPlatformSurface):
164809            GLXOffScreenContext creates an off-screen context. This is used when
164810            renderstyle is RenderOffscreen.
164811            It uses GL extension GLX_ARB_create_context (when available)
164812            to create a context else falls back to use glXCreateNewContext.
164813        * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
164814        (WebCore):
164815        (WebCore::initializeARBExtensions):
164816        (WebCore::GLXOffScreenContext::GLXOffScreenContext):
164817        (WebCore::GLXOffScreenContext::initialize):
164818        (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
164819        (WebCore::GLXOffScreenContext::isCurrentContext):
164820        (WebCore::GLXOffScreenContext::platformMakeCurrent):
164821        (WebCore::GLXOffScreenContext::platformReleaseCurrent):
164822        (WebCore::GLXOffScreenContext::freeResources):
164823        (WebCore::GLXOffScreenContext::destroy):
164824            GLXCurrentContextWrapper acts as a wrapper for current context.
164825            This is used when renderstyle is RenderToCurrentGLContext.
164826        * platform/graphics/surfaces/glx/GLXContext.h: Added.
164827        (WebCore):
164828        (GLXCurrentContextWrapper):
164829        (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
164830        (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
164831        (GLXOffScreenContext):
164832        * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
164833        (WebCore):
164834        (WebCore::GLXSurface::GLXSurface):
164835        (WebCore::GLXSurface::~GLXSurface):
164836        (WebCore::GLXSurface::visualInfo):
164837        (WebCore::GLXSurface::xWindow):
164838        (WebCore::GLXSurface::pBufferConfiguration):
164839        (WebCore::GLXSurface::transportSurfaceConfiguration):
164840        (WebCore::GLXSurface::isXRenderExtensionSupported):
164841            GLXTransportSurface creates Window and uses it as an off-screen surface.
164842            Any GLContext that was created with respect to configuration can be used
164843            to render into this.
164844            This is used when contents of the buffer are to be provided to UI Process
164845            for display.
164846        (WebCore::GLXTransportSurface::GLXTransportSurface):
164847        (WebCore::GLXTransportSurface::~GLXTransportSurface):
164848        (WebCore::GLXTransportSurface::configuration):
164849        (WebCore::GLXTransportSurface::swapBuffers):
164850        (WebCore::GLXTransportSurface::setGeometry):
164851        (WebCore::GLXTransportSurface::initialize):
164852        (WebCore::GLXTransportSurface::destroy):
164853        (WebCore::GLXTransportSurface::freeResources):
164854           GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
164855           Any GLContext that was created with respect to configuration can be used
164856           to render into this.
164857        (WebCore::GLXPBuffer::GLXPBuffer):
164858        (WebCore::GLXPBuffer::~GLXPBuffer):
164859        (WebCore::GLXPBuffer::initialize):
164860        (WebCore::GLXPBuffer::configuration):
164861        (WebCore::GLXPBuffer::destroy):
164862        (WebCore::GLXPBuffer::freeResources):
164863        * platform/graphics/surfaces/glx/GLXSurface.h: Added.
164864        (WebCore):
164865            Creates X resources which are shared between surface and context.
164866        (SharedX11Resources):
164867        (WebCore::SharedX11Resources::create):
164868        (WebCore::SharedX11Resources::deref):
164869        (WebCore::SharedX11Resources::getXWindow):
164870        (WebCore::SharedX11Resources::display):
164871        (WebCore::SharedX11Resources::visualInfo):
164872        (WebCore::SharedX11Resources::createConfig):
164873        (WebCore::SharedX11Resources::pBufferContextConfig):
164874        (WebCore::SharedX11Resources::surfaceContextConfig):
164875        (WebCore::SharedX11Resources::isXRenderExtensionSupported):
164876        (WebCore::SharedX11Resources::SharedX11Resources):
164877        (WebCore::SharedX11Resources::~SharedX11Resources):
164878        (GLXSurface):
164879        (GLXTransportSurface):
164880        (GLXPBuffer):
164881
1648822012-11-18  Andreas Kling  <akling@apple.com>
164883
164884        Element::parseAttribute() should take name & value as separate arguments.
164885        <http://webkit.org/b/102608>
164886
164887        Reviewed by Antti Koivisto.
164888
164889        Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
164890        of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
164891        creating a temporary Attribute is no longer necessary.
164892
164893        This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
164894
164895        * bindings/js/ScriptEventListener.cpp:
164896        (WebCore::createAttributeEventListener):
164897        * bindings/js/ScriptEventListener.h:
164898        (WebCore):
164899        * bindings/v8/ScriptEventListener.cpp:
164900        (WebCore::createAttributeEventListener):
164901        * bindings/v8/ScriptEventListener.h:
164902        (WebCore):
164903        * dom/Element.cpp:
164904        (WebCore::Element::attributeChanged):
164905        (WebCore::Element::parseAttribute):
164906        * dom/Element.h:
164907        (Element):
164908        * dom/StyledElement.cpp:
164909        (WebCore::StyledElement::parseAttribute):
164910        * dom/StyledElement.h:
164911        (StyledElement):
164912        * html/HTMLAnchorElement.cpp:
164913        (WebCore::HTMLAnchorElement::parseAttribute):
164914        * html/HTMLAnchorElement.h:
164915        (HTMLAnchorElement):
164916        * html/HTMLAppletElement.cpp:
164917        (WebCore::HTMLAppletElement::parseAttribute):
164918        * html/HTMLAppletElement.h:
164919        (HTMLAppletElement):
164920        * html/HTMLAreaElement.cpp:
164921        (WebCore::HTMLAreaElement::parseAttribute):
164922        * html/HTMLAreaElement.h:
164923        (HTMLAreaElement):
164924        * html/HTMLBaseElement.cpp:
164925        (WebCore::HTMLBaseElement::parseAttribute):
164926        * html/HTMLBaseElement.h:
164927        (HTMLBaseElement):
164928        * html/HTMLBodyElement.cpp:
164929        (WebCore::HTMLBodyElement::parseAttribute):
164930        * html/HTMLBodyElement.h:
164931        (HTMLBodyElement):
164932        * html/HTMLButtonElement.cpp:
164933        (WebCore::HTMLButtonElement::parseAttribute):
164934        * html/HTMLButtonElement.h:
164935        * html/HTMLCanvasElement.cpp:
164936        (WebCore::HTMLCanvasElement::parseAttribute):
164937        * html/HTMLCanvasElement.h:
164938        (HTMLCanvasElement):
164939        * html/HTMLDetailsElement.cpp:
164940        (WebCore::HTMLDetailsElement::parseAttribute):
164941        * html/HTMLDetailsElement.h:
164942        (HTMLDetailsElement):
164943        * html/HTMLElement.cpp:
164944        (WebCore::HTMLElement::parseAttribute):
164945        (WebCore::HTMLElement::dirAttributeChanged):
164946        * html/HTMLElement.h:
164947        (HTMLElement):
164948        * html/HTMLEmbedElement.cpp:
164949        (WebCore::HTMLEmbedElement::parseAttribute):
164950        * html/HTMLEmbedElement.h:
164951        (HTMLEmbedElement):
164952        * html/HTMLFormControlElement.cpp:
164953        (WebCore::HTMLFormControlElement::parseAttribute):
164954        * html/HTMLFormControlElement.h:
164955        (HTMLFormControlElement):
164956        * html/HTMLFormElement.cpp:
164957        (WebCore::HTMLFormElement::parseAttribute):
164958        * html/HTMLFormElement.h:
164959        (HTMLFormElement):
164960        * html/HTMLFrameElement.cpp:
164961        (WebCore::HTMLFrameElement::parseAttribute):
164962        * html/HTMLFrameElement.h:
164963        (HTMLFrameElement):
164964        * html/HTMLFrameElementBase.cpp:
164965        (WebCore::HTMLFrameElementBase::parseAttribute):
164966        * html/HTMLFrameElementBase.h:
164967        (HTMLFrameElementBase):
164968        * html/HTMLFrameSetElement.cpp:
164969        (WebCore::HTMLFrameSetElement::parseAttribute):
164970        * html/HTMLFrameSetElement.h:
164971        (HTMLFrameSetElement):
164972        * html/HTMLIFrameElement.cpp:
164973        (WebCore::HTMLIFrameElement::parseAttribute):
164974        * html/HTMLIFrameElement.h:
164975        (HTMLIFrameElement):
164976        * html/HTMLImageElement.cpp:
164977        (WebCore::HTMLImageElement::parseAttribute):
164978        * html/HTMLImageElement.h:
164979        (HTMLImageElement):
164980        * html/HTMLInputElement.cpp:
164981        (WebCore::HTMLInputElement::parseAttribute):
164982        (WebCore::HTMLInputElement::parseMaxLengthAttribute):
164983        * html/HTMLInputElement.h:
164984        (HTMLInputElement):
164985        * html/HTMLKeygenElement.cpp:
164986        (WebCore::HTMLKeygenElement::parseAttribute):
164987        * html/HTMLKeygenElement.h:
164988        (HTMLKeygenElement):
164989        * html/HTMLLIElement.cpp:
164990        (WebCore::HTMLLIElement::parseAttribute):
164991        * html/HTMLLIElement.h:
164992        (HTMLLIElement):
164993        * html/HTMLLinkElement.cpp:
164994        (WebCore::HTMLLinkElement::parseAttribute):
164995        * html/HTMLLinkElement.h:
164996        (HTMLLinkElement):
164997        * html/HTMLMapElement.cpp:
164998        (WebCore::HTMLMapElement::parseAttribute):
164999        * html/HTMLMapElement.h:
165000        (HTMLMapElement):
165001        * html/HTMLMediaElement.cpp:
165002        (WebCore::HTMLMediaElement::parseAttribute):
165003        * html/HTMLMediaElement.h:
165004        * html/HTMLMetaElement.cpp:
165005        (WebCore::HTMLMetaElement::parseAttribute):
165006        * html/HTMLMetaElement.h:
165007        (HTMLMetaElement):
165008        * html/HTMLMeterElement.cpp:
165009        (WebCore::HTMLMeterElement::parseAttribute):
165010        * html/HTMLMeterElement.h:
165011        (HTMLMeterElement):
165012        * html/HTMLOListElement.cpp:
165013        (WebCore::HTMLOListElement::parseAttribute):
165014        * html/HTMLOListElement.h:
165015        (HTMLOListElement):
165016        * html/HTMLObjectElement.cpp:
165017        (WebCore::HTMLObjectElement::parseAttribute):
165018        * html/HTMLObjectElement.h:
165019        (HTMLObjectElement):
165020        * html/HTMLOptGroupElement.cpp:
165021        (WebCore::HTMLOptGroupElement::parseAttribute):
165022        * html/HTMLOptGroupElement.h:
165023        * html/HTMLOptionElement.cpp:
165024        (WebCore::HTMLOptionElement::parseAttribute):
165025        * html/HTMLOptionElement.h:
165026        (HTMLOptionElement):
165027        * html/HTMLOutputElement.cpp:
165028        (WebCore::HTMLOutputElement::parseAttribute):
165029        * html/HTMLOutputElement.h:
165030        (HTMLOutputElement):
165031        * html/HTMLProgressElement.cpp:
165032        (WebCore::HTMLProgressElement::parseAttribute):
165033        * html/HTMLProgressElement.h:
165034        * html/HTMLScriptElement.cpp:
165035        (WebCore::HTMLScriptElement::parseAttribute):
165036        * html/HTMLScriptElement.h:
165037        (HTMLScriptElement):
165038        * html/HTMLSelectElement.cpp:
165039        (WebCore::HTMLSelectElement::parseAttribute):
165040        (WebCore::HTMLSelectElement::parseMultipleAttribute):
165041        * html/HTMLSelectElement.h:
165042        * html/HTMLStyleElement.cpp:
165043        (WebCore::HTMLStyleElement::parseAttribute):
165044        * html/HTMLStyleElement.h:
165045        (HTMLStyleElement):
165046        * html/HTMLTableCellElement.cpp:
165047        (WebCore::HTMLTableCellElement::parseAttribute):
165048        * html/HTMLTableCellElement.h:
165049        (HTMLTableCellElement):
165050        * html/HTMLTableColElement.cpp:
165051        (WebCore::HTMLTableColElement::parseAttribute):
165052        * html/HTMLTableColElement.h:
165053        (HTMLTableColElement):
165054        * html/HTMLTableElement.cpp:
165055        (WebCore::HTMLTableElement::parseAttribute):
165056        * html/HTMLTableElement.h:
165057        (HTMLTableElement):
165058        * html/HTMLTextAreaElement.cpp:
165059        (WebCore::HTMLTextAreaElement::parseAttribute):
165060        * html/HTMLTextAreaElement.h:
165061        (HTMLTextAreaElement):
165062        * html/HTMLTextFormControlElement.cpp:
165063        (WebCore::HTMLTextFormControlElement::parseAttribute):
165064        * html/HTMLTextFormControlElement.h:
165065        (HTMLTextFormControlElement):
165066        * html/HTMLTrackElement.cpp:
165067        (WebCore::HTMLTrackElement::parseAttribute):
165068        * html/HTMLTrackElement.h:
165069        (HTMLTrackElement):
165070        * html/HTMLVideoElement.cpp:
165071        (WebCore::HTMLVideoElement::parseAttribute):
165072        * html/HTMLVideoElement.h:
165073        (HTMLVideoElement):
165074        * html/shadow/HTMLContentElement.cpp:
165075        (WebCore::HTMLContentElement::parseAttribute):
165076        * html/shadow/HTMLContentElement.h:
165077        (HTMLContentElement):
165078        * mathml/MathMLElement.cpp:
165079        (WebCore::MathMLElement::parseAttribute):
165080        * mathml/MathMLElement.h:
165081        (MathMLElement):
165082        * svg/SVGAElement.cpp:
165083        (WebCore::SVGAElement::parseAttribute):
165084        * svg/SVGAElement.h:
165085        (SVGAElement):
165086        * svg/SVGAnimateMotionElement.cpp:
165087        (WebCore::SVGAnimateMotionElement::parseAttribute):
165088        * svg/SVGAnimateMotionElement.h:
165089        (SVGAnimateMotionElement):
165090        * svg/SVGAnimateTransformElement.cpp:
165091        (WebCore::SVGAnimateTransformElement::parseAttribute):
165092        * svg/SVGAnimateTransformElement.h:
165093        (SVGAnimateTransformElement):
165094        * svg/SVGAnimationElement.cpp:
165095        (WebCore::SVGAnimationElement::parseAttribute):
165096        * svg/SVGAnimationElement.h:
165097        (SVGAnimationElement):
165098        * svg/SVGCircleElement.cpp:
165099        (WebCore::SVGCircleElement::parseAttribute):
165100        * svg/SVGCircleElement.h:
165101        (SVGCircleElement):
165102        * svg/SVGClipPathElement.cpp:
165103        (WebCore::SVGClipPathElement::parseAttribute):
165104        * svg/SVGClipPathElement.h:
165105        (SVGClipPathElement):
165106        * svg/SVGComponentTransferFunctionElement.cpp:
165107        (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
165108        * svg/SVGComponentTransferFunctionElement.h:
165109        (SVGComponentTransferFunctionElement):
165110        * svg/SVGCursorElement.cpp:
165111        (WebCore::SVGCursorElement::parseAttribute):
165112        * svg/SVGCursorElement.h:
165113        (SVGCursorElement):
165114        * svg/SVGElement.cpp:
165115        (WebCore::SVGElement::reportAttributeParsingError):
165116        (WebCore::SVGElement::parseAttribute):
165117        * svg/SVGElement.h:
165118        (SVGElement):
165119        * svg/SVGEllipseElement.cpp:
165120        (WebCore::SVGEllipseElement::parseAttribute):
165121        * svg/SVGEllipseElement.h:
165122        (SVGEllipseElement):
165123        * svg/SVGExternalResourcesRequired.cpp:
165124        (WebCore::SVGExternalResourcesRequired::parseAttribute):
165125        * svg/SVGExternalResourcesRequired.h:
165126        (SVGExternalResourcesRequired):
165127        * svg/SVGFEBlendElement.cpp:
165128        (WebCore::SVGFEBlendElement::parseAttribute):
165129        * svg/SVGFEBlendElement.h:
165130        (SVGFEBlendElement):
165131        * svg/SVGFEColorMatrixElement.cpp:
165132        (WebCore::SVGFEColorMatrixElement::parseAttribute):
165133        * svg/SVGFEColorMatrixElement.h:
165134        (SVGFEColorMatrixElement):
165135        * svg/SVGFEComponentTransferElement.cpp:
165136        (WebCore::SVGFEComponentTransferElement::parseAttribute):
165137        * svg/SVGFEComponentTransferElement.h:
165138        (SVGFEComponentTransferElement):
165139        * svg/SVGFECompositeElement.cpp:
165140        (WebCore::SVGFECompositeElement::parseAttribute):
165141        * svg/SVGFECompositeElement.h:
165142        (SVGFECompositeElement):
165143        * svg/SVGFEConvolveMatrixElement.cpp:
165144        (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
165145        * svg/SVGFEConvolveMatrixElement.h:
165146        (SVGFEConvolveMatrixElement):
165147        * svg/SVGFEDiffuseLightingElement.cpp:
165148        (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
165149        * svg/SVGFEDiffuseLightingElement.h:
165150        (SVGFEDiffuseLightingElement):
165151        * svg/SVGFEDisplacementMapElement.cpp:
165152        (WebCore::SVGFEDisplacementMapElement::parseAttribute):
165153        * svg/SVGFEDisplacementMapElement.h:
165154        (SVGFEDisplacementMapElement):
165155        * svg/SVGFEDropShadowElement.cpp:
165156        (WebCore::SVGFEDropShadowElement::parseAttribute):
165157        * svg/SVGFEDropShadowElement.h:
165158        (SVGFEDropShadowElement):
165159        * svg/SVGFEGaussianBlurElement.cpp:
165160        (WebCore::SVGFEGaussianBlurElement::parseAttribute):
165161        * svg/SVGFEGaussianBlurElement.h:
165162        (SVGFEGaussianBlurElement):
165163        * svg/SVGFEImageElement.cpp:
165164        (WebCore::SVGFEImageElement::parseAttribute):
165165        * svg/SVGFEImageElement.h:
165166        (SVGFEImageElement):
165167        * svg/SVGFELightElement.cpp:
165168        (WebCore::SVGFELightElement::parseAttribute):
165169        * svg/SVGFELightElement.h:
165170        (SVGFELightElement):
165171        * svg/SVGFEMergeNodeElement.cpp:
165172        (WebCore::SVGFEMergeNodeElement::parseAttribute):
165173        * svg/SVGFEMergeNodeElement.h:
165174        (SVGFEMergeNodeElement):
165175        * svg/SVGFEMorphologyElement.cpp:
165176        (WebCore::SVGFEMorphologyElement::parseAttribute):
165177        * svg/SVGFEMorphologyElement.h:
165178        (SVGFEMorphologyElement):
165179        * svg/SVGFEOffsetElement.cpp:
165180        (WebCore::SVGFEOffsetElement::parseAttribute):
165181        * svg/SVGFEOffsetElement.h:
165182        (SVGFEOffsetElement):
165183        * svg/SVGFESpecularLightingElement.cpp:
165184        (WebCore::SVGFESpecularLightingElement::parseAttribute):
165185        * svg/SVGFESpecularLightingElement.h:
165186        (SVGFESpecularLightingElement):
165187        * svg/SVGFETileElement.cpp:
165188        (WebCore::SVGFETileElement::parseAttribute):
165189        * svg/SVGFETileElement.h:
165190        (SVGFETileElement):
165191        * svg/SVGFETurbulenceElement.cpp:
165192        (WebCore::SVGFETurbulenceElement::parseAttribute):
165193        * svg/SVGFETurbulenceElement.h:
165194        (SVGFETurbulenceElement):
165195        * svg/SVGFilterElement.cpp:
165196        (WebCore::SVGFilterElement::parseAttribute):
165197        * svg/SVGFilterElement.h:
165198        (SVGFilterElement):
165199        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
165200        (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
165201        * svg/SVGFilterPrimitiveStandardAttributes.h:
165202        (SVGFilterPrimitiveStandardAttributes):
165203        * svg/SVGFitToViewBox.h:
165204        (WebCore::SVGFitToViewBox::parseAttribute):
165205        * svg/SVGFontFaceElement.cpp:
165206        (WebCore::SVGFontFaceElement::parseAttribute):
165207        * svg/SVGFontFaceElement.h:
165208        (SVGFontFaceElement):
165209        * svg/SVGFontFaceUriElement.cpp:
165210        (WebCore::SVGFontFaceUriElement::parseAttribute):
165211        * svg/SVGFontFaceUriElement.h:
165212        (SVGFontFaceUriElement):
165213        * svg/SVGForeignObjectElement.cpp:
165214        (WebCore::SVGForeignObjectElement::parseAttribute):
165215        * svg/SVGForeignObjectElement.h:
165216        (SVGForeignObjectElement):
165217        * svg/SVGGElement.cpp:
165218        (WebCore::SVGGElement::parseAttribute):
165219        * svg/SVGGElement.h:
165220        (SVGGElement):
165221        * svg/SVGGlyphElement.cpp:
165222        (WebCore::SVGGlyphElement::parseAttribute):
165223        * svg/SVGGlyphElement.h:
165224        (SVGGlyphElement):
165225        * svg/SVGGlyphRefElement.cpp:
165226        (WebCore::SVGGlyphRefElement::parseAttribute):
165227        * svg/SVGGlyphRefElement.h:
165228        * svg/SVGGradientElement.cpp:
165229        (WebCore::SVGGradientElement::parseAttribute):
165230        * svg/SVGGradientElement.h:
165231        * svg/SVGImageElement.cpp:
165232        (WebCore::SVGImageElement::parseAttribute):
165233        * svg/SVGImageElement.h:
165234        (SVGImageElement):
165235        * svg/SVGLangSpace.cpp:
165236        (WebCore::SVGLangSpace::parseAttribute):
165237        * svg/SVGLangSpace.h:
165238        (SVGLangSpace):
165239        * svg/SVGLineElement.cpp:
165240        (WebCore::SVGLineElement::parseAttribute):
165241        * svg/SVGLineElement.h:
165242        (SVGLineElement):
165243        * svg/SVGLinearGradientElement.cpp:
165244        (WebCore::SVGLinearGradientElement::parseAttribute):
165245        * svg/SVGLinearGradientElement.h:
165246        (SVGLinearGradientElement):
165247        * svg/SVGMPathElement.cpp:
165248        (WebCore::SVGMPathElement::parseAttribute):
165249        * svg/SVGMPathElement.h:
165250        (SVGMPathElement):
165251        * svg/SVGMarkerElement.cpp:
165252        (WebCore::SVGMarkerElement::parseAttribute):
165253        * svg/SVGMarkerElement.h:
165254        (SVGMarkerElement):
165255        * svg/SVGMaskElement.cpp:
165256        (WebCore::SVGMaskElement::parseAttribute):
165257        * svg/SVGMaskElement.h:
165258        (SVGMaskElement):
165259        * svg/SVGPathElement.cpp:
165260        (WebCore::SVGPathElement::parseAttribute):
165261        * svg/SVGPathElement.h:
165262        (SVGPathElement):
165263        * svg/SVGPatternElement.cpp:
165264        (WebCore::SVGPatternElement::parseAttribute):
165265        * svg/SVGPatternElement.h:
165266        (SVGPatternElement):
165267        * svg/SVGPolyElement.cpp:
165268        (WebCore::SVGPolyElement::parseAttribute):
165269        * svg/SVGPolyElement.h:
165270        (SVGPolyElement):
165271        * svg/SVGRadialGradientElement.cpp:
165272        (WebCore::SVGRadialGradientElement::parseAttribute):
165273        * svg/SVGRadialGradientElement.h:
165274        (SVGRadialGradientElement):
165275        * svg/SVGRectElement.cpp:
165276        (WebCore::SVGRectElement::parseAttribute):
165277        * svg/SVGRectElement.h:
165278        (SVGRectElement):
165279        * svg/SVGSVGElement.cpp:
165280        (WebCore::SVGSVGElement::parseAttribute):
165281        * svg/SVGSVGElement.h:
165282        (SVGSVGElement):
165283        * svg/SVGScriptElement.cpp:
165284        (WebCore::SVGScriptElement::parseAttribute):
165285        * svg/SVGScriptElement.h:
165286        (SVGScriptElement):
165287        * svg/SVGStopElement.cpp:
165288        (WebCore::SVGStopElement::parseAttribute):
165289        * svg/SVGStopElement.h:
165290        (SVGStopElement):
165291        * svg/SVGStyleElement.cpp:
165292        (WebCore::SVGStyleElement::parseAttribute):
165293        * svg/SVGStyleElement.h:
165294        (SVGStyleElement):
165295        * svg/SVGStyledElement.cpp:
165296        (WebCore::SVGStyledElement::parseAttribute):
165297        * svg/SVGStyledElement.h:
165298        (SVGStyledElement):
165299        * svg/SVGStyledTransformableElement.cpp:
165300        (WebCore::SVGStyledTransformableElement::parseAttribute):
165301        * svg/SVGStyledTransformableElement.h:
165302        (SVGStyledTransformableElement):
165303        * svg/SVGSymbolElement.cpp:
165304        (WebCore::SVGSymbolElement::parseAttribute):
165305        * svg/SVGSymbolElement.h:
165306        (SVGSymbolElement):
165307        * svg/SVGTRefElement.cpp:
165308        (WebCore::SVGTRefElement::parseAttribute):
165309        * svg/SVGTRefElement.h:
165310        (SVGTRefElement):
165311        * svg/SVGTests.cpp:
165312        (WebCore::SVGTests::parseAttribute):
165313        * svg/SVGTests.h:
165314        (SVGTests):
165315        * svg/SVGTextContentElement.cpp:
165316        (WebCore::SVGTextContentElement::parseAttribute):
165317        * svg/SVGTextContentElement.h:
165318        (SVGTextContentElement):
165319        * svg/SVGTextElement.cpp:
165320        (WebCore::SVGTextElement::parseAttribute):
165321        * svg/SVGTextElement.h:
165322        (SVGTextElement):
165323        * svg/SVGTextPathElement.cpp:
165324        (WebCore::SVGTextPathElement::parseAttribute):
165325        * svg/SVGTextPathElement.h:
165326        * svg/SVGTextPositioningElement.cpp:
165327        (WebCore::SVGTextPositioningElement::parseAttribute):
165328        * svg/SVGTextPositioningElement.h:
165329        (SVGTextPositioningElement):
165330        * svg/SVGURIReference.cpp:
165331        (WebCore::SVGURIReference::parseAttribute):
165332        * svg/SVGURIReference.h:
165333        (SVGURIReference):
165334        * svg/SVGUseElement.cpp:
165335        (WebCore::SVGUseElement::parseAttribute):
165336        * svg/SVGUseElement.h:
165337        (SVGUseElement):
165338        * svg/SVGViewElement.cpp:
165339        (WebCore::SVGViewElement::parseAttribute):
165340        * svg/SVGViewElement.h:
165341        (SVGViewElement):
165342        * svg/SVGZoomAndPan.h:
165343        (WebCore::SVGZoomAndPan::parseAttribute):
165344        * svg/animation/SVGSMILElement.cpp:
165345        (WebCore::SVGSMILElement::parseAttribute):
165346        * svg/animation/SVGSMILElement.h:
165347        (SVGSMILElement):
165348
1653492012-11-18  Andreas Kling  <akling@apple.com>
165350
165351        StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
165352        <http://webkit.org/b/102596>
165353
165354        Reviewed by Antti Koivisto.
165355
165356        Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
165357        later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
165358
165359        * css/StyleResolver.cpp:
165360        (WebCore::haveIdenticalStyleAffectingAttributes):
165361
1653622012-11-17  Jon Lee  <jonlee@apple.com>
165363
165364        Simulated mouse events should return an accurate offset
165365        https://bugs.webkit.org/show_bug.cgi?id=102606
165366        <rdar://problem/12725627>
165367
165368        Reviewed by Brady Eidson.
165369
165370        A check to see if the event is simulated prior to calculating the offset has existed for a
165371        long time (since at least r14916). Back then the check was needed because the offset was
165372        incrementally adjusted when the target was assigned (through
165373        MouseRelatedEvent::receivedTarget()).
165374
165375        Since r82225, we started calculating the offset only when needed, and calculating the offset
165376        from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
165377        the isSimulated check is irrelevant, and we should remove it.
165378
165379        Tests are not possible because all uses of simulated mouse events provide no underlying
165380        event, so the offset is never recalculated.
165381
165382        * dom/MouseRelatedEvent.cpp:
165383        (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
165384
1653852012-11-17  Simon Fraser  <simon.fraser@apple.com>
165386
165387        Don't say there are dirty overlay scrollbars when they are clipped out
165388        https://bugs.webkit.org/show_bug.cgi?id=102609
165389
165390        Reviewed by Brady Eidson.
165391
165392        Painting overlay scrollbars involves a second painting pass over the entire
165393        RenderLayer subtree for a compositing layer, which can be very expensive.
165394        
165395        Avoid this when possible by detecting when overflow controls are not in
165396        the damage rect.
165397
165398        * rendering/RenderLayer.cpp:
165399        (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
165400        for the horizontal scrollbar.
165401        (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
165402        for the vertical scrollbar.
165403        (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
165404        and rectForVerticalScrollbar().
165405        (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
165406        of the present overflow controls intersect the given local rect.
165407        (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
165408        doesn't intersect any of the overflow controls.
165409        * rendering/RenderLayer.h:
165410        (RenderLayer):
165411
1654122012-11-17  Adam Barth  <abarth@webkit.org>
165413
165414        REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
165415        https://bugs.webkit.org/show_bug.cgi?id=101428
165416
165417        Reviewed by Geoffrey Garen.
165418
165419        JSNodeOwner has some smarts that wrappers of subclasses of Node need to
165420        call during garbage collection. This patch teaches subclasses of Node
165421        to have their JSMumbleOwner objects inherit from JSNodeOwner.
165422
165423        The immediate benefit of this patch is that we correctly avoid
165424        collecting wrappers for HTMLAudioElements when they are reachable from
165425        the DOM.
165426
165427        * bindings/scripts/CodeGeneratorJS.pm:
165428        (GenerateHeader):
165429        (GenerateImplementation):
165430
1654312012-11-17  Elliott Sprehn  <esprehn@chromium.org>
165432
165433        Expose JSObject::removeDirect and PrivateName to WebCore
165434        https://bugs.webkit.org/show_bug.cgi?id=102546
165435
165436        Reviewed by Geoffrey Garen.
165437
165438        Add forwarding header for PrivateName, so JSDependentRetained works.
165439
165440        No new tests, just adding headers.
165441
165442        * ForwardingHeaders/runtime/PrivateName.h: Added.
165443
1654442012-11-17  Simon Fraser  <simon.fraser@apple.com>
165445
165446        Reduce the crazy number of parameters to RenderLayer clip-rect functions
165447        https://bugs.webkit.org/show_bug.cgi?id=102604
165448
165449        Reviewed by Dan Bernstein.
165450
165451        Many of the RenderLayer member functions related to clip rect computation
165452        took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
165453        that we pass to these functions
165454        
165455        No functional changes.
165456
165457        * rendering/RenderLayer.cpp:
165458        (WebCore::RenderLayer::paintLayer):
165459        (WebCore::RenderLayer::paintLayerContents):
165460        (WebCore::RenderLayer::hitTestLayer):
165461        (WebCore::RenderLayer::updateClipRects):
165462        (WebCore::RenderLayer::calculateClipRects):
165463        (WebCore::RenderLayer::parentClipRects):
165464        (WebCore::RenderLayer::backgroundClipRect):
165465        (WebCore::RenderLayer::calculateRects):
165466        (WebCore::RenderLayer::childrenClipRect):
165467        (WebCore::RenderLayer::selfClipRect):
165468        (WebCore::RenderLayer::localClipRect):
165469        * rendering/RenderLayer.h:
165470        (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
165471        (ClipRectsContext):
165472        (RenderLayer):
165473        (WebCore::RenderLayer::clipRects):
165474        * rendering/RenderLayerBacking.cpp:
165475        (WebCore::RenderLayerBacking::updateCompositedBounds):
165476        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
165477        * rendering/RenderLayerCompositor.cpp:
165478        (WebCore::RenderLayerCompositor::addToOverlapMap):
165479        (WebCore::RenderLayerCompositor::clippedByAncestor):
165480        * rendering/RenderTreeAsText.cpp:
165481        (WebCore::writeLayers):
165482
1654832012-11-17  Simon Fraser  <simon.fraser@apple.com>
165484
165485        Simplify bounds computation for the RenderView's layer
165486        https://bugs.webkit.org/show_bug.cgi?id=102597
165487
165488        Reviewed by Anders Carlsson.
165489
165490        Computing the bounds of the main layer (that of the RenderView) used to do
165491        a full RenderLayer walk, taking the union of the bounds of all the sublayers,
165492        which is very expensive on large pages.
165493        
165494        For the RenderView we can avoid that entirely and just use the RenderView's
165495        document rect. Since page scaling happens as a transform on this layer,
165496        we want the unscaled document rect.
165497
165498        * rendering/RenderLayer.cpp:
165499        (WebCore::RenderLayer::calculateLayerBounds):
165500
1655012012-11-17  Eric Seidel  <eric@webkit.org>
165502
165503        Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
165504        https://bugs.webkit.org/show_bug.cgi?id=102601
165505
165506        Reviewed by Adam Barth.
165507
165508        From my investigations all of these classes exist only to be exposed
165509        to the web (via JavaScript) and are not used internally by WebCore.
165510        I beleive all of them always have wrappers.
165511        These were found using this code:
165512        https://bugs.webkit.org/show_bug.cgi?id=102539#c2
165513
165514        Geolocation -- navigator.geolocation
165515        WebKitCSSMatrix -- represent matrixes in JS through various APIs
165516        DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
165517        Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
165518        ValidityState -- formControl.validity
165519        CanvasRenderingContext -- canvas.getContext()
165520        DOMApplicationCache -- window.appcache
165521        Screen -- window.screen
165522        DOMMimeTypeArray -- navigator.mimetypes
165523        DOMPlugin -- navigator.plugins[0]
165524        DOMPluginArray -- navigator.plugins
165525
165526        * Modules/geolocation/Geolocation.h:
165527        * css/WebKitCSSMatrix.h:
165528        * dom/DOMStringMap.h:
165529        * dom/NamedNodeMap.h:
165530        * dom/NodeIterator.h:
165531        * dom/TreeWalker.h:
165532        * fileapi/Blob.h:
165533        * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
165534        (FileList):
165535        (WebCore::FileList::create):
165536        (WebCore::FileList::length):
165537        (WebCore::FileList::isEmpty):
165538        (WebCore::FileList::clear):
165539        (WebCore::FileList::append):
165540        * html/ValidityState.h:
165541        * html/canvas/CanvasRenderingContext.h:
165542        * loader/appcache/DOMApplicationCache.h:
165543        * page/Screen.h:
165544        * platform/graphics/wince/MediaPlayerProxy.cpp:
165545        (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
165546        * plugins/DOMMimeTypeArray.h:
165547        * plugins/DOMPlugin.h:
165548        * plugins/DOMPluginArray.h:
165549
1655502012-11-17  Alexandru Chiculita  <achicu@adobe.com>
165551
165552        [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
165553        https://bugs.webkit.org/show_bug.cgi?id=101801
165554
165555        Reviewed by Noam Rosenthal.
165556
165557        Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
165558        Also added a new API on TextureMapper that receives a notification when the shader
165559        is no longer needed.
165560
165561        No new tests, the code is tested by existing tests.
165562
165563        * platform/graphics/filters/CustomFilterOperation.h:
165564        (WebCore::CustomFilterOperation::setProgram):
165565        (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
165566        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
165567        (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
165568        (WebCore):
165569        * platform/graphics/filters/CustomFilterValidatedProgram.h:
165570        (CustomFilterValidatedProgram):
165571        * platform/graphics/texmap/TextureMapper.h:
165572        (WebCore):
165573        (TextureMapper):
165574        (WebCore::TextureMapper::removeCachedCustomFilterProgram):
165575        Function to be called by the platform code, when the shader is no longer
165576        needed. This implementation is empty and overridden in TextureMapperGL.
165577        * platform/graphics/texmap/TextureMapperGL.cpp:
165578        (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
165579        Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
165580        is no longer needed.
165581        (WebCore):
165582        (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
165583        shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
165584        * platform/graphics/texmap/TextureMapperGL.h:
165585        (WebCore):
165586        (TextureMapperGL):
165587
1655882012-11-17  Brady Eidson  <beidson@apple.com>
165589
165590        Add an integer identifier field to AuthenticationChallengeBase.
165591        https://bugs.webkit.org/show_bug.cgi?id=102593
165592
165593        Reviewed by Darin Adler.
165594
165595        This is to support linking two different challenges that might not compare as equal but that 
165596        represent the same logical authentication challenge.
165597
165598        One example is in an IPC environment where the platform challenge can only exist in one process.
165599
165600        No new tests (Platform support, no effect in tested configs).
165601
165602        * WebCore.exp.in:
165603
165604        * platform/network/AuthenticationChallengeBase.cpp:
165605        (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
165606        * platform/network/AuthenticationChallengeBase.h:
165607        (WebCore::AuthenticationChallengeBase::identifier):
165608
165609        * platform/network/cf/AuthenticationChallenge.h:
165610        * platform/network/mac/AuthenticationMac.mm:
165611        (WebCore::generateUniqueIdentifier):
165612        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
165613          constructing a challenge from an NSURLAuthenticationChallenge.
165614
165615        * platform/network/cf/AuthenticationCF.cpp:
165616        (WebCore::generateUniqueIdentifier):
165617        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
165618          constructing a challenge from a CFURLAuthChallengeRef.
165619
165620        Implement the new constructor form for ports relevant to WebKit2:
165621        * platform/network/qt/AuthenticationChallenge.h:
165622        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
165623        * platform/network/soup/AuthenticationChallenge.h:
165624        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
165625        * platform/network/win/AuthenticationChallenge.h:
165626        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
165627
1656282012-11-17  Simon Fraser  <simon.fraser@apple.com>
165629
165630        Dump the tile cache extent in layout tests
165631        https://bugs.webkit.org/show_bug.cgi?id=102600
165632
165633        Reviewed by Anders Carlsson.
165634
165635        When dumping tiled layer stats in layout tests, also dump the extent
165636        of the tile grid. This will allow us to detect issues related
165637        to zooming, which is not possible with the existing tile coverage rect,
165638        which is dumped in layer (not tile) coordinates.
165639
165640        * platform/graphics/TiledBacking.h: Added tileGridExtent().
165641        * platform/graphics/ca/GraphicsLayerCA.cpp:
165642        (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
165643        * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
165644        * platform/graphics/ca/mac/TileCache.mm:
165645        (WebCore::TileCache::getTileIndexRangeForRect):
165646        (WebCore::TileCache::tileGridExtent): Return a rect with the size of
165647        the grid as top,left width,height.
165648
1656492012-11-17  Andreas Kling  <akling@apple.com>
165650
165651        Avoid full style recalc when 'style' attribute changes.
165652        <http://webkit.org/b/78718>
165653
165654        Reviewed by Anders Carlsson.
165655
165656        Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
165657        to reduce the amount of work done in recalcStyle().
165658
165659        * dom/StyledElement.cpp:
165660        (WebCore::StyledElement::styleAttributeChanged):
165661
1656622012-11-17  Li Yin  <li.yin@intel.com>
165663
165664        Remove coneGain and distanceGain attributes from PannerNode.idl
165665        https://bugs.webkit.org/show_bug.cgi?id=102343
165666
165667        Reviewed by Chris Rogers.
165668
165669        Removing .coneGain and .distanceGain as publicly accessible values,
165670        since normally they only need to be calculated internally.
165671
165672        No changes to tests, since these attributes were not tested and are being removed.
165673
165674        * Modules/webaudio/PannerNode.idl:
165675
1656762012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
165677
165678        [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
165679        https://bugs.webkit.org/show_bug.cgi?id=102530
165680
165681        Reviewed by Noam Rosenthal.
165682
165683        GraphicsLayer::addAnimation is called no only when a new animation is created
165684        but also when resuming a paused animation. If this is a resumed animation we
165685        should remove the obsolate GraphicsLayerAnimation object.
165686
165687        Tested by animations tests.
165688
165689        * platform/graphics/GraphicsLayerAnimation.cpp:
165690        (WebCore::GraphicsLayerAnimations::add):
165691
1656922012-11-17  Martin Robinson  <mrobinson@igalia.com>
165693
165694        [Soup] CredentialStorage should only be used for HTTP-family requests
165695        https://bugs.webkit.org/show_bug.cgi?id=102582
165696
165697        Reviewed by Gustavo Noronha Silva.
165698
165699        Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
165700        only expects to handle requests in the HTTP family.
165701
165702        No new tests. This is covered by existing tests.
165703
165704        * platform/network/ResourceHandle.h:
165705        (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
165706        helper returns false when firstRequest() is a non-HTTP family request.
165707        * platform/network/soup/ResourceHandleSoup.cpp:
165708        (WebCore::applyAuthenticationToRequest): Use the new helper.
165709        (WebCore::createSoupRequestAndMessageForHandle): Ditto.
165710        (WebCore::ResourceHandle::start): Ditto.
165711        (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
165712        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
165713        (WebCore::ResourceHandle::receivedCredential): Ditto.
165714
1657152012-11-16  Patrick Gansterer  <paroga@webkit.org>
165716
165717        Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
165718
165719        * rendering/RenderLayer.cpp:
165720        (WebCore::RenderLayer::paintOverflowControls):
165721
1657222012-11-16  Benjamin Poulain  <bpoulain@apple.com>
165723
165724        Improve the performance of rect transform
165725        https://bugs.webkit.org/show_bug.cgi?id=101828
165726
165727        Reviewed by Simon Fraser.
165728
165729        Mapping a rect and a quad by a transform is a common operation because
165730        we use it to recompute the repaint rect, overflow rect, etc.
165731
165732        The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
165733        Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
165734        and perform many comparison.
165735        Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
165736        too many.
165737
165738        This patch just cut the intermediary calls.
165739
165740        On ARM, putting the operation together also has the advantage of loading the matrix
165741        only once in registers and reusing it for every point.
165742
165743        * platform/graphics/transforms/TransformationMatrix.cpp:
165744        (WebCore::TransformationMatrix::mapPoint):
165745        (WebCore::TransformationMatrix::mapRect):
165746        * platform/graphics/transforms/TransformationMatrix.h:
165747        (WebCore):
165748        (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
165749        point project without doing isIdentityOrTranslation().
165750
1657512012-11-16  Simon Fraser  <simon.fraser@apple.com>
165752
165753        Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
165754        https://bugs.webkit.org/show_bug.cgi?id=102581
165755
165756        Reviewed by Dan Bernstein.
165757
165758        isBlockFlow() is a virtual function call, and shows up in profiles of
165759        Facebook pages as called from RenderBox::computeRectForRepaint().
165760        
165761        It's faster to do the hasColumns() bit-check first. Also replace
165762        a call to layer() with the hasLayer() bit-check.        
165763
165764        * rendering/RenderBox.cpp:
165765        (WebCore::RenderBox::computeRectForRepaint):
165766
1657672012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
165768
165769        Unreviewed, rolling out r134817.
165770        http://trac.webkit.org/changeset/134817
165771        https://bugs.webkit.org/show_bug.cgi?id=102576
165772
165773        Broke iframes and causing tons of crashes on ClusterFuzz
165774        (Requested by inferno-sec on #webkit).
165775
165776        * dom/ContainerNode.cpp:
165777        (WebCore::willRemoveChildren):
165778        * dom/ContainerNodeAlgorithms.cpp:
165779        (WebCore::ChildFrameDisconnector::collectDescendant):
165780        * dom/ContainerNodeAlgorithms.h:
165781        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
165782        (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
165783        (ChildFrameDisconnector):
165784        (WebCore::ChildFrameDisconnector::collectDescendant):
165785        (WebCore::ChildFrameDisconnector::disconnect):
165786        * dom/Node.cpp:
165787        * dom/Node.h:
165788        (Node):
165789        * dom/NodeRareData.h:
165790        (WebCore::NodeRareData::NodeRareData):
165791        (NodeRareData):
165792        * html/HTMLFrameOwnerElement.cpp:
165793        (WebCore::HTMLFrameOwnerElement::setContentFrame):
165794        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
165795
1657962012-11-16  Simon Fraser  <simon.fraser@apple.com>
165797
165798        Fix overlay scrollbar painting in compositing layers
165799        https://bugs.webkit.org/show_bug.cgi?id=102442
165800
165801        Reviewed by Beth Dakin.
165802
165803        There were two issues with overlay scrollbar painting in
165804        compositing layers.
165805        
165806        First, we'd only ever call setContainsDirtyOverlayScrollbars()
165807        on the RenderView's layer, even when encountering an overlay scrollbar
165808        in some descendant compositing layer. This meant that we'd never
165809        run the paintOverlayScrollbars() code for those child compositing
165810        layers, so sometimes scrollbars were missing there.
165811        
165812        Even after fixing that, we would fail to render scrollbars that
165813        were not in the composited RenderLayer itself. This happened because
165814        we called into RenderLayer::paintOverlayScrollbars(), which called
165815        paintLayer() with flags that only said to paint the overlay scrollbars
165816        but not any descendants, so this paint path would not walk child
165817        RenderLayers.
165818        
165819        Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
165820        ScrollView which is no longer used.
165821
165822        * platform/ScrollView.cpp:
165823        (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
165824        (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
165825        * platform/ScrollView.h:
165826        * rendering/RenderLayer.cpp:
165827        (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
165828        on the compositing ancestor or the root.
165829        Remove call to setContainsScrollableAreaWithOverlayScrollbars().
165830        (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
165831        scrollbars, no need to say we have transparency, and no need to use 
165832        temporary clip rects.
165833        (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
165834        check here was only needed because the compositing entrypoint to painting
165835        overlay scrollbars went via paintLayer(), which isn't normally used as
165836        a composited painting entry point. Now that we no longer call that, we
165837        don't need this special check.
165838        * rendering/RenderLayerBacking.cpp:
165839        (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
165840        painting via paintLayerContents(), not paintOverlayScrollbars(), since
165841        the latter does not traverse sublayers.
165842
1658432012-11-16  Joshua Bell  <jsbell@chromium.org>
165844
165845        IndexedDB: Assert hit when getting non-existent object store in version change transaction
165846        https://bugs.webkit.org/show_bug.cgi?id=102547
165847
165848        Reviewed by Tony Chang.
165849
165850        Code did not account for the not-found case in "versionchange" transactions, where all
165851        object stores are implicitly in scope.
165852
165853        Test: storage/indexeddb/object-lookups-in-versionchange.html
165854
165855        * Modules/indexeddb/IDBTransaction.cpp:
165856        (WebCore::IDBTransaction::objectStore):
165857
1658582012-11-12  Simon Fraser  <simon.fraser@apple.com>
165859
165860        Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
165861        https://bugs.webkit.org/show_bug.cgi?id=101874
165862
165863        Reviewed by Dave Hyatt.
165864
165865        RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
165866        lot of time in computeRepaintRects(), which does two ancestor tree walks, once
165867        for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
165868
165869        Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
165870        a RenderGeometryMap as we traverse the layer tree, and then using it to map
165871        the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
165872        now that the RenderGeometryMap can do a better job.
165873        
165874        The clipped overflow rect cannot be mapped simply, so cannot yet make use of
165875        the geometry map.
165876        
165877        Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
165878        Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
165879        
165880        Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
165881        
165882        * page/FrameView.cpp:
165883        (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
165884        to updateLayerPositions(). For partial layouts, we have to push layers
165885        between the root and the enclosing layer of the layout subtree.
165886        The geometry map used for repainting does not use SnapOffsetForTransforms,
165887        so initialize it explicitly with just the UseTransforms flag.
165888        (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
165889        to pass along to updateLayerPositionsAfterScroll().
165890        * rendering/RenderBox.cpp:
165891        (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
165892        parameter with an optional RenderGeometryMap, and it use to map the compute rect to
165893        repaintContainer coordinates.
165894        * rendering/RenderBox.h:
165895        * rendering/RenderGeometryMap.cpp:
165896        (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
165897        flags to use, so that its behavior can match that of mapLocalToContainer(). The
165898        pertinent flag is the confusingly named SnapOffsetForTransforms.
165899        (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
165900        a null container.
165901        (WebCore::RenderGeometryMap::absoluteRect): Ditto.
165902        (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
165903        asserting that we found it. Add point- and rect-based mapping methods
165904        akin to the old absoluteRect/absolutePoint.
165905        (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
165906        (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
165907        layers, ensure that the RenderView is pushed as the first step.
165908        * rendering/RenderGeometryMap.h:
165909        (RenderGeometryMap):
165910        * rendering/RenderLayer.cpp:
165911        (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
165912        that makes the geometry map.
165913        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
165914        that makes the geometry map.
165915        (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
165916        Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
165917        the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
165918        it to computeRepaintRects().
165919        (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
165920        (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
165921        geometry map, and pass it to computeRepaintRects().
165922        (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
165923        computation; this could use a geometry map in future if it is shown to be a bottleneck.
165924        * rendering/RenderLayer.h:
165925        (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
165926        was there because the older cached offsetFromRoot logic was sensitive to compositing,
165927        but convertToLayerCoords() is not affected by compositing so this check is not needed,
165928        and actually harmful.
165929        * rendering/RenderLayerCompositor.cpp:
165930        (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
165931        used for overlap testing should not use SnapOffsetForTransforms, so initialize
165932        it explicitly with just the UseTransforms flag.
165933        * rendering/RenderObject.h:
165934        (WebCore::RenderObject::outlineBoundsForRepaint):
165935        * rendering/svg/RenderSVGModelObject.cpp:
165936        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
165937        * rendering/svg/RenderSVGModelObject.h:
165938        (RenderSVGModelObject):
165939
1659402012-11-16  Alec Flett  <alecflett@chromium.org>
165941
165942        Add tests for explicit serialization values
165943        https://bugs.webkit.org/show_bug.cgi?id=96818
165944
165945        Reviewed by Adam Barth.
165946
165947        Expose direct access to the serialization/deserialization mechanisms
165948        of SerializedScriptValue to DumpRenderTree.
165949
165950        * testing/Internals.cpp:
165951        (WebCore::Internals::serializeObject):
165952        (WebCore):
165953        (WebCore::Internals::deserializeBuffer):
165954        * testing/Internals.h:
165955        (WebCore):
165956        * testing/Internals.idl:
165957
1659582012-11-16  Andreas Kling  <akling@apple.com>
165959
165960        Exploit shared attribute data to avoid parsing identical "style" attributes.
165961        <http://webkit.org/b/101163>
165962
165963        Reviewed by Antti Koivisto.
165964
165965        Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
165966        This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
165967        since the state is no longer per-Element.
165968
165969        * css/StyleResolver.cpp:
165970        (WebCore::isCacheableInMatchedPropertiesCache):
165971
165972            Disable the matched properties cache for styles with non-standard writing-mode.
165973            This is necessary because some CSS properties have different meaning depending on context -
165974            properties handled by CSSProperty::resolveDirectionAwareProperty().
165975
165976            Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
165977            avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
165978            writing-modes in the matched properties cache.
165979
165980        * dom/Node.h:
165981        * dom/ElementAttributeData.cpp:
165982        (WebCore::ElementAttributeData::ElementAttributeData):
165983        * dom/ElementAttributeData.h:
165984        (WebCore::ElementAttributeData::ElementAttributeData):
165985        (ElementAttributeData):
165986        * dom/Element.h:
165987        (WebCore::Element::updateInvalidAttributes):
165988        * dom/Element.cpp:
165989        (WebCore::Element::getAttribute):
165990        (WebCore::Element::removeAttribute):
165991        * dom/StyledElement.h:
165992        (WebCore::StyledElement::invalidateStyleAttribute):
165993        * dom/StyledElement.cpp:
165994        (WebCore::StyledElement::updateStyleAttribute):
165995
165996            Move "style attribute dirty" flag to ElementAttributeData.
165997
165998        (WebCore::Element::cloneAttributesFromElement):
165999
166000            Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
166001            automagically since cloning nodes just refs the original attribute data.
166002
166003        * dom/StyledElement.cpp:
166004        (WebCore::StyledElement::updateStyleAttribute):
166005        (WebCore::StyledElement::setInlineStyleFromString):
166006        (WebCore::StyledElement::styleAttributeChanged):
166007        (WebCore::StyledElement::inlineStyleChanged):
166008
166009            Avoid reparsing the inline style if the element's attribute data is immutable and already has
166010            a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
166011            to make the code more understandable.
166012
1660132012-11-16  Simon Fraser  <simon.fraser@apple.com>
166014
166015        Don't update layer positions on scrolling if we're in the middle of layout
166016        https://bugs.webkit.org/show_bug.cgi?id=102556
166017
166018        Reviewed by Dan Bernstein.
166019
166020        RenderLayer::scrollTo() can be called in the middle of layout. When
166021        that happens we should not waste time updating layer positions,
166022        compositing layers, or widget positions, because we'll do those at the
166023        end of layout anyway.
166024        
166025        This prevents us from having inconsistent RenderLayer state, which
166026        hinders future optimizations in this area.
166027
166028        * rendering/RenderLayer.cpp:
166029        (WebCore::RenderLayer::scrollTo):
166030
1660312012-11-16  Tony Chang  <tony@chromium.org>
166032
166033        Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
166034        https://bugs.webkit.org/show_bug.cgi?id=102554
166035
166036        Reviewed by Andreas Kling.
166037
166038        As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
166039        we're going to revist this feature once additional vendor support is
166040        achieved.
166041
166042        No new tests, just removing an unused define.
166043
166044        * Configurations/FeatureDefines.xcconfig:
166045        * GNUmakefile.features.am:
166046
1660472012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
166048
166049        [Chromium] Remove cookie-related functions from PlatformSupport
166050        https://bugs.webkit.org/show_bug.cgi?id=99340
166051
166052        Reviewed by Adam Barth.
166053
166054        Move cookie-related functions out of PlatformSupport and implement
166055        new PlatformCookieJar interface via NetworkContext.
166056
166057        * WebCore.gyp/WebCore.gyp:
166058        * WebCore.gypi:
166059        * loader/CookieJar.cpp:
166060        * loader/chromium/CookieJarChromium.cpp: Removed.
166061        * platform/chromium/PlatformSupport.h:
166062        (WebCore):
166063        (PlatformSupport):
166064        * platform/network/NetworkingContext.h:
166065        (WebKit):
166066        (NetworkingContext):
166067        * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
166068        (WebCore::setCookiesFromDOM):
166069        (WebCore::cookiesForDOM):
166070        (WebCore::cookieRequestHeaderFieldValue):
166071        (WebCore::cookiesEnabled):
166072        (WebCore::getRawCookies):
166073        (WebCore::deleteCookie):
166074        (WebCore::getHostnamesWithCookies):
166075        (WebCore::deleteCookiesForHostname):
166076        (WebCore::deleteAllCookies):
166077
1660782012-11-16  Pablo Flouret  <pablof@motorola.com>
166079
166080        [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
166081        https://bugs.webkit.org/show_bug.cgi?id=70574
166082
166083        Reviewed by Geoffrey Garen.
166084
166085        For scripts that use CORS (via the crossorigin attribute in this case),
166086        don't sanitize the information passed to the window's onerror handler (i.e.
166087        message, url, and line number). Useful for scripts hosted on CDNs.
166088
166089        Tests: http/tests/security/script-crossorigin-onerror-information.html
166090               http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
166091
166092        * WebCore.exp.in:
166093        * WebCore.order:
166094
166095        * bindings/js/JSDOMBinding.cpp:
166096        (WebCore::reportException):
166097        * bindings/js/JSDOMBinding.h:
166098        (WebCore):
166099        * bindings/js/ScriptController.cpp:
166100        (WebCore::ScriptController::evaluateInWorld):
166101        * bindings/js/ScriptSourceCode.h:
166102        (WebCore::ScriptSourceCode::ScriptSourceCode):
166103        (WebCore::ScriptSourceCode::cachedScript):
166104        (ScriptSourceCode):
166105        * bindings/js/WorkerScriptController.cpp:
166106        (WebCore::WorkerScriptController::evaluate):
166107            Keep a reference to the cached script in the ScriptSourceCode, so
166108            that it can be passed around and be available when reporting the
166109            exception.
166110
166111        * dom/ScriptExecutionContext.cpp:
166112        (WebCore::ScriptExecutionContext::sanitizeScriptError):
166113        (WebCore::ScriptExecutionContext::reportException):
166114        (WebCore::ScriptExecutionContext::dispatchErrorEvent):
166115        * dom/ScriptExecutionContext.h:
166116        (WebCore):
166117        (ScriptExecutionContext):
166118            Check if the script passes the access control checks, and if so,
166119            don't sanitize the error information.
166120
166121        * html/parser/HTMLPreloadScanner.cpp:
166122        (WebCore::PreloadTask::processAttributes):
166123        (WebCore::PreloadTask::preload):
166124        (PreloadTask):
166125        (WebCore::PreloadTask::crossOriginModeAllowsCookies):
166126            When preloading script elements, check for the crossorigin attribute
166127            and adjust the request's allowCookies value accordingly. Otherwise
166128            when the script is loaded from the cache later on, the cross origin mode
166129            (anonymous/use-credentials) will be effectively ignored.
166130
1661312012-11-16  Jon Lee  <jonlee@apple.com>
166132
166133        Change visual look of placeholder
166134        https://bugs.webkit.org/show_bug.cgi?id=102149
166135        <rdar://problem/12695566>
166136
166137        Reviewed by Darin Adler.
166138
166139        Move the button to the lower-right corner. Move the theming into
166140        RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
166141        shadow DOM instead, and the metrics of the button are needed for click passthrough.
166142
166143        * Resources/startButton.png: Added.
166144        * Resources/startButton@2x.png: Added.
166145        * Resources/startButtonPressed.png: Added.
166146        * Resources/startButtonPressed@2x.png: Added.
166147        * WebCore.xcodeproj/project.pbxproj: Add button images.
166148
166149        Maintain variables to track whether the mouse is over the button, and the rect
166150        for the button. If the user clicks in the rect, we render a pressed button.
166151        * rendering/RenderSnapshottedPlugIn.cpp:
166152        (WebCore): Add named constant for bottom and right padding of the button.
166153        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
166154        (WebCore::RenderSnapshottedPlugIn::paintReplaced):
166155        (WebCore::startButtonImage): Returns button image.
166156        (WebCore::startButtonPressedImage): Returns pressed button image.
166157        (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
166158        lower right hand corner, but only if we are active or hovered.
166159        (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
166160        (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
166161        hovering over the plugin rect. With a mouse down event, calculate whether the
166162        mouse position is within the button rect.
166163        (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
166164        contents.
166165        * rendering/RenderSnapshottedPlugIn.h:
166166
166167        Remove theming function for now.
166168        * rendering/RenderTheme.h:
166169        (RenderTheme):
166170        * rendering/RenderThemeMacShared.h:
166171        * rendering/RenderThemeMacShared.mm:
166172
1661732012-11-16  Eric Seidel  <eric@webkit.org>
166174
166175        Deploy ScriptWrappable to more always-wrapped objects
166176        https://bugs.webkit.org/show_bug.cgi?id=102539
166177
166178        Reviewed by Adam Barth.
166179
166180        Add the ScriptWrappable baseclass to:
166181        CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
166182        ClientRect (element.getBoundingClientRects)
166183        Event (Not all events end up wrapped, but any which live past dispatch do)
166184        NodeList (this covers Static and Dynamic node list types, like document.all)
166185        HTMLCollection (separate from NodeList, for things like table.rows)
166186        Storage (for window.storage, always wrapped)
166187        XMLHttpRequest (always wrapped, created from JS)
166188
166189        This should be a small memory savings as the inline pointer is only 4-8 bytes
166190        instead of the hashmap entry which would be 8-16.  This may also show up
166191        on benchmarks which repeatedly access these objects (like window.storage).
166192
166193        These were found by adding a couple lines of logging-code to
166194        WebCore::createWrapper when we were in the main world, but took the
166195        HashMap (instead of inline) storage path. I used sort and uniq -c
166196        to find the most-frequently wrapped objects (while surfing
166197        a few common sites) and came up with this list.  There are still a few
166198        more complicated objects (like CSSStyleDeclaration) which may benifit
166199        from inline-wrapper-access and will be covered in a later patch.
166200
166201        * css/CSSStyleDeclaration.h:
166202        * dom/ClientRect.h:
166203        * dom/Event.h:
166204        * dom/NodeList.h:
166205        * html/HTMLCollection.h:
166206        * storage/Storage.h:
166207        * xml/XMLHttpRequest.h:
166208
1662092012-11-16  Jon Lee  <jonlee@apple.com>
166210
166211        Simulated events instances do not all have the same underlying event
166212        https://bugs.webkit.org/show_bug.cgi?id=102468
166213        <rdar://problem/12716331>
166214
166215        Reviewed by Alexey Proskuryakov.
166216
166217        The PassRefPtr with the underlying event is included as an argument for the mouse
166218        down, up, and click events. But the PassRefPtr loses its underlying pointer after
166219        the first simulated mouse down event because it gets assigned to that event's
166220        private m_underlyingEvent variable. We therefore send NULL to the other events.
166221
166222        The fix is for this and related functions to pass the raw pointer.
166223
166224        A layout test is not possible to put together because the call sites that use simulated
166225        events with an underlying event do not send mouse events, and those that send mouse
166226        events have a NULL underlying event.
166227
166228        * dom/EventDispatcher.cpp:
166229        (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
166230        * dom/EventDispatcher.h:
166231        * dom/Node.cpp:
166232        (WebCore::Node::dispatchSimulatedClick): Ditto.
166233        * dom/Node.h:
166234
1662352012-11-16  Patrick Gansterer  <paroga@webkit.org>
166236
166237        Build fix for WinCE after r134936.
166238
166239        * platform/network/win/CookieJarWin.cpp:
166240        (WebCore::cookieRequestHeaderFieldValue):
166241
1662422012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
166243
166244        Unreviewed, rolling out r134986.
166245        http://trac.webkit.org/changeset/134986
166246        https://bugs.webkit.org/show_bug.cgi?id=102110
166247
166248        Triggered ASSERT in fast/frames/seamless/seamless-inherited-
166249        origin.html.
166250
166251        * css/StyleResolver.cpp:
166252        (WebCore::StyleResolver::StyleResolver):
166253        (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
166254        (WebCore::collectCSSOMWrappers):
166255        * css/StyleResolver.h:
166256        (StyleResolver):
166257        * dom/Document.cpp:
166258        (WebCore::Document::setCompatibilityMode):
166259        * dom/DocumentStyleSheetCollection.cpp:
166260        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
166261        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
166262        (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
166263        (WebCore):
166264        (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
166265        (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
166266        (WebCore::DocumentStyleSheetCollection::addUserSheet):
166267        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
166268        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
166269        * dom/DocumentStyleSheetCollection.h:
166270        (DocumentStyleSheetCollection):
166271        (WebCore::DocumentStyleSheetCollection::documentUserSheets):
166272        * page/PageGroup.cpp:
166273        (WebCore::PageGroup::addUserStyleSheetToWorld):
166274        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
166275        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
166276        (WebCore::PageGroup::removeAllUserContent):
166277        (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
166278        * page/PageGroup.h:
166279        (PageGroup):
166280
1662812012-11-16  Michael Pruett  <michael@68k.org>
166282
166283        IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
166284        https://bugs.webkit.org/show_bug.cgi?id=102430
166285
166286        Reviewed by Adam Barth.
166287
166288        DOMRequestState is currently propagated to some but not all of
166289        the IndexedDB binding utility functions. In order to implement
166290        these functions for JSC, this state must be propagated to all
166291        of the utility functions.
166292
166293        Tests: storage/indexeddb/*
166294
166295        * Modules/indexeddb/IDBCursor.cpp:
166296        (WebCore::IDBCursor::update):
166297        (WebCore::IDBCursor::setValueReady):
166298        * Modules/indexeddb/IDBObjectStore.cpp:
166299        (WebCore::generateIndexKeysForValue):
166300        (WebCore::IDBObjectStore::put):
166301        (WebCore):
166302        * Modules/indexeddb/IDBRequest.cpp:
166303        (WebCore::IDBRequest::onSuccess):
166304        (WebCore::IDBRequest::dispatchEvent):
166305        * Modules/indexeddb/IDBRequest.h:
166306        (WebCore::IDBRequest::requestState):
166307        (IDBRequest):
166308        * bindings/v8/IDBBindingUtilities.cpp:
166309        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
166310        (WebCore::serializeIDBValue):
166311        (WebCore::injectIDBKeyIntoScriptValue):
166312        * bindings/v8/IDBBindingUtilities.h:
166313        (WebCore):
166314
1663152012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
166316
166317        Rebaselined run-bindings-tests.
166318        https://bugs.webkit.org/show_bug.cgi?id=102523
166319
166320        Reviewed by Dimitri Glazkov.
166321
166322        Expected results need to be updated after r134931
166323
166324        * bindings/scripts/test/JS/JSTestObj.cpp:
166325        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
166326        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
166327        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
166328        * bindings/scripts/test/V8/V8TestObj.cpp:
166329        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
166330        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
166331        (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
166332
1663332012-11-16  Pratik Solanki  <psolanki@apple.com>
166334
166335        For single element arrays use the pointer into the CFDataRef instead of copying data
166336        https://bugs.webkit.org/show_bug.cgi?id=102306
166337        <rdar://problem/12267471>
166338
166339        Reviewed by Alexey Proskuryakov.
166340
166341        We generally copy the data received from CFNetwork into our own buffers. But if the
166342        CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
166343        and access its memory directly and avoid making a copy.
166344
166345        This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
166346        SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
166347        SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
166348        the memory in the data array.
166349
166350        No new tests because no change in functionality.
166351
166352        * loader/ResourceBuffer.cpp:
166353        (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
166354        * loader/ResourceBuffer.h:
166355        * loader/cache/CachedResource.cpp:
166356        (WebCore::CachedResource::makePurgeable):
166357        * platform/SharedBuffer.cpp:
166358        (WebCore::SharedBuffer::createPurgeableBuffer): Added.
166359        (WebCore::SharedBuffer::data):
166360        * platform/SharedBuffer.h:
166361        * platform/cf/SharedBufferCF.cpp:
166362        (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
166363        (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
166364        (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
166365
1663662012-11-16  Antti Koivisto  <antti@apple.com>
166367
166368        REGRESSION(r129644): User StyleSheet not applying
166369        https://bugs.webkit.org/show_bug.cgi?id=102110
166370
166371        Reviewed by Andreas Kling.
166372
166373        Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
166374        such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
166375        
166376        The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
166377        It also generally cleans up the code around injected and user stylesheets.
166378
166379        Tests: userscripts/user-script-and-stylesheet.html
166380               userscripts/user-stylesheet-invalidate.html
166381
166382        * css/StyleResolver.cpp:
166383        (WebCore::StyleResolver::StyleResolver):
166384        (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
166385        (WebCore::collectCSSOMWrappers):
166386        * css/StyleResolver.h:
166387        (StyleResolver):
166388        * dom/Document.cpp:
166389        (WebCore::Document::setCompatibilityMode):
166390        * dom/DocumentStyleSheetCollection.cpp:
166391        (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
166392        (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
166393        (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
166394        (WebCore):
166395        (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
166396        (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
166397        (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
166398        (WebCore::DocumentStyleSheetCollection::addUserSheet):
166399        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
166400        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
166401        * dom/DocumentStyleSheetCollection.h:
166402        (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
166403        (DocumentStyleSheetCollection):
166404        * page/PageGroup.cpp:
166405        (WebCore::PageGroup::addUserStyleSheetToWorld):
166406        (WebCore::PageGroup::removeUserStyleSheetFromWorld):
166407        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
166408        (WebCore::PageGroup::removeAllUserContent):
166409        (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
166410        * page/PageGroup.h:
166411        (PageGroup):
166412
1664132012-11-16  Andreas Kling  <akling@apple.com>
166414
166415        StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
166416        <http://webkit.org/b/102536>
166417
166418        Reviewed by Antti Koivisto.
166419
166420        Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
166421        relevant for sharing style between <input> elements.
166422
166423        Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
166424
166425        * css/StyleResolver.cpp:
166426        (WebCore::StyleResolver::canShareStyleWithControl):
166427        (WebCore::haveIdenticalStyleAffectingAttributes):
166428
1664292012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
166430
166431        Unreviewed, rolling out r134867.
166432        http://trac.webkit.org/changeset/134867
166433        https://bugs.webkit.org/show_bug.cgi?id=102544
166434
166435        Broke security fuzzier test (heap-buffer-overflow) (Requested
166436        by bfulgham on #webkit).
166437
166438        * platform/audio/Biquad.cpp:
166439        (WebCore::Biquad::process):
166440
1664412012-11-16  Tommy Widenflycht  <tommyw@google.com>
166442
166443        MediaStream API: Update RTCPeerConnection states to match the latest editors draft
166444        https://bugs.webkit.org/show_bug.cgi?id=102382
166445
166446        Reviewed by Adam Barth.
166447
166448        Updating readyState & iceState, and adding iceGatheringState.
166449        Also safeguarding the event timer callback.
166450
166451        Patch covered by existing tests.
166452
166453        * Modules/mediastream/RTCPeerConnection.cpp:
166454        (WebCore::RTCPeerConnection::RTCPeerConnection):
166455        (WebCore::RTCPeerConnection::createOffer):
166456        (WebCore::RTCPeerConnection::createAnswer):
166457        (WebCore::RTCPeerConnection::setLocalDescription):
166458        (WebCore::RTCPeerConnection::localDescription):
166459        (WebCore::RTCPeerConnection::setRemoteDescription):
166460        (WebCore::RTCPeerConnection::remoteDescription):
166461        (WebCore::RTCPeerConnection::updateIce):
166462        (WebCore::RTCPeerConnection::addIceCandidate):
166463        (WebCore::RTCPeerConnection::readyState):
166464        (WebCore::RTCPeerConnection::iceGatheringState):
166465        (WebCore):
166466        (WebCore::RTCPeerConnection::iceState):
166467        (WebCore::RTCPeerConnection::addStream):
166468        (WebCore::RTCPeerConnection::close):
166469        (WebCore::RTCPeerConnection::didChangeIceGatheringState):
166470        (WebCore::RTCPeerConnection::stop):
166471        (WebCore::RTCPeerConnection::changeReadyState):
166472        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
166473        * Modules/mediastream/RTCPeerConnection.h:
166474        (RTCPeerConnection):
166475        * Modules/mediastream/RTCPeerConnection.idl:
166476        * dom/EventNames.h:
166477        (WebCore):
166478        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
166479        (RTCPeerConnectionHandlerClient):
166480        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
166481        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
166482        (WebCore):
166483        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
166484        (RTCPeerConnectionHandlerChromium):
166485
1664862012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
166487
166488        Unreviewed, rolling out r134973.
166489        http://trac.webkit.org/changeset/134973
166490        https://bugs.webkit.org/show_bug.cgi?id=99340
166491
166492        Broke compile on at least Mac and Linux.
166493
166494        * WebCore.gyp/WebCore.gyp:
166495        * WebCore.gypi:
166496        * loader/CookieJar.cpp:
166497        * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
166498        (WebCore):
166499        (WebCore::setCookies):
166500        (WebCore::cookies):
166501        (WebCore::cookieRequestHeaderFieldValue):
166502        (WebCore::cookiesEnabled):
166503        (WebCore::getRawCookies):
166504        (WebCore::deleteCookie):
166505        (WebCore::getHostnamesWithCookies):
166506        (WebCore::deleteCookiesForHostname):
166507        (WebCore::deleteAllCookies):
166508        * platform/chromium/PlatformSupport.h:
166509        (WebCore):
166510        (PlatformSupport):
166511        * platform/network/NetworkingContext.h:
166512        * platform/network/chromium/CookieJarChromium.cpp: Removed.
166513
1665142012-11-16  Martin Robinson  <mrobinson@igalia.com>
166515
166516        [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
166517        https://bugs.webkit.org/show_bug.cgi?id=101843
166518
166519        Reviewed by Gustavo Noronha Silva.
166520
166521        Make GtkAuthenticationDialog more general, so that it can be subclassed in 
166522        WebKit2. We cannot use the WebCore authentication-related classes directly there.
166523
166524        No new tests. This patch does not change behavior.
166525
166526        * platform/gtk/GtkAuthenticationDialog.cpp:
166527        (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
166528        some field initializers.
166529        (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
166530        makes it simpler to subclass.
166531        (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
166532        and password here, so that it can be shared with subclasses.
166533        * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
166534        subclasses.
166535
1665362012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
166537
166538        [Chromium] Remove cookie-related functions from PlatformSupport
166539        https://bugs.webkit.org/show_bug.cgi?id=99340
166540
166541        Reviewed by Adam Barth.
166542
166543        Move cookie-related functions out of PlatformSupport and implement
166544        new PlatformCookieJar interface via NetworkContext.
166545
166546        * WebCore.gyp/WebCore.gyp:
166547        * WebCore.gypi:
166548        * loader/CookieJar.cpp:
166549        * loader/chromium/CookieJarChromium.cpp: Removed.
166550        * platform/chromium/PlatformSupport.h:
166551        (WebCore):
166552        (PlatformSupport):
166553        * platform/network/NetworkingContext.h:
166554        (WebKit):
166555        (NetworkingContext):
166556        * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
166557        (WebCore::setCookiesFromDOM):
166558        (WebCore::cookiesForDOM):
166559        (WebCore::cookieRequestHeaderFieldValue):
166560        (WebCore::cookiesEnabled):
166561        (WebCore::getRawCookies):
166562        (WebCore::deleteCookie):
166563        (WebCore::getHostnamesWithCookies):
166564        (WebCore::deleteCookiesForHostname):
166565        (WebCore::deleteAllCookies):
166566
1665672012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
166568
166569        Fix assertion bug of build fix r134961
166570        https://bugs.webkit.org/show_bug.cgi?id=102533
166571
166572        Reviewed by Martin Robinson.
166573
166574        Assertion condition should be '!d->m_currentWebChallenge.isNull()'
166575
166576        * platform/network/soup/ResourceHandleSoup.cpp:
166577        (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
166578
1665792012-11-16  Tommy Widenflycht  <tommyw@google.com>
166580
166581        [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
166582        https://bugs.webkit.org/show_bug.cgi?id=102386
166583
166584        Reviewed by Adam Barth.
166585
166586        Existing tests expanded to cover patch.
166587
166588        * platform/mediastream/RTCDataChannelDescriptor.cpp:
166589        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
166590        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
166591        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
166592        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
166593        (WebCore):
166594        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
166595        (WebKit):
166596        (RTCPeerConnectionHandlerChromium):
166597
1665982012-11-16  Scott Violet  <sky@chromium.org>
166599
166600        [chromium] Copy linux theme related files to default
166601        https://bugs.webkit.org/show_bug.cgi?id=102403
166602
166603        Reviewed by Tony Chang
166604
166605        Transitional patch that copies linux WebThemeEngine to default directory.
166606
166607        No new tests, refactoring only.
166608
166609        * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
166610        * WebCore.gypi: Adds new files.
166611        * platform/chromium/PlatformSupport.h:
166612        * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
166613        * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
166614        * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
166615        * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
166616        * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
166617        * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
166618
1666192012-11-16  Alec Flett  <alecflett@chromium.org>
166620
166621        IndexedDB: add missing 'explicit' and fix backing store release
166622        https://bugs.webkit.org/show_bug.cgi?id=102450
166623
166624        Reviewed by Tony Chang.
166625
166626        A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
166627        which resulted in objects sticking around a bit longer than
166628        expected. This makes sure the LevelDBTransaction is released
166629        at the moment of commit/rollback rather than when IDBTransactionBackendImpl
166630        is destroyed.
166631
166632        No new tests, this is just internal state that will affect
166633        some future refactoring.
166634
166635        * Modules/indexeddb/IDBBackingStore.h:
166636        (Cursor):
166637        (Transaction):
166638        (WebCore::IDBBackingStore::Transaction::reset):
166639        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
166640        (WebCore::IDBTransactionBackendImpl::abort):
166641        (WebCore::IDBTransactionBackendImpl::commit):
166642
1666432012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
166644
166645        [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
166646
166647        * WebCore.gypi: Removed one last mention of accessibility/gtk file.
166648
1666492012-11-16  Robert Flack  <flackr@chromium.org>
166650
166651        Handle gesture events on scrollbars.
166652        https://bugs.webkit.org/show_bug.cgi?id=101516
166653
166654        Reviewed by Antonio Gomes.
166655
166656        Adds a gesture event handler to scrollbars and sends gestures beginning
166657        over a scrollbar to this handler to allow touch scrolling scrollbars.
166658
166659        Test: fast/events/touch/gesture/gesture-scrollbar.html
166660
166661        * page/EventHandler.cpp:
166662        (WebCore::EventHandler::clear):
166663        (WebCore::EventHandler::handleGestureEvent):
166664        (WebCore::EventHandler::isScrollbarHandlingGestures):
166665        (WebCore):
166666        * page/EventHandler.h:
166667        (EventHandler):
166668        * platform/Scrollbar.cpp:
166669        (WebCore::Scrollbar::Scrollbar):
166670        (WebCore):
166671        (WebCore::Scrollbar::gestureEvent):
166672        (WebCore::Scrollbar::mouseMoved):
166673        (WebCore::Scrollbar::mouseUp):
166674        (WebCore::Scrollbar::mouseDown):
166675        * platform/Scrollbar.h:
166676        (WebCore):
166677        (Scrollbar):
166678        * platform/ScrollbarTheme.h:
166679        (WebCore::ScrollbarTheme::hitTest):
166680        * platform/ScrollbarThemeComposite.cpp:
166681        (WebCore::ScrollbarThemeComposite::hitTest):
166682        * platform/ScrollbarThemeComposite.h:
166683        (ScrollbarThemeComposite):
166684        * platform/qt/ScrollbarThemeQStyle.cpp:
166685        (WebCore::ScrollbarThemeQStyle::hitTest):
166686        * platform/qt/ScrollbarThemeQStyle.h:
166687        (ScrollbarThemeQStyle):
166688
1666892012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
166690
166691        [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
166692        https://bugs.webkit.org/show_bug.cgi?id=102444
166693
166694        Reviewed by Adam Barth.
166695
166696        No new tests. Have been covered by many existing layout tests.
166697
166698        * html/shadow/MediaControlsChromiumAndroid.cpp:
166699        (WebCore::MediaControls::create): Calls createControls instead of itself.
166700
1667012012-11-16  Andreas Kling  <akling@apple.com>
166702
166703        StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
166704        <http://webkit.org/b/102507>
166705
166706        Reviewed by Antti Koivisto.
166707
166708        When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
166709        comparing the various attributes that would prevent sharing.
166710
166711        If the two elements both share the same ElementAttributeData, we can skip all those checks
166712        since they are guaranteed to have equal attributes.
166713
166714        Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
166715
166716        * css/StyleResolver.cpp:
166717        (WebCore::haveIdenticalStyleAffectingAttributes):
166718        (WebCore::StyleResolver::canShareStyleWithElement):
166719
1667202012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
166721
166722        [EFL][GTK] Build fix after r134955
166723        https://bugs.webkit.org/show_bug.cgi?id=102527
166724
166725        Reviewed by Martin Robinson.
166726
166727        Fix the EFL,GTK debug bulid fails after r134955.
166728
166729        * platform/network/soup/ResourceHandleSoup.cpp:
166730        (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
166731
1667322012-11-15  Alexey Proskuryakov  <ap@apple.com>
166733
166734        Private Browsing is a per-page setting that sets a global value
166735        https://bugs.webkit.org/show_bug.cgi?id=67870
166736
166737        Reviewed by Sam Weinig.
166738
166739        Make ResourceHandle{Mac,CFNet} use context to access storage session.
166740
166741        * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
166742        exports.
166743
166744        * loader/FrameNetworkingContext.h: Added an OVERRIDE.
166745
166746        * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
166747        no longer keeps track of a globally enabled private CFNetwork storage session.
166748
166749        * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
166750        don't have a NetworkingContext pointer, and have to use whatever a client expects
166751        them to do. Perhaps we should move those methods away from WebCore eventually.
166752
166753        * platform/network/NetworkingContext.h: Added storageSession().
166754
166755        * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
166756        sessions.
166757
166758        * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
166759        remember it post-creation to do things in willSendRequest. Alternatively, we could
166760        keep a reference to NetworkingContext itself.
166761
166762        * platform/network/cf/CookieJarCFNet.cpp:
166763        (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
166764        there is no globally current one any more. Also, we don't really expect cookie
166765        stirage to be 0 when not using NSURLConnection.
166766        (WebCore::cookiesForDOM): Ditto.
166767        (WebCore::cookieRequestHeaderFieldValue): Ditto.
166768        (WebCore::cookiesEnabled): Ditto.
166769        (WebCore::getRawCookies): Ditto.
166770        (WebCore::deleteCookie): Ditto.
166771        (WebCore::getHostnamesWithCookies): Ditto.
166772        (WebCore::deleteCookiesForHostname): Ditto.
166773        (WebCore::deleteAllCookies): Ditto.
166774        * platform/network/cf/CookieStorageCFNet.cpp:
166775        (WebCore::currentCFHTTPCookieStorage): Use a context.
166776        (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
166777        this is implemented in a strategy.
166778        (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
166779
166780        * platform/network/cf/CookieStorageCFNet.h: Ditto.
166781
166782        * platform/network/cf/ResourceHandleCFNet.cpp:
166783        (WebCore::willSendRequest): Use storage session from the context, not global one.
166784        (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
166785        function didn't really make any sense on its own.
166786        (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
166787        to match Mac.
166788        (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
166789        in, removed some seemingly nonsensical code that was getting and immediately re-applying
166790        cookie storage accept policy.
166791        (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
166792        (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
166793        (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
166794        access "d".
166795        (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
166796        (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
166797        It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
166798
166799        * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
166800        This function used to apply current storage session to every request for no apparent
166801        reason.
166802
166803        * platform/network/mac/CookieJarMac.mm:
166804        (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
166805        (WebCore::cookieRequestHeaderFieldValue): Ditto.
166806        (WebCore::setCookiesFromDOM): Ditto.
166807        (WebCore::cookiesEnabled): Ditto.
166808        (WebCore::getRawCookies): Ditto.
166809        (WebCore::deleteCookie): Ditto.
166810        (WebCore::getHostnamesWithCookies): Ditto.
166811        (WebCore::deleteCookiesForHostname): Ditto.
166812        (WebCore::deleteAllCookies): Ditto.
166813        * platform/network/mac/ResourceHandleMac.mm:
166814        (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
166815        null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
166816        argument, so that the function can access current session.
166817        (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
166818        (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
166819        (WebCore::ResourceHandle::willLoadFromCache): Style fix.
166820        (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
166821        for use in willSendRequest. 
166822        (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
166823
1668242012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
166825
166826        [Chromium] Land a proper fix for r134939.
166827
166828        * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
166829        * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
166830
1668312012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
166832
166833        [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
166834
1668352012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
166836
166837        [Chromium] Updated WebCore.gypi after r134939.
166838
166839        * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
166840
1668412012-11-16  Martin Robinson  <mrobinson@igalia.com>
166842
166843        [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
166844        https://bugs.webkit.org/show_bug.cgi?id=101840
166845
166846        Reviewed by Gustavo Noronha Silva.
166847
166848        Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
166849        Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
166850        be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
166851        in the manner that the CFNet backend does.
166852
166853        No new tests. There are tests for this behavior, but they cannot be activated until we finish
166854        plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
166855
166856        * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
166857        storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
166858        from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
166859        * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
166860        credentials to the persistent credential store.
166861        * platform/network/ResourceHandle.h:
166862        (ResourceHandle): Add a method which is used to continue asynchronously after looking for
166863        proposed credentials in the persistent credential store.
166864        * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
166865        an authentication succeeded.
166866        * platform/network/gtk/CredentialBackingStore.cpp:
166867        (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
166868        of stored credentials.
166869        (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
166870        (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
166871        * platform/network/gtk/CredentialBackingStore.h:
166872        (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
166873        * platform/network/soup/AuthenticationChallenge.h:
166874        (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
166875        can set proposed credentials from the persistent credential store.
166876        * platform/network/soup/ResourceHandleSoup.cpp:
166877        (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
166878        if the authentication succeeded.
166879        (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
166880        in the request URI. This is the method that Soup uses to override any soup-stored session credential.
166881        (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
166882        authenticating requests from the session store.
166883        (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
166884        (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
166885        Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
166886        (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
166887        (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
166888        into this asynchronous bit.
166889        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
166890        first looking in the persistent credential store.
166891        (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
166892        at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
166893        for storage later (see gotHeadersCallback).
166894
1668952012-11-16  Erik Arvidsson  <arv@chromium.org>
166896
166897        Update DOMException name: TypeMismatchError
166898        https://bugs.webkit.org/show_bug.cgi?id=102418
166899
166900        Reviewed by Kentaro Hara.
166901
166902        Patch 17 of 25 to update DOMException name to match the spec and Firefox.
166903
166904        Updated existing tests.
166905
166906        * dom/DOMCoreException.cpp:
166907        (WebCore):
166908        * dom/ExceptionCode.h:
166909
1669102012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
166911
166912        Coordinated Graphics: support the "freeze animations" API
166913        https://bugs.webkit.org/show_bug.cgi?id=100703
166914
166915        Reviewed by Noam Rosenthal.
166916
166917        Typo fix after previous patch.
166918
166919        No new tests, it's just a typo that only takes effect in the browser.
166920
166921        * platform/graphics/GraphicsLayerAnimation.cpp:
166922        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
166923        Initialize members.
166924
1669252012-11-16  Dan Carney  <dcarney@google.com>
166926
166927        add 7 bit strings capabilities to the v8 binding layer
166928        https://bugs.webkit.org/show_bug.cgi?id=91850
166929
166930        Reviewed by Adam Barth.
166931
166932        This change enables the v8 binding layer to make use of webkit's
166933        8 bit string capabilities. Using 8 bit strings leads to certain
166934        benchmark performance improvemnts as can be seen in
166935        https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
166936
166937        No new tests.  Test coverage already extensive.
166938
166939        * bindings/v8/V8PerIsolateData.cpp:
166940        (WebCore::V8PerIsolateData::visitExternalStrings):
166941        * bindings/v8/V8StringResource.cpp:
166942        (StringTraits):
166943        (WebCore::false):
166944        (WebCore):
166945        (WebCore::true):
166946        (WebCore::v8StringToWebCoreString):
166947        * bindings/v8/V8ValueCache.cpp:
166948        (WebCore::makeExternalString):
166949        (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
166950        (WebCore):
166951        (WebCore::WebCoreStringResourceBase::visitStrings):
166952        * bindings/v8/V8ValueCache.h:
166953        (WebCoreStringResourceBase):
166954        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
166955        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
166956        (WebCore::WebCoreStringResourceBase::atomicString):
166957        (WebCore::WebCoreStringResourceBase::memoryConsumption):
166958        (WebCoreStringResource16):
166959        (WebCore::WebCoreStringResource16::WebCoreStringResource16):
166960        (WebCore):
166961        (WebCoreStringResource8):
166962        (WebCore::WebCoreStringResource8::WebCoreStringResource8):
166963
1669642012-11-16  Erik Arvidsson  <arv@chromium.org>
166965
166966        Update DOMException name: InvalidAccessError
166967        https://bugs.webkit.org/show_bug.cgi?id=102400
166968
166969        Reviewed by Kentaro Hara.
166970
166971        Patch 15 of 25 to update DOMException name to match the spec and Firefox.
166972
166973        Updated existing tests.
166974
166975        * dom/DOMCoreException.cpp:
166976
1669772012-11-16  Alexandru Chiculita  <achicu@adobe.com>
166978
166979        [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
166980        https://bugs.webkit.org/show_bug.cgi?id=102414
166981
166982        Reviewed by Noam Rosenthal.
166983
166984        Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
166985        platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
166986        client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
166987        used to render any layer on the page. 
166988
166989        Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
166990        are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
166991        extended and reused in the platform compositor.
166992        
166993        No new tests, existing tests for CSS Custom Filters already cover this path.
166994
166995        * CMakeLists.txt:
166996        * GNUmakefile.am:
166997        * GNUmakefile.list.am:
166998        * Target.pri:
166999        * WebCore.pri:
167000        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
167001        (WebCore):
167002        * platform/graphics/filters/CustomFilterValidatedProgram.h:
167003        (WebCore):
167004        (CustomFilterValidatedProgram):
167005        * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
167006        (WebCore):
167007        (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
167008        (WebCore::CustomFilterValidatedProgram::platformInit):
167009        (WebCore::CustomFilterValidatedProgram::platformDestroy):
167010        * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
167011        (WebCore):
167012        (TextureMapperPlatformCompiledProgramClient):
167013        (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
167014        (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
167015        (TextureMapperPlatformCompiledProgram):
167016        Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
167017        the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
167018        (WebCore::TextureMapperPlatformCompiledProgram::create):
167019        (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
167020        (WebCore::TextureMapperPlatformCompiledProgram::client):
167021        (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
167022
1670232012-11-16  Andreas Kling  <akling@apple.com>
167024
167025        Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
167026        <http://webkit.org/b/102498>
167027
167028        Reviewed by Antti Koivisto.
167029
167030        Add a fast path to hasEquivalentAttributes() that checks if both elements are using
167031        the same ElementAttributeData.
167032
167033        * dom/Element.cpp:
167034        (WebCore::Element::hasEquivalentAttributes):
167035
1670362012-11-16  Zeno Albisser  <zeno@webkit.org>
167037
167038        [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
167039        https://bugs.webkit.org/show_bug.cgi?id=102360
167040
167041        QOpenGLContext::currentContext() will return null, in case there is
167042        no current context. Therefore currentContext must be null-checked
167043        before it can be reused.
167044        Making a context current on a null-surface on the other hand is
167045        perfectly possible.
167046
167047        Reviewed by Kenneth Rohde Christiansen.
167048
167049        * platform/graphics/qt/GraphicsContext3DQt.cpp:
167050        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
167051
1670522012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
167053
167054        Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
167055        https://bugs.webkit.org/show_bug.cgi?id=102488
167056
167057        Reviewed by Vsevolod Vlasov.
167058
167059        Panels are lazily loaded / instantiated.
167060        Panel constructors register keyboard shortcuts.
167061
167062        When user open shortcuts screen all panel should be loaded.
167063        Otherwise some shortcuts will be missing.
167064
167065        * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
167066        * inspector/front-end/inspector.js:
167067        Provided callback that loads all panels.
167068
1670692012-11-16  Kentaro Hara  <haraken@chromium.org>
167070
167071        [V8] Remove IsSubType() from CodeGeneratorV8.pm
167072        https://bugs.webkit.org/show_bug.cgi?id=102348
167073
167074        Reviewed by Adam Barth.
167075
167076        CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
167077
167078        No tests. No change in behavior.
167079
167080        * bindings/scripts/CodeGenerator.pm:
167081        (IsSubType):
167082        * bindings/scripts/CodeGeneratorJS.pm:
167083        (GenerateImplementation):
167084        * bindings/scripts/CodeGeneratorV8.pm:
167085        (GenerateHeader):
167086        (GetInternalFields):
167087        (GenerateNormalAttrGetter):
167088        (GenerateNormalAttrSetter):
167089        (GenerateFunctionCallback):
167090        (GenerateImplementationIndexer):
167091        (GenerateToV8Converters):
167092
1670932012-11-16  Mario Sanchez Prada  <mario@webkit.org>
167094
167095        [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
167096        https://bugs.webkit.org/show_bug.cgi?id=99578
167097
167098        Reviewed by Martin Robinson.
167099
167100        Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
167101
167102        * GNUmakefile.am:
167103        * GNUmakefile.list.am:
167104        * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
167105        Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
167106        * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
167107        Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
167108        * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
167109        Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
167110        * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
167111        Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
167112        * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
167113        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
167114        * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
167115        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
167116        * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
167117        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
167118        * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
167119        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
167120        * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
167121        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
167122        * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
167123        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
167124        * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
167125        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
167126        * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
167127        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
167128        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
167129        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
167130        * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
167131        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
167132        * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
167133        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
167134        * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
167135        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
167136        * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
167137        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
167138        * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
167139        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
167140        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
167141        Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
167142        * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
167143        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
167144        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
167145        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
167146        * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
167147        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
167148        * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
167149        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
167150        * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
167151        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
167152        * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
167153        from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
167154        * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
167155        Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
167156        * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
167157        Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
167158        * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
167159        Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
167160        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
167161        Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
167162        * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
167163        Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
167164
1671652012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
167166
167167        Changing pseudoClass (:indeterminate) should cause distribution
167168        https://bugs.webkit.org/show_bug.cgi?id=101903
167169
167170        Reviewed by Dimitri Glazkov.
167171
167172        <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
167173        invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
167174
167175        For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
167176        progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
167177
167178        Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
167179               fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
167180
167181        * html/HTMLInputElement.cpp:
167182        (WebCore::HTMLInputElement::updateType):
167183        (WebCore::HTMLInputElement::setIndeterminate):
167184        * html/HTMLProgressElement.cpp:
167185        (WebCore::HTMLProgressElement::didElementStateChange):
167186
1671872012-11-16  Alexis Menard  <alexis@webkit.org>
167188
167189        Factorize the creation of primitive values with a pair into a function.
167190        https://bugs.webkit.org/show_bug.cgi?id=102485
167191
167192        Reviewed by Antti Koivisto.
167193
167194        The pattern is already existing in various call sites inside CSSParser
167195        and more will be added in the future (see bug 102104).
167196
167197        No new tests : It's a refactoring only, the tests should cover it.
167198
167199        * css/CSSParser.cpp:
167200        (WebCore):
167201        (WebCore::createPrimitiveValuePair):
167202        (WebCore::CSSParser::parseValue):
167203        (WebCore::CSSParser::parseFillSize):
167204        (WebCore::CSSParser::parseBorderImageRepeat):
167205        (WebCore::CSSParser::parseBorderRadius):
167206        (WebCore::CSSParser::parseCounter):
167207
1672082012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
167209
167210        Expand PlatformCookieJar interface to allow for other ports
167211        https://bugs.webkit.org/show_bug.cgi?id=102456
167212
167213        Reviewed by Adam Barth.
167214
167215        Add firstParty and cookieURL arguments to several functions to
167216        prepare for integrating Chromium port into new PlatformCookieJar
167217        interface.
167218
167219        * loader/CookieJar.cpp:
167220        (WebCore::cookiesEnabled):
167221        (WebCore::cookieRequestHeaderFieldValue):
167222        (WebCore::getRawCookies):
167223        * platform/network/PlatformCookieJar.h:
167224        (WebCore):
167225        * platform/network/cf/CookieJarCFNet.cpp:
167226        (WebCore::cookieRequestHeaderFieldValue):
167227        (WebCore::cookiesEnabled):
167228        (WebCore::getRawCookies):
167229        * platform/network/curl/CookieJarCurl.cpp:
167230        (WebCore::cookieRequestHeaderFieldValue):
167231        (WebCore::cookiesEnabled):
167232        (WebCore::getRawCookies):
167233        * platform/network/mac/CookieJarMac.mm:
167234        (WebCore::cookieRequestHeaderFieldValue):
167235        (WebCore::cookiesEnabled):
167236        (WebCore::getRawCookies):
167237        * platform/network/qt/CookieJarQt.cpp:
167238        (WebCore::cookieRequestHeaderFieldValue):
167239        (WebCore::cookiesEnabled):
167240        (WebCore::getRawCookies):
167241        * platform/network/soup/CookieJarSoup.cpp:
167242        (WebCore::cookieRequestHeaderFieldValue):
167243        (WebCore::cookiesEnabled):
167244        (WebCore::getRawCookies):
167245        * platform/network/win/CookieJarWin.cpp:
167246        (WebCore::cookieRequestHeaderFieldValue):
167247        (WebCore::cookiesEnabled):
167248        (WebCore::getRawCookies):
167249
1672502012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
167251
167252        RenderGrid should have a function to resolve grid position
167253        https://bugs.webkit.org/show_bug.cgi?id=102441
167254
167255        Reviewed by Ojan Vafai.
167256
167257        The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
167258        Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
167259        on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
167260        support render areas and add a proper grid model to RenderGrid.
167261
167262        No expected change in behavior.
167263
167264        * rendering/RenderGrid.h:
167265        * rendering/RenderGrid.cpp:
167266        (WebCore::RenderGrid::resolveGridPosition):
167267        Added this new function to handle the conversion. We re-use Length but should never see
167268        a lot of the <length> values so I added some ASSERTs to enforce and catch that.
167269
167270        (WebCore::RenderGrid::findChildLogicalPosition):
167271        Simplified the function now that it just use resolveGridPosition.
167272
1672732012-11-16  Ulan Degenbaev  <ulan@chromium.org>
167274
167275        [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
167276        https://bugs.webkit.org/show_bug.cgi?id=94463
167277
167278        Reviewed by Kentaro Hara.
167279
167280        Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
167281
167282        Test: ManualTests/typed-array-memory.html
167283
167284        * bindings/v8/SerializedScriptValue.cpp:
167285
1672862012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
167287
167288        Unreviewed, rolling out r134694.
167289        http://trac.webkit.org/changeset/134694
167290        https://bugs.webkit.org/show_bug.cgi?id=102481
167291
167292        it made API test crash on EFL port (Requested by gyuyoung on
167293        #webkit).
167294
167295        * platform/efl/RenderThemeEfl.cpp:
167296        (WebCore::fillColorsFromEdjeClass):
167297        (WebCore::RenderThemeEfl::setColorFromThemeClass):
167298        (WebCore::RenderThemeEfl::loadTheme):
167299        (WebCore::RenderThemeEfl::RenderThemeEfl):
167300        * platform/efl/RenderThemeEfl.h:
167301        (RenderThemeEfl):
167302
1673032012-11-16  Mike West  <mkwst@chromium.org>
167304
167305        Web Inspector: Move call stack generation out of bindings.
167306        https://bugs.webkit.org/show_bug.cgi?id=101331
167307
167308        Reviewed by Yury Semikhatsky.
167309
167310        Currently, we generate stack traces for console messages at each call
167311        site. Bug 100650 has the end goal of moving all stack trace generation
167312        inside of the Inspector in order to ensure that we never send a console
167313        message without a stack trace if it's possible to generate one. This
167314        also ensures that we never generate unused call stacks.
167315
167316        This patch is the first step in that direction, moving stack trace
167317        generation out of the Console bindings, and into either Console or
167318        InspectorConsoleAgent.
167319
167320        No visible change in behavior should result; this refactoring should
167321        continue to pass all existing inspector tests.
167322
167323        * bindings/js/JSConsoleCustom.cpp:
167324        (WebCore::JSConsole::profile):
167325        (WebCore::JSConsole::profileEnd):
167326            Adjust custom JSC Console bindings to drop call stack generation.
167327        * bindings/scripts/CodeGeneratorJS.pm:
167328        (GenerateCallWith):
167329        * bindings/scripts/CodeGeneratorV8.pm:
167330        (GenerateCallWith):
167331            Drop call stack generation from JSC and V8 bindings.
167332        * bindings/scripts/CodeGeneratorGObject.pm:
167333            Skip timeEnd explicitly in these bindings; it used to include
167334            ScriptArguments, which autoskipped it. Now it doesn't, so it needs
167335            to be called out on its own.
167336        * bindings/v8/ScriptCallStackFactory.cpp:
167337        (WebCore::createScriptCallStackForConsole):
167338        (WebCore::createScriptCallStack):
167339        (WebCore):
167340        * bindings/v8/ScriptCallStackFactory.h:
167341        (WebCore):
167342            Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
167343            ScriptCallStackFactory in order to match JCS' implementation.
167344            It simply delegates to 'createScriptCallStackForConsole', which
167345            now also accepts a 'maxStackSize' parameter.
167346        * bindings/v8/custom/V8ConsoleCustom.cpp:
167347        (WebCore::V8Console::traceCallback):
167348        (WebCore::V8Console::assertCallback):
167349        (WebCore::V8Console::profileCallback):
167350        (WebCore::V8Console::profileEndCallback):
167351            Adjust custom V8 bindings to drop call stack generation.
167352        * inspector/InspectorConsoleAgent.cpp:
167353        (WebCore::InspectorConsoleAgent::addMessageToConsole):
167354            With the eventual goal of getting rid of the call stack parameter
167355            entirely, this patch drops it from one version of
167356            'addMessageToConsole' (replacing it with ScriptState*), and creates
167357            a new version that only accepts a call stack. We should be able to
167358            migrate most (all?) external call sites over to the arguments
167359            version in future patches.
167360        (WebCore):
167361        (WebCore::InspectorConsoleAgent::count):
167362            Count takes 'ScriptState*' instead of a call stack, and generates
167363            the stack as needed.
167364        * inspector/InspectorConsoleAgent.h:
167365        (InspectorConsoleAgent):
167366        * inspector/InspectorConsoleInstrumentation.h:
167367        (WebCore::InspectorInstrumentation::addMessageToConsole):
167368        (WebCore):
167369        (WebCore::InspectorInstrumentation::consoleCount):
167370        * inspector/InspectorInstrumentation.cpp:
167371        (WebCore):
167372        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
167373        (WebCore::InspectorInstrumentation::consoleCountImpl):
167374        * inspector/InspectorInstrumentation.h:
167375        (InspectorInstrumentation):
167376            Changes the InspectorInstrumentation pipeline to match the
167377            InspectorConsoleAgent changes.
167378        * page/Console.cpp:
167379        (WebCore::Console::addMessage):
167380            We now (always) generate one frame of a stack trace in order to
167381            populate line numbers and caller URLs. If we need to print the whole
167382            trace here, we generate a full stack.
167383        (WebCore::Console::debug):
167384        (WebCore::Console::error):
167385        (WebCore::Console::info):
167386        (WebCore::Console::log):
167387        (WebCore::Console::warn):
167388        (WebCore::Console::dir):
167389        (WebCore::Console::dirxml):
167390        (WebCore::Console::clear):
167391        (WebCore::Console::trace):
167392        (WebCore::Console::assertCondition):
167393        (WebCore::Console::count):
167394        (WebCore::Console::markTimeline):
167395        (WebCore::Console::timeEnd):
167396        (WebCore::Console::timeStamp):
167397        (WebCore::Console::group):
167398        (WebCore::Console::groupCollapsed):
167399        (WebCore::Console::profile):
167400        (WebCore::Console::profileEnd):
167401            s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
167402            has been moved out of 'trace' and into 'addMessage'.
167403        * page/Console.h:
167404        (Console):
167405        * page/Console.idl:
167406            Drop the call stack, add the script state.
167407        * workers/WorkerContext.cpp:
167408        (WebCore::WorkerContext::addMessageToWorkerConsole):
167409            Use the new, explicitly call stacked addMessageToConsole. We'll kill
167410            this in a future patch.
167411
1674122012-11-16  Marja Hölttä  <marja@chromium.org>
167413
167414        Add initiator to CachedResourceRequest.
167415        https://bugs.webkit.org/show_bug.cgi?id=101935
167416
167417        Reviewed by Adam Barth.
167418
167419        Motivation: Chromium needs to know which elements request a
167420        resource (such as an image or a script) (bug 92761). In addition,
167421        for exposing resource timing information (bug 84883) we need to
167422        store the initiator, and this is the first step towards it.
167423
167424        No new tests: No visible change in behavior.
167425
167426        * CMakeLists.txt:
167427        * GNUmakefile.list.am:
167428        * Target.pri:
167429        * WebCore.gypi:
167430        * WebCore.vcproj/WebCore.vcproj:
167431        * WebCore.xcodeproj/project.pbxproj:
167432        * css/CSSCursorImageValue.cpp:
167433        (WebCore::CSSCursorImageValue::cachedImage):
167434        * css/CSSFontFaceSrcValue.cpp:
167435        (WebCore::CSSFontFaceSrcValue::cachedFont):
167436        * css/CSSImageSetValue.cpp:
167437        (WebCore::CSSImageSetValue::cachedImageSet):
167438        * css/CSSImageValue.cpp:
167439        (WebCore::CSSImageValue::cachedImage):
167440        * css/CSSImageValue.h:
167441        (WebCore):
167442        (CSSImageValue):
167443        * css/StyleResolver.cpp:
167444        (WebCore::StyleResolver::loadPendingImage):
167445        * css/StyleRuleImport.cpp:
167446        (WebCore::StyleRuleImport::requestStyleSheet):
167447        * css/WebKitCSSSVGDocumentValue.cpp:
167448        (WebCore::WebKitCSSSVGDocumentValue::load):
167449        * css/WebKitCSSShaderValue.cpp:
167450        (WebCore::WebKitCSSShaderValue::cachedShader):
167451        * dom/ScriptElement.cpp:
167452        (WebCore::ScriptElement::requestScript):
167453        * html/HTMLLinkElement.cpp:
167454        (WebCore::HTMLLinkElement::process):
167455        * html/parser/CSSPreloadScanner.cpp:
167456        (WebCore::CSSPreloadScanner::emitRule):
167457        * html/parser/CSSPreloadScanner.h:
167458        (CSSPreloadScanner):
167459        * html/parser/HTMLPreloadScanner.cpp:
167460        (WebCore::PreloadTask::preload):
167461        * loader/ImageLoader.cpp:
167462        (WebCore::ImageLoader::updateFromElement):
167463        * loader/cache/CachedResourceLoader.cpp:
167464        (WebCore::CachedResourceLoader::requestImage):
167465        (WebCore::CachedResourceLoader::requestResource):
167466        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
167467        (WebCore):
167468        (WebCore::CachedResourceLoader::preload):
167469        * loader/cache/CachedResourceLoader.h:
167470        (WebCore):
167471        (CachedResourceLoader):
167472        * loader/cache/CachedResourceRequest.cpp:
167473        (WebCore::CachedResourceRequest::CachedResourceRequest):
167474        (WebCore):
167475        (WebCore::CachedResourceRequest::~CachedResourceRequest):
167476        (WebCore::CachedResourceRequest::setInitiator):
167477        (WebCore::CachedResourceRequest::initiatorName):
167478        (WebCore::CachedResourceRequest::initiatorDocument):
167479        (WebCore::CachedResourceRequest::initiatorElement):
167480        * loader/cache/CachedResourceRequest.h:
167481        (WebCore):
167482        (WebCore::CachedResourceRequest::setOptions):
167483        (WebCore::CachedResourceRequest::defer):
167484        (WebCore::CachedResourceRequest::setDefer):
167485        (CachedResourceRequest):
167486        * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
167487        (WebCore):
167488        (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
167489        * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
167490        (WebCore):
167491        (CachedResourceRequestInitiators):
167492        (WebCore::cachedResourceRequestInitiators):
167493        * loader/icon/IconLoader.cpp:
167494        (WebCore::IconLoader::startLoading):
167495        * platform/ThreadGlobalData.cpp:
167496        (WebCore::ThreadGlobalData::ThreadGlobalData):
167497        * platform/ThreadGlobalData.h:
167498        (WebCore):
167499        (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
167500        (ThreadGlobalData):
167501        * svg/SVGFEImageElement.cpp:
167502        (WebCore::SVGFEImageElement::requestImageResource):
167503        * svg/SVGFontFaceUriElement.cpp:
167504        (WebCore::SVGFontFaceUriElement::loadFont):
167505        * svg/SVGUseElement.cpp:
167506        (WebCore::SVGUseElement::svgAttributeChanged):
167507
1675082012-11-16  Yury Semikhatsky  <yurys@chromium.org>
167509
167510        Web Inspector: don't show an Error when evaluating a watch expression results in an exception
167511        https://bugs.webkit.org/show_bug.cgi?id=102470
167512
167513        Reviewed by Vsevolod Vlasov.
167514
167515        Dim watch expression and show "<not available>" as its value in cases when it evaluates
167516        into an exception.
167517
167518        * English.lproj/localizedStrings.js:
167519        * inspector/front-end/WatchExpressionsSidebarPane.js:
167520        (WebInspector.WatchExpressionTreeElement.prototype.update):
167521        * inspector/front-end/inspector.css:
167522
1675232012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
167524
167525        Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
167526        https://bugs.webkit.org/show_bug.cgi?id=102476
167527
167528        Unreviewed rolling out.
167529
167530        * English.lproj/localizedStrings.js:
167531        * WebCore.gypi:
167532        * WebCore.vcproj/WebCore.vcproj:
167533        * inspector/compile-front-end.py:
167534        * inspector/front-end/AdvancedSearchController.js:
167535        * inspector/front-end/CallStackSidebarPane.js:
167536        (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
167537        * inspector/front-end/ConsoleView.js:
167538        (WebInspector.ConsoleView.prototype._registerShortcuts):
167539        * inspector/front-end/ElementsPanel.js:
167540        (WebInspector.ElementsPanel):
167541        (WebInspector.ElementsPanel.prototype._registerShortcuts):
167542        * inspector/front-end/ElementsPanelDescriptor.js:
167543        * inspector/front-end/GoToLineDialog.js:
167544        (WebInspector.GoToLineDialog.install):
167545        * inspector/front-end/KeyboardShortcut.js:
167546        (WebInspector.KeyboardShortcut._keyName):
167547        * inspector/front-end/Panel.js:
167548        (WebInspector.Panel.prototype.registerShortcut):
167549        (WebInspector.Panel.prototype.unregisterShortcut):
167550        (WebInspector.PanelDescriptor.prototype.panel):
167551        * inspector/front-end/ScriptsPanel.js:
167552        (WebInspector.ScriptsPanel):
167553        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
167554        (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
167555        * inspector/front-end/ScriptsPanelDescriptor.js:
167556        * inspector/front-end/ShortcutsScreen.js:
167557        (WebInspector.ShortcutsScreen):
167558        (WebInspector.ShortcutsSection):
167559        (WebInspector.ShortcutsSection.prototype._renderKey):
167560        * inspector/front-end/StylesSidebarPane.js:
167561        (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
167562        * inspector/front-end/TimelinePanel.js:
167563        (WebInspector.TimelinePanel.prototype._registerShortcuts):
167564        * inspector/front-end/TimelinePanelDescriptor.js: Removed.
167565        * inspector/front-end/WebKit.qrc:
167566        * inspector/front-end/inspector.html:
167567        * inspector/front-end/inspector.js:
167568        (WebInspector._panelDescriptors):
167569        (WebInspector._registerShortcuts):
167570
1675712012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
167572
167573        Web Inspector: Memory Timeline Crash
167574        https://bugs.webkit.org/show_bug.cgi?id=102390
167575
167576        Reviewed by Vsevolod Vlasov.
167577
167578        Crash seems to be caused by IPC overflow.
167579        Messages "ParsedScriptSource" are routed to
167580        ResourceScriptMapping.prototype.addScript that process them in time
167581        linear to number of already registered non-anonymous non-inline scripts.
167582
167583        Fixed this with replacing repreated filtering with "on-line" bucketing.
167584
167585        * inspector/front-end/ResourceScriptMapping.js:
167586        (WebInspector.ResourceScriptMapping):
167587        Removed duplicating initialization code.
167588        (WebInspector.ResourceScriptMapping.prototype.addScript):
167589        Added script bucketing by sourceURL/isInline parameters.
167590        (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
167591        Avoid filterfig.
167592        (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
167593        Added outgoing muatable array safeguard.
167594        (WebInspector.ResourceScriptMapping.prototype._reset):
167595        Added type information and added two new maps.
167596
1675972012-11-16  Helder Correia  <helder.correia@nokia.com>
167598
167599        [CoordGfx] Follow coding style on explicit constructors
167600        https://bugs.webkit.org/show_bug.cgi?id=102451
167601
167602        Reviewed by Noam Rosenthal.
167603
167604        Use the explicit keyword on single argument constructors.
167605
167606        No new tests needed.
167607
167608        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
167609        (GraphicsLayerTextureMapper):
167610        * platform/graphics/texmap/TextureMapper.h:
167611        (TextureMapper):
167612        * platform/graphics/texmap/TextureMapperBackingStore.h:
167613        (WebCore::TextureMapperTile::TextureMapperTile):
167614        * platform/graphics/texmap/TextureMapperGL.cpp:
167615        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
167616        (WebCore::TextureMapperGLData::TextureMapperGLData):
167617        * platform/graphics/texmap/TextureMapperGL.h:
167618        (BitmapTextureGL):
167619        * platform/graphics/texmap/TextureMapperShaderManager.h:
167620        (TextureMapperShaderManager):
167621
1676222012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
167623
167624        Add DeviceController base-class to remove duplication of DeviceXXXControler
167625        https://bugs.webkit.org/show_bug.cgi?id=96894
167626
167627        Reviewed by Hajime Morita.
167628
167629        Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
167630        And soon-to-be-added DeviceMotionController and ProximityController.
167631
167632        Covered by existing tests.
167633
167634        * CMakeLists.txt:
167635        * GNUmakefile.list.am:
167636        * Target.pri:
167637        * WebCore.gypi:
167638        * WebCore.vcproj/WebCore.vcproj:
167639        * WebCore.xcodeproj/project.pbxproj:
167640        * dom/DeviceOrientationClient.h:
167641        * dom/DeviceOrientationController.cpp:
167642        Remove member functions to move to DeviceController.
167643        - addListener(), removeListener(), removeAllListeners(), isActive()
167644        (WebCore::DeviceOrientationController::DeviceOrientationController):
167645        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
167646        (WebCore::DeviceOrientationController::client):
167647        (WebCore::DeviceOrientationController::hasLastData):
167648        (WebCore::DeviceOrientationController::getLastEvent):
167649        (WebCore::DeviceOrientationController::from):
167650        (WebCore):
167651        * dom/DeviceOrientationController.h:
167652        (WebCore):
167653        (WebCore::DeviceOrientationController::~DeviceOrientationController):
167654        (DeviceOrientationController):
167655        * dom/Document.cpp:
167656        Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
167657        These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
167658        (WebCore::Document::suspendActiveDOMObjects):
167659        (WebCore::Document::resumeActiveDOMObjects):
167660        * loader/EmptyClients.h:
167661        (EmptyDeviceClient):
167662        (WebCore::EmptyDeviceClient::startUpdating):
167663        (WebCore::EmptyDeviceClient::stopUpdating):
167664        (WebCore):
167665        * page/DOMWindow.cpp:
167666        (WebCore::DOMWindow::addEventListener):
167667        (WebCore::DOMWindow::removeEventListener):
167668        (WebCore::DOMWindow::removeAllEventListeners):
167669        * page/DeviceClient.h: Added.
167670        (WebCore):
167671        (DeviceClient):
167672        (WebCore::DeviceClient::~DeviceClient):
167673        * page/DeviceController.cpp: Added.
167674        DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
167675        - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
167676        All kind of device event controller which has DeviceClient can be inherited from DeviceController.
167677        (WebCore):
167678        (WebCore::DeviceController::DeviceController):
167679        (WebCore::DeviceController::addDeviceEventListener):
167680        (WebCore::DeviceController::removeDeviceEventListener):
167681        (WebCore::DeviceController::removeAllDeviceEventListeners):
167682        (WebCore::DeviceController::dispatchDeviceEvent):
167683        (WebCore::DeviceController::fireDeviceEvent):
167684        * page/DeviceController.h: Added.
167685        (WebCore):
167686        (DeviceController):
167687        (WebCore::DeviceController::~DeviceController):
167688        (WebCore::DeviceController::isActive):
167689        (WebCore::DeviceController::client):
167690        (WebCore::DeviceController::hasLastData):
167691        (WebCore::DeviceController::getLastEvent):
167692
1676932012-11-16  Alexander Pavlov  <apavlov@chromium.org>
167694
167695        Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
167696        https://bugs.webkit.org/show_bug.cgi?id=102467
167697
167698        Reviewed by Pavel Feldman.
167699
167700        Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
167701        Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
167702        so that they will get restored only upon page navigation, not upon any agent enablement.
167703
167704        * inspector/InspectorPageAgent.cpp:
167705        (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
167706        (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
167707
1677082012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
167709
167710        Unreviewed, rolling out r134908.
167711        http://trac.webkit.org/changeset/134908
167712        https://bugs.webkit.org/show_bug.cgi?id=102473
167713
167714        Broke the Apple Windows Debug build. (Requested by dydx on
167715        #webkit).
167716
167717        * WebCore.exp.in:
167718        * dom/ViewportArguments.cpp:
167719        (WebCore::computeViewportAttributes):
167720        * dom/ViewportArguments.h:
167721        (WebCore):
167722
1677232012-11-16  Peter Rybin  <prybin@chromium.org>
167724
167725        Web Inspector: show internal properties in inspector frontend
167726        https://bugs.webkit.org/show_bug.cgi?id=100021
167727
167728        Reviewed by Yury Semikhatsky.
167729
167730        New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
167731
167732        Test: inspector/debugger/properties-special.html
167733
167734        * inspector/front-end/ObjectPropertiesSection.js:
167735        (WebInspector.ObjectPropertiesSection.prototype.update.callback):
167736        (WebInspector.ObjectPropertiesSection.prototype.update):
167737        (.callback):
167738        (WebInspector.ObjectPropertyTreeElement.populate):
167739        (.processProperties):
167740        (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
167741        (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
167742        * inspector/front-end/RemoteObject.js:
167743        (WebInspector.RemoteObject.prototype.set else):
167744
1677452012-11-06  Alexander Pavlov  <apavlov@chromium.org>
167746
167747        Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
167748        https://bugs.webkit.org/show_bug.cgi?id=93691
167749
167750        Reviewed by Vsevolod Vlasov.
167751
167752        - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
167753        both receiving a new, more light-weight design.
167754        - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
167755
167756        * WebCore.gypi:
167757        * WebCore.vcproj/WebCore.vcproj:
167758        * inspector/compile-front-end.py:
167759        * inspector/front-end/ContextMenu.js:
167760        (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
167761        * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
167762        (WebInspector.OverridesView.appendBlockTo):
167763        (WebInspector.OverridesView):
167764        (WebInspector.OverridesView.showInDrawer):
167765        (WebInspector.OverridesView.prototype.get listener):
167766        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
167767        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
167768        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
167769        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
167770        (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
167771        (WebInspector.OverridesView.prototype._createInput):
167772        (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
167773        (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
167774        (WebInspector.OverridesView.prototype.):
167775        (WebInspector.OverridesView.prototype.set if):
167776        (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
167777        (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
167778        (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
167779        (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
167780        (WebInspector.OverridesView.prototype._setGeolocationPosition):
167781        (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
167782        (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
167783        (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
167784        (WebInspector.OverridesView.prototype._setDeviceOrientation):
167785        (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
167786        * inspector/front-end/ScriptsPanel.js:
167787        (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
167788        * inspector/front-end/SettingsScreen.js:
167789        (WebInspector.SettingsTab):
167790        (WebInspector.SettingsTab.prototype._appendSection):
167791        (WebInspector.GenericSettingsTab):
167792        (WebInspector.ExperimentsSettingsTab):
167793        (WebInspector.SettingsController): Implement the popup menu upon the button click.
167794        (WebInspector.SettingsController.prototype.showOverrides):
167795        (WebInspector.SettingsController.prototype.showSettings):
167796        (WebInspector.SettingsController.prototype.appendApplicableItems):
167797        (WebInspector.SettingsController.prototype._buttonPressed):
167798        (WebInspector.SettingsController.prototype._onHideSettingsScreen):
167799        (WebInspector.SettingsController.prototype.showSettingsScreen):
167800        * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
167801        (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
167802        * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
167803        (WebInspector.SoftContextMenu.prototype.show):
167804        * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
167805        (WebInspector.TabbedPane.prototype.set verticalTabLayout):
167806        (WebInspector.TabbedPane.prototype._updateWidths):
167807        (WebInspector.TabbedPaneTab.prototype.setWidth):
167808        (WebInspector.TabbedPaneTab.prototype._createTabElement):
167809        * inspector/front-end/WebKit.qrc:
167810        * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
167811        * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
167812        (.soft-context-menu-item):
167813        (.drawer-header):
167814        * inspector/front-end/inspector.html:
167815
1678162012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
167817
167818        Unreviewed, rolling out r134865.
167819        http://trac.webkit.org/changeset/134865
167820        https://bugs.webkit.org/show_bug.cgi?id=102466
167821
167822        Broke the Apple Windows Debug build. (Requested by dydx on
167823        #webkit).
167824
167825        * WebCore.exp.in:
167826        * bindings/js/SerializedScriptValue.h:
167827        * testing/Internals.cpp:
167828        * testing/Internals.h:
167829        (WebCore):
167830        * testing/Internals.idl:
167831
1678322012-11-16  Takashi Sakamoto  <tasak@google.com>
167833
167834        ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
167835        https://bugs.webkit.org/show_bug.cgi?id=102116
167836
167837        Reviewed by Alexander Pavlov.
167838
167839        Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
167840        rules. Since there is no CSSOM wrapper for @host @-rules and
167841        ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
167842        this crash occurs.
167843
167844        Tests: fast/css/at-host-cssom-crash.html
167845               inspector/styles/styles-include-host-rules-crash.html
167846
167847        * css/StyleRule.cpp:
167848        (WebCore::StyleRuleBase::createCSSOMWrapper):
167849        Return a CSSUnknownRule instance for StyleRuleHost rules instead of
167850        calling ASSERT_NOT_REACHED().
167851
1678522012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
167853
167854        Avoid copying of ViewportArguments in computeViewportAttributes function
167855        https://bugs.webkit.org/show_bug.cgi?id=102354
167856
167857        Reviewed by Kenneth Rohde Christiansen.
167858
167859        Since r134749 we do not need copying of ViewportArguments parameter in
167860        computeViewportAttributes() as it is not modified any more.
167861
167862        Tested by existing tests fast/viewport.
167863
167864        * WebCore.exp.in: Updated exported symbols for MAC.
167865        * dom/ViewportArguments.cpp:
167866        (WebCore::computeViewportAttributes):
167867        * dom/ViewportArguments.h:
167868        (WebCore):
167869
1678702012-11-15  Yury Semikhatsky  <yurys@chromium.org>
167871
167872        Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
167873        https://bugs.webkit.org/show_bug.cgi?id=102384
167874
167875        Reviewed by Pavel Feldman.
167876
167877        * inspector/InspectorMemoryAgent.cpp:
167878        (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
167879        if the check fails.
167880        * inspector/MemoryInstrumentationImpl.h:
167881        (MemoryInstrumentationClientImpl):
167882
1678832012-11-15  Jer Noble  <jer.noble@apple.com>
167884
167885        Crash at WebCore::PluginData::pluginFileForMimeType const + 38
167886        https://bugs.webkit.org/show_bug.cgi?id=102454
167887
167888        Reviewed by Dan Bernstein.
167889
167890        NULL-check the return value of Page::pluginData().
167891
167892        * loader/SubframeLoader.cpp:
167893        (WebCore::logPluginRequest):
167894
1678952012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
167896
167897        [Chromium] Unreviewed build fix attempt on win
167898
167899        Include OpenTypeVerticalData.h
167900
167901        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
167902        (WebCore):
167903
1679042012-11-15  Kentaro Hara  <haraken@chromium.org>
167905
167906        Unreviewed, rolling out r134881.
167907        http://trac.webkit.org/changeset/134881
167908        https://bugs.webkit.org/show_bug.cgi?id=102348
167909
167910        http/tests/appcache tests on JSC platforms are broken
167911
167912        * bindings/scripts/CodeGenerator.pm:
167913        (IsStrictSubtype):
167914        * bindings/scripts/CodeGeneratorJS.pm:
167915        (GenerateImplementation):
167916        * bindings/scripts/CodeGeneratorV8.pm:
167917        (GenerateHeader):
167918        (GetInternalFields):
167919        (IsSubType):
167920        (IsNodeSubType):
167921        (GenerateNormalAttrGetter):
167922        (GenerateNormalAttrSetter):
167923        (GenerateFunctionCallback):
167924        (GenerateImplementationIndexer):
167925        (GenerateToV8Converters):
167926
1679272012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
167928
167929        [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
167930        https://bugs.webkit.org/show_bug.cgi?id=102420
167931
167932        Reviewed by Gyuyoung Kim.
167933
167934        Moved out texture upload without swizzle to the separate method and changed
167935        drawRepaintCounter to use no-swizzle method. This also fixes blue background
167936        of repaint counters in Qt Minibrowser.
167937        Added condition for sub-image buffer creation to not create it if full image is
167938        uploaded. This should give noticeable improvement for platforms that do not
167939        support sub-image upload to texture.
167940
167941        Covered by existing tests.
167942
167943        * platform/graphics/texmap/TextureMapperGL.cpp:
167944        (WebCore::TextureMapperGL::drawRepaintCounter):
167945        (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
167946        (WebCore):
167947        (WebCore::BitmapTextureGL::updateContents):
167948        * platform/graphics/texmap/TextureMapperGL.h:
167949        (BitmapTextureGL):
167950
1679512012-11-15  Kent Tamura  <tkent@chromium.org>
167952
167953        A Spin button should release mouse event capturing when a modal dialog opens
167954        https://bugs.webkit.org/show_bug.cgi?id=98007
167955
167956        Reviewed by Hajime Morita.
167957
167958        Description of bug:
167959        If the mouse left button is pressed on a spin button in
167960        input[type=number] and a 'change' event handler opens a modal dialog
167961        such as alert(), a repeating timer doesn't stop and mouse event
167962        capturing isn't released even though the mouse pointer isn't on the spin
167963        button.
167964        A user will see repeating alert dialogs for a document like <input
167965        type=number value=1 onchange="if (this.value==1) {alert(...);
167966        this.value=1;}"> by clicking the up button.
167967
167968        How to solve:
167969        We should notify modal dialog or popup open to a spin button.
167970        This patch introduce PopupOpeningObserver. Chrome notifies it when
167971        any dialogs / popups is opening. SpinButtonElement implements
167972        PopupOpeningObserver and registers/unregisters itself to/from
167973        Chrome.
167974
167975        No new tests. This is a behavior change, but it's very hard to make an
167976        automated test for timer-related behavior.
167977
167978        * page/PopupOpeningObserver.h: Added.
167979        * GNUmakefile.list.am: Add PopupOpeningObserver.h
167980        * Target.pri: Ditto.
167981        * WebCore.gypi: Ditto.
167982        * WebCore.vcproj/WebCore.vcproj: Ditto.
167983        * WebCore.xcodeproj/project.pbxproj: Ditto.
167984
167985        * page/Chrome.cpp:
167986        (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
167987        (WebCore::Chrome::runJavaScriptConfirm): Ditto.
167988        (WebCore::Chrome::runJavaScriptPrompt): Ditto.
167989        (WebCore::Chrome::createColorChooser): Ditto.
167990        (WebCore::Chrome::openDateTimeChooser):
167991        Added. Calls notifyPopupOpeningObservers before calling
167992        ChromeClient::openDateTimeChooser.
167993        (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
167994        (WebCore::Chrome::createPopupMenu): Ditto.
167995        (WebCore::Chrome::createSearchPopupMenu): Ditto.
167996        (WebCore::Chrome::registerPopupOpeningObserver): Added.
167997        (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
167998        (WebCore::Chrome::notifyPopupOpeningObservers): Added.
167999        * page/Chrome.h: Added new members and required class/struct declarations.
168000
168001        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
168002        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
168003        Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
168004        * html/shadow/PickerIndicatorElement.cpp:
168005        (WebCore::PickerIndicatorElement::openPopup): Ditto.
168006
168007        * html/shadow/SpinButtonElement.h:
168008        (SpinButtonElement): Declare willOpenPopup.
168009        * html/shadow/SpinButtonElement.cpp:
168010        (WebCore::SpinButtonElement::defaultEventHandler):
168011        Change the order of timer start and changing the value so that we
168012        can cancel the timer correctly.
168013        Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
168014        (WebCore::SpinButtonElement::willOpenPopup):
168015        Release mouse event capturing before opening a modal dialog.
168016        (WebCore::SpinButtonElement::releaseCapture):
168017        Calls Chrome::unregisterPopupOpeningObserver.
168018
168019
1680202012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
168021
168022        Chaging pseudoClass (:enabled) should cause distribution
168023        https://bugs.webkit.org/show_bug.cgi?id=101900
168024
168025        Reviewed by Dimitri Glazkov.
168026
168027        When element's 'enabled' state is changed, we have to invalidate distribution.
168028
168029        According to the spec, :enabled matches anchor/area/link element having href attribute,
168030        and several form control elements which is not disabled. However, currently :enalbed does not match
168031        anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
168032
168033        Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
168034               fast/dom/shadow/pseudoclass-update-enabled-area.html
168035               fast/dom/shadow/pseudoclass-update-enabled-button.html
168036               fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
168037               fast/dom/shadow/pseudoclass-update-enabled-input.html
168038               fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
168039               fast/dom/shadow/pseudoclass-update-enabled-option.html
168040               fast/dom/shadow/pseudoclass-update-enabled-select.html
168041               fast/dom/shadow/pseudoclass-update-enabled-textarea.html
168042
168043        * html/HTMLAnchorElement.cpp:
168044        (WebCore::HTMLAnchorElement::parseAttribute):
168045        * html/HTMLFormControlElement.cpp:
168046        (WebCore::HTMLFormControlElement::disabledAttributeChanged):
168047        * html/HTMLOptGroupElement.cpp:
168048        (WebCore::HTMLOptGroupElement::parseAttribute):
168049        * html/HTMLOptionElement.cpp:
168050        (WebCore::HTMLOptionElement::parseAttribute):
168051
1680522012-11-15  Erik Arvidsson  <arv@chromium.org>
168053
168054        Update DOMException name: ValidationError
168055        https://bugs.webkit.org/show_bug.cgi?id=102416
168056
168057        Reviewed by Kentaro Hara.
168058
168059        Patch 16 of 25 to update DOMException name to match the spec and Firefox.
168060
168061        VALIDATION_ERR is historical and not used in any spec or our code.
168062
168063        * dom/DOMCoreException.cpp:
168064        * dom/ExceptionCode.h:
168065
1680662012-11-15  Kentaro Hara  <haraken@chromium.org>
168067
168068        [V8] Remove IsSubType() from CodeGeneratorV8.pm
168069        https://bugs.webkit.org/show_bug.cgi?id=102348
168070
168071        Reviewed by Adam Barth.
168072
168073        CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
168074
168075        No tests. No change in behavior.
168076
168077        * bindings/scripts/CodeGenerator.pm:
168078        (IsSubType):
168079        * bindings/scripts/CodeGeneratorJS.pm:
168080        (GenerateImplementation):
168081        * bindings/scripts/CodeGeneratorV8.pm:
168082        (GenerateHeader):
168083        (GetInternalFields):
168084        (GenerateNormalAttrGetter):
168085        (GenerateNormalAttrSetter):
168086        (GenerateFunctionCallback):
168087        (GenerateImplementationIndexer):
168088        (GenerateToV8Converters):
168089
1680902012-11-15  Erik Arvidsson  <arv@chromium.org>
168091
168092        Update DOMException name: NamespaceError
168093        https://bugs.webkit.org/show_bug.cgi?id=102395
168094
168095        Reviewed by Kentaro Hara.
168096
168097        Patch 14 of 25 to update DOMException name to match the spec and Firefox.
168098
168099        Updated existing tests.
168100
168101        * dom/DOMCoreException.cpp:
168102
1681032012-11-15  Tien-Ren Chen  <trchen@chromium.org>
168104
168105        Add Settings to disable custom scrollbars on main frame
168106        https://bugs.webkit.org/show_bug.cgi?id=102323
168107
168108        Reviewed by Adam Barth.
168109
168110        Custom scrollbars on main frame don't really work well on touch devices.
168111        Add a setting to inhibit their creation.
168112
168113        No new tests. No change in default layout behavior.
168114
168115        * page/FrameView.cpp:
168116        (WebCore::FrameView::createScrollbar):
168117        * page/Settings.in:
168118
1681192012-11-15  Rick Byers  <rbyers@chromium.org>
168120
168121        custom CSS cursors ignore hotspot values embedded in CUR files
168122        https://bugs.webkit.org/show_bug.cgi?id=100059
168123
168124        Reviewed by Kenneth Russell.
168125
168126        Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
168127        and plumb it through so that the existing calls to ImageSource::getHotSpot
168128        actually return the hot spot value when there is one.
168129
168130        Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
168131
168132        * platform/graphics/ImageSource.cpp:
168133        (WebCore::ImageSource::getHotSpot):
168134        * platform/graphics/chromium/DeferredImageDecoder.cpp:
168135        (WebCore::DeferredImageDecoder::hotSpot):
168136        (WebCore::DeferredImageDecoder::hotSpotAtIndex):
168137        * platform/graphics/chromium/DeferredImageDecoder.h:
168138        (DeferredImageDecoder):
168139        * platform/image-decoders/ImageDecoder.h:
168140        (WebCore::ImageDecoder::hotSpot):
168141        (WebCore::ImageDecoder::hotSpotAtIndex):
168142        (ImageDecoder):
168143        * platform/image-decoders/ico/ICOImageDecoder.cpp:
168144        (WebCore::ICOImageDecoder::hotSpot):
168145        (WebCore::ICOImageDecoder::hotSpotAtIndex):
168146        (WebCore::ICOImageDecoder::processDirectory):
168147        (WebCore::ICOImageDecoder::readDirectoryEntry):
168148        * platform/image-decoders/ico/ICOImageDecoder.h:
168149        (ICOImageDecoder):
168150        (IconDirectoryEntry):
168151
1681522012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
168153
168154        Make OpenTypeVerticalData be ref-counted
168155        https://bugs.webkit.org/show_bug.cgi?id=101971
168156
168157        Reviewed by Tony Chang.
168158
168159        FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
168160        OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
168161        via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
168162        SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
168163        delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
168164        it be ref-counted.
168165
168166        No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
168167
168168        * platform/graphics/FontCache.cpp:
168169        (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
168170        (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
168171        (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
168172        * platform/graphics/FontCache.h:
168173        * platform/graphics/SimpleFontData.cpp:
168174        (WebCore::SimpleFontData::SimpleFontData):
168175        * platform/graphics/SimpleFontData.h:
168176        Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
168177        (WebCore::SimpleFontData::verticalData):
168178        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
168179        (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
168180        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
168181        (FontPlatformData):
168182        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
168183        (WebCore::FontPlatformData::verticalData): Ditto.
168184        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
168185        (WebCore):
168186        (FontPlatformData):
168187        * platform/graphics/opentype/OpenTypeVerticalData.h:
168188        (WebCore::OpenTypeVerticalData::create): Added.
168189        (OpenTypeVerticalData):
168190
1681912012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
168192
168193        Optimize the multiply-add in Biquad.cpp::process
168194        https://bugs.webkit.org/show_bug.cgi?id=75528
168195
168196        Reviewed by Brent Fulgham.
168197
168198        Pipeline the multiply-add with SSE2 intrinsics.
168199        Get ~45% performance improvement for the function.
168200
168201        * platform/audio/Biquad.cpp:
168202        (WebCore::Biquad::process):
168203
1682042012-11-15  Alec Flett  <alecflett@chromium.org>
168205
168206        Add tests for explicit serialization values
168207        https://bugs.webkit.org/show_bug.cgi?id=96818
168208
168209        Reviewed by Adam Barth.
168210
168211        Expose direct access to the serialization/deserialization mechanisms
168212        of SerializedScriptValue to DumpRenderTree.
168213
168214        * testing/Internals.cpp:
168215        (WebCore::Internals::serializeObject):
168216        (WebCore):
168217        (WebCore::Internals::deserializeBuffer):
168218        * testing/Internals.h:
168219        (WebCore):
168220        * testing/Internals.idl:
168221
1682222012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
168223
168224        [GTK] Split WebCore/platform into a separate library
168225        https://bugs.webkit.org/show_bug.cgi?id=94435
168226
168227        Reviewed by Martin Robinson.
168228
168229        More people have been reporting problems when linking WebCore because
168230        the command line limit is being exceeded. Splitting WebCore a bit more
168231        is in order.
168232
168233        * GNUmakefile.am: add new libWebCorePlatform convenience library.
168234        * GNUmakefile.list.am: move list of platform/* files to its own variable.
168235
1682362012-11-15  Luke Macpherson   <macpherson@chromium.org>
168237
168238        Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
168239        https://bugs.webkit.org/show_bug.cgi?id=102036
168240
168241        Reviewed by Darin Adler.
168242
168243        Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
168244
168245        No tests added because code is unused, and compile is enough to verify that conculsively.
168246
168247        * css/StyleResolver.cpp:
168248
1682492012-11-15  Erik Arvidsson  <arv@chromium.org>
168250
168251        Update DOMException name: SyntaxError
168252        https://bugs.webkit.org/show_bug.cgi?id=102279
168253
168254        Reviewed by Kentaro Hara.
168255
168256        Patch 12 of 25 to update DOMException name to match the spec and Firefox.
168257
168258        Updated existing tests.
168259
168260        * dom/DOMCoreException.cpp:
168261
1682622012-11-15  Takashi Sakamoto  <tasak@google.com>
168263
168264        [Win] key event's location does not work on Windows platform.
168265        https://bugs.webkit.org/show_bug.cgi?id=89742
168266
168267        Reviewed by Brent Fulgham.
168268
168269        As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
168270        directly provide a virtual keycode which distinguish between left-hand
168271        and right-hand keys. To obtain a virtual keycode, we have to look at
168272        lparam, i.e. scancode and extended key bit. So if the given virtual
168273        keycode is control, shift, or menu, use MapVirtualKey with scancode and
168274        extended key bit and recreate a virtual keycode which distinguishes
168275        between left-hand and right-hand.
168276
168277        No new tests, because left-hand keys, right-hand keys layout tests
168278        have been already added.
168279
168280        * platform/win/KeyEventWin.cpp:
168281        (WebCore::windowsKeycodeWithLocation):
168282        Use wparam and lparam to recreate a virtual keycode which distinguishes
168283        between left-hand and right-hand if the given wparam (=virtual keycode)
168284        is control, shift, or menu.
168285        (WebCore):
168286        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
168287        Use the newly added function to obtain windows virtual keycode.
168288
1682892012-11-15  Joe Mason  <jmason@rim.com>
168290
168291        [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
168292        https://bugs.webkit.org/show_bug.cgi?id=102436
168293
168294        Reviewed by Rob Buis.
168295
168296        The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
168297        taking auth of its own. First we get a 407 from the proxy, and then when get past the
168298        proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
168299        type Proxy instead of HTTP.
168300
168301        The correct thing to do when that happens is skip the "update the auth type in the
168302        credentials" step, since these are actually new credentials and not just credentials being
168303        reused for a different auth type on the same server.
168304
168305        PR 241637
168306
168307        * platform/network/blackberry/NetworkJob.cpp:
168308        (WebCore::NetworkJob::notifyAuthReceived):
168309
1683102012-11-15  Stephen Chenney  <schenney@chromium.org>
168311
168312        mpath elements do not clear resource lists before destruction
168313        https://bugs.webkit.org/show_bug.cgi?id=101505
168314
168315        Reviewed by Abhishek Arya.
168316
168317        The destructor for SVGMPathElement should clear its resources before
168318        deletion, so as not to leave hanging pointers in resource lists.
168319
168320        Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
168321
168322        * svg/SVGMPathElement.cpp:
168323        (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
168324        (WebCore):
168325        * svg/SVGMPathElement.h:
168326        (SVGMPathElement): Add destructor.
168327
1683282012-11-15  Kentaro Hara  <haraken@chromium.org>
168329
168330        Remove CodeGenerator::StripModule
168331        https://bugs.webkit.org/show_bug.cgi?id=102338
168332
168333        Reviewed by Adam Barth.
168334
168335        Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
168336        We can remove CodeGenerator::StripModule.
168337        This might break some internal builds if the internal builds are still
168338        using modules. Ping haraken@ you observe it.
168339
168340        No tests. No change in behavior.
168341
168342        * bindings/scripts/CodeGenerator.pm:
168343        (ForAllParents):
168344        (AttributeNameForGetterAndSetter):
168345        (IsStrictSubtype):
168346        * bindings/scripts/CodeGeneratorCPP.pm:
168347        (GetClassName):
168348        (GetImplClassName):
168349        (GetParentImplClassName):
168350        (GetParent):
168351        (ConversionNeeded):
168352        (GetCPPTypeGetter):
168353        (AddForwardDeclarationsForType):
168354        (AddIncludesForType):
168355        (GenerateImplementation):
168356        * bindings/scripts/CodeGeneratorGObject.pm:
168357        (GetParentClassName):
168358        (GetParentGObjType):
168359        (GetClassName):
168360        * bindings/scripts/CodeGeneratorJS.pm:
168361        (GetParentClassName):
168362        (AddIncludesForTypeInImpl):
168363        (AddIncludesForTypeInHeader):
168364        (GenerateParametersCheckExpression):
168365        (GenerateImplementation):
168366        (GenerateParametersCheck):
168367        (GetNativeTypeFromSignature):
168368        (JSValueToNative):
168369        (NativeToJSValue):
168370        * bindings/scripts/CodeGeneratorObjC.pm:
168371        (GetClassName):
168372        (GetImplClassName):
168373        (GetParentImplClassName):
168374        (GetParentAndProtocols):
168375        (GetPropertyAttributes):
168376        (ConversionNeeded):
168377        (GetObjCTypeGetter):
168378        (AddForwardDeclarationsForType):
168379        (AddIncludesForType):
168380        (GenerateImplementation):
168381        * bindings/scripts/CodeGeneratorV8.pm:
168382        (AddIncludesForType):
168383        (GenerateHeader):
168384        (IsSubType):
168385        (GenerateSingleBatchedAttribute):
168386        (GenerateImplementation):
168387        (BaseInterfaceName):
168388        (GetTypeFromSignature):
168389        (IsWrapperType):
168390
1683912012-11-15  Luke Macpherson   <macpherson@chromium.org>
168392
168393        Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
168394        https://bugs.webkit.org/show_bug.cgi?id=101696
168395
168396        Reviewed by Tony Chang.
168397
168398        Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
168399        This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
168400
168401        No new tests / covered by all existing CSS tests.
168402
168403        * css/StyleResolver.cpp:
168404        (WebCore::StyleResolver::applyProperty):
168405
1684062012-11-15  Kentaro Hara  <haraken@chromium.org>
168407
168408        [V8] Remove redundant $interfaceName from function parameters
168409        https://bugs.webkit.org/show_bug.cgi?id=102334
168410
168411        Reviewed by Adam Barth.
168412
168413        'sub func { my $dataNode = shift; my $interfaceName = shift; }'
168414        is redundant. We can get $interfaceName by $dataNode->name.
168415
168416        No tests. No change in behavior.
168417
168418        * bindings/scripts/CodeGeneratorV8.pm:
168419        (GenerateOpaqueRootForGC):
168420        (GenerateHeader):
168421        (GenerateConstructorGetter):
168422        (GenerateNormalAttrGetter):
168423        (GenerateReplaceableAttrSetter):
168424        (GenerateNormalAttrSetter):
168425        (GenerateOverloadedFunctionCallback):
168426        (GenerateFunctionCallback):
168427        (GenerateOverloadedConstructorCallback):
168428        (GenerateSingleConstructorCallback):
168429        (GenerateConstructorCallback):
168430        (GenerateEventConstructorCallback):
168431        (GenerateTypedArrayConstructorCallback):
168432        (GenerateNamedConstructorCallback):
168433        (GenerateBatchedAttributeData):
168434        (GenerateImplementation):
168435        (GenerateToV8Converters):
168436        (GetNativeTypeForConversions):
168437
1684382012-11-15  Simon Fraser  <simon.fraser@apple.com>
168439
168440        Ensure that scrollbar layers show debug borders
168441        https://bugs.webkit.org/show_bug.cgi?id=102429
168442
168443        Reviewed by Anders Carlsson.
168444
168445        After r133517, scrollbar layers no longer showed debug borders, which
168446        was very confusing. Fix this by explicitly calling setShowDebugBorder()
168447        on the scrollbar-related layers owned by RenderLayerCompositor
168448        and RenderLayerBacking.
168449        
168450        * rendering/RenderLayerBacking.cpp:
168451        (WebCore::RenderLayerBacking::updateDebugIndicators):
168452        * rendering/RenderLayerCompositor.cpp:
168453        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
168454        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
168455
1684562012-11-15  Andreas Kling  <akling@apple.com>
168457
168458        ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
168459        <http://webkit.org/b/102423>
168460
168461        Reviewed by Anders Carlsson.
168462
168463        Use Element::getAttributeItem() to find out if the element has a given attribute
168464        instead of fastHasAttribute() since that causes assertions for the "style" attribute.
168465
168466        * html/parser/HTMLConstructionSite.cpp:
168467        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
168468
1684692012-11-15  Erik Arvidsson  <arv@chromium.org>
168470
168471        Update DOMException name: DOMStringSizeError
168472        https://bugs.webkit.org/show_bug.cgi?id=102089
168473
168474        Reviewed by Ojan Vafai.
168475
168476        Patch 2 of 25 to update DOMException name to match the spec and Firefox.
168477
168478        DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
168479
168480        * dom/DOMCoreException.cpp:
168481        * dom/ExceptionCode.h:
168482
1684832012-11-15  Joshua Bell  <jsbell@chromium.org>
168484
168485        IndexedDB: Indexing tests are flaky-crashing
168486        https://bugs.webkit.org/show_bug.cgi?id=102283
168487
168488        Reviewed by Tony Chang.
168489
168490        Processing the final task can cause IDBTransactionBackendImpl references to be released
168491        by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
168492        swapping queues) control would fall off the end of the function. The loop termination
168493        check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
168494        the method completes.
168495
168496        Test: storage/indexeddb/transaction-crash-in-tasks.html
168497
168498        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
168499        (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
168500        (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
168501        (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
168502
1685032012-11-15  Elliott Sprehn  <esprehn@chromium.org>
168504
168505        MutationObserver wrapper should not be collected while still observing
168506        https://bugs.webkit.org/show_bug.cgi?id=102328
168507
168508        Reviewed by Adam Barth.
168509
168510        Make MutationObserver an ActiveDOMObject so that the wrapper is not
168511        collected while it is still observing the DOM. This is needed because
168512        the wrapper is passed into the callback and expandos on the wrapper
168513        should be preserved.
168514
168515        Test: fast/mutation/observer-wrapper-dropoff.html
168516
168517        * bindings/js/JSMutationObserverCustom.cpp:
168518        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
168519        * bindings/v8/custom/V8MutationObserverCustom.cpp:
168520        (WebCore::V8MutationObserver::constructorCallback):
168521        * dom/MutationObserver.cpp:
168522        (WebCore::MutationObserver::create):
168523        (WebCore::MutationObserver::MutationObserver):
168524        (WebCore::MutationObserver::observationStarted):
168525        (WebCore::MutationObserver::observationEnded):
168526        * dom/MutationObserver.h:
168527        (WebCore):
168528        * dom/MutationObserver.idl:
168529
1685302012-11-15  Tony Chang  <tony@chromium.org>
168531
168532        Generate Settings from a .in file
168533        https://bugs.webkit.org/show_bug.cgi?id=100393
168534
168535        Reviewed by Adam Barth.
168536
168537        Generate most settings from an .in file to reduce human mistakes and
168538        to make it easier to add/remove new settings.
168539
168540        I only moved settings that are easy to move at this point.  There are many more that
168541        have some minor naming inconsistencies that we can also move to Settings.in, but I'll
168542        do that in a follow up patch.
168543
168544        This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
168545
168546        No new tests, this is a refactor.
168547
168548        * CMakeLists.txt:
168549        * DerivedSources.make: Run make_settings.pl.
168550        * DerivedSources.pri: Run make_settings.pl.
168551        * GNUmakefile.am: Run make_settings.pl.
168552        * GNUmakefile.list.am:
168553        * WebCore.exp.in: Remove functions that are now inline in the header.
168554        * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
168555        * WebCore.gyp/scripts/action_makenames.py:
168556        (main): Allow make_settings.pl.
168557        * WebCore.order: Remove functions that are now inline in the header.
168558        * html/ValidationMessage.cpp:
168559        (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
168560        * page/Settings.cpp:
168561        (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
168562        * page/Settings.h:
168563        (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
168564        * page/Settings.in: Added.
168565        * page/make_settings.pl: Added.
168566        (defaultItemFactory):
168567        (generateCode):
168568        (generateHeader): Use a similar model as make_names.pl.
168569        (printConditionalMacros):
168570        (printGettersAndSetters):
168571        (printMemberVariables):
168572        (printGetterAndSetter):
168573        (printInitializerList):
168574        (printInitializer):
168575
1685762012-11-15  Alpha Lam  <hclam@chromium.org>
168577
168578        [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
168579        https://bugs.webkit.org/show_bug.cgi?id=102019
168580
168581        Reviewed by Stephen White.
168582
168583        Goal of this change is to keep ImageDecodingStore clean and only do
168584        image caching. Logic of creating lazily decoded SkBitmaps is moved into
168585        DeferredImageDecoder.
168586
168587        In particular these two methods are moved:
168588        - ImageDecodingStore::createLazyDecodedSkBitmap
168589        - ImageDecodingStore::resizeLazyDecodedSkBitmap
168590
168591        No new tests. There is no new code (really). It is just moved from
168592        ImageDecodingStore to DeferredImageDecoder.
168593
168594        No change in behavior. Code is tested with:
168595        Unit tests: webkit_unit_tests
168596        Layout test: platform/chromium/virtual/deferred
168597
168598        * platform/graphics/chromium/DeferredImageDecoder.cpp:
168599        (WebCore::DeferredImageDecoder::isLazyDecoded):
168600        (WebCore):
168601        (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
168602        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
168603        (WebCore::DeferredImageDecoder::setData):
168604        (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
168605        * platform/graphics/chromium/DeferredImageDecoder.h:
168606        (WebCore):
168607        (DeferredImageDecoder):
168608        * platform/graphics/chromium/ImageDecodingStore.cpp:
168609        * platform/graphics/chromium/ImageDecodingStore.h:
168610        (ImageDecodingStore):
168611        * platform/graphics/chromium/ImageFrameGenerator.cpp:
168612        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
168613        * platform/graphics/chromium/ImageFrameGenerator.h:
168614        (WebCore::ImageFrameGenerator::create):
168615        (ImageFrameGenerator):
168616        * platform/graphics/skia/NativeImageSkia.cpp:
168617        (WebCore::NativeImageSkia::resizedBitmap):
168618
1686192012-11-15  Roger Fong  <roger_fong@apple.com>
168620
168621        Unreviewed. Build fix for Windows after r134767.
168622
168623        Update vsprops and vcproj files to reflect changes to file locations in r134767.
168624
168625        * WebCore.vcproj/WebCore.vcproj:
168626        * WebCore.vcproj/WebCoreCommon.vsprops:
168627
1686282012-11-15  Elliott Sprehn  <esprehn@chromium.org>
168629
168630        Track subframe count to avoid traversing the tree when there's no subframes
168631        https://bugs.webkit.org/show_bug.cgi?id=101821
168632
168633        Reviewed by Ojan Vafai.
168634
168635        Bug 101619 showed a 9-14% improvement from not walking the children during
168636        removeChild looking for frames when there's known to be no frames. The fix
168637        in that bug only avoids this walk when the whole document has no frames, this
168638        patch extends it to skip traversing subtrees that have no iframes by hooking
168639        the frame assignment to walk up the tree and keep track of the count of frames
168640        in the subtree on contentFrame assignment and then decrement it on disconnect.
168641
168642        No new tests, this is just a perf refactor.
168643
168644        * dom/ContainerNode.cpp:
168645        (WebCore::willRemoveChildren):
168646        * dom/ContainerNodeAlgorithms.cpp:
168647        (WebCore::ChildFrameDisconnector::collectFrameOwners):
168648        * dom/ContainerNodeAlgorithms.h:
168649        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
168650        (ChildFrameDisconnector):
168651        (WebCore::ChildFrameDisconnector::collectFrameOwners):
168652          Renamed from collectDescendant() to better reflect what it really does.
168653        (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
168654          Renamed from disconnect() to better reflect what it really does.
168655        (WebCore::ChildFrameDisconnector::disconnect):
168656          New method that does the collection of frame owners on either the root
168657          or only it's descendants.
168658        * dom/Node.cpp:
168659        (WebCore::Node::connectedSubframeCount):
168660        (WebCore::Node::incrementConnectedSubframeCount):
168661        (WebCore::Node::decrementConnectedSubframeCount):
168662        * dom/Node.h:
168663        * dom/NodeRareData.h:
168664        (WebCore::NodeRareData::NodeRareData):
168665        (WebCore::NodeRareData::connectedSubframeCount):
168666        (WebCore::NodeRareData::incrementConnectedSubframeCount):
168667        (WebCore::NodeRareData::decrementConnectedSubframeCount):
168668        * html/HTMLFrameOwnerElement.cpp:
168669        (WebCore::HTMLFrameOwnerElement::setContentFrame):
168670        (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
168671
1686722012-11-15  Alpha Lam  <hclam@chromium.org>
168673
168674        [chromium] WebGL texImage2D fails with deferred image decoding
168675        https://bugs.webkit.org/show_bug.cgi?id=102310
168676
168677        Reviewed by Kenneth Russell.
168678
168679        Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
168680        to decode an image. When deferred image decoding is enabled this class
168681        generates an ImageFrame marked as incomplete, which WebGL rejects. This results
168682        in failing of texImage2D.
168683
168684        This change uses ImageDecoder directly instead of ImageSource. This skips
168685        the code path of deferred image decoding. This behavior is correct because
168686        GraphicsContext3D wants to decode the image differently with alpha not
168687        premultiplied and color profile applied optionally.
168688
168689        Added a test to prove this change fixed the bug.
168690
168691        Test: fast/images/webgl-teximage2d.html
168692
168693        * platform/graphics/skia/GraphicsContext3DSkia.cpp:
168694        (WebCore::GraphicsContext3D::getImageData):
168695
1686962012-11-15  Jer Noble  <jer.noble@apple.com>
168697
168698        Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
168699
168700        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
168701        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
168702
1687032012-11-15  Jer Noble  <jer.noble@apple.com>
168704
168705        Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
168706
168707        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
168708        (WebCore::WebCoreAVFResourceLoader::responseReceived):
168709        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
168710
1687112012-11-15  Adam Barth  <abarth@webkit.org>
168712
168713        [V8] We shouldn't call deprecated V8 APIs
168714        https://bugs.webkit.org/show_bug.cgi?id=102407
168715
168716        Reviewed by Eric Seidel.
168717
168718        This patch was written by Sven Panne on the V8 team. He would prefer
168719        that we not call deprecated V8 APIs. This patch updates these call
168720        sites to more modern idioms.
168721
168722        * bindings/scripts/CodeGeneratorV8.pm:
168723        (GenerateConstructorGetter):
168724        (GenerateImplementation):
168725        * bindings/scripts/test/V8/V8TestObj.cpp:
168726        (WebCore::TestObjV8Internal::TestObjConstructorGetter):
168727        * bindings/v8/PageScriptDebugServer.cpp:
168728        (WebCore::PageScriptDebugServer::addListener):
168729        * bindings/v8/ScriptController.cpp:
168730        (WebCore::ScriptController::setContextDebugId):
168731        (WebCore::ScriptController::contextDebugId):
168732        * bindings/v8/ScriptProfiler.cpp:
168733        (WebCore::ScriptProfiler::objectByHeapObjectId):
168734            - This code doesn't seem to do anything anymore.
168735        * bindings/v8/V8DOMConfiguration.h:
168736        (WebCore::V8DOMConfiguration::configureAttribute):
168737        * bindings/v8/V8DOMWindowShell.cpp:
168738        (WebCore::setInjectedScriptContextDebugId):
168739        * bindings/v8/V8DOMWrapper.cpp:
168740        (WebCore::V8DOMWrapper::maybeDOMWrapper):
168741        (WebCore::V8DOMWrapper::isWrapperOfType):
168742        * bindings/v8/V8EventListenerList.h:
168743        (WebCore::V8EventListenerList::doFindWrapper):
168744        (WebCore::V8EventListenerList::findOrCreateWrapper):
168745        * bindings/v8/WorkerContextExecutionProxy.cpp:
168746        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
168747        * bindings/v8/WrapperTypeInfo.h:
168748        (WebCore::WrapperTypeInfo::unwrap):
168749
1687502012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
168751
168752        Unreviewed, rolling out r134800 and r134805.
168753        http://trac.webkit.org/changeset/134800
168754        http://trac.webkit.org/changeset/134805
168755        https://bugs.webkit.org/show_bug.cgi?id=102417
168756
168757        This patch broke chromium port (Requested by jianli on
168758        #webkit).
168759
168760        * Modules/mediastream/RTCPeerConnection.cpp:
168761        (WebCore::RTCPeerConnection::RTCPeerConnection):
168762        (WebCore::RTCPeerConnection::createOffer):
168763        (WebCore::RTCPeerConnection::createAnswer):
168764        (WebCore::RTCPeerConnection::setLocalDescription):
168765        (WebCore::RTCPeerConnection::localDescription):
168766        (WebCore::RTCPeerConnection::setRemoteDescription):
168767        (WebCore::RTCPeerConnection::remoteDescription):
168768        (WebCore::RTCPeerConnection::updateIce):
168769        (WebCore::RTCPeerConnection::addIceCandidate):
168770        (WebCore::RTCPeerConnection::readyState):
168771        (WebCore::RTCPeerConnection::iceState):
168772        (WebCore::RTCPeerConnection::addStream):
168773        (WebCore::RTCPeerConnection::close):
168774        (WebCore::RTCPeerConnection::stop):
168775        (WebCore::RTCPeerConnection::changeReadyState):
168776        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
168777        * Modules/mediastream/RTCPeerConnection.h:
168778        (RTCPeerConnection):
168779        * Modules/mediastream/RTCPeerConnection.idl:
168780        * dom/EventNames.h:
168781        (WebCore):
168782        * platform/mediastream/RTCDataChannelDescriptor.cpp:
168783        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
168784        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
168785        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
168786        (RTCPeerConnectionHandlerClient):
168787        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
168788        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
168789        (RTCPeerConnectionHandlerChromium):
168790
1687912012-11-15  Elliott Sprehn  <esprehn@chromium.org>
168792
168793        Remove Node::aboutToUnload and be more explicit about what it was for
168794        https://bugs.webkit.org/show_bug.cgi?id=102357
168795
168796        Reviewed by Ryosuke Niwa.
168797
168798        Node::aboutToUnload was confusingly named because it was only called on
168799        the focused node, and it really only existed to support notifying the
168800        embedder that inputs should stop being editable on unload. Instead add
168801        a new method to HTMLInputElement that ends editing and call that
168802        explicitly in the FrameLoader so it's clear what this is about.
168803
168804        No new tests, this is just a refactoring.
168805
168806        * dom/Node.h:
168807        * html/HTMLInputElement.cpp:
168808        (WebCore::HTMLInputElement::endEditing):
168809            New method that handles finishing editing.
168810        * html/HTMLInputElement.h:
168811        (HTMLInputElement):
168812        * html/TextFieldInputType.cpp:
168813        (WebCore::TextFieldInputType::handleBlurEvent):
168814            Use the new method to reduce code duplication.
168815        * loader/FrameLoader.cpp:
168816        (WebCore::FrameLoader::stopLoading):
168817            Be explicit about what this check was for.
168818
1688192012-11-15  Tommy Widenflycht  <tommyw@google.com>
168820
168821        [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
168822        https://bugs.webkit.org/show_bug.cgi?id=102386
168823
168824        Reviewed by Adam Barth.
168825
168826        Existing tests expanded to cover patch.
168827
168828        * platform/mediastream/RTCDataChannelDescriptor.cpp:
168829        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
168830        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
168831        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
168832        (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
168833        (WebCore):
168834        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
168835        (WebKit):
168836        (RTCPeerConnectionHandlerChromium):
168837
1688382012-11-15  Rick Byers  <rbyers@chromium.org>
168839
168840        No tests for changing mouse cursors
168841        https://bugs.webkit.org/show_bug.cgi?id=100550
168842
168843        Reviewed by Brent Fulgham.
168844
168845        Add infrastructure to keep track of the last set mouse cursor,
168846        and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
168847        we can reliably detect when an uninitialized Cursor object is used (such as
168848        the one that can be returned from OptionalCursor in the NoCursorChange scenario).
168849
168850        Test: fast/events/mouse-cursor.html
168851
168852        * WebCore.exp.in: Add Cursor copy ctor export
168853        * page/EventHandler.cpp:
168854        (WebCore::OptionalCursor::cursor):
168855        (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
168856        * page/EventHandler.h:
168857        (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
168858        * platform/Cursor.h:
168859        (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
168860        (WebCore::Cursor::type): Assert cursor type is valid.
168861        * testing/Internals.cpp:
168862        (WebCore::cursorTypeToString): Helper to convert cursor type to enum
168863        (WebCore):
168864        (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
168865        * testing/Internals.h: Declare getCurrentCursorInfo
168866        * testing/Internals.idl: Declare getCurrentCursorInfo
168867
1688682012-11-13  Jer Noble  <jer.noble@apple.com>
168869
168870        Support loading of blob URLs in AVFoundation.
168871        https://bugs.webkit.org/show_bug.cgi?id=102182
168872
168873        Reviewed by Eric Carlson.
168874
168875        Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
168876
168877        Test: media/video-src-blob.html
168878
168879        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
168880        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
168881        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
168882            media path if the key scheme is skp://.
168883        (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
168884            the media engine requests it.
168885        (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
168886        
168887        Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
168888        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
168889        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
168890        (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
168891        (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
168892
168893        Add a new helper class to manage loading the CachedRawResource and feed the incoming
168894        data to the AVAssetResourceLoader.
168895        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
168896        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
168897        (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
168898        (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
168899        (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
168900        (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
168901        (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
168902        (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
168903            AVAssetResourceLoadingRequest.
168904        (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
168905        (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
168906            has completed.
168907        (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
168908            field of the AVAssetResourceLoadingRequest.
168909
168910        Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
168911        document's cachedResourceLoader.
168912        * html/HTMLMediaElement.cpp:
168913        (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
168914        * html/HTMLMediaElement.h:
168915        * platform/graphics/MediaPlayer.cpp:
168916        (WebCore::MediaPlayer::cachedResourceLoader):
168917        * platform/graphics/MediaPlayer.h:
168918        (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
168919
168920        Add a convenience method to convert from MIME type -> UTI.
168921        * platform/network/mac/UTIUtilities.h:
168922        * platform/network/mac/UTIUtilities.mm:
168923        (WebCore::UTIFromMIMEType):
168924
168925        Add new files to project.
168926        * WebCore.xcodeproj/project.pbxproj:
168927
1689282012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
168929
168930        Remove initiallyFitToViewport attribute
168931        https://bugs.webkit.org/show_bug.cgi?id=102392
168932
168933        Reviewed by Noam Rosenthal.
168934
168935        Remove the initiallyFitToViewport which shouldn't have been
168936        added in the first place. We now reset userScalable to auto (-1)
168937        in case it was not explicitly set by the web author.
168938
168939        Same behavior, covered by existing tests.
168940
168941        * dom/ViewportArguments.cpp:
168942        (WebCore::ViewportArguments::resolve):
168943        * dom/ViewportArguments.h:
168944        (ViewportAttributes):
168945
1689462012-11-15  Tommy Widenflycht  <tommyw@google.com>
168947
168948        MediaStream API: Update RTCPeerConnection states to match the latest editors draft
168949        https://bugs.webkit.org/show_bug.cgi?id=102382
168950
168951        Reviewed by Adam Barth.
168952
168953        Updating readyState & iceState, and adding iceGatheringState.
168954        Also safeguarding the event timer callback.
168955
168956        Patch covered by existing tests.
168957
168958        * Modules/mediastream/RTCPeerConnection.cpp:
168959        (WebCore::RTCPeerConnection::RTCPeerConnection):
168960        (WebCore::RTCPeerConnection::createOffer):
168961        (WebCore::RTCPeerConnection::createAnswer):
168962        (WebCore::RTCPeerConnection::setLocalDescription):
168963        (WebCore::RTCPeerConnection::localDescription):
168964        (WebCore::RTCPeerConnection::setRemoteDescription):
168965        (WebCore::RTCPeerConnection::remoteDescription):
168966        (WebCore::RTCPeerConnection::updateIce):
168967        (WebCore::RTCPeerConnection::addIceCandidate):
168968        (WebCore::RTCPeerConnection::readyState):
168969        (WebCore::RTCPeerConnection::iceGatheringState):
168970        (WebCore):
168971        (WebCore::RTCPeerConnection::iceState):
168972        (WebCore::RTCPeerConnection::addStream):
168973        (WebCore::RTCPeerConnection::close):
168974        (WebCore::RTCPeerConnection::didChangeIceGatheringState):
168975        (WebCore::RTCPeerConnection::stop):
168976        (WebCore::RTCPeerConnection::changeReadyState):
168977        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
168978        * Modules/mediastream/RTCPeerConnection.h:
168979        (RTCPeerConnection):
168980        * Modules/mediastream/RTCPeerConnection.idl:
168981        * dom/EventNames.h:
168982        (WebCore):
168983        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
168984        (RTCPeerConnectionHandlerClient):
168985        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
168986        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
168987        (WebCore):
168988        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
168989        (RTCPeerConnectionHandlerChromium):
168990
1689912012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
168992
168993        Unreviewed, rolling out r134649 and r134665.
168994        http://trac.webkit.org/changeset/134649
168995        http://trac.webkit.org/changeset/134665
168996        https://bugs.webkit.org/show_bug.cgi?id=102413
168997
168998        Broke a ton of downstream chromium tests (Requested by japhet
168999        on #webkit).
169000
169001        * loader/DocumentLoader.cpp:
169002        (WebCore::DocumentLoader::DocumentLoader):
169003        (WebCore::DocumentLoader::~DocumentLoader):
169004        (WebCore::DocumentLoader::finishedLoading):
169005        (WebCore::DocumentLoader::clearMainResourceLoader):
169006        (WebCore::DocumentLoader::isLoadingInAPISense):
169007        (WebCore::DocumentLoader::documentURL):
169008        (WebCore::DocumentLoader::isLoadingMainResource):
169009        (WebCore::DocumentLoader::startLoadingMainResource):
169010        * loader/DocumentLoader.h:
169011        (DocumentLoader):
169012        * loader/FrameLoader.cpp:
169013        (WebCore::FrameLoader::FrameLoader):
169014        (WebCore::FrameLoader::init):
169015        * loader/FrameLoaderStateMachine.cpp:
169016        (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
169017        * loader/FrameLoaderStateMachine.h:
169018        * loader/MainResourceLoader.cpp:
169019        (WebCore::shouldLoadAsEmptyDocument):
169020        (WebCore):
169021        (WebCore::MainResourceLoader::continueAfterContentPolicy):
169022        (WebCore::MainResourceLoader::didReceiveResponse):
169023        (WebCore::MainResourceLoader::didFinishLoading):
169024        (WebCore::MainResourceLoader::handleEmptyLoad):
169025        (WebCore::MainResourceLoader::loadNow):
169026        (WebCore::MainResourceLoader::load):
169027        * loader/MainResourceLoader.h:
169028        (MainResourceLoader):
169029
1690302012-11-15  Kentaro Hara  <haraken@chromium.org>
169031
169032        Correct syntax of old-style IDL files
169033        https://bugs.webkit.org/show_bug.cgi?id=102335
169034
169035        Reviewed by Adam Barth.
169036
169037        Recently tasak@ corrected an IDL syntax of almost all IDL files.
169038        We should correct the rest of them.
169039
169040        No tests. No change in behavior.
169041
169042        * html/canvas/OESElementIndexUint.idl:
169043        * page/PerformanceMark.idl:
169044        * page/PerformanceMeasure.idl:
169045
1690462012-11-15  Elliott Sprehn  <esprehn@chromium.org>
169047
169048        Remove isHTMLInputElement since it's unused and toInputElement exists 
169049        https://bugs.webkit.org/show_bug.cgi?id=102358
169050
169051        Reviewed by Ojan Vafai.
169052
169053        Remove isHTMLInputElement as no one uses it. Everyone just uses
169054        Node::toInputElement and checks for a 0 return value instead.
169055
169056        toInputElement is also more reliable as there's no requirement that
169057        subclasses of HTMLInputElement have the tag name of inputTag so using
169058        this method in a check could potentially miss future subclasses with
169059        different tag names, though none exist right now.
169060
169061        No new tests, this just deletes dead code.
169062
169063        * html/HTMLInputElement.h:
169064
1690652012-11-15  Erik Arvidsson  <arv@chromium.org>
169066
169067        Update DOMException name: NotSupportedError
169068        https://bugs.webkit.org/show_bug.cgi?id=102139
169069
169070        Reviewed by Ojan Vafai.
169071
169072        Patch 9 of 25 to update DOMException name to match the spec and Firefox.
169073
169074        Updated existing tests.
169075
169076        * dom/DOMCoreException.cpp:
169077
1690782012-11-15  Elliott Sprehn  <esprehn@chromium.org>
169079
169080        Remove isHTMLInputElement since it's unused and toInputElement exists 
169081        https://bugs.webkit.org/show_bug.cgi?id=102358
169082
169083        Reviewed by Ojan Vafai.
169084
169085        Remove isHTMLInputElement as no one uses it. Everyone just uses
169086        Node::toInputElement and checks for a 0 return value instead.
169087
169088        toInputElement is also more reliable as there's no requirement that
169089        subclasses of HTMLInputElement have the tag name of inputTag so using
169090        this method in a check could potentially miss future subclasses with
169091        different tag names, though none exist right now.
169092
169093        No new tests, this just deletes dead code.
169094
169095        * html/HTMLInputElement.h:
169096
1690972012-11-15  Erik Arvidsson  <arv@chromium.org>
169098
169099        Update DOMException name: NoModificationAllowedError
169100        https://bugs.webkit.org/show_bug.cgi?id=102134
169101
169102        Reviewed by Ojan Vafai.
169103
169104        Patch 7 of 25 to update DOMException name to match the spec and Firefox.
169105
169106        Updated existing tests.
169107
169108        * dom/DOMCoreException.cpp:
169109
1691102012-11-15  Miguel Garcia  <miguelg@chromium.org>
169111
169112        Remove unnecesary dependencies INPUT_TYPE_COLOR
169113        https://bugs.webkit.org/show_bug.cgi?id=102379
169114
169115        Reviewed by Darin Adler.
169116
169117        Platforms should be able to enable INPUT_TYPE_COLOR without enabling
169118        CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
169119        compile errors in such configuration.
169120
169121        No new tests since this is not adding any extra functionality.
169122
169123        * WebCore.gyp/WebCore.gyp:
169124        * html/ColorInputType.cpp:
169125        (WebCore::ColorInputType::shouldShowSuggestions):
169126        * make-file-arrays.py:
169127        (main):
169128
1691292012-11-15  Eric Carlson  <eric.carlson@apple.com>
169130
169131        Update computed line position algorithm
169132        https://bugs.webkit.org/show_bug.cgi?id=93779
169133
169134        Reviewed by Philippe Normand.
169135
169136        Compute the position of a text track relative to rendered tracks. This is needed to position
169137        cues correctly when there is more than one text track.
169138
169139        Test: media/track/track-cue-container-rendering-position.html
169140
169141        * html/track/TextTrack.cpp:
169142        (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
169143        (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
169144            to other rendered tracks.
169145        * html/track/TextTrack.h:
169146
169147        * html/track/TextTrackCue.cpp:
169148        (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
169149            instead of trackIndex() so cues are positioned correctly.
169150
169151        * html/track/TextTrackList.cpp:
169152        (TextTrackList::getTrackIndex): Change return type from unsigned to int.
169153        (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
169154        * html/track/TextTrackList.h:
169155
1691562012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
169157
169158        [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
169159        https://bugs.webkit.org/show_bug.cgi?id=101323
169160
169161        Reviewed by Martin Robinson.
169162
169163        Removing ifdef since we bumped Harfbuzz dependency. This is the
169164        real fix replacing the previous workaround of having a Chromium
169165        specific ifdef here, since Chromium uses a newer HarfBuzz version
169166        already.
169167
169168        No new tests, covered by css3/flexbox/inline-flex-crash.html
169169        which will not crash anymore even with the ifdef removed.
169170
169171        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
169172        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
169173
1691742012-11-15  Andreas Kling  <kling@webkit.org>
169175
169176        REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
169177        <http://webkit.org/b/102304>
169178
169179        Reviewed by Anders Carlsson.
169180
169181        Test: fast/dom/cloneNode-below-body-attribute-merging.html
169182
169183        * html/parser/HTMLConstructionSite.cpp:
169184        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
169185
169186            Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
169187            we're merging attributes into.
169188
169189        * dom/ElementAttributeData.h:
169190        (ElementAttributeData):
169191
169192            Remove a now-unnecessary friend declaration.
169193
1691942012-11-15  Elliott Sprehn  <esprehn@chromium.org>
169195
169196        Prevent creation of detached frames in ShadowRoot
169197        https://bugs.webkit.org/show_bug.cgi?id=102333
169198
169199        Reviewed by Dimitri Glazkov.
169200
169201        Similar to Bug 94717 you can create a loaded iframe in a detached
169202        subtree using ShadowRoot. To fix this we just need to make
169203        SubframeLoadingDisabler traverse through shadow boundaries.
169204
169205        Test: fast/frames/detached-shadow-frame.html
169206
169207        * html/HTMLFrameOwnerElement.h:
169208        (WebCore::SubframeLoadingDisabler::canLoadFrame):
169209
1692102012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
169211
169212        Changing pseudoClass (:visited) should cause distribution.
169213        https://bugs.webkit.org/show_bug.cgi?id=101700
169214
169215        Reviewed by Dimitri Glazkov.
169216
169217        When href attribute of an anchor or area element is changed, we have to invalidate distribution.
169218
169219        Since we would like to check a few pseudoClasses at once, we make the argument of
169220        SelectRuleFeatureSet::hasSelectorFor int.
169221
169222        Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
169223               fast/dom/shadow/pseudoclass-update-visited-area.html
169224
169225        * dom/ElementShadow.cpp:
169226        (WebCore::invalidateParentDistributionIfNecessary):
169227        * dom/ElementShadow.h:
169228        (WebCore):
169229        * html/HTMLAnchorElement.cpp:
169230        (WebCore::HTMLAnchorElement::parseAttribute):
169231        * html/shadow/SelectRuleFeatureSet.h:
169232        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
169233
1692342012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
169235
169236        Coordinated Graphics: support the "freeze animations" API
169237        https://bugs.webkit.org/show_bug.cgi?id=100703
169238
169239        Reviewed by Noam Rosenthal.
169240
169241        Make animations resumable in Coordinated Graphics.
169242        Pausing was already implemented.
169243
169244        Tested with animations and transitions tests. No tests to be
169245        unskipped because these tests has been working without this API
169246        as well (although this is the preferred way).
169247
169248        * platform/graphics/GraphicsLayerAnimation.cpp:
169249        (WebCore::GraphicsLayerAnimation::apply):
169250        (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
169251        Do not consider the time while we was suspended as part of
169252        the total running time.
169253        (WebCore):
169254        (WebCore::GraphicsLayerAnimation::resume):
169255        (WebCore::GraphicsLayerAnimations::suspend):
169256        (WebCore::GraphicsLayerAnimations::resume):
169257        * platform/graphics/GraphicsLayerAnimation.h:
169258        (GraphicsLayerAnimation):
169259        (GraphicsLayerAnimations):
169260
1692612012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
169262
169263        Relocate the ARM NEON SVG filter optimizations
169264        https://bugs.webkit.org/show_bug.cgi?id=102214
169265
169266        Reviewed by Zoltan Herczeg.
169267
169268        Relocate the ARM filter optimizations into platform/graphics/cpu/arm
169269        to keep them together with the others.
169270        From now all graphics optimization for ARM NEON should go here.
169271
169272        * CMakeLists.txt:
169273        * GNUmakefile.am:
169274        * GNUmakefile.list.am:
169275        * Target.pri:
169276        * WebCore.gyp/WebCore.gyp:
169277        * WebCore.gypi:
169278        * WebCore.pri:
169279        * WebCore.xcodeproj/project.pbxproj:
169280        * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
169281        (WebCore):
169282        (FEBlendUtilitiesNEON):
169283        (WebCore::FEBlendUtilitiesNEON::div255):
169284        (WebCore::FEBlendUtilitiesNEON::normal):
169285        (WebCore::FEBlendUtilitiesNEON::multiply):
169286        (WebCore::FEBlendUtilitiesNEON::screen):
169287        (WebCore::FEBlendUtilitiesNEON::darken):
169288        (WebCore::FEBlendUtilitiesNEON::lighten):
169289        (WebCore::FEBlend::platformApplyNEON):
169290        * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
169291        (WebCore):
169292        (WebCore::FEComposite::computeArithmeticPixelsNeon):
169293        (WebCore::FEComposite::platformArithmeticNeon):
169294        * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
169295        (WebCore):
169296        (WebCore::boxBlurNEON):
169297        * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
169298        (WebCore):
169299        (WebCore::feLightingConstantsForNeon):
169300        (WebCore::FELighting::platformApplyNeonWorker):
169301        (WebCore::FELighting::getPowerCoefficients):
169302        * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
169303        (WebCore):
169304        (FELightingFloatArgumentsForNeon):
169305        (FELightingPaintingDataForNeon):
169306        (WebCore::FELighting::platformApplyNeon):
169307        * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
169308        (WebCore):
169309        (WebCore::loadRGBA8AsFloat):
169310        (WebCore::storeFloatAsRGBA8):
169311
1693122012-11-15  Mike West  <mkwst@chromium.org>
169313
169314        We should trigger a console warning when we encounter invalid sandbox flags.
169315        https://bugs.webkit.org/show_bug.cgi?id=101956
169316
169317        Reviewed by Adam Barth.
169318
169319        A developer who writes '<iframe sandbox="allowScripts">' probably has
169320        something in mind other than what the browser interprets. In these
169321        situations, we should log a console warning that notes 'allowScripts'
169322        is an invalid sandbox flag ('allow-scripts' is probably what she
169323        meant).
169324
169325        This patch does the simplest thing possible: it throws a warning that
169326        lists the invalid flags encountered for sandbox attributes on iframes,
169327        and for sandbox Content Security Policy directives.
169328
169329        Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
169330               http/tests/security/sandboxed-iframe-invalid.html
169331
169332        * dom/SecurityContext.cpp:
169333        (WebCore::SecurityContext::parseSandboxPolicy):
169334        * dom/SecurityContext.h:
169335        (SecurityContext):
169336            Accept a new out parameter, invalidTokensErrorMessage. If invalid
169337            tokens are encountered, build an error message string, and pass it
169338            back to the caller through this parameter.
169339        * html/HTMLIFrameElement.cpp:
169340        (WebCore::HTMLIFrameElement::parseAttribute):
169341        * page/ContentSecurityPolicy.cpp:
169342        (WebCore::CSPDirectiveList::applySandboxPolicy):
169343            When applying a sandbox policy, pass a string into
169344            SecurityContext::parseSandboxPolicy to grab any errors that might
169345            be encountered, and log a warning in that event.
169346        (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
169347        (WebCore):
169348        * page/ContentSecurityPolicy.h:
169349            Adding a new method to report invalid sandbox flags.
169350
1693512012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
169352
169353        Rename member vars in ViewportArgument to match css-device-adapt
169354        https://bugs.webkit.org/show_bug.cgi?id=102355
169355
169356        Reviewed by Gyuyoung Kim.
169357
169358        No behavior change, thus no new tests.
169359
169360        * dom/ViewportArguments.cpp:
169361        (WebCore::ViewportArguments::resolve):
169362        (WebCore::setViewportFeature):
169363        * dom/ViewportArguments.h:
169364        (WebCore::ViewportArguments::ViewportArguments):
169365        (ViewportArguments):
169366        (WebCore::ViewportArguments::operator==):
169367
1693682012-11-15  Andrey Adaikin  <aandrey@chromium.org>
169369
169370        Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
169371        https://bugs.webkit.org/show_bug.cgi?id=102366
169372
169373        Reviewed by Vsevolod Vlasov.
169374
169375        * inspector/InjectedScriptCanvasModuleSource.js:
169376        (.):
169377
1693782012-11-15  Mark Rowe  <mrowe@apple.com>
169379
169380        Build fix.
169381
169382        Disable deprecation warnings in a few places that need it.
169383
169384        * platform/graphics/ca/mac/TileCache.mm:
169385        (WebCore::TileCache::drawRepaintCounter):
169386        * platform/graphics/mac/FontMac.mm:
169387        (WebCore::showGlyphsWithAdvances):
169388        * platform/graphics/mac/WebLayer.mm:
169389        (drawLayerContents):
169390
1693912012-11-15  Kent Tamura  <tkent@chromium.org>
169392
169393        Support stand-alone month names in calendar picker
169394        https://bugs.webkit.org/show_bug.cgi?id=102196
169395
169396        Reviewed by Kentaro Hara.
169397
169398        We have showed non stand-alone month names in any locales. However
169399        we should show stand-alone month names in some locales such as
169400        Russian.
169401
169402        This patch introduce PagePopupController::formatMonth. It is
169403        exposed to page-popups, and format year-month pairs in the same
169404        way as input[type=month].
169405
169406        No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
169407
169408        * Resources/pagepopups/calendarPicker.js:
169409        (Month.prototype.toLocaleString):
169410        Calls pagePopupController.formatMonth except Japanese locale.
169411        (handleArgumentsTimeout):
169412        Remove unnecessary default monthLabels.
169413        * page/PagePopupController.cpp:
169414        (WebCore::PagePopupController::formatMonth): Added.
169415        * page/PagePopupController.h:
169416        (PagePopupController): Declare formatMonth.
169417        * page/PagePopupController.idl: Add formatMonth.
169418
1694192012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
169420
169421        Web Inspector: Fix new JS compiler warnings.
169422        https://bugs.webkit.org/show_bug.cgi?id=102341
169423
169424        Reviewed by Yury Semikhatsky.
169425
169426        New version of compiler finds new inconsistencies.
169427
169428        * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
169429        * inspector/front-end/DOMBreakpointsSidebarPane.js:
169430        Declared instance property on WebInspector.
169431        * inspector/front-end/Script.js: Normalized parameter notation.
169432
1694332012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
169434
169435        Unreviewed build fix.
169436
169437        * dom/ViewportArguments.cpp:
169438        (WebCore::convertToUserSpace): Add static
169439
1694402012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
169441
169442        Refactor ViewportArguments to only use CSS units
169443        https://bugs.webkit.org/show_bug.cgi?id=102287
169444
169445        Reviewed by Noam Rosenthal.
169446
169447        Refactor the ViewportArgument code to use a member method for
169448        resolving the viewport. This new method only uses arguments in
169449        CSS units.
169450
169451        This is preparation for adding the CSS Device Adaptation support.
169452
169453        Tested by existing tests fast/viewport.
169454
169455        * dom/ViewportArguments.cpp:
169456        (WebCore::clampLengthValue):
169457        (WebCore::clampScaleValue): New utility functions.
169458        (WebCore::ViewportArguments::resolve):
169459        (WebCore::convertToUserSpace): Added until everyone provides arguments
169460        only in CSS units and not device ones.
169461        (WebCore::computeViewportAttributes):
169462        (WebCore::computeMinimumScaleFactorForContentContained):
169463        (WebCore):
169464        (WebCore::restrictMinimumScaleFactorToViewportSize):
169465        * dom/ViewportArguments.h:
169466        (ViewportArguments):
169467
1694682012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
169469
169470        Changing pseudoClass (:disabled) should cause distribution.
169471        https://bugs.webkit.org/show_bug.cgi?id=101901
169472
169473        Reviewed by Hajime Morita.
169474
169475        We have to invalidate distribution when pseudo-class (:disabled) is changed.
169476
169477        According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
169478        option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
169479        have 'disabled' state, but we need a command element to make it 'disabled' state.
169480
169481        Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
169482               fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
169483               fast/dom/shadow/pseudoclass-update-disabled-input.html
169484               fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
169485               fast/dom/shadow/pseudoclass-update-disabled-option.html
169486               fast/dom/shadow/pseudoclass-update-disabled-select.html
169487               fast/dom/shadow/pseudoclass-update-disabled-textarea.html
169488
169489        * html/HTMLFormControlElement.cpp:
169490        (WebCore::HTMLFormControlElement::disabledAttributeChanged):
169491        * html/HTMLOptGroupElement.cpp:
169492        (WebCore::HTMLOptGroupElement::parseAttribute):
169493        * html/HTMLOptionElement.cpp:
169494        (WebCore::HTMLOptionElement::parseAttribute):
169495
1694962012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
169497
169498        Unreviewed, rolling out r134691, r134703, r134715, r134716,
169499        and r134733.
169500        http://trac.webkit.org/changeset/134691
169501        http://trac.webkit.org/changeset/134703
169502        http://trac.webkit.org/changeset/134715
169503        http://trac.webkit.org/changeset/134716
169504        http://trac.webkit.org/changeset/134733
169505        https://bugs.webkit.org/show_bug.cgi?id=102342
169506
169507        "Broke the Apple Windows Debug and GTK builds." (Requested by
169508        dydx on #webkit).
169509
169510        * WebCore.exp.in:
169511        * bindings/js/SerializedScriptValue.h:
169512        * testing/Internals.cpp:
169513        * testing/Internals.h:
169514        (WebCore):
169515        * testing/Internals.idl:
169516
1695172012-11-14  Pavel Feldman  <pfeldman@chromium.org>
169518
169519        Not reviewed: fixing inspector tests under Qt.
169520
169521        * inspector/front-end/TestController.js:
169522        * inspector/front-end/utilities.js:
169523        (.):
169524
1695252012-11-14  Kentaro Hara  <haraken@chromium.org>
169526
169527        Unreviewed. Rebaselined run-bindings-tests.
169528
169529        * bindings/scripts/test/V8/V8TestNode.h:
169530        (WebCore::toV8Fast):
169531
1695322012-11-14  Simon Fraser  <simon.fraser@apple.com>
169533
169534        Don't use temporary clip rects when hit testing
169535        https://bugs.webkit.org/show_bug.cgi?id=102329
169536
169537        Reviewed by Beth Dakin.
169538
169539        We now cache clip rects separately for painting, hit testing etc. Hit testing
169540        clip rects are always shrunk to exclude scrollbars (so that hit testing on
169541        the scrollbars works), so we no longer every need to use temporary clip rects
169542        during hit testing.
169543
169544        Added an assertion that the scrollbar relevancy when we computed the clip rects
169545        is the same as that when using them.
169546        
169547        * rendering/RenderLayer.cpp:
169548        (WebCore::RenderLayer::hitTestLayer):
169549        (WebCore::RenderLayer::updateClipRects):
169550        * rendering/RenderLayer.h:
169551        (WebCore::ClipRectsCache::ClipRectsCache):
169552        (ClipRectsCache):
169553
1695542012-11-14  Dirk Schulze  <krit@webkit.org>
169555
169556        Support animation of basic shape 'polygon'
169557        https://bugs.webkit.org/show_bug.cgi?id=102080
169558
169559        Reviewed by Daniel Bates.
169560
169561        The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
169562        patch http://trac.webkit.org/changeset/134352.
169563        This is a follow-up patch to make 'polygon' animatable as well, as long as the number
169564        of vertices between start and end polygon is the same.
169565
169566        Added polygon animation test to existing test:
169567            fast/exclusions/shape-inside/shape-inside-animation.html
169568            css3/masking/clip-path-animation.html
169569
169570        * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
169571        * rendering/style/BasicShapes.cpp:
169572        (WebCore::BasicShape::canBlend): Polygons are allowed now.
169573        (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
169574
1695752012-11-14  Kentaro Hara  <haraken@chromium.org>
169576
169577        Unreviewed. Fix code generator warnings.
169578
169579        * bindings/scripts/CodeGeneratorV8.pm:
169580        (GenerateFunctionCallback):
169581        (GenerateImplementation):
169582
1695832012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
169584
169585        Changing pseudoClass (:checked) should cause distribution.
169586        https://bugs.webkit.org/show_bug.cgi?id=101902
169587
169588        Reviewed by Dimitri Glazkov.
169589
169590        When the 'checked' state is changed, we have to invalidate distribution.
169591
169592        According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
169593        a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
169594
169595        Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
169596               fast/dom/shadow/pseudoclass-update-checked-option.html
169597
169598        * html/HTMLInputElement.cpp:
169599        (WebCore::HTMLInputElement::setChecked):
169600        * html/HTMLOptionElement.cpp:
169601        (WebCore::HTMLOptionElement::setSelectedState):
169602
1696032012-11-14  Kentaro Hara  <haraken@chromium.org>
169604
169605        [V8] Kill $implClassName from CodeGeneratorV8.pm
169606        https://bugs.webkit.org/show_bug.cgi?id=102312
169607
169608        Reviewed by Adam Barth.
169609
169610        $implClassName and $interfaceName are the same.
169611        Sometimes we are passing both $implClassName and $interfaceName to
169612        subroutines. We can kill $implClassName.
169613
169614        No tests. No change in behavior.
169615
169616        * bindings/scripts/CodeGeneratorV8.pm:
169617        (GenerateOpaqueRootForGC):
169618        (GenerateHeader):
169619        (GenerateDomainSafeFunctionGetter):
169620        (GenerateDomainSafeFunctionSetter):
169621        (GenerateConstructorGetter):
169622        (GenerateNormalAttrGetter):
169623        (GenerateReplaceableAttrSetter):
169624        (GenerateNormalAttrSetter):
169625        (GenerateEventListenerCallback):
169626        (GenerateOverloadedFunctionCallback):
169627        (GenerateFunctionCallback):
169628        (GenerateParametersCheck):
169629        (GenerateOverloadedConstructorCallback):
169630        (GenerateSingleConstructorCallback):
169631        (GenerateConstructorCallback):
169632        (GenerateEventConstructorCallback):
169633        (GenerateTypedArrayConstructorCallback):
169634        (GenerateNamedConstructorCallback):
169635        (GenerateImplementation):
169636        (GenerateFunctionCallString):
169637
1696382012-11-14  Adam Barth  <abarth@webkit.org>
169639
169640        [V8] We can shave one instruction off toV8Fast
169641        https://bugs.webkit.org/show_bug.cgi?id=102297
169642
169643        Reviewed by Kentaro Hara.
169644
169645        There's no reason to store info.Holder in a local variable. Calling
169646        Holder() is essentially free because it's inlined to an offset read.
169647
169648        I doubt this patch moves the performance needle in any measurable way,
169649        but it makes the code slightly prettier.
169650
169651        * bindings/scripts/CodeGeneratorV8.pm:
169652        (GenerateHeader):
169653        * bindings/scripts/test/V8/V8TestNode.h:
169654        (WebCore::toV8Fast):
169655
1696562012-11-14  Kentaro Hara  <haraken@chromium.org>
169657
169658        [V8] Get rid of a redundant branch in JSValueToNative()
169659        https://bugs.webkit.org/show_bug.cgi?id=102311
169660
169661        Reviewed by Adam Barth.
169662
169663        No tests. No change in behavior.
169664
169665        * bindings/scripts/CodeGeneratorV8.pm:
169666        (JSValueToNative):
169667        (NativeToJSValue):
169668
1696692012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
169670
169671        Changing pseudoClass (:link) should cause distribution
169672        https://bugs.webkit.org/show_bug.cgi?id=101698
169673
169674        Reviewed by Hajime Morita.
169675
169676        CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
169677        we have to invalidate distribution.
169678
169679        According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
169680
169681        Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
169682               fast/dom/shadow/pseudoclass-update-link-area.html
169683
169684        * html/HTMLAnchorElement.cpp:
169685        (WebCore::HTMLAnchorElement::parseAttribute):
169686
1696872012-11-14  Kentaro Hara  <haraken@chromium.org>
169688
169689        Remove unused functions from CodeGenerator.pm
169690        https://bugs.webkit.org/show_bug.cgi?id=102316
169691
169692        Reviewed by Adam Barth.
169693
169694        No tests. No change in behavior.
169695
169696        * bindings/scripts/CodeGenerator.pm:
169697        (GenerateCompileTimeCheckForEnumsIfNeeded):
169698
1696992012-11-14  Tiancheng Jiang  <tijiang@rim.com>
169700
169701        [BlackBerry] Update BB10 form theme.
169702        https://bugs.webkit.org/show_bug.cgi?id=100760
169703
169704        Reviewed by Rob Buis.
169705
169706        RIM PR 225755
169707        Internally Reviewed by Eli Fidler.
169708        Update checkbox, radio and menulist button style. Adjust border width
169709        and line height.
169710
169711        * platform/blackberry/RenderThemeBlackBerry.cpp:
169712        (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
169713        * platform/blackberry/RenderThemeBlackBerry.h:
169714        (RenderThemeBlackBerry):
169715
1697162012-11-14  Erik Arvidsson  <arv@chromium.org>
169717
169718        Update DOMException name: InvalidModificationError
169719        https://bugs.webkit.org/show_bug.cgi?id=102281
169720
169721        Reviewed by Kentaro Hara.
169722
169723        Patch 13 of 25 to update DOMException name to match the spec and Firefox.
169724
169725        DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
169726
169727        * dom/DOMCoreException.cpp:
169728
1697292012-11-14  Adam Barth  <abarth@webkit.org>
169730
169731        document variable in Document::axObjectCache is actually the topDocument
169732        https://bugs.webkit.org/show_bug.cgi?id=101966
169733
169734        Reviewed by Chris Fleizach.
169735
169736        Name change requested by Darin Adler.
169737
169738        * dom/Document.cpp:
169739        (WebCore::Document::axObjectCache):
169740
1697412012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
169742
169743        [CF]: XMLHttpRequest "timeout" events firing as "error" events
169744        https://bugs.webkit.org/show_bug.cgi?id=102271
169745
169746        Reviewed by David Kilzer.
169747
169748        Initialize the tiemout flag if the error results from a timeout
169749        in the USE(CFNETWORK) cases.
169750
169751        No new tests. This is covered by http/tests/xmlhttprequest/timeout
169752        tests on ports that USE(CFNETWORK).
169753
169754        * platform/network/cf/ResourceErrorCF.cpp:
169755        (WebCore::ResourceError::ResourceError):
169756        * platform/network/mac/ResourceErrorMac.mm:
169757        (WebCore::ResourceError::ResourceError):
169758
1697592012-11-14  Nico Weber  <thakis@chromium.org>
169760
169761        [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
169762        https://bugs.webkit.org/show_bug.cgi?id=102282
169763
169764        Reviewed by James Robinson.
169765
169766        Chromium uses skia, and skia state is synced with CG context state at
169767        LocalCurrentGraphicsContext construction time. So delay that
169768        construction after context transforms have happened.
169769        (This regressed in http://trac.webkit.org/changeset/125830)
169770
169771        Covered by the new pixel test fast/forms/zoomed-controls.html. I
169772        couldn't find an existing test for this.
169773
169774        * platform/mac/ThemeMac.mm:
169775        (WebCore::paintCheckbox):
169776        (WebCore::paintRadio):
169777        (WebCore::paintButton):
169778
1697792012-11-14  Mark Lam  <mark.lam@apple.com>
169780
169781        Change JSEventListener::m_jsFunction to be a weak ref.
169782        https://bugs.webkit.org/show_bug.cgi?id=101989.
169783
169784        Reviewed by Geoffrey Garen.
169785
169786        No new tests.
169787
169788        * ForwardingHeaders/heap/SlotVisitor.h: Added.
169789        * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
169790        * bindings/js/JSEventListener.cpp:
169791        (WebCore::JSEventListener::JSEventListener):
169792        (WebCore::JSEventListener::visitJSFunction):
169793        (WebCore::JSEventListener::operator==):
169794         - Removed the m_wrapper checks in operator==() because they are not
169795           needed. There is no longer any threat of m_jsFunction pointing to
169796           recycled memory. The use of weak refs will ensure that m_jsFunction
169797           is either still holding on to its old memory exclusively, or is 0'ed
169798           out when the GC collects it.
169799        * bindings/js/JSEventListener.h:
169800        (JSEventListener):
169801        (WebCore::JSEventListener::jsFunction):
169802
1698032012-11-14  Dan Carney  <dcarney@google.com>
169804
169805        [V8] Rename dispatchWrap
169806        https://bugs.webkit.org/show_bug.cgi?id=102240
169807
169808        Reviewed by Adam Barth.
169809
169810        Mostly a rename:
169811        dispatchWrap->wrap
169812        wrapSlow->createWrapper
169813        dispatchWrapCustom->wrap
169814
169815        No new tests. No change in functionality.
169816
169817        * bindings/scripts/CodeGeneratorV8.pm:
169818        (GenerateHeader):
169819        (GenerateNormalAttrGetter):
169820        (GenerateImplementation):
169821        (GenerateToV8Converters):
169822        * bindings/scripts/IDLAttributes.txt:
169823        * bindings/scripts/test/V8/V8Float64Array.cpp:
169824        (WebCore::wrap):
169825        (WebCore::V8Float64Array::createWrapper):
169826        * bindings/scripts/test/V8/V8Float64Array.h:
169827        (V8Float64Array):
169828        (WebCore):
169829        (WebCore::toV8Object):
169830        (WebCore::toV8):
169831        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
169832        (WebCore::V8TestActiveDOMObject::createWrapper):
169833        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
169834        (V8TestActiveDOMObject):
169835        (WebCore::wrap):
169836        (WebCore::toV8Object):
169837        (WebCore::toV8):
169838        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
169839        (WebCore::V8TestCustomNamedGetter::createWrapper):
169840        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
169841        (V8TestCustomNamedGetter):
169842        (WebCore::wrap):
169843        (WebCore::toV8Object):
169844        (WebCore::toV8):
169845        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
169846        (WebCore::V8TestEventConstructor::createWrapper):
169847        * bindings/scripts/test/V8/V8TestEventConstructor.h:
169848        (V8TestEventConstructor):
169849        (WebCore::wrap):
169850        (WebCore::toV8Object):
169851        (WebCore::toV8):
169852        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
169853        (WebCore::V8TestEventTarget::createWrapper):
169854        * bindings/scripts/test/V8/V8TestEventTarget.h:
169855        (V8TestEventTarget):
169856        (WebCore::wrap):
169857        (WebCore::toV8Object):
169858        (WebCore::toV8):
169859        * bindings/scripts/test/V8/V8TestException.cpp:
169860        (WebCore::V8TestException::createWrapper):
169861        * bindings/scripts/test/V8/V8TestException.h:
169862        (V8TestException):
169863        (WebCore::wrap):
169864        (WebCore::toV8Object):
169865        (WebCore::toV8):
169866        * bindings/scripts/test/V8/V8TestInterface.cpp:
169867        (WebCore::V8TestInterface::createWrapper):
169868        * bindings/scripts/test/V8/V8TestInterface.h:
169869        (V8TestInterface):
169870        (WebCore::wrap):
169871        (WebCore::toV8Object):
169872        (WebCore::toV8):
169873        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
169874        (WebCore::V8TestMediaQueryListListener::createWrapper):
169875        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
169876        (V8TestMediaQueryListListener):
169877        (WebCore::wrap):
169878        (WebCore::toV8Object):
169879        (WebCore::toV8):
169880        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
169881        (WebCore::V8TestNamedConstructor::createWrapper):
169882        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
169883        (V8TestNamedConstructor):
169884        (WebCore::wrap):
169885        (WebCore::toV8Object):
169886        (WebCore::toV8):
169887        * bindings/scripts/test/V8/V8TestNode.cpp:
169888        (WebCore::V8TestNode::createWrapper):
169889        * bindings/scripts/test/V8/V8TestNode.h:
169890        (V8TestNode):
169891        (WebCore::wrap):
169892        (WebCore::toV8Object):
169893        (WebCore::toV8):
169894        (WebCore::toV8Fast):
169895        * bindings/scripts/test/V8/V8TestObj.cpp:
169896        (WebCore::V8TestObj::createWrapper):
169897        * bindings/scripts/test/V8/V8TestObj.h:
169898        (V8TestObj):
169899        (WebCore::wrap):
169900        (WebCore::toV8Object):
169901        (WebCore::toV8):
169902        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
169903        (WebCore::V8TestOverloadedConstructors::createWrapper):
169904        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
169905        (V8TestOverloadedConstructors):
169906        (WebCore::wrap):
169907        (WebCore::toV8Object):
169908        (WebCore::toV8):
169909        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
169910        (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
169911        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
169912        (V8TestSerializedScriptValueInterface):
169913        (WebCore::wrap):
169914        (WebCore::toV8Object):
169915        (WebCore::toV8):
169916        * bindings/v8/custom/V8BlobCustom.cpp:
169917        (WebCore::wrap):
169918        * bindings/v8/custom/V8CSSRuleCustom.cpp:
169919        (WebCore::wrap):
169920        * bindings/v8/custom/V8CSSValueCustom.cpp:
169921        (WebCore::wrap):
169922        * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
169923        (WebCore::wrap):
169924        * bindings/v8/custom/V8DataViewCustom.cpp:
169925        (WebCore::wrap):
169926        * bindings/v8/custom/V8DocumentCustom.cpp:
169927        (WebCore::wrap):
169928        * bindings/v8/custom/V8ElementCustom.cpp:
169929        (WebCore):
169930        (WebCore::wrap):
169931        * bindings/v8/custom/V8EntryCustom.cpp:
169932        (WebCore::wrap):
169933        * bindings/v8/custom/V8EntrySyncCustom.cpp:
169934        (WebCore::wrap):
169935        * bindings/v8/custom/V8EventCustom.cpp:
169936        (WebCore):
169937        (WebCore::wrap):
169938        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
169939        (WebCore::wrap):
169940        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
169941        (WebCore::wrap):
169942        * bindings/v8/custom/V8HTMLElementCustom.cpp:
169943        (WebCore::wrap):
169944        * bindings/v8/custom/V8ImageDataCustom.cpp:
169945        (WebCore::wrap):
169946        * bindings/v8/custom/V8NodeCustom.cpp:
169947        (WebCore::wrap):
169948        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
169949        (WebCore::wrap):
169950        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
169951        (WebCore::wrap):
169952        * bindings/v8/custom/V8SVGElementCustom.cpp:
169953        (WebCore::wrap):
169954        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
169955        (WebCore::wrap):
169956        * bindings/v8/custom/V8StyleSheetCustom.cpp:
169957        (WebCore::wrap):
169958        * dom/make_names.pl:
169959        (printWrapperFunctions):
169960        (printWrapperFactoryCppFile):
169961
1699622012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
169963
169964        [EFL] Refactor theme to choose whether to support foreground color of selection
169965        https://bugs.webkit.org/show_bug.cgi?id=102037
169966
169967        Reviewed by Gyuyoung Kim.
169968
169969        RenderThemeEfl can change foreground color of selection using theme file.
169970        But it can not disable supports of foreground color to keep the text color
169971        which is selected.
169972
169973        This patch refactors color classes of theme file from active/inactive classes
169974        to foreground/background classes so that RenderThemeEfl checks whether
169975        theme file supports foreground color class.
169976
169977        * platform/efl/RenderThemeEfl.cpp:
169978        (WebCore::fillColorsFromEdjeClass):
169979        (WebCore::RenderThemeEfl::setColorFromThemeClass):
169980        (WebCore::RenderThemeEfl::loadTheme):
169981        (WebCore::RenderThemeEfl::RenderThemeEfl):
169982        (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
169983        (WebCore):
169984        * platform/efl/RenderThemeEfl.h:
169985        (RenderThemeEfl):
169986
1699872012-11-14  Tony Chang  <tony@chromium.org>
169988
169989        Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
169990        https://bugs.webkit.org/show_bug.cgi?id=102295
169991
169992        Reviewed by Andreas Kling.
169993
169994        Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
169995
169996        No new tests because there should be no change in behavior.
169997
169998        * css/CSSGrammar.y.in:
169999        * css/CSSParser.cpp:
170000        (WebCore::CSSParser::CSSParser):
170001        (WebCore::CSSParser::parseValue):
170002        (WebCore::CSSParser::parseColor):
170003        (WebCore::CSSParser::parseDeclaration):
170004        (WebCore):
170005        (WebCore::filterProperties):
170006        (WebCore::CSSParser::createStylePropertySet):
170007        (WebCore::CSSParser::addProperty):
170008        (WebCore::CSSParser::rollbackLastProperties):
170009        (WebCore::CSSParser::clearProperties):
170010        (WebCore::CSSParser::parse4Values):
170011        (WebCore::CSSParser::parseFlowThread):
170012        (WebCore::CSSParser::addTextDecorationProperty):
170013        (WebCore::CSSParser::createFloatingSelectorVector):
170014        (WebCore::CSSParser::sinkFloatingSelectorVector):
170015        (WebCore::CSSParser::createStyleRule):
170016        (WebCore::CSSParser::createFontFaceRule):
170017        (WebCore::CSSParser::createPageRule):
170018        (WebCore::CSSParser::setReusableRegionSelectorVector):
170019        (WebCore::CSSParser::startDeclarationsForMarginBox):
170020        (WebCore::CSSParser::endDeclarationsForMarginBox):
170021        (WebCore::CSSParser::deleteFontFaceOnlyValues):
170022        * css/CSSParser.h:
170023        (WebCore::CSSParser::hasProperties):
170024        (WebCore::CSSParser::reusableSelectorVector):
170025        (CSSParser):
170026        (WebCore::CSSParser::reusableRegionSelectorVector):
170027        * css/CSSParserValues.cpp:
170028        (WebCore::CSSParserSelector::adoptSelectorVector):
170029        * css/CSSParserValues.h:
170030        (CSSParserSelector):
170031        * css/CSSSelectorList.cpp:
170032        (WebCore::CSSSelectorList::adoptSelectorVector):
170033        * css/CSSSelectorList.h:
170034        (CSSSelectorList):
170035        * css/SVGCSSParser.cpp:
170036        (WebCore::CSSParser::parseSVGValue):
170037        * css/StyleRule.cpp:
170038        (WebCore::StyleRuleRegion::StyleRuleRegion):
170039        * css/StyleRule.h:
170040        (WebCore::StyleRule::parserAdoptSelectorVector):
170041        (WebCore::StyleRulePage::parserAdoptSelectorVector):
170042        (WebCore::StyleRuleRegion::create):
170043        (StyleRuleRegion):
170044
1700452012-11-14  Alec Flett  <alecflett@chromium.org>
170046
170047        Add tests for explicit serialization values
170048        https://bugs.webkit.org/show_bug.cgi?id=96818
170049
170050        Reviewed by Adam Barth.
170051
170052        Expose direct access to the serialization/deserialization mechanisms
170053        of SerializedScriptValue to DumpRenderTree.
170054
170055        * testing/Internals.cpp:
170056        (WebCore::Internals::serializeObject):
170057        (WebCore):
170058        (WebCore::Internals::deserializeBuffer):
170059        * testing/Internals.h:
170060        (WebCore):
170061        * testing/Internals.idl:
170062
1700632012-11-14  Michael Pruett  <michael@68k.org>
170064
170065        IndexedDB: Add clear() method to JSC ScriptValue
170066        https://bugs.webkit.org/show_bug.cgi?id=102288
170067
170068        Reviewed by Kentaro Hara.
170069
170070        IndexedDB uses the ScriptValue::clear() method, which existed
170071        previously only in the V8 implementation of ScriptValue. This
170072        change is necessary to implement IndexedDB for JSC.
170073
170074        Tests: storage/indexeddb/*
170075
170076        * bindings/js/ScriptValue.h:
170077        (WebCore::ScriptValue::clear):
170078        (ScriptValue):
170079
1700802012-11-14  Joshua Bell  <jsbell@chromium.org>
170081
170082        IndexedDB: Indexing tests are flaky-crashing
170083        https://bugs.webkit.org/show_bug.cgi?id=102283
170084
170085        Reviewed by Tony Chang.
170086
170087        Don't commit the transaction if there are outstanding pre-emptive events
170088        from indexing operations.
170089
170090        Speculative fix for the flakiness.
170091
170092        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
170093        (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
170094
1700952012-11-14  Tony Chang  <tony@chromium.org>
170096
170097        Crash in flexbox when removing absolutely positioned children
170098        https://bugs.webkit.org/show_bug.cgi?id=100465
170099
170100        Reviewed by Ojan Vafai.
170101
170102        We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
170103        This value gets set during flexbox layout. When we remove an absolutely
170104        positioned child, we don't relayout and this value would get stale.
170105
170106        Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
170107        so the value doesn't get stale when we remove absolutely positioned children.
170108        Also change the loop in firstLineBoxBaseline to bail if we run off the end of
170109        the iterator.
170110
170111        Test: css3/flexbox/crash-removing-out-of-flow-child.html
170112
170113        * rendering/RenderFlexibleBox.cpp:
170114        (WebCore::RenderFlexibleBox::RenderFlexibleBox):
170115        (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
170116        (WebCore::RenderFlexibleBox::layoutBlock):
170117        (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
170118        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
170119        * rendering/RenderFlexibleBox.h:
170120
1701212012-11-14  Joshua Bell  <jsbell@chromium.org>
170122
170123        IndexedDB: Remove magic numbers in record comparator, handle missing case
170124        https://bugs.webkit.org/show_bug.cgi?id=102255
170125
170126        Reviewed by Tony Chang.
170127
170128        For some ranges of metadata entries, a simple type byte comparison is sufficient
170129        for the backing store comparator. In two places those ranges used magic numbers,
170130        one of which was incorrect - which could lead to failed reads/writes.
170131
170132        Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
170133
170134        * Modules/indexeddb/IDBLevelDBCoding.cpp:
170135        (IDBLevelDBCoding):
170136        (WebCore::IDBLevelDBCoding::compare):
170137        * Modules/indexeddb/IDBLevelDBCoding.h:
170138
1701392012-11-14  Dirk Schulze  <krit@webkit.org>
170140
170141        Cleanup BasicShape blending check
170142        https://bugs.webkit.org/show_bug.cgi?id=102289
170143
170144        Reviewed by Daniel Bates.
170145
170146        CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
170147        twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
170148        is a preparation for follow-up patches.
170149
170150        Pure refactoring without behavior change, no new tests.
170151
170152        * page/animation/CSSPropertyAnimation.cpp:
170153        (WebCore::blendFunc): Call new canBlend method for blending verification.
170154        * rendering/style/BasicShapes.cpp:
170155        (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
170156        (WebCore):
170157        * rendering/style/BasicShapes.h:
170158
1701592012-11-14  Dirk Schulze  <krit@webkit.org>
170160
170161        [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
170162        https://bugs.webkit.org/show_bug.cgi?id=102123
170163
170164        Reviewed by Antti Koivisto.
170165
170166        The '-webkit-shape-inside' propery takes a BasicShape as input like
170167        '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
170168        make '-webkit-shape-inside' animatable as well.
170169
170170        Test: fast/exclusions/shape-inside/shape-inside-animation.html
170171
170172        * page/animation/CSSPropertyAnimation.cpp:
170173        (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
170174            input then '-webkit-clip-path'.
170175        (WebCore):
170176        (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
170177            '-webkit-shape-ourside' as well.
170178        (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
170179        (WebCore::CSSPropertyAnimation::ensurePropertyMap):
170180
1701812012-11-14  Helder Correia  <helder.correia@nokia.com>
170182
170183        [TexMap][Cairo] Accelerated compositing debug visuals
170184        https://bugs.webkit.org/show_bug.cgi?id=101883
170185
170186        Reviewed by Kenneth Rohde Christiansen.
170187
170188        No new tests, just introducing a debug feature.
170189
170190        Add a Cairo implementation to complement the patch from bug 90116
170191        (http://trac.webkit.org/changeset/122275).
170192
170193        For this feature to be enabled, the environment variable
170194        WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
170195        both repaint counters and tile borders will be painted.
170196
170197        A Cairo-specific drawRepaintCounter() implementation was added to
170198        TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
170199        the counters. It is then uploaded to a BitmapTexture acquired
170200        from the pool and finally draw by TextureMapper. The actual compositing
170201        happens inside LayerBackingStore::paintToTextureMapper(). Each
170202        LayerBackingStoreTile has a repaint counter which gets incremented in
170203        LayerBackingStore::updateTile().
170204
170205        * platform/graphics/texmap/TextureMapperGL.cpp:
170206        (WebCore::TextureMapperGL::drawRepaintCounter):
170207
1702082012-11-14  Michael Pruett  <michael@68k.org>
170209
170210        IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
170211        https://bugs.webkit.org/show_bug.cgi?id=102268
170212
170213        Reviewed by Geoffrey Garen.
170214
170215        Add JSNoStaticTables attribute to IndexedDB interface
170216        definitions. This attribute must be specified in interfaces
170217        which can be accessed from workers.
170218
170219        Tests: storage/indexeddb/*
170220
170221        * Modules/indexeddb/IDBAny.idl:
170222        * Modules/indexeddb/IDBCursor.idl:
170223        * Modules/indexeddb/IDBCursorWithValue.idl:
170224        * Modules/indexeddb/IDBDatabase.idl:
170225        * Modules/indexeddb/IDBDatabaseException.idl:
170226        * Modules/indexeddb/IDBFactory.idl:
170227        * Modules/indexeddb/IDBIndex.idl:
170228        * Modules/indexeddb/IDBKey.idl:
170229        * Modules/indexeddb/IDBKeyRange.idl:
170230        * Modules/indexeddb/IDBObjectStore.idl:
170231        * Modules/indexeddb/IDBOpenDBRequest.idl:
170232        * Modules/indexeddb/IDBRequest.idl:
170233        * Modules/indexeddb/IDBTransaction.idl:
170234        * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
170235        * Modules/indexeddb/IDBVersionChangeEvent.idl:
170236        * Modules/indexeddb/IDBVersionChangeRequest.idl:
170237        * dom/DOMStringList.idl:
170238
1702392012-11-14  Michael Pruett  <michael@68k.org>
170240
170241        IndexedDB: Replace int64 with int64_t
170242        https://bugs.webkit.org/show_bug.cgi?id=102270
170243
170244        Reviewed by Tony Chang.
170245
170246        Cleaning up coding inconsistencies, no change in behavior.
170247
170248        Tests: storage/indexeddb/*
170249
170250        * Modules/indexeddb/IDBDatabase.cpp:
170251        (WebCore::IDBDatabase::deleteObjectStore):
170252        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
170253        (WebCore::IDBObjectStoreBackendImpl::putInternal):
170254
1702552012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
170256
170257        [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
170258        https://bugs.webkit.org/show_bug.cgi?id=102000
170259
170260        Reviewed by Noam Rosenthal.
170261
170262        Add helper functions to clear viewport before painting. Those functions
170263        used by EFL Webkit2 port to set view background to match page background
170264        in order to reduce visibility of flicker during scrolling/scaling/repainting
170265        where page tiles are not ready.
170266
170267        * platform/graphics/texmap/TextureMapper.h:
170268        * platform/graphics/texmap/TextureMapperGL.cpp:
170269        (WebCore::TextureMapperGL::drawSolidColor):
170270        (WebCore):
170271        * platform/graphics/texmap/TextureMapperGL.h:
170272        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
170273        (WebCore::TextureMapperImageBuffer::drawSolidColor):
170274        (WebCore):
170275        * platform/graphics/texmap/TextureMapperImageBuffer.h:
170276
1702772012-11-14  Mark Lam  <mark.lam@apple.com>
170278
170279        Fixed regressions due to adding JSEventListener::m_wrapper null checks.
170280        https://bugs.webkit.org/show_bug.cgi?id=102183.
170281
170282        Reviewed by Geoffrey Garen.
170283
170284        Fixed JSEventListener::operator==() to work within the contract that
170285        when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
170286        some typos in comments.
170287
170288        No new tests.
170289
170290        * bindings/js/JSEventListener.cpp:
170291        (WebCore::JSEventListener::visitJSFunction):
170292        (WebCore::JSEventListener::operator==):
170293        * bindings/js/JSEventListener.h:
170294        (WebCore::JSEventListener::jsFunction):
170295
1702962012-11-14  Nate Chapin  <japhet@chromium.org>
170297
170298        Fix chromium asserts from r134649.
170299
170300        Rubber-stamped by Adam Barth.
170301
170302        MainResourceLoader was calling releaseResources() twice when cancelled
170303        within MainResourceLoader::load(), so check reachedTerminalState() before
170304        calling releaseResources() there.
170305
170306        * loader/MainResourceLoader.cpp:
170307        (WebCore::MainResourceLoader::load):
170308
1703092012-11-14  Andreas Kling  <kling@webkit.org>
170310
170311        Only resolve presentation attribute style once per shared ElementAttributeData.
170312        <http://webkit.org/b/100990>
170313
170314        Reviewed by Antti Koivisto.
170315
170316        Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
170317        This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
170318        since the state is no longer per-Element.
170319
170320        I've left the presentation attribute cache in there for now, since it still covers the case where
170321        two elements have the same presentation attributes but different non-presentation attributes.
170322        It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
170323
170324        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
170325        * dom/StyledElement.h:
170326        (WebCore::StyledElement::presentationAttributeStyle):
170327        (WebCore::ElementAttributeData::ElementAttributeData):
170328        * dom/ElementAttributeData.h:
170329        (WebCore::ElementAttributeData::ElementAttributeData):
170330        (ElementAttributeData):
170331        * dom/Node.h:
170332
170333            Move presentation attribute style dirty flag from Node to ElementAttributeData.
170334
170335        * dom/ElementAttributeData.cpp:
170336        (SameSizeAsElementAttributeData):
170337
170338            Add a compile-time object size assertion for ElementAttributeData.
170339
170340        * dom/StyledElement.cpp:
170341        (WebCore::StyledElement::attributeChanged):
170342
170343            Don't mark the presentation attribute style dirty if the element is using an immutable (implies
170344            shared) ElementAttributeData and another element has already generated the StylePropertySet.
170345            The element itself is still marked for style recalc like before, this just avoids the process
170346            of converting the attributes to CSS properties.
170347
1703482012-11-14  Scott Violet  <sky@chromium.org>
170349
170350        [Chromium] Refactor theme font lookup into a factory
170351        https://bugs.webkit.org/show_bug.cgi?id=101949
170352
170353        Reviewed by Tony Chang.
170354
170355        This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
170356
170357        No new tests. Refactoring only.
170358
170359        * WebCore.gyp/WebCore.gyp:
170360        * WebCore.gypi:
170361        * rendering/RenderThemeChromiumFontProvider.cpp: Added.
170362        (WebCore):
170363        (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
170364        * rendering/RenderThemeChromiumFontProvider.h: Added.
170365        (WTF):
170366        (WebCore):
170367        (RenderThemeChromiumFontProvider): This is the font related methods.
170368        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
170369        (WebCore):
170370        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
170371        (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
170372        * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
170373        (WebCore):
170374        (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
170375        (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
170376        (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
170377        (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
170378        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
170379        * rendering/RenderThemeChromiumSkia.cpp:
170380        (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
170381        (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
170382        (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
170383        * rendering/RenderThemeChromiumSkia.h:
170384        (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
170385        * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
170386        (WebCore):
170387        * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
170388        (RenderThemeChromiumWin):
170389
1703902012-11-14  Erik Arvidsson  <arv@chromium.org>
170391
170392        Update DOMException name: InUseAttributeError
170393        https://bugs.webkit.org/show_bug.cgi?id=102141
170394
170395        Reviewed by Ojan Vafai.
170396
170397        Patch 10 of 25 to update DOMException name to match the spec and Firefox.
170398
170399        The name for this is not in the spec but the case was selected to match
170400        Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
170401
170402        INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
170403
170404        * dom/DOMCoreException.cpp:
170405        * dom/ExceptionCode.h:
170406
1704072012-11-14  Lynn Neir  <lynn.neir@skype.net>
170408
170409        [WinCairo] Incorrect line-height for styled menulist (select tag)
170410        in windows theme.
170411        https://bugs.webkit.org/show_bug.cgi?id=79435
170412
170413        Reviewed by Brent Fulgham
170414
170415        Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
170416        to Windows theme to fix issue.
170417
170418        Tests: fast/forms/menulist-restrict-line-height.html
170419               fast/forms/control-restrict-line-height.html
170420               fast/forms/basic-selects.html
170421
170422        * rendering/RenderThemeWin.cpp:
170423        (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
170424        height to the correct initial height.
170425
1704262012-11-14  Erik Arvidsson  <arv@chromium.org>
170427
170428        Update DOMException name: WrongDocumentError
170429        https://bugs.webkit.org/show_bug.cgi?id=102096
170430
170431        Reviewed by Ojan Vafai.
170432
170433        Patch 4 of 25 to update DOMException name to match the spec and Firefox.
170434
170435        Updated existing tests.
170436
170437        * dom/DOMCoreException.cpp:
170438
1704392012-11-14  Nate Chapin  <japhet@chromium.org>
170440
170441        Move empty loading to DocumentLoader, simplify FrameLoader::init()
170442        https://bugs.webkit.org/show_bug.cgi?id=101512
170443
170444        Reviewed by Adam Barth.
170445
170446        No new tests, though several outputs changed because we no longer send resource
170447            load callbacks for empty loads.
170448
170449        * loader/DocumentLoader.cpp:
170450        (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
170451            loads directly here.
170452        * loader/DocumentLoader.h:
170453        * loader/FrameLoader.cpp:
170454        (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
170455            were previously being reset in init(). Given that the FrameLoader is in
170456            an inconsistent state before init() is called anyway, there doesn't seem
170457            to be a disadvantage to just initializing them to their post-init() values.
170458        (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
170459            doing a bunch of direct calls to functions FrameLoader shouldn't know about.
170460        * loader/FrameLoaderStateMachine.cpp:
170461        * loader/FrameLoaderStateMachine.h:
170462        * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
170463        (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
170464            load got deferred, which won't happen now. Return void and always treat
170465            as returning false.
170466        * loader/MainResourceLoader.h:
170467
1704682012-11-14  Erik Arvidsson  <arv@chromium.org>
170469
170470        Update DOMException name: InvalidStateError
170471        https://bugs.webkit.org/show_bug.cgi?id=102241
170472
170473        Reviewed by Ojan Vafai.
170474
170475        Patch 11 of 25 to update DOMException name to match the spec and Firefox.
170476
170477        Updated existing tests.
170478
170479        * dom/DOMCoreException.cpp:
170480
1704812012-11-14  Joshua Bell  <jsbell@chromium.org>
170482
170483        Rename NATIVE_TYPE_ERR to TypeError
170484        https://bugs.webkit.org/show_bug.cgi?id=102114
170485
170486        Reviewed by Kentaro Hara.
170487
170488        Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
170489        V8 binding code had colliding enum members, which required prefixing.
170490
170491        No new tests - just internal renames.
170492
170493        * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
170494        (WebCore::IDBCursor::advance):
170495        (WebCore::IDBCursor::stringToDirection):
170496        (WebCore::IDBCursor::directionToString):
170497        * Modules/indexeddb/IDBDatabase.cpp: Ditto.
170498        (WebCore::IDBDatabase::setVersion):
170499        * Modules/indexeddb/IDBFactory.cpp: Ditto.
170500        (WebCore::IDBFactory::open):
170501        (WebCore::IDBFactory::openInternal):
170502        (WebCore::IDBFactory::deleteDatabase):
170503        * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
170504        (WebCore::IDBObjectStore::createIndex):
170505        * Modules/indexeddb/IDBTransaction.cpp: Ditto.
170506        (WebCore::IDBTransaction::stringToMode):
170507        (WebCore::IDBTransaction::modeToString):
170508        * bindings/js/JSDOMBinding.cpp: Ditto.
170509        (WebCore::setDOMException):
170510        * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
170511        (WebCore::DateExtension::OnSleepDetected):
170512        * bindings/v8/NPV8Object.cpp: Ditto.
170513        (_NPN_SetException):
170514        * bindings/v8/V8Binding.cpp: Ditto.
170515        (WebCore::throwError):
170516        (WebCore::handleMaxRecursionDepthExceeded):
170517        * bindings/v8/V8Binding.h: Ditto.
170518        (WebCore):
170519        * bindings/v8/V8NPObject.cpp: Ditto.
170520        (WebCore::npObjectInvokeImpl):
170521        (WebCore::npObjectGetProperty):
170522        (WebCore::npObjectSetProperty):
170523        (WebCore::npObjectPropertyEnumerator):
170524        * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
170525        (WebCore::V8ThrowException::setDOMException):
170526        (WebCore::V8ThrowException::throwError):
170527        (WebCore::V8ThrowException::throwTypeError):
170528        (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
170529        * bindings/v8/V8ThrowException.h:
170530        (V8ThrowException):
170531        * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
170532        (WebCore::WorkerContextExecutionProxy::evaluate):
170533        * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
170534        (WebCore::V8ArrayBuffer::constructorCallback):
170535        * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
170536        (WebCore::constructWebGLArrayWithArrayBufferArgument):
170537        (WebCore::constructWebGLArray):
170538        (WebCore::setWebGLArrayHelper):
170539        * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
170540        (WebCore::V8AudioContext::constructorCallback):
170541        * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
170542        (WebCore::V8Blob::constructorCallback):
170543        * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
170544        (WebCore::V8Clipboard::clearDataCallback):
170545        (WebCore::V8Clipboard::setDragImageCallback):
170546        * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
170547        (WebCore::V8DOMFormData::appendCallback):
170548        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
170549        (WebCore::V8SQLResultSetRowList::itemCallback):
170550        * dom/ExceptionCode.h: Add WebIDL exception types.
170551
1705522012-11-14  Tiancheng Jiang  <tijiang@rim.com>
170553
170554        [BlackBerry] Style BB10 time input field font.
170555        https://bugs.webkit.org/show_bug.cgi?id=102260.
170556
170557        Reviewed by Rob Buis.
170558
170559        RIM PR 243355
170560        Adjust time input field font using BB10 system default font.
170561
170562        * css/themeBlackBerry.css:
170563        (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
170564
1705652012-11-14  Li Yin  <li.yin@intel.com>
170566
170567        createDelay should raise exception when the maxDelayTime parameter is incorrect.
170568        https://bugs.webkit.org/show_bug.cgi?id=102173
170569
170570        Reviewed by Chris Rogers.
170571
170572        Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
170573        The specified value must be greater than zero and less than three minutes or a
170574        NOT_SUPPORTED_ERR exception will be thrown.
170575
170576        Tests: webaudio/delaynode-maxdelaylimit.html
170577
170578        * Modules/webaudio/AudioContext.cpp:
170579        (WebCore::AudioContext::createDelay):
170580        * Modules/webaudio/AudioContext.h:
170581        (AudioContext):
170582        * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
170583        * Modules/webaudio/DelayNode.cpp:
170584        (WebCore):
170585        (WebCore::DelayNode::DelayNode):
170586        * Modules/webaudio/DelayNode.h:
170587        (WebCore::DelayNode::create):
170588        (DelayNode):
170589
1705902012-11-14  Simon Fraser  <simon.fraser@apple.com>
170591
170592        Don't pass a paintingRoot when painting from RenderLayerBacking
170593        https://bugs.webkit.org/show_bug.cgi?id=102256
170594
170595        Reviewed by David Hyatt.
170596
170597        The 'paintingRoot' parameter to the RenderLayer paint functions
170598        is used when painting just a subtree (e.g. when painting dragged
170599        selections). There is no need to pass it when a RenderLayerBacking
170600        paints its contents or overlay scrollbars.
170601        
170602        Passing it requires an expensive isDescendant() check, so passing
170603        null is more efficient.
170604        
170605        * rendering/RenderLayer.h:
170606        (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
170607        * rendering/RenderLayerBacking.cpp:
170608        (WebCore::RenderLayerBacking::paintIntoLayer):
170609        (WebCore::RenderLayerBacking::paintContents):
170610        * rendering/RenderLayerBacking.h:
170611        (RenderLayerBacking):
170612
1706132012-11-14  Alec Flett  <alecflett@chromium.org>
170614
170615        Add DOMRequestState to maintain world/ScriptExecutionContext state
170616        https://bugs.webkit.org/show_bug.cgi?id=102102
170617
170618        Reviewed by Adam Barth.
170619
170620        Introduce DOMRequestState, and convert IndexedDB over.
170621
170622        No new tests, this is an abstraction layer for existing code.
170623
170624        * Modules/indexeddb/IDBRequest.cpp:
170625        (WebCore::IDBRequest::IDBRequest):
170626        (WebCore::IDBRequest::onSuccess):
170627        (WebCore::IDBRequest::dispatchEvent):
170628        * Modules/indexeddb/IDBRequest.h:
170629        (IDBRequest):
170630        * WebCore.gypi:
170631        * bindings/v8/DOMRequestState.h: Added.
170632        (WebCore):
170633        (DOMRequestState):
170634        (WebCore::DOMRequestState::DOMRequestState):
170635        (Scope):
170636        (WebCore::DOMRequestState::Scope::Scope):
170637        (WebCore::DOMRequestState::scope):
170638
1706392012-11-14  Justin Novosad  <junov@google.com>
170640
170641        Boxes with rounded corners and thin borders are too slow to draw
170642        https://bugs.webkit.org/show_bug.cgi?id=101974
170643
170644        Reviewed by Simon Fraser.
170645
170646        With the current implementation RenderBox::
170647        determineBackgroundBleedAvoidance() uses the slow path
170648        BackgroundBleedUseTransparencyLayer for some very common use cases,
170649        notably for drawing rectangles with rounded corners that have thin
170650        borders. This is because the BackgroundBleedShrinkBackground
170651        strategy requires a border at least two pixels wide on all sides. This
170652        patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
170653        This approach consists in drawing the border first, with an inset inner
170654        edge (for anti-aliased compositing to work well).  This approach only
170655        works with opaque solid edges and opaque single-layer backgrounds.
170656        By using this approach rather than BackgroundBleedUseTransparencyLayer,
170657        we save two clipPath, one save and one saveLayer on the
170658        GraphicsContext. This patch gets good coverage from existing layout
170659        tests. One additional test was added to exercise mitring, thick edges
170660        and anti-aliasing edge cases under the new painting algorithm.
170661
170662        Test: fast/borders/border-radius-wide-border-05.html
170663
170664        * rendering/RenderBox.cpp:
170665        (WebCore::RenderBox::determineBackgroundBleedAvoidance):
170666        Added selection criteria for BackgroundOverBorder
170667        (WebCore::RenderBox::paintBoxDecorations):
170668        Added a preliminary paintBorder pass for BackgroundOverBorder
170669        (WebCore::RenderBox::paintBackground):
170670        Insetting the background to to innerBorder when bleedAvoidance is
170671        BackgroundOverBorder.  This why BackgroundOverBorder only works for
170672        Opaque solid edges.
170673        (WebCore):
170674        (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
170675        Utility method use by determineBackgroundBleedAvoidance to test the
170676        background's eligibility for BackgroundOverBorder bleed avoidance
170677        strategy.  The reason the background must be a single layer is to avoid
170678        color bleeding from layer compositing along anti-aliased edges
170679        * rendering/RenderBox.h:
170680        (RenderBox):
170681        * rendering/RenderBoxModelObject.cpp:
170682        (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
170683        (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
170684        Added support for BackgroundOverBorder by applying a one pixel inset.
170685        (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
170686        Set the background rect to the inner border for BackgroundOverBorder
170687        (WebCore):
170688        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
170689        Added support for BackgroundOverBorder by using 
170690        backgroundRoundedRectAdjustedForBleedAvoidance
170691        (WebCore::RenderBoxModelObject::paintBorderSides):
170692        Added support for BackgroundOverBorder by applying per-side inset
170693        adjustments.
170694        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
170695        (WebCore::RenderBoxModelObject::paintBorder):
170696        Added support for BackgroundOverBorder by using an adjusted inner
170697        border, but not if sides are painted individually.
170698        * rendering/RenderBoxModelObject.h:
170699        (RenderBoxModelObject):
170700
1707012012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
170702
170703        [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
170704        https://bugs.webkit.org/show_bug.cgi?id=76219
170705
170706        Reviewed by Brent Fulgham.
170707
170708        This patch is to fix a memory leak problem which occurs
170709        in every rendering process on Wincairo port.
170710        By applying this patch, the memory allocated in cairo 
170711        library will be released by calling cairo_destroy.
170712
170713        * platform/graphics/win/GraphicsContextCairoWin.cpp:
170714        (WebCore::GraphicsContext::platformInit):
170715
1707162012-11-14  Sami Kyostila  <skyostil@chromium.org>
170717
170718        Optimize painting of composited scrolling layers
170719        https://bugs.webkit.org/show_bug.cgi?id=96087
170720
170721        Reviewed by Simon Fraser.
170722
170723        Don't completely repaint accelerated scrolling layers when the scroll offset
170724        changes.
170725
170726        Test: compositing/overflow/scrolling-without-painting.html
170727
170728        * platform/graphics/GraphicsLayer.cpp:
170729        (WebCore::GraphicsLayer::setOffsetFromRenderer):
170730        * platform/graphics/GraphicsLayer.h:
170731        (GraphicsLayer):
170732        * rendering/RenderLayerBacking.cpp:
170733        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
170734
1707352012-11-14  Pavel Feldman  <pfeldman@chromium.org>
170736
170737        Web Inspector: keep track of mutation observers and disconnect them upon upload
170738        https://bugs.webkit.org/show_bug.cgi?id=102239
170739
170740        Reviewed by Vsevolod Vlasov.
170741
170742        Otherwise we hit memory leaks.
170743
170744        * inspector/front-end/DefaultTextEditor.js:
170745        (WebInspector.DefaultTextEditor.prototype.wasShown):
170746        (WebInspector.DefaultTextEditor.prototype.willHide):
170747        (WebInspector.TextEditorMainPanel.prototype._wasShown):
170748        (WebInspector.TextEditorMainPanel.prototype._willHide):
170749        (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
170750        (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
170751        * inspector/front-end/utilities.js:
170752
1707532012-11-14  Sergio Villar Senin  <svillar@igalia.com>
170754
170755        [Qt] Use a node image if there is no drag image set for Drag&Drop
170756        https://bugs.webkit.org/show_bug.cgi?id=102124
170757
170758        Reviewed by Simon Hausmann.
170759
170760        Use the nodeImage provided by the frame if there is no dragImage in
170761        the clipboard for the current drag&drop operation.
170762
170763        * platform/qt/ClipboardQt.cpp:
170764        (WebCore::ClipboardQt::createDragImage):
170765
1707662012-11-14  Max Vujovic  <mvujovic@adobe.com>
170767
170768        Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
170769        https://bugs.webkit.org/show_bug.cgi?id=101846
170770
170771        Reviewed by Simon Fraser.
170772
170773        If software-rendered CSS Filters have not been used in the document, avoid doing the second
170774        tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
170775        enclosing filter layer.
170776
170777        No new tests. We now avoid a filters related code path for a performance improvement when
170778        we're not using filters.
170779
170780        * page/FrameView.cpp:
170781        (WebCore::FrameView::FrameView):
170782        * page/FrameView.h:
170783        (FrameView):
170784        (WebCore::FrameView::setHasSoftwareFilters):
170785        (WebCore::FrameView::hasSoftwareFilters):
170786        * rendering/RenderLayer.cpp:
170787        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
170788        * rendering/RenderObject.cpp:
170789        (WebCore::RenderObject::containerForRepaint):
170790
1707912012-11-14  Erik Arvidsson  <arv@chromium.org>
170792
170793        Update DOMException name: NotFoundError
170794        https://bugs.webkit.org/show_bug.cgi?id=102137
170795
170796        Reviewed by Ojan Vafai.
170797
170798        Patch 8 of 25 to update DOMException name to match the spec and Firefox.
170799
170800        Updated existing tests.
170801
170802        * dom/DOMCoreException.cpp:
170803
1708042012-11-14  Otto Derek Cheung  <otcheung@rim.com>
170805
170806        [BlackBerry] Updating BB Cookie database to use WAL
170807        https://bugs.webkit.org/show_bug.cgi?id=102237
170808
170809        Reviewed by Rob Buis.
170810
170811        The cookie database is accessed by one process only and should be updated to
170812        use the WAL journal mode for better I/O performance.
170813
170814        PR 236553
170815
170816        cookieCollection.db-wal is created after the conversion to WAL.
170817        Tested cookie persistence by logging on to random sites and restarting the browser and
170818        check if it automatically logs in.
170819        Also tested using Opera's cookie persistence test.
170820
170821        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
170822        (WebCore::CookieDatabaseBackingStore::invokeOpen):
170823
1708242012-11-14  Erik Arvidsson  <arv@chromium.org>
170825
170826        Update DOMException name: IndexSizeError
170827        https://bugs.webkit.org/show_bug.cgi?id=102087
170828
170829        Reviewed by Ojan Vafai.
170830
170831        This is the first in a series of updates to DOMException name to match
170832        the spec and Firefox.
170833
170834        Patch 1 of 25
170835
170836        Updated existing tests.
170837
170838        * dom/DOMCoreException.cpp:
170839        (WebCore):
170840
1708412012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
170842
170843        Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
170844        https://bugs.webkit.org/show_bug.cgi?id=102205
170845
170846        Reviewed by Csaba Osztrogonác.
170847
170848        Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
170849
170850        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
170851        (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
170852        (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
170853        (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
170854
1708552012-11-14  Erik Arvidsson  <arv@chromium.org>
170856
170857        Update DOMException name: NoDataAllowedError
170858        https://bugs.webkit.org/show_bug.cgi?id=102132
170859
170860        Reviewed by Darin Adler.
170861
170862        Patch 6 of 25 to update DOMException name to match the spec and Firefox.
170863
170864        NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
170865
170866        * dom/DOMCoreException.cpp:
170867        (WebCore):
170868        * dom/ExceptionCode.h:
170869
1708702012-11-14  Pavel Feldman  <pfeldman@chromium.org>
170871
170872        Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
170873        https://bugs.webkit.org/show_bug.cgi?id=102219
170874
170875        Reviewed by Alexander Pavlov.
170876
170877        Force elements module load upon context menu invocation.
170878
170879        * inspector/front-end/ElementsTreeOutline.js:
170880        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
170881        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
170882
1708832012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
170884
170885        Unreviewed, rolling out r134523.
170886        http://trac.webkit.org/changeset/134523
170887        https://bugs.webkit.org/show_bug.cgi?id=102218
170888
170889        brake chrome windows build, as it references a non existing
170890        header js/DOMRequestState.h (Requested by jochen__ on
170891        #webkit).
170892
170893        * Modules/indexeddb/IDBCursor.cpp:
170894        (WebCore::IDBCursor::setValueReady):
170895        * Modules/indexeddb/IDBCursor.h:
170896        (IDBCursor):
170897        * Modules/indexeddb/IDBRequest.cpp:
170898        (WebCore::IDBRequest::IDBRequest):
170899        (WebCore::IDBRequest::onSuccess):
170900        (WebCore::IDBRequest::stop):
170901        (WebCore::IDBRequest::dispatchEvent):
170902        * Modules/indexeddb/IDBRequest.h:
170903        (IDBRequest):
170904        * WebCore.gypi:
170905        * bindings/v8/DOMRequestState.h: Removed.
170906        * bindings/v8/IDBBindingUtilities.cpp:
170907        (WebCore::deserializeIDBValue):
170908        (WebCore::idbKeyToScriptValue):
170909        * bindings/v8/IDBBindingUtilities.h:
170910        (WebCore):
170911
1709122012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
170913
170914        Add platform implementation of remote web inspector server for GTK port.
170915        https://bugs.webkit.org/show_bug.cgi?id=88094 
170916
170917        Reviewed by Gustavo Noronha Silva.
170918
170919        Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
170920        Needed to pass remote inspector server socket connection. The change is tested with 
170921        inspector server API tests.
170922
170923        * platform/network/soup/SocketStreamHandle.h:
170924        (WebCore::SocketStreamHandle::create):
170925        (SocketStreamHandle):
170926        * platform/network/soup/SocketStreamHandleSoup.cpp:
170927        (WebCore::SocketStreamHandle::SocketStreamHandle):
170928        (WebCore):
170929        (WebCore::SocketStreamHandle::connected):
170930        (WebCore::SocketStreamHandle::platformSend):
170931        (WebCore::SocketStreamHandle::platformClose):
170932
1709332012-11-14  Pavel Feldman  <pfeldman@chromium.org>
170934
170935        Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
170936        https://bugs.webkit.org/show_bug.cgi?id=102212
170937
170938        Reviewed by Vsevolod Vlasov.
170939
170940        * inspector/front-end/ObjectPropertiesSection.js:
170941        (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
170942
1709432012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
170944
170945        Web Inspector: NMI add instrumentation for WebAudo related stuff.
170946        They use about 16Mb for shared data on pages with webaudio.
170947        As example Angry Birds app.
170948        https://bugs.webkit.org/show_bug.cgi?id=101729
170949
170950        Reviewed by Yury Semikhatsky.
170951
170952        Plain vanilla instrumentation for audio and webaudio classes.
170953        AudioContext is a kind of ActiveDOMObject. I found that these objects
170954        are accessible through ScriptExecutuionContext and ScriptExecutionContext
170955        is an ancestor of Document. Document class was instrumented earler.
170956        I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
170957        and now AudioContext and other ActiveDOMObjects are reacheable from Document.
170958
170959        Test: inspector-protocol/nmi-webaudio.html
170960
170961        * Modules/webaudio/AudioContext.cpp:
170962        (WebCore::AudioContext::reportMemoryUsage):
170963        (WebCore):
170964        * Modules/webaudio/AudioContext.h:
170965        (AudioContext):
170966        * Modules/webaudio/AudioNode.cpp:
170967        (WebCore::AudioNode::reportMemoryUsage):
170968        (WebCore):
170969        * Modules/webaudio/AudioNode.h:
170970        (AudioNode):
170971        * dom/ActiveDOMObject.cpp:
170972        (WebCore::ActiveDOMObject::reportMemoryUsage):
170973        (WebCore):
170974        * dom/ActiveDOMObject.h:
170975        (ActiveDOMObject):
170976        * dom/Document.cpp:
170977        (WebCore::Document::reportMemoryUsage):
170978        * dom/ScriptExecutionContext.cpp:
170979        (WebCore::ScriptExecutionContext::reportMemoryUsage):
170980        (WebCore):
170981        * dom/ScriptExecutionContext.h:
170982        (ScriptExecutionContext):
170983        * dom/SecurityContext.cpp:
170984        (WebCore::SecurityContext::reportMemoryUsage):
170985        (WebCore):
170986        * dom/SecurityContext.h:
170987        (SecurityContext):
170988        * dom/WebCoreMemoryInstrumentation.cpp:
170989        (WebCore):
170990        * dom/WebCoreMemoryInstrumentation.h:
170991        (WebCoreMemoryTypes):
170992        * platform/audio/AudioArray.h:
170993        (AudioArray):
170994        (WebCore::AudioArray::reportMemoryUsage):
170995        * platform/audio/FFTFrame.cpp:
170996        (WebCore::FFTFrame::reportMemoryUsage):
170997        (WebCore):
170998        * platform/audio/FFTFrame.h:
170999        (FFTFrame):
171000        * platform/audio/HRTFDatabase.cpp:
171001        (WebCore::HRTFDatabase::reportMemoryUsage):
171002        (WebCore):
171003        * platform/audio/HRTFDatabase.h:
171004        (HRTFDatabase):
171005        * platform/audio/HRTFDatabaseLoader.cpp:
171006        (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
171007        (WebCore):
171008        * platform/audio/HRTFDatabaseLoader.h:
171009        (HRTFDatabaseLoader):
171010        * platform/audio/HRTFElevation.cpp:
171011        (WebCore::HRTFElevation::reportMemoryUsage):
171012        (WebCore):
171013        * platform/audio/HRTFElevation.h:
171014        (HRTFElevation):
171015        * platform/audio/HRTFKernel.cpp:
171016        (WebCore::HRTFKernel::reportMemoryUsage):
171017        (WebCore):
171018        * platform/audio/HRTFKernel.h:
171019        (HRTFKernel):
171020
1710212012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
171022
171023        Web Inspector: Settings screen: close button overlays view title on mac.
171024        https://bugs.webkit.org/show_bug.cgi?id=102198
171025
171026        Reviewed by Pavel Feldman.
171027
171028        Added margin-left for mac. Adjusted title height and vertical positioning.
171029
171030        * inspector/front-end/helpScreen.css:
171031        (.help-window-caption): Adjusted title height.
171032        (.help-window-title): Adjusted title vertical positioning. 
171033        (body.platform-mac .help-window-main .help-window-title): Fixed margin.
171034
1710352012-11-13  Pavel Feldman  <pfeldman@chromium.org>
171036
171037        Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
171038        https://bugs.webkit.org/show_bug.cgi?id=101905
171039
171040        Reviewed by Vsevolod Vlasov.
171041
171042        Currently we use heuristics for detecting damaged model range upon DOM mutation.
171043        This change adds signals from the last selection and keyboard events in order to
171044        further improve the heuristics quality.
171045
171046        * inspector/front-end/DefaultTextEditor.js:
171047        (WebInspector.DefaultTextEditor):
171048        (WebInspector.DefaultTextEditor.EditInfo):
171049        (WebInspector.DefaultTextEditor.prototype._handleTextInput):
171050        (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
171051        (WebInspector.DefaultTextEditor.prototype.lastSelection):
171052        (WebInspector.DefaultTextEditor.prototype.wasShown):
171053        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
171054        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
171055        (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
171056        (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
171057        (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
171058        * inspector/front-end/TextEditorModel.js:
171059        (WebInspector.TextRange.prototype.compareTo):
171060        (WebInspector.TextRange.prototype.shift):
171061        (WebInspector.TextEditorModel.endsWithBracketRegex.):
171062
1710632012-11-14  Dan Carney  <dcarney@google.com>
171064
171065        [V8] use toV8Fast in all relevant Node getters
171066        https://bugs.webkit.org/show_bug.cgi?id=100851
171067
171068        Reviewed by Kentaro Hara.
171069
171070        The toV8Fast function for Node objects is now called in all getters
171071        instead of toV8.
171072
171073        No new tests. Test coverage extensive.
171074
171075        * bindings/scripts/CodeGeneratorV8.pm:
171076        (GenerateHeader):
171077        (GenerateNormalAttrGetter):
171078        (IsDOMNodeType):
171079        * bindings/scripts/test/V8/V8TestNode.h:
171080        (WebCore::toV8Fast):
171081
1710822012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
171083
171084        Clean up use of adjustWindowRect
171085        https://bugs.webkit.org/show_bug.cgi?id=102072
171086
171087        Reviewed by Gyuyoung Kim.
171088
171089        Tested by fast/dom/Window/open-window-min-size.html
171090
171091        * loader/FrameLoader.cpp:
171092        (WebCore::createWindow):
171093
171094            Validate the window size here so that it is not just done for
171095            .open, but also for .showModalDialog. This is compatible with
171096            other browsers such as IE and Firefox (though IE > 6, enforces
171097            a minimum width of 250 instead of 100 as Firefox and us.)
171098
171099        * page/DOMWindow.cpp:
171100        (WebCore):
171101        (WebCore::DOMWindow::adjustWindowRect):
171102
171103            Make it a static method which only takes page. It was never
171104            called from anywhere without a valid page, so the page check
171105            has been turned into an assert, and two of the arguments have
171106            been removed as they can be accessed via the page.
171107
171108        (WebCore::DOMWindow::moveBy):
171109        (WebCore::DOMWindow::moveTo):
171110        (WebCore::DOMWindow::resizeBy):
171111        (WebCore::DOMWindow::resizeTo):
171112
171113            Update use of adjustWindowRect.
171114
171115        (WebCore::DOMWindow::open):
171116
171117            Avoid modifying the WindowFeatures as the WebCore::createWindow
171118            validates and adjusts the arguments.
171119
171120        * page/DOMWindow.h:
171121        (DOMWindow):
171122
1711232012-11-14  Takashi Sakamoto  <tasak@google.com>
171124
171125        Crash when replacing parts of text inputs with content: url(...)
171126        https://bugs.webkit.org/show_bug.cgi?id=101133
171127
171128        Reviewed by Kent Tamura.
171129
171130        Disable directly setting content of elements in an input element's
171131        shadow dom tree, because the setting breaks input element's behavior.
171132
171133        Tests: fast/forms/number/number-content-url-crash.html
171134               fast/forms/search/search-content-url-crash.html
171135
171136        * css/html.css:
171137        (input::-webkit-textfield-decoration-container):
171138        Use important to disable overriding an input element's content
171139        property.
171140        * html/TextFieldInputType.cpp:
171141        (WebCore::TextFieldInputType::attach):
171142        Added ASSERTION. No content should be applied to
171143        input::-webkit-textfield-decoration-container.
171144
1711452012-11-14  Kentaro Hara  <haraken@chromium.org>
171146
171147        Unreviewed. Rebaselined run-bindings-tests results.
171148
171149        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
171150        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
171151        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
171152        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
171153        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
171154        (WebCore::V8TestOverloadedConstructors::wrapSlow):
171155
1711562012-11-14  Anton Muhin  <antonm@chromium.org>
171157
171158        Provide return types for custom WebGLRenderingContext methods
171159        https://bugs.webkit.org/show_bug.cgi?id=100777
171160
171161        Reviewed by Kenneth Russell.
171162
171163        No new tests as doesn't change generated code.
171164
171165        * html/canvas/WebGLRenderingContext.idl:
171166
1711672012-11-14  Kent Tamura  <tkent@chromium.org>
171168
171169        Support for localization tests of calendar picker
171170        https://bugs.webkit.org/show_bug.cgi?id=102181
171171
171172        Reviewed by Kentaro Hara.
171173
171174        Introduce DateTimeChooserParameters::locale to inform locale to
171175        DateTimeChooser implementations. However we pass defaultLanguage
171176        unless tests calls internals.settings.
171177        setLangAttributeAwareFormControlUIEnabled(true) explicitly.
171178
171179        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
171180
171181        * html/HTMLInputElement.cpp:
171182        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
171183        Set DateTimeChooserParameters::locale up.
171184        * platform/DateTimeChooser.h:
171185        (DateTimeChooserParameters): Add 'locale' member.
171186
1711872012-11-14  Pavel Feldman  <pfeldman@chromium.org>
171188
171189        Web Inspector: highlight is not updating as one edits CSS properties
171190        https://bugs.webkit.org/show_bug.cgi?id=102191
171191
171192        Reviewed by Alexander Pavlov.
171193
171194        We should update highlight upon layout / style recalculation.
171195
171196        * inspector/InspectorInstrumentation.cpp:
171197        (WebCore):
171198        (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
171199        * inspector/InspectorPageAgent.cpp:
171200        (WebCore::InspectorPageAgent::InspectorPageAgent):
171201        (WebCore::InspectorPageAgent::enable):
171202        (WebCore::InspectorPageAgent::disable):
171203        (WebCore::InspectorPageAgent::domContentEventFired):
171204        (WebCore::InspectorPageAgent::didPaint):
171205        (WebCore::InspectorPageAgent::didLayout):
171206        (WebCore::InspectorPageAgent::didScroll):
171207        (WebCore):
171208        (WebCore::InspectorPageAgent::didRecalculateStyle):
171209        * inspector/InspectorPageAgent.h:
171210
1712112012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
171212
171213        Unreviewed, rolling out r134566.
171214        http://trac.webkit.org/changeset/134566
171215        https://bugs.webkit.org/show_bug.cgi?id=102197
171216
171217        "it broke Chromium Android Release build" (Requested by
171218        haraken on #webkit).
171219
171220        * html/HTMLInputElement.cpp:
171221        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
171222        * platform/DateTimeChooser.h:
171223        (DateTimeChooserParameters):
171224
1712252012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
171226
171227        Web Inspector: No content available for requests made from flash
171228        https://bugs.webkit.org/show_bug.cgi?id=101560
171229
171230        Reviewed by Pavel Feldman.
171231
171232        Network request data is now saved to inspector cache in following cases:
171233         - Error status code;
171234         - No cached resource available;
171235         - Cached resource has ShouldNotBufferData option set.
171236        Drive-by: refactored didReceiveResponse logic to be clearer.
171237
171238        * inspector/InspectorResourceAgent.cpp:
171239        (WebCore::InspectorResourceAgent::didReceiveResponse):
171240        (WebCore::InspectorResourceAgent::didReceiveData):
171241        * loader/cache/CachedResource.h:
171242        (WebCore::CachedResource::shouldBufferData):
171243
1712442012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
171245
171246        Changing pseudoClass (:target) should cause distribution
171247        https://bugs.webkit.org/show_bug.cgi?id=101699
171248
171249        Reviewed by Hajime Morita.
171250
171251        When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
171252        by consulting with SelectRuleFeatureSet.
171253
171254        We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
171255
171256        Test: fast/dom/shadow/pseudoclass-update-target.html
171257
171258        * dom/Document.cpp:
171259        (WebCore::Document::setCSSTarget):
171260        * dom/ElementShadow.cpp:
171261        (WebCore::invalidateParentDistributionIfNecessary):
171262        (WebCore):
171263        * dom/ElementShadow.h:
171264        (WebCore):
171265        * html/shadow/SelectRuleFeatureSet.h:
171266        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
171267        (SelectRuleFeatureSet):
171268
1712692012-11-14  Kentaro Hara  <haraken@chromium.org>
171270
171271        [V8] DOM wrapper objects should be collected in minor GC cycles
171272        https://bugs.webkit.org/show_bug.cgi?id=98725
171273
171274        Reviewed by Adam Barth.
171275
171276        Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
171277        have to survive two minor GC cycles, be promoted to the old space
171278        and wait for a heavy major GC cycle.
171279
171280        This patch enables V8 to collect DOM Nodes in minor GC cycles.
171281        For real world applications, I confirmed that minor GC cycles
171282        reclaims a substantial amount of memory (24 MB for Facebook,
171283        235 MB for Google Calendar) with acceptable overhead (~10 ms
171284        per minor GC cycle). No performance regression in Dromaeo
171285        DOM tests.
171286
171287        A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
171288        Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
171289        A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
171290
171291        * bindings/v8/IntrusiveDOMWrapperMap.h:
171292        (WebCore::IntrusiveDOMWrapperMap::set):
171293        * bindings/v8/V8DOMWindowShell.cpp:
171294        (WebCore::initializeV8IfNeeded):
171295        * bindings/v8/V8GCController.cpp:
171296        (WebCore):
171297        (WebCore::gcTree):
171298        (WebCore::V8GCController::newWrapperBorn):
171299        (WebCore::V8GCController::gcPrologue):
171300        (WebCore::V8GCController::minorGCPrologue):
171301        (WebCore::V8GCController::majorGCPrologue):
171302        (WebCore::V8GCController::gcEpilogue):
171303        (WebCore::V8GCController::minorGCEpilogue):
171304        (WebCore::V8GCController::majorGCEpilogue):
171305        * bindings/v8/V8GCController.h:
171306        (WebCore):
171307        (V8GCController):
171308        * bindings/v8/WorkerContextExecutionProxy.cpp:
171309        (WebCore::WorkerContextExecutionProxy::initIsolate):
171310        * dom/Element.cpp:
171311        (WebCore::Element::focus):
171312        * dom/Node.h:
171313        (WebCore::Node::inEden):
171314        (WebCore::Node::setEden):
171315        (Node):
171316
1713172012-11-14  Kentaro Hara  <haraken@chromium.org>
171318
171319        [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
171320        https://bugs.webkit.org/show_bug.cgi?id=101917
171321
171322        Reviewed by Adam Barth.
171323
171324        setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
171325        We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
171326        createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
171327
171328        No tests. No change in behavior.
171329
171330        * bindings/scripts/CodeGeneratorV8.pm:
171331        (GenerateConstructorCallback):
171332        (GenerateEventConstructorCallback):
171333        (GenerateNamedConstructorCallback):
171334        (GenerateToV8Converters):
171335        * bindings/v8/V8DOMWindowShell.cpp:
171336        (WebCore::V8DOMWindowShell::installDOMWindow):
171337        * bindings/v8/V8DOMWrapper.cpp:
171338        (WebCore::V8DOMWrapper::instantiateV8Object):
171339        * bindings/v8/V8DOMWrapper.h:
171340        (V8DOMWrapper):
171341        (WebCore::V8DOMWrapper::createDOMWrapper):
171342        * bindings/v8/WorkerContextExecutionProxy.cpp:
171343        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
171344        * bindings/v8/custom/V8ArrayBufferCustom.cpp:
171345        (WebCore::V8ArrayBuffer::constructorCallback):
171346        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
171347        (WebCore::wrapArrayBufferView):
171348        (WebCore::constructWebGLArray):
171349        * bindings/v8/custom/V8DOMFormDataCustom.cpp:
171350        (WebCore::V8DOMFormData::constructorCallback):
171351        * bindings/v8/custom/V8DataViewCustom.cpp:
171352        (WebCore::V8DataView::constructorCallback):
171353        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
171354        (WebCore::v8HTMLImageElementConstructorCallback):
171355        * bindings/v8/custom/V8IntentConstructor.cpp:
171356        (WebCore::V8Intent::constructorCallback):
171357        * bindings/v8/custom/V8MessageChannelConstructor.cpp:
171358        (WebCore::V8MessageChannel::constructorCallback):
171359        * bindings/v8/custom/V8MutationObserverCustom.cpp:
171360        (WebCore::V8MutationObserver::constructorCallback):
171361        * bindings/v8/custom/V8WebKitPointConstructor.cpp:
171362        (WebCore::V8WebKitPoint::constructorCallback):
171363        * bindings/v8/custom/V8WebSocketCustom.cpp:
171364        (WebCore::V8WebSocket::constructorCallback):
171365        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
171366        (WebCore::V8XMLHttpRequest::constructorCallback):
171367
1713682012-11-14  Kent Tamura  <tkent@chromium.org>
171369
171370        Support for localization tests of calendar picker
171371        https://bugs.webkit.org/show_bug.cgi?id=102181
171372
171373        Reviewed by Kentaro Hara.
171374
171375        Introduce DateTimeChooserParameters::locale to inform locale to
171376        DateTimeChooser implementations. However we pass defaultLanguage
171377        unless tests calls internals.settings.
171378        setLangAttributeAwareFormControlUIEnabled(true) explicitly.
171379
171380        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
171381
171382        * html/HTMLInputElement.cpp:
171383        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
171384        Set DateTimeChooserParameters::locale up.
171385        * platform/DateTimeChooser.h:
171386        (DateTimeChooserParameters): Add 'locale' member.
171387
1713882012-11-14  Alexei Filippov  <alph@chromium.org>
171389
171390        Web Inspector: Show total memory in the NMI snapshot header
171391        https://bugs.webkit.org/show_bug.cgi?id=101922
171392
171393        Reviewed by Pavel Feldman.
171394
171395        * inspector/front-end/NativeMemorySnapshotView.js:
171396        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
171397        (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
171398
1713992012-11-14  Jan Keromnes  <janx@linux.com>
171400
171401        Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
171402        https://bugs.webkit.org/show_bug.cgi?id=102142
171403
171404        Reviewed by Pavel Feldman.
171405
171406        Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
171407
171408        * inspector/front-end/CodeMirrorTextEditor.js:
171409        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
171410
1714112012-11-13  Kent Tamura  <tkent@chromium.org>
171412
171413        Use menulist-button instead of menulist for date/time input types
171414        https://bugs.webkit.org/show_bug.cgi?id=101886
171415
171416        Reviewed by Hajime Morita.
171417
171418        Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
171419        not menulist. We had better apply common one by default.
171420
171421        No new tests. Covered by fast/forms/*/*-appearance-*.html.
171422
171423        * css/html.css:
171424        (input[type="date"]): Switch menulist-button from menulist.
171425        (input[type="datetime"]): Ditto.
171426        (input[type="datetime-local"]): Ditto.
171427        (input[type="month"]): Ditto.
171428        (input[type="time"]): Ditto.
171429        (input[type="week"]): Ditto.
171430        (input::-webkit-date-and-time-value):
171431        Add top, right, bottom margins. The right margin is important when
171432        dir=rtl is specified.
171433        whitespace:pre is needed to align baseline in a case of empty values.
171434        * css/themeChromiumAndroid.css:
171435        Remove redundant style declaration.
171436        * css/themeWin.css:
171437        Remove padding adjustment for date/time input types. It is for
171438        textfields.
171439
1714402012-11-13  Vincent Scheib  <scheib@chromium.org>
171441
171442        Remove RuntimeEnabledFeatures::isPointerLockEnabled.
171443        https://bugs.webkit.org/show_bug.cgi?id=102107
171444
171445        Reviewed by Adam Barth.
171446
171447        The runtime flag is always true now that the feature is enabled by default in Chromium.
171448
171449        * bindings/generic/RuntimeEnabledFeatures.cpp:
171450        (WebCore):
171451        * bindings/generic/RuntimeEnabledFeatures.h:
171452        (RuntimeEnabledFeatures):
171453        * dom/Document.idl:
171454        * dom/Element.idl:
171455        * dom/MouseEvent.idl:
171456
1714572012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
171458
171459        Web Inspector: JsDoc-annotate KeyboardShortcuts
171460        https://bugs.webkit.org/show_bug.cgi?id=101301
171461
171462        Reviewed by Pavel Feldman.
171463
171464        JsDoc-annotate KeyboardShortcuts to improve readability.
171465
171466        * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
171467        * inspector/front-end/KeyboardShortcut.js: Add annotations.
171468        * inspector/front-end/Panel.js: Make event parameter typed.
171469        * inspector/front-end/inspector.js: Ditto.
171470
1714712012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
171472
171473        Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
171474        https://bugs.webkit.org/show_bug.cgi?id=101907
171475
171476        Reviewed by Pavel Feldman.
171477
171478        Status bar control element should have common interface for
171479        easier management.
171480        In this patch getter/setter for StatusBarButton "disabled" are replaced
171481        with regular functions "enabled"/"setEnabled"; added "setEnabled"
171482        to StatusBarCombo; added new base class StatusBarItem with
171483        method "setEnabled" and member "element".
171484
171485        * inspector/front-end/CPUProfileView.js: Adopted refactoring.
171486        * inspector/front-end/DockController.js: Ditto.
171487        * inspector/front-end/ScriptsPanel.js: Ditto.
171488        * inspector/front-end/TimelinePanel.js: Ditto.
171489        * inspector/front-end/inspector.js: Ditto.
171490        * inspector/front-end/StatusBarButton.js:
171491        (WebInspector.StatusBarItem): Added.
171492        (WebInspector.StatusBarButton): Replaced getter/setter with
171493        regular functions.
171494        (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
171495
1714962012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
171497
171498        Web Inspector: Console: update tab/shift-tab shortcut description.
171499        https://bugs.webkit.org/show_bug.cgi?id=102175
171500
171501        Reviewed by Pavel Feldman.
171502
171503        For "Tab / Shift-Tab" it said "Next/previous suggestion".
171504        Actually, shift-tab to do nothing, and tab auto-completes common prefix.
171505
171506        * English.lproj/localizedStrings.js: Replaced string.
171507        * inspector/front-end/ConsoleView.js: Updated shortcut registration.
171508
1715092012-11-13  Dana Jansens  <danakj@chromium.org>
171510
171511        [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
171512        https://bugs.webkit.org/show_bug.cgi?id=102130
171513
171514        Reviewed by James Robinson.
171515
171516        The current method of setting debug borders on GraphicsLayers requires
171517        every GraphicsLayerClient to set the value on the layer(s) it
171518        represents. This skips the NonCompositedContentHost as well as any
171519        other clients other than RenderLayerBacking - including layers from the
171520        inspector.
171521
171522        Instead, pass the debug border setting directly to the
171523        WebLayerTreeSettings where the compositor can use the flag to enable
171524        borders on all layers globally.
171525
171526        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
171527        (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
171528        (WebCore::GraphicsLayerChromium::updateMasksToBounds):
171529        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
171530        (WebCore::GraphicsLayerChromium::setupContentsLayer):
171531        * platform/graphics/chromium/GraphicsLayerChromium.h:
171532        (GraphicsLayerChromium):
171533
1715342012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
171535
171536        Enable calendar picker for input types datetime/datetime-local
171537        https://bugs.webkit.org/show_bug.cgi?id=101889
171538
171539        Reviewed by Kent Tamura.
171540
171541        This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
171542        When a user choose a date from calendar picker, year/month/day fields of the input
171543        element are updated and hour/minute/second fields are unchanged.
171544
171545        Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
171546               platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
171547
171548        * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
171549        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
171550        (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
171551        If the given value is not valid for the element, try to parse it as a date string.
171552        * html/DateTimeInputType.cpp:
171553        (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
171554        * html/DateTimeLocalInputType.cpp:
171555        (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
171556        * html/shadow/DateTimeEditElement.cpp:
171557        (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
171558        (WebCore):
171559        * html/shadow/DateTimeEditElement.h:
171560        (DateTimeEditElement):
171561        * rendering/RenderThemeChromiumCommon.cpp:
171562        (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
171563
1715642012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
171565
171566        Unreviewed, rolling out r134524.
171567        http://trac.webkit.org/changeset/134524
171568        https://bugs.webkit.org/show_bug.cgi?id=102177
171569
171570        "Chromiium build broken" (Requested by haraken on #webkit).
171571
171572        * WebCore.gyp/WebCore.gyp:
171573        * WebCore.gypi:
171574        * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
171575        * rendering/RenderThemeChromiumFontProvider.h: Removed.
171576        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
171577        * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
171578        * rendering/RenderThemeChromiumSkia.cpp:
171579        (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
171580        (WebCore::RenderThemeChromiumSkia::systemFont):
171581        (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
171582        * rendering/RenderThemeChromiumSkia.h:
171583        (RenderThemeChromiumSkia):
171584        * rendering/RenderThemeChromiumWin.cpp:
171585        (WebCore):
171586        (WebCore::getNonClientMetrics):
171587        (WebCore::systemFontSize):
171588        (WebCore::pointsToPixels):
171589        (WebCore::RenderThemeChromiumWin::systemFont):
171590        (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
171591        * rendering/RenderThemeChromiumWin.h:
171592        (RenderThemeChromiumWin):
171593
1715942012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
171595
171596        Fix compile warning [-Wsign-compare]
171597        https://bugs.webkit.org/show_bug.cgi?id=101458
171598
171599        Reviewed by Alexey Proskuryakov.
171600
171601        Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
171602        However, it leads -Wsign-compare compile warning.
171603        Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
171604
171605        * platform/posix/SharedBufferPOSIX.cpp:
171606        (WebCore::SharedBuffer::createWithContentsOfFile):
171607
1716082012-11-13  Keishi Hattori  <keishi@webkit.org>
171609
171610        Enable datalist UI for input types week and month
171611        https://bugs.webkit.org/show_bug.cgi?id=102041
171612
171613        Reviewed by Kent Tamura.
171614
171615        Enabling datalist UI for input types week and month.
171616
171617        No new tests. Tests will be added later in Bug 102039 and Bug 102040.
171618
171619        * rendering/RenderThemeChromiumCommon.cpp:
171620        (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
171621
1716222012-11-13  Eberhard Graether  <egraether@google.com>
171623
171624        checkbox to toggle FPS counter in the inspector's settings
171625        https://bugs.webkit.org/show_bug.cgi?id=99660
171626
171627        Reviewed by Pavel Feldman.
171628
171629        Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
171630
171631        No new tests.
171632
171633        * English.lproj/localizedStrings.js:
171634        * inspector/Inspector.json:
171635        * inspector/InspectorClient.h:
171636        (WebCore::InspectorClient::canShowFPSCounter):
171637        (WebCore::InspectorClient::setShowFPSCounter):
171638        (InspectorClient):
171639        * inspector/InspectorPageAgent.cpp:
171640        (PageAgentState):
171641        (WebCore::InspectorPageAgent::enable):
171642        (WebCore::InspectorPageAgent::disable):
171643        (WebCore::InspectorPageAgent::canShowFPSCounter):
171644        (WebCore):
171645        (WebCore::InspectorPageAgent::setShowFPSCounter):
171646        * inspector/InspectorPageAgent.h:
171647        * inspector/front-end/Settings.js:
171648        * inspector/front-end/SettingsScreen.js:
171649        (WebInspector.GenericSettingsTab):
171650        (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
171651        * inspector/front-end/inspector.js:
171652        (WebInspector.doLoadedDone):
171653
1716542012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
171655
171656        Collect necessary features for SelectRuleFeatureSet
171657        https://bugs.webkit.org/show_bug.cgi?id=102160
171658
171659        Reviewed by Dimitri Glazkov.
171660
171661        When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
171662        distribution, we would like to collect RuleFeature from select attributes.
171663
171664        According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
171665        indeterminate, link, target, and visited. We collect them in this patch.
171666
171667        Test: fast/dom/shadow/shadow-select-attribute-featureset.html
171668
171669        * html/shadow/SelectRuleFeatureSet.cpp:
171670        (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
171671        (WebCore::SelectRuleFeatureSet::add):
171672        (WebCore::SelectRuleFeatureSet::clear):
171673        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
171674        * html/shadow/SelectRuleFeatureSet.h:
171675        (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
171676        (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
171677        (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
171678        (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
171679        (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
171680        (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
171681        (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
171682        (SelectRuleFeatureSet):
171683        (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
171684        (WebCore::SelectRuleFeatureSet::hasSelectorFor):
171685        * testing/Internals.cpp:
171686        (WebCore::Internals::hasSelectorForPseudoClassInShadow):
171687        (WebCore):
171688        * testing/Internals.h:
171689        (Internals):
171690        * testing/Internals.idl:
171691
1716922012-11-13  Andreas Kling  <kling@webkit.org>
171693
171694        Move inline style logic from ElementAttributeData to StyledElement.
171695        <http://webkit.org/b/102120>
171696
171697        Reviewed by Antti Koivisto.
171698
171699        Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
171700        No difference in behavior, just making ElementAttributeData dumber.
171701
171702        * css/StylePropertySet.cpp:
171703        * css/StylePropertySet.h:
171704        (WebCore::StylePropertySet::hasCSSOMWrapper):
171705        (WebCore::StylePropertySet::cssStyleDeclaration):
171706
171707            Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
171708            to instantiate a CSSOM wrapper unnecessarily.
171709
171710        * dom/StyledElement.h:
171711        (WebCore::StyledElement::inlineStyle):
171712        * dom/ElementAttributeData.cpp:
171713        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
171714        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
171715        (WebCore::ElementAttributeData::reportMemoryUsage):
171716        * dom/ElementAttributeData.h:
171717        (WebCore::ElementAttributeData::inlineStyle):
171718        (ElementAttributeData):
171719
171720            Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
171721
171722        * dom/StyledElement.cpp:
171723        (WebCore::StyledElement::~StyledElement):
171724
171725            Detach the CSSOM wrapper from the inline style if there is one.
171726
171727        (WebCore::StyledElement::ensureMutableInlineStyle):
171728        (WebCore::StyledElement::style):
171729
171730            Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
171731            actually does. Update call sites accordingly.
171732
171733        (WebCore::StyledElement::inlineStyleCSSOMWrapper):
171734
171735            Added helper to get the CSSOM wrapper for the element's inline style if there is one.
171736
171737        (WebCore::StyledElement::styleAttributeChanged):
171738
171739            Do the work to parse/update/replace the inline style attribute here instead of
171740            in an ElementAttributeData method.
171741
171742        (WebCore::StyledElement::setInlineStyleProperty):
171743        (WebCore::StyledElement::removeInlineStyleProperty):
171744        (WebCore::StyledElement::removeAllInlineStyleProperties):
171745        * editing/ApplyStyleCommand.cpp:
171746        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
171747        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
171748        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
171749        * editing/ReplaceSelectionCommand.cpp:
171750        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
171751        * html/canvas/CanvasStyle.cpp:
171752        (WebCore::currentColor):
171753
171754            s/ensureInlineStyle/ensureMutableInlineStyle/
171755
1717562012-11-13  Li Yin  <li.yin@intel.com>
171757
171758        fast/forms/file/input-file-write-files.html should cover correct setting value
171759        https://bugs.webkit.org/show_bug.cgi?id=100085
171760
171761        Reviewed by Kentaro Hara.
171762
171763        Fix the GObject and Objective C bindings comparibility issue. Preserving existing
171764        behavior for those may be important in idl.
171765
171766        No new tests, because fast/forms/file/input-file-value.html has covered it.
171767
171768        * html/HTMLInputElement.idl:
171769
1717702012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
171771
171772        [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
171773        https://bugs.webkit.org/show_bug.cgi?id=102061
171774
171775        Reviewed by Gyuyoung Kim.
171776
171777        The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
171778
171779        * platform/network/efl/NetworkStateNotifierEfl.cpp:
171780        (WebCore::readSocketCallback):
171781
1717822012-11-13  Sami Kyostila  <skyostil@chromium.org>
171783
171784        Don't mark scrolling contents as dirty if RenderLayerBacking is going away
171785        https://bugs.webkit.org/show_bug.cgi?id=101947
171786
171787        Reviewed by Simon Fraser.
171788
171789        When a scrolling contents graphics layer is created or destroyed, the
171790        associated graphics layer is marked as needing display because some of
171791        the painted content may have migrated between the primary graphics layer
171792        and the scrolling layer.
171793
171794        This causes a problem when the RenderLayerBacking is being destroyed,
171795        because setNeedsDisplay() needs to check from the compositor whether to
171796        track repaints or not. If the RenderLayerBacking is being destroyed, the
171797        value returned by compositor() is garbage and this causes a crash.
171798
171799        This patch fixes the problem by making RenderLayer::compositor() return a null
171800        pointer when the renderer no longer has a view.
171801
171802        Covered by existing layout tests in compositing/overflow/.
171803
171804        * rendering/RenderLayer.cpp:
171805        (WebCore::RenderLayer::compositor):
171806
1718072012-11-13  Erik Arvidsson  <arv@chromium.org>
171808
171809        Update DOMException name: InvalidCharacterError
171810        https://bugs.webkit.org/show_bug.cgi?id=102128
171811
171812        Reviewed by Darin Adler.
171813
171814        Patch 5 of 25 to update DOMException name to match the spec and Firefox.
171815
171816        Updated existing tests.
171817
171818        * dom/DOMCoreException.cpp:
171819
1718202012-11-13  Joshua Bell  <jsbell@chromium.org>
171821
171822        IndexedDB: Run multiple tasks per transaction tick
171823        https://bugs.webkit.org/show_bug.cgi?id=97738
171824
171825        Reviewed by Tony Chang.
171826
171827        Process multiple tasks from the pending queue(s) when the timer fires. The
171828        task may initiate new tasks that change which queue is active (e.g. indexing
171829        operations) so the loop must re-check each tick which queue to use.
171830
171831        In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
171832        in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
171833
171834        No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
171835
171836        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
171837        (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
171838        (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
171839
1718402012-11-13  Elliott Sprehn  <esprehn@chromium.org>
171841
171842        Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
171843        https://bugs.webkit.org/show_bug.cgi?id=102012
171844
171845        Reviewed by Ojan Vafai.
171846
171847        Previously if you modified the subtree that was being removed from a
171848        removeChild from inside an unload handler on an <iframe> inside the
171849        subtree you'd get an exception which is wrong. Instead we just need to
171850        disable all frame loading there.
171851
171852        This works because either the subtree will be removed and the frame never
171853        loading doesn't matter, or some section of the subtree that contains the
171854        frame will be moved to another part of the document which will cause the
171855        frame to load when it's inserted there.
171856
171857        I also added a check for <object> elements. It doesn't seem this is actually
171858        reachable in the existing code, but I'm not entirely sure since the frame
171859        loading and object/plugin handling is very confusing.
171860
171861        A better fix could be to repeatedly walk the subtree until all frames
171862        were disconnected or some iteration limit was hit and then force all leftover
171863        subframes to disconnect without firing unload handlers but this is such an
171864        edge case I don't think the complexity is necessary.
171865
171866        Test: fast/frames/modifications-in-subtree-unload.html
171867
171868        * dom/ContainerNodeAlgorithms.h:
171869        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
171870        (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
171871        (ChildFrameDisconnector):
171872        (WebCore::ChildFrameDisconnector::disconnect):
171873        * dom/Node.cpp:
171874        (WebCore::checkAcceptChild): Removed exception.
171875        * html/HTMLFrameElementBase.cpp:
171876        (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
171877        * html/HTMLFrameOwnerElement.h:
171878        (SubframeLoadingDisabler):
171879        (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
171880        (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
171881        (WebCore::SubframeLoadingDisabler::canLoadFrame):
171882          Returns true if frames can be loaded in the subtree.
171883        (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
171884        * html/HTMLObjectElement.cpp:
171885        (WebCore::HTMLObjectElement::updateWidget):
171886          Check canLoadFrame(). I think this case is impossible, but it's better
171887          to be safe than sorry later.
171888
1718892012-11-13  Joshua Bell  <jsbell@chromium.org>
171890
171891        [V8] Add missing ENABLE(SVG) test in header
171892        https://bugs.webkit.org/show_bug.cgi?id=102143
171893
171894        Reviewed by Kentaro Hara.
171895
171896        Need to wrap the #include of a header that's only conditionally generated.
171897
171898        Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
171899
171900        * bindings/v8/custom/V8ElementCustom.cpp:
171901
1719022012-11-13  Jon Lee  <jonlee@apple.com>
171903
171904        Automatically run small plugins
171905        https://bugs.webkit.org/show_bug.cgi?id=102148
171906        <rdar://problem/12695560>
171907
171908        Reviewed by Darin Adler.
171909
171910        * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
171911        * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
171912        (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
171913        If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
171914        display state to Playing. Assuming we will always layout before first paint, changing the state here
171915        should be safe.
171916        * rendering/RenderSnapshottedPlugIn.h:
171917
1719182012-11-13  Kenneth Russell  <kbr@google.com>
171919
171920        Notify embedder of lost contexts and allow overriding of WebGL support
171921        https://bugs.webkit.org/show_bug.cgi?id=101826
171922
171923        Reviewed by Adam Barth.
171924
171925        Add hooks notifying the embedder when OpenGL contexts are lost and
171926        allowing overriding of WebGL support on a per-frame basis.
171927
171928        No tests yet; don't know how to test this solely within WebKit.
171929        Currently developing tests in the Chromium port exercising the
171930        notifications end-to-end. Once those are in place, I'm prepared to
171931        investigate adding tests for all ports.
171932
171933        * html/canvas/WebGLRenderingContext.cpp:
171934        (WebCore):
171935        (WebCore::WebGLRenderingContext::create):
171936          Check whether embedder vetoes creation of new WebGL contexts.
171937        (WebCore::WebGLRenderingContext::loseContextImpl):
171938          Notify embedder that context was lost.
171939        (WebCore::WebGLRenderingContext::maybeRestoreContext):
171940          Check whether embedder vetoes restoration of existing WebGL contexts.
171941        * loader/FrameLoaderClient.h:
171942        (FrameLoaderClient):
171943        (WebCore::FrameLoaderClient::allowWebGL):
171944        (WebCore::FrameLoaderClient::didLoseWebGLContext):
171945          Hooks notifying embedder of lost contexts and asking permission to run WebGL.
171946
1719472012-11-13  Scott Violet  <sky@chromium.org>
171948
171949        [Chromium] Refactor theme font lookup into a factory
171950        https://bugs.webkit.org/show_bug.cgi?id=101949
171951
171952        Reviewed by Tony Chang.
171953
171954        This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
171955
171956        No new tests. Refactoring only.
171957
171958        * WebCore.gyp/WebCore.gyp:
171959        * WebCore.gypi:
171960        * rendering/RenderThemeChromiumFontProvider.cpp: Added.
171961        (WebCore):
171962        (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
171963        * rendering/RenderThemeChromiumFontProvider.h: Added.
171964        (WTF):
171965        (WebCore):
171966        (RenderThemeChromiumFontProvider): This is the font related methods.
171967        * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
171968        (WebCore):
171969        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
171970        (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
171971        * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
171972        (WebCore):
171973        (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
171974        (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
171975        (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
171976        (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
171977        (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
171978        * rendering/RenderThemeChromiumSkia.cpp:
171979        (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
171980        (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
171981        (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
171982        * rendering/RenderThemeChromiumSkia.h:
171983        (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
171984        * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
171985        (WebCore):
171986        * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
171987        (RenderThemeChromiumWin):
171988
1719892012-11-13  Alec Flett  <alecflett@chromium.org>
171990
171991        Add DOMRequestState to maintain world/ScriptExecutionContext state
171992        https://bugs.webkit.org/show_bug.cgi?id=102102
171993
171994        Reviewed by Adam Barth.
171995
171996        Introduce DOMRequestState, and convert IndexedDB over.
171997
171998        No new tests, this is an abstraction layer for existing code.
171999
172000        * Modules/indexeddb/IDBRequest.cpp:
172001        (WebCore::IDBRequest::IDBRequest):
172002        (WebCore::IDBRequest::onSuccess):
172003        (WebCore::IDBRequest::dispatchEvent):
172004        * Modules/indexeddb/IDBRequest.h:
172005        (IDBRequest):
172006        * WebCore.gypi:
172007        * bindings/v8/DOMRequestState.h: Added.
172008        (WebCore):
172009        (DOMRequestState):
172010        (WebCore::DOMRequestState::DOMRequestState):
172011        (Scope):
172012        (WebCore::DOMRequestState::Scope::Scope):
172013        (WebCore::DOMRequestState::scope):
172014
1720152012-11-13  Robert Sesek  <rsesek@chromium.org>
172016
172017        Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
172018        https://bugs.webkit.org/show_bug.cgi?id=101634
172019
172020        Reviewed by Adam Barth.
172021
172022        This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
172023        into RenderThemeMacShared.
172024
172025        No new tests, just refactoring.
172026
172027        * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
172028        * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
172029        * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
172030        * rendering/RenderThemeChromiumMac.h:
172031        * rendering/RenderThemeChromiumMac.mm:
172032        (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
172033        (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
172034        (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
172035        * rendering/RenderThemeMac.h:
172036        (RenderThemeMac):
172037        * rendering/RenderThemeMac.mm:
172038        (WebCore):
172039        (WebCore::RenderTheme::themeForPage):
172040        (WebCore::RenderThemeMac::create):
172041        (WebCore::RenderThemeMac::RenderThemeMac):
172042        (WebCore::RenderThemeMac::~RenderThemeMac):
172043        (WebCore::RenderThemeMac::documentViewFor):
172044        (WebCore::mediaControllerTheme):
172045        (WebCore::RenderThemeMac::paintMediaSliderTrack):
172046        (WebCore::RenderThemeMac::paintMediaRewindButton):
172047        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
172048        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
172049        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
172050        (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
172051        (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
172052        * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
172053        (WebCore):
172054        (RenderThemeMacShared):
172055        (WebCore::RenderThemeMacShared::supportsControlTints):
172056        (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
172057        (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
172058        (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
172059        (WebCore::RenderThemeMacShared::updateActiveState):
172060        * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
172061        (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
172062        (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
172063        (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
172064        (WebCore):
172065        (WebCore::RenderThemeMacShared::RenderThemeMacShared):
172066        (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
172067        (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
172068        (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
172069        (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
172070        (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
172071        (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
172072        (WebCore::RenderThemeMacShared::platformFocusRingColor):
172073        (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
172074        (WebCore::toFontWeight):
172075        (WebCore::RenderThemeMacShared::systemFont):
172076        (WebCore::convertNSColorToColor):
172077        (WebCore::menuBackgroundColor):
172078        (WebCore::RenderThemeMacShared::platformColorsDidChange):
172079        (WebCore::RenderThemeMacShared::systemColor):
172080        (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
172081        (WebCore::RenderThemeMacShared::isControlStyled):
172082        (WebCore::RenderThemeMacShared::adjustRepaintRect):
172083        (WebCore::RenderThemeMacShared::inflateRect):
172084        (WebCore::RenderThemeMacShared::convertToPaintingRect):
172085        (WebCore::RenderThemeMacShared::updateCheckedState):
172086        (WebCore::RenderThemeMacShared::updateEnabledState):
172087        (WebCore::RenderThemeMacShared::updateFocusedState):
172088        (WebCore::RenderThemeMacShared::updatePressedState):
172089        (WebCore::RenderThemeMacShared::controlSupportsTints):
172090        (WebCore::RenderThemeMacShared::controlSizeForFont):
172091        (WebCore::RenderThemeMacShared::setControlSize):
172092        (WebCore::RenderThemeMacShared::sizeForFont):
172093        (WebCore::RenderThemeMacShared::sizeForSystemFont):
172094        (WebCore::RenderThemeMacShared::setSizeFromFont):
172095        (WebCore::RenderThemeMacShared::setFontFromControlSize):
172096        (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
172097        (WebCore::RenderThemeMacShared::paintTextField):
172098        (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
172099        (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
172100        (WebCore::RenderThemeMacShared::paintTextArea):
172101        (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
172102        (WebCore::RenderThemeMacShared::popupButtonMargins):
172103        (WebCore::RenderThemeMacShared::popupButtonSizes):
172104        (WebCore::RenderThemeMacShared::popupButtonPadding):
172105        (WebCore::RenderThemeMacShared::paintMenuList):
172106        (WebCore::RenderThemeMacShared::meterSizeForBounds):
172107        (WebCore::RenderThemeMacShared::paintMeter):
172108        (WebCore::RenderThemeMacShared::supportsMeter):
172109        (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
172110        (WebCore::RenderThemeMacShared::levelIndicatorFor):
172111        (WebCore::RenderThemeMacShared::progressBarSizes):
172112        (WebCore::RenderThemeMacShared::progressBarMargins):
172113        (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
172114        (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
172115        (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
172116        (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
172117        (WebCore::RenderThemeMacShared::paintProgressBar):
172118        (WebCore::TopGradientInterpolate):
172119        (WebCore::BottomGradientInterpolate):
172120        (WebCore::MainGradientInterpolate):
172121        (WebCore::TrackGradientInterpolate):
172122        (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
172123        (WebCore::RenderThemeMacShared::paintMenuListButton):
172124        (WebCore::menuListButtonSizes):
172125        (WebCore::RenderThemeMacShared::adjustMenuListStyle):
172126        (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
172127        (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
172128        (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
172129        (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
172130        (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
172131        (WebCore::RenderThemeMacShared::setPopupButtonCellState):
172132        (WebCore::RenderThemeMacShared::menuListSizes):
172133        (WebCore::RenderThemeMacShared::minimumMenuListSize):
172134        (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
172135        (WebCore::RenderThemeMacShared::paintSliderTrack):
172136        (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
172137        (WebCore::RenderThemeMacShared::paintSliderThumb):
172138        (WebCore::RenderThemeMacShared::paintSearchField):
172139        (WebCore::RenderThemeMacShared::setSearchCellState):
172140        (WebCore::RenderThemeMacShared::searchFieldSizes):
172141        (WebCore::RenderThemeMacShared::setSearchFieldSize):
172142        (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
172143        (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
172144        (WebCore::RenderThemeMacShared::cancelButtonSizes):
172145        (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
172146        (WebCore::RenderThemeMacShared::resultsButtonSizes):
172147        (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
172148        (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
172149        (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
172150        (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
172151        (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
172152        (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
172153        (WebCore::RenderThemeMacShared::sliderTickSize):
172154        (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
172155        (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
172156        (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
172157        (WebCore::RenderThemeMacShared::popupButton):
172158        (WebCore::RenderThemeMacShared::search):
172159        (WebCore::RenderThemeMacShared::searchMenuTemplate):
172160        (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
172161        (WebCore::RenderThemeMacShared::sliderThumbVertical):
172162        (WebCore::RenderThemeMacShared::textField):
172163        (WebCore::RenderThemeMacShared::fileListNameForWidth):
172164        (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
172165
1721662012-11-13  Tab Atkins  <tabatkins@google.com>
172167
172168        CSS @charset parsing is too loose, doesn't match other browsers
172169        https://bugs.webkit.org/show_bug.cgi?id=101527
172170
172171        Reviewed by Alexey Proskuryakov.
172172
172173        Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
172174        IE and FF have changed to be strict about @charset parsing,
172175        as the CSS 2.1 spec requires.
172176        Since @charset use is very uncommon anyway,
172177        we should match the new behavior and the spec for platform consistency.
172178
172179        Test: fast/encoding/css-charset-evil/css-charset-evil.html
172180
172181        * loader/TextResourceDecoder.cpp:
172182        (WebCore::bytesEqual):
172183        (WebCore::TextResourceDecoder::checkForCSSCharset):
172184
1721852012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
172186
172187        [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
172188        https://bugs.webkit.org/show_bug.cgi?id=101569
172189
172190        Reviewed by Alexey Proskuryakov.
172191
172192        Replace unpaired surrogates with replacing character (U+FFFD) when
172193        encoding text messages and close reasons. This change is aimed at
172194        following the changes on the WebSocket API specification.
172195
172196        Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
172197
172198        * Modules/websockets/WebSocket.cpp:
172199        (WebCore::WebSocket::close):
172200        Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
172201        text message. Remove invalid utf-8 check.
172202        * Modules/websockets/WebSocketChannel.cpp:
172203        (WebCore::WebSocketChannel::send):
172204        Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
172205        close reason. Remove invalid utf-8 check.
172206
1722072012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
172208
172209        Make HTMLLegendElement.form behave according to specification
172210        https://bugs.webkit.org/show_bug.cgi?id=101044
172211
172212        Reviewed by Kent Tamura.
172213
172214        According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
172215        The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
172216        not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
172217        same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
172218
172219        This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
172220        not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
172221        return the same value as the parent fieldset's form attribute.
172222
172223        Test: fast/forms/legend/legend-form.html
172224
172225        * html/HTMLLegendElement.cpp:
172226        (WebCore):
172227        (WebCore::HTMLLegendElement::virtualForm):
172228        * html/HTMLLegendElement.h:
172229        (HTMLLegendElement):
172230
1722312012-11-13  Mark Lam  <mark.lam@apple.com>
172232
172233        Make an assertion in JSEventListener::jsFunction() more useful.
172234        https://bugs.webkit.org/show_bug.cgi?id=101985.
172235
172236        Reviewed by Geoffrey Garen.
172237
172238        The assertion was weakened in r134495. This strengthens it again.
172239
172240        No new tests.
172241
172242        * bindings/js/JSEventListener.h:
172243        (WebCore::JSEventListener::jsFunction):
172244
1722452012-11-13  Dean Jackson  <dino@apple.com>
172246
172247        Support list of tracks in caption media controls
172248        https://bugs.webkit.org/show_bug.cgi?id=101669
172249
172250        Reviewed by Eric Carlson.
172251
172252        Attempt four of commit. The first two times caused build failures on Chromium. The third time
172253        crashed the Windows test bot. It's also been rebased since r134488.
172254
172255        Add some new elements to the media control shadow DOM that display the list of available
172256        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
172257        where it is given a very basic design. At the moment only the list of available tracks
172258        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
172259
172260        No new tests - this doesn't expose any testable surface.
172261
172262        * css/mediaControls.css: Added default rules that hide the new elements.
172263        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
172264        * html/shadow/MediaControlElements.cpp:
172265        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
172266        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
172267        (WebCore::MediaControlClosedCaptionsContainerElement::create):
172268        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
172269        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
172270        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
172271        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
172272        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
172273        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
172274        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
172275        * html/shadow/MediaControlElements.h:
172276        (MediaControlElement):
172277        (MediaControlToggleClosedCaptionsButtonElement):
172278        (MediaControlClosedCaptionsContainerElement):
172279        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
172280        * html/shadow/MediaControlsApple.cpp:
172281        (WebCore::MediaControlsApple::MediaControlsApple):
172282        (WebCore::MediaControlsApple::create): New track container and list elements created.
172283        (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
172284        (WebCore::MediaControlsApple::hide):
172285        (WebCore::MediaControlsApple::makeTransparent):
172286        (WebCore::MediaControlsApple::reset):
172287        (WebCore::MediaControlsApple::reportedError):
172288        (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
172289        (WebCore):
172290        * html/shadow/MediaControlsApple.h:
172291        (MediaControlsApple):
172292        * html/shadow/MediaControlsChromium.cpp:
172293        (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
172294        * html/shadow/MediaControls.h:
172295        (MediaControls):
172296        * platform/Language.cpp:
172297        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
172298        * platform/Language.h:
172299        (WebCore):
172300        * rendering/RenderMediaControls.cpp:
172301        (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
172302        * rendering/RenderMediaControlsChromium.cpp:
172303        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
172304
1723052012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
172306
172307        Unreviewed, rolling out r134377.
172308        http://trac.webkit.org/changeset/134377
172309        https://bugs.webkit.org/show_bug.cgi?id=101133
172310
172311        Caused a mysterious Android Clang build failure, needs
172312        investigation before landing again.
172313
172314        * css/html.css:
172315        (input::-webkit-textfield-decoration-container):
172316        * html/TextFieldInputType.cpp:
172317        (WebCore::TextFieldInputType::attach):
172318
1723192012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
172320
172321        Unreviewed, rolling out r134482.
172322        http://trac.webkit.org/changeset/134482
172323        https://bugs.webkit.org/show_bug.cgi?id=102140
172324
172325        The patch causes fast/regions/moved-content-node-crash.html to
172326        crash in Debug mode due to ASSERTION. (Requested by abucur on
172327        #webkit).
172328
172329        * rendering/InlineFlowBox.cpp:
172330        (SameSizeAsInlineFlowBox):
172331        * rendering/InlineFlowBox.h:
172332        (WebCore::InlineFlowBox::InlineFlowBox):
172333        (InlineFlowBox):
172334        * rendering/RenderBlock.cpp:
172335        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
172336        * rendering/RenderBlockLineLayout.cpp:
172337        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
172338        (WebCore::RenderBlock::linkToEndLineIfNeeded):
172339        (WebCore::RenderBlock::determineStartPosition):
172340        * rendering/RootInlineBox.cpp:
172341        (WebCore::RootInlineBox::RootInlineBox):
172342        * rendering/RootInlineBox.h:
172343        (WebCore):
172344        (WebCore::RootInlineBox::paginationStrut):
172345        (WebCore::RootInlineBox::setPaginationStrut):
172346        (WebCore::RootInlineBox::isFirstAfterPageBreak):
172347        (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
172348        (WebCore::RootInlineBox::paginatedLineWidth):
172349        (WebCore::RootInlineBox::setPaginatedLineWidth):
172350        (RootInlineBox):
172351
1723522012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
172353
172354        Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
172355        https://bugs.webkit.org/show_bug.cgi?id=102108
172356
172357        Reviewed by Adam Barth.
172358
172359        No new tests. Fix clang build break.
172360
172361        * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
172362
1723632012-11-13  Chris Fleizach  <cfleizach@apple.com>
172364
172365        AX: MathML types need to be semantically identified in AX tree
172366        https://bugs.webkit.org/show_bug.cgi?id=101263
172367
172368        Reviewed by Beth Dakin.
172369
172370        Semantically identify various MathML elements within the AX tree. This will allow
172371        screen readers to identify math types so that equations can be output more accurately.
172372
172373        Test: platform/mac/accessibility/mathml-elements.html
172374
172375        * accessibility/AccessibilityObject.h:
172376        (AccessibilityObject):
172377        (WebCore::AccessibilityObject::isMathElement):
172378        (WebCore::AccessibilityObject::isMathFraction):
172379        (WebCore::AccessibilityObject::isMathFenced):
172380        (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
172381        (WebCore::AccessibilityObject::isMathRow):
172382        (WebCore::AccessibilityObject::isMathUnderOver):
172383        (WebCore::AccessibilityObject::isMathRoot):
172384        (WebCore::AccessibilityObject::isMathSquareRoot):
172385        (WebCore::AccessibilityObject::isMathText):
172386        (WebCore::AccessibilityObject::isMathNumber):
172387        (WebCore::AccessibilityObject::isMathOperator):
172388        (WebCore::AccessibilityObject::isMathFenceOperator):
172389        (WebCore::AccessibilityObject::isMathSeparatorOperator):
172390        (WebCore::AccessibilityObject::isMathIdentifier):
172391        (WebCore::AccessibilityObject::isMathTable):
172392        (WebCore::AccessibilityObject::isMathTableRow):
172393        (WebCore::AccessibilityObject::isMathTableCell):
172394        (WebCore::AccessibilityObject::mathRadicandObject):
172395        (WebCore::AccessibilityObject::mathRootIndexObject):
172396        (WebCore::AccessibilityObject::mathUnderObject):
172397        (WebCore::AccessibilityObject::mathOverObject):
172398        (WebCore::AccessibilityObject::mathNumeratorObject):
172399        (WebCore::AccessibilityObject::mathDenominatorObject):
172400        (WebCore::AccessibilityObject::mathBaseObject):
172401        (WebCore::AccessibilityObject::mathSubscriptObject):
172402        (WebCore::AccessibilityObject::mathSuperscriptObject):
172403        (WebCore::AccessibilityObject::mathFencedOpenString):
172404        (WebCore::AccessibilityObject::mathFencedCloseString):
172405        * accessibility/AccessibilityRenderObject.cpp:
172406        (WebCore::startOfContinuations):
172407            Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
172408        (WebCore::AccessibilityRenderObject::textUnderElement):
172409            Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
172410        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
172411            Handle ignored cases for math elements
172412        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
172413        (WebCore::AccessibilityRenderObject::isMathElement):
172414        (WebCore::AccessibilityRenderObject::isMathFraction):
172415        (WebCore::AccessibilityRenderObject::isMathFenced):
172416        (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
172417        (WebCore::AccessibilityRenderObject::isMathRow):
172418        (WebCore::AccessibilityRenderObject::isMathUnderOver):
172419        (WebCore::AccessibilityRenderObject::isMathSquareRoot):
172420        (WebCore::AccessibilityRenderObject::isMathRoot):
172421        (WebCore::AccessibilityRenderObject::isMathOperator):
172422        (WebCore::AccessibilityRenderObject::isMathFenceOperator):
172423        (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
172424        (WebCore::AccessibilityRenderObject::isMathText):
172425        (WebCore::AccessibilityRenderObject::isMathNumber):
172426        (WebCore::AccessibilityRenderObject::isMathIdentifier):
172427        (WebCore::AccessibilityRenderObject::isMathTable):
172428        (WebCore::AccessibilityRenderObject::isMathTableRow):
172429        (WebCore::AccessibilityRenderObject::isMathTableCell):
172430        (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
172431            Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
172432        (WebCore::AccessibilityRenderObject::mathRadicandObject):
172433        (WebCore::AccessibilityRenderObject::mathRootIndexObject):
172434        (WebCore::AccessibilityRenderObject::mathNumeratorObject):
172435        (WebCore::AccessibilityRenderObject::mathDenominatorObject):
172436        (WebCore::AccessibilityRenderObject::mathUnderObject):
172437        (WebCore::AccessibilityRenderObject::mathOverObject):
172438        (WebCore::AccessibilityRenderObject::mathBaseObject):
172439        (WebCore::AccessibilityRenderObject::mathSubscriptObject):
172440        (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
172441        (WebCore::AccessibilityRenderObject::mathFencedOpenString):
172442        (WebCore::AccessibilityRenderObject::mathFencedCloseString):
172443        * accessibility/AccessibilityRenderObject.h:
172444        (AccessibilityRenderObject):
172445        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
172446        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
172447        (createAccessibilityRoleMap):
172448        (-[WebAccessibilityObjectWrapper subrole]):
172449        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
172450        * rendering/mathml/RenderMathMLBlock.cpp:
172451        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
172452        * rendering/mathml/RenderMathMLBlock.h:
172453        (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
172454        (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
172455        (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
172456        (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
172457        (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
172458        (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
172459        (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
172460        (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
172461            Add ability to identify anonymous render blocks as items that AX should ignore.
172462        (RenderMathMLBlock):
172463        * rendering/mathml/RenderMathMLFenced.cpp:
172464        (WebCore::RenderMathMLFenced::createMathMLOperator):
172465            Identify which kind of math operator is being created on the fly (Fence or Separator)
172466        (WebCore::RenderMathMLFenced::makeFences):
172467        (WebCore::RenderMathMLFenced::addChild):
172468        * rendering/mathml/RenderMathMLFenced.h:
172469        (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
172470        (RenderMathMLFenced):
172471        * rendering/mathml/RenderMathMLFraction.h:
172472        (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
172473        * rendering/mathml/RenderMathMLOperator.cpp:
172474        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
172475        (WebCore::RenderMathMLOperator::updateFromElement):
172476        (WebCore::RenderMathMLOperator::createGlyph):
172477             Mark anonymous render blocks as AX ignored.
172478        * rendering/mathml/RenderMathMLOperator.h:
172479        (WebCore::RenderMathMLOperator::setOperatorType):
172480        (WebCore::RenderMathMLOperator::operatorType):
172481        (RenderMathMLOperator):
172482        * rendering/mathml/RenderMathMLRoot.h:
172483        (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
172484        * rendering/mathml/RenderMathMLSquareRoot.h:
172485        (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
172486        * rendering/mathml/RenderMathMLSubSup.h:
172487        (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
172488        * rendering/mathml/RenderMathMLUnderOver.h:
172489        (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
172490        
1724912012-11-13  Mark Lam  <mark.lam@apple.com>
172492
172493        JSEventListener should not access m_jsFunction when its wrapper is gone.
172494        https://bugs.webkit.org/show_bug.cgi?id=101985.
172495
172496        Reviewed by Geoffrey Garen.
172497
172498        Added a few null checks for m_wrapper before we do anything with m_jsFunction.
172499
172500        No new tests.
172501
172502        * bindings/js/JSEventListener.cpp:
172503        (WebCore::JSEventListener::initializeJSFunction):
172504        - Removed a now invalid assertion. m_wrapper is expected to have a
172505          valid non-zero value when jsFunction is valid. However, in the case
172506          of JSLazyEventListener (which extends JSEventListener), m_wrapper is
172507          initially 0 when m_jsFunction has not been realized yet. When
172508          JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
172509          it will set m_wrapper to an appropriate wrapper object.
172510
172511          For this reason, JSEventListener::jsFunction() cannot do the null
172512          check on m_wrapper until after the call to initializeJSFunction.
172513
172514          This, in turns, means that in the case of the non-lazy
172515          JSEventListener, initializeJSFunction() will also be called, and
172516          if the GC has collected the m_wrapper but the JSEventListener has
172517          not been removed yet, it is possible to see a null m_wrapper while
172518          m_jsFunction contains a non-zero stale value.
172519
172520          Hence, this assertion of (m_wrapper || !m_jsFunction) in
172521          JSEventListener::initializeJSFunction() is not always true and
172522          should be removed.
172523
172524        (WebCore::JSEventListener::visitJSFunction):
172525        (WebCore::JSEventListener::operator==):
172526        * bindings/js/JSEventListener.h:
172527        (WebCore::JSEventListener::jsFunction):
172528
1725292012-11-13  Adam Barth  <abarth@webkit.org>
172530
172531        [V8] instantiateV8Object should encapulate the tricky creationContext logic
172532        https://bugs.webkit.org/show_bug.cgi?id=102117
172533
172534        Reviewed by Eric Seidel.
172535
172536        The logic around creationContext is tricky. Rather than putting the
172537        logic in the code generator, we can centralize the logic in
172538        instantiateV8Object.
172539
172540        This patch shouldn't have any behavior change.
172541
172542        * bindings/scripts/CodeGeneratorV8.pm:
172543        (GenerateToV8Converters):
172544        * bindings/v8/V8DOMWrapper.cpp:
172545        (V8WrapperInstantiationScope):
172546        (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
172547        (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
172548        (WebCore::V8WrapperInstantiationScope::context):
172549        (WebCore):
172550        (WebCore::V8DOMWrapper::instantiateV8Object):
172551        * bindings/v8/V8DOMWrapper.h:
172552        (V8DOMWrapper):
172553
1725542012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
172555
172556        Clean up the inheritance tree under the MediaControls Class.
172557        https://bugs.webkit.org/show_bug.cgi?id=88871
172558
172559        Reviewed by Eric Carlson.
172560
172561        This patch removes code duplication between the Chromium and Safari
172562        media controls shadow DOMs.
172563        This is achieved by pulling common functions that are identical (or
172564        almost identical) between the different platforms into the base class.
172565        The derived classes are renamed based on their platform:
172566        - MediaControlRootElement                to MediaControlsApple.
172567        - MediaControlRootElementChromium        to MediaControlsChromium.
172568        - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
172569        MediaControls is now no longer an abstract base class, but its "create"
172570        function is only implemented in the port-specific header file, so it's
172571        on purpose incomplete in the MediaControls.cpp file.
172572
172573        No new tests because this is refactoring work only.
172574
172575        * CMakeLists.txt:
172576          Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
172577        * GNUmakefile.list.am:
172578          Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
172579        * Target.pri:
172580          Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
172581        * WebCore.gypi:
172582          Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
172583        * WebCore.order:
172584          Rename MediaControlRootElement symbols to MediaControlsApple symbols.
172585        * WebCore.vcproj/WebCore.vcproj:
172586          Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
172587        * WebCore.xcodeproj/project.pbxproj:
172588          Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
172589        * html/shadow/MediaControlElements.cpp:
172590        (WebCore::MediaControlTimelineElement::defaultEventHandler):
172591          Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
172592          Rename updateTimeDisplay() to updateCurrentTimeDisplay().
172593        * html/shadow/MediaControls.cpp:
172594        (WebCore::MediaControls::MediaControls):
172595          Added initialization for media elements that all platform controls share.
172596        (WebCore):
172597          Removed include files that are already included in header file.
172598        (WebCore::MediaControls::setMediaController):
172599          Added controller assignment for media elements that all platform controls share.
172600        (WebCore::MediaControls::reset):
172601          Added resets for media elements that all platform controls share.
172602        (WebCore::MediaControls::reportedError):
172603          Added error handling for media elements that all platform controls share.
172604        (WebCore::MediaControls::loadedMetadata):
172605          Added default action for loadedMetadata event.
172606        (WebCore::MediaControls::show):
172607        (WebCore::MediaControls::hide):
172608        (WebCore::MediaControls::makeOpaque):
172609        (WebCore::MediaControls::makeTransparent):
172610        (WebCore::MediaControls::shouldHideControls):
172611        (WebCore::MediaControls::bufferingProgressed):
172612        (WebCore::MediaControls::playbackStarted):
172613        (WebCore::MediaControls::playbackProgressed):
172614        (WebCore::MediaControls::playbackStopped):
172615        (WebCore::MediaControls::updateCurrentTimeDisplay):
172616        (WebCore::MediaControls::showVolumeSlider):
172617        (WebCore::MediaControls::changedMute):
172618        (WebCore::MediaControls::changedVolume):
172619        (WebCore::MediaControls::changedClosedCaptionsVisibility):
172620        (WebCore::MediaControls::enteredFullscreen):
172621        (WebCore::MediaControls::exitedFullscreen):
172622        (WebCore::MediaControls::defaultEventHandler):
172623        (WebCore::MediaControls::hideFullscreenControlsTimerFired):
172624        (WebCore::MediaControls::startHideFullscreenControlsTimer):
172625        (WebCore::MediaControls::stopHideFullscreenControlsTimer):
172626        (WebCore::MediaControls::shadowPseudoId):
172627        (WebCore::MediaControls::containsRelatedTarget):
172628        (WebCore::MediaControls::createTextTrackDisplay):
172629        (WebCore::MediaControls::showTextTrackDisplay):
172630        (WebCore::MediaControls::hideTextTrackDisplay):
172631        (WebCore::MediaControls::updateTextTrackDisplay):
172632          Added default actions for all these media controls member functions.
172633        * html/shadow/MediaControls.h:
172634        (WebCore):
172635          Added include files and forward class declarations that all media controls share.
172636        (MediaControls):
172637          Make all pure virtual functions that have default implementations just virtual.
172638        (WebCore::MediaControls::updateStatusDisplay):
172639          Add an empty virtual updateStatusDisplay function which is used by media elements.
172640        * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
172641          Reduced Apple-specific media control functions by relying on default implementations in the base class.
172642        * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
172643          Reduced Apple-specific media control elements by relying on some elements in the base class.
172644        * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
172645          Reduced Chromium-specific media control functions by relying on default implementations in the base class.
172646        * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
172647          Reduced Chromium-specific media control functions by relying on default implementations in the base class.
172648        * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
172649          Renamed class name and base class name.
172650        * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
172651          Renamed class name and base class name.
172652        * rendering/RenderTheme.h:
172653        (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
172654          Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
172655
1726562012-11-13  Benjamin Poulain  <benjamin@webkit.org>
172657
172658        CSSParser::setStyleSheet() should be inline
172659        https://bugs.webkit.org/show_bug.cgi?id=101829
172660
172661        Reviewed by Andreas Kling.
172662
172663        * css/CSSParser.cpp:
172664        * css/CSSParser.h:
172665        (WebCore::CSSParser::setStyleSheet):
172666        CSSParser::setStyleSheet() just assign a pointer, it does not even
172667        change a ref-count. The function should probably be in the header.
172668
1726692012-11-13  Andrei Bucur  <abucur@adobe.com>
172670
172671        [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
172672        https://bugs.webkit.org/show_bug.cgi?id=101332
172673
172674        Reviewed by David Hyatt.
172675
172676        Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
172677        the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
172678        including a new member, the containing Region for the line.
172679        The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
172680        styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
172681        A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
172682        the task of updating the containing Region to the block.
172683
172684        Tests: No new tests because there is no functional change.
172685
172686        * rendering/InlineFlowBox.cpp:
172687        (SameSizeAsInlineFlowBox):
172688        * rendering/InlineFlowBox.h:
172689        (WebCore::InlineFlowBox::InlineFlowBox):
172690        (InlineFlowBox):
172691        * rendering/RenderBlock.cpp:
172692        (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
172693        * rendering/RenderBlockLineLayout.cpp:
172694        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
172695        (WebCore::RenderBlock::linkToEndLineIfNeeded):
172696        (WebCore::RenderBlock::determineStartPosition):
172697        * rendering/RootInlineBox.cpp:
172698        (WebCore::RootInlineBox::RootInlineBox):
172699        (WebCore::RootInlineBox::setContainingRegion):
172700        (WebCore):
172701        * rendering/RootInlineBox.h:
172702        (WebCore):
172703        (WebCore::RootInlineBox::paginationStrut):
172704        (WebCore::RootInlineBox::setPaginationStrut):
172705        (WebCore::RootInlineBox::isFirstAfterPageBreak):
172706        (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
172707        (WebCore::RootInlineBox::paginatedLineWidth):
172708        (WebCore::RootInlineBox::setPaginatedLineWidth):
172709        (RootInlineBox):
172710        (WebCore::RootInlineBox::containingRegion):
172711        (WebCore::RootInlineBox::ensureLineFragmentationData):
172712        (LineFragmentationData):
172713        (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
172714
1727152012-11-13  Milian Wolff  <milian.wolff@kdab.com>
172716
172717        [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
172718        https://bugs.webkit.org/show_bug.cgi?id=98038
172719
172720        Reviewed by Simon Hausmann.
172721
172722        Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
172723
172724        * platform/graphics/OpenGLShims.cpp:
172725        (WebCore):
172726
1727272012-11-13  Chris Fleizach  <cfleizach@apple.com>
172728
172729        WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
172730        https://bugs.webkit.org/show_bug.cgi?id=101616
172731
172732        Reviewed by Beth Dakin.
172733
172734        If the rowheader role is exposed because the element is not within a table, the mac platform
172735        should map that to a generic group.
172736
172737        Test: platform/mac/accessibility/rowheader-outside-table-role.html
172738
172739        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
172740        (createAccessibilityRoleMap):
172741
1727422012-11-13  Stephen White  <senorblanco@chromium.org>
172743
172744        [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
172745        https://bugs.webkit.org/show_bug.cgi?id=101952
172746
172747        Reviewed by James Robinson.
172748
172749        With these changes, all of the css3/filters tests pass when the
172750        if-test in GraphicsLayerChromium::setFilters() is forced true (for
172751        now, it remains true only if there's a reference filter in the chain).
172752
172753        Covered by the css3/filters tests (when the switch is thrown in
172754        GraphicsLayerChromium::setFilters()).
172755
172756        * WebCore.gypi:
172757        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
172758        Drop to software rendering if there's a custom filter in the chain.
172759        This is the same as the WebFilterOperations path is doing.
172760        * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
172761        * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
172762        New implementation of drop-shadow filter; equivalent to
172763        the path in cc/render_surface_filters.cc.
172764        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
172765        Fix the sepia and grayscale filters (value was inverted).
172766
1727672012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
172768
172769        Unreviewed, rolling out r134442.
172770        http://trac.webkit.org/changeset/134442
172771        https://bugs.webkit.org/show_bug.cgi?id=102111
172772
172773        Does not compile on apple-mac (Requested by abarth on
172774        #webkit).
172775
172776        * CMakeLists.txt:
172777        * GNUmakefile.list.am:
172778        * Target.pri:
172779        * WebCore.gypi:
172780        * WebCore.vcproj/WebCore.vcproj:
172781        * WebCore.xcodeproj/project.pbxproj:
172782        * css/CSSCursorImageValue.cpp:
172783        (WebCore::CSSCursorImageValue::cachedImage):
172784        * css/CSSFontFaceSrcValue.cpp:
172785        (WebCore::CSSFontFaceSrcValue::cachedFont):
172786        * css/CSSImageSetValue.cpp:
172787        (WebCore::CSSImageSetValue::cachedImageSet):
172788        * css/CSSImageValue.cpp:
172789        (WebCore::CSSImageValue::cachedImage):
172790        * css/CSSImageValue.h:
172791        (WebCore):
172792        (CSSImageValue):
172793        * css/StyleResolver.cpp:
172794        (WebCore::StyleResolver::loadPendingImage):
172795        * css/StyleRuleImport.cpp:
172796        (WebCore::StyleRuleImport::requestStyleSheet):
172797        * css/WebKitCSSSVGDocumentValue.cpp:
172798        (WebCore::WebKitCSSSVGDocumentValue::load):
172799        * css/WebKitCSSShaderValue.cpp:
172800        (WebCore::WebKitCSSShaderValue::cachedShader):
172801        * dom/ScriptElement.cpp:
172802        (WebCore::ScriptElement::requestScript):
172803        * html/HTMLLinkElement.cpp:
172804        (WebCore::HTMLLinkElement::process):
172805        * html/parser/CSSPreloadScanner.cpp:
172806        (WebCore::CSSPreloadScanner::emitRule):
172807        * html/parser/CSSPreloadScanner.h:
172808        (CSSPreloadScanner):
172809        * html/parser/HTMLPreloadScanner.cpp:
172810        (WebCore::PreloadTask::preload):
172811        * loader/ImageLoader.cpp:
172812        (WebCore::ImageLoader::updateFromElement):
172813        * loader/cache/CachedResourceLoader.cpp:
172814        (WebCore::CachedResourceLoader::requestImage):
172815        (WebCore::CachedResourceLoader::requestResource):
172816        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
172817        (WebCore):
172818        (WebCore::CachedResourceLoader::preload):
172819        * loader/cache/CachedResourceLoader.h:
172820        (WebCore):
172821        (CachedResourceLoader):
172822        * loader/cache/CachedResourceRequest.cpp:
172823        (WebCore::CachedResourceRequest::CachedResourceRequest):
172824        * loader/cache/CachedResourceRequest.h:
172825        (CachedResourceRequest):
172826        (WebCore::CachedResourceRequest::defer):
172827        (WebCore::CachedResourceRequest::setDefer):
172828        * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
172829        * loader/cache/CachedResourceRequestInitiators.h: Removed.
172830        * loader/icon/IconLoader.cpp:
172831        (WebCore::IconLoader::startLoading):
172832        * platform/ThreadGlobalData.cpp:
172833        (WebCore::ThreadGlobalData::ThreadGlobalData):
172834        * platform/ThreadGlobalData.h:
172835        (ThreadGlobalData):
172836        * svg/SVGFEImageElement.cpp:
172837        (WebCore::SVGFEImageElement::requestImageResource):
172838        * svg/SVGFontFaceUriElement.cpp:
172839        (WebCore::SVGFontFaceUriElement::loadFont):
172840        * svg/SVGUseElement.cpp:
172841        (WebCore::SVGUseElement::svgAttributeChanged):
172842
1728432012-11-13  Chris Fleizach  <cfleizach@apple.com>
172844
172845        AX: file upload input text value is not exposed through accessibility
172846        https://bugs.webkit.org/show_bug.cgi?id=100583
172847
172848        Reviewed by Beth Dakin.
172849
172850        This is a hard problem to solve on the Mac because there are three pieces of information
172851             1) The type of button 2) The text on the button 3) The text for the value.
172852        I think the best compromise is to label this as a file upload button type in the role description, 
172853        and then expose the file path text as the AXTitle. 
172854        This will give the more relevant information and should be clear what is happening.
172855
172856        Test: platform/mac/accessibility/file-upload-button-subrole.html
172857
172858        * English.lproj/Localizable.strings:
172859        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
172860        (-[WebAccessibilityObjectWrapper subrole]):
172861        (-[WebAccessibilityObjectWrapper roleDescription]):
172862        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
172863        * platform/LocalizedStrings.cpp:
172864        (WebCore::AXFileUploadButtonText):
172865        * platform/LocalizedStrings.h:
172866
1728672012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
172868
172869        Unreviewed, rolling out r133944.
172870        http://trac.webkit.org/changeset/133944
172871        https://bugs.webkit.org/show_bug.cgi?id=102118
172872
172873        Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
172874        #webkit).
172875
172876        * bindings/scripts/CodeGeneratorV8.pm:
172877        (GenerateFunctionCallback):
172878        (GenerateParametersCheck):
172879        (GenerateSingleConstructorCallback):
172880        (GenerateNamedConstructorCallback):
172881        (TypeCanFailConversion):
172882        * dom/Element.cpp:
172883        (WebCore::Element::setAttributeNode):
172884        (WebCore::Element::removeAttributeNode):
172885        * dom/Element.idl:
172886
1728872012-11-13  Adam Barth  <abarth@webkit.org>
172888
172889        Unreviewed.
172890
172891        Update run-bindings-tests results.
172892
172893        * bindings/scripts/test/V8/V8Float64Array.cpp:
172894        (WebCore::V8Float64Array::dispatchWrapCustom):
172895        (WebCore::V8Float64Array::wrapSlow):
172896        * bindings/scripts/test/V8/V8Float64Array.h:
172897        (WebCore::V8Float64Array::toNative):
172898        (V8Float64Array):
172899        (WebCore):
172900        (WebCore::dispatchWrap):
172901        (WebCore::toV8Object):
172902        (WebCore::toV8):
172903        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
172904        (WebCore::V8TestActiveDOMObject::wrapSlow):
172905        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
172906        (WebCore::V8TestActiveDOMObject::toNative):
172907        (V8TestActiveDOMObject):
172908        (WebCore):
172909        (WebCore::dispatchWrap):
172910        (WebCore::toV8Object):
172911        (WebCore::toV8):
172912        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
172913        (WebCore::V8TestCustomNamedGetter::wrapSlow):
172914        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
172915        (WebCore::V8TestCustomNamedGetter::toNative):
172916        (V8TestCustomNamedGetter):
172917        (WebCore):
172918        (WebCore::dispatchWrap):
172919        (WebCore::toV8Object):
172920        (WebCore::toV8):
172921        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
172922        (WebCore::V8TestEventConstructor::wrapSlow):
172923        * bindings/scripts/test/V8/V8TestEventConstructor.h:
172924        (WebCore::V8TestEventConstructor::toNative):
172925        (V8TestEventConstructor):
172926        (WebCore):
172927        (WebCore::dispatchWrap):
172928        (WebCore::toV8Object):
172929        (WebCore::toV8):
172930        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
172931        (WebCore::V8TestEventTarget::wrapSlow):
172932        * bindings/scripts/test/V8/V8TestEventTarget.h:
172933        (WebCore::V8TestEventTarget::toNative):
172934        (V8TestEventTarget):
172935        (WebCore):
172936        (WebCore::dispatchWrap):
172937        (WebCore::toV8Object):
172938        (WebCore::toV8):
172939        * bindings/scripts/test/V8/V8TestException.cpp:
172940        (WebCore::V8TestException::wrapSlow):
172941        * bindings/scripts/test/V8/V8TestException.h:
172942        (WebCore::V8TestException::toNative):
172943        (V8TestException):
172944        (WebCore):
172945        (WebCore::dispatchWrap):
172946        (WebCore::toV8Object):
172947        (WebCore::toV8):
172948        * bindings/scripts/test/V8/V8TestInterface.cpp:
172949        (WebCore::V8TestInterface::wrapSlow):
172950        * bindings/scripts/test/V8/V8TestInterface.h:
172951        (WebCore::V8TestInterface::toNative):
172952        (V8TestInterface):
172953        (WebCore):
172954        (WebCore::dispatchWrap):
172955        (WebCore::toV8Object):
172956        (WebCore::toV8):
172957        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
172958        (WebCore::V8TestMediaQueryListListener::wrapSlow):
172959        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
172960        (WebCore::V8TestMediaQueryListListener::toNative):
172961        (V8TestMediaQueryListListener):
172962        (WebCore):
172963        (WebCore::dispatchWrap):
172964        (WebCore::toV8Object):
172965        (WebCore::toV8):
172966        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
172967        (WebCore::V8TestNamedConstructor::wrapSlow):
172968        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
172969        (WebCore::V8TestNamedConstructor::toNative):
172970        (V8TestNamedConstructor):
172971        (WebCore):
172972        (WebCore::dispatchWrap):
172973        (WebCore::toV8Object):
172974        (WebCore::toV8):
172975        * bindings/scripts/test/V8/V8TestNode.cpp:
172976        (WebCore::V8TestNode::wrapSlow):
172977        * bindings/scripts/test/V8/V8TestNode.h:
172978        (WebCore::V8TestNode::toNative):
172979        (V8TestNode):
172980        (WebCore):
172981        (WebCore::dispatchWrap):
172982        (WebCore::toV8Object):
172983        (WebCore::toV8):
172984        (WebCore::toV8Fast):
172985        * bindings/scripts/test/V8/V8TestObj.cpp:
172986        (WebCore::V8TestObj::wrapSlow):
172987        * bindings/scripts/test/V8/V8TestObj.h:
172988        (WebCore::V8TestObj::toNative):
172989        (V8TestObj):
172990        (WebCore):
172991        (WebCore::dispatchWrap):
172992        (WebCore::toV8Object):
172993        (WebCore::toV8):
172994        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
172995        (WebCore::V8TestOverloadedConstructors::wrapSlow):
172996        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
172997        (WebCore::V8TestOverloadedConstructors::toNative):
172998        (V8TestOverloadedConstructors):
172999        (WebCore):
173000        (WebCore::dispatchWrap):
173001        (WebCore::toV8Object):
173002        (WebCore::toV8):
173003        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
173004        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
173005        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
173006        (WebCore::V8TestSerializedScriptValueInterface::toNative):
173007        (V8TestSerializedScriptValueInterface):
173008        (WebCore):
173009        (WebCore::dispatchWrap):
173010        (WebCore::toV8Object):
173011        (WebCore::toV8):
173012
1730132012-11-13  Adam Barth  <abarth@webkit.org>
173014
173015        Unreviewed.
173016
173017        Speculative build fix for Qt.
173018
173019        * dom/make_names.pl:
173020        (printWrapperFactoryCppFile):
173021
1730222012-11-13  Sami Kyostila  <skyostil@chromium.org>
173023
173024        Allow painting outside overflow clip in accelerated scrolling layers
173025        https://bugs.webkit.org/show_bug.cgi?id=100524
173026
173027        Reviewed by Simon Fraser.
173028
173029        In preparation for avoiding repaints when scrolling child layers, make it
173030        possible to paint outside the overflow clip.
173031
173032        Test: compositing/overflow/updating-scrolling-content.html
173033
173034        * rendering/LayoutState.h:
173035        (LayoutState):
173036        * rendering/RenderBlock.cpp:
173037        (WebCore::RenderBlock::paint):
173038        * rendering/RenderBox.cpp:
173039        (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
173040        * rendering/RenderLayer.cpp:
173041        (WebCore::RenderLayer::repaintBlockSelectionGaps):
173042
1730432012-11-13  Patrick Gansterer  <paroga@webkit.org>
173044
173045        Port SimpleFontDataWin.cpp to WinCE
173046        https://bugs.webkit.org/show_bug.cgi?id=97889
173047
173048        Reviewed by Brent Fulgham.
173049
173050        Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
173051        Also cleaned up the include headers.
173052
173053        * platform/graphics/win/SimpleFontDataWin.cpp:
173054        (WebCore::SimpleFontData::initGDIFont):
173055        (WebCore::SimpleFontData::platformDestroy):
173056        (WebCore::SimpleFontData::boundsForGDIGlyph):
173057        (WebCore):
173058        (WebCore::SimpleFontData::widthForGDIGlyph):
173059
1730602012-11-13  Pavel Feldman  <pfeldman@chromium.org>
173061
173062        Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
173063
173064        Not reviewed: moved css file in gypi.
173065
173066        * WebCore.gypi:
173067
1730682012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
173069
173070        Unreviewed, rolling out r134434.
173071        http://trac.webkit.org/changeset/134434
173072        https://bugs.webkit.org/show_bug.cgi?id=102072
173073
173074        The test that was added asserts in loader.
173075
173076        * loader/FrameLoader.cpp:
173077        (WebCore::createWindow):
173078        * page/DOMWindow.cpp:
173079        (WebCore):
173080        (WebCore::DOMWindow::adjustWindowRect):
173081        (WebCore::DOMWindow::moveBy):
173082        (WebCore::DOMWindow::moveTo):
173083        (WebCore::DOMWindow::resizeBy):
173084        (WebCore::DOMWindow::resizeTo):
173085        (WebCore::DOMWindow::open):
173086        (WebCore::DOMWindow::showModalDialog):
173087        * page/DOMWindow.h:
173088        (DOMWindow):
173089
1730902012-11-13  Dan Carney  <dcarney@google.com>
173091
173092        [V8] More efficient wrapper dispatch
173093        https://bugs.webkit.org/show_bug.cgi?id=102082
173094
173095        Reviewed by Adam Barth.
173096
173097        Dispatching a call to V8Whatever::wrap involved a chain
173098        of calls, each of which checked its wrapper cache.
173099        This refactor gives calls only 2 choices of functions to call:
173100        toV8 and toV8Object instead of wrap. wrap has been renamed to
173101        dispatchWrap and no longer contains cache checks.
173102        Additionally, classes which require a custom toV8 function
173103        have had all wrapping and caching calls removed, as they could
173104        not have been accessed.
173105
173106        No new tests. Sufficiently covered.
173107
173108        * Modules/indexeddb/IDBAny.idl:
173109        * Modules/indexeddb/IDBKey.idl:
173110        * WebCore.gypi:
173111        * bindings/scripts/CodeGeneratorV8.pm:
173112        (GenerateHeader):
173113        (GenerateNormalAttrGetter):
173114        (GenerateImplementation):
173115        (GenerateToV8Converters):
173116        * bindings/scripts/IDLAttributes.txt:
173117        * bindings/v8/SerializedScriptValue.cpp:
173118        * bindings/v8/custom/V8BlobCustom.cpp:
173119        (WebCore::V8Blob::dispatchWrapCustom):
173120        * bindings/v8/custom/V8CSSRuleCustom.cpp:
173121        (WebCore::V8CSSRule::dispatchWrapCustom):
173122        * bindings/v8/custom/V8CSSValueCustom.cpp:
173123        (WebCore::V8CSSValue::dispatchWrapCustom):
173124        * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
173125        (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
173126        * bindings/v8/custom/V8DataViewCustom.cpp:
173127        (WebCore):
173128        (WebCore::V8DataView::dispatchWrapCustom):
173129        * bindings/v8/custom/V8DocumentCustom.cpp:
173130        (WebCore::V8Document::dispatchWrapCustom):
173131        * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
173132        (WebCore):
173133        (WebCore::V8Element::dispatchWrapCustom):
173134        * bindings/v8/custom/V8EntryCustom.cpp:
173135        (WebCore::V8Entry::dispatchWrapCustom):
173136        * bindings/v8/custom/V8EntrySyncCustom.cpp:
173137        (WebCore::V8EntrySync::dispatchWrapCustom):
173138        * bindings/v8/custom/V8EventCustom.cpp:
173139        (WebCore):
173140        (WebCore::V8Event::dispatchWrapCustom):
173141        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
173142        (WebCore::V8HTMLCollection::dispatchWrapCustom):
173143        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
173144        (WebCore::V8HTMLDocument::dispatchWrapCustom):
173145        * bindings/v8/custom/V8HTMLElementCustom.cpp:
173146        (WebCore::V8HTMLElement::dispatchWrapCustom):
173147        * bindings/v8/custom/V8ImageDataCustom.cpp:
173148        (WebCore::V8ImageData::dispatchWrapCustom):
173149        * bindings/v8/custom/V8NodeCustom.cpp:
173150        (WebCore::V8Node::dispatchWrapCustom):
173151        * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
173152        (WebCore::V8PerformanceEntry::dispatchWrapCustom):
173153        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
173154        (WebCore::V8SVGDocument::dispatchWrapCustom):
173155        * bindings/v8/custom/V8SVGElementCustom.cpp:
173156        (WebCore::V8SVGElement::dispatchWrapCustom):
173157        * bindings/v8/custom/V8SVGPathSegCustom.cpp:
173158        (WebCore::V8SVGPathSeg::dispatchWrapCustom):
173159        * bindings/v8/custom/V8StyleSheetCustom.cpp:
173160        (WebCore::V8StyleSheet::dispatchWrapCustom):
173161        * dom/Element.idl:
173162        * dom/make_names.pl:
173163        (printWrapperFunctions):
173164        (printWrapperFactoryCppFile):
173165        (printWrapperFactoryHeaderFile):
173166        * html/MicroDataItemValue.idl:
173167        * inspector/ScriptProfile.idl:
173168        * inspector/ScriptProfileNode.idl:
173169        * page/DOMWindow.idl:
173170        * workers/WorkerContext.idl:
173171
1731722012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
173173
173174        Unreviewed, rolling out r134367.
173175        http://trac.webkit.org/changeset/134367
173176        https://bugs.webkit.org/show_bug.cgi?id=100738
173177
173178        Speculative rollout, could have cause Dromaeo setAttribute
173179        perf regression.
173180
173181        * dom/Element.cpp:
173182        (WebCore::Element::attributeChanged):
173183        (WebCore::checkNeedsStyleInvalidationForClassChange):
173184        (WebCore::Element::classAttributeChanged):
173185
1731862012-11-13  Marja Hölttä  <marja@chromium.org>
173187
173188        Add initiator to CachedResourceRequest.
173189        https://bugs.webkit.org/show_bug.cgi?id=101935
173190
173191        Reviewed by Adam Barth.
173192
173193        Motivation: Chromium needs to know which elements request a
173194        resource (such as an image or a script) (bug 92761). In addition,
173195        for exposing resource timing information (bug 84883) we need to
173196        store the initiator, and this is the first step towards it.
173197
173198        No new tests: No visible change in behavior.
173199
173200        * CMakeLists.txt:
173201        * GNUmakefile.list.am:
173202        * Target.pri:
173203        * WebCore.gypi:
173204        * WebCore.vcproj/WebCore.vcproj:
173205        * WebCore.xcodeproj/project.pbxproj:
173206        * css/CSSCrossfadeValue.cpp:
173207        (WebCore::cachedImageForCSSValue):
173208        * css/CSSCursorImageValue.cpp:
173209        (WebCore::CSSCursorImageValue::cachedImage):
173210        * css/CSSFontFaceSrcValue.cpp:
173211        (WebCore::CSSFontFaceSrcValue::cachedFont):
173212        * css/CSSImageSetValue.cpp:
173213        (WebCore::CSSImageSetValue::cachedImageSet):
173214        * css/CSSImageValue.cpp:
173215        (WebCore::CSSImageValue::cachedImage):
173216        * css/CSSImageValue.h:
173217        (WebCore):
173218        (CSSImageValue):
173219        * css/StyleResolver.cpp:
173220        (WebCore::StyleResolver::loadPendingImage):
173221        * css/StyleRuleImport.cpp:
173222        (WebCore::StyleRuleImport::requestStyleSheet):
173223        * css/WebKitCSSSVGDocumentValue.cpp:
173224        (WebCore::WebKitCSSSVGDocumentValue::load):
173225        * css/WebKitCSSShaderValue.cpp:
173226        (WebCore::WebKitCSSShaderValue::cachedShader):
173227        * dom/ScriptElement.cpp:
173228        (WebCore::ScriptElement::requestScript):
173229        * html/HTMLLinkElement.cpp:
173230        (WebCore::HTMLLinkElement::process):
173231        * html/parser/CSSPreloadScanner.cpp:
173232        (WebCore::CSSPreloadScanner::emitRule):
173233        * html/parser/CSSPreloadScanner.h:
173234        (CSSPreloadScanner):
173235        * html/parser/HTMLPreloadScanner.cpp:
173236        (WebCore::PreloadTask::preload):
173237        * loader/ImageLoader.cpp:
173238        (WebCore::ImageLoader::updateFromElement):
173239        * loader/cache/CachedResourceLoader.cpp:
173240        (WebCore::CachedResourceLoader::requestImage):
173241        (WebCore::CachedResourceLoader::requestResource):
173242        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
173243        (WebCore):
173244        (WebCore::CachedResourceLoader::preload):
173245        * loader/cache/CachedResourceLoader.h:
173246        (WebCore):
173247        (CachedResourceLoader):
173248        * loader/cache/CachedResourceRequest.cpp:
173249        (WebCore::CachedResourceRequest::CachedResourceRequest):
173250        (WebCore):
173251        (WebCore::CachedResourceRequest::~CachedResourceRequest):
173252        (WebCore::CachedResourceRequest::setInitiator):
173253        (WebCore::CachedResourceRequest::initiatorName):
173254        (WebCore::CachedResourceRequest::initiatorDocument):
173255        (WebCore::CachedResourceRequest::initiatorElement):
173256        * loader/cache/CachedResourceRequest.h:
173257        (WebCore):
173258        (WebCore::CachedResourceRequest::setOptions):
173259        (WebCore::CachedResourceRequest::defer):
173260        (WebCore::CachedResourceRequest::setDefer):
173261        (CachedResourceRequest):
173262        * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
173263        (WebCore):
173264        (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
173265        * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
173266        (WebCore):
173267        (CachedResourceRequestInitiators):
173268        (WebCore::cachedResourceRequestInitiators):
173269        * loader/icon/IconLoader.cpp:
173270        (WebCore::IconLoader::startLoading):
173271        * platform/ThreadGlobalData.cpp:
173272        (WebCore::ThreadGlobalData::ThreadGlobalData):
173273        * platform/ThreadGlobalData.h:
173274        (WebCore):
173275        (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
173276        (ThreadGlobalData):
173277        * svg/SVGFEImageElement.cpp:
173278        (WebCore::SVGFEImageElement::requestImageResource):
173279        * svg/SVGFontFaceUriElement.cpp:
173280        (WebCore::SVGFontFaceUriElement::loadFont):
173281        * svg/SVGUseElement.cpp:
173282        (WebCore::SVGUseElement::svgAttributeChanged):
173283
1732842012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
173285
173286        Unreviewed, rolling out r134345.
173287        http://trac.webkit.org/changeset/134345
173288        https://bugs.webkit.org/show_bug.cgi?id=102106
173289
173290        Incomplete support for NATIVE_TYPE_ERR in objc and other
173291        bindings (Requested by jsbell on #webkit).
173292
173293        * Modules/mediastream/MediaConstraintsImpl.cpp:
173294        (WebCore::MediaConstraintsImpl::create):
173295        * Modules/mediastream/MediaStreamTrackList.cpp:
173296        (WebCore::MediaStreamTrackList::add):
173297        (WebCore::MediaStreamTrackList::remove):
173298        * Modules/mediastream/RTCDataChannel.cpp:
173299        (WebCore::RTCDataChannel::setBinaryType):
173300        * Modules/mediastream/RTCIceCandidate.cpp:
173301        (WebCore::RTCIceCandidate::create):
173302        * Modules/mediastream/RTCPeerConnection.cpp:
173303        (WebCore::RTCPeerConnection::parseConfiguration):
173304        (WebCore::RTCPeerConnection::createOffer):
173305        (WebCore::RTCPeerConnection::createAnswer):
173306        (WebCore::RTCPeerConnection::setLocalDescription):
173307        (WebCore::RTCPeerConnection::setRemoteDescription):
173308        (WebCore::RTCPeerConnection::addIceCandidate):
173309        (WebCore::RTCPeerConnection::addStream):
173310        (WebCore::RTCPeerConnection::removeStream):
173311        * Modules/mediastream/RTCSessionDescription.cpp:
173312        (WebCore::RTCSessionDescription::create):
173313        (WebCore::RTCSessionDescription::setType):
173314        * bindings/js/CallbackFunction.cpp:
173315        (WebCore::checkFunctionOnlyCallback):
173316        * bindings/js/JSCustomXPathNSResolver.cpp:
173317        (WebCore::JSCustomXPathNSResolver::create):
173318        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
173319        (WebCore::JSHTMLOptionsCollection::add):
173320        * bindings/js/JSHTMLSelectElementCustom.cpp:
173321        (WebCore::selectIndexSetter):
173322        * bindings/js/JSMutationObserverCustom.cpp:
173323        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
173324        * bindings/js/JSSQLResultSetRowListCustom.cpp:
173325        (WebCore::JSSQLResultSetRowList::item):
173326        * bindings/js/JSSQLTransactionCustom.cpp:
173327        (WebCore::JSSQLTransaction::executeSql):
173328        * bindings/js/JSSQLTransactionSyncCustom.cpp:
173329        (WebCore::JSSQLTransactionSync::executeSql):
173330        * bindings/scripts/CodeGeneratorJS.pm:
173331        (GenerateParametersCheck):
173332        * bindings/scripts/CodeGeneratorObjC.pm:
173333        (GenerateImplementation):
173334        * bindings/scripts/CodeGeneratorV8.pm:
173335        (GenerateFunctionCallString):
173336        * bindings/v8/V8Callback.h:
173337        (WebCore::createFunctionOnlyCallback):
173338        * bindings/v8/V8Collection.cpp:
173339        (WebCore::toOptionsCollectionSetter):
173340        * bindings/v8/custom/V8DocumentCustom.cpp:
173341        (WebCore::V8Document::evaluateCallback):
173342        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
173343        (WebCore::V8HTMLOptionsCollection::addCallback):
173344        * bindings/v8/custom/V8MutationObserverCustom.cpp:
173345        (WebCore::V8MutationObserver::constructorCallback):
173346        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
173347        (WebCore::V8SQLTransaction::executeSqlCallback):
173348        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
173349        (WebCore::V8SQLTransactionSync::executeSqlCallback):
173350        * dom/DOMCoreException.idl:
173351        * html/HTMLElement.cpp:
173352        (WebCore::HTMLElement::insertAdjacentElement):
173353        * html/HTMLMediaElement.cpp:
173354        (WebCore::HTMLMediaElement::webkitAddKey):
173355        * html/HTMLOptionsCollection.cpp:
173356        (WebCore::HTMLOptionsCollection::add):
173357        * html/canvas/CanvasRenderingContext2D.cpp:
173358        (WebCore::CanvasRenderingContext2D::drawImage):
173359        (WebCore::CanvasRenderingContext2D::createPattern):
173360        (WebCore::CanvasRenderingContext2D::putImageData):
173361        (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
173362        * page/Crypto.cpp:
173363        (WebCore::Crypto::getRandomValues):
173364        * page/DOMSelection.cpp:
173365        (WebCore::DOMSelection::extend):
173366        * svg/properties/SVGTransformListPropertyTearOff.h:
173367        (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
173368
1733692012-11-13  Erik Arvidsson  <arv@chromium.org>
173370
173371        Update DOMException name: HierarchyRequestError
173372        https://bugs.webkit.org/show_bug.cgi?id=102092
173373
173374        Reviewed by Ojan Vafai.
173375
173376        Patch 3 of 25 to update DOMException name to match the spec and Firefox.
173377
173378        Updated existing tests.
173379
173380        * dom/DOMCoreException.cpp:
173381
1733822012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
173383
173384        Clean up use of adjustWindowRect
173385        https://bugs.webkit.org/show_bug.cgi?id=102072
173386
173387        Reviewed by Alexis Menard.
173388
173389        Tested by fast/dom/Window/open-window-min-size.html
173390
173391        * loader/FrameLoader.cpp:
173392        (WebCore::createWindow):
173393
173394            Validate the window size here so that it is not just done for
173395            .open, but also for .showModalDialog. This is compatible with
173396            other browsers such as IE and Firefox (though IE > 6, enforces
173397            a minimum width of 250 instead of 100 as Firefox and us.)
173398
173399        * page/DOMWindow.cpp:
173400        (WebCore):
173401        (WebCore::DOMWindow::adjustWindowRect):
173402
173403            Make it a static method which only takes page. It was never
173404            called from anywhere without a valid page, so the page check
173405            has been turned into an assert, and two of the arguments have
173406            been removed as they can be accessed via the page.
173407
173408        (WebCore::DOMWindow::moveBy):
173409        (WebCore::DOMWindow::moveTo):
173410        (WebCore::DOMWindow::resizeBy):
173411        (WebCore::DOMWindow::resizeTo):
173412
173413            Update use of adjustWindowRect.
173414
173415        (WebCore::DOMWindow::open):
173416
173417            Avoid modifying the WindowFeatures as the WebCore::createWindow
173418            validates and adjusts the arguments.
173419
173420        * page/DOMWindow.h:
173421        (DOMWindow):
173422
1734232012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
173424
173425        [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
173426        https://bugs.webkit.org/show_bug.cgi?id=97736
173427
173428        Reviewed by Andreas Kling.
173429
173430        Rename properties to match updated spec.
173431
173432        Tests: fast/exclusions/shape-margin-parsing.html
173433               fast/exclusions/shape-padding-parsing.html
173434
173435        * css/CSSComputedStyleDeclaration.cpp:
173436        (WebCore):
173437        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
173438        * css/CSSParser.cpp:
173439        (WebCore::isSimpleLengthPropertyID):
173440        (WebCore::CSSParser::parseValue):
173441        * css/CSSProperty.cpp:
173442        (WebCore::CSSProperty::isInheritedProperty):
173443        * css/CSSPropertyNames.in:
173444        * css/StyleBuilder.cpp:
173445        (WebCore::StyleBuilder::StyleBuilder):
173446        * css/StylePropertySet.cpp:
173447        (WebCore::StylePropertySet::asText):
173448        * css/StylePropertyShorthand.cpp:
173449        (WebCore::webkitWrapShorthand):
173450        * css/StyleResolver.cpp:
173451        (WebCore::StyleResolver::applyProperty):
173452        * rendering/style/RenderStyle.cpp:
173453        (WebCore::RenderStyle::diff):
173454        * rendering/style/RenderStyle.h:
173455        * rendering/style/StyleRareNonInheritedData.cpp:
173456        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
173457        (WebCore::StyleRareNonInheritedData::operator==):
173458        * rendering/style/StyleRareNonInheritedData.h:
173459        (StyleRareNonInheritedData):
173460
1734612012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
173462
173463        Unreviewed, rolling out r134418.
173464        http://trac.webkit.org/changeset/134418
173465        https://bugs.webkit.org/show_bug.cgi?id=101903
173466
173467        The newly added test is crashing on cr-win.
173468
173469        * dom/ElementShadow.cpp:
173470        * dom/ElementShadow.h:
173471        * html/HTMLInputElement.cpp:
173472        (WebCore::HTMLInputElement::updateType):
173473        (WebCore::HTMLInputElement::setIndeterminate):
173474        * html/HTMLProgressElement.cpp:
173475        (WebCore::HTMLProgressElement::didElementStateChange):
173476        * html/shadow/SelectRuleFeatureSet.cpp:
173477        (WebCore::SelectRuleFeatureSet::add):
173478        (WebCore::SelectRuleFeatureSet::clear):
173479        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
173480        * html/shadow/SelectRuleFeatureSet.h:
173481        (SelectRuleFeatureSet):
173482
1734832012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
173484
173485        Unreviewed, rolling out r134391.
173486        http://trac.webkit.org/changeset/134391
173487        https://bugs.webkit.org/show_bug.cgi?id=99660
173488
173489        Speculative rollout, trying to fix browser_tests failure.
173490
173491        * English.lproj/localizedStrings.js:
173492        * inspector/Inspector.json:
173493        * inspector/InspectorClient.h:
173494        * inspector/InspectorPageAgent.cpp:
173495        (PageAgentState):
173496        (WebCore::InspectorPageAgent::enable):
173497        (WebCore::InspectorPageAgent::disable):
173498        * inspector/InspectorPageAgent.h:
173499        * inspector/front-end/Settings.js:
173500        * inspector/front-end/SettingsScreen.js:
173501        (WebInspector.GenericSettingsTab):
173502        * inspector/front-end/inspector.js:
173503        (WebInspector.doLoadedDone):
173504
1735052012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
173506
173507        Unreviewed, rolling out r134205.
173508        http://trac.webkit.org/changeset/134205
173509        https://bugs.webkit.org/show_bug.cgi?id=102093
173510
173511        Broke webkit-flow-inlines-dynamic.html on several ports
173512        (Requested by mihnea on #webkit).
173513
173514        * css/StyleResolver.cpp:
173515        (WebCore::StyleResolver::isValidRegionStyleProperty):
173516        * rendering/InlineBox.cpp:
173517        * rendering/InlineBox.h:
173518        (WebCore):
173519        (InlineBox):
173520        * rendering/InlineFlowBox.cpp:
173521        (WebCore::InlineFlowBox::addToLine):
173522        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
173523        * rendering/RenderRegion.cpp:
173524        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
173525        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
173526        (WebCore::RenderRegion::computeStyleInRegion):
173527        (WebCore::RenderRegion::computeChildrenStyleInRegion):
173528        (WebCore::RenderRegion::setObjectStyleInRegion):
173529        (WebCore::RenderRegion::clearObjectStyleInRegion):
173530        * rendering/RenderRegion.h:
173531        (RenderRegion):
173532        (ObjectRegionStyleInfo):
173533
1735342012-11-13  Andreas Kling  <kling@webkit.org>
173535
173536        Remove the non-const overload of ElementAttributeData::inlineStyle().
173537
173538        Rubber-stamped by Anders Koivisto.
173539
173540        No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
173541
173542        * dom/ElementAttributeData.h:
173543
1735442012-11-13  Keishi Hattori  <keishi@webkit.org>
173545
173546        [Chromium] Enable input type month/week
173547        https://bugs.webkit.org/show_bug.cgi?id=102042
173548
173549        Reviewed by Kent Tamura.
173550
173551        Enable input type month/week for Chromium.
173552
173553        No new tests. Tests will be added later in Bug 102045 and Bug 102046.
173554
173555        * bindings/generic/RuntimeEnabledFeatures.cpp:
173556        (WebCore):
173557
1735582012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
173559
173560        [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
173561        https://bugs.webkit.org/show_bug.cgi?id=101906
173562
173563        Reviewed by Dimitri Glazkov.
173564
173565        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
173566        setPseudo()/pseudo() instead.
173567
173568        No new tests, covered by existing tests.
173569
173570        * html/HTMLMeterElement.cpp:
173571        (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
173572        it anywhere, we have to set it into pseudo attribute here.
173573        (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
173574        * html/shadow/MeterShadowElement.cpp:
173575        (WebCore::MeterInnerElement::MeterInnerElement):
173576        (WebCore::MeterValueElement::valuePseudoId):
173577        * html/shadow/MeterShadowElement.h:
173578        (MeterInnerElement):
173579        (WebCore::MeterBarElement::MeterBarElement):
173580        (MeterBarElement):
173581        (WebCore::MeterValueElement::MeterValueElement):
173582        (WebCore::MeterValueElement::updatePseudo):
173583        (MeterValueElement):
173584
1735852012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
173586
173587        Changing pseudoClass (:indeterminate) should cause distribution
173588        https://bugs.webkit.org/show_bug.cgi?id=101903
173589
173590        Reviewed by Dimitri Glazkov.
173591
173592        <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
173593        invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
173594
173595        For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
173596        progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
173597
173598        Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
173599               fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
173600
173601        * dom/ElementShadow.cpp:
173602        (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
173603        have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
173604        here.
173605        (WebCore):
173606        * dom/ElementShadow.h:
173607        (WebCore):
173608        * html/HTMLInputElement.cpp:
173609        (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
173610        (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
173611        * html/HTMLProgressElement.cpp:
173612        (WebCore::HTMLProgressElement::didElementStateChange):
173613        * html/shadow/SelectRuleFeatureSet.cpp:
173614        (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
173615        (WebCore::SelectRuleFeatureSet::add):
173616        (WebCore::SelectRuleFeatureSet::clear):
173617        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
173618        * html/shadow/SelectRuleFeatureSet.h:
173619        (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
173620        (SelectRuleFeatureSet):
173621
1736222012-11-13  Andreas Kling  <kling@webkit.org>
173623
173624        Exploit ElementAttributeData sharing in Node.cloneNode.
173625        <http://webkit.org/b/101374>
173626
173627        Reviewed by Anders Carlsson.
173628
173629        Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
173630        If the source data is immutable, simply ref it from the new node at virtually no cost.
173631
173632        If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
173633        Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
173634        and memory in the long run.
173635
173636        ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
173637
173638        * dom/Element.cpp:
173639        (WebCore::Element::cloneAttributesFromElement):
173640
173641            Move attribute data cloning logic from ElementAttributeData to Element.
173642
173643        * dom/ElementAttributeData.cpp:
173644        (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
173645        (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
173646        (WebCore::ElementAttributeData::ElementAttributeData):
173647        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
173648        (WebCore::ElementAttributeData::makeMutableCopy):
173649        (WebCore::ElementAttributeData::makeImmutableCopy):
173650        * dom/ElementAttributeData.h:
173651        (ElementAttributeData):
173652        (ImmutableElementAttributeData):
173653        (MutableElementAttributeData):
173654
173655            Add facilities for converting a mutable ElementAttributeData to an immutable one.
173656            Share some code in the common base class constructor.
173657
1736582012-11-13  Kentaro Hara  <haraken@chromium.org>
173659
173660        Unreviewed. Build fix of V8 bindings.
173661
173662        * bindings/v8/V8DOMWrapper.cpp:
173663        (WebCore::V8DOMWrapper::maybeDOMWrapper):
173664
1736652012-11-13  Andrey Adaikin  <aandrey@chromium.org>
173666
173667        Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
173668        https://bugs.webkit.org/show_bug.cgi?id=102071
173669
173670        Reviewed by Pavel Feldman.
173671
173672        * inspector/front-end/CanvasProfileView.js:
173673        (WebInspector.CanvasProfileView):
173674        (WebInspector.CanvasProfileView.prototype.dispose):
173675        (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
173676        (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
173677        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
173678        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
173679        (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
173680        (WebInspector.CanvasProfileView.prototype._createCallNode):
173681        * inspector/front-end/canvasProfiler.css:
173682        (#canvas-replay-image.wait):
173683
1736842012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
173685
173686        Web Inspector: Settings screen: some panel shortcuts are missing
173687        https://bugs.webkit.org/show_bug.cgi?id=101026
173688
173689        Reviewed by Pavel Feldman.
173690
173691        Panels, that have not been loaded by the time shortcuts view was
173692        initialized, had no chance to register shortcuts.
173693
173694        Solution: move shortcut registration (for shortcuts screen) to panel
173695        descriptors.
173696
173697        More changes: add JsDoc annotations to ShortcutScreen and change "key"
173698        parameter type for raw string to key descriptor object.
173699
173700        * WebCore.gypi: Added TimelinePanelDescriptor.js file.
173701        * WebCore.vcproj/WebCore.vcproj: Ditto.
173702        * inspector/compile-front-end.py: Ditto.
173703        * inspector/front-end/WebKit.qrc: Ditto.
173704        * inspector/front-end/inspector.html: Ditto.
173705        * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
173706        * inspector/front-end/GoToLineDialog.js: Ditto.
173707        * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
173708        shortcuts registration.
173709        * inspector/front-end/ElementsPanel.js: Ditto.
173710        * inspector/front-end/ScriptsPanel.js: Ditto.
173711        * inspector/front-end/StylesSidebarPane.js: Ditto.
173712        * inspector/front-end/TimelinePanel.js: Ditto.
173713        * inspector/front-end/ConsoleView.js: Changes order of lines to increase
173714        readability.
173715        * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
173716        shortcuts registration and key descriptor constants.
173717        * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
173718        * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
173719        * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
173720        "registerShortcuts" method accept array of key descriptors.
173721        (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
173722        * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
173723        type from string to key descriptor.
173724        * inspector/front-end/inspector.js: Register shortcuts using
173725        panel descriptors.
173726        (WebInspector._panelDescriptors): Removed duplicate line.
173727
1737282012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
173729
173730        Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
173731        https://bugs.webkit.org/show_bug.cgi?id=102060
173732
173733        Reviewed by Zoltan Herczeg.
173734
173735        Adding more NEONized packing functions to GraphicsContext3DNEON.h.
173736        These functions are three times faster with this intrinsics optimizations.
173737
173738        * platform/graphics/GraphicsContext3D.cpp:
173739        (WebCore):
173740        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
173741        (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
173742        (ARM):
173743        (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
173744        (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
173745        (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
173746
1737472012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
173748
173749        [Qt] Enable Mutation observer
173750        https://bugs.webkit.org/show_bug.cgi?id=102066
173751
173752        Reviewed by Pavel Feldman.
173753
173754        * DerivedSources.pri: Add missing IDL files.
173755
1737562012-11-13  Kentaro Hara  <haraken@chromium.org>
173757
173758        [V8] Make isValidDOMObject() static
173759        https://bugs.webkit.org/show_bug.cgi?id=101914
173760
173761        Reviewed by Adam Barth.
173762
173763        isValidDOMObject() is used by DOMWrapper.cpp only.
173764
173765        No tests. No change in behavior.
173766
173767        * bindings/v8/V8DOMWrapper.cpp:
173768        (WebCore::isValidDOMObject):
173769        (WebCore):
173770        (WebCore::V8DOMWrapper::maybeDOMWrapper):
173771        * bindings/v8/V8DOMWrapper.h:
173772        (V8DOMWrapper):
173773
1737742012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
173775
173776        [CSSRegions] Incorrect computed height for content with region-break-before
173777        https://bugs.webkit.org/show_bug.cgi?id=101862
173778
173779        Reviewed by Julien Chaffraix.
173780
173781        When processing the region breaks for auto-height regions, we skipped the case
173782        when the region-break-before occurred in the first region in the chain which was
173783        an auto-height region. Because of that, the region computed height was not 0
173784        as it was supposed to be, but rather LayoutUnit::max() / 2.
173785
173786        Test: fast/regions/autoheight-breakbefore-wrongheight.html
173787
173788        * rendering/RenderFlowThread.cpp:
173789        (WebCore::RenderFlowThread::addForcedRegionBreak):
173790        Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
173791        and the first region in chain is an auto-height region.
173792        * rendering/RenderRegion.cpp:
173793        (WebCore::RenderRegion::updateLogicalHeight):
173794        Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
173795
1737962012-11-13  Yury Semikhatsky  <yurys@chromium.org>
173797
173798        Memory instrumentation: remove reportMemoryUsage method from ImageObserver
173799        https://bugs.webkit.org/show_bug.cgi?id=102058
173800
173801        Reviewed by Pavel Feldman.
173802
173803        * bindings/v8/V8PerIsolateData.cpp:
173804        (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
173805        each element of the vector as generic vector instrumentation will take care of it.
173806        * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
173807        we don't count its by the pointer to the base class which may differ from the actual
173808        object address.
173809        (WebCore::Image::reportMemoryUsage):
173810        * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
173811        (ImageObserver):
173812
1738132012-11-13  Eberhard Graether  <egraether@google.com>
173814
173815        checkbox to toggle FPS counter in the inspector's settings
173816        https://bugs.webkit.org/show_bug.cgi?id=99660
173817
173818        Reviewed by Pavel Feldman.
173819
173820        Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
173821
173822        No new tests.
173823
173824        * English.lproj/localizedStrings.js:
173825        * inspector/Inspector.json:
173826        * inspector/InspectorClient.h:
173827        (WebCore::InspectorClient::canShowFPSCounter):
173828        (WebCore::InspectorClient::setShowFPSCounter):
173829        (InspectorClient):
173830        * inspector/InspectorPageAgent.cpp:
173831        (PageAgentState):
173832        (WebCore::InspectorPageAgent::enable):
173833        (WebCore::InspectorPageAgent::disable):
173834        (WebCore::InspectorPageAgent::canShowFPSCounter):
173835        (WebCore):
173836        (WebCore::InspectorPageAgent::setShowFPSCounter):
173837        * inspector/InspectorPageAgent.h:
173838        * inspector/front-end/Settings.js:
173839        * inspector/front-end/SettingsScreen.js:
173840        (WebInspector.GenericSettingsTab):
173841        (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
173842        * inspector/front-end/inspector.js:
173843        (WebInspector.doLoadedDone):
173844
1738452012-11-12  Kent Tamura  <tkent@chromium.org>
173846
173847        Unable to set valid time value to input[type=time] with user interaction in some cases
173848        https://bugs.webkit.org/show_bug.cgi?id=102048
173849
173850        Reviewed by Kentaro Hara.
173851
173852        The implementations of shouldMillisecondFieldReadOnly,
173853        shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
173854        incorrect. We need to check if a part of the minimum value matches to
173855        the corresponding part of the current value.
173856
173857        Also, we had better check hour field editability.
173858
173859        Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
173860
173861        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
173862        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
173863        Fix a problem that hh:mm:00.sss didn't create a seconds field.
173864        * html/shadow/DateTimeEditElement.cpp:
173865        (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
173866        (WebCore::DateTimeEditBuilder::visitField):
173867        Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
173868        (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
173869        Added. An hour field should be read-only if the step value is a multiple
173870        of a day and the hour part of the minimum value matches to the hour part
173871        of the value.
173872        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
173873        A millisecond field should be read-only if the step value is a multiple
173874        of one second and the millisecond part of the minimum value matches to
173875        the millisecond part of the value.
173876        (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
173877        A minute field should be read-only if the step value is a multiple of
173878        one hour and the minute part of the minimum value matches to the minute
173879        part of the value.
173880        (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
173881        A second field should be read-only if the step value is a multiple of
173882        one minute and the second part of the minimum value matches to the second
173883        part of the value.
173884        * platform/Decimal.cpp:
173885        (WebCore::Decimal::remainder):
173886        Fix a bug in case that the fractional part of quotient is >= 0.5. Also
173887        make this matches to C99, C++11, ECMAScript behavior.
173888
1738892012-11-13  Yury Semikhatsky  <yurys@chromium.org>
173890
173891        Memory instrumentation: MemoryBlock name should not include full path to the block
173892        https://bugs.webkit.org/show_bug.cgi?id=102055
173893
173894        Reviewed by Pavel Feldman.
173895
173896        * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
173897        intead of fully qualified name.
173898
1738992012-11-13  Pavel Feldman  <pfeldman@chromium.org>
173900
173901        Web Inspector: get rid of enter/exitTextChangeMode in the editor
173902        https://bugs.webkit.org/show_bug.cgi?id=101845
173903
173904        Reviewed by Vsevolod Vlasov.
173905
173906        They seem to do nothing.
173907
173908        * inspector/front-end/DefaultTextEditor.js:
173909        (WebInspector.DefaultTextEditor.prototype._textChanged):
173910        (WebInspector.DefaultTextEditor.prototype.editRange):
173911        (WebInspector.TextEditorMainPanel):
173912        (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
173913        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
173914        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
173915        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
173916        * inspector/front-end/TextEditorModel.js:
173917        (WebInspector.TextEditorModel.endsWithBracketRegex.):
173918
1739192012-11-13  Tommy Widenflycht  <tommyw@google.com>
173920
173921        Remove the custom WebSocket::send for both V8 and JSC
173922        https://bugs.webkit.org/show_bug.cgi?id=101936
173923
173924        Reviewed by Kentaro Hara.
173925
173926        This patch removes the custom WebSocket::send since it isn't needed anymore.
173927
173928        Patch covered by existing tests.
173929
173930        * Modules/websockets/WebSocket.idl:
173931        * UseV8.cmake:
173932        * WebCore.gypi:
173933        * bindings/js/JSWebSocketCustom.cpp:
173934        * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
173935
1739362012-11-13  Pavel Feldman  <pfeldman@chromium.org>
173937
173938        Web Inspector: move indentation logic into TextEditorModel
173939        https://bugs.webkit.org/show_bug.cgi?id=101842
173940
173941        Reviewed by Vsevolod Vlasov.
173942
173943        I'd like to move as much headless logic into the TextEditorModel as possible.
173944        Drive by: removed some dead code, converted getter into function and moved undo
173945        mark state into the model as well.
173946
173947        * inspector/front-end/DefaultTextEditor.js:
173948        (WebInspector.DefaultTextEditor.prototype.editRange):
173949        (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
173950        (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
173951        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
173952        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
173953        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
173954        (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
173955        (WebInspector.TextEditorMainChunk):
173956        (WebInspector.TextEditorMainChunk.prototype.isDecorated):
173957        (WebInspector.TextEditorMainChunk.prototype.set expanded):
173958        * inspector/front-end/TextEditorModel.js:
173959        (WebInspector.TextEditorModel.endsWithBracketRegex.):
173960
1739612012-11-13  Hayato Ito  <hayato@chromium.org>
173962
173963        Unreviewed attempt to fix the chromium mac-build after r134348.
173964
173965        * platform/graphics/mac/FontMac.mm:
173966        (WebCore::Font::drawGlyphs):
173967        * platform/mac/WebCoreSystemInterface.h:
173968        * platform/mac/WebCoreSystemInterface.mm:
173969
1739702012-11-13  Pavel Feldman  <pfeldman@chromium.org>
173971
173972        Web Inspector: migrate text editor to mutation observers
173973        https://bugs.webkit.org/show_bug.cgi?id=101841
173974
173975        Reviewed by Vsevolod Vlasov.
173976
173977        Otherwise, we miss notifications on the removed lines.
173978
173979        * inspector/front-end/DefaultTextEditor.js:
173980        (WebInspector.DefaultTextEditor.prototype.wasShown):
173981        (WebInspector.DefaultTextEditor.prototype.willHide):
173982        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
173983        (WebInspector.TextEditorMainPanel):
173984        (WebInspector.TextEditorMainPanel.prototype._wasShown):
173985        (WebInspector.TextEditorMainPanel.prototype._willHide):
173986        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
173987        (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
173988        (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
173989        (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
173990        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
173991        (WebInspector.TextEditorMainPanel.prototype._paintLine):
173992        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
173993        (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
173994        (WebInspector.TextEditorMainPanel.prototype._handleMutations):
173995        (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
173996        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
173997        * inspector/front-end/externs.js:
173998        (WebKitMutation):
173999        (WebKitMutationObserver.prototype.observe):
174000        (WebKitMutationObserver.prototype.disconnect):
174001        * inspector/front-end/textEditor.css:
174002        (.debug-fadeout):
174003        (@-webkit-keyframes debug-fadeout):
174004        (to):
174005
1740062012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
174007
174008        Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
174009        https://bugs.webkit.org/show_bug.cgi?id=101473
174010
174011        Reviewed by Zoltan Herczeg.
174012
174013        With NEON intrinsics the packing/unpacking functions can be optimized well.
174014        This particular function is about 3 times faster with ARM NEON. On top level tests
174015        the speed up was 1.18x.
174016
174017        * CMakeLists.txt:
174018        * GNUmakefile.am:
174019        * GNUmakefile.list.am:
174020        * Target.pri:
174021        * WebCore.gyp/WebCore.gyp:
174022        * WebCore.gypi:
174023        * WebCore.pri:
174024        * WebCore.xcodeproj/project.pbxproj:
174025        * platform/graphics/GraphicsContext3D.cpp:
174026        (WebCore):
174027        * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
174028        (WebCore):
174029        (ARM):
174030        (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
174031        (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
174032
1740332012-11-13  Takashi Sakamoto  <tasak@google.com>
174034
174035        Crash when replacing parts of text inputs with content: url(...)
174036        https://bugs.webkit.org/show_bug.cgi?id=101133
174037
174038        Reviewed by Kent Tamura.
174039
174040        Disable directly setting content of elements in an input element's
174041        shadow dom tree, because the setting breaks input element's behavior.
174042
174043        Tests: fast/forms/number/number-content-url-crash.html
174044               fast/forms/search/search-content-url-crash.html
174045
174046        * css/html.css:
174047        (input::-webkit-textfield-decoration-container):
174048        Use important to disable overriding an input element's content
174049        property.
174050        * html/TextFieldInputType.cpp:
174051        (WebCore::TextFieldInputType::attach):
174052        Added ASSERTION. No content should be applied to
174053        input::-webkit-textfield-decoration-container.
174054
1740552012-11-12  Huang Dongsung  <luxtella@company100.net>
174056
174057        [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
174058        https://bugs.webkit.org/show_bug.cgi?id=101918
174059
174060        Reviewed by Noam Rosenthal.
174061
174062        Remove TiledBackingStore::rect(), because it is not used anymore.
174063
174064        * platform/graphics/TiledBackingStore.h:
174065        (TiledBackingStore):
174066
1740672012-11-12  Adam Barth  <abarth@webkit.org>
174068
174069        [V8] We should be able to recover the V8DOMWindowShell more quickly
174070        https://bugs.webkit.org/show_bug.cgi?id=102020
174071
174072        Reviewed by Kentaro Hara.
174073
174074        For isolated worlds, we used to store the V8DOMWindowShell as an
174075        internal field of the inner DOM window. This patch moves the pointer to
174076        an internal field of the v8::Context, which saves us the work of
174077        looking up the inner DOM window.
174078
174079        Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
174080        because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
174081        the V8PerContextData when we detach the V8DOMWindowShell from the
174082        frame.)
174083
174084        * bindings/scripts/CodeGeneratorV8.pm:
174085        (GetInternalFields):
174086        * bindings/v8/V8DOMWindowShell.cpp:
174087        (WebCore::V8DOMWindowShell::initializeIfNeeded):
174088        * bindings/v8/V8DOMWindowShell.h:
174089        (WebCore::V8DOMWindowShell::getEntered):
174090        * bindings/v8/V8PerContextData.h:
174091
1740922012-11-12  Kentaro Hara  <haraken@chromium.org>
174093
174094        [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
174095        https://bugs.webkit.org/show_bug.cgi?id=101054
174096
174097        Reviewed by Adam Barth.
174098
174099        I'm investigating a Chromium crash bug:
174100        http://code.google.com/p/chromium/issues/detail?id=155942
174101
174102        I've not yet identified the root cause (because I can't reproduce
174103        the crash), but it looks like we are storing NULL pointers to
174104        V8 internal fields. Just in case, we can add an ASSERT() to
174105        guarantee that NULL pointers are never stored. (Also I'm hoping
174106        that this ASSERT() will give me more debug information.)
174107
174108        No tests. No change in behavior.
174109
174110        * bindings/v8/V8DOMWrapper.h:
174111        (WebCore::V8DOMWrapper::setDOMWrapper):
174112
1741132012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
174114
174115        Changing id, className, or attribute should invalidate distribution
174116        https://bugs.webkit.org/show_bug.cgi?id=100738
174117
174118        Reviewed by Dimitri Glazkov.
174119
174120        When id, className, or attribute is changed, we might have to invalidate distribution.
174121        However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
174122        and invalidate distribution only if necessary.
174123
174124        When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
174125        So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
174126
174127        Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
174128        to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
174129
174130        DOM/ModifyAttribute.html
174131        Before this patch:
174132                median  stdev  min      max    [ms]
174133          1st   115.62   0.67  114.75   117.00
174134          2nd   115.08   1.13  113.25   117.58
174135          3rd   114.75   1.16  113.42   117.83
174136
174137        After this patch:
174138                median  stdev  min      max    [ms]
174139          1st   102.55   0.95  101.25   104.50
174140          2nd   103.10   0.86  102.20   100.95
174141          3rd   103.30   1.05  102.10   106.65
174142
174143        Tests: fast/dom/shadow/distribution-attribute-modified.html
174144               fast/dom/shadow/distribution-className-modified.html
174145               fast/dom/shadow/distribution-id-modified.html
174146               fast/dom/shadow/reprojection-attribute-modified.html
174147               fast/dom/shadow/reprojection-className-modified.html
174148               fast/dom/shadow/reprojection-id-modified.html
174149
174150        * dom/Element.cpp:
174151        (WebCore::Element::attributeChanged):
174152        (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
174153        (HasSelectorForClassStyleFunctor):
174154        (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
174155        (WebCore):
174156        (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
174157        (HasSelectorForClassDistributionFunctor):
174158        (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
174159        (WebCore::checkFunctorForClassChange):
174160        (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
174161        (WebCore::checkNeedsDistributionInvalidationForClassChange):
174162        (WebCore::Element::classAttributeChanged):
174163
1741642012-11-12  Joe Mason  <jmason@rim.com>
174165
174166        [BlackBerry] NetworkJob should not check if data is received with HEAD
174167        https://bugs.webkit.org/show_bug.cgi?id=102034
174168
174169        Reviewed by George Staikos.
174170
174171        Internal PR: 241391
174172
174173        Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
174174        have no data.
174175
174176        Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
174177
174178        * platform/network/blackberry/NetworkJob.cpp:
174179        (WebCore::NetworkJob::NetworkJob):
174180        (WebCore::NetworkJob::initialize):
174181        (WebCore::NetworkJob::shouldNotifyClientFailed):
174182        * platform/network/blackberry/NetworkJob.h:
174183        (NetworkJob):
174184
1741852012-11-12  Adam Barth  <abarth@webkit.org>
174186
174187        [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
174188        https://bugs.webkit.org/show_bug.cgi?id=102015
174189
174190        Reviewed by Kentaro Hara.
174191
174192        Previously, Nodes had a special path through
174193        V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
174194        could find the V8PerContextData quickly. Now that we can get the
174195        V8PerContextData from the v8::Context quickly, we can move Nodes to the
174196        general case. The net consequence is that creation of all DOM objects
174197        should be as fast as Nodes are.
174198
174199        * bindings/scripts/CodeGeneratorV8.pm:
174200        (GenerateToV8Converters):
174201        * bindings/scripts/test/V8/V8Float64Array.cpp:
174202        (WebCore::V8Float64Array::wrapSlow):
174203        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
174204        (WebCore::V8TestActiveDOMObject::wrapSlow):
174205        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
174206        (WebCore::V8TestCustomNamedGetter::wrapSlow):
174207        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
174208        (WebCore::V8TestEventConstructor::wrapSlow):
174209        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
174210        (WebCore::V8TestEventTarget::wrapSlow):
174211        * bindings/scripts/test/V8/V8TestException.cpp:
174212        (WebCore::V8TestException::wrapSlow):
174213        * bindings/scripts/test/V8/V8TestInterface.cpp:
174214        (WebCore::V8TestInterface::wrapSlow):
174215        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
174216        (WebCore::V8TestMediaQueryListListener::wrapSlow):
174217        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
174218        (WebCore::V8TestNamedConstructor::wrapSlow):
174219        * bindings/scripts/test/V8/V8TestNode.cpp:
174220        (WebCore::V8TestNode::wrapSlow):
174221        * bindings/scripts/test/V8/V8TestObj.cpp:
174222        (WebCore::V8TestObj::wrapSlow):
174223        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
174224        (WebCore::V8TestOverloadedConstructors::wrapSlow):
174225        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
174226        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
174227        * bindings/v8/V8Binding.cpp:
174228        * bindings/v8/V8Binding.h:
174229        (WebCore):
174230        * bindings/v8/V8DOMWrapper.cpp:
174231        (WebCore::V8DOMWrapper::instantiateV8Object):
174232        * bindings/v8/V8DOMWrapper.h:
174233        (V8DOMWrapper):
174234
1742352012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
174236
174237        Some CSS properties are not handled on StyleResolver::applyProperty
174238        https://bugs.webkit.org/show_bug.cgi?id=102027
174239
174240        Reviewed by Gyuyoung Kim.
174241
174242        The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
174243        need to be handled on StyleResolver::applyProperty.
174244
174245        * css/StyleResolver.cpp:
174246        (WebCore::StyleResolver::applyProperty):
174247
1742482012-11-12  Simon Fraser  <simon.fraser@apple.com>
174249
174250        Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
174251        https://bugs.webkit.org/show_bug.cgi?id=102031
174252
174253        Reviewed by Beth Dakin.
174254
174255        RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
174256        and calculateLayerBounds() multiple times for painting a single layer.
174257        
174258        Keep track of whether we've computed the root-relative bounds and do it on demand.
174259        Compute the offset relative to rootLayer once, and pass it around as an optional parameter
174260        to functions that need it.
174261
174262        * rendering/RenderLayer.cpp:
174263        (WebCore::RenderLayer::paintLayerContents):
174264        (WebCore::RenderLayer::hitTestLayer):
174265        (WebCore::RenderLayer::calculateRects):
174266        (WebCore::RenderLayer::intersectsDamageRect):
174267        (WebCore::RenderLayer::boundingBox):
174268        (WebCore::RenderLayer::calculateLayerBounds):
174269        * rendering/RenderLayer.h:
174270        * rendering/RenderLayerCompositor.cpp:
174271        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
174272
1742732012-11-12  Simon Fraser  <simon.fraser@apple.com>
174274
174275        Change calculateLayerBounds() from a static function to a member function
174276        https://bugs.webkit.org/show_bug.cgi?id=102022
174277
174278        Reviewed by Beth Dakin.
174279
174280        calculateLayerBounds() has grown into a substantial function after
174281        starting live as a little utility function, so make it a member function
174282        of RenderLayer, and adjust callers accordingly.
174283
174284        * rendering/RenderLayer.cpp:
174285        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
174286        (WebCore::RenderLayer::paintLayerContents):
174287        (WebCore::RenderLayer::calculateLayerBounds):
174288        * rendering/RenderLayer.h:
174289        * rendering/RenderLayerCompositor.cpp:
174290        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
174291
1742922012-11-12  Alexei Filippov  <alph@chromium.org>
174293
174294        Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
174295        https://bugs.webkit.org/show_bug.cgi?id=101601
174296
174297        Reviewed by Yury Semikhatsky.
174298
174299        * English.lproj/localizedStrings.js:
174300        * inspector/front-end/NativeMemorySnapshotView.js:
174301        * inspector/front-end/Settings.js:
174302        * inspector/front-end/SettingsScreen.js:
174303        (WebInspector.GenericSettingsTab):
174304
1743052012-11-10  Dirk Schulze  <krit@webkit.org>
174306
174307        BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
174308        https://bugs.webkit.org/show_bug.cgi?id=101854
174309
174310        Reviewed by Andreas Kling.
174311
174312        The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
174313        blend with themselves. This patch introduces simple interpolation of BasicShapes for
174314        the -webkit-clip-path property.
174315
174316        Test: css3/masking/clip-path-animation.html
174317
174318        * page/animation/CSSPropertyAnimation.cpp:
174319        (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
174320            It skips blending on <clipPath> references, polygons and if the shapes are not of
174321            the same type.
174322        (WebCore):
174323        (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
174324        (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
174325        (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
174326            properties.
174327        * rendering/style/BasicShapes.cpp:
174328            The blending is done by each shape itself. This is similar to FilterOperations or
174329            TransformOperations.
174330        (WebCore::BasicShapeRectangle::blend):
174331        (WebCore):
174332        (WebCore::BasicShapeCircle::blend):
174333        (WebCore::BasicShapeEllipse::blend):
174334        (WebCore::BasicShapePolygon::blend):
174335        * rendering/style/BasicShapes.h:
174336            Added new blending functions to header.
174337        (BasicShape):
174338        (BasicShapeRectangle):
174339        (BasicShapeCircle):
174340        (BasicShapeEllipse):
174341        (BasicShapePolygon):
174342
1743432012-11-12  Adam Barth  <abarth@webkit.org>
174344
174345        [V8] We should be able to get V8PerContextData from a v8::Context more quickly
174346        https://bugs.webkit.org/show_bug.cgi?id=102008
174347
174348        Reviewed by Ojan Vafai.
174349
174350        This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
174351        API to get the V8PerContextData associated with a v8::Context much more
174352        quickly. We no longer need to use a hidden property on the inner global
174353        object. This patch will enable future optimizations.
174354
174355        * bindings/v8/V8HiddenPropertyName.h:
174356        (WebCore):
174357        * bindings/v8/V8PerContextData.cpp:
174358        (WebCore::V8PerContextData::dispose):
174359        (WebCore::V8PerContextData::init):
174360        * bindings/v8/V8PerContextData.h:
174361        (WebCore::V8PerContextData::from):
174362
1743632012-11-12  Elliott Sprehn  <esprehn@chromium.org>
174364
174365        Make Frames and HTMLFrameOwnerElement less friendly
174366        https://bugs.webkit.org/show_bug.cgi?id=102003
174367
174368        Reviewed by Ojan Vafai.
174369
174370        Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
174371        this patch makes it go through a method to allow future hooks when frames
174372        are associated with owners.
174373
174374        No new tests, this is just a refactor.
174375
174376        * html/HTMLFrameOwnerElement.cpp:
174377        (WebCore::HTMLFrameOwnerElement::setContentFrame):
174378        * html/HTMLFrameOwnerElement.h:
174379        (HTMLFrameOwnerElement):
174380        (WebCore::HTMLFrameOwnerElement::clearContentFrame):
174381        * page/Frame.cpp:
174382        (WebCore::Frame::Frame): Use new methods.
174383
1743842012-11-12  Beth Dakin  <bdakin@apple.com>
174385
174386        Zoomed-in scrolling is very slow when deviceScaleFactor > 1
174387        https://bugs.webkit.org/show_bug.cgi?id=101787
174388
174389        Reviewed by Simon Fraser.
174390
174391        This patch adds a new member to the GraphicsContextState that tracks 
174392        whether or not fonts should be subpixel-quantized. We want to default 
174393        to sibpixel-quantizing, but we'll turn it off if we're scrolling 
174394        content that cannot be scrolled on the scrolling thread.
174395
174396        State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
174397        since normally we do want to quantize.
174398        * platform/graphics/GraphicsContext.cpp:
174399        (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
174400        (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
174401        * platform/graphics/GraphicsContext.h:
174402        (WebCore::GraphicsContextState::GraphicsContextState):
174403        (GraphicsContextState):
174404        (GraphicsContext):
174405
174406        wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
174407        whether or not it should try to subpixel-quantize the fonts.
174408        * platform/graphics/mac/FontMac.mm:
174409        (WebCore::Font::drawGlyphs):
174410        * platform/mac/WebCoreSystemInterface.h:
174411        * platform/mac/WebCoreSystemInterface.mm:
174412
174413        Disable subpixel-quantization for overflow areas, subframes, and 
174414        content that is scrolling on the main thread.
174415        * rendering/RenderLayer.cpp:
174416        (WebCore::RenderLayer::paintLayerContents):
174417
1744182012-11-12  Timothy Hatcher  <timothy@apple.com>
174419
174420        Expose InspectorFrontendClientLocal::setAttachedWindow as public.
174421
174422        This allows external actions to update the docked state in the frontend.
174423
174424        https://bugs.webkit.org/show_bug.cgi?id=102023
174425
174426        Reviewed by Anders Carlsson.
174427
174428        * inspector/InspectorFrontendClientLocal.h:
174429        Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
174430
1744312012-11-12  Erik Arvidsson  <arv@chromium.org>
174432
174433        Replace DOMException TYPE_MISMATCH_ERR with TypeError
174434        https://bugs.webkit.org/show_bug.cgi?id=101604
174435
174436        Reviewed by Adam Barth.
174437
174438        DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
174439
174440        We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
174441        the spec mandates TypeError being thrown.
174442
174443        Updated existing tests.
174444
174445        * Modules/mediastream/MediaConstraintsImpl.cpp:
174446        * Modules/mediastream/MediaStreamTrackList.cpp:
174447        * Modules/mediastream/PeerConnection00.cpp:
174448        * Modules/mediastream/RTCDataChannel.cpp:
174449        * Modules/mediastream/RTCIceCandidate.cpp:
174450        * Modules/mediastream/RTCPeerConnection.cpp:
174451        * Modules/mediastream/RTCSessionDescription.cpp:
174452        * Modules/mediastream/SessionDescription.cpp:
174453        * bindings/js/CallbackFunction.cpp:
174454        * bindings/js/JSCustomXPathNSResolver.cpp:
174455        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
174456        * bindings/js/JSHTMLSelectElementCustom.cpp:
174457        * bindings/js/JSMutationObserverCustom.cpp:
174458        * bindings/js/JSSQLResultSetRowListCustom.cpp:
174459        * bindings/js/JSSQLTransactionCustom.cpp:
174460        * bindings/js/JSSQLTransactionSyncCustom.cpp:
174461        * bindings/scripts/CodeGeneratorJS.pm:
174462        * bindings/scripts/CodeGeneratorObjC.pm:
174463        * bindings/scripts/CodeGeneratorV8.pm:
174464        * bindings/v8/V8Callback.h:
174465        * bindings/v8/V8Collection.cpp:
174466        * bindings/v8/custom/V8DocumentCustom.cpp:
174467        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
174468        * bindings/v8/custom/V8MutationObserverCustom.cpp:
174469        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
174470        * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
174471        * dom/DOMCoreException.idl:
174472        * html/HTMLElement.cpp:
174473        * html/HTMLMediaElement.cpp:
174474        * html/HTMLOptionsCollection.cpp:
174475        * html/canvas/CanvasRenderingContext2D.cpp:
174476        * page/Crypto.cpp:
174477        * page/DOMSelection.cpp:
174478        * svg/properties/SVGTransformListPropertyTearOff.h:
174479
1744802012-11-12  Joshua Bell  <jsbell@chromium.org>
174481
174482        IndexedDB: Use sequence<> instead of DOMString[] in IDL
174483        https://bugs.webkit.org/show_bug.cgi?id=100539
174484
174485        Reviewed by Adam Barth.
174486
174487        In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
174488        WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
174489        to that. Note webkit.org/b/100537 which requires sequence<String> instead.
174490
174491        Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
174492
174493        * Modules/indexeddb/IDBDatabase.cpp:
174494        (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
174495        * Modules/indexeddb/IDBDatabase.h:
174496        (WebCore::IDBDatabase::transaction):
174497        (IDBDatabase):
174498        * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
174499        * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
174500        * Modules/indexeddb/IDBObjectStore.h:
174501        (WebCore::IDBObjectStore::createIndex):
174502        * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
174503
1745042012-11-12  Anders Carlsson  <andersca@apple.com>
174505
174506        Remove Leopard only gradient code
174507        https://bugs.webkit.org/show_bug.cgi?id=102033
174508
174509        Reviewed by Dan Bernstein.
174510
174511        USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
174512
174513        * platform/graphics/Gradient.h:
174514        * platform/graphics/cg/GradientCG.cpp:
174515        (WebCore::Gradient::platformDestroy):
174516        (WebCore::Gradient::platformGradient):
174517        (WebCore::Gradient::paint):
174518
1745192012-11-12  Tiancheng Jiang  <tijiang@rim.com>
174520
174521        [BlackBerry] Update BB10 form theme.
174522        https://bugs.webkit.org/show_bug.cgi?id=100760
174523
174524        Reviewed by Rob Buis.
174525
174526        RIM PR 237003
174527        Internally Reviewed by Eli Fidler.
174528        Since we nolonger use small font for form controls, adjust paddingDivisor
174529        ratio to decrease the padding value.
174530
174531        * platform/blackberry/RenderThemeBlackBerry.cpp:
174532        (WebCore):
174533
1745342012-11-12  Simon Fraser  <simon.fraser@apple.com>
174535
174536        Fix filter dirty rect regression from r134311
174537        https://bugs.webkit.org/show_bug.cgi?id=102002
174538
174539        Reviewed by Beth Dakin.
174540
174541        When rendering with filters, the code can inflate the root-relative
174542        paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
174543        broke this behavior.
174544    
174545        Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
174546        and using it for the rest of the function.
174547
174548        * rendering/RenderLayer.cpp:
174549        (WebCore::RenderLayer::paintLayerContents):
174550
1745512012-11-12  Kentaro Hara  <haraken@chromium.org>
174552
174553        [V8] V8Event::valueAccessorGetter() in custom binding is not used
174554        https://bugs.webkit.org/show_bug.cgi?id=101893
174555
174556        Reviewed by Adam Barth.
174557
174558        No tests. No change in behavior.
174559
174560        * bindings/v8/custom/V8EventCustom.cpp:
174561
1745622012-11-12  Roger Fong  <roger_fong@apple.com>
174563
174564        Web Inspector: Fix docking behaviour on Windows.
174565        https://bugs.webkit.org/show_bug.cgi?id=101978
174566
174567        Reviewed by Brian Weinstein.
174568
174569        There are a number of problems with docking behaviour on Windows.
174570        For starters, it does not ever constrain the inspector's size properly while docked.
174571        It also does not properly set the whether or not the inspector can be docked/undocked.
174572        This patch fixes both issues.
174573
174574        * inspector/InspectorFrontendClientLocal.cpp:
174575        (WebCore::InspectorFrontendClientLocal::frontendLoaded):
174576        Switch order of calling bringToFront and setDockingUnavailable.
174577
1745782012-11-12  Adam Barth  <abarth@webkit.org>
174579
174580        [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
174581        https://bugs.webkit.org/show_bug.cgi?id=101519
174582
174583        Reviewed by Ojan Vafai.
174584
174585        There should be no change in behavior.  The new API is slightly faster
174586        than the old API (and apparently works correctly internally in V8).
174587
174588        * bindings/scripts/CodeGeneratorV8.pm:
174589        (GenerateHeader):
174590        * bindings/scripts/test/V8/V8Float64Array.h:
174591        (WebCore::V8Float64Array::toNative):
174592        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
174593        (WebCore::V8TestActiveDOMObject::toNative):
174594        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
174595        (WebCore::V8TestCustomNamedGetter::toNative):
174596        * bindings/scripts/test/V8/V8TestEventConstructor.h:
174597        (WebCore::V8TestEventConstructor::toNative):
174598        * bindings/scripts/test/V8/V8TestEventTarget.h:
174599        (WebCore::V8TestEventTarget::toNative):
174600        * bindings/scripts/test/V8/V8TestException.h:
174601        (WebCore::V8TestException::toNative):
174602        * bindings/scripts/test/V8/V8TestInterface.h:
174603        (WebCore::V8TestInterface::toNative):
174604        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
174605        (WebCore::V8TestMediaQueryListListener::toNative):
174606        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
174607        (WebCore::V8TestNamedConstructor::toNative):
174608        * bindings/scripts/test/V8/V8TestNode.h:
174609        (WebCore::V8TestNode::toNative):
174610        * bindings/scripts/test/V8/V8TestObj.h:
174611        (WebCore::V8TestObj::toNative):
174612        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
174613        (WebCore::V8TestSerializedScriptValueInterface::toNative):
174614        * bindings/v8/NPV8Object.cpp:
174615        (WebCore::v8ObjectToNPObject):
174616        (WebCore::npCreateV8ScriptObject):
174617        * bindings/v8/V8Collection.h:
174618        (WebCore::toNativeCollection):
174619        * bindings/v8/V8DOMWindowShell.cpp:
174620        (WebCore::setIsolatedWorldField):
174621        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
174622        * bindings/v8/V8DOMWrapper.cpp:
174623        (WebCore::V8DOMWrapper::isWrapperOfType):
174624        * bindings/v8/V8DOMWrapper.h:
174625        (WebCore::V8DOMWrapper::setDOMWrapper):
174626        (WebCore::V8DOMWrapper::clearDOMWrapper):
174627        * bindings/v8/WrapperTypeInfo.h:
174628        (WebCore::toNative):
174629        (WebCore::toWrapperTypeInfo):
174630
1746312012-11-12  Andreas Kling  <kling@webkit.org>
174632
174633        Rename AttributeStyle => PresentationAttributeStyle across WebCore.
174634        <http://webkit.org/b/101975>
174635
174636        Rubber-stamped by Antti Koivisto.
174637
174638        The completely separate concepts of "attribute style" and "style attribute" were a bit too
174639        easy to confuse in variable and method names. Reconfigure our terminology to call it
174640        "presentation attribute style" instead of "attribute style".
174641
174642        * css/StyleResolver.cpp:
174643        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
174644        (WebCore::StyleResolver::matchAllRules):
174645        (WebCore::StyleResolver::canShareStyleWithElement):
174646        * dom/Attr.cpp:
174647        (WebCore::Attr::style):
174648        * dom/ElementAttributeData.cpp:
174649        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
174650        (WebCore::ElementAttributeData::reportMemoryUsage):
174651        * dom/ElementAttributeData.h:
174652        (WebCore::ElementAttributeData::presentationAttributeStyle):
174653        (WebCore::ElementAttributeData::setPresentationAttributeStyle):
174654        (ElementAttributeData):
174655        * dom/Node.h:
174656        (WebCore::Node::attributeStyleDirty):
174657        (WebCore::Node::setPresentationAttributeStyleDirty):
174658        (WebCore::Node::clearPresentationAttributeStyleDirty):
174659        * dom/StyledElement.cpp:
174660        (WebCore::StyledElement::attributeChanged):
174661        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
174662        (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
174663        * dom/StyledElement.h:
174664        (WebCore::StyledElement::additionalPresentationAttributeStyle):
174665        (StyledElement):
174666        (WebCore::StyledElement::collectStyleForPresentationAttribute):
174667        (WebCore::StyledElement::presentationAttributeStyle):
174668        * html/HTMLBRElement.cpp:
174669        (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
174670        * html/HTMLBRElement.h:
174671        (HTMLBRElement):
174672        * html/HTMLBodyElement.cpp:
174673        (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
174674        * html/HTMLBodyElement.h:
174675        (HTMLBodyElement):
174676        * html/HTMLDivElement.cpp:
174677        (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
174678        * html/HTMLDivElement.h:
174679        (HTMLDivElement):
174680        * html/HTMLElement.cpp:
174681        (WebCore::HTMLElement::applyBorderAttributeToStyle):
174682        (WebCore::HTMLElement::mapLanguageAttributeToLocale):
174683        (WebCore::HTMLElement::collectStyleForPresentationAttribute):
174684        (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
174685        (WebCore::HTMLElement::addHTMLLengthToStyle):
174686        * html/HTMLElement.h:
174687        (HTMLElement):
174688        * html/HTMLEmbedElement.cpp:
174689        (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
174690        * html/HTMLEmbedElement.h:
174691        (HTMLEmbedElement):
174692        * html/HTMLFontElement.cpp:
174693        (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
174694        * html/HTMLFontElement.h:
174695        (HTMLFontElement):
174696        * html/HTMLFrameSetElement.cpp:
174697        (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
174698        * html/HTMLFrameSetElement.h:
174699        (HTMLFrameSetElement):
174700        * html/HTMLHRElement.cpp:
174701        (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
174702        * html/HTMLHRElement.h:
174703        (HTMLHRElement):
174704        * html/HTMLIFrameElement.cpp:
174705        (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
174706        * html/HTMLIFrameElement.h:
174707        (HTMLIFrameElement):
174708        * html/HTMLImageElement.cpp:
174709        (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
174710        * html/HTMLImageElement.h:
174711        (HTMLImageElement):
174712        * html/HTMLInputElement.cpp:
174713        (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
174714        * html/HTMLInputElement.h:
174715        (HTMLInputElement):
174716        * html/HTMLLIElement.cpp:
174717        (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
174718        * html/HTMLLIElement.h:
174719        (HTMLLIElement):
174720        * html/HTMLMarqueeElement.cpp:
174721        (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
174722        * html/HTMLMarqueeElement.h:
174723        (HTMLMarqueeElement):
174724        * html/HTMLOListElement.cpp:
174725        (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
174726        * html/HTMLOListElement.h:
174727        (HTMLOListElement):
174728        * html/HTMLObjectElement.cpp:
174729        (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
174730        * html/HTMLObjectElement.h:
174731        (HTMLObjectElement):
174732        * html/HTMLParagraphElement.cpp:
174733        (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
174734        * html/HTMLParagraphElement.h:
174735        (HTMLParagraphElement):
174736        * html/HTMLPlugInElement.cpp:
174737        (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
174738        * html/HTMLPlugInElement.h:
174739        (HTMLPlugInElement):
174740        * html/HTMLPreElement.cpp:
174741        (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
174742        * html/HTMLPreElement.h:
174743        (HTMLPreElement):
174744        * html/HTMLTableCaptionElement.cpp:
174745        (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
174746        * html/HTMLTableCaptionElement.h:
174747        (HTMLTableCaptionElement):
174748        * html/HTMLTableCellElement.cpp:
174749        (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
174750        (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
174751        * html/HTMLTableCellElement.h:
174752        (HTMLTableCellElement):
174753        * html/HTMLTableColElement.cpp:
174754        (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
174755        (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
174756        * html/HTMLTableColElement.h:
174757        (HTMLTableColElement):
174758        * html/HTMLTableElement.cpp:
174759        (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
174760        (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
174761        * html/HTMLTableElement.h:
174762        (HTMLTableElement):
174763        * html/HTMLTablePartElement.cpp:
174764        (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
174765        * html/HTMLTablePartElement.h:
174766        (HTMLTablePartElement):
174767        * html/HTMLTableSectionElement.cpp:
174768        (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
174769        * html/HTMLTableSectionElement.h:
174770        (HTMLTableSectionElement):
174771        * html/HTMLTextAreaElement.cpp:
174772        (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
174773        * html/HTMLTextAreaElement.h:
174774        (HTMLTextAreaElement):
174775        * html/HTMLUListElement.cpp:
174776        (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
174777        * html/HTMLUListElement.h:
174778        (HTMLUListElement):
174779        * html/HTMLVideoElement.cpp:
174780        (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
174781        * html/HTMLVideoElement.h:
174782        (HTMLVideoElement):
174783        * inspector/InspectorCSSAgent.cpp:
174784        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
174785        * mathml/MathMLElement.cpp:
174786        (WebCore::MathMLElement::collectStyleForPresentationAttribute):
174787        * mathml/MathMLElement.h:
174788        (MathMLElement):
174789        * svg/SVGImageElement.cpp:
174790        (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
174791        * svg/SVGImageElement.h:
174792        (SVGImageElement):
174793        * svg/SVGStyledElement.cpp:
174794        (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
174795        * svg/SVGStyledElement.h:
174796        (SVGStyledElement):
174797        * svg/SVGTextContentElement.cpp:
174798        (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
174799        * svg/SVGTextContentElement.h:
174800        (SVGTextContentElement):
174801
1748022012-11-12  Adam Barth  <abarth@webkit.org>
174803
174804        [V8] Many things crash when switching to V8's new aligned pointer API
174805        https://bugs.webkit.org/show_bug.cgi?id=101994
174806
174807        Reviewed by Eric Seidel.
174808
174809        When using the aligned pointer API, we need to make sure to initialize
174810        every internal field that we later read because the new API has better
174811        error checks than the old API. This patch explicitly initializes the
174812        enteredIsolatedWorldIndex internal field to zero for main worlds,
174813        fixing the LayoutTest crashes from our previous attempt to move the
174814        aligned pointer API.
174815
174816        * bindings/v8/V8DOMWindowShell.cpp:
174817        (WebCore::V8DOMWindowShell::initializeIfNeeded):
174818
1748192012-11-12  Simon Fraser  <simon.fraser@apple.com>
174820
174821        Reduce the crazy number of parameters to RenderLayer painting member functions
174822        https://bugs.webkit.org/show_bug.cgi?id=101895
174823
174824        Reviewed by Beth Dakin.
174825
174826        The various RenderLayer::paintLayer* functions took a lot of arguments, most
174827        of which were passed down directly to descendants.
174828        
174829        Gather these arguments into a LayerPaintingInfo struct.
174830
174831        * rendering/RenderLayer.cpp:
174832        (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
174833        to descendant paint calls.
174834        (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
174835        (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
174836        make a new LayerPaintingInfo because the root layer is shifted.
174837        (WebCore::RenderLayer::paintLayerContentsAndReflection):
174838        (WebCore::RenderLayer::paintLayerContents):
174839        (WebCore::RenderLayer::paintList):
174840        (WebCore::RenderLayer::paintPaginatedChildLayer):
174841        (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
174842        struct for column painting.
174843        * rendering/RenderLayer.h:
174844        (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
174845        (LayerPaintingInfo):
174846        * rendering/RenderLayerBacking.cpp:
174847        (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
174848        to enter layer painting.
174849        * rendering/RenderReplica.cpp:
174850        (WebCore::RenderReplica::paint): Ditto.
174851
1748522012-11-12  Brady Eidson  <beidson@apple.com>
174853
174854        NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
174855        https://bugs.webkit.org/show_bug.cgi?id=101872
174856
174857        Reviewed by Alexey Proskuryakov.
174858
174859        Expose shouldSniffContent to pass it along to the NetworkProcess.
174860
174861        * loader/ResourceLoader.h:
174862        (WebCore::ResourceLoader::shouldSniffContent):
174863
1748642012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
174865
174866        Fix memory leak in createSurfaceForBackingStore()
174867        https://bugs.webkit.org/show_bug.cgi?id=101941
174868
174869        Reviewed by Kenneth Rohde Christiansen.
174870
174871        Fix memory leak in createSurfaceForBackingStore(),
174872        the RefPtr<cairo_surface_t> should be released
174873        when returned since we pass ownership to the
174874        caller.
174875
174876        No new tests, no behavior change for layout tests.
174877
174878        * platform/graphics/efl/CairoUtilitiesEfl.cpp:
174879        (WebCore::createSurfaceForBackingStore):
174880
1748812012-11-12  Joe Mason  <jmason@rim.com>
174882
174883        [BlackBerry] Update to new proxyInfo API
174884        https://bugs.webkit.org/show_bug.cgi?id=101945
174885
174886        Reviewed by George Staikos.
174887
174888        Internal PR: 234680
174889        Reviewed internally by: Leo Yang
174890
174891        The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
174892        have been replaced with a single, more efficient proxyInfo method.
174893
174894        No new tests because this is an API update with no behaviour change.
174895
174896        * platform/network/blackberry/NetworkJob.cpp:
174897        (WebCore::NetworkJob::sendRequestWithCredentials):
174898        (WebCore::NetworkJob::storeCredentials):
174899
1749002012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
174901
174902        Unreviewed, rolling out r126157.
174903        http://trac.webkit.org/changeset/126157
174904        https://bugs.webkit.org/show_bug.cgi?id=101954
174905
174906        This patch caused (untestable) regression of the volume
174907        property on Mac, Win, and Blackberry ports. (Requested by
174908        jernoble on #webkit).
174909
174910        * platform/graphics/MediaPlayer.cpp:
174911        (WebCore::MediaPlayer::loadWithNextMediaEngine):
174912        (WebCore::MediaPlayer::setVolume):
174913        (WebCore::MediaPlayer::setMuted):
174914        (WebCore::MediaPlayer::setPreservesPitch):
174915        (WebCore::MediaPlayer::setSize):
174916        (WebCore::MediaPlayer::setVisible):
174917        (WebCore::MediaPlayer::setPreload):
174918
1749192012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
174920
174921        Specified width CSS tables should not include border and padding as part of that width.
174922        https://bugs.webkit.org/show_bug.cgi?id=77028
174923
174924        Reviewed by Julien Chaffraix.
174925
174926        CSS table width should not include border and padding even though HTML
174927        tables size as though their width includes border/padding.
174928
174929        This is applicable for all CSS tables with specified widths.
174930
174931        The change would also make our rendering of CSS tables with specified
174932        width similar to that of Opera, IE and FF.
174933
174934        Test: fast/table/css-table-width-with-border-padding.html
174935
174936        * rendering/RenderTable.cpp:
174937        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
174938        Added check for all (positive) specified widths for CSS tables to
174939        consider border and padding outside of the specified width.
174940
1749412012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
174942
174943        Move resolving blob references to FormData.
174944        https://bugs.webkit.org/show_bug.cgi?id=101754
174945
174946        Reviewed by Simon Hausmann.
174947
174948        Resolving Blob-references to a set of just File and Data is done similar by several platforms.
174949        This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
174950        BlackBerry network implementation.
174951
174952        * platform/network/FormData.cpp:
174953        (WebCore::appendBlobResolved):
174954        (WebCore::FormData::resolveBlobReferences):
174955        * platform/network/FormData.h:
174956        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
174957        (WebCore::ResourceRequest::initializePlatformRequest):
174958        * platform/network/cf/FormDataStreamCFNet.cpp:
174959        (WebCore::setHTTPBody):
174960        * platform/network/qt/QNetworkReplyHandler.cpp:
174961        (WebCore::FormDataIODevice::prepareFormElements):
174962
1749632012-11-12  Zeno Albisser  <zeno@webkit.org>
174964
174965        GraphicsSurfaceGLX does not handle transparency correctly.
174966        https://bugs.webkit.org/show_bug.cgi?id=101943
174967
174968        GraphicsSurfacGLX must consistently use RGBA texture format.
174969        glXCreateWindow must be called after creating the XWindow
174970        that serves as a temporary offscreen texture storage, in order
174971        to allow for transparency.
174972        When creating the offscreen XWindow we must make sure,
174973        that we use a framebuffer configuration that supports
174974        an alpha mask.
174975
174976        Reviewed by Noam Rosenthal.
174977
174978        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
174979        (WebCore):
174980        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
174981        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
174982        (WebCore::GraphicsSurfacePrivate::createSurface):
174983        (GraphicsSurfacePrivate):
174984        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
174985
1749862012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
174987
174988        Unreviewed, rolling out r134225.
174989        http://trac.webkit.org/changeset/134225
174990        https://bugs.webkit.org/show_bug.cgi?id=101948
174991
174992        Appears to have broken the EFL and GTK builds (Requested by
174993        abarth on #webkit).
174994
174995        * bindings/js/JSHTMLElementCustom.cpp:
174996        (WebCore):
174997        (WebCore::JSHTMLElement::itemValue):
174998        (WebCore::JSHTMLElement::setItemValue):
174999        * bindings/v8/custom/V8HTMLElementCustom.cpp:
175000        (WebCore):
175001        (WebCore::V8HTMLElement::itemValueAccessorGetter):
175002        (WebCore::V8HTMLElement::itemValueAccessorSetter):
175003        * html/HTMLElement.idl:
175004
1750052012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
175006
175007        hitTestResultAtPoint does two hit-tests if called on non main frame
175008        https://bugs.webkit.org/show_bug.cgi?id=101915
175009
175010        Reviewed by Antonio Gomes.
175011
175012        Always redirect hitTestResultAtPoint to the main-frame. This used to being
175013        done on every result that hit anything, which caused running the expensive 
175014        hit-tests multiple times in almost all cases.
175015
175016        * page/EventHandler.cpp:
175017        (WebCore::EventHandler::hitTestResultAtPoint):
175018
1750192012-11-12  Kentaro Hara  <haraken@chromium.org>
175020
175021        [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
175022        https://bugs.webkit.org/show_bug.cgi?id=101892
175023
175024        Reviewed by Adam Barth.
175025
175026        We can remove [Custom] from callUID in ScriptProfileNode.idl.
175027
175028        No tests. No change in behavior.
175029
175030        * GNUmakefile.list.am:
175031        * Target.pri:
175032        * UseJSC.cmake:
175033        * WebCore.gypi:
175034        * WebCore.vcproj/WebCore.vcproj:
175035        * WebCore.xcodeproj/project.pbxproj:
175036        * bindings/js/JSBindingsAllInOne.cpp:
175037        * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
175038        * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
175039        * inspector/ScriptProfileNode.idl:
175040
1750412012-11-12  Kentaro Hara  <haraken@chromium.org>
175042
175043        [V8] Performance::memory getter needs not to be [Custom]
175044        https://bugs.webkit.org/show_bug.cgi?id=101890
175045
175046        Reviewed by Adam Barth.
175047
175048        No tests. No change in behavior.
175049
175050        * UseV8.cmake:
175051        * WebCore.gypi:
175052        * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
175053        * page/Performance.idl:
175054
1750552012-11-12  Kentaro Hara  <haraken@chromium.org>
175056
175057        [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
175058        https://bugs.webkit.org/show_bug.cgi?id=101888
175059
175060        Reviewed by Adam Barth.
175061
175062        We can remove [Custom] from getter. It is possible to remove [Custom]
175063        from setter, but it changes the current behavior.
175064        (I think the current implementation of the setter is wrong.
175065        I'll fix it in another patch.)
175066
175067        No tests. No change in behavior.
175068
175069        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
175070        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
175071        * html/HTMLOptionsCollection.idl:
175072
1750732012-11-12  Yael Aharon  <yael.aharon@intel.com>
175074
175075        [EFL][WK2][AC] Black screen when applications use software backend.
175076        https://bugs.webkit.org/show_bug.cgi?id=101659
175077
175078        Reviewed by Kenneth Rohde Christiansen.
175079
175080        Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
175081
175082        No new tests. Will be covered when running existing tests without enabling openGL.
175083
175084        * platform/graphics/efl/CairoUtilitiesEfl.cpp:
175085        (WebCore::createSurfaceForImage):
175086        (WebCore):
175087        * platform/graphics/efl/CairoUtilitiesEfl.h:
175088        (WebCore):
175089
1750902012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
175091
175092        Unreviewed. Fix make distcheck.
175093
175094        * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
175095        contain idl files anymore.
175096        * GNUmakefile.list.am: Add missing header files.
175097
1750982012-11-12  Tommy Widenflycht  <tommyw@google.com>
175099
175100        MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
175101        https://bugs.webkit.org/show_bug.cgi?id=101733
175102
175103        Reviewed by Jochen Eisinger.
175104
175105        This patch adds better verification to MediaConstraintsImpl.
175106
175107        Existing tests expanded to cover this change.
175108
175109        * Modules/mediastream/MediaConstraintsImpl.cpp:
175110        (WebCore::MediaConstraintsImpl::initialize):
175111
1751122012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
175113
175114        Unreviewed, rolling out r134223.
175115        http://trac.webkit.org/changeset/134223
175116        https://bugs.webkit.org/show_bug.cgi?id=101939
175117
175118        Breaks inspector tests (Requested by pfeldman on #webkit).
175119
175120        * inspector/front-end/DefaultTextEditor.js:
175121        (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
175122        (WebInspector.TextEditorMainPanel):
175123        (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
175124        (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
175125        (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
175126        (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
175127        (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
175128        (WebInspector.TextEditorMainPanel.prototype._paintLine):
175129        (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
175130        (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
175131        (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
175132        * inspector/front-end/externs.js:
175133        * inspector/front-end/textEditor.css:
175134
1751352012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
175136
175137        [Qt] Support ResourceRequest's setTimeoutInterval
175138        https://bugs.webkit.org/show_bug.cgi?id=101731
175139
175140        Reviewed by Simon Hausmann.
175141
175142        Establish a timeout and return the correct error when it is triggered.
175143
175144        Tested by existing http/tests/xmlhttprequest/timeout tests.
175145
175146        * platform/network/ResourceRequestBase.cpp:
175147        * platform/network/qt/QNetworkReplyHandler.cpp:
175148        (WebCore::QNetworkReplyHandler::release):
175149        (WebCore::QNetworkReplyHandler::finish):
175150        (WebCore::QNetworkReplyHandler::timeout):
175151        (WebCore::QNetworkReplyHandler::timerEvent):
175152        (WebCore::QNetworkReplyHandler::start):
175153        * platform/network/qt/QNetworkReplyHandler.h:
175154        (QNetworkReplyHandler):
175155
1751562012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
175157
175158        Unreviewed, rolling out r134224.
175159        http://trac.webkit.org/changeset/134224
175160        https://bugs.webkit.org/show_bug.cgi?id=101937
175161
175162        asserting on bawts (Requested by kling on #webkit).
175163
175164        * rendering/style/RenderStyle.cpp:
175165        (WebCore::RenderStyle::diff):
175166        (WebCore::RenderStyle::setColor):
175167        (WebCore::RenderStyle::setVisitedLinkColor):
175168        * rendering/style/RenderStyle.h:
175169        * rendering/style/StyleBackgroundData.cpp:
175170        (WebCore::StyleBackgroundData::StyleBackgroundData):
175171        * rendering/style/StyleBackgroundData.h:
175172        (WebCore::StyleBackgroundData::color):
175173        (StyleBackgroundData):
175174        * rendering/style/StyleInheritedData.cpp:
175175        (WebCore::StyleInheritedData::StyleInheritedData):
175176        * rendering/style/StyleInheritedData.h:
175177        (StyleInheritedData):
175178        * rendering/style/StyleMultiColData.cpp:
175179        (WebCore::StyleMultiColData::StyleMultiColData):
175180        * rendering/style/StyleMultiColData.h:
175181        (StyleMultiColData):
175182        * rendering/style/StyleRareInheritedData.cpp:
175183        (SameSizeAsStyleRareInheritedData):
175184        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
175185        (WebCore::StyleRareInheritedData::operator==):
175186        * rendering/style/StyleRareInheritedData.h:
175187        (WebCore):
175188        (StyleRareInheritedData):
175189        * rendering/style/StyleRareNonInheritedData.cpp:
175190        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
175191        (WebCore::StyleRareNonInheritedData::operator==):
175192        * rendering/style/StyleRareNonInheritedData.h:
175193        (StyleRareNonInheritedData):
175194
1751952012-11-12  Tiancheng Jiang  <tijiang@rim.com>
175196
175197        [BlackBerry] Update BB10 form theme.
175198        https://bugs.webkit.org/show_bug.cgi?id=100760
175199
175200        Reviewed by Rob Buis.
175201
175202        RIM PR 236993
175203        Internally Reviewed by Jeff Rogers.
175204        Use slide and paint method on slider range and media controls.
175205
175206        * platform/blackberry/RenderThemeBlackBerry.cpp:
175207        (WebCore):
175208        (WebCore::drawThreeSliceHorizontal):
175209        (WebCore::drawThreeSliceVertical):
175210        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
175211        (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
175212        (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
175213        (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
175214        * platform/blackberry/RenderThemeBlackBerry.h:
175215        (RenderThemeBlackBerry):
175216
1752172012-11-12  Kent Tamura  <tkent@chromium.org>
175218
175219        Refactoring: set read-only values on layout in DateTimeEditElement
175220        https://bugs.webkit.org/show_bug.cgi?id=101916
175221
175222        Reviewed by Kentaro Hara.
175223
175224        We have always updated read-only values when we set an empty value or
175225        DateTimeFieldsState. It has wasted CPU time because such read-only
175226        values are never updated after layout() essentially. So, we set
175227        read-only values in DateTimeEditBuilder used by layout(), and remove
175228        dateForReadOnlyField arguments of setEmptyValue and
175229        setValueAsDateTimeFieldsState.
175230
175231        No new tests. This should not make behavior changes.
175232
175233        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
175234        (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
175235        We removed dateForReadOnlyField argument because read-only values are
175236        already set in DateTimeFieldElement::layout().
175237        * html/shadow/DateTimeEditElement.cpp:
175238        (WebCore::DateTimeEditBuilder::visitField):
175239        Set a value to a read-only minute/second/millisecond field while
175240        building UI elements.
175241        Also, changed variable types for millisecond and second fields to
175242        RefPtr<DateTimeNumericFieldElement> because we'd like to call
175243        setValueAsDate, which is private in DateTimeMillisecondFieldElement and
175244        DateTimeSecondFieldElement
175245        (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
175246        We removed dateForReadOnlyField argument because read-only values are
175247        already set in DateTimeFieldElement::layout().
175248        (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
175249        * html/shadow/DateTimeEditElement.h:
175250        (DateTimeEditElement):
175251        Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
175252
175253        * html/shadow/DateTimeFieldElement.cpp:
175254        (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
175255        We removed dateForReadOnlyField argument because read-only values are
175256        already set in DateTimeFieldElement::layout().
175257        * html/shadow/DateTimeFieldElement.h:
175258        (DateTimeFieldElement): Ditto.
175259
175260        * html/shadow/DateTimeFieldElements.cpp: Ditto.
175261        * html/shadow/DateTimeFieldElements.h: Ditto.
175262        * html/shadow/DateTimeNumericFieldElement.cpp:
175263        (WebCore::DateTimeNumericFieldElement::setEmptyValue):
175264        It should do nothing if it is read-only because a read-only value was
175265        already set just after construction.
175266        * html/shadow/DateTimeNumericFieldElement.h:
175267        (DateTimeNumericFieldElement):
175268        Removed dateForReadOnlyField argument of setEmptyValue.
175269        * html/shadow/DateTimeSymbolicFieldElement.cpp:
175270        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
175271        * html/shadow/DateTimeSymbolicFieldElement.h:
175272        (DateTimeSymbolicFieldElement): Ditto.
175273
1752742012-11-12  Tiancheng Jiang  <tijiang@rim.com>
175275
175276        [BlackBerry] Update BB10 form theme.
175277        https://bugs.webkit.org/show_bug.cgi?id=100760
175278
175279        Reviewed by Rob Buis.
175280
175281        RIM PR 236993
175282        Internally Reviewed by Jeff Rogers.
175283        Enable GL slider.
175284
175285        * platform/blackberry/RenderThemeBlackBerry.cpp:
175286        (WebCore::drawThreeSlice):
175287        (WebCore):
175288        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
175289        (WebCore::RenderThemeBlackBerry::paintSliderThumb):
175290
1752912012-11-12  Kentaro Hara  <haraken@chromium.org>
175292
175293        [V8][JSC] HTMLElement::itemValue() needs not to be custom
175294        https://bugs.webkit.org/show_bug.cgi?id=101882
175295
175296        Reviewed by Adam Barth.
175297
175298        We can remove a [Custom] IDL attribute.
175299
175300        No tests. No change in behavior.
175301
175302        * bindings/js/JSHTMLElementCustom.cpp:
175303        * bindings/v8/custom/V8HTMLElementCustom.cpp:
175304        * html/HTMLElement.idl:
175305
1753062012-11-12  Andreas Kling  <kling@webkit.org>
175307
175308        RenderStyle: Pack Color members tighter in substructures.
175309        <http://webkit.org/b/101860>
175310
175311        Reviewed by Antti Koivisto.
175312
175313        For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
175314        members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
175315
175316        Memory saved per instance:
175317
175318            - StyleMultiColData:          4 bytes
175319            - StyleBackgroundData:        8 bytes
175320            - StyleInheritedData:         8 bytes
175321            - StyleRareInheritedData:    24 bytes
175322            - StyleRareNonInheritedData: 24 bytes
175323
175324        323kB progression on Membuster3.
175325
175326        * rendering/style/RenderStyle.cpp:
175327        (WebCore::RenderStyle::diff):
175328        (WebCore::RenderStyle::setColor):
175329        (WebCore::RenderStyle::setVisitedLinkColor):
175330        (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
175331        (WebCore::RenderStyle::setBackgroundColor):
175332        * rendering/style/RenderStyle.h:
175333        * rendering/style/StyleBackgroundData.cpp:
175334        (WebCore::StyleBackgroundData::StyleBackgroundData):
175335        * rendering/style/StyleBackgroundData.h:
175336        (WebCore::StyleBackgroundData::color):
175337        (StyleBackgroundData):
175338        * rendering/style/StyleInheritedData.cpp:
175339        (WebCore::StyleInheritedData::StyleInheritedData):
175340        * rendering/style/StyleInheritedData.h:
175341        (StyleInheritedData):
175342        * rendering/style/StyleMultiColData.cpp:
175343        (WebCore::StyleMultiColData::StyleMultiColData):
175344        (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
175345        * rendering/style/StyleMultiColData.h:
175346        (StyleMultiColData):
175347        (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
175348        * rendering/style/StyleRareInheritedData.cpp:
175349        (SameSizeAsStyleRareInheritedData):
175350        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
175351        (WebCore::StyleRareInheritedData::operator==):
175352        (WebCore::StyleRareInheritedData::setTextStrokeColor):
175353        (WebCore::StyleRareInheritedData::setTextFillColor):
175354        (WebCore::StyleRareInheritedData::setTextEmphasisColor):
175355        (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
175356        (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
175357        (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
175358        * rendering/style/StyleRareInheritedData.h:
175359        (StyleRareInheritedData):
175360        (WebCore::StyleRareInheritedData::textStrokeColor):
175361        (WebCore::StyleRareInheritedData::textFillColor):
175362        (WebCore::StyleRareInheritedData::textEmphasisColor):
175363        (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
175364        (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
175365        (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
175366        * rendering/style/StyleRareNonInheritedData.cpp:
175367        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
175368        (WebCore::StyleRareNonInheritedData::operator==):
175369        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
175370        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
175371        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
175372        (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
175373        (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
175374        (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
175375        * rendering/style/StyleRareNonInheritedData.h:
175376        (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
175377        (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
175378        (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
175379        (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
175380        (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
175381        (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
175382        (StyleRareNonInheritedData):
175383
1753842012-11-12  Pavel Feldman  <pfeldman@chromium.org>
175385
175386        Web Inspector: migrate text editor to mutation observers
175387        https://bugs.webkit.org/show_bug.cgi?id=101841
175388
175389        Reviewed by Vsevolod Vlasov.
175390
175391        Otherwise, we miss notifications on the removed lines.
175392
175393        * inspector/front-end/DefaultTextEditor.js:
175394        (WebInspector.TextEditorMainPanel):
175395        (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
175396        (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
175397        (WebInspector.TextEditorMainPanel.prototype._handleMutations):
175398        (WebInspector.TextEditorMainPanel.prototype._handleMutation):
175399        * inspector/front-end/externs.js:
175400        (WebKitMutation):
175401        (WebKitMutationObserver.prototype.observe):
175402        (WebKitMutationObserver.prototype.disconnect):
175403
1754042012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
175405
175406        [Qt] Flash-plugin starts with wrong width
175407        https://bugs.webkit.org/show_bug.cgi?id=101836
175408
175409        Reviewed by Simon Hausmann.
175410
175411        Defer the setWindow call, so that the one time it is called it will have its final size.
175412
175413        * plugins/PluginPackage.cpp:
175414        (WebCore::PluginPackage::determineQuirks):
175415
1754162012-11-12  Tommy Widenflycht  <tommyw@google.com>
175417
175418        Remove the V8 custom code for WebSockets constructor
175419        https://bugs.webkit.org/show_bug.cgi?id=100801
175420
175421        Reviewed by Kentaro Hara.
175422
175423        This patch does the following:
175424
175425        1) Modifies the V8 code generator to support overloaded constructors,
175426           the JS generator is fixed to work as before. Proper support for JS will come later.
175427
175428        2) Modifies WebSocket.h/.cpp for the new constructors.
175429
175430        Tested by running WebSockets layout tests.
175431
175432        * Modules/websockets/WebSocket.cpp:
175433        (WebCore::WebSocket::create):
175434        (WebCore):
175435        * Modules/websockets/WebSocket.h:
175436        (WebSocket):
175437        * Modules/websockets/WebSocket.idl:
175438        * bindings/scripts/CodeGeneratorJS.pm:
175439        (GenerateConstructorDefinition):
175440        * bindings/scripts/CodeGeneratorV8.pm:
175441        (GenerateHeader):
175442        (GenerateOverloadedConstructorCallback):
175443        (GenerateSingleConstructorCallback):
175444        (GenerateConstructorCallback):
175445        (GenerateImplementation):
175446        * bindings/scripts/IDLParser.pm:
175447        (copyAttributes):
175448        (parseExtendedAttributeList):
175449        (parseExtendedAttributes):
175450        (applyExtendedAttributeList):
175451        * bindings/scripts/IDLStructure.pm:
175452        * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
175453        (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
175454        (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
175455        (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
175456        (WebDOMTestOverloadedConstructors::operator=):
175457        (WebDOMTestOverloadedConstructors::impl):
175458        (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
175459        (toWebCore):
175460        (toWebKit):
175461        * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
175462        (WebCore):
175463        (WebDOMTestOverloadedConstructors):
175464        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
175465        (WebKit):
175466        (WebKit::kit):
175467        (WebKit::core):
175468        (WebKit::wrapTestOverloadedConstructors):
175469        (webkit_dom_test_overloaded_constructors_finalize):
175470        (webkit_dom_test_overloaded_constructors_set_property):
175471        (webkit_dom_test_overloaded_constructors_get_property):
175472        (webkit_dom_test_overloaded_constructors_constructed):
175473        (webkit_dom_test_overloaded_constructors_class_init):
175474        (webkit_dom_test_overloaded_constructors_init):
175475        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
175476        (_WebKitDOMTestOverloadedConstructors):
175477        (_WebKitDOMTestOverloadedConstructorsClass):
175478        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
175479        (WebKit):
175480        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
175481        (WebCore):
175482        (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
175483        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
175484        (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
175485        (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
175486        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
175487        (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
175488        (WebCore::JSTestOverloadedConstructorsPrototype::self):
175489        (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
175490        (WebCore::JSTestOverloadedConstructors::finishCreation):
175491        (WebCore::JSTestOverloadedConstructors::createPrototype):
175492        (WebCore::JSTestOverloadedConstructors::destroy):
175493        (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
175494        (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
175495        (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
175496        (WebCore::jsTestOverloadedConstructorsConstructor):
175497        (WebCore::JSTestOverloadedConstructors::getConstructor):
175498        (WebCore::isObservable):
175499        (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
175500        (WebCore::JSTestOverloadedConstructorsOwner::finalize):
175501        (WebCore::toJS):
175502        (WebCore::toTestOverloadedConstructors):
175503        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
175504        (WebCore):
175505        (JSTestOverloadedConstructors):
175506        (WebCore::JSTestOverloadedConstructors::create):
175507        (WebCore::JSTestOverloadedConstructors::createStructure):
175508        (WebCore::JSTestOverloadedConstructors::impl):
175509        (WebCore::JSTestOverloadedConstructors::releaseImpl):
175510        (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
175511        (JSTestOverloadedConstructorsOwner):
175512        (WebCore::wrapperOwner):
175513        (WebCore::wrapperContext):
175514        (JSTestOverloadedConstructorsPrototype):
175515        (WebCore::JSTestOverloadedConstructorsPrototype::create):
175516        (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
175517        (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
175518        (JSTestOverloadedConstructorsConstructor):
175519        (WebCore::JSTestOverloadedConstructorsConstructor::create):
175520        (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
175521        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
175522        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
175523        (-[DOMTestOverloadedConstructors dealloc]):
175524        (-[DOMTestOverloadedConstructors finalize]):
175525        (core):
175526        (kit):
175527        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
175528        (WebCore):
175529        * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
175530        * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
175531        * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
175532        (WebCore):
175533        (TestOverloadedConstructorsV8Internal):
175534        (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
175535        (WebCore::V8TestOverloadedConstructors::constructor1Callback):
175536        (WebCore::V8TestOverloadedConstructors::constructor2Callback):
175537        (WebCore::V8TestOverloadedConstructors::constructor3Callback):
175538        (WebCore::V8TestOverloadedConstructors::constructor4Callback):
175539        (WebCore::V8TestOverloadedConstructors::constructorCallback):
175540        (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
175541        (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
175542        (WebCore::V8TestOverloadedConstructors::GetTemplate):
175543        (WebCore::V8TestOverloadedConstructors::HasInstance):
175544        (WebCore::V8TestOverloadedConstructors::wrapSlow):
175545        (WebCore::V8TestOverloadedConstructors::derefObject):
175546        * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
175547        (WebCore):
175548        (V8TestOverloadedConstructors):
175549        (WebCore::V8TestOverloadedConstructors::toNative):
175550        (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
175551        (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
175552        (WebCore::V8TestOverloadedConstructors::wrap):
175553        (WebCore::toV8):
175554        * bindings/v8/custom/V8WebSocketCustom.cpp:
175555
1755562012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
175557
175558        [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
175559        https://bugs.webkit.org/show_bug.cgi?id=101891
175560
175561        Reviewed by Hajime Morita.
175562
175563        We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
175564        since it will have more features than the original RuleFeatureSet has.
175565
175566        Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
175567
175568        No new tests, no change in behavior.
175569
175570        * CMakeLists.txt:
175571        * GNUmakefile.list.am:
175572        * Target.pri:
175573        * WebCore.gypi:
175574        * WebCore.vcproj/WebCore.vcproj:
175575        * WebCore.xcodeproj/project.pbxproj:
175576        * dom/ElementShadow.h:
175577        (ElementShadow):
175578        (WebCore::ElementShadow::selectRuleFeatureSet):
175579        (WebCore):
175580        * html/shadow/SelectRuleFeatureSet.cpp: Added.
175581        (WebCore):
175582        (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
175583        (WebCore::SelectRuleFeatureSet::add):
175584        (WebCore::SelectRuleFeatureSet::clear):
175585        (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
175586        * html/shadow/SelectRuleFeatureSet.h: Added.
175587        (WebCore):
175588        (SelectRuleFeatureSet):
175589        (WebCore::SelectRuleFeatureSet::hasSelectorForId):
175590        (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
175591        (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
175592        * testing/Internals.cpp:
175593        (WebCore::Internals::hasSelectorForIdInShadow):
175594        (WebCore::Internals::hasSelectorForClassInShadow):
175595        (WebCore::Internals::hasSelectorForAttributeInShadow):
175596
1755972012-11-13  Keishi Hattori  <keishi@webkit.org>
175598
175599        Build fix for Chromium Android (caused by r134216)
175600
175601        Unreviewed.
175602
175603        No new tests.
175604
175605        * platform/text/PlatformLocale.cpp:
175606        (WebCore::Locale::formatDateTime):
175607
1756082012-11-12  Keishi Hattori  <keishi@webkit.org>
175609
175610        Add support for week/month to Locale::formatDateTime()
175611        https://bugs.webkit.org/show_bug.cgi?id=101878
175612
175613        Reviewed by Kent Tamura.
175614
175615        Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
175616
175617        Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
175618
175619        * platform/text/PlatformLocale.cpp:
175620        (WebCore::DateTimeStringBuilder::visitField):
175621        (WebCore::Locale::formatDateTime): Support week and month types.
175622
1756232012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
175624
175625        [Qt] Can not load MHTML documents
175626        https://bugs.webkit.org/show_bug.cgi?id=101765
175627
175628        Reviewed by Simon Hausmann.
175629
175630        Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
175631
175632        Tested by existing mhtml/ tests.
175633
175634        * platform/qt/MIMETypeRegistryQt.cpp:
175635        (WebCore):
175636
1756372012-11-12  Andreas Kling  <akling@apple.com>
175638
175639        Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
175640        <http://webkit.org/b/101850>
175641
175642        Reviewed by Antti Koivisto.
175643
175644        Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
175645        222kB progression on Membuster3.
175646
175647        * platform/network/ResourceRequestBase.cpp:
175648        (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
175649
1756502012-11-12  Tommy Widenflycht  <tommyw@google.com>
175651
175652        MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
175653        https://bugs.webkit.org/show_bug.cgi?id=101751
175654
175655        Reviewed by Adam Barth.
175656
175657        This patch queues the events until the JS interpreter is in an idle state.
175658
175659        Existing tests cover this patch.
175660
175661        * Modules/mediastream/RTCDataChannel.cpp:
175662        (WebCore::RTCDataChannel::RTCDataChannel):
175663        (WebCore::RTCDataChannel::readyStateChanged):
175664        (WebCore::RTCDataChannel::dataArrived):
175665        (WebCore::RTCDataChannel::error):
175666        (WebCore::RTCDataChannel::scheduleDispatchEvent):
175667        (WebCore):
175668        (WebCore::RTCDataChannel::scheduledEventTimerFired):
175669        * Modules/mediastream/RTCDataChannel.h:
175670        (RTCDataChannel):
175671        * platform/chromium/support/WebRTCDataChannel.cpp:
175672        (WebKit::WebRTCDataChannel::setBufferedAmount):
175673        (WebKit::WebRTCDataChannel::readyStateChanged):
175674        (WebKit::WebRTCDataChannel::dataArrived):
175675        (WebKit::WebRTCDataChannel::error):
175676
1756772012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
175678
175679        Remove HTMLInputElement dependency from PickerIndicatorElement
175680        https://bugs.webkit.org/show_bug.cgi?id=101913
175681
175682        Reviewed by Kent Tamura.
175683
175684        Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
175685        PickerIndicatorElement. It makes easier to add interactions between picker indicator
175686        and its owner without having to add functions to HTMLInputElement.
175687
175688        No new tests. This is just a refactor.
175689
175690        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
175691        (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
175692        (WebCore):
175693        (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
175694        (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
175695        (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
175696        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
175697        (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
175698        * html/BaseMultipleFieldsDateAndTimeInputType.h:
175699        (WebCore):
175700        (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
175701        * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
175702        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
175703        (WebCore::PickerIndicatorElement::create):
175704        (WebCore::PickerIndicatorElement::defaultEventHandler):
175705        (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
175706        (WebCore::PickerIndicatorElement::didChooseValue):
175707        (WebCore::PickerIndicatorElement::openPopup):
175708        * html/shadow/PickerIndicatorElement.h:
175709        (PickerIndicatorElement): Added a PickerIndicatorOwner member.
175710        (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
175711        (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
175712        (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
175713
1757142012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
175715
175716        [CSSRegions]Add support for text-shadow in region styling
175717        https://bugs.webkit.org/show_bug.cgi?id=94472
175718
175719        Reviewed by David Hyatt.
175720
175721        Original patch by Andrei Onea.
175722        Add support for text-shadow in region styling (@-webkit-region rule).
175723        In addition to the previously supported region styling properties (background-color and color),
175724        text-shadow requires the computation of an element style in region at layout time.
175725
175726        This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
175727        can be used to retrieve the object style in region (if already cached) or to compute it
175728        on the spot. When computing the object style in region, we need to compute the style in region
175729        also for the object ancestor, up to the content nodes.
175730
175731        This patch also refactors the way styles in region are computed and stored, because
175732        we can compute the style in region not only at paint time, but also at layout time.
175733
175734        Test: fast/regions/region-style-text-shadow.html
175735
175736        * css/StyleResolver.cpp:
175737        (WebCore::StyleResolver::isValidRegionStyleProperty):
175738        Allow text-shadow to be used in region styling.
175739        * rendering/InlineBox.cpp:
175740        (WebCore::InlineBox::styleInRegion):
175741        Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
175742        Compute the style in region if not computed yet.
175743        (WebCore::InlineBox::regionDuringLayout):
175744        Retrieve the region in which an InlineBox is being flowed.
175745        * rendering/InlineBox.h:
175746        * rendering/InlineFlowBox.cpp: Take region styling into account.
175747        (WebCore::InlineFlowBox::addToLine):
175748        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
175749        * rendering/RenderRegion.cpp:
175750        (WebCore::RenderRegion::setRegionObjectsRegionStyle):
175751        (WebCore::canCacheObjectStyleInRegion):
175752        Test if we can cache the computed style in region.
175753        (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
175754        (WebCore::RenderRegion::computeStyleInRegion):
175755        (WebCore::RenderRegion::setChildrenStyleInRegion):
175756        (WebCore::setObjectHasBoxDecorationsFlag):
175757        (WebCore::RenderRegion::setObjectStyleInRegion):
175758        (WebCore::RenderRegion::clearObjectStyleInRegion):
175759        (WebCore::RenderRegion::ensureRegionStyleForObject):
175760        * rendering/RenderRegion.h:
175761
1757622012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
175763
175764        Unreviewed, rolling out r134154.
175765        http://trac.webkit.org/changeset/134154
175766        https://bugs.webkit.org/show_bug.cgi?id=101919
175767
175768        Causes plenty of crashes on GTK and Apple Win builders
175769        (Requested by zdobersek on #webkit).
175770
175771        * css/mediaControls.css:
175772        * css/mediaControlsQuickTime.css:
175773        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
175774        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
175775        * html/shadow/MediaControlElements.cpp:
175776        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
175777        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
175778        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
175779        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
175780        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
175781        * html/shadow/MediaControlElements.h:
175782        (MediaControlElement):
175783        (MediaControlToggleClosedCaptionsButtonElement):
175784        * html/shadow/MediaControlRootElement.cpp:
175785        (WebCore::MediaControlRootElement::MediaControlRootElement):
175786        (WebCore::MediaControlRootElement::create):
175787        (WebCore::MediaControlRootElement::setMediaController):
175788        (WebCore::MediaControlRootElement::hide):
175789        (WebCore::MediaControlRootElement::makeTransparent):
175790        (WebCore::MediaControlRootElement::reset):
175791        (WebCore::MediaControlRootElement::reportedError):
175792        * html/shadow/MediaControlRootElement.h:
175793        (WebCore):
175794        (MediaControlRootElement):
175795        * html/shadow/MediaControlRootElementChromium.cpp:
175796        (WebCore::MediaControlRootElementChromium::initializeControls):
175797        * html/shadow/MediaControls.h:
175798        (MediaControls):
175799        * platform/Language.cpp:
175800        (WebCore):
175801        * platform/Language.h:
175802        (WebCore):
175803        * rendering/RenderMediaControls.cpp:
175804        (WebCore::RenderMediaControls::paintMediaControlsPart):
175805        * rendering/RenderMediaControlsChromium.cpp:
175806        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
175807
1758082012-11-12  Mike West  <mkwst@chromium.org>
175809
175810        'for (x in y)' requires 'var' declaration in ConsoleMessage.js
175811        https://bugs.webkit.org/show_bug.cgi?id=101908
175812
175813        Reviewed by Pavel Feldman.
175814
175815        r134166 should have included a 'var' declaration in its 'for (x in y)'
175816        loop. This patch adds the missing 'var' in order to prevent leakage into
175817        the global context.
175818
175819        * inspector/front-end/ConsoleMessage.js:
175820        (WebInspector.ConsoleMessageImpl.prototype.append):
175821        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
175822
1758232012-11-12  Zeno Albisser  <zeno@webkit.org>
175824
175825        [Qt] MiniBrowser should not strongly depend on QtTestSupport.
175826        https://bugs.webkit.org/show_bug.cgi?id=101775
175827
175828        Introducing HAVE(QTTESTSUPPORT) to allow building
175829        MiniBrowser without QtTestSupport.
175830        This is necessary when using a production build.
175831
175832        Reviewed by Tor Arne Vestbø.
175833
175834        * Target.pri:
175835        * platform/qt/QtTestSupport.h:
175836
1758372012-11-12  Pavel Feldman  <pfeldman@chromium.org>
175838
175839        Web Inspector: wasShown is called twice when show() is called from within wasShown
175840        https://bugs.webkit.org/show_bug.cgi?id=101858
175841
175842        Reviewed by Vsevolod Vlasov.
175843
175844        When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
175845        We now mute one of them.
175846
175847        * inspector/front-end/View.js:
175848        (WebInspector.View):
175849        (WebInspector.View.prototype._inNotification):
175850        (WebInspector.View.prototype._parentIsShowing):
175851        (WebInspector.View.prototype._callOnVisibleChildren):
175852        (WebInspector.View.prototype._processWasShown):
175853        (WebInspector.View.prototype._processWillHide):
175854        (WebInspector.View.prototype._processOnResize):
175855        (WebInspector.View.prototype._notify):
175856        (WebInspector.View.prototype.show):
175857
1758582012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
175859
175860        Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
175861        in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
175862
175863        Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
175864
175865        * editing/FrameSelection.cpp:
175866        (WebCore::FrameSelection::setSelection):
175867        (WebCore::FrameSelection::recomputeCaretRect):
175868        (WebCore::FrameSelection::updateAppearance):
175869        (WebCore::FrameSelection::setCaretVisibility):
175870
1758712012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
175872
175873        Don't update style when attaching in HTMLMeterElement
175874        https://bugs.webkit.org/show_bug.cgi?id=101714
175875
175876        Reviewed by Hajime Morita.
175877
175878        HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
175879        can cause style-update prevention. The similar thing has already happened in Bug 100507.
175880
175881        Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
175882
175883        Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
175884
175885        * html/HTMLMeterElement.cpp:
175886        * html/HTMLMeterElement.h:
175887        (HTMLMeterElement): Removed attach(). We don't need it.
175888
1758892012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
175890
175891        Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
175892        https://bugs.webkit.org/show_bug.cgi?id=101547
175893
175894        Reviewed by Simon Fraser.
175895
175896        I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
175897        previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
175898        selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
175899        This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
175900
175901        Covered by existing tests.
175902
175903        * editing/FrameSelection.cpp:
175904        (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
175905        (WebCore::FrameSelection::prepareForDestruction): Added.
175906        (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
175907        Also, don't update style before updating selection unless text caret is disabled since we always
175908        update the layout (including style) when text caret is enabled.
175909        * editing/FrameSelection.h:
175910        (FrameSelection):
175911        * loader/FrameLoader.cpp:
175912        (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
175913
1759142012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
175915
175916        [CSS3] Parsing the property, text-align-last.
175917        https://bugs.webkit.org/show_bug.cgi?id=99439
175918
175919        Reviewed by Julien Chaffraix.
175920
175921        This patch implements the parsing side of the "text-align-last" property specified
175922        in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
175923        Specification link : http://www.w3.org/TR/css3-text/#text-align-last
175924
175925        Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
175926               fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
175927
175928        * css/CSSComputedStyleDeclaration.cpp:
175929        (WebCore):
175930        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
175931        * css/CSSParser.cpp:
175932        (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
175933        * css/CSSPrimitiveValueMappings.h:
175934        (WebCore):
175935        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
175936        (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
175937        * css/CSSProperty.cpp:
175938        (WebCore::CSSProperty::isInheritedProperty):
175939        * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
175940        * css/StyleBuilder.cpp:
175941        (WebCore::StyleBuilder::StyleBuilder):
175942        * css/StylePropertySet.cpp:
175943        (WebCore):
175944        * css/StyleResolver.cpp:
175945        (WebCore::StyleResolver::applyProperty):
175946        * rendering/style/RenderStyle.h:
175947        * rendering/style/RenderStyleConstants.h:
175948        * rendering/style/StyleRareInheritedData.cpp:
175949        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
175950        (WebCore::StyleRareInheritedData::operator==):
175951        * rendering/style/StyleRareInheritedData.h:
175952        (StyleRareInheritedData): Add m_textAlignLast.
175953
1759542012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
175955
175956        [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
175957        https://bugs.webkit.org/show_bug.cgi?id=101881
175958
175959        Reviewed by Kent Tamura.
175960
175961        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
175962        setPseudo()/pseudo() instead.
175963
175964        No new tests, simple refacotring.
175965
175966        * html/HTMLKeygenElement.cpp:
175967        (WebCore::KeygenSelectElement::KeygenSelectElement):
175968        (KeygenSelectElement):
175969
1759702012-11-11  Adam Barth  <abarth@webkit.org>
175971
175972        Many DOMWindowProperties would benefit from being ScriptWrappable
175973        https://bugs.webkit.org/show_bug.cgi?id=101887
175974
175975        Reviewed by Kentaro Hara.
175976
175977        These object are only ever created at the behest of script, which means
175978        making them ScriptWrappable is a win.
175979
175980        * page/BarInfo.h:
175981        * page/Console.h:
175982        * page/Crypto.h:
175983        * page/History.h:
175984        * page/Location.h:
175985        * page/Navigator.h:
175986        * page/Performance.h:
175987
1759882012-11-11  Kentaro Hara  <haraken@chromium.org>
175989
175990        [V8] HTMLDocument::all() needs not to be custom
175991        https://bugs.webkit.org/show_bug.cgi?id=101875
175992
175993        Reviewed by Adam Barth.
175994
175995        We can easily remove the custom getter from V8 because the
175996        custom setter sets .all by ForceSet(). On the other hand,
175997        it is non-trivial to remove the custom getter from JSC
175998        because the custom setter sets .all by putDirect()
175999        and the custom getter wants to get it by getDirect().
176000
176001        No tests. No change in behavior.
176002
176003        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
176004        * html/HTMLDocument.idl:
176005
1760062012-11-11  Kentaro Hara  <haraken@chromium.org>
176007
176008        [V8] V8Console::memoryAttrGetter() needs not to be custom
176009        https://bugs.webkit.org/show_bug.cgi?id=101873
176010
176011        Reviewed by Adam Barth.
176012
176013        No tests. No change in behavior.
176014
176015        * bindings/v8/custom/V8ConsoleCustom.cpp:
176016        (WebCore):
176017        * page/Console.idl:
176018
1760192012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
176020
176021        [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
176022        https://bugs.webkit.org/show_bug.cgi?id=101180
176023
176024        Reviewed by Dimitri Glazkov.
176025
176026        This is a preparation patch for Bug 100451.
176027
176028        We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
176029        When an element attribute is changed, we might have to invalidate content distribution,
176030        however it's high cost operation. So we would like to check RuleFeatureSet used in
176031        select attributes to determine we really need to invalidate distribution.
176032
176033        Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
176034        first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
176035        For the performance reason, we have a flag to check whether we need to collect features again.
176036
176037        Test: fast/dom/shadow/shadow-select-attribute-featureset.html
176038
176039        * WebCore.exp.in:
176040        * dom/ElementShadow.cpp:
176041        (WebCore::ElementShadow::ElementShadow):
176042        (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
176043        nodes (and their ShadowDOM).
176044        (WebCore):
176045        (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
176046        (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
176047        ShadowDOM. We need to collect id, class, and attribute names.
176048        * dom/ElementShadow.h:
176049        (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
176050        (ElementShadow):
176051        (WebCore::ElementShadow::hasSelectorForId):
176052        (WebCore):
176053        (WebCore::ElementShadow::hasSelectorForClass):
176054        (WebCore::ElementShadow::hasSelectorForAttribute):
176055        * html/shadow/HTMLContentElement.cpp:
176056        (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
176057        (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
176058        (WebCore::HTMLContentElement::removedFrom): ditto.
176059        * html/shadow/HTMLContentElement.h:
176060        (WebCore::toHTMLContentElement):
176061        (WebCore):
176062        * testing/Internals.cpp:
176063        (WebCore::Internals::hasSelectorForIdInShadow):
176064        (WebCore):
176065        (WebCore::Internals::hasSelectorForClassInShadow):
176066        (WebCore::Internals::hasSelectorForAttributeInShadow):
176067        * testing/Internals.h:
176068        (Internals):
176069        * testing/Internals.idl:
176070
1760712012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
176072
176073        Unreviewed, rolling out r134144.
176074        http://trac.webkit.org/changeset/134144
176075        https://bugs.webkit.org/show_bug.cgi?id=101876
176076
176077        seems to break win 7 chromium browser test (Requested by
176078        hayato on #webkit).
176079
176080        * WebCore.exp.in:
176081        * page/EventHandler.cpp:
176082        (WebCore):
176083        (WebCore::EventHandler::handleMouseMoveEvent):
176084        * page/EventHandler.h:
176085        (EventHandler):
176086        * testing/Internals.cpp:
176087        * testing/Internals.h:
176088        * testing/Internals.idl:
176089
1760902012-11-11  Kent Tamura  <tkent@chromium.org>
176091
176092        Internals: MockPagePopup should not update DOM structure during detach()
176093        https://bugs.webkit.org/show_bug.cgi?id=101710
176094
176095        Reviewed by Hajime Morita.
176096
176097        PickerIndicatorElement::detach calls
176098        MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
176099        which remove the mock iframe from the tree. But updating the tree during
176100        detach() is dangerous.
176101
176102        MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
176103        requests to call 'close' asynchronously, and 'close' removes the mock
176104        iframe. We need to change MockPagePopup so that it is ref-couted and has
176105        a timer.
176106
176107        No new tests. This is a change for the test harness.
176108
176109        * testing/MockPagePopupDriver.cpp:
176110        (MockPagePopup): Make this ref-counted, add closeLater, add close, and
176111        add m_closeTimer.
176112        (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
176113        (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
176114        (WebCore::MockPagePopup::closeLater):
176115        - Add one reference to avoid destruction by m_mockPagePopup.clear() in
176116          closePagePopup.
176117        - Notify didClosePopup here because the client expects didClosePopup is
176118          called synchronously.
176119        - Invoke the timer to call 'close'
176120        (WebCore::MockPagePopup::close):
176121        Just remove one reference. This means calling the desructor.
176122        (WebCore::MockPagePopup::~MockPagePopup):
176123        Move didClosePopup call to caloseLater.
176124        (WebCore::MockPagePopupDriver::closePagePopup):
176125        Request to close PagePopup.
176126        Clear PagePopupClient in m_pagePopupController because this object is
176127        necessary until MockPagePopup is closed, but it should not have a
176128        reference to the PagePopupClient.
176129        * testing/MockPagePopupDriver.h:
176130        (MockPagePopupDriver): Make MockPagePopup ref-counted.
176131
1761322012-11-11  Adam Barth  <abarth@webkit.org>
176133
176134        axObjectCache code is more complicated than necessary
176135        https://bugs.webkit.org/show_bug.cgi?id=101820
176136
176137        Reviewed by Darin Adler.
176138
176139        This code should use OwnPtr rather than manually calling new/delete.
176140        Also, instead of using a "double check" pattern, we can just access the
176141        private fields on the top document directly.
176142
176143        * dom/Document.cpp:
176144        (WebCore::Document::Document):
176145        (WebCore::Document::clearAXObjectCache):
176146        (WebCore::Document::axObjectCacheExists):
176147        (WebCore):
176148        (WebCore::Document::axObjectCache):
176149        * dom/Document.h:
176150        (Document):
176151
1761522012-11-10  Simon Fraser  <simon.fraser@apple.com>
176153
176154        Save one call to containerForRepaint() when updating layer positions
176155        https://bugs.webkit.org/show_bug.cgi?id=101856
176156
176157        Reviewed by Dan Bernstein.
176158
176159         RenderLayer::updateLayerPositions() has already computed the repaint container,
176160         but calls computeRepaintRects() which computes it again. Computing the repaint
176161         container involves a walk back up the layer tree, so calling it during a tree
176162         traversal is costly.
176163         
176164         Fix by passing the repaint container down into computeRepaintRects().
176165
176166        * rendering/RenderLayer.cpp:
176167        (WebCore::RenderLayer::updateLayerPositions):
176168        (WebCore::RenderLayer::computeRepaintRects):
176169        (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
176170        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
176171        (WebCore::RenderLayer::setHasVisibleContent):
176172        * rendering/RenderLayer.h:
176173        (RenderLayer):
176174
1761752012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
176176
176177        WTFString::utf8() should have a mode of conversion to use replacement character
176178        https://bugs.webkit.org/show_bug.cgi?id=101678
176179
176180        Reviewed by Alexey Proskuryakov.
176181
176182        Follow the change on String::utf8()
176183
176184        No new tests. No changes in behavior.
176185
176186        * Modules/websockets/WebSocket.cpp:
176187        (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
176188        * Modules/websockets/WebSocketChannel.cpp:
176189        (WebCore::WebSocketChannel::send): Ditto.
176190        * html/MediaFragmentURIParser.cpp:
176191        (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
176192        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
176193        (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
176194        * platform/network/blackberry/rss/RSSFilterStream.cpp:
176195        (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
176196        * platform/network/blackberry/rss/RSSGenerator.cpp:
176197        (WebCore::RSSGenerator::generateHtml): Ditto.
176198
1761992012-11-10  Simon Fraser  <simon.fraser@apple.com>
176200
176201        Coalesce main thread scroll position updates
176202        https://bugs.webkit.org/show_bug.cgi?id=101855
176203
176204        Reviewed by Anders Carlsson.
176205
176206        When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
176207        from ScrollingTree would pile up on the main thread, and we'd handle several per
176208        runloop cycle when scrolling fast. This causes extra work especially on pages
176209        with position:fixed elements which must update RenderLayers on scrolling.
176210        
176211        Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
176212        scrolling updates to one per runloop.
176213
176214        * page/scrolling/ScrollingCoordinator.cpp:
176215        (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
176216        for the scheduled scroll position update.
176217        (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
176218        the timer is active and the parameters match, just update the target scroll
176219        position and return. If the params don't match, dispatch the scheduled update,
176220        and then the new one. Otherwise, prime the timer.
176221        (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
176222        the existing updateMainFrameScrollPosition() with the saved values.
176223        * page/scrolling/ScrollingCoordinator.h:
176224        * page/scrolling/ScrollingTree.cpp:
176225        (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
176226        rather than updateMainFrameScrollPosition().
176227        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
176228        (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
176229        position elements to jiggle with the patch; we should be calling syncPosition() (which just
176230        sets the position data, without touching CA layers).
176231
1762322012-11-10  Simon Fraser  <simon.fraser@apple.com>
176233
176234        Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
176235        https://bugs.webkit.org/show_bug.cgi?id=101514
176236
176237        Reviewed by Tim Horton.
176238
176239        ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
176240        ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
176241        we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
176242        set the layer position (rather than just doing a 'sync').
176243
176244        * page/scrolling/ScrollingCoordinator.cpp:
176245        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
176246        * page/scrolling/ScrollingCoordinator.h:
176247        * page/scrolling/ScrollingTree.cpp:
176248        (WebCore::ScrollingTree::updateMainFrameScrollPosition):
176249        * page/scrolling/ScrollingTree.h:
176250        * page/scrolling/mac/ScrollingCoordinatorMac.h:
176251        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
176252        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
176253        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
176254
1762552012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
176256
176257        Unreviewed, rolling out r134069.
176258        http://trac.webkit.org/changeset/134069
176259        https://bugs.webkit.org/show_bug.cgi?id=101852
176260
176261        "It is a wrong way to fix the problem. See discussions in bug
176262        96614" (Requested by 1JTAAPQFJ on #webkit).
176263
176264        * bindings/js/JSDictionary.cpp:
176265        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
176266
1762672012-11-10  Mike West  <mkwst@chromium.org>
176268
176269        Web Inspector: Multiple '%c' formatting options should all have effect.
176270        https://bugs.webkit.org/show_bug.cgi?id=101495
176271
176272        Reviewed by Pavel Feldman.
176273
176274        This patch supports multiple '%c' formatting blocks in console messages.
176275        'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
176276        do exactly what you expect: "blue!" will be blue, and "green!" will be
176277        green.
176278
176279        The implementation moves the styles off the message's parent 'span', and
176280        onto new 'span' elements that wrap the various textual bits of the
176281        message.
176282
176283        * inspector/front-end/ConsoleMessage.js:
176284        (WebInspector.ConsoleMessageImpl.prototype.):
176285        (WebInspector.ConsoleMessageImpl.prototype.append):
176286        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
176287
1762882012-11-10  Mike West  <mkwst@chromium.org>
176289
176290        Including <CoreText/CoreText.h> breaks the chromium/mac build.
176291        https://bugs.webkit.org/show_bug.cgi?id=101851
176292
176293        Reviewed by Dan Bernstein.
176294
176295        r134146 introduced inclusion of 'CoreText/CoreText.h' in
176296        SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
176297        around, it looks like this needs to be modified to include
176298        'ApplicationServices/ApplicationServices.h'.
176299
176300        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
176301            Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
176302        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
176303            Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
176304
1763052012-11-10  Andreas Kling  <kling@webkit.org>
176306
176307        Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
176308        <http://webkit.org/b/101849>
176309
176310        Reviewed by Anders Carlsson.
176311
176312        Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
176313        possible moment, to avoid unnecessarily detaching and cloning from attribute data.
176314
176315        120 kB progression on Membuster3.
176316
176317        * dom/Element.cpp:
176318        (WebCore::Element::setAttributeInternal):
176319        (WebCore::Element::addAttributeInternal):
176320
1763212012-11-10  Simon Fraser  <simon.fraser@apple.com>
176322
176323        Some minor optimizations in RenderLayer
176324        https://bugs.webkit.org/show_bug.cgi?id=101847
176325
176326        Reviewed by Anders Carlsson.
176327
176328        Some minor performance improvements in RenderLayer code.
176329
176330        * rendering/RenderLayer.cpp:
176331        (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
176332        so prefix it with an isInline() check which tests a bit on RenderObject.
176333        (WebCore::RenderLayer::localBoundingBox): Ditto.
176334        (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
176335        into a local variable.
176336
1763372012-11-10  Anders Carlsson  <andersca@apple.com>
176338
176339        Document::m_fullScreenElementStack should be a Vector
176340        https://bugs.webkit.org/show_bug.cgi?id=101844
176341
176342        Reviewed by Andreas Kling.
176343
176344        m_fullScreenElementStack is currently a Deque where elements are being prepended
176345        and removed from the beginning in LIFO order, so it can be replaced with a Vector.
176346
176347        * dom/Document.cpp:
176348        (WebCore::Document::requestFullScreenForElement):
176349        (WebCore::Document::webkitCancelFullScreen):
176350        (WebCore::Document::popFullscreenElementStack):
176351        (WebCore::Document::pushFullscreenElementStack):
176352        * dom/Document.h:
176353        (WebCore::Document::webkitFullscreenElement):
176354        (Document):
176355
1763562012-11-10  Adam Barth  <abarth@webkit.org>
176357
176358        [V8] Clean up header includes and ifdefs in V8GCController
176359        https://bugs.webkit.org/show_bug.cgi?id=101691
176360
176361        Reviewed by Kentaro Hara.
176362
176363        This file doesn't need to include all these headers anymore.
176364
176365        * bindings/v8/V8GCController.cpp:
176366        (WebCore::workingSetEstimateMBMutex):
176367        (WebCore::V8GCController::majorGCEpilogue):
176368        (WebCore::V8GCController::checkMemoryUsage):
176369
1763702012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
176371
176372        [Mac] Guard WebCore PageVisibility Symbol Export
176373        https://bugs.webkit.org/show_bug.cgi?id=101817
176374
176375        Reviewed by Andreas Kling.
176376
176377        Guard the export with the same ENABLE guards around its definition
176378        and implementation.
176379
176380        * WebCore.exp.in:
176381
1763822012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
176383
176384        [css] text-decoration:none no longer valid
176385        https://bugs.webkit.org/show_bug.cgi?id=101529
176386
176387        Reviewed by Ojan Vafai.
176388
176389        This patch fixes an issue where the 'none' value was parsed as explicitly
176390        'initial' value. However true in a sense that the initial value for the
176391        'text-decoration' property is 'none', the value itself could not be parsed as
176392        'initial'.
176393
176394        The getComputedStyle layout tests for 'text-decoration' and
176395        '-webkit-text-decoration-line' CSS properties are updated with the correct
176396        results.
176397
176398        * css/CSSParser.cpp:
176399        (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
176400        gets its own identifier value instead of explicit initial.
176401
1764022012-11-09  Dean Jackson  <dino@apple.com>
176403
176404        Support list of tracks in caption media controls
176405        https://bugs.webkit.org/show_bug.cgi?id=101669
176406
176407        Reviewed by Eric Carlson.
176408
176409        Attempt three of commit. The first two times caused build failures on Chromium.
176410
176411        Add some new elements to the media control shadow DOM that display the list of available
176412        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
176413        where it is given a very basic design. At the moment only the list of available tracks
176414        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
176415
176416        No new tests - this doesn't expose any testable surface.
176417
176418        * css/mediaControls.css: Added default rules that hide the new elements.
176419        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
176420        * html/shadow/MediaControlElements.cpp:
176421        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
176422        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
176423        (WebCore::MediaControlClosedCaptionsContainerElement::create):
176424        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
176425        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
176426        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
176427        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
176428        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
176429        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
176430        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
176431        * html/shadow/MediaControlElements.h:
176432        (MediaControlElement):
176433        (MediaControlToggleClosedCaptionsButtonElement):
176434        (MediaControlClosedCaptionsContainerElement):
176435        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
176436        * html/shadow/MediaControlRootElement.cpp:
176437        (WebCore::MediaControlRootElement::MediaControlRootElement):
176438        (WebCore::MediaControlRootElement::create): New track container and list elements created.
176439        (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
176440        (WebCore::MediaControlRootElement::hide):
176441        (WebCore::MediaControlRootElement::makeTransparent):
176442        (WebCore::MediaControlRootElement::reset):
176443        (WebCore::MediaControlRootElement::reportedError):
176444        (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
176445        (WebCore):
176446        * html/shadow/MediaControlRootElement.h:
176447        (WebCore):
176448        (MediaControlRootElement):
176449        * html/shadow/MediaControlRootElementChromium.cpp:
176450        (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
176451        * html/shadow/MediaControls.h:
176452        (MediaControls):
176453        * platform/Language.cpp:
176454        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
176455        * platform/Language.h:
176456        (WebCore):
176457        * rendering/RenderMediaControls.cpp:
176458        (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
176459        * rendering/RenderMediaControlsChromium.cpp:
176460        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
176461
1764622012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
176463
176464        Unreviewed, rolling out r134152.
176465        http://trac.webkit.org/changeset/134152
176466        https://bugs.webkit.org/show_bug.cgi?id=101831
176467
176468        broke chromium again (Requested by dino_ on #webkit).
176469
176470        * css/mediaControls.css:
176471        * css/mediaControlsQuickTime.css:
176472        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
176473        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
176474        * html/shadow/MediaControlElements.cpp:
176475        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
176476        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
176477        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
176478        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
176479        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
176480        * html/shadow/MediaControlElements.h:
176481        (MediaControlElement):
176482        (MediaControlToggleClosedCaptionsButtonElement):
176483        * html/shadow/MediaControlRootElement.cpp:
176484        (WebCore::MediaControlRootElement::MediaControlRootElement):
176485        (WebCore::MediaControlRootElement::create):
176486        (WebCore::MediaControlRootElement::setMediaController):
176487        (WebCore::MediaControlRootElement::hide):
176488        (WebCore::MediaControlRootElement::makeTransparent):
176489        (WebCore::MediaControlRootElement::reset):
176490        (WebCore::MediaControlRootElement::reportedError):
176491        * html/shadow/MediaControlRootElement.h:
176492        (WebCore):
176493        (MediaControlRootElement):
176494        * html/shadow/MediaControlRootElementChromium.cpp:
176495        (WebCore::MediaControlRootElementChromium::initializeControls):
176496        * html/shadow/MediaControls.h:
176497        (MediaControls):
176498        * platform/Language.cpp:
176499        (WebCore):
176500        * platform/Language.h:
176501        (WebCore):
176502        * rendering/RenderMediaControls.cpp:
176503        (WebCore::RenderMediaControls::paintMediaControlsPart):
176504        * rendering/RenderMediaControlsChromium.cpp:
176505        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
176506
1765072012-11-09  Dean Jackson  <dino@apple.com>
176508
176509        Support list of tracks in caption media controls
176510        https://bugs.webkit.org/show_bug.cgi?id=101669
176511
176512        Reviewed by Eric Carlson.
176513
176514        Attempt two of commit. The first time caused a build failure on Chromium.
176515
176516        Add some new elements to the media control shadow DOM that display the list of available
176517        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
176518        where it is given a very basic design. At the moment only the list of available tracks
176519        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
176520
176521        No new tests - this doesn't expose any testable surface.
176522
176523        * css/mediaControls.css: Added default rules that hide the new elements.
176524        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
176525        * html/shadow/MediaControlElements.cpp:
176526        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
176527        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
176528        (WebCore::MediaControlClosedCaptionsContainerElement::create):
176529        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
176530        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
176531        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
176532        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
176533        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
176534        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
176535        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
176536        * html/shadow/MediaControlElements.h:
176537        (MediaControlElement):
176538        (MediaControlToggleClosedCaptionsButtonElement):
176539        (MediaControlClosedCaptionsContainerElement):
176540        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
176541        * html/shadow/MediaControlRootElement.cpp:
176542        (WebCore::MediaControlRootElement::MediaControlRootElement):
176543        (WebCore::MediaControlRootElement::create): New track container and list elements created.
176544        (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
176545        (WebCore::MediaControlRootElement::hide):
176546        (WebCore::MediaControlRootElement::makeTransparent):
176547        (WebCore::MediaControlRootElement::reset):
176548        (WebCore::MediaControlRootElement::reportedError):
176549        (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
176550        (WebCore):
176551        * html/shadow/MediaControlRootElement.h:
176552        (WebCore):
176553        (MediaControlRootElement):
176554        * html/shadow/MediaControlRootElementChromium.cpp:
176555        (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
176556        * html/shadow/MediaControls.h:
176557        (MediaControls):
176558        * platform/Language.cpp:
176559        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
176560        * platform/Language.h:
176561        (WebCore):
176562        * rendering/RenderMediaControls.cpp:
176563        (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
176564        * rendering/RenderMediaControlsChromium.cpp:
176565        (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
176566
1765672012-11-09  Ojan Vafai  <ojan@chromium.org>
176568
176569        Should only fire a single set of mouse events and update hover state once when scrolling is done
176570        https://bugs.webkit.org/show_bug.cgi?id=99940
176571
176572        Reviewed by Levi Weintraub.
176573
176574        -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
176575        timer is fired, we ensure the actual goal of not firing fake mouse events
176576        until the scroll is completed. This is the core part of this change.
176577        -Change our mouse event throttling to keep a running average of how long
176578        mouse events take and adjust throttling appropriately.
176579        Test: fast/scrolling/fake-mouse-event-throttling.html
176580        -Maintain a minimum throttle of 100ms.
176581
176582        * page/EventHandler.cpp:
176583        (WebCore):
176584        (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
176585        (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
176586        Keep track of a running average instead of max. This lets us adjust throttling
176587        dynamically without punishing a page for having a single mouse event handler
176588        that takes disproportionately long.
176589        (RunningAverageDurationTracker):
176590        (WebCore::EventHandler::EventHandler):
176591        (WebCore::EventHandler::clear):
176592        (WebCore::EventHandler::mouseMoved):
176593        (WebCore::EventHandler::handleMouseMoveEvent):
176594        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
176595        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
176596        * page/EventHandler.h:
176597        (EventHandler):
176598        * platform/Timer.h:
176599        (WebCore::DeferrableOneShotTimer::setDelay):
176600        (WebCore::DeferrableOneShotTimer::delay):
176601        Add a way of adjusting the timer delay.
176602
1766032012-11-09  Rick Byers  <rbyers@chromium.org>
176604
176605        Move chromium to USE(LAZY_NATIVE_CURSOR)
176606        https://bugs.webkit.org/show_bug.cgi?id=101501
176607
176608        Reviewed by Adam Barth.
176609
176610        This simplifies cursor handling in chromium and unifies it with other
176611        ports for easier code sharing and testing by moving to the
176612        USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
176613
176614        PlatformCursor adds no value in chromium since the sandboxing model
176615        requires the cursor information be marshalled to the browser process
176616        before being turned into a real OS cursor.
176617
176618        Test: fast/events/mouse-cursor.html
176619
176620        * WebCore.gypi:
176621        * platform/Cursor.h:
176622        (WebCore):
176623        * platform/chromium/CursorChromium.cpp:
176624        (WebCore::Cursor::Cursor):
176625        (WebCore::Cursor::operator=):
176626        (WebCore::Cursor::~Cursor):
176627        (WebCore::Cursor::ensurePlatformCursor):
176628        * platform/chromium/PlatformCursor.h: Removed.
176629
1766302012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
176631
176632        Allow ports to decide whether an image should be directly composited
176633        https://bugs.webkit.org/show_bug.cgi?id=101827
176634
176635        Reviewed by Simon Fraser.
176636
176637        Tested by compositing/tiling/huge-layer-img.html.
176638
176639        * platform/graphics/GraphicsLayer.h:
176640        (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
176641            Allow the GraphicsLayer implementation to decide if the image can be composited.
176642
176643        * rendering/RenderLayerBacking.cpp:
176644        (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
176645            Take onto account the new shouldDirectlyCompositeImage check.
176646
1766472012-11-09  Dan Bernstein  <mitz@apple.com>
176648
176649        SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
176650        https://bugs.webkit.org/show_bug.cgi?id=101799
176651
176652        Reviewed by Alexey Proskuryakov.
176653
176654        In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
176655        different behavior from not setting it at all. We can get the correct behavior and greatly
176656        simplify the code by not setting attributes to their default values.
176657
176658        * platform/graphics/mac/SimpleFontDataCoreText.cpp:
176659        Removed redundant #import directives and changed the remaining ones to #include.
176660        (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
176661        only add attributes that have non-default values.
176662
1766632012-11-09  Rick Byers  <rbyers@chromium.org>
176664
176665        No tests for changing mouse cursors
176666        https://bugs.webkit.org/show_bug.cgi?id=100550
176667
176668        Reviewed by Adam Barth.
176669
176670        Add infrastructure to keep track of the last set mouse cursor,
176671        and then to query it from DumpRenderTree.
176672
176673        Test: fast/events/mouse-cursor.html
176674
176675        * WebCore.exp.in: Add Cursor copy ctor export
176676        * page/EventHandler.cpp:
176677        (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
176678        * page/EventHandler.h:
176679        (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
176680        * testing/Internals.cpp:
176681        (WebCore::cursorTypeToString): Helper to convert cursor type to enum
176682        (WebCore):
176683        (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
176684        * testing/Internals.h: Declare getCurrentCursorInfo
176685        * testing/Internals.idl: Declare getCurrentCursorInfo
176686
1766872012-11-09  Huang Dongsung  <luxtella@company100.net>
176688
176689        Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
176690        https://bugs.webkit.org/show_bug.cgi?id=101701
176691
176692        Reviewed by Noam Rosenthal.
176693
176694        Add TiledBackingStore::rect() because CoordinatedTile needs to know
176695        m_rect of TiledBackingStore.
176696
176697        * platform/graphics/TiledBackingStore.h:
176698        (WebCore::TiledBackingStore::rect):
176699
1767002012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
176701
176702        Unreviewed, rolling out r134139.
176703        http://trac.webkit.org/changeset/134139
176704        https://bugs.webkit.org/show_bug.cgi?id=101823
176705
176706        breaks chromium (android) build (Requested by thorton on
176707        #webkit).
176708
176709        * css/mediaControls.css:
176710        * css/mediaControlsQuickTime.css:
176711        (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
176712        (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
176713        * html/shadow/MediaControlElements.cpp:
176714        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
176715        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
176716        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
176717        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
176718        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
176719        * html/shadow/MediaControlElements.h:
176720        (MediaControlElement):
176721        (MediaControlToggleClosedCaptionsButtonElement):
176722        * html/shadow/MediaControlRootElement.cpp:
176723        (WebCore::MediaControlRootElement::MediaControlRootElement):
176724        (WebCore::MediaControlRootElement::create):
176725        (WebCore::MediaControlRootElement::setMediaController):
176726        (WebCore::MediaControlRootElement::hide):
176727        (WebCore::MediaControlRootElement::makeTransparent):
176728        (WebCore::MediaControlRootElement::reset):
176729        (WebCore::MediaControlRootElement::reportedError):
176730        * html/shadow/MediaControlRootElement.h:
176731        (WebCore):
176732        (MediaControlRootElement):
176733        * html/shadow/MediaControlRootElementChromium.cpp:
176734        (WebCore::MediaControlRootElementChromium::initializeControls):
176735        * html/shadow/MediaControls.h:
176736        (MediaControls):
176737        * platform/Language.cpp:
176738        (WebCore):
176739        * platform/Language.h:
176740        (WebCore):
176741
1767422012-11-09  Huang Dongsung  <luxtella@company100.net>
176743
176744        [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
176745        https://bugs.webkit.org/show_bug.cgi?id=101675
176746
176747        Reviewed by Noam Rosenthal.
176748
176749        Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
176750        value equals image->nativeImageForCurrentFrame() by change, we can encounter
176751        undefined behavior.
176752
176753        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
176754        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
176755        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
176756
1767572012-11-09  Dean Jackson  <dino@apple.com>
176758
176759        Support list of tracks in caption media controls
176760        https://bugs.webkit.org/show_bug.cgi?id=101669
176761
176762        Reviewed by Eric Carlson.
176763
176764        Add some new elements to the media control shadow DOM that display the list of available
176765        tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
176766        where it is given a very basic design. At the moment only the list of available tracks
176767        are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
176768
176769        No new tests - this doesn't expose any testable surface.
176770
176771        * css/mediaControls.css: Added default rules that hide the new elements.
176772        * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
176773        * html/shadow/MediaControlElements.cpp:
176774        (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
176775        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
176776        (WebCore::MediaControlClosedCaptionsContainerElement::create):
176777        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
176778        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
176779        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
176780        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
176781        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
176782        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
176783        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
176784        * html/shadow/MediaControlElements.h:
176785        (MediaControlElement):
176786        (MediaControlToggleClosedCaptionsButtonElement):
176787        (MediaControlClosedCaptionsContainerElement):
176788        (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
176789        * html/shadow/MediaControlRootElement.cpp:
176790        (WebCore::MediaControlRootElement::MediaControlRootElement):
176791        (WebCore::MediaControlRootElement::create): New track container and list elements created.
176792        (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
176793        (WebCore::MediaControlRootElement::hide):
176794        (WebCore::MediaControlRootElement::makeTransparent):
176795        (WebCore::MediaControlRootElement::reset):
176796        (WebCore::MediaControlRootElement::reportedError):
176797        (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
176798        (WebCore):
176799        * html/shadow/MediaControlRootElement.h:
176800        (WebCore):
176801        (MediaControlRootElement):
176802        * html/shadow/MediaControlRootElementChromium.cpp:
176803        (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
176804        * html/shadow/MediaControls.h:
176805        (MediaControls):
176806        * platform/Language.cpp:
176807        (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
176808        * platform/Language.h:
176809        (WebCore):
176810
1768112012-11-09  Noel Gordon  <noel.gordon@gmail.com>
176812
176813        [chromium] Should pass fast/images/paletted-png-with-color-profile.html
176814        https://bugs.webkit.org/show_bug.cgi?id=101551
176815
176816        Reviewed by Adam Barth.
176817
176818        Support decoding color PALETTE images that have an ICC color profile.
176819
176820        Covered by fast/images/png-suite/test.html and many other fast/image tests.
176821
176822        * platform/image-decoders/png/PNGImageDecoder.cpp:
176823        (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
176824        transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
176825        corrected. Use the transparency count from the tRNS reader to detect the expansion
176826        of RGB and PALLETE image pixels to RGBA.
176827
1768282012-11-09  Tien-Ren Chen  <trchen@chromium.org>
176829
176830        Correct hit-test point scaling for document.elementFromPoint
176831        https://bugs.webkit.org/show_bug.cgi?id=101798
176832
176833        Reviewed by Adam Barth.
176834
176835        The hit-test point come from user JavaScript is in the document coordinate.
176836        Convert to the frame coordinate with correct scale factor for hit test.
176837
176838        Test: fast/dom/elementFromPoint-scaled-scrolled.html
176839
176840        * dom/Document.cpp:
176841        (WebCore::nodeFromPoint):
176842
1768432012-11-09  Alec Flett  <alecflett@chromium.org>
176844
176845        IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
176846        https://bugs.webkit.org/show_bug.cgi?id=101415
176847
176848        Reviewed by Tony Chang.
176849
176850        Combine abstract interface IDBBackingStore with its only
176851        implementation, IDBLevelDBBackingStore, to reduce code
176852        complexity. The legacy structure existed to support a SQLLite
176853        IDBBackingStore, but it is no longer worth the complexity to
176854        support this abstraction.
176855
176856        Changes include:
176857        1) Merging IDBLevelDBBackingStore into IDBBackingStore.
176858
176859        2) Merge together IDBBackingStore's inner classes: Cursor,
176860        Transaction, and ObjectStoreRecordIdentfier with their respective
176861        subclasses in IDBLevelDBBackingStore.
176862
176863        3) Simplifying the inner Transaction class to not be refcounted or
176864        virtualized, to allow it to be a simple concrete member of its
176865        owner, IDBTransactionBackendImpl.
176866
176867        No new tests as this is purely a refactor.
176868
176869        * Modules/indexeddb/IDBBackingStore.cpp:
176870        (WebCore::recordInternalError):
176871        (WebCore::setUpMetadata):
176872        (WebCore::IDBBackingStore::IDBBackingStore):
176873        (WebCore):
176874        (WebCore::IDBBackingStore::~IDBBackingStore):
176875        (WebCore::IDBBackingStore::open):
176876        (WebCore::IDBBackingStore::getDatabaseNames):
176877        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
176878        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
176879        (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
176880        (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
176881        (WebCore::deleteRange):
176882        (WebCore::IDBBackingStore::deleteDatabase):
176883        (WebCore::IDBBackingStore::getObjectStores):
176884        (WebCore::setMaxObjectStoreId):
176885        (WebCore::IDBBackingStore::createObjectStore):
176886        (WebCore::IDBBackingStore::deleteObjectStore):
176887        (WebCore::IDBBackingStore::getRecord):
176888        (WebCore::IDBBackingStore::putRecord):
176889        (WebCore::IDBBackingStore::clearObjectStore):
176890        (WebCore::IDBBackingStore::deleteRecord):
176891        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
176892        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
176893        (WebCore::IDBBackingStore::keyExistsInObjectStore):
176894        (WebCore::IDBBackingStore::getIndexes):
176895        (WebCore::setMaxIndexId):
176896        (WebCore::IDBBackingStore::createIndex):
176897        (WebCore::IDBBackingStore::deleteIndex):
176898        (WebCore::IDBBackingStore::putIndexDataForRecord):
176899        (WebCore::IDBBackingStore::deleteIndexDataForRecord):
176900        (WebCore::IDBBackingStore::findKeyInIndex):
176901        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
176902        (WebCore::IDBBackingStore::keyExistsInIndex):
176903        (WebCore::IDBBackingStore::Cursor::Cursor):
176904        (WebCore::IDBBackingStore::Cursor::firstSeek):
176905        (WebCore::IDBBackingStore::Cursor::advance):
176906        (WebCore::IDBBackingStore::Cursor::continueFunction):
176907        (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
176908        (WebCore::IDBBackingStore::Cursor::isPastBounds):
176909        (WebCore::ObjectStoreKeyCursorImpl::create):
176910        (ObjectStoreKeyCursorImpl):
176911        (WebCore::ObjectStoreKeyCursorImpl::value):
176912        (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
176913        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
176914        (WebCore::ObjectStoreCursorImpl::create):
176915        (ObjectStoreCursorImpl):
176916        (WebCore::ObjectStoreCursorImpl::value):
176917        (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
176918        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
176919        (WebCore::IndexKeyCursorImpl::create):
176920        (IndexKeyCursorImpl):
176921        (WebCore::IndexKeyCursorImpl::value):
176922        (WebCore::IndexKeyCursorImpl::primaryKey):
176923        (WebCore::IndexKeyCursorImpl::recordIdentifier):
176924        (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
176925        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
176926        (WebCore::IndexCursorImpl::create):
176927        (IndexCursorImpl):
176928        (WebCore::IndexCursorImpl::value):
176929        (WebCore::IndexCursorImpl::primaryKey):
176930        (WebCore::IndexCursorImpl::recordIdentifier):
176931        (WebCore::IndexCursorImpl::IndexCursorImpl):
176932        (WebCore::IndexCursorImpl::loadCurrentRow):
176933        (WebCore::objectStoreCursorOptions):
176934        (WebCore::indexCursorOptions):
176935        (WebCore::IDBBackingStore::openObjectStoreCursor):
176936        (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
176937        (WebCore::IDBBackingStore::openIndexKeyCursor):
176938        (WebCore::IDBBackingStore::openIndexCursor):
176939        (WebCore::IDBBackingStore::Transaction::Transaction):
176940        (WebCore::IDBBackingStore::Transaction::begin):
176941        (WebCore::IDBBackingStore::Transaction::commit):
176942        (WebCore::IDBBackingStore::Transaction::rollback):
176943        * Modules/indexeddb/IDBBackingStore.h:
176944        (WebCore):
176945        (IDBBackingStore):
176946        (RecordIdentifier):
176947        (WebCore::IDBBackingStore::RecordIdentifier::create):
176948        (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
176949        (WebCore::IDBBackingStore::RecordIdentifier::isValid):
176950        (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
176951        (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
176952        (WebCore::IDBBackingStore::RecordIdentifier::version):
176953        (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
176954        (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
176955        (Transaction):
176956        (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
176957        (CursorOptions):
176958        (Cursor):
176959        (WebCore::IDBBackingStore::Cursor::Cursor):
176960        (WebCore::IDBBackingStore::Cursor::key):
176961        (WebCore::IDBBackingStore::Cursor::primaryKey):
176962        (WebCore::IDBBackingStore::Cursor::~Cursor):
176963        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
176964        (WebCore::IDBFactoryBackendImpl::openBackingStore):
176965        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
176966        (WebCore::IDBIndexBackendImpl::countInternal):
176967        * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
176968        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
176969        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
176970        (WebCore::IDBObjectStoreBackendImpl::putInternal):
176971        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
176972        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
176973        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
176974        (WebCore::IDBTransactionBackendImpl::abort):
176975        (WebCore::IDBTransactionBackendImpl::commit):
176976        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
176977        * Modules/indexeddb/IDBTransactionBackendImpl.h:
176978        (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
176979        * WebCore.xcodeproj/project.pbxproj:
176980
1769812012-11-09  Tien-Ren Chen  <trchen@chromium.org>
176982
176983        Correct scroll adjustment for touchEvent.clientX/clientY
176984        https://bugs.webkit.org/show_bug.cgi?id=101800
176985
176986        Reviewed by Adam Barth.
176987
176988        FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
176989        Convert to document coordinate before passing to JavaScript.
176990
176991        Test: fast/events/touch/touch-scaled-scrolled.html
176992
176993        * dom/Touch.cpp:
176994        (WebCore::contentsX):
176995        (WebCore::contentsY):
176996
1769972012-11-09  Alexandru Chiculita  <achicu@adobe.com>
176998
176999        [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
177000        https://bugs.webkit.org/show_bug.cgi?id=98990
177001
177002        Reviewed by Noam Rosenthal.
177003
177004        Added code that draws the Custom Filter in the TextureMapperGL. Also added 
177005        required code to make a depth buffer for a BitmapTextureGL.
177006
177007        Note that the code is not optimized yet, so it will always recompile the shader.
177008
177009        Test: css3/filters/custom/composited/custom-filter-blend-modes.html
177010
177011        * platform/graphics/texmap/TextureMapperGL.cpp:
177012        (WebCore::BitmapTextureGL::BitmapTextureGL):
177013        (WebCore::getPassesRequiredForFilter):
177014        (WebCore):
177015        (WebCore::TextureMapperGL::drawUsingCustomFilter):
177016        (WebCore::BitmapTextureGL::applyFilters):
177017        (WebCore::BitmapTextureGL::initializeDepthBuffer):
177018        (WebCore::BitmapTextureGL::~BitmapTextureGL):
177019        * platform/graphics/texmap/TextureMapperGL.h:
177020        (BitmapTextureGL):
177021
1770222012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
177023
177024        CustomEvent: Allow taking in a serialized value during initialization.
177025        https://bugs.webkit.org/show_bug.cgi?id=101348
177026
177027        Reviewed by Adam Barth.
177028
177029        If a CustomEvent is initialized using a serialized value, then for each access
177030        to |detail|, the value is deserialized first. This way, each world gets a different
177031        deserialization.
177032
177033        * UseV8.cmake:
177034        * WebCore.gypi:
177035        * bindings/v8/V8HiddenPropertyName.h:
177036        (WebCore):
177037        * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
177038        (WebCore):
177039        (WebCore::V8CustomEvent::detailAccessorGetter):
177040        * dom/CustomEvent.cpp:
177041        (WebCore::CustomEvent::initCustomEvent):
177042        (WebCore):
177043        * dom/CustomEvent.h:
177044        (CustomEvent):
177045        (WebCore::CustomEvent::serializedScriptValue):
177046        * dom/CustomEvent.idl:
177047
1770482012-11-09  Brady Eidson  <beidson@apple.com>
177049
177050        Implement WebResourceBuffer::isEmpty()
177051        https://bugs.webkit.org/show_bug.cgi?id=101805
177052
177053        Reviewed by Alexey Proskuryakov.
177054
177055        This is required to make the existing subresource loading in NetworkProcess work correctly,
177056        as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
177057        the data to the ResourceLoader.
177058
177059        No new tests (No change in behavior in any configuration we test.)
177060
177061        * loader/ResourceBuffer.h: Make isEmpty() virtual.
177062
1770632012-11-09  Michael Saboff  <msaboff@apple.com>
177064
177065        HTML Attributes names and values should be created as 8 bit string where possible
177066        https://bugs.webkit.org/show_bug.cgi?id=101781
177067
177068        Reviewed by Filip Pizlo.
177069
177070        Given that almost all attribute names and values are lower case ASCII, we should try to
177071        create 8 bit strings to process them.  Creating an AtomicString already tries to make
177072        an 8 bit string, so that didn't need to change.
177073
177074        No new tests, functionality covered by existing tests.
177075
177076        * html/HTMLViewSourceDocument.cpp:
177077        (WebCore::HTMLViewSourceDocument::processTagToken):
177078        * html/parser/HTMLMetaCharsetParser.cpp:
177079        (WebCore::HTMLMetaCharsetParser::processMeta):
177080        * html/parser/HTMLPreloadScanner.cpp:
177081        (WebCore::PreloadTask::processAttributes):
177082
1770832012-11-09  Dana Jansens  <danakj@chromium.org>
177084
177085        [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
177086        https://bugs.webkit.org/show_bug.cgi?id=101795
177087
177088        Reviewed by James Robinson.
177089
177090        * WebCore.gyp/WebCore.gyp:
177091
1770922012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
177093
177094        Unreviewed, rolling out r134101.
177095        http://trac.webkit.org/changeset/134101
177096        https://bugs.webkit.org/show_bug.cgi?id=101790
177097
177098        IDBDatabaseBackendTest.BackingStoreRetention failing
177099        (Requested by jsbell|gardener on #webkit).
177100
177101        * GNUmakefile.list.am:
177102        * Modules/indexeddb/IDBBackingStore.cpp:
177103        (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
177104        (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
177105        (WebCore::IDBLevelDBBackingStore::open):
177106        (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
177107        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
177108        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
177109        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
177110        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
177111        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
177112        (WebCore::IDBLevelDBBackingStore::getObjectStores):
177113        (WebCore::IDBLevelDBBackingStore::createObjectStore):
177114        (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
177115        (WebCore::IDBLevelDBBackingStore::getRecord):
177116        (WebCore):
177117        (WebCore::IDBLevelDBBackingStore::putRecord):
177118        (WebCore::IDBLevelDBBackingStore::clearObjectStore):
177119        (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
177120        (WebCore::IDBLevelDBBackingStore::deleteRecord):
177121        (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
177122        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
177123        (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
177124        (WebCore::IDBLevelDBBackingStore::getIndexes):
177125        (WebCore::IDBLevelDBBackingStore::createIndex):
177126        (WebCore::IDBLevelDBBackingStore::deleteIndex):
177127        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
177128        (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
177129        (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
177130        (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
177131        (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
177132        (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
177133        (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
177134        (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
177135        (WebCore::IDBLevelDBBackingStore::openIndexCursor):
177136        (WebCore::IDBLevelDBBackingStore::createTransaction):
177137        (WebCore::IDBLevelDBBackingStore::Transaction::create):
177138        (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
177139        (WebCore::IDBLevelDBBackingStore::Transaction::begin):
177140        (WebCore::IDBLevelDBBackingStore::Transaction::commit):
177141        (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
177142        (WebCore::IDBLevelDBBackingStore::backingStoreExists):
177143        * Modules/indexeddb/IDBBackingStore.h:
177144        (WebCore):
177145        (WebCore::IDBBackingStore::~IDBBackingStore):
177146        (IDBBackingStore):
177147        (RecordIdentifier):
177148        (WebCore::IDBBackingStore::Cursor::~Cursor):
177149        (WebCore::IDBBackingStore::Transaction::~Transaction):
177150        (Transaction):
177151        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
177152        (WebCore::IDBFactoryBackendImpl::openBackingStore):
177153        * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
177154        (WebCore):
177155        (IDBLevelDBBackingStore):
177156        (Transaction):
177157        (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
177158        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
177159        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
177160        (WebCore::IDBObjectStoreBackendImpl::putInternal):
177161        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
177162        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
177163        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
177164        (WebCore::IDBTransactionBackendImpl::abort):
177165        (WebCore::IDBTransactionBackendImpl::commit):
177166        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
177167        * Modules/indexeddb/IDBTransactionBackendImpl.h:
177168        (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
177169        * WebCore.xcodeproj/project.pbxproj:
177170
1771712012-11-09  Erik Arvidsson  <arv@chromium.org>
177172
177173        REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
177174        https://bugs.webkit.org/show_bug.cgi?id=101627
177175
177176        Reviewed by Alexey Proskuryakov.
177177
177178        We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
177179        was changed. If an element is moved from a standards document to a quirks mode document the
177180        m_classNamesForQuirksMode would not be up to date which lead to wrong results.
177181
177182        Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
177183
177184        Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
177185
177186        * html/ClassList.cpp:
177187        (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
177188                                          it is up to date.
177189        * html/ClassList.h:
177190
1771912012-11-09  Alec Flett  <alecflett@chromium.org>
177192
177193        IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
177194        https://bugs.webkit.org/show_bug.cgi?id=101415
177195
177196        Reviewed by Tony Chang.
177197
177198        Combine abstract interface IDBBackingStore with its only
177199        implementation, IDBLevelDBBackingStore, to reduce code
177200        complexity. The legacy structure existed to support a SQLLite
177201        IDBBackingStore, but it is no longer worth the complexity to
177202        support this abstraction.
177203
177204        Changes include:
177205        1) Merging IDBLevelDBBackingStore into IDBBackingStore.
177206
177207        2) Merge together IDBBackingStore's inner classes: Cursor,
177208        Transaction, and ObjectStoreRecordIdentfier with their respective
177209        subclasses in IDBLevelDBBackingStore.
177210
177211        3) Simplifying the inner Transaction class to not be refcounted or
177212        virtualized, to allow it to be a simple concrete member of its
177213        owner, IDBTransactionBackendImpl.
177214
177215        No new tests as this is purely a refactor.
177216
177217        * Modules/indexeddb/IDBBackingStore.cpp:
177218        (WebCore::recordInternalError):
177219        (WebCore::setUpMetadata):
177220        (WebCore::IDBBackingStore::IDBBackingStore):
177221        (WebCore):
177222        (WebCore::IDBBackingStore::~IDBBackingStore):
177223        (WebCore::IDBBackingStore::open):
177224        (WebCore::IDBBackingStore::getDatabaseNames):
177225        (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
177226        (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
177227        (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
177228        (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
177229        (WebCore::deleteRange):
177230        (WebCore::IDBBackingStore::deleteDatabase):
177231        (WebCore::IDBBackingStore::getObjectStores):
177232        (WebCore::setMaxObjectStoreId):
177233        (WebCore::IDBBackingStore::createObjectStore):
177234        (WebCore::IDBBackingStore::deleteObjectStore):
177235        (WebCore::IDBBackingStore::getRecord):
177236        (WebCore::IDBBackingStore::putRecord):
177237        (WebCore::IDBBackingStore::clearObjectStore):
177238        (WebCore::IDBBackingStore::deleteRecord):
177239        (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
177240        (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
177241        (WebCore::IDBBackingStore::keyExistsInObjectStore):
177242        (WebCore::IDBBackingStore::getIndexes):
177243        (WebCore::setMaxIndexId):
177244        (WebCore::IDBBackingStore::createIndex):
177245        (WebCore::IDBBackingStore::deleteIndex):
177246        (WebCore::IDBBackingStore::putIndexDataForRecord):
177247        (WebCore::IDBBackingStore::deleteIndexDataForRecord):
177248        (WebCore::IDBBackingStore::findKeyInIndex):
177249        (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
177250        (WebCore::IDBBackingStore::keyExistsInIndex):
177251        (WebCore::IDBBackingStore::Cursor::Cursor):
177252        (WebCore::IDBBackingStore::Cursor::firstSeek):
177253        (WebCore::IDBBackingStore::Cursor::advance):
177254        (WebCore::IDBBackingStore::Cursor::continueFunction):
177255        (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
177256        (WebCore::IDBBackingStore::Cursor::isPastBounds):
177257        (WebCore::ObjectStoreKeyCursorImpl::create):
177258        (ObjectStoreKeyCursorImpl):
177259        (WebCore::ObjectStoreKeyCursorImpl::value):
177260        (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
177261        (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
177262        (WebCore::ObjectStoreCursorImpl::create):
177263        (ObjectStoreCursorImpl):
177264        (WebCore::ObjectStoreCursorImpl::value):
177265        (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
177266        (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
177267        (WebCore::IndexKeyCursorImpl::create):
177268        (IndexKeyCursorImpl):
177269        (WebCore::IndexKeyCursorImpl::value):
177270        (WebCore::IndexKeyCursorImpl::primaryKey):
177271        (WebCore::IndexKeyCursorImpl::recordIdentifier):
177272        (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
177273        (WebCore::IndexKeyCursorImpl::loadCurrentRow):
177274        (WebCore::IndexCursorImpl::create):
177275        (IndexCursorImpl):
177276        (WebCore::IndexCursorImpl::value):
177277        (WebCore::IndexCursorImpl::primaryKey):
177278        (WebCore::IndexCursorImpl::recordIdentifier):
177279        (WebCore::IndexCursorImpl::IndexCursorImpl):
177280        (WebCore::IndexCursorImpl::loadCurrentRow):
177281        (WebCore::objectStoreCursorOptions):
177282        (WebCore::indexCursorOptions):
177283        (WebCore::IDBBackingStore::openObjectStoreCursor):
177284        (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
177285        (WebCore::IDBBackingStore::openIndexKeyCursor):
177286        (WebCore::IDBBackingStore::openIndexCursor):
177287        (WebCore::IDBBackingStore::Transaction::Transaction):
177288        (WebCore::IDBBackingStore::Transaction::begin):
177289        (WebCore::IDBBackingStore::Transaction::commit):
177290        (WebCore::IDBBackingStore::Transaction::rollback):
177291        * Modules/indexeddb/IDBBackingStore.h:
177292        (WebCore):
177293        (IDBBackingStore):
177294        (RecordIdentifier):
177295        (WebCore::IDBBackingStore::RecordIdentifier::create):
177296        (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
177297        (WebCore::IDBBackingStore::RecordIdentifier::isValid):
177298        (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
177299        (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
177300        (WebCore::IDBBackingStore::RecordIdentifier::version):
177301        (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
177302        (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
177303        (Transaction):
177304        (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
177305        (CursorOptions):
177306        (Cursor):
177307        (WebCore::IDBBackingStore::Cursor::Cursor):
177308        (WebCore::IDBBackingStore::Cursor::key):
177309        (WebCore::IDBBackingStore::Cursor::primaryKey):
177310        (WebCore::IDBBackingStore::Cursor::~Cursor):
177311        * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
177312        (WebCore::IDBFactoryBackendImpl::openBackingStore):
177313        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
177314        (WebCore::IDBIndexBackendImpl::countInternal):
177315        * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
177316        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
177317        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
177318        (WebCore::IDBObjectStoreBackendImpl::putInternal):
177319        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
177320        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
177321        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
177322        (WebCore::IDBTransactionBackendImpl::abort):
177323        (WebCore::IDBTransactionBackendImpl::commit):
177324        (WebCore::IDBTransactionBackendImpl::taskTimerFired):
177325        * Modules/indexeddb/IDBTransactionBackendImpl.h:
177326        (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
177327        * WebCore.xcodeproj/project.pbxproj:
177328
1773292012-10-28  Timothy Hatcher  <timothy@apple.com>
177330
177331        Make -webkit-canvas in CSS use the full backing store instead
177332        of always 1x when rendering.
177333
177334        https://bugs.webkit.org/show_bug.cgi?id=100611
177335
177336        Reviewed by Dean Jackson.
177337
177338        Test: fast/canvas/canvas-as-image-hidpi.html
177339
177340        * html/HTMLCanvasElement.cpp:
177341        (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
177342        (WebCore::HTMLCanvasElement::copiedImage): Ditto.
177343        * platform/graphics/ImageBuffer.h:
177344        * platform/graphics/cg/ImageBufferCG.cpp:
177345        (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
177346        * platform/graphics/cairo/ImageBufferCairo.cpp:
177347        (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
177348        * platform/graphics/qt/ImageBufferQt.cpp:
177349        (WebCore::ImageBuffer::copyImage): Ditto.
177350        * platform/graphics/skia/ImageBufferSkia.cpp:
177351        (WebCore::ImageBuffer::copyImage): Ditto.
177352        * platform/graphics/wince/ImageBufferWinCE.cpp:
177353        (WebCore::ImageBuffer::copyImage): Ditto.
177354        * platform/graphics/wx/ImageBufferWx.cpp:
177355        (WebCore::ImageBuffer::copyImage): Ditto.
177356
1773572012-10-28  Timothy Hatcher  <timothy@apple.com>
177358
177359        Reset the canvas backing store pixel ratio when the buffer resizes.
177360
177361        The backing store was not being recreated using the current page pixel ratio
177362        when a resize occurred.
177363
177364        https://bugs.webkit.org/show_bug.cgi?id=100608
177365
177366        Reviewed by Darin Adler.
177367
177368        Test: fast/canvas/canvas-resize-reset-pixelRatio.html
177369
177370        * html/HTMLCanvasElement.cpp:
177371        (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
177372        (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
177373        match. Store the new pixel ratio in m_deviceScaleFactor.
177374        (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
177375        * html/HTMLCanvasElement.h:
177376        (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
177377        pixel ratios match.
177378
1773792012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
177380
177381        RemoveFormat command doesn't remove background color
177382        https://bugs.webkit.org/show_bug.cgi?id=101682
177383
177384        Reviewed by Tony Chang.
177385
177386        Fixed the bug by removing all non-transparent background-color properties.
177387
177388        Test: editing/execCommand/remove-format-background-color.html
177389
177390        * editing/RemoveFormatCommand.cpp:
177391        (WebCore::RemoveFormatCommand::doApply):
177392
1773932012-11-09  Alec Flett  <alecflett@chromium.org>
177394
177395        IndexedDB: switch frontend to use int64_t-based references
177396        https://bugs.webkit.org/show_bug.cgi?id=100426
177397
177398        Reviewed by Tony Chang.
177399
177400        Remove String-based objectStore/index references, obsoleted by
177401        https://bugs.webkit.org/show_bug.cgi?id=100425.
177402
177403        No new tests as this is the second half of a refactor.
177404
177405        * Modules/indexeddb/IDBCallbacks.h:
177406        * Modules/indexeddb/IDBDatabase.cpp:
177407        (WebCore::IDBDatabase::deleteObjectStore):
177408        (WebCore::IDBDatabase::transaction):
177409        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
177410        (WebCore::IDBDatabaseBackendImpl::setVersion):
177411        (WebCore::IDBDatabaseBackendImpl::transaction):
177412        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
177413        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
177414        (IDBDatabaseBackendImpl):
177415        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
177416        (IDBDatabaseBackendInterface):
177417        * Modules/indexeddb/IDBMetadata.h:
177418        (WebCore::IDBObjectStoreMetadata::findIndex):
177419        (IDBObjectStoreMetadata):
177420        (WebCore::IDBObjectStoreMetadata::containsIndex):
177421        * Modules/indexeddb/IDBObjectStore.cpp:
177422        (WebCore::IDBObjectStore::put):
177423        (WebCore):
177424        (WebCore::IDBObjectStore::index):
177425        (WebCore::IDBObjectStore::deleteIndex):
177426        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
177427        (WebCore::IDBObjectStoreBackendImpl::put):
177428        (WebCore):
177429        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
177430        (IDBObjectStoreBackendImpl):
177431        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
177432        * inspector/Inspector-1.0.json:
177433        * inspector/Inspector.json:
177434        * inspector/InspectorIndexedDBAgent.cpp:
177435        (WebCore):
177436        (WebCore::InspectorIndexedDBAgent::requestData):
177437        * inspector/InspectorIndexedDBAgent.h:
177438        (InspectorIndexedDBAgent):
177439
1774402012-11-09  Mario Sanchez Prada  <mario@webkit.org>
177441
177442        [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
177443        https://bugs.webkit.org/show_bug.cgi?id=101727
177444
177445        Reviewed by Chris Fleizach.
177446
177447        Added conditional compilation checks for GTK+ specific
177448        accessibility code, to pave the way for sharing this
177449        implementation with other ports (e.g WebKitEFL).
177450
177451        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
177452        (webkitAccessibleTextGetTextAfterOffset): Added conditional
177453        compilation checks, only implementing it in GTK so far.
177454        (webkitAccessibleTextGetTextAtOffset): Ditto.
177455        (webkitAccessibleTextGetTextBeforeOffset): Ditto.
177456        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
177457        (atkParentOfRootObject): Added conditional compilation checks,
177458        only implementing in GTK the part of getting the accessible object
177459        for the root object.
177460        (webkitAccessibleGetParent): Updated comments.
177461        (webkitAccessibleGetNChildren): Ditto.
177462        (webkitAccessibleRefChild): Ditto.
177463        (webkitAccessibleGetIndexInParent): Ditto.
177464        (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
177465        for GTK. Other ports might be interested in this too.
177466        (setAtkStateSetFromCoreObject): Updated comments.
177467
1774682012-11-09  Tommy Widenflycht  <tommyw@google.com>
177469
177470        MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
177471        https://bugs.webkit.org/show_bug.cgi?id=101586
177472
177473        Reviewed by Adam Barth.
177474
177475        Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
177476        ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
177477        API some WebCore objects might be cleaned away which is not allowed at this stage.
177478
177479        This behaviour is not possible to test unfortunately in webkit.
177480
177481        * Modules/mediastream/RTCPeerConnection.cpp:
177482        (WebCore::RTCPeerConnection::stop):
177483
1774842012-11-09  Joshua Bell  <jsbell@chromium.org>
177485
177486        [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
177487
177488        * WebCore.gypi:
177489
1774902012-11-09  Dan Carney  <dcarney@google.com>
177491
177492        [V8] Remove ScriptController::windowShell()
177493        https://bugs.webkit.org/show_bug.cgi?id=100235
177494
177495        Reviewed by Adam Barth.
177496
177497        Refactored windowShell(DOMWrapperWorld*) and
177498        existingWindowShell(DOMWrapperWorld*) to be like JSC.
177499
177500        No new tests. No change in functionality.
177501
177502        * bindings/scripts/CodeGeneratorV8.pm:
177503        (GenerateToV8Converters):
177504        * bindings/v8/DOMWrapperWorld.cpp:
177505        (WebCore::isolatedWorldMap):
177506        (WebCore::DOMWrapperWorld::getAllWorlds):
177507        (WebCore):
177508        * bindings/v8/DOMWrapperWorld.h:
177509        (DOMWrapperWorld):
177510        * bindings/v8/PageScriptDebugServer.cpp:
177511        (WebCore::PageScriptDebugServer::addListener):
177512        * bindings/v8/ScriptController.cpp:
177513        (WebCore::ScriptController::~ScriptController):
177514        (WebCore::ScriptController::clearForOutOfMemory):
177515        (WebCore):
177516        (WebCore::ScriptController::clearForClose):
177517        (WebCore::ScriptController::updateSecurityOrigin):
177518        (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
177519        (WebCore::existingWindowShellWorkaroundWorld):
177520        (WebCore::ScriptController::existingWindowShell):
177521        (WebCore::ScriptController::windowShell):
177522        (WebCore::ScriptController::evaluateInIsolatedWorld):
177523        (WebCore::ScriptController::currentWorldContext):
177524        (WebCore::ScriptController::mainWorldContext):
177525        (WebCore::ScriptController::haveInterpreter):
177526        (WebCore::ScriptController::enableEval):
177527        (WebCore::ScriptController::disableEval):
177528        (WebCore::ScriptController::clearWindowShell):
177529        (WebCore::ScriptController::setContextDebugId):
177530        (WebCore::ScriptController::updateDocument):
177531        (WebCore::ScriptController::namedItemAdded):
177532        (WebCore::ScriptController::namedItemRemoved):
177533        * bindings/v8/ScriptController.h:
177534        (ScriptController):
177535        (WebCore::ScriptController::getAllWorlds):
177536        * bindings/v8/V8Binding.cpp:
177537        (WebCore::perContextDataForCurrentWorld):
177538        (WebCore::handleOutOfMemory):
177539        * bindings/v8/V8DOMWindowShell.cpp:
177540        (WebCore::V8DOMWindowShell::initializeIfNeeded):
177541        (WebCore::V8DOMWindowShell::updateDocument):
177542        (WebCore::V8DOMWindowShell::namedItemAdded):
177543        (WebCore::V8DOMWindowShell::namedItemRemoved):
177544        * bindings/v8/V8DOMWindowShell.h:
177545        (WebCore::V8DOMWindowShell::isContextInitialized):
177546        (WebCore::V8DOMWindowShell::isGlobalInitialized):
177547        * bindings/v8/custom/V8DocumentCustom.cpp:
177548        (WebCore::toV8):
177549        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
177550        (WebCore::toV8):
177551        * bindings/v8/custom/V8SVGDocumentCustom.cpp:
177552        (WebCore::toV8):
177553
1775542012-11-09  Adam Barth  <abarth@webkit.org>
177555
177556        [V8] Remove a level of indirection in DOMDataStore
177557        https://bugs.webkit.org/show_bug.cgi?id=101690
177558
177559        Reviewed by Kentaro Hara.
177560
177561        There is no longer any reason for the DOMDataStore to hold the wrapper
177562        map via a pointer. It can just hold the wrapper map directly, saving a
177563        level of indirection. I doubt this has any measurable performance gain.
177564
177565        * bindings/v8/DOMDataStore.cpp:
177566        (WebCore::DOMDataStore::DOMDataStore):
177567        (WebCore::DOMDataStore::~DOMDataStore):
177568        (WebCore::DOMDataStore::reportMemoryUsage):
177569        * bindings/v8/DOMDataStore.h:
177570        (WebCore::DOMDataStore::get):
177571        (WebCore::DOMDataStore::set):
177572        (DOMDataStore):
177573
1775742012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
177575
177576        [CSSRegions] Region styling properties are not filtered correctly
177577        https://bugs.webkit.org/show_bug.cgi?id=101768
177578
177579        Reviewed by Andreas Kling.
177580
177581        Region styling allows only a handful of css properties. There is a mechanism in place,
177582        in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
177583        In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
177584        This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
177585
177586        Test: fast/regions/region-style-not-supported-properties.html
177587
177588        * css/RuleSet.cpp:
177589        (WebCore::RuleData::RuleData):
177590
1775912012-11-09  Tommy Widenflycht  <tommyw@google.com>
177592
177593        MediaStream API: Deleting all files relating to the deprecated PeerConnection00
177594        https://bugs.webkit.org/show_bug.cgi?id=101730
177595
177596        Reviewed by Adam Barth.
177597
177598        Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
177599        files relating to the old API.
177600
177601        No testing needed, the remaining tests makes sure that nothing else breaks.
177602
177603        * CMakeLists.txt:
177604        * GNUmakefile.list.am:
177605        * Modules/mediastream/DOMWindowMediaStream.idl:
177606        * Modules/mediastream/IceCallback.h: Removed.
177607        * Modules/mediastream/IceCallback.idl: Removed.
177608        * Modules/mediastream/IceCandidate.cpp: Removed.
177609        * Modules/mediastream/IceCandidate.h: Removed.
177610        * Modules/mediastream/IceCandidate.idl: Removed.
177611        * Modules/mediastream/PeerConnection00.cpp: Removed.
177612        * Modules/mediastream/PeerConnection00.h: Removed.
177613        * Modules/mediastream/PeerConnection00.idl: Removed.
177614        * Modules/mediastream/SessionDescription.cpp: Removed.
177615        * Modules/mediastream/SessionDescription.h: Removed.
177616        * Modules/mediastream/SessionDescription.idl: Removed.
177617        * WebCore.gypi:
177618        * bindings/generic/RuntimeEnabledFeatures.cpp:
177619        (WebCore):
177620        * bindings/generic/RuntimeEnabledFeatures.h:
177621        (RuntimeEnabledFeatures):
177622        * dom/EventTargetFactory.in:
177623        * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
177624        * platform/chromium/support/WebICEOptions.cpp: Removed.
177625        * platform/chromium/support/WebMediaHints.cpp: Removed.
177626        * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
177627        * platform/mediastream/IceCandidateDescriptor.h: Removed.
177628        * platform/mediastream/IceOptions.cpp: Removed.
177629        * platform/mediastream/IceOptions.h: Removed.
177630        * platform/mediastream/MediaHints.cpp: Removed.
177631        * platform/mediastream/MediaHints.h: Removed.
177632        * platform/mediastream/MediaStreamCenter.h:
177633        (WebCore):
177634        (MediaStreamCenter):
177635        * platform/mediastream/PeerConnection00Handler.cpp: Removed.
177636        * platform/mediastream/PeerConnection00Handler.h: Removed.
177637        * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
177638        * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
177639        * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
177640        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
177641        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
177642        (WebCore):
177643        (MediaStreamCenterBlackBerry):
177644        * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
177645        * platform/mediastream/chromium/MediaStreamCenterChromium.h:
177646        (WebCore):
177647        (MediaStreamCenterChromium):
177648        * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
177649        * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
177650        * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
177651        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
177652        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
177653        (WebCore):
177654        (MediaStreamCenterGStreamer):
177655
1776562012-11-09  Jer Noble  <jer.noble@apple.com>
177657
177658        Plugin diagnostic logging should send plugin file basename instead of MIME type.
177659        https://bugs.webkit.org/show_bug.cgi?id=101679
177660
177661        Reviewed by Eric Carlson.
177662
177663        Log the basename of the plugin file rather than the mime type so as to more
177664        accurately log which plugin was used to handle the request.
177665
177666        * loader/SubframeLoader.cpp:
177667        (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
177668        * plugins/PluginData.cpp:
177669        (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
177670        (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
177671        (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
177672        * plugins/PluginData.h:
177673
1776742012-11-09  Alexey Proskuryakov  <ap@apple.com>
177675
177676        CookieJar uses Document class, which is a layering violation
177677        https://bugs.webkit.org/show_bug.cgi?id=101621
177678
177679        Reviewed by Brady Eidson.
177680
177681        Split CookieJar in two parts, one that takes a Document, and another that is a pure
177682        platform one, using NetworkingContext to access the correct platform storage.
177683
177684        * GNUmakefile.list.am:
177685        * PlatformBlackBerry.cmake:
177686        * Target.pri:
177687        * WebCore.gypi:
177688        * WebCore.gyp/WebCore.gyp:
177689        * WebCore.vcproj/WebCore.vcproj:
177690        * WebCore.xcodeproj/project.pbxproj:
177691        Updated.
177692
177693        * loader/CookieJar.cpp: Added.
177694        (WebCore::networkingContext):
177695        (WebCore::cookies):
177696        (WebCore::setCookies):
177697        (WebCore::cookiesEnabled):
177698        (WebCore::cookieRequestHeaderFieldValue):
177699        (WebCore::getRawCookies):
177700        (WebCore::deleteCookie):
177701        (WebCore::getHostnamesWithCookies):
177702        (WebCore::deleteCookiesForHostname):
177703        (WebCore::deleteAllCookies):
177704        * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
177705        This is an adaptor for pure platform implementations. Clients continue to use the
177706        old interface unchanged.
177707
177708        * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
177709        * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
177710        * platform/network/chromium/CookieJarChromium.cpp: Removed.
177711        * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
177712        These platforms do not have a pure platform implementation yet, so they just keep
177713        to use original implementations. Since the code is not in platform/ any more, the
177714        violation is resolved for Chromium and Blackberry, too.
177715
177716        * platform/CookieJar.h: Removed.
177717        * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
177718        The platform interface is now more uniform - all functions take a NetworkingContext
177719        instead of hardcoding which cookie storage to use in some cases.
177720        Renamed functions that are only useful for document.cookie implementation to look
177721        less generic.
177722
177723        * platform/mac/CookieJar.mm: Removed.
177724        * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
177725        (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
177726        takes a firstParty URL (unused on Mac, but used on some other platforms).
177727        (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
177728        use shared one if context is null).
177729        (WebCore::setCookiesFromDOM): Ditto.
177730        (WebCore::cookiesEnabled): Ditto.
177731        (WebCore::getRawCookies): Ditto.
177732        (WebCore::deleteCookie): Ditto.
177733        (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
177734        but its cleaner to have a uniform interface.
177735        (WebCore::deleteCookiesForHostname): Ditto.
177736        (WebCore::deleteAllCookies): Ditto.
177737
177738        * platform/network/cf/CookieJarCFNet.cpp:
177739        Same changes as on Mac.
177740
177741        * platform/network/curl/CookieJarCurl.cpp:
177742        Updated for new interface. Implementation is largely a dummy one.
177743
177744        * platform/qt/CookieJarQt.h: Removed.
177745        * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
177746        Moved to a common location, most cookie files were in network/ already.
177747
177748        * platform/qt/CookieJarQt.cpp: Removed.
177749        * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
177750        (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
177751        (WebCore::cookiesForDOM): Ditto.
177752        (WebCore::cookieRequestHeaderFieldValue): Ditto.
177753        (WebCore::cookiesEnabled): Ditto.
177754        (WebCore::getRawCookies): Ditto.
177755        (WebCore::deleteCookie): Ditto.
177756        (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
177757        jar here, assert that argument does not request another one.
177758        (WebCore::deleteCookiesForHostname): Ditto.
177759        (WebCore::deleteAllCookies): Ditto.
177760
177761        * platform/network/soup/CookieJarSoup.cpp:
177762        (WebCore::cookieJarForContext):
177763        (WebCore::setCookiesFromDOM):
177764        (WebCore::cookiesForContext):
177765        (WebCore::cookiesForDOM):
177766        (WebCore::cookieRequestHeaderFieldValue):
177767        (WebCore::cookiesEnabled):
177768        (WebCore::getRawCookies):
177769        (WebCore::deleteCookie):
177770        (WebCore::getHostnamesWithCookies):
177771        (WebCore::deleteCookiesForHostname):
177772        (WebCore::deleteAllCookies):
177773        Updated for new function signatures, and use the same cross-platform logic for
177774        choosing a cookie jar.
177775
177776        * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
177777        
177778        * platform/network/win/CookieJarWin.cpp:
177779        (WebCore::setCookiesFromDOM):
177780        (WebCore::cookiesForDOM):
177781        (WebCore::cookieRequestHeaderFieldValue):
177782        (WebCore::cookiesEnabled):
177783        (WebCore::getRawCookies):
177784        (WebCore::deleteCookie):
177785        (WebCore::getHostnamesWithCookies):
177786        (WebCore::deleteCookiesForHostname):
177787        (WebCore::deleteAllCookies):
177788        Updated for new function signatures.
177789
1777902012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
177791
177792        [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
177793        https://bugs.webkit.org/show_bug.cgi?id=101750
177794
177795        Reviewed by Ojan Vafai.
177796
177797        This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
177798        "text-decoration" property, but recently have its parser function modified by
177799        the addition of CSS3 "-webkit-text-decoration-line" property.
177800
177801        The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
177802        layout test is updated with all possible value combinations.
177803
177804        * css/CSSParser.cpp:
177805        (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
177806        if accepted.
177807
1778082012-11-09  Xan Lopez  <xlopez@igalia.com>
177809
177810        [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
177811        https://bugs.webkit.org/show_bug.cgi?id=101581
177812
177813        Reviewed by Martin Robinson.
177814
177815        Use normal GNU Make wildcards instead of 'ls' to list files in
177816        EXTRA_DIST, it's safer and more straightforward.
177817
177818        * GNUmakefile.am: ditto.
177819
1778202012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
177821
177822        Need to clear exception in JSDictionary that might have been caused by previous operation.
177823        https://bugs.webkit.org/show_bug.cgi?id=96614
177824
177825        Reviewed by George Staikos.
177826
177827        IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
177828        String Array type of KeyPath. It will first try to get the keyPath as a String Array,
177829        if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
177830        will leave the internal ExecState of Dictionary in exception state. We need to clear
177831        the exception state before the 2nd query, otherwise the second query will also fail.
177832
177833        No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
177834        now work with this patch.
177835        * bindings/js/JSDictionary.cpp:
177836        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
177837
1778382012-11-09  Keishi Hattori  <keishi@webkit.org>
177839
177840        Month/week picker should submit month/week string
177841        https://bugs.webkit.org/show_bug.cgi?id=101744
177842
177843        Reviewed by Kent Tamura.
177844
177845        Month/week picker should submit month/week string and not yyyy-mm-dd.
177846
177847        No new tests. Test will be added in Bug 101555 and Bug 101556.
177848
177849        * Resources/pagepopups/calendarPicker.js:
177850        (DaysTable.prototype._handleDayClick):
177851
1778522012-11-07  Pavel Feldman  <pfeldman@chromium.org>
177853
177854        Web Inspector: wrong output for empty object {}
177855        https://bugs.webkit.org/show_bug.cgi?id=101356
177856
177857        Reviewed by Vsevolod Vlasov.
177858
177859        Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
177860
177861        * inspector/InjectedScriptSource.js:
177862        (.):
177863        * inspector/front-end/ConsoleMessage.js:
177864        (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
177865
1778662012-11-09  Keishi Hattori  <keishi@webkit.org>
177867
177868        Fix annotations in page popup files
177869        https://bugs.webkit.org/show_bug.cgi?id=101736
177870
177871        Reviewed by Kent Tamura.
177872
177873        Add @constructor where needed. Replacing /* with /** for annotations.
177874
177875        No new tests. No behavior change.
177876
177877        * Resources/pagepopups/calendarPicker.js:
177878        * Resources/pagepopups/pickerCommon.js:
177879        * Resources/pagepopups/suggestionPicker.js:
177880
1778812012-11-09  Huang Dongsung  <luxtella@company100.net>
177882
177883        Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
177884        https://bugs.webkit.org/show_bug.cgi?id=101656
177885
177886        Reviewed by Kenneth Rohde Christiansen.
177887
177888        TiledBackingStore computes cover and keep rects to create, keep or remove tiles
177889        smartly, but currently TiledBackingStore expects a contents rect is big enough
177890        to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
177891        is usually wrong expectation.
177892
177893        We must compute cover and keep rects using the visibleRect, instead of
177894        the rect intersecting the visibleRect with m_rect, because TBS can be
177895        used as a backing store of GraphicsLayer and the visible rect usually
177896        does not intersect with m_rect.
177897        In the below case, the intersecting rect is an empty.
177898
177899         +---------------+
177900         |               |
177901         |   m_rect      |
177902         |       +-------|-----------------------+
177903         |       | HERE  |  cover or keep        |
177904         +---------------+      rect             |
177905                 |         +---------+           |
177906                 |         | visible |           |
177907                 |         |  rect   |           |
177908                 |         +---------+           |
177909                 |                               |
177910                 |                               |
177911                 +-------------------------------+
177912
177913        We must create or keep the tiles in the HERE region. Currently in the
177914        case, we do not create or keep tiles on the HERE region. Moreover, in
177915        the case, we early return, which means we don't remove any tiles. It
177916        causes to waste heap and video memory.
177917
177918        This patch changes TiledBackingStore to manage tiles smartly for
177919        Coordinated Graphics.
177920
177921        Changing cache policy is not testable in layout tests.
177922
177923        * platform/graphics/TiledBackingStore.cpp:
177924        (WebCore::TiledBackingStore::visibleRect):
177925        (WebCore::TiledBackingStore::visibleAreaIsCovered):
177926        (WebCore::TiledBackingStore::createTiles):
177927        (WebCore::TiledBackingStore::adjustForContentsRect):
177928        (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
177929        * platform/graphics/TiledBackingStore.h:
177930        (TiledBackingStore):
177931
1779322012-11-09  Keishi Hattori  <keishi@webkit.org>
177933
177934        Fix undefined variable in Week constructor for calendar picker
177935        https://bugs.webkit.org/show_bug.cgi?id=101734
177936
177937        Reviewed by Kent Tamura.
177938
177939        Closer compiler found an undefined variable in the Week constructor.
177940
177941        No new tests. This code isn't used.
177942
177943        * Resources/pagepopups/calendarPicker.js:
177944        (Week): Used wrong variable name.
177945
1779462012-11-09  Pavel Feldman  <pfeldman@chromium.org>
177947
177948        Web Inspector: render canvas log as a grid.
177949        https://bugs.webkit.org/show_bug.cgi?id=101732
177950
177951        Reviewed by Vsevolod Vlasov.
177952
177953        * English.lproj/localizedStrings.js:
177954        * inspector/front-end/CanvasProfileView.js:
177955        (WebInspector.CanvasProfileView):
177956        (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
177957        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
177958        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
177959        (WebInspector.CanvasProfileHeader.prototype.traceLogId):
177960        (WebInspector.CanvasLogGrid):
177961        (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
177962        (WebInspector.CanvasLogGrid.prototype._createCallNode):
177963        * inspector/front-end/DataGrid.js:
177964        (WebInspector.DataGridNode.prototype.createCell):
177965        * inspector/front-end/canvasProfiler.css:
177966        (#canvas-replay-image-container):
177967
1779682012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
177969
177970        Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
177971        https://bugs.webkit.org/show_bug.cgi?id=101595
177972
177973        Reviewed by Simon Hausmann.
177974
177975        If the contextMenu is a null pointer treat it as empty, appendItem will later
177976        create it if necessary.
177977
177978        * page/ContextMenuController.cpp:
177979        (WebCore::ContextMenuController::addInspectElementItem):
177980
1779812012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
177982
177983        [EFL][WK2] Add support for custom cursors
177984        https://bugs.webkit.org/show_bug.cgi?id=101723
177985
177986        Reviewed by Kenneth Rohde Christiansen.
177987
177988        Add getEvasObject() virtual method to Image class and
177989        provide implementation for BitmapImage.
177990
177991        No new tests, no behavior change.
177992
177993        * platform/efl/CursorEfl.cpp:
177994        (WebCore::cursorString):
177995        * platform/graphics/BitmapImage.h:
177996        (BitmapImage):
177997        * platform/graphics/Image.h:
177998        (Image):
177999        (WebCore::Image::getEvasObject):
178000        * platform/graphics/efl/ImageEfl.cpp:
178001        (WebCore::BitmapImage::getEvasObject):
178002        (WebCore):
178003
1780042012-11-09  Adam Barth  <abarth@webkit.org>
178005
178006        IndexedDB should use mostly ScriptWrappable DOM objects
178007        https://bugs.webkit.org/show_bug.cgi?id=101694
178008
178009        Reviewed by Kentaro Hara.
178010
178011        These object always have JavaScript wrappers, so we should store the
178012        wrappers inline to use less memory and be faster.
178013
178014        * Modules/indexeddb/IDBAny.h:
178015        * Modules/indexeddb/IDBCursor.h:
178016        * Modules/indexeddb/IDBDatabase.h:
178017        * Modules/indexeddb/IDBFactory.h:
178018        * Modules/indexeddb/IDBIndex.h:
178019        * Modules/indexeddb/IDBKey.h:
178020        * Modules/indexeddb/IDBKeyRange.h:
178021        * Modules/indexeddb/IDBObjectStore.h:
178022        * Modules/indexeddb/IDBRequest.h:
178023        * Modules/indexeddb/IDBTransaction.h:
178024
1780252012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
178026
178027        Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
178028        https://bugs.webkit.org/show_bug.cgi?id=101578
178029
178030        Reviewed by Yury Semikhatsky.
178031
178032        Added specific error message when request content was evicted from inspector cache.
178033        Replaced purge with evict in fields/methods names.
178034
178035        * inspector/InspectorResourceAgent.cpp:
178036        (WebCore::InspectorResourceAgent::getResponseBody):
178037        * inspector/NetworkResourcesData.cpp:
178038        (WebCore::NetworkResourcesData::ResourceData::ResourceData):
178039        (WebCore::NetworkResourcesData::ResourceData::evictContent):
178040        (WebCore::NetworkResourcesData::setResourceContent):
178041        (WebCore::NetworkResourcesData::maybeAddResourceData):
178042        (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
178043        (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
178044        (WebCore::NetworkResourcesData::ensureFreeSpace):
178045        * inspector/NetworkResourcesData.h:
178046        (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
178047        (ResourceData):
178048
1780492012-11-09  Kent Tamura  <tkent@chromium.org>
178050
178051        Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
178052        https://bugs.webkit.org/show_bug.cgi?id=101722
178053
178054        Reviewed by Hajime Morita.
178055
178056        Because the date/time input types are not textfields, we should not use
178057        RenderTextControlSingleLine, and don't need to create shadow trees for
178058        RenderTextControlSingleLine.
178059
178060        No new tests. Covered by fast/forms/*/*-appearance-*.html.
178061
178062        * css/html.css:
178063        (input[type="date"]):
178064        It has menulist appeanrace by default, and should be a flexible box to
178065        center the inner text. 10em width is almost same as the default width of
178066        text fields.
178067        (input[type="datetime"]): Ditto.
178068        (input[type="datetime-local"]): Ditto.
178069        (input[type="month"]): Ditto.
178070        (input[type="time"]): Ditto.
178071        (input[type="week"]): Ditto.
178072        (input::-webkit-date-and-time-value):
178073        Added. A style for the inner text block.
178074        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
178075        (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
178076        Don't create RenderTextControlSingleLine.
178077        (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
178078        Skip TextFieldInputType::updateInnerTextValue.
178079        (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
178080        Skip TextFieldInputType::forwardEvent.
178081        (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
178082        Just add one element to the shadow root.
178083        (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
178084        Sets a localized value to the inner text block.
178085        (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
178086        Calls updateAppearance if the value is updated.
178087        * html/BaseChooserOnlyDateAndTimeInputType.h:
178088        (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
178089        createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
178090        and setValue.
178091        * html/BaseDateAndTimeInputType.h:
178092        (WebCore): Add a FIXME comment.
178093        (BaseDateAndTimeInputType):
178094        Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
178095        * html/TextFieldInputType.h:
178096        (TextFieldInputType):
178097        Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
178098
1780992012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
178100
178101        Web Inspector: Clarify meaning of different urls in protocol.
178102        https://bugs.webkit.org/show_bug.cgi?id=101582
178103
178104        Reviewed by Yury Semikhatsky.
178105
178106        * inspector/Inspector.json:
178107
1781082012-11-09  Keishi Hattori  <keishi@webkit.org>
178109
178110        Month picker should select the current month when navigating while keeping selection position.
178111        https://bugs.webkit.org/show_bug.cgi?id=101724
178112
178113        Reviewed by Kent Tamura.
178114
178115        Month picker needs to behave differently because selection won't be in the same position when changing current month.
178116
178117        No new tests. Test will be added in Bug 101556.
178118
178119        * Resources/pagepopups/calendarPicker.js:
178120        (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
178121        (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
178122        (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
178123
1781242012-11-09  Alexei Filippov  <alph@chromium.org>
178125
178126        Web Inspector: Fix heap snapshots counted several times by NMI
178127        https://bugs.webkit.org/show_bug.cgi?id=101085
178128
178129        The fix moves snapshots size counting to V8PerIsolateData class. As long
178130        as it has one instance per isolate its reportMemoryUsage should be
178131        called once per isolate.
178132
178133        Reviewed by Yury Semikhatsky.
178134
178135        * bindings/v8/V8PerIsolateData.cpp:
178136        (WebCore::V8PerIsolateData::reportMemoryUsage):
178137        * inspector/InspectorProfilerAgent.cpp:
178138        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
178139
1781402012-11-08  Pavel Feldman  <pfeldman@chromium.org>
178141
178142        Web Inspector: split SplitView into SplitView and SidebarView
178143        https://bugs.webkit.org/show_bug.cgi?id=101612
178144
178145        Reviewed by Vsevolod Vlasov.
178146
178147        Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
178148
178149        * WebCore.gypi:
178150        * WebCore.vcproj/WebCore.vcproj:
178151        * inspector/compile-front-end.py:
178152        * inspector/front-end/AuditsPanel.js:
178153        (WebInspector.AuditsPanel):
178154        * inspector/front-end/CSSNamedFlowCollectionsView.js:
178155        (WebInspector.CSSNamedFlowCollectionsView):
178156        (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
178157        * inspector/front-end/ElementsPanel.js:
178158        * inspector/front-end/FileSystemView.js:
178159        (WebInspector.FileSystemView):
178160        * inspector/front-end/MemoryStatistics.js:
178161        (WebInspector.CounterUI):
178162        (WebInspector.MemoryStatistics.prototype.setTopPosition):
178163        (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
178164        (WebInspector.MemoryStatistics.prototype.visible):
178165        (WebInspector.MemoryStatistics.prototype.show):
178166        (WebInspector.MemoryStatistics.prototype.hide):
178167        * inspector/front-end/NavigatorOverlayController.js:
178168        (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
178169        (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
178170        (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
178171        (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
178172        * inspector/front-end/NetworkPanel.js:
178173        * inspector/front-end/Panel.js:
178174        (WebInspector.Panel.prototype.createSidebarView):
178175        (WebInspector.Panel.prototype.createSidebarViewWithTree):
178176        * inspector/front-end/ProfilesPanel.js:
178177        (WebInspector.ProfilesPanel):
178178        * inspector/front-end/ResourcesPanel.js:
178179        * inspector/front-end/ScriptsPanel.js:
178180        (WebInspector.ScriptsPanel):
178181        * inspector/front-end/SidebarView.js: Added.
178182        (WebInspector.SidebarView):
178183        (WebInspector.SidebarView.prototype._hasLeftSidebar):
178184        (WebInspector.SidebarView.prototype.get mainElement):
178185        (WebInspector.SidebarView.prototype.get sidebarElement):
178186        (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
178187        (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
178188        (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
178189        (WebInspector.SidebarView.prototype.setSidebarWidth):
178190        (WebInspector.SidebarView.prototype.sidebarWidth):
178191        (WebInspector.SidebarView.prototype.onResize):
178192        (WebInspector.SidebarView.prototype.applyConstraints):
178193        (WebInspector.SidebarView.prototype.hideMainElement):
178194        (WebInspector.SidebarView.prototype.showMainElement):
178195        (WebInspector.SidebarView.prototype.hideSidebarElement):
178196        (WebInspector.SidebarView.prototype.showSidebarElement):
178197        (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
178198        * inspector/front-end/SplitView.js:
178199        (WebInspector.SplitView):
178200        (WebInspector.SplitView.prototype.firstElement):
178201        (WebInspector.SplitView.prototype.secondElement):
178202        (WebInspector.SplitView.prototype.setChangeFirstOnResize):
178203        (WebInspector.SplitView.prototype.resizerElement):
178204        (WebInspector.SplitView.prototype.showOnlyFirst):
178205        (WebInspector.SplitView.prototype.showOnlySecond):
178206        (WebInspector.SplitView.prototype._showOnly):
178207        (WebInspector.SplitView.prototype._removeAllLayoutProperties):
178208        (WebInspector.SplitView.prototype.showBoth):
178209        (WebInspector.SplitView.prototype.setResizable):
178210        (WebInspector.SplitView.prototype.setSplitOffset):
178211        (WebInspector.SplitView.prototype.splitOffset):
178212        (WebInspector.SplitView.prototype._innerSetSplitOffset):
178213        (WebInspector.SplitView.prototype._startResizerDragging):
178214        * inspector/front-end/TimelinePanel.js:
178215        * inspector/front-end/WebKit.qrc:
178216        * inspector/front-end/inspector.html:
178217        * inspector/front-end/splitView.css:
178218
1782192012-11-09  Andrey Lushnikov  <lushnikov@google.com>
178220
178221        Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
178222        https://bugs.webkit.org/show_bug.cgi?id=101591
178223
178224        Reviewed by Vsevolod Vlasov.
178225
178226        Intercept Ctrl+A event in DefaultTextEditor to select resource content
178227
178228        * inspector/front-end/DefaultTextEditor.js:
178229        (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
178230        (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
178231        (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
178232        * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
178233
1782342012-11-09  Dan Carney  <dcarney@google.com>
178235
178236        [V8] Main world should have one DOMDataStore
178237        https://bugs.webkit.org/show_bug.cgi?id=101470
178238
178239        Reviewed by Kentaro Hara.
178240
178241        The main world DOMWrapperWorld held onto a DOMDataStore that should
178242        never be used, as there is a static one optimized for speed in
178243        DOMDataStore.
178244
178245        No new tests. No change in functionality.
178246
178247        * bindings/v8/DOMDataStore.cpp:
178248        (WebCore::DOMDataStore::current):
178249        * bindings/v8/DOMWrapperWorld.h:
178250        (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
178251        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
178252        * bindings/v8/V8DOMWrapper.h:
178253        (WebCore::V8DOMWrapper::getCachedWrapper):
178254
1782552012-11-09  Alexei Filippov  <alph@chromium.org>
178256
178257        Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
178258        https://bugs.webkit.org/show_bug.cgi?id=101611
178259
178260        Reviewed by Yury Semikhatsky.
178261
178262        Keys navigation cause populate message sent to the node. The node should
178263        not react on populate messages but the first one.
178264
178265        * inspector/front-end/NativeMemorySnapshotView.js:
178266
1782672012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
178268
178269        Web Inspector: Timeline: "Send Request" events are shown out of order.
178270        https://bugs.webkit.org/show_bug.cgi?id=101544
178271
178272        Reviewed by Yury Semikhatsky.
178273
178274        Solution: replace obsolete out-of-order record pushing with frontend
178275        record reparenting.
178276
178277        * inspector/InspectorTimelineAgent.cpp:
178278        (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
178279        direct record pushing with standard appendRecord invokation.
178280        * inspector/front-end/TimelinePresentationModel.js:
178281        (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
178282        Made "Send Request" records top-level if gluing is on.
178283
1782842012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
178285
178286        Unreviewed, rolling out r134010.
178287        http://trac.webkit.org/changeset/134010
178288        https://bugs.webkit.org/show_bug.cgi?id=101716
178289
178290        Broke the chromium windows build. (Requested by noel_ on
178291        #webkit).
178292
178293        * Modules/indexeddb/IDBAny.cpp:
178294        * Modules/indexeddb/IDBCallbacks.h:
178295        * Modules/indexeddb/IDBDatabase.cpp:
178296        (WebCore::IDBDatabase::createObjectStore):
178297        (WebCore::IDBDatabase::deleteObjectStore):
178298        (WebCore::IDBDatabase::transaction):
178299        * Modules/indexeddb/IDBDatabase.h:
178300        (IDBDatabase):
178301        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
178302        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
178303        (WebCore):
178304        (WebCore::IDBDatabaseBackendImpl::setVersion):
178305        (WebCore::IDBDatabaseBackendImpl::transaction):
178306        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
178307        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
178308        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
178309        (IDBDatabaseBackendImpl):
178310        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
178311        (WebCore):
178312        (IDBDatabaseBackendInterface):
178313        * Modules/indexeddb/IDBMetadata.h:
178314        (WebCore::IDBObjectStoreMetadata::containsIndex):
178315        (WebCore::IDBDatabaseMetadata::findObjectStore):
178316        (IDBDatabaseMetadata):
178317        (WebCore::IDBDatabaseMetadata::containsObjectStore):
178318        * Modules/indexeddb/IDBObjectStore.cpp:
178319        (WebCore::IDBObjectStore::put):
178320        (WebCore):
178321        (WebCore::IDBObjectStore::createIndex):
178322        (WebCore::IDBObjectStore::index):
178323        (WebCore::IDBObjectStore::deleteIndex):
178324        * Modules/indexeddb/IDBObjectStore.h:
178325        (WebCore::IDBObjectStore::openCursor):
178326        (IDBObjectStore):
178327        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
178328        (WebCore::IDBObjectStoreBackendImpl::put):
178329        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
178330        (WebCore):
178331        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
178332        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
178333        (WebCore::IDBObjectStoreBackendImpl::index):
178334        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
178335        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
178336        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
178337        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
178338        (IDBObjectStoreBackendImpl):
178339        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
178340        (WebCore):
178341        * Modules/indexeddb/IDBTransaction.cpp:
178342        (WebCore::IDBTransaction::objectStore):
178343        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
178344        (WebCore::IDBTransactionBackendImpl::objectStore):
178345        (WebCore):
178346        * Modules/indexeddb/IDBTransactionBackendImpl.h:
178347        (IDBTransactionBackendImpl):
178348        * Modules/indexeddb/IDBTransactionBackendInterface.h:
178349
1783502012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
178351
178352        [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
178353        https://bugs.webkit.org/show_bug.cgi?id=101570
178354
178355        Reviewed by Gustavo Noronha Silva.
178356
178357        Expose a new method to check whether a vector of loaded languages is empty.
178358        WK2-EFL needs it to set the default language (if the client didn't set any) when
178359        spelling setting is being enabled. This change makes it more convenient to check
178360        whether the dictionaries vector is empty.
178361
178362        No new tests, no behavior change.
178363
178364        * platform/text/enchant/TextCheckerEnchant.cpp:
178365        (TextCheckerEnchant::checkSpellingOfString):
178366        (TextCheckerEnchant::getGuessesForWord):
178367        (TextCheckerEnchant::loadedSpellCheckingLanguages):
178368        A newly exposed method is used internally too.
178369
178370        * platform/text/enchant/TextCheckerEnchant.h:
178371        (WebCore::TextCheckerEnchant::hasDictionary):
178372        Add an inline hasDictionary() method.
178373
1783742012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
178375
178376        [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
178377        https://bugs.webkit.org/show_bug.cgi?id=101702
178378
178379        Reviewed by Hajime Morita.
178380
178381        We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
178382        setPseudo()/pseudo() instead.
178383
178384        No new tests, simple refactoring.
178385
178386        * html/track/TextTrackCue.cpp:
178387        (WebCore::TextTrackCueBox::TextTrackCueBox):
178388        * html/track/TextTrackCue.h:
178389        (TextTrackCueBox):
178390
1783912012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
178392
178393        table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
178394        https://bugs.webkit.org/show_bug.cgi?id=18153
178395
178396        Reviewed by Beth Dakin.
178397
178398        Preferred logical width is computed incorrectly for fixed layout tables
178399        with 100% percent width, in standards mode.
178400
178401        According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
178402        the ultimate width of the table is the greater of the value of the
178403        'width' property for the table elements and the sum of the column
178404        widths.
178405
178406        For our specific scenario we have a fixed layout table with 100% width
178407        consisting of columns with fixed widths, the sum of which is less than
178408        the specified width of the table (i.e. 100% of the containing block).
178409        Even then the applied width is the cummulative of the width of the
178410        columns.
178411
178412        This happens because of the quirks mode check added in
178413        FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
178414        setting of maxWidth to our fixed layout table with percent width, and
178415        which perhaps is not required anymore.
178416
178417        Test: fast/table/fixed-table-layout/table-with-percent-width.html
178418
178419        * rendering/FixedTableLayout.cpp:
178420        (WebCore::FixedTableLayout::computePreferredLogicalWidths):
178421        Removed the quirks mode check.
178422
1784232012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
178424
178425        Unreviewed, rolling out r134004.
178426        http://trac.webkit.org/changeset/134004
178427        https://bugs.webkit.org/show_bug.cgi?id=101713
178428
178429        multiple crashes (Requested by hayato on #webkit).
178430
178431        * rendering/RenderThemeMac.mm:
178432        (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
178433        (WebCore::RenderThemeMac::paintMediaFullscreenButton):
178434        (WebCore::RenderThemeMac::paintMediaMuteButton):
178435        (WebCore::RenderThemeMac::paintMediaPlayButton):
178436        (WebCore::RenderThemeMac::paintMediaSeekBackButton):
178437        (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
178438        (WebCore::RenderThemeMac::paintMediaSliderTrack):
178439        (WebCore::RenderThemeMac::paintMediaSliderThumb):
178440        (WebCore::RenderThemeMac::paintMediaRewindButton):
178441        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
178442        (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
178443        (WebCore::RenderThemeMac::paintMediaControlsBackground):
178444        (WebCore::RenderThemeMac::paintMediaCurrentTime):
178445        (WebCore::RenderThemeMac::paintMediaTimeRemaining):
178446        (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
178447        (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
178448        (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
178449        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
178450        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
178451
1784522012-11-08  Jan Keromnes  <janx@linux.com>
178453
178454        Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
178455        https://bugs.webkit.org/show_bug.cgi?id=101607
178456
178457        Reviewed by Vsevolod Vlasov.
178458
178459        API changes completing migration to v3.
178460
178461        * inspector/front-end/CodeMirrorTextEditor.js:
178462        (WebInspector.CodeMirrorTextEditor):
178463        (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
178464        (WebInspector.CodeMirrorTextEditor.prototype.selection):
178465
1784662012-11-08  Alexei Filippov  <alph@chromium.org>
178467
178468        Web Inspector: make "Other" bar color darker in NMI snapshot.
178469        https://bugs.webkit.org/show_bug.cgi?id=101602
178470
178471        Reviewed by Vsevolod Vlasov.
178472
178473        * inspector/front-end/NativeMemorySnapshotView.js:
178474        (WebInspector.MemoryBlockViewProperties._initialize):
178475
1784762012-11-08  Alec Flett  <alecflett@chromium.org>
178477
178478        IndexedDB: switch frontend to use int64_t-based references
178479        https://bugs.webkit.org/show_bug.cgi?id=100426
178480
178481        Reviewed by Tony Chang.
178482
178483        Remove String-based objectStore/index references, obsoleted by
178484        https://bugs.webkit.org/show_bug.cgi?id=100425.
178485
178486        No new tests as this is the second half of a refactor.
178487
178488        * Modules/indexeddb/IDBCallbacks.h:
178489        * Modules/indexeddb/IDBDatabase.cpp:
178490        (WebCore::IDBDatabase::deleteObjectStore):
178491        (WebCore::IDBDatabase::transaction):
178492        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
178493        (WebCore::IDBDatabaseBackendImpl::setVersion):
178494        (WebCore::IDBDatabaseBackendImpl::transaction):
178495        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
178496        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
178497        (IDBDatabaseBackendImpl):
178498        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
178499        (IDBDatabaseBackendInterface):
178500        * Modules/indexeddb/IDBMetadata.h:
178501        (WebCore::IDBObjectStoreMetadata::findIndex):
178502        (IDBObjectStoreMetadata):
178503        (WebCore::IDBObjectStoreMetadata::containsIndex):
178504        * Modules/indexeddb/IDBObjectStore.cpp:
178505        (WebCore::IDBObjectStore::put):
178506        (WebCore):
178507        (WebCore::IDBObjectStore::index):
178508        (WebCore::IDBObjectStore::deleteIndex):
178509        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
178510        (WebCore::IDBObjectStoreBackendImpl::put):
178511        (WebCore):
178512        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
178513        (IDBObjectStoreBackendImpl):
178514        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
178515        * inspector/Inspector-1.0.json:
178516        * inspector/Inspector.json:
178517        * inspector/InspectorIndexedDBAgent.cpp:
178518        (WebCore):
178519        (WebCore::InspectorIndexedDBAgent::requestData):
178520        * inspector/InspectorIndexedDBAgent.h:
178521        (InspectorIndexedDBAgent):
178522
1785232012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
178524
178525        [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
178526        https://bugs.webkit.org/show_bug.cgi?id=101692
178527
178528        Reviewed by Dimitri Glazkov.
178529
178530        We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
178531
178532        No new tests, simple refactoring.
178533
178534        * css/RuleFeature.cpp:
178535        (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
178536        (WebCore):
178537        * css/RuleFeature.h:
178538        (WebCore):
178539        (RuleFeatureSet):
178540        * css/RuleSet.cpp:
178541        (WebCore::collectFeaturesFromRuleData):
178542
1785432012-11-08  Robert Sesek  <rsesek@chromium.org>
178544
178545        Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
178546        https://bugs.webkit.org/show_bug.cgi?id=101634
178547
178548        Reviewed by Adam Barth.
178549
178550        No new tests, just disabling unused code in Chromium port.
178551
178552        * rendering/RenderThemeMac.mm:
178553        (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
178554        (WebCore::RenderThemeMac::paintMediaFullscreenButton):
178555        (WebCore::RenderThemeMac::paintMediaMuteButton):
178556        (WebCore::RenderThemeMac::paintMediaPlayButton):
178557        (WebCore::RenderThemeMac::paintMediaSeekBackButton):
178558        (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
178559        (WebCore::RenderThemeMac::paintMediaSliderTrack):
178560        (WebCore::RenderThemeMac::paintMediaSliderThumb):
178561        (WebCore::RenderThemeMac::paintMediaRewindButton):
178562        (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
178563        (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
178564        (WebCore::RenderThemeMac::paintMediaControlsBackground):
178565        (WebCore::RenderThemeMac::paintMediaCurrentTime):
178566        (WebCore::RenderThemeMac::paintMediaTimeRemaining):
178567        (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
178568        (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
178569        (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
178570        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
178571        (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
178572
1785732012-11-08  Keishi Hattori  <keishi@webkit.org>
178574
178575        Enable calendar picker for input types week/month
178576        https://bugs.webkit.org/show_bug.cgi?id=101553
178577
178578        Reviewed by Kent Tamura.
178579
178580        Enabling calendar picker for <input type=week/month>
178581
178582        No new tests. Tests will be added later in Bug 101556 and Bug 101555.
178583
178584        * rendering/RenderThemeChromiumCommon.cpp:
178585        (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
178586
1785872012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
178588
178589        [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
178590        https://bugs.webkit.org/show_bug.cgi?id=101681
178591
178592        Reviewed by George Staikos.
178593
178594        Since the platform player in BlackBerry disallows resources that come from different origins,
178595        so it's safe to directly returns true here.
178596
178597        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
178598        (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
178599
1786002012-11-08  Mark Lam  <mark.lam@apple.com>
178601
178602        Renamed ...InlineMethods.h files to ...Inlines.h.
178603        https://bugs.webkit.org/show_bug.cgi?id=101145.
178604
178605        Reviewed by Geoffrey Garen.
178606
178607        This is only a refactoring effort to rename the files. There are no
178608        functionality changes.
178609
178610        No new tests.
178611
178612        * GNUmakefile.list.am:
178613        * Target.pri:
178614        * WebCore.gypi:
178615        * WebCore.vcproj/WebCore.vcproj:
178616        * WebCore.xcodeproj/project.pbxproj:
178617        * html/parser/HTMLEntityParser.cpp:
178618        * html/parser/HTMLTokenizer.cpp:
178619        * html/track/WebVTTTokenizer.cpp:
178620        * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
178621        * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
178622        * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
178623        * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
178624        * xml/parser/XMLCharacterReferenceParser.cpp:
178625        * xml/parser/XMLTokenizer.cpp:
178626
1786272012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
178628
178629        Unreviewed, rolling out r133984.
178630        http://trac.webkit.org/changeset/133984
178631        https://bugs.webkit.org/show_bug.cgi?id=101684
178632
178633        windows build error. (Requested by hayato on #webkit).
178634
178635        * Modules/indexeddb/IDBCallbacks.h:
178636        * Modules/indexeddb/IDBDatabase.cpp:
178637        (WebCore::IDBDatabase::createObjectStore):
178638        (WebCore::IDBDatabase::deleteObjectStore):
178639        (WebCore::IDBDatabase::transaction):
178640        * Modules/indexeddb/IDBDatabase.h:
178641        (IDBDatabase):
178642        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
178643        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
178644        (WebCore):
178645        (WebCore::IDBDatabaseBackendImpl::setVersion):
178646        (WebCore::IDBDatabaseBackendImpl::transaction):
178647        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
178648        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
178649        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
178650        (IDBDatabaseBackendImpl):
178651        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
178652        (IDBDatabaseBackendInterface):
178653        * Modules/indexeddb/IDBMetadata.h:
178654        (WebCore::IDBObjectStoreMetadata::containsIndex):
178655        (WebCore::IDBDatabaseMetadata::findObjectStore):
178656        (IDBDatabaseMetadata):
178657        (WebCore::IDBDatabaseMetadata::containsObjectStore):
178658        * Modules/indexeddb/IDBObjectStore.cpp:
178659        (WebCore::IDBObjectStore::put):
178660        (WebCore):
178661        (WebCore::IDBObjectStore::createIndex):
178662        (WebCore::IDBObjectStore::index):
178663        (WebCore::IDBObjectStore::deleteIndex):
178664        * Modules/indexeddb/IDBObjectStore.h:
178665        (WebCore::IDBObjectStore::openCursor):
178666        (IDBObjectStore):
178667        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
178668        (WebCore::IDBObjectStoreBackendImpl::put):
178669        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
178670        (WebCore):
178671        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
178672        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
178673        (WebCore::IDBObjectStoreBackendImpl::index):
178674        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
178675        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
178676        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
178677        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
178678        (IDBObjectStoreBackendImpl):
178679        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
178680        * Modules/indexeddb/IDBTransaction.cpp:
178681        (WebCore::IDBTransaction::objectStore):
178682        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
178683        (WebCore::IDBTransactionBackendImpl::objectStore):
178684        (WebCore):
178685        * Modules/indexeddb/IDBTransactionBackendImpl.h:
178686        (IDBTransactionBackendImpl):
178687        * Modules/indexeddb/IDBTransactionBackendInterface.h:
178688
1786892012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
178690
178691        HTMLContentElement should preserve parsed CSSSelectorList
178692        https://bugs.webkit.org/show_bug.cgi?id=101543
178693
178694        Reviewed by Dimitri Glazkov.
178695
178696        We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
178697
178698        Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
178699        CSSSelectorList, we can reduce distribution time.
178700
178701        This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
178702        parse and validate it again.
178703
178704        No new tests, covered by exising tests.
178705
178706        * html/shadow/ContentSelectorQuery.cpp:
178707        (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
178708        if it's already parsed.
178709        (WebCore::ContentSelectorQuery::matches):
178710        * html/shadow/ContentSelectorQuery.h:
178711        (ContentSelectorQuery):
178712        * html/shadow/HTMLContentElement.cpp:
178713        (WebCore::HTMLContentElement::HTMLContentElement):
178714        (WebCore::HTMLContentElement::isSelectValid):
178715        (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
178716        we parse and validate it.
178717        (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
178718        to parse select attrite again.
178719        (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
178720        (WebCore):
178721        (WebCore::validateSelector): Moved from ContentSelectorQuery.
178722        (WebCore::HTMLContentElement::validateSelect):
178723        * html/shadow/HTMLContentElement.h:
178724        (HTMLContentElement):
178725        (WebCore::HTMLContentElement::setSelect):
178726        (WebCore):
178727        (WebCore::HTMLContentElement::selectorList):
178728        * html/shadow/HTMLShadowElement.cpp:
178729        (WebCore::HTMLShadowElement::emptySelectorList):
178730        (WebCore):
178731        * html/shadow/HTMLShadowElement.h:
178732        (HTMLShadowElement):
178733        (WebCore::HTMLShadowElement::selectorList):
178734        * html/shadow/InsertionPoint.h:
178735        (InsertionPoint):
178736
1787372012-11-08  Alec Flett  <alecflett@chromium.org>
178738
178739        IndexedDB: switch frontend to use int64_t-based references
178740        https://bugs.webkit.org/show_bug.cgi?id=100426
178741
178742        Reviewed by Tony Chang.
178743
178744        Remove String-based objectStore/index references, obsoleted by
178745        https://bugs.webkit.org/show_bug.cgi?id=100425.
178746
178747        No new tests as this is the second half of a refactor.
178748
178749        * Modules/indexeddb/IDBCallbacks.h:
178750        * Modules/indexeddb/IDBDatabase.cpp:
178751        (WebCore::IDBDatabase::deleteObjectStore):
178752        (WebCore::IDBDatabase::transaction):
178753        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
178754        (WebCore::IDBDatabaseBackendImpl::setVersion):
178755        (WebCore::IDBDatabaseBackendImpl::transaction):
178756        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
178757        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
178758        (IDBDatabaseBackendImpl):
178759        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
178760        (IDBDatabaseBackendInterface):
178761        * Modules/indexeddb/IDBMetadata.h:
178762        (WebCore::IDBObjectStoreMetadata::findIndex):
178763        (IDBObjectStoreMetadata):
178764        (WebCore::IDBObjectStoreMetadata::containsIndex):
178765        * Modules/indexeddb/IDBObjectStore.cpp:
178766        (WebCore::IDBObjectStore::put):
178767        (WebCore):
178768        (WebCore::IDBObjectStore::index):
178769        (WebCore::IDBObjectStore::deleteIndex):
178770        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
178771        (WebCore::IDBObjectStoreBackendImpl::put):
178772        (WebCore):
178773        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
178774        (IDBObjectStoreBackendImpl):
178775        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
178776        * inspector/Inspector-1.0.json:
178777        * inspector/Inspector.json:
178778        * inspector/InspectorIndexedDBAgent.cpp:
178779        (WebCore):
178780        (WebCore::InspectorIndexedDBAgent::requestData):
178781        * inspector/InspectorIndexedDBAgent.h:
178782        (InspectorIndexedDBAgent):
178783
1787842012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
178785
178786        [Chromium] Arabic digits should appear left-to-right
178787        https://bugs.webkit.org/show_bug.cgi?id=101440
178788
178789        Reviewed by Tony Chang.
178790
178791        Call hb_buffer_set_direction() to set direction when drawing glyphs or
178792        direction should be overridden. Leave direction setting to HarfBuzz when
178793        WebKit is calculating widths because the direction is LTR by default while
178794        calculating widths.  Set script before shaping so that HarfBuzz can estimate
178795        appropriate direction.
178796
178797        Test: fast/text/international/arabic-digits.html
178798
178799        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
178800        (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
178801        Add m_script. This holds the script of the run.
178802        (WebCore::HarfBuzzShaper::shape):
178803        Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
178804        direction should be overridden.
178805        (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
178806        Set script of HarfBuzzRuns.
178807        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
178808        Add an argument that indicates it should set direction.
178809        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
178810        (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
178811        (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
178812        (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
178813        (HarfBuzzRun):
178814        (HarfBuzzShaper):
178815
1788162012-11-08  Huang Dongsung  <luxtella@company100.net>
178817
178818        [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
178819        https://bugs.webkit.org/show_bug.cgi?id=101658
178820
178821        Reviewed by Noam Rosenthal.
178822
178823        GraphicsLayerTextureMapper::contentsLayer() is duplicated to
178824        GraphicsLayer::platformLayer(), so we remove it.
178825
178826        No new tests, this is just a refactor.
178827
178828        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
178829        (WebCore::GraphicsLayerTextureMapper::platformLayer):
178830        * platform/graphics/texmap/TextureMapperLayer.cpp:
178831        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
178832
1788332012-11-08  Benjamin Poulain  <benjamin@webkit.org>
178834
178835        Improve the use of AtomicString with literals
178836        https://bugs.webkit.org/show_bug.cgi?id=101298
178837
178838        Reviewed by Darin Adler.
178839
178840        Fix a bunch of cases of AtomicString with literals:
178841        -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
178842        -Use the ConstructFromLiteral constructor whenever it makes sense.
178843        -Make "x-frame-options" static instead of creating it for each response.
178844        -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
178845         not an AtomicString.
178846
178847        * Modules/battery/BatteryController.cpp:
178848        (WebCore::BatteryController::supplementName):
178849        * Modules/battery/NavigatorBattery.cpp:
178850        (WebCore::NavigatorBattery::from):
178851        * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
178852        (WebCore::DraggedIsolatedFileSystem::supplementName):
178853        * Modules/gamepad/NavigatorGamepad.cpp:
178854        (WebCore::NavigatorGamepad::from):
178855        * Modules/geolocation/GeolocationController.cpp:
178856        (WebCore::GeolocationController::supplementName):
178857        * Modules/geolocation/NavigatorGeolocation.cpp:
178858        (WebCore::NavigatorGeolocation::from):
178859        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
178860        (WebCore::DOMWindowIndexedDatabase::from):
178861        * Modules/indexeddb/IDBCursor.cpp:
178862        (WebCore::IDBCursor::directionNext):
178863        (WebCore::IDBCursor::directionNextUnique):
178864        (WebCore::IDBCursor::directionPrev):
178865        (WebCore::IDBCursor::directionPrevUnique):
178866        * Modules/indexeddb/IDBRequest.cpp:
178867        (WebCore::IDBRequest::readyState):
178868        * Modules/indexeddb/IDBTransaction.cpp:
178869        (WebCore::IDBTransaction::modeReadOnly):
178870        (WebCore::IDBTransaction::modeReadWrite):
178871        (WebCore::IDBTransaction::modeVersionChange):
178872        (WebCore::IDBTransaction::modeReadOnlyLegacy):
178873        (WebCore::IDBTransaction::modeReadWriteLegacy):
178874        * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
178875        (WebCore::PageGroupIndexedDatabase::from):
178876        * Modules/intents/DOMWindowIntents.cpp:
178877        (WebCore::DOMWindowIntents::from):
178878        * Modules/mediastream/UserMediaController.cpp:
178879        (WebCore::UserMediaController::supplementName):
178880        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
178881        (WebCore::NavigatorContentUtils::supplementName):
178882        * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
178883        (WebCore::NavigatorNetworkInfoConnection::from):
178884        * Modules/networkinfo/NetworkInfoController.cpp:
178885        (WebCore::NetworkInfoController::supplementName):
178886        * Modules/notifications/DOMWindowNotifications.cpp:
178887        (WebCore::DOMWindowNotifications::from):
178888        * Modules/notifications/NotificationController.cpp:
178889        (WebCore::NotificationController::supplementName):
178890        * Modules/quota/DOMWindowQuota.cpp:
178891        (WebCore::DOMWindowQuota::from):
178892        * Modules/speech/SpeechRecognitionController.cpp:
178893        (WebCore::SpeechRecognitionController::supplementName):
178894        * Modules/vibration/Vibration.cpp:
178895        (WebCore::Vibration::supplementName):
178896        * accessibility/AccessibilityObject.cpp:
178897        (WebCore::AccessibilityObject::invalidStatus):
178898        * accessibility/AccessibilityRenderObject.cpp:
178899        (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
178900        (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
178901        * bindings/v8/custom/V8DOMWindowCustom.cpp:
178902        (WebCore::V8DOMWindow::namedSecurityCheck):
178903        * bindings/v8/custom/V8NodeListCustom.cpp:
178904        (WebCore::V8NodeList::namedPropertyGetter):
178905        * dom/ContextFeatures.cpp:
178906        (WebCore::ContextFeatures::supplementName):
178907        * dom/DeviceMotionController.cpp:
178908        (WebCore::DeviceMotionController::supplementName):
178909        * dom/DeviceOrientationController.cpp:
178910        (WebCore::DeviceOrientationController::supplementName):
178911        * dom/Element.cpp:
178912        (WebCore::Element::webkitRegionOverset):
178913        * dom/MutationRecord.cpp:
178914        * html/FileInputType.cpp:
178915        (WebCore::UploadButtonElement::shadowPseudoId):
178916        * html/FormController.cpp:
178917        (WebCore::SavedFormState::getReferencedFilePaths):
178918        (WebCore::FormKeyGenerator::formKey):
178919        * html/HTMLButtonElement.cpp:
178920        (WebCore::HTMLButtonElement::formControlType):
178921        * html/HTMLDetailsElement.cpp:
178922        (WebCore::summaryQuerySelector):
178923        * html/HTMLFieldSetElement.cpp:
178924        (WebCore::HTMLFieldSetElement::formControlType):
178925        * html/HTMLKeygenElement.cpp:
178926        (WebCore::KeygenSelectElement::shadowPseudoId):
178927        (WebCore::HTMLKeygenElement::formControlType):
178928        * html/HTMLOptGroupElement.cpp:
178929        (WebCore::HTMLOptGroupElement::formControlType):
178930        * html/HTMLOutputElement.cpp:
178931        (WebCore::HTMLOutputElement::formControlType):
178932        * html/HTMLSelectElement.cpp:
178933        (WebCore::HTMLSelectElement::formControlType):
178934        * html/HTMLTextAreaElement.cpp:
178935        (WebCore::HTMLTextAreaElement::formControlType):
178936        * html/HTMLTextFormControlElement.cpp:
178937        (WebCore::directionString):
178938        * html/shadow/DateTimeEditElement.cpp:
178939        (WebCore::DateTimeEditElement::DateTimeEditElement):
178940        * html/shadow/DateTimeFieldElements.cpp:
178941        (WebCore::DateTimeAMPMFieldElement::create):
178942        (WebCore::DateTimeDayFieldElement::create):
178943        (WebCore::DateTimeHourFieldElement::create):
178944        (WebCore::DateTimeMillisecondFieldElement::create):
178945        (WebCore::DateTimeMinuteFieldElement::create):
178946        (WebCore::DateTimeMonthFieldElement::create):
178947        (WebCore::DateTimeSecondFieldElement::create):
178948        (WebCore::DateTimeSymbolicMonthFieldElement::create):
178949        (WebCore::DateTimeWeekFieldElement::create):
178950        (WebCore::DateTimeYearFieldElement::create):
178951        * html/shadow/DetailsMarkerControl.cpp:
178952        (WebCore::DetailsMarkerControl::shadowPseudoId):
178953        * html/shadow/ImageInnerElement.cpp:
178954        (WebCore::ImageInnerElement::shadowPseudoId):
178955        * html/shadow/MediaControlElements.cpp:
178956        (WebCore::MediaControlPanelElement::shadowPseudoId):
178957        (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
178958        (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
178959        (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
178960        (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
178961        (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
178962        (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
178963        (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
178964        (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
178965        (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
178966        (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
178967        (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
178968        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
178969        (WebCore::MediaControlTimelineElement::shadowPseudoId):
178970        (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
178971        (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
178972        (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
178973        (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
178974        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
178975        (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
178976        (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
178977        (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
178978        * html/shadow/MediaControlRootElement.cpp:
178979        (WebCore::MediaControlRootElement::shadowPseudoId):
178980        * html/shadow/MediaControlRootElementChromium.cpp:
178981        (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
178982        (WebCore::MediaControlRootElementChromium::shadowPseudoId):
178983        * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
178984        (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
178985        * html/shadow/MeterShadowElement.cpp:
178986        (WebCore::MeterInnerElement::shadowPseudoId):
178987        (WebCore::MeterBarElement::shadowPseudoId):
178988        (WebCore::MeterValueElement::shadowPseudoId):
178989        * html/shadow/ProgressShadowElement.cpp:
178990        (WebCore::ProgressInnerElement::shadowPseudoId):
178991        (WebCore::ProgressBarElement::shadowPseudoId):
178992        (WebCore::ProgressValueElement::shadowPseudoId):
178993        * html/shadow/SliderThumbElement.cpp:
178994        (WebCore::sliderThumbShadowPseudoId):
178995        (WebCore::mediaSliderThumbShadowPseudoId):
178996        (WebCore::SliderContainerElement::shadowPseudoId):
178997        * html/shadow/SpinButtonElement.cpp:
178998        (WebCore::SpinButtonElement::shadowPseudoId):
178999        * html/shadow/TextControlInnerElements.cpp:
179000        (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
179001        (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
179002        (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
179003        * html/track/TextTrackCue.cpp:
179004        (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
179005        * loader/CrossOriginAccessControl.cpp:
179006        (WebCore::passesAccessControlCheck):
179007        * loader/MainResourceLoader.cpp:
179008        (WebCore::MainResourceLoader::didReceiveResponse):
179009        * loader/PrerendererClient.cpp:
179010        (WebCore::PrerendererClient::supplementName):
179011        * loader/cache/CachedResource.cpp:
179012        (WebCore::CachedResource::updateResponseAfterRevalidation):
179013        * page/DOMWindowPagePopup.cpp:
179014        (WebCore::DOMWindowPagePopup::supplementName):
179015        * page/EventHandler.cpp:
179016        (WebCore::EventHandler::handlePasteGlobalSelection):
179017        (WebCore::focusDirectionForKey):
179018        * page/SpeechInput.cpp:
179019        (WebCore::SpeechInput::supplementName):
179020        * page/animation/CompositeAnimation.cpp:
179021        (WebCore::CompositeAnimation::updateKeyframeAnimations):
179022        * platform/graphics/FontCache.cpp:
179023        (WebCore::alternateFamilyName):
179024        * platform/graphics/MediaPlayer.cpp:
179025        (WebCore::applicationOctetStream):
179026        (WebCore::textPlain):
179027        (WebCore::codecs):
179028        * platform/graphics/chromium/FontCacheAndroid.cpp:
179029        (WebCore::FontCache::getLastResortFallbackFont):
179030        * platform/graphics/filters/SourceAlpha.cpp:
179031        (WebCore::SourceAlpha::effectName):
179032        * platform/graphics/filters/SourceGraphic.cpp:
179033        (WebCore::SourceGraphic::effectName):
179034        * platform/graphics/mac/FontCacheMac.mm:
179035        (WebCore::FontCache::getSimilarFontPlatformData):
179036        (WebCore::FontCache::getLastResortFallbackFont):
179037        * platform/graphics/skia/FontCacheSkia.cpp:
179038        (WebCore::FontCache::getLastResortFallbackFont):
179039        * platform/graphics/win/FontCacheWin.cpp:
179040        (WebCore::FontCache::getLastResortFallbackFont):
179041        * platform/graphics/wx/FontCacheWx.cpp:
179042        (WebCore::FontCache::getSimilarFontPlatformData):
179043        * platform/network/ResourceResponseBase.cpp:
179044        (WebCore::ResourceResponseBase::setHTTPHeaderField):
179045        (WebCore::ResourceResponseBase::parseCacheControlDirectives):
179046        (WebCore::ResourceResponseBase::hasCacheValidatorFields):
179047        (WebCore::ResourceResponseBase::date):
179048        (WebCore::ResourceResponseBase::age):
179049        (WebCore::ResourceResponseBase::expires):
179050        (WebCore::ResourceResponseBase::lastModified):
179051        (WebCore::ResourceResponseBase::isAttachment):
179052        * rendering/RenderTextControlMultiLine.cpp:
179053        (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
179054        * rendering/RenderTextControlSingleLine.cpp:
179055        (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
179056        (WebCore::RenderTextControlSingleLine::preferredContentWidth):
179057        * svg/SVGAnimateColorElement.cpp:
179058        (WebCore::attributeValueIsCurrentColor):
179059        * svg/SVGAnimateMotionElement.cpp:
179060        (WebCore::SVGAnimateMotionElement::rotateMode):
179061        * svg/SVGAnimationElement.cpp:
179062        (WebCore::SVGAnimationElement::setCalcMode):
179063        (WebCore::SVGAnimationElement::setAttributeType):
179064        (WebCore::SVGAnimationElement::isAdditive):
179065        (WebCore::SVGAnimationElement::isAccumulated):
179066        (WebCore::inheritsFromProperty):
179067        * svg/SVGFEConvolveMatrixElement.cpp:
179068        (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
179069        (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
179070        (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
179071        (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
179072        * svg/SVGFEDiffuseLightingElement.cpp:
179073        (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
179074        (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
179075        * svg/SVGFEDropShadowElement.cpp:
179076        (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
179077        (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
179078        * svg/SVGFEGaussianBlurElement.cpp:
179079        (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
179080        (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
179081        * svg/SVGFEMorphologyElement.cpp:
179082        (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
179083        (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
179084        * svg/SVGFESpecularLightingElement.cpp:
179085        (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
179086        (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
179087        * svg/SVGFETurbulenceElement.cpp:
179088        (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
179089        (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
179090        * svg/SVGFilterElement.cpp:
179091        (WebCore::SVGFilterElement::filterResXIdentifier):
179092        (WebCore::SVGFilterElement::filterResYIdentifier):
179093        * svg/SVGLangSpace.cpp:
179094        (WebCore::SVGLangSpace::xmlspace):
179095        (WebCore::SVGLangSpace::addSupportedAttributes):
179096        * svg/SVGMarkerElement.cpp:
179097        (WebCore::SVGMarkerElement::orientTypeIdentifier):
179098        (WebCore::SVGMarkerElement::orientAngleIdentifier):
179099        (WebCore::SVGMarkerElement::synchronizeOrientType):
179100        * svg/SVGSVGElement.cpp:
179101        (WebCore::SVGSVGElement::contentScriptType):
179102        (WebCore::SVGSVGElement::contentStyleType):
179103        * svg/SVGStyleElement.cpp:
179104        (WebCore::SVGStyleElement::type):
179105        (WebCore::SVGStyleElement::media):
179106        * svg/SVGTextContentElement.cpp:
179107        (WebCore::SVGTextContentElement::collectStyleForAttribute):
179108        * svg/SVGViewSpec.cpp:
179109        (WebCore::SVGViewSpec::viewBoxIdentifier):
179110        (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
179111        (WebCore::SVGViewSpec::transformIdentifier):
179112        * svg/animation/SVGSMILElement.cpp:
179113        (WebCore::SVGSMILElement::parseClockValue):
179114        (WebCore::SVGSMILElement::restart):
179115        (WebCore::SVGSMILElement::fill):
179116        (WebCore::SVGSMILElement::repeatCount):
179117        * testing/InternalSettings.cpp:
179118        (WebCore::InternalSettings::from):
179119        * xml/parser/XMLTreeBuilder.cpp:
179120        (WebCore::XMLTreeBuilder::processDOCTYPE):
179121        (WebCore::XMLTreeBuilder::processXMLEntity):
179122
1791232012-11-08  Beth Dakin  <bdakin@apple.com>
179124
179125        https://bugs.webkit.org/show_bug.cgi?id=101644
179126        Fixed header on Facebook news feed becomes detached from top of 
179127        viewport after rubber band scrolling
179128        -and corresponding-
179129        <rdar://problem/12651944>
179130
179131        Reviewed by Simon Fraser.
179132
179133        There is code to handle this for non-threaded scrolling on FrameView. 
179134        This patch moves most of that code into a convenience function on 
179135        ScrollingCoordinator.
179136
179137        Have FrameView::scrollOffsetForFixedPosition() call 
179138        WebCore::scrollOffsetForFixedPosition() with all the right 
179139        parameters.
179140        * page/FrameView.cpp:
179141        (WebCore::FrameView::scrollOffsetForFixedPosition):
179142
179143        Here's where all the math happens.
179144        * page/scrolling/ScrollingCoordinator.cpp:
179145        (WebCore::fixedPositionScrollOffset):
179146        (WebCore::scrollOffsetForFixedPosition):
179147
179148        The viewportRect in these three places needs to have the 
179149        adjusted-for-fixed offset.
179150        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
179151        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
179152        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
179153        * rendering/RenderLayerCompositor.cpp:
179154        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
179155
1791562012-11-08  Alpha Lam  <hclam@chromium.org>
179157
179158        [chromium] Deferred image decoding fails with image orientation
179159        https://bugs.webkit.org/show_bug.cgi?id=101648
179160
179161        Reviewed by Stephen White.
179162
179163        When an image is deferred save the orientation state. Once this state
179164        is cached it can be used to reply future queries since this state is
179165        static.
179166
179167        No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
179168
179169        * platform/graphics/chromium/DeferredImageDecoder.cpp:
179170        (WebCore::DeferredImageDecoder::DeferredImageDecoder):
179171        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
179172        (WebCore::DeferredImageDecoder::orientation):
179173        * platform/graphics/chromium/DeferredImageDecoder.h:
179174        (DeferredImageDecoder):
179175
1791762012-11-08  Andreas Kling  <kling@webkit.org>
179177
179178        DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
179179        <http://webkit.org/b/101657>
179180
179181        Reviewed by Anders Carlsson.
179182
179183        Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
179184        as we know it won't grow after that.
179185
179186        520kB progression on Membuster3.
179187
179188        * loader/DocumentLoader.cpp:
179189        (WebCore::DocumentLoader::stopRecordingResponses):
179190
1791912012-11-08  Hans Muller  <hmuller@adobe.com>
179192
179193        [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
179194        https://bugs.webkit.org/show_bug.cgi?id=100874
179195
179196        Reviewed by Dirk Schulze.
179197
179198        Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
179199        Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
179200        to outside or outside to inside, now depends on which side of the horizontal line the function's
179201        y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
179202        is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
179203        if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
179204        of the polygon must be just above the horizontal edge.
179205
179206        Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
179207               fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
179208
179209        * rendering/ExclusionPolygon.cpp:
179210        (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
179211        (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
179212        (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
179213        (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
179214        * rendering/ExclusionPolygon.h:
179215        (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
179216
1792172012-11-08  Otto Derek Cheung  <otcheung@rim.com>
179218
179219        [BlackBerry] Disable cookies on file://
179220        https://bugs.webkit.org/show_bug.cgi?id=101646
179221
179222        Reviewed by Rob Buis.
179223
179224        Disabling cookies on file and local in the browser app.
179225
179226        PR 239779
179227
179228        Tested by trying to set and retrieve cookies on WI while browsing
179229        files on the file scheme.
179230
179231        * platform/blackberry/CookieManager.cpp:
179232        (WebCore):
179233        (WebCore::shouldIgnoreScheme):
179234        (WebCore::CookieManager::getRawCookies):
179235        (WebCore::CookieManager::checkAndTreatCookie):
179236
1792372012-11-08  Joshua Bell  <jsbell@chromium.org>
179238
179239        Expose snapshots in platform/leveldb wrapper API
179240        https://bugs.webkit.org/show_bug.cgi?id=100786
179241
179242        Reviewed by Tony Chang.
179243
179244        Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
179245        as it was when the snapshot was taken. This can be used to implement parallel transactions,
179246        e.g. where a read transaction won't see updates made by a later write transaction.
179247
179248        Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
179249
179250        * platform/leveldb/LevelDBDatabase.cpp:
179251        (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
179252        (WebCore):
179253        (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
179254        (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
179255        (WebCore::LevelDBDatabase::createIterator): Ditto.
179256        * platform/leveldb/LevelDBDatabase.h:
179257        (leveldb):
179258        (WebCore):
179259        (LevelDBSnapshot):
179260        (LevelDBDatabase):
179261        * platform/leveldb/LevelDBTransaction.cpp:
179262        (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
179263        (WebCore::LevelDBTransaction::get):
179264        (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
179265        * platform/leveldb/LevelDBTransaction.h:
179266        (LevelDBTransaction):
179267
1792682012-11-08  Brady Eidson  <beidson@apple.com>
179269
179270        Have NetworkProcess do the actual loading of subresources.
179271        https://bugs.webkit.org/show_bug.cgi?id=101640
179272
179273        Reviewed by Alexey Proskuryakov.
179274
179275        No new tests (No change in behavior in any configuration we test.)
179276
179277        * WebCore.exp.in:
179278        * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
179279
1792802012-11-08  Huang Dongsung  <luxtella@company100.net>
179281
179282        Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
179283        https://bugs.webkit.org/show_bug.cgi?id=101424
179284
179285        Reviewed by Noam Rosenthal.
179286
179287        This patch adds ASSERT to TextureMapperLayer while fixing this bug in
179288        WebKit2.
179289
179290        * platform/graphics/texmap/TextureMapperLayer.cpp:
179291        (WebCore::TextureMapperLayer::paintSelf):
179292
1792932012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
179294
179295        Unreviewed, rolling out r133945.
179296        http://trac.webkit.org/changeset/133945
179297        https://bugs.webkit.org/show_bug.cgi?id=101645
179298
179299        Numerous layout and unit test failures (Requested by
179300        jsbell|gardener on #webkit).
179301
179302        * bindings/scripts/CodeGeneratorV8.pm:
179303        (GenerateHeader):
179304        * bindings/scripts/test/V8/V8Float64Array.h:
179305        (WebCore::V8Float64Array::toNative):
179306        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
179307        (WebCore::V8TestActiveDOMObject::toNative):
179308        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
179309        (WebCore::V8TestCustomNamedGetter::toNative):
179310        * bindings/scripts/test/V8/V8TestEventConstructor.h:
179311        (WebCore::V8TestEventConstructor::toNative):
179312        * bindings/scripts/test/V8/V8TestEventTarget.h:
179313        (WebCore::V8TestEventTarget::toNative):
179314        * bindings/scripts/test/V8/V8TestException.h:
179315        (WebCore::V8TestException::toNative):
179316        * bindings/scripts/test/V8/V8TestInterface.h:
179317        (WebCore::V8TestInterface::toNative):
179318        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
179319        (WebCore::V8TestMediaQueryListListener::toNative):
179320        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
179321        (WebCore::V8TestNamedConstructor::toNative):
179322        * bindings/scripts/test/V8/V8TestNode.h:
179323        (WebCore::V8TestNode::toNative):
179324        * bindings/scripts/test/V8/V8TestObj.h:
179325        (WebCore::V8TestObj::toNative):
179326        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
179327        (WebCore::V8TestSerializedScriptValueInterface::toNative):
179328        * bindings/v8/NPV8Object.cpp:
179329        (WebCore::v8ObjectToNPObject):
179330        (WebCore::npCreateV8ScriptObject):
179331        * bindings/v8/V8Collection.h:
179332        (WebCore::toNativeCollection):
179333        * bindings/v8/V8DOMWindowShell.cpp:
179334        (WebCore::setIsolatedWorldField):
179335        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
179336        * bindings/v8/V8DOMWrapper.cpp:
179337        (WebCore::V8DOMWrapper::isWrapperOfType):
179338        * bindings/v8/V8DOMWrapper.h:
179339        (WebCore::V8DOMWrapper::setDOMWrapper):
179340        (WebCore::V8DOMWrapper::clearDOMWrapper):
179341        * bindings/v8/WrapperTypeInfo.h:
179342        (WebCore::toNative):
179343        (WebCore::toWrapperTypeInfo):
179344
1793452012-11-01  Filip Pizlo  <fpizlo@apple.com>
179346
179347        JSC should infer when indexed storage contains only integers or doubles
179348        https://bugs.webkit.org/show_bug.cgi?id=98606
179349
179350        Reviewed by Oliver Hunt.
179351
179352        Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
179353
179354        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
179355        (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
179356        * bindings/js/JSClipboardCustom.cpp:
179357        (WebCore::JSClipboard::types):
179358        * bindings/js/JSDOMBinding.cpp:
179359        (WebCore::jsArray):
179360        * bindings/js/JSDOMBinding.h:
179361        (WebCore::jsArray):
179362        * bindings/js/JSInjectedScriptHostCustom.cpp:
179363        (WebCore::getJSListenerFunctions):
179364        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
179365        (WebCore::JSJavaScriptCallFrame::scopeChain):
179366        * bindings/js/JSMessageEventCustom.cpp:
179367        (WebCore::JSMessageEvent::ports):
179368        * bindings/js/JSMutationCallbackCustom.cpp:
179369        (WebCore::JSMutationCallback::handleEvent):
179370        * bindings/js/JSWebGLRenderingContextCustom.cpp:
179371        (WebCore::toJS):
179372        (WebCore::JSWebGLRenderingContext::getAttachedShaders):
179373        (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
179374        * bindings/js/SerializedScriptValue.cpp:
179375        (WebCore::CloneDeserializer::deserialize):
179376
1793772012-11-08  Tiancheng Jiang  <tijiang@rim.com>
179378
179379        [BlackBerry] Update BB10 date input form.
179380        https://bugs.webkit.org/show_bug.cgi?id=101075
179381
179382        Reviewed by Rob Buis.
179383
179384        RIM PR 234531
179385        Internally Reviewed by Mike Fenton.
179386        Change date input appearance to button and hide caret when click on them.
179387
179388        * css/themeBlackBerry.css:
179389        (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
179390
1793912012-11-08  Adam Barth  <abarth@webkit.org>
179392
179393        [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
179394        https://bugs.webkit.org/show_bug.cgi?id=101519
179395
179396        Reviewed by Ojan Vafai.
179397
179398        There should be no change in behavior.  The new API is slightly faster
179399        than the old API (and apparently works correctly internally in V8).
179400
179401        * bindings/scripts/CodeGeneratorV8.pm:
179402        (GenerateHeader):
179403        * bindings/scripts/test/V8/V8Float64Array.h:
179404        (WebCore::V8Float64Array::toNative):
179405        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
179406        (WebCore::V8TestActiveDOMObject::toNative):
179407        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
179408        (WebCore::V8TestCustomNamedGetter::toNative):
179409        * bindings/scripts/test/V8/V8TestEventConstructor.h:
179410        (WebCore::V8TestEventConstructor::toNative):
179411        * bindings/scripts/test/V8/V8TestEventTarget.h:
179412        (WebCore::V8TestEventTarget::toNative):
179413        * bindings/scripts/test/V8/V8TestException.h:
179414        (WebCore::V8TestException::toNative):
179415        * bindings/scripts/test/V8/V8TestInterface.h:
179416        (WebCore::V8TestInterface::toNative):
179417        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
179418        (WebCore::V8TestMediaQueryListListener::toNative):
179419        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
179420        (WebCore::V8TestNamedConstructor::toNative):
179421        * bindings/scripts/test/V8/V8TestNode.h:
179422        (WebCore::V8TestNode::toNative):
179423        * bindings/scripts/test/V8/V8TestObj.h:
179424        (WebCore::V8TestObj::toNative):
179425        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
179426        (WebCore::V8TestSerializedScriptValueInterface::toNative):
179427        * bindings/v8/NPV8Object.cpp:
179428        (WebCore::v8ObjectToNPObject):
179429        (WebCore::npCreateV8ScriptObject):
179430        * bindings/v8/V8Collection.h:
179431        (WebCore::toNativeCollection):
179432        * bindings/v8/V8DOMWindowShell.cpp:
179433        (WebCore::setIsolatedWorldField):
179434        (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
179435        * bindings/v8/V8DOMWrapper.cpp:
179436        (WebCore::V8DOMWrapper::isWrapperOfType):
179437        * bindings/v8/V8DOMWrapper.h:
179438        (WebCore::V8DOMWrapper::setDOMWrapper):
179439        (WebCore::V8DOMWrapper::clearDOMWrapper):
179440        * bindings/v8/WrapperTypeInfo.h:
179441        (WebCore::toNative):
179442        (WebCore::toWrapperTypeInfo):
179443
1794442012-11-08  Erik Arvidsson  <arv@chromium.org>
179445
179446        setAttributeNode and friends should not have optional argument
179447        https://bugs.webkit.org/show_bug.cgi?id=101631
179448
179449        Reviewed by Ojan Vafai.
179450
179451        http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
179452
179453        Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
179454        argument mandatory.
179455
179456        These used to throw DOMExceptions when an invalid type was passed instead of
179457        TypeError which is also a spec violation.
179458
179459        Updated existing tests.
179460
179461        * bindings/scripts/CodeGeneratorV8.pm:
179462        * dom/Element.cpp:
179463        * dom/Element.idl:
179464
1794652012-11-08  Joshua Bell  <jsbell@chromium.org>
179466
179467        IndexedDB: Remove unused error handling clauses when writing to transaction
179468        https://bugs.webkit.org/show_bug.cgi?id=100700
179469
179470        Reviewed by Tony Chang.
179471
179472        Transactions are written into in-memory data structures. This can only fail if allocation
179473        fails, so "success" results are always returned. Change the return types to void, and delete
179474        all of the unreachable error handling code.
179475
179476        No new tests - just refactoring/dead code removal.
179477
179478        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
179479        (WebCore::putBool): Only write to transactions.
179480        (WebCore):
179481        (WebCore::putInt): Ditto.
179482        (WebCore::putVarInt): Ditto.
179483        (WebCore::putString): Ditto.
179484        (WebCore::putIDBKeyPath): Ditto.
179485        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
179486        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
179487        (WebCore::deleteRange): Writes only to transaction, so can't fail.
179488        (WebCore::setMaxObjectStoreId):
179489        (WebCore::IDBLevelDBBackingStore::createObjectStore):
179490        (WebCore::getNewVersionNumber):
179491        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
179492        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
179493        (WebCore::setMaxIndexId):
179494        (WebCore::IDBLevelDBBackingStore::createIndex):
179495        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
179496        * platform/leveldb/LevelDBTransaction.cpp:
179497        (WebCore::LevelDBTransaction::set): Return type is void.
179498        (WebCore::LevelDBTransaction::put): Ditto.
179499        (WebCore::LevelDBTransaction::remove): Ditto.
179500        * platform/leveldb/LevelDBTransaction.h:
179501        (LevelDBTransaction):
179502
1795032012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
179504
179505        On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
179506        hit assertion added in r133840
179507        https://bugs.webkit.org/show_bug.cgi?id=101576
179508
179509        Reviewed by Abhishek Arya.
179510
179511        Update layout before invalidating caret rect as needed.
179512        Existing tests cover this.
179513
179514        * editing/FrameSelection.cpp:
179515        (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
179516        * editing/FrameSelection.h:
179517
1795182012-11-08  Elliott Sprehn  <esprehn@chromium.org>
179519
179520        Skip frame owner disconnect when there's no frames
179521        https://bugs.webkit.org/show_bug.cgi?id=101619
179522
179523        Reviewed by Ojan Vafai.
179524
179525        Even when there's no subframes in the document we traverse down every
179526        subtree on Node removal looking for frames to disconnect. This patch
179527        checks document()->frame()->tree()->firstChild() to skip this traversal
179528        if there's no subframes.
179529
179530        No new tests, this just short circuits code for speed.
179531
179532        * dom/ContainerNodeAlgorithms.h:
179533        (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
179534
1795352012-11-08  Erik Arvidsson  <arv@chromium.org>
179536
179537        Wrong error type is thrown for type errors in callbacks
179538        https://bugs.webkit.org/show_bug.cgi?id=101502
179539
179540        Reviewed by Adam Barth.
179541
179542        We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
179543
179544        http://www.w3.org/TR/WebIDL/#es-callback-function
179545
179546        Updated existing tests.
179547
179548        * bindings/scripts/CodeGeneratorJS.pm:
179549        * bindings/scripts/CodeGeneratorV8.pm:
179550        * bindings/scripts/test/JS/JSTestObj.cpp:
179551        * bindings/scripts/test/V8/V8TestObj.cpp:
179552
1795532012-11-08  Andreas Kling  <kling@webkit.org>
179554
179555        4.68MB below RenderStyle::filter() on Membuster3.
179556        <http://webkit.org/b/101624>
179557        <rdar://problem/12663822>
179558
179559        Reviewed by Darin Adler.
179560
179561        Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
179562        from the rare non-inherited data (copy-on-write.)
179563        Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
179564
179565        4.68MB progression on Membuster3.
179566
179567        * css/StyleResolver.cpp:
179568        (WebCore::StyleResolver::loadPendingSVGDocuments):
179569        (WebCore::StyleResolver::loadPendingShaders):
179570        * rendering/style/RenderStyle.h:
179571
1795722012-11-08  Alexey Proskuryakov  <ap@apple.com>
179573
179574        Create loader/blackberry directory, because svn-apply cannot apply a patch that
179575        creates a directory and moves a file into it.
179576
179577        * loader/blackberry: Added.
179578
1795792012-11-08  Geoffrey Garen  <ggaren@apple.com>
179580
179581        Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
179582
179583        Not reviewed.
179584
179585        * WebCore.xcodeproj/project.pbxproj:
179586
1795872012-11-05  Geoffrey Garen  <ggaren@apple.com>
179588
179589        Optimized kerning and ligatures using caching
179590        https://bugs.webkit.org/show_bug.cgi?id=101269
179591
179592        Reviewed by Dan Bernstein.
179593
179594        Consider three kinds of text layout, and the value of caching for each:
179595
179596            (1) 1 layout of 100% unique words: small negative value.
179597
179598            (2) 1 layout of English prose: medium positive value.
179599
179600            (3) Many layouts of anything: extra-extra-large positive value.
179601
179602        Since we can't distinguish betwen these workflows a priori, we use statistical
179603        sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
179604        each cache access as a statistical sample, and use the cache in proportion to
179605        the observed probability of duplicate text measurement.
179606
179607        Benchmark results:
179608            plt3: 1% faster
179609            chapter-reflow-once-random: No change [*]
179610            chapter-reflow-once: 23% faster
179611            chapter-reflow-twice: 52% faster
179612            chapter-reflow-thrice: 68% faster
179613            chapter-reflow: 263% faster
179614            line-layout: 270% faster
179615
179616            [*] This is a stress test designed to make everything go wrong for
179617            caching. It does not represent real world content.
179618
179619        * GNUmakefile.list.am:
179620        * Target.pri:
179621        * WebCore.vcproj/WebCore.vcproj:
179622        * WebCore.xcodeproj/project.pbxproj:
179623        * platform/graphics/WidthCache.h: Added.
179624
179625        (WidthCache): Added a class that caches common word widths. This cache
179626        could cache more things or more cases in future -- but for now it seems
179627        to cover the common cases.
179628
179629        (SmallStringKey): Early profiling showed that allocating an AtomicString
179630        or String measurably added to the cost of the cache, so I added a custom
179631        string key that can be stored directly inside the table by value --
179632        empirically answering an age-old question with which Apple WebKit engineers
179633        seem to be obsessed.
179634
179635        (WebCore::WidthCache::SmallStringKey::capacity):
179636        (WebCore::WidthCache::SmallStringKey::SmallStringKey):
179637        (WebCore::WidthCache::SmallStringKey::characters):
179638        (WebCore::WidthCache::SmallStringKey::length):
179639        (WebCore::WidthCache::SmallStringKey::hash):
179640        (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
179641        (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
179642        (WebCore::WidthCache::SmallStringKeyHash::hash):
179643        (WebCore::WidthCache::SmallStringKeyHash::equal):
179644        (SmallStringKeyHash):
179645        (SmallStringKeyHashTraits):
179646        (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
179647
179648        (WebCore::WidthCache::WidthCache):
179649        (WebCore::WidthCache::add): Separate out the "don't use the cache" case
179650        so the compiler can inline it separate, hopefully further reducing cases
179651        of (1).
179652
179653        (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
179654        sampling policy here. Lots of different approaches are possible, and I
179655        just picked a simple one that seemed to work based on benchmarking. I'll
179656        point out some interesting sublteties I'm aware of here:
179657
179658            (*) Since we start at the min sampling rate, a font used for 20 words
179659            or fewer never allocates a cache. Anecdotally, some fonts seem to
179660            be used this way.
179661
179662            (*) When the sampling rate is x / y, sampling all x words in a row
179663            seems smart because some words may occur more commonly in relation to
179664            each other (such as 'each' and 'other'), and repeat workloads will
179665            lay out the same words in order. Intuitively, these are both reasons
179666            this policy may ramp up more effectively under load.
179667
179668            (*) I opted for linear back-off instead of, say, exponential back-off
179669            because we're not trying to back off to infinity -- just to our min
179670            sampling rate. Since we don't expect the cache to hit for every word,
179671            my guess is that exponential back-off would be too aggressive.
179672
179673            (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
179674            because it would be surprising to see a million unique words all used
179675            in the same document. (I would not like to play a Letterpress game
179676            against such a document.)
179677
179678        (WebCore::WidthCache::clear): Needed because a font can change, in which
179679        case we need to ditch its cache.
179680
179681        (WebCore::operator==): Needed for hashing.
179682
1796832012-11-08  Andrey Kosyakov  <caseq@chromium.org>
179684
179685        Web Inspector: show statistics over selected frame range in Timeline's Frame mode
179686        https://bugs.webkit.org/show_bug.cgi?id=101593
179687
179688        Reviewed by Pavel Feldman.
179689
179690        - change status bar records counter wording to "N of M frames|records shown" depending on mode;
179691        - append average frame length and & stddev in frame mode;
179692        - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
179693        - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
179694
179695        * English.lproj/localizedStrings.js:
179696        * inspector/front-end/TimelineFrameController.js:
179697        (WebInspector.FrameStatistics):
179698        * inspector/front-end/TimelineModel.js:
179699        (WebInspector.TimelineModel.aggregateTimeByCategory):
179700        * inspector/front-end/TimelinePanel.js:
179701        (WebInspector.TimelinePanel.prototype.get statusBarItems):
179702        (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
179703        (WebInspector.TimelinePanel.prototype._createStatusBarItems):
179704        (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
179705        (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
179706        (WebInspector.TimelinePanel.prototype._showFrameStatistics):
179707        (WebInspector.TimelinePanel.prototype._updateFrameBars):
179708        (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
179709        (WebInspector.TimelinePanel.prototype._overviewModeChanged):
179710        (WebInspector.TimelinePanel.prototype._refresh):
179711        * inspector/front-end/TimelinePresentationModel.js:
179712        (WebInspector.TimelinePresentationModel.prototype.):
179713        (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
179714        (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
179715        (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
179716        * inspector/front-end/timelinePanel.css:
179717        (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
179718        (.timeline-records-stats):
179719        (.timeline-frames-stats):
179720
1797212012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
179722
179723        [BlackBerry] Rework the API to use document coordinates
179724        https://bugs.webkit.org/show_bug.cgi?id=101608
179725        RIM PR 173292
179726
179727        Reviewed by Adam Treat.
179728
179729        Provide a better API for WebPage to relay.
179730        See Source/WebKit/blackberry/ChangeLog for details.
179731
179732        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
179733        (WebCore::MediaPlayerPrivate::getWindowScreenRect):
179734        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
179735        (Platform):
179736        (BlackBerry):
179737        (MediaPlayerPrivate):
179738
1797392012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
179740
179741        Unreviewed, rolling out r133892.
179742        http://trac.webkit.org/changeset/133892
179743        https://bugs.webkit.org/show_bug.cgi?id=101617
179744
179745        Compile failures on mac, android, linux (Requested by
179746        jsbell|gardener on #webkit).
179747
179748        * bindings/v8/DOMDataStore.cpp:
179749        (WebCore::DOMDataStore::current):
179750        * bindings/v8/DOMWrapperWorld.h:
179751        (WebCore::DOMWrapperWorld::domDataStore):
179752        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
179753        * bindings/v8/V8DOMWrapper.h:
179754        (WebCore::V8DOMWrapper::getCachedWrapper):
179755
1797562012-11-08  Andrey Adaikin  <aandrey@chromium.org>
179757
179758        Web Inspector: [Canvas] UI iterations: image on the top, auto replay
179759        https://bugs.webkit.org/show_bug.cgi?id=101584
179760
179761        Reviewed by Pavel Feldman.
179762
179763        * inspector/front-end/CanvasProfileView.js:
179764        (WebInspector.CanvasProfileView):
179765        (WebInspector.CanvasProfileView.prototype._showTraceLog):
179766        (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
179767        (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
179768        (WebInspector.CanvasProfileView.prototype._replayTraceLog):
179769        * inspector/front-end/canvasProfiler.css:
179770        (.canvas-trace-log):
179771        (#canvas-replay-image-container):
179772        (#canvas-replay-image):
179773
1797742012-11-08  Wei Fanzhe  <whyer1@gmail.com>
179775
179776        While absolute positioning is put before the first flexitem, flexitems will move to a new line.
179777        https://bugs.webkit.org/show_bug.cgi?id=101294
179778
179779        Reviewed by Ojan Vafai.
179780
179781        This issue has to do with RenderFlexibleBox::computeNextFlexLine. When determing line breaks, the algorithm sees if 1) the total width exceeds lineBreakLength and 2) whether orderedChildren is non-empty.  But then, if the total width exceeds lineBreakLength and there's only absolutely positioned elemments in orderedChildren then the conditions are met and the algorithm mistakenly breaks the line. The solution is to see if orderedChildren collects at least a flex item. If it does, break the line.  
179782
179783        * rendering/RenderFlexibleBox.cpp:
179784        (WebCore::RenderFlexibleBox::computeNextFlexLine):
179785
1797862012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
179787
179788        Unreviewed, rolling out r133429.
179789        http://trac.webkit.org/changeset/133429
179790        https://bugs.webkit.org/show_bug.cgi?id=101173
179791
179792        Speculative roll out, investigating perf regression.
179793
179794        * dom/ContextFeatures.cpp:
179795        * dom/ContextFeatures.h:
179796        * dom/Position.cpp:
179797        (WebCore::Position::Position):
179798        (WebCore::Position::findParent):
179799        * dom/TreeScope.cpp:
179800        (WebCore::TreeScope::getSelection):
179801        * html/HTMLTagNames.in:
179802        * html/shadow/HTMLContentElement.cpp:
179803        (WebCore::HTMLContentElement::contentTagName):
179804        * page/DOMWindow.idl:
179805
1798062012-11-07  Emil A Eklund  <eae@chromium.org>
179807
179808        Fix enclosingLayoutRect calls in InlineFlowBox.h
179809        https://bugs.webkit.org/show_bug.cgi?id=101497
179810
179811        Reviewed by Levi Weintraub.
179812
179813        InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
179814        overrid enclosingLayoutRect to call closingIntRect. When we
179815        removed the LayoutTypes abstraction we switched these to
179816        enclosingIntRect to preserve the behavior.
179817        This patch changes these back to enclosingLayoutRect which is
179818        the desired behavior.
179819
179820        Covered by existing tests.
179821
179822        * rendering/InlineFlowBox.h:
179823        (WebCore::InlineFlowBox::layoutOverflowRect):
179824        (WebCore::InlineFlowBox::visualOverflowRect):
179825
1798262012-11-08  Philip Rogers  <pdr@google.com>
179827
179828        Remove unnecessary save/restore in SVGTextRunRenderingContext
179829        https://bugs.webkit.org/show_bug.cgi?id=101546
179830
179831        Reviewed by Andreas Kling.
179832
179833        This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
179834        refactoring the code to save off the stroke thickness.
179835
179836        No new tests as this is heavily covered by existing tests.
179837
179838        * rendering/svg/SVGTextRunRenderingContext.cpp:
179839        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
179840
1798412012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
179842
179843        [GTK] Clean up includes in GObject DOM bindings code
179844        https://bugs.webkit.org/show_bug.cgi?id=101077
179845
179846        Reviewed by Kentaro Hara.
179847
179848        Remove some headers included multiple times for the same file and
179849        fix consistency in the includes style.
179850
179851        * bindings/gobject/DOMObjectCache.cpp:
179852        * bindings/gobject/GObjectEventListener.cpp:
179853        * bindings/gobject/GObjectEventListener.h:
179854        * bindings/gobject/WebKitDOMBinding.cpp:
179855        * bindings/gobject/WebKitDOMBinding.h:
179856        * bindings/gobject/WebKitDOMEventTarget.cpp:
179857        * bindings/gobject/WebKitDOMEventTarget.h:
179858        * bindings/gobject/WebKitDOMEventTargetPrivate.h:
179859        (WebKit):
179860        * bindings/gobject/WebKitDOMObject.cpp:
179861        * bindings/gobject/WebKitDOMObject.h:
179862        * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
179863        * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
179864        * bindings/scripts/CodeGeneratorGObject.pm:
179865        (GenerateHeader):
179866        (GenerateFunction):
179867        (Generate):
179868        (WriteData):
179869        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
179870        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
179871        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
179872        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
179873        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
179874        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
179875        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
179876        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
179877        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
179878        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
179879        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
179880        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
179881        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
179882        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
179883        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
179884        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
179885        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
179886        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
179887        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
179888        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
179889        * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
179890        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
179891        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
179892        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
179893        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
179894        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
179895        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
179896        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
179897        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
179898        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
179899        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
179900        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
179901        * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
179902        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
179903        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
179904        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
179905        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
179906        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
179907        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
179908
1799092012-11-08  Dan Carney  <dcarney@google.com>
179910
179911        [V8] Main world should have one DOMDataStore
179912        https://bugs.webkit.org/show_bug.cgi?id=101470
179913
179914        Reviewed by Kentaro Hara.
179915
179916        The main world DOMWrapperWorld held onto a DOMDataStore that should
179917        never be used, as there is a static one optimized for speed in
179918        DOMDataStore.
179919
179920        No new tests. No change in functionality.
179921
179922        * bindings/v8/DOMDataStore.cpp:
179923        (WebCore::DOMDataStore::current):
179924        * bindings/v8/DOMWrapperWorld.h:
179925        (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
179926        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
179927        * bindings/v8/V8DOMWrapper.h:
179928        (WebCore::V8DOMWrapper::getCachedWrapper):
179929
1799302012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
179931
179932        [EFL] Remove non-variable options from the build system
179933        https://bugs.webkit.org/show_bug.cgi?id=101506
179934
179935        Reviewed by Kenneth Rohde Christiansen.
179936
179937        Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
179938        as these are always set to const 1 and not really configurable.
179939
179940        Remove duplicate platform/graphics/cairo include path from
179941        PlatformEfl.cmake.
179942
179943        No new tests as there is no new functionality.
179944
179945        * PlatformEfl.cmake:
179946
1799472012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
179948
179949        Unused parameters on GraphicsLayerUpdater.cpp
179950        https://bugs.webkit.org/show_bug.cgi?id=101577
179951
179952        Reviewed by Kentaro Hara.
179953
179954        The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
179955        Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
179956
179957        * platform/graphics/GraphicsLayerUpdater.cpp:
179958        (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
179959        (WebCore::GraphicsLayerUpdater::screenDidChange):
179960
1799612012-11-08  Alexander Pavlov  <apavlov@chromium.org>
179962
179963        Web Inspector: Add option to disable rulers (Elements panel)
179964        https://bugs.webkit.org/show_bug.cgi?id=101554
179965
179966        Reviewed by Pavel Feldman.
179967
179968        A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
179969        The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
179970        drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
179971
179972        No new tests, a UI change.
179973
179974        * English.lproj/localizedStrings.js: Add "Show rulers" string.
179975        * inspector/InspectorDOMAgent.cpp:
179976        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
179977        * inspector/InspectorOverlay.cpp:
179978        (WebCore::buildObjectForHighlight): Copy over the showRulers value.
179979        * inspector/InspectorOverlay.h:
179980        (HighlightConfig): Add |bool showRulers|.
179981        (WebCore::Highlight::Highlight): Initialize fields.
179982        (Highlight): Add |bool showRulers|.
179983        (WebCore::Highlight::setDataFromConfig):
179984        * inspector/InspectorOverlayPage.html:
179985        * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
179986        * inspector/front-end/Settings.js: Add showMetricsRulers.
179987        * inspector/front-end/SettingsScreen.js:
179988        (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
179989
1799902012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
179991
179992        Warn in the inspector console when using dpi and dpcm units outside of media="print"
179993        https://bugs.webkit.org/show_bug.cgi?id=100865
179994
179995        Reviewed by Kenneth Rohde Christiansen.
179996
179997        Added function that prints warning to inspector console whenever dpi or dpcm CSS units
179998        are used for screen media.
179999
180000        Test: fast/media/mq-resolution-dpi-dpcm-warning.html
180001
180002        * css/CSSStyleSheet.cpp:
180003        (WebCore::CSSStyleSheet::setMediaQueries):
180004        * css/MediaList.cpp:
180005        (WebCore):
180006        (WebCore::addResolutionWarningMessageToConsole):
180007        (WebCore::reportMediaQueryWarningIfNeeded):
180008        * css/MediaList.h:
180009        (WebCore):
180010        * css/MediaQueryMatcher.cpp:
180011        (WebCore::MediaQueryMatcher::matchMedia):
180012        * css/StyleSheetContents.cpp:
180013        (WebCore::StyleSheetContents::parserAppendRule):
180014
1800152012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
180016
180017        Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
180018        https://bugs.webkit.org/show_bug.cgi?id=101451
180019
180020        Reviewed by Yury Semikhatsky.
180021
180022        Solution: make console.time "title" parameter mandatory.
180023
180024        * page/Console.idl: Changed parameter specification.
180025
1800262012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
180027
180028        Unreviewed fixed inspector frontend compilation
180029
180030        * inspector/front-end/DataGrid.js:
180031
1800322012-11-08  Zeno Albisser  <zeno@webkit.org>
180033
180034        GraphicsSurfaceGLX needs to query the drawable for YInversion.
180035        https://bugs.webkit.org/show_bug.cgi?id=101472
180036
180037        After r133049 the WebGL content is now displayed upside down
180038        for the Qt port. We cannot just apply a generic rule, that
180039        the content needs to be flipped upside down.
180040        Instead we have to query GLX to tell us, if the drawable's
180041        framebuffer is y-inverted.
180042
180043        Reviewed by Kenneth Rohde Christiansen.
180044
180045        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
180046        (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
180047        (GraphicsSurfacePrivate):
180048        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
180049
1800502012-11-08  Mike West  <mkwst@chromium.org>
180051
180052        Warn when parsing an invalid X-Frame-Options header.
180053        https://bugs.webkit.org/show_bug.cgi?id=101447
180054
180055        Reviewed by Adam Barth.
180056
180057        An 'X-Frame-Options' header that contains an invalid option (that is,
180058        neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
180059        warning to notify developers that they've made a mistake.
180060
180061        Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
180062
180063        * dom/Document.cpp:
180064        (WebCore::Document::processHttpEquiv):
180065            Move the request identifier generation out of the failure block in
180066            order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
180067            ensures that the console message is properly tied to a request.
180068        * loader/FrameLoader.cpp:
180069        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
180070        * loader/FrameLoader.h:
180071        (FrameLoader):
180072            'shouldInterruptLoadForXFrameOptions' now accepts a request
180073            identifier as a parameter, and generates a console message if the
180074            load is blocked.
180075        * loader/MainResourceLoader.cpp:
180076        (WebCore::MainResourceLoader::didReceiveResponse):
180077            Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
180078
1800792012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
180080
180081        Web Inspector: Timeline: Improve time/timeEnd appearance.
180082        https://bugs.webkit.org/show_bug.cgi?id=100936
180083
180084        Reviewed by Yury Semikhatsky.
180085
180086        Changes:
180087        - time/timeEnd records should be top level records only in "glue" mode
180088        - time/timeEnd records should display "message" in record list / popover
180089        - glued records add aggregated statistics to root record
180090        - glued records do not reduce their origin self time
180091
180092        Test: inspector/timeline/timeline-time.html
180093
180094        * English.lproj/localizedStrings.js: Added "Message" string.
180095        * inspector/front-end/TimelinePresentationModel.js:
180096        (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
180097
1800982012-11-08  Yury Semikhatsky  <yurys@chromium.org>
180099
180100        Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
180101        https://bugs.webkit.org/show_bug.cgi?id=101463
180102
180103        Reviewed by Vsevolod Vlasov.
180104
180105        Moved Web Inspector methods called from native code to InspectorFrontendAPI.
180106
180107        * inspector/InspectorClient.cpp:
180108        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
180109        * inspector/InspectorFrontendHost.cpp:
180110        (WebCore::FrontendMenuProvider::create):
180111        (WebCore::FrontendMenuProvider::disconnect):
180112        (WebCore::FrontendMenuProvider::FrontendMenuProvider):
180113        (WebCore::FrontendMenuProvider::contextMenuItemSelected):
180114        (WebCore::FrontendMenuProvider::contextMenuCleared):
180115        (FrontendMenuProvider):
180116        (WebCore::InspectorFrontendHost::showContextMenu):
180117        * inspector/front-end/InspectorFrontendAPI.js:
180118        (InspectorFrontendAPI.loadCompleted):
180119        (InspectorFrontendAPI.contextMenuItemSelected):
180120        (InspectorFrontendAPI.contextMenuCleared):
180121        (InspectorFrontendAPI.dispatchMessageAsync):
180122        (InspectorFrontendAPI.dispatchMessage):
180123        * inspector/front-end/inspector.js:
180124
1801252012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
180126
180127        User can change a disabled select (drop down box)
180128        https://bugs.webkit.org/show_bug.cgi?id=100932
180129
180130        Reviewed by Kent Tamura.
180131
180132        <select> should not handle events if it's disabled.
180133
180134        Test: fast/forms/select/select-disabled.html
180135
180136        * html/HTMLSelectElement.cpp:
180137        (WebCore::HTMLSelectElement::defaultEventHandler):
180138
1801392012-11-08  Alec Flett  <alecflett@chromium.org>
180140
180141        IndexedDB: Rename methods and remove dead code from IDBBackingStore
180142        https://bugs.webkit.org/show_bug.cgi?id=101488
180143
180144        Reviewed by Ojan Vafai.
180145
180146        In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
180147
180148        1) rename ObjectStoreRecordIdentifier to RecordIdentifier
180149        2) remove IDBBackingStore::forEachRecord and friends
180150        3) remove IDBBackingStore::Cursor::close, since it was an empty method.
180151
180152        No new tests as this is purely code cleanup.
180153
180154        * Modules/indexeddb/IDBBackingStore.cpp:
180155        (WebCore::IDBLevelDBBackingStore::getRecord):
180156        (WebCore):
180157        (WebCore::IDBLevelDBBackingStore::putRecord):
180158        (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
180159        (WebCore::IDBLevelDBBackingStore::deleteRecord):
180160        (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
180161        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
180162        (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
180163        * Modules/indexeddb/IDBBackingStore.h:
180164        (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
180165        (IDBBackingStore):
180166        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
180167        (WebCore::IDBCursorBackendImpl::close):
180168        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
180169        (WebCore::IDBIndexBackendImpl::countInternal):
180170        (WebCore::IDBIndexBackendImpl::getInternal):
180171        (WebCore::IDBIndexBackendImpl::getKeyInternal):
180172        * Modules/indexeddb/IDBLevelDBBackingStore.h:
180173        (IDBLevelDBBackingStore):
180174        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
180175        (WebCore::IDBObjectStoreBackendImpl::getInternal):
180176        (WebCore):
180177        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
180178        (WebCore::IDBObjectStoreBackendImpl::putInternal):
180179        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
180180        (WebCore::IDBObjectStoreBackendImpl::countInternal):
180181
1801822012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
180183
180184        Web Inspector: console error after inspecting IndexedDB
180185        https://bugs.webkit.org/show_bug.cgi?id=101481
180186
180187        Reviewed by Pavel Feldman.
180188
180189        Added objectId nullity check to RemoteOBject::release.
180190        Drive-by added release for entry key and primaryKey.
180191
180192        * inspector/front-end/IndexedDBViews.js:
180193        (WebInspector.IDBDataView.prototype.clear):
180194        * inspector/front-end/RemoteObject.js:
180195        (WebInspector.RemoteObject.prototype.release):
180196
1801972012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
180198
180199        Web Inspector: Migrate inspector IndexedDB support to frontend API.
180200        https://bugs.webkit.org/show_bug.cgi?id=101457
180201
180202        Reviewed by Pavel Feldman.
180203
180204        Migrated IndexedDB support to web facing IndexedDB API.
180205
180206        * inspector/Inspector.json:
180207        * inspector/InspectorIndexedDBAgent.cpp:
180208        (WebCore):
180209        (WebCore::assertIDBFactory):
180210        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
180211        (WebCore::InspectorIndexedDBAgent::requestDatabase):
180212        (WebCore::InspectorIndexedDBAgent::requestData):
180213        * inspector/front-end/IndexedDBModel.js:
180214        (WebInspector.IndexedDBModel.prototype.innerCallback):
180215        (WebInspector.IndexedDBModel.prototype._requestData):
180216        * inspector/front-end/IndexedDBViews.js:
180217        (WebInspector.IDBDataView.prototype._updateData.callback):
180218        (WebInspector.IDBDataView.prototype._updateData):
180219        (WebInspector.IDBDataGridNode):
180220        (WebInspector.IDBDataGridNode.prototype.createCell):
180221
1802222012-08-20  Taiju Tsuiki  <tzik@chromium.org>
180223
180224        Web Inspector: Drop dimmed crumb handling
180225        https://bugs.webkit.org/show_bug.cgi?id=94457
180226
180227        Reviewed by Vsevolod Vlasov.
180228
180229        No new tests. Existing inspector test should work.
180230
180231        * inspector/front-end/ElementsPanel.js:
180232        (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
180233        (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
180234        * inspector/front-end/breadcrumbList.css:
180235
1802362012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
180237
180238        Web Inspector: Infinite loop in DataGrid::autoSizeColumn
180239        https://bugs.webkit.org/show_bug.cgi?id=101363
180240
180241        Reviewed by Pavel Feldman.
180242
180243        Test: inspector/datagrid-autosize.html
180244
180245        * inspector/front-end/DataGrid.js:
180246        (WebInspector.DataGrid.prototype._autoSizeWidths):
180247        (WebInspector.DataGrid.prototype.autoSizeColumns):
180248
1802492012-11-07  Keishi Hattori  <keishi@webkit.org>
180250
180251        Implement week picking to calendar picker
180252        https://bugs.webkit.org/show_bug.cgi?id=101449
180253
180254        Reviewed by Kent Tamura.
180255
180256        This adds week picker mode to CalendarPicker.
180257
180258        No new tests. Tests will be added later when this feature is enabled in DRT.
180259
180260        * Resources/pagepopups/calendarPicker.css:
180261        (.month-mode .day):
180262        (.week-mode .available.day-selected.monday): Rounded corners around week selection.
180263        (.week-mode .available.day-selected.sunday): Ditto.
180264        (.week-mode .unavailable.day-selected):
180265        (.week-mode .unavailable.day-selected.monday):
180266        (.week-mode .unavailable.day-selected.sunday):
180267        (.week-mode .week-column.unavailable.day-selected):
180268        (.week-column): Hide week column unless in week mode.
180269        (.week-mode .week-column):
180270        * Resources/pagepopups/calendarPicker.js:
180271        (parseDateString): Support week string.
180272        (Week):
180273        (Week.parse): Parses "yyyy-Www" string.
180274        (Week.createFromDate): Creates Week containing datetime.
180275        (Week.createFromToday): Creates Week containing today.
180276        (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
180277        (Week.numberOfWeeksInYear): Returns the number of weeks in year.
180278        (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
180279        (Week.prototype.equals): Returns true if the Weeks are the same.
180280        (Week.prototype.previous): Returns the previous Week.
180281        (Week.prototype.next): Returns the next Week.
180282        (Week.prototype.startDate): Returns start datetime of Week.
180283        (Week.prototype.endDate): Returns end datetime of Week.
180284        (Week.prototype.valueOf): Returns the milliseconds since epoch.
180285        (Week.prototype.toString): Returns ISO week string.
180286        (CalendarPicker): Add week picker mode.
180287        (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
180288        (YearMonthController.prototype.attachTo): Fix bug.
180289        (YearMonthController.prototype.moveRelatively): Use new showMonth.
180290        (DaysTable.prototype.attachTo): Add week number column.
180291        (DaysTable.prototype._renderMonth): Render week numbers.
180292        (DaysTable.prototype.navigateToMonth): Render week numbers.
180293        (DaysTable.prototype.selectRange):
180294        (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
180295        (DaysTable.prototype._maybeSetPreviousMonth):
180296        (DaysTable.prototype._maybeSetNextMonth):
180297        (MonthPickerDaysTable.prototype.selectRange):
180298        (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
180299        (MonthPickerDaysTable.prototype._handleKey):
180300        (WeekPickerDaysTable): Added.
180301        (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
180302        (WeekPickerDaysTable.prototype.selectRange): Selects week.
180303        (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
180304        (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
180305        (WeekPickerDaysTable.prototype._handleKey):
180306
1803072012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
180308
180309        Unreviewed, rolling out r133841.
180310        http://trac.webkit.org/changeset/133841
180311        https://bugs.webkit.org/show_bug.cgi?id=101542
180312
180313        Reverted patches were innocent (Requested by shinyak on
180314        #webkit).
180315
180316        * WebCore.exp.in:
180317        * dom/Element.cpp:
180318        (WebCore::Element::shadowPseudoId):
180319        * dom/Element.h:
180320        (Element):
180321        * dom/ElementRareData.cpp:
180322        (WebCore::ElementRareData::reportMemoryUsage):
180323        * dom/ElementRareData.h:
180324        (ElementRareData):
180325        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
180326        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
180327        * html/ColorInputType.cpp:
180328        (WebCore::ColorInputType::createShadowSubtree):
180329        * html/HTMLTextAreaElement.cpp:
180330        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
180331        * html/RangeInputType.cpp:
180332        (WebCore::RangeInputType::createShadowSubtree):
180333        * html/TextFieldInputType.cpp:
180334        (WebCore::TextFieldInputType::createShadowSubtree):
180335        (WebCore::TextFieldInputType::updatePlaceholderText):
180336        * html/ValidationMessage.cpp:
180337        (WebCore::ValidationMessage::buildBubbleTree):
180338        * html/shadow/DateTimeEditElement.cpp:
180339        (WebCore::DateTimeEditBuilder::visitLiteral):
180340        (WebCore::DateTimeEditElement::DateTimeEditElement):
180341        * html/shadow/DateTimeFieldElement.cpp:
180342        (WebCore::DateTimeFieldElement::initialize):
180343        * html/shadow/DateTimeFieldElement.h:
180344        (DateTimeFieldElement):
180345        * html/shadow/PickerIndicatorElement.cpp:
180346        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
180347        * html/track/TextTrackCue.cpp:
180348        (WebCore::TextTrackCueBox::TextTrackCueBox):
180349        (WebCore::TextTrackCue::updateDisplayTree):
180350        * testing/Internals.cpp:
180351        (WebCore::Internals::setShadowPseudoId):
180352
1803532012-11-07  Simon Fraser  <simon.fraser@apple.com>
180354
180355        Fix EFL build, which has accelerated compositing disabled, by making
180356        repaintViewRectangle() const.
180357
180358        * rendering/RenderView.cpp:
180359        (WebCore::RenderView::repaintViewRectangle):
180360        * rendering/RenderView.h:
180361        (RenderView):
180362
1803632012-11-07  Simon Fraser  <simon.fraser@apple.com>
180364
180365        constify ALL the repaint containers
180366        https://bugs.webkit.org/show_bug.cgi?id=101541
180367
180368        Reviewed by Beth Dakin.
180369
180370        Make all the RenderLayerModelObject* repaintContainer arguments const, since
180371        these member functions should have no need to mutate this object.
180372
180373        * WebCore.exp.in:
180374        * rendering/RenderBR.h:
180375        * rendering/RenderBlock.cpp:
180376        (WebCore::RenderBlock::selectionGapRectsForRepaint):
180377        (WebCore::RenderBlock::rectWithOutlineForRepaint):
180378        * rendering/RenderBlock.h:
180379        * rendering/RenderBox.cpp:
180380        (WebCore::RenderBox::outlineBoundsForRepaint):
180381        (WebCore::RenderBox::mapLocalToContainer):
180382        (WebCore::RenderBox::clippedOverflowRectForRepaint):
180383        (WebCore::RenderBox::computeRectForRepaint):
180384        * rendering/RenderBox.h:
180385        * rendering/RenderFlowThread.cpp:
180386        (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
180387        * rendering/RenderFlowThread.h:
180388        * rendering/RenderInline.cpp:
180389        (WebCore::RenderInline::clippedOverflowRectForRepaint):
180390        (WebCore::RenderInline::rectWithOutlineForRepaint):
180391        (WebCore::RenderInline::computeRectForRepaint):
180392        (WebCore::RenderInline::mapLocalToContainer):
180393        * rendering/RenderInline.h:
180394        * rendering/RenderListMarker.cpp:
180395        (WebCore::RenderListMarker::selectionRectForRepaint):
180396        * rendering/RenderListMarker.h:
180397        * rendering/RenderObject.cpp:
180398        (WebCore::RenderObject::repaintUsingContainer):
180399        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
180400        (WebCore::RenderObject::rectWithOutlineForRepaint):
180401        (WebCore::RenderObject::clippedOverflowRectForRepaint):
180402        (WebCore::RenderObject::computeRectForRepaint):
180403        (WebCore::RenderObject::computeFloatRectForRepaint):
180404        (WebCore::RenderObject::mapLocalToContainer):
180405        (WebCore::RenderObject::localToContainerQuad):
180406        (WebCore::RenderObject::localToContainerPoint):
180407        * rendering/RenderObject.h:
180408        (WebCore::RenderObject::selectionRectForRepaint):
180409        (WebCore::RenderObject::outlineBoundsForRepaint):
180410        * rendering/RenderReplaced.cpp:
180411        (WebCore::RenderReplaced::selectionRectForRepaint):
180412        (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
180413        * rendering/RenderReplaced.h:
180414        * rendering/RenderTableCell.cpp:
180415        (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
180416        (WebCore::RenderTableCell::computeRectForRepaint):
180417        * rendering/RenderTableCell.h:
180418        * rendering/RenderTableCol.cpp:
180419        (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
180420        * rendering/RenderTableCol.h:
180421        * rendering/RenderTableRow.cpp:
180422        (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
180423        * rendering/RenderTableRow.h:
180424        * rendering/RenderText.cpp:
180425        (WebCore::RenderText::clippedOverflowRectForRepaint):
180426        (WebCore::RenderText::selectionRectForRepaint):
180427        * rendering/RenderText.h:
180428        * rendering/RenderView.cpp:
180429        (WebCore::RenderView::mapLocalToContainer):
180430        (WebCore::RenderView::computeRectForRepaint):
180431        * rendering/RenderView.h:
180432        * rendering/svg/RenderSVGForeignObject.cpp:
180433        (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
180434        (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
180435        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
180436        * rendering/svg/RenderSVGForeignObject.h:
180437        * rendering/svg/RenderSVGGradientStop.h:
180438        * rendering/svg/RenderSVGHiddenContainer.h:
180439        * rendering/svg/RenderSVGInline.cpp:
180440        (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
180441        (WebCore::RenderSVGInline::computeFloatRectForRepaint):
180442        (WebCore::RenderSVGInline::mapLocalToContainer):
180443        * rendering/svg/RenderSVGInline.h:
180444        * rendering/svg/RenderSVGModelObject.cpp:
180445        (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
180446        (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
180447        (WebCore::RenderSVGModelObject::mapLocalToContainer):
180448        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
180449        * rendering/svg/RenderSVGModelObject.h:
180450        * rendering/svg/RenderSVGRoot.cpp:
180451        (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
180452        (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
180453        (WebCore::RenderSVGRoot::mapLocalToContainer):
180454        * rendering/svg/RenderSVGRoot.h:
180455        * rendering/svg/RenderSVGText.cpp:
180456        (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
180457        (WebCore::RenderSVGText::computeRectForRepaint):
180458        (WebCore::RenderSVGText::computeFloatRectForRepaint):
180459        (WebCore::RenderSVGText::mapLocalToContainer):
180460        * rendering/svg/RenderSVGText.h:
180461        * rendering/svg/SVGRenderSupport.cpp:
180462        (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
180463        (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
180464        (WebCore::SVGRenderSupport::mapLocalToContainer):
180465        * rendering/svg/SVGRenderSupport.h:
180466        (SVGRenderSupport):
180467
1804682012-11-07  Kent Tamura  <tkent@chromium.org>
180469
180470        [Chromium-win] Refactor date/time format conversion code in LocaleWin
180471        https://bugs.webkit.org/show_bug.cgi?id=101329
180472
180473        Reviewed by Kentaro Hara.
180474
180475        convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
180476        similar jobs with different code. We can merge them into one function.
180477
180478        As for the date format conversion, we have tokenized a format string and
180479        stored token objects into a vector. We skip token object generation and
180480        generate a LDML-compliant pattern string during parsing.
180481
180482        No new tests. This should make no behavior changes and
180483        WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
180484
180485        * platform/text/win/LocaleWin.cpp:
180486        (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
180487        convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
180488        convertWindowsTimeFormatToLDML.
180489        (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
180490        (WebCore::convertWindowsDateTimeFormat):
180491        Renamed from parseDateFormat, and supports time format symbols.
180492        (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
180493        (WebCore::LocaleWin::monthFormat): Ditto.
180494        (WebCore::LocaleWin::timeFormat): Ditto.
180495        (WebCore::LocaleWin::shortTimeFormat): Ditto.
180496        * platform/text/win/LocaleWin.h:
180497        (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
180498
1804992012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
180500
180501        Unreviewed, rolling out r133428 and r133749
180502        https://bugs.webkit.org/show_bug.cgi?id=101533
180503
180504        These patches might cause memory regression.
180505
180506        * WebCore.exp.in:
180507        * dom/Element.cpp:
180508        (WebCore::Element::shadowPseudoId):
180509        (WebCore):
180510        (WebCore::Element::setShadowPseudoId):
180511        * dom/Element.h:
180512        (Element):
180513        * dom/ElementRareData.cpp:
180514        (WebCore::ElementRareData::reportMemoryUsage):
180515        * dom/ElementRareData.h:
180516        (ElementRareData):
180517        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
180518        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
180519        * html/ColorInputType.cpp:
180520        (WebCore::ColorInputType::createShadowSubtree):
180521        * html/HTMLTextAreaElement.cpp:
180522        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
180523        * html/RangeInputType.cpp:
180524        (WebCore::RangeInputType::createShadowSubtree):
180525        * html/TextFieldInputType.cpp:
180526        (WebCore::TextFieldInputType::createShadowSubtree):
180527        (WebCore::TextFieldInputType::updatePlaceholderText):
180528        * html/ValidationMessage.cpp:
180529        (WebCore::ValidationMessage::buildBubbleTree):
180530        * html/shadow/DateTimeEditElement.cpp:
180531        (WebCore::DateTimeEditBuilder::visitLiteral):
180532        (WebCore::DateTimeEditElement::DateTimeEditElement):
180533        * html/shadow/DateTimeFieldElement.cpp:
180534        (WebCore::DateTimeFieldElement::initialize):
180535        * html/shadow/DateTimeFieldElement.h:
180536        (DateTimeFieldElement):
180537        * html/shadow/PickerIndicatorElement.cpp:
180538        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
180539        * html/track/TextTrackCue.cpp:
180540        (WebCore::TextTrackCueBox::TextTrackCueBox):
180541        (WebCore::TextTrackCue::updateDisplayTree):
180542        * testing/Internals.cpp:
180543        (WebCore::Internals::setShadowPseudoId):
180544
1805452012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
180546
180547        Crash in WebCore::RenderLayer::normalFlowList
180548        https://bugs.webkit.org/show_bug.cgi?id=101528
180549
180550        Reviewed by Simon Fraser.
180551
180552        Make sure the layout is up to date before re-computing the caret rect.
180553        Avoid doing the layout when the selection is cleared since we can always stop
180554        the blink timer in that case.
180555
180556        Unfortunately, we haven't found any reproduction of this crash yet.
180557
180558        * editing/FrameSelection.cpp:
180559        (WebCore::isNonOrphanedCaret):
180560        (WebCore::FrameSelection::localCaretRect):
180561        (WebCore::FrameSelection::updateAppearance):
180562
1805632012-11-07  Adam Barth  <abarth@webkit.org>
180564
180565        [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
180566        https://bugs.webkit.org/show_bug.cgi?id=101110
180567
180568        Reviewed by Kentaro Hara.
180569
180570        Hopefully the memory issues with this patch have been resolved by
180571        fixing bug 101525. This patch re-lands this patch again, hopefully for
180572        the last time.
180573
180574        * bindings/v8/DOMDataStore.cpp:
180575        (WebCore::DOMDataStore::weakCallback):
180576        * bindings/v8/DOMDataStore.h:
180577        (WebCore::DOMDataStore::wrapperIsStoredInObject):
180578        (WebCore::DOMDataStore::getWrapperFromObject):
180579        (WebCore::DOMDataStore::setWrapperInObject):
180580
1805812012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
180582
180583        Seam occurred between pieces of ShadowBlur on floating point zoom
180584        https://bugs.webkit.org/show_bug.cgi?id=101435
180585
180586        Reviewed by Simon Fraser.
180587
180588        When paint Shadow that doesn't have blurred edge on floating point zoom,
180589        pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
180590        So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
180591        even if the unaligned clip rect occurred.
180592
180593
180594        * platform/graphics/ShadowBlur.cpp:
180595        (WebCore::ShadowBlur::calculateLayerBoundingRect):
180596
1805972012-11-07  Tim Horton  <timothy_horton@apple.com>
180598
180599        Repaint issues with -webkit-svg-shadow used on a container
180600        https://bugs.webkit.org/show_bug.cgi?id=65643
180601        <rdar://problem/7600532>
180602
180603        Reviewed by Simon Fraser.
180604
180605        SVG renderer repaint rects are currently expanded only by the shadow of
180606        the renderer itself; however, the area they need to repaint can be larger
180607        than that, if their parents also have shadows. We need to take into account
180608        parent's shadows (respecting transforms, as well).
180609
180610        clippedOverflowRectForRepaint already recurses upwards through the render tree,
180611        and ends up with a rect in layout coordinates, so we manually apply the shadow
180612        at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
180613        us to get the raw repaint rect without the shadow baked-in).
180614
180615        repaintRectInLocalCoordinates now includes shadows from all parents.
180616
180617        Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
180618        shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
180619        We can just swap the order of these things to correct this.
180620
180621        Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
180622
180623        * rendering/RenderObject.cpp:
180624        (WebCore::RenderObject::addChild): Mark the child being added as having an SVG shadow if it is being added as a child of an element that does.
180625        (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
180626        * rendering/svg/RenderSVGImage.cpp:
180627        (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
180628        * rendering/svg/RenderSVGImage.h:
180629        (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
180630        * rendering/svg/RenderSVGModelObject.cpp:
180631        (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
180632        * rendering/svg/RenderSVGModelObject.h:
180633        (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
180634        (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
180635        (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
180636        * rendering/svg/RenderSVGRoot.cpp:
180637        (WebCore::RenderSVGRoot::RenderSVGRoot):
180638        (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
180639        (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
180640        * rendering/svg/RenderSVGRoot.h:
180641        (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
180642        (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
180643        (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
180644        * rendering/svg/RenderSVGShape.cpp:
180645        (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
180646        * rendering/svg/RenderSVGShape.h:
180647        (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
180648        * rendering/svg/SVGRenderSupport.cpp:
180649        (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
180650        (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
180651        (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
180652        (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
180653        (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
180654        transforming the repaint rect back into local coordinates.
180655        (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
180656        * rendering/svg/SVGRenderSupport.h:
180657
1806582012-11-07  Anders Carlsson  <andersca@apple.com>
180659
180660        Add RemoteGraphicsLayer class
180661        https://bugs.webkit.org/show_bug.cgi?id=101535
180662
180663        Reviewed by Simon Fraser.
180664
180665        * WebCore.exp.in:
180666        Export GraphicsLayer symbols required by WebKit2.
180667
180668        * WebCore.xcodeproj/project.pbxproj:
180669        Make GraphicsLayerFactory.h a private header.
180670
1806712012-11-07  Adam Barth  <abarth@webkit.org>
180672
180673        [V8] Don't leak <img> elements in content scripts
180674        https://bugs.webkit.org/show_bug.cgi?id=101525
180675
180676        Reviewed by Ojan Vafai.
180677
180678        I found the leak that was causing a problem for bug 101110. We weren't
180679        filling in the derefObjectFunction for HTMLImageElements (and
180680        potentially some other types of elements). That manifests today as a
180681        memory leak in content scripts (which use the derefObjectFunction for
180682        nodes) and caused a memory leak after bug 101110 because we started
180683        using the derefObjectFunction in the main world as well.
180684
180685        This patch adds ASSERTs so that we won't make this mistake in the future.
180686
180687        * bindings/scripts/CodeGeneratorV8.pm:
180688        (GenerateNamedConstructorCallback):
180689        * bindings/v8/DOMDataStore.cpp:
180690        (WebCore::DOMDataStore::weakCallback):
180691        * bindings/v8/DOMWrapperMap.h:
180692        (WebCore::DOMWrapperMap::defaultWeakCallback):
180693        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
180694        (WebCore):
180695
1806962012-11-07  Alec Flett  <alecflett@chromium.org>
180697
180698        IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
180699        https://bugs.webkit.org/show_bug.cgi?id=101486
180700
180701        Reviewed by Ojan Vafai.
180702
180703        Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
180704        preparation for merging these classes. This will make the merge
180705        diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
180706        for the final goal.
180707
180708        No new tests, this is is just a rename and minor style fix.
180709
180710        * CMakeLists.txt:
180711        * GNUmakefile.list.am:
180712        * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
180713        * WebCore.gypi:
180714        * WebCore.xcodeproj/project.pbxproj:
180715
1807162012-11-07  Adam Barth  <abarth@webkit.org>
180717
180718        [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
180719        https://bugs.webkit.org/show_bug.cgi?id=101523
180720
180721        Unreviewed. Technically this patch hasn't been reviewed, but it is part
180722        of a patch that was reviewed by Kentaro Hara.
180723
180724        Sadly, my patch for bug 101110 triggered the regression again. This
180725        patch is a smaller incremental step towards the patch in bug 101110. It
180726        doesn't make that much sense on its own, but it will help me isolate
180727        the source of the regression.
180728
180729        * bindings/v8/DOMDataStore.h:
180730        (WebCore::DOMDataStore::get):
180731        (DOMDataStore):
180732        (WebCore::DOMDataStore::set):
180733        (WebCore::DOMDataStore::wrapperIsStoredInObject):
180734        (WebCore::DOMDataStore::getWrapperFromObject):
180735        (WebCore::DOMDataStore::setWrapperInObject):
180736
1807372012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
180738
180739        SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
180740        https://bugs.webkit.org/show_bug.cgi?id=101144
180741
180742        Reviewed by Enrica Casucci.
180743
180744        The bug was caused by attach() happening between each node removal. Since the command was trying
180745        to remove millions of node in some cases, attach()ing render objects for each node being reinserted
180746        imposed a huge runtime cost.
180747
180748        Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
180749        Also remove all ancestors at once when they are direct child/parent of each other so that we don't
180750        remove an ancestor and then insert its child back only to remove it again in the next iteration.
180751
180752        No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
180753        this specific case is not the worth the increase in the bot cycle time. I'll note that the email
180754        attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
180755        7 seconds to open on my MacPro.
180756
180757        * editing/AppendNodeCommand.cpp:
180758        (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
180759        without calling isContentEditable or not.
180760        * editing/ApplyStyleCommand.cpp:
180761        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
180762        object.
180763        * editing/CompositeEditCommand.cpp:
180764        (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
180765        (WebCore::CompositeEditCommand::removeNode): Ditto.
180766        (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
180767        * editing/CompositeEditCommand.h:
180768        (CompositeEditCommand):
180769        * editing/DeleteSelectionCommand.cpp:
180770        (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
180771        editable without calling isContentEditable or not.
180772        * editing/DeleteSelectionCommand.h:
180773        (DeleteSelectionCommand):
180774        * editing/EditCommand.h:
180775        * editing/InsertIntoTextNodeCommand.cpp:
180776        (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
180777        we need to have render objects for echoing.
180778        * editing/InsertNodeBeforeCommand.cpp:
180779        (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
180780        (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
180781        (WebCore::InsertNodeBeforeCommand::doUnapply):
180782        * editing/InsertNodeBeforeCommand.h:
180783        (WebCore::InsertNodeBeforeCommand::create):
180784        (InsertNodeBeforeCommand):
180785        * editing/RemoveNodeCommand.cpp:
180786        (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
180787        (WebCore::RemoveNodeCommand::doApply):
180788        * editing/RemoveNodeCommand.h:
180789        (WebCore::RemoveNodeCommand::create):
180790        (RemoveNodeCommand):
180791        * editing/RemoveNodePreservingChildrenCommand.cpp:
180792        (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
180793        (WebCore::RemoveNodePreservingChildrenCommand::doApply):
180794        * editing/RemoveNodePreservingChildrenCommand.h:
180795        (WebCore::RemoveNodePreservingChildrenCommand::create):
180796        (RemoveNodePreservingChildrenCommand):
180797        * editing/SimplifyMarkupCommand.cpp:
180798        (WebCore::SimplifyMarkupCommand::doApply):
180799        (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
180800        ancestors.
180801        * editing/SimplifyMarkupCommand.h:
180802        (SimplifyMarkupCommand):
180803
1808042012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
180805
180806        Unreviewed, rolling out r133810.
180807        http://trac.webkit.org/changeset/133810
180808        https://bugs.webkit.org/show_bug.cgi?id=101520
180809
180810        This patch made ws_single_peak_r regress by 15% (Requested by
180811        abarth on #webkit).
180812
180813        * bindings/v8/DOMDataStore.cpp:
180814        (WebCore::DOMDataStore::weakCallback):
180815        * bindings/v8/DOMDataStore.h:
180816        (WebCore::DOMDataStore::get):
180817        (WebCore::DOMDataStore::set):
180818        (DOMDataStore):
180819
1808202012-11-07  Elliott Sprehn  <esprehn@chromium.org>
180821
180822        Clean up confused use of Document::renderer and renderView
180823        https://bugs.webkit.org/show_bug.cgi?id=101484
180824
180825        Reviewed by Ojan Vafai.
180826
180827        Document::renderer and Document::renderView are the same thing, but it seems
180828        people don't always realize it and check if document()->renderer() is a RenderView.
180829
180830        This patch cleans up usage of document()->renderer() and document()->renderView() and
180831        simplifies the code that was written without realizing they were the same thing.
180832
180833        No new tests, this is just a refactor.
180834
180835        * accessibility/AccessibilityRenderObject.cpp:
180836        (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
180837        * dom/Element.cpp:
180838        (WebCore::Element::screenRect):
180839        (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
180840        * editing/FrameSelection.cpp: Remove verbose casts.
180841        (WebCore::clearRenderViewSelection):
180842        (WebCore::FrameSelection::recomputeCaretRect):
180843        (WebCore::CaretBase::invalidateCaretRect):
180844        (WebCore::FrameSelection::focusedOrActiveStateChanged):
180845        * page/Frame.cpp:
180846        (WebCore::Frame::contentRenderer): Vastly simplified.
180847        * page/PrintContext.cpp: Remove verbose casts.
180848        (WebCore::PrintContext::computePageRects):
180849        (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
180850        * page/wince/FrameWinCE.cpp:
180851        (WebCore::computePageRectsForFrame): Remove unreachable code.
180852        * rendering/RenderObject.cpp:
180853        (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
180854
1808552012-11-07  Adam Barth  <abarth@webkit.org>
180856
180857        [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
180858        https://bugs.webkit.org/show_bug.cgi?id=101110
180859
180860        Reviewed by Kentaro Hara.
180861
180862        This patch generalizes our support for storing wrappers in DOM objects
180863        to be usable for more than just nodes. After this patch, any object
180864        with a ScriptWrappable base class will have its wrapper stored inline
180865        in the object in the main world.
180866
180867        * bindings/v8/DOMDataStore.cpp:
180868        (WebCore::DOMDataStore::weakCallback):
180869        * bindings/v8/DOMDataStore.h:
180870        (WebCore::DOMDataStore::get):
180871        (WebCore::DOMDataStore::set):
180872
1808732012-11-07  Tiancheng Jiang  <tijiang@rim.com>
180874
180875        [BlackBerry] Update BB10 form theme.
180876        https://bugs.webkit.org/show_bug.cgi?id=100760
180877
180878        Reviewed by Rob Buis.
180879
180880        RIM PR 236997
180881        Internally Reviewed by Jakob Petsovits.
180882
180883        Set font family to fix DRT test fast/forms/input-type-text-min-width.html
180884
180885        * platform/blackberry/RenderThemeBlackBerry.cpp:
180886        (WebCore::RenderThemeBlackBerry::defaultGUIFont):
180887        (WebCore):
180888        (WebCore::RenderThemeBlackBerry::systemFont):
180889
1808902012-11-07  Beth Dakin  <bdakin@apple.com>
180891
180892        https://bugs.webkit.org/show_bug.cgi?id=101303
180893        Fixed position elements that are out of view still end up forcing 
180894        non-threaded scrolling
180895        -and corresponding-
180896        <rdar://problem/12642222>
180897
180898        Reviewed by Simon Fraser.
180899
180900        Re-name hasNonLayerFixedObjects() to 
180901        hasVisibleSlowRepaintFixedObjects() and make it virtual. 
180902        * page/scrolling/ScrollingCoordinator.cpp:
180903        (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
180904        (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
180905        * page/scrolling/ScrollingCoordinator.h:
180906        (ScrollingCoordinator):
180907
180908        Override hasVisibleSlowRepaintFixedObjects() to always return false. 
180909        We don't want to bother with the extra computation in the 
180910        ScrollingCoordinator implementation, though other ports might still 
180911        want it.
180912        * page/scrolling/mac/ScrollingCoordinatorMac.h:
180913        (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
180914        (ScrollingCoordinatorMac):
180915
180916        Make this function const so that we can call it from 
180917        requiresCompositingForPosition().
180918        * rendering/RenderLayerCompositor.cpp:
180919        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
180920
180921        Actually be thorough here and check if the fixed object has any 
180922        descendants that are visible in the view. If it does, then we do 
180923        want to composite the fixed object.
180924        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
180925        * rendering/RenderLayerCompositor.h:
180926
1809272012-11-07  Roger Fong  <roger_fong@apple.com>
180928
180929        Unreviewed. Style fix following r133262.
180930
180931        * html/HTMLMediaElement.cpp:
180932        (WebCore::HTMLMediaElement::clearMediaPlayer):
180933        * html/HTMLMediaElement.h:
180934        (HTMLMediaElement):
180935
1809362012-11-07  Adam Barth  <abarth@webkit.org>
180937
180938        [V8] DOMWrapperMap doesn't need to use virtual functions
180939        https://bugs.webkit.org/show_bug.cgi?id=101494
180940
180941        Reviewed by Kentaro Hara.
180942
180943        DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
180944
180945        * bindings/v8/DOMDataStore.cpp:
180946        (WebCore::DOMDataStore::DOMDataStore):
180947        * bindings/v8/DOMWrapperMap.h:
180948        (WebCore::DOMWrapperMap::DOMWrapperMap):
180949        (WebCore::DOMWrapperMap::get):
180950        (WebCore::DOMWrapperMap::set):
180951        (WebCore::DOMWrapperMap::clear):
180952        (WebCore::DOMWrapperMap::reportMemoryUsage):
180953        (WebCore::DOMWrapperMap::remove):
180954        (WebCore::DOMWrapperMap::defaultWeakCallback):
180955        * bindings/v8/V8NPObject.cpp:
180956        (WebCore::staticNPObjectMap):
180957
1809582012-11-07  Alexandru Chiculita  <achicu@adobe.com>
180959
180960        [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
180961        https://bugs.webkit.org/show_bug.cgi?id=101071
180962
180963        Reviewed by Dean Jackson.
180964
180965        I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
180966        used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
180967        will directly get the compiled shader in the constructor. The callers that still want to avoid 
180968        compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
180969        at a later time, before painting.
180970
180971        No new tests, the change is covered by the css3/filters/custom/ tests.
180972
180973        * platform/graphics/filters/CustomFilterConstants.h:
180974        * platform/graphics/filters/CustomFilterProgramInfo.h:
180975        * platform/graphics/filters/CustomFilterRenderer.cpp:
180976        (WebCore::CustomFilterRenderer::create):
180977        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
180978        (WebCore::CustomFilterRenderer::premultipliedAlpha):
180979        (WebCore::CustomFilterRenderer::setCompiledProgram):
180980        (WebCore):
180981        (WebCore::CustomFilterRenderer::prepareForDrawing):
180982        (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
180983        * platform/graphics/filters/CustomFilterRenderer.h:
180984        (WebCore):
180985        (CustomFilterRenderer):
180986        (WebCore::CustomFilterRenderer::compiledProgram):
180987        * platform/graphics/filters/FECustomFilter.cpp:
180988        (WebCore::FECustomFilter::FECustomFilter):
180989        (WebCore::FECustomFilter::prepareForDrawing):
180990        * platform/graphics/filters/FECustomFilter.h:
180991        (FECustomFilter):
180992
1809932012-11-07  Adam Barth  <abarth@webkit.org>
180994
180995        [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
180996        https://bugs.webkit.org/show_bug.cgi?id=101493
180997
180998        Reviewed by Kentaro Hara.
180999
181000        This patch is another incremental step towards landing the patch in bug
181001        101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
181002        longer needed.
181003
181004        * WebCore.gypi:
181005        * bindings/v8/DOMDataStore.cpp:
181006        (WebCore::DOMDataStore::DOMDataStore):
181007        (WebCore::DOMDataStore::~DOMDataStore):
181008        (WebCore::DOMDataStore::reportMemoryUsage):
181009        (WebCore::DOMDataStore::weakCallback):
181010        (WebCore):
181011        * bindings/v8/DOMDataStore.h:
181012        (WebCore::DOMDataStore::get):
181013        (WebCore::DOMDataStore::set):
181014        (DOMDataStore):
181015        * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
181016        * bindings/v8/V8GCController.cpp:
181017
1810182012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
181019
181020        [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
181021        https://bugs.webkit.org/show_bug.cgi?id=101475
181022
181023        Reviewed by Kenneth Rohde Christiansen.
181024
181025        Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
181026        using XFree to avoid memory leaks.
181027
181028        No tests. No change in behavior.
181029
181030        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
181031        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
181032        (WebCore::GraphicsSurfacePrivate::createSurface):
181033
1810342012-11-07  Fady Samuel  <fsamuel@chromium.org>
181035
181036        Autoresize should work even if turned on while the page is loading.
181037        https://bugs.webkit.org/show_bug.cgi?id=101380
181038
181039        Reviewed by David Levin.
181040
181041        Autoresize does not work in cases where it is turned on while loading.
181042        This patch addresses this by allowing autoSize to complete if it's turned on
181043        while loading and doing a final pass after loading.
181044
181045        * loader/FrameLoader.cpp:
181046        (WebCore::FrameLoader::checkCompleted):
181047        Adjust to call renamed function.
181048        * page/FrameView.cpp:
181049        (WebCore::FrameView::handleLoadCompleted):
181050        Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
181051        (WebCore::FrameView::autoSizeIfEnabled):
181052        Allow the size to shrink if autosize is adjusted while the page is loading.
181053        * page/FrameView.h:
181054        (FrameView):
181055        Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
181056
1810572012-11-07  Philip Rogers  <pdr@google.com>
181058
181059        Skip SVG repaint tracking when parent container transforms
181060        https://bugs.webkit.org/show_bug.cgi?id=101177
181061
181062        Reviewed by Eric Seidel.
181063
181064        This patch skips child repaint rect checks when a parent container is transformed, leading
181065        to a 75% increase on the RoboHornet SVG benchmark:
181066            http://www.robohornet.org/#et=svg  (average of 2 runs)
181067            Before patch: 161.6ms
181068            After patch: 38.5ms
181069
181070        SVG transforms are relative to the local container which makes calculating an absolute
181071        repaint rect expensive because it requires multiplying the local repaint rect by each
181072        parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
181073        as an example of this calculation.
181074
181075        This patch takes advantage of SVG's container rules: when a parent container's transform
181076        changes, all children must be repainted (there is no absolute positioning in SVG).
181077        SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
181078        the parent transform changed before doing child repaint checks. A similar optimization is
181079        used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
181080        is done when the view is fully repainted.
181081
181082        This code is tested in existing tests.
181083
181084        * rendering/svg/RenderSVGContainer.cpp:
181085        (WebCore::RenderSVGContainer::layout):
181086        * rendering/svg/RenderSVGForeignObject.cpp:
181087        (WebCore::RenderSVGForeignObject::layout):
181088        * rendering/svg/RenderSVGImage.cpp:
181089        (WebCore::RenderSVGImage::layout):
181090        * rendering/svg/RenderSVGShape.cpp:
181091        (WebCore::RenderSVGShape::layout):
181092        * rendering/svg/RenderSVGText.cpp:
181093        (WebCore::RenderSVGText::layout):
181094        * rendering/svg/SVGRenderSupport.cpp:
181095        (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
181096        (WebCore):
181097        * rendering/svg/SVGRenderSupport.h:
181098        (SVGRenderSupport):
181099
1811002012-11-07  Chris Fleizach  <cfleizach@apple.com>
181101
181102        AX: Textfields don't get focus when navigated to from 'show all tabs' button
181103        https://bugs.webkit.org/show_bug.cgi?id=101369
181104
181105        Reviewed by Darin Adler.
181106
181107        When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
181108        returns (through tab, or mouse click), then focus will be cleared and restored.
181109
181110        However, when focus is returned through accessibility means, focus is not cleared first, which
181111        means subsequent focus actions do nothing.
181112
181113        This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
181114
181115        Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
181116        moving focus back to the webpage.
181117      
181118        * accessibility/AccessibilityRenderObject.cpp:
181119        (WebCore::AccessibilityRenderObject::setFocused):
181120
1811212012-11-07  Adam Barth  <abarth@webkit.org>
181122
181123        [V8] We should hide the DOMWrapperMaps inside DOMDataStore
181124        https://bugs.webkit.org/show_bug.cgi?id=101430
181125
181126        Reviewed by Kentaro Hara.
181127
181128        This is yet another incremental step towards landing the patch in bug
181129        101110. In this patch, we hide the existence of DOMWrapperMaps inside
181130        DOMDataStore. In the process, we can remove V8DOMMap.cpp.
181131
181132        * UseV8.cmake:
181133        * WebCore.gypi:
181134        * bindings/v8/DOMDataStore.h:
181135        (WebCore::DOMDataStore::set):
181136        * bindings/v8/DOMWrapperWorld.h:
181137        * bindings/v8/ScriptProfiler.cpp:
181138        * bindings/v8/SerializedScriptValue.cpp:
181139        (WebCore::neuterBinding):
181140        * bindings/v8/V8DOMMap.cpp: Removed.
181141        * bindings/v8/V8DOMMap.h: Removed.
181142        * bindings/v8/V8DOMWindowShell.cpp:
181143        * bindings/v8/V8DOMWrapper.h:
181144        (WebCore::V8DOMWrapper::getCachedWrapper):
181145        (WebCore::V8DOMWrapper::setWrapperClass):
181146        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
181147        * bindings/v8/V8NPObject.cpp:
181148        * bindings/v8/WorkerContextExecutionProxy.cpp:
181149        * bindings/v8/WorkerScriptController.cpp:
181150
1811512012-11-07  Varun Jain  <varunjain@chromium.org>
181152
181153        Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
181154        https://bugs.webkit.org/show_bug.cgi?id=101385
181155
181156        Reviewed by Adam Barth.
181157
181158        Test: Only creating the new enum. No functionality change, hence no tests required.
181159
181160        * platform/PlatformEvent.h:
181161
1811622012-11-05  Emil A Eklund  <eae@chromium.org>
181163
181164        Remove LayoutTypes abstraction
181165        https://bugs.webkit.org/show_bug.cgi?id=93050
181166
181167        Reviewed by Levi Weintraub.
181168
181169        Remove LayoutTypes abstraction and rename FractionalLayout* to
181170        Layout* now that all platforms use the FractionalLayout version
181171        (albeit with different fractions).
181172
181173        No new tests, no change in functionality.
181174
181175        * CMakeLists.txt:
181176        * GNUmakefile.list.am:
181177        * Target.pri:
181178        * WebCore.exp.in:
181179        * WebCore.gypi:
181180        * WebCore.vcproj/WebCore.vcproj:
181181        * WebCore.xcodeproj/project.pbxproj:
181182        * accessibility/AccessibilityNodeObject.cpp:
181183        * accessibility/AccessibilityNodeObject.h:
181184        * accessibility/AccessibilityObject.h:
181185        * accessibility/AccessibilityRenderObject.h:
181186        * css/LengthFunctions.cpp:
181187        * css/LengthFunctions.h:
181188        * dom/Document.h:
181189        * dom/DocumentMarkerController.h:
181190        * dom/ElementRareData.h:
181191        * dom/MouseRelatedEvent.h:
181192        * dom/Node.h:
181193        * dom/Touch.h:
181194        * editing/FrameSelection.cpp:
181195        * editing/FrameSelection.h:
181196        * editing/RenderedPosition.h:
181197        * html/HTMLAreaElement.h:
181198        * inspector/InspectorOverlay.h:
181199        * inspector/InspectorTimelineAgent.h:
181200        * inspector/TimelineRecordFactory.cpp:
181201        * inspector/TimelineRecordFactory.h:
181202        * loader/cache/CachedImage.h:
181203        * page/FocusController.h:
181204        * page/FrameView.h:
181205        * page/Page.h:
181206        * page/SpatialNavigation.cpp:
181207        * page/SpatialNavigation.h:
181208        * platform/FractionalLayoutUnit.h: Removed.
181209        * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
181210        * platform/Length.h:
181211        * platform/PopupMenuClient.h:
181212        * platform/animation/AnimationUtilities.h:
181213        * platform/graphics/FloatPoint.cpp:
181214        * platform/graphics/FloatPoint.h:
181215        * platform/graphics/FloatRect.cpp:
181216        * platform/graphics/FloatRect.h:
181217        * platform/graphics/FloatSize.cpp:
181218        * platform/graphics/FloatSize.h:
181219        * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
181220        * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
181221        * platform/graphics/FractionalLayoutPoint.h: Removed.
181222        * platform/graphics/FractionalLayoutRect.cpp: Removed.
181223        * platform/graphics/FractionalLayoutRect.h: Removed.
181224        * platform/graphics/FractionalLayoutSize.h: Removed.
181225        * platform/graphics/GraphicsLayer.cpp:
181226        * platform/graphics/GraphicsLayerAnimation.cpp:
181227        * platform/graphics/IntRect.cpp:
181228        * platform/graphics/IntRect.h:
181229        * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
181230        * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
181231        * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
181232        * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
181233        * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
181234        * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
181235        * platform/graphics/MediaPlayer.h:
181236        * platform/graphics/filters/CustomFilterOperation.h:
181237        * platform/graphics/filters/CustomFilterParameterList.h:
181238        * platform/graphics/filters/FilterOperation.h:
181239        * platform/graphics/filters/FilterOperations.h:
181240        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
181241        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
181242        * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
181243        * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
181244        * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
181245        * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
181246        * platform/graphics/qt/LayoutRectQt.cpp: Added.
181247        * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
181248        * platform/graphics/transforms/TransformOperations.h:
181249        * platform/graphics/transforms/TransformState.h:
181250        * platform/graphics/transforms/TransformationMatrix.cpp:
181251        * platform/graphics/transforms/TransformationMatrix.h:
181252        * rendering/AutoTableLayout.h:
181253        * rendering/ColumnInfo.h:
181254        * rendering/ExclusionShapeInsideInfo.h:
181255        * rendering/FilterEffectRenderer.h:
181256        * rendering/FixedTableLayout.h:
181257        * rendering/GapRects.h:
181258        * rendering/HitTestResult.h:
181259        * rendering/HitTestingTransformState.cpp:
181260        * rendering/HitTestingTransformState.h:
181261        * rendering/InlineFlowBox.cpp:
181262        * rendering/LayoutRepainter.cpp:
181263        * rendering/LayoutRepainter.h:
181264        * rendering/LayoutState.h:
181265        * rendering/LayoutTypes.h:
181266        * rendering/LayoutTypesInlineMethods.h:
181267        * rendering/PaintInfo.h:
181268        * rendering/RenderBlock.cpp:
181269        * rendering/RenderBlock.h:
181270        * rendering/RenderBlockLineLayout.cpp:
181271        * rendering/RenderBox.cpp:
181272        * rendering/RenderBox.h:
181273        * rendering/RenderBoxModelObject.cpp:
181274        * rendering/RenderBoxModelObject.h:
181275        * rendering/RenderDeprecatedFlexibleBox.cpp:
181276        * rendering/RenderFieldset.cpp:
181277        * rendering/RenderFlexibleBox.cpp:
181278        * rendering/RenderFlowThread.cpp:
181279        * rendering/RenderGeometryMap.h:
181280        * rendering/RenderImageResource.h:
181281        * rendering/RenderInline.cpp:
181282        * rendering/RenderLayer.cpp:
181283        * rendering/RenderLayerFilterInfo.h:
181284        * rendering/RenderLineBoxList.cpp:
181285        * rendering/RenderListMarker.cpp:
181286        * rendering/RenderMarquee.cpp:
181287        * rendering/RenderMenuList.h:
181288        * rendering/RenderMultiColumnBlock.cpp:
181289        * rendering/RenderMultiColumnSet.cpp:
181290        * rendering/RenderNamedFlowThread.cpp:
181291        * rendering/RenderObject.cpp:
181292        * rendering/RenderObject.h:
181293        * rendering/RenderOverflow.h:
181294        * rendering/RenderRegion.cpp:
181295        * rendering/RenderReplaced.cpp:
181296        * rendering/RenderTable.cpp:
181297        * rendering/RenderTable.h:
181298        * rendering/RenderText.cpp:
181299        * rendering/RenderThemeChromiumCommon.cpp:
181300        * rendering/RenderThemeChromiumCommon.h:
181301        * rendering/RenderTreeAsText.cpp:
181302        * rendering/RenderTreeAsText.h:
181303        * rendering/RenderView.h:
181304        * rendering/style/NinePieceImage.h:
181305        * rendering/style/RenderStyle.h:
181306        * rendering/style/ShadowData.cpp:
181307        * rendering/style/ShadowData.h:
181308        * rendering/style/StyleCachedImageSet.h:
181309        * rendering/style/StyleImage.h:
181310        * rendering/svg/SVGRenderSupport.h:
181311
1813122012-11-07  Alexandru Chiculita  <achicu@adobe.com>
181313
181314        CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
181315        https://bugs.webkit.org/show_bug.cgi?id=100905
181316
181317        Reviewed by Noam Rosenthal.
181318
181319        Added getters for the validated shaders, so that platform code could extract them.
181320
181321        No new tests, just added two getters.
181322
181323        * platform/graphics/filters/CustomFilterValidatedProgram.h:
181324        (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
181325        (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
181326        (CustomFilterValidatedProgram):
181327
1813282012-11-07  Joshua Bell  <jsbell@chromium.org>
181329
181330        IndexedDB: Assertion failure with open() within upgradeneeded
181331        https://bugs.webkit.org/show_bug.cgi?id=96947
181332
181333        Reviewed by Dimitri Glazkov.
181334
181335        Postpone creation of the "pending second half open" until the version change
181336        transaction has started.
181337
181338        Test: storage/indexeddb/unblocked-version-changes.html
181339
181340        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
181341        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
181342        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
181343        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
181344        (IDBDatabaseBackendImpl):
181345        * Modules/indexeddb/IDBDatabaseCallbacks.h:
181346
1813472012-11-07  Alexandru Chiculita  <achicu@adobe.com>
181348
181349        [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
181350        https://bugs.webkit.org/show_bug.cgi?id=100890
181351
181352        Reviewed by Dean Jackson.
181353
181354        Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
181355
181356        No new tests, this parameter is not used in the implementation yet.
181357
181358        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
181359        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
181360        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
181361        (WebCore::ValidatedCustomFilterOperation::create):
181362        (WebCore::ValidatedCustomFilterOperation::meshBoxType):
181363        (WebCore::ValidatedCustomFilterOperation::operator==):
181364        (ValidatedCustomFilterOperation):
181365        * rendering/FilterEffectRenderer.cpp:
181366        (WebCore::createCustomFilterEffect):
181367        * rendering/RenderLayer.cpp:
181368        (WebCore::RenderLayer::computeFilterOperations):
181369
1813702012-11-07  Sergio Villar Senin  <svillar@igalia.com>
181371
181372        [Qt] Implement deleteCookie() for persistent storage
181373        https://bugs.webkit.org/show_bug.cgi?id=101272
181374
181375        Reviewed by Jocelyn Turcotte.
181376
181377        Individual cookies were never persistently cleared as the
181378        deleteCookie() virtual method was not implemented for persistent
181379        storage. That's why cookies were only deleted for the current
181380        session.
181381
181382        * platform/qt/CookieJarQt.cpp:
181383        (WebCore::SharedCookieJarQt::deleteCookie):
181384        (WebCore): added deleteCookie() implementation for persistent
181385        storage.
181386        * platform/qt/CookieJarQt.h:
181387        (SharedCookieJarQt):
181388
1813892012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
181390
181391        [Shadow] Style should update when 'pseudo' attribute is dynamically updated
181392        https://bugs.webkit.org/show_bug.cgi?id=100918
181393
181394        Reviewed by Dimitri Glazkov.
181395
181396        When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
181397
181398        It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
181399        but it might consume a lot of memory.
181400
181401        Test: fast/dom/shadow/pseudo-attribute-dynamic.html
181402
181403        * dom/Element.cpp:
181404        (WebCore::Element::attributeChanged):
181405
1814062012-11-07  Ulan Degenbaev  <ulan@chromium.org>
181407
181408        [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
181409        https://bugs.webkit.org/show_bug.cgi?id=101474
181410
181411        Reviewed by Kentaro Hara.
181412
181413        Do not send low memory notification to V8 when most of memory usage
181414        comes from V8 heap and not DOM objects. In this case V8 can schedule GC
181415        itself more optimally.
181416
181417        * bindings/v8/V8GCController.cpp:
181418        (WebCore::V8GCController::checkMemoryUsage):
181419
1814202012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
181421
181422        [Qt] Open link in this window action
181423        https://bugs.webkit.org/show_bug.cgi?id=101226
181424
181425        Reviewed by Simon Hausmann.
181426
181427        Adds the action to the WebCore context-menu controller.
181428
181429        * page/ContextMenuController.cpp:
181430        (WebCore::ContextMenuController::contextMenuItemSelected):
181431        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
181432        * platform/ContextMenuItem.h:
181433        * platform/LocalizedStrings.h:
181434        * platform/qt/LocalizedStringsQt.cpp:
181435        (WebCore::contextMenuItemTagOpenLinkInThisWindow):
181436
1814372012-11-07  Andrey Adaikin  <aandrey@chromium.org>
181438
181439        Web Inspector: [Canvas] closure compiler fixes
181440        https://bugs.webkit.org/show_bug.cgi?id=101459
181441
181442        Reviewed by Pavel Feldman.
181443
181444        * inspector/InjectedScriptCanvasModuleSource.js:
181445        (.):
181446
1814472012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
181448
181449        Unreviewed, rolling out r133712.
181450        http://trac.webkit.org/changeset/133712
181451        https://bugs.webkit.org/show_bug.cgi?id=101461
181452
181453        Broke fast/forms/time* tests on chromium-win. (Requested by
181454        mkwst on #webkit).
181455
181456        * platform/text/win/LocaleWin.cpp:
181457        (WebCore::DateFormatToken::DateFormatToken):
181458        (DateFormatToken):
181459        (WebCore):
181460        (WebCore::isEraSymbol):
181461        (WebCore::isYearSymbol):
181462        (WebCore::isMonthSymbol):
181463        (WebCore::isDaySymbol):
181464        (WebCore::commitLiteralToken):
181465        (WebCore::parseDateFormat):
181466        (WebCore::LocaleWin::ensureShortDateTokens):
181467        (WebCore::convertWindowsDateFormatToLDML):
181468        (WebCore::mapCharacterToDateTimeFieldType):
181469        (WebCore::convertWindowsTimeFormatToLDML):
181470        (WebCore::LocaleWin::dateFormat):
181471        (WebCore::LocaleWin::monthFormat):
181472        (WebCore::LocaleWin::timeFormat):
181473        (WebCore::LocaleWin::shortTimeFormat):
181474        * platform/text/win/LocaleWin.h:
181475        (LocaleWin):
181476
1814772012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
181478
181479        Web Inspector: [Regression] Editing formatted source should not be allowed.
181480        https://bugs.webkit.org/show_bug.cgi?id=101355
181481
181482        Reviewed by Pavel Feldman.
181483
181484        * inspector/front-end/JavaScriptSourceFrame.js:
181485        (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
181486        * inspector/front-end/UISourceCodeFrame.js:
181487        (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
181488
1814892012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
181490
181491        [Shadow] Use setPseudo() instead of setShadowPseudoId().
181492        https://bugs.webkit.org/show_bug.cgi?id=101306
181493
181494        Reviewed by Kent Tamura.
181495
181496        We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
181497        'pseudo' attribute.
181498
181499        We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
181500        constructed with AtomicStringFromLiteral, we use it.
181501
181502        No new tests, refactoring.
181503
181504        * WebCore.exp.in:
181505        * dom/Element.cpp:
181506        * dom/Element.h:
181507        (Element):
181508        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
181509        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
181510        * html/ColorInputType.cpp:
181511        (WebCore::ColorInputType::createShadowSubtree):
181512        * html/HTMLTextAreaElement.cpp:
181513        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
181514        * html/RangeInputType.cpp:
181515        (WebCore::RangeInputType::createShadowSubtree):
181516        * html/TextFieldInputType.cpp:
181517        (WebCore::TextFieldInputType::createShadowSubtree):
181518        (WebCore::TextFieldInputType::updatePlaceholderText):
181519        * html/ValidationMessage.cpp:
181520        (WebCore::ValidationMessage::buildBubbleTree):
181521        * html/shadow/DateTimeEditElement.cpp:
181522        (WebCore::DateTimeEditBuilder::visitLiteral):
181523        (WebCore::DateTimeEditElement::DateTimeEditElement):
181524        * html/shadow/DateTimeFieldElement.cpp:
181525        (WebCore::DateTimeFieldElement::initialize):
181526        * html/shadow/DateTimeFieldElement.h:
181527        (DateTimeFieldElement):
181528        * html/shadow/PickerIndicatorElement.cpp:
181529        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
181530        * html/track/TextTrackCue.cpp:
181531        (WebCore::TextTrackCueBox::TextTrackCueBox):
181532        (WebCore::TextTrackCue::updateDisplayTree):
181533        * testing/Internals.cpp:
181534        (WebCore::Internals::setShadowPseudoId):
181535
1815362012-11-07  Andrey Adaikin  <aandrey@chromium.org>
181537
181538        Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
181539        https://bugs.webkit.org/show_bug.cgi?id=101432
181540
181541        Reviewed by Pavel Feldman.
181542
181543        Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
181544
181545        Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
181546
181547        * inspector/InjectedScriptCanvasModuleSource.js:
181548        (.):
181549
1815502012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
181551
181552        Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
181553        https://bugs.webkit.org/show_bug.cgi?id=101354
181554
181555        Reviewed by Pavel Feldman.
181556
181557        * inspector/front-end/DebuggerScriptMapping.js:
181558        * inspector/front-end/NetworkUISourceCodeProvider.js:
181559        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
181560        * inspector/front-end/Script.js:
181561        (WebInspector.Script.prototype.isSnippet):
181562        * inspector/front-end/ScriptSnippetModel.js:
181563        (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
181564
1815652012-11-07  Dan Carney  <dcarney@google.com>
181566
181567        [V8] Cleanup V8DOMWrapper::getCachedWrapper
181568        https://bugs.webkit.org/show_bug.cgi?id=100853
181569
181570        Reviewed by Adam Barth.
181571
181572        Slight cleanup. Removed redundant branch.
181573
181574        No new tests. No change in functionality.
181575
181576        * bindings/v8/V8DOMWrapper.h:
181577        (WebCore::V8DOMWrapper::getCachedWrapper):
181578
1815792012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
181580
181581        [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
181582
181583        The QtMultimedia namespace is now called QMultimedia and
181584        QtMultimedia::MetaData is now QMediaMetaData.
181585
181586        * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
181587        (WebCore::MediaPlayerPrivateQt::supportsType):
181588        (WebCore::MediaPlayerPrivateQt::totalBytes):
181589
1815902012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
181591
181592        Add replaceWithLiteral() method to WTF::String
181593        https://bugs.webkit.org/show_bug.cgi?id=101257
181594
181595        Reviewed by Benjamin Poulain.
181596
181597        Substitute String::replace() calls by String::replaceWithLiteral() where
181598        adequate, for efficiency.
181599
181600        No new tests, no behavior change.
181601
181602        * dom/Node.cpp:
181603        (WebCore::Node::showNode):
181604        * editing/EditingStyle.cpp:
181605        (WebCore::StyleChange::extractTextStyles):
181606        * editing/MarkupAccumulator.cpp:
181607        (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
181608        * html/HTMLAnchorElement.cpp:
181609        (WebCore::HTMLAnchorElement::setSearch):
181610        * loader/FormSubmission.cpp:
181611        (WebCore::appendMailtoPostFormDataToURL):
181612        * platform/network/soup/ProxyResolverSoup.cpp:
181613        (soupProxyResolverWkSetProperty):
181614        * plugins/PluginView.cpp:
181615        (WebCore::makeURL):
181616        * rendering/InlineTextBox.cpp:
181617        (WebCore::InlineTextBox::showBox):
181618        * xml/XSLTProcessor.cpp:
181619        (WebCore::transformTextStringToXHTMLDocumentString):
181620
1816212012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
181622
181623        Remove support for "desktop-width" in the viewport meta tag
181624        https://bugs.webkit.org/show_bug.cgi?id=101217
181625
181626        Reviewed by Gyuyoung Kim.
181627
181628        This has been removed from the CSS Device Adaptation spec, and
181629        should be safe to remove as it is not documented anywhere (neither
181630        in blog posts).
181631
181632        The viewport meta should only support the legacy features.
181633
181634        * dom/ViewportArguments.cpp:
181635        (WebCore::computeViewportAttributes):
181636        (WebCore::findSizeValue):
181637        (WebCore::findScaleValue):
181638        (WebCore::findUserScalableValue):
181639        * dom/ViewportArguments.h:
181640
1816412012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
181642
181643        [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
181644        https://bugs.webkit.org/show_bug.cgi?id=101343
181645
181646        Reviewed by Kenneth Rohde Christiansen.
181647
181648        Add Cairo to the list of backends that support shouldRespectImageOrientation.
181649
181650        No new tests, fixes exif-orientation-image-document.html.
181651
181652        * rendering/RenderObject.cpp:
181653        (WebCore::RenderObject::shouldRespectImageOrientation):
181654
1816552012-11-06  Yury Semikhatsky  <yurys@chromium.org>
181656
181657        Console not displaying all properties of an Object once native Constructor overwritten
181658        https://bugs.webkit.org/show_bug.cgi?id=101320
181659
181660        Reviewed by Pavel Feldman.
181661
181662        Use Object instance from {}.constructor when formatting inspector messages in the
181663        injected script. Otherwise inspected page may overwrite Object value and break inspector.
181664
181665        Test: inspector/console/console-Object-overwritten.html
181666
181667        * inspector/InjectedScriptSource.js:
181668
1816692012-11-06  Keishi Hattori  <keishi@webkit.org>
181670
181671        Implement month picking to calendar picker
181672        https://bugs.webkit.org/show_bug.cgi?id=101333
181673
181674        Reviewed by Kent Tamura.
181675
181676        This adds month picker mode to CalendarPicker.
181677
181678        No new tests. Tests will be added later when this feature is enabled in DRT.
181679
181680        * Resources/pagepopups/calendarPicker.css:
181681        (.month-mode .day): Remove rounded corners when in month mode.
181682        * Resources/pagepopups/calendarPicker.js:
181683        (Month.createFromToday): Creates month containing today.
181684        (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
181685        (CalendarPicker.prototype.handleToday):
181686        (CalendarPicker.prototype._layoutButtons):
181687        (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
181688        (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
181689        (DaysTable.prototype.selectRange): Selects a day.
181690        (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
181691        (DaysTable.prototype._selectRangeContainingNode):
181692        (DaysTable.prototype._rangeForNode): Returns Day for node.
181693        (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
181694        (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
181695        (DaysTable.prototype._handleKey):
181696        (MonthPickerDaysTable):
181697        (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
181698        (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
181699        (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
181700        (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
181701        (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
181702
1817032012-11-06  Dan Beam  <dbeam@chromium.org>
181704
181705        Enable REQUEST_AUTOCOMPLETE for chromium port
181706        https://bugs.webkit.org/show_bug.cgi?id=101376
181707
181708        Reviewed by Adam Barth.
181709
181710        Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
181711
181712        * bindings/generic/RuntimeEnabledFeatures.cpp:
181713        (WebCore):
181714        * bindings/generic/RuntimeEnabledFeatures.h:
181715        (RuntimeEnabledFeatures):
181716
181717        Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
181718
181719        (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
181720
181721        Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
181722
181723        (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
181724
181725        Added a setter to WebCore to affect the runtime flag requestAutocomplete.
181726
181727        * html/HTMLFormElement.idl:
181728
181729        Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
181730        so these features can be changed with a command line switch in the chromium port.
181731
1817322012-11-06  Adam Barth  <abarth@webkit.org>
181733
181734        [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
181735        https://bugs.webkit.org/show_bug.cgi?id=101422
181736
181737        Reviewed by Kentaro Hara.
181738
181739        This patch is another incremental step towards the patch in Bug 10110.
181740        In this step, we unify setJSWrapperForDOMObject and
181741        setJSWrapperForDOMNode.
181742
181743        * bindings/scripts/CodeGeneratorV8.pm:
181744        (GenerateHeader):
181745        (GenerateNormalAttrGetter):
181746        (GenerateConstructorCallback):
181747        (GenerateNamedConstructorCallback):
181748        (GenerateToV8Converters):
181749        * bindings/scripts/test/V8/V8Float64Array.h:
181750        (WebCore::V8Float64Array::wrap):
181751        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
181752        (WebCore::V8TestActiveDOMObject::wrap):
181753        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
181754        (WebCore::V8TestCustomNamedGetter::wrap):
181755        * bindings/scripts/test/V8/V8TestEventConstructor.h:
181756        (WebCore::V8TestEventConstructor::wrap):
181757        * bindings/scripts/test/V8/V8TestEventTarget.h:
181758        (WebCore::V8TestEventTarget::wrap):
181759        * bindings/scripts/test/V8/V8TestException.h:
181760        (WebCore::V8TestException::wrap):
181761        * bindings/scripts/test/V8/V8TestInterface.h:
181762        (WebCore::V8TestInterface::wrap):
181763        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
181764        (WebCore::V8TestMediaQueryListListener::wrap):
181765        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
181766        (WebCore::V8TestNamedConstructor::wrap):
181767        * bindings/scripts/test/V8/V8TestNode.cpp:
181768        (WebCore::V8TestNode::constructorCallback):
181769        (WebCore::V8TestNode::wrapSlow):
181770        * bindings/scripts/test/V8/V8TestObj.cpp:
181771        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
181772        * bindings/scripts/test/V8/V8TestObj.h:
181773        (WebCore::V8TestObj::wrap):
181774        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
181775        (WebCore::V8TestSerializedScriptValueInterface::wrap):
181776        * bindings/v8/DOMDataStore.cpp:
181777        (WebCore::DOMDataStore::current):
181778        * bindings/v8/DOMDataStore.h:
181779        (WebCore::DOMDataStore::get):
181780        (DOMDataStore):
181781        * bindings/v8/V8DOMWrapper.cpp:
181782        * bindings/v8/V8DOMWrapper.h:
181783        (V8DOMWrapper):
181784        (WebCore::V8DOMWrapper::setJSWrapperPrivate):
181785        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
181786        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
181787        (WebCore::v8HTMLImageElementConstructorCallback):
181788
1817892012-11-06  Ken Buchanan  <kenrb@chromium.org>
181790
181791        Crash due to column span under button element
181792        https://bugs.webkit.org/show_bug.cgi?id=101402
181793
181794        Reviewed by Abhishek Arya.
181795
181796        When there is a column-spanning child of a RenderButton
181797        splitBlocks() must split the RenderButton as well as its
181798        only permitted direct child, the anonymous block referenced
181799        by m_inner. A crash was occurring because splitBlocks()
181800        calls addChildIgnoringAnonymousColumnBlocks() to add the
181801        cloned m_inner to the cloned RenderButton, which meant the
181802        m_inner for the cloned RenderButton was not being set even
181803        though a child was being added. This violates state
181804        assumptions in the RenderButton code.
181805
181806        This patch prevents any descendants of RenderButton from
181807        spanning columns. Also, it adds a precautionary check in
181808        RenderButton::removeChild() to mitigate problems if similar
181809        state problems are found in future.
181810
181811        * rendering/RenderBlock.cpp:
181812        (WebCore::RenderBlock::containingColumnsBlock):
181813        * rendering/RenderButton.cpp:
181814        (WebCore::RenderButton::removeChild):
181815
1818162012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
181817
181818        [Shadow] Pseudo custom-elements should start with 'x-'.
181819        https://bugs.webkit.org/show_bug.cgi?id=100919
181820
181821        Reviewed by Dimitri Glazkov.
181822
181823        Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
181824        only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
181825
181826        Test: fast/dom/shadow/pseudo-attribute-rendering.html
181827
181828        * css/SelectorChecker.cpp:
181829        (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
181830
1818312012-11-06  Chris Evans  <cevans@google.com>
181832
181833        Re-order variables in BidiRun and LayoutState
181834        https://bugs.webkit.org/show_bug.cgi?id=100173
181835
181836        Reviewed by Eric Seidel.
181837
181838        The variable re-ordering and use of bitfields for bools has two benefits:
181839        1) Size reduction. sizeof(BidiRun) goes down from 48 to 40 bytes on 64-bit. This is achieved by removing a bool member variable from BidiRun and packing it together with other bools in the BidiCharacterRun base class.
181840        2) Security improvement. We have a lot of use-after-free in the RenderObject hierarchy, and the RenderArena class protects us from a lot of trouble by ensuring that objects of arbitrary type cannot be overlayed on top of freed RenderObjects. This change additionally makes sure that non-virtual RenderArena allocated objects do not have member variables which fully overlap the freed vtable pointer. This leaves re-used vtable pointers always pointing to either a valid vtable or an invalid address due to the freelist high-bit poisoning.
181841
181842        This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
181843
181844        * platform/text/BidiResolver.h:
181845        (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
181846        (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
181847        * rendering/BidiRun.h:
181848        (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
181849        (BidiRun): m_hasHyphen is now stored in the base class.
181850        * rendering/LayoutState.cpp:
181851        (WebCore::LayoutState::LayoutState):
181852        * rendering/LayoutState.h:
181853        (WebCore::LayoutState::LayoutState): impact from re-ordering members.
181854        (LayoutState): re-order members to place bools adjacently.
181855
1818562012-11-06  Kent Tamura  <tkent@chromium.org>
181857
181858        [Chromium-win] Refactor date/time format conversion code in LocaleWin
181859        https://bugs.webkit.org/show_bug.cgi?id=101329
181860
181861        Reviewed by Kentaro Hara.
181862
181863        convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
181864        similar jobs with different code. We can merge them into one function.
181865
181866        As for the date format conversion, we have tokenized a format string and
181867        stored token objects into a vector. We skip token object generation and
181868        generate a LDML-compliant pattern string during parsing.
181869
181870        No new tests. This should make no behavior changes and
181871        WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
181872
181873        * platform/text/win/LocaleWin.cpp:
181874        (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
181875        convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
181876        convertWindowsTimeFormatToLDML.
181877        (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
181878        (WebCore::convertWindowsDateTimeFormat):
181879        Renamed from parseDateFormat, and supports time format symbols.
181880        (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
181881        (WebCore::LocaleWin::monthFormat): Ditto.
181882        (WebCore::LocaleWin::timeFormat): Ditto.
181883        (WebCore::LocaleWin::shortTimeFormat): Ditto.
181884        * platform/text/win/LocaleWin.h:
181885        (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
181886
1818872012-11-06  Elliott Sprehn  <esprehn@chromium.org>
181888
181889        Make Document::renderer faster by using the cached ptr for RenderView
181890        https://bugs.webkit.org/show_bug.cgi?id=101409
181891
181892        Reviewed by Eric Seidel.
181893
181894        In Bug 101277 I made Document::renderView() just return m_renderView instead
181895        of casting the result of renderer(). While this made renderView() cheaper it
181896        makes more sense to just make renderer() faster for Document pointers and
181897        go back to the out of line method in RenderView.h because lots of places in
181898        the code do document()->renderer().
181899
181900        No new tests, this is just a refactor.
181901
181902        * dom/Document.h:
181903        (WebCore::Document::renderer):
181904        * rendering/RenderView.h:
181905        (WebCore::Document::renderView):
181906
1819072012-11-06  Adam Barth  <abarth@webkit.org>
181908
181909        [V8] neuterBinding should remember the type of its argument
181910        https://bugs.webkit.org/show_bug.cgi?id=101413
181911
181912        Reviewed by Kentaro Hara.
181913
181914        This is a small part of the patch in
181915        https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
181916        separately to try to tease out what is causing the memory regression.
181917
181918        * bindings/v8/SerializedScriptValue.cpp:
181919        (WebCore):
181920        (WebCore::neuterBinding):
181921
1819222012-11-06  Alexey Proskuryakov  <ap@apple.com>
181923
181924        Clean up which storage cookie jar functions use
181925        https://bugs.webkit.org/show_bug.cgi?id=101395
181926
181927        Reviewed by Brady Eidson.
181928
181929        * WebCore.exp.in:
181930        * platform/mac/WebCoreSystemInterface.h:
181931        * platform/mac/WebCoreSystemInterface.mm:
181932        Updated for two new WKSI functions.
181933
181934        * platform/CookieJar.h: Added explanatory comments.
181935
181936        * platform/mac/CookieJar.mm:
181937        (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
181938        already implements it.
181939        (WebCore::cookieRequestHeaderFieldValue): Ditto.
181940        (WebCore::setCookies): Ditto.
181941        (WebCore::cookiesEnabled): Ditto.
181942        (WebCore::getRawCookies): Ditto.
181943        (WebCore::deleteCookie): Ditto.
181944        (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
181945        exclusively. While it makes sense to bypass private storage session, default storage
181946        session (currently only used for testing on Mac) is never OK to bypass. Changed to
181947        use a WKSI function that supports both.
181948        (WebCore::deleteCookiesForHostname): Ditto.
181949        (WebCore::deleteAllCookies): Ditto.
181950
181951        * platform/network/cf/CookieJarCFNet.cpp:
181952        (WebCore::getHostnamesWithCookies):
181953        (WebCore::deleteCookiesForHostname):
181954        (WebCore::deleteAllCookies):
181955        Updated to match Foundation, so now these functions bypass private session.
181956
181957        * platform/network/cf/CookieStorageCFNet.cpp:
181958        (WebCore::currentCFHTTPCookieStorage): Updated a comment.
181959        (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
181960        for non-private session (or null if that would be an NSHTTPCookieStorage).        
181961        (WebCore::startObservingCookieChanges): We do not want to observe private cookies
181962        here, and we certainly don't want a mismatch between start/stop due to private
181963        browsing mode changes.
181964        (WebCore::stopObservingCookieChanges): Ditto.
181965
181966        * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
181967
1819682012-11-06  Huang Dongsung  <luxtella@company100.net>
181969
181970        Build fix. r133601 broke the Windows build.
181971        https://bugs.webkit.org/show_bug.cgi?id=101404
181972
181973        Reviewed by Noam Rosenthal.
181974
181975        Only static const integral data members can be initialized within a class in the
181976        Windows, so we initialize static const double date members out of the class.
181977
181978        * platform/graphics/texmap/TextureMapper.cpp:
181979        (BitmapTexturePool):
181980        (WebCore):
181981
1819822012-11-06  Simon Fraser  <simon.fraser@apple.com>
181983
181984        -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
181985        https://bugs.webkit.org/show_bug.cgi?id=89287
181986
181987        Reviewed by Beth Dakin.
181988
181989        If the body had -webkit-background-clip: text, we'd fail to paint
181990        anything behind it, so would see garbage pixels.
181991        
181992        Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
181993        on the renderer that paints the root background.
181994        
181995        Added some new pixel tests for combinations of html and body transform
181996        and backgrounds; earlier versions of the patch broke some of these tests.
181997
181998        Tests: fast/backgrounds/background-clip-text-on-body.html
181999               fast/backgrounds/transformed-body-background.html
182000               fast/backgrounds/transformed-body-html-background.html
182001               fast/backgrounds/transformed-html-body-background.html
182002
182003        * rendering/RenderView.cpp:
182004        (WebCore::rendererObscuresBackground): Broke up the single condition
182005        into early 'false' returns when possible. We need to also check whether
182006        the renderer that actually paints the background (which might be the body)
182007        will fill it; background-clip: text does not.
182008        (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
182009        actually check the root renderer, so that we can reliably get to the renderer
182010        that mains the root background.
182011
1820122012-11-06  Stephen White  <senorblanco@chromium.org>
182013
182014        Implement save and restore for a bunch of InternalSettings state
182015        https://bugs.webkit.org/show_bug.cgi?id=101394
182016
182017        Reviewed by Dirk Pranke.
182018
182019        In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
182020        flaky tests by saving and restoring the InternalSettings state
182021        EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
182022        internal settings state which is being set by layout tests but not
182023        saved and restored.  It turns out there about 15 calls.
182024
182025        This patch takes care of five of them, mostly compositing-related.
182026        The others I was either not sure about, or were already at least
182027        being reset to known values by the testing harness.
182028
182029        Hopefully this will alleviate some further test flakiness.
182030
182031        * testing/InternalSettings.cpp:
182032        * testing/InternalSettings.h:
182033
1820342012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
182035
182036        Fix build warning in RenderLayer.cpp caused by r133628
182037        https://bugs.webkit.org/show_bug.cgi?id=101401
182038
182039        Reviewed by Simon Fraser.
182040
182041        The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
182042        so define it only that case for removing -Wunused-function warning
182043
182044        * rendering/RenderLayer.cpp:
182045        (WebCore):
182046
1820472012-11-06  Hans Muller  <hmuller@adobe.com>
182048
182049        [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
182050        https://bugs.webkit.org/show_bug.cgi?id=100763
182051
182052        Reviewed by Darin Adler.
182053
182054        The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
182055        assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
182056        If this is not true, then we construct the polygon's edges in reverse.
182057
182058        To determine if the vertices are in clockwise order, we compare the slope
182059        of the line between the top,left vertex and its previous vertex, with the
182060        the slope of the line of vertices before and after the top,left vertex.
182061        If the slope of the latter is greater, then top,left vertex is located
182062        to its left, and the vertices are clockwise.
182063
182064        Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
182065
182066        * rendering/ExclusionPolygon.cpp:
182067        (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
182068        (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
182069        (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
182070
1820712012-11-06  Tiancheng Jiang  <tijiang@rim.com>
182072
182073        [BlackBerry] Update BB10 form theme.
182074        https://bugs.webkit.org/show_bug.cgi?id=100760
182075
182076        Reviewed by Rob Buis.
182077
182078        RIM PR 238123
182079        Internal Reviewed by Chris Hutten-Czapski
182080        BB10 selection theme use slice image function to draw selection button,
182081        any border-radius setting other than 0 will make the button corner
182082        clipped. Always set button border-radius: 0 for BB10 theme.
182083
182084        * css/themeBlackBerry.css:
182085        (select[size][multiple]):
182086        (select[size="1"]):
182087
1820882012-11-06  Elliott Sprehn  <esprehn@chromium.org>
182089
182090        Remove branch from inside RenderObject::view now that renderer() is more expensive
182091        https://bugs.webkit.org/show_bug.cgi?id=101277
182092
182093        Reviewed by Eric Seidel.
182094
182095        It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
182096        can be a performance regression. Now that we no longer keep a separate pointer for rare data
182097        in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
182098        faster and removing the branch.
182099
182100        This is a 1% improvement on Parser/html5-full-render.html
182101
182102        This also cleans up the code because it turns out we don't need to have RenderObject::view() in
182103        RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
182104        it easier to find this method as it exists in the right header file now.
182105
182106        No new tests, this is just a refactor.
182107
182108        * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
182109        * dom/Document.cpp:
182110        (WebCore::Document::Document):
182111        (WebCore::Document::setRenderer):
182112        (WebCore):
182113        * dom/Document.h:
182114        (WebCore::Document::renderView):
182115        (Document):
182116        * rendering/RenderObject.h:
182117        (WebCore::RenderObject::view):
182118        * rendering/RenderView.h:
182119        (WebCore):
182120
1821212012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
182122
182123        Unreviewed, rolling out r133526.
182124        http://trac.webkit.org/changeset/133526
182125        https://bugs.webkit.org/show_bug.cgi?id=101388
182126
182127        May have caused 15% memory regression in Chromium (Requested
182128        by jsbell|gardener on #webkit).
182129
182130        * UseV8.cmake:
182131        * WebCore.gypi:
182132        * bindings/scripts/CodeGeneratorV8.pm:
182133        (GenerateHeader):
182134        (GenerateNormalAttrGetter):
182135        (GenerateConstructorCallback):
182136        (GenerateNamedConstructorCallback):
182137        (GenerateToV8Converters):
182138        (GetDomMapFunction):
182139        (GetDomMapName):
182140        * bindings/scripts/test/V8/V8Float64Array.h:
182141        (WebCore::V8Float64Array::wrap):
182142        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
182143        (WebCore::V8TestActiveDOMObject::wrap):
182144        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
182145        (WebCore::V8TestCustomNamedGetter::wrap):
182146        * bindings/scripts/test/V8/V8TestEventConstructor.h:
182147        (WebCore::V8TestEventConstructor::wrap):
182148        * bindings/scripts/test/V8/V8TestEventTarget.h:
182149        (WebCore::V8TestEventTarget::wrap):
182150        * bindings/scripts/test/V8/V8TestException.h:
182151        (WebCore::V8TestException::wrap):
182152        * bindings/scripts/test/V8/V8TestInterface.h:
182153        (WebCore::V8TestInterface::wrap):
182154        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
182155        (WebCore::V8TestMediaQueryListListener::wrap):
182156        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
182157        (WebCore::V8TestNamedConstructor::wrap):
182158        * bindings/scripts/test/V8/V8TestNode.cpp:
182159        (WebCore::V8TestNode::constructorCallback):
182160        (WebCore::V8TestNode::wrapSlow):
182161        * bindings/scripts/test/V8/V8TestObj.cpp:
182162        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
182163        * bindings/scripts/test/V8/V8TestObj.h:
182164        (WebCore::V8TestObj::wrap):
182165        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
182166        (WebCore::V8TestSerializedScriptValueInterface::wrap):
182167        * bindings/v8/DOMDataStore.cpp:
182168        (WebCore::DOMDataStore::DOMDataStore):
182169        (WebCore::DOMDataStore::~DOMDataStore):
182170        (WebCore::DOMDataStore::current):
182171        (WebCore::DOMDataStore::reportMemoryUsage):
182172        * bindings/v8/DOMDataStore.h:
182173        (WebCore::DOMDataStore::domNodeMap):
182174        (WebCore::DOMDataStore::domObjectMap):
182175        (DOMDataStore):
182176        * bindings/v8/DOMWrapperMap.h:
182177        (WebCore):
182178        (DOMWrapperMap):
182179        (WebCore::DOMWrapperMap::~DOMWrapperMap):
182180        (WebCore::DOMWrapperHashMap::remove):
182181        * bindings/v8/DOMWrapperWorld.h:
182182        * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
182183        (WebCore):
182184        (IntrusiveDOMWrapperMap):
182185        (WebCore::IntrusiveDOMWrapperMap::weakCallback):
182186        * bindings/v8/ScriptProfiler.cpp:
182187        * bindings/v8/SerializedScriptValue.cpp:
182188        (WebCore::neuterBinding):
182189        * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
182190        (WebCore):
182191        (WebCore::getDOMNodeMap):
182192        (WebCore::getDOMObjectMap):
182193        * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
182194        (WebCore):
182195        * bindings/v8/V8DOMWindowShell.cpp:
182196        * bindings/v8/V8DOMWrapper.cpp:
182197        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
182198        (WebCore):
182199        * bindings/v8/V8DOMWrapper.h:
182200        (V8DOMWrapper):
182201        (WebCore::V8DOMWrapper::getCachedWrapper):
182202        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
182203        * bindings/v8/V8GCController.cpp:
182204        * bindings/v8/V8NPObject.cpp:
182205        * bindings/v8/WorkerContextExecutionProxy.cpp:
182206        * bindings/v8/WorkerScriptController.cpp:
182207        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
182208        (WebCore::v8HTMLImageElementConstructorCallback):
182209
1822102012-11-06  Alexey Proskuryakov  <ap@apple.com>
182211
182212        Some cookie code cleanup
182213        https://bugs.webkit.org/show_bug.cgi?id=101375
182214
182215        Reviewed by Dan Bernstein.
182216
182217        * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
182218        on in Mac port, but didn't add explanatory comments yet, because this is different
182219        in some ports.
182220
182221        * platform/mac/CookieJar.mm:
182222        (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
182223        supported OS X versions.
182224        (WebCore::filterCookies): Use -isHTTPOnly directly.
182225        (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
182226        (WebCore::cookieRequestHeaderFieldValue): Ditto.
182227        (WebCore::setCookies): Assert that no more than one cookie was created from one
182228        Set-Cookie header, document.cookie can only be used to set one cookie at a time.
182229        (WebCore::getRawCookies): Removed useless local variables.
182230
182231        * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
182232
182233        * platform/network/HTTPHeaderMap.h: Added a FIXME.
182234
1822352012-11-06  John Griggs  <jgriggs@rim.com>
182236
182237        Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
182238        https://bugs.webkit.org/show_bug.cgi?id=100378
182239
182240        Reviewed by Eric Carlson.
182241
182242        Implement this method for BlackBerry platform.
182243
182244        New test: LayoutTests/media/progress-events-generated-correctly.html
182245
182246        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
182247        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
182248        (WebCore::MediaPlayerPrivate::didLoadingProgress):
182249        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
182250        (MediaPlayerPrivate):
182251
1822522012-11-06  Adam Barth  <abarth@webkit.org>
182253
182254        DOMImplementation should use ScriptWrappable
182255        https://bugs.webkit.org/show_bug.cgi?id=101279
182256
182257        Reviewed by Eric Seidel.
182258
182259        This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
182260        bindings automatically detect the presence of this base class and use
182261        it to optimize getting and setting JavaScript wrappers.
182262
182263        This patch is a 23% progression on Bindings/document-implementation for
182264        the V8 bindings and a 69% progression for the JSC bindings.
182265
182266        * dom/DOMImplementation.h:
182267
1822682012-11-06  Benjamin Poulain  <benjamin@webkit.org>
182269
182270        Speed up TransformationMatrix::multiply() on modern ARM
182271        https://bugs.webkit.org/show_bug.cgi?id=101084
182272
182273        Reviewed by Gavin Barraclough.
182274
182275        The main improvements are:
182276        -Store the full source matrix in the registers d16 to d31. This way we avoid going
182277         back and forth to memory to use the operands.
182278         Since the full matrix is in register, we can also directly modify the memory of m_matrix,
182279         we no longer need the temporary matrix memcopied at the end.
182280        -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
182281        -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
182282        -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
182283
182284        Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
182285
182286        * platform/graphics/transforms/TransformationMatrix.cpp:
182287        (WebCore::TransformationMatrix::multiply):
182288        * platform/graphics/transforms/TransformationMatrix.h:
182289        (TransformationMatrix):
182290
1822912012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
182292
182293        Unreviewed, rolling out r133529 and r133562.
182294        http://trac.webkit.org/changeset/133529
182295        http://trac.webkit.org/changeset/133562
182296        https://bugs.webkit.org/show_bug.cgi?id=101371
182297
182298        Caused 15% memory regression on Chromium page cyclers
182299        (Requested by jsbell|gardener on #webkit).
182300
182301        * platform/text/LineBreakIteratorPoolICU.h:
182302        (WebCore::LineBreakIteratorPool::take):
182303        (WebCore::LineBreakIteratorPool::put):
182304        (LineBreakIteratorPool):
182305        * platform/text/TextBreakIterator.cpp:
182306        (WebCore::acquireLineBreakIterator):
182307        * platform/text/TextBreakIterator.h:
182308        (WebCore):
182309        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
182310        (WebCore::LazyLineBreakIterator::get):
182311        (WebCore::LazyLineBreakIterator::reset):
182312        (LazyLineBreakIterator):
182313        * platform/text/TextBreakIteratorICU.cpp:
182314        (WebCore::acquireLineBreakIterator):
182315        (WebCore::releaseLineBreakIterator):
182316        * platform/text/gtk/TextBreakIteratorGtk.cpp:
182317        (WebCore::setUpIterator):
182318        (WebCore::acquireLineBreakIterator):
182319        * platform/text/wince/TextBreakIteratorWinCE.cpp:
182320        (WebCore::acquireLineBreakIterator):
182321        * rendering/RenderBlockLineLayout.cpp:
182322        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
182323        * rendering/RenderText.cpp:
182324        (WebCore::RenderText::computePreferredLogicalWidths):
182325        * rendering/RenderText.h:
182326        (WebCore):
182327        * rendering/break_lines.cpp:
182328        (WebCore):
182329        (WebCore::isBreakableSpace):
182330        (WebCore::needsLineBreakIterator):
182331        (WebCore::nextBreakablePosition):
182332        (WebCore::nextBreakablePositionIgnoringNBSP):
182333        * rendering/break_lines.h:
182334        (WebCore):
182335        (WebCore::isBreakable):
182336
1823372012-11-06  Peter Beverloo  <peter@chromium.org>
182338
182339        [Chromium] Enable the JavaScript i18n API for Android
182340        https://bugs.webkit.org/show_bug.cgi?id=101357
182341
182342        Reviewed by Adam Barth.
182343
182344        Remove the conditional dependency on the v8-i18n API. The library is now
182345        always available in a Chromium for Android checkout.
182346
182347        * WebCore.gyp/WebCore.gyp:
182348
1823492012-11-06  Adam Barth  <abarth@webkit.org>
182350
182351        ScriptWrappable should work for more than just Node
182352        https://bugs.webkit.org/show_bug.cgi?id=101319
182353
182354        Reviewed by Eric Seidel.
182355
182356        This patch generalizes the inline cached wrapper code path to work with
182357        all subclasses of ScriptWrappable, not just Node.
182358
182359        * bindings/js/JSDOMBinding.h:
182360        (WebCore::setInlineCachedWrapper):
182361        (WebCore::getInlineCachedWrapper):
182362        (WebCore):
182363        (WebCore::clearInlineCachedWrapper):
182364        (WebCore::cacheWrapper):
182365        * bindings/js/JSNodeCustom.h:
182366
1823672012-11-06  Tiancheng Jiang  <tijiang@rim.com>
182368
182369        [BlackBerry] Update BB10 form theme.
182370        https://bugs.webkit.org/show_bug.cgi?id=100760
182371
182372        Reviewed by Rob Buis.
182373
182374        Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
182375        change which break media control and vertical slider.
182376
182377        RIM PR 236993
182378        Internal Reviewed by Jeff Rogers.
182379
182380        * platform/blackberry/RenderThemeBlackBerry.cpp:
182381        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
182382        (WebCore::RenderThemeBlackBerry::paintSliderThumb):
182383
1823842012-11-06  Michael Saboff  <msaboff@apple.com>
182385
182386        canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
182387        https://bugs.webkit.org/show_bug.cgi?id=101105
182388
182389        Reviewed by Darin Adler.
182390
182391        Turned canonicalizedTitle() into a templated function based on character type.
182392        Changed call in updateTitle() to check the bitness of the title string to call
182393        the right template flavor of canonicalizedTitle().
182394        Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
182395        and made TextEncoding::displayBuffer() a templated function as well.
182396
182397        No new tests needed, as functionality is unchanged.
182398
182399        * dom/Document.cpp:
182400        (WebCore::canonicalizedTitle):
182401        (WebCore::Document::updateTitle):
182402        (WebCore::Document::displayBufferModifiedByEncodingInternal):
182403        * dom/Document.h:
182404        (WebCore::Document::displayBufferModifiedByEncoding):
182405        * platform/text/TextEncoding.h:
182406        (TextEncoding):
182407        (WebCore::TextEncoding::displayBuffer):
182408
1824092012-11-05  Simon Fraser  <simon.fraser@apple.com>
182410
182411        Fix RenderGeometryMap assertion when layers are scrolled during layout
182412        https://bugs.webkit.org/show_bug.cgi?id=101292
182413
182414        Reviewed by Beth Dakin.
182415
182416        When we set RenderLayer scroll positions as part of layout, we don't want
182417        to update compositing layers right away. Updating compositing layers
182418        requires that the entire layer tree has been updated from renderers,
182419        so that the geometry of all RenderLayers can be trusted. When this state
182420        was violated, RenderGeometryMap asserts.
182421        
182422        Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
182423        tells us that we're doing layout. A full update of the compositing layers
182424        will happen later anyway.
182425
182426        Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
182427
182428        * rendering/RenderLayer.cpp:
182429        (WebCore::frameViewFromLayer):
182430        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
182431
1824322012-11-06  Michael Saboff  <msaboff@apple.com>
182433
182434        quoteCSSString() always creates a 16 bit string
182435        https://bugs.webkit.org/show_bug.cgi?id=101004
182436
182437        Reviewed by Darin Adler.
182438
182439        Added a new templated helper based on character type from the logic of quoteCSSString() to process
182440        the argument string based on its native bitness.
182441
182442        Functionality covered by existing tests.
182443
182444        * css/CSSParser.cpp:
182445        (WebCore::quoteCSSStringInternal):
182446        (WebCore::quoteCSSString):
182447
1824482012-11-06  Andras Becsi  <andras.becsi@digia.com>
182449
182450        [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
182451        https://bugs.webkit.org/show_bug.cgi?id=99715
182452
182453        Reviewed by Jocelyn Turcotte.
182454
182455        Add a bool that indicates if the content had an explicit
182456        initial-scale in the viewport meta tag.
182457
182458        * dom/ViewportArguments.cpp:
182459        (WebCore::computeViewportAttributes):
182460        * dom/ViewportArguments.h:
182461        (ViewportAttributes):
182462
1824632012-11-06  Mike West  <mkwst@chromium.org>
182464
182465        CSP 1.1: Tweak the script interface to match the spec.
182466        https://bugs.webkit.org/show_bug.cgi?id=101321
182467
182468        Reviewed by Adam Barth.
182469
182470       This patch brings WebKit in line with the changes made to the spec in
182471       https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
182472       Specifically, the following:
182473
182474       - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
182475       - Converted the following to read-only boolean attributes:
182476         - 'allowsEval'
182477         - 'allowsInlineScript'
182478         - 'allowsInlineStyle'
182479         - 'isActive'
182480
182481        These changes only have effect for ports with CSP_NEXT enabled.
182482
182483        Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
182484               http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
182485
182486        * dom/Document.idl:
182487        * page/DOMSecurityPolicy.idl:
182488            Tweaking the IDL files to match the new definition of the
182489            functionlity in the spec.
182490
1824912012-11-06  Andrey Lushnikov  <lushnikov@google.com>
182492
182493        Added console.clear() method
182494
182495        Web Inspector: add console.clear()
182496        https://bugs.webkit.org/show_bug.cgi?id=101021
182497
182498        Reviewed by Vsevolod Vlasov.
182499
182500        Adds native implementation of console.clear
182501
182502        Test: inspector/console/console-clear-function.html
182503
182504        * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
182505        * inspector/ConsoleMessage.cpp:
182506        (WebCore::messageTypeValue): Adds ClearMessageType
182507        * inspector/Inspector.json:
182508        * inspector/InspectorConsoleAgent.cpp:
182509        (WebCore::InspectorConsoleAgent::addMessageToConsole):
182510        * inspector/front-end/ConsoleMessage.js:
182511        (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
182512        * inspector/front-end/ConsoleModel.js:
182513        * inspector/front-end/inspector.css:
182514        (.console-info): Adds style for the 'console was cleared' message
182515        * page/Console.cpp: backend binging for console.clear()
182516        (WebCore::Console::clear):
182517        (WebCore):
182518        * page/Console.h:
182519        (Console):
182520        * page/Console.idl: Adds 'clear' message to protocol
182521        * page/ConsoleTypes.h:
182522
1825232012-11-06  Aaron Colwell  <acolwell@chromium.org>
182524
182525        Heap-buffer-overflow in WebCore::TextTrackCueList::add
182526        https://bugs.webkit.org/show_bug.cgi?id=101018
182527
182528        Reviewed by Eric Carlson.
182529
182530        Added an extra check to avoid using a negative array index when a cue
182531        is added to the beginning of the list.
182532
182533        Test case added to LayoutTests/media/track/track-add-remove-cue.html.
182534
182535        * html/track/TextTrackCueList.cpp:
182536        (WebCore::TextTrackCueList::add):
182537
1825382012-11-06  Aaron Colwell  <acolwell@chromium.org>
182539
182540        Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
182541        https://bugs.webkit.org/show_bug.cgi?id=100981
182542
182543        Reviewed by Eric Carlson.
182544
182545        Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
182546        an HTMLTrackElement is removed from an HTMLMediaElement so that references to
182547        TextTrackCues are removed from m_cueTree.
182548
182549        Test: media/track/track-remove-by-setting-innerHTML.html
182550
182551        * html/HTMLMediaElement.cpp:
182552        (WebCore::HTMLMediaElement::willRemoveTrack):
182553
1825542012-10-23  Stephen White  <senorblanco@chromium.org>
182555
182556        [skia] Implement reference (url) filters on composited layers.
182557        https://bugs.webkit.org/show_bug.cgi?id=100142
182558
182559        Reviewed by James Robinson.
182560
182561        Covered by css3/filters/effect-reference-hw.html
182562
182563        * WebCore.gyp/WebCore.gyp:
182564        * WebCore.gypi:
182565        Add new files.
182566        * WebCore.xcodeproj/project.pbxproj:
182567        Mark FilterEffect.h as "private".
182568        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
182569        (WebCore::GraphicsLayerChromium::setFilters):
182570        Use the new SkImageFilter builder and setLayer() infrastructure, but
182571        only if there's a reference filter in the chain.
182572        * platform/graphics/filters/FEBlend.h:
182573        * platform/graphics/filters/FEColorMatrix.h:
182574        * platform/graphics/filters/FEGaussianBlur.h:
182575        * platform/graphics/filters/FELighting.h:
182576        * platform/graphics/filters/FEMorphology.h:
182577        * platform/graphics/filters/FilterEffect.h:
182578        (WebCore::FilterEffect::createImageFilter):
182579        Add createImageFilter() factory function for building SkImageFilters.
182580        * platform/graphics/filters/FilterOperation.h:
182581        (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
182582        (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
182583        Add a FilterEffect member to ReferenceFilterOperation, and accessors
182584        for it.
182585        * platform/graphics/filters/skia/FEBlendSkia.cpp:
182586        (WebCore::FEBlend::createImageFilter):
182587        Implement SkImageFilter building for FEBlend filter.
182588        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
182589        (WebCore::createColorFilter):
182590        (WebCore::FEColorMatrix::platformApplySkia):
182591        Refactor creation of SkColorFilter from an FEColorMatrix filter.
182592        (WebCore::FEColorMatrix::createImageFilter):
182593        Implement SkImageFilter building for FEColorMatrix filter.
182594        * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
182595        (WebCore::FEGaussianBlur::createImageFilter):
182596        Implement SkImageFilter building for FEGaussianBlur filter.
182597        * platform/graphics/filters/skia/FELightingSkia.cpp:
182598        (WebCore::FELighting::createImageFilter):
182599        Implement SkImageFilter building for FELighting filters.
182600        * platform/graphics/filters/skia/FEMorphologySkia.cpp:
182601        (WebCore::FEMorphology::createImageFilter):
182602        Implement SkImageFilter building for FEMorphology filter.
182603        * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
182604        (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
182605        (WebCore::SkiaImageFilterBuilder::build):
182606        * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
182607        Implement new helper class for building an SkImageFilter DAG from
182608        a FilterEffect DAG.  Can also build from FilterOperations list.
182609        * rendering/FilterEffectRenderer.cpp:
182610        (WebCore::FilterEffectRenderer::build):
182611        When building FilterEffects from a reference filter, also store the
182612        generated DAG on the ReferenceFilterOperation itself.
182613        * rendering/RenderLayer.cpp:
182614        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
182615        Even when in composited mode, if there's a reference filter in the 
182616        chain, build the FilterEffect DAG from it.
182617
1826182012-11-06  Max Feil  <mfeil@rim.com>
182619
182620        [BlackBerry] Automatically go fullscreen on video play
182621        https://bugs.webkit.org/show_bug.cgi?id=101100
182622
182623        Reviewed by Eric Carlson.
182624
182625        There is a requirement to have HTML5 video automatically enter
182626        fullscreen when a video starts playing (PR131774). This change
182627        implements this feature, with restrictions. The main restriction
182628        is adherence to WebKit's philosophy of only entering fullscreen
182629        due to a user gesture. This is important in order to avoid
182630        pop-up advertisements and other unwanted fullscreen content.
182631        One consequence of this is that video elements with the autoplay
182632        attribute will not automatically enter fullscreen.
182633
182634        Other caveats:
182635        - This feature applies only to "small screen" devices where
182636        automatically going fullscreen makes more sense.
182637        - Fullscreen will only be entered automatically when the
182638        video is played from the beginning (current time is zero).
182639        It is assumed that if the user is resuming play from a paused
182640        state and is not in fullscreen mode, then they exited fullscreen
182641        mode intentionally.
182642
182643        Test: platform/blackberry/media/video-automatic-fullscreen.html
182644
182645        * html/HTMLMediaElement.cpp:
182646        (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
182647        (WebCore):
182648        (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
182649        (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
182650        * html/HTMLMediaElement.h:
182651        (HTMLMediaElement):
182652        * platform/graphics/MediaPlayer.h:
182653        (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
182654        (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
182655        (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
182656        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
182657        (WebCore::MediaPlayerPrivate::play):
182658        (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
182659        (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
182660        (WebCore):
182661        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
182662        (MediaPlayerPrivate):
182663
1826642012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
182665
182666        [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
182667        https://bugs.webkit.org/show_bug.cgi?id=101215
182668
182669        Reviewed by Gustavo Noronha Silva.
182670
182671        Save the misspelled location and length of the string to the default values (-1, 0)
182672        at the beginning of the checkSpellingOfString method.
182673        It assumes that the words are spelled correctly and early return of method doesn't
182674        cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
182675
182676        * platform/text/enchant/TextCheckerEnchant.cpp:
182677        (TextCheckerEnchant::checkSpellingOfString):
182678
1826792012-11-06  Huang Dongsung  <luxtella@company100.net>
182680
182681        [TexMap] Remove unused textures in the texture pool.
182682        https://bugs.webkit.org/show_bug.cgi?id=100706
182683
182684        Reviewed by Noam Rosenthal.
182685
182686        Currently, we do not remove textures in the texture pool of
182687        TextureMapper. The texture pool is destroyed when TextureMapper is
182688        destroyed. It means the texture pool consumes texture memory until its
182689        destruction. This patch removes textures if the textures have been not
182690        used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
182691
182692        Changing cache policy is not testable in layout tests.
182693
182694        * platform/graphics/texmap/TextureMapper.cpp:
182695        (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
182696        (WebCore::BitmapTexturePoolEntry::markUsed):
182697        (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
182698        (BitmapTexturePoolEntry):
182699        (WebCore):
182700        (BitmapTexturePool):
182701        (WebCore::BitmapTexturePool::BitmapTexturePool):
182702        (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
182703        (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
182704        (WebCore::BitmapTexturePool::acquireTexture):
182705        (WebCore::TextureMapper::acquireTextureFromPool):
182706        (WebCore::TextureMapper::TextureMapper):
182707        (WebCore::TextureMapper::~TextureMapper):
182708        * platform/graphics/texmap/TextureMapper.h:
182709        (WebCore):
182710        (TextureMapper):
182711
1827122012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
182713
182714        Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
182715        https://bugs.webkit.org/show_bug.cgi?id=101067
182716
182717        Reviewed by Yury Semikhatsky.
182718
182719        Plain vanilla instrumentation for CachedMetadata class.
182720
182721        * CMakeLists.txt:
182722        * GNUmakefile.list.am:
182723        * Target.pri:
182724        * WebCore.gypi:
182725        * WebCore.vcproj/WebCore.vcproj:
182726        * WebCore.xcodeproj/project.pbxproj:
182727        * loader/CachedMetadata.cpp: Added.
182728        (WebCore):
182729        (WebCore::CachedMetadata::reportMemoryUsage):
182730        * loader/CachedMetadata.h:
182731        (CachedMetadata):
182732
1827332012-11-06  Alexei Filippov  <alph@chromium.org>
182734
182735        Web Inspector: report physical memory really committed for JS heap in NMI
182736        https://bugs.webkit.org/show_bug.cgi?id=101335
182737
182738        Some OSes (e.g. Linux) perform lazy commits of requested memory.
182739        Because of that the committed memory may not retain any physical
182740        memory until the very first access to the committed chunk.
182741        That led to JS heap reported more physical memory than was currently
182742        in use.
182743
182744        Reviewed by Vsevolod Vlasov.
182745
182746        * bindings/v8/ScriptGCEvent.cpp:
182747        (WebCore::ScriptGCEvent::getHeapSize):
182748
1827492012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
182750
182751        Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
182752        https://bugs.webkit.org/show_bug.cgi?id=100595
182753
182754        Reviewed by Yury Semikhatsky.
182755
182756        Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
182757        not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
182758        SourceFileId is now used across BreakpointManager to specify file name.
182759        And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
182760
182761        * inspector/front-end/BreakpointManager.js:
182762        (WebInspector.BreakpointManager.sourceFileId):
182763        (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
182764        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
182765        (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
182766        (WebInspector.BreakpointManager.Breakpoint):
182767        (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
182768        (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
182769        (set WebInspector.BreakpointManager.Storage.Item):
182770
1827712012-11-06  Keishi Hattori  <keishi@webkit.org>
182772
182773        The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
182774        https://bugs.webkit.org/show_bug.cgi?id=101304
182775
182776        Reviewed by Kent Tamura.
182777
182778        The name Rect conflicts with CSS Rect.
182779
182780        No new tests. Just renaming.
182781
182782        * Resources/pagepopups/pickerCommon.js:
182783        (Rectangle): Renamed from Rect.
182784        (Rectangle.prototype.toString):
182785        (Rectangle.intersection):
182786        (adjustWindowRect):
182787        (hideWindow):
182788
1827892012-11-06  Kentaro Hara  <haraken@chromium.org>
182790
182791        Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
182792        https://bugs.webkit.org/show_bug.cgi?id=101190
182793
182794        Reviewed by Adam Barth.
182795
182796        To guarantee that we never stores NULL pointers to V8 internal
182797        fields, we want to insert ASSERT()s to setDOMWrapper().
182798        This patch replaces setDOMWrapper() that intentionally
182799        passes NULL pointers with clearDOMWrapper().
182800
182801        No tests. No change in behavior.
182802
182803        * bindings/v8/V8DOMWrapper.h:
182804        (V8DOMWrapper):
182805        (WebCore::V8DOMWrapper::clearDOMWrapper):
182806        * bindings/v8/V8NPObject.cpp:
182807        (WebCore::forgetV8ObjectForNPObject):
182808
1828092012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
182810
182811        Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
182812        https://bugs.webkit.org/show_bug.cgi?id=101064
182813
182814        Reviewed by Yury Semikhatsky.
182815
182816        Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
182817        Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
182818        NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
182819
182820        Test: http/tests/inspector/network/request-name-path.html
182821
182822        * inspector/front-end/NetworkPanel.js:
182823        (WebInspector.NetworkLogView.prototype._matchRequest):
182824        (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
182825        (WebInspector.NetworkLogView.prototype.performFilter):
182826        (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
182827        (WebInspector.NetworkDataGridNode.NameComparator):
182828        * inspector/front-end/NetworkRequest.js:
182829        (WebInspector.NetworkRequest.prototype.set url):
182830        (WebInspector.NetworkRequest.prototype.name):
182831        (WebInspector.NetworkRequest.prototype.path):
182832        (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
182833        * inspector/front-end/ParsedURL.js:
182834        (WebInspector.ParsedURL):
182835        (WebInspector.ParsedURL.prototype.get displayName):
182836        (WebInspector.ParsedURL.prototype.dataURLDisplayName):
182837        (WebInspector.ParsedURL.prototype.isAboutBlank):
182838        (WebInspector.ParsedURL.prototype.isDataURL):
182839
1828402012-11-05  Pavel Feldman  <pfeldman@chromium.org>
182841
182842        Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
182843        https://bugs.webkit.org/show_bug.cgi?id=101200
182844
182845        Reviewed by Yury Semikhatsky.
182846
182847        - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
182848        - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
182849        - Extracted spectrum's css into a separate file
182850
182851        * WebCore.gypi:
182852        * WebCore.vcproj/WebCore.vcproj:
182853        * inspector/front-end/DOMExtension.js:
182854        (Element.prototype.positionAt):
182855        (Size):
182856        (Element.prototype.measurePreferredSize):
182857        * inspector/front-end/HeapSnapshotView.js:
182858        (WebInspector.HeapSnapshotView.prototype.willHide):
182859        (WebInspector.HeapSnapshotView.prototype._helpClicked):
182860        * inspector/front-end/Popover.js:
182861        (WebInspector.Popover):
182862        (WebInspector.Popover.prototype.show):
182863        (WebInspector.Popover.prototype.showView):
182864        (WebInspector.Popover.prototype._innerShow):
182865        (WebInspector.Popover.prototype.hide):
182866        (WebInspector.Popover.prototype.dispose):
182867        (WebInspector.Popover.prototype._positionElement):
182868        * inspector/front-end/Spectrum.js:
182869        (WebInspector.Spectrum.alphaDrag):
182870        (WebInspector.Spectrum):
182871        (WebInspector.Spectrum.prototype.wasShown):
182872        (WebInspector.SpectrumPopupHelper):
182873        (WebInspector.SpectrumPopupHelper.prototype.spectrum):
182874        (WebInspector.SpectrumPopupHelper.prototype.toggle):
182875        (WebInspector.SpectrumPopupHelper.prototype.show):
182876        (WebInspector.SpectrumPopupHelper.prototype.reposition):
182877        (WebInspector.SpectrumPopupHelper.prototype.hide):
182878        (WebInspector.ColorSwatch):
182879        (WebInspector.ColorSwatch.prototype.setColorString):
182880        * inspector/front-end/StylesSidebarPane.js:
182881        (WebInspector.StylesSidebarPane):
182882        (WebInspector.StylesSidebarPane.prototype.update):
182883        (WebInspector.StylesSidebarPane.prototype.willHide):
182884        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
182885        * inspector/front-end/View.js:
182886        (WebInspector.View.prototype.measurePreferredSize):
182887        * inspector/front-end/WebKit.qrc:
182888        * inspector/front-end/elementsPanel.css:
182889        (.image-preview-container img):
182890        * inspector/front-end/inspector.css:
182891        (.swatch):
182892        (.swatch-inner):
182893        (.swatch-inner:hover):
182894        * inspector/front-end/spectrum.css: Added.
182895        (.spectrum-container):
182896        (.spectrum-top):
182897        (.spectrum-color):
182898        (.spectrum-display-value):
182899        (.spectrum-hue):
182900        (.spectrum-fill):
182901        (.spectrum-range-container):
182902        (.spectrum-range-container *):
182903        (.spectrum-range-container label):
182904        (.spectrum-range-container input):
182905        (.spectrum-dragger, .spectrum-slider):
182906        (.spectrum-sat):
182907        (.spectrum-val):
182908        (.spectrum-dragger):
182909        (.spectrum-slider):
182910        (.spectrum-container .swatch):
182911
1829122012-11-06  Takashi Sakamoto  <tasak@google.com>
182913
182914        removeAttribute('style') not working in certain circumstances
182915        https://bugs.webkit.org/show_bug.cgi?id=99295
182916
182917        Reviewed by Ryosuke Niwa.
182918
182919        After web developers did style.XXXX=YYYY for some element, the inline
182920        style should be always removable by using "removeAttribute('style')".
182921        Currently it depends on whether web developers invokes
182922        getAttribute('style'), setAttribute('style), and so on. E.g. once they
182923        invoke getAttribute('style'), removeAttribute('style') works. This is
182924        very confusing behavior.
182925        Looking at Firefox browser, removeAttribute('style') always removes
182926        all inline styles.
182927
182928        Test: fast/css/remove-attribute-style.html
182929
182930        * css/StylePropertySet.cpp:
182931        (WebCore::StylePropertySet::clear):
182932        Added a new method to remove all style properties.
182933        (WebCore):
182934        * css/StylePropertySet.h:
182935        (StylePropertySet):
182936        * dom/Element.cpp:
182937        (WebCore::Element::removeAttribute):
182938        If 'style' is given but the element has no style attribute, the old
182939        code did nothing. However, if the element is styled element and has any
182940        inline styles, the inline styles should be removed. So invoke
182941        StyledElement::removeAllInlineStyleProperties and if any inline styles
182942        are removed, invoke style recalc, too.
182943        * dom/StyledElement.cpp:
182944        (WebCore::StyledElement::removeAllInlineStyleProperties):
182945        Added a new method to remove all inline style propeties. If any inline
182946        style is removed, invoke inlineStyleChanged() to force style recalc.
182947        (WebCore):
182948        * dom/StyledElement.h:
182949        (StyledElement):
182950
1829512012-11-06  Alexei Filippov  <alph@chromium.org>
182952
182953        Web Inspector: dim size bar for expanded item in native memory snapshot grid
182954        https://bugs.webkit.org/show_bug.cgi?id=101062
182955
182956        Reviewed by Yury Semikhatsky.
182957
182958        * inspector/front-end/nativeMemoryProfiler.css:
182959        (.native-snapshot-view .data-grid .expanded div.size-bar):
182960
1829612012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
182962
182963        [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
182964        https://bugs.webkit.org/show_bug.cgi?id=100826
182965
182966        Reviewed by Hajime Morita.
182967
182968        We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
182969        2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
182970        We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
182971        shadowPseudoId.
182972
182973        In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
182974        UAShadowRoot. However, we will disable them later.
182975
182976        Test: fast/dom/shadow/shadow-pseudo-id.html
182977
182978        * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
182979        * css/CSSParser.cpp:
182980        (WebCore::CSSParser::updateSpecifiersWithElementName):
182981        (WebCore::CSSParser::updateSpecifiers):
182982        * css/CSSParserValues.h:
182983        (WebCore::CSSParserSelector::isCustomPseudoElement):
182984        (CSSParserSelector):
182985        * css/CSSSelector.cpp:
182986        (WebCore::CSSSelector::pseudoId):
182987        (WebCore::CSSSelector::parsePseudoType):
182988        (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
182989        (WebCore::CSSSelector::extractPseudoType):
182990        * css/CSSSelector.h:
182991        (CSSSelector):
182992        (WebCore::CSSSelector::isCustomPseudoElement):
182993        (WebCore):
182994        * css/CSSSelectorList.cpp:
182995        (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
182996        UNKNOWN before. i.e. It contians all three types for now.
182997        (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
182998        * css/CSSSelectorList.h:
182999        (CSSSelectorList):
183000        * css/RuleSet.cpp:
183001        (WebCore::RuleSet::addRule):
183002        * css/SelectorChecker.cpp:
183003        (WebCore::SelectorChecker::checkSelector):
183004        * dom/Element.cpp:
183005        (WebCore::Element::setShadowPseudoId):
183006        * dom/SelectorQuery.cpp:
183007        (WebCore::SelectorQueryCache::add):
183008
1830092012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
183010
183011        [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
183012        https://bugs.webkit.org/show_bug.cgi?id=100922
183013
183014        Reviewed by Hajime Morita.
183015
183016        We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
183017        We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
183018
183019        For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
183020
183021        Test: fast/dom/shadow/has-elementshadow.html
183022
183023        * dom/ShadowRoot.cpp:
183024        (WebCore::ShadowRoot::ShadowRoot):
183025        (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
183026        is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
183027        (WebCore):
183028        (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
183029        * dom/ShadowRoot.h:
183030        (ShadowRoot):
183031        (WebCore::ShadowRoot::registerElementShadow):
183032        (WebCore::ShadowRoot::unregisterElementShadow):
183033        (WebCore::ShadowRoot::hasElementShadow):
183034        (WebCore::ShadowRoot::countElementShadow):
183035        * testing/Internals.cpp:
183036        (WebCore::Internals::countElementShadow):
183037        (WebCore):
183038        * testing/Internals.h:
183039        (Internals):
183040        * testing/Internals.idl:
183041
1830422012-11-06  Pavel Feldman  <pfeldman@chromium.org>
183043
183044        Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
183045        https://bugs.webkit.org/show_bug.cgi?id=101030
183046
183047        Reviewed by Vsevolod Vlasov.
183048
183049        * inspector/front-end/inspector.js:
183050        (WebInspector.loaded.WebInspector.socket.onclose):
183051        (WebInspector.loaded):
183052        (WebInspector.detached):
183053
1830542012-11-06  Alexander Pavlov  <apavlov@chromium.org>
183055
183056        Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
183057        https://bugs.webkit.org/show_bug.cgi?id=100666
183058
183059        Reviewed by Pavel Feldman.
183060
183061        * inspector/front-end/SettingsScreen.js:
183062        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
183063
1830642012-11-02  Yury Semikhatsky  <yurys@chromium.org>
183065
183066        Web Inspector: JavaScript web workers debugging crashes
183067        https://bugs.webkit.org/show_bug.cgi?id=101065
183068
183069        Reviewed by Alexander Pavlov.
183070
183071        Clear m_pageInspector when page inspector instance is deleted.
183072        Disable worker inspection when front-end disconnects.
183073
183074        Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
183075
183076        * inspector/InspectorWorkerAgent.cpp:
183077        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
183078        WorkerMessagingProxy so that it can clear pointer to the channel.
183079
1830802012-11-06  Nikita Vasilyev  <me@elv1s.ru>
183081
183082        Web Inspector: Console: wrap long URLs
183083        https://bugs.webkit.org/show_bug.cgi?id=100970
183084
183085        Reviewed by Yury Semikhatsky.
183086
183087        * inspector/front-end/inspector.css:
183088        (.console-message-url):
183089
1830902012-11-05  Keishi Hattori  <keishi@webkit.org>
183091
183092        Introduce Day class to calendar picker
183093        https://bugs.webkit.org/show_bug.cgi?id=101194
183094
183095        Reviewed by Kent Tamura.
183096
183097        Introducing Day class so day, week, and month can all be abstracted. To
183098        solve some of the complexity around which months to show, I made
183099        CalendarPicker in charge of it. This also made YearMonthController and
183100        DaysTable independent of each other.
183101
183102        No new tests. Covered by existing calendar-picker-*.html tests.
183103
183104        * Resources/pagepopups/calendarPicker.js:
183105        (createUTCDate): Allow negative month or date.
183106        (parseDateString): Will return Day or Month depending on string format.
183107        (Day): Represents a day.
183108        (Day.parse): Parse yyyy-mm-dd.
183109        (Day.createFromDate): Creates a Day that contains a datetime.
183110        (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
183111        (Day.prototype.equals): Returns true if they are the same.
183112        (Day.prototype.previous): Returns the previous day.
183113        (Day.prototype.next): Returns the next day.
183114        (Day.prototype.startDate): Returns the datetime that is the start of this day.
183115        (Day.prototype.endDate): Returns the datetime that is the start of this day.
183116        (Day.prototype.valueOf): Returns the milliseconds since epoch.
183117        (Day.prototype.toString): Returns an ISO date string.
183118        (Month): Fix bug in calculating month from value.
183119        (Month.prototype.endDate): Use Day.Maximum.
183120        (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
183121        (CalendarPicker.prototype._layout):
183122        (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
183123        (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
183124        (CalendarPicker.prototype.showMonth): Shows the given month. If the month is out of the range of months that should be shown, we clamp the month and show that.
183125        (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
183126        (YearMonthController): Removed _currentMonth.
183127        (YearMonthController.prototype.attachTo):
183128        (YearMonthController.prototype.setMonth):
183129        (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
183130        (YearMonthController.prototype.moveRelatively):
183131        (DaysTable):
183132        (CalendarPicker.prototype._stepMismatch): Made private.
183133        (CalendarPicker.prototype._outOfRange): Made private.
183134        (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
183135        (DaysTable.prototype._renderMonth):
183136        (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
183137        (DaysTable.prototype.selectRange): Select a range.
183138        (DaysTable.prototype._maybeSetPreviousMonth):
183139        (DaysTable.prototype._maybeSetNextMonth):
183140        (DaysTable.prototype._handleKey):
183141        (CalendarPicker.prototype._handleBodyKeyDown):
183142
1831432012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
183144
183145        Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
183146        https://bugs.webkit.org/show_bug.cgi?id=101009
183147
183148        This fix requires the most recent version of harfbuzz-ng.
183149        EFL port uses version 0.9.2, which doesn't have the fix.
183150
183151        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
183152        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
183153
1831542012-11-05  Glenn Adams  <glenn@skynav.com>
183155
183156        Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
183157        https://bugs.webkit.org/show_bug.cgi?id=101281
183158
183159        Reviewed by Ryosuke Niwa.
183160
183161        Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
183162        caused by http://trac.webkit.org/changeset/133529.
183163
183164        See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
183165
183166        * platform/text/TextBreakIterator.cpp:
183167        (WebCore::acquireLineBreakIterator):
183168        * platform/text/gtk/TextBreakIteratorGtk.cpp:
183169        (WebCore::setUpIterator):
183170        (WebCore::acquireLineBreakIterator):
183171        * platform/text/wince/TextBreakIteratorWinCE.cpp:
183172        (WebCore::acquireLineBreakIterator):
183173
1831742012-11-05  Hayato Ito  <hayato@chromium.org>
183175
183176        Use switch/case statements instead of if/elseif in CSSSelector.cpp
183177        https://bugs.webkit.org/show_bug.cgi?id=100470
183178
183179        Reviewed by Ryosuke Niwa.
183180
183181        Minor clean up. We can get compiler warnings if we use switch/case statements here.
183182
183183        No changes to functionality, so no new tests.
183184
183185        * css/CSSSelector.cpp:
183186        (WebCore::CSSSelector::selectorText):
183187
1831882012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
183189
183190        [Chromium] Unicode combining diacritical aren't always combined on Linux
183191        https://bugs.webkit.org/show_bug.cgi?id=101009
183192
183193        Reviewed by Kent Tamura.
183194
183195        Add a space character to harfbuzzBuffer as pre-context. This will prevent
183196        harfbuzz from inserting dotted-circle.
183197
183198        Test: fast/text/international/combining-marks-position.html
183199
183200        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
183201        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
183202
1832032012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
183204
183205        LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
183206        https://bugs.webkit.org/show_bug.cgi?id=101201
183207
183208        Reviewed by Hajime Morita.
183209
183210        When we use a bit field for enum, Windows compiler seems returning some wrong value.
183211        We would like to avoid using a bit field for enum value.
183212
183213        * dom/ShadowRoot.cpp:
183214        (WebCore::ShadowRoot::create):
183215        * dom/ShadowRoot.h:
183216        (WebCore::ShadowRoot::type):
183217        (WebCore::ShadowRoot::setType):
183218        (ShadowRoot):
183219
1832202012-11-05  Benjamin Poulain  <benjamin@webkit.org>
183221
183222        TransformOperationInfo's constructor is really slow
183223        https://bugs.webkit.org/show_bug.cgi?id=101143
183224
183225        Reviewed by Sam Weinig.
183226
183227        TransformOperationInfo() was slow for a few reasons:
183228        -The function used a lot of branches. The basic assumption is that the input
183229         is incorrect, thus every character is an opportunity to fail.
183230        -Every branch had to be tested in order. If the name was matching the last if()
183231         all the previous names had to be tested.
183232        -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
183233         every time.
183234        -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
183235
183236        This can be fixed by either
183237        1) Compute the lowercase name, then match it to a HashMap.
183238        2) Write a tree to quickly reduce the number of branch needed.
183239
183240        The first solution is not viable because 16bits strings case folding
183241        remains an important bottleneck.
183242
183243        Instead, the code now splits the names on simple characteristics to
183244        match any name in a limited number of branches.
183245
183246        The assumption is the input is correct, so & is used instead of && to
183247        avoid branches in favor of conditional instructions.
183248
183249        * css/CSSParser.cpp:
183250        (WebCore::TransformOperationInfo::TransformOperationInfo):
183251
1832522012-11-05  Simon Fraser  <simon.fraser@apple.com>
183253
183254        RenderGeometryMap asserts when loading http://en.softonic.com/mac
183255        https://bugs.webkit.org/show_bug.cgi?id=101284
183256        <rdar://problem/11540560>
183257
183258        Reviewed by Tim Horton.
183259
183260        When FrameView::layout() calls document->updateStyleIfNeeded(), we
183261        can be in a state where FrameView::needsLayout() is false. However,
183262        this is a bad time to update compositing layers, because we're about
183263        to do layout, which will require us to update them again soon anyway,
183264        and some RenderLayers may not have been sized or positioned yet.
183265        
183266        Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
183267        and toggling it around this call to updateStyleIfNeeded().
183268        Read this state in updateCompositingLayersAfterStyleChange(), which is
183269        now called unconditionally by recalcStyle(), but returns early
183270        if this flag is set, or layout is pending.
183271
183272        * dom/Document.cpp:
183273        (WebCore::Document::recalcStyle):
183274        * page/FrameView.cpp:
183275        (WebCore::FrameView::reset):
183276        (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
183277        (WebCore::FrameView::layout):
183278        * page/FrameView.h:
183279        (FrameView):
183280
1832812012-11-05  Beth Dakin  <bdakin@apple.com>
183282
183283        https://bugs.webkit.org/show_bug.cgi?id=101275
183284        Clean up ScrollingConstraints.h
183285
183286        Reviewed by Simon Fraser.
183287
183288        This class cleans up ScrollingConstraints.h by removing the constructors since the 
183289        compiler will generate those constructors for us anyway. The patch also makes the 
183290        two override functions private.
183291        * page/scrolling/ScrollingConstraints.h:
183292        (ViewportConstraints):
183293        (FixedPositionViewportConstraints):
183294        (StickyPositionViewportConstraints):
183295
1832962012-11-05  Simon Fraser  <simon.fraser@apple.com>
183297
183298        Make Document::updateStyleIfNeeded() non-virtual
183299        https://bugs.webkit.org/show_bug.cgi?id=101273
183300
183301        Reviewed by Eric Seidel.
183302
183303        Document::updateStyleIfNeeded() has been virtual like forever, but
183304        no-one ever overrides it, so make it non-virtual.
183305
183306        * dom/Document.h:
183307        (Document):
183308
1833092012-11-05  Philip Rogers  <pdr@google.com>
183310
183311        Unblock SVG external references
183312        https://bugs.webkit.org/show_bug.cgi?id=100635
183313
183314        Reviewed by Adam Barth.
183315
183316        This patch reverts r132849 and r132869 because the potential XSS issue
183317        turned out to not be an issue after all.
183318
183319        Covered by existing tests, many of which are re-whitelisted with this patch.
183320
183321        * loader/cache/CachedResourceLoader.cpp:
183322        (WebCore::CachedResourceLoader::canRequest):
183323
1833242012-11-05  Beth Dakin  <bdakin@apple.com>
183325
183326        https://bugs.webkit.org/show_bug.cgi?id=101001
183327        Pages with position:fixed elements should still be able to scroll on 
183328        the scrolling thread
183329        -and corresponding-
183330        <rdar://problem/10857315>
183331
183332        Reviewed by Simon Fraser.
183333
183334        This patch adds two new classes. ScrollingStateFixedNode is a class 
183335        to represent fixed nodes in the state tree, and 
183336        ScrollingTreeFixedNode represents fixed node in the scrolling tree 
183337        over on the scrolling thread.
183338        * WebCore.xcodeproj/project.pbxproj:
183339
183340        When we are (non-programatically) scrolling fixed objects on the 
183341        scrolling thread, we do not want to do any work here. 
183342        * page/FrameView.cpp:
183343        (WebCore::FrameView::updateFixedElementsAfterScrolling):
183344
183345        Whenever we sync the position of the main frame's layer, we have to 
183346        do the same for scrolling tree children.
183347        * page/scrolling/ScrollingCoordinator.cpp:
183348        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
183349
183350        New ScrollingNodeType -- FixedNode, yay! And two new functions 
183351        specific to dealing with FixedNodes.
183352        * page/scrolling/ScrollingCoordinator.h:
183353        (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
183354        (WebCore::ScrollingCoordinator::syncChildPositions):
183355
183356        This is the new class that represents fixed nodes in the state tree. 
183357        All of the changed properties are stored within 
183358        FixedPositionViewportConstraints.
183359        * page/scrolling/ScrollingStateFixedNode.cpp: Added.
183360        (WebCore):
183361        (WebCore::ScrollingStateFixedNode::create):
183362        (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
183363        (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
183364        (WebCore::ScrollingStateFixedNode::updateConstraints):
183365        (WebCore::ScrollingStateFixedNode::dumpProperties):
183366        * page/scrolling/ScrollingStateFixedNode.h: Added.
183367        (WebCore):
183368        (ScrollingStateFixedNode):
183369        (WebCore::ScrollingStateFixedNode::viewportConstraints):
183370        (WebCore::toScrollingStateFixedNode):
183371
183372        Make sure to create the right type of clone for each node.
183373        * page/scrolling/ScrollingStateNode.cpp:
183374        (WebCore::ScrollingStateNode::cloneAndReset):
183375
183376        Now that m_children may be anything other than null, I found this 
183377        bug. We encounter it when the parameter to removeChild is this and we 
183378        want to remove all of our children. In that case, this is obviously 
183379        not found in its own child array.
183380        (WebCore::ScrollingStateNode::removeChild):
183381
183382        ScrollingStateNode now caches the GraphicsLayer in addition to the 
183383        PlatformLayer. This will allow us to sync the GraphicsLayer position 
183384        at the appropriate times.
183385        * page/scrolling/ScrollingStateNode.h:
183386        (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
183387        (WebCore::ScrollingStateNode::graphicsLayer):
183388        (ScrollingStateNode):
183389
183390        Handle fixed nodes.
183391        * page/scrolling/ScrollingTree.cpp:
183392        (WebCore::ScrollingTree::updateTreeFromStateNode):
183393
183394        New function parentScrollPositionDidChange() is called on children 
183395        when the parent has scrolled.
183396        * page/scrolling/ScrollingTreeNode.h:
183397        (ScrollingTreeNode):
183398        * page/scrolling/ScrollingTreeScrollingNode.h:
183399        (ScrollingTreeScrollingNode):
183400
183401        Return true for supportsFixedPositionLayers(). 
183402        * page/scrolling/mac/ScrollingCoordinatorMac.h:
183403        (ScrollingCoordinatorMac):
183404
183405        Handle fixed nodes.
183406        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
183407        (WebCore::ScrollingCoordinatorMac::attachToStateTree):
183408
183409        Now that m_children can be non-null I caught this pre-existing bug 
183410        where we would come times remove a node without updating the HashMap. 
183411        This patch fixes that by consolidating the removal into one function.
183412        (WebCore::ScrollingCoordinatorMac::removeNode):
183413        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
183414        (WebCore::ScrollingCoordinatorMac::clearStateTree):
183415
183416        Update the GraphicsLayers to reflect the new position that the 
183417        Scrolling thread has moved the underlying CALayer to already.
183418        (WebCore::ScrollingCoordinatorMac::syncChildPositions):
183419
183420        Pass new constraints over to the appropriate state node.
183421        (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
183422
183423        Cache the GraphicsLayer in addition to the PlatformLayer.
183424        * page/scrolling/mac/ScrollingStateNodeMac.mm:
183425        (WebCore::ScrollingStateNode::setScrollLayer):
183426
183427        Here is the new class that represents fixed nodes over on the 
183428        scrolling thread. 
183429        * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
183430        (WebCore):
183431        (ScrollingTreeFixedNode):
183432        * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
183433        (WebCore):
183434        (WebCore::ScrollingTreeFixedNode::create):
183435        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
183436        (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
183437        (WebCore::ScrollingTreeFixedNode::update):
183438
183439        This is where the magic happens. re-position the fixed object when 
183440        its parent has scrolled so that it appears to have not moved at all.
183441        (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
183442
183443        Whenever we change the position of a scrolling layer, tell our 
183444        children.
183445        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
183446        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
183447
183448        Handle fixed nodes.
183449        * rendering/RenderLayerBacking.cpp:
183450        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
183451
183452        detachFromScrollingCoordinator() needs to be public so that it can be 
183453        called from RenderLayerCompositor for fixed nodes.
183454        * rendering/RenderLayerBacking.h:
183455        (RenderLayerBacking):
183456
183457        RenderLayerCompositor takes control of attaching and detaching fixed 
183458        nodes to/from the ScrollingCoordinator. 
183459        * rendering/RenderLayerCompositor.cpp:
183460        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
183461        (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
183462        (WebCore::RenderLayerCompositor::updateBacking):
183463        (WebCore::RenderLayerCompositor::layerWillBeRemoved):
183464        (WebCore::RenderLayerCompositor::didMoveOnscreen):
183465        (WebCore::RenderLayerCompositor::willMoveOffscreen):
183466        (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
183467        (WebCore::isRootmostFixedOrStickyLayer):
183468        (WebCore):
183469        (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
183470        (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
183471        (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
183472        (WebCore::RenderLayerCompositor::computeViewportConstraints):
183473        (WebCore::nearestScrollingCoordinatorAncestor):
183474        (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
183475        (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
183476        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
183477        (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
183478        * rendering/RenderLayerCompositor.h:
183479        (WebCore):
183480        (RenderLayerCompositor):
183481
1834822012-11-05  Geoffrey Garen  <ggaren@apple.com>
183483
183484        Cleaned up the Font class in preparation for optimizing kerning and ligatures
183485        https://bugs.webkit.org/show_bug.cgi?id=101258
183486
183487        Reviewed by Dan Bernstein.
183488
183489        * platform/graphics/Font.h:
183490        (WebCore::Font::typesettingFeatures):
183491        (WebCore::Font::computeTypesettingFeatures): Compute and cache our
183492        typesetting features instead of recomputing each time a client asks
183493        for them. This makes the class interface easier to use because
183494        "typesettingFeatures()" can appear in more than one expression without
183495        undue performance cost. This may also be a small speedup to code that
183496        calls typesettingFeatures() often for other reasons.
183497
183498        * platform/graphics/Font.cpp:
183499        (WebCore::Font::Font):
183500        (WebCore::Font::operator=):
183501        (WebCore::Font::update): Ditto.
183502
183503        (WebCore::Font::width): Unforked the width() function so all width-related
183504        interfaces can benefit from optimization without duplicate code.
183505
1835062012-11-05  Peng Huang  <penghuang@google.com>
183507
183508        Webkit does not handle some media keys correctly On Linux gtk platform.
183509        https://bugs.webkit.org/show_bug.cgi?id=101221
183510
183511        Reviewed by Alexey Proskuryakov.
183512
183513        Add media keyboard support on Linux gtk platform.
183514
183515        * platform/chromium/KeyCodeConversionGtk.cpp:
183516        (WebCore::windowsKeyCodeForKeyEvent):
183517
1835182012-11-05  Glenn Adams  <glenn@skynav.com>
183519
183520        Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
183521        https://bugs.webkit.org/show_bug.cgi?id=89235
183522
183523        Reviewed by Eric Seidel.
183524
183525        See also wiki documentation at:
183526        [1] http://trac.webkit.org/wiki/LineBreaking
183527        [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
183528
183529        Web exposed changes include:
183530        (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
183531        (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
183532        (3) See [2] above for details regarding interpretation.
183533
183534        Tests: css3/line-break/line-break-auto-centered.html
183535               css3/line-break/line-break-auto-half-kana.html
183536               css3/line-break/line-break-auto-hyphens.html
183537               css3/line-break/line-break-auto-inseparables.html
183538               css3/line-break/line-break-auto-iteration-marks.html
183539               css3/line-break/line-break-auto-postfixes.html
183540               css3/line-break/line-break-auto-prefixes.html
183541               css3/line-break/line-break-auto-sound-marks.html
183542               css3/line-break/line-break-loose-centered.html
183543               css3/line-break/line-break-loose-half-kana.html
183544               css3/line-break/line-break-loose-hyphens.html
183545               css3/line-break/line-break-loose-inseparables.html
183546               css3/line-break/line-break-loose-iteration-marks.html
183547               css3/line-break/line-break-loose-postfixes.html
183548               css3/line-break/line-break-loose-prefixes.html
183549               css3/line-break/line-break-loose-sound-marks.html
183550               css3/line-break/line-break-normal-centered.html
183551               css3/line-break/line-break-normal-half-kana.html
183552               css3/line-break/line-break-normal-hyphens.html
183553               css3/line-break/line-break-normal-inseparables.html
183554               css3/line-break/line-break-normal-iteration-marks.html
183555               css3/line-break/line-break-normal-postfixes.html
183556               css3/line-break/line-break-normal-prefixes.html
183557               css3/line-break/line-break-normal-sound-marks.html
183558               css3/line-break/line-break-strict-centered.html
183559               css3/line-break/line-break-strict-half-kana.html
183560               css3/line-break/line-break-strict-hyphens.html
183561               css3/line-break/line-break-strict-inseparables.html
183562               css3/line-break/line-break-strict-iteration-marks.html
183563               css3/line-break/line-break-strict-postfixes.html
183564               css3/line-break/line-break-strict-prefixes.html
183565               css3/line-break/line-break-strict-sound-marks.html
183566
183567        * platform/text/LineBreakIteratorPoolICU.h:
183568        (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
183569        Add static function to construct ICU locale argument (also used as pool key) with additional
183570        break keyword.
183571        (WebCore::LineBreakIteratorPool::take):
183572        (WebCore::LineBreakIteratorPool::put):
183573        (LineBreakIteratorPool):
183574        Remove direct dependency from ICU library (and types), moving that dependency into
183575        new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
183576        Update to take line break mode into account.
183577        Create (and cache) different break iterators depending on line break mode (in addition to locale),
183578        which entails expanding pool entry key format to optionally append "@break=" +
183579        "loose"|"normal"|"strict" keyword to locale string.
183580
183581        * platform/text/TextBreakIterator.h:
183582        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
183583        (WebCore::LazyLineBreakIterator::isLooseCJKMode):
183584        (WebCore::LazyLineBreakIterator::get):
183585        (WebCore::LazyLineBreakIterator::reset):
183586        (LazyLineBreakIterator):
183587        Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
183588        Add state member to indicate line break mode.
183589
183590        * platform/text/TextBreakIteratorICU.cpp:
183591        (WebCore::acquireLineBreakIterator):
183592        Use new line break mode when making iterator from pool.
183593        Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
183594        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
183595        (WebCore::releaseLineBreakIterator):
183596        Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
183597        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
183598        (WebCore::isCJKLocale):
183599        New functions for determining if CJK rules apply.
183600        (WebCore::openLineBreakIterator):
183601        New function for abstracting opening of ICU style line break iterator. This is now
183602        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
183603        This function also takes into account the line break mode.
183604        (WebCore::closeLineBreakIterator):
183605        (WebCore::mapLineIteratorModeToRules):
183606        New function for abstracting closing of ICU style line break iterator. This is now
183607        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
183608
183609        * rendering/RenderBlockLineLayout.cpp:
183610        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
183611        Pass line break iterator mode flag when reseting LazyLineBreakIterator.
183612        Add looseMode local variable to prevent need for computing under isBreakable().
183613
183614        * rendering/RenderText.cpp:
183615        (WebCore::mapLineBreakToIteratorMode):
183616        Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
183617        and RenderBlock::LineBreaker::nextLineBreak.
183618        (WebCore::RenderText::computePreferredLogicalWidths):
183619        Ensure (lazy line) breakIterator is initialized for line break mode.
183620        Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
183621
183622        * rendering/RenderText.h:
183623        (WebCore):
183624        Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
183625        and RenderBlock::LineBreaker::nextLineBreak.
183626
183627        * rendering/break_lines.cpp:
183628        (WebCore):
183629        Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
183630        to include loose mode parameter.
183631        (WebCore::isBreakableSpace):
183632        Add externally specified loose mode parameter to prevent need to invoke line break iterator
183633        accessor method on each invocation. Use new loose mode flavors off NBP functions.
183634        (WebCore::needsLineBreakIterator):
183635        Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
183636        to prevent regression to non loose mode path.
183637        (WebCore::nextBreakablePosition):
183638        (WebCore::nextBreakablePositionIgnoringNBSP):
183639        Use new template parameter enums described above.
183640        (WebCore::nextBreakablePositionIgnoringNBSPLoose):
183641        (WebCore::nextBreakablePositionLoose):
183642        Introduce two additional 'loose' mode flavors of NBP template expansions.
183643
183644        * rendering/break_lines.h:
183645        (WebCore):
183646        (WebCore::isBreakable):
183647        Add externally specified loose mode parameter to prevent need to invoke line break iterator
183648        accessor method on each invocation.
183649
1836502012-11-05  Adam Barth  <abarth@webkit.org>
183651
183652        webkitRegionLayoutUpdate is incorrectly named
183653        https://bugs.webkit.org/show_bug.cgi?id=100335
183654
183655        Reviewed by Ojan Vafai.
183656
183657        DOM event names are supposed to be lower case.
183658
183659        * dom/EventNames.h:
183660        (WebCore):
183661        * dom/WebKitNamedFlow.cpp:
183662        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
183663
1836642012-11-05  Adam Barth  <abarth@webkit.org>
183665
183666        [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
183667        https://bugs.webkit.org/show_bug.cgi?id=101110
183668
183669        Reviewed by Kentaro Hara.
183670
183671        This patch generalizes our support for storing wrappers in DOM objects
183672        to be usable for more than just nodes. After this patch, any object
183673        with a ScriptWrappable base class will have its wrapper stored inline
183674        in the object in the main world.
183675
183676        To achieve this goal, this patch hides the details of how we map from
183677        objects to wrappers inside DOMDataStore and then removes the
183678        IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
183679        DOMWrapperMap base class and make all of these functions non-virtual.
183680
183681        * UseV8.cmake:
183682        * WebCore.gypi:
183683            - Remove deleted files.
183684        * bindings/scripts/CodeGeneratorV8.pm:
183685        (GenerateHeader):
183686        (GenerateNormalAttrGetter):
183687        (GenerateConstructorCallback):
183688        (GenerateNamedConstructorCallback):
183689        (GenerateToV8Converters):
183690            - Rather than grabbing at the DOMWrapperMap directly, we now ask
183691              the DOMDataStore to do this work for us.
183692        * bindings/scripts/test/V8/V8Float64Array.h:
183693        (WebCore::V8Float64Array::wrap):
183694        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
183695        (WebCore::V8TestActiveDOMObject::wrap):
183696        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
183697        (WebCore::V8TestCustomNamedGetter::wrap):
183698        * bindings/scripts/test/V8/V8TestEventConstructor.h:
183699        (WebCore::V8TestEventConstructor::wrap):
183700        * bindings/scripts/test/V8/V8TestEventTarget.h:
183701        (WebCore::V8TestEventTarget::wrap):
183702        * bindings/scripts/test/V8/V8TestException.h:
183703        (WebCore::V8TestException::wrap):
183704        * bindings/scripts/test/V8/V8TestInterface.h:
183705        (WebCore::V8TestInterface::wrap):
183706        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
183707        (WebCore::V8TestMediaQueryListListener::wrap):
183708        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
183709        (WebCore::V8TestNamedConstructor::wrap):
183710        * bindings/scripts/test/V8/V8TestNode.cpp:
183711        (WebCore::V8TestNode::constructorCallback):
183712        (WebCore::V8TestNode::wrapSlow):
183713        * bindings/scripts/test/V8/V8TestObj.cpp:
183714        (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
183715        * bindings/scripts/test/V8/V8TestObj.h:
183716        (WebCore::V8TestObj::wrap):
183717        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
183718        (WebCore::V8TestSerializedScriptValueInterface::wrap):
183719        * bindings/v8/DOMDataStore.cpp:
183720            - Updated run-bindings-test results.
183721        (WebCore::DOMDataStore::DOMDataStore):
183722        (WebCore::DOMDataStore::~DOMDataStore):
183723            - Simplify constructor and destructor now that there is only one
183724              hash map.
183725        (WebCore::DOMDataStore::current):
183726            - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
183727              need to handle it here.
183728        (WebCore::DOMDataStore::reportMemoryUsage):
183729            - Simplfied now that there is only one wrapper map.
183730        (WebCore::DOMDataStore::weakCallback):
183731            - Moved from IntrusiveDOMWrapperMap.h
183732        * bindings/v8/DOMDataStore.h:
183733        (WebCore::DOMDataStore::get):
183734        (WebCore::DOMDataStore::set):
183735            - These functions now handle the intrusive case with a branch
183736              rather than with a virtual function call. In many cases, the
183737              branch can be optimized away by the compiler when the overloaded
183738              inline functions are inlined.
183739        (WebCore::DOMDataStore::wrapperIsStoredInObject):
183740            - Overloaded functions to determine whether to store the wrapper
183741              inside the object or in the hashmap.
183742        (WebCore::DOMDataStore::getWrapperFromObject):
183743        (WebCore::DOMDataStore::storeWrapperInObject):
183744            - Overloaded functions to get/set the wrapper from inside the
183745              object itself.
183746        * bindings/v8/DOMWrapperMap.h:
183747        (WebCore::DOMWrapperHashMap::get):
183748        (WebCore::DOMWrapperHashMap::set):
183749        (WebCore::DOMWrapperHashMap::clear):
183750        (WebCore::DOMWrapperHashMap::reportMemoryUsage):
183751        (WebCore::DOMWrapperHashMap::remove):
183752            - These functions are no longer virtual.
183753        * bindings/v8/DOMWrapperWorld.h:
183754        * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
183755        * bindings/v8/ScriptProfiler.cpp:
183756        * bindings/v8/SerializedScriptValue.cpp:
183757        (WebCore::neuterBinding):
183758            - We need to keep the type information slightly longer so that we
183759              look in the right wrapper map.
183760        * bindings/v8/V8DOMMap.cpp: Removed.
183761        * bindings/v8/V8DOMMap.h: Removed.
183762        * bindings/v8/V8DOMWindowShell.cpp:
183763        * bindings/v8/V8DOMWrapper.cpp:
183764        * bindings/v8/V8DOMWrapper.h:
183765        (WebCore::V8DOMWrapper::getCachedWrapper):
183766            - Defer this work to the store.
183767        (WebCore::V8DOMWrapper::setWrapperClass):
183768            - An overloaded function to set the right wrapper class.
183769        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
183770            - This function is now general enough to handle ever kind of object.
183771        * bindings/v8/V8GCController.cpp:
183772        * bindings/v8/V8NPObject.cpp:
183773        * bindings/v8/WorkerContextExecutionProxy.cpp:
183774        * bindings/v8/WorkerScriptController.cpp:
183775        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
183776        (WebCore::v8HTMLImageElementConstructorCallback):
183777            - Call the more general function (instead of the now-deleted specialized function).
183778
1837792012-11-05  Alexey Proskuryakov  <ap@apple.com>
183780
183781        Get rid of setCookieStoragePrivateBrowsingEnabled.
183782        https://bugs.webkit.org/show_bug.cgi?id=101247
183783
183784        Reviewed by Brady Eidson.
183785
183786        We were only doing anything here on Mac, and only because we couldn't know if
183787        sessions were in use. But sessions are always in use, and those obsolete changing
183788        cookie storage explicitly.
183789
183790        * platform/network/win/CookieStorageWin.cpp: Removed.
183791        * PlatformWinCE.cmake:
183792        * WebCore.gypi:
183793        No more CookieStorageWin.cpp with an empty implementation.
183794    
183795        * WebCore.exp.in:
183796        * platform/mac/WebCoreSystemInterface.h:
183797        * platform/mac/WebCoreSystemInterface.mm:
183798        We no longer need this WKSI function.
183799
183800        * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
183801        Removed the only call to setCookieStoragePrivateBrowsingEnabled().
183802
183803        * platform/network/CookieStorage.h:
183804        * platform/network/cf/CookieStorageCFNet.cpp:
183805        * platform/network/curl/CookieJarCurl.cpp:
183806        * platform/network/soup/CookieStorageSoup.cpp:
183807        * platform/qt/TemporaryLinkStubsQt.cpp:
183808        Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
183809
183810        * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
183811        that we should observe private storage while in private browsing mode. I don't think
183812        that it was correct - Safari doesn't display content of private storage, and thus
183813        doesn't need to know about changes.
183814        The removal of this function has an effect on WebKit1 clients that enable private
183815        browsing. We used to globally change cookie storage, even for loads not initiated
183816        by WebKit. Now we match API description: "If private browsing is enabled, WebKit
183817        will not store information about sites the user visits."
183818
1838192012-11-05  Florin Malita  <fmalita@chromium.org>
183820
183821        Crash when mixing layers, foreignObjects and SVG hidden containers
183822        https://bugs.webkit.org/show_bug.cgi?id=87297
183823
183824        Reviewed by Dirk Schulze.
183825
183826        Foreign objects may introduce content which requires layers, but layer creation is
183827        suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
183828        tree state. This patch prevents foreignObject renderer instantiation under
183829        RenderSVGHiddenContainers.
183830
183831        Test: svg/foreignObject/foreign-object-defs-crash.svg
183832
183833        * svg/SVGForeignObjectElement.cpp:
183834        (WebCore::SVGForeignObjectElement::rendererIsNeeded):
183835        (WebCore):
183836        * svg/SVGForeignObjectElement.h:
183837        (SVGForeignObjectElement):
183838
1838392012-11-05  Simon Fraser  <simon.fraser@apple.com>
183840
183841        Remove the unused m_fixedPositionedElements from RenderView
183842        https://bugs.webkit.org/show_bug.cgi?id=101251
183843
183844        Reviewed by Anders Carlsson.
183845
183846        m_fixedPositionedElements was completely unused. Remove it
183847        and the related typedef.
183848
183849        * rendering/RenderView.h:
183850        (RenderView):
183851
1838522012-11-05  Simon Fraser  <simon.fraser@apple.com>
183853
183854        Fix layer borders to cleaning appear and disappear on switching
183855        https://bugs.webkit.org/show_bug.cgi?id=101136
183856
183857        Reviewed by Sam Weinig.
183858
183859        GraphicsLayers decided whether to show layer borders based
183860        on a callback through the GraphicsLayerClient. This made it
183861        hard to manage state, resulting in a failure to cleanly
183862        hide layers when toggled off via the preference.
183863        
183864        Changed the layer border and repaint counter visibility to be bits
183865        stored on GraphicsLayer just like other properties, with getters
183866        and setters. RenderLayerBacking now updates these debug
183867        indicators when we update other compositing layer properties.
183868        
183869        In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
183870        in several places by setting the change flag DebugIndicatorsChanged
183871        for properties whose values affect the appearance of the debug border.
183872
183873        Removed the GraphicsLayerClient methods showDebugBorders() and
183874        showRepaintCounter() which are no longer required.
183875
183876        * platform/graphics/GraphicsLayer.cpp:
183877        (WebCore::GraphicsLayer::GraphicsLayer):
183878        (WebCore::GraphicsLayer::updateDebugIndicators):
183879        * platform/graphics/GraphicsLayer.h:
183880        (WebCore::GraphicsLayer::setShowDebugBorder):
183881        (WebCore::GraphicsLayer::isShowingDebugBorder):
183882        (WebCore::GraphicsLayer::setShowRepaintCounter):
183883        (WebCore::GraphicsLayer::isShowingRepaintCounter):
183884        (WebCore::GraphicsLayer::repaintCount):
183885        (WebCore::GraphicsLayer::incrementRepaintCount):
183886        * platform/graphics/GraphicsLayerClient.h:
183887        * platform/graphics/ca/GraphicsLayerCA.cpp:
183888        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
183889        (WebCore::GraphicsLayerCA::setMasksToBounds):
183890        (WebCore::GraphicsLayerCA::setDrawsContent):
183891        (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
183892        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
183893        (WebCore::GraphicsLayerCA::updateMasksToBounds):
183894        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
183895        (WebCore::GraphicsLayerCA::updateDebugBorder):
183896        (WebCore::GraphicsLayerCA::setShowDebugBorder):
183897        (WebCore::GraphicsLayerCA::setShowRepaintCounter):
183898        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
183899        (WebCore::GraphicsLayerCA::setupContentsLayer):
183900        (WebCore::GraphicsLayerCA::cloneLayer):
183901        * platform/graphics/ca/GraphicsLayerCA.h:
183902        (GraphicsLayerCA):
183903        (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
183904        * rendering/RenderLayerBacking.cpp:
183905        (WebCore::RenderLayerBacking::updateDebugIndicators):
183906        * rendering/RenderLayerBacking.h:
183907        (RenderLayerBacking):
183908        * rendering/RenderLayerCompositor.cpp:
183909        (WebCore::RenderLayerCompositor::updateBacking):
183910        * rendering/RenderLayerCompositor.h:
183911        (RenderLayerCompositor):
183912
1839132012-11-05  Genevieve Mak  <gmak@rim.com>
183914
183915        [BLACKBERRY] Update touch code to reflect touch refactor
183916        https://bugs.webkit.org/show_bug.cgi?id=101227
183917
183918        Reviewed by Rob Buis.
183919
183920        PR #2706785
183921        Reviewed Internally by: Mike Lattanzio
183922
183923        * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
183924        (WebCore::touchEventType):
183925        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
183926
1839272012-11-05  Alok Priyadarshi  <alokp@chromium.org>
183928
183929        [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
183930        https://bugs.webkit.org/show_bug.cgi?id=99083
183931
183932        Reviewed by Stephen White.
183933
183934        Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
183935
183936        No new tests needed. This patch does not change anything functionally.
183937
183938        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
183939        (WebCore::GraphicsLayerChromium::setContentsOpaque):
183940        (WebCore::GraphicsLayerChromium::paint):
183941        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
183942        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
183943        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
183944        (OpaqueRectTrackingContentLayerDelegate):
183945
1839462012-11-05  Stephen White  <senorblanco@chromium.org>
183947
183948        [chromium] Build fix after http://trac.webkit.org/changeset/133488.
183949        Removed a deleted file.  Unreviewed.
183950
183951        * WebCore.gypi:
183952
1839532012-11-05  Kentaro Hara  <haraken@chromium.org>
183954
183955        [V8] toV8(impl) should return null if impl is 0
183956        https://bugs.webkit.org/show_bug.cgi?id=101206
183957
183958        Reviewed by Adam Barth.
183959
183960        toV8(impl) should return null if impl is 0. However,
183961        V8HTMLCollection::toV8() does not have the null check.
183962        All other toV8()s return null.
183963
183964        No tests. I think there will be no call path that hits the change.
183965
183966        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
183967        (WebCore::toV8):
183968
1839692012-11-05  David Barton  <dbarton@mathscribe.com>
183970
183971        Implement SimpleFontData::platformBoundsForGlyph on skia
183972        https://bugs.webkit.org/show_bug.cgi?id=101115
183973
183974        Reviewed by Eric Seidel.
183975
183976        The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
183977
183978        Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
183979
183980        * platform/graphics/skia/SimpleFontDataSkia.cpp:
183981        (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
183982
1839832012-11-05  Andreas Kling  <kling@webkit.org>
183984
183985        Decouple Attr logic from ElementAttributeData.
183986        <http://webkit.org/b/101126>
183987
183988        Reviewed by Antti Koivisto.
183989
183990        Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
183991        This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
183992        can be shared by any number of Elements at a given time.
183993
183994        Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
183995        "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
183996
183997        * dom/Element.h:
183998        * dom/ElementAttributeData.h:
183999        * dom/Element.cpp:
184000        (WebCore::attrNodeListMap):
184001        (WebCore::attrNodeListForElement):
184002        (WebCore::ensureAttrNodeListForElement):
184003        (WebCore::removeAttrNodeListForElement):
184004        (WebCore::findAttrNodeInList):
184005        (WebCore::Element::~Element):
184006        (WebCore::Element::detachAttribute):
184007        (WebCore::Element::setAttributeNode):
184008        (WebCore::Element::removeAttributeInternal):
184009        (WebCore::Element::getAttributeNode):
184010        (WebCore::Element::getAttributeNodeNS):
184011        (WebCore::Element::normalizeAttributes):
184012        (WebCore::Element::attrIfExists):
184013        (WebCore::Element::ensureAttr):
184014        (WebCore::Element::detachAttrNodeFromElementWithValue):
184015        (WebCore::Element::detachAllAttrNodesFromElement):
184016        (WebCore::Element::cloneAttributesFromElement):
184017
184018            Move everything Attr-related into Element.cpp while simplifying some loops and remove
184019            conditions that are no longer needed as they used to depend on having an attributeData().
184020
184021        * dom/Node.h:
184022        (WebCore::Node::hasSyntheticAttrChildNodes):
184023        (WebCore::Node::setHasSyntheticAttrChildNodes):
184024
184025            Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
184026
184027        * dom/Attr.cpp:
184028        (WebCore::Attr::detachFromElementWithValue):
184029
184030            Remove awkward indirection and let the call site deal with removing the Attr node from
184031            the Element's list of Attr nodes.
184032
184033        * dom/ElementAttributeData.cpp:
184034        (WebCore::ElementAttributeData::clearAttributes):
184035
184036            Remove now-unused Element* argument.
184037
1840382012-11-05  Hans Muller  <hmuller@adobe.com>
184039
184040        [CSS Exclusions] Polygon edges should span colinear vertices
184041        https://bugs.webkit.org/show_bug.cgi?id=99343
184042
184043        Reviewed by Dirk Schulze.
184044
184045        ExclusionPolygonEdges now span coincident and collinear vertices. Currently
184046        pairs of vertices are only considered coincident if their coordinates are exactly
184047        equal. Similarly, a vertex is only considered collinear with an edge if the area
184048        of the triangle defined by the three vertices is exactly zero.  In the future it
184049        may be useful to relax the comparison with zero.
184050
184051        Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
184052               fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
184053
184054        * rendering/ExclusionPolygon.cpp:
184055        (WebCore::determinant): Used to measure collinearity.
184056        (WebCore):
184057        (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
184058        (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
184059        (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
184060        (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
184061        (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
184062        * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
184063
1840642012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
184065
184066        [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
184067        https://bugs.webkit.org/show_bug.cgi?id=101228
184068
184069        Reviewed by Kenneth Rohde Christiansen.
184070
184071        Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
184072        and reuse the POSIX one since it is pretty much the same.
184073
184074        No new tests, no behavior change.
184075
184076        * PlatformEfl.cmake:
184077        * platform/efl/SharedBufferEfl.cpp: Removed.
184078
1840792012-11-05  Kentaro Hara  <haraken@chromium.org>
184080
184081        Add a comment about a return value of IDBKey::toV8()
184082        https://bugs.webkit.org/show_bug.cgi?id=101212
184083
184084        Reviewed by Adam Barth.
184085
184086        Although all other toV8(impl) return null when impl is 0,
184087        IDBKey::toV8(impl) is expected to return undefined when impl is 0.
184088        This patch adds a comment about it.
184089
184090        No tests.
184091
184092        * bindings/js/JSIDBKeyCustom.cpp:
184093        (WebCore::toJS):
184094        * bindings/v8/custom/V8IDBKeyCustom.cpp:
184095        (WebCore::toV8):
184096
1840972012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
184098
184099        [Cairo] Make Cairo honor image orientation
184100        https://bugs.webkit.org/show_bug.cgi?id=101207
184101
184102        Reviewed by Kenneth Rohde Christiansen.
184103
184104        Implement transformed image drawing in BitmapImageCairo, similar
184105        as it was done for Skia in bug 100179, r132384.
184106        The image drawing code needs to transform the graphics context
184107        depending on exif orientation in order for this to work.
184108
184109        No new tests, covered by fast/images/exif-* which are passing now.
184110
184111        * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
184112        * platform/graphics/cairo/BitmapImageCairo.cpp:
184113        (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
184114        (WebCore):
184115
1841162012-11-05  Kentaro Hara  <haraken@chromium.org>
184117
184118        [V8] Dispose() and Clear() should be always coupled for safety
184119        https://bugs.webkit.org/show_bug.cgi?id=101191
184120
184121        Reviewed by Adam Barth.
184122
184123        Clear() is not mandatory. However, to avoid misusing already
184124        disposed wrappers, Clear() should be always called just
184125        after Dispose().
184126
184127        No tests. No change in behavior.
184128
184129        * bindings/v8/DOMWrapperMap.h:
184130        (WebCore::DOMWrapperHashMap::defaultWeakCallback):
184131        * bindings/v8/IntrusiveDOMWrapperMap.h:
184132        (WebCore::IntrusiveDOMWrapperMap::weakCallback):
184133        * bindings/v8/NPV8Object.cpp:
184134        (WebCore::freeV8NPObject):
184135        * bindings/v8/ScheduledAction.cpp:
184136        (WebCore::ScheduledAction::~ScheduledAction):
184137        * bindings/v8/V8NPObject.cpp:
184138        (WebCore::V8NPTemplateMap::dispose):
184139        (WebCore::weakNPObjectCallback):
184140        (WebCore::forgetV8ObjectForNPObject):
184141        * bindings/v8/V8PerContextData.cpp:
184142        (WebCore::V8PerContextData::dispose):
184143        * bindings/v8/V8ValueCache.cpp:
184144        (WebCore::cachedStringCallback):
184145        (WebCore::IntegerCache::~IntegerCache):
184146        * bindings/v8/custom/V8InjectedScriptManager.cpp:
184147        (WebCore::WeakReferenceCallback):
184148
1841492012-11-05  Hans Muller  <hmuller@adobe.com>
184150
184151        [CSS Exclusions] Layout of the first shape-inside line can be incorrect
184152        https://bugs.webkit.org/show_bug.cgi?id=100996
184153
184154        Reviewed by Dirk Schulze.
184155
184156        Made the conversion from floating point top/bottom logical shape bounds coordinates
184157        LayoutUnits explicit and corrected the case where the top value was truncated.  A
184158        float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
184159        that the LayoutUnit value is within the shape.
184160        
184161        Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
184162
184163        * rendering/ExclusionShapeInsideInfo.h:
184164        (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
184165        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
184166        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
184167        (ExclusionShapeInsideInfo):
184168        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
184169        (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
184170
1841712012-11-05  Antti Koivisto  <antti@apple.com>
184172
184173        Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
184174        https://bugs.webkit.org/show_bug.cgi?id=101211
184175
184176        Reviewed by Andreas Kling.
184177        
184178        Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
184179        destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
184180        and deleting the object. This looks in principle possible via stylesheets and SVG images.
184181        
184182        Speculative fix, no repro, no obvious way to construct a test.
184183
184184        * loader/cache/MemoryCache.cpp:
184185        (WebCore::MemoryCache::pruneDeadResourcesToSize):
184186        
184187            Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
184188            resource has been kicked out from the cache during destroyDecodedData() and stop iterating
184189            if has (as it may die when CachedResourceHandle releases it).
184190            The 'current' pointer is not protected as the resource it points to is allowed to die.
184191            
1841922012-11-05  Andrey Adaikin  <aandrey@chromium.org>
184193
184194        Web Inspector: Fix jscompiler cast syntax
184195        https://bugs.webkit.org/show_bug.cgi?id=101066
184196
184197        Reviewed by Pavel Feldman.
184198
184199        Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
184200
184201        * inspector/InjectedScriptCanvasModuleSource.js:
184202        (.):
184203        * inspector/InjectedScriptSource.js:
184204        (.):
184205        * inspector/front-end/ApplicationCacheModel.js:
184206        (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
184207        (WebInspector.ApplicationCacheModel.prototype._frameDetached):
184208        * inspector/front-end/AuditLauncherView.js:
184209        (WebInspector.AuditLauncherView.prototype._onRequestStarted):
184210        (WebInspector.AuditLauncherView.prototype._onRequestFinished):
184211        * inspector/front-end/BreakpointManager.js:
184212        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
184213        (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
184214        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
184215        (WebInspector.BreakpointManager.prototype._breakpointResolved):
184216        (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
184217        (WebInspector.BreakpointManager.Storage):
184218        * inspector/front-end/BreakpointsSidebarPane.js:
184219        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
184220        * inspector/front-end/CSSNamedFlowCollectionsView.js:
184221        (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
184222        (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
184223        (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
184224        (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
184225        * inspector/front-end/CSSSelectorProfileView.js:
184226        (WebInspector.CSSProfileHeader.prototype.createView):
184227        * inspector/front-end/CSSStyleModel.js:
184228        (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
184229        (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
184230        * inspector/front-end/CompilerScriptMapping.js:
184231        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
184232        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
184233        * inspector/front-end/ConsoleView.js:
184234        (WebInspector.ConsoleView.prototype._frameAdded):
184235        (WebInspector.ConsoleView.prototype._frameRemoved):
184236        * inspector/front-end/DOMAgent.js:
184237        (WebInspector.DOMDocument):
184238        * inspector/front-end/DebuggerModel.js:
184239        (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
184240        (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
184241        (WebInspector.DebuggerModel.prototype.):
184242        (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
184243        (WebInspector.DebuggerModel.CallFrame.prototype.get location):
184244        * inspector/front-end/DebuggerScriptMapping.js:
184245        (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
184246        * inspector/front-end/DirectoryContentView.js:
184247        (WebInspector.DirectoryContentView.prototype._sort):
184248        * inspector/front-end/ElementsPanel.js:
184249        (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
184250        * inspector/front-end/ElementsPanelDescriptor.js:
184251        (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
184252        * inspector/front-end/ElementsTreeOutline.js:
184253        (.get node):
184254        * inspector/front-end/ExtensionServer.js:
184255        (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
184256        (WebInspector.ExtensionServer.prototype._handleOpenURL):
184257        (WebInspector.ExtensionServer.prototype._onGetResourceContent):
184258        (WebInspector.ExtensionServer.prototype._onSetResourceContent):
184259        (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
184260        (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
184261        (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
184262        * inspector/front-end/FileContentView.js:
184263        (WebInspector.FileContentView.prototype._metadataReceived):
184264        (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
184265        * inspector/front-end/FileSystemModel.js:
184266        (WebInspector.FileSystemModel.prototype._frameAdded):
184267        (WebInspector.FileSystemModel.prototype._frameNavigated):
184268        (WebInspector.FileSystemModel.prototype._frameDetached):
184269        * inspector/front-end/FileSystemView.js:
184270        (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
184271        (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
184272        * inspector/front-end/HandlerRegistry.js:
184273        (WebInspector.HandlerRegistry.prototype._appendHrefItems):
184274        * inspector/front-end/HeapSnapshotLoader.js:
184275        (WebInspector.HeapSnapshotLoader.prototype.write):
184276        * inspector/front-end/HeapSnapshotView.js:
184277        (WebInspector.HeapSnapshotView.prototype._changeBase):
184278        (WebInspector.HeapProfileHeader.prototype.load):
184279        (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
184280        * inspector/front-end/IndexedDBModel.js:
184281        (WebInspector.IndexedDBModel.prototype._frameNavigated):
184282        (WebInspector.IndexedDBModel.prototype._frameDetached):
184283        * inspector/front-end/IndexedDBViews.js:
184284        (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
184285        * inspector/front-end/JavaScriptSourceFrame.js:
184286        (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
184287        (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
184288        (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
184289        (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
184290        (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
184291        (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
184292        (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
184293        * inspector/front-end/MemoryStatistics.js:
184294        (WebInspector.MemoryStatistics.prototype.show):
184295        * inspector/front-end/NavigatorView.js:
184296        (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
184297        (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
184298        (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
184299        (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
184300        * inspector/front-end/NetworkLog.js:
184301        (WebInspector.NetworkLog.prototype._onRequestStarted):
184302        * inspector/front-end/NetworkManager.js:
184303        (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
184304        * inspector/front-end/NetworkPanel.js:
184305        (WebInspector.NetworkLogView.prototype._onRequestUpdated):
184306        (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
184307        (WebInspector.NetworkPanel.prototype.reveal):
184308        (WebInspector.NetworkPanel.prototype.appendApplicableItems):
184309        * inspector/front-end/NetworkUISourceCodeProvider.js:
184310        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
184311        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
184312        * inspector/front-end/ObjectPopoverHelper.js:
184313        (WebInspector.ObjectPopoverHelper.prototype.):
184314        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
184315        * inspector/front-end/PresentationConsoleMessageHelper.js:
184316        (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
184317        (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
184318        * inspector/front-end/ProfilesPanel.js:
184319        * inspector/front-end/ResourceScriptMapping.js:
184320        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
184321        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
184322        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
184323        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
184324        * inspector/front-end/ResourceTreeModel.js:
184325        (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
184326        (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
184327        * inspector/front-end/ResourcesPanel.js:
184328        (WebInspector.ResourcesPanel.prototype._databaseAdded):
184329        (WebInspector.ResourcesPanel.prototype._domStorageAdded):
184330        (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
184331        (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
184332        (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
184333        (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
184334        (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
184335        (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
184336        (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
184337        (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
184338        * inspector/front-end/RevisionHistoryView.js:
184339        (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
184340        * inspector/front-end/SASSSourceMapping.js:
184341        (rawLocationToUILocation):
184342        * inspector/front-end/ScopeChainSidebarPane.js:
184343        (WebInspector.ScopeChainSidebarPane.prototype.update):
184344        * inspector/front-end/Script.js:
184345        (WebInspector.Script.Location.prototype.uiLocation):
184346        * inspector/front-end/ScriptFormatter.js:
184347        (WebInspector.ScriptFormatter.prototype.get _worker):
184348        * inspector/front-end/ScriptsPanel.js:
184349        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
184350        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
184351        (WebInspector.ScriptsPanel.prototype._editorClosed):
184352        (WebInspector.ScriptsPanel.prototype._editorSelected):
184353        (WebInspector.ScriptsPanel.prototype._scriptSelected):
184354        (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
184355        (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
184356        (WebInspector.ScriptsPanel.prototype.replaceAllWith):
184357        (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
184358        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
184359        (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
184360        * inspector/front-end/ScriptsPanelDescriptor.js:
184361        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
184362        * inspector/front-end/StylesSourceMapping.js:
184363        (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
184364        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
184365        * inspector/front-end/TabbedEditorContainer.js:
184366        (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
184367        (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
184368        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
184369        (WebInspector.TabbedEditorContainer.prototype._tabSelected):
184370        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
184371        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
184372        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
184373        (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
184374        * inspector/front-end/TimelineModel.js:
184375        (WebInspector.TimelineModelLoader.prototype.write):
184376        * inspector/front-end/UISourceCodeFrame.js:
184377        (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
184378        * inspector/front-end/Workspace.js:
184379        (WebInspector.WorkspaceController.prototype._frameAdded):
184380        (WebInspector.Project.prototype._fileAdded):
184381        (WebInspector.Project.prototype._fileRemoved):
184382
1843832012-11-05  Pavel Feldman  <pfeldman@chromium.org>
184384
184385        Web Inspector: render message bubbles in CodeMirror experiment.
184386        https://bugs.webkit.org/show_bug.cgi?id=101164
184387
184388        Reviewed by Vsevolod Vlasov.
184389
184390        It sounds like addLineWidget just makes it happen.
184391
184392        * inspector/front-end/CodeMirrorTextEditor.js:
184393        (WebInspector.CodeMirrorTextEditor):
184394        (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
184395        (WebInspector.CodeMirrorTextEditor.prototype.get if):
184396        (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
184397        (WebInspector.CodeMirrorTextEditor.prototype._change):
184398        * inspector/front-end/DefaultTextEditor.js:
184399        (.preventDefaultOnMouseUp):
184400        * inspector/front-end/PresentationConsoleMessageHelper.js:
184401        (WebInspector.PresentationConsoleMessageHelper):
184402        * inspector/front-end/cm/cmdevtools.css:
184403        (.CodeMirror .webkit-html-message-bubble):
184404        (.CodeMirror .webkit-html-message-bubble img):
184405        (.CodeMirror .webkit-html-warning-message):
184406        (.CodeMirror .webkit-html-error-message):
184407
1844082012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
184409
184410        Validate CSS Device Adaptation properties and resolve shorthands
184411        https://bugs.webkit.org/show_bug.cgi?id=95962
184412
184413        Reviewed by Alexis Menard.
184414
184415        Add the missing keywords and properties for the viewport at-rule.
184416        Note that we have to mark that we are inside a viewport scope because
184417        some properties are not validated as they would be inside a style
184418        rule. As an example, the semantics of CSSPropertyWidth are completely
184419        different: on a viewport rule, it stands for a shorthand for the
184420        minimum and maximum width.
184421
184422        Test: css3/device-adapt/viewport-properties-validation.html
184423
184424        * css/CSSComputedStyleDeclaration.cpp:
184425        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
184426        * css/CSSParser.cpp:
184427        (WebCore::CSSParser::parseValue):
184428        (WebCore):
184429        (WebCore::CSSParser::parseViewportProperty):
184430        (WebCore::CSSParser::parseViewportShorthand):
184431        * css/CSSParser.h:
184432        * css/CSSProperty.cpp:
184433        (WebCore::CSSProperty::isInheritedProperty):
184434        * css/CSSPropertyNames.in:
184435        * css/CSSValueKeywords.in:
184436
1844372012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
184438
184439        Unreviewed, rolling out r133286, r133385, and r133394.
184440        http://trac.webkit.org/changeset/133286
184441        http://trac.webkit.org/changeset/133385
184442        http://trac.webkit.org/changeset/133394
184443        https://bugs.webkit.org/show_bug.cgi?id=101198
184444
184445        Broke image placement on some web sites. (Requested by kling
184446        on #webkit).
184447
184448        * css/StyleResolver.cpp:
184449        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
184450        (WebCore::StyleResolver::matchAllRules):
184451        (WebCore::StyleResolver::canShareStyleWithElement):
184452        * dom/Attr.cpp:
184453        (WebCore::Attr::detachFromElementWithValue):
184454        * dom/Element.cpp:
184455        (WebCore::Element::~Element):
184456        (WebCore::Element::detachAttribute):
184457        (WebCore::Element::getAttribute):
184458        (WebCore::Element::setAttributeNode):
184459        (WebCore::Element::removeAttributeInternal):
184460        (WebCore::Element::getAttributeNode):
184461        (WebCore::Element::getAttributeNodeNS):
184462        (WebCore::Element::normalizeAttributes):
184463        (WebCore::Element::attrIfExists):
184464        (WebCore::Element::ensureAttr):
184465        (WebCore::Element::cloneAttributesFromElement):
184466        * dom/Element.h:
184467        (Element):
184468        (WebCore::Element::updateInvalidAttributes):
184469        * dom/ElementAttributeData.cpp:
184470        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
184471        (WebCore):
184472        (WebCore::attrListMap):
184473        (WebCore::attrListForElement):
184474        (WebCore::ensureAttrListForElement):
184475        (WebCore::removeAttrListForElement):
184476        (WebCore::findAttrInList):
184477        (WebCore::ElementAttributeData::attrIfExists):
184478        (WebCore::ElementAttributeData::ensureAttr):
184479        (WebCore::ElementAttributeData::setAttr):
184480        (WebCore::ElementAttributeData::removeAttr):
184481        (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
184482        (WebCore::ElementAttributeData::reportMemoryUsage):
184483        (WebCore::ElementAttributeData::cloneDataFrom):
184484        (WebCore::ElementAttributeData::clearAttributes):
184485        (WebCore::ElementAttributeData::getAttributeNode):
184486        * dom/ElementAttributeData.h:
184487        (WebCore):
184488        (WebCore::ElementAttributeData::attributeStyle):
184489        (WebCore::ElementAttributeData::setAttributeStyle):
184490        (ElementAttributeData):
184491        (WebCore::ElementAttributeData::ElementAttributeData):
184492        * dom/Node.h:
184493        (WebCore):
184494        (WebCore::Node::hasAttrList):
184495        (WebCore::Node::attributeStyleDirty):
184496        (WebCore::Node::setAttributeStyleDirty):
184497        (WebCore::Node::clearAttributeStyleDirty):
184498        (Node):
184499        (WebCore::Node::setHasAttrList):
184500        (WebCore::Node::clearHasAttrList):
184501        (WebCore::Node::isStyleAttributeValid):
184502        (WebCore::Node::setIsStyleAttributeValid):
184503        (WebCore::Node::clearIsStyleAttributeValid):
184504        * dom/StyledElement.cpp:
184505        (WebCore::StyledElement::updateStyleAttribute):
184506        (WebCore::StyledElement::attributeChanged):
184507        (WebCore::StyledElement::styleAttributeChanged):
184508        (WebCore::StyledElement::inlineStyleChanged):
184509        (WebCore::StyledElement::updateAttributeStyle):
184510        * dom/StyledElement.h:
184511        (StyledElement):
184512        (WebCore::StyledElement::invalidateStyleAttribute):
184513        (WebCore::StyledElement::attributeStyle):
184514        * inspector/InspectorCSSAgent.cpp:
184515        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
184516
1845172012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
184518
184519        Unreviewed trivial Qt build fix.
184520
184521        Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
184522        builds.
184523
184524        * platform/graphics/qt/GraphicsContextQt.cpp:
184525        * platform/graphics/qt/ImageQt.cpp:
184526
1845272012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
184528
184529        [Shadow] ShadowRoot type is not set correctly.
184530        https://bugs.webkit.org/show_bug.cgi?id=101188
184531
184532        Reviewed by Hajime Morita.
184533
184534        ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
184535
184536        Test: fast/dom/shadow/shadowroot-type.html
184537
184538        * dom/ShadowRoot.cpp:
184539        (WebCore::ShadowRoot::create):
184540        * testing/Internals.cpp:
184541        (WebCore::Internals::shadowRootType):
184542        (WebCore):
184543        * testing/Internals.h:
184544        (Internals):
184545        * testing/Internals.idl:
184546
1845472012-11-05  Kent Tamura  <tkent@chromium.org>
184548
184549        BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
184550        https://bugs.webkit.org/show_bug.cgi?id=101038
184551
184552        Reviewed by Hajime Morita.
184553
184554        Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
184555        It means that date/time input elements without
184556        ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
184557        DOMActivate event.
184558
184559        This patch doesn't change behavior yet because Chromimum-Android port
184560        intercepts user events and doesn't deliver them to date/time input
184561        elements. <http://crbug.com/159381>
184562
184563        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
184564        Add DateTimeChooserClient behavior. The code is similar to
184565        PickerIndicatorElement.
184566        (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
184567        Closes DateTimeChooser.
184568        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
184569        Open DateTimeChooser if
184570         - The element is not disabled,
184571         - The element is not read-only,
184572         - The element has a renderer,
184573         - This event is created by a user gesture, and
184574         - The element has no DateTimeChooser.
184575        (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
184576        Closes DateTimeChooser.
184577        (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
184578        Set a string value coming from a chooser to the input element.
184579        (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
184580        Clear m_dateTimeChooser when the chooser was closed.
184581        (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
184582        Requests to close the chooser.
184583        * html/BaseChooserOnlyDateAndTimeInputType.h:
184584        (BaseChooserOnlyDateAndTimeInputType):
184585         - Implement DateTimeChooserClient
184586         - Add closeDateTimeChooser helper function.
184587         - Add detach override.
184588         - Add m_dateTimeChooser.
184589        * html/HTMLInputElement.cpp:
184590        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
184591        Added. The code is moved from PickerIndicatorElement.cpp in order to
184592        share it with BaseChooserOnlyDateAndTimeInputType.
184593        * html/HTMLInputElement.h:
184594        (HTMLInputElement): Declare setupDateTimeChooserParameters.
184595        * html/shadow/PickerIndicatorElement.cpp:
184596        (WebCore::PickerIndicatorElement::openPopup):
184597        Move some code to HTMLInputElement::setupDateTimeChooserParameters.
184598
1845992012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
184600
184601        Fix the collapsing border code to handle mixed directionality at the row level
184602        https://bugs.webkit.org/show_bug.cgi?id=101060
184603
184604        Reviewed by Ojan Vafai.
184605
184606        After bug 87900, we support mixed directionality at the row-group level. For coherency
184607        - as the underlying code didn't support it - we were artificially ignoring 'direction'
184608        below the row-group. This change relaxes the restriction and patches the collapsing
184609        borders code to query the right style and border.
184610
184611        Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
184612               fast/table/border-collapsing/table-rtl-row-mixed-direction.html
184613
184614        * rendering/RenderTable.cpp:
184615        (WebCore::RenderTable::tableStartBorderAdjoiningCell):
184616        (WebCore::RenderTable::tableEndBorderAdjoiningCell):
184617        Changed to query the row's direction.
184618
184619        * rendering/RenderTableCell.cpp:
184620        (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
184621        (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
184622        Added 2 helper functions. They determine if a specific cell's border
184623        adjoins the table. This code is required as the last cell's end border
184624        can be resolved against the start border.
184625
184626        (WebCore::RenderTableCell::computeCollapsedStartBorder):
184627        (WebCore::RenderTableCell::computeCollapsedEndBorder):
184628        Updated these functions now that being the start / end column doesn't mean
184629        that we have to resolve against the row / row-group / table's border.
184630
184631        * rendering/RenderTableCell.h:
184632        (WebCore::RenderTableCell::styleForCellFlow):
184633        Updated to return the row's style.
184634
184635        * rendering/RenderTableRow.cpp:
184636        (WebCore::RenderTableRow::borderAdjoiningStartCell):
184637        (WebCore::RenderTableRow::borderAdjoiningEndCell):
184638        * rendering/RenderTableSection.cpp:
184639        (WebCore::RenderTableSection::borderAdjoiningStartCell):
184640        (WebCore::RenderTableSection::borderAdjoiningEndCell):
184641        Updated these functions to work with mixed directionality.
184642
184643        * rendering/RenderTableSection.cpp:
184644        (WebCore::RenderTableSection::setLogicalPositionForCell):
184645        Changed this function to use the section's direction. This is wrong and should be changed
184646        once we properly fix the collapsing border code.
184647
184648        (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
184649        Added a FIXME.
184650
184651        * rendering/style/CollapsedBorderValue.h:
184652        (WebCore::CollapsedBorderValue::width):
184653        This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
184654        'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
184655        fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
184656
1846572012-11-04  Andrey Adaikin  <aandrey@chromium.org>
184658
184659        Web Inspector: [Canvas] do not blow up the capturing log
184660        https://bugs.webkit.org/show_bug.cgi?id=100752
184661
184662        Reviewed by Pavel Feldman.
184663
184664        Clear obsolete calls in the canvas 2D capturing log in runtime.
184665        Now we store in the log only minimum number of calls that are necessary to replay a
184666        canvas 2D context. To achieve that we find in runtime those calls in the log that no
184667        longer contribute to the final context state and remove them.
184668        These are the rules according which we find and remove such calls:
184669        - all PATH methods between a clip() call and beginPath() call can be removed
184670        - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
184671        - all consecutive save() + restore() calls
184672
184673        Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
184674               inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
184675
184676        * inspector/InjectedScriptCanvasModuleSource.js:
184677        (.):
184678
1846792012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
184680
184681        [Shadow] ShadowRoot should have a method to return ShadowRootType.
184682        https://bugs.webkit.org/show_bug.cgi?id=101178
184683
184684        Reviewed by Hajime Morita.
184685
184686        When we style PseudoCustomElement, we have to know ShadowRootType.
184687        We would like to expose a method to get ShadowRootType also in Release mode.
184688
184689        This is a preparation patch for Bug 101170.
184690
184691        * dom/ShadowRoot.h:
184692        (ShadowRoot):
184693
1846942012-11-04  Keishi Hattori  <keishi@webkit.org>
184695
184696        Introduce Month class to calendar picker
184697        https://bugs.webkit.org/show_bug.cgi?id=101024
184698
184699        Reviewed by Kent Tamura.
184700
184701        Month class needs to be introduced to implement a month picker. This
184702        patch just introduces the Month class into the calendar picker without
184703        changing the current behavior.
184704
184705        No new tests. Covered by existing calendar-picker-*.html tests.
184706
184707        * Resources/pagepopups/calendarPicker.js:
184708        (Month.prototype.toLocaleString): Returns a localized month string.
184709        (Month): Takes a Month object, number representing the month, or year and month numbers.
184710        (Month.parse): Returns a new Month from an ISO month string.
184711        (Month.createFromDate): Returns a new Month containing the given datetime.
184712        (Month.prototype.equals): Returns true if the given month is the same.
184713        (Month.prototype.previous): Returns the previous month.
184714        (Month.prototype.next): Returns the next month.
184715        (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
184716        (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
184717        (Month.prototype.valueOf): Returns a number representing the month.
184718        (Month.prototype.toString): Returns an ISO month string.
184719        (YearMonthController): Use Month object.
184720        (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
184721        (YearMonthController.prototype.setMonth): Take a month object.
184722        (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
184723        (YearMonthController.prototype._handleYearMonthChange):
184724        (YearMonthController.prototype.moveRelatively):
184725        (DaysTable): Use Month object.
184726        (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
184727        (DaysTable.prototype._navigateToMonth): Take a month object.
184728        (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
184729        (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
184730        (DaysTable.prototype.selectDate):
184731        (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
184732        (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
184733
1847342012-11-04  Halton Huo  <halton.huo@intel.com>
184735
184736        [EFL] Use _LIBRARIES instead of _LIBRARY
184737        https://bugs.webkit.org/show_bug.cgi?id=101042
184738
184739        Reviewed by Gyuyoung Kim.
184740
184741        In CMake Find files, _LIBRARY is intended for internal use, should
184742        use _LIBRARIES instead.
184743
184744        * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
184745
1847462012-11-04  MORITA Hajime  <morrita@google.com>
184747
184748        Shadow DOM should be able to be disabled per context.
184749        https://bugs.webkit.org/show_bug.cgi?id=101173
184750
184751        Reviewed by Dimitri Glazkov.
184752
184753        This change pulls back relevant bits from r131549. Note that if
184754        the the port enables runtime Shadow DOM flag, this can cause slow
184755        down on some Chromium page cycler test cases (which r131549
184756        attempted to fix).
184757
184758        This change is temporal and the flags should be switched back from
184759        ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
184760        stability.
184761
184762        * dom/ContextFeatures.cpp:
184763        (WebCore::ContextFeatures::shadowDOMEnabled):
184764        (WebCore):
184765        * dom/ContextFeatures.h:
184766        * dom/Position.cpp:
184767        (WebCore::Position::Position):
184768        (WebCore::Position::findParent):
184769        * dom/TreeScope.cpp:
184770        (WebCore::TreeScope::getSelection):
184771        * html/HTMLTagNames.in:
184772        * html/shadow/HTMLContentElement.cpp:
184773        (WebCore::HTMLContentElement::contentTagName):
184774        * page/DOMWindow.idl:
184775
1847762012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
184777
184778        [Shadow] Implement custom pseudo-elements styling
184779        https://bugs.webkit.org/show_bug.cgi?id=100812
184780
184781        Reviewed by Hajime Morita.
184782
184783        Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
184784
184785        Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
184786        and use pseudo()/setPseudo() instead (Bug 101171).
184787
184788        Test: fast/dom/shadow/styling-pseudo-attribute.html
184789
184790        * dom/Element.cpp:
184791        (WebCore::Element::shadowPseudoId):
184792        (WebCore::Element::setShadowPseudoId):
184793        * dom/ElementRareData.cpp:
184794        (WebCore::ElementRareData::reportMemoryUsage):
184795        * dom/ElementRareData.h:
184796        (ElementRareData):
184797
1847982012-11-04  Kent Tamura  <tkent@chromium.org>
184799
184800        BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
184801        https://bugs.webkit.org/show_bug.cgi?id=101039
184802
184803        Reviewed by Hajime Morita.
184804
184805        Add BaseClickableWithKeyInputType behavior to
184806        BaseChooserOnlyDateAndTimeInputType. It means date/time input types
184807        without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
184808        pressing space or enter key. They're going to open a date/time chooser
184809        by DOMActive event.
184810
184811        Because BaseChooserOnlyDateAndTimeInputType inherits from
184812        BaseDateAndTimeInputType, it can't inherit
184813        BaseClickableWithKeyInputType. So, this patch adds static helper
184814        functions to BaseClickableWithKeyInputType, and
184815        BaseChooserOnlyDateAndTimeInputType uses them.
184816
184817        This patch doesn't change behavior yet because Chromimum-Android port
184818        intercepts user events and doesn't deliver them to date/time input
184819        elements.
184820
184821        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
184822        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
184823        Add an empty implementation with a FIXME comment.
184824        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
184825        Add BaseClickableWithKeyInputType behavior by a helper function.
184826        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
184827        (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
184828        (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
184829        * html/BaseChooserOnlyDateAndTimeInputType.h:
184830        (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
184831        * html/BaseClickableWithKeyInputType.cpp:
184832        Add static helper functions, and existing member functions use them.
184833        * html/BaseClickableWithKeyInputType.h:
184834        (BaseClickableWithKeyInputType): Add declarations of the helper functions.
184835        * html/InputType.h:
184836        (InputType): Make dispatchSimulatedClickIfActive public because it is
184837        called from a helper function.
184838
1848392012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
184840
184841        Unreviewed, rolling out r133416.
184842        http://trac.webkit.org/changeset/133416
184843        https://bugs.webkit.org/show_bug.cgi?id=101169
184844
184845        Broke world selection by right click (Requested by rniwa on
184846        #webkit).
184847
184848        * page/EventHandler.cpp:
184849        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
184850        (WebCore::EventHandler::sendContextMenuEvent):
184851
1848522012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
184853
184854        Missing ASCIILiteral in a place of accessibility
184855        https://bugs.webkit.org/show_bug.cgi?id=101160
184856
184857        Reviewed by Darin Adler.
184858
184859        ASCIILiteral usage is being missed in a spot of accessibliity.
184860
184861        * accessibility/AccessibilityMediaControls.cpp:
184862        (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
184863
1848642012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
184865
184866        [Qt][WK2] setPlatformStrategies always asserts after r132744
184867        https://bugs.webkit.org/show_bug.cgi?id=100838
184868
184869        Reviewed by Simon Hausmann.
184870
184871        Reland with build fixes.
184872
184873        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
184874        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
184875        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
184876        code. In order to keep the behavior, this patch adds exported helpers to WebCore
184877        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
184878        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
184879        add it to the WebKit1 API for the time being, but my goal was to move in the direction
184880        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
184881        in non production mode.
184882
184883        Basically covered by all tests.
184884
184885        * Target.pri:
184886        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
184887        initializeTestFonts uses it.
184888        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
184889        is also under that.
184890        (WebKit):
184891        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
184892        without calling initializeWebCoreQt.
184893        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
184894        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
184895        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
184896        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
184897        the job even if we would stop clearing all caches between tests. Also moved the call to
184898        QFontDatabase::removeAllApplicationFonts from callers to here.
184899        * platform/qt/QtTestSupport.h:
184900        (WebKit):
184901        (QtTestSupport):
184902
1849032012-11-04  Florin Malita  <fmalita@chromium.org>
184904
184905        Color-profile property triggers assert
184906        https://bugs.webkit.org/show_bug.cgi?id=101080
184907
184908        Reviewed by Dirk Schulze.
184909
184910        CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
184911        unimplemented property assert. Adding a stub entry to avoid that.
184912
184913        Test: svg/css/color-profile-crash.html
184914
184915        * css/SVGCSSStyleSelector.cpp:
184916        (WebCore::StyleResolver::applySVGProperty):
184917
1849182012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
184919
184920        Unable to copy text on disabled input fields on long press gesture
184921        https://bugs.webkit.org/show_bug.cgi?id=99698
184922
184923        Reviewed by Ryosuke Niwa.
184924
184925        Text from disabled input/text should be allowed to select. Replaced isContentEditable()
184926        with canStartSelection()
184927
184928        Test: fast/events/touch/gesture/disabled-input-text-selection.html
184929
184930        * page/EventHandler.cpp:
184931        (WebCore::EventHandler::handleGestureLongPress):
184932
1849332012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
184934
184935        Unreviewed, rolling out r133403, r133404, and r133409.
184936        http://trac.webkit.org/changeset/133403
184937        http://trac.webkit.org/changeset/133404
184938        http://trac.webkit.org/changeset/133409
184939        https://bugs.webkit.org/show_bug.cgi?id=101158
184940
184941        "Broke tests" (Requested by kbalazs on #webkit).
184942
184943        * Target.pri:
184944        * WebCore.pri:
184945        * platform/qt/QtTestSupport.h: Removed.
184946
1849472012-11-03  Alexey Proskuryakov  <ap@apple.com>
184948
184949        Get rid of USE(CFURLSTORAGESESSIONS)
184950        https://bugs.webkit.org/show_bug.cgi?id=101131
184951
184952        Reviewed by Sam Weinig.
184953
184954        This is always enabled on CFNetwork based platforms.
184955
184956        * WebCore.exp.in:
184957        * page/Settings.cpp:
184958        (WebCore::Settings::setPrivateBrowsingEnabled):
184959        * platform/mac/CookieJar.mm:
184960        (WebCore::cookies):
184961        (WebCore::cookieRequestHeaderFieldValue):
184962        (WebCore::setCookies):
184963        (WebCore::cookiesEnabled):
184964        (WebCore::getRawCookies):
184965        (WebCore::deleteCookie):
184966        * platform/network/ResourceHandle.h:
184967        (ResourceHandle):
184968        * platform/network/cf/CookieStorageCFNet.cpp:
184969        (WebCore):
184970        (WebCore::currentCFHTTPCookieStorage):
184971        * platform/network/cf/CookieStorageCFNet.h:
184972        * platform/network/cf/ResourceHandleCFNet.cpp:
184973        (WebCore::willSendRequest):
184974        (WebCore::makeFinalRequest):
184975        (WebCore::ResourceHandle::willSendRequest):
184976        (WebCore):
184977        * platform/network/cf/ResourceRequest.h:
184978        (ResourceRequest):
184979        * platform/network/cf/ResourceRequestCFNet.cpp:
184980        (WebCore::ResourceRequest::doUpdatePlatformRequest):
184981        (WebCore):
184982        * platform/network/mac/CookieStorageMac.mm:
184983        (WebCore::setCookieStoragePrivateBrowsingEnabled):
184984        * platform/network/mac/ResourceHandleMac.mm:
184985        (WebCore::shouldRelaxThirdPartyCookiePolicy):
184986        (WebCore::ResourceHandle::createNSURLConnection):
184987        (WebCore::ResourceHandle::willSendRequest):
184988        (WebCore):
184989        * platform/network/mac/ResourceRequestMac.mm:
184990        (WebCore):
184991        (WebCore::ResourceRequest::setStorageSession):
184992
1849932012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
184994
184995        [Qt][WK2] setPlatformStrategies always asserts after r132744
184996        https://bugs.webkit.org/show_bug.cgi?id=100838
184997
184998        Reviewed by Simon Hausmann.
184999
185000        Reland with build fix.
185001
185002        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
185003        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
185004        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
185005        code. In order to keep the behavior, this patch adds exported helpers to WebCore
185006        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
185007        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
185008        add it to the WebKit1 API for the time being, but my goal was to move in the direction
185009        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
185010        in non production mode.
185011
185012        Basically covered by all tests.
185013
185014        * Target.pri:
185015        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
185016        initializeTestFonts uses it.
185017        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
185018        is also under that.
185019        (WebKit):
185020        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
185021        without calling initializeWebCoreQt.
185022        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
185023        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
185024        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
185025        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
185026        the job even if we would stop clearing all caches between tests. Also moved the call to
185027        QFontDatabase::removeAllApplicationFonts from callers to here.
185028        * platform/qt/QtTestSupport.h:
185029        (WebKit):
185030        (QtTestSupport):
185031
1850322012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
185033
185034        Unreviewed, rolling out r133397.
185035        http://trac.webkit.org/changeset/133397
185036        https://bugs.webkit.org/show_bug.cgi?id=101155
185037
185038        "Broke Qt. No way to force the damn bots to do a clean build.
185039        I'm giving up." (Requested by kbalazs on #webkit).
185040
185041        * Target.pri:
185042        * WebCore.pri:
185043        * platform/qt/QtTestSupport.h: Removed.
185044
1850452012-11-03  Stephen White  <senorblanco@chromium.org>
185046
185047        Speculative fix to eliminate flakiness in
185048        css3/filters/blur-filter-page-scroll-self.html
185049        https://bugs.webkit.org/show_bug.cgi?id=91620.
185050        Suspicion is that a prior test is setting
185051        window.internals.settings.setEnableCompositingForFixedPosition(true),
185052        causing this test to be intermittely run on the GPU, giving different
185053        pixel results depending on test order.
185054
185055        Reviewed by Jochen Eisinger.
185056
185057        Covered by css3/filters/blur-filter-page-scroll-self.html
185058
185059        * testing/InternalSettings.cpp:
185060        (WebCore::InternalSettings::Backup::Backup):
185061        (WebCore::InternalSettings::Backup::restoreTo):
185062        * testing/InternalSettings.h:
185063        (Backup):
185064
1850652012-11-03  Mark Rowe  <mrowe@apple.com>
185066
185067        REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
185068
185069        Reviewed by Anders Carlsson.
185070
185071        The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
185072        that was introduced is not null safe.
185073
185074        * platform/text/cf/AtomicStringCF.cpp:
185075        (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
185076
1850772012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
185078
185079        [Qt][WK2] setPlatformStrategies always asserts after r132744
185080        https://bugs.webkit.org/show_bug.cgi?id=100838
185081
185082        Reviewed by Simon Hausmann.
185083
185084        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
185085        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
185086        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
185087        code. In order to keep the behavior, this patch adds exported helpers to WebCore
185088        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
185089        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
185090        add it to the WebKit1 API for the time being, but my goal was to move in the direction
185091        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
185092        in non production mode.
185093
185094        Basically covered by all tests.
185095
185096        * Target.pri:
185097        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
185098        initializeTestFonts uses it.
185099        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
185100        is also under that.
185101        (WebKit):
185102        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
185103        without calling initializeWebCoreQt.
185104        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
185105        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
185106        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
185107        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
185108        the job even if we would stop clearing all caches between tests. Also moved the call to
185109        QFontDatabase::removeAllApplicationFonts from callers to here.
185110        * platform/qt/QtTestSupport.h:
185111        (WebKit):
185112        (QtTestSupport):
185113
1851142012-11-03  Dan Beam  <dbeam@chromium.org>
185115
185116        Implement HTMLFormElement#requestAutocomplete and associated events
185117        https://bugs.webkit.org/show_bug.cgi?id=100557
185118
185119        Reviewed by Adam Barth.
185120
185121        Implements an initial version of the proposal for interactive autocomplete outlined in this email:
185122        http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
185123
185124        The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
185125        autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
185126        error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
185127        implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
185128        UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
185129        after a small delay to behave consistently in all situations and implementations.
185130
185131        Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
185132
185133        Test: fast/forms/form-request-autocomplete.html
185134
185135        * dom/EventNames.h:
185136        (WebCore):
185137
185138        Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
185139        information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
185140        but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
185141        node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
185142        this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
185143        an HTML notification, security concerns, or any other reason it desires).
185144
185145        * html/HTMLAttributeNames.in:
185146
185147        Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
185148        as event listeners. For example:
185149
185150          <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
185151
185152        * html/HTMLFormElement.cpp:
185153        (WebCore::HTMLFormElement::HTMLFormElement):
185154        (WebCore):
185155
185156        Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
185157        triggers requestAutocompleteTimerFired when it times out.
185158
185159        (WebCore::HTMLFormElement::requestAutocomplete):
185160
185161        Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
185162        to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
185163        FrameLoaderClient.
185164
185165        (WebCore::HTMLFormElement::finishRequestAutocomplete):
185166
185167        Called when the request for an interactive autocomplete is finished with either a success or error result. This
185168        causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
185169        target element (this) until fired.
185170
185171        (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
185172
185173        Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
185174
185175        (WebCore::HTMLFormElement::parseAttribute):
185176
185177        Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
185178        for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
185179
185180        * html/HTMLFormElement.h:
185181        (HTMLFormElement):
185182
185183        Added various methods and data members as required by the implementation.
185184
185185        * html/HTMLFormElement.idl:
185186
185187        Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
185188        to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
185189        REQUEST_AUTOCOMPLETE to be enabled to be activated.
185190
185191        * loader/EmptyClients.cpp:
185192        (WebCore):
185193        (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
185194
185195        Added noop implementation for FrameLoader::didRequestAutocomplete.
185196
185197        * loader/EmptyClients.h:
185198        (EmptyFrameLoaderClient):
185199
185200        Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
185201
185202        * loader/FrameLoaderClient.h:
185203        (FrameLoaderClient):
185204
185205        Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
185206
1852072012-11-03  Pavel Feldman  <pfeldman@chromium.org>
185208
185209        Web Inspector: %d, %i, and %f log formatters have same result
185210        https://bugs.webkit.org/show_bug.cgi?id=101148
185211
185212        Reviewed by Alexander Pavlov.
185213
185214        Added separate formatters for %f, %i, %d and %s.
185215
185216        Test: inspector/console/console-message-format.html
185217
185218        * inspector/front-end/ConsoleMessage.js:
185219        (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
185220        (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
185221        (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
185222
1852232012-11-03  Andreas Kling  <kling@webkit.org>
185224
185225        Decouple Attr logic from ElementAttributeData.
185226        <http://webkit.org/b/101126>
185227
185228        Reviewed by Antti Koivisto.
185229
185230        Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
185231        This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
185232        can be shared by any number of Elements at a given time.
185233
185234        Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
185235        "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
185236
185237        * dom/Element.h:
185238        * dom/ElementAttributeData.h:
185239        * dom/Element.cpp:
185240        (WebCore::attrNodeListMap):
185241        (WebCore::attrNodeListForElement):
185242        (WebCore::ensureAttrNodeListForElement):
185243        (WebCore::removeAttrNodeListForElement):
185244        (WebCore::findAttrNodeInList):
185245        (WebCore::Element::~Element):
185246        (WebCore::Element::detachAttribute):
185247        (WebCore::Element::setAttributeNode):
185248        (WebCore::Element::removeAttributeInternal):
185249        (WebCore::Element::getAttributeNode):
185250        (WebCore::Element::getAttributeNodeNS):
185251        (WebCore::Element::normalizeAttributes):
185252        (WebCore::Element::attrIfExists):
185253        (WebCore::Element::ensureAttr):
185254        (WebCore::Element::detachAttrNodeFromElementWithValue):
185255        (WebCore::Element::detachAllAttrNodesFromElement):
185256        (WebCore::Element::cloneAttributesFromElement):
185257
185258            Move everything Attr-related into Element.cpp while simplifying some loops and remove
185259            conditions that are no longer needed as they used to depend on having an attributeData().
185260
185261        * dom/Node.h:
185262        (WebCore::Node::hasSyntheticAttrChildNodes):
185263        (WebCore::Node::setHasSyntheticAttrChildNodes):
185264
185265            Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
185266
185267        * dom/Attr.cpp:
185268        (WebCore::Attr::detachFromElementWithValue):
185269
185270            Remove awkward indirection and let the call site deal with removing the Attr node from
185271            the Element's list of Attr nodes.
185272
185273        * dom/ElementAttributeData.cpp:
185274        (WebCore::ElementAttributeData::clearAttributes):
185275
185276            Remove now-unused Element* argument.
185277
1852782012-11-03  Pavel Feldman  <pfeldman@chromium.org>
185279
185280        REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
185281        https://bugs.webkit.org/show_bug.cgi?id=101125
185282
185283        Reviewed by Vsevolod Vlasov.
185284
185285        Added "bottom" as default docked state.
185286
185287        * inspector/front-end/DockController.js:
185288        (WebInspector.DockController):
185289
1852902012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
185291
185292        [Shadow] ShadowRoot should be able to know the existence of <content>
185293        https://bugs.webkit.org/show_bug.cgi?id=100921
185294
185295        Reviewed by Dimitri Glazkov.
185296
185297        When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
185298        It provides O(1) method to check the existence of <content>.
185299
185300        This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
185301        is changed. Larger context is explained in Bug 100451.
185302
185303        Test: fast/dom/shadow/has-content-elements.html
185304
185305        * dom/ShadowRoot.cpp:
185306        (WebCore::ShadowRoot::ShadowRoot):
185307        (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
185308        all the descendants of ShadowRoot anymore.
185309        * dom/ShadowRoot.h:
185310        (WebCore::ShadowRoot::registerContentElement):
185311        (WebCore::ShadowRoot::unregisterContentElement):
185312        (WebCore::ShadowRoot::hasContentElement):
185313        (ShadowRoot):
185314        * html/shadow/HTMLContentElement.cpp:
185315        (WebCore::HTMLContentElement::HTMLContentElement):
185316        (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
185317        we notify it to the ShadowRoot. Note that only active <content> element is counted.
185318        (WebCore):
185319        (WebCore::HTMLContentElement::removedFrom):
185320        * html/shadow/HTMLContentElement.h:
185321        (HTMLContentElement):
185322        * testing/Internals.cpp:
185323        (WebCore::Internals::hasContentElement):
185324        (WebCore):
185325        * testing/Internals.h:
185326        (Internals):
185327        * testing/Internals.idl:
185328
1853292012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
185330
185331        sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
185332        https://bugs.webkit.org/show_bug.cgi?id=99990
185333
185334        Reviewed by Darin Adler.
185335
185336        Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
185337        because it was not reset after early return.
185338
185339        * page/FrameView.cpp:
185340        (WebCore::FrameView::paintContents):
185341
1853422012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
185343
185344        Fix build warning in PluginView.cpp on release build
185345        https://bugs.webkit.org/show_bug.cgi?id=101049
185346
185347        Reviewed by Kentaro Hara.
185348
185349        The protocol, host, port parameters are not used when LOG_DISABLED
185350        Use UNUSED_PARAM macro for removing -Wunused-parameter warning
185351
185352        * plugins/PluginView.cpp:
185353        (WebCore::PluginView::getAuthenticationInfo):
185354
1853552012-10-25  Martin Robinson  <mrobinson@igalia.com>
185356
185357        [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
185358        https://bugs.webkit.org/show_bug.cgi?id=99914
185359
185360        Reviewed by Carlos Garcia Campos.
185361
185362        Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
185363        This allows a more generic implementation of authentication, for example, one where a WebKit2
185364        client can completely handle authentication.
185365
185366        No new tests. This does not change behavior.
185367
185368        * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
185369        is going away in the next release of Gnome. Instead we always assume that the authentication backend has
185370        support for remembering passwords and pass that information along with the answer to the authentication
185371        request.
185372
185373        The rest of the changes to this class can be summarized as:
185374        1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
185375           objects.
185376        2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
185377           directly.
185378        * platform/gtk/GtkAuthenticationDialog.h:
185379        (GtkAuthenticationDialog): Remove members which are no longer used.
185380        * platform/network/ResourceHandle.h:
185381        (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
185382        * platform/network/soup/ResourceHandleSoup.cpp:
185383        (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
185384        for synchronous handles.
185385        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
185386        the internal data structure.
185387        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
185388        (WebCore::ResourceHandle::receivedCredential): Added.
185389        (WebCore::ResourceHandle::receivedCancellation): Added.
185390        (WebCore::authenicateCallback): Pass the handle as the authentication client.
185391
1853922012-11-02  Benjamin Poulain  <bpoulain@apple.com>
185393
185394        Improve CSSParser::setupParser() since the prefix/suffix are literals
185395        https://bugs.webkit.org/show_bug.cgi?id=101107
185396
185397        Reviewed by Andreas Kling.
185398
185399        * css/CSSParser.cpp:
185400        (WebCore::CSSParser::setupParser):
185401        * css/CSSParser.h:
185402        (CSSParser):
185403        (WebCore::CSSParser::setupParser):
185404        CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
185405        to compute the length at runtime, we can direclty encode it in the binary.
185406
1854072012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
185408
185409        Unreviewed, rolling out r133375.
185410        http://trac.webkit.org/changeset/133375
185411        https://bugs.webkit.org/show_bug.cgi?id=101138
185412
185413        Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
185414        #webkit).
185415
185416        * platform/text/LineBreakIteratorPoolICU.h:
185417        (WebCore::LineBreakIteratorPool::take):
185418        (WebCore::LineBreakIteratorPool::put):
185419        (LineBreakIteratorPool):
185420        * platform/text/TextBreakIterator.h:
185421        (WebCore):
185422        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
185423        (WebCore::LazyLineBreakIterator::get):
185424        (WebCore::LazyLineBreakIterator::reset):
185425        (LazyLineBreakIterator):
185426        * platform/text/TextBreakIteratorICU.cpp:
185427        (WebCore::acquireLineBreakIterator):
185428        (WebCore::releaseLineBreakIterator):
185429        * rendering/RenderBlockLineLayout.cpp:
185430        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
185431        * rendering/RenderText.cpp:
185432        (WebCore::RenderText::computePreferredLogicalWidths):
185433        * rendering/RenderText.h:
185434        (WebCore):
185435        * rendering/break_lines.cpp:
185436        (WebCore):
185437        (WebCore::isBreakableSpace):
185438        (WebCore::needsLineBreakIterator):
185439        (WebCore::nextBreakablePosition):
185440        (WebCore::nextBreakablePositionIgnoringNBSP):
185441        * rendering/break_lines.h:
185442        (WebCore):
185443        (WebCore::isBreakable):
185444
1854452012-11-02  Andreas Kling  <kling@webkit.org>
185446
185447        Cut overgrown ElementAttributeData bitfield.
185448        <http://webkit.org/b/101129>
185449
185450        Reviewed by Anders Carlsson.
185451
185452        Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
185453        to guard against future bloatage.
185454
185455        * dom/ElementAttributeData.cpp:
185456        (SameSizeAsElementAttributeData):
185457        * dom/ElementAttributeData.h:
185458        (ElementAttributeData):
185459
1854602012-11-02  Michael Saboff  <msaboff@apple.com>
185461
185462        Crash calling is8Bit() in visitedLinkHash()
185463        https://bugs.webkit.org/show_bug.cgi?id=101119
185464
185465        Reviewed by Filip Pizlo.
185466
185467        Added an isEmpty() check to AttributeURL and KURL.
185468
185469        * platform/LinkHash.cpp:
185470        (WebCore::visitedLinkHash):
185471
1854722012-11-02  Glenn Adams  <glenn@skynav.com>
185473
185474        Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
185475        https://bugs.webkit.org/show_bug.cgi?id=89235
185476
185477        Reviewed by Eric Seidel.
185478
185479        See also wiki documentation at:
185480        [1] http://trac.webkit.org/wiki/LineBreaking
185481        [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
185482
185483        Web exposed changes include:
185484        (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
185485        (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
185486        (3) See [2] above for details regarding interpretation.
185487
185488        Tests: css3/line-break/line-break-auto-centered.html
185489               css3/line-break/line-break-auto-half-kana.html
185490               css3/line-break/line-break-auto-hyphens.html
185491               css3/line-break/line-break-auto-inseparables.html
185492               css3/line-break/line-break-auto-iteration-marks.html
185493               css3/line-break/line-break-auto-postfixes.html
185494               css3/line-break/line-break-auto-prefixes.html
185495               css3/line-break/line-break-auto-sound-marks.html
185496               css3/line-break/line-break-loose-centered.html
185497               css3/line-break/line-break-loose-half-kana.html
185498               css3/line-break/line-break-loose-hyphens.html
185499               css3/line-break/line-break-loose-inseparables.html
185500               css3/line-break/line-break-loose-iteration-marks.html
185501               css3/line-break/line-break-loose-postfixes.html
185502               css3/line-break/line-break-loose-prefixes.html
185503               css3/line-break/line-break-loose-sound-marks.html
185504               css3/line-break/line-break-normal-centered.html
185505               css3/line-break/line-break-normal-half-kana.html
185506               css3/line-break/line-break-normal-hyphens.html
185507               css3/line-break/line-break-normal-inseparables.html
185508               css3/line-break/line-break-normal-iteration-marks.html
185509               css3/line-break/line-break-normal-postfixes.html
185510               css3/line-break/line-break-normal-prefixes.html
185511               css3/line-break/line-break-normal-sound-marks.html
185512               css3/line-break/line-break-strict-centered.html
185513               css3/line-break/line-break-strict-half-kana.html
185514               css3/line-break/line-break-strict-hyphens.html
185515               css3/line-break/line-break-strict-inseparables.html
185516               css3/line-break/line-break-strict-iteration-marks.html
185517               css3/line-break/line-break-strict-postfixes.html
185518               css3/line-break/line-break-strict-prefixes.html
185519               css3/line-break/line-break-strict-sound-marks.html
185520
185521        * platform/text/LineBreakIteratorPoolICU.h:
185522        (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
185523        Add static function to construct ICU locale argument (also used as pool key) with additional
185524        break keyword.
185525        (WebCore::LineBreakIteratorPool::take):
185526        (WebCore::LineBreakIteratorPool::put):
185527        (LineBreakIteratorPool):
185528        Remove direct dependency from ICU library (and types), moving that dependency into
185529        new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
185530        Update to take line break mode into account.
185531        Create (and cache) different break iterators depending on line break mode (in addition to locale),
185532        which entails expanding pool entry key format to optionally append "@break=" +
185533        "loose"|"normal"|"strict" keyword to locale string.
185534
185535        * platform/text/TextBreakIterator.h:
185536        (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
185537        (WebCore::LazyLineBreakIterator::isLooseCJKMode):
185538        (WebCore::LazyLineBreakIterator::get):
185539        (WebCore::LazyLineBreakIterator::reset):
185540        (LazyLineBreakIterator):
185541        Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
185542        Add state member to indicate line break mode.
185543
185544        * platform/text/TextBreakIteratorICU.cpp:
185545        (WebCore::acquireLineBreakIterator):
185546        Use new line break mode when making iterator from pool.
185547        Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
185548        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
185549        (WebCore::releaseLineBreakIterator):
185550        Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
185551        i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
185552        (WebCore::isCJKLocale):
185553        New functions for determining if CJK rules apply.
185554        (WebCore::openLineBreakIterator):
185555        New function for abstracting opening of ICU style line break iterator. This is now
185556        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
185557        This function also takes into account the line break mode.
185558        (WebCore::closeLineBreakIterator):
185559        (WebCore::mapLineIteratorModeToRules):
185560        New function for abstracting closing of ICU style line break iterator. This is now
185561        used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
185562
185563        * rendering/RenderBlockLineLayout.cpp:
185564        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
185565        Pass line break iterator mode flag when reseting LazyLineBreakIterator.
185566        Add looseMode local variable to prevent need for computing under isBreakable().
185567
185568        * rendering/RenderText.cpp:
185569        (WebCore::mapLineBreakToIteratorMode):
185570        Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
185571        and RenderBlock::LineBreaker::nextLineBreak.
185572        (WebCore::RenderText::computePreferredLogicalWidths):
185573        Ensure (lazy line) breakIterator is initialized for line break mode.
185574        Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
185575
185576        * rendering/RenderText.h:
185577        (WebCore):
185578        Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
185579        and RenderBlock::LineBreaker::nextLineBreak.
185580
185581        * rendering/break_lines.cpp:
185582        (WebCore):
185583        Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
185584        to include loose mode parameter.
185585        (WebCore::isBreakableSpace):
185586        Add externally specified loose mode parameter to prevent need to invoke line break iterator
185587        accessor method on each invocation. Use new loose mode flavors off NBP functions.
185588        (WebCore::needsLineBreakIterator):
185589        Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
185590        to prevent regression to non loose mode path.
185591        (WebCore::nextBreakablePosition):
185592        (WebCore::nextBreakablePositionIgnoringNBSP):
185593        Use new template parameter enums described above.
185594        (WebCore::nextBreakablePositionIgnoringNBSPLoose):
185595        (WebCore::nextBreakablePositionLoose):
185596        Introduce two additional 'loose' mode flavors of NBP template expansions.
185597
185598        * rendering/break_lines.h:
185599        (WebCore):
185600        (WebCore::isBreakable):
185601        Add externally specified loose mode parameter to prevent need to invoke line break iterator
185602        accessor method on each invocation.
185603
1856042012-11-02  Elliott Sprehn  <esprehn@chromium.org>
185605
185606        Replace NodeRareData hash map with a union on m_renderer
185607        https://bugs.webkit.org/show_bug.cgi?id=100057
185608
185609        Reviewed by Eric Seidel.
185610
185611        Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
185612        the overhead of accessing rare data and the memory from the map.
185613
185614        This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
185615        document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
185616        improvement. As this is better than even the special casing for document that was
185617        done in that bug, general node list access should see an even greater win.
185618
185619        This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
185620        removing the rare data map overhead.
185621
185622        This is also a 15% improvement on Parser/textarea-parsing.html
185623
185624        By removing the performance overhead of rareData() this patch addresses the performance
185625        issues raised in Bugs 73853, 87034 and 89635.
185626
185627        I ran Parser/html5-full-render.html and there was no performance regression after
185628        tuning Text::recalcTextStyle and the refactor that was done in r132684.
185629
185630        No new tests, this is just a refactor.
185631
185632        * dom/Document.cpp:
185633        (WebCore::Document::Document):
185634        * dom/Document.h:
185635        (WebCore::Node::Node):
185636        * dom/Element.cpp:
185637        (WebCore::Element::elementRareData):
185638        * dom/Node.cpp:
185639        (WebCore::Node::rareData):
185640        (WebCore::Node::ensureRareData):
185641        (WebCore::Node::clearRareData):
185642        (WebCore::Node::renderBox):
185643        (WebCore::Node::renderBoxModelObject):
185644        (WebCore::Node::reportMemoryUsage):
185645        * dom/Node.h:
185646        (NodeRareDataBase):
185647          Base class for NodeRareData that knows about the renderer so we can
185648          inline the accesses in Node.h
185649        (WebCore::NodeRareDataBase::renderer):
185650        (WebCore::NodeRareDataBase::setRenderer):
185651        (WebCore::NodeRareDataBase::~NodeRareDataBase):
185652        (WebCore::NodeRareDataBase::NodeRareDataBase):
185653        (WebCore):
185654        (WebCore::Node::renderer):
185655        (WebCore::Node::setRenderer):
185656        (Node):
185657        * dom/NodeRareData.h:
185658        * dom/NodeRenderStyle.h:
185659        (WebCore::Node::renderStyle):
185660        * dom/Text.cpp:
185661        (WebCore::Text::recalcTextStyle):
185662          This method appears very hot in html5-full-render.html and accessing the
185663          renderer 4 times caused a 2% performance regression with this patch. I
185664          reduced it to 1 access and there's no longer any performance regression.
185665        * dom/WebCoreMemoryInstrumentation.cpp:
185666          Removed tracking of the rare data map memory usage as there is no longer
185667          a map to track.
185668        * dom/WebCoreMemoryInstrumentation.h:
185669        * inspector/InspectorMemoryAgent.cpp:
185670        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
185671
1856722012-11-02  Alexey Proskuryakov  <ap@apple.com>
185673
185674        [Mac] ResourceHandle changes for network process
185675        https://bugs.webkit.org/show_bug.cgi?id=101111
185676
185677        Reviewed by Jessie Berlin.
185678
185679        With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
185680        on secondary threads, and so we won't block other requests while consulting with WebProcess.
185681
185682        * platform/network/NetworkingContext.h:
185683        (WebCore::NetworkingContext::scheduledRunLoopPairs):
185684        (WebCore::NetworkingContext::scheduledOperationQueue):
185685        Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
185686        is not a must, give scheduledRunLoopPairs() a default implementation.
185687
185688        * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
185689        static. It was only used to catch a long obsolete bug with debug logging, and
185690        cannot work with multiple threads.
185691        (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
185692        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
185693        check that used isInitializingConnection.
185694
1856952012-11-02  Chris Rogers  <crogers@google.com>
185696
185697        Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
185698        https://bugs.webkit.org/show_bug.cgi?id=100885
185699
185700        Reviewed by Kenneth Russell.
185701
185702        AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
185703
185704        Covered by existing tests.
185705
185706        * Modules/webaudio/AudioParam.cpp:
185707        (WebCore::AudioParam::calculateTimelineValues):
185708        * Modules/webaudio/AudioParamTimeline.cpp:
185709        (WebCore::AudioParamTimeline::valueForContextTime):
185710        (WebCore::AudioParamTimeline::valuesForTimeRange):
185711        (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
185712        * Modules/webaudio/AudioParamTimeline.h:
185713        (AudioParamTimeline):
185714
1857152012-11-02  Stephen Chenney  <schenney@chromium.org>
185716
185717        Reduce redundant code in SimpleFontData[platform]
185718        https://bugs.webkit.org/show_bug.cgi?id=97245
185719
185720        Reviewed by Eric Seidel.
185721
185722        Move duplicated code out of platform specific files and into the common file.
185723        This represents all of the methods in SimpleFontData that do not have genuine
185724        platform specific code.
185725
185726        No new tests because there is no change at all in the functionality.
185727
185728        * platform/graphics/SimpleFontData.cpp:
185729        (WebCore):
185730        (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
185731        (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
185732        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
185733        (WebCore): Removed common code.
185734        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
185735        (WebCore): Removed common code.
185736        * platform/graphics/mac/SimpleFontDataMac.mm:
185737        (WebCore): Removed common code.
185738        * platform/graphics/pango/SimpleFontDataPango.cpp:
185739        (WebCore): Removed common code.
185740        * platform/graphics/qt/SimpleFontDataQt.cpp:
185741        (WebCore): Removed common code.
185742        * platform/graphics/skia/SimpleFontDataSkia.cpp:
185743        (WebCore): Removed common code.
185744        * platform/graphics/win/SimpleFontDataWin.cpp:
185745        (WebCore): Removed common code.
185746        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
185747        (WebCore): Removed common code.
185748        * platform/graphics/wx/SimpleFontDataWx.cpp:
185749        (WebCore): Removed common code.
185750
1857512012-11-02  Adam Barth  <abarth@webkit.org>
185752
185753        memory-instrumentation-cached-images.html is crashing
185754        https://bugs.webkit.org/show_bug.cgi?id=101103
185755
185756        Unreviewed.
185757
185758        Restore code deleted in http://trac.webkit.org/changeset/133331.
185759
185760        * bindings/v8/IntrusiveDOMWrapperMap.h:
185761
1857622012-11-02  Simon Fraser  <simon.fraser@apple.com>
185763
185764        Enable SUBPIXEL_LAYOUT on Mac
185765        https://bugs.webkit.org/show_bug.cgi?id=101076
185766
185767        Reviewed by Dave Hyatt.
185768
185769        Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
185770
185771        * Configurations/FeatureDefines.xcconfig:
185772
1857732012-11-02  Lianghui Chen  <liachen@rim.com>
185774
185775        [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
185776        https://bugs.webkit.org/show_bug.cgi?id=101082
185777
185778        Internal PR: 235410.
185779        Patch suggested by George Staikos, prepared by Lyon Chen.
185780        Reviewed by Yong Li.
185781
185782        ResourceHandle::cancel() should call setClient(0) to close the window
185783        during which it has been cancelled but its client is still there and can
185784        be called.
185785
185786        No new tests as it's a code improvement without obvious bug.
185787
185788        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
185789        (WebCore::ResourceHandle::cancel):
185790
1857912012-11-02  Anders Carlsson  <andersca@apple.com>
185792
185793        Add a PluginInactive plug-in unavailability reason
185794        https://bugs.webkit.org/show_bug.cgi?id=101089
185795
185796        Reviewed by Sam Weinig.
185797
185798        This is to be used by Mac WebKit and WebKit2 shortly.
185799
185800        * English.lproj/Localizable.strings:
185801        * platform/LocalizedStrings.cpp:
185802        (WebCore::inactivePluginText):
185803        (WebCore):
185804        * platform/LocalizedStrings.h:
185805        (WebCore):
185806        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
185807        (WebCore::inactivePluginText):
185808        (WebCore):
185809        * platform/efl/LocalizedStringsEfl.cpp:
185810        (WebCore::inactivePluginText):
185811        (WebCore):
185812        * platform/gtk/LocalizedStringsGtk.cpp:
185813        (WebCore::inactivePluginText):
185814        (WebCore):
185815        * platform/qt/LocalizedStringsQt.cpp:
185816        (WebCore::inactivePluginText):
185817        (WebCore):
185818        * rendering/RenderEmbeddedObject.cpp:
185819        (WebCore::unavailablePluginReplacementText):
185820        * rendering/RenderEmbeddedObject.h:
185821
1858222012-11-02  Rob Buis  <rbuis@rim.com>
185823
185824        [CMAKE] Remove QNX specific section
185825        https://bugs.webkit.org/show_bug.cgi?id=101063
185826
185827        Reviewed by Daniel Bates.
185828
185829        We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
185830        equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
185831
185832        * CMakeLists.txt:
185833
1858342012-11-02  Michael Saboff  <msaboff@apple.com>
185835
185836        visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
185837        https://bugs.webkit.org/show_bug.cgi?id=101014
185838
185839        Reviewed by Geoffrey Garen.
185840
185841        Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
185842        check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
185843        version of the templated methods.  Otherwise we use the 16 bit flavor.
185844
185845        Changes covered by existing tests.
185846
185847        * platform/LinkHash.cpp:
185848        (WebCore::findSlashDotDotSlash):
185849        (WebCore::findSlashSlash):
185850        (WebCore::findSlashDotSlash):
185851        (WebCore::containsColonSlashSlash):
185852        (WebCore::squeezeOutNullCharacters):
185853        (WebCore::cleanSlashDotDotSlashes):
185854        (WebCore::mergeDoubleSlashes):
185855        (WebCore::cleanSlashDotSlashes):
185856        (WebCore::cleanPath):
185857        (WebCore::matchLetter):
185858        (WebCore::needsTrailingSlash):
185859        (WebCore::visitedURLInline):
185860        (WebCore::visitedURL):
185861        (WebCore::visitedLinkHash):
185862
1858632012-11-02  Ian Vollick  <vollick@chromium.org>
185864
185865        Support invalidation tracking for composited layers
185866        https://bugs.webkit.org/show_bug.cgi?id=97801
185867
185868        Reviewed by Simon Fraser.
185869
185870        GraphicsLayers now store invalidated rects and can include them in
185871        the layer tree dump.
185872
185873        Test: compositing/repaint/invalidations-on-composited-layers.html
185874
185875        * WebCore.exp.in:
185876          Exports FrameView::resetTrackedRepaints()
185877        * page/FrameView.cpp:
185878        (WebCore::FrameView::setTracksRepaints):
185879          Notifies each compositor that we are starting/stopping repaints.
185880        (WebCore::FrameView::resetTrackedRepaints):
185881          Moved implementation to the cpp file.
185882        * platform/graphics/GraphicsLayer.cpp:
185883        (WebCore::GraphicsLayer::~GraphicsLayer):
185884          Clears the repaint rects associated with this layer.
185885        (WebCore::GraphicsLayer::resetTrackedRepaints):
185886          Clears the repaint rects associated with this layer.
185887          Note that the repaint rects are stored in a statically allocated
185888          HashMap to avoid using space on the graphics layers.
185889        (WebCore::GraphicsLayer::addRepaintRect):
185890          Adds a repaint rect to list associated with this layer in the
185891          hash map mentioned above.
185892        (WebCore::GraphicsLayer::dumpProperties):
185893          This has been modified to include the repaint rects in the dump
185894          if they've been requested.
185895        * platform/graphics/GraphicsLayerClient.h:
185896        (WebCore::GraphicsLayerClient::isTrackingRepaints):
185897          This is how graphics layers check if repaint tracking is happening.
185898          Returns false by default.
185899        * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
185900        (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
185901        (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
185902        (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
185903          These now call GraphicsLayer::addRepaintRect as necessary.
185904        * platform/graphics/ca/GraphicsLayerCA.cpp:
185905        (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
185906          Now calls GraphicsLayer::addRepaintRect as necessary.
185907        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
185908        (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
185909        (WebCore::GraphicsLayerChromium::setNeedsDisplay):
185910        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
185911          These now call GraphicsLayer::addRepaintRect as necessary.
185912        * platform/graphics/clutter/GraphicsLayerClutter.cpp:
185913        (WebCore::GraphicsLayerClutter::setNeedsDisplay):
185914        (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
185915          These now call GraphicsLayer::addRepaintRect as necessary.
185916        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
185917        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
185918        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
185919        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
185920          These now call GraphicsLayer::addRepaintRect as necessary.
185921        * rendering/RenderLayerBacking.cpp:
185922        (WebCore::RenderLayerBacking::isTrackingRepaints):
185923          Required since this is a GraphicsLayerClient.
185924        * rendering/RenderLayerCompositor.cpp:
185925        (WebCore::RenderLayerCompositor::layerTreeAsText):
185926          Now accepts a flag to include the repaint rects in the layer tree
185927          dump.
185928        (WebCore::resetTrackedRepaintRectsRecursive):
185929          Clears the repaint rects on all graphics layers.
185930        (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
185931          Clears the repaint rects on all graphics layers.
185932        (WebCore::RenderLayerCompositor::isTrackingRepaints):
185933          Required since this is a GraphicsLayerClient.
185934        * testing/Internals.cpp:
185935        (WebCore::Internals::layerTreeAsText):
185936        * testing/Internals.h:
185937        * testing/Internals.idl:
185938          The internals changes plumb the new flag for including the repaint
185939          rects in the layer tree dump.
185940
1859412012-11-02  Adam Barth  <abarth@webkit.org>
185942
185943        [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
185944        https://bugs.webkit.org/show_bug.cgi?id=100973
185945
185946        Reviewed by Stephen White.
185947
185948        This is the first step towards using intrusive DOM wrapper maps more
185949        widely in WebCore (see
185950        http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
185951        for more context).
185952
185953        * bindings/v8/DOMDataStore.cpp:
185954        (WebCore::DOMDataStore::DOMDataStore):
185955        * bindings/v8/IntrusiveDOMWrapperMap.h:
185956        (WebCore):
185957        (WebCore::IntrusiveDOMWrapperMap::weakCallback):
185958
1859592012-11-02  Adam Barth  <abarth@webkit.org>
185960
185961        ASSERT in RenderLayer::hitTestContents can fire
185962        https://bugs.webkit.org/show_bug.cgi?id=99656
185963
185964        Reviewed by Eric Seidel.
185965
185966        The issue is that updateHitTestResult and addNodeToRectBasedTestResult
185967        are using two different nodes. Since they aren't consistent, we violate
185968        assertions about only setting the inner node if we're doing a
185969        rect-based hit test. This patch makes the two consistent.
185970
185971        Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
185972
185973        * rendering/RenderBlock.cpp:
185974        (WebCore::RenderBlock::nodeForHitTest):
185975        (WebCore):
185976        (WebCore::RenderBlock::nodeAtPoint):
185977        (WebCore::RenderBlock::updateHitTestResult):
185978        * rendering/RenderBlock.h:
185979        (RenderBlock):
185980
1859812012-11-02  Mike West  <mkwst@chromium.org>
185982
185983        Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
185984        https://bugs.webkit.org/show_bug.cgi?id=101043
185985
185986        Reviewed by Adam Barth.
185987
185988        The canonical 'Content-Security-Policy' header landed in 133095, but we
185989        missed a few tests while updating to the new hotness. We also should
185990        start using the canonical header for the inspector.
185991
185992        This patch should have no visible change; tests should continue to pass
185993        with the new header, just as they did with the old header.
185994
185995        * inspector/front-end/inspector.html:
185996
1859972012-11-02  Adam Barth  <abarth@webkit.org>
185998
185999        ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
186000        https://bugs.webkit.org/show_bug.cgi?id=100711
186001
186002        Reviewed by Eric Seidel.
186003
186004        No one is actively working on ENABLE(UNDO_MANAGER). There are some
186005        tricky lifetime issues in the UndoManager API that are complicating
186006        ongoing work to improve the interaction between WebCore and the garbage
186007        collector. Rather than leave this code in a broken state, we should
186008        remove it for the time being. We can always restore it from the svn
186009        history when there is an active owner for this code.
186010
186011        * CMakeLists.txt:
186012        * Configurations/FeatureDefines.xcconfig:
186013        * DerivedSources.cpp:
186014        * DerivedSources.make:
186015        * DerivedSources.pri:
186016        * GNUmakefile.features.am:
186017        * GNUmakefile.list.am:
186018        * Target.pri:
186019        * UseJSC.cmake:
186020        * UseV8.cmake:
186021        * WebCore.gypi:
186022        * WebCore.vcproj/WebCore.vcproj:
186023        * WebCore.xcodeproj/project.pbxproj:
186024        * bindings/js/DOMTransaction.cpp: Removed.
186025        * bindings/js/DOMTransaction.h: Removed.
186026        * bindings/js/JSBindingsAllInOne.cpp:
186027        * bindings/js/JSUndoManagerCustom.cpp: Removed.
186028        * bindings/v8/DOMTransaction.cpp: Removed.
186029        * bindings/v8/DOMTransaction.h: Removed.
186030        * bindings/v8/V8HiddenPropertyName.h:
186031        (WebCore):
186032        * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
186033        * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
186034        * css/PropertySetCSSStyleDeclaration.cpp:
186035        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
186036        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
186037        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
186038        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
186039        * dom/CharacterData.cpp:
186040        (WebCore::CharacterData::setDataAndUpdate):
186041        * dom/ContainerNode.cpp:
186042        (WebCore::willRemoveChild):
186043        (WebCore::willRemoveChildren):
186044        (WebCore::updateTreeAfterInsertion):
186045        * dom/Document.cpp:
186046        (WebCore::Document::Document):
186047        * dom/Document.h:
186048        (WebCore):
186049        (Document):
186050        * dom/Document.idl:
186051        * dom/Element.cpp:
186052        (WebCore::Element::willModifyAttribute):
186053        * editing/CompositeEditCommand.h:
186054        * editing/DOMTransaction.idl: Removed.
186055        * editing/DOMTransactionStep.cpp: Removed.
186056        * editing/DOMTransactionStep.h: Removed.
186057        * editing/Editor.cpp:
186058        (WebCore::Editor::appliedEditing):
186059        (WebCore::Editor::unappliedEditing):
186060        (WebCore::Editor::reappliedEditing):
186061        (WebCore::Editor::canUndo):
186062        (WebCore::Editor::undo):
186063        (WebCore::Editor::canRedo):
186064        (WebCore::Editor::redo):
186065        * editing/UndoManager.cpp: Removed.
186066        * editing/UndoManager.h: Removed.
186067        * editing/UndoManager.idl: Removed.
186068        * editing/UndoStep.h:
186069        (UndoStep):
186070
1860712012-11-02  Mike West  <mkwst@chromium.org>
186072
186073        Measure the usage of the various CSP headers.
186074        https://bugs.webkit.org/show_bug.cgi?id=100974
186075
186076        Reviewed by Adam Barth.
186077
186078        Currently, we're collecting metrics regarding usage of the
186079        'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
186080        recently added support for the canonical 'Content-Security-Policy'
186081        and 'Content-Security-Policy-Report-Only' headers. This patch adds
186082        those headers explicitly into the metrics, giving insight into uptake
186083        of the unprefixed header, and into usage of pure reporting vs.
186084        enforcement.
186085
186086        No visible functionality should change; all Content Security Policy
186087        tests should continue to pass.
186088
186089        * page/ContentSecurityPolicy.cpp:
186090        (WebCore::ContentSecurityPolicy::didReceiveHeader):
186091            Convert the CSP header type into a FeatureObserver::Feature, and
186092            observe it.
186093        * page/FeatureObserver.h:
186094            Add three new values to the enum to cover the new header types.
186095
1860962012-11-02  Ojan Vafai  <ojan@chromium.org>
186097
186098        Fix silly mistake from http://trac.webkit.org/changeset/133315.
186099        Forgot to remove the "!".
186100
186101        * css/StyleResolver.cpp:
186102        (WebCore::StyleResolver::canShareStyleWithElement):
186103
1861042012-11-02  Tom Sepez  <tsepez@chromium.org>
186105
186106        Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
186107        https://bugs.webkit.org/show_bug.cgi?id=100892
186108
186109        Reviewed by Adam Barth.
186110
186111        This patch adds a security feature which allows a violation report to be sent back
186112        to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
186113        reporting mechanism as for CSP violation reports.
186114
186115        Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
186116               http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
186117               http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
186118               http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
186119               http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
186120               http/tests/security/xssAuditor/report-script-tag.html
186121               http/tests/security/xssAuditor/xss-protection-parsing-03.html
186122               http/tests/security/xssAuditor/xss-protection-parsing-04.html
186123
186124        * html/parser/XSSAuditor.cpp:
186125        (WebCore::XSSAuditor::XSSAuditor):
186126        (WebCore::XSSAuditor::init):
186127        (WebCore::XSSAuditor::filterToken):
186128        Invoke Ping loader's violation reporting, if requested, when a reflected
186129        XSS is detected.
186130        
186131        * html/parser/XSSAuditor.h:
186132        XSSAuditor class need to store the report URL as well as the undigested versions
186133        of the request URL and request body for reporting.
186134
186135        * loader/MixedContentChecker.cpp:
186136        (WebCore):
186137        * loader/MixedContentChecker.h:
186138        (MixedContentChecker):
186139        Make isMixedContent() method public.
186140
186141        * loader/PingLoader.cpp:
186142        (WebCore::PingLoader::sendViolationReport):
186143        * loader/PingLoader.h:
186144        (PingLoader):
186145        * page/ContentSecurityPolicy.cpp:
186146        (WebCore::ContentSecurityPolicy::reportViolation):
186147        Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
186148        since this is now used to send more than just CSP violations.
186149        
186150        * platform/network/HTTPParsers.cpp:
186151        (WebCore):
186152        (WebCore::skipEquals):
186153        (WebCore::skipValue):
186154        (WebCore::parseXSSProtectionHeader):
186155        * platform/network/HTTPParsers.h:
186156        Parse and return report= directive in X-XSS-Protection header.
186157        
1861582012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
186159
186160        Unreviewed, rolling out r133313.
186161        http://trac.webkit.org/changeset/133313
186162        https://bugs.webkit.org/show_bug.cgi?id=101078
186163
186164        "A lot of tests hit the ASSERTs introduced by this patch"
186165        (Requested by haraken on #webkit).
186166
186167        * bindings/v8/V8DOMWrapper.h:
186168        (WebCore::V8DOMWrapper::setDOMWrapper):
186169
1861702012-11-02  Ojan Vafai  <ojan@chromium.org>
186171
186172        Unreviewed, rolling out r132913.
186173        http://trac.webkit.org/changeset/132913
186174        https://bugs.webkit.org/show_bug.cgi?id=91850
186175
186176        Caused performance regressions.
186177        See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
186178
186179        * bindings/v8/V8PerIsolateData.cpp:
186180        (WebCore::V8PerIsolateData::visitExternalStrings):
186181        * bindings/v8/V8StringResource.cpp:
186182        (StringTraits):
186183        (WebCore::v8StringToWebCoreString):
186184        * bindings/v8/V8ValueCache.cpp:
186185        (WebCore::makeExternalString):
186186        (WebCore::WebCoreStringResource::visitStrings):
186187        * bindings/v8/V8ValueCache.h:
186188        (WebCore::WebCoreStringResource::WebCoreStringResource):
186189        (WebCore::WebCoreStringResource::~WebCoreStringResource):
186190        (WebCore::WebCoreStringResource::data):
186191        (WebCoreStringResource):
186192        (WebCore::WebCoreStringResource::length):
186193        (WebCore::WebCoreStringResource::atomicString):
186194        (WebCore::WebCoreStringResource::toStringResource):
186195
1861962012-11-02  Martin Robinson  <mrobinson@igalia.com>
186197
186198        [GTK] Remove dependency on SoupPasswordManager
186199        https://bugs.webkit.org/show_bug.cgi?id=100775
186200
186201        Reviewed by Carlos Garcia Campos.
186202
186203        Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
186204        a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
186205        CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
186206
186207        No new tests. This does not change behavior.
186208
186209        * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
186210        * GNUmakefile.list.am: Add new files to the source list.
186211        * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
186212        * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
186213        interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
186214        * platform/gtk/GtkAuthenticationDialog.h: Ditto.
186215        * platform/network/gtk/CredentialBackingStore.cpp: Added.
186216        * platform/network/gtk/CredentialBackingStore.h: Added.
186217
1862182012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
186219
186220        Fix build warning [-Wswitch]
186221        https://bugs.webkit.org/show_bug.cgi?id=101029
186222
186223        Reviewed by Alexey Proskuryakov.
186224
186225        Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
186226        in Source/WebCore/css/StyleSheetContents.cpp.
186227        Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
186228
186229        * css/StyleSheetContents.cpp:
186230        (WebCore::childRulesHaveFailedOrCanceledSubresources):
186231
1862322012-11-02  Ojan Vafai  <ojan@chromium.org>
186233
186234        Move m_element checks out of canShareStyle into locateSharedStyle
186235        https://bugs.webkit.org/show_bug.cgi?id=101070
186236
186237        Reviewed by Darin Adler.
186238
186239        Can shareStyleWithElement is called for each sibling as we look for a
186240        shareElement. locateSharedStyle is called once for the element we're
186241        trying to find a style for. Checks that only depend on the latter
186242        element should, thus be in locateSharedStyle.
186243
186244        No new tests. There should be no change in behavior, except possibly
186245        a performance improvement in some cases.
186246
186247        * css/StyleResolver.cpp:
186248        (WebCore::StyleResolver::canShareStyleWithElement):
186249        (WebCore::StyleResolver::locateSharedStyle):
186250
1862512012-11-02  Kentaro Hara  <haraken@chromium.org>
186252
186253        [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
186254        https://bugs.webkit.org/show_bug.cgi?id=101054
186255
186256        Reviewed by Adam Barth.
186257
186258        I'm investigating a Chromium crash bug:
186259        http://code.google.com/p/chromium/issues/detail?id=155942
186260
186261        I've not yet identified the root cause (because I can't reproduce
186262        the crash), but it looks like we are storing NULL pointers to
186263        V8 internal fields. Just in case, we can add an ASSERT() to
186264        guarantee that NULL pointers are never stored. (Also I'm hoping
186265        that this ASSERT() will give me more debug information.)
186266
186267        No tests. No change in behavior.
186268
186269        * bindings/v8/V8DOMWrapper.h:
186270        (WebCore::V8DOMWrapper::setDOMWrapper):
186271
1862722012-11-02  Kevin Ellis  <kevers@chromium.org>
186273
186274        Imrpove scoring in touch adjustment to address bias towards smaller targets.
186275        https://bugs.webkit.org/show_bug.cgi?id=101046
186276
186277        Reviewed by Antonio Gomes.
186278
186279        Update the touch overlap score for touch adjustmetn to normalize
186280        with respect to the maximum possible overlap rather than the size
186281        of the target element.  This change enables good overlap scores for
186282        small and large targets alike.  Prior to the patch it was not possible
186283        to get a good overlap score for a sufficiently larget target.
186284
186285        Covered by existing tests, which have been updated to reflect the
186286        intended behavior.
186287
186288        * page/TouchAdjustment.cpp:
186289        (WebCore::TouchAdjustment::hybridDistanceFunction):
186290
1862912012-11-02  Mike West  <mkwst@chromium.org>
186292
186293        Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
186294        https://bugs.webkit.org/show_bug.cgi?id=101032
186295
186296        Reviewed by Yury Semikhatsky.
186297
186298        https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
186299        '-webkit-flex: 1' only to the list generated for errors in the console.
186300        It should have been added to normal warning text as well. This patch
186301        fixes the problem.
186302
186303        * inspector/front-end/inspector.css:
186304        (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
186305
1863062012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
186307
186308        Web Inspector: Timeline: show popup for CPU bars.
186309        https://bugs.webkit.org/show_bug.cgi?id=100951
186310
186311        Reviewed by Pavel Feldman.
186312
186313        Each CPU bar can represent a combination of several shorter messages.
186314        We should show information about combined messages - start time,
186315        total duration, CPU time, message count.
186316
186317        * English.lproj/localizedStrings.js: Added "Message Count" string.
186318        * inspector/front-end/TimelinePanel.js:
186319        (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
186320        Supply elements with underlying info.
186321        * inspector/front-end/TimelinePresentationModel.js:
186322        (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
186323        Added.
186324
1863252012-11-02  Alexei Filippov  <alph@chromium.org>
186326
186327        Web Inspector: Network panel grid UI is misaligned after r132888
186328        https://bugs.webkit.org/show_bug.cgi?id=101050
186329
186330        Rollback the change to basic data grid css and move it to the native memory
186331        snapshot datagrid css.
186332
186333        Reviewed by Alexander Pavlov.
186334
186335        * inspector/front-end/dataGrid.css:
186336        (.data-grid td):
186337        * inspector/front-end/nativeMemoryProfiler.css:
186338        (.native-snapshot-view .data-grid td):
186339
1863402012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
186341
186342        Unreviewed, rolling out r133303.
186343        http://trac.webkit.org/changeset/133303
186344        https://bugs.webkit.org/show_bug.cgi?id=101068
186345
186346        "Broke qt wk2 build (seems like bots fails to rerun qmake if
186347        needed)" (Requested by kbalazs on #webkit).
186348
186349        * Target.pri:
186350        * WebCore.pri:
186351        * platform/PlatformStrategies.cpp:
186352        (WebCore):
186353        * platform/qt/QtTestSupport.h: Removed.
186354
1863552012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
186356
186357        [Qt][WK2] setPlatformStrategies always asserts after r132744
186358        https://bugs.webkit.org/show_bug.cgi?id=100838
186359
186360        Reviewed by Simon Hausmann.
186361
186362        The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
186363        from the injected bundle, which calls initializeWebCoreQt and it sets the platform
186364        strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
186365        code. In order to keep the behavior, this patch adds exported helpers to WebCore
186366        that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
186367        as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
186368        add it to the WebKit1 API for the time being, but my goal was to move in the direction
186369        of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
186370        in non production mode.
186371
186372        Basically covered by all tests.
186373
186374        * Target.pri:
186375        * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
186376        initializeTestFonts uses it.
186377        * platform/PlatformStrategies.cpp:
186378        (WebCore): Zero initialize the global static variable as it is expected by the functions
186379        below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
186380        common runtime environments tend to zero initialize statics by default - but I don't think
186381        we should rely on that.
186382        * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
186383        is also under that.
186384        (WebKit):
186385        (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
186386        without calling initializeWebCoreQt.
186387        (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
186388        symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
186389        additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
186390        I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
186391        the job even if we would stop clearing all caches between tests. Also moved the call to
186392        QFontDatabase::removeAllApplicationFonts from callers to here.
186393        * platform/qt/QtTestSupport.h:
186394        (WebKit):
186395        (QtTestSupport):
186396
1863972012-11-02  Kent Tamura  <tkent@chromium.org>
186398
186399        Optimize DateTimeFormat::quoteAndAppendLiteral output
186400        https://bugs.webkit.org/show_bug.cgi?id=101040
186401
186402        Reviewed by Kentaro Hara.
186403
186404        In LDML date format pattern, only ASCII alphabet and quote have special
186405        roles. So we don't need to quote the input string if it doesn't contain
186406        them.
186407
186408        No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
186409
186410        * platform/text/DateTimeFormat.cpp:
186411        (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
186412        (WebCore::DateTimeFormat::quoteAndAppendLiteral):
186413        Append the input string as is if it has no special character.
186414
1864152012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
186416
186417        Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
186418        https://bugs.webkit.org/show_bug.cgi?id=101052
186419
186420        Reviewed by Yury Semikhatsky.
186421
186422        I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
186423        MemoryAgent can visit it but instrumentation for these containers report no objectType.
186424        It means that addRootObject method needs to accept objectType property as an argument.
186425        Otherwise I would have had to create a proxy class with proper objectType.
186426
186427        * dom/WebCoreMemoryInstrumentation.cpp:
186428        (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
186429        (WebCore):
186430        * dom/WebCoreMemoryInstrumentation.h:
186431        (WebCoreMemoryInstrumentation):
186432        (WebCore):
186433        * inspector/InspectorMemoryAgent.cpp:
186434        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
186435
1864362012-11-02  Michael Brüning  <michael.bruning@digia.com>
186437
186438        [Qt][WK2] ASSERT hit for every mouse click
186439        https://bugs.webkit.org/show_bug.cgi?id=100607
186440
186441        Reviewed by Jocelyn Turcotte.
186442
186443        Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
186444        by uniting the two in case the mid box is empty. This allows the first box to be merged with
186445        the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
186446        triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
186447
186448        Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
186449        in LayoutRect::intersects already.
186450
186451        No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
186452
186453        * page/GestureTapHighlighter.cpp:
186454
1864552012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
186456
186457        Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
186458        https://bugs.webkit.org/show_bug.cgi?id=99442
186459
186460        Reviewed by Levi Weintraub.
186461
186462        Extra width is displayed after an inline replaced object that follows some
186463        text (not ending in a whitespace) within an inline-block. This is due to
186464        the end width (endMin) of the text object being carried forward (via inlineMin)
186465        and added onto the next line containing the inline replaced object.
186466
186467        This was caused as a regression to, or rather became apparent post the fix
186468        http://trac.webkit.org/changeset/130057 which fixed the block's preferred
186469        width when a renderInline with width contained an inline replaced object.
186470
186471        Test: fast/block/block-with-inline-replaced-child-following-text.html
186472
186473        * rendering/RenderBlock.cpp:
186474        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
186475        Introduced another flag (shouldBreakLineAfterText) which is set when
186476        our current Text line (object) does not end in a whitespace, thereby
186477        implying that there could be more text following, for which the end width
186478        needs to be carried forward onto the next line.
186479
186480        In case the following object instead turns out to be an Inline Replaced
186481        object, we should terminate our previous line and reset this extra width.
186482        This is now being handled by checking for the shouldBreakLineAfterText
186483        flag while processing Inline Replaced objects.
186484
186485        Once set, shouldBreakLineAfterText shall be reset only if we get another
186486        Text object that ends in a whitespace, signifying the termination of
186487        that text line. For all other cases, we persist with this flag through
186488        the block's inline contents.
186489
1864902012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
186491
186492        Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
186493        https://bugs.webkit.org/show_bug.cgi?id=101036
186494
186495        Reviewed by Pavel Feldman.
186496
186497        Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
186498        This functionality seems to be obsolete.
186499
186500        * inspector/front-end/ConsoleView.js: Removed shortcut and function.
186501
1865022012-11-02  Stephen Chenney  <schenney@chromium.org>
186503
186504        SVG classes cause layering violations in platform Font code
186505        https://bugs.webkit.org/show_bug.cgi?id=98513
186506
186507        Reviewed by Eric Seidel.
186508
186509        Add a contained class to save and restore GlpyhPage state in FontFallbackList.
186510        This allows us to remove the layering violation, and several methods, that
186511        previously existed to support SVGTextRunRenderingContext.
186512
186513        No new tests because no change at all in functionality.
186514
186515        * platform/graphics/FontFallbackList.h:
186516        (FontFallbackList):
186517        (GlyphPagesStateSaver): New state save and restore class
186518        (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
186519        (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
186520        * rendering/svg/SVGTextRunRenderingContext.cpp:
186521        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
186522
1865232012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
186524
186525        Web Inspector: Fix compilation errors
186526        https://bugs.webkit.org/show_bug.cgi?id=101027
186527
186528        Reviewed by Yury Semikhatsky.
186529
186530        * inspector/InjectedScriptSource.js:
186531        (.):
186532        * inspector/front-end/NativeMemorySnapshotView.js:
186533        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
186534
1865352012-11-02  Andreas Kling  <kling@webkit.org>
186536
186537        Only resolve attribute-derived style once per shared ElementAttributeData.
186538        <http://webkit.org/b/100990>
186539
186540        Reviewed by Antti Koivisto.
186541
186542        Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
186543        on ElementAttributeData instead of in Node flags.
186544
186545        This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
186546        since the state is no longer per-Element.
186547
186548        I've left the presentation attribute cache in there for now, since it covers two additional cases:
186549
186550            - Elements with the same attributes in different order.
186551            - Elements with the same presentation attributes, but with differing non-presentation attributes.
186552
186553        It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
186554
186555        * dom/Node.h:
186556        * dom/ElementAttributeData.h:
186557        (WebCore::ElementAttributeData::presentationAttributeStyle):
186558        (WebCore::ElementAttributeData::setPresentationAttributeStyle):
186559        (WebCore::ElementAttributeData::styleAttributeIsDirty):
186560        (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
186561        (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
186562        (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
186563        (ElementAttributeData):
186564        (WebCore::ElementAttributeData::ElementAttributeData):
186565        * dom/Element.cpp:
186566        (WebCore::Element::getAttribute):
186567        * dom/Element.h:
186568        (WebCore::Element::styleAttributeIsDirty):
186569        (WebCore::Element::updateInvalidAttributes):
186570        * dom/StyledElement.cpp:
186571        (WebCore::StyledElement::updateStyleAttribute):
186572        (WebCore::StyledElement::attributeChanged):
186573        (WebCore::StyledElement::styleAttributeChanged):
186574        (WebCore::StyledElement::inlineStyleChanged):
186575        * dom/StyledElement.h:
186576        (WebCore::StyledElement::invalidateStyleAttribute):
186577
186578            Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
186579            and change them to both use dirty semantics.
186580
186581        * dom/ElementAttributeData.cpp:
186582        (WebCore::ElementAttributeData::cloneDataFrom):
186583
186584            Share the presentation attribute style between cloned elements initially.
186585
186586        * dom/StyledElement.h:
186587        (WebCore::StyledElement::presentationAttributeStyle):
186588        * css/StyleResolver.cpp:
186589        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
186590        (WebCore::StyleResolver::matchAllRules):
186591        (WebCore::StyleResolver::canShareStyleWithElement):
186592        * dom/ElementAttributeData.cpp:
186593        (WebCore::MutableElementAttributeData::MutableElementAttributeData):
186594        (WebCore::ElementAttributeData::reportMemoryUsage):
186595        * inspector/InspectorCSSAgent.cpp:
186596        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
186597
186598            Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
186599            easily confused with "style attribute".
186600
186601        * dom/StyledElement.cpp:
186602        (WebCore::StyledElement::rebuildPresentationAttributeStyle):
186603
186604            Renamed from updateAttributeStyle().
186605
1866062012-11-01  Kent Tamura  <tkent@chromium.org>
186607
186608        Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
186609        https://bugs.webkit.org/show_bug.cgi?id=101007
186610
186611        Reviewed by Kentaro Hara.
186612
186613        ChromeClient::openDateTimeChooser and Locale::formatDateTime are
186614        necessary if one of date/time input types is enabled and even if
186615        ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
186616        with ENABLE(DATE_AND_TIME_INPUT_TYPES).
186617
186618        The following clases are used only for ChromeClient::openDateTimeChooser.
186619        They should be wrapped with the same flag.
186620          - class DateTimeChooser
186621          - class DateTiemChooserClient
186622
186623        The following classes/functions are used for
186624        Locale::formatDateTime. They should be wrapped with the same flag.
186625          - Locale::dateFormat
186626          - Locale::monthFormat
186627          - Locale::timeFormat
186628          - Locale::shortTimeFormat
186629          - Locale::monthLabels
186630          - Locale::shortMonthLabels
186631          - Locale::standAloneMonthLabels
186632          - Locale::shortStandAloneMonthLabels
186633          - class DateTimeFormat
186634
186635        Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
186636         1) <input> supports calendar picker UI, and
186637         2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
186638        Now ENABLE_CALENDAR_PICKER means only 2.
186639
186640        No new tests because of no behavior changes.
186641
186642        * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
186643        input types are enabled because this is a common super class of
186644        date/time InputType classes.
186645        * html/BaseDateAndTimeInputType.cpp: Ditto.
186646        * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
186647        * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
186648
186649        * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
186650        * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
186651        * loader/EmptyClients.h: Ditto.
186652        * platform/DateTimeChooser.h:
186653        This is needed only if ChromeClient::openDateTimeChooser is available.
186654        * platform/DateTimeChooserClient.h: Ditto.
186655
186656        * platform/LocalizedStrings.h:
186657        weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
186658        ENABLE(INPUT_MULTIPLE_FIELDS_UI).
186659
186660        * platform/text/PlatformLocale.h:
186661        Change the condition for Locale::formatDateTime and the code used by
186662        Locale::formatDateTime.
186663        * platform/text/PlatformLocale.cpp:
186664        (WebCore::Locale::formatDateTime):
186665        This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
186666        localized representations of date/time values.
186667        * platform/text/LocaleICU.cpp:
186668        Change the condition for the code used by Locale::formatDateTime.
186669        * platform/text/LocaleICU.h: Ditto.
186670        * platform/text/LocaleNone.cpp: Ditto.
186671        * platform/text/mac/LocaleMac.h: Ditto.
186672        * platform/text/mac/LocaleMac.mm: Ditto.
186673        * platform/text/win/LocaleWin.cpp: Ditto.
186674        * platform/text/win/LocaleWin.h: Ditto.
186675        * platform/text/DateTimeFormat.cpp: Ditto.
186676        * platform/text/DateTimeFormat.h: Ditto.
186677
186678        * html/BaseMultipleFieldsDateAndTimeInputType.h:
186679        Remove some #if-#endif for a picker indicator element because
186680        ENABLE_CALENDAR_PICKER meaning is changed.
186681        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
186682
186683        * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
186684        INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
186685        * html/shadow/PickerIndicatorElement.h: Ditto.
186686        * rendering/RenderDetailsMarker.cpp: Ditto.
186687        * rendering/RenderDetailsMarker.h: Ditto.
186688        * rendering/RenderTheme.h: Ditto.
186689        * rendering/RenderThemeChromiumCommon.cpp: Ditto.
186690        * rendering/RenderThemeChromiumCommon.h: Ditto.
186691        * rendering/RenderThemeChromiumMac.h: Ditto.
186692        * rendering/RenderThemeChromiumSkia.h: Ditto.
186693
1866942012-11-02  Zeno Albisser  <zeno@webkit.org>
186695
186696        [Qt] Revert QCocoaNativeInterface workaround from r131720.
186697        https://bugs.webkit.org/show_bug.cgi?id=100842
186698
186699        Reviewed by Simon Hausmann.
186700
186701        After updating Qt5 on the buildbots, the workaround
186702        introduced in r131720 is not needed anymore.
186703
186704        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
186705        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
186706
1867072012-11-02  Kent Tamura  <tkent@chromium.org>
186708
186709        Add a common base class for date/time input types without inline editing behavior
186710        https://bugs.webkit.org/show_bug.cgi?id=101031
186711
186712        Reviewed by Hajime Morita.
186713
186714        Add BaseChooserOnlyDateAndTimeInputType class, which will support
186715        DateTimeChooserClient, and date/time input types inherit it if
186716        !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
186717
186718        No new tests. This doesn't change any behavior.
186719
186720        * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
186721        * GNUmakefile.list.am: Ditto.
186722        * Target.pri: Ditto.
186723        * WebCore.gypi: Ditto.
186724        * WebCore.xcodeproj/project.pbxproj: Ditto.
186725        * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
186726        * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
186727
186728        * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
186729        !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
186730        * html/DateTimeInputType.h: Ditto.
186731        * html/DateTimeLocalInputType.h: Ditto.
186732        * html/MonthInputType.h: Ditto.
186733        * html/TimeInputType.h: Ditto.
186734        * html/WeekInputType.h: Ditto.
186735
1867362012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
186737
186738        Web Inspector: [JSC] implement WorkerScriptDebugServer
186739        https://bugs.webkit.org/show_bug.cgi?id=99801
186740
186741        Reviewed by Yury Semikhatsky.
186742
186743        To implement Worker Inspector for JSC.
186744        The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
186745        the JS running in worker-context and normal page-context.
186746        The function "isContentScript" now is virtual because the original invoked functions are useless
186747        and cause problem in worker-context.
186748        In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
186749        ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
186750        JS code (Pause on start).
186751
186752        No new test case.
186753
186754        * bindings/js/PageScriptDebugServer.cpp:
186755        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
186756        (WebCore):
186757        * bindings/js/PageScriptDebugServer.h:
186758        (PageScriptDebugServer):
186759        * bindings/js/ScriptDebugServer.cpp:
186760        (WebCore::ScriptDebugServer::isContentScript):
186761        (WebCore::ScriptDebugServer::pauseIfNeeded):
186762        * bindings/js/ScriptDebugServer.h:
186763        (JSC):
186764        (ScriptDebugServer):
186765        * bindings/js/WorkerScriptController.cpp:
186766        (WebCore::WorkerScriptController::attachDebugger):
186767        (WebCore):
186768        (WebCore::WorkerScriptController::detachDebugger):
186769        * bindings/js/WorkerScriptController.h:
186770        (WorkerScriptController):
186771        * bindings/js/WorkerScriptDebugServer.cpp:
186772        (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
186773        (WebCore):
186774        (WebCore::WorkerScriptDebugServer::addListener):
186775        (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
186776        (WebCore::WorkerScriptDebugServer::removeListener):
186777        (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
186778        * bindings/js/WorkerScriptDebugServer.h:
186779        (WorkerScriptDebugServer):
186780        (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
186781        (WebCore::WorkerScriptDebugServer::isContentScript):
186782
1867832012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
186784
186785        Compilation warning in Node.cpp when USERSELECT_ALL is disabled
186786        https://bugs.webkit.org/show_bug.cgi?id=101025
186787
186788        Reviewed by Ryosuke Niwa.
186789
186790        The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
186791
186792        * dom/Node.cpp:
186793        (WebCore::Node::rendererIsEditable):
186794
1867952012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
186796
186797        Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
186798        https://bugs.webkit.org/show_bug.cgi?id=100743
186799
186800        Reviewed by Alexander Pavlov.
186801
186802        Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
186803        TabbedPane now consumes all middle mouse button mouse ups as well.
186804        Navigator view does not pass focus anymore if element was selected with middle mouse button.
186805
186806        * inspector/front-end/DefaultTextEditor.js:
186807        (.preventDefaultOnMouseUp):
186808        (.consumeMouseUp):
186809        * inspector/front-end/NavigatorView.js:
186810        (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
186811        * inspector/front-end/TabbedPane.js:
186812        (WebInspector.TabbedPane):
186813        (WebInspector.TabbedPane.prototype.onMouseUp):
186814        (WebInspector.TabbedPane.prototype.onMouseClick):
186815
1868162012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
186817
186818        Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
186819        https://bugs.webkit.org/show_bug.cgi?id=100866
186820
186821        Reviewed by Yury Semikhatsky.
186822
186823        Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
186824
186825        * CMakeLists.txt:
186826        * GNUmakefile.list.am:
186827        * Target.pri:
186828        * WebCore.gypi:
186829        * WebCore.vcproj/WebCore.vcproj:
186830        * dom/DocumentOrderedMap.cpp:
186831        (WebCore::DocumentOrderedMap::reportMemoryUsage):
186832        (WebCore):
186833        * dom/DocumentOrderedMap.h:
186834        (DocumentOrderedMap):
186835        * dom/Element.cpp:
186836        (WebCore::Element::reportMemoryUsage):
186837        (WebCore):
186838        * dom/Element.h:
186839        * dom/ElementRareData.cpp: Added.
186840        (WebCore):
186841        (WebCore::ElementRareData::reportMemoryUsage):
186842        * dom/ElementRareData.h:
186843        (ElementRareData):
186844        * dom/ElementShadow.cpp:
186845        (WebCore::ElementShadow::reportMemoryUsage):
186846        (WebCore):
186847        * dom/ElementShadow.h:
186848        (ElementShadow):
186849        * dom/Node.cpp:
186850        (WebCore::Node::reportMemoryUsage):
186851        * dom/NodeRareData.cpp: Added.
186852        (WebCore):
186853        (WebCore::NodeListsNodeData::reportMemoryUsage):
186854        (WebCore::NodeRareData::reportMemoryUsage):
186855        * dom/NodeRareData.h:
186856        (NodeListsNodeData):
186857        (NodeRareData):
186858        * dom/ShadowRoot.cpp:
186859        (WebCore):
186860        (WebCore::ShadowRoot::reportMemoryUsage):
186861        * dom/ShadowRoot.h:
186862        (ShadowRoot):
186863        * dom/TreeScope.cpp:
186864        (WebCore::TreeScope::reportMemoryUsage):
186865        (WebCore):
186866        * dom/TreeScope.h:
186867        (TreeScope):
186868        * html/HTMLFormControlElement.cpp:
186869        (WebCore::HTMLFormControlElement::reportMemoryUsage):
186870        (WebCore):
186871        * html/HTMLFormControlElement.h:
186872        (HTMLFormControlElement):
186873        * html/HTMLInputElement.cpp:
186874        (WebCore::HTMLInputElement::reportMemoryUsage):
186875        (WebCore):
186876        * html/HTMLInputElement.h:
186877        (HTMLInputElement):
186878        * html/HTMLTextFormControlElement.cpp:
186879        (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
186880        (WebCore):
186881        * html/HTMLTextFormControlElement.h:
186882        (HTMLTextFormControlElement):
186883
1868842012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
186885
186886        Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
186887        https://bugs.webkit.org/show_bug.cgi?id=97471
186888
186889        Reviewed by Pavel Feldman.
186890
186891        This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
186892        Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
186893        Cookie table can now show Max-Age as well as Expires attribute of a cookie.
186894        Fixed expiresDate calculation.
186895        Removed getters from CookieParser for better compilation.
186896
186897        * English.lproj/localizedStrings.js:
186898        * inspector/front-end/AuditRules.js:
186899        (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
186900        (WebInspector.AuditRules.CookieSizeRule.prototype._average):
186901        (WebInspector.AuditRules.CookieSizeRule.prototype._max):
186902        (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
186903        * inspector/front-end/CookieItemsView.js:
186904        (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
186905        * inspector/front-end/CookieParser.js:
186906        (WebInspector.CookieParser.prototype.cookies):
186907        (WebInspector.CookieParser.prototype._flushCookie):
186908        (WebInspector.CookieParser.prototype._addCookie):
186909        (WebInspector.Cookie.prototype.httpOnly):
186910        (WebInspector.Cookie.prototype.secure):
186911        (WebInspector.Cookie.prototype.session):
186912        (WebInspector.Cookie.prototype.path):
186913        (WebInspector.Cookie.prototype.domain):
186914        (WebInspector.Cookie.prototype.expires):
186915        (WebInspector.Cookie.prototype.maxAge):
186916        (WebInspector.Cookie.prototype.size):
186917        (WebInspector.Cookie.prototype.setSize):
186918        (WebInspector.Cookie.prototype.expiresDate):
186919        (WebInspector.Cookie.prototype.attributes):
186920        (WebInspector.Cookies.getCookiesAsync):
186921        (WebInspector.Cookies.buildCookiesFromString):
186922        (WebInspector.Cookies.buildCookieProtocolObject):
186923        (WebInspector.Cookies.cookieMatchesResourceURL):
186924        (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
186925        * inspector/front-end/CookiesTable.js:
186926        (WebInspector.CookiesTable):
186927        (WebInspector.CookiesTable.prototype._totalSize):
186928        (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
186929        (WebInspector.CookiesTable.prototype._sortCookies):
186930        (WebInspector.CookiesTable.prototype._createGridNode):
186931        * inspector/front-end/HAREntry.js:
186932        (WebInspector.HAREntry.prototype._buildCookie):
186933
1869342012-11-01  Yury Semikhatsky  <yurys@chromium.org>
186935
186936        Memory instrumentation: do not call checkCountedObject with wrong pointers
186937        https://bugs.webkit.org/show_bug.cgi?id=100958
186938
186939        Reviewed by Alexander Pavlov.
186940
186941        Removed redundant call to checkCountedObject.
186942
186943        * inspector/MemoryInstrumentationImpl.cpp:
186944        (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
186945
1869462012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
186947
186948        Web Inspector: a small defect in "WorkersSidebarPanel.js"
186949        https://bugs.webkit.org/show_bug.cgi?id=101022
186950
186951        Reviewed by Yury Semikhatsky.
186952
186953        In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
186954        "event.target" might be a label.
186955
186956        The problem just causes an error report, doesn't effect function, so no new test case.
186957
186958        * inspector/front-end/WorkersSidebarPane.js:
186959        (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
186960
1869612012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
186962
186963        [Shadow] Element should have getter and setter of attribute 'pseudo'
186964        https://bugs.webkit.org/show_bug.cgi?id=100831
186965
186966        Reviewed by Hajime Morita.
186967
186968        We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
186969
186970        Test: fast/dom/shadow/pseudo-attribute.html
186971
186972        * dom/Element.cpp:
186973        (WebCore::Element::pseudo):
186974        (WebCore):
186975        (WebCore::Element::setPseudo):
186976        * dom/Element.h:
186977        (Element):
186978        * dom/Element.idl:
186979        * html/HTMLAttributeNames.in:
186980
1869812012-11-01  Roger Fong  <roger_fong@apple.com>
186982
186983        Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
186984        https://bugs.webkit.org/show_bug.cgi?id=101008
186985
186986        Reviewed by fischman@chromium.org.
186987
186988        * html/HTMLMediaElement.cpp:
186989        (WebCore::HTMLMediaElement::clearMediaPlayer):
186990        * html/HTMLMediaElement.h:
186991        (HTMLMediaElement):
186992
1869932012-11-01  Stephen White  <senorblanco@chromium.org>
186994
186995        Unreviewed, rolling out r133244.
186996        http://trac.webkit.org/changeset/133244
186997        https://bugs.webkit.org/show_bug.cgi?id=100973
186998
186999        Broke Chromium Mac (clang) builds.
187000
187001        * bindings/v8/DOMDataStore.cpp:
187002        (WebCore::DOMDataStore::DOMDataStore):
187003        * bindings/v8/IntrusiveDOMWrapperMap.h:
187004        (WebCore::DOMNodeWrapperMap::weakCallback):
187005
1870062012-11-01  Ami Fischman  <fischman@chromium.org>
187007
187008        HTMLMediaPlayer should free m_player when src is set/changed
187009        https://bugs.webkit.org/show_bug.cgi?id=99647
187010
187011        Reviewed by Eric Carlson.
187012
187013        New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
187014
187015        * html/HTMLMediaElement.cpp:
187016        (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
187017        (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
187018        (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
187019        (WebCore):
187020        (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
187021        * html/HTMLMediaElement.h: new method: createMediaPlayer().
187022        (HTMLMediaElement):
187023
1870242012-11-01  Tom Sepez  <tsepez@chromium.org>
187025
187026        XSS blocker false positive when page contains <iframe src="">
187027        https://bugs.webkit.org/show_bug.cgi?id=93416
187028
187029        Reviewed by Adam Barth.
187030
187031        Treat src="" and src="about:blank" as safe resources even if they appear
187032        in the query parameters.
187033
187034        Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
187035               http/tests/security/xssAuditor/iframe-injection-allowed-3.html
187036               http/tests/security/xssAuditor/iframe-injection-allowed.html
187037
187038        * html/parser/XSSAuditor.cpp:
187039        (WebCore::XSSAuditor::isLikelySafeResource):
187040
1870412012-11-01  Tien-Ren Chen  <trchen@chromium.org>
187042
187043        Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
187044        https://bugs.webkit.org/show_bug.cgi?id=100912
187045
187046        Reviewed by Simon Fraser.
187047
187048        Frame scale will add transformation to RenderView, so fixed position doesn't
187049        get propagated up to the viewport by RenderGeometryMap. This is handled
187050        correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
187051        This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
187052        transformation case.
187053
187054        A layout test is added to catch this issue. The test will crash debug build
187055        without this patch.
187056
187057        Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
187058
187059        * rendering/RenderGeometryMap.cpp:
187060        (WebCore::RenderGeometryMap::mapToAbsolute):
187061
1870622012-11-01  Adam Barth  <abarth@webkit.org>
187063
187064        [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
187065        https://bugs.webkit.org/show_bug.cgi?id=100973
187066
187067        Reviewed by Kentaro Hara.
187068
187069        This is the first step towards using intrusive DOM wrapper maps more
187070        widely in WebCore (see
187071        http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
187072        for more context).
187073
187074        * bindings/v8/DOMDataStore.cpp:
187075        (WebCore::DOMDataStore::DOMDataStore):
187076        * bindings/v8/IntrusiveDOMWrapperMap.h:
187077        (WebCore):
187078        (WebCore::IntrusiveDOMWrapperMap::weakCallback):
187079
1870802012-11-01  Alexandru Chiculita  <achicu@adobe.com>
187081
187082        [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
187083        https://bugs.webkit.org/show_bug.cgi?id=100533
187084
187085        Reviewed by Dean Jackson.
187086
187087        Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
187088        Both the software path and the composited one will use this operation instead. There will be
187089        no need to check the shader in platform code anymore.
187090
187091        No new tests, already covered by existing custom filter tests.
187092
187093        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
187094        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
187095        * platform/graphics/filters/ValidatedCustomFilterOperation.h:
187096        (WebCore):
187097        (WebCore::ValidatedCustomFilterOperation::create):
187098        (ValidatedCustomFilterOperation):
187099        (WebCore::ValidatedCustomFilterOperation::validatedProgram):
187100        (WebCore::ValidatedCustomFilterOperation::parameters):
187101        (WebCore::ValidatedCustomFilterOperation::meshRows):
187102        (WebCore::ValidatedCustomFilterOperation::meshColumns):
187103        (WebCore::ValidatedCustomFilterOperation::meshType):
187104        (WebCore::ValidatedCustomFilterOperation::operator==):
187105        * rendering/FilterEffectRenderer.cpp:
187106        (WebCore::createCustomFilterEffect):
187107        (WebCore::FilterEffectRenderer::build):
187108        * rendering/RenderLayer.cpp:
187109        (WebCore::RenderLayer::ensureBacking):
187110        (WebCore::RenderLayer::clearBacking):
187111        (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
187112        layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
187113        (WebCore):
187114        (WebCore::RenderLayer::isCSSCustomFilterEnabled):
187115        (WebCore::RenderLayer::computeFilterOperations):
187116        (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
187117        This one is supposed to add the clients needed to load network resources.
187118        (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
187119        and creates a FilterEffectRenderer.
187120        * rendering/RenderLayer.h:
187121        (RenderLayer):
187122
1871232012-11-01  Max Vujovic  <mvujovic@adobe.com>
187124
187125        [CSS Shaders] Get rid of internal tex coord attribute
187126        https://bugs.webkit.org/show_bug.cgi?id=94358
187127
187128        Reviewed by Dean Jackson.
187129
187130        Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
187131        sample the element texture by texture coordinate.
187132
187133        Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
187134        WebKit can add its own a_texCoord definition to the author's shader.
187135
187136        Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
187137        shader if the author did not define a_texCoord with the correct type. Essentially, if
187138        a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
187139        type and that its value is unmodified.
187140
187141        Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
187142
187143        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
187144        (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
187145            Remove the references to m_internalTexCoordAttribLocation.
187146        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
187147        * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
187148        * platform/graphics/filters/CustomFilterRenderer.cpp:
187149        (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
187150        (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
187151        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
187152        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
187153            Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
187154            method.
187155        (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
187156            If the author didn't define a_texCoord, add it to the end of the author's vertex 
187157            shader, but before the shader's new main function. As before, the new main function
187158            will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
187159        * platform/graphics/filters/CustomFilterValidatedProgram.h:
187160        (WebCore):
187161            Add a forward declaration for ANGLEShaderSymbol.
187162        (CustomFilterValidatedProgram):
187163            Update the method prototype for rewriteMixVertexShader.
187164
1871652012-11-01  Chris Rogers  <crogers@google.com>
187166
187167        Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
187168        https://bugs.webkit.org/show_bug.cgi?id=100994
187169
187170        Reviewed by Kenneth Russell.
187171
187172        In some rare cases it has been observed that nodes are getting deleted in the main thread
187173        during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
187174        via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
187175        This was possible because nodes marked for deletion with markForDeletion() could be picked
187176        up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
187177        handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
187178        The solution is to manage the marked nodes in a separate vector which only gets copied to another
187179        vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
187180
187181        * Modules/webaudio/AudioContext.cpp:
187182        (WebCore::AudioContext::markForDeletion):
187183        (WebCore::AudioContext::scheduleNodeDeletion):
187184        (WebCore::AudioContext::deleteMarkedNodes):
187185        * Modules/webaudio/AudioContext.h:
187186        (AudioContext):
187187
1871882012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
187189
187190        Build fix after r133224 as suggested by Enrica.
187191        Confirmed the test failures go away on Chromium Mac locally.
187192
187193        * page/EventHandler.cpp:
187194        (WebCore::EventHandler::updateSelectionForMouseDrag):
187195
1871962012-11-01  Alexey Proskuryakov  <ap@apple.com>
187197
187198        Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
187199
187200        Rubber-stamped by Joe Pecoraro.
187201
187202        All CFNetwork based platforms have this now, but not all use it at the moment.
187203
187204        * loader/ResourceLoader.h:
187205        * loader/SubresourceLoader.h:
187206        * loader/cf/SubresourceLoaderCF.cpp:
187207        * loader/mac/ResourceLoaderMac.mm:
187208        * platform/SharedBuffer.cpp:
187209        (WebCore::SharedBuffer::clear):
187210        (WebCore::SharedBuffer::buffer):
187211        (WebCore::SharedBuffer::getSomeData):
187212        * platform/SharedBuffer.h:
187213        * platform/cf/SharedBufferCF.cpp:
187214        * platform/network/ResourceHandle.h:
187215        * platform/network/ResourceHandleClient.h:
187216        (ResourceHandleClient):
187217        * platform/network/cf/ResourceHandleCFNet.cpp:
187218        (WebCore::willCacheResponse):
187219        (WebCore::ResourceHandle::createCFURLConnection):
187220        * platform/network/mac/ResourceHandleMac.mm:
187221
1872222012-11-01  Alexey Proskuryakov  <ap@apple.com>
187223
187224        Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
187225        https://bugs.webkit.org/show_bug.cgi?id=100979
187226
187227        Reviewed by Joseph Pecoraro.
187228
187229        * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
187230        * loader/ResourceBuffer.h:
187231        Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
187232
187233        * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
187234        InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
187235        here, meaning that the results will likely be incorrect.
187236
187237        * platform/network/cf/ResourceHandleCFNet.cpp:
187238        (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
187239        (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
187240        HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
187241        come together. Changed to check for these separately.
187242
1872432012-11-01  Rob Buis  <rbuis@rim.com>
187244
187245        [BlackBerry] Add more form validation strings
187246        https://bugs.webkit.org/show_bug.cgi?id=100978
187247
187248        Reviewed by Yong Li.
187249
187250        PR 210072
187251
187252        Implement these two methods properly.
187253
187254        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
187255        (WebCore::validationMessageRangeUnderflowText):
187256        (WebCore::validationMessageRangeOverflowText):
187257
1872582012-11-01  Alexandru Chiculita  <achicu@adobe.com>
187259
187260        [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
187261        https://bugs.webkit.org/show_bug.cgi?id=100782
187262
187263        Reviewed by Dean Jackson.
187264
187265        Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
187266        This way we can reuse it without including the CustomFilterOperation file.
187267
187268        No new tests, just refactoring code.
187269
187270        * css/CSSPrimitiveValueMappings.h:
187271        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
187272        (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
187273        * css/StyleResolver.cpp:
187274        (WebCore::StyleResolver::createCustomFilterOperation):
187275        * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
187276        CustomFilterOperation already included AnimationsUtilities.h indirectly.
187277        * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
187278        * platform/graphics/filters/CustomFilterNumberParameter.h:
187279        * platform/graphics/filters/CustomFilterOperation.cpp:
187280        (WebCore::CustomFilterOperation::CustomFilterOperation):
187281        * platform/graphics/filters/CustomFilterOperation.h:
187282        (WebCore::CustomFilterOperation::create):
187283        (WebCore::CustomFilterOperation::meshBoxType):
187284        (CustomFilterOperation):
187285        * platform/graphics/filters/CustomFilterRenderer.cpp:
187286        (WebCore::CustomFilterRenderer::create):
187287        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
187288        * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
187289        headers were needed to replace the files that were automatically incldued because of that file.
187290        (WebCore):
187291        (CustomFilterRenderer):
187292        * platform/graphics/filters/FECustomFilter.cpp:
187293        (WebCore::FECustomFilter::FECustomFilter):
187294        (WebCore::FECustomFilter::create):
187295        * platform/graphics/filters/FECustomFilter.h:
187296        (FECustomFilter):
187297
1872982012-11-01  Enrica Casucci  <enrica@apple.com>
187299
187300        Part2 of: Extend -webkit-user-select with new value "all"
187301        <rdar://problem/10161404>
187302        https://bugs.webkit.org/show_bug.cgi?id=91912
187303
187304        Reviewed by Ryosuke Niwa.
187305
187306        The new value "all" for -webkit-user-select property gives content none-or-all selection option.
187307        The patch was originally prepared by Alice Cheng but the approach has been changed.
187308        The idea is to treat these elements like non editable, meaning that we should skip over them entirely
187309        when moving the cursor and a deletion should delete the element and all its descentants at once.
187310        The key change is in Node::rendererIsEditable where we now return false if the element style is
187311        userSelect: all. The other change is in the way we create the selection on mouse click and dragging
187312        over the element. In both cases we force the selection to extend over the entire element with
187313        the user-select: all attribute.
187314        This is currently enabled only for the Mac port.
187315
187316        Test: editing/selection/user-select-all-selection.html
187317
187318        * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
187319        when called from JavaScript. Internally isContentEditable returns false on
187320        nodes with user-select: all style.
187321        (WebCore::Node::isContentEditable):
187322        (WebCore::Node::isContentRichlyEditable):
187323        (WebCore::Node::rendererIsEditable):
187324        (WebCore::Node::shouldUseInputMethod):
187325        (WebCore::Node::willRespondToMouseClickEvents):
187326        * dom/Node.h:
187327        (WebCore::Node::rendererIsEditable):
187328        (WebCore::Node::rendererIsRichlyEditable):
187329        * dom/Position.cpp:
187330        (WebCore::Position::nodeIsUserSelectAll): Added.
187331        (WebCore::Position::rootUserSelectAllForNode): Added.
187332        * dom/Position.h: Added static functions described above.
187333        * editing/ApplyStyleCommand.cpp:
187334        (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
187335        isContentEditable() call.
187336        (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
187337        isContentEditable() call.
187338        * editing/DeleteFromTextNodeCommand.cpp:
187339        (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
187340        isContentEditable() call.
187341        * editing/FrameSelection.cpp:
187342        (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
187343        (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
187344        (WebCore::FrameSelection::modifyExtendingRight):
187345        (WebCore::FrameSelection::modifyExtendingForward):
187346        (WebCore::FrameSelection::modifyExtendingLeft):
187347        (WebCore::FrameSelection::modifyExtendingBackward):
187348        (WebCore::FrameSelection::modify):
187349        (WebCore::CaretBase::invalidateCaretRect): Added parameter to
187350        isContentEditable() call.
187351        * editing/InsertNodeBeforeCommand.cpp:
187352        (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
187353        (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
187354        * editing/RemoveNodeCommand.cpp:
187355        (WebCore::RemoveNodeCommand::doApply): Ditto.
187356        * editing/visible_units.cpp:
187357        (WebCore::startOfParagraph): We should not consider a paragraph break and element
187358        with user-select: all style, like we do at the border of editability.
187359        (WebCore::endOfParagraph): Ditto.
187360        * page/EventHandler.cpp:
187361        (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
187362        around the element whose style is user-select: all.
187363        (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
187364        * rendering/RootInlineBox.cpp:
187365        (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
187366        If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
187367        we should return the selection state as SelectionBoth, assuming we went past the end selection.
187368        This avoids doing an incorrect gap filling for the selection highlighting.
187369
1873702012-11-01  Alec Flett  <alecflett@chromium.org>
187371
187372        IndexedDB: Fix Windows build by re-adding a #include
187373        https://bugs.webkit.org/show_bug.cgi?id=100986
187374
187375        Reviewed by Stephen White.
187376
187377        Fix #include that broke windows.
187378
187379        * Modules/indexeddb/IDBCallbacks.h:
187380
1873812012-11-01  David Barton  <dbarton@mathscribe.com>
187382
187383        REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
187384        https://bugs.webkit.org/show_bug.cgi?id=97390
187385
187386        Reviewed by Ojan Vafai.
187387
187388        In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
187389        in layout() will be the base's true height, without any flexbox stretching.
187390
187391        Tested by existing tests.
187392
187393        * rendering/mathml/RenderMathMLSubSup.cpp:
187394        (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
187395        (WebCore::RenderMathMLSubSup::addChild):
187396        (WebCore::RenderMathMLSubSup::styleDidChange):
187397        * rendering/mathml/RenderMathMLSubSup.h:
187398        (RenderMathMLSubSup):
187399
1874002012-11-01  Antti Koivisto  <antti@apple.com>
187401
187402        REGRESSION (r132941): attribute modification 10% performance regression
187403        https://bugs.webkit.org/show_bug.cgi?id=100873
187404
187405        Reviewed by Ojan Vafai.
187406
187407        Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
187408        to mark the unchanged classes
187409
187410        * css/StyleResolver.cpp:
187411        (WebCore):
187412        * css/StyleResolver.h:
187413        (WebCore::StyleResolver::hasSelectorForAttribute):
187414        (WebCore):
187415        (WebCore::StyleResolver::hasSelectorForClass):
187416        (WebCore::StyleResolver::hasSelectorForId):
187417        
187418            Inlined these and moved value validity testing to clients.
187419
187420        * dom/Element.cpp:
187421        (WebCore::checkNeedsStyleInvalidationForIdChange):
187422        (WebCore):
187423        (WebCore::Element::attributeChanged):
187424    
187425            Clean up id testing too.
187426
187427        (WebCore::checkNeedsStyleInvalidationForClassChange):
187428        
187429            Use bit vector for marking seen values. Avoids allocations and reffing.
187430
187431        (WebCore::Element::classAttributeChanged):
187432        
187433            Don't test if style is already invalid.
187434
1874352012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
187436
187437        [Mac] Crash in Range::editingStartPosition
187438        https://bugs.webkit.org/show_bug.cgi?id=100972
187439
187440        Reviewed by Enrica Casucci.
187441
187442        Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
187443        pastLastNode() will crash.
187444
187445        No new tests since determining the exact condition under which we go through the said code path and
187446        toNormalRange returns null is hard.
187447
187448        * editing/mac/EditorMac.mm:
187449        (WebCore::Editor::fontForSelection):
187450
1874512012-11-01  Beth Dakin  <bdakin@apple.com>
187452
187453        https://bugs.webkit.org/show_bug.cgi?id=100917
187454        There should be a way to dump the scrolling tree from the layout tests
187455
187456        Reviewed by Simon Fraser.
187457
187458        New Internals call to dump the scrolling state tree as text. Calls through to the 
187459        ScrollingCoordinator.
187460        * testing/Internals.cpp:
187461        (WebCore::Internals::scrollingStateTreeAsText):
187462        (WebCore):
187463        * testing/Internals.h:
187464        * testing/Internals.idl:
187465        * WebCore.exp.in:
187466        * page/Page.cpp:
187467        (WebCore::Page::scrollingStateTreeAsText):
187468        (WebCore):
187469        * page/Page.h:
187470        (Page):
187471
187472        ScrollingCoordinator tells the rootStateNode to dump the tree as text.
187473        * page/scrolling/mac/ScrollingCoordinatorMac.h:
187474        (ScrollingCoordinatorMac):
187475        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
187476        (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
187477        (WebCore):
187478        * page/scrolling/ScrollingCoordinator.cpp:
187479        (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
187480        (WebCore):
187481        * page/scrolling/ScrollingCoordinator.h:
187482        (ScrollingCoordinator):
187483
187484        dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
187485        properties that are specific to different types of nodes.
187486        * page/scrolling/ScrollingStateNode.cpp:
187487        (WebCore::ScrollingStateNode::writeIndent):
187488        (WebCore):
187489        (WebCore::ScrollingStateNode::dumpNode):
187490        (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
187491        * page/scrolling/ScrollingStateNode.h:
187492        (WebCore):
187493        (ScrollingStateNode):
187494        * page/scrolling/ScrollingStateScrollingNode.cpp:
187495        (WebCore::ScrollingStateScrollingNode::dumpProperties):
187496        (WebCore):
187497        * page/scrolling/ScrollingStateScrollingNode.h:
187498        (ScrollingStateScrollingNode):
187499
1875002012-11-01  Kenneth Russell  <kbr@google.com>
187501
187502        Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
187503        https://bugs.webkit.org/show_bug.cgi?id=100971
187504
187505        Reviewed by Stephen White.
187506
187507        The ImageBuffer::copyToPlatformTexture restriction added in
187508        r132965 was too restrictive. Allow RGB textures to prevent
187509        performance regressions.
187510
187511        * html/canvas/WebGLRenderingContext.cpp:
187512        (WebCore):
187513        (WebCore::WebGLRenderingContext::texImage2D):
187514        * platform/graphics/ImageBuffer.h:
187515        (ImageBuffer):
187516
1875172012-11-01  Michael Matovsky  <mmatovsky@rim.com>
187518
187519        [BlackBerry] Web page view state should be preserved for pages loaded from page cache
187520        https://bugs.webkit.org/show_bug.cgi?id=100694
187521        Internal PR: 220488
187522
187523        Internally reviewed by Lianghui Chen, Joe Mason
187524        Reviewed by Rob Buis.
187525
187526        The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
187527        This requires web page view state to be saved in and restored from the corresponding page cache history item.
187528
187529        No new tests for platform specific internal change.
187530
187531        * history/blackberry/HistoryItemViewState.h:
187532        (HistoryItemViewState):
187533
1875342012-11-01  Alec Flett  <alecflett@chromium.org>
187535
187536        IndexedDB: add methods to support id-based backend APIs
187537        https://bugs.webkit.org/show_bug.cgi?id=100425
187538
187539        Reviewed by Tony Chang.
187540
187541        First half of refactor involves adding a number of methods that
187542        are int64_t-based rather than String-based. As a part of this, the
187543        IDB*Metadata structs and the backend objectStore/index maps all
187544        use int64_t as keys, rather than String.
187545
187546        In addition, there were a number of cleanups that came out of the
187547        refactor:
187548
187549        - The list of object stores active in a transaction is now
187550          maintained by the frontend IDBTransaction rather than the backend
187551          IDBTransactionBackendImpl. This also had a simplifying rippling
187552          effect through other call signatures.
187553
187554        - I was able to remove an apparently old FIXME from
187555          IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
187556
187557        - IDBObjectStoreBackendImpl's IndexWriter class got a little
187558          simpler since the id is now easily available in the
187559          IDBIndexMetadata.
187560
187561        - A number of methods got simpler in their int64_t versions,
187562          specifically dropping a number of ExceptionCodes.
187563
187564        There is also some glue code
187565        (getIndexId/getIndexIds/getObjectStoreId) that will go away with
187566        the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
187567
187568        No new tests, no new functionality as this is just a refactor.
187569
187570        * Modules/indexeddb/IDBDatabase.cpp:
187571        (WebCore::IDBDatabase::objectStoreNames):
187572        (WebCore::IDBDatabase::createObjectStore):
187573        (WebCore::IDBDatabase::deleteObjectStore):
187574        (WebCore::IDBDatabase::transaction):
187575        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
187576        (WebCore::IDBDatabaseBackendImpl::metadata):
187577        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
187578        (WebCore::IDBDatabaseBackendImpl::objectStore):
187579        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
187580        (WebCore):
187581        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
187582        (WebCore::IDBDatabaseBackendImpl::transaction):
187583        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
187584        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
187585        (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
187586        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
187587        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
187588        (IDBDatabaseBackendImpl):
187589        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
187590        (IDBDatabaseBackendInterface):
187591        * Modules/indexeddb/IDBIndex.h:
187592        (WebCore::IDBIndex::id):
187593        (WebCore::IDBIndex::openKeyCursor):
187594        * Modules/indexeddb/IDBIndexBackendInterface.h:
187595        * Modules/indexeddb/IDBMetadata.h:
187596        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
187597        (IDBIndexMetadata):
187598        (IDBObjectStoreMetadata):
187599        (WebCore::IDBObjectStoreMetadata::containsIndex):
187600        (IDBDatabaseMetadata):
187601        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
187602        (WebCore::IDBDatabaseMetadata::containsObjectStore):
187603        * Modules/indexeddb/IDBObjectStore.cpp:
187604        (WebCore::IDBObjectStore::indexNames):
187605        (WebCore::IDBObjectStore::put):
187606        (WebCore::IDBObjectStore::createIndex):
187607        (WebCore::IDBObjectStore::index):
187608        (WebCore::IDBObjectStore::deleteIndex):
187609        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
187610        (WebCore::IDBObjectStoreBackendImpl::put):
187611        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
187612        (WebCore):
187613        (WebCore::makeIndexWriters):
187614        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
187615        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
187616        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
187617        (WebCore::IDBObjectStoreBackendImpl::putInternal):
187618        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
187619        (WebCore::IDBObjectStoreBackendImpl::createIndex):
187620        (WebCore::IDBObjectStoreBackendImpl::index):
187621        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
187622        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
187623        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
187624        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
187625        (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
187626        (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
187627        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
187628        (IDBObjectStoreBackendImpl):
187629        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
187630        * Modules/indexeddb/IDBOpenDBRequest.cpp:
187631        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
187632        * Modules/indexeddb/IDBRequest.cpp:
187633        (WebCore::IDBRequest::onSuccess):
187634        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
187635        * Modules/indexeddb/IDBTransaction.cpp:
187636        (WebCore::IDBTransaction::create):
187637        (WebCore::IDBTransaction::IDBTransaction):
187638        (WebCore::IDBTransaction::objectStore):
187639        * Modules/indexeddb/IDBTransaction.h:
187640        (IDBTransaction):
187641        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
187642        (WebCore::IDBTransactionBackendImpl::create):
187643        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
187644        (WebCore::IDBTransactionBackendImpl::objectStore):
187645        (WebCore):
187646        (WebCore::IDBTransactionBackendImpl::scheduleTask):
187647        * Modules/indexeddb/IDBTransactionBackendImpl.h:
187648        (IDBTransactionBackendImpl):
187649        * Modules/indexeddb/IDBTransactionBackendInterface.h:
187650
1876512012-11-01  Adam Barth  <abarth@webkit.org>
187652
187653        [V8] The DOMWrapperVisitor abstraction is no longer needed
187654        https://bugs.webkit.org/show_bug.cgi?id=100965
187655
187656        Reviewed by Kentaro Hara.
187657
187658        This patch removes the DOMWrapperVisitor interface because it is no
187659        longer needed. As a consequence, DOMWrapperMaps no longer need to
187660        support enumeration, and we can move more DOM objects to use the faster
187661        intrusive wrappers.
187662
187663        There was one remaining user of DOMWrapperVisitor in the
187664        ScriptProfiler, which I've moved over to enumerating objects directly
187665        from V8, similar to a function above it in the same file.
187666
187667        * bindings/v8/DOMWrapperMap.h:
187668        (WebCore):
187669        (DOMWrapperMap):
187670        * bindings/v8/IntrusiveDOMWrapperMap.h:
187671        * bindings/v8/ScriptProfiler.cpp:
187672        (WebCore::ScriptProfiler::visitNodeWrappers):
187673        (WebCore::ScriptProfiler::visitExternalArrays):
187674
1876752012-11-01  Mike West  <mkwst@chromium.org>
187676
187677        CSP 1.0: Warn when old-style directives encountered.
187678        https://bugs.webkit.org/show_bug.cgi?id=100883
187679
187680        Reviewed by Adam Barth.
187681
187682        In Mozilla's pre-W3C-spec implementation, a few directives are
187683        implemented that were either renamed, reworked, or removed from CSP 1.0.
187684        This patch adds special warning messages for three of those directives
187685        to set developer expectations correctly.
187686
187687        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
187688
187689        * page/ContentSecurityPolicy.cpp:
187690        (WebCore::CSPDirectiveList::parseDirective):
187691        (WebCore::CSPDirectiveList::addDirective):
187692        (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
187693        * page/ContentSecurityPolicy.h:
187694            Rename 'reportUnrecognizedDirectives' to
187695            'reportUnsupportedDirectives', and teach it to give more descriptive
187696            error messages when encountering 'allow', 'options', and
187697            'policy-uri'.
187698
1876992012-11-01  Pavel Feldman  <pfeldman@chromium.org>
187700
187701        Web Inspector: Update CodeMirror to v3
187702        https://bugs.webkit.org/show_bug.cgi?id=99319
187703
187704        Reviewed by Vsevolod Vlasov.
187705
187706        Updated to ToT v3.
187707
187708        * inspector/front-end/CodeMirrorTextEditor.js:
187709        (WebInspector.CodeMirrorTextEditor):
187710        (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
187711        (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
187712        (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
187713        (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
187714        (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
187715        (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
187716        (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
187717        (WebInspector.CodeMirrorTextEditor.prototype._change):
187718        * inspector/front-end/cm/cmdevtools.css:
187719        (.CodeMirror):
187720        (.CodeMirror-linenumber):
187721        (.cm-breakpoint):
187722        * inspector/front-end/cm/codemirror.css:
187723        (.CodeMirror):
187724        (.CodeMirror-scroll):
187725        (.CodeMirror-lines):
187726        (.CodeMirror pre):
187727        (.CodeMirror-scrollbar-filler):
187728        (.CodeMirror-gutters):
187729        (.CodeMirror-linenumbers):
187730        (.CodeMirror-linenumber):
187731        (.CodeMirror pre.CodeMirror-cursor):
187732        (.CodeMirror pre.CodeMirror-secondarycursor):
187733        (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
187734        (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
187735        (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
187736        (.cm-s-default .cm-keyword):
187737        (.cm-s-default .cm-atom):
187738        (.cm-s-default .cm-number):
187739        (.cm-s-default .cm-def):
187740        (.cm-s-default .cm-variable):
187741        (.cm-s-default .cm-variable-2):
187742        (.cm-s-default .cm-variable-3):
187743        (.cm-s-default .cm-property):
187744        (.cm-s-default .cm-operator):
187745        (.cm-s-default .cm-comment):
187746        (.cm-s-default .cm-string):
187747        (.cm-s-default .cm-string-2):
187748        (.cm-s-default .cm-meta):
187749        (.cm-s-default .cm-error):
187750        (.cm-s-default .cm-qualifier):
187751        (.cm-s-default .cm-builtin):
187752        (.cm-s-default .cm-bracket):
187753        (.cm-s-default .cm-tag):
187754        (.cm-s-default .cm-attribute):
187755        (.cm-s-default .cm-header):
187756        (.cm-s-default .cm-quote):
187757        (.cm-s-default .cm-hr):
187758        (.cm-s-default .cm-link):
187759        (.cm-header, .cm-strong):
187760        (.cm-em):
187761        (.cm-emstrong):
187762        (.cm-link):
187763        (.cm-invalidchar):
187764        (div.CodeMirror span.CodeMirror-matchingbracket):
187765        (div.CodeMirror span.CodeMirror-nonmatchingbracket):
187766        (.CodeMirror-sizer):
187767        (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
187768        (.CodeMirror-vscrollbar):
187769        (.CodeMirror-hscrollbar):
187770        (.CodeMirror-gutter):
187771        (.CodeMirror-gutter-elt):
187772        (.CodeMirror-linebackground):
187773        (.CodeMirror-linewidget):
187774        (.CodeMirror-measure):
187775        (.CodeMirror-measure pre):
187776        (.CodeMirror-selected):
187777        (.CodeMirror-focused .CodeMirror-selected):
187778        (.CodeMirror span):
187779        * inspector/front-end/cm/codemirror.js:
187780        (window.CodeMirror.):
187781        (window.CodeMirror):
187782        * inspector/front-end/utilities.js:
187783
1877842012-11-01  Tiancheng Jiang  <tijiang@rim.com>
187785
187786        [BlackBerry] Update BB10 form theme.
187787        https://bugs.webkit.org/show_bug.cgi?id=100760
187788
187789        Reviewed by Rob Buis.
187790
187791        RIM PR 235194.
187792
187793        Check img pointer is null, if so, do early return.
187794
187795        * platform/blackberry/RenderThemeBlackBerry.cpp:
187796        (WebCore::drawControl):
187797        (WebCore::drawThreeSlice):
187798        (WebCore::drawNineSlice):
187799
1878002012-11-01  Adam Barth  <abarth@webkit.org>
187801
187802        [V8] The V8DOMMap visitors are no longer needed
187803        https://bugs.webkit.org/show_bug.cgi?id=100963
187804
187805        Reviewed by Kentaro Hara.
187806
187807        This patch inlines visitAllDOMNodes into its one caller (and removes
187808        one layer of visitor adaptor abstraction).
187809
187810        * bindings/v8/ScriptProfiler.cpp:
187811        (WebCore::ScriptProfiler::visitNodeWrappers):
187812        * bindings/v8/V8DOMMap.cpp:
187813        * bindings/v8/V8DOMMap.h:
187814        (WebCore):
187815
1878162012-11-01  Tiancheng Jiang  <tijiang@rim.com>
187817
187818        [BlackBerry] Update BB10 form theme.
187819        https://bugs.webkit.org/show_bug.cgi?id=100760
187820
187821        Reviewed by Rob Buis.
187822
187823        RIM PR 235194.
187824
187825        Check img pointer is null, if so, do early return.
187826
187827        * platform/blackberry/RenderThemeBlackBerry.cpp:
187828        (WebCore::drawControl):
187829        (WebCore::drawThreeSlice):
187830        (WebCore::drawNineSlice):
187831
1878322012-11-01  Adam Barth  <abarth@webkit.org>
187833
187834        Unreviewed. Build fix.
187835
187836        * bindings/v8/V8GCController.cpp:
187837
1878382012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
187839
187840        [EFL][WK2] Add Ewk_Auth_Request API
187841        https://bugs.webkit.org/show_bug.cgi?id=100858
187842
187843        Reviewed by Kenneth Rohde Christiansen.
187844
187845        Provide an AuthenticationClient for EFL port in WebCore so
187846        that we can handle authentication similarly to other ports
187847        of WebKit.
187848
187849        No new tests, no behavior change for layout tests.
187850
187851        * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
187852        * loader/ResourceLoader.cpp:
187853        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
187854        * platform/network/ResourceHandle.h:
187855        (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
187856        most of the other ports.
187857        * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
187858        of previousFailureCount member. It should be 1 if we are retrying
187859        authentication and 0 otherwise, not the opposite.
187860        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
187861        * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
187862        port of AuthenticationClient methods.
187863        (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
187864        (WebCoreSynchronousLoader):
187865        (WebCore):
187866        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
187867        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
187868        (WebCore::ResourceHandle::receivedCredential):
187869        (WebCore::ResourceHandle::receivedCancellation):
187870        (WebCore::authenticateCallback):
187871        (WebCore::ResourceHandle::defaultSession):
187872
1878732012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
187874
187875        WebIconDatabase: Properly clean up on destruction
187876        https://bugs.webkit.org/show_bug.cgi?id=100237
187877
187878        Reviewed by Brady Eidson.
187879
187880        It's now possible that the IconDatabase gets destroyed since WebKit2
187881        isn't using it as a singleton.
187882
187883        Check that the database was properly closed rather than asserting that
187884        it won't get deleted.
187885
187886        * loader/icon/IconDatabase.cpp:
187887        (WebCore::IconDatabase::~IconDatabase):
187888
1878892012-11-01  Alexei Filippov  <alph@chromium.org>
187890
187891        Web Inspector: make component subitems use parent color in native memory snapshots.
187892        https://bugs.webkit.org/show_bug.cgi?id=100876
187893
187894        A component subitems use the color of the component itself if the color
187895        is not explicitly specified for the subitem.
187896
187897        Reviewed by Yury Semikhatsky.
187898
187899        * inspector/front-end/NativeMemorySnapshotView.js:
187900        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
187901        (WebInspector.MemoryBlockViewProperties._initialize):
187902        (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
187903
1879042012-11-01  Emil A Eklund  <eae@chromium.org>
187905
187906        [subpixel] Change intrinsicSize to LayoutUnit
187907        https://bugs.webkit.org/show_bug.cgi?id=99104
187908
187909        Reviewed by Levi Weintraub.
187910
187911        Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
187912        rounding problems when zooming/scaling. Also change imageSize to
187913        LayoutUnit as it can return a scaled size.
187914
187915        Test: fast/sub-pixel/tiled-canvas-elements.html
187916
187917        * html/ImageDocument.cpp:
187918        (WebCore::ImageDocumentParser::finish):
187919        * loader/cache/CachedImage.cpp:
187920        (WebCore::CachedImage::imageSizeForRenderer):
187921        * loader/cache/CachedImage.h:
187922        (CachedImage):
187923        * platform/graphics/FractionalLayoutSize.h:
187924        (FractionalLayoutSize):
187925        (WebCore::FractionalLayoutSize::scale):
187926        (WebCore::FractionalLayoutSize::clampToMinimumSize):
187927        * rendering/RenderBox.h:
187928        (WebCore::RenderBox::intrinsicSize):
187929        * rendering/RenderHTMLCanvas.cpp:
187930        (WebCore::RenderHTMLCanvas::canvasSizeChanged):
187931        * rendering/RenderImage.cpp:
187932        (WebCore::RenderImage::imageChanged):
187933        (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
187934        (WebCore::RenderImage::paintReplaced):
187935        (WebCore::RenderImage::minimumReplacedHeight):
187936        * rendering/RenderImage.h:
187937        (RenderImage):
187938        * rendering/RenderImageResource.h:
187939        (WebCore::RenderImageResource::imageSize):
187940        * rendering/RenderImageResourceStyleImage.h:
187941        * rendering/RenderReplaced.cpp:
187942        (WebCore::RenderReplaced::RenderReplaced):
187943        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
187944        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
187945        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
187946        * rendering/RenderReplaced.h:
187947        (RenderReplaced):
187948        (WebCore::RenderReplaced::minimumReplacedHeight):
187949        (WebCore::RenderReplaced::setIntrinsicSize):
187950        * rendering/RenderVideo.cpp:
187951        (WebCore::RenderVideo::updateIntrinsicSize):
187952        (WebCore::RenderVideo::calculateIntrinsicSize):
187953        (WebCore::RenderVideo::videoBox):
187954        (WebCore::RenderVideo::minimumReplacedHeight):
187955        * rendering/RenderVideo.h:
187956        (RenderVideo):
187957        * rendering/style/StyleCachedImage.cpp:
187958        (WebCore::StyleCachedImage::imageSize):
187959        * rendering/style/StyleCachedImage.h:
187960        (StyleCachedImage):
187961        * rendering/style/StyleCachedImageSet.cpp:
187962        (WebCore::StyleCachedImageSet::imageSize):
187963        * rendering/style/StyleCachedImageSet.h:
187964        (StyleCachedImageSet):
187965        * rendering/style/StyleGeneratedImage.cpp:
187966        (WebCore::StyleGeneratedImage::imageSize):
187967        (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
187968        * rendering/style/StyleGeneratedImage.h:
187969        (StyleGeneratedImage):
187970        * rendering/style/StyleImage.h:
187971        (StyleImage):
187972        * rendering/style/StylePendingImage.h:
187973
1879742012-11-01  Adam Barth  <abarth@webkit.org>
187975
187976        [V8] Unify the V8GCController visitors
187977        https://bugs.webkit.org/show_bug.cgi?id=100897
187978
187979        Reviewed by Eric Seidel.
187980
187981        After this patch, we use a single visitor for all DOM wrappers,
187982        regardless of type. We also visit all the wrappers in one pass by
187983        calling v8::V8::VisitHandlesWithClassIds directly rather than via
187984        visitAllDOMNodes.
187985
187986        This patch also introduces a wrapper class ID for non-Node DOM objects.
187987        Previously, only DOM nodes had a class ID.
187988
187989        * bindings/v8/IntrusiveDOMWrapperMap.h:
187990        * bindings/v8/ScriptProfiler.cpp:
187991        (WebCore::retainedDOMInfo):
187992        (WebCore::ScriptProfiler::initialize):
187993        * bindings/v8/V8DOMMap.cpp:
187994        (WebCore::visitAllDOMNodes):
187995        * bindings/v8/V8DOMWrapper.cpp:
187996        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
187997        * bindings/v8/V8DOMWrapper.h:
187998        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
187999        * bindings/v8/V8GCController.cpp:
188000        (WebCore::GCHandleVisitor::notifyFinished):
188001        (GCHandleVisitor):
188002        (WebCore::V8GCController::majorGCPrologue):
188003        * bindings/v8/WrapperTypeInfo.h:
188004        (WebCore):
188005
1880062012-11-01  Stephen White  <senorblanco@chromium.org>
188007
188008        Unreviewed, rolling out r133143.
188009        http://trac.webkit.org/changeset/133143
188010        https://bugs.webkit.org/show_bug.cgi?id=96894
188011
188012        Causing content_browsertests failures
188013
188014        * CMakeLists.txt:
188015        * GNUmakefile.list.am:
188016        * Target.pri:
188017        * WebCore.gypi:
188018        * WebCore.vcproj/WebCore.vcproj:
188019        * WebCore.xcodeproj/project.pbxproj:
188020        * dom/DeviceOrientationClient.h:
188021        (DeviceOrientationClient):
188022        * dom/DeviceOrientationController.cpp:
188023        (WebCore::DeviceOrientationController::DeviceOrientationController):
188024        (WebCore):
188025        (WebCore::DeviceOrientationController::~DeviceOrientationController):
188026        (WebCore::DeviceOrientationController::timerFired):
188027        (WebCore::DeviceOrientationController::addListener):
188028        (WebCore::DeviceOrientationController::removeListener):
188029        (WebCore::DeviceOrientationController::removeAllListeners):
188030        (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
188031        (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
188032        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
188033        (WebCore::DeviceOrientationController::supplementName):
188034        * dom/DeviceOrientationController.h:
188035        (WebCore):
188036        (DeviceOrientationController):
188037        (WebCore::DeviceOrientationController::isActive):
188038        (WebCore::DeviceOrientationController::client):
188039        (WebCore::DeviceOrientationController::from):
188040        * dom/Document.cpp:
188041        (WebCore::Document::suspendActiveDOMObjects):
188042        (WebCore::Document::resumeActiveDOMObjects):
188043        * loader/EmptyClients.h:
188044        (WebCore::EmptyDeviceOrientationClient::startUpdating):
188045        (WebCore::EmptyDeviceOrientationClient::stopUpdating):
188046        * page/DOMWindow.cpp:
188047        (WebCore::DOMWindow::addEventListener):
188048        (WebCore::DOMWindow::removeEventListener):
188049        (WebCore::DOMWindow::removeAllEventListeners):
188050        * page/DeviceClient.h: Removed.
188051        * page/DeviceController.cpp: Removed.
188052        * page/DeviceController.h: Removed.
188053
1880542012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
188055
188056        [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
188057        https://bugs.webkit.org/show_bug.cgi?id=100923.
188058
188059        Reviewed by Kenneth Rohde Christiansen.
188060
188061        GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
188062        This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
188063
188064        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
188065        (WebCore::GraphicsContext3D::~GraphicsContext3D):
188066
1880672012-11-01  Andreas Kling  <kling@webkit.org>
188068
188069        Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
188070        <http://webkit.org/b/100753>
188071
188072        Unreviewed debug bot crash fix after r133138.
188073
188074        There's additional padding after StylePropertySet and ElementAttributeData
188075        in 64-bit debug builds since there are additional members in RefCountedBase.
188076        Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
188077
188078        * css/StylePropertySet.cpp:
188079        (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
188080        * dom/ElementAttributeData.cpp:
188081        (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
188082        (WebCore::ElementAttributeData::createImmutable):
188083        (WebCore::ElementAttributeData::reportMemoryUsage):
188084
1880852012-11-01  Stephen Chenney  <schenney@chromium.org>
188086
188087        FEImage::m_document is never cleared. Why not?
188088        https://bugs.webkit.org/show_bug.cgi?id=99243
188089
188090        Reviewed by Dirk Schulze.
188091
188092        Adding a comment to explain why the failure to clear m_document is not a problem.
188093
188094        No new tests because no code change at all.
188095
188096        * svg/graphics/filters/SVGFEImage.h:
188097        (FEImage): Add a comment on the lifetime of m_document.
188098
1880992012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
188100
188101        Web Inspector: Timeline: make "addRecord" unambiguous
188102        https://bugs.webkit.org/show_bug.cgi?id=100761
188103
188104        Reviewed by Pavel Feldman.
188105
188106        TimelinePresentationModel.addRecord accepts two parameters:
188107        record and parentRecord. parentRecord is always root record.
188108        Make this explicit by removing parentRecord parameter.
188109
188110        * inspector/front-end/TimelinePanel.js: Removed parameter.
188111        * inspector/front-end/TimelinePresentationModel.js:
188112        (WebInspector.TimelinePresentationModel.prototype.addRecord):
188113        Used root recoed instead of parent record.
188114
1881152012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
188116
188117        [BlackBerry] Browser prematurely sends wrong credentials
188118        https://bugs.webkit.org/show_bug.cgi?id=100585
188119
188120        Reviewed by George Staikos.
188121
188122        Don't send credentials to the server before been challenged.
188123
188124        * platform/network/blackberry/NetworkManager.cpp:
188125        (WebCore::NetworkManager::startJob):
188126
1881272012-11-01  Stephen Chenney  <schenney@chromium.org>
188128
188129        SVG as an image may recreate the renderer on zoom
188130        https://bugs.webkit.org/show_bug.cgi?id=99508
188131
188132        Reviewed by Abhishek Arya.
188133
188134        The SVGImage code, when SVG is used in <img> tags, caches the renderer
188135        at the start of the painting method and re-uses the pointer at the end
188136        of the method. However, when the page is zoomed the renderer may be
188137        detached mid-method, thus leaving a stray pointer. The fix is to
188138        re-fetch the pointer after the zooms.
188139
188140        Test: svg/as-image/img-zoom-svg-stylesheet.html
188141
188142        * svg/graphics/SVGImage.cpp:
188143        (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
188144        the zoom operations.
188145
1881462012-11-01  Pavel Feldman  <pfeldman@chromium.org>
188147
188148        Web Inspector: introduce Inspector.detached message containing termination cause.
188149        https://bugs.webkit.org/show_bug.cgi?id=100948
188150
188151        Reviewed by Yury Semikhatsky.
188152
188153        Now protocol clients have more information to process connection termination.
188154
188155        * English.lproj/localizedStrings.js:
188156        * inspector/Inspector.json:
188157        * inspector/front-end/InspectorFrontendHostStub.js:
188158        (WebInspector.RemoteDebuggingTerminatedScreen):
188159        * inspector/front-end/inspector.js:
188160        (WebInspector.loaded.WebInspector.socket.onopen):
188161        (WebInspector.loaded):
188162        (WebInspector.detached):
188163
1881642012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
188165
188166        Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
188167        https://bugs.webkit.org/show_bug.cgi?id=100593
188168
188169        Reviewed by Pavel Feldman.
188170
188171        BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
188172        Removed now redundant callback from UISourceCode.setFormatted().
188173
188174        * inspector/front-end/BreakpointManager.js:
188175        (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
188176        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
188177        (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
188178        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
188179        * inspector/front-end/ScriptsPanel.js:
188180        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
188181        (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
188182        (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
188183        * inspector/front-end/UISourceCode.js:
188184        (WebInspector.UISourceCode.prototype._fireContentAvailable):
188185        (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
188186        (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
188187        (WebInspector.UISourceCode.prototype.setFormatted):
188188
1881892012-10-30  Yury Semikhatsky  <yurys@chromium.org>
188190
188191        Web Inspector: Output code evaluated in the console the same as console.log
188192        https://bugs.webkit.org/show_bug.cgi?id=100695
188193
188194        Reviewed by Pavel Feldman.
188195
188196        Added an option to return object preview from evaluation commands in the protocol.
188197        The option is used to generate preview for console eval results.
188198
188199        * inspector/InjectedScript.cpp:
188200        (WebCore::InjectedScript::evaluate):
188201        (WebCore::InjectedScript::callFunctionOn):
188202        (WebCore::InjectedScript::evaluateOnCallFrame):
188203        * inspector/InjectedScript.h:
188204        (InjectedScript):
188205        * inspector/InjectedScriptSource.js:
188206        (.):
188207        * inspector/Inspector.json:
188208        * inspector/InspectorDebuggerAgent.cpp:
188209        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
188210        * inspector/InspectorDebuggerAgent.h:
188211        (InspectorDebuggerAgent):
188212        * inspector/InspectorRuntimeAgent.cpp:
188213        (WebCore::InspectorRuntimeAgent::evaluate):
188214        (WebCore::InspectorRuntimeAgent::callFunctionOn):
188215        * inspector/InspectorRuntimeAgent.h:
188216        (InspectorRuntimeAgent):
188217        * inspector/front-end/ConsoleMessage.js:
188218        (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
188219        (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
188220        * inspector/front-end/ConsoleView.js:
188221        (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
188222        * inspector/front-end/DebuggerModel.js:
188223        (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
188224        (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
188225        * inspector/front-end/ExtensionServer.js:
188226        (WebInspector.ExtensionServer.prototype.evaluate):
188227        * inspector/front-end/JavaScriptSourceFrame.js:
188228        (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
188229        * inspector/front-end/RemoteObject.js:
188230        (WebInspector.RemoteObject.prototype.):
188231        (WebInspector.RemoteObject.prototype.callFunction):
188232        (WebInspector.RemoteObject.prototype.callFunctionJSON):
188233        * inspector/front-end/RuntimeModel.js:
188234        (WebInspector.RuntimeModel.prototype.evaluate):
188235        (WebInspector.RuntimeModel.prototype.evaluated):
188236        * inspector/front-end/WatchExpressionsSidebarPane.js:
188237        (WebInspector.WatchExpressionsSection.prototype.update):
188238
1882392012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
188240
188241        Web Inspector: Remove obsolete code from JavaScriptSourceFrame
188242        https://bugs.webkit.org/show_bug.cgi?id=100594
188243
188244        Reviewed by Yury Semikhatsky.
188245
188246        Removed obsolete WorkingCopyCommitted listener.
188247        Removed redundant code that removes breakpoints from _innerSetContent.
188248
188249        * inspector/front-end/JavaScriptSourceFrame.js:
188250        (WebInspector.JavaScriptSourceFrame):
188251        (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
188252
1882532012-11-01  Andreas Kling  <kling@webkit.org>
188254
188255        Update average StylePropertySet size estimation.
188256        <http://webkit.org/b/100940>
188257
188258        Reviewed by Antti Koivisto.
188259
188260        Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
188261        size to keep it in sync with the changed object memory layout.
188262
188263        * css/StylePropertySet.cpp:
188264        (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
188265        (WebCore::StylePropertySet::createImmutable):
188266        (WebCore::StylePropertySet::averageSizeInBytes):
188267        (WebCore::StylePropertySet::reportMemoryUsage):
188268
188269
1882702012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
188271
188272        [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
188273        https://bugs.webkit.org/show_bug.cgi?id=100628.
188274
188275        Reviewed by Kenneth Rohde Christiansen.
188276
188277        With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
188278        GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
188279        However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
188280        display from offscreenwindow.
188281        This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
188282
188283        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
188284        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
188285
1882862012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
188287
188288        [CSSRegions]Former auto-height regions should not ignore their defined height
188289        https://bugs.webkit.org/show_bug.cgi?id=100749
188290
188291        Reviewed by Julien Chaffraix.
188292
188293        When a region with height auto has its height defined, we should also clear the override logical content height.
188294        Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
188295
188296        Test: fast/regions/autoheight-definedheight-changenotdetected.html
188297
188298        * rendering/RenderRegion.cpp:
188299        (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
188300
1883012012-11-01  Yury Semikhatsky  <yurys@chromium.org>
188302
188303        Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
188304        https://bugs.webkit.org/show_bug.cgi?id=100934
188305
188306        Reviewed by Alexander Pavlov.
188307
188308        * css/CSSImageGeneratorValue.cpp:
188309        (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
188310        memory usage data.
188311
1883122012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
188313
188314        Add DeviceController base-class to remove duplication of DeviceXXXControler
188315        https://bugs.webkit.org/show_bug.cgi?id=96894
188316
188317        Reviewed by Hajime Morita.
188318
188319        Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
188320        And soon-to-be-added DeviceMotionController and ProximityController.
188321
188322        Covered by existing tests.
188323
188324        * CMakeLists.txt:
188325        * GNUmakefile.list.am:
188326        * Target.pri:
188327        * WebCore.gypi:
188328        * WebCore.vcproj/WebCore.vcproj:
188329        * WebCore.xcodeproj/project.pbxproj:
188330        * dom/DeviceOrientationClient.h:
188331        * dom/DeviceOrientationController.cpp:
188332        Remove member functions to move to DeviceController.
188333        - addListener(), removeListener(), removeAllListeners(), isActive()
188334        (WebCore::DeviceOrientationController::DeviceOrientationController):
188335        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
188336        (WebCore::DeviceOrientationController::client):
188337        (WebCore::DeviceOrientationController::hasLastData):
188338        (WebCore::DeviceOrientationController::getLastEvent):
188339        (WebCore::DeviceOrientationController::from):
188340        (WebCore):
188341        * dom/DeviceOrientationController.h:
188342        (WebCore):
188343        (WebCore::DeviceOrientationController::~DeviceOrientationController):
188344        (DeviceOrientationController):
188345        * dom/Document.cpp:
188346        Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
188347        These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
188348        (WebCore::Document::suspendActiveDOMObjects):
188349        (WebCore::Document::resumeActiveDOMObjects):
188350        * loader/EmptyClients.h:
188351        (EmptyDeviceClient):
188352        (WebCore::EmptyDeviceClient::startUpdating):
188353        (WebCore::EmptyDeviceClient::stopUpdating):
188354        (WebCore):
188355        * page/DOMWindow.cpp:
188356        (WebCore::DOMWindow::addEventListener):
188357        (WebCore::DOMWindow::removeEventListener):
188358        (WebCore::DOMWindow::removeAllEventListeners):
188359        * page/DeviceClient.h: Added.
188360        (WebCore):
188361        (DeviceClient):
188362        (WebCore::DeviceClient::~DeviceClient):
188363        * page/DeviceController.cpp: Added.
188364        DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
188365        - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
188366        All kind of device event controller which has DeviceClient can be inherited from DeviceController.
188367        (WebCore):
188368        (WebCore::DeviceController::DeviceController):
188369        (WebCore::DeviceController::addDeviceEventListener):
188370        (WebCore::DeviceController::removeDeviceEventListener):
188371        (WebCore::DeviceController::removeAllDeviceEventListeners):
188372        (WebCore::DeviceController::dispatchDeviceEvent):
188373        (WebCore::DeviceController::fireDeviceEvent):
188374        * page/DeviceController.h: Added.
188375        (WebCore):
188376        (DeviceController):
188377        (WebCore::DeviceController::~DeviceController):
188378        (WebCore::DeviceController::isActive):
188379        (WebCore::DeviceController::client):
188380        (WebCore::DeviceController::hasLastData):
188381        (WebCore::DeviceController::getLastEvent):
188382
1883832012-11-01  Yury Semikhatsky  <yurys@chromium.org>
188384
188385        Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
188386        https://bugs.webkit.org/show_bug.cgi?id=100497
188387
188388        Reviewed by Alexander Pavlov.
188389
188390        Added memory reporting method to chromium implementation of ResourceRequest.
188391
188392        * platform/network/ResourceRequestBase.cpp:
188393        (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
188394        on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
188395        rather make ResourceRequestBase::reportMemoryUsage virtual and override it
188396        in the descendant but ResourceRequestBase doesn't have any virtual methods
188397        and shouldn't be used directly(ResourceRequest should be used instead).
188398        * platform/network/ResourceRequestBase.h:
188399        (ResourceRequestBase):
188400        * platform/network/chromium/ResourceRequest.cpp:
188401        (WebCore::ResourceRequest::reportMemoryUsage):
188402        (WebCore):
188403        * platform/network/chromium/ResourceRequest.h:
188404        (ResourceRequest):
188405
1884062012-11-01  Andreas Kling  <kling@webkit.org>
188407
188408        Pack immutable StylePropertySets harder on 64-bit.
188409        <http://webkit.org/b/100753>
188410        <rdar://problem/12599155>
188411
188412        Reviewed by Antti Koivisto.
188413
188414        Move away from using CSSProperty as internal storage for immutable StylePropertySets.
188415        Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
188416        and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
188417
188418        Old object layout:
188419
188420            Ref count                   (4 bytes)
188421            Metadata                    (4 bytes)
188422            CSSProperty [N]             (16 bytes each)
188423
188424        New object layout:
188425
188426            Ref count                   (4 bytes)
188427            Metadata                    (4 bytes)
188428            CSSValue* [N]               (8 bytes each)
188429            StylePropertyMetadata [N]   (4 bytes each)
188430
188431        901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
188432
188433        The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
188434        and by the StylePropertySet constructors.
188435
188436        * css/CSSProperty.cpp:
188437        * css/CSSProperty.h:
188438        (CSSProperty):
188439        (WebCore::CSSProperty::CSSProperty):
188440        (WebCore::CSSProperty::id):
188441        (WebCore::CSSProperty::shorthandID):
188442        (WebCore::CSSProperty::isImportant):
188443        (WebCore::CSSProperty::metadata):
188444
188445            Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
188446
188447        * css/StylePropertySet.cpp:
188448        (WebCore::immutableStylePropertySetSize):
188449
188450            Updated size calculation for immutable StylePropertySets, 1/4 smaller!
188451
188452        (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
188453        (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
188454        (WebCore::MutableStylePropertySet::MutableStylePropertySet):
188455        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
188456        (WebCore::StylePropertySet::reportMemoryUsage):
188457        (WebCore::StylePropertySet::PropertyReference::cssName):
188458        (WebCore::StylePropertySet::PropertyReference::cssText):
188459        * css/StylePropertySet.h:
188460        (WebCore::StylePropertySet::PropertyReference::id):
188461        (WebCore::StylePropertySet::PropertyReference::shorthandID):
188462        (WebCore::StylePropertySet::PropertyReference::isImportant):
188463        (WebCore::StylePropertySet::PropertyReference::isInherited):
188464        (WebCore::StylePropertySet::PropertyReference::isImplicit):
188465        (PropertyReference):
188466        (WebCore::StylePropertySet::PropertyReference::value):
188467        (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
188468        (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
188469        (WebCore::StylePropertySet::PropertyReference::propertyValue):
188470        (StylePropertySet):
188471        (ImmutableStylePropertySet):
188472        (WebCore::StylePropertySet::immutableValueArray):
188473        (WebCore::StylePropertySet::immutableMetadataArray):
188474
188475            Refactored internal storage for StylePropertySet.
188476
1884772012-11-01  Kent Tamura  <tkent@chromium.org>
188478
188479        Remove unused Locale::parseDateTime
188480        https://bugs.webkit.org/show_bug.cgi?id=100910
188481
188482        Reviewed by Kentaro Hara.
188483
188484        For date/time input types, InputType::convertFromVisibleValue is never
188485        called. convertFromVisibleValue is called when an inner editable node is
188486        updated. However input elements don't have such editable nodes if
188487        ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
188488        inner editable node otherwise because we open date/time pickers when a
188489        user try to change the field value.
188490
188491        We had used convertFromVisibleValue for input[type=date] with an old UI.
188492
188493        No new tests because of no behavior changes.
188494
188495        * html/BaseDateAndTimeInputType.cpp:
188496        (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
188497        Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
188498
188499        * platform/text/PlatformLocale.h: Remove parseDateTime.
188500
188501        * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
188502        * platform/text/LocaleICU.cpp: Remove parseDateTime.
188503
188504        * platform/text/LocaleNone.cpp: Remove parseDateTime.
188505
188506        * platform/text/mac/LocaleMac.h: Remove parseDateTime.
188507        * platform/text/mac/LocaleMac.mm: Ditto.
188508        * platform/text/win/LocaleWin.h:
188509        - Remove parseDateTime, its helpers, and m_baseYear.
188510        - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
188511          and formatDate. They don't exist.
188512        * platform/text/win/LocaleWin.cpp:
188513        Remove the above functions.
188514        (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
188515
1885162012-10-31  Nate Chapin  <japhet@chromium.org>
188517
188518        Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
188519        https://bugs.webkit.org/show_bug.cgi?id=100901
188520
188521        Reviewed by Adam Barth.
188522
188523        No new tests, refactor only.
188524
188525        * inspector/InspectorPageAgent.cpp:
188526        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
188527        * loader/DocumentThreadableLoader.cpp:
188528        (WebCore::DocumentThreadableLoader::notifyFinished):
188529        * loader/FrameLoader.cpp:
188530        (WebCore::FrameLoader::loadInSameDocument):
188531        * loader/SubresourceLoader.cpp:
188532        (WebCore::SubresourceLoader::didFail):
188533        (WebCore::SubresourceLoader::willCancel):
188534        * loader/cache/CachedResource.cpp:
188535        (WebCore::CachedResource::stopLoading):
188536        * loader/cache/CachedResource.h:
188537        (WebCore::CachedResource::wasCanceled):
188538        (WebCore::CachedResource::errorOccurred):
188539        (WebCore::CachedResource::loadFailedOrCanceled):
188540
1885412012-10-31  Stephen White  <senorblanco@chromium.org>
188542
188543        Unreviewed, rolling out r133122.
188544        http://trac.webkit.org/changeset/133122
188545        https://bugs.webkit.org/show_bug.cgi?id=99083
188546
188547        Broke Chromium Win, Android, ChromeOS builds
188548
188549        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
188550        (WebCore::GraphicsLayerChromium::setContentsOpaque):
188551        (WebCore::GraphicsLayerChromium::paint):
188552        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
188553        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
188554        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
188555        (OpaqueRectTrackingContentLayerDelegate):
188556
1885572012-10-31  Takashi Sakamoto  <tasak@google.com>
188558
188559        [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
188560        https://bugs.webkit.org/show_bug.cgi?id=83664
188561
188562        Reviewed by Hajime Morita.
188563
188564        The original code updates inline style during attach(). However,
188565        the attach would be invoked from Element::recalcStyle()'s reattach().
188566        If updating inline styles during the reattach(), style related flags,
188567        i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
188568        reattach(). So the inline styles are not updated in next
188569        setNeedsStyleRecalc, because ProgressValueElement has already had
188570        InlineStyleChange (existingChanegType == InlineStyleChange) and
188571        markAncestorsWithChildNeedsStyleRecalc is not invoked.
188572
188573        Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
188574
188575        * html/HTMLProgressElement.cpp:
188576        (WebCore::HTMLProgressElement::attach):
188577        Copied updateFromElement from didElementStateChange. If removing the
188578        update, indeterminate-progress-001.html and progress-element.html
188579        under fast/dom/HTMLProgressElement will fail. We still need attach()
188580        and updateFromElement. To remove the attach(), need more refactoring,
188581        i.e. investigating where attach() is invoked from and modifying all
188582        related codes.
188583        (WebCore::HTMLProgressElement::createShadowSubtree):
188584        Initialize m_value by indeterminate-position. The value is default
188585        value of progress element.
188586
1885872012-10-31  Hayato Ito  <hayato@chromium.org>
188588
188589        Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
188590        https://bugs.webkit.org/show_bug.cgi?id=100832
188591
188592        Reviewed by Dimitri Glazkov.
188593
188594        InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
188595
188596        No new tests as no new functionality.
188597
188598        * dom/ComposedShadowTreeWalker.cpp:
188599        * html/shadow/InsertionPoint.h:
188600        (WebCore::shadowOfParentForDistribution):
188601        (WebCore):
188602        (WebCore::resolveReprojection):
188603
1886042012-10-31  Alok Priyadarshi  <alokp@chromium.org>
188605
188606        [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
188607        https://bugs.webkit.org/show_bug.cgi?id=99083
188608
188609        Reviewed by James Robinson.
188610
188611        Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
188612
188613        No new tests needed. This patch does not change anything functionally.
188614
188615        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
188616        (WebCore::GraphicsLayerChromium::setContentsOpaque):
188617        (WebCore::GraphicsLayerChromium::paint):
188618        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
188619        (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
188620        * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
188621        (OpaqueRectTrackingContentLayerDelegate):
188622
1886232012-10-31  Chris Evans  <cevans@google.com>
188624
188625        RenderArena has a memory leak and poor efficiency
188626        https://bugs.webkit.org/show_bug.cgi?id=100893
188627
188628        Reviewed by Eric Seidel.
188629
188630        1) Avoid memory leak that persists for the Document lifetime by
188631        increasing recycled size buckets up to 1024. It was previously 400,
188632        and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
188633        quota. An assert was added to prevent this happening again.
188634
188635        2) Fix the size of the recyled size bucket array on 64-bit. We only
188636        need 8 byte granularity on 64-bit, but we had 4.
188637
188638        3) Try and pass power-of-two sizes to the underlying malloc() call, so
188639        that we're space efficient. We now take Arena metadata into account.
188640
188641        4) Double the default RenderArena size allocation to 8192 bytes. Even
188642        for a render of a trivial text file, 4096 bytes is not enough to prevent
188643        extra calls into the underlying malloc() for more arena pool.
188644
188645        * rendering/RenderArena.cpp:
188646        (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
188647        (WebCore::RenderArena::allocate):
188648        (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
188649        * rendering/RenderArena.h:
188650        (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
188651        (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
188652
1886532012-10-31  Adam Barth  <abarth@webkit.org>
188654
188655        [V8] Garbage collection should use opaque roots rather than implicit references
188656        https://bugs.webkit.org/show_bug.cgi?id=100707
188657
188658        Reviewed by Kentaro Hara.
188659
188660        This patch replaces visitDOMWrapper with opaqueRootForGC. The
188661        former used to inform V8 of implicit relationships between wrapper
188662        objects on a per-wrapper basis. That meant that we needed to know which
188663        DOMDataStore a given wrapper was in during garbage collection.
188664
188665        After this patch, we now use object groups rather than implicit
188666        references to inform V8 of these relationships. That has two benefits:
188667
188668        1) We no longer need to know which DOMDataStore a wrapper belongs
188669           because we don't need to find the exact source wrapper for the
188670           implicit connection.
188671
188672        2) We can now handle more complicated implicit relationships, for
188673           example when some of the intervening objects haven't had their
188674           JavaScript wrappers created yet.
188675
188676        This patch also unlocks to paths of future development:
188677        A) Fixing the remaining failures in fast/dom/gc-9.html
188678        B) Enumerating DOM wrappers entirely from V8 rather than from the
188679           DOMWrapperMaps (so that we can move more object towards using
188680           IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
188681
188682        * bindings/scripts/CodeGeneratorV8.pm:
188683        (NeedsCustomOpaqueRootForGC):
188684        (GenerateOpaqueRootForGC):
188685        (GenerateHeader):
188686        (GenerateImplementation):
188687        * bindings/v8/V8GCController.cpp:
188688        (ImplicitConnection):
188689        (WebCore::ImplicitConnection::ImplicitConnection):
188690        (WebCore::ImplicitConnection::root):
188691        (WebCore::ImplicitConnection::wrapper):
188692        (WebCore):
188693        (WebCore::operator<):
188694        (WrapperGrouper):
188695        (WebCore::WrapperGrouper::WrapperGrouper):
188696        (WebCore::WrapperGrouper::addToGroup):
188697        (WebCore::WrapperGrouper::keepAlive):
188698        (WebCore::WrapperGrouper::apply):
188699        (WebCore::ObjectVisitor::ObjectVisitor):
188700        (WebCore::ObjectVisitor::visitDOMWrapper):
188701        (ObjectVisitor):
188702        (WebCore::V8GCController::opaqueRootForGC):
188703        (WebCore::NodeVisitor::NodeVisitor):
188704        (WebCore::NodeVisitor::visitNodeWrapper):
188705        (NodeVisitor):
188706        (WebCore::V8GCController::majorGCPrologue):
188707        * bindings/v8/V8GCController.h:
188708        (WebCore):
188709        (V8GCController):
188710        * bindings/v8/WrapperTypeInfo.h:
188711        (WebCore):
188712        (WebCore::WrapperTypeInfo::opaqueRootForGC):
188713        (WrapperTypeInfo):
188714        * bindings/v8/custom/V8NodeListCustom.cpp:
188715        (WebCore::V8NodeList::opaqueRootForGC):
188716        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
188717        (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
188718
1887192012-10-31  Stephen White  <senorblanco@chromium.org>
188720
188721        Unreviewed, rolling out r133107.
188722        http://trac.webkit.org/changeset/133107
188723        https://bugs.webkit.org/show_bug.cgi?id=100425
188724
188725        Broke compile on Chromium Win.
188726
188727        * Modules/indexeddb/IDBCallbacks.h:
188728        (IDBCallbacks):
188729        * Modules/indexeddb/IDBDatabase.cpp:
188730        (WebCore::IDBDatabase::objectStoreNames):
188731        (WebCore::IDBDatabase::createObjectStore):
188732        (WebCore::IDBDatabase::deleteObjectStore):
188733        (WebCore::IDBDatabase::transaction):
188734        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
188735        (WebCore::IDBDatabaseBackendImpl::metadata):
188736        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
188737        (WebCore::IDBDatabaseBackendImpl::objectStore):
188738        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
188739        (WebCore::IDBDatabaseBackendImpl::transaction):
188740        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
188741        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
188742        (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
188743        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
188744        (IDBDatabaseBackendImpl):
188745        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
188746        (IDBDatabaseBackendInterface):
188747        * Modules/indexeddb/IDBFactory.cpp:
188748        * Modules/indexeddb/IDBFactory.h:
188749        * Modules/indexeddb/IDBIndex.h:
188750        (WebCore::IDBIndex::openKeyCursor):
188751        * Modules/indexeddb/IDBIndexBackendInterface.h:
188752        * Modules/indexeddb/IDBKeyPath.cpp:
188753        * Modules/indexeddb/IDBMetadata.h:
188754        (WebCore):
188755        (IDBDatabaseMetadata):
188756        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
188757        (IDBObjectStoreMetadata):
188758        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
188759        (IDBIndexMetadata):
188760        * Modules/indexeddb/IDBObjectStore.cpp:
188761        (WebCore::IDBObjectStore::indexNames):
188762        (WebCore::IDBObjectStore::put):
188763        (WebCore::IDBObjectStore::createIndex):
188764        (WebCore::IDBObjectStore::index):
188765        (WebCore::IDBObjectStore::deleteIndex):
188766        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
188767        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
188768        (WebCore):
188769        (WebCore::makeIndexWriters):
188770        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
188771        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
188772        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
188773        (WebCore::IDBObjectStoreBackendImpl::putInternal):
188774        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
188775        (WebCore::IDBObjectStoreBackendImpl::createIndex):
188776        (WebCore::IDBObjectStoreBackendImpl::index):
188777        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
188778        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
188779        (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
188780        (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
188781        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
188782        (IDBObjectStoreBackendImpl):
188783        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
188784        * Modules/indexeddb/IDBOpenDBRequest.cpp:
188785        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
188786        * Modules/indexeddb/IDBRequest.cpp:
188787        (WebCore::IDBRequest::onSuccess):
188788        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
188789        * Modules/indexeddb/IDBTransaction.cpp:
188790        (WebCore::IDBTransaction::create):
188791        (WebCore::IDBTransaction::IDBTransaction):
188792        (WebCore::IDBTransaction::objectStore):
188793        * Modules/indexeddb/IDBTransaction.h:
188794        (IDBTransaction):
188795        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
188796        (WebCore::IDBTransactionBackendImpl::create):
188797        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
188798        (WebCore::IDBTransactionBackendImpl::objectStore):
188799        (WebCore::IDBTransactionBackendImpl::scheduleTask):
188800        * Modules/indexeddb/IDBTransactionBackendImpl.h:
188801        (IDBTransactionBackendImpl):
188802        * Modules/indexeddb/IDBTransactionBackendInterface.h:
188803        * Modules/indexeddb/IDBTransactionCoordinator.h:
188804
1888052012-10-31  Alec Flett  <alecflett@chromium.org>
188806
188807        IndexedDB: add methods to support id-based backend APIs
188808        https://bugs.webkit.org/show_bug.cgi?id=100425
188809
188810        Reviewed by Tony Chang.
188811
188812        First half of refactor involves adding a number of methods that
188813        are int64_t-based rather than String-based. As a part of this, the
188814        IDB*Metadata structs and the backend objectStore/index maps all
188815        use int64_t as keys, rather than String.
188816
188817        In addition, there were a number of cleanups that came out of the
188818        refactor:
188819
188820        - The list of object stores active in a transaction is now
188821          maintained by the frontend IDBTransaction rather than the backend
188822          IDBTransactionBackendImpl. This also had a simplifying rippling
188823          effect through other call signatures.
188824
188825        - I was able to remove an apparently old FIXME from
188826          IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
188827
188828        - IDBObjectStoreBackendImpl's IndexWriter class got a little
188829          simpler since the id is now easily available in the
188830          IDBIndexMetadata.
188831
188832        - A number of methods got simpler in their int64_t versions,
188833          specifically dropping a number of ExceptionCodes.
188834
188835        There is also some glue code
188836        (getIndexId/getIndexIds/getObjectStoreId) that will go away with
188837        the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
188838
188839        No new tests, no new functionality as this is just a refactor.
188840
188841        * Modules/indexeddb/IDBDatabase.cpp:
188842        (WebCore::IDBDatabase::objectStoreNames):
188843        (WebCore::IDBDatabase::createObjectStore):
188844        (WebCore::IDBDatabase::deleteObjectStore):
188845        (WebCore::IDBDatabase::transaction):
188846        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
188847        (WebCore::IDBDatabaseBackendImpl::metadata):
188848        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
188849        (WebCore::IDBDatabaseBackendImpl::objectStore):
188850        (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
188851        (WebCore):
188852        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
188853        (WebCore::IDBDatabaseBackendImpl::transaction):
188854        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
188855        (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
188856        (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
188857        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
188858        (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
188859        (IDBDatabaseBackendImpl):
188860        * Modules/indexeddb/IDBDatabaseBackendInterface.h:
188861        (IDBDatabaseBackendInterface):
188862        * Modules/indexeddb/IDBIndex.h:
188863        (WebCore::IDBIndex::id):
188864        (WebCore::IDBIndex::openKeyCursor):
188865        * Modules/indexeddb/IDBIndexBackendInterface.h:
188866        * Modules/indexeddb/IDBMetadata.h:
188867        (WebCore::IDBIndexMetadata::IDBIndexMetadata):
188868        (IDBIndexMetadata):
188869        (IDBObjectStoreMetadata):
188870        (WebCore::IDBObjectStoreMetadata::containsIndex):
188871        (IDBDatabaseMetadata):
188872        (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
188873        (WebCore::IDBDatabaseMetadata::containsObjectStore):
188874        * Modules/indexeddb/IDBObjectStore.cpp:
188875        (WebCore::IDBObjectStore::indexNames):
188876        (WebCore::IDBObjectStore::put):
188877        (WebCore::IDBObjectStore::createIndex):
188878        (WebCore::IDBObjectStore::index):
188879        (WebCore::IDBObjectStore::deleteIndex):
188880        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
188881        (WebCore::IDBObjectStoreBackendImpl::put):
188882        (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
188883        (WebCore):
188884        (WebCore::makeIndexWriters):
188885        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
188886        (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
188887        (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
188888        (WebCore::IDBObjectStoreBackendImpl::putInternal):
188889        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
188890        (WebCore::IDBObjectStoreBackendImpl::createIndex):
188891        (WebCore::IDBObjectStoreBackendImpl::index):
188892        (WebCore::IDBObjectStoreBackendImpl::getIndexId):
188893        (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
188894        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
188895        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
188896        (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
188897        (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
188898        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
188899        (IDBObjectStoreBackendImpl):
188900        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
188901        * Modules/indexeddb/IDBOpenDBRequest.cpp:
188902        (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
188903        * Modules/indexeddb/IDBRequest.cpp:
188904        (WebCore::IDBRequest::onSuccess):
188905        (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
188906        * Modules/indexeddb/IDBTransaction.cpp:
188907        (WebCore::IDBTransaction::create):
188908        (WebCore::IDBTransaction::IDBTransaction):
188909        (WebCore::IDBTransaction::objectStore):
188910        * Modules/indexeddb/IDBTransaction.h:
188911        (IDBTransaction):
188912        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
188913        (WebCore::IDBTransactionBackendImpl::create):
188914        (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
188915        (WebCore::IDBTransactionBackendImpl::objectStore):
188916        (WebCore):
188917        (WebCore::IDBTransactionBackendImpl::scheduleTask):
188918        * Modules/indexeddb/IDBTransactionBackendImpl.h:
188919        (IDBTransactionBackendImpl):
188920        * Modules/indexeddb/IDBTransactionBackendInterface.h:
188921
1889222012-10-30  Mark Lam  <mark.lam@apple.com>
188923
188924        A JSC printf (support for %J+s and %b).
188925        https://bugs.webkit.org/show_bug.cgi?id=100566.
188926
188927        Reviewed by Michael Saboff.
188928
188929        Added forwarding header for VMInspector.h.
188930
188931        No new tests needed for this.
188932
188933        * ForwardingHeaders/interpreter/VMInspector.h: Added.
188934
1889352012-10-31  Chris Rogers  <crogers@google.com>
188936
188937        Implement optional arguments in AudioBufferSourceNode start() method
188938        https://bugs.webkit.org/show_bug.cgi?id=100894
188939
188940        Reviewed by Kenneth Russell.
188941
188942        The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
188943        offset and duration.  Currently, only 1 and 3 arguments are supported.
188944
188945        Test: webaudio/audiobuffersource-start.html
188946
188947        * Modules/webaudio/AudioBufferSourceNode.cpp:
188948        (WebCore::AudioBufferSourceNode::renderFromBuffer):
188949        (WebCore::AudioBufferSourceNode::startGrain):
188950        (WebCore):
188951        * Modules/webaudio/AudioBufferSourceNode.h:
188952        (AudioBufferSourceNode):
188953        * Modules/webaudio/AudioBufferSourceNode.idl:
188954
1889552012-10-31  Mike West  <mkwst@chromium.org>
188956
188957        Implement the canonical "Content-Security-Policy" header.
188958        https://bugs.webkit.org/show_bug.cgi?id=96765
188959
188960        Reviewed by Adam Barth.
188961
188962        The CSP 1.0 specification defines the "Content-Security-Policy" header
188963        as the canonical mechanism of defining a resource's security policy. Up
188964        through this patch, we've implemented the functionality behind a prefix
188965        in order to ensure compatibility with the standard once it's released as
188966        a recommendation. Both the specification and WebKit's implementation are
188967        far enough along in that process that it makes sense to support the
188968        unprefixed header for sites that wish to opt-in to CSP 1.0.
188969
188970        As discussed on public-webappsec[1], we'll keep the experimental 1.1
188971        features behind the prefixed header ('X-WebKit-CSP') until that standard
188972        is far enough along to justify moving them out to the canonical header.
188973
188974        This patch defines the 'Content-Security-Policy' header for all ports,
188975        just as the 'X-WebKit-CSP' header is currently supported on all ports.
188976        Ports that have not opted-in to the CSP_NEXT flag will see exactly the
188977        same behavior with both headers. Ports that have opted-in will see much
188978        of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
188979        the canonical header.
188980
188981        The functionality in this change is covered by the changes made to
188982        existing tests. No expectations changed, only the headers that are sent.
188983
188984        * dom/Document.cpp:
188985        (WebCore::Document::processHttpEquiv):
188986            Add canonical header support to 'meta' element definitions.
188987        * loader/FrameLoader.cpp:
188988        (WebCore::FrameLoader::didBeginDocument):
188989            Add canonical header support to FrameLoader.
188990        * page/ContentSecurityPolicy.cpp:
188991        (WebCore::CSPDirectiveList::headerType):
188992            The ContentSecurityPolicy::HeaderType enum now has four values:
188993            prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
188994            unprefixed/enforce. Instead of creating logic to output the proper
188995            type based on internal flags, CSPDirectiveList now saves the value
188996            provided at creation time, and returns it via this method.
188997        (CSPDirectiveList):
188998        (WebCore::CSPDirectiveList::CSPDirectiveList):
188999            The constructor now accepts a type, which is stored on the object.
189000            It also stores a new internal variable, 'm_experimental', which
189001            defines whether or not experimental features ought to be available.
189002            These features are still locked behind the CSP_NEXT flag, but that
189003            might not be the case forever.
189004        (WebCore::CSPDirectiveList::create):
189005            The static constructor wrapper now passes the type into the real
189006            constructor, which also now handles setting its internal variables.
189007        (WebCore::CSPDirectiveList::parse):
189008            'parse()' is given the header, so it makes sense to store it here as
189009            well, rather than in the create wrapper.
189010        (WebCore::CSPDirectiveList::addDirective):
189011            1.1 directives remain locked behind CSP_NEXT, but now also require
189012            that 'm_experimental' is set, signaling usage of the prefixed header
189013            and an implicit opt-in to 1.1.
189014        * page/ContentSecurityPolicy.h:
189015            Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
189016            PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
189017            'X-WebKit-CSP', respectively.
189018
1890192012-10-31  Roger Fong  <roger_fong@apple.com>
189020
189021        Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
189022        https://bugs.webkit.org/show_bug.cgi?id=100317
189023
189024        Reviewed by Sam Weinig.
189025
189026        The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
189027        where ownership is determined by how much of the hwnd is on which screen.
189028        To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
189029        To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
189030        However, since the drop down button is something that WebKit renders there is no hwnd.
189031
189032        To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
189033        determine the correct screen, and then eventually move it back to the correct final position after the rest of 
189034        the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
189035        between the temporary and final positionings.
189036
189037        There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
189038
189039        * platform/win/PopupMenuWin.cpp:
189040        (WebCore::monitorFromHwnd):
189041        (WebCore):
189042        (WebCore::PopupMenuWin::show):
189043        (WebCore::PopupMenuWin::calculatePositionAndSize):
189044
1890452012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
189046
189047        Added viewport at-rule to the CSS parser and tokenizer
189048        https://bugs.webkit.org/show_bug.cgi?id=95961
189049
189050        Reviewed by Kenneth Rohde Christiansen.
189051
189052        Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
189053        the newly parsed rule to the rule list.
189054
189055        This parser now implements the following part of the CSS Device Adaptation
189056        specification: http://www.w3.org/TR/css-device-adapt/#syntax
189057
189058        Test: css3/device-adapt/viewport-at-rule-parsing.html
189059
189060        * CMakeLists.txt:
189061        * GNUmakefile.list.am:
189062        * Target.pri:
189063        * WebCore.gypi:
189064        * WebCore.vcproj/WebCore.vcproj:
189065        * WebCore.xcodeproj/project.pbxproj:
189066        * css/CSSGrammar.y.in:
189067        * css/CSSParser.cpp:
189068        (WebCore::CSSParser::CSSParser):
189069        (WebCore::CSSParser::detectAtToken):
189070        (WebCore):
189071        (WebCore::CSSParser::createViewportRule):
189072        * css/CSSParser.h:
189073        (CSSParser):
189074        (WebCore::CSSParser::markViewportRuleBodyStart):
189075        (WebCore::CSSParser::markViewportRuleBodyEnd):
189076        (WebCore::CSSParser::inViewport):
189077
189078            These methods are needed by the next patch validating the properties.
189079            Some viewport properties are common to other rules but have different
189080            semantics, and accepts different keywords. The validation needs to be
189081            done in a different code path.
189082
189083        * css/CSSPropertySourceData.h:
189084        * css/CSSRule.cpp:
189085        (WebCore):
189086        (WebCore::CSSRule::cssText):
189087        (WebCore::CSSRule::destroy):
189088        (WebCore::CSSRule::reattach):
189089        (WebCore::CSSRule::reportMemoryUsage):
189090        * css/CSSRule.h:
189091        (CSSRule):
189092        (WebCore::CSSRule::isViewportRule):
189093        * css/StyleRule.cpp:
189094        (WebCore::StyleRuleBase::reportMemoryUsage):
189095        (WebCore::StyleRuleBase::destroy):
189096        (WebCore::StyleRuleBase::copy):
189097        (WebCore::StyleRuleBase::createCSSOMWrapper):
189098        (WebCore):
189099        (WebCore::StyleRuleViewport::StyleRuleViewport):
189100        (WebCore::StyleRuleViewport::~StyleRuleViewport):
189101        (WebCore::StyleRuleViewport::mutableProperties):
189102        (WebCore::StyleRuleViewport::setProperties):
189103        (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
189104        * css/StyleRule.h:
189105        (StyleRuleBase):
189106        (WebCore::StyleRuleBase::isViewportRule):
189107        (WebCore):
189108        (StyleRuleViewport):
189109        (WebCore::StyleRuleViewport::create):
189110        (WebCore::StyleRuleViewport::properties):
189111        (WebCore::StyleRuleViewport::copy):
189112        * css/WebKitCSSViewportRule.cpp: Added.
189113        (WebCore):
189114        (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
189115        (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
189116        (WebCore::WebKitCSSViewportRule::style):
189117        (WebCore::WebKitCSSViewportRule::cssText):
189118        (WebCore::WebKitCSSViewportRule::reattach):
189119        (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
189120        * css/WebKitCSSViewportRule.h: Added.
189121        (WebCore):
189122
1891232012-10-31  Max Vujovic  <mvujovic@adobe.com>
189124
189125        [CSS Shaders] Validate types of built-in uniforms
189126        https://bugs.webkit.org/show_bug.cgi?id=98974
189127
189128        Reviewed by Dean Jackson.
189129
189130        Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
189131        shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
189132        vec2, not a float.
189133
189134        Relevant Spec Section:
189135        https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
189136
189137        Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
189138
189139        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
189140        (WebCore):
189141        (WebCore::builtInUniformNameToTypeMap):
189142        (WebCore::validateSymbols):
189143
1891442012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
189145
189146        Unreviewed, rolling out r133044.
189147        http://trac.webkit.org/changeset/133044
189148        https://bugs.webkit.org/show_bug.cgi?id=100888
189149
189150        Hits an ASSERT in the isolatedWorlds tests (Requested by
189151        abarth on #webkit).
189152
189153        * bindings/scripts/CodeGeneratorV8.pm:
189154        (NeedsToVisitDOMWrapper):
189155        (GenerateVisitDOMWrapper):
189156        (GenerateHeader):
189157        (GenerateImplementation):
189158        * bindings/v8/V8GCController.cpp:
189159        (WebCore::ObjectVisitor::ObjectVisitor):
189160        (WebCore::ObjectVisitor::visitDOMWrapper):
189161        (ObjectVisitor):
189162        (WebCore::rootForGC):
189163        (ImplicitConnection):
189164        (WebCore::ImplicitConnection::ImplicitConnection):
189165        (WebCore::ImplicitConnection::root):
189166        (WebCore::ImplicitConnection::wrapper):
189167        (WebCore):
189168        (WebCore::operator<):
189169        (WebCore::NodeVisitor::NodeVisitor):
189170        (WebCore::NodeVisitor::visitNodeWrapper):
189171        (NodeVisitor):
189172        (WebCore::NodeVisitor::applyGrouping):
189173        (WebCore::V8GCController::majorGCPrologue):
189174        * bindings/v8/V8GCController.h:
189175        (V8GCController):
189176        * bindings/v8/WrapperTypeInfo.h:
189177        (WebCore):
189178        (WebCore::WrapperTypeInfo::visitDOMWrapper):
189179        (WrapperTypeInfo):
189180        * bindings/v8/custom/V8NodeListCustom.cpp:
189181        (WebCore::V8NodeList::visitDOMWrapper):
189182        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
189183        (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
189184
1891852012-10-31  Philip Rogers  <pdr@google.com>
189186
189187        Cache animationMode() in SVG animations.
189188        https://bugs.webkit.org/show_bug.cgi?id=99694
189189
189190        Reviewed by Eric Seidel.
189191
189192        This patch caches animationMode() which accounted for 25% of the CPU time of a simple
189193        animation benchmark! This is the 3rd patch for WK99694.
189194
189195        Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
189196        <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
189197        animation element that can depend on other elements in the page. For example:
189198        <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
189199        <rect x="0" y="0" width="100" height="100" fill="green">
189200            <animateMotion dur="6s" repeatCount="indefinite">
189201                <mpath xlink:href="#mypath"/>
189202            </animateMotion>
189203        </rect>
189204        See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
189205
189206        animationMode depends on several properties of an animation element: the set tag, whether
189207        the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
189208        a hot function for two reasons:
189209        1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
189210           fastHasAttribute. This is cacheable by simply calculating the animationMode when the
189211           "values" attribute changes.
189212        2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
189213           AnimateMotion can have a path attribute, or it can have <mpath> children that reference
189214           a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
189215           this path lookup on every animation loop in case something changed. After this patch we
189216           only update AnimateMotion's path when it changes.
189217
189218        A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
189219        <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
189220        to track when target <path>s change, instead of looking this up every time.
189221
189222        This refactoring is covered by existing tests.
189223        svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
189224        because our element dependency tracking has a bug with duplicate ids; see WK99893.
189225
189226        * svg/SVGAnimateMotionElement.cpp:
189227        (WebCore::SVGAnimateMotionElement::parseAttribute):
189228        (WebCore::SVGAnimateMotionElement::updateAnimationPath):
189229
189230            animationPath() has been changed to updateAnimationPath() and should only be called
189231            when the animation path (path attribute, or mpath's referenced path) has changed.
189232
189233        (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
189234        (WebCore::SVGAnimateMotionElement::updateAnimationMode):
189235
189236            If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
189237            updateAnimationMode() codepath.
189238
189239        (WebCore):
189240        * svg/SVGAnimateMotionElement.h:
189241        (SVGAnimateMotionElement):
189242        * svg/SVGAnimationElement.cpp:
189243        (WebCore::SVGAnimationElement::SVGAnimationElement):
189244        (WebCore::SVGAnimationElement::isSupportedAttribute):
189245        (WebCore::SVGAnimationElement::parseAttribute):
189246
189247            The from, by, and to attributes have been added so that we can track when they change
189248            and update the animation mode. Similarly for when the values attribute changes.
189249
189250        (WebCore::SVGAnimationElement::updateAnimationMode):
189251        * svg/SVGAnimationElement.h:
189252        (WebCore::SVGAnimationElement::animationMode):
189253        (SVGAnimationElement):
189254        (WebCore::SVGAnimationElement::setAnimationMode):
189255        (WebCore::SVGAnimationElement::calculateDistance):
189256        * svg/SVGMPathElement.cpp:
189257        (WebCore::SVGMPathElement::buildPendingResource):
189258
189259            It would be nice to move all the duplicated buildPendingResource() logic into a central
189260            place (SVGURIReference?) but for now it is copied. This function is nearly identical to
189261            SVGFEImageElement::buildPendingResource.
189262
189263        (WebCore):
189264        (WebCore::SVGMPathElement::clearResourceReferences):
189265        (WebCore::SVGMPathElement::insertedInto):
189266        (WebCore::SVGMPathElement::removedFrom):
189267        (WebCore::SVGMPathElement::svgAttributeChanged):
189268        (WebCore::SVGMPathElement::targetPathChanged):
189269        (WebCore::SVGMPathElement::notifyParentOfPathChange):
189270        * svg/SVGMPathElement.h:
189271        (SVGMPathElement):
189272        * svg/SVGPathElement.cpp:
189273
189274            When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
189275            typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
189276            but for the special-case of <mpath> we only need to track when the path's "d" attribute
189277            changes so invalidateMPathDependencies() has been added.
189278
189279        (WebCore::SVGPathElement::svgAttributeChanged):
189280        (WebCore::SVGPathElement::invalidateMPathDependencies):
189281        (WebCore):
189282        (WebCore::SVGPathElement::insertedInto):
189283        (WebCore::SVGPathElement::removedFrom):
189284        * svg/SVGPathElement.h:
189285        (SVGPathElement):
189286        * svg/SVGSetElement.cpp:
189287        (WebCore::SVGSetElement::SVGSetElement):
189288        (WebCore::SVGSetElement::updateAnimationMode):
189289        (WebCore):
189290        * svg/SVGSetElement.h:
189291        (SVGSetElement):
189292        * svg/animation/SVGSMILElement.cpp:
189293        (WebCore::SVGSMILElement::isSupportedAttribute):
189294
1892952012-10-31  Beth Dakin  <bdakin@apple.com>
189296
189297        https://bugs.webkit.org/show_bug.cgi?id=100879
189298        ScrollingStateNode::cloneAndResetNode() should not be virtual
189299
189300        Reviewed by Simon Fraser.
189301
189302        cloneAndResetNode() is currently pure virtual and implemented only 
189303        in ScrollingStateScrollingNode. However, all of the work that it 
189304        does at this time is stuff that a generic ScrollingStateNode could 
189305        do. We should move this implementation to the base class so that it 
189306        does not need to be duplicated for future node types.
189307
189308        This patch also re-names cloneAndResetNode() to cloneAndReset()
189309        and correspondingly re-names cloneAndResetChildNodes() to 
189310        cloneAndResetChildren(). 
189311
189312        Finally the patch also changes the copy constructors of both of these 
189313        classes to take a const reference instead of a pointer.
189314
189315        * page/scrolling/ScrollingStateNode.cpp:
189316        (WebCore::ScrollingStateNode::ScrollingStateNode):
189317        (WebCore::ScrollingStateNode::cloneAndReset):
189318        (WebCore):
189319        (WebCore::ScrollingStateNode::cloneAndResetChildren):
189320        * page/scrolling/ScrollingStateNode.h:
189321        (ScrollingStateNode):
189322        * page/scrolling/ScrollingStateScrollingNode.cpp:
189323        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
189324        (WebCore):
189325        * page/scrolling/ScrollingStateScrollingNode.h:
189326        (ScrollingStateScrollingNode):
189327        * page/scrolling/ScrollingStateTree.cpp:
189328        (WebCore::ScrollingStateTree::commit):
189329
1893302012-10-31  Tom Sepez  <tsepez@chromium.org>
189331        
189332        Malformed X-XSS-Protection headers not reported.
189333        https://bugs.webkit.org/show_bug.cgi?id=100538
189334
189335        Reviewed by Adam Barth.
189336
189337        Re-writes X-XSS-Protection header parser to be more particular, and to
189338        return better information on error.
189339
189340        Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
189341               http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
189342               http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
189343               http/tests/security/xssAuditor/xss-protection-parsing-02.html
189344
189345        * html/parser/XSSAuditor.cpp:
189346        (WebCore::XSSAuditor::init):
189347        Detect error return code and log console message with details
189348        * platform/network/HTTPParsers.cpp:
189349        (WebCore):
189350        (WebCore::skipWhiteSpace):
189351        Use safe less-than comparsion in case called with pos already out of range.
189352        (WebCore::skipToken):
189353        Fix comparison to properly reject substrings at end of input.  Prevent advancing
189354        returned position when match fails, so that this may someday be used to match
189355        optional tokens.
189356        (WebCore::parseXSSProtectionHeader):
189357        Return detailled error status. Avoid needless string copy.
189358        * platform/network/HTTPParsers.h:
189359        Add new error returns for x-xss-protection header parser.
189360        
1893612012-10-31  Simon Fraser  <simon.fraser@apple.com>
189362
189363        REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
189364        https://bugs.webkit.org/show_bug.cgi?id=100808
189365        <rdar://problem/12562541>
189366
189367        Reviewed by Dean Jackson.
189368
189369        When projecting rects down into transformed layers, the projection can fail with severe
189370        3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
189371        In this case we already clamp, but the fact that we clamped doesn't make it out to
189372        GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
189373        computed.
189374        
189375        Fix by propagating the fact that clamping occurred out of the TransformState functions
189376        which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
189377        to be visible if clamping occurred.
189378
189379        Tests: compositing/tiling/rotated-tiled-clamped.html
189380               compositing/tiling/rotated-tiled-preserve3d-clamped.html
189381
189382        * platform/graphics/ca/GraphicsLayerCA.cpp:
189383        (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
189384        or the state.mappedQuad() clamped, use our bounds as the visible rect.
189385        * platform/graphics/transforms/TransformState.cpp:
189386        (WebCore::TransformState::applyTransform): Pass out clamping state.
189387        (WebCore::TransformState::flatten): Ditto.
189388        (WebCore::TransformState::mappedPoint): Ditto.
189389        (WebCore::TransformState::mappedQuad): Ditto.
189390        (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
189391        wasClamped, since this function is internal.
189392        * platform/graphics/transforms/TransformState.h:
189393        (TransformState):
189394        * platform/graphics/transforms/TransformationMatrix.cpp:
189395        (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
189396        set the flag to say we clamped.
189397        * platform/graphics/transforms/TransformationMatrix.h:
189398        (TransformationMatrix):
189399
1894002012-10-31  Tiancheng Jiang  <tijiang@rim.com>
189401
189402        Change bubble message style to BB10 UX spec.
189403        https://bugs.webkit.org/show_bug.cgi?id=100862
189404
189405        Reviewed by Rob Buis.
189406
189407        RIM PR 198108
189408        Internal Reviewed by Otto Cheung.
189409        No new tests.
189410
189411        * css/themeBlackBerry.css:
189412        (::-webkit-validation-bubble-message): Added.
189413        (::-webkit-validation-bubble-arrow): Added.
189414        (::-webkit-validation-bubble-heading): Added.
189415
1894162012-10-31  Mike West  <mkwst@chromium.org>
189417
189418        Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
189419        https://bugs.webkit.org/show_bug.cgi?id=100850
189420
189421        Reviewed by Adam Barth.
189422
189423        For historical reasons, a few places in WebCore talk to Console directly
189424        via 'document()->domWindow()->console()->addMessage(...)'. This is more
189425        safely wrapped by calling 'addConsoleMessage' on the Document itself.
189426
189427        No visible functionality should change; we'll simply avoid potential
189428        null dereferences in the future.
189429
189430        * html/HTMLFormElement.cpp:
189431        (WebCore::HTMLFormElement::validateInteractively):
189432        * html/canvas/WebGLRenderingContext.cpp:
189433        (WebCore):
189434        (WebCore::WebGLRenderingContext::printWarningToConsole):
189435        * loader/FrameLoader.cpp:
189436        (WebCore::FrameLoader::reportLocalLoadFailed):
189437        * loader/MixedContentChecker.cpp:
189438        (WebCore::MixedContentChecker::logWarning):
189439        * loader/appcache/ApplicationCacheGroup.cpp:
189440        (WebCore::ApplicationCacheGroup::abort):
189441        (WebCore::ApplicationCacheGroup::didReceiveResponse):
189442        (WebCore::ApplicationCacheGroup::didFinishLoading):
189443        (WebCore::ApplicationCacheGroup::didFail):
189444        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
189445        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
189446        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
189447        * loader/cache/CachedResourceLoader.cpp:
189448        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
189449
1894502012-10-31  Pavel Feldman  <pfeldman@chromium.org>
189451
189452        Web Inspector: frame chooser does not work on subsequent inspector open.
189453        https://bugs.webkit.org/show_bug.cgi?id=100771
189454
189455        Reviewed by Yury Semikhatsky.
189456
189457        - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
189458        - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
189459        - Remove remains of the front-end reused signal from InspectorAgent
189460        - Send execution contexts post clear window object instead of post commit load.
189461
189462        * inspector/InspectorAgent.cpp:
189463        (WebCore::InspectorAgent::InspectorAgent):
189464        (WebCore::InspectorAgent::clearFrontend):
189465        (WebCore::InspectorAgent::didCommitLoad):
189466        * inspector/InspectorAgent.h:
189467        (InspectorAgent):
189468        * inspector/InspectorInstrumentation.cpp:
189469        (WebCore):
189470        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
189471        (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
189472        * inspector/InspectorInstrumentation.h:
189473        (InspectorInstrumentation):
189474        * inspector/InspectorPageAgent.cpp:
189475        (WebCore::InspectorPageAgent::restore):
189476        * inspector/InspectorRuntimeAgent.cpp:
189477        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
189478        (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
189479        (WebCore::InspectorRuntimeAgent::run):
189480        (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
189481        * inspector/InspectorRuntimeAgent.h:
189482        (InspectorRuntimeAgent):
189483        * inspector/InstrumentingAgents.h:
189484        (WebCore):
189485        (WebCore::InstrumentingAgents::InstrumentingAgents):
189486        (WebCore::InstrumentingAgents::workerRuntimeAgent):
189487        (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
189488        (InstrumentingAgents):
189489        * inspector/PageRuntimeAgent.cpp:
189490        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
189491        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
189492        (WebCore::PageRuntimeAgent::setFrontend):
189493        (WebCore::PageRuntimeAgent::clearFrontend):
189494        (WebCore::PageRuntimeAgent::enable):
189495        (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
189496        * inspector/PageRuntimeAgent.h:
189497        (PageRuntimeAgent):
189498        * inspector/WorkerRuntimeAgent.cpp:
189499        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
189500        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
189501        (WebCore::WorkerRuntimeAgent::run):
189502        (WebCore):
189503        (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
189504        * inspector/WorkerRuntimeAgent.h:
189505        (WorkerRuntimeAgent):
189506
1895072012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
189508
189509        [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
189510        https://bugs.webkit.org/show_bug.cgi?id=100845.
189511
189512        Reviewed by Noam Rosenthal.
189513
189514        WebGL displays the Canvas with (0,0) being the bottom left corner.
189515        In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
189516        flag before painting to TextureMapper.
189517        It results in backing store contents being drawn upside down on screen.
189518        This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
189519        it's backing store contents into a TextureMapper.
189520
189521        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
189522        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
189523
1895242012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
189525
189526        [Texmap] Enable filter animations in GraphicsLayerAnimation
189527        https://bugs.webkit.org/show_bug.cgi?id=100318
189528
189529        Reviewed by Kenneth Rohde Christiansen.
189530
189531        Use the same method of animating filters in WebCore to animate filters for TextureMapper.
189532        Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
189533
189534        Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
189535
189536        * platform/graphics/GraphicsLayerAnimation.cpp:
189537        (WebCore):
189538        (WebCore::blendFunc):
189539        (WebCore::applyFilterAnimation):
189540        (WebCore::GraphicsLayerAnimation::applyInternal):
189541        * platform/graphics/GraphicsLayerAnimation.h:
189542        (Client):
189543        * platform/graphics/texmap/TextureMapperLayer.cpp:
189544        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
189545        (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
189546        (WebCore::TextureMapperLayer::paintRecursive):
189547        (WebCore::TextureMapperLayer::syncAnimations):
189548        * platform/graphics/texmap/TextureMapperLayer.h:
189549        (TextureMapperLayer):
189550        (WebCore::TextureMapperLayer::setFilters):
189551        (WebCore::TextureMapperLayer::setAnimatedFilters):
189552
1895532012-10-31  Adam Barth  <abarth@webkit.org>
189554
189555        [V8] Garbage collection should use opaque roots rather than implicit references
189556        https://bugs.webkit.org/show_bug.cgi?id=100707
189557
189558        Reviewed by Kentaro Hara.
189559
189560        This patch replaces visitDOMWrapper with opaqueRootForGC. The
189561        former used to inform V8 of implicit relationships between wrapper
189562        objects on a per-wrapper basis. That meant that we needed to know which
189563        DOMDataStore a given wrapper was in during garbage collection.
189564
189565        After this patch, we now use object groups rather than implicit
189566        references to inform V8 of these relationships. That has two benefits:
189567
189568        1) We no longer need to know which DOMDataStore a wrapper belongs
189569           because we don't need to find the exact source wrapper for the
189570           implicit connection.
189571
189572        2) We can now handle more complicated implicit relationships, for
189573           example when some of the intervening objects haven't had their
189574           JavaScript wrappers created yet.
189575
189576        This patch also unlocks to paths of future development:
189577        A) Fixing the remaining failures in fast/dom/gc-9.html
189578        B) Enumerating DOM wrappers entirely from V8 rather than from the
189579           DOMWrapperMaps (so that we can move more object towards using
189580           IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
189581
189582        * bindings/scripts/CodeGeneratorV8.pm:
189583        (NeedsCustomOpaqueRootForGC):
189584        (GenerateOpaqueRootForGC):
189585        (GenerateHeader):
189586        (GenerateImplementation):
189587        * bindings/v8/V8GCController.cpp:
189588        (ImplicitConnection):
189589        (WebCore::ImplicitConnection::ImplicitConnection):
189590        (WebCore::ImplicitConnection::root):
189591        (WebCore::ImplicitConnection::wrapper):
189592        (WebCore):
189593        (WebCore::operator<):
189594        (WrapperGrouper):
189595        (WebCore::WrapperGrouper::WrapperGrouper):
189596        (WebCore::WrapperGrouper::addToGroup):
189597        (WebCore::WrapperGrouper::keepAlive):
189598        (WebCore::WrapperGrouper::apply):
189599        (WebCore::ObjectVisitor::ObjectVisitor):
189600        (WebCore::ObjectVisitor::visitDOMWrapper):
189601        (ObjectVisitor):
189602        (WebCore::V8GCController::opaqueRootForGC):
189603        (WebCore::NodeVisitor::NodeVisitor):
189604        (WebCore::NodeVisitor::visitNodeWrapper):
189605        (NodeVisitor):
189606        (WebCore::V8GCController::majorGCPrologue):
189607        * bindings/v8/V8GCController.h:
189608        (WebCore):
189609        (V8GCController):
189610        * bindings/v8/WrapperTypeInfo.h:
189611        (WebCore):
189612        (WebCore::WrapperTypeInfo::opaqueRootForGC):
189613        (WrapperTypeInfo):
189614        * bindings/v8/custom/V8NodeListCustom.cpp:
189615        (WebCore::V8NodeList::opaqueRootForGC):
189616        * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
189617        (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
189618
1896192012-10-31  Alexei Filippov  <alph@chromium.org>
189620
189621        Web Inspector: Add total node to native memory snapshot tree
189622        https://bugs.webkit.org/show_bug.cgi?id=100843
189623
189624        Reviewed by Yury Semikhatsky.
189625
189626        * inspector/front-end/NativeMemorySnapshotView.js:
189627        (WebInspector.NativeSnapshotDataGrid):
189628        (WebInspector.NativeSnapshotNode):
189629        (WebInspector.MemoryBlockViewProperties._initialize):
189630
1896312012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
189632
189633        Table with percentage column widths doesn't scale to fill the entire width of a table containing it
189634        https://bugs.webkit.org/show_bug.cgi?id=11645
189635
189636        Reviewed by Julien Chaffraix.
189637
189638        When the inner (or nested) table has auto width and column(s) with
189639        percent width, we should scale our column(s) to the width of the
189640        containing table (unless it has auto width).
189641
189642        Test: fast/table/scale-nested-percent-width-cols.html
189643
189644        * rendering/AutoTableLayout.cpp:
189645        (WebCore::shouldScaleColumns):
189646        If the containing table width was of percent type, we were disallowing
189647        our inner or nested table's column from scaling to the size of the parent
189648        table. We should prohibit the scaling of the nested table columns only
189649        if the parent table has auto width.
189650
1896512012-10-31  Ian Vollick  <vollick@chromium.org>
189652
189653        Add support for text-based repaint testing
189654        https://bugs.webkit.org/show_bug.cgi?id=100584
189655
189656        Reviewed by Simon Fraser.
189657
189658        Allows tracked repaint rects to be dumped as text.
189659
189660        The following layout tests have been converted:
189661          fast/repaint/layer-full-repaint.html
189662          fast/repaint/overflow-flipped-writing-mode-table.html
189663
189664        * WebCore.exp.in:
189665          Exports for:
189666            FrameView::setTracksRepaints(bool)
189667            Frame::trackedRepaintRectsAsText() const
189668        * page/Frame.cpp:
189669        (WebCore::Frame::trackedRepaintRectsAsText):
189670          Returns a string containing information on all tracked repaint rects.
189671        * page/FrameView.cpp:
189672        (WebCore::FrameView::setTracksRepaints):
189673          Rather than calling m_trackedRepaintRects.clear() directly, I've
189674          called resetTrackedRepaints(). This will allow us to do more
189675          sophisticated resetting when we start tracking repaint rects for
189676          composited layers.
189677        (WebCore::FrameView::trackedRepaintRectsAsText):
189678          Provides the string returned by Frame::trackedRepaintRectsAsText.
189679        * testing/Internals.cpp:
189680        (WebCore::Internals::repaintRectsAsText):
189681          Returns Frame::trackedRepaintRectsAsText.
189682        (WebCore):
189683        (WebCore::Internals::startTrackingRepaints):
189684          Calls FrameView::setTracksRepaints(true)
189685        (WebCore::Internals::stopTrackingRepaints):
189686          Calls FrameView::setTracksRepaints(false)
189687        * testing/Internals.h:
189688        * testing/Internals.idl:
189689          Declarations for:
189690            repaintRectsAsText
189691            startTrackingRepaints
189692            stopTrackingRepaints
189693
1896942012-10-31  Yury Semikhatsky  <yurys@chromium.org>
189695
189696        Web Inspector: page crash when pausing in dedicated worker
189697        https://bugs.webkit.org/show_bug.cgi?id=100837
189698
189699        Reviewed by Pavel Feldman.
189700
189701        Pass debugger agent to InjectedScriptHost::init in case of workers.
189702
189703        Test: inspector-protocol/debugger-pause-dedicated-worker.html
189704
189705        * inspector/WorkerInspectorController.cpp:
189706        (WebCore::WorkerInspectorController::WorkerInspectorController):
189707
1897082012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
189709
189710        perspective-origin should ignore values with more then two lengths and use the default values
189711        https://bugs.webkit.org/show_bug.cgi?id=100835
189712
189713        Reviewed by Kenneth Rohde Christiansen.
189714
189715        Perspective-origin should ignore values with more then two lengths
189716        (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
189717        the default values instead of parsing it as an unlimited-length list,
189718        of which all but the first two values are ignored. This makes perspective-origin 
189719        behave similar to transform-origin which uses default value in this case,
189720        as well as firefox does the same.
189721
189722        Test: transforms/2d/computed-style-origin.html
189723
189724        * css/CSSParser.cpp:
189725        (WebCore::CSSParser::parsePerspectiveOrigin):
189726
1897272012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
189728
189729        Unreviewed, rolling out r133016.
189730        http://trac.webkit.org/changeset/133016
189731        https://bugs.webkit.org/show_bug.cgi?id=100856
189732
189733        broke compile-webkit on several bots (Requested by podivilov
189734        on #webkit).
189735
189736        * CMakeLists.txt:
189737        * GNUmakefile.list.am:
189738        * Target.pri:
189739        * WebCore.gypi:
189740        * WebCore.vcproj/WebCore.vcproj:
189741        * WebCore.xcodeproj/project.pbxproj:
189742        * dom/DeviceOrientationClient.h:
189743        (DeviceOrientationClient):
189744        * dom/DeviceOrientationController.cpp:
189745        (WebCore::DeviceOrientationController::DeviceOrientationController):
189746        (WebCore):
189747        (WebCore::DeviceOrientationController::~DeviceOrientationController):
189748        (WebCore::DeviceOrientationController::timerFired):
189749        (WebCore::DeviceOrientationController::addListener):
189750        (WebCore::DeviceOrientationController::removeListener):
189751        (WebCore::DeviceOrientationController::removeAllListeners):
189752        (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
189753        (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
189754        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
189755        (WebCore::DeviceOrientationController::supplementName):
189756        * dom/DeviceOrientationController.h:
189757        (WebCore):
189758        (DeviceOrientationController):
189759        (WebCore::DeviceOrientationController::isActive):
189760        (WebCore::DeviceOrientationController::client):
189761        (WebCore::DeviceOrientationController::from):
189762        * dom/Document.cpp:
189763        (WebCore::Document::suspendActiveDOMObjects):
189764        (WebCore::Document::resumeActiveDOMObjects):
189765        * loader/EmptyClients.h:
189766        (WebCore::EmptyDeviceOrientationClient::startUpdating):
189767        (WebCore::EmptyDeviceOrientationClient::stopUpdating):
189768        * page/DOMWindow.cpp:
189769        (WebCore::DOMWindow::addEventListener):
189770        (WebCore::DOMWindow::removeEventListener):
189771        (WebCore::DOMWindow::removeAllEventListeners):
189772        * page/DeviceClient.h: Removed.
189773        * page/DeviceController.cpp: Removed.
189774        * page/DeviceController.h: Removed.
189775
1897762012-10-31  Antti Koivisto  <antti@apple.com>
189777
189778        Remove stray calls to mutableAttributeData()
189779        https://bugs.webkit.org/show_bug.cgi?id=100849
189780
189781        Reviewed by Andreas Kling.
189782
189783        Changing the cached class attribute value does not require mutable attribute data.
189784
189785        * dom/Element.cpp:
189786        (WebCore::Element::classAttributeChanged):
189787        * dom/ElementAttributeData.h:
189788        (WebCore::ElementAttributeData::clearClass):
189789        
189790            Make const like setClass().
189791
1897922012-10-31  Mike West  <mkwst@chromium.org>
189793
189794        X-Frame-Options console message should be associated with a request.
189795        https://bugs.webkit.org/show_bug.cgi?id=100735
189796
189797        Reviewed by Pavel Feldman.
189798
189799        In 99941, we added the possibility to tie console messages to requests,
189800        which enables automatic generation of stack traces, line numbers, etc.
189801        making the error simpler to diagnose for web developers. This patch
189802        uses the piping laid in that patch to improve the console message
189803        generated when a document is blocked by X-Frame-Options.
189804
189805        No new tests; the functionality is covered by changes to existing tests.
189806
189807        * dom/Document.cpp:
189808        (WebCore::Document::processHttpEquiv):
189809            Grab the request identifier from the currently active DocumentLoader
189810            and pass it into the console message.
189811        * loader/MainResourceLoader.cpp:
189812        (WebCore::MainResourceLoader::didReceiveResponse):
189813            Grab the request identifier from the MainResourceLoader, and pass it
189814            into the console message.
189815
1898162012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
189817
189818        Unreviewed, rolling out r133015.
189819        http://trac.webkit.org/changeset/133015
189820        https://bugs.webkit.org/show_bug.cgi?id=100847
189821
189822        broke Apple Win Debug compilation (Requested by podivilov on
189823        #webkit).
189824
189825        * inspector/InspectorAgent.cpp:
189826        (WebCore::InspectorAgent::InspectorAgent):
189827        (WebCore::InspectorAgent::clearFrontend):
189828        (WebCore::InspectorAgent::didCommitLoad):
189829        * inspector/InspectorAgent.h:
189830        (WebCore::InspectorAgent::didCommitLoadFired):
189831        (InspectorAgent):
189832        * inspector/InspectorInstrumentation.cpp:
189833        (WebCore):
189834        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
189835        (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
189836        (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
189837        * inspector/InspectorInstrumentation.h:
189838        (InspectorInstrumentation):
189839        * inspector/InspectorPageAgent.cpp:
189840        (WebCore::InspectorPageAgent::restore):
189841        * inspector/InspectorRuntimeAgent.cpp:
189842        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
189843        (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
189844        (WebCore::InspectorRuntimeAgent::run):
189845        (WebCore):
189846        (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
189847        * inspector/InspectorRuntimeAgent.h:
189848        (InspectorRuntimeAgent):
189849        * inspector/InstrumentingAgents.h:
189850        (WebCore):
189851        (WebCore::InstrumentingAgents::InstrumentingAgents):
189852        (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
189853        (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
189854        (InstrumentingAgents):
189855        * inspector/PageRuntimeAgent.cpp:
189856        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
189857        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
189858        (WebCore::PageRuntimeAgent::setFrontend):
189859        (WebCore::PageRuntimeAgent::clearFrontend):
189860        (WebCore::PageRuntimeAgent::enable):
189861        (WebCore::PageRuntimeAgent::didClearWindowObject):
189862        * inspector/PageRuntimeAgent.h:
189863        (PageRuntimeAgent):
189864        * inspector/WorkerRuntimeAgent.cpp:
189865        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
189866        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
189867        * inspector/WorkerRuntimeAgent.h:
189868        (WorkerRuntimeAgent):
189869
1898702012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
189871
189872        Add DeviceController base-class to remove duplication of DeviceXXXControler
189873        https://bugs.webkit.org/show_bug.cgi?id=96894
189874
189875        Reviewed by Hajime Morita.
189876
189877        Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
189878        And soon-to-be-added DeviceMotionController and ProximityController.
189879
189880        Covered by existing tests.
189881
189882        * CMakeLists.txt:
189883        * GNUmakefile.list.am:
189884        * Target.pri:
189885        * WebCore.gypi:
189886        * WebCore.vcproj/WebCore.vcproj:
189887        * WebCore.xcodeproj/project.pbxproj:
189888        * dom/DeviceOrientationClient.h:
189889        * dom/DeviceOrientationController.cpp:
189890        Remove member functions to move to DeviceController.
189891        - addListener(), removeListener(), removeAllListeners(), isActive()
189892        (WebCore::DeviceOrientationController::DeviceOrientationController):
189893        (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
189894        (WebCore::DeviceOrientationController::client):
189895        (WebCore::DeviceOrientationController::hasLastData):
189896        (WebCore::DeviceOrientationController::getLastEvent):
189897        (WebCore::DeviceOrientationController::from):
189898        (WebCore):
189899        * dom/DeviceOrientationController.h:
189900        (WebCore):
189901        (WebCore::DeviceOrientationController::~DeviceOrientationController):
189902        (DeviceOrientationController):
189903        * dom/Document.cpp:
189904        Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
189905        These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
189906        (WebCore::Document::suspendActiveDOMObjects):
189907        (WebCore::Document::resumeActiveDOMObjects):
189908        * loader/EmptyClients.h:
189909        (EmptyDeviceClient):
189910        (WebCore::EmptyDeviceClient::startUpdating):
189911        (WebCore::EmptyDeviceClient::stopUpdating):
189912        (WebCore):
189913        * page/DOMWindow.cpp:
189914        (WebCore::DOMWindow::addEventListener):
189915        (WebCore::DOMWindow::removeEventListener):
189916        (WebCore::DOMWindow::removeAllEventListeners):
189917        * page/DeviceClient.h: Added.
189918        (WebCore):
189919        (DeviceClient):
189920        (WebCore::DeviceClient::~DeviceClient):
189921        * page/DeviceController.cpp: Added.
189922        DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
189923        - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
189924        All kind of device event controller which has DeviceClient can be inherited from DeviceController.
189925        (WebCore):
189926        (WebCore::DeviceController::DeviceController):
189927        (WebCore::DeviceController::addDeviceEventListener):
189928        (WebCore::DeviceController::removeDeviceEventListener):
189929        (WebCore::DeviceController::removeAllDeviceEventListeners):
189930        (WebCore::DeviceController::dispatchDeviceEvent):
189931        (WebCore::DeviceController::fireDeviceEvent):
189932        * page/DeviceController.h: Added.
189933        (WebCore):
189934        (DeviceController):
189935        (WebCore::DeviceController::~DeviceController):
189936        (WebCore::DeviceController::isActive):
189937        (WebCore::DeviceController::client):
189938        (WebCore::DeviceController::hasLastData):
189939        (WebCore::DeviceController::getLastEvent):
189940
1899412012-10-31  Pavel Feldman  <pfeldman@chromium.org>
189942
189943        Web Inspector: frame chooser does not work on subsequent inspector open.
189944        https://bugs.webkit.org/show_bug.cgi?id=100771
189945
189946        Reviewed by Yury Semikhatsky.
189947
189948        - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
189949        - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
189950        - Remove remains of the front-end reused signal from InspectorAgent
189951        - Send execution contexts post clear window object instead of post commit load.
189952
189953        * inspector/InspectorAgent.cpp:
189954        (WebCore::InspectorAgent::InspectorAgent):
189955        (WebCore::InspectorAgent::clearFrontend):
189956        (WebCore::InspectorAgent::didCommitLoad):
189957        * inspector/InspectorAgent.h:
189958        (InspectorAgent):
189959        * inspector/InspectorInstrumentation.cpp:
189960        (WebCore):
189961        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
189962        (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
189963        * inspector/InspectorInstrumentation.h:
189964        (InspectorInstrumentation):
189965        * inspector/InspectorPageAgent.cpp:
189966        (WebCore::InspectorPageAgent::restore):
189967        * inspector/InspectorRuntimeAgent.cpp:
189968        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
189969        (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
189970        (WebCore::InspectorRuntimeAgent::run):
189971        (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
189972        * inspector/InspectorRuntimeAgent.h:
189973        (InspectorRuntimeAgent):
189974        * inspector/InstrumentingAgents.h:
189975        (WebCore):
189976        (WebCore::InstrumentingAgents::InstrumentingAgents):
189977        (WebCore::InstrumentingAgents::workerRuntimeAgent):
189978        (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
189979        (InstrumentingAgents):
189980        * inspector/PageRuntimeAgent.cpp:
189981        (WebCore::PageRuntimeAgent::PageRuntimeAgent):
189982        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
189983        (WebCore::PageRuntimeAgent::setFrontend):
189984        (WebCore::PageRuntimeAgent::clearFrontend):
189985        (WebCore::PageRuntimeAgent::enable):
189986        (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
189987        * inspector/PageRuntimeAgent.h:
189988        (PageRuntimeAgent):
189989        * inspector/WorkerRuntimeAgent.cpp:
189990        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
189991        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
189992        (WebCore::WorkerRuntimeAgent::run):
189993        (WebCore):
189994        (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
189995        * inspector/WorkerRuntimeAgent.h:
189996        (WorkerRuntimeAgent):
189997
1899982012-10-31  Keishi Hattori  <keishi@webkit.org>
189999
190000        Calendar picker can flicker when opened from the suggestion picker
190001        https://bugs.webkit.org/show_bug.cgi?id=100816
190002
190003        Reviewed by Kent Tamura.
190004
190005        Calendar picker was opening before the hiding completed.
190006
190007        No new tests. Added test to date-suggestion-picker-key-operations.html.
190008
190009        * Resources/pagepopups/pickerCommon.js: Added didHide event.
190010        * Resources/pagepopups/suggestionPicker.js:
190011        (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
190012        (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
190013
1900142012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
190015
190016        Reset binding test result after r132973
190017        https://bugs.webkit.org/show_bug.cgi?id=99178
190018
190019        Unreviewed gardening.
190020
190021        * bindings/scripts/test/JS/JSFloat64Array.cpp:
190022        (WebCore::getJSFloat64ArrayConstructorTable):
190023        (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
190024        (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
190025
1900262012-10-31  Mike West  <mkwst@chromium.org>
190027
190028        Script run from an isolated world should bypass a page's CSP.
190029        https://bugs.webkit.org/show_bug.cgi?id=97398
190030
190031        Reviewed by Adam Barth.
190032
190033        A page's Content Security Policy currently applies to all resources
190034        loaded, regardless of their source. That generally makes sense, but
190035        proves problematic when considering script run from an isolated
190036        world (Chrome extensions, for instance). These scripts should be allowed
190037        to inject resources into a page's DOM without eiher being restricted by
190038        the page's active CSP, or generating violation reports that spam the
190039        page owner.
190040
190041        Ideally, the isolated world could define its own Content Security Policy
190042        which should be applied to resources it loads. For the moment, this
190043        patch accepts a String that we can parse later on, but only uses it in
190044        a binary way. If a non-empty policy String is provided, we bypass the
190045        main world's CSP checks. If an empty String is provided, the main
190046        world's CSP checks remain active.
190047
190048        Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
190049
190050        (WebCore::isolatedWorldContentSecurityPolicies):
190051        (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
190052        (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
190053        (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
190054        * bindings/v8/DOMWrapperWorld.h:
190055        (DOMWrapperWorld):
190056            Mechanisms for setting and clearing Content Security Policies from
190057            isolated worlds; implemented in the same HashMappy way as
190058            SecurityOrigin.
190059        * bindings/v8/ScriptController.cpp:
190060        (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
190061        (WebCore):
190062        * bindings/v8/ScriptController.h:
190063        (ScriptController):
190064            Adding a method to ScriptController to query the state of the
190065            current world's Content Security Policy. We'll drop this once we can
190066            apply a policy more directly, but for the moment it's necessary for
190067            the next bit.
190068        * loader/cache/CachedResourceLoader.cpp:
190069        (WebCore::CachedResourceLoader::canRequest):
190070            Check the new ScriptController method, and only perform CSP checks
190071            when loading resources if we're executing code from the main world,
190072            or an isolated world with no Content Security Policy set.
190073
1900742012-10-31  Tim Horton  <timothy_horton@apple.com>
190075
190076        Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
190077
190078        * WebCore.exp.in:
190079
1900802012-10-31  Yury Semikhatsky  <yurys@chromium.org>
190081
190082        Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
190083        https://bugs.webkit.org/show_bug.cgi?id=100824
190084
190085        Reviewed by Alexander Pavlov.
190086
190087        In many classes we have pointer to a client object. These references should be
190088        reported as weak pointers and the client's memory usage should be reported when
190089        the client is reached from its instrumented owner where we know exact type of
190090        the client. Otherwise we would need to add reportMemoryUsage to all client
190091        interfaces which places additional burden on the client implementers and blurs
190092        the instrumentation boundaries.
190093
190094        * inspector/InspectorController.cpp:
190095        (WebCore::InspectorController::reportMemoryUsage):
190096        * inspector/InspectorDebuggerAgent.cpp:
190097        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
190098        * inspector/InspectorMemoryAgent.cpp:
190099        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
190100        * inspector/InspectorOverlay.cpp:
190101        (WebCore::InspectorOverlay::reportMemoryUsage):
190102        * inspector/InspectorResourceAgent.cpp:
190103        (WebCore::InspectorResourceAgent::reportMemoryUsage):
190104        * page/Page.cpp:
190105        (WebCore::Page::reportMemoryUsage):
190106
1901072012-10-31  Tim Horton  <timothy_horton@apple.com>
190108
190109        Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
190110
190111        * WebCore.exp.in:
190112
1901132012-10-31  Eric Seidel  <eric@webkit.org>
190114
190115        Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
190116        https://bugs.webkit.org/show_bug.cgi?id=100306
190117
190118        Reviewed by Abhishek Arya.
190119
190120        Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
190121        the rendering code w/o considering that it makes a virtual function call.
190122        Originally I just fixed the one callsite which was showing up on the sample to
190123        use children()->firstChild() directly.  However after further thought, this
190124        broader solution seemed the better way to go.  The first patch was a 15% win for
190125        this large table, this broader solution was a 30%!? win.
190126
190127        The elephant in the room for this table is that we're walking the whole table
190128        for many nextColumn calls.  But that I will solve in a later bug.
190129
190130        * rendering/RenderBlock.h:
190131        (WebCore::RenderBlock::firstChild):
190132        (WebCore::RenderBlock::lastChild):
190133        (RenderBlock):
190134        * rendering/RenderObject.h:
190135        (RenderObject):
190136        * rendering/RenderTableCol.h:
190137        (WebCore::RenderTableCol::firstChild):
190138        (WebCore::RenderTableCol::lastChild):
190139        (RenderTableCol):
190140
1901412012-10-31  Philippe Normand  <pnormand@igalia.com>
190142
190143        Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
190144        https://bugs.webkit.org/show_bug.cgi?id=98294
190145
190146        Reviewed by Chris Rogers.
190147
190148        Regenerated the concatenated impulse responses file with
190149        elevations in increasing order per azimuth. In the previous
190150        version of this file the elevations for 315, 330 and 345 were
190151        concatenated at the wrong indexes.
190152
190153        * platform/audio/resources/Composite.wav:
190154
1901552012-10-31  Tim Horton  <timothy_horton@apple.com>
190156
190157        Full-page PDFPlugin should support inline form editing
190158        https://bugs.webkit.org/show_bug.cgi?id=100155
190159
190160        Reviewed by Dan Bernstein.
190161
190162        Add form controls corresponding to Text and Choice PDF annotations,
190163        allowing for single- and multi-line text input, and <option>-like input.
190164
190165        Currently, forms are only implemented for full-page PDF documents.
190166
190167        * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
190168        * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
190169
1901702012-10-30  Eric Seidel  <eric@webkit.org>
190171
190172        RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
190173        https://bugs.webkit.org/show_bug.cgi?id=98800
190174
190175        Reviewed by Sam Weinig.
190176
190177        This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
190178
190179        OverlapMap previously used Regions to track Layer bounds rects. 
190180        Unfortunately unioning a list of Regions is O(N^2)
190181        where N is the number of Shapes (in this case rects).
190182        This is because Shapes are immutable, so to union two shapes, we copy
190183        both Shapes' segment/span vectors into a single new Shape.
190184        Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
190185        the segments of the first Shape N times before we have the final Region/Shape
190186        and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
190187        Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
190188
190189        For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
190190        doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
190191        Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
190192
190193        Even better for us is that the OverlapMap is never even used in RoboHornetPro.
190194        We just collect these rects to end up doing nothing with them. :)
190195
190196        * rendering/RenderLayerCompositor.cpp:
190197        (WebCore::RenderLayerCompositor::OverlapMap::add):
190198        (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
190199        (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
190200        (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
190201        (RenderLayerCompositor::OverlapMap):
190202
1902032012-10-30  Beth Dakin  <bdakin@apple.com>
190204
190205        https://bugs.webkit.org/show_bug.cgi?id=100813
190206        ScrollingCoordinatorMac::stateNodeForID() should return a 
190207        ScrollingStateNode* instead of a ScrollingStateScrollingNode*
190208
190209        Reviewed by Sam Weinig.
190210
190211        ScrollingCoordinatorMac::stateNodeForID() should return a 
190212        ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
190213        it can be used for other types of nodes once we add them.
190214        * page/scrolling/mac/ScrollingCoordinatorMac.h:
190215        (ScrollingCoordinatorMac):
190216        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
190217        (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
190218        (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
190219        (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
190220        (WebCore::ScrollingCoordinatorMac::stateNodeForID):
190221
1902222012-10-30  Keishi Hattori  <keishi@webkit.org>
190223
190224        F4 inside <input type=time> should not open calendar picker
190225        https://bugs.webkit.org/show_bug.cgi?id=100730
190226
190227        Reviewed by Kent Tamura.
190228
190229        We lacked the check to see if the picker indicator is visible.
190230
190231        Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
190232
190233        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
190234        (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
190235
1902362012-10-30  Kent Tamura  <tkent@chromium.org>
190237
190238        Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
190239        https://bugs.webkit.org/show_bug.cgi?id=100772
190240
190241        Reviewed by Abhishek Arya.
190242
190243        'change' and 'input' events are asynchronous and not
190244        cancelable. We can use ScopedEvent.
190245
190246        Test: fast/forms/range/range-type-change-onchange.html
190247
190248        * dom/Node.cpp:
190249        (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
190250        (WebCore::Node::dispatchInputEvent): Ditto.
190251        * html/HTMLInputElement.cpp:
190252        (WebCore::HTMLInputElement::setValue):
190253        Make a scope to delay event dispatching.
190254        * html/RangeInputType.cpp:
190255        (WebCore::RangeInputType::handleKeydownEvent): Ditto.
190256
1902572012-10-30  Simon Fraser  <simon.fraser@apple.com>
190258
190259        Fix issues with filters and reflections
190260        https://bugs.webkit.org/show_bug.cgi?id=100308
190261
190262        Reviewed by Dirk Schulze.
190263
190264        Composited filters were being applied to the wrong CALayer. The code used
190265        primaryLayer(), which may be a CATransformLayer (which filters cannot apply
190266        to; doing so causes console spew), or a CALayer that is used for reflection
190267        flattening, which again is the wrong layer.
190268
190269        Test: css3/filters/composited-reflected.html
190270
190271        * platform/graphics/ca/GraphicsLayerCA.cpp:
190272        (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
190273        (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
190274        (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
190275        and use m_layerClones, not primaryLayerClones().
190276        (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
190277        from the source layer.
190278        * platform/graphics/ca/PlatformCALayer.h:
190279        (PlatformCALayer): Add a member function to copy filters from a supplied layer.
190280        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
190281        (PlatformCALayer::setFilters): Remove blank line.
190282        (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
190283        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
190284        (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
190285
1902862012-10-30  Beth Dakin  <bdakin@apple.com>
190287
190288        https://bugs.webkit.org/show_bug.cgi?id=100809
190289        ScrollingCoordinator::attachToStateTree() should take an enum 
190290        indicating what type of node to create
190291
190292        Reviewed by Simon Fraser.
190293
190294        New enum ScrollingNodeType will soon have other values, such as 
190295        FixedNode.
190296        * page/scrolling/ScrollingCoordinator.h:
190297        (WebCore::ScrollingCoordinator::attachToStateTree):
190298        * page/scrolling/mac/ScrollingCoordinatorMac.h:
190299        (ScrollingCoordinatorMac):
190300
190301        This patch generalizes this function so that it can be used to create 
190302        different types of nodes and so that it is actually ready to create 
190303        child nodes. 
190304        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
190305        (WebCore::ScrollingCoordinatorMac::attachToStateTree):
190306
190307        The rootStateNode is always a ScrollingNode.
190308        (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
190309
190310        For the time being, always create a ScrollingNode.
190311        * rendering/RenderLayerBacking.cpp:
190312        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
190313
1903142012-10-30  Gregg Tavares  <gman@google.com>
190315
190316        Set the initial scissor box for WebGL
190317        https://bugs.webkit.org/show_bug.cgi?id=100804
190318
190319        Reviewed by Kenneth Russell.
190320
190321        The initial scissor box needs to be set for WebGL
190322
190323        No new tests as no new functionality.
190324
190325        * html/canvas/WebGLRenderingContext.cpp:
190326        (WebCore):
190327        (WebCore::WebGLRenderingContext::initializeNewContext):
190328
1903292012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
190330
190331        [BlackBerry] PurgeCredential should also purge the persisted credential store
190332        https://bugs.webkit.org/show_bug.cgi?id=100744
190333
190334        Reviewed by George Staikos.
190335
190336        When challenged by the server, we will check the credential in-memory and from the persistent storage.
190337        So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
190338        it will be sent to the server next time been challenged, instead of prompting the user.
190339
190340        * platform/network/blackberry/NetworkJob.cpp:
190341        (WebCore::NetworkJob::purgeCredentials):
190342
1903432012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
190344
190345        DOM URL is flaky when workers are used
190346        https://bugs.webkit.org/show_bug.cgi?id=99178
190347
190348        Reviewed by Geoffrey Garen.
190349
190350        Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
190351
190352        Test: fast/workers/worker-domurl.html
190353
190354        * bindings/scripts/CodeGeneratorJS.pm:
190355        (constructorHashTableAccessor):
190356        (GenerateConstructorDefinition):
190357
1903582012-10-30  Jae Hyun Park  <jae.park@company100.net>
190359
190360        Coordinated Graphics: Remove unused methods
190361        https://bugs.webkit.org/show_bug.cgi?id=100799
190362
190363        Reviewed by Noam Rosenthal.
190364
190365        Currently, there are several unused methods regarding Coordinated
190366        Graphics. This patch removes those unused methods.
190367
190368        No new tests (No change in behavior).
190369
190370        * platform/graphics/texmap/TextureMapperGL.cpp:
190371
1903722012-10-30  Hans Muller  <hmuller@adobe.com>
190373
190374        [CSS Exclusions] Multiple segment polygon layout does not get all segments
190375        https://bugs.webkit.org/show_bug.cgi?id=100039
190376
190377        Reviewed by Dirk Schulze.
190378
190379        Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
190380        and polygons with horizontal edges in general.
190381
190382        Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
190383               fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
190384
190385        * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
190386        (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
190387        (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
190388        (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
190389        (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
190390        * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
190391        (WebCore::ExclusionPolygon::edgeAt): New method.
190392        (WebCore::ExclusionPolygon::numberOfEdges): New method.
190393        (ExclusionPolygon): Added support for retrieving edges.
190394        (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
190395        (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
190396        (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
190397        (WebCore::ExclusionPolygonEdge::previousEdge): New method.
190398        (WebCore::ExclusionPolygonEdge::nextEdge): New method.
190399
1904002012-10-30  Chris Evans  <cevans@google.com>
190401
190402        Improve performance of MaskPtr.
190403        https://bugs.webkit.org/show_bug.cgi?id=100790
190404
190405        Reviewed by Eric Seidel.
190406
190407        Calculate the mask once, and store it as a fast-access member variable.
190408        Also avoid unneccessary integer width expansion in index calculation.
190409        Parser/tiny-innerHTML.html has a high stddev.
190410        Best result I've seen pre-patch is 5.70 runs/s.
190411        Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
190412        MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
190413        MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
190414
190415        * rendering/RenderArena.cpp:
190416        (MaskPtr): Use a passed-in mask for the mask operation.
190417        (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
190418        (WebCore::RenderArena::allocate):
190419        (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
190420        * rendering/RenderArena.h:
190421        (RenderArena): Store the freelist mask as a member variable.
190422
1904232012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
190424
190425        local(Helvetica) in src descriptor prevent fallback
190426        https://bugs.webkit.org/show_bug.cgi?id=100446
190427
190428        Reviewed by Dan Bernstein.
190429
190430        FontCache::getCachedFontData() has a mechanism that aliases a few pairs
190431        of font family names, so that if the family name specified in the font-family
190432        property is not available on the system, but the its alias is available,
190433        it will be used instead. This is appropriate for the font-family property,
190434        but not for font family names specified in the local() function of the src
190435        descriptor in a @font-face rule.
190436
190437        This patch disables the mechanism while checking src descriptor of @font-face.
190438
190439        No new tests. It's difficult to test the change because 'Helvetica' can
190440        be mapped any other font. For example, chromium DRT uses FontConfig to
190441        map Helvetica to Times New Roman. Other ports may map Helvetica to other
190442        fonts. We can't define the expected result.
190443
190444        * css/CSSFontFaceSource.cpp:
190445        (WebCore::CSSFontFaceSource::getFontData):
190446        Call fontCache()->getCachedFontData() with checkingAlternateName = true.
190447        This disables aliasing font family names in FontCache.
190448
1904492012-10-30  Beth Dakin  <bdakin@apple.com>
190450
190451        https://bugs.webkit.org/show_bug.cgi?id=100796
190452        Should add FixedPositionViewportConstraints to ScrollingConstraints.h
190453
190454        Reviewed by Simon Fraser.
190455
190456        ScrollingConstraints.h currently contains an abstract class called 
190457        ViewportConstraints that is intended to encapsulate data and logic 
190458        required to reposition elements whose layout depends on the viewport 
190459        rect (positions fixed and sticky), when scrolling and zooming. 
190460        However, at this time there is only a subclass for sticky. We should 
190461        add a sub-class for fixed. This is required to get pages with fixed 
190462        position elements scrolling on the scrolling thread.
190463
190464        * page/scrolling/ScrollingConstraints.cpp:
190465        (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
190466        (WebCore):
190467        * page/scrolling/ScrollingConstraints.h:
190468        (WebCore::ViewportConstraints::ViewportConstraints):
190469        (ViewportConstraints):
190470        (WebCore::ViewportConstraints::setAnchorEdges):
190471        (FixedPositionViewportConstraints):
190472        (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
190473        (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
190474        (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
190475        (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
190476        (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
190477        (WebCore):
190478
1904792012-10-30  Tiancheng Jiang  <tijiang@rim.com>
190480
190481        [BlackBerry] update form theme for BB10.
190482        https://bugs.webkit.org/show_bug.cgi?id=100760
190483
190484        Reviewed by Rob Buis.
190485
190486        RIM PR:222126
190487        Introduce slide function to paint new theme for the form controls.
190488
190489        No new tests.
190490
190491        * css/themeBlackBerry.css:
190492        (select):
190493        * platform/blackberry/RenderThemeBlackBerry.cpp:
190494        (WebCore):
190495        (WebCore::drawControl): Added.
190496        (WebCore::drawThreeSlice): Added.
190497        (WebCore::drawNineSlice): Added.
190498        (WebCore::loadImage): Added.
190499        (WebCore::RenderThemeBlackBerry::systemFont): Modified.
190500        (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
190501        (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
190502        (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
190503        (WebCore::RenderThemeBlackBerry::paintButton): Modified.
190504        (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
190505        (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
190506        (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
190507        (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
190508        * platform/blackberry/RenderThemeBlackBerry.h:
190509        (RenderThemeBlackBerry):
190510
1905112012-10-30  Rick Byers  <rbyers@chromium.org>
190512
190513        cssText for cursor property doesn't include hotspot
190514        https://bugs.webkit.org/show_bug.cgi?id=99530
190515
190516        Reviewed by Darin Adler.
190517
190518        Implement customCssText in CSSCursorImageValue to include the hotspot when present.
190519        Also explicitly track whether or not a hotspot was supplied in the parser,
190520        while still using the existing convention of (-1,-1) to denote no hotspot
190521        in the rest of the system.
190522
190523        Test: fast/css/cursor-parsing.html
190524
190525        * css/CSSCursorImageValue.cpp:
190526        (WebCore::CSSCursorImageValue::customCssText):
190527        * css/CSSCursorImageValue.h:
190528        (CSSCursorImageValue):
190529
1905302012-10-30  Kenneth Russell  <kbr@google.com>
190531
190532        Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
190533        https://bugs.webkit.org/show_bug.cgi?id=100714
190534
190535        Reviewed by Stephen White.
190536
190537        For the moment, only use ImageBuffer::copyToPlatformTexture when
190538        copying to RGBA/UNSIGNED_BYTE textures, and document restriction
190539        in header. Restriction will be lifted once the implementations
190540        (currently only Chromium has one) have been fixed; see bug 100715.
190541
190542        No new tests; manually ran WebGL conformance test
190543        tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
190544        hardware on Mac OS.
190545
190546        * html/canvas/WebGLRenderingContext.cpp:
190547        (WebCore):
190548        (WebCore::WebGLRenderingContext::texImage2D):
190549        * platform/graphics/ImageBuffer.h:
190550        (ImageBuffer):
190551
1905522012-10-30  Nico Weber  <thakis@chromium.org>
190553
190554        Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
190555        https://bugs.webkit.org/show_bug.cgi?id=100320
190556
190557        Reviewed by Eric Seidel.
190558
190559        Adding more than 1 element past an array is undefined, so don't do it.
190560
190561        No test, since in practice ifd will just overflow and `end - ifd` will
190562        become much larget than 2 and the `if (end - ifd < 2)` a few lines
190563        down will catch that case.
190564
190565        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
190566        (WebCore::readImageOrientation):
190567
1905682012-10-26  Alexandru Chiculita  <achicu@adobe.com>
190569
190570        [CSS Shaders] Add the ValidatedCustomFilterOperation class
190571        https://bugs.webkit.org/show_bug.cgi?id=100558
190572
190573        Reviewed by Dean Jackson.
190574
190575        Added the ValidatedCustomFilterOperation class. The file is now almost empty,
190576        but more is going to come in the following patches.
190577
190578        Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
190579        such operations for now.
190580        
190581        No new tests, there is no new functionality yet.
190582
190583        * CMakeLists.txt:
190584        * GNUmakefile.list.am:
190585        * Target.pri:
190586        * WebCore.gypi:
190587        * WebCore.vcproj/WebCore.vcproj:
190588        * WebCore.xcodeproj/project.pbxproj:
190589        * css/CSSComputedStyleDeclaration.cpp:
190590        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
190591        * css/StyleResolver.cpp:
190592        (WebCore::StyleResolver::createFilterOperations):
190593        * platform/graphics/blackberry/LayerWebKitThread.cpp:
190594        (WebCore::LayerWebKitThread::filtersCanBeComposited):
190595        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
190596        (PlatformCALayer::filtersCanBeComposited):
190597        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
190598        (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
190599        * platform/graphics/filters/FilterOperation.h:
190600        * platform/graphics/filters/FilterOperations.cpp:
190601        (WebCore::FilterOperations::hasCustomFilter):
190602        (WebCore::FilterOperations::getOutsets):
190603        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
190604        (WebCore):
190605        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
190606        (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
190607        (WebCore::ValidatedCustomFilterOperation::blend):
190608        * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
190609        (WebCore):
190610        (ValidatedCustomFilterOperation):
190611        (WebCore::ValidatedCustomFilterOperation::create):
190612        (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
190613        (WebCore::ValidatedCustomFilterOperation::movesPixels):
190614        (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
190615        (WebCore::ValidatedCustomFilterOperation::operator==):
190616
1906172012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
190618
190619        [Mac] Sync up FeatureDefine Configuration Files
190620        https://bugs.webkit.org/show_bug.cgi?id=100171
190621
190622        Reviewed by David Kilzer.
190623
190624        Follow up to better coordinate with iOS feature defines. Make:
190625
190626          - ENABLE_FILTERS always on
190627          - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
190628
190629        * Configurations/FeatureDefines.xcconfig:
190630
1906312012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
190632
190633        [Mac] Sync up FeatureDefine Configuration Files
190634        https://bugs.webkit.org/show_bug.cgi?id=100171
190635
190636        Reviewed by David Kilzer.
190637
190638        Ensure an identical FeatureDefine files across all projects. Changes:
190639
190640          - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
190641          - ENABLE_PDFKIT_PLUGIN should be in all
190642          - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
190643          - ENABLE_ENCRYPTED_MEDIA should be in all
190644          - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
190645          - Some alphabetical ordering cleanup
190646
190647        * Configurations/FeatureDefines.xcconfig:
190648
1906492012-10-30  Andreas Kling  <kling@webkit.org>
190650
190651        StylePropertySet: Convert more logic to use PropertyReference.
190652        <http://webkit.org/b/100779>
190653
190654        Reviewed by Antti Koivisto.
190655
190656        Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
190657        This is cleanup before changing the internal storage layout of immutable StylePropertySet.
190658
190659        * css/CSSComputedStyleDeclaration.cpp:
190660        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
190661        * css/CSSComputedStyleDeclaration.h:
190662        * css/CSSStyleDeclaration.h:
190663        * css/PropertySetCSSStyleDeclaration.cpp:
190664        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
190665        * css/PropertySetCSSStyleDeclaration.h:
190666        * css/StylePropertySet.cpp:
190667        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
190668        (WebCore::StylePropertySet::fontValue):
190669        (WebCore::StylePropertySet::get4Values):
190670        (WebCore::StylePropertySet::getPropertyCSSValue):
190671        (WebCore::StylePropertySet::removeProperty):
190672        (WebCore::StylePropertySet::propertyIsImportant):
190673        (WebCore::StylePropertySet::getPropertyShorthand):
190674        (WebCore::StylePropertySet::isPropertyImplicit):
190675        (WebCore::StylePropertySet::setProperty):
190676        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
190677        (WebCore::StylePropertySet::findPropertyIndex):
190678        (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
190679        (WebCore::StylePropertySet::propertyMatches):
190680        (WebCore::StylePropertySet::removeEquivalentProperties):
190681        * css/StylePropertySet.h:
190682        (WebCore::StylePropertySet::PropertyReference::shorthandID):
190683        (WebCore::StylePropertySet::PropertyReference::isImplicit):
190684
1906852012-10-30  Eric Seidel  <eric@webkit.org>
190686
190687        Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
190688        https://bugs.webkit.org/show_bug.cgi?id=100428
190689
190690        Reviewed by Julien Chaffraix.
190691
190692        RenderTable is now like all other clients of Vector instead of being
190693        needlessly different. :)
190694
190695        insert, append and grow all use the same expandCapacity logic under the covers
190696        and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
190697        by default for unknown types.
190698
190699        * rendering/RenderTable.cpp:
190700        (WebCore::RenderTable::splitColumn):
190701        (WebCore::RenderTable::appendColumn):
190702        * rendering/RenderTable.h:
190703        (WebCore::RenderTable::ColumnStruct::ColumnStruct):
190704
1907052012-10-30  Vincent Scheib  <scheib@chromium.org>
190706
190707        Unreviewed, rolling out r132927.
190708        http://trac.webkit.org/changeset/132927
190709        https://bugs.webkit.org/show_bug.cgi?id=100558
190710
190711        Compile error on Chromium builders
190712
190713        * CMakeLists.txt:
190714        * GNUmakefile.list.am:
190715        * Target.pri:
190716        * WebCore.gypi:
190717        * WebCore.vcproj/WebCore.vcproj:
190718        * WebCore.xcodeproj/project.pbxproj:
190719        * css/CSSComputedStyleDeclaration.cpp:
190720        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
190721        * css/StyleResolver.cpp:
190722        (WebCore::StyleResolver::createFilterOperations):
190723        * platform/graphics/blackberry/LayerWebKitThread.cpp:
190724        (WebCore::LayerWebKitThread::filtersCanBeComposited):
190725        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
190726        (PlatformCALayer::filtersCanBeComposited):
190727        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
190728        (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
190729        * platform/graphics/filters/FilterOperation.h:
190730        * platform/graphics/filters/FilterOperations.cpp:
190731        (WebCore::FilterOperations::hasCustomFilter):
190732        (WebCore::FilterOperations::getOutsets):
190733        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
190734        * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
190735
1907362012-10-30  W. James MacLean  <wjmaclean@chromium.org>
190737
190738        [chromium] Restrict link highlights to targets that display a hand-cursor
190739        https://bugs.webkit.org/show_bug.cgi?id=99862
190740
190741        Reviewed by James Robinson.
190742
190743        To avoid applying highlights to inappropriate targets, such as large divs with
190744        click handlers installed, test candidate targets and only highlight them if they
190745        would normally display a hand cursor on mouse over. This is a heuristic, but has
190746        been tested and found effective in practice.
190747
190748        This CL refactors EventHandler::selectCursor() to make the logic for determining
190749        if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
190750
190751        Relies on existing cursor tests.
190752
190753        * page/EventHandler.cpp:
190754        (WebCore::EventHandler::useHandCursor):
190755        (WebCore):
190756        (WebCore::EventHandler::selectCursor):
190757        * page/EventHandler.h:
190758        (EventHandler):
190759
1907602012-10-30  Rob Buis  <rbuis@rim.com>
190761
190762        [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
190763        https://bugs.webkit.org/show_bug.cgi?id=100783
190764
190765        Reviewed by Yong Li.
190766
190767        PR 220513.
190768
190769        Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
190770        compatibility, but not needed anymore.
190771
190772        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
190773        (WebCore::CookieDatabaseBackingStore::invokeOpen):
190774        * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
190775
1907762012-10-30  Glenn Adams  <glenn@skynav.com>
190777
190778        [CSS] Expand -webkit-line-break value space
190779        https://bugs.webkit.org/show_bug.cgi?id=100739
190780
190781        Reviewed by Eric Seidel.
190782
190783        (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
190784        (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
190785        (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
190786
190787        New tests to be added when functionality of new values is added. No rendering behavior change at this time.
190788        Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
190789        tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
190790        added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
190791        default semantics.
190792
190793        * css/CSSComputedStyleDeclaration.cpp:
190794        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
190795        Update from kthmlLineBreak() to lineBreak().
190796
190797        * css/CSSParser.cpp:
190798        (WebCore::isValidKeywordPropertyAndValue):
190799        Update values supported for CSSPropertyWebkitLineBreak.
190800
190801        * css/CSSPrimitiveValueMappings.h:
190802        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
190803        (WebCore::CSSPrimitiveValue::operator LineBreak):
190804        Update LineBreak enumeration values (previously EKHTMLLineBreak).
190805
190806        * css/CSSValueKeywords.in:
190807        Update keywords used for -webkit-line-break.
190808
190809        * css/StyleBuilder.cpp:
190810        (WebCore::StyleBuilder::StyleBuilder):
190811        Update names for line break style getter/setter.
190812
190813        * rendering/style/RenderStyle.cpp:
190814        (WebCore::RenderStyle::diff):
190815        Remove khtml prefix on line break related state.
190816
190817        * rendering/style/RenderStyle.h:
190818        Remove khtml prefix on line break related methods. Update to redefined LineBreak
190819        enumeration type.
190820
190821        * rendering/style/RenderStyleConstants.h:
190822        Rename EKHTMLLineBreak enumeration to LineBreak.
190823        Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
190824        use better names.
190825
190826        * rendering/style/StyleRareInheritedData.cpp:
190827        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
190828        (WebCore::StyleRareInheritedData::operator==):
190829        Remove khtml prefix on line break related state references.
190830
190831        * rendering/style/StyleRareInheritedData.h:
190832        (StyleRareInheritedData):
190833        Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
190834        of which 5 are now used.
190835
1908362012-10-30  Antti Koivisto  <antti@apple.com>
190837
190838        Avoid unnecessary style recalcs on class attribute mutation
190839        https://bugs.webkit.org/show_bug.cgi?id=100776
190840
190841        Reviewed by Andreas Kling.
190842
190843        There is no need to invalidate element style on class attribute change if neither the added
190844        or removed classes featured in any active stylesheet.
190845
190846        * css/RuleFeature.cpp:
190847        (WebCore::RuleFeatureSet::add):
190848        (WebCore::RuleFeatureSet::clear):
190849        (WebCore::RuleFeatureSet::reportMemoryUsage):
190850        * css/RuleFeature.h:
190851        (RuleFeatureSet):
190852        * css/RuleSet.cpp:
190853        (WebCore::collectFeaturesFromSelector):
190854        
190855            Collect classes mentioned in CSS selectors the same way ids and attribute names are
190856            already collected.
190857
190858        * css/StyleResolver.cpp:
190859        (WebCore::StyleResolver::hasSelectorForClass):
190860        
190861            Add a method to test if a given class name is mentioned anywhere in stylehseets.
190862
190863        (WebCore):
190864        * css/StyleResolver.h:
190865        * css/StyleScopeResolver.h:
190866        (WebCore):
190867        * dom/Element.cpp:
190868        (WebCore::collectAddedAndRemovedClasses):
190869        (WebCore):
190870        (WebCore::Element::classAttributeChanged):
190871        
190872            Figure out which classes were added and removed. Test if they are present in any style
190873            rule and invalidate the style only if they are.
190874
190875        * dom/SpaceSplitString.cpp:
190876        (WebCore::SpaceSplitStringData::add):
190877        (WebCore::SpaceSplitStringData::remove):
190878        (WebCore::SpaceSplitString::add):
190879        (WebCore::SpaceSplitString::remove):
190880        
190881            Added bool return value to indicate if anything was actually removed. Reorganized 
190882            the code a bit to avoid unnecessary uniquing when nothing changes.
190883
190884        * dom/SpaceSplitString.h:
190885        (SpaceSplitStringData):
190886        (SpaceSplitString):
190887
1908882012-10-30  Robert Hogan  <robert@webkit.org>
190889
190890        white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
190891        https://bugs.webkit.org/show_bug.cgi?id=29648
190892
190893        Reviewed by Levi Weintraub.
190894
190895        A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
190896        it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
190897        on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
190898        and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
190899        push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
190900        below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
190901
190902        Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
190903
190904        * rendering/RenderBlockLineLayout.cpp:
190905        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
190906
1909072012-10-26  Alexandru Chiculita  <achicu@adobe.com>
190908
190909        [CSS Shaders] Add the ValidatedCustomFilterOperation class
190910        https://bugs.webkit.org/show_bug.cgi?id=100558
190911
190912        Reviewed by Dean Jackson.
190913
190914        Added the ValidatedCustomFilterOperation class. The file is now almost empty,
190915        but more is going to come in the following patches.
190916
190917        Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
190918        such operations for now.
190919        
190920        No new tests, there is no new functionality yet.
190921
190922        * CMakeLists.txt:
190923        * GNUmakefile.list.am:
190924        * Target.pri:
190925        * WebCore.gypi:
190926        * WebCore.vcproj/WebCore.vcproj:
190927        * WebCore.xcodeproj/project.pbxproj:
190928        * css/CSSComputedStyleDeclaration.cpp:
190929        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
190930        * css/StyleResolver.cpp:
190931        (WebCore::StyleResolver::createFilterOperations):
190932        * platform/graphics/blackberry/LayerWebKitThread.cpp:
190933        (WebCore::LayerWebKitThread::filtersCanBeComposited):
190934        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
190935        (PlatformCALayer::filtersCanBeComposited):
190936        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
190937        (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
190938        * platform/graphics/filters/FilterOperation.h:
190939        * platform/graphics/filters/FilterOperations.cpp:
190940        (WebCore::FilterOperations::hasCustomFilter):
190941        (WebCore::FilterOperations::getOutsets):
190942        * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
190943        (WebCore):
190944        (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
190945        (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
190946        (WebCore::ValidatedCustomFilterOperation::blend):
190947        * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
190948        (WebCore):
190949        (ValidatedCustomFilterOperation):
190950        (WebCore::ValidatedCustomFilterOperation::create):
190951        (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
190952        (WebCore::ValidatedCustomFilterOperation::movesPixels):
190953        (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
190954        (WebCore::ValidatedCustomFilterOperation::operator==):
190955
1909562012-10-29  Anders Carlsson  <andersca@apple.com>
190957
190958        Build WebKit as C++11 on Mac
190959        https://bugs.webkit.org/show_bug.cgi?id=100720
190960
190961        Reviewed by Daniel Bates.
190962
190963        * Configurations/Base.xcconfig:
190964        Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
190965
190966        * platform/graphics/FontPlatformData.h:
190967        (WebCore::FontPlatformData::hash):
190968        * platform/graphics/cg/GraphicsContextCG.cpp:
190969        (WebCore::GraphicsContext::drawLine):
190970        (WebCore::GraphicsContext::strokeArc):
190971        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
190972        (WebCore::CustomFilterProgramInfo::hash):
190973        (WebCore::ProtectionSpaceHash::hash):
190974        * platform/network/cf/FormDataStreamCFNet.cpp:
190975        (WebCore::setHTTPBody):
190976        Add static_casts to prevent implicit type conversions in non-constant initializer lists.
190977        
190978        * platform/mac/ClipboardMac.mm:
190979        (WebCore::ClipboardMac::createDragImage):
190980        * platform/mac/CursorMac.mm:
190981        (WebCore::createNamedCursor):
190982        * platform/mac/ScrollViewMac.mm:
190983        (WebCore::ScrollView::platformSetContentsSize):
190984        Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
190985
190986        * platform/mac/CookieJar.mm:
190987        (WebCore::cookiesEnabled):
190988        * platform/network/mac/ResourceHandleMac.mm:
190989        (WebCore::shouldRelaxThirdPartyCookiePolicy):
190990        Add explicit casts to NSHTTPCookieAcceptPolicy.
190991
190992        * platform/mac/WebCoreNSURLExtras.h:
190993        * platform/mac/WebCoreNSURLExtras.mm:
190994        (WebCore::URLByTruncatingOneCharacterBeforeComponent):
190995        (WebCore::dataForURLComponentType):
190996        * platform/network/ProtectionSpaceHash.h:
190997        Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
190998        functions are exported from WebCore.
190999
1910002012-10-30  Dan Bernstein  <mitz@apple.com>
191001
191002        <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
191003        https://bugs.webkit.org/show_bug.cgi?id=100768
191004
191005        Reviewed by Anders Carlsson.
191006
191007        r121299 introduced code to restore the paragraph range by saving its length and start offset
191008        relative to the document. The latter was obtained by iterating over the range starting at
191009        the beginning of the document and ending at the beginning of the paragraph range. However,
191010        such a range could not be constructed if the paragraph range was contained in a shadow DOM,
191011        since a range must have both its endpoints within the same shadow tree (or not in a shadow
191012        tree).
191013
191014        Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
191015
191016        * editing/Editor.cpp:
191017        (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
191018        root container of paragraphRange, using the same logic used by
191019        checkForDifferentRootContainer() in Range.cpp.
191020
1910212012-10-30  Dan Carney  <dcarney@google.com>
191022
191023        Remove ensureAuxiliaryContext
191024        https://bugs.webkit.org/show_bug.cgi?id=99975
191025
191026        Reviewed by Adam Barth.
191027
191028        Removed auxilliaryContext as use if it is problematic in IDB.
191029
191030        No new tests. No change in functionality.
191031
191032        * Modules/indexeddb/IDBCursor.cpp:
191033        (WebCore::IDBCursor::update):
191034        (WebCore::IDBCursor::setValueReady):
191035        * Modules/indexeddb/IDBCursor.h:
191036        (IDBCursor):
191037        * Modules/indexeddb/IDBObjectStore.cpp:
191038        (WebCore::generateIndexKeysForValue):
191039        (WebCore::IDBObjectStore::put):
191040        (WebCore):
191041        * Modules/indexeddb/IDBRequest.cpp:
191042        (WebCore::IDBRequest::onSuccess):
191043        (WebCore::IDBRequest::dispatchEvent):
191044        * bindings/v8/IDBBindingUtilities.cpp:
191045        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
191046        (WebCore::deserializeIDBValue):
191047        (WebCore::injectIDBKeyIntoScriptValue):
191048        * bindings/v8/IDBBindingUtilities.h:
191049        (WebCore):
191050        * bindings/v8/V8Binding.cpp:
191051        (WebCore::toV8Context):
191052        (WebCore):
191053        * bindings/v8/V8Binding.h:
191054        (WebCore):
191055        * bindings/v8/V8PerIsolateData.cpp:
191056        (WebCore):
191057        * bindings/v8/V8PerIsolateData.h:
191058
1910592012-10-30  Huang Dongsung  <luxtella@company100.net>
191060
191061        [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
191062        https://bugs.webkit.org/show_bug.cgi?id=98989
191063
191064        Reviewed by Dean Jackson.
191065
191066        Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
191067        FECustomFilter now plays a role in extending FilterEffect and delegates
191068        rendering CSS Shaders to CustomFilterRenderer.
191069
191070        CustomFilterRenderer does not know Filter and FilterEffect. We can
191071        create a CustomFilterRenderer instance with only GraphicsContext3D and
191072        CustomFilterValidatedProgram. It means that Accelerated Compositing can
191073        create the CustomFilterRenderer instance if Accelerated Compositing has
191074        GraphicsContext3D and CustomFilterOperation, and it is already possible.
191075
191076        This patch prepares to enable CSS Shaders on Accelerated Compositing.
191077
191078        No new tests. Covered by css3/filters/custom
191079
191080        * CMakeLists.txt:
191081        * GNUmakefile.list.am:
191082        * Target.pri:
191083        * WebCore.gypi:
191084        * WebCore.vcproj/WebCore.vcproj:
191085        * WebCore.xcodeproj/project.pbxproj:
191086        * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
191087        (WebCore):
191088        (WebCore::orthogonalProjectionMatrix):
191089        (WebCore::CustomFilterRenderer::create):
191090        (WebCore::CustomFilterRenderer::CustomFilterRenderer):
191091        (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
191092        (WebCore::CustomFilterRenderer::premultipliedAlpha):
191093        (WebCore::CustomFilterRenderer::programNeedsInputTexture):
191094        (WebCore::CustomFilterRenderer::draw):
191095        (WebCore::CustomFilterRenderer::prepareForDrawing):
191096        (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
191097        (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
191098        (WebCore::CustomFilterRenderer::bindVertexAttribute):
191099        (WebCore::CustomFilterRenderer::unbindVertexAttribute):
191100        (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
191101        (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
191102        (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
191103        (WebCore::CustomFilterRenderer::bindProgramParameters):
191104        (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
191105        (WebCore::CustomFilterRenderer::unbindVertexAttributes):
191106        * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
191107        (WebCore):
191108        (CustomFilterRenderer):
191109          CustomFilterRenderer renders custom filters in GPU using a
191110          GraphicsContext3D.
191111        * platform/graphics/filters/FECustomFilter.cpp:
191112        (WebCore::FECustomFilter::FECustomFilter):
191113        (WebCore::FECustomFilter::create):
191114        (WebCore::FECustomFilter::deleteRenderBuffers):
191115        (WebCore::FECustomFilter::drawFilterMesh):
191116        (WebCore::FECustomFilter::prepareForDrawing):
191117        (WebCore::FECustomFilter::applyShader):
191118        (WebCore::FECustomFilter::resolveMultisampleBuffer):
191119        (WebCore::FECustomFilter::resizeMultisampleBuffers):
191120        (WebCore::FECustomFilter::resizeContext):
191121        * platform/graphics/filters/FECustomFilter.h:
191122        (WebCore):
191123        (FECustomFilter):
191124        * rendering/FilterEffectRenderer.cpp:
191125        (WebCore::createCustomFilterEffect):
191126
1911272012-10-30  Mike West  <mkwst@chromium.org>
191128
191129        Web Inspector: Associate console messages with the requests that caused them.
191130        https://bugs.webkit.org/show_bug.cgi?id=99941
191131
191132        Reviewed by Pavel Feldman.
191133
191134        The inspector currently supports the concept of a request's "initiator"
191135        in order to add context to console messages that are generated in
191136        response to a specific request. The initiator is used as the message's
191137        anchor link iff a requestID is present, and no stack trace is present.
191138
191139        Currently, this functionality is only exposed to three specific
191140        callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
191141        'InspectorConsoleAgent::didReceiveResponse', and
191142        'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
191143        mechanism to associate requests with console messages by passing the
191144        request's identifier through 'ScriptExecutionContext::addConsoleMessage'
191145        or 'Console::addMessage' when relevant.
191146
191147        This patch should have no visible changes. It just installs some new
191148        piping, and adjusts the three methods mentioned above to use it.
191149        Existing tests shouldn't break.
191150
191151        * dom/Document.cpp:
191152        (WebCore::Document::addMessage):
191153        * dom/Document.h:
191154        (Document):
191155            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
191156            through to Console::addMessage.
191157        * dom/ScriptExecutionContext.cpp:
191158        (WebCore::ScriptExecutionContext::addConsoleMessage):
191159        * dom/ScriptExecutionContext.h:
191160        (ScriptExecutionContext):
191161            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
191162            through to the subclass' addMessage method.
191163        * inspector/ConsoleMessage.cpp:
191164        (WebCore::ConsoleMessage::ConsoleMessage):
191165            Accept an unsigned long instead of a string, and move the conversion
191166            from WebCore request identifiers to Inspector request identifiers
191167            into ConsoleMessage.
191168        * inspector/ConsoleMessage.h:
191169        (ConsoleMessage):
191170            Add 'requestIdentifier' (defaulting to 0) to the
191171            ConsoleMessage constructor that accepts a ScriptCallStack (it was
191172            already part of the constructor that accepted a line number).
191173        * inspector/IdentifiersFactory.cpp:
191174        (WebCore::IdentifiersFactory::requestId):
191175            If the provided request identifier is 0, return an empty string.
191176            This simplifies the logic at the callsite.
191177        * inspector/InspectorConsoleAgent.cpp:
191178        (WebCore::InspectorConsoleAgent::addMessageToConsole):
191179            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
191180            through to the 'ConsoleMessage' constructor after converting it to
191181            an internal identifier via 'IdentifiersFactor::requestId'.
191182        (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
191183        (WebCore::InspectorConsoleAgent::didReceiveResponse):
191184        (WebCore::InspectorConsoleAgent::didFailLoading):
191185            Use the new 'requestIdentifier' parameter on addMessageToConsole
191186            rather than replicating the behavior in each of these three methods.
191187        * inspector/InspectorConsoleAgent.h:
191188        (InspectorConsoleAgent):
191189            Add a 'requestIdentifier' parameter (defaulting to 0).
191190        * inspector/InspectorConsoleInstrumentation.h:
191191        (WebCore::InspectorInstrumentation::addMessageToConsole):
191192        * inspector/InspectorInstrumentation.cpp:
191193        (WebCore):
191194        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
191195        * inspector/InspectorInstrumentation.h:
191196        (InspectorInstrumentation):
191197            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
191198            through to lower levels of the stack.
191199        * page/Console.cpp:
191200        (WebCore::Console::addMessage):
191201        * page/Console.h:
191202        (Console):
191203            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
191204            through to 'InspectorInstrumentation::addMessageToConsole'.
191205        * workers/WorkerContext.cpp:
191206        (WebCore::WorkerContext::addMessage):
191207        (WebCore::WorkerContext::addMessageToWorkerConsole):
191208        * workers/WorkerContext.h:
191209        (WorkerContext):
191210            Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
191211            through to 'InspectorInstrumentation::addMessageToConsole'.
191212
1912132012-10-29  Anders Carlsson  <andersca@apple.com>
191214
191215        String::createCFString should return a RetainPtr
191216        https://bugs.webkit.org/show_bug.cgi?id=100419
191217
191218        Reviewed by Andreas Kling.
191219
191220        Update callers of String::createCFString.
191221
191222        * bridge/objc/objc_runtime.mm:
191223        (JSC::Bindings::callObjCFallbackObject):
191224        * html/HTMLMediaElement.cpp:
191225        (WebCore::createFileURLForApplicationCacheResource):
191226        * loader/archive/cf/LegacyWebArchive.cpp:
191227        (WebCore::LegacyWebArchive::createPropertyListRepresentation):
191228        * platform/LocalizedStrings.cpp:
191229        (WebCore::formatLocalizedString):
191230        (WebCore::contextMenuItemTagLookUpInDictionary):
191231        (WebCore::keygenKeychainItemName):
191232        (WebCore::imageTitle):
191233        * platform/RuntimeApplicationChecks.cpp:
191234        (WebCore::mainBundleIsEqualTo):
191235        * platform/cf/FileSystemCF.cpp:
191236        (WebCore::fileSystemRepresentation):
191237        (WebCore::pathAsURL):
191238        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
191239        (PlatformCAAnimation::PlatformCAAnimation):
191240        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
191241        (resubmitAllAnimations):
191242        (PlatformCALayer::addAnimationForKey):
191243        (PlatformCALayer::removeAnimationForKey):
191244        (PlatformCALayer::setName):
191245        * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
191246        (PlatformCALayerWinInternal::updateTiles):
191247        * platform/graphics/cg/ImageBufferCG.cpp:
191248        (WebCore::utiFromMIMEType):
191249        * platform/graphics/cg/ImageSourceCGMac.mm:
191250        (WebCore::MIMETypeForImageSourceType):
191251        (WebCore::preferredExtensionForImageSourceType):
191252        * platform/mac/ClipboardMac.mm:
191253        (WebCore::cocoaTypeFromHTMLClipboardType):
191254        (WebCore::utiTypeFromCocoaType):
191255        * platform/mac/SSLKeyGeneratorMac.cpp:
191256        (WebCore::signedPublicKeyAndChallengeString):
191257        * platform/network/cf/AuthenticationCF.cpp:
191258        (WebCore::createCF):
191259        * platform/network/cf/CookieJarCFNet.cpp:
191260        (WebCore::setCookies):
191261        * platform/network/cf/DNSCFNet.cpp:
191262        (WebCore::DNSResolveQueue::platformResolve):
191263        * platform/network/cf/ResourceErrorCF.cpp:
191264        (WebCore::ResourceError::cfError):
191265        * platform/network/cf/ResourceHandleCFNet.cpp:
191266        (WebCore::setDefaultMIMEType):
191267        (WebCore::willSendRequest):
191268        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
191269        (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
191270        * platform/network/cf/ResourceRequestCFNet.cpp:
191271        (WebCore::setHeaderFields):
191272        (WebCore::ResourceRequest::doUpdatePlatformRequest):
191273        * platform/network/cf/ResourceResponseCFNet.cpp:
191274        (WebCore::ResourceResponse::cfURLResponse):
191275        * platform/network/cf/SocketStreamHandleCFNet.cpp:
191276        (WebCore::SocketStreamHandle::createStreams):
191277        (WebCore::SocketStreamHandle::addCONNECTCredentials):
191278        (WebCore::SocketStreamHandle::copyCFStreamDescription):
191279        * platform/network/mac/ResourceRequestMac.mm:
191280        (WebCore::ResourceRequest::doUpdatePlatformRequest):
191281        * platform/network/mac/WebCoreURLResponse.mm:
191282        (WebCore::adjustMIMETypeIfNecessary):
191283        * platform/text/cf/HyphenationCF.cpp:
191284        (WebCore::::createValueForKey):
191285        * platform/text/cf/StringCF.cpp:
191286        (WTF::String::createCFString):
191287        * platform/text/cf/StringImplCF.cpp:
191288        (WTF::StringImpl::createCFString):
191289        * platform/text/mac/StringImplMac.mm:
191290        (WTF::StringImpl::operator NSString *):
191291        * platform/text/mac/TextCodecMac.cpp:
191292        (WebCore::TextCodecMac::encode):
191293        * platform/win/SearchPopupMenuWin.cpp:
191294        (WebCore::autosaveKey):
191295        (WebCore::SearchPopupMenuWin::saveRecentSearches):
191296
1912972012-10-30  Chris Fleizach  <cfleizach@apple.com>
191298
191299        AX: Support embedded SVG objects in AX tree
191300        https://bugs.webkit.org/show_bug.cgi?id=97571
191301
191302        Reviewed by Tim Horton.
191303
191304        This patch allows an SVG image from another resource to be hooked into the AX
191305        hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
191306        its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
191307
191308        Test: accessibility/svg-remote-element.html
191309
191310        * CMakeLists.txt:
191311        * GNUmakefile.list.am:
191312        * WebCore.gypi:
191313        * WebCore.vcproj/WebCore.vcproj:
191314        * WebCore.xcodeproj/project.pbxproj:
191315        * accessibility/AXObjectCache.cpp:
191316        (WebCore::createFromRenderer):
191317        * accessibility/AccessibilityAllInOne.cpp:
191318        * accessibility/AccessibilityObject.h:
191319        (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
191320        (AccessibilityObject):
191321        * accessibility/AccessibilityRenderObject.cpp:
191322        (WebCore::AccessibilityRenderObject::detach):
191323        (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
191324        (WebCore::AccessibilityRenderObject::boundingBoxRect):
191325        (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
191326        (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
191327        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
191328        (WebCore::AccessibilityRenderObject::isSVGImage):
191329        (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
191330        (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
191331        (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
191332        (WebCore::AccessibilityRenderObject::addChildren):
191333        * accessibility/AccessibilityRenderObject.h:
191334        (AccessibilityRenderObject):
191335        * accessibility/AccessibilitySVGRoot.cpp: Added.
191336        (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
191337        (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
191338        (WebCore::AccessibilitySVGRoot::create):
191339        (WebCore::AccessibilitySVGRoot::parentObject):
191340        * accessibility/AccessibilitySVGRoot.h: Added.
191341        (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
191342        (WebCore::AccessibilitySVGRoot::setParent):
191343        (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
191344        (WebCore::toAccessibilitySVGRoot):
191345        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
191346        (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
191347        in a special manner.
191348        (createAccessibilityRoleMap):
191349        * loader/EmptyClients.h:
191350        (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
191351        the accessibility bounding rect of elements.
191352        (WebCore::EmptyChromeClient::isEmptyChromeClient):
191353        * page/ChromeClient.h:
191354        (WebCore::ChromeClient::isEmptyChromeClient):
191355        (ChromeClient):
191356        * svg/graphics/SVGImage.cpp:
191357        * svg/graphics/SVGImageChromeClient.h: Added.
191358        (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
191359        (WebCore::SVGImageChromeClient::SVGImageChromeClient):
191360        (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
191361        (WebCore::SVGImageChromeClient::image):
191362        (WebCore::SVGImageChromeClient::chromeDestroyed):
191363        (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
191364        (WebCore::toSVGImageChromeClient):
191365
1913662012-10-30  Dan Carney  <dcarney@google.com>
191367
191368        add 7 bit strings capabilities to the v8 binding layer
191369        https://bugs.webkit.org/show_bug.cgi?id=91850
191370
191371        Reviewed by Adam Barth.
191372
191373        This change enables the v8 binding layer to make use of webkit's
191374        8 bit string capabilities. Using 8 bit strings leads to certain
191375        benchmark performance improvemnts as can be seen in
191376        https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
191377
191378        No new tests. Test coverage already extensive.
191379
191380        * bindings/v8/V8PerIsolateData.cpp:
191381        (WebCore::V8PerIsolateData::visitExternalStrings):
191382        * bindings/v8/V8StringResource.cpp:
191383        (StringTraits):
191384        (WebCore::false):
191385        (WebCore):
191386        (WebCore::true):
191387        (WebCore::v8StringToWebCoreString):
191388        * bindings/v8/V8ValueCache.cpp:
191389        (WebCore::makeExternalString):
191390        (WebCore::WebCoreStringResourceBase::visitStrings):
191391        * bindings/v8/V8ValueCache.h:
191392        (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
191393        (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
191394        (WebCore::WebCoreStringResourceBase::atomicString):
191395        (WebCoreStringResourceBase):
191396        (WebCore::WebCoreStringResourceBase::memoryConsumption):
191397
1913982012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
191399
191400        [AC] Fix compilation warnings when enabling Accelerated Compositing
191401        https://bugs.webkit.org/show_bug.cgi?id=100741
191402
191403        Reviewed by Kenneth Rohde Christiansen.
191404
191405        Fix a few compilation warnings when building EFL port
191406        with accelerated compositing enabled.
191407
191408        No new tests, no behavior change.
191409
191410        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
191411        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
191412        (WebCore::resolveGLMethods):
191413        (WebCore::GraphicsSurface::platformCopyToGLTexture):
191414        (WebCore::GraphicsSurface::platformLock):
191415        * platform/graphics/texmap/TextureMapperGL.cpp:
191416        (WebCore::BitmapTextureGL::updateContents):
191417
1914182012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
191419
191420        [Qt] Animations jump when the page is suspended
191421        https://bugs.webkit.org/show_bug.cgi?id=100673
191422
191423        Reviewed by Kenneth Rohde Christiansen.
191424
191425        GraphicsLayerAnimations::pause() should accept time from start and not an offset.
191426
191427        We need to support the "freeze" API before this can be reliably tested.
191428        See https://bugs.webkit.org/show_bug.cgi?id=100703.
191429
191430        * platform/graphics/GraphicsLayerAnimation.cpp:
191431        (WebCore::GraphicsLayerAnimation::pause):
191432
1914332012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
191434
191435        [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
191436        https://bugs.webkit.org/show_bug.cgi?id=100639.
191437
191438        Reviewed by Kenneth Rohde Christiansen.
191439
191440        TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
191441        In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
191442        from a given WindowId, but doesn't create any new window.
191443        However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
191444        With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
191445
191446        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
191447        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
191448
1914492012-10-30  Emil A Eklund  <eae@chromium.org>
191450
191451        [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
191452        https://bugs.webkit.org/show_bug.cgi?id=100742
191453
191454        Reviewed by Levi Weintraub.
191455
191456        As we no longer pixel snap values when computing the current width for a
191457        line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
191458        either.
191459
191460        Test: fast/sub-pixel/float-wrap-zoom.html
191461
191462        * rendering/RenderBlockLineLayout.cpp:
191463        (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
191464        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
191465
1914662012-10-30  Max Vujovic  <mvujovic@adobe.com>
191467
191468        [CSS Shaders] Reject vertex shaders with custom attributes
191469        https://bugs.webkit.org/show_bug.cgi?id=98973
191470
191471        Reviewed by Dean Jackson.
191472
191473        Improved CSS Custom Filters shader validation. With this patch:
191474        (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
191475        (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
191476
191477        Most of the changes are from renaming CustomFilterOperation::MeshType to
191478        CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
191479        pulling in CustomFilterOperation for classes that only care about the mesh type.
191480
191481        Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
191482        meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
191483        belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
191484        vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
191485        only a vec3.
191486
191487        Tests:
191488        Add two new checks to the test file:
191489            css3/filters/custom/invalid-custom-filter-attribute-types.html
191490        Add two new shaders:
191491            css3/filters/resources/invalid-custom-attribute.vs
191492            css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
191493
191494        * WebCore.xcodeproj/project.pbxproj:
191495            Update a broken reference to CustomFilterConstants.h in the Xcode project file.
191496        * css/CSSComputedStyleDeclaration.cpp:
191497        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
191498            Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
191499        * css/StyleResolver.cpp:
191500        (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
191501        * platform/graphics/filters/CustomFilterConstants.h:
191502            Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
191503            don't have to include CustomFilterOperation just to access the old
191504            CustomFilterOperation::MeshType enum.
191505        * platform/graphics/filters/CustomFilterMesh.cpp:
191506        (WebCore::CustomFilterMesh::CustomFilterMesh):
191507            Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
191508        * platform/graphics/filters/CustomFilterMesh.h:
191509        (WebCore::CustomFilterMesh::create): Ditto.
191510        (WebCore::CustomFilterMesh::meshType): Ditto.
191511        (CustomFilterMesh): Ditto.
191512        * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
191513        (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
191514        (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
191515        * platform/graphics/filters/CustomFilterMeshGenerator.h:
191516        (CustomFilterMeshGenerator): Ditto.
191517        (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
191518        (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
191519        * platform/graphics/filters/CustomFilterOperation.cpp: 
191520        (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
191521        * platform/graphics/filters/CustomFilterOperation.h:
191522        (WebCore::CustomFilterOperation::create): Ditto.
191523        (WebCore::CustomFilterOperation::meshType): Ditto.
191524        (CustomFilterOperation): Ditto.
191525        * platform/graphics/filters/CustomFilterProgram.cpp:
191526        (WebCore::CustomFilterProgram::CustomFilterProgram):
191527            Add a meshType constructor parameter because the program now needs to know the meshType
191528            to properly validate.
191529        (WebCore::CustomFilterProgram::programInfo):
191530            Pass meshType to CustomFilterProgram constructor.
191531        (WebCore::CustomFilterProgram::operator==):
191532            Check the meshType in the equals operator.
191533        * platform/graphics/filters/CustomFilterProgram.h:
191534            Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
191535            for a programInfo object just to get the shader strings in
191536            CoordinatedGraphicsArgumentCoders.cpp.
191537        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
191538        (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
191539            Add a meshType constructor parameter.       
191540        (WebCore::CustomFilterProgramInfo::hash):
191541            Include the meshType in the validated program hash, since the same shader code can pass
191542            or fail validation based on the meshType.
191543        (WebCore::CustomFilterProgramInfo::operator==):
191544            Check the meshType in the equals operator.
191545        * platform/graphics/filters/CustomFilterProgramInfo.h:
191546        (CustomFilterProgramInfo):
191547            Update method prototype.
191548        (WebCore::CustomFilterProgramInfo::meshType):
191549            Add meshType getter.
191550        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
191551        (WebCore::CustomFilterValidatedProgram::validateSymbols):
191552            If the author defines attribute that is is not found in the built-in attribute map,
191553            reject the shader.
191554            If the author defines a_triangleCoord without a detached mesh type, reject the shader.
191555            Also, make this previously file-static function into a method of
191556            CustomFilterValidatedProgram because it now needs to access the m_meshType.
191557        * platform/graphics/filters/CustomFilterValidatedProgram.h:
191558        (CustomFilterValidatedProgram):
191559            Add a meshType constructor parameter because the program now needs to know the meshType
191560            to properly validate.
191561        * platform/graphics/filters/FECustomFilter.cpp:
191562        (WebCore::FECustomFilter::FECustomFilter):
191563            Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
191564        (WebCore::FECustomFilter::create): Ditto.
191565        (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
191566        (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
191567        * platform/graphics/filters/FECustomFilter.h:
191568        (FECustomFilter): Ditto.
191569        * rendering/style/StyleCustomFilterProgram.h:
191570        (WebCore::StyleCustomFilterProgram::create):
191571            Add a meshType constructor parameter.
191572        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
191573
1915742012-10-30  Andrey Lushnikov  <lushnikov@google.com>
191575
191576        Web Inspector: adds isOwnProperty to remote protocol
191577        https://bugs.webkit.org/show_bug.cgi?id=100664
191578
191579        Reviewed by Pavel Feldman.
191580
191581        Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
191582
191583        Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
191584        remote debugging protocol. 
191585
191586        * inspector/InjectedScriptSource.js:
191587        (.):
191588        * inspector/Inspector.json:
191589
1915902012-10-30  Zeno Albisser  <zeno@webkit.org>
191591
191592        [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
191593        https://bugs.webkit.org/show_bug.cgi?id=100680
191594
191595        When creating a temporary for swizzling the image data,
191596        the temporary will have the target size.
191597        Therefore no offset within the available image data
191598        shall be applied in this case.
191599
191600        Reviewed by Noam Rosenthal.
191601
191602        * platform/graphics/texmap/TextureMapperGL.cpp:
191603        (WebCore::BitmapTextureGL::updateContents):
191604
1916052012-10-30  Kent Tamura  <tkent@chromium.org>
191606
191607        Remove unused code for old input[type=date] UI
191608        https://bugs.webkit.org/show_bug.cgi?id=100734
191609
191610        Reviewed by Hajime Morita.
191611
191612        The old input[type=date] UI used in Google Chrome 20-23 (text field with
191613        a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
191614
191615        No new tests because of no behavior changes.
191616
191617        * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
191618        * html/DateInputType.h: Ditto.
191619
191620        * html/HTMLInputElement.cpp:
191621        (WebCore::HTMLInputElement::supportsPlaceholder):
191622        Remove fixed-placeholder feature.
191623        * html/HTMLInputElement.h:
191624        (HTMLInputElement): Ditto.
191625        * html/HTMLTextFormControlElement.h:
191626        (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
191627        * html/InputType.cpp: Remove fixed-placeholder feature.
191628        * html/InputType.h: Ditto.
191629        * html/TextFieldInputType.cpp:
191630        (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
191631
191632        * platform/text/PlatformLocale.h:
191633        (Locale): Remove dateFormatText.
191634        * platform/text/LocaleICU.cpp: Ditto.
191635        * platform/text/LocaleICU.h: Ditto.
191636        * platform/text/LocaleNone.cpp: Ditto.
191637        * platform/text/mac/LocaleMac.h: Ditto.
191638        * platform/text/mac/LocaleMac.mm: Ditto.
191639        * platform/text/win/LocaleWin.cpp: Ditto.
191640        * platform/text/win/LocaleWin.h: Ditto.
191641        * platform/LocalizedStrings.h:
191642        (WebCore): Remove unused functions; calendarTodayText,
191643        calendarClearText, dateFormatYearText, dateFormatMonthText,
191644        dateFormatDayInMonthText
191645
1916462012-10-30  Kent Tamura  <tkent@chromium.org>
191647
191648        Fix crash by calendar picker or suggestion picker
191649        https://bugs.webkit.org/show_bug.cgi?id=100728
191650
191651        Reviewed by Hajime Morita.
191652
191653        Change DateTimeChooser so that it is ref-coutned.
191654
191655        Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
191656
191657        * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
191658        * page/ChromeClient.h:
191659        (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
191660        * loader/EmptyClients.h:
191661        (EmptyChromeClient): Follow the above change.
191662        * loader/EmptyClients.cpp:
191663        (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
191664
191665        * html/shadow/PickerIndicatorElement.h:
191666        (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
191667        * html/shadow/PickerIndicatorElement.cpp:
191668        (WebCore::PickerIndicatorElement::PickerIndicatorElement):
191669        Remove unnecessary initialization.
191670
1916712012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
191672
191673        Web Inspector: Timeline: promote "cpu activity" out of experiment
191674        https://bugs.webkit.org/show_bug.cgi?id=100726
191675
191676        Reviewed by Pavel Feldman.
191677
191678        1. CPU actibity bars redesigned
191679        2. Experiment setting removed
191680        3. Feature setting added
191681
191682        * English.lproj/localizedStrings.js: Updated setting label.
191683        * inspector/front-end/Settings.js: Replaced experiment with setting.
191684        * inspector/front-end/SettingsScreen.js: Added new setting.
191685        * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
191686        * inspector/front-end/timelinePanel.css: Ditto.
191687
1916882012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
191689
191690        [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
191691        https://bugs.webkit.org/show_bug.cgi?id=94020
191692
191693        Reviewed by Dean Jackson.
191694
191695        The default compositing mode has been changed from "normal source-over" to
191696        "normal source-atop". This applies to the default fragment shader that will
191697        kick in when there is no explicit fragment shader or mix function defined.
191698
191699        This has required to update all the existing tests; the dummy empty fragment
191700        shader has also been removed because not needed.
191701
191702        * css/CSSComputedStyleDeclaration.cpp:
191703        (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
191704        for the fragment shader has been added.
191705        * css/StyleResolver.cpp:
191706        (WebCore::StyleResolver::createCustomFilterOperation): The default program
191707        has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
191708        the default.
191709        * platform/graphics/filters/CustomFilterProgramInfo.h:
191710        (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
191711        New CustomFilterProgramMixSettings defaults to "source-atop" composite
191712        operator.
191713
1917142012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
191715
191716        [Qt][Mac] Unreviewed build fix.
191717        https://bugs.webkit.org/show_bug.cgi?id=100727.
191718
191719        Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
191720
191721        * platform/text/cf/AtomicStringCF.cpp:
191722
1917232012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
191724
191725        Optimize vclip for NEON in VectorMath
191726        https://bugs.webkit.org/show_bug.cgi?id=100737
191727
191728        Reviewed by Zoltan Herczeg.
191729
191730        Speed up vclip in VectorMath with NEON intrinsics.
191731
191732        * platform/audio/VectorMath.cpp:
191733        (WebCore::VectorMath::vclip):
191734
1917352012-10-30  Alexandru Chiculita  <achicu@adobe.com>
191736
191737        [CSS Shaders] Software and composited filters should have a common path
191738        https://bugs.webkit.org/show_bug.cgi?id=100532
191739
191740        Reviewed by Dean Jackson.
191741
191742        Added computeFilterOperations as a common method between the software filters
191743        and hardware composited ones. The method rejects custom filters that are not
191744        loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
191745        ValidatedCustomFilterOperation. That will help us keep the loading and verification 
191746        code for the custom filters common across all the ports.
191747
191748        No new tests, just refactoring existing code.
191749
191750        * rendering/RenderLayer.cpp:
191751        (WebCore::RenderLayer::computeFilterOperations):
191752        (WebCore):
191753        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
191754        * rendering/RenderLayer.h:
191755        (WebCore):
191756        (RenderLayer):
191757        * rendering/RenderLayerBacking.cpp:
191758        (WebCore::RenderLayerBacking::updateFilters):
191759
1917602012-10-30  Alexei Filippov  <alph@chromium.org>
191761
191762        Web Inspector: Implement native memory snapshot grid view
191763        https://bugs.webkit.org/show_bug.cgi?id=100656
191764
191765        Native memory snapshots are now shown as an expandable tree form
191766        using the grid control.
191767
191768        Reviewed by Yury Semikhatsky.
191769
191770        * inspector/front-end/NativeMemorySnapshotView.js:
191771        (WebInspector.NativeMemorySnapshotView):
191772        (WebInspector.NativeSnapshotDataGrid):
191773        (WebInspector.NativeSnapshotNode):
191774        (WebInspector.NativeSnapshotNode.prototype.createCell):
191775        (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
191776        (WebInspector.NativeSnapshotNode.prototype._populate):
191777        (WebInspector.MemoryBlockViewProperties._initialize):
191778        (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
191779        * inspector/front-end/dataGrid.css:
191780        (.data-grid td):
191781        * inspector/front-end/nativeMemoryProfiler.css:
191782        (.memory-bar-chart-bar):
191783        (.native-snapshot-view):
191784        (.native-snapshot-view.visible):
191785        (.native-snapshot-view .data-grid):
191786        (.native-snapshot-view .data-grid table):
191787        (.native-snapshot-view .data-grid div.size-text):
191788        (.native-snapshot-view .data-grid div.size-bar):
191789        (.native-snapshot-view .data-grid div.percent-text):
191790
1917912012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
191792
191793        3d rotation with [0, 0, 0] direction vector should not be applied
191794        https://bugs.webkit.org/show_bug.cgi?id=100733
191795
191796        Reviewed by Levi Weintraub.
191797
191798        As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
191799        a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
191800        but webkit applies it with [1, 0, 0] direction vector.
191801
191802        Test: transforms/3d/general/3dtransform-values.html
191803
191804        * platform/graphics/transforms/TransformationMatrix.cpp:
191805        (WebCore::TransformationMatrix::rotate3d):
191806
1918072012-10-30  Yury Semikhatsky  <yurys@chromium.org>
191808
191809        Memory instrumentation: report actual object address for CachedResourceClients
191810        https://bugs.webkit.org/show_bug.cgi?id=100659
191811
191812        Reviewed by Alexander Pavlov.
191813
191814        Skipped pointers to objects that are not allocated on the heap directly.
191815
191816        To test this we need to compare addresses of objects traversed by the memory
191817        insrumentation with those allocated by the memory allocator. The latter set
191818        should include the former one.
191819
191820        * css/StyleResolver.cpp:
191821        (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
191822        objects and should not be reported separately.
191823        * loader/cache/CachedResource.cpp:
191824        (WTF): do not report memory occupied by CachedResourceClients as objects implementing
191825        the interface may have address which differ from CachedResourceClient*. The clients
191826        should be reachable from their instrumented owners where we know exact type of the
191827        clients and hence can figure correct address.
191828
1918292012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
191830
191831        [Refatoring] Remove ElementShadow::insertionPointFor
191832        https://bugs.webkit.org/show_bug.cgi?id=100625
191833
191834        Reviewed by Hajime Morita.
191835
191836        Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
191837        ComposedShadowTreeWalker. So we can remove it.
191838
191839        No new tests, simple refactoring.
191840
191841        * dom/ComposedShadowTreeWalker.cpp:
191842        (WebCore::resolveReprojection):
191843        (WebCore::AncestorChainWalker::parent):
191844        * dom/ElementShadow.cpp:
191845        * dom/ElementShadow.h:
191846        (ElementShadow):
191847        * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
191848        We should remove it.
191849
1918502012-10-29  Andy Estes  <aestes@apple.com>
191851
191852        Fix a typo that caused SVG external resources to be blocked on
191853        platforms other than Chromium.
191854
191855        * loader/cache/CachedResourceLoader.cpp:
191856        (WebCore::CachedResourceLoader::canRequest):
191857
1918582012-10-29  Keishi Hattori  <keishi@webkit.org>
191859
191860        NSLocale leaks in LocaleMac
191861        https://bugs.webkit.org/show_bug.cgi?id=97628
191862
191863        Reviewed by Kent Tamura.
191864
191865        We need to adopt the NSLocale object so it doesn't leak and
191866        determineLocale() should return a NSLocale without additional retain.
191867
191868        No new tests.
191869
191870        * platform/text/mac/LocaleMac.mm:
191871        (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
191872        (WebCore::Locale::create):
191873        (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
191874        (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
191875
1918762012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
191877
191878        [BlackBerry] Disable redirect to data scheme for potential fishing.
191879        https://bugs.webkit.org/show_bug.cgi?id=100713
191880
191881        Reviewed by George Staikos.
191882
191883        We will disable redirect to data scheme to avoid potential security concern, 
191884        described in klevjers.com/papers/phishing.pdf.
191885
191886
191887        * platform/network/blackberry/NetworkJob.cpp:
191888        (WebCore::NetworkJob::handleRedirect):
191889
1918902012-10-29  Vincent Scheib  <scheib@chromium.org>
191891
191892        Unreviewed, rolling out r132845.
191893        http://trac.webkit.org/changeset/132845
191894        https://bugs.webkit.org/show_bug.cgi?id=99975
191895
191896        Broke chromium builds, linker errors from
191897        IDBBindingUtilitiesTest
191898
191899        * Modules/indexeddb/IDBRequest.cpp:
191900        (WebCore::IDBRequest::IDBRequest):
191901        (WebCore::IDBRequest::onSuccess):
191902        (WebCore::IDBRequest::dispatchEvent):
191903        * Modules/indexeddb/IDBRequest.h:
191904        (IDBRequest):
191905        * bindings/v8/IDBBindingUtilities.cpp:
191906        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
191907        (WebCore):
191908        (WebCore::deserializeIDBValue):
191909        (WebCore::injectIDBKeyIntoScriptValue):
191910        (WebCore::idbKeyToScriptValue):
191911        * bindings/v8/V8PerIsolateData.cpp:
191912        (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
191913        (WebCore):
191914        * bindings/v8/V8PerIsolateData.h:
191915        (V8PerIsolateData):
191916
1919172012-10-29  Anders Carlsson  <andersca@apple.com>
191918
191919        Fix Windows build.
191920
191921        * platform/network/cf/ResourceRequestCFNet.cpp:
191922        (WebCore::setHeaderFields):
191923
1919242012-10-28  Mark Rowe  <mrowe@apple.com>
191925
191926        Simplify Xcode configuration settings that used to vary between OS versions.
191927
191928        Reviewed by Dan Bernstein.
191929
191930        * Configurations/Base.xcconfig:
191931        * Configurations/DebugRelease.xcconfig:
191932        * Configurations/WebCore.xcconfig:
191933
1919342012-10-28  Mark Rowe  <mrowe@apple.com>
191935
191936        Remove references to unsupported OS and Xcode versions.
191937
191938        Reviewed by Anders Carlsson.
191939
191940        * Configurations/Base.xcconfig:
191941        * Configurations/CompilerVersion.xcconfig: Removed.
191942        * Configurations/DebugRelease.xcconfig:
191943        * Configurations/Version.xcconfig:
191944        * Configurations/WebCore.xcconfig:
191945        * DerivedSources.make:
191946        * WebCore.xcodeproj/project.pbxproj:
191947
1919482012-10-29  Anders Carlsson  <andersca@apple.com>
191949
191950        AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
191951        https://bugs.webkit.org/show_bug.cgi?id=100701
191952
191953        Reviewed by Dan Bernstein.
191954
191955        * WebCore.exp.in:
191956        Export AtomicString::add(CFStringRef).
191957
191958        * Target.pri:
191959        * WebCore.gypi:
191960        * WebCore.vcproj/WebCore.vcproj:
191961        * WebCore.xcodeproj/project.pbxproj:
191962        Add AtomicStringCF.cpp 
191963
191964        * platform/text/cf/AtomicStringCF.cpp: Added.
191965        (WTF::AtomicString::add):
191966        When trying to add the atomic string to the table, first try to get a Latin-1 pointer
191967        from the string. Second, try to get a Unicode pointer from the string.
191968        If that also fails, copy the string to a temporary unicode buffer and add it from there.
191969
191970        * platform/text/cf/HyphenationCF.cpp:
191971        (WebCore::::createValueForKey):
191972        Update for AtomicString::createCFString being removed.
191973
1919742012-10-25  Stephen Chenney  <schenney@chromium.org>
191975
191976        feImage should not be allowed to self reference
191977        https://bugs.webkit.org/show_bug.cgi?id=94652
191978
191979        Reviewed by Eric Seidel.
191980
191981        Add cycle detection for SVG filter application, and also fix a problem
191982        with graphics context restore when filters are applied. This also
191983        converts the flags in FilterData to a state tracking system, as the
191984        number of flags was getting messy and only one flag is valid at any given time.
191985
191986        Test: svg/filters/feImage-self-and-other-referencing.html
191987
191988        * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
191989        state management and enable cycle detection.
191990        (WebCore):
191991        (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
191992        (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
191993        (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
191994        for the various states.
191995        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
191996        * rendering/svg/RenderSVGResourceFilter.h:
191997        (WebCore::FilterData::FilterData):
191998        (FilterData): Convert to a state tracking system.
191999        * rendering/svg/RenderSVGRoot.cpp:
192000        (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
192001        SVGRenderingContext so that it applies the filter and reverts the
192002        context before the calling method restores the context.
192003
1920042012-10-29  Dan Bernstein  <mitz@apple.com>
192005
192006        <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
192007        reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
192008
192009        Reviewed by Anders Carlsson.
192010
192011        Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
192012
192013        * platform/graphics/cg/GraphicsContextCG.cpp:
192014        (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
192015        than CGRectInfinite when the context is accelerated and has a transform that is not just
192016        a translation or a scale.
192017
1920182012-10-29  Rob Buis  <rbuis@rim.com>
192019
192020        [BlackBerry] Simplify AuthenticationChallengeManager::instance
192021        https://bugs.webkit.org/show_bug.cgi?id=100614
192022
192023        Reviewed by Yong Li.
192024        Internally reviewed by Lyon Chen.
192025
192026        Use a standard Singleton pattern here, this makes sure we create lazily.
192027
192028        * platform/blackberry/AuthenticationChallengeManager.cpp:
192029        (WebCore):
192030        * platform/blackberry/AuthenticationChallengeManager.h:
192031        (AuthenticationChallengeManager):
192032
1920332012-10-29  Adam Barth  <abarth@webkit.org>
192034
192035        Block SVG external references pending a security review
192036        https://bugs.webkit.org/show_bug.cgi?id=100635
192037
192038        Reviewed by Eric Seidel.
192039
192040        We need to do a security review of loading external SVG references
192041        before we're sure that it is safe.
192042
192043        * css/StyleResolver.cpp:
192044        (WebCore::StyleResolver::createFilterOperations):
192045        * loader/cache/CachedResourceLoader.cpp:
192046        (WebCore::CachedResourceLoader::canRequest):
192047
1920482012-10-29  Joshua Bell  <jsbell@chromium.org>
192049
192050        IndexedDB: Crash on checking version of corrupt backing store
192051        https://bugs.webkit.org/show_bug.cgi?id=100692
192052
192053        Reviewed by Tony Chang.
192054
192055        If the backing store fails to open (due to corruption, non-writeable disk, etc)
192056        the subsequent schema version check dereferences a null pointer. Fix to only
192057        do the schema check if the database opened.
192058
192059        Chromium tests will be included with crrev.com/11196029
192060
192061        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
192062        (WebCore::IDBLevelDBBackingStore::open):
192063
1920642012-10-29  Philip Rogers  <pdr@google.com>
192065
192066        Let SVGElements have pending resources.
192067        https://bugs.webkit.org/show_bug.cgi?id=99694
192068
192069        Reviewed by Eric Seidel.
192070
192071        Our SVG pending resource tracking is used for handling dynamic id changes. For example,
192072        if an SVG element references an id that is not yet in the document (or has been removed),
192073        the SVG element will be 'pending' an id. When styled elements are inserted into
192074        the document, buildPendingResourcesIfNeeded() is called to force any pending elements
192075        to resolve their dependencies. Only SVGStyledElement targets can be referenced using
192076        this infrastructure, and that is not changed with this patch.
192077
192078        Previously, only SVGStyledElements could have pending resources. Some examples of where
192079        this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
192080        but which can have pending references (they can reference styled elements and
192081        paths, respectively). This patch changes the pending resource handling to allow
192082        any SVGElement to have pending resources.
192083
192084        This patch is only a refactoring of code in preparation for WK99694 and does not
192085        affect existing functionality or tests.
192086
192087        * svg/SVGDocumentExtensions.cpp:
192088        (WebCore::SVGDocumentExtensions::addPendingResource):
192089        (WebCore::SVGDocumentExtensions::isElementPendingResources):
192090        (WebCore::SVGDocumentExtensions::isElementPendingResource):
192091        (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
192092        (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
192093        * svg/SVGDocumentExtensions.h:
192094        (WebCore):
192095        (SVGDocumentExtensions):
192096        * svg/SVGElement.cpp:
192097        (WebCore::SVGElement::~SVGElement):
192098        (WebCore::SVGElement::removedFrom):
192099        (WebCore::SVGElement::hasPendingResources):
192100        (WebCore):
192101        (WebCore::SVGElement::setHasPendingResources):
192102        (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
192103        * svg/SVGElement.h:
192104        (SVGElement):
192105        (WebCore::SVGElement::buildPendingResource):
192106        * svg/SVGStyledElement.cpp:
192107        (WebCore):
192108        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
192109        (WebCore::SVGStyledElement::removedFrom):
192110        * svg/SVGStyledElement.h:
192111        (SVGStyledElement):
192112        (WebCore::SVGStyledElement::selfHasRelativeLengths):
192113
1921142012-10-29  Dan Carney  <dcarney@google.com>
192115
192116        Remove ensureAuxiliaryContext
192117        https://bugs.webkit.org/show_bug.cgi?id=99975
192118
192119        Reviewed by Adam Barth.
192120
192121        Removed auxilliaryContext as use if it is problematic in IDB.
192122
192123        No new tests. No change in functionality.
192124
192125        * Modules/indexeddb/IDBCursor.cpp:
192126        (WebCore::IDBCursor::update):
192127        (WebCore::IDBCursor::setValueReady):
192128        * Modules/indexeddb/IDBCursor.h:
192129        (IDBCursor):
192130        * Modules/indexeddb/IDBObjectStore.cpp:
192131        (WebCore::generateIndexKeysForValue):
192132        (WebCore::IDBObjectStore::put):
192133        (WebCore):
192134        * Modules/indexeddb/IDBRequest.cpp:
192135        (WebCore::IDBRequest::onSuccess):
192136        (WebCore::IDBRequest::dispatchEvent):
192137        * bindings/v8/IDBBindingUtilities.cpp:
192138        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
192139        (WebCore::deserializeIDBValue):
192140        (WebCore::injectIDBKeyIntoScriptValue):
192141        * bindings/v8/IDBBindingUtilities.h:
192142        (WebCore):
192143        * bindings/v8/V8Binding.cpp:
192144        (WebCore::toV8Context):
192145        (WebCore):
192146        * bindings/v8/V8Binding.h:
192147        (WebCore):
192148        * bindings/v8/V8PerIsolateData.cpp:
192149        (WebCore):
192150        * bindings/v8/V8PerIsolateData.h:
192151
1921522012-10-29  Alpha Lam  <hclam@chromium.org>
192153
192154        [skia] Handle mask box image.
192155        https://bugs.webkit.org/show_bug.cgi?id=100570
192156
192157        Reviewed by James Robinson.
192158
192159        When drawing an image with source rectangle it should intersect with image rectangle.
192160        This should be the case for drawing single image and tiling an image.
192161
192162        Test: fast/images/mask-box-image-crash.html
192163
192164        * platform/graphics/skia/ImageSkia.cpp:
192165        (WebCore::Image::drawPattern):
192166        (WebCore::BitmapImage::draw):
192167        (WebCore::BitmapImageSingleFrameSkia::draw):
192168
1921692012-10-29  Eric Carlson  <eric.carlson@apple.com>
192170
192171        Support captions when PLUGIN_PROXY_FOR_VIDEO
192172        https://bugs.webkit.org/show_bug.cgi?id=100690
192173
192174        Reviewed by Simon Fraser.
192175
192176        When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
192177        platform media engine. Update this code path so the shadow DOM elements used to display
192178        text tracks are created and configured correctly.
192179
192180        * html/HTMLMediaElement.cpp:
192181        (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
192182
192183        * rendering/RenderEmbeddedObject.cpp:
192184        (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
192185            position of the embedded element changes.
192186        * rendering/RenderEmbeddedObject.h:
192187
1921882012-10-29  Justin Novosad  <junov@google.com>
192189
192190        [Chromium] flickering observed when copying 2D canvas to webGL texture
192191        https://bugs.webkit.org/show_bug.cgi?id=100691
192192
192193        Reviewed by Stephen White.
192194
192195        Added a flush to the webgl context after texture upload from an image
192196        buffer to ensure proper graphics context synchronization with respect
192197        to subsequent changes to the source image.
192198
192199        Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
192200
192201        * platform/graphics/skia/ImageBufferSkia.cpp:
192202        (WebCore::ImageBuffer::copyToPlatformTexture):
192203
1922042012-10-29  Glenn Adams  <glenn@skynav.com>
192205
192206        [CSSOM] Extraneous whitespace in CSSImportRule.cssText
192207        https://bugs.webkit.org/show_bug.cgi?id=100657
192208
192209        Reviewed by Simon Fraser.
192210
192211        Remove extraneous whitespace when serializing CSSImportRule.cssText when
192212        media list is empty.
192213
192214        Test: cssom/cssimportrule-media.html
192215
192216        * css/CSSImportRule.cpp:
192217        (WebCore::CSSImportRule::cssText):
192218        Don't append extra whitespace if mediaText is empty.
192219
1922202012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
192221
192222        webview not redrawn as needed when accelerated compositing is enabled.
192223        https://bugs.webkit.org/show_bug.cgi?id=99109
192224
192225        Reviewed by Martin Robinson.
192226
192227        GL shared display is not in the gtk loop and therefore, its events are
192228        not captured by gtk. So, we use gdk default instead.
192229
192230        No new tests, covered by existing tests.
192231
192232        * platform/gtk/RedirectedXCompositeWindow.cpp:
192233        (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
192234        (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
192235        (WebCore::RedirectedXCompositeWindow::resize):
192236
1922372012-10-29  Pavel Feldman  <pfeldman@chromium.org>
192238
192239        Web Inspector: bind redo to Ctrl+Y on non-mac platforms
192240        https://bugs.webkit.org/show_bug.cgi?id=100685
192241
192242        Reviewed by Vsevolod Vlasov.
192243
192244        * inspector/front-end/DefaultTextEditor.js:
192245        (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
192246
1922472012-10-29  Enrica Casucci  <enrica@apple.com>
192248
192249        Add ENABLE_USERSELECT_ALL feature flag.
192250        https://bugs.webkit.org/show_bug.cgi?id=100559
192251
192252        Reviewed by Eric Seidel.
192253
192254        * Configurations/FeatureDefines.xcconfig:
192255
1922562012-10-29  Alexandru Chiculita  <achicu@adobe.com>
192257
192258        [CSS Shaders] Extract the CustomFilterParameterList to its own file
192259        https://bugs.webkit.org/show_bug.cgi?id=100548
192260
192261        Reviewed by Dean Jackson.
192262
192263        Moved all the CustomFilterParameterList related methods to their own file.
192264        Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
192265        so that we can add a different operator== and a blend method to it.
192266
192267        No new tests, just refactoring existing code.
192268
192269        * CMakeLists.txt:
192270        * GNUmakefile.list.am:
192271        * Target.pri:
192272        * WebCore.gypi:
192273        * WebCore.xcodeproj/project.pbxproj:
192274        * css/StyleResolver.h:
192275        * platform/graphics/filters/CustomFilterOperation.cpp:
192276        (WebCore::CustomFilterOperation::CustomFilterOperation):
192277        (WebCore::CustomFilterOperation::blend):
192278        * platform/graphics/filters/CustomFilterOperation.h:
192279        (WebCore):
192280        (WebCore::CustomFilterOperation::operator==):
192281        * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
192282        (WebCore):
192283        (WebCore::CustomFilterParameterList::operator==):
192284        (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
192285        (WebCore::CustomFilterParameterList::blend):
192286        * platform/graphics/filters/CustomFilterParameterList.h: Added.
192287        (WebCore):
192288        (CustomFilterParameterList):
192289
1922902012-10-29  Brady Eidson  <beidson@apple.com>
192291
192292        Try to fix 32-bit builds after my incompletely tested m_identifier change.
192293
192294        Not reviewed.
192295
192296        * loader/ResourceLoader.h:
192297        (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
192298
1922992012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
192300
192301        [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
192302        https://bugs.webkit.org/show_bug.cgi?id=100115
192303
192304        Reviewed by Noam Rosenthal.
192305
192306        * platform/graphics/qt/FontQt.cpp:
192307        (WebCore::Font::drawGlyphs):
192308
1923092012-10-29  Huang Dongsung  <luxtella@company100.net>
192310
192311        [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
192312        https://bugs.webkit.org/show_bug.cgi?id=100623
192313
192314        Reviewed by Noam Rosenthal.
192315
192316        Currently, GraphicsLayerAnimation chooses a timing function in the wrong
192317        way. Other GraphicsLayers choose a timing function in the similar way to
192318        GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
192319        the following steps.
192320        1. Try to query the timing function of the current keyframe animation value.
192321        2. If the timing function of #1 is null, try to query the timing function of Animation.
192322        3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
192323
192324        This patch makes GraphicsLayerAnimation choose a timing function in the same way
192325        to other implementations.
192326
192327        Covered by existing animations tests.
192328
192329        * platform/graphics/GraphicsLayerAnimation.cpp:
192330        (WebCore::timingFunctionForAnimationValue):
192331        (WebCore::GraphicsLayerAnimation::apply):
192332
1923332012-10-29  Patrick Dubroy  <dubroy@chromium.org>
192334
192335        Web Inspector: Toolbar overflow appears outside window
192336        https://bugs.webkit.org/show_bug.cgi?id=100663
192337
192338        Reviewed by Pavel Feldman.
192339
192340        Since the search bar was removed from the toolbar, the overflow menu appears too far
192341        to the right, and is unreadable. Fixed this by aligning it relative to the right side
192342        of the window, rather than the left.
192343
192344        * inspector/front-end/Toolbar.js:
192345        (WebInspector.ToolbarDropdown.prototype.show):
192346        * inspector/front-end/inspector.css:
192347        (#toolbar-dropdown .toolbar-label):
192348
1923492012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
192350
192351        [CSS Shaders] Implement CustomFilterArrayParameter::blend
192352        https://bugs.webkit.org/show_bug.cgi?id=96437
192353
192354        Reviewed by Dean Jackson.
192355
192356        This patch adds the missing code to blend values within
192357        an array() when using Custom Filters.
192358
192359        Test: css3/filters/custom/custom-filter-array-blending.html
192360
192361        * platform/graphics/filters/CustomFilterArrayParameter.h:
192362        (WebCore::CustomFilterArrayParameter::blend):
192363
1923642012-10-29  Alexander Pavlov  <apavlov@chromium.org>
192365
192366        Web Inspector: Drag and drop a URL in inspector is not working as expected
192367        https://bugs.webkit.org/show_bug.cgi?id=100527
192368
192369        Reviewed by Yury Semikhatsky.
192370
192371        Inhibit custom dragstart handling when the active element is A.
192372
192373        * inspector/front-end/ElementsTreeOutline.js:
192374        (WebInspector.ElementsTreeOutline.prototype._ondragstart):
192375
1923762012-10-29  Mike West  <mkwst@chromium.org>
192377
192378        Web Inspector: Error/warning count is one pixel off.
192379        https://bugs.webkit.org/show_bug.cgi?id=100660
192380
192381        Reviewed by Pavel Feldman.
192382
192383        The error/warning count div had a top padding of 6. That was one pixel
192384        too many.
192385
192386        * inspector/front-end/inspector.css:
192387        (#error-warning-count):
192388
1923892012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
192390
192391        [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
192392        https://bugs.webkit.org/show_bug.cgi?id=100459
192393
192394        Reviewed by Hajime Morita.
192395
192396        Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
192397        use a utility function which checks both at once.
192398
192399        We rewrite some lines with such function.
192400
192401        No new tests, simple refactoring.
192402
192403        * dom/ComposedShadowTreeWalker.cpp:
192404        (WebCore::ComposedShadowTreeWalker::traverseNode):
192405        * html/shadow/ContentDistributor.cpp:
192406        (WebCore::ContentDistributor::populate):
192407        (WebCore::ContentDistributor::distribute):
192408        (WebCore::ContentDistributor::distributeNodeChildrenTo):
192409        * html/shadow/InsertionPoint.h:
192410        (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
192411        we would like to make it similar to the other functions.
192412        (WebCore::toInsertionPoint):
192413        (WebCore::isLowerEncapsulationBoundary):
192414
1924152012-10-29  Patrick Dubroy  <dubroy@chromium.org>
192416
192417        Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
192418        https://bugs.webkit.org/show_bug.cgi?id=100373
192419
192420        Reviewed by Pavel Feldman.
192421
192422        Fix the background image for the selected toolbar item to be vertically centered.
192423        Make close button and toolbar overflow button vertically centered for any toolbar
192424        height.
192425
192426        * inspector/front-end/Toolbar.js: Remove unused variable.
192427        * inspector/front-end/inspector.css:
192428        (.toolbar-item.toggleable):
192429        (body.compact .toolbar-item.toggleable):
192430        (.toolbar-item.toggleable.toggled-on):
192431        (body.compact .toolbar-label):
192432        (#toolbar-dropdown-arrow):
192433        (#close-button-left, #close-button-right):
192434        (.toolbar-item.close-left):
192435        * inspector/front-end/inspector.html:
192436
1924372012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
192438
192439        Web Inspector: Timeline: Overview bars do not correspond to timeline bars
192440        https://bugs.webkit.org/show_bug.cgi?id=100500
192441
192442        Reviewed by Yury Semikhatsky.
192443
192444        Fix: do not shorten bars by nested records of the same category.
192445
192446        * inspector/front-end/TimelineOverviewPane.js: Check added.
192447
1924482012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
192449
192450        Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
192451        https://bugs.webkit.org/show_bug.cgi?id=100530
192452
192453        Reviewed by Yury Semikhatsky.
192454
192455        Motivation: cpu-monitoring feature looks like a glitch,
192456        when it is not supported by browser.
192457
192458        * inspector/Inspector.json: Added capability getter to protocol.
192459        * inspector/InspectorClient.h: Added capability getter.
192460        * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
192461        * inspector/InspectorTimelineAgent.h: Added capability getter.
192462        * inspector/front-end/Settings.js: Added capability field.
192463        * inspector/front-end/TimelinePanel.js: Check capability.
192464        * inspector/front-end/inspector.js: Forward capability value.
192465
1924662012-10-29  Antti Koivisto  <antti@apple.com>
192467
192468        Move seamless stylesheet collecting to DocumentStyleSheetCollection
192469        https://bugs.webkit.org/show_bug.cgi?id=100655
192470
192471        Reviewed by Andreas Kling.
192472
192473        Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
192474
192475        * css/StyleResolver.cpp:
192476        (WebCore::StyleResolver::StyleResolver):
192477        
192478            Use standard create() pattern.
192479
192480        (WebCore):
192481        * css/StyleResolver.h:
192482        (StyleResolver):
192483        * dom/Document.cpp:
192484        (WebCore::Document::Document):
192485        * dom/DocumentStyleSheetCollection.cpp:
192486        (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
192487        
192488            Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
192489            iterate to ancestors anymore.
192490
192491        (WebCore):
192492        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
192493        * dom/DocumentStyleSheetCollection.h:
192494        (WebCore::DocumentStyleSheetCollection::create):
192495        (DocumentStyleSheetCollection):
192496        (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
192497        (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
192498        
192499            activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
192500
192501        (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
192502
1925032012-10-29  Andreas Kling  <kling@webkit.org>
192504
192505        Don't expose implementation details of StylePropertySet storage.
192506        <http://webkit.org/b/100644>
192507
192508        Reviewed by Antti Koivisto.
192509
192510        Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
192511        This will allow us to refactor the internal storage of StylePropertySet without
192512        breaking its API.
192513
192514        A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
192515
192516        * css/CSSComputedStyleDeclaration.cpp:
192517        * css/CSSParser.cpp:
192518        * css/CSSParser.h:
192519        * css/SVGCSSParser.cpp:
192520        * css/StylePropertySet.cpp:
192521        (WebCore::StylePropertySet::asText):
192522        (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
192523        (WebCore::StylePropertySet::findPropertyWithId):
192524        (WebCore::StylePropertySet::reportMemoryUsage):
192525        * css/StylePropertySet.h:
192526        (StylePropertySet):
192527        (PropertyReference):
192528        (WebCore::StylePropertySet::PropertyReference::PropertyReference):
192529        (WebCore::StylePropertySet::PropertyReference::id):
192530        (WebCore::StylePropertySet::PropertyReference::isImportant):
192531        (WebCore::StylePropertySet::PropertyReference::isInherited):
192532        (WebCore::StylePropertySet::PropertyReference::cssName):
192533        (WebCore::StylePropertySet::PropertyReference::cssText):
192534        (WebCore::StylePropertySet::PropertyReference::value):
192535        (WebCore::StylePropertySet::PropertyReference::propertyInternal):
192536        (WebCore::StylePropertySet::propertyAt):
192537        (WebCore::StylePropertySet::propertyAtInternal):
192538        (WebCore):
192539        * css/StyleResolver.cpp:
192540        (WebCore::attributeStylesEqual):
192541        (WebCore::StyleResolver::applyProperties):
192542        (WebCore::StyleResolver::resolveVariables):
192543        * editing/ApplyStyleCommand.cpp:
192544        * editing/EditingStyle.cpp:
192545        (WebCore::EditingStyle::mergeStyle):
192546        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
192547        * editing/Editor.cpp:
192548        * editing/markup.cpp:
192549        * page/Frame.cpp:
192550        * svg/SVGFontFaceElement.cpp:
192551
1925522012-10-29  Kent Tamura  <tkent@chromium.org>
192553
192554        Move LocaleWin.{cpp,h} to platform/text/win/
192555        https://bugs.webkit.org/show_bug.cgi?id=100641
192556
192557        Reviewed by Kentaro Hara.
192558
192559        We have platform/text/win/ directory. Windows-specific files should be
192560        in it.
192561        Note that these files are used only in Chromium-win for now.
192562
192563        No new tests. This doesn't change any behavior.
192564
192565        * WebCore.gyp/WebCore.gyp: Fix path names.
192566        * WebCore.gypi: Ditto.
192567        * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
192568        * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
192569
1925702012-10-29  Kent Tamura  <tkent@chromium.org>
192571
192572        Rename Localizer to Locale
192573        https://bugs.webkit.org/show_bug.cgi?id=100634
192574
192575        Reviewed by Kentaro Hara.
192576
192577        - Rename Localizer class to Locale
192578        - Rename localizer with locale in variable names
192579        - Rename localizer with locale in function names
192580
192581        No new tests. This doesn't make any behavior changes.
192582
192583        * dom/Document.h:
192584        (WebCore): Declare Locale instead of Localizer.
192585        (Document):
192586        - Rename getCachedLocalizer to getCachedLocale.
192587        - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
192588        - Rename m_localizerCache to m_localeCache.
192589        * dom/Document.cpp:
192590        (WebCore::Document::getCachedLocale): Follow renamings.
192591        * dom/Element.h:
192592        (WebCore): Declare Locale instead of Localizer.
192593        (Element): Rename localizer() to locale().
192594        * dom/Element.cpp:
192595        (WebCore::Element::locale): Follow renamings.
192596
192597        * html/BaseDateAndTimeInputType.cpp:
192598        (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
192599        (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
192600        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
192601        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
192602        * html/DateInputType.cpp:
192603        (WebCore::DateInputType::fixedPlaceholder): Ditto.
192604        (WebCore::DateInputType::setupLayoutParameters): Ditto.
192605        * html/DateTimeInputType.cpp:
192606        (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
192607        * html/DateTimeLocalInputType.cpp:
192608        (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
192609        * html/MonthInputType.cpp:
192610        (WebCore::MonthInputType::setupLayoutParameters): Ditto.
192611        * html/NumberInputType.cpp:
192612        (WebCore::NumberInputType::localizeValue): Ditto.
192613        (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
192614        * html/TimeInputType.cpp:
192615        (WebCore::TimeInputType::localizeValue): Ditto.
192616        (WebCore::TimeInputType::setupLayoutParameters): Ditto.
192617
192618        * html/shadow/DateTimeEditElement.h:
192619        (WebCore): Declare Locale instead of Localizer.
192620        (LayoutParameters): Rename localizer data member to locale.
192621        (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
192622        * html/shadow/DateTimeEditElement.cpp:
192623        (WebCore::DateTimeEditBuilder::visitField): Ditto.
192624        * html/shadow/DateTimeNumericFieldElement.h:
192625        (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
192626        * html/shadow/DateTimeNumericFieldElement.cpp:
192627        (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
192628        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
192629        (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
192630        * page/PagePopupClient.h:
192631        (WebCore): Declare Locale instead of Localizer.
192632        (PagePopupClient): Rename localizer member function to locale.
192633        * page/PagePopupController.cpp:
192634        (WebCore::PagePopupController::localizeNumberString): Follow renamings.
192635
192636        * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
192637        (DateTimeStringBuilder):
192638        (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
192639        (WebCore::Locale::~Locale):
192640        (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
192641        (WebCore::Locale::convertToLocalizedNumber):
192642        (WebCore::Locale::detectSignAndGetDigitRange):
192643        (WebCore::Locale::matchedDecimalSymbolIndex):
192644        (WebCore::Locale::convertFromLocalizedNumber):
192645        (WebCore::Locale::localizedDecimalSeparator):
192646        (WebCore::Locale::dateTimeFormatWithSeconds):
192647        (WebCore::Locale::dateTimeFormatWithoutSeconds):
192648        (WebCore::Locale::formatDateTime):
192649        * platform/text/PlatformLocale.h: Update the ifndef macro.
192650        (Locale): Renamed from Localizer. Also, renamed the followings:
192651         - initializeLocalizerData -> initializeLocaleData
192652         - setLocalizerData -> setLocaleData
192653         - m_hasLocalizerData -> m_hasLocaleData
192654        (WebCore::Locale::Locale):
192655        (WebCore::Locale::createDefault):
192656        * platform/text/LocaleICU.cpp: Follow renamings.
192657        * platform/text/LocaleICU.h: Ditto.
192658        * platform/text/LocaleNone.cpp: Ditto.
192659        * platform/text/LocaleWin.cpp: Ditto.
192660        * platform/text/LocaleWin.h: Ditto.
192661        * platform/text/mac/LocaleMac.h: Ditto.
192662        * platform/text/mac/LocaleMac.mm: Ditto.
192663
1926642012-10-29  Mike West  <mkwst@chromium.org>
192665
192666        Web Inspector: Error messages lines in console are 1px taller than regular messages
192667        https://bugs.webkit.org/show_bug.cgi?id=100521
192668
192669        Reviewed by Pavel Feldman.
192670
192671        The inspector is adding a 1px bottom border to list elements inside
192672        a disclosure list. This is unnecessary in the current layout; it's
192673        causing console messages with stack traces to be one pixel taller than
192674        other console messages, which this patch fixes.
192675
192676        As a drive-by, this patch also adjusts the disclosure triangle's
192677        position to match.
192678
192679        * inspector/front-end/inspector.css:
192680        (.outline-disclosure li):
192681        (.outline-disclosure li.parent::before):
192682
1926832012-10-29  Mike West  <mkwst@chromium.org>
192684
192685        Web Inspector: The bubble for repeated errors is misplaced.
192686        https://bugs.webkit.org/show_bug.cgi?id=100525
192687
192688        Reviewed by Pavel Feldman.
192689
192690        The repeated-message bubble is displayed as an inline-block element,
192691        which works well as long as no stack trace is present. If present, the
192692        message is wrapped in an 'ol' element displayed as a block, which pushes
192693        itself down to the next line.
192694
192695        To avoid that issue, this patch switches the wrapper element to flexbox,
192696        glorious flexbox.
192697
192698        * inspector/front-end/inspector.css:
192699        (.console-message .bubble):
192700        (.repeated-message .outline-disclosure):
192701        (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
192702
1927032012-10-29  Alexander Pavlov  <apavlov@chromium.org>
192704
192705        Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
192706        https://bugs.webkit.org/show_bug.cgi?id=100119
192707
192708        Reviewed by Vsevolod Vlasov.
192709
192710        Test: inspector/styles/inactive-properties.html
192711
192712        * inspector/front-end/StylesSidebarPane.js:
192713        (WebInspector.StylesSidebarPane.createExclamationMark):
192714        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
192715        * inspector/front-end/elementsPanel.css:
192716        (.styles-section.computed-style .properties li.not-parsed-ok):
192717        (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
192718        (.styles-section .properties .not-parsed-ok):
192719
1927202012-10-29  Eric Seidel  <eric@webkit.org>
192721
192722        Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
192723        https://bugs.webkit.org/show_bug.cgi?id=100630
192724
192725        Reviewed by Ojan Vafai.
192726
192727        This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
192728        on my retina MBP (down from 14.3s before this change).
192729        It's very expensive to walk the DOM each time we call RenderTable::colElement
192730        so this caches the RenderTableCol* in a vector for easier walking.
192731        We invalidate the cache any time a RenderTableCol is added or removed from the
192732        rendering sub-tree to avoid holding a bad pointer.
192733
192734        * rendering/RenderTable.cpp:
192735        (WebCore::RenderTable::RenderTable):
192736        (WebCore::RenderTable::invalidateCachedColumns):
192737        (WebCore):
192738        (WebCore::RenderTable::addColumn):
192739        (WebCore::RenderTable::removeColumn):
192740        (WebCore::RenderTable::updateColumnCache):
192741        (WebCore::RenderTable::slowColElement):
192742        * rendering/RenderTable.h:
192743        (RenderTable):
192744        * rendering/RenderTableCol.cpp:
192745        (WebCore::RenderTableCol::insertedIntoTree):
192746        (WebCore):
192747        (WebCore::RenderTableCol::willBeRemovedFromTree):
192748        * rendering/RenderTableCol.h:
192749
1927502012-10-28  Kent Tamura  <tkent@chromium.org>
192751
192752        Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
192753        https://bugs.webkit.org/show_bug.cgi?id=100627
192754
192755        Reviewed by Yuta Kitamura.
192756
192757        We'd like to rename Localizer class to Locale class. However we use
192758        PlatformLocale.cpp and PlatformLocale.h as their file names because
192759        <locale.h> exists in the C standard.  In this patch, we rename only file
192760        names. We're going to rename the class name later.
192761
192762        No new tests. This doesn't make any behavior change.
192763
192764        * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
192765        * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
192766        Follow the Localizer.h -> PlatformLocale.cpp renaming.
192767
192768        * CMakeLists.txt: Follow the file name renaming.
192769        * GNUmakefile.list.am: Ditto.
192770        * Target.pri: Ditto.
192771        * WebCore.gypi: Ditto.
192772        * WebCore.vcproj/WebCore.vcproj: Ditto.
192773        * WebCore.xcodeproj/project.pbxproj: Ditto.
192774        * dom/Document.cpp: Ditto.
192775        * html/BaseDateAndTimeInputType.cpp: Ditto.
192776        * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
192777        * html/DateInputType.cpp: Ditto.
192778        * html/DateTimeInputType.cpp: Ditto.
192779        * html/DateTimeLocalInputType.cpp: Ditto.
192780        * html/MonthInputType.cpp: Ditto.
192781        * html/NumberInputType.cpp: Ditto.
192782        * html/TimeInputType.cpp: Ditto.
192783        * html/shadow/DateTimeEditElement.cpp: Ditto.
192784        * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
192785        * page/PagePopupController.cpp: Ditto.
192786        * platform/text/LocaleICU.h: Ditto.
192787        * platform/text/LocaleNone.cpp: Ditto.
192788        * platform/text/LocaleWin.h: Ditto.
192789        * platform/text/mac/LocaleMac.h: Ditto.
192790
1927912012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
192792
192793        The shadow element is not reprojected to a nested ShadowRoot.
192794        https://bugs.webkit.org/show_bug.cgi?id=99228
192795
192796        Reviewed by Dimitri Glazkov.
192797
192798        We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
192799
192800        First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
192801        And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
192802        If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
192803        the InsertionPoint in older ShadowDOM is chosen.
192804
192805        We also fix ComposedShadowTreeWalker to consider shadow reprojection.
192806
192807        Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
192808               fast/dom/shadow/shadow-reprojection-click.html
192809               fast/dom/shadow/shadow-reprojection-dynamic.html
192810               fast/dom/shadow/shadow-reprojection-fallback.html
192811               fast/dom/shadow/shadow-reprojection.html
192812               fast/dom/shadow/shadow-reprojection2.html
192813
192814        * css/StyleResolver.cpp:
192815        (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
192816        a node is distributed. So we don't have to trace shadow insertion point anymore here.
192817        (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
192818        we don't have any parentElement. The parent node is a ShadowRoot in that case.
192819        * dom/ComposedShadowTreeWalker.cpp:
192820        (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
192821        (WebCore):
192822        (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
192823        (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
192824        (WebCore::ComposedShadowTreeWalker::traverseParent):
192825        (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
192826        to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
192827        (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
192828        In that case, we should not update m_distributedNode.
192829        * dom/ElementShadow.cpp:
192830        (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
192831        we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
192832        is not correct now due to shadow reprojection.
192833        * html/shadow/ContentDistributor.cpp:
192834        (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
192835        distributed nodes.
192836        (WebCore):
192837        (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
192838        we have to resolve a shadow InsertionPoint
192839        (WebCore::ContentDistributor::distributeNodeChildrenTo):
192840        * html/shadow/ContentDistributor.h:
192841        (ContentDistributor):
192842        * html/shadow/HTMLShadowElement.h:
192843        (WebCore::toHTMLShadowElement):
192844        (WebCore):
192845        * html/shadow/InsertionPoint.h:
192846        (WebCore::parentNodeForDistribution):
192847        (WebCore::parentElementForDistribution):
192848        (WebCore):
192849
1928502012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
192851
192852        Webkit adds a boundary to the Content-Type: text/plain POST header
192853        https://bugs.webkit.org/show_bug.cgi?id=100445
192854
192855        Reviewed by Kent Tamura.
192856
192857        Fixed a bug where an empty boundary parameter was added to Content-Type
192858        header when POSTing forms with enctype=text/plain.
192859
192860        Test: http/tests/misc/form-post-textplain.html
192861
192862        * loader/FormSubmission.cpp:
192863        (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
192864        Content-Type only when a boundary string is generated.
192865
1928662012-10-28  Philip Rogers  <pdr@google.com>
192867
192868        Cache calcMode() value for SVG animations.
192869        https://bugs.webkit.org/show_bug.cgi?id=99694
192870
192871        Reviewed by Eric Seidel.
192872
192873        This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
192874        of recalculating its value on every call. On a simple test of 100 rectangles with 100
192875        animations each, calls to calcMode() account for 3% of the total animation. After this
192876        patch, calcMode() no longer appears in animation profiles at all.
192877
192878        No new tests as this functionality is covered by existing tests.
192879
192880        * svg/SVGAnimateMotionElement.cpp:
192881        (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
192882
192883            The default calcMode for all animation types is linear except AnimateMotion,
192884            which defaults to CalcModePaced.
192885            See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
192886
192887        * svg/SVGAnimationElement.cpp:
192888        (WebCore::SVGAnimationElement::SVGAnimationElement):
192889        (WebCore::SVGAnimationElement::isSupportedAttribute):
192890        (WebCore::SVGAnimationElement::parseAttribute):
192891        (WebCore::SVGAnimationElement::setCalcMode):
192892        * svg/SVGAnimationElement.h:
192893        (WebCore::SVGAnimationElement::calcMode):
192894        (WebCore::SVGAnimationElement::setCalcMode):
192895        (SVGAnimationElement):
192896
1928972012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
192898
192899        Get rid of StyleResolver state related to unknown pseudo-elements.
192900        https://bugs.webkit.org/show_bug.cgi?id=100582
192901
192902        Reviewed by Eric Seidel.
192903
192904        All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
192905        We can just get rid of most of this code in StyleResolver.
192906
192907        At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
192908        or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
192909
192910        No change in behavior, covered by existing tests.
192911
192912        * css/SelectorChecker.cpp:
192913        (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
192914        (WebCore::SelectorChecker::checkOneSelector): Ditto.
192915        * css/SelectorChecker.h:
192916        (SelectorChecker): Ditto.
192917        * css/StyleResolver.cpp:
192918        (WebCore::StyleResolver::StyleResolver): Ditto.
192919        (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
192920        (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
192921        (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
192922        (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
192923        (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
192924        * css/StyleResolver.h:
192925        (StyleResolver): Removed now-unnecessary member.
192926
1929272012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
192928
192929        Unreviewed, rolling out r132696.
192930        http://trac.webkit.org/changeset/132696
192931        https://bugs.webkit.org/show_bug.cgi?id=100609
192932
192933        Needs a bit more clean-up on Chrome Web UI side. (Requested by
192934        dglazkov on #webkit).
192935
192936        * rendering/RenderBlock.cpp:
192937        (WebCore::RenderBlock::updateFirstLetter):
192938        * rendering/RenderListBox.h:
192939        * rendering/RenderObjectChildList.cpp:
192940        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
192941
1929422012-10-27  Alexey Proskuryakov  <ap@apple.com>
192943
192944        All tests crash in WebKit1 mode
192945        https://bugs.webkit.org/show_bug.cgi?id=100602
192946
192947        Reviewed by Sam Weinig.
192948
192949        * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
192950        assertion - if this function is called twice, it should be with the same strategy.
192951
1929522012-10-27  Anders Carlsson  <andersca@apple.com>
192953
192954        Fix AVFoundation build.
192955
192956        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
192957        (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
192958
1929592012-10-27  David Barton  <dbarton@mathscribe.com>
192960
192961        ASSERTION FAILED: m_next in LayoutState.cpp
192962        https://bugs.webkit.org/show_bug.cgi?id=99796
192963
192964        Reviewed by Eric Seidel.
192965
192966        Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
192967        it must ensure a layoutState exists. We disable it in any case, since we are just calculating
192968        metrics here, and the final layout may well happen again.
192969
192970        No new tests. I don't know how to create an automated test for this. The crashes users are
192971        seeing are flaky.
192972
192973        * rendering/mathml/RenderMathMLBlock.cpp:
192974        (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
192975
1929762012-10-27  David Barton  <dbarton@mathscribe.com>
192977
192978        [MathML] Improve some addChild methods
192979        https://bugs.webkit.org/show_bug.cgi?id=98791
192980
192981        Reviewed by Eric Seidel.
192982
192983        MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
192984        number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
192985        want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
192986        renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
192987        giving them to the chromium fuzzers.
192988        
192989        It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
192990        tree after later removeChild calls.
192991
192992        Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
192993        msub/sup elements, in mathml/presentation/m*-changed.xhtml.
192994
192995        * rendering/mathml/RenderMathMLFraction.cpp:
192996        (WebCore::RenderMathMLFraction::addChild):
192997            - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
192998              work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
192999              added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
193000              numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
193001        * rendering/mathml/RenderMathMLRoot.cpp:
193002        (WebCore::RenderMathMLRoot::addChild):
193003            - A bit of bullet-proofing for the fuzzers.
193004        * rendering/mathml/RenderMathMLSubSup.cpp:
193005        (WebCore::RenderMathMLSubSup::addChild):
193006            - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
193007
1930082012-10-27  Levi Weintraub  <leviw@chromium.org>
193009
193010        Background images can incorrectly repeat with sub-pixel layout
193011        https://bugs.webkit.org/show_bug.cgi?id=94622
193012
193013        Reviewed by Emil A Eklund.
193014
193015        Attempting to better match author expectations when painting tiled background images. When under
193016        the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
193017        differ depending on its location. This change looks at the size of the scaled tiled background
193018        image size, and either ceils or floors that value depending on if tiling that value will
193019        result in us being one pixel or less short of covering the background size. This is a heuristic,
193020        as sub-pixel/zooming isn't specced.
193021
193022        Test: fast/sub-pixel/scaled-background-image.html
193023
193024        * rendering/RenderBoxModelObject.cpp:
193025        (WebCore::applySubPixelHeuristicForTileSize):
193026        (WebCore):
193027        (WebCore::RenderBoxModelObject::calculateFillTileSize):
193028
1930292012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
193030
193031        Unreviewed, rolling out r132725.
193032        http://trac.webkit.org/changeset/132725
193033        https://bugs.webkit.org/show_bug.cgi?id=100596
193034
193035        it broke linking on chromium debug bots (Requested by loislo
193036        on #webkit).
193037
193038        * inspector/InspectorMemoryAgent.cpp:
193039        (WebCore::addPlatformComponentsInfo):
193040        (WebCore):
193041        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
193042        * platform/MemoryUsageSupport.cpp:
193043        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
193044        * platform/MemoryUsageSupport.h:
193045        (ComponentInfo):
193046        (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
193047        (MemoryUsageSupport):
193048        * platform/PlatformMemoryInstrumentation.cpp:
193049        (WebCore):
193050        * platform/PlatformMemoryInstrumentation.h:
193051        (PlatformMemoryTypes):
193052        * platform/chromium/MemoryUsageSupportChromium.cpp:
193053        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
193054        * platform/qt/MemoryUsageSupportQt.cpp:
193055        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
193056
1930572012-10-27  Dan Bernstein  <mitz@apple.com>
193058
193059        REAL_PLATFORM_NAME build setting is no longer needed
193060        https://bugs.webkit.org/show_bug.cgi?id=100587
193061
193062        Reviewed by Mark Rowe.
193063
193064        Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
193065        to PLATFORM_NAME.
193066
193067        * Configurations/Base.xcconfig:
193068        * Configurations/CompilerVersion.xcconfig:
193069        * Configurations/DebugRelease.xcconfig:
193070        * Configurations/FeatureDefines.xcconfig:
193071        * Configurations/Version.xcconfig:
193072        * Configurations/WebCore.xcconfig:
193073
1930742012-10-27  Tony Chang  <tony@chromium.org>
193075
193076        Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
193077        https://bugs.webkit.org/show_bug.cgi?id=100564
193078
193079        Reviewed by Adam Barth.
193080
193081        Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
193082        Also fix a bug where we didn't reset these settings properly.
193083
193084        No new tests, this is covered by existing media/track tests.
193085
193086        * testing/InternalSettings.cpp:
193087        (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
193088        (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
193089        * testing/InternalSettings.h:
193090        * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
193091        * testing/Internals.cpp: Remove code.
193092        * testing/Internals.h: Remove code.
193093        * testing/Internals.idl: Remove code.
193094
1930952012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
193096
193097        Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
193098        https://bugs.webkit.org/show_bug.cgi?id=100515
193099
193100        Reviewed by Yury Semikhatsky.
193101
193102        I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
193103
193104        * inspector/InspectorMemoryAgent.cpp:
193105        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
193106        * platform/MemoryUsageSupport.cpp:
193107        (WebCore::MemoryUsageSupport::reportMemoryUsage):
193108        * platform/MemoryUsageSupport.h:
193109        (MemoryUsageSupport):
193110        * platform/PlatformMemoryInstrumentation.cpp:
193111        (WebCore):
193112        * platform/PlatformMemoryInstrumentation.h:
193113        (PlatformMemoryTypes):
193114        * platform/chromium/MemoryUsageSupportChromium.cpp:
193115        (reportMemoryUsage):
193116        (WebCore::reportGlyphCache):
193117        (WebCore):
193118        (WebCore::MemoryUsageSupport::reportMemoryUsage):
193119        * platform/qt/MemoryUsageSupportQt.cpp:
193120        (WebCore::MemoryUsageSupport::reportMemoryUsage):
193121
1931222012-10-26  Philip Rogers  <pdr@google.com>
193123
193124        Prevent NaN offset values in ElementTimeControl.
193125        https://bugs.webkit.org/show_bug.cgi?id=100322
193126
193127        Reviewed by Abhishek Arya.
193128
193129        NaN values can cause ElementTimeControl to go back in time!
193130        If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
193131        subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
193132        because NaN values are not properly sorted. NaN SMILTime values
193133        should not be allowed at all, so this patch adds a check for them in
193134        ElementTimeControl's setters.
193135 
193136        This patch also adds preventative asserts to catch if SMILTime is ever
193137        initialized with NaN, or if addEndTime/addBeginTime are ever called
193138        with NaN values.
193139
193140        Test: svg/custom/elementTimeControl-nan-crash.html
193141
193142        * svg/SVGAnimationElement.cpp:
193143        (WebCore::SVGAnimationElement::beginElementAt):
193144        (WebCore::SVGAnimationElement::endElementAt):
193145        * svg/animation/SMILTime.h:
193146        (WebCore::SMILTime::SMILTime):
193147        * svg/animation/SVGSMILElement.cpp:
193148        (WebCore::SVGSMILElement::addBeginTime):
193149        (WebCore::SVGSMILElement::addEndTime):
193150
1931512012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
193152
193153        [BlackBerry] Browser prematurely sends wrong credentials
193154        https://bugs.webkit.org/show_bug.cgi?id=100585
193155
193156        Reviewed by Yong Li.
193157
193158        Manually revert the patch for bug 96362, which causes regressions and the right patch has been
193159        submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
193160        revert.
193161
193162        No new tests. The test is coverted by patch for 100448.
193163
193164        * platform/network/blackberry/CredentialBackingStore.cpp:
193165        * platform/network/blackberry/CredentialBackingStore.h:
193166        (CredentialBackingStore):
193167        * platform/network/blackberry/NetworkManager.cpp:
193168        (WebCore::NetworkManager::startJob):
193169
1931702012-10-26  Brady Eidson  <beidson@apple.com>
193171
193172        Have NetworkProcess manage resource load scheduling.
193173        https://bugs.webkit.org/show_bug.cgi?id=100479
193174
193175        Reviewed by Alexey Proskuryakov.
193176
193177        Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
193178        to be overridden by WebKit's implementation.
193179
193180        No new tests (No change in Core behavior).
193181
193182        * WebCore.exp.in:
193183        * WebCore.xcodeproj/project.pbxproj:
193184
193185        * loader/ResourceLoadScheduler.cpp:
193186        (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
193187        (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
193188        (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
193189          here so derived classes can do it indirectly.
193190        (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
193191          ResourceLoader::start() which only ResourceLoadScheduler can do.
193192
193193        * loader/ResourceLoadScheduler.h:
193194        (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
193195        (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
193196        (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
193197
193198        * loader/ResourceLoader.cpp:
193199        (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
193200
193201        * loader/ResourceLoader.h:
193202        (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
193203        (WebCore::ResourceLoader::request): Make public.
193204        (ResourceLoader):
193205
1932062012-10-26  Chris Rogers  <crogers@google.com>
193207
193208        Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
193209        https://bugs.webkit.org/show_bug.cgi?id=100170
193210
193211        Reviewed by Kenneth Russell.
193212
193213        AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
193214        Sample-based synthesis is a very common technique which requires "internal" loop-points.
193215        For example, the first part of the sample data might represent the attack portion of
193216        a synthesized instrument, which then enters a loop portion.
193217
193218        Tests: webaudio/audiobuffersource-loop-comprehensive.html
193219               webaudio/audiobuffersource-loop-points.html
193220
193221        * Modules/webaudio/AudioBufferSourceNode.cpp:
193222        (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
193223        (WebCore::AudioBufferSourceNode::process):
193224        (WebCore::AudioBufferSourceNode::renderFromBuffer):
193225        * Modules/webaudio/AudioBufferSourceNode.h:
193226        (AudioBufferSourceNode):
193227        (WebCore::AudioBufferSourceNode::loopStart):
193228        (WebCore::AudioBufferSourceNode::loopEnd):
193229        (WebCore::AudioBufferSourceNode::setLoopStart):
193230        (WebCore::AudioBufferSourceNode::setLoopEnd):
193231        * Modules/webaudio/AudioBufferSourceNode.idl:
193232
1932332012-10-26  Daniel Cheng  <dcheng@chromium.org>
193234
193235        dragover's default action should prevent drop for file drags
193236        https://bugs.webkit.org/show_bug.cgi?id=79173
193237
193238        Reviewed by Tony Chang.
193239
193240        During a file drag, we need to keep track of whether or not the document has cancelled the
193241        dragover action. We should only send a drop event if the dragover event was cancelled; this
193242        matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
193243        from the spec are the sections pertaining to dragover and drop events at:
193244        http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
193245
193246        Test: fast/events/only-valid-drop-targets-receive-file-drop.html
193247
193248        * page/DragController.cpp:
193249        (WebCore::DragController::performDrag):
193250        (WebCore::DragController::dragEnteredOrUpdated):
193251        (WebCore::DragController::tryDocumentDrag):
193252        * page/DragController.h:
193253        (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
193254                          and remove the corresponding getter/setter.
193255
1932562012-10-26  Nico Weber  <thakis@chromium.org>
193257
193258        Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
193259        https://bugs.webkit.org/show_bug.cgi?id=94756
193260
193261        Reviewed by Dirk Schulze.
193262
193263        The function has an early exit for !simpleDuration.value(), so
193264        !simpleDuration.value() always is 0 when passed as second parameter to
193265        fmod(), which means fmod() always returns NaN, which always evaluates
193266        to true. Simplify the code by removing that explicit check.
193267
193268        No observable behavior change.
193269
193270        Covered by existing svg tests.
193271
193272        * svg/animation/SVGSMILElement.cpp:
193273        (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
193274
1932752012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
193276
193277        Unreviewed, rolling out r132695.
193278        http://trac.webkit.org/changeset/132695
193279        https://bugs.webkit.org/show_bug.cgi?id=100581
193280
193281        caused 20+ test crashes on bots (Requested by estes on
193282        #webkit).
193283
193284        * dom/ContainerNode.cpp:
193285        (WebCore::ContainerNode::suspendPostAttachCallbacks):
193286        (WebCore::ContainerNode::resumePostAttachCallbacks):
193287        * loader/MainResourceLoader.cpp:
193288        (WebCore::MainResourceLoader::loadNow):
193289        * loader/ResourceLoadScheduler.cpp:
193290        (WebCore::resourceLoadScheduler):
193291        * loader/ResourceLoadScheduler.h:
193292        * loader/ResourceLoader.cpp:
193293        (WebCore::ResourceLoader::releaseResources):
193294        (WebCore::ResourceLoader::willSendRequest):
193295        * loader/cache/CachedResource.cpp:
193296        (WebCore::CachedResource::load):
193297        * loader/cache/CachedResourceLoader.cpp:
193298        (WebCore::CachedResourceLoader::performPostLoadActions):
193299
1933002012-10-26  Vincent Scheib  <scheib@chromium.org>
193301
193302        Unreviewed, rolling out r132702.
193303        http://trac.webkit.org/changeset/132702
193304        https://bugs.webkit.org/show_bug.cgi?id=100322
193305
193306        Compile error on Chromium Linux dbg builder (and others)
193307
193308        * svg/SVGAnimationElement.cpp:
193309        (WebCore::SVGAnimationElement::beginElementAt):
193310        (WebCore::SVGAnimationElement::endElementAt):
193311        * svg/animation/SMILTime.h:
193312        (WebCore::SMILTime::SMILTime):
193313        * svg/animation/SVGSMILElement.cpp:
193314        (WebCore::SVGSMILElement::addBeginTime):
193315        (WebCore::SVGSMILElement::addEndTime):
193316
1933172012-10-26  Philip Rogers  <pdr@google.com>
193318
193319        Prevent NaN offset values in ElementTimeControl.
193320        https://bugs.webkit.org/show_bug.cgi?id=100322
193321
193322        Reviewed by Abhishek Arya.
193323
193324        NaN values can cause ElementTimeControl to go back in time!
193325        If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
193326        subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
193327        because NaN values are not properly sorted. NaN SMILTime values
193328        should not be allowed at all, so this patch adds a check for them in
193329        ElementTimeControl's setters.
193330
193331        This patch also adds preventative asserts to catch if SMILTime is ever
193332        initialized with NaN, or if addEndTime/addBeginTime are ever called
193333        with NaN values.
193334
193335        Test: svg/custom/elementTimeControl-nan-crash.html
193336
193337        * svg/SVGAnimationElement.cpp:
193338        (WebCore::SVGAnimationElement::beginElementAt):
193339        (WebCore::SVGAnimationElement::endElementAt):
193340        * svg/animation/SMILTime.h:
193341        (WebCore::SMILTime::SMILTime):
193342        * svg/animation/SVGSMILElement.cpp:
193343        (WebCore::SVGSMILElement::addBeginTime):
193344        (WebCore::SVGSMILElement::addEndTime):
193345
1933462012-10-26  Tony Chang  <tony@chromium.org>
193347
193348        Move non-Settings Inspector methods from internals.settings to internals
193349        https://bugs.webkit.org/show_bug.cgi?id=100392
193350
193351        Reviewed by Adam Barth.
193352
193353        These methods don't have to do with the WebCore Settings object, so move them up to internals.
193354        I moved the reset code from InternalSettings to Internals.
193355
193356        No new tests, this is just a rename. Existing tests should pass.
193357
193358        * testing/InternalSettings.cpp:
193359        (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
193360        (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
193361        * testing/InternalSettings.h:
193362        * testing/InternalSettings.idl:
193363        * testing/Internals.cpp:
193364        (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
193365        methods in WTR.
193366        (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
193367        (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
193368        * testing/Internals.h:
193369        * testing/Internals.idl:
193370        * testing/js/WebCoreTestSupport.cpp:
193371        (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
193372        * testing/v8/WebCoreTestSupport.cpp:
193373        (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
193374
1933752012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
193376
193377        AX: Notification should be sent when accessibilityIsIgnored changes
193378        https://bugs.webkit.org/show_bug.cgi?id=99547
193379
193380        Reviewed by Chris Fleizach.
193381
193382        Adds a new flag in AccessibilityObject that keeps track of the most recent
193383        value of accessibilityIsIgnored(). After certain events such as an ARIA
193384        attribute change or content change, checks the new value of
193385        accessibilityIsIgnored() and posts a "children changed" notification on the
193386        parent node if it changed, making sure the parent recomputes its vector of
193387        (unignored) children.
193388
193389        Also moves handling of attribute changes to AXObjectCache, and sends
193390        notifications for some attribute changes that were previously silent. On
193391        Chromium, all changes to an accessibility object's attributes should
193392        result in some notification.
193393
193394        Some tests would have broken because an AccessibilityScrollView was created
193395        and holding a reference to a ScrollView for an iframe after it was deleted,
193396        so this change switches AccessibilityScrollView to hold a weak reference
193397        to ScrollView instead.
193398
193399        Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
193400               platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
193401               platform/chromium/accessibility/text-change-notification.html
193402
193403        * accessibility/AXObjectCache.cpp:
193404        (WebCore::AXObjectCache::focusedUIElementForPage):
193405        (WebCore::AXObjectCache::getOrCreate):
193406        (WebCore::AXObjectCache::textChanged):
193407        (WebCore):
193408        (WebCore::AXObjectCache::childrenChanged):
193409        (WebCore::AXObjectCache::handleAriaRoleChanged):
193410        (WebCore::AXObjectCache::handleAttributeChanged):
193411        (WebCore::AXObjectCache::labelChanged):
193412        (WebCore::AXObjectCache::recomputeIsIgnored):
193413        * accessibility/AXObjectCache.h:
193414        (AXObjectCache):
193415        (WebCore::AXObjectCache::childrenChanged):
193416        (WebCore::AXObjectCache::textChanged):
193417        (WebCore::AXObjectCache::handleAttributeChanged):
193418        (WebCore::AXObjectCache::recomputeIsIgnored):
193419        * accessibility/AccessibilityNodeObject.cpp:
193420        (WebCore::AccessibilityNodeObject::insertChild):
193421        * accessibility/AccessibilityObject.cpp:
193422        (WebCore::AccessibilityObject::AccessibilityObject):
193423        (WebCore::AccessibilityObject::cachedIsIgnoredValue):
193424        (WebCore):
193425        (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
193426        (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
193427        * accessibility/AccessibilityObject.h:
193428        (WebCore::AccessibilityObject::textChanged):
193429        (AccessibilityObject):
193430        * accessibility/AccessibilityRenderObject.cpp:
193431        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
193432        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
193433        (WebCore::AccessibilityRenderObject::textChanged):
193434        (WebCore::AccessibilityRenderObject::addHiddenChildren):
193435        (WebCore::AccessibilityRenderObject::addChildren):
193436        * accessibility/AccessibilityRenderObject.h:
193437        (AccessibilityRenderObject):
193438        * accessibility/AccessibilityScrollView.cpp:
193439        (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
193440        (WebCore):
193441        (WebCore::AccessibilityScrollView::detach):
193442        (WebCore::AccessibilityScrollView::isAttachment):
193443        (WebCore::AccessibilityScrollView::widgetForAttachmentView):
193444        (WebCore::AccessibilityScrollView::updateScrollbars):
193445        (WebCore::AccessibilityScrollView::webAreaObject):
193446        (WebCore::AccessibilityScrollView::elementRect):
193447        (WebCore::AccessibilityScrollView::documentFrameView):
193448        (WebCore::AccessibilityScrollView::parentObject):
193449        (WebCore::AccessibilityScrollView::parentObjectIfExists):
193450        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
193451        (WebCore::AccessibilityScrollView::scrollTo):
193452        * accessibility/AccessibilityScrollView.h:
193453        (WebCore::AccessibilityScrollView::scrollView):
193454        (AccessibilityScrollView):
193455        * accessibility/AccessibilityTable.cpp:
193456        (WebCore::AccessibilityTable::isDataTable):
193457        * accessibility/chromium/AXObjectCacheChromium.cpp:
193458        (WebCore::AXObjectCache::postPlatformNotification):
193459        * dom/Element.cpp:
193460        (WebCore::Element::attributeChanged):
193461        * rendering/RenderBlock.cpp:
193462        (WebCore::RenderBlock::deleteLineBoxTree):
193463        (WebCore::RenderBlock::createAndAppendRootInlineBox):
193464        * rendering/RenderObject.cpp:
193465        (WebCore::RenderObject::styleWillChange):
193466        * rendering/RenderText.cpp:
193467        (WebCore::RenderText::setText):
193468
1934692012-10-26  Joshua Bell  <jsbell@chromium.org>
193470
193471        [WebKitIDL] Optional dictionary types should have default values of empty dictionary
193472        https://bugs.webkit.org/show_bug.cgi?id=100547
193473
193474        Reviewed by Adam Barth.
193475
193476        Per WebIDL, "Optional dictionary type arguments are always considered to have a default
193477        value of an empty dictionary." WebKitIDL already supported this via the extended attribute
193478        [Optional=DefaultIsUndefined] but make this the default for Dictionary.
193479
193480        Binding test expectations updated.
193481
193482        * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
193483        (DirectoryEntry):
193484        * Modules/indexeddb/IDBDatabase.h: Remove overloads.
193485        (IDBDatabase):
193486        * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
193487        (IDBObjectStore):
193488        * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
193489        * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
193490        (GenerateParametersCheck):
193491        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
193492        (GenerateParametersCheck):
193493        * bindings/scripts/test/JS/JSTestObj.cpp:
193494        (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
193495        * bindings/scripts/test/V8/V8TestObj.cpp:
193496        (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
193497
1934982012-10-26  Vincent Scheib  <scheib@chromium.org>
193499
193500        Generated should not be supported for things with a shadow
193501        https://bugs.webkit.org/show_bug.cgi?id=98836
193502
193503        Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
193504        Initial rollout was speculative and was shown not to be related to crashes.
193505        Change author: Elliott Sprehn  <esprehn@chromium.org>
193506
193507        As far as CSS is concerned inputs and things with shadow content inside 
193508        shouldn't support pseudo elements like :before, :after or :first-letter.
193509        Neither Gecko or Presto supports it, and we only accidentally supported 
193510        it. 
193511 
193512        Until the spec tells us what to do we should disable support. This is 
193513        also neccesary because the new generated content implementation doesn't 
193514        support shadows. 
193515
193516        Test: fast/forms/pseudo-elements.html
193517
193518        * rendering/RenderBlock.cpp:
193519        (WebCore::RenderBlock::updateFirstLetter):
193520        * rendering/RenderListBox.h:
193521        * rendering/RenderObjectChildList.cpp:
193522        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
193523
1935242012-10-26  Brady Eidson  <beidson@apple.com>
193525
193526        Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
193527        <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
193528
193529        Reviewed by Alexey Proskuryakov.
193530
193531        This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
193532        spots that call resourceLoadScheduler().
193533
193534        As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
193535        to get out of sync.
193536
193537        The fix that also results in less #ifdefs scattered throughout the code is to use a single 
193538        choke point for all ResourceLoadScheduler access.
193539
193540        No new tests 
193541        (No change of behavior for the default config, not testable at this time in the repro config)
193542
193543        Add a single choke point for accessing the correct ResourceLoadScheduler:
193544        * loader/ResourceLoadScheduler.cpp:
193545        (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
193546        (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
193547
193548        Revert back to using that single choke point everywhere:
193549        * dom/ContainerNode.cpp:
193550        (WebCore::ContainerNode::suspendPostAttachCallbacks):
193551        (WebCore::ContainerNode::resumePostAttachCallbacks):
193552
193553        * loader/MainResourceLoader.cpp:
193554        (WebCore::MainResourceLoader::loadNow):
193555
193556        * loader/ResourceLoader.cpp:
193557        (WebCore::ResourceLoader::releaseResources):
193558        (WebCore::ResourceLoader::willSendRequest):
193559
193560        * loader/cache/CachedResource.cpp:
193561        (WebCore::CachedResource::load):
193562
193563        * loader/cache/CachedResourceLoader.cpp:
193564        (WebCore::CachedResourceLoader::performPostLoadActions):
193565
1935662012-10-26  Elliott Sprehn  <esprehn@chromium.org>
193567
193568        Try to fix the windows build
193569        https://bugs.webkit.org/show_bug.cgi?id=100556
193570
193571        Reviewed by Eric Seidel.
193572
193573        Touch files by adding whitespace to try and make the windows
193574        build bot regenerate files.
193575
193576        No new tests, just kick the bot.
193577
193578        * dom/DOMAllInOne.cpp:
193579        * html/HTMLElementsAllInOne.cpp:
193580        * html/shadow/TextControlInnerElements.cpp:
193581
1935822012-10-26  Rob Buis  <rbuis@rim.com>
193583
193584        [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
193585        https://bugs.webkit.org/show_bug.cgi?id=100518
193586
193587        PR 231732
193588
193589        Reviewed by Yong Li.
193590
193591        Use the new resource/image loading abstraction ResourceStore.
193592
193593        * platform/graphics/blackberry/ImageBlackBerry.cpp:
193594        (WebCore::Image::loadPlatformResource):
193595
1935962012-10-26  Bear Travis  <betravis@adobe.com>
193597
193598        [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
193599        https://bugs.webkit.org/show_bug.cgi?id=98189
193600
193601        Reviewed by Dirk Schulze.
193602
193603        The initial code assumed that each block created a new layout state, such that
193604        LayoutState::layoutOffset would be specific to each block child of a shape-inside.
193605        Typically, however, block children of a shape-inside do not create a new layout state,
193606        and therefore we use the current element's offset instead.
193607
193608        Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
193609
193610        * rendering/RenderBlockLineLayout.cpp:
193611        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
193612        rather than LayoutState::layoutOffset::width/height and logicalTop.
193613
1936142012-10-26  Elliott Sprehn  <esprehn@chromium.org>
193615
193616        Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
193617        https://bugs.webkit.org/show_bug.cgi?id=100397
193618
193619        Reviewed by Ojan Vafai.
193620
193621        Use Node custom callbacks to support the non-renderer style caching for option
193622        and optgroup eliminating the need for setRenderStyle.
193623
193624        setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
193625        so they could store their RenderStyle even though they have no renderer. This
193626        means all style setting went through the virtual call to setRenderStyle, and it
193627        also hid the if statement protecting against null renderers meaning we end up
193628        checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
193629        up recalcStyle to be more clear about what's going on.
193630
193631        No new tests needed, this is just a refactor.
193632
193633        * dom/Element.cpp:
193634        (WebCore::Element::pseudoStyleCacheIsInvalid):
193635        (WebCore::Element::recalcStyle):
193636        * dom/Node.cpp:
193637        (WebCore::Node::createRenderer):
193638        (WebCore::Node::setRenderStyle):
193639            Removed this method because it was only here to support HTMLOptionElement
193640            and HTMLOptGroupElement. Instead we can use node custom callbacks.
193641        * dom/Node.h:
193642        (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
193643        * dom/NodeRenderStyle.h:
193644        (WebCore::Node::renderStyle):
193645        * html/HTMLOptGroupElement.cpp:
193646        (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
193647        (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
193648        (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
193649        (WebCore::HTMLOptGroupElement::nonRendererStyle):
193650        (WebCore::HTMLOptGroupElement::customStyleForRenderer):
193651        * html/HTMLOptGroupElement.h:
193652        * html/HTMLOptionElement.cpp:
193653        (WebCore::HTMLOptionElement::HTMLOptionElement):
193654        (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
193655        (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
193656        (WebCore::HTMLOptionElement::nonRendererStyle):
193657        (WebCore::HTMLOptionElement::customStyleForRenderer):
193658        (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
193659        * html/HTMLOptionElement.h:
193660
1936612012-10-26  Dirk Schulze  <krit@webkit.org>
193662
193663        -webkit-clip-path property should just reference clipPath
193664        https://bugs.webkit.org/show_bug.cgi?id=100531
193665
193666        Reviewed by Eric Seidel.
193667
193668        The -webkit-clip-path property should just reference clipPath. Added a check for that.
193669
193670        Test: css3/masking/clip-path-reference-of-fake-clipPath.html
193671
193672        * rendering/RenderLayer.cpp:
193673        (WebCore::RenderLayer::paintLayerContents):
193674
1936752012-10-26  Aaron Colwell  <acolwell@chromium.org>
193676
193677        Remove the circular reference between TextTrack and TextTrackCue
193678        https://bugs.webkit.org/show_bug.cgi?id=100300
193679
193680        Reviewed by Eric Carlson.
193681
193682        Changed TextTrackCue.m_track to a normal pointer to break the circular
193683        reference that was keeping both objects from ever getting deleted.
193684
193685        No new tests. This simply fixes a memory leak.
193686
193687        * html/track/TextTrack.cpp:
193688        (WebCore::TextTrack::~TextTrack):
193689        * html/track/TextTrackCue.cpp:
193690        (WebCore::TextTrackCue::TextTrackCue):
193691        (WebCore::TextTrackCue::~TextTrackCue):
193692        (WebCore::TextTrackCue::track):
193693        (WebCore::TextTrackCue::setTrack):
193694        * html/track/TextTrackCue.h:
193695        (TextTrackCue):
193696
1936972012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
193698
193699        Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
193700        https://bugs.webkit.org/show_bug.cgi?id=100535
193701
193702        Reviewed by Pavel Feldman.
193703
193704        Added SourceMappingChanged event to UISourceCode and made
193705        JavaScriptSourceFrame update ScriptFile events listeners on it.
193706
193707        * inspector/front-end/JavaScriptSourceFrame.js:
193708        (WebInspector.JavaScriptSourceFrame):
193709        (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
193710        (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
193711        * inspector/front-end/ResourceScriptMapping.js:
193712        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
193713        * inspector/front-end/UISourceCode.js:
193714        (WebInspector.UISourceCode.prototype.setSourceMapping):
193715
1937162012-10-26  Vincent Scheib  <scheib@chromium.org>
193717
193718        Unreviewed, rolling out r132644.
193719        http://trac.webkit.org/changeset/132644
193720        https://bugs.webkit.org/show_bug.cgi?id=100497
193721
193722        Causes webkit_unit_tests
193723        MemoryInstrumentationTest.ImageObserver to fail.
193724
193725        * platform/network/ResourceRequestBase.cpp:
193726        (WebCore::ResourceRequestBase::reportMemoryUsage):
193727        * platform/network/ResourceRequestBase.h:
193728        (ResourceRequestBase):
193729        * platform/network/chromium/ResourceRequest.cpp:
193730        * platform/network/chromium/ResourceRequest.h:
193731
1937322012-10-26  Zeno Albisser  <zeno@webkit.org>
193733
193734        [Qt] MiniBrowser segfaults on exit after using WebGL.
193735        https://bugs.webkit.org/show_bug.cgi?id=100523
193736
193737        The display connection must not be closed before
193738        destroying the offscreen window.
193739        Therefore opening the connection is moved to the
193740        getXWindow() function. And closing the connection
193741        is being moved to the destructor of the offscreen window.
193742
193743        Reviewed by Kenneth Rohde Christiansen.
193744
193745
193746        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
193747        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
193748        (WebCore::OffScreenRootWindow::getXWindow):
193749        (OffScreenRootWindow):
193750        (WebCore::OffScreenRootWindow::display):
193751        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
193752        (WebCore):
193753        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
193754        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
193755        (WebCore::GraphicsSurfacePrivate::createSurface):
193756
1937572012-10-26  Parth Patel  <parpatel@rim.com>
193758
193759        [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
193760        Generic ThreadUnsafe Singleton
193761        https://bugs.webkit.org/show_bug.cgi?id=100529
193762
193763        Reviewed by Yong Li.
193764
193765        No new tests added as there was no behavioural change.
193766
193767        * platform/network/blackberry/NetworkManager.cpp:
193768        (WebCore):
193769        * platform/network/blackberry/NetworkManager.h:
193770        (NetworkManager):
193771
1937722012-10-26  Mike West  <mkwst@chromium.org>
193773
193774        Web Inspector: Fix log-type icon alignment.
193775        https://bugs.webkit.org/show_bug.cgi?id=100520
193776
193777        Reviewed by Yury Semikhatsky.
193778
193779        The icons are just a pixel or two off, and it's driving me nuts.
193780
193781        * inspector/front-end/inspector.css:
193782        (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
193783        (.console-warning-level::before):
193784
1937852012-10-26  Erik Arvidsson  <arv@chromium.org>
193786
193787        Replaceable attributes should also have readonly
193788        https://bugs.webkit.org/show_bug.cgi?id=91768
193789
193790        Reviewed by Adam Barth.
193791
193792        This updates the code generators for JSC and V8 to handle this case correctly.
193793
193794        * Modules/intents/DOMWindowIntents.idl:
193795        * bindings/scripts/CodeGeneratorJS.pm:
193796        * bindings/scripts/CodeGeneratorV8.pm:
193797        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
193798        * bindings/scripts/test/ObjC/DOMTestObj.h:
193799        * bindings/scripts/test/ObjC/DOMTestObj.mm:
193800        * bindings/scripts/test/TestObj.idl:
193801        * bindings/scripts/test/V8/V8TestObj.cpp:
193802        * page/DOMWindow.idl:
193803        * workers/WorkerContext.idl:
193804
1938052012-10-26  Nico Weber  <thakis@chromium.org>
193806
193807        Clear m_orientation in FrameData::clear() for skia
193808        https://bugs.webkit.org/show_bug.cgi?id=100456
193809
193810        Reviewed by Stephen White.
193811
193812        clear() is only called by the FrameData destructor and for multi-image
193813        images in BitmapImage::destroyDecodedData(). Multi-frame images don't
193814        have exif data, so this patch should have no effect in practice. It
193815        makes the skia code match the CG code in BitmapImageCG.cpp though.
193816
193817        * platform/graphics/skia/ImageSkia.cpp:
193818        (WebCore::FrameData::clear):
193819
1938202012-10-26  Florin Malita  <fmalita@chromium.org>
193821
193822        Crash on loading SVG filter resource on HTML element
193823        https://bugs.webkit.org/show_bug.cgi?id=100491
193824
193825        Reviewed by Dirk Schulze.
193826
193827        Skip non-filter elements referenced via -webkit-filter.
193828
193829        Test: svg/filters/filter-reference-crash.html
193830
193831        * rendering/RenderLayerFilterInfo.cpp:
193832        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
193833
1938342012-10-26  Antti Koivisto  <antti@apple.com>
193835
193836        Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
193837        https://bugs.webkit.org/show_bug.cgi?id=100514
193838
193839        Reviewed by Anders Carlsson.
193840
193841        DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
193842        the document. The function is relatively slow.
193843        
193844        This patch caches the result of the last check for 5 seconds. Based on code comments
193845        prefetching is disabled with proxies due to regressing performance with some configurations.
193846        Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
193847
193848        * platform/network/DNSResolveQueue.cpp:
193849        (WebCore::DNSResolveQueue::DNSResolveQueue):
193850        
193851            Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
193852            
193853        (WebCore):
193854        (WebCore::DNSResolveQueue::isUsingProxy):
193855        (WebCore::DNSResolveQueue::add):
193856        (WebCore::DNSResolveQueue::fired):
193857        * platform/network/DNSResolveQueue.h:
193858        (DNSResolveQueue):
193859
1938602012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
193861
193862        Unreviewed, rolling out r132662.
193863        http://trac.webkit.org/changeset/132662
193864        https://bugs.webkit.org/show_bug.cgi?id=100528
193865
193866        It is not necessary any more. (Requested by loislo on
193867        #webkit).
193868
193869        * platform/qt/MemoryUsageSupportQt.cpp:
193870        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
193871        (WebCore):
193872
1938732012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
193874
193875        Unreviewed build fix for Qt builders.
193876
193877        * platform/qt/MemoryUsageSupportQt.cpp:
193878
1938792012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
193880
193881        Unreviewed, rolling out r132658.
193882        http://trac.webkit.org/changeset/132658
193883        https://bugs.webkit.org/show_bug.cgi?id=100515
193884
193885        It broke the Qt build
193886
193887        * inspector/InspectorMemoryAgent.cpp:
193888        (WebCore::addPlatformComponentsInfo):
193889        (WebCore):
193890        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
193891        * platform/MemoryUsageSupport.cpp:
193892        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
193893        * platform/MemoryUsageSupport.h:
193894        (ComponentInfo):
193895        (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
193896        (MemoryUsageSupport):
193897        * platform/PlatformMemoryInstrumentation.cpp:
193898        (WebCore):
193899        * platform/PlatformMemoryInstrumentation.h:
193900        (PlatformMemoryTypes):
193901        * platform/chromium/MemoryUsageSupportChromium.cpp:
193902        (WebCore::MemoryUsageSupport::memoryUsageByComponents):
193903
1939042012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
193905
193906        Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
193907        https://bugs.webkit.org/show_bug.cgi?id=100522
193908
193909        Reviewed by Pavel Feldman.
193910
193911        Method appendApplicableItems now receives event as a parameter.
193912        HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
193913
193914        * inspector/front-end/BreakpointsSidebarPane.js:
193915        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
193916        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
193917        (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
193918        (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
193919        * inspector/front-end/CallStackSidebarPane.js:
193920        (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
193921        * inspector/front-end/ConsoleView.js:
193922        * inspector/front-end/ContextMenu.js:
193923        (WebInspector.ContextMenu):
193924        (WebInspector.ContextMenu.prototype.show):
193925        (WebInspector.ContextMenu.prototype.appendApplicableItems):
193926        (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
193927        * inspector/front-end/CookieItemsView.js:
193928        (WebInspector.CookieItemsView.prototype._contextMenu):
193929        * inspector/front-end/DOMBreakpointsSidebarPane.js:
193930        (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
193931        * inspector/front-end/DataGrid.js:
193932        (WebInspector.DataGrid.prototype._contextMenuInDataTable):
193933        * inspector/front-end/DefaultTextEditor.js:
193934        (WebInspector.DefaultTextEditor.prototype._contextMenu):
193935        * inspector/front-end/ElementsPanel.js:
193936        (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
193937        * inspector/front-end/ElementsPanelDescriptor.js:
193938        (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
193939        * inspector/front-end/ElementsTreeOutline.js:
193940        (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
193941        * inspector/front-end/HandlerRegistry.js:
193942        (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
193943        * inspector/front-end/ImageView.js:
193944        (WebInspector.ImageView.prototype._contextMenu):
193945        * inspector/front-end/NavigatorView.js:
193946        (WebInspector.NavigatorView.prototype.handleContextMenu):
193947        * inspector/front-end/NetworkPanel.js:
193948        (WebInspector.NetworkLogView.prototype._contextMenu):
193949        * inspector/front-end/NetworkPanelDescriptor.js:
193950        (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
193951        * inspector/front-end/ObjectPropertiesSection.js:
193952        (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
193953        (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
193954        * inspector/front-end/ProfilesPanel.js:
193955        (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
193956        (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
193957        * inspector/front-end/ResourcesPanel.js:
193958        (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
193959        (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
193960        (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
193961        (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
193962        * inspector/front-end/ScriptsNavigator.js:
193963        (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
193964        * inspector/front-end/ScriptsPanel.js:
193965        (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
193966        * inspector/front-end/ScriptsPanelDescriptor.js:
193967        (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
193968        * inspector/front-end/StylesSidebarPane.js:
193969        (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
193970        * inspector/front-end/TabbedPane.js:
193971        (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
193972        * inspector/front-end/TimelinePanel.js:
193973        (WebInspector.TimelinePanel.prototype._contextMenu):
193974        * inspector/front-end/WatchExpressionsSidebarPane.js:
193975        (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
193976        (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
193977
1939782012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
193979
193980        Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
193981        https://bugs.webkit.org/show_bug.cgi?id=100515
193982
193983        Reviewed by Yury Semikhatsky.
193984
193985        I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
193986
193987        * inspector/InspectorMemoryAgent.cpp:
193988        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
193989        * platform/MemoryUsageSupport.cpp:
193990        (WebCore::MemoryUsageSupport::reportMemoryUsage):
193991        * platform/MemoryUsageSupport.h:
193992        (MemoryUsageSupport):
193993        * platform/PlatformMemoryInstrumentation.cpp:
193994        (WebCore):
193995        * platform/PlatformMemoryInstrumentation.h:
193996        (PlatformMemoryTypes):
193997        * platform/chromium/MemoryUsageSupportChromium.cpp:
193998        (reportMemoryUsage):
193999        (WebCore::reportGlyphCache):
194000        (WebCore):
194001        (WebCore::MemoryUsageSupport::reportMemoryUsage):
194002
1940032012-10-26  Kent Tamura  <tkent@chromium.org>
194004
194005        [Chromium] Build fix for r132650.
194006        https://bugs.webkit.org/show_bug.cgi?id=100482
194007
194008        * platform/text/LocaleWin.cpp:
194009        (WebCore::LocaleWin::timeFormat):
194010
1940112012-10-26  Yury Semikhatsky  <yurys@chromium.org>
194012
194013        [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
194014        https://bugs.webkit.org/show_bug.cgi?id=100517
194015
194016        Reviewed by Alexander Pavlov.
194017
194018        * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
194019        pointers to WrapperTypeInfo objects as they are static fields and belong to
194020        the data segment.
194021        (WTF):
194022
1940232012-10-26  Kent Tamura  <tkent@chromium.org>
194024
194025        Refactor Localizer-related classes.
194026        https://bugs.webkit.org/show_bug.cgi?id=100482
194027
194028        Reviewed by Kentaro Hara.
194029
194030        - Localizer has unused code
194031         Localizer should have function implementations only if they are used in
194032         multiple subclasses.
194033        - Some Localizer subclasses hide Localizer data members
194034        - Should use String::isNull to check initialization-or-not
194035
194036        No new tests. This should not change any behavior.
194037
194038        * platform/text/Localizer.h:
194039        (Localizer):
194040        - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
194041        - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
194042          m_timeAMPMLabels
194043        * platform/text/Localizer.cpp:
194044        Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
194045
194046        * platform/text/LocaleICU.h:
194047        (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
194048        * platform/text/LocaleICU.cpp:
194049        (WebCore::LocaleICU::initializeDateTimeFormat):
194050        Use new data members instead of Localizer data members.
194051        (WebCore::LocaleICU::dateFormat): Use isNull.
194052
194053        * platform/text/LocaleNone.cpp:
194054        (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
194055        implementations, and m_timeAMPMLabels.
194056        (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
194057        (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
194058        (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
194059
194060        * platform/text/LocaleWin.h:
194061        (LocaleWin): Add m_timeFormatWithSeconds.
194062        * platform/text/LocaleWin.cpp:
194063        (WebCore::LocaleWin::dateFormat): Use isNull.
194064        (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
194065
194066        * platform/text/mac/LocaleMac.h:
194067        (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
194068        * platform/text/mac/LocaleMac.mm:
194069        (WebCore::LocaleMac::timeFormat): Follow the renaming.
194070        (WebCore::LocaleMac::shortTimeFormat): Ditto.
194071
1940722012-10-26  Kent Tamura  <tkent@chromium.org>
194073
194074        Crash in PagePopupController by events after WebPagePopupImpl::closePopup
194075        https://bugs.webkit.org/show_bug.cgi?id=100454
194076
194077        Reviewed by Hajime Morita.
194078
194079        No new tests. The bug is timing-dependent.
194080
194081        * page/DOMWindowPagePopup.cpp:
194082        (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
194083        Calls clearPagePopupClient for the associalated PagePopupController object.
194084        * page/PagePopupController.cpp:
194085        (WebCore::PagePopupController::setValueAndClosePopup):
194086        Do nothing if m_popupClient is 0.
194087        (WebCore::PagePopupController::localizeNumberString): Ditto.
194088        (WebCore::PagePopupController::clearPagePopupClient): Added.
194089        * page/PagePopupController.h:
194090        (PagePopupController): Declare clearPagePopupClient.
194091
1940922012-10-25  Alexander Pavlov  <apavlov@chromium.org>
194093
194094        Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
194095        https://bugs.webkit.org/show_bug.cgi?id=100220
194096
194097        Reviewed by Yury Semikhatsky.
194098
194099        * inspector/front-end/Settings.js:
194100        (WebInspector.ExperimentsSettings):
194101        * inspector/front-end/SettingsScreen.js:
194102        (WebInspector.UserAgentSettingsTab):
194103
1941042012-10-26  Yury Semikhatsky  <yurys@chromium.org>
194105
194106        Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
194107        https://bugs.webkit.org/show_bug.cgi?id=100497
194108
194109        Reviewed by Alexander Pavlov.
194110
194111        Added memory reporting method to Chromium implementation of ResourceRequest.
194112
194113        * platform/network/ResourceRequestBase.cpp:
194114        (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
194115        on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
194116        rather make ResourceRequestBase::reportMemoryUsage virtual and override it
194117        in the descendant but ResourceRequestBase doesn't have any virtual methods
194118        and shouldn't be used directly (ResourceRequest should be used instead).
194119        * platform/network/ResourceRequestBase.h:
194120        (ResourceRequestBase):
194121        * platform/network/chromium/ResourceRequest.cpp:
194122        (WebCore::ResourceRequest::reportMemoryUsage):
194123        (WebCore):
194124        * platform/network/chromium/ResourceRequest.h:
194125        (ResourceRequest):
194126
1941272012-10-26  Alexander Pavlov  <apavlov@chromium.org>
194128
194129        Web Inspector: Remove the on-hover highlighting of console messages
194130        https://bugs.webkit.org/show_bug.cgi?id=100511
194131
194132        Reviewed by Pavel Feldman.
194133
194134        This clashes with the hovered element highlight in console messages.
194135
194136        * inspector/front-end/inspector.css:
194137        (ol.watch-expressions > li.hovered):
194138
1941392012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
194140
194141        Unreviewed, rolling out r132612.
194142        http://trac.webkit.org/changeset/132612
194143        https://bugs.webkit.org/show_bug.cgi?id=100512
194144
194145        Crashes fast/events/tabindex-focus-blur-all.html in debug mode
194146        (Requested by pfeldman on #webkit).
194147
194148        * rendering/AutoTableLayout.cpp:
194149        (WebCore::AutoTableLayout::recalcColumn):
194150        * rendering/FixedTableLayout.cpp:
194151        (WebCore::FixedTableLayout::calcWidthArray):
194152        * rendering/RenderTable.cpp:
194153        (WebCore::RenderTable::layout):
194154        * rendering/RenderTableCol.cpp:
194155        (WebCore::RenderTableCol::styleDidChange):
194156        (WebCore::RenderTableCol::updateFromElement):
194157        (WebCore::RenderTableCol::computePreferredLogicalWidths):
194158        * rendering/RenderTableCol.h:
194159        (RenderTableCol):
194160
1941612012-10-26  Pavel Feldman  <pfeldman@chromium.org>
194162
194163        Web Inspector: fast return upon setting the same dock side.
194164        https://bugs.webkit.org/show_bug.cgi?id=100510
194165
194166        Reviewed by Vsevolod Vlasov.
194167
194168        Added fast return.
194169
194170        * inspector/front-end/DockController.js:
194171
1941722012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
194173
194174        Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
194175
194176        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
194177        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194178
1941792012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
194180
194181        Printing should use use high resolution images when available
194182        https://bugs.webkit.org/show_bug.cgi?id=100488
194183
194184        Reviewed by Antti Koivisto.
194185
194186        The images loaded using -webkit-device-pixel-ratio depends on
194187        the display type (deviceScaleFactor) and thus affects which
194188        images are being used for printing. Printing should always
194189        use the higher resolution images (aka 'retina' images).
194190
194191        Test: fast/media/mq-pixel-ratio-print.html
194192
194193        * css/MediaQueryEvaluator.cpp:
194194        (WebCore::device_pixel_ratioMediaFeatureEval):
194195
1941962012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
194197
194198        Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
194199        https://bugs.webkit.org/show_bug.cgi?id=100496
194200
194201        Reviewed by Yury Semikhatsky.
194202
194203        It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
194204
194205        * dom/WebCoreMemoryInstrumentation.cpp:
194206        (WebCore):
194207        * dom/WebCoreMemoryInstrumentation.h:
194208        (WebCoreMemoryTypes):
194209        * inspector/InspectorResourceAgent.cpp:
194210        (WebCore::InspectorResourceAgent::reportMemoryUsage):
194211        (WebCore):
194212        * inspector/InspectorResourceAgent.h:
194213        (InspectorResourceAgent):
194214        * inspector/NetworkResourcesData.cpp:
194215        (WebCore::XHRReplayData::reportMemoryUsage):
194216        (WebCore):
194217        (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
194218        (WebCore::NetworkResourcesData::reportMemoryUsage):
194219        * inspector/NetworkResourcesData.h:
194220        (XHRReplayData):
194221        (ResourceData):
194222        (NetworkResourcesData):
194223
1942242012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
194225
194226        Unreviewed, rolling out r132493.
194227        http://trac.webkit.org/changeset/132493
194228        https://bugs.webkit.org/show_bug.cgi?id=100509
194229
194230        It didn't fix the tests on the bot as we had hoped. (Requested
194231        by drott on #webkit).
194232
194233        * platform/network/cf/ResourceErrorCF.cpp:
194234        (WebCore::ResourceError::ResourceError):
194235
1942362012-10-26  Zeno Albisser  <zeno@webkit.org>
194237
194238        [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
194239        https://bugs.webkit.org/show_bug.cgi?id=100493
194240
194241        Once QXcbNativeInterface::nativeResourceForContext() can provide the
194242        GLXContext for an existing QOpenGLContext, this patch shall be reverted.
194243
194244        Reviewed by Simon Hausmann.
194245
194246        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
194247        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194248
1942492012-10-26  Zeno Albisser  <zeno@webkit.org>
194250
194251        [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
194252        https://bugs.webkit.org/show_bug.cgi?id=100492
194253
194254        This patch removes most of the QOpenGLContext related code
194255        from GraphicsSurfaceGLX. This allows sharing almost all
194256        GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
194257
194258        Reviewed by Kenneth Rohde Christiansen.
194259
194260        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
194261        (WebCore::OffScreenRootWindow::get):
194262        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
194263        (OffScreenRootWindow):
194264        (WebCore):
194265        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194266        (WebCore::GraphicsSurfacePrivate::createSurface):
194267        (WebCore::GraphicsSurfacePrivate::makeCurrent):
194268        (WebCore::GraphicsSurfacePrivate::doneCurrent):
194269        (WebCore::GraphicsSurfacePrivate::swapBuffers):
194270        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
194271        (GraphicsSurfacePrivate):
194272        (WebCore::resolveGLMethods):
194273
1942742012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
194275
194276        [EFL][WK2] Enable WebGL
194277        https://bugs.webkit.org/show_bug.cgi?id=97652
194278
194279        Reviewed by Gyuyoung Kim.
194280
194281        Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
194282        Depends on GLX since Evas doesn't provide the necessary functionality.
194283
194284        No new tests. Covered by existing tests.
194285
194286        * PlatformEfl.cmake:
194287        * platform/graphics/GraphicsContext3D.h:
194288        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
194289        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
194290        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
194291        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
194292        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
194293        (WebCore):
194294        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
194295        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
194296        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
194297        * platform/graphics/efl/GraphicsContext3DPrivate.h:
194298        (GraphicsContext3DPrivate):
194299        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
194300        (WebCore::GraphicsContext3D::reshape):
194301        * platform/graphics/surfaces/efl: Added.
194302        * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
194303        (WebCore):
194304        (WebCore::OffScreenRootWindow::get):
194305        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
194306        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194307        (WebCore::GraphicsSurfacePrivate::createSurface):
194308        (WebCore::GraphicsSurfacePrivate::makeCurrent):
194309        (WebCore::GraphicsSurfacePrivate::doneCurrent):
194310        (WebCore::GraphicsSurfacePrivate::swapBuffers):
194311        (WebCore::GraphicsSurface::platformBeginPaint):
194312        (WebCore::GraphicsSurface::createReadOnlyImage):
194313        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
194314        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
194315        (WebCore):
194316        (OffScreenRootWindow):
194317        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
194318        (GraphicsSurfacePrivate):
194319        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
194320        (WebCore::GraphicsSurfacePrivate::createPixmap):
194321        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
194322        (WebCore::GraphicsSurfacePrivate::display):
194323        (WebCore::GraphicsSurfacePrivate::glxPixmap):
194324        (WebCore::GraphicsSurfacePrivate::size):
194325        (WebCore::GraphicsSurfacePrivate::glContext):
194326        (WebCore::resolveGLMethods):
194327        * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
194328        (WebCore):
194329        (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
194330        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
194331        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194332        (WebCore::GraphicsSurfacePrivate::createSurface):
194333        (WebCore::GraphicsSurfacePrivate::makeCurrent):
194334        (WebCore::GraphicsSurfacePrivate::doneCurrent):
194335        (WebCore::GraphicsSurfacePrivate::swapBuffers):
194336
1943372012-10-26  Alexander Pavlov  <apavlov@chromium.org>
194338
194339        Web Inspector: [Overrides] Do not persist the User Agent "master switch"
194340        https://bugs.webkit.org/show_bug.cgi?id=100484
194341
194342        Reviewed by Yury Semikhatsky.
194343
194344        The User Agent override state is managed in the front-end, just like for other override-able parameters.
194345
194346        * inspector/InspectorResourceAgent.cpp:
194347        (WebCore::InspectorResourceAgent::disable):
194348        * inspector/front-end/NetworkManager.js:
194349        (WebInspector.NetworkManager.get NetworkAgent):
194350        (WebInspector.NetworkManager):
194351        * inspector/front-end/SettingsScreen.js:
194352        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
194353        (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
194354        * inspector/front-end/UserAgentSupport.js:
194355        (WebInspector.UserAgentSupport):
194356        (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
194357        (WebInspector.UserAgentSupport.prototype._userAgentChanged):
194358
1943592012-10-26  Takashi Sakamoto  <tasak@google.com>
194360
194361        [Shadow]: removing styles in shadow dom subtree causes crash.
194362        https://bugs.webkit.org/show_bug.cgi?id=100455
194363
194364        Reviewed by Hajime Morita.
194365
194366        To quickly check whether shadow roots or elements have any scoped
194367        styles or not, elements have hasStyleScoped flag. If elements have
194368        any scoped styles, the styles are direct children of the element.
194369        The original code just sees how many chilren are scoped style or not.
194370        However styles in shadow dom subtree are registered with the shadow
194371        root but are not always direct children of shadow roots. So to check
194372        whether shadow roots have any scoped styles, modified to count
194373        number of styles registered with the shadow root.
194374
194375        Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
194376
194377        * dom/Node.cpp:
194378        (WebCore::Node::registerScopedHTMLStyleChild):
194379        (WebCore::Node::unregisterScopedHTMLStyleChild):
194380        Made the above two method virtual. class ShadowRoot overrides these
194381        methods.
194382        (WebCore::Node::numberOfScopedHTMLStyleChildren):
194383        Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
194384        are moved into Node.cpp.
194385        * dom/Node.h:
194386        (Node):
194387        * dom/ShadowRoot.cpp:
194388        (WebCore::ShadowRoot::ShadowRoot):
194389        (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
194390        (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
194391        Modify to count how many styles are registered with the shadow root.
194392        The "counting" is done when styles are registered and unregistered
194393        with the shadow root, i.e. style element is inserted into document or
194394        removed from document. When unregister some style, there are no more
194395        styles registered with the shadow root. Set style scoped flag false.
194396        * dom/ShadowRoot.h:
194397        (ShadowRoot):
194398        * html/HTMLStyleElement.cpp:
194399        * html/HTMLStyleElement.h:
194400        (WebCore::HTMLStyleElement::isRegisteredAsScoped):
194401        Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
194402        moved .cpp to .h.
194403
1944042012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
194405
194406        Unreviewed, rolling out r132589.
194407        http://trac.webkit.org/changeset/132589
194408        https://bugs.webkit.org/show_bug.cgi?id=100498
194409
194410        Breaks font-face layout tests (Requested by pfeldman on
194411        #webkit).
194412
194413        * css/CSSFontFaceSource.cpp:
194414        (WebCore::CSSFontFaceSource::getFontData):
194415
1944162012-10-26  Takashi Sakamoto  <tasak@google.com>
194417
194418        [Shadow DOM] Needs @host rule for ShadowDOM styling
194419        https://bugs.webkit.org/show_bug.cgi?id=88606
194420
194421        Reviewed by Hajime Morita.
194422
194423        Implemented @host-@rules according to the shadow dom spec:
194424        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
194425        The design doc is:
194426        https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
194427
194428        Test: fast/dom/shadow/athost-atrules.html
194429
194430        * css/CSSGrammar.y.in:
194431        Added rules for parsing @host @-rules.
194432        * css/CSSParser.cpp:
194433        (WebCore::CSSParser::detectAtToken):
194434        Added a new token "@host".
194435        (WebCore::CSSParser::createHostRule):
194436        Added a new method to create an @host @-rule, which is invoked from
194437        (WebCore):
194438        * css/CSSParser.h:
194439        Added a declaration of the above new method: createHostRule.
194440        * css/CSSPropertySourceData.h:
194441        Added HOST_RULE to enum Type.
194442        * css/RuleSet.cpp:
194443        (WebCore::RuleData::RuleData):
194444        Modified multiple bool arguments into one argument. Now it
194445        uses combinations of values from enum AddRuleFlags.
194446        (WebCore::RuleSet::addRule):
194447        (WebCore::RuleSet::addRegionRule):
194448        (WebCore::RuleSet::addStyleRule):
194449        Updated according to the RuleData's change.
194450        Modified to Invoke increaseSpecificity if the given rule is @host
194451        @-rule.
194452        (WebCore::RuleSet::addRulesFromSheet):
194453        Invoked addHostRule if the given rule is @host @-rule.
194454        * css/RuleSet.h:
194455        (RuleData):
194456        (WebCore::RuleData::increaseSpecificity):
194457        Added a new method to increase selector's specificity. This method is
194458        used to make @host @-rules' specificity larger than normal author
194459        rules' specificity.
194460        (RuleSet):
194461        * css/StyleResolver.cpp:
194462        (WebCore::makeRuleSet):
194463        (WebCore::StyleResolver::addHostRule):
194464        A wrapper method to invoke StyleScopeResolver::addHostRule. The method
194465        is used to make only StyleResolver know an implementation detail about
194466        class StyleScopeResolver.
194467        (WebCore::StyleResolver::appendAuthorStylesheets):
194468        Updated according to the RuleData's change.
194469        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
194470        A new method to find matched host rules when an element is given.
194471        This method invokes
194472        StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
194473        matched host rules.
194474        (WebCore):
194475        (WebCore::StyleResolver::matchHostRules):
194476        A new method to find matched host rules when an element is given.
194477        This method invokes StyleScopeResolver::matchHostRules to find
194478        matched host rules.
194479        (WebCore::StyleResolver::matchScopedAuthorRules):
194480        Modified to invoke matchHostRules.
194481        (WebCore::StyleResolver::locateSharedStyle):
194482        Disable sibling style cache if the given element is a shadow host and
194483        any @host @-rules are applied to the element.
194484        * css/StyleResolver.h:
194485        (WebCore::StyleResolver::ensureScopeResolver):
194486        If no scopeResolver is created, create and return the instance.
194487        If created, just return the instance.
194488        (StyleResolver):
194489        * css/StyleRule.cpp:
194490        (WebCore::StyleRuleBase::reportMemoryUsage):
194491        (WebCore::StyleRuleBase::destroy):
194492        (WebCore::StyleRuleBase::copy):
194493        (WebCore::StyleRuleBase::createCSSOMWrapper):
194494        (WebCore::StyleRuleHost::StyleRuleHost):
194495        Implemented class StyleRuleHost. The class is almost the same as
194496        StyleRuleBlock except type.
194497        (WebCore):
194498        * css/StyleRule.h:
194499        (WebCore::StyleRuleBase::isHostRule):
194500        (StyleRuleHost):
194501        (WebCore::StyleRuleHost::create):
194502        (WebCore::StyleRuleHost::copy):
194503        (WebCore):
194504        * css/StyleScopeResolver.cpp:
194505        (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
194506        A new method to create a new RuleSet for the given shadow root.
194507        (WebCore):
194508        (WebCore::StyleScopeResolver::atHostRuleSetFor):
194509        A new private inline method to obtain @host @-rules declared in
194510        the given shadow root.
194511        (WebCore::StyleScopeResolver::addHostRule):
194512        Added a new method to register @host @-rules with shadow roots.
194513        (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
194514        A new method to find whether any @host @-rules are applied to
194515        the given host element.
194516        (WebCore::StyleScopeResolver::matchHostRules):
194517        A new method to find matched rules for the given host element.
194518        (WebCore::StyleScopeResolver::reportMemoryUsage):
194519        * css/StyleScopeResolver.h:
194520        (WebCore):
194521        (StyleScopeResolver):
194522        * css/StyleSheetContents.cpp:
194523        (WebCore::childRulesHaveFailedOrCanceledSubresources):
194524
1945252012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
194526
194527        [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
194528        https://bugs.webkit.org/show_bug.cgi?id=100476
194529
194530        Reviewed by Kentaro Hara.
194531
194532        ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
194533        but the source file for that feature is omitted.
194534
194535        No new tests. Covered by existing tests.
194536
194537        * CMakeLists.txt:
194538
1945392012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
194540
194541        RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
194542        https://bugs.webkit.org/show_bug.cgi?id=99861
194543
194544        Reviewed by Ojan Vafai.
194545
194546        RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
194547        widths dirty / layout flag so that we would properly propagate the information to our containing table. This
194548        led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
194549        or else we would ignore the next layout hint on the <col> or <colgroup>.
194550
194551        Tests: fast/table/col-span-change-relayout.html
194552               fast/table/simplified-layout-table.html
194553
194554        * rendering/AutoTableLayout.cpp:
194555        (WebCore::AutoTableLayout::recalcColumn):
194556        * rendering/RenderTable.cpp:
194557        (WebCore::RenderTable::layout):
194558        Simplified the code now that we only need to iterate over the sections.
194559
194560        * rendering/FixedTableLayout.cpp:
194561        (WebCore::FixedTableLayout::calcWidthArray):
194562        Removed call to computePreferredLogicalWidths.
194563
194564        * rendering/RenderTableCol.cpp:
194565        (WebCore::RenderTableCol::styleDidChange):
194566        (WebCore::RenderTableCol::updateFromElement):
194567        Forward a layout hint to the table so that we properly recompute the cell's logical withs.
194568
194569        (WebCore::RenderTableCol::computePreferredLogicalWidths):
194570        (WebCore::RenderTableCol::layout):
194571        Change our implementations of those 2 methods to be no-ops, while enforcing that they are
194572        never called when it was possible.
194573
194574        (WebCore::RenderTableCol::propagateLayoutCueToTable):
194575        New helper function that forward any layout cue to the containing table, this works around
194576        us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
194577        invalidateContainerPreferredLogicalWidths.
194578
194579        * rendering/RenderTableCol.h:
194580        Made the function that we are not expected to be called private.
194581
1945822012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
194583
194584        Unreviewed, rolling out r132601.
194585        http://trac.webkit.org/changeset/132601
194586        https://bugs.webkit.org/show_bug.cgi?id=100494
194587
194588        It broke the Qt build (Requested by Ossy on #webkit).
194589
194590        * PlatformEfl.cmake:
194591        * platform/graphics/GraphicsContext3D.h:
194592        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
194593        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
194594        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
194595        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
194596        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
194597        (WebCore):
194598        * platform/graphics/efl/GraphicsContext3DPrivate.h:
194599        (GraphicsContext3DPrivate):
194600        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
194601        (WebCore::GraphicsContext3D::reshape):
194602        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
194603        (WebCore::OffScreenRootWindow::get):
194604        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
194605        (OffScreenRootWindow):
194606        (WebCore):
194607        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194608        (WebCore::GraphicsSurfacePrivate::createSurface):
194609        (WebCore::GraphicsSurfacePrivate::makeCurrent):
194610        (WebCore::GraphicsSurfacePrivate::doneCurrent):
194611        (WebCore::GraphicsSurfacePrivate::swapBuffers):
194612        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
194613        (GraphicsSurfacePrivate):
194614        (WebCore::resolveGLMethods):
194615
1946162012-10-26  Yury Semikhatsky  <yurys@chromium.org>
194617
194618        Memory instrumentation: do not report memory occupied by v8::String
194619        https://bugs.webkit.org/show_bug.cgi?id=100487
194620
194621        Reviewed by Alexander Pavlov.
194622
194623        Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
194624        string cache.
194625
194626        * bindings/v8/V8Binding.cpp:
194627        (WTF):
194628
1946292012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
194630
194631        [CSSRegions] Add support for auto-height regions with region-breaks
194632        https://bugs.webkit.org/show_bug.cgi?id=99952
194633
194634        Reviewed by David Hyatt.
194635
194636        This patch takes region breaks into account when computing the height for auto logical height regions.
194637        When a region break is encountered before/after an element from within a flow thread and we are in the layout
194638        phase in which we lay out the flow threads in regions unconstrained, we use the region break to
194639        compute the region override logical content height if the region break fits inside an auto logical height region.
194640        A region break inside an auto logical height region determines the region override logical content height, taking
194641        min/max height into account.
194642
194643        Tests: fast/regions/autoheight-allregions-nobreaks.html
194644               fast/regions/autoheight-allregions.html
194645               fast/regions/autoheight-breakafteralways-maxheight.html
194646               fast/regions/autoheight-breakbeforealways.html
194647               fast/regions/autoheight-firstregion-breakalways.html
194648               fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
194649               fast/regions/autoheight-lastregion-overflowauto.html
194650               fast/regions/autoheight-middleregion.html
194651               fast/regions/autoheight-secondregion-breakoutside.html
194652               fast/regions/autoheight-secondregion.html
194653               fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
194654               fast/regions/autoheight-singleregion-breakafteralways.html
194655               fast/regions/autoheight-singleregion-breakaftermargin.html
194656               fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
194657               fast/regions/autoheight-singleregion-breakbeforealways.html
194658               fast/regions/autoheight-singleregion-multiplebreaks.html
194659               fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
194660               fast/regions/autoheight-singleregion-overflowauto.html
194661
194662        * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
194663        try to use it to determine the override logical content height for auto logical height regions.
194664        (WebCore::RenderBlock::applyBeforeBreak):
194665        (WebCore::RenderBlock::applyAfterBreak):
194666        * rendering/RenderFlowThread.cpp:
194667        (WebCore::RenderFlowThread::layout):
194668        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
194669        Simulate a region break at the end of the flow thread content.
194670        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
194671        (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
194672        Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
194673        (WebCore::RenderFlowThread::addForcedRegionBreak):
194674        Extend the method to process region breaks. The method returns true if at least one auto logical height region
194675        has its override logical content height computed.        
194676        * rendering/RenderFlowThread.h:
194677        * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
194678        (WebCore::RenderRegion::pageLogicalHeight):
194679        (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
194680
1946812012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
194682
194683        [EFL][WK2] Enable WebGL
194684        https://bugs.webkit.org/show_bug.cgi?id=97652
194685
194686        Reviewed by Gyuyoung Kim.
194687
194688        Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
194689        Depends on GLX since Evas doesn't provide the necessary functionality.
194690
194691        No new tests. Covered by existing tests.
194692
194693        * PlatformEfl.cmake:
194694        * platform/graphics/GraphicsContext3D.h:
194695        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
194696        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
194697        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
194698        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
194699        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
194700        (WebCore):
194701        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
194702        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
194703        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
194704        * platform/graphics/efl/GraphicsContext3DPrivate.h:
194705        (GraphicsContext3DPrivate):
194706        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
194707        (WebCore::GraphicsContext3D::reshape):
194708        * platform/graphics/surfaces/efl: Added.
194709        * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
194710        (WebCore):
194711        (WebCore::OffScreenRootWindow::get):
194712        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
194713        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194714        (WebCore::GraphicsSurfacePrivate::createSurface):
194715        (WebCore::GraphicsSurfacePrivate::makeCurrent):
194716        (WebCore::GraphicsSurfacePrivate::doneCurrent):
194717        (WebCore::GraphicsSurfacePrivate::swapBuffers):
194718        (WebCore::GraphicsSurface::platformBeginPaint):
194719        (WebCore::GraphicsSurface::createReadOnlyImage):
194720        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
194721        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
194722        (WebCore):
194723        (OffScreenRootWindow):
194724        (WebCore::OffScreenRootWindow::OffScreenRootWindow):
194725        (GraphicsSurfacePrivate):
194726        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
194727        (WebCore::GraphicsSurfacePrivate::createPixmap):
194728        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
194729        (WebCore::GraphicsSurfacePrivate::display):
194730        (WebCore::GraphicsSurfacePrivate::glxPixmap):
194731        (WebCore::GraphicsSurfacePrivate::size):
194732        (WebCore::GraphicsSurfacePrivate::glContext):
194733        (WebCore::resolveGLMethods):
194734        * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
194735        (WebCore):
194736        (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
194737        (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
194738        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
194739        (WebCore::GraphicsSurfacePrivate::createSurface):
194740        (WebCore::GraphicsSurfacePrivate::makeCurrent):
194741        (WebCore::GraphicsSurfacePrivate::doneCurrent):
194742        (WebCore::GraphicsSurfacePrivate::swapBuffers):
194743
1947442012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
194745
194746        Add feature flags for CSS Device Adaptation
194747        https://bugs.webkit.org/show_bug.cgi?id=95960
194748
194749        Reviewed by Kenneth Rohde Christiansen.
194750
194751        * Configurations/FeatureDefines.xcconfig:
194752        * GNUmakefile.am:
194753        * GNUmakefile.features.am:
194754
1947552012-10-26  Li Yin  <li.yin@intel.com>
194756
194757        fast/forms/file/input-file-write-files.html should cover correct setting value
194758        https://bugs.webkit.org/show_bug.cgi?id=100085
194759
194760        Reviewed by Kentaro Hara.
194761
194762        From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
194763        On setting, if the new value is the empty string, it must empty the list of selected
194764        files; otherwise, it must throw an InvalidStateError exception.
194765
194766        Test: fast/forms/file/input-file-value.html
194767
194768        * html/HTMLInputElement.cpp:
194769        (WebCore::HTMLInputElement::setValue):
194770        (WebCore):
194771        * html/HTMLInputElement.h:
194772        (HTMLInputElement):
194773        * html/HTMLInputElement.idl:
194774
1947752012-10-26  Keishi Hattori  <keishi@webkit.org>
194776
194777        Refactor calendar picker to remove _x/_y from DaysTable
194778        https://bugs.webkit.org/show_bug.cgi?id=100460
194779
194780        Reviewed by Kent Tamura.
194781
194782        _x/_y properties keep the coordinates for the selection but when we add
194783        week and month picking capabilities, the selection can't be expressed as
194784        a set of coordinates. This change will remove it.
194785
194786        No new tests. Covered by calendar-picker-*.html tests.
194787
194788        * Resources/pagepopups/calendarPicker.js:
194789        (DaysTable): Removed _x/_y properties.
194790        (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
194791        (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
194792        (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
194793        (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
194794        (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
194795        (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
194796        (DaysTable.prototype._deselect): Deselects all selections.
194797        (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
194798        (DaysTable.prototype._handleMouseOut): Use _deselect.
194799        (DaysTable.prototype._handleKey): Lookup the selection position.
194800        (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
194801
1948022012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
194803
194804        FileReader abort case causes Chromium renderer crash
194805        https://bugs.webkit.org/show_bug.cgi?id=99142
194806
194807        Reviewed by Kentaro Hara.
194808
194809        Before dispatching load event, FileReader should check if it is
194810        in aborting.
194811
194812        Test: manually launch fast/files/file-reader-abort.html in Chromium
194813        browser and compare the result with
194814        fast/files/file-reader-abort-expected.txt.
194815
194816        * fileapi/FileReader.cpp:
194817        (WebCore::FileReader::didFinishLoading):
194818
1948192012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
194820
194821        Generate less repaint calls during subtree detaching
194822        https://bugs.webkit.org/show_bug.cgi?id=99741
194823
194824        Reviewed by Eric Seidel.
194825
194826        Following bug 98336, detach is now a subtree top-down operation. Because we
194827        track visual overflow from our children during layout for most cases, we can
194828        generate a repaint only on the subtree root.
194829
194830        On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
194831        26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
194832        it decreases the time by 35%. This is due to being the best case and we now generate
194833        only one repaint per detach phase.
194834
194835        Covered by existing pixels tests (including but not limited to repaint ones).
194836
194837        * rendering/RenderObject.cpp:
194838        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
194839        Changed the function not to be recursive anymore to generate one painting for
194840        our root only. Added a FIXME about using our RenderLayer for repainting to avoid
194841        the cost of computing our absolute repaint rectangle.
194842
194843        * rendering/RenderObjectChildList.cpp:
194844        (WebCore::RenderObjectChildList::removeChildNode):
194845        Removed the logic for repainting in the general case. However we still force a repaint
194846        if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
194847        objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
194848        are properly accounted for in our clipppedOverflowRectForRepaint).
194849
1948502012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
194851
194852        local(Helvetica) in src descriptor prevent fallback
194853        https://bugs.webkit.org/show_bug.cgi?id=100446
194854
194855        Reviewed by Dan Bernstein.
194856
194857        FontCache::getCachedFontData() has a mechanism that aliases a few pairs
194858        of font family names, so that if the family name specified in the font-family
194859        property is not available on the system, but the its alias is available,
194860        it will be used instead. This is appropriate for the font-family property,
194861        but not for font family names specified in the local() function of the src
194862        descriptor in a @font-face rule.
194863
194864        This patch disables the mechanism while checking src descriptor of @font-face.
194865
194866        No new tests. It's difficult to test the change because 'Helvetica' can
194867        be mapped any other font. For example, chromium DRT uses FontConfig to
194868        map Helvetica to Times New Roman. Other ports may map Helvetica to other
194869        fonts. We can't define the expected result.
194870
194871        * css/CSSFontFaceSource.cpp:
194872        (WebCore::CSSFontFaceSource::getFontData):
194873        Call fontCache()->getCachedFontData() with checkingAlternateName = true.
194874        This disables aliasing font family names in FontCache.
194875
1948762012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
194877
194878        Web Inspector: Doctype Audits panel code
194879        https://bugs.webkit.org/show_bug.cgi?id=100371
194880
194881        Reviewed by Alexander Pavlov.
194882
194883        This is a preparation step for ongoing refactoring.
194884        It is much easier to read doctyped code.
194885
194886        * inspector/front-end/AuditRules.js:
194887        (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
194888        Replaced "undefined" with "null"
194889        * inspector/front-end/AuditsPanel.js:
194890        (WebInspector.AuditCategory.prototype.callbackWrapper):
194891        Removed callback parameter indirection.        
194892        (WebInspector.AuditRuleResult.prototype.addFormatted):
194893        Converted private instance function to scoped function.
194894
1948952012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
194896
194897        [Qt]REGRESSION(r131428): cookies.db created on wrong place
194898        https://bugs.webkit.org/show_bug.cgi?id=99445
194899
194900        Reviewed by Simon Hausmann.
194901
194902        Added a slash to the path of cookies.db in CookieJarQt.cpp.
194903
194904        * platform/qt/CookieJarQt.cpp:
194905        (WebCore::SharedCookieJarQt::SharedCookieJarQt):
194906
1949072012-10-26  Adam Barth  <abarth@webkit.org>
194908
194909        Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
194910
194911        * bindings/v8/V8DOMWrapper.h:
194912        (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
194913
1949142012-10-26  Kent Tamura  <tkent@chromium.org>
194915
194916        [Chromium-Win] Support shortTimeFormat
194917        https://bugs.webkit.org/show_bug.cgi?id=100471
194918
194919        Reviewed by Kentaro Hara.
194920
194921        No new tests. Covered by fast/forms/time-multiple-fields/ and
194922        WebKit/chromium/tests/LocaleWinTest.
194923
194924        * platform/text/LocaleWin.cpp:
194925        (WebCore::LocaleWin::shortTimeFormat):
194926        Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
194927        from the format by LOCALE_STIMEFORMAT.
194928        * platform/text/LocaleWin.h:
194929        (LocaleWin): Declare m_timeFormatWithoutSeconds.
194930
1949312012-10-26  Adam Barth  <abarth@webkit.org>
194932
194933        Unreviewed. Update run-bindings-tests results after recent active DOM
194934        object changes.
194935
194936        * bindings/scripts/test/V8/V8TestInterface.cpp:
194937        (WebCore::V8TestInterface::constructorCallback):
194938        (WebCore::V8TestInterface::wrapSlow):
194939        * bindings/scripts/test/V8/V8TestInterface.h:
194940        (WebCore::V8TestInterface::wrap):
194941        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
194942        (WebCore::V8TestNamedConstructorConstructorCallback):
194943        (WebCore::V8TestNamedConstructor::wrapSlow):
194944        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
194945        (WebCore::V8TestNamedConstructor::wrap):
194946
1949472012-10-26  MORITA Hajime  <morrita@google.com>
194948
194949        [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
194950        https://bugs.webkit.org/show_bug.cgi?id=100462
194951
194952        Reviewed by Adam Barth.
194953
194954        Removed the no longer correct assertion statement.
194955
194956        No new tests. Covered by breaking tests.
194957
194958        * bindings/v8/V8DOMWrapper.cpp:
194959        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
194960
1949612012-10-25  Adam Barth  <abarth@webkit.org>
194962
194963        [V8] WorkerContextExecutionProxy should use ScopedPersistent
194964        https://bugs.webkit.org/show_bug.cgi?id=100443
194965
194966        Reviewed by Eric Seidel.
194967
194968        This class was manually re-implementing the ScopedPersistent pattern.
194969
194970        * bindings/v8/WorkerContextExecutionProxy.cpp:
194971        (WebCore::WorkerContextExecutionProxy::dispose):
194972        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
194973        (WebCore::WorkerContextExecutionProxy::evaluate):
194974        * bindings/v8/WorkerContextExecutionProxy.h:
194975        (WebCore::WorkerContextExecutionProxy::context):
194976        (WorkerContextExecutionProxy):
194977
1949782012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
194979
194980        A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
194981        https://bugs.webkit.org/show_bug.cgi?id=100347
194982
194983        Reviewed by Mark Lam and Filip Pizlo.
194984
194985        In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
194986        since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
194987
194988        No new test case, since no behaviour changed.
194989
194990        * bindings/js/JavaScriptCallFrame.cpp:
194991        (WebCore::JavaScriptCallFrame::evaluate):
194992
1949932012-10-25  Adam Barth  <abarth@webkit.org>
194994
194995        [V8] We can merge the wrapper maps for DOM objects and active DOM objects
194996        https://bugs.webkit.org/show_bug.cgi?id=100432
194997
194998        Reviewed by Eric Seidel.
194999
195000        Now that we use the same object to visit both DOM objects and active
195001        DOM objects, there's no reason to keep them in separate hash maps.
195002
195003        * bindings/scripts/CodeGeneratorV8.pm:
195004        (GetDomMapName):
195005        * bindings/v8/DOMDataStore.cpp:
195006        (WebCore::DOMDataStore::DOMDataStore):
195007        (WebCore::DOMDataStore::~DOMDataStore):
195008        (WebCore::DOMDataStore::reportMemoryUsage):
195009        * bindings/v8/DOMDataStore.h:
195010        (DOMDataStore):
195011        * bindings/v8/V8DOMMap.cpp:
195012        * bindings/v8/V8DOMMap.h:
195013        (NodeWrapperVisitor):
195014        (WebCore):
195015        * bindings/v8/V8DOMWrapper.h:
195016        (V8DOMWrapper):
195017        * bindings/v8/V8GCController.cpp:
195018        (WebCore::V8GCController::majorGCPrologue):
195019        * bindings/v8/custom/V8WebSocketCustom.cpp:
195020        (WebCore::V8WebSocket::constructorCallback):
195021        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
195022        (WebCore::V8XMLHttpRequest::constructorCallback):
195023
1950242012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
195025
195026        [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
195027        https://bugs.webkit.org/show_bug.cgi?id=100448
195028
195029        Reviewed by George Staikos.
195030
195031        Internally reviewed by Joe Mason.
195032
195033        We didn't check the persistent Credential Storage for Credentials when challenged by the server.
195034
195035        Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
195036
195037        * platform/network/blackberry/NetworkJob.cpp:
195038        (WebCore::NetworkJob::sendRequestWithCredentials):
195039
1950402012-10-25  Joshua Bell  <jsbell@chromium.org>
195041
195042        IndexedDB: Add histogram statistics for backing store errors
195043        https://bugs.webkit.org/show_bug.cgi?id=98465
195044
195045        Reviewed by Adam Barth.
195046
195047        Define a macro for consistent asserting (during development), logging, and recording
195048        internal backing store errors via histograms. Define specific histogram values to
195049        track issues with opening backing stores to gather stats on corruption.
195050
195051        No new tests - just the stats, ma'am, just the stats.
195052
195053        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
195054        (WebCore):
195055        (WebCore::setUpMetadata):
195056        (WebCore::IDBLevelDBBackingStore::open):
195057        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
195058        (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
195059        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
195060        (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
195061        (WebCore::deleteRange):
195062        (WebCore::IDBLevelDBBackingStore::getObjectStores):
195063        (WebCore::IDBLevelDBBackingStore::createObjectStore):
195064        (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
195065        (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
195066        (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
195067        (WebCore::IDBLevelDBBackingStore::getIndexes):
195068        (WebCore::IDBLevelDBBackingStore::createIndex):
195069        (WebCore::IDBLevelDBBackingStore::deleteIndex):
195070        (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
195071
1950722012-10-25  Adam Barth  <abarth@webkit.org>
195073
195074        [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
195075        https://bugs.webkit.org/show_bug.cgi?id=100430
195076
195077        Reviewed by Eric Seidel.
195078
195079        There's no reason for these visitors to be separate objects anymore.
195080
195081        * bindings/v8/V8GCController.cpp:
195082        (WebCore::ObjectVisitor::ObjectVisitor):
195083        (WebCore::ObjectVisitor::visitDOMWrapper):
195084        (WebCore::V8GCController::majorGCPrologue):
195085
1950862012-10-25  Tony Chang  <tony@chromium.org>
195087
195088        Remove unused static methods from DOMTimer.h
195089        https://bugs.webkit.org/show_bug.cgi?id=100427
195090
195091        Reviewed by Kenneth Russell.
195092
195093        Since these values got moved into Settings, these methods are no longer called.
195094
195095        No new tests, removing dead code.
195096
195097        * page/DOMTimer.h:
195098        (DOMTimer): Remove unused getters.
195099
1951002012-10-25  Leo Yang  <leoyang@rim.com>
195101
195102        [BlackBerry] Infinite redirect loop is not displayed to user
195103        https://bugs.webkit.org/show_bug.cgi?id=100420
195104
195105        Reviewed by George Staikos.
195106
195107        CNN.com is redirecting us infinitely with 302 http code and response body. We catch
195108        it my setting our extended error code as we defined. But we were not trying to notify
195109        error because we have received body. This was wrong. For extended http status code
195110        which is less than 0 we should display our own error page regardless there was data
195111        received from the server or not.
195112
195113        Tested by manually loading CNN.com.
195114
195115        * platform/network/blackberry/NetworkJob.cpp:
195116        (WebCore::NetworkJob::shouldNotifyClientFailed):
195117
1951182012-10-25  Nico Weber  <thakis@chromium.org>
195119
195120        Flip ImageOrientation coordinate system from lefthanded to righthanded
195121        https://bugs.webkit.org/show_bug.cgi?id=100414
195122
195123        Reviewed by Eric Seidel.
195124
195125        platform/graphics, noteably GraphicsContext uses a right-handed
195126        coordinate system (origin in the top left corner, x growing to the
195127        right, y to the bottom).  ImageOrientation was an outlier from
195128        and used a left-handed coordinate system.  This patch makes
195129        ImageOrientation match the rest of platform/graphics.
195130
195131        This is a pure refactoring and has no observable effects.
195132
195133        * platform/chromium/DragImageChromiumSkia.cpp:
195134        (WebCore::createDragImageFromImage):
195135        * platform/graphics/ImageOrientation.cpp:
195136        (WebCore::ImageOrientation::transformFromDefault):
195137        * platform/graphics/cg/GraphicsContextCG.cpp:
195138        (WebCore::GraphicsContext::drawNativeImage):
195139        * platform/graphics/skia/ImageSkia.cpp:
195140        (WebCore::BitmapImage::draw):
195141        * platform/mac/DragImageMac.mm:
195142        (WebCore::createDragImageFromImage):
195143        * rendering/RenderObject.cpp:
195144        (WebCore::RenderObject::shouldRespectImageOrientation):
195145
1951462012-10-25  Keishi Hattori  <keishi@webkit.org>
195147
195148        Hide popup while transitioning from the suggestion picker to the calendar picker
195149        https://bugs.webkit.org/show_bug.cgi?id=99537
195150
195151        Reviewed by Kent Tamura.
195152
195153        Right now you can see a squished calendar picker while transitioning
195154        from suggestion picker from calendar picker. This change will hide the
195155        popup before opening the calendar picker.
195156
195157        No new tests.
195158
195159        * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
195160        (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
195161        * Resources/pagepopups/suggestionPicker.js:
195162        (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
195163
1951642012-10-25  Anders Carlsson  <andersca@apple.com>
195165
195166        Fix build.
195167
195168        * page/mac/EventHandlerMac.mm:
195169        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
195170
1951712012-10-25  Anders Carlsson  <andersca@apple.com>
195172
195173        Remove feed and feeds URL scheme workarounds
195174        https://bugs.webkit.org/show_bug.cgi?id=100442
195175
195176        Reviewed by Dan Bernstein.
195177
195178        * dom/DocumentEventQueue.cpp:
195179        (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
195180        * page/mac/EventHandlerMac.mm:
195181        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
195182
1951832012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
195184
195185        Unreviewed, rolling out r132514.
195186        http://trac.webkit.org/changeset/132514
195187        https://bugs.webkit.org/show_bug.cgi?id=100440
195188
195189        "Broke chromium content_browsertests AccessibilityAriaMenu
195190        AccessibilityInputRange AccessibilityListMarkers" (Requested
195191        by scheib on #webkit).
195192
195193        * accessibility/AXObjectCache.cpp:
195194        (WebCore::AXObjectCache::getOrCreate):
195195        (WebCore::AXObjectCache::contentChanged):
195196        (WebCore::AXObjectCache::childrenChanged):
195197        (WebCore::AXObjectCache::handleAriaRoleChanged):
195198        * accessibility/AXObjectCache.h:
195199        (AXObjectCache):
195200        (WebCore::AXObjectCache::contentChanged):
195201        * accessibility/AccessibilityObject.cpp:
195202        (WebCore::AccessibilityObject::AccessibilityObject):
195203        * accessibility/AccessibilityObject.h:
195204        (WebCore::AccessibilityObject::contentChanged):
195205        (AccessibilityObject):
195206        * accessibility/AccessibilityRenderObject.cpp:
195207        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
195208        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
195209        (WebCore::AccessibilityRenderObject::contentChanged):
195210        * accessibility/AccessibilityRenderObject.h:
195211        (AccessibilityRenderObject):
195212        * accessibility/AccessibilityScrollView.cpp:
195213        (WebCore::AccessibilityScrollView::isAttachment):
195214        (WebCore::AccessibilityScrollView::widgetForAttachmentView):
195215        (WebCore::AccessibilityScrollView::updateScrollbars):
195216        (WebCore::AccessibilityScrollView::webAreaObject):
195217        (WebCore::AccessibilityScrollView::elementRect):
195218        (WebCore::AccessibilityScrollView::documentFrameView):
195219        (WebCore::AccessibilityScrollView::parentObject):
195220        (WebCore::AccessibilityScrollView::parentObjectIfExists):
195221        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
195222        (WebCore::AccessibilityScrollView::scrollTo):
195223        * accessibility/AccessibilityScrollView.h:
195224        (WebCore::AccessibilityScrollView::scrollView):
195225        (AccessibilityScrollView):
195226        * accessibility/AccessibilityTable.cpp:
195227        (WebCore::AccessibilityTable::isDataTable):
195228        * accessibility/chromium/AXObjectCacheChromium.cpp:
195229        (WebCore::AXObjectCache::postPlatformNotification):
195230        * dom/Element.cpp:
195231        (WebCore::Element::attributeChanged):
195232        * rendering/RenderBlock.cpp:
195233        (WebCore::RenderBlock::deleteLineBoxTree):
195234        (WebCore::RenderBlock::createAndAppendRootInlineBox):
195235        * rendering/RenderObject.cpp:
195236        (WebCore::RenderObject::styleWillChange):
195237        * rendering/RenderText.cpp:
195238        (WebCore::RenderText::setText):
195239
1952402012-10-25  Dan Bernstein  <mitz@apple.com>
195241
195242        <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
195243        https://bugs.webkit.org/show_bug.cgi?id=100413
195244
195245        Reviewed by Anders Carlsson.
195246
195247        RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
195248        Sped up the Core Graphics implementation of this function considerably by removing an
195249        unnecessary call to CGContextGetClipBoundingBox.
195250
195251        * platform/graphics/cg/GraphicsContextCG.cpp:
195252        (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
195253        box of the current clip.
195254
1952552012-10-25  Tim Horton  <timothy_horton@apple.com>
195256
195257        REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
195258        https://bugs.webkit.org/show_bug.cgi?id=100433
195259        <rdar://problem/12575582>
195260
195261        Reviewed by Simon Fraser.
195262
195263        Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
195264        we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
195265        on the main thread will short-circuit and end up only updating the GraphicsLayer's
195266        notion of its current position, but never synchronizing that to the layer itself.
195267
195268        No new tests, as this is currently untestable.
195269
195270        * page/scrolling/ScrollingCoordinator.cpp:
195271        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
195272
1952732012-10-25  Simon Fraser  <simon.fraser@apple.com>
195274
195275        Tiled layers are missing content on zooming
195276        https://bugs.webkit.org/show_bug.cgi?id=100422
195277
195278        Reviewed by Beth Dakin.
195279
195280        Tiled layers using TileCaches were missing content after
195281        zooming. TileCache was confused in the presence of scaling;
195282        it unapplies the scale on the layer above the tiles (so the tiles
195283        live in screen space), and computed the tile coverage rect
195284        in these tile coordinates. This worked for the page tile cache,
195285        because its visibleRect was sent in pre-scaled. However, for
195286        tiled layer TileCaches this was wrong.
195287        
195288        Fix by scaling the tile coverage rect by m_scale before
195289        using it to compute which tiles to throw away and bring in.
195290        
195291        To fix the problem of the visibleRect being pre-scaled
195292        for the page tile cache, remove the setting of the visibleRect
195293        in RenderLayerCompositor::frameViewDidScroll(), and rely on 
195294        GraphicsLayerCA::updateVisibleRect() which computes the
195295        visible rect in the correct, layer coordinates.
195296
195297        Test: compositing/tiling/tile-cache-zoomed.html
195298
195299        * platform/graphics/ca/GraphicsLayerCA.cpp:
195300        (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
195301        for all tile cache layers, not just tiled layer ones, but only do
195302        the visible rect adjustment for those that are not the page tile cache.
195303        * platform/graphics/ca/mac/TileCache.mm:
195304        (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
195305        which is scaled to be in the same coordinate space as the tile grid.
195306        * rendering/RenderLayerCompositor.cpp:
195307        (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
195308        that sets the setVisibleRect() on the TiledBacking.
195309
1953102012-10-25  Adam Barth  <abarth@webkit.org>
195311
195312        [V8] ActiveDOMNodes no longer require a separate wrapper map
195313        https://bugs.webkit.org/show_bug.cgi?id=100352
195314
195315        Reviewed by Eric Seidel.
195316
195317        There is no longer any reason to keep a separate DOM wrapper map for
195318        active DOM nodes. We can simply store them in the normal DOM node
195319        wrapper map (which is more efficient because it doesn't use a HashMap).
195320
195321        * bindings/scripts/CodeGeneratorV8.pm:
195322        (GetDomMapName):
195323        * bindings/v8/DOMDataStore.cpp:
195324        (WebCore::DOMDataStore::DOMDataStore):
195325        (WebCore::DOMDataStore::~DOMDataStore):
195326        (WebCore::DOMDataStore::reportMemoryUsage):
195327        * bindings/v8/DOMDataStore.h:
195328        (DOMDataStore):
195329        * bindings/v8/IntrusiveDOMWrapperMap.h:
195330        * bindings/v8/V8DOMMap.cpp:
195331        * bindings/v8/V8DOMMap.h:
195332        (WebCore):
195333        * bindings/v8/V8DOMWrapper.cpp:
195334        * bindings/v8/V8DOMWrapper.h:
195335        (V8DOMWrapper):
195336        (WebCore::V8DOMWrapper::getCachedWrapper):
195337
1953382012-10-25  Tony Chang  <tony@chromium.org>
195339
195340        Unreviewed, fix the build on Mac.
195341
195342        Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
195343        Instead, put the implementation in the cpp file.
195344
195345        * page/Settings.cpp:
195346        (WebCore::Settings::defaultMinDOMTimerInterval):
195347        (WebCore):
195348        (WebCore::Settings::defaultDOMTimerAlignmentInterval):
195349        * page/Settings.h:
195350        (Settings):
195351
1953522012-10-25  Tony Chang  <tony@chromium.org>
195353
195354        Move default DOM Timer values into Settings
195355        https://bugs.webkit.org/show_bug.cgi?id=100405
195356
195357        Reviewed by Kenneth Russell.
195358
195359        Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
195360        the Settings object. This is more consistent with other global settings and allows us to remove
195361        the setters on the DOMTimer object.
195362
195363        No new tests, this is a refactor.
195364
195365        * page/DOMTimer.cpp: Remove globals.
195366        * page/DOMTimer.h:
195367        (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
195368        (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
195369        (DOMTimer): Remove setters.
195370        * page/Settings.cpp:
195371        (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
195372        (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
195373        * page/Settings.h:
195374        (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
195375        (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
195376        (Settings): Add globals.
195377
1953782012-10-25  Simon Fraser  <simon.fraser@apple.com>
195379
195380        Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
195381        https://bugs.webkit.org/show_bug.cgi?id=100416
195382
195383        Reviewed by Beth Dakin.
195384
195385        The tileCoverageRect is computed in "tile" coordinates, which don't match
195386        the visibleRect coordinates. It's more useful when testing to see the
195387        tile coverage relative to the view bounds, so unapply the scale whem
195388        reporting tile coverage in tests.
195389
195390        Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
195391               platform/mac/tiled-drawing/tiled-drawing-zoom.html
195392
195393        * platform/graphics/ca/mac/TileCache.h:
195394        * platform/graphics/ca/mac/TileCache.mm:
195395        (WebCore::TileCache::tileCoverageRect):
195396
1953972012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
195398
195399        Unreviewed, rolling out r132269.
195400        http://trac.webkit.org/changeset/132269
195401        https://bugs.webkit.org/show_bug.cgi?id=100412
195402
195403        "Speculative rollout of r132269 in hopes of fixing a
195404        mysterious recalcStyle crasher" (Requested by eseidel on
195405        #webkit).
195406
195407        * rendering/RenderBlock.cpp:
195408        (WebCore::RenderBlock::updateFirstLetter):
195409        * rendering/RenderListBox.h:
195410        * rendering/RenderObjectChildList.cpp:
195411        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
195412
1954132012-10-25  Stephen White  <senorblanco@chromium.org>
195414
195415        Change ReferenceFilterOperations to reference (own) the data passed to
195416        them.
195417        https://bugs.webkit.org/show_bug.cgi?id=97715
195418
195419        Reviewed by Nate Chapin.
195420
195421        Covered by css3/filters/reference-filter-update-after-remove.html
195422
195423        * css/CachedSVGDocumentReference.h: Added.
195424        (CachedSVGDocumentReference):
195425        New class which holds a CachedResourceHandle<CachedSVGDocument>, but
195426        can be placed in ReferenceFilterOperation's Data.  It also calls
195427        addClient() / removeClient(), in order to keep the CachedSVGDocument
195428        alive until the FilterEffectRenderer can get it.
195429        (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
195430        (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
195431        (WebCore::CachedSVGDocumentReference::document):
195432        Accessor for the underlying document.
195433        * css/StyleResolver.cpp:
195434        (WebCore::StyleResolver::loadPendingSVGDocuments):
195435        Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
195436        transfer ownership to the ReferenceFilterOperation.
195437        (WebCore::StyleResolver::createFilterOperations):
195438        Same as above.
195439        * platform/graphics/filters/FilterOperation.h:
195440        (Data):
195441        New base class for generic data which can be deleted polymorphically.
195442        (WebCore::FilterOperation::ReferenceFilterOperation::data):
195443        (WebCore::FilterOperation::ReferenceFilterOperation::setData):
195444        Use the above-mentioned Data class, instead of a void *.
195445        (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
195446        Don't initialize data to null; OwnPtr will do that for us.
195447        * rendering/FilterEffectRenderer.cpp:
195448        (WebCore::FilterEffectRenderer::buildReferenceFilter):
195449        Extract the cached SVG document from the reference data.
195450        * rendering/RenderLayerFilterInfo.cpp:
195451        (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
195452        Extract the cached SVG document from the reference data.
195453
1954542012-10-25  Simon Fraser  <simon.fraser@apple.com>
195455
195456        Incorrect tile size in the slow scrolling case
195457        https://bugs.webkit.org/show_bug.cgi?id=100411
195458
195459        Reviewed by Beth Dakin.
195460
195461        If we're in slow scrolling mode, we don't want to inflate the
195462        coverage rect based on scrollability. This ensures that the few
195463        big tiles we create have the correct size.
195464
195465        * platform/graphics/ca/mac/TileCache.mm:
195466        (WebCore::TileCache::computeTileCoverageRect):
195467
1954682012-10-25  Nico Weber  <thakis@chromium.org>
195469
195470        Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
195471        https://bugs.webkit.org/show_bug.cgi?id=100401
195472
195473        Reviewed by Eric Seidel.
195474
195475        This is an alternative fix for the regression caused by r132384 / bug
195476        100179. The bug exists because different pieces of code didn't agree
195477        which space the transformation returned by ImageOrientation was in.
195478
195479        r132384 moved it from CG coordinates to skia coordinates, but didn't
195480        do it completetely. This CL reverts this part of r132384 so that the
195481        transformation is in CG coordinates again, and adapts the skia code to
195482        work in that space.
195483
195484        Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
195485        make the cg code work with the transform in skia coordinates.
195486
195487        Covered by fast/images/exif-orientation.html
195488
195489        * platform/chromium/DragImageChromiumSkia.cpp:
195490        (WebCore::createDragImageFromImage):
195491        * platform/graphics/ImageOrientation.cpp:
195492        (WebCore::ImageOrientation::transformFromDefault):
195493        * platform/graphics/ImageOrientation.h:
195494        (WebCore):
195495        (WebCore::ImageOrientation::usesWidthAsHeight):
195496        (WebCore::ImageOrientation::fromEXIFValue):
195497        (ImageOrientation):
195498        * platform/graphics/cg/GraphicsContextCG.cpp:
195499        (WebCore::GraphicsContext::drawNativeImage):
195500        * platform/graphics/skia/ImageSkia.cpp:
195501        (WebCore::BitmapImage::draw):
195502        * platform/mac/DragImageMac.mm:
195503        (WebCore::createDragImageFromImage):
195504        * rendering/RenderObject.cpp:
195505        (WebCore::RenderObject::shouldRespectImageOrientation):
195506
1955072012-10-25  Simon Fraser  <simon.fraser@apple.com>
195508
195509        Log the tile cache tile size in test output
195510        https://bugs.webkit.org/show_bug.cgi?id=100409
195511
195512        Reviewed by Beth Dakin.
195513
195514        When dumping tile cache information in tests, also dump the tile size.
195515
195516        * platform/graphics/TiledBacking.h:
195517        * platform/graphics/ca/GraphicsLayerCA.cpp:
195518        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
195519        * platform/graphics/ca/mac/TileCache.h:
195520
1955212012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
195522
195523        do not multiply/demultiply colors when alpha is 255
195524        https://bugs.webkit.org/show_bug.cgi?id=89246
195525
195526        Reviewed by Kenneth Rohde Christiansen.
195527
195528        Do not use colorFromPremultipliedARGB in getImageData nor
195529        premultipliedARGBFromColor in putByteArray. Avoiding object creation
195530        and function call make canvas.getImageData about 10% faster and
195531        canvas.putImageData about 30% faster.
195532
195533        Also, we avoid multiplication/demultiplication computation when alpha
195534        is 255. Result is the same, but when there is no transparency,
195535        canvas.getImageData is about 4x faster, and canvas.putImageData is
195536        about 2x faster.
195537
195538        No new tests. No change in behavior.
195539
195540        * platform/graphics/cairo/ImageBufferCairo.cpp:
195541        (WebCore::getImageData):
195542        (WebCore::ImageBuffer::putByteArray):
195543
1955442012-10-25  Nate Chapin  <japhet@chromium.org>
195545
195546        Add a main resource type to the memory cache
195547        https://bugs.webkit.org/show_bug.cgi?id=99864
195548
195549        Reviewed by Adam Barth.
195550
195551        No new tests, no functionality change.
195552
195553        * inspector/InspectorPageAgent.cpp:
195554        (WebCore::hasTextContent):
195555        (WebCore::InspectorPageAgent::cachedResourceType):
195556        * loader/SubresourceLoader.cpp:
195557        (WebCore::SubresourceLoader::willSendRequest):
195558        (WebCore::SubresourceLoader::didReceiveResponse):
195559        (WebCore::SubresourceLoader::didFail):
195560        * loader/cache/CachedRawResource.cpp:
195561        (WebCore::CachedRawResource::CachedRawResource):
195562        (WebCore::CachedRawResource::addAdditionalRequestHeaders):
195563        (WebCore):
195564        (WebCore::CachedRawResource::setShouldBufferData):
195565        (WebCore::CachedRawResource::loader):
195566        (WebCore::CachedRawResource::clear):
195567        * loader/cache/CachedRawResource.h:
195568        (WebCore):
195569        (CachedRawResource):
195570        * loader/cache/CachedResource.cpp:
195571        (WebCore::defaultPriorityForResourceType):
195572        (WebCore::cachedResourceTypeToTargetType):
195573        (WebCore::CachedResource::updateResourceRequest):
195574        (WebCore):
195575        * loader/cache/CachedResource.h:
195576        (WebCore::CachedResource::setResourceError):
195577        (WebCore::CachedResource::resourceError):
195578        (CachedResource):
195579        (WebCore::CachedResource::ignoreForRequestCount):
195580        * loader/cache/CachedResourceLoader.cpp:
195581        (WebCore::createResource):
195582        (WebCore::CachedResourceLoader::requestRawResource):
195583        (WebCore::CachedResourceLoader::checkInsecureContent):
195584        (WebCore::CachedResourceLoader::canRequest):
195585        (WebCore::CachedResourceLoader::determineRevalidationPolicy):
195586        * loader/cache/CachedResourceLoader.h:
195587        (CachedResourceLoader):
195588        * platform/network/ResourceLoadPriority.h:
195589        * platform/network/cf/ResourceRequestCFNet.h:
195590        (WebCore::toResourceLoadPriority):
195591        (WebCore::toHTTPPipeliningPriority):
195592
1955932012-10-25  Ojan Vafai  <ojan@chromium.org>
195594
195595        [V8] Add histograms to measure V8 work done during window close and navigation
195596        https://bugs.webkit.org/show_bug.cgi?id=100358
195597
195598        Reviewed by Adam Barth.
195599
195600        * bindings/v8/ScriptController.cpp:
195601        (WebCore::ScriptController::clearForClose):
195602        (WebCore::ScriptController::clearWindowShell):
195603
1956042012-10-25  Antti Koivisto  <antti@apple.com>
195605
195606        Avoid unnecessary style recalcs on id attribute mutation.
195607        https://bugs.webkit.org/show_bug.cgi?id=100395
195608
195609        Reviewed by Andreas Kling.
195610
195611        There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
195612        mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
195613        
195614        Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
195615
195616        * css/StyleResolver.cpp:
195617        (WebCore::StyleResolver::hasSelectorForId):
195618        (WebCore):
195619        * css/StyleResolver.h:
195620        * dom/Element.cpp:
195621        (WebCore::makeIdForStyleResolution):
195622        (WebCore):
195623        (WebCore::Element::attributeChanged):
195624
1956252012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
195626
195627        AX: Notification should be sent when accessibilityIsIgnored changes
195628        https://bugs.webkit.org/show_bug.cgi?id=99547
195629
195630        Reviewed by Chris Fleizach.
195631
195632        Adds a new flag in AccessibilityObject that keeps track of the most recent
195633        value of accessibilityIsIgnored(). After certain events such as an ARIA
195634        attribute change or content change, checks the new value of
195635        accessibilityIsIgnored() and posts a "children changed" notification on the
195636        parent node if it changed, making sure the parent recomputes its vector of
195637        (unignored) children.
195638
195639        Also moves handling of attribute changes to AXObjectCache, and sends
195640        notifications for some attribute changes that were previously silent. On
195641        Chromium, all changes to an accessibility object's attributes should
195642        result in some notification.
195643
195644        Some tests would have broken because an AccessibilityScrollView was created
195645        and holding a reference to a ScrollView for an iframe after it was deleted,
195646        so this change switches AccessibilityScrollView to hold a weak reference
195647        to ScrollView instead.
195648
195649        Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
195650               platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
195651               platform/chromium/accessibility/text-change-notification.html
195652
195653        * accessibility/AXObjectCache.cpp:
195654        (WebCore::AXObjectCache::focusedUIElementForPage):
195655        (WebCore::AXObjectCache::getOrCreate):
195656        (WebCore::AXObjectCache::textChanged):
195657        (WebCore):
195658        (WebCore::AXObjectCache::childrenChanged):
195659        (WebCore::AXObjectCache::handleAriaRoleChanged):
195660        (WebCore::AXObjectCache::handleAttributeChanged):
195661        (WebCore::AXObjectCache::labelChanged):
195662        (WebCore::AXObjectCache::recomputeIsIgnored):
195663        * accessibility/AXObjectCache.h:
195664        (AXObjectCache):
195665        (WebCore::AXObjectCache::childrenChanged):
195666        (WebCore::AXObjectCache::textChanged):
195667        (WebCore::AXObjectCache::handleAttributeChanged):
195668        (WebCore::AXObjectCache::recomputeIsIgnored):
195669        * accessibility/AccessibilityNodeObject.cpp:
195670        (WebCore::AccessibilityNodeObject::insertChild):
195671        * accessibility/AccessibilityObject.cpp:
195672        (WebCore::AccessibilityObject::AccessibilityObject):
195673        (WebCore::AccessibilityObject::cachedIsIgnoredValue):
195674        (WebCore):
195675        (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
195676        (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
195677        * accessibility/AccessibilityObject.h:
195678        (WebCore::AccessibilityObject::textChanged):
195679        (AccessibilityObject):
195680        * accessibility/AccessibilityRenderObject.cpp:
195681        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
195682        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
195683        (WebCore::AccessibilityRenderObject::textChanged):
195684        (WebCore::AccessibilityRenderObject::addHiddenChildren):
195685        (WebCore::AccessibilityRenderObject::addChildren):
195686        * accessibility/AccessibilityRenderObject.h:
195687        (AccessibilityRenderObject):
195688        * accessibility/AccessibilityScrollView.cpp:
195689        (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
195690        (WebCore):
195691        (WebCore::AccessibilityScrollView::detach):
195692        (WebCore::AccessibilityScrollView::isAttachment):
195693        (WebCore::AccessibilityScrollView::widgetForAttachmentView):
195694        (WebCore::AccessibilityScrollView::updateScrollbars):
195695        (WebCore::AccessibilityScrollView::webAreaObject):
195696        (WebCore::AccessibilityScrollView::elementRect):
195697        (WebCore::AccessibilityScrollView::documentFrameView):
195698        (WebCore::AccessibilityScrollView::parentObject):
195699        (WebCore::AccessibilityScrollView::parentObjectIfExists):
195700        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
195701        (WebCore::AccessibilityScrollView::scrollTo):
195702        * accessibility/AccessibilityScrollView.h:
195703        (WebCore::AccessibilityScrollView::scrollView):
195704        (AccessibilityScrollView):
195705        * accessibility/AccessibilityTable.cpp:
195706        (WebCore::AccessibilityTable::isDataTable):
195707        * accessibility/chromium/AXObjectCacheChromium.cpp:
195708        (WebCore::AXObjectCache::postPlatformNotification):
195709        * dom/Element.cpp:
195710        (WebCore::Element::attributeChanged):
195711        * rendering/RenderBlock.cpp:
195712        (WebCore::RenderBlock::deleteLineBoxTree):
195713        (WebCore::RenderBlock::createAndAppendRootInlineBox):
195714        * rendering/RenderObject.cpp:
195715        (WebCore::RenderObject::styleWillChange):
195716        * rendering/RenderText.cpp:
195717        (WebCore::RenderText::setText):
195718
1957192012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
195720
195721        Conditionalize XHR timeout support
195722        https://bugs.webkit.org/show_bug.cgi?id=100356
195723
195724        Reviewed by Adam Barth.
195725
195726        Adding feature for XHR_TIMEOUT to disable it on ports that don't have
195727        network backend support for setTimeoutInterval.
195728
195729        No new tests, covered by http/tests/xmlhttprequest/timeout/*
195730
195731        * Configurations/FeatureDefines.xcconfig: Default ON on mac.
195732        * GNUmakefile.am:
195733        * GNUmakefile.features.am:
195734          Autotools support for the flag.
195735        * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
195736        (WebCore::XMLHttpRequest::XMLHttpRequest):
195737        (WebCore):
195738        (WebCore::XMLHttpRequest::open):
195739        (WebCore::XMLHttpRequest::createRequest):
195740        (WebCore::XMLHttpRequest::didFail):
195741        * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
195742        (XMLHttpRequest):
195743        * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
195744
1957452012-10-25  Tom Sepez  <tsepez@chromium.org>
195746
195747        XSSAuditor must replace form action with about:blank when reflected action detected.
195748        https://bugs.webkit.org/show_bug.cgi?id=100280
195749
195750        Reviewed by Daniel Bates.
195751
195752        Changes empty string form-action replacement to about:blank.
195753        Existing form-action.html test modified to check this case.
195754        
195755        * html/parser/XSSAuditor.cpp:
195756        (WebCore::XSSAuditor::filterFormToken):
195757
1957582012-10-25  Kevin Ellis  <kevers@chromium.org>
195759
195760        Touch adjustment snaps to wrong target at a plugin boundary.
195761        https://bugs.webkit.org/show_bug.cgi?id=99938
195762
195763        Reviewed by Antonio Gomes.
195764
195765        Inidcate that an <embed> element can respond to
195766        mouse click events, since mouse events are forwarded
195767        to the plugin.  Fixes touch adjustment at a plugin
195768        boundary.  Prior to the patch a clickable element 
195769        adjacent to the plugin would capture synthetic mouse
195770        events from tap gestures that spanned the plugin
195771        boundary.
195772
195773        Test: touchadjustment/plugin.html
195774
195775        * html/HTMLEmbedElement.cpp:
195776        (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
195777        (WebCore):
195778        * html/HTMLEmbedElement.h:
195779
1957802012-10-25  Ojan Vafai  <ojan@chromium.org>
195781
195782        Get rid of ScriptController::clearForNavigation
195783        https://bugs.webkit.org/show_bug.cgi?id=100390
195784
195785        Reviewed by Adam Barth.
195786
195787        Get rid of clearForNavigation and change resetIsolatedWorlds
195788        to reset so that it can also do the hintForCollectGarbage call.
195789        No new tests. No behavior change.
195790
195791        * bindings/v8/ScriptController.cpp:
195792        (WebCore::ScriptController::reset):
195793        (WebCore::ScriptController::clearForClose):
195794        (WebCore::ScriptController::clearWindowShell):
195795        * bindings/v8/ScriptController.h:
195796        (ScriptController):
195797
1957982012-10-25  Simon Fraser  <simon.fraser@apple.com>
195799
195800        r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
195801        https://bugs.webkit.org/show_bug.cgi?id=100323
195802
195803        Reviewed by Anders Carlsson.
195804
195805        r132427 assumed that TileCaches were only used for the page, and changed the tile
195806        size behavior of all non-page TileCaches.
195807        
195808        Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
195809        affects the tile size behavior.
195810        
195811        Consolidated the two places that set TileCoverage into one, and in the process
195812        reduced FrameView's direct communication with TiledBacking.
195813
195814        No new tests because we can't test tile size via tests.
195815
195816        * page/FrameView.cpp:
195817        (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
195818        call setIsInWindow() on the main page tile cache.
195819        (WebCore::FrameView::willMoveOffscreen): Ditto.
195820        (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
195821        the TiledBacking that it should do stuff, just tell the compositor that
195822        layout happened.
195823        * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
195824        * platform/graphics/ca/mac/TileCache.mm:
195825        (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
195826        if the CoverageForSlowScrolling flag is set.
195827        * rendering/RenderLayerBacking.cpp:
195828        (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
195829        is equivalent to renderer()->isRenderView() and clearer.
195830        (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
195831        It would be nice to move the rest of this TiledBacking code from here somehow.
195832        (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
195833        flags, taking into account horizontal and vertical scrollability independently,
195834        and whether we're in slow scrolling mode.
195835        * rendering/RenderLayerBacking.h:
195836        (RenderLayerBacking):
195837        * rendering/RenderLayerCompositor.cpp:
195838        (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
195839        tiled backing update it's coverage flags.
195840        (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
195841        (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
195842        (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
195843        * rendering/RenderLayerCompositor.h:
195844        (RenderLayerCompositor):
195845
1958462012-10-25  Elliott Sprehn  <esprehn@chromium.org>
195847
195848        Everything that sets RenderObject::m_style should go through setStyleInternal
195849        https://bugs.webkit.org/show_bug.cgi?id=100338
195850
195851        Reviewed by Ojan Vafai.
195852
195853        Whenever we set m_style in RenderObject go through setStyleInternal and make
195854        it inline. This gives a common place to put printfs and makes the code cleaner.
195855
195856        No new tests, just a refactor.
195857
195858        * rendering/RenderObject.cpp:
195859        (WebCore::RenderObject::createObject):
195860        (WebCore::RenderObject::setStyle):
195861        * rendering/RenderObject.h:
195862        (WebCore::RenderObject::setStyleInternal):
195863
1958642012-10-25  Brady Eidson  <beidson@apple.com>
195865
195866        Allow LoaderStrategy to override the ResourceLoadScheduler
195867        https://bugs.webkit.org/show_bug.cgi?id=100355
195868
195869        Reviewed by Anders Carlsson.
195870
195871        Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
195872        Add a default implementation that just returns the current ResourceLoadScheduler.
195873
195874        No new tests (No behavior change).
195875
195876        Project file stuff:
195877        * CMakeLists.txt:
195878        * GNUmakefile.list.am:
195879        * Target.pri:
195880        * WebCore.exp.in:
195881        * WebCore.gypi:
195882        * WebCore.vcproj/WebCore.vcproj:
195883        * WebCore.xcodeproj/project.pbxproj:
195884
195885        "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
195886        * loader/ResourceLoadScheduler.cpp:
195887        (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
195888        * loader/ResourceLoadScheduler.h:
195889        (ResourceLoadScheduler):
195890
195891        Add the new method plus a default implementation:
195892         * loader/LoaderStrategy.cpp: 
195893        (WebCore::LoaderStrategy::resourceLoadScheduler):
195894        * loader/LoaderStrategy.h:
195895
195896        When strategies are enabled, use the LoaderStrategy for this:
195897        * dom/ContainerNode.cpp:
195898        (WebCore::ContainerNode::suspendPostAttachCallbacks):
195899        (WebCore::ContainerNode::resumePostAttachCallbacks):
195900
195901        * loader/MainResourceLoader.cpp:
195902        (WebCore::MainResourceLoader::loadNow):
195903
195904        * loader/ResourceLoader.cpp:
195905        (WebCore::ResourceLoader::releaseResources):
195906        (WebCore::ResourceLoader::willSendRequest):
195907
195908        * loader/cache/CachedResource.cpp:
195909        (WebCore::CachedResource::load):
195910
195911        * loader/cache/CachedResourceLoader.cpp:
195912        (WebCore::CachedResourceLoader::performPostLoadActions):
195913
1959142012-10-25  Yury Semikhatsky  <yurys@chromium.org>
195915
195916        Web Inspector: inspector tests failing after r132454
195917        https://bugs.webkit.org/show_bug.cgi?id=100381
195918
195919        Reviewed by Pavel Feldman.
195920
195921        Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
195922        otherwise no actual pointer is reported which breaks instrumentation.
195923
195924        * bindings/v8/IntrusiveDOMWrapperMap.h:
195925
1959262012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
195927
195928        Init timeout flag in ResourceErrorCF
195929        https://bugs.webkit.org/show_bug.cgi?id=100349
195930
195931        Reviewed by Alexey Proskuryakov.
195932
195933        Initialize the timeout property to true if the network error was a timeout error.
195934        This is a speculative fix for the XHR timeout test cases failing on Apple Win -
195935        I can't verify this on a local machine.
195936
195937        No new tests, covered by
195938        LayoutTests/http/tests/xmlhttprequest/timeout/*
195939
195940        * platform/network/cf/ResourceErrorCF.cpp:
195941        (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
195942
1959432012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
195944
195945        'resolution' MQ: Printing should use use high resolution images when available
195946        https://bugs.webkit.org/show_bug.cgi?id=100382
195947
195948        Reviewed by Antti Koivisto.
195949
195950        Special case print to not use the dpi of the screen, but one of 300.
195951
195952        Updated the resolution media query test to cover this.
195953
195954        * css/MediaQueryEvaluator.cpp:
195955        (WebCore::resolutionMediaFeatureEval): Update compared decimal points
195956        to three, due to 300 / 96 being equal to 3.125.
195957
1959582012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
195959
195960        [chromium] External FileSystem should use the root path returned by requestFileSystem
195961        https://bugs.webkit.org/show_bug.cgi?id=100372
195962
195963        Reviewed by Kentaro Hara.
195964
195965        External FileSystem should use the root path returned by
195966        requestFileSystem as other type is doing. Current implementation
195967        completely ignore the returned path.
195968
195969        New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
195970
195971        * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
195972        (WebCore::DOMFileSystemBase::createFileSystemURL):
195973
1959742012-10-25  Kevin Ellis  <kevers@chromium.org>
195975
195976        Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
195977        https://bugs.webkit.org/show_bug.cgi?id=97576
195978
195979        Reviewed by Antonio Gomes.
195980
195981        Consolidate touch adjustment candidates that are
195982        editable.  Adjustment becomes coarse being based
195983        on the bounds of the outermost editable element.
195984        This fix allows tap positioning of the text caret
195985        on a blank line immediately above or below another
195986        element.
195987
195988        Test: touchadjustment/editable-content.html
195989
195990        * page/TouchAdjustment.cpp:
195991        (WebCore::TouchAdjustment::compileSubtargetList):
195992        (WebCore::TouchAdjustment::hybridDistanceFunction):
195993
1959942012-10-25  Yury Semikhatsky  <yurys@chromium.org>
195995
195996        Memory instrumentation: add reportMemoryUsage to ImageObserver interface
195997        https://bugs.webkit.org/show_bug.cgi?id=100091
195998
195999        Reviewed by Pavel Feldman.
196000
196001        Added reportMemoryUsage method to ImageObserver to make sure it is reported as
196002        appropriate descendant(with pointer adjusted due to offsets added by inheritance)
196003        rather than as a standalone memory block.
196004
196005        * platform/graphics/ImageObserver.h:
196006        (ImageObserver):
196007
1960082012-10-25  Alexander Pavlov  <apavlov@chromium.org>
196009
196010        Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
196011        https://bugs.webkit.org/show_bug.cgi?id=100375
196012
196013        Reviewed by Yury Semikhatsky.
196014
196015        No new tests, a UI change.
196016
196017        * English.lproj/localizedStrings.js:
196018        * inspector/front-end/SettingsScreen.js:
196019        (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
196020
1960212012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
196022
196023        Add setMediaTypeOverride to window.internals.settings
196024        https://bugs.webkit.org/show_bug.cgi?id=100249
196025
196026        Reviewed by Kenneth Rohde Christiansen.
196027
196028        Added setMediaTypeOverride to window.internals.settings.
196029
196030        Test: fast/media/print-restores-previous-mediatype.html
196031
196032        * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
196033        * page/Settings.cpp:
196034        (WebCore::Settings::Settings):
196035        (WebCore::Settings::setMediaTypeOverride):
196036        (WebCore):
196037        * page/Settings.h:
196038        (Settings):
196039        (WebCore::Settings::mediaTypeOverride):
196040        * testing/InternalSettings.cpp:
196041        (WebCore::InternalSettings::Backup::Backup):
196042        (WebCore::InternalSettings::Backup::restoreTo):
196043        (WebCore::InternalSettings::setMediaTypeOverride):
196044        (WebCore):
196045        * testing/InternalSettings.h:
196046        (Backup):
196047        (InternalSettings):
196048        * testing/InternalSettings.idl:
196049
1960502012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
196051
196052        [Chromium] Add supportMultipleWindows setting, needed for Android
196053        https://bugs.webkit.org/show_bug.cgi?id=99716
196054
196055        Reviewed by Adam Barth.
196056
196057        Add supportMultipleWindows settings for reusing the same view when
196058        opening popups. This is required for emulating the behavior of
196059        Android WebView. Adding into WebCore, as other ports might want to
196060        use this setting in the future.
196061
196062        Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
196063               fast/dom/Window/window-open-no-multiple-windows.html
196064               fast/forms/post-popup-no-multiple-windows.html
196065
196066        * loader/FrameLoader.cpp:
196067        (WebCore::createWindow):
196068        * page/ContextMenuController.cpp:
196069        (WebCore::openNewWindow):
196070        * page/Settings.cpp:
196071        (WebCore::Settings::Settings):
196072        (WebCore::Settings::setSupportsMultipleWindows):
196073        (WebCore):
196074        * page/Settings.h:
196075        (Settings):
196076        (WebCore::Settings::supportsMultipleWindows):
196077
1960782012-10-25  Alexander Pavlov  <apavlov@chromium.org>
196079
196080        Unreviewed, fix Web Inspector frontend compilability
196081
196082        * inspector/front-end/ElementsTreeOutline.js:
196083        (WebInspector.ElementsTreeOutline.prototype._ondragstart):
196084        * inspector/front-end/StylesSidebarPane.js:
196085        (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
196086        (WebInspector.StylePropertyTreeElement.prototype):
196087
1960882012-10-23  Alexander Pavlov  <apavlov@chromium.org>
196089
196090        Web Inspector: Drag and drop property value from Inspector is not working as expected
196091        https://bugs.webkit.org/show_bug.cgi?id=100040
196092
196093        Reviewed by Vsevolod Vlasov.
196094
196095        Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
196096
196097        * inspector/front-end/ElementsTreeOutline.js:
196098        (WebInspector.ElementsTreeOutline.prototype._ondragstart):
196099
1961002012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
196101
196102        Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
196103        https://bugs.webkit.org/show_bug.cgi?id=100340
196104
196105        Reviewed by Yury Semikhatsky.
196106
196107        * dom/WebCoreMemoryInstrumentation.cpp:
196108        (WebCore):
196109        * dom/WebCoreMemoryInstrumentation.h:
196110        (WebCoreMemoryTypes):
196111        * inspector/InspectorDebuggerAgent.cpp:
196112        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
196113        (WebCore):
196114        (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
196115        * inspector/InspectorDebuggerAgent.h:
196116        (InspectorDebuggerAgent):
196117        * inspector/ScriptDebugListener.h:
196118        (Script):
196119
1961202012-10-25  Adam Barth  <abarth@webkit.org>
196121
196122        [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
196123        https://bugs.webkit.org/show_bug.cgi?id=100351
196124
196125        Reviewed by Eric Seidel.
196126
196127        There is no reason to handle active DOM nodes in a separate pass from
196128        regular DOM nodes anymore.
196129
196130        * bindings/v8/V8DOMMap.cpp:
196131        * bindings/v8/V8DOMMap.h:
196132        (WebCore):
196133        * bindings/v8/V8GCController.cpp:
196134        (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
196135        (WebCore::NodeVisitor::NodeVisitor):
196136        (NodeVisitor):
196137        (WebCore::NodeVisitor::visitNodeWrapper):
196138        (WebCore::V8GCController::majorGCPrologue):
196139
1961402012-10-25  Alexander Pavlov  <apavlov@chromium.org>
196141
196142        Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
196143        https://bugs.webkit.org/show_bug.cgi?id=100357
196144
196145        Reviewed by Vsevolod Vlasov.
196146
196147        * inspector/InspectorStyleSheet.cpp:
196148        (WebCore::InspectorStyleSheet::deleteRule):
196149
1961502012-10-25  Adam Barth  <abarth@webkit.org>
196151
196152        [V8] DOMDataStoreHandle serves no purpose and can be removed
196153        https://bugs.webkit.org/show_bug.cgi?id=100333
196154
196155        Reviewed by Eric Seidel.
196156
196157        After https://bugs.webkit.org/show_bug.cgi?id=100316,
196158        DOMDataStoreHandle is just a glorified OwnPtr.
196159
196160        * bindings/v8/DOMWrapperWorld.h:
196161        (WebCore::DOMWrapperWorld::domDataStore):
196162        (DOMWrapperWorld):
196163        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
196164        * bindings/v8/V8DOMMap.cpp:
196165        * bindings/v8/V8DOMMap.h:
196166
1961672012-10-25  Elliott Sprehn  <esprehn@chromium.org>
196168
196169        Remove dead Node::isBlockFlowOrBlockTable
196170        https://bugs.webkit.org/show_bug.cgi?id=100336
196171
196172        Reviewed by Eric Seidel.
196173
196174        Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
196175
196176        No new tests needed, just removing dead code.
196177
196178        * dom/Node.cpp:
196179        * dom/Node.h:
196180        (Node):
196181
1961822012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
196183
196184        Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
196185        https://bugs.webkit.org/show_bug.cgi?id=100090
196186
196187        Reviewed by Vsevolod Vlasov.
196188
196189        Fixed localized strings table.
196190
196191        * English.lproj/localizedStrings.js: Added missing, removed orhans.
196192        * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
196193        * inspector/front-end/NativeMemorySnapshotView.js:
196194        Removed double localization.
196195
1961962012-10-25  Adam Barth  <abarth@webkit.org>
196197
196198        [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
196199        https://bugs.webkit.org/show_bug.cgi?id=100316
196200
196201        Reviewed by Eric Seidel.
196202
196203        Prior to this patch, DOMDataStore had two subclasses,
196204        ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
196205        wrapper map base classes and had different lifetimes. This patch
196206        unifies all these classes into DOMDataStore itself. This makes this
196207        code much more straightforward.
196208
196209        * WebCore.gypi:
196210        * bindings/v8/DOMDataStore.cpp:
196211        (WebCore::DOMDataStore::DOMDataStore):
196212        (WebCore::DOMDataStore::~DOMDataStore):
196213        (WebCore::DOMDataStore::current):
196214        (WebCore::DOMDataStore::reportMemoryUsage):
196215        * bindings/v8/DOMDataStore.h:
196216        (DOMDataStore):
196217        (WebCore::DOMDataStore::domNodeMap):
196218        (WebCore::DOMDataStore::activeDomNodeMap):
196219        (WebCore::DOMDataStore::domObjectMap):
196220        (WebCore::DOMDataStore::activeDomObjectMap):
196221        * bindings/v8/ScopedDOMDataStore.cpp: Removed.
196222        * bindings/v8/ScopedDOMDataStore.h: Removed.
196223        * bindings/v8/SerializedScriptValue.cpp:
196224        (WebCore::neuterBinding):
196225        * bindings/v8/StaticDOMDataStore.cpp: Removed.
196226        * bindings/v8/StaticDOMDataStore.h: Removed.
196227        * bindings/v8/V8DOMMap.cpp:
196228        (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
196229        (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
196230        (WebCore::visitActiveDOMNodes):
196231        (WebCore::visitDOMObjects):
196232        (WebCore::visitActiveDOMObjects):
196233        * bindings/v8/V8DOMMap.h:
196234        (WebCore):
196235        * bindings/v8/V8PerIsolateData.h:
196236        (V8PerIsolateData):
196237        * bindings/v8/WorkerScriptController.cpp:
196238        (WebCore::WorkerScriptController::WorkerScriptController):
196239        (WebCore::WorkerScriptController::~WorkerScriptController):
196240        * bindings/v8/WorkerScriptController.h:
196241        (WorkerScriptController):
196242
1962432012-10-24  Kent Tamura  <tkent@chromium.org>
196244
196245        Minimize CSS rulesets for multiple-fields input
196246        https://bugs.webkit.org/show_bug.cgi?id=100198
196247
196248        Reviewed by Kentaro Hara.
196249
196250        - Unify rulesets for input::-webkit-datetime-edit-*-field.
196251         input::-webkit-datetime-edit-*-field had identical ruleset.
196252
196253        - Move some rulesets near to related rulesets.
196254         Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
196255         Move input::-webkit-datetime-edit-second-field[readonly] nearby
196256        input::-webkit-datetime-edit-minute-field[readonly].
196257
196258        No new tests. This shouldn't make any behavior change.
196259
196260        * css/html.css:
196261        (input::-webkit-datetime-edit-year-field):
196262        (input::-webkit-datetime-edit-year-field:focus):
196263        (input::-webkit-datetime-edit-second-field[readonly]):
196264
1962652012-10-24  Kent Tamura  <tkent@chromium.org>
196266
196267        REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
196268        https://bugs.webkit.org/show_bug.cgi?id=100326
196269
196270        Reviewed by Eric Seidel.
196271
196272        Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
196273
196274        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
196275        (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
196276        We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
196277
1962782012-10-24  Adam Barth  <abarth@webkit.org>
196279
196280        [V8] DOMData is no longer needed
196281        https://bugs.webkit.org/show_bug.cgi?id=100313
196282
196283        Reviewed by Eric Seidel.
196284
196285        This class serves no purpose anymore and can be deleted.
196286
196287        * WebCore.gypi:
196288        * bindings/v8/DOMData.cpp: Removed.
196289        * bindings/v8/DOMData.h: Removed.
196290        * bindings/v8/DOMDataStore.cpp:
196291        (WebCore::DOMDataStore::current):
196292        * bindings/v8/DOMDataStore.h:
196293        (WebCore):
196294        (DOMDataStore):
196295        * bindings/v8/SerializedScriptValue.cpp:
196296        (WebCore::neuterBinding):
196297        * bindings/v8/V8DOMMap.cpp:
196298        (WebCore::getDOMNodeMap):
196299        (WebCore::getActiveDOMNodeMap):
196300        (WebCore::getDOMObjectMap):
196301        (WebCore::getActiveDOMObjectMap):
196302        (WebCore::removeAllDOMObjects):
196303        (WebCore::visitActiveDOMNodes):
196304        (WebCore::visitDOMObjects):
196305        (WebCore::visitActiveDOMObjects):
196306
1963072012-10-24  Kent Tamura  <tkent@chromium.org>
196308
196309        Sort an Xcode project file.
196310
196311        * WebCore.xcodeproj/project.pbxproj: Sorted.
196312
1963132012-10-24  Adam Barth  <abarth@webkit.org>
196314
196315        [V8] AbstractWeakReferenceMap is unnecessarily general and complex
196316        https://bugs.webkit.org/show_bug.cgi?id=100175
196317
196318        Reviewed by Eric Seidel.
196319
196320        Before this patch, AbstractWeakReferenceMap served two masters:
196321
196322        1) DOM wrappers
196323        2) NPV8 function templates
196324
196325        These two uses cases pushed AbstractWeakReferenceMap to be more general
196326        and complex that needed. This patch separates these two uses cases into
196327        two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
196328        not worth complicating the DOM wrapper code path to share that tiny
196329        amount of code.
196330
196331        The other thing this patch does is store a pointer to the DOM wrapper
196332        map as the weak callback context object. That means we no longer need
196333        to search through all the wrapper maps in order to find the map that
196334        contains this particular DOM wrapper.
196335
196336        * WebCore.gypi:
196337        * bindings/v8/DOMData.cpp:
196338        * bindings/v8/DOMData.h:
196339        (DOMData):
196340        * bindings/v8/DOMDataStore.cpp:
196341            - Delete all these complicated weak callback functions. The weak
196342              callback functions are now an order of magnitude simpler and
196343              declared as private member functions on the wrapper map.
196344        * bindings/v8/DOMDataStore.h:
196345        (WebCore::DOMDataStore::domNodeMap):
196346        (WebCore::DOMDataStore::activeDomNodeMap):
196347        (DOMDataStore):
196348            - We now have a consistent type to use for all these wrapper maps.
196349              Both the hash map and the intrusive map derive from
196350              DOMWrapperMap (with a single template parameter).
196351        * bindings/v8/DOMWrapperMap.h: Added.
196352        (WebCore):
196353        (DOMWrapperVisitor):
196354            - The visitor is no longer an inner class. It's just a top-level
196355              class that does the same thing.
196356        (DOMWrapperMap):
196357            - The abstract interface for DOMWrapperMap has about half as many
196358              functions as the old AbstractWeakReferenceMap because the two use
196359              cases are disentangled.
196360        (WebCore::DOMWrapperMap::~DOMWrapperMap):
196361        (DOMWrapperHashMap):
196362            - This is a concrete instance of DOMWrapperMap that uses a hash map.
196363        (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
196364        (WebCore::DOMWrapperHashMap::remove):
196365        (WebCore::DOMWrapperHashMap::defaultWeakCallback):
196366            - Notice that the context parameter now points to the hashmap
196367              itself rather than to the native object. Now that we don't need
196368              to handle the NPAPI case, we can recover the native object from
196369              the wrapper using toNative. The assert in set() ensures that this
196370              always works.
196371        * bindings/v8/DOMWrapperWorld.h:
196372        * bindings/v8/IntrusiveDOMWrapperMap.h:
196373            - These classes are now simplified because they need to implement
196374              fewer functions.
196375        (WebCore::DOMNodeWrapperMap::weakCallback):
196376            - For this weak callback, we still use the native object as the
196377              context parameter. We could also recover the native object from
196378              the wrapper, which means this context parameter is available to
196379              do other work.
196380        * bindings/v8/ScopedDOMDataStore.cpp:
196381        (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
196382            - This code no longer needs to have knowledge of which weak
196383              callbacks these objects use.
196384        (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
196385            - We need to clear the maps before deleting them because there are
196386              still JavaScript objects that have references to the map in their
196387              weak callback parameter. Previously, we handled this case because
196388              we would search all the wrapper maps and fail to find the wrapper.
196389        * bindings/v8/ScriptProfiler.cpp:
196390        (WebCore::ScriptProfiler::visitExternalArrays):
196391        * bindings/v8/StaticDOMDataStore.cpp:
196392            - This code no longer needs to have knowledge of which weak
196393              callback these maps use.
196394        * bindings/v8/StaticDOMDataStore.h:
196395        (StaticDOMDataStore):
196396        * bindings/v8/V8DOMMap.cpp:
196397        (WebCore::getDOMNodeMap):
196398        (WebCore::getActiveDOMNodeMap):
196399        (WebCore::removeAllDOMObjects):
196400            - Rather than using some complicated visitor pattern, we can now
196401              just call clear() directly on the maps to remove all the objects.
196402        (WebCore::visitActiveDOMNodes):
196403        (WebCore::visitDOMObjects):
196404        (WebCore::visitActiveDOMObjects):
196405        * bindings/v8/V8DOMMap.h:
196406        (WebCore):
196407            - Delete the old versions of these classes.
196408        (DOMDataStoreHandle):
196409            - Style nit: one-argument constructors should be marked explicit.
196410        * bindings/v8/V8DOMWrapper.cpp:
196411        (WebCore::V8DOMWrapper::domWrapperType):
196412            - I moved this logic into WrapperTypeInfo.h to avoid a circular
196413              header dependency.
196414        * bindings/v8/V8DOMWrapper.h:
196415        (WebCore::V8DOMWrapper::getCachedWrapper):
196416        * bindings/v8/V8GCController.cpp:
196417            - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
196418              longer clear the weak callbacks in V8GCController).
196419        * bindings/v8/V8NPObject.cpp:
196420        (V8NPTemplateMap):
196421            - staticTemplateMap is no longer an instance of WeakReferenceMap.
196422              Instead, this patch just implements the functionality we need
196423              here directly.
196424        (WebCore::V8NPTemplateMap::get):
196425        (WebCore::V8NPTemplateMap::set):
196426        (WebCore::V8NPTemplateMap::sharedInstance):
196427        (WebCore::V8NPTemplateMap::weakCallback):
196428        (WebCore::V8NPTemplateMap::dispose):
196429        (WebCore::npObjectGetProperty):
196430        (WebCore):
196431        (WebCore::staticNPObjectMap):
196432        (WebCore::weakNPObjectCallback):
196433            - DOMWrapperMap no longer exposes a "forget" function. Instead, we
196434              just use the more basic "remove" and "Dispose" operations to do
196435              the same thing. This is possible now because we no longer have
196436              "removeIfPossible" to support searching all the wrapper maps for
196437              the one that has the right wrapper.
196438        (WebCore::createV8ObjectForNPObject):
196439            - DOMWrapperMap No longer has a "contains" function. Instead, we
196440              use get, which actually makes this code more efficient because we
196441              only do one hash map lookup.
196442        (WebCore::forgetV8ObjectForNPObject):
196443            - The changes here are a combination of the two sorts of changes
196444              above.
196445        * bindings/v8/WrapperTypeInfo.h:
196446        (WebCore::toNative):
196447        (WebCore::toWrapperTypeInfo):
196448            - The patch moves these functions into this header to avoid a
196449              circular header dependency.
196450
1964512012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
196452
196453        [cairo] unneeded FloatRect object creation in BitmapImage::draw
196454        https://bugs.webkit.org/show_bug.cgi?id=100298
196455
196456        Reviewed by Martin Robinson.
196457
196458        Do not copy FloatRect arguments src and dst to local variables.
196459        Instead, use src and dst directly.
196460
196461        No new tests. No change in behavior.
196462
196463        * platform/graphics/cairo/BitmapImageCairo.cpp:
196464        (WebCore::BitmapImage::draw):
196465
1964662012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
196467
196468        [SOUP] Provide logging for SocketStreamHandleSoup
196469        https://bugs.webkit.org/show_bug.cgi?id=100215
196470
196471        Reviewed by Alexey Proskuryakov.
196472
196473        Add logging to SocketStreamHandleSoup to facilitate debugging.
196474
196475        * platform/network/soup/SocketStreamHandleSoup.cpp:
196476        (WebCore::SocketStreamHandle::SocketStreamHandle):
196477        (WebCore::SocketStreamHandle::~SocketStreamHandle):
196478        (WebCore::SocketStreamHandle::platformSend):
196479        (WebCore::SocketStreamHandle::platformClose):
196480
1964812012-10-24  Nico Weber  <thakis@chromium.org>
196482
196483        Pass on exif orientation from ImageSource when using the open-source image decoders
196484        https://bugs.webkit.org/show_bug.cgi?id=100164
196485
196486        Reviewed by Eric Seidel.
196487
196488        The orientation is honored always for image documents, and optionally
196489        for <img> elements if shouldRespectImageOrientation is set (off by
196490        default). However, the feature needs port-specific modifications to
196491        GraphicsContext (without this, webcore will use the rotated bounds but
196492        draw the image as if it hadn't be rotated, resulting in squished
196493        pixels), and most ports don't implement these yet -- so put
196494        turning this on for image documents behind a port-specific #ifdef.
196495
196496        No observable behavior change. Once it's hooked up, it will be tested
196497        by fast/images/exif-orientation.html.
196498
196499        * platform/graphics/ImageSource.cpp:
196500        (WebCore::ImageSource::size):
196501        (WebCore::ImageSource::frameSizeAtIndex):
196502        (WebCore::ImageSource::orientationAtIndex):
196503        * platform/graphics/chromium/DeferredImageDecoder.cpp:
196504        (WebCore::DeferredImageDecoder::orientation):
196505        (WebCore):
196506        * platform/graphics/chromium/DeferredImageDecoder.h:
196507        (DeferredImageDecoder):
196508        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
196509        (WebCore::readImageOrientation):
196510        * rendering/RenderObject.cpp:
196511        (WebCore::RenderObject::shouldRespectImageOrientation):
196512
1965132012-10-24  Beth Dakin  <bdakin@apple.com>
196514
196515        https://bugs.webkit.org/show_bug.cgi?id=100169
196516        We should make TileCache tiles the size of the tile coverage rect 
196517        when we can't do fast scrolling
196518        -and-
196519        <rdar://problem/12505021>
196520
196521        Reviewed by Simon Fraser.
196522
196523        Some websites that don't do fast scrolling still scroll slower than 
196524        they do with tiled drawing disabled. 
196525        https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
196526        performance problem, but there is still more ground to make up. This 
196527        patch addresses the remaining issue by making tiles the size of the 
196528        window when we can't do fast scrolling. 
196529
196530        The constructor and create function no longer take a size parameter. 
196531        That's all fully controlled within TileCache now. m_tileSize is no 
196532        longer const.
196533        * platform/graphics/ca/mac/TileCache.h:
196534
196535        Store the current default size as constants so that we can access it 
196536        in both the constructor and adjustTileSizeForCoverageRect().
196537        * platform/graphics/ca/mac/TileCache.mm:
196538        (WebCore::TileCache::TileCache):
196539
196540        This new function will set m_tileSize to the size of the tile 
196541        coverage rect if the tile coverage is limited to the visible area. 
196542        Otherwise, the tiles are set to be the default size.
196543        (WebCore::TileCache::adjustTileSizeForCoverageRect):
196544        
196545        Call adjustTileSizeForCoverageRect().
196546        (WebCore::TileCache::revalidateTiles):
196547
196548        No need to send in a size anymore.
196549        * platform/graphics/ca/mac/WebTileCacheLayer.h:
196550        (WebCore):
196551
1965522012-10-24  David Barton  <dbarton@mathscribe.com>
196553
196554        MathML tests trigger font cache assertions in debug bots
196555        https://bugs.webkit.org/show_bug.cgi?id=100268
196556
196557        Reviewed by Eric Seidel.
196558
196559        Add a FontCachePurgePreventer to fix this.
196560
196561        Tested by existing tests.
196562
196563        * rendering/mathml/RenderMathMLOperator.cpp:
196564        (WebCore::RenderMathMLOperator::updateFromElement):
196565
1965662012-10-24  Tim Horton  <timothy_horton@apple.com>
196567
196568        Update main frame scroll position immediately for programmatic scrolls
196569        https://bugs.webkit.org/show_bug.cgi?id=98074
196570
196571        Reviewed by Simon Fraser.
196572
196573        Immediately update the main frame scroll position after a programmatic scroll,
196574        so that performing a scrollBy or scrollTo will be instantly reflected in
196575        all of the scroll offset accessors.
196576
196577        No new tests; this will be tested by many scrolling tests once WebKitTestRunner
196578        can use threaded scrolling.
196579
196580        * page/scrolling/ScrollingCoordinator.cpp:
196581        (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
196582
1965832012-10-24  Mihai Parparita  <mihaip@chromium.org>
196584
196585        [Chromium] Allow pushState and related history APIs to be disabled per context
196586        https://bugs.webkit.org/show_bug.cgi?id=99780
196587
196588        Reviewed by Adam Barth.
196589
196590        Chrome Apps do not support the history API (or navigation in general).
196591        Since pushState is generally feature detected, it's cleanest to disable
196592        it via a V8 per-context feature, so that applications can have the
196593        appropriate fallback behavior (other history APIs are re-mapped to throw
196594        exceptions, since history.back() and the link are not feature detected).
196595
196596        * dom/ContextFeatures.cpp:
196597        (WebCore::ContextFeatures::pushStateEnabled):
196598        (WebCore):
196599        * dom/ContextFeatures.h:
196600        * dom/Document.cpp:
196601        (WebCore::Document::enqueuePopstateEvent):
196602        * page/History.idl:
196603
1966042012-10-24  Tommy Widenflycht  <tommyw@google.com>
196605
196606        MediaStream API: Make sure all events are dispatched asynchronously
196607        https://bugs.webkit.org/show_bug.cgi?id=100286
196608
196609        Reviewed by Adam Barth.
196610
196611        This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
196612        and the web application calls methods on the RTCPeerConnection in the event callbacks.
196613
196614        Test: fast/mediastream/RTCPeerConnection-events.html
196615        Also tested by the chromium webrtc fuzz tests.
196616
196617        * Modules/mediastream/RTCPeerConnection.cpp:
196618        (WebCore::RTCPeerConnection::RTCPeerConnection):
196619        (WebCore::RTCPeerConnection::negotiationNeeded):
196620        (WebCore::RTCPeerConnection::didGenerateIceCandidate):
196621        (WebCore::RTCPeerConnection::didAddRemoteStream):
196622        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
196623        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
196624        (WebCore::RTCPeerConnection::changeReadyState):
196625        (WebCore::RTCPeerConnection::changeIceState):
196626        (WebCore):
196627        (WebCore::RTCPeerConnection::scheduleDispatchEvent):
196628        (WebCore::RTCPeerConnection::scheduledEventTimerFired):
196629        * Modules/mediastream/RTCPeerConnection.h:
196630        (RTCPeerConnection):
196631
1966322012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
196633
196634        [Chromium] Remove screen-related functions from PlatformSupport
196635        https://bugs.webkit.org/show_bug.cgi?id=97474
196636
196637        Reviewed by Adam Barth.
196638
196639        Screen-related functions like screenHorizontalDPI that
196640        used to be on PlatformSupport are now accessed through a new
196641        PlatformPageClient attached to Widget in WebCore-land, which is
196642        implemented by ChromeClientImpl in WebKit-land, which proxies
196643        calls to WebWidgetClient, which is actually implemented in
196644        Chromium-land.
196645
196646        * WebCore.gypi:
196647        * platform/Widget.h:
196648        * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
196649        (PageClientChromium):
196650        * platform/chromium/PlatformScreenChromium.cpp:
196651        (WebCore::toPlatformPageClient):
196652        (WebCore):
196653        (WebCore::screenHorizontalDPI):
196654        (WebCore::screenVerticalDPI):
196655        (WebCore::screenDepth):
196656        (WebCore::screenDepthPerComponent):
196657        (WebCore::screenIsMonochrome):
196658        (WebCore::screenRect):
196659        (WebCore::screenAvailableRect):
196660        * platform/chromium/PlatformSupport.h:
196661        (PlatformSupport):
196662
1966632012-10-24  Adam Barth  <abarth@webkit.org>
196664
196665        [V8] WorkerContextExecutionProxy doesn't need to track events
196666        https://bugs.webkit.org/show_bug.cgi?id=100295
196667
196668        Reviewed by Eric Seidel.
196669
196670        This code was added when this code was originally upstreamed as part of
196671        the Chromium port. There doesn't appear to be any reason why
196672        WorkerContextExecutionProxy needs to keep a Vector of raw event
196673        pointers. Those points are likely to become dangling, making the rest
196674        of what this code does very sketchy.
196675
196676        * bindings/v8/V8WorkerContextEventListener.cpp:
196677        (WebCore::V8WorkerContextEventListener::callListenerFunction):
196678        * bindings/v8/WorkerContextExecutionProxy.cpp:
196679        (WebCore::WorkerContextExecutionProxy::dispose):
196680        * bindings/v8/WorkerContextExecutionProxy.h:
196681        (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
196682        (WorkerContextExecutionProxy):
196683
1966842012-10-24  Max Vujovic  <mvujovic@adobe.com>
196685
196686        [CSS Shaders] The mesh should be specified using <column, row> order
196687        https://bugs.webkit.org/show_bug.cgi?id=96285
196688
196689        Reviewed by Dean Jackson.
196690
196691        Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
196692        column, row order.
196693
196694        Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
196695
196696        * css/CSSComputedStyleDeclaration.cpp:
196697        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
196698            Append the number of columns before the number of rows in the meshParameters
196699            CSSValueList.
196700        * css/StyleResolver.cpp:
196701        (WebCore::StyleResolver::createCustomFilterOperation):
196702            Store the second mesh parameter in meshRows instead of meshColumns.
196703
1967042012-10-24  Jae Hyun Park  <jae.park@company100.net>
196705
196706        loaderRunLoop() should use synchronization instead of while loop
196707        https://bugs.webkit.org/show_bug.cgi?id=55402
196708
196709        Reviewed by Alexey Proskuryakov.
196710
196711        Originally, loaderRunLoop() sleeps until a thread has started and set
196712        the loaderRunLoopObject static variable. This patch uses
196713        ThreadCondition to synchronize instead of a while loop.
196714
196715        No new tests (No behavior change).
196716
196717        * platform/network/cf/LoaderRunLoopCF.cpp:
196718        (WebCore::runLoaderThread):
196719        (WebCore::loaderRunLoop):
196720        * platform/network/cf/LoaderRunLoopCF.h:
196721        (WebCore):
196722
1967232012-10-24  Sailesh Agrawal  <sail@chromium.org>
196724
196725        Incorrect keycodes for numpad /, -, +, .
196726        https://bugs.webkit.org/show_bug.cgi?id=99188
196727
196728        Reviewed by Tony Chang.
196729
196730        In r57951 we switched to mapping keys by character code.
196731        This regressed the numpad keys which no longer match the Windows virtual key codes.
196732        This CL fixes this by never mapping numpad keys by character code.
196733
196734        Test: platform/mac/fast/events/numpad-keycode-mapping.html
196735
196736        * platform/mac/PlatformEventFactoryMac.mm:
196737        (WebCore::windowsKeyCodeForKeyEvent):
196738
1967392012-10-24  Simon Fraser  <simon.fraser@apple.com>
196740
196741        Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
196742        https://bugs.webkit.org/show_bug.cgi?id=100141
196743        <rdar://problem/12559147>
196744
196745        Reviewed by Tim Horton.
196746
196747        For PDF documents the RenderView is null, so null-check it to avoid a crash
196748        when saving PDFs.
196749
196750        * dom/Document.cpp:
196751        (WebCore::Document::windowScreenDidChange):
196752
1967532012-10-24  Terry Anderson  <tdanderson@chromium.org>
196754
196755        Handle two-finger tap gestures in the same way as long-press gestures
196756        https://bugs.webkit.org/show_bug.cgi?id=99947
196757
196758        Reviewed by Adam Barth.
196759
196760        Currently a long-press gesture is used to dispatch a context menu (for platforms 
196761        defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
196762        defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
196763        touch area of the long-press gesture.
196764
196765        This CL will cause two-finger tap gestures to be handled in the same way as long-press 
196766        gestures. The location and touch area of a two-finger tap gesture will correspond to 
196767        the location and touch area of the first finger down; the location/area of the second 
196768        finger will be ignored.
196769
196770        Test: touchadjustment/touch-links-two-finger-tap.html
196771
196772        * page/EventHandler.cpp:
196773        (WebCore::EventHandler::handleGestureLongPress):
196774        (WebCore):
196775        (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
196776        (WebCore::EventHandler::handleGestureTwoFingerTap):
196777        (WebCore::EventHandler::adjustGesturePosition):
196778        * page/EventHandler.h:
196779        (EventHandler):
196780
1967812012-10-24  Chris Fleizach  <cfleizach@apple.com>
196782
196783        AX:When aria-label is used, the text under an element is still appearing as the AXTitle
196784        https://bugs.webkit.org/show_bug.cgi?id=98167
196785
196786        Reviewed by Beth Dakin.
196787
196788        According to WAI-ARIA text computation, the presence of aria-label and alternative text
196789        should override the visible text within an element.
196790
196791        Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
196792
196793        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
196794        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
196795
1967962012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
196797
196798        Unreviewed, rolling out r132303 and r132312.
196799        http://trac.webkit.org/changeset/132303
196800        http://trac.webkit.org/changeset/132312
196801        https://bugs.webkit.org/show_bug.cgi?id=100287
196802
196803        Triggering crashes on many popular websites (Requested by
196804        leviw|gardening on #webkit).
196805
196806        * css/CSSGrammar.y.in:
196807        * css/CSSParser.cpp:
196808        (WebCore::CSSParser::detectAtToken):
196809        * css/CSSParser.h:
196810        * css/CSSPropertySourceData.h:
196811        * css/RuleSet.cpp:
196812        (WebCore::RuleData::RuleData):
196813        (WebCore::RuleSet::addRule):
196814        (WebCore::RuleSet::addRegionRule):
196815        (WebCore::RuleSet::addRulesFromSheet):
196816        (WebCore::RuleSet::addStyleRule):
196817        * css/RuleSet.h:
196818        (RuleData):
196819        (RuleSet):
196820        * css/StyleResolver.cpp:
196821        (WebCore::makeRuleSet):
196822        (WebCore::StyleResolver::appendAuthorStyleSheets):
196823        (WebCore::StyleResolver::matchScopedAuthorRules):
196824        (WebCore::StyleResolver::locateSharedStyle):
196825        * css/StyleResolver.h:
196826        (StyleResolver):
196827        * css/StyleRule.cpp:
196828        (WebCore::StyleRuleBase::reportMemoryUsage):
196829        (WebCore::StyleRuleBase::destroy):
196830        (WebCore::StyleRuleBase::copy):
196831        (WebCore::StyleRuleBase::createCSSOMWrapper):
196832        * css/StyleRule.h:
196833        * css/StyleScopeResolver.cpp:
196834        (WebCore::StyleScopeResolver::reportMemoryUsage):
196835        * css/StyleScopeResolver.h:
196836        (WebCore):
196837        (StyleScopeResolver):
196838        * css/StyleSheetContents.cpp:
196839        (WebCore::childRulesHaveFailedOrCanceledSubresources):
196840
1968412012-10-24  Joshua Bell  <jsbell@chromium.org>
196842
196843        IndexedDB: Cursor property value identities should be preserved
196844        https://bugs.webkit.org/show_bug.cgi?id=100051
196845
196846        Reviewed by Tony Chang.
196847
196848        Some W3C test submissions point out that subsequent accesses to cursor properties should
196849        yield the same value until the cursor advances. We handled this with custom binding code for
196850        IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
196851        being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
196852        be applied to key/primaryKey.
196853
196854        Test: storage/indexeddb/cursor-properties.html
196855
196856        * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
196857        (WebCore::IDBCursor::key):
196858        (WebCore::IDBCursor::primaryKey):
196859        (WebCore::IDBCursor::setValueReady):
196860        * Modules/indexeddb/IDBCursor.h:
196861        (IDBCursor):
196862        (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
196863        * Modules/indexeddb/IDBCursor.idl:
196864        * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
196865        (WebCore):
196866        * Modules/indexeddb/IDBRequest.cpp:
196867        (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
196868        * bindings/v8/IDBBindingUtilities.cpp:
196869        (WebCore::idbKeyToScriptValue): New method for explicit conversion.
196870        (WebCore):
196871        * bindings/v8/IDBBindingUtilities.h:
196872        (WebCore):
196873
1968742012-10-24  Ami Fischman  <fischman@chromium.org>
196875
196876        call to setNeedsLayout during RenderVideo::paintReplaced
196877        https://bugs.webkit.org/show_bug.cgi?id=100265
196878
196879        Reviewed by Eric Carlson.
196880
196881        Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
196882        during paints earlier (so the offending calls are in the emitted stacktrace).
196883
196884        No new tests - new defensive checks are triggered by existing tests.
196885
196886        * page/FrameView.cpp:
196887        (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
196888        * rendering/RenderObject.cpp:
196889        (WebCore):
196890        (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
196891        (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
196892        * rendering/RenderObject.h:
196893        (RenderObject):
196894        (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
196895        * rendering/RenderVideo.cpp:
196896        (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
196897
1968982012-10-24  Adam Barth  <abarth@webkit.org>
196899
196900        [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
196901        https://bugs.webkit.org/show_bug.cgi?id=100208
196902
196903        Reviewed by Eric Seidel.
196904
196905        Rather than clearing and re-establishing the weak callback for
196906        ActiveDOMObjects during every GC, this patch puts all the
196907        ActiveDOMObjects with pending activity into an object group with a live
196908        object, causing them not to be garbage collected.
196909
196910        In addition to simplifying this code, this patch makes the patch in
196911        https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
196912        V8GCController no longer needs to know how to configure the weak
196913        callbacks for these objects.
196914
196915        * bindings/v8/V8GCController.cpp:
196916        (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
196917        (ActiveDOMObjectPrologueVisitor):
196918        (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
196919        (WebCore::V8GCController::majorGCPrologue):
196920        (WebCore::V8GCController::majorGCEpilogue):
196921        * bindings/v8/V8PerIsolateData.cpp:
196922        (WebCore::V8PerIsolateData::V8PerIsolateData):
196923        * bindings/v8/V8PerIsolateData.h:
196924        (WebCore::V8PerIsolateData::liveRoot):
196925        (V8PerIsolateData):
196926
1969272012-10-24  Brady Eidson  <beidson@apple.com>
196928
196929        Add a strategy for loader customization.
196930        https://bugs.webkit.org/show_bug.cgi?id=100278
196931
196932        Reviewed by Alexey Proskuryakov.
196933
196934        It's empty for now and does nothing, just like the goggles.
196935
196936        * WebCore.gypi:
196937        * WebCore.vcproj/WebCore.vcproj:
196938        * WebCore.xcodeproj/project.pbxproj:
196939        * platform/PlatformStrategies.h:
196940        (WebCore::PlatformStrategies::loaderStrategy):
196941        (PlatformStrategies):
196942        (WebCore::PlatformStrategies::PlatformStrategies):
196943
1969442012-10-24  Tony Chang  <tony@chromium.org>
196945
196946        Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
196947        https://bugs.webkit.org/show_bug.cgi?id=99925
196948
196949        Reviewed by Ojan Vafai.
196950
196951        Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
196952
196953        Test: css3/flexbox/repaint-during-resize-no-flex.html
196954
196955        * rendering/RenderFlexibleBox.cpp:
196956        (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
196957        for setting the location of a child.
196958        (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
196959        (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
196960
1969612012-10-24  Simon Fraser  <simon.fraser@apple.com>
196962
196963        Fix CALayer hiearchy when combining tiling with preserve-3d
196964        https://bugs.webkit.org/show_bug.cgi?id=100205
196965
196966        Reviewed by Dean Jackson.
196967
196968        When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
196969        m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
196970        content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
196971        it is the primary layer that is set to be single-sided.
196972        
196973        In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
196974        "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
196975        the tile cache container layer. However, the custom sublayers were being added as
196976        children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
196977        thus they were not affected by the doubleSided property.
196978        
196979        This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
196980        by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
196981        layer, and one for sublayers of the primary layer. It adds custom sublayers to
196982        the latter list, so now the tile cache container layer becomes a sublayer of
196983        the primary layer, so is affected by that layer's doubleSided property.
196984
196985        Test: compositing/tiling/backface-preserve-3d-tiled.html
196986
196987        * platform/graphics/ca/GraphicsLayerCA.cpp:
196988        (WebCore::GraphicsLayerCA::updateSublayerList):
196989
1969902012-10-23  Zhenyao Mo  <zmo@google.com>
196991
196992        Update mozilla's CheckedInt.h to the latest version
196993        https://bugs.webkit.org/show_bug.cgi?id=100177
196994
196995        Reviewed by Kenneth Russell.
196996
196997        * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
196998        (detail):
196999        (IsSupportedPass2):
197000        (IsSupported):
197001        (UnsignedType):
197002        (IsSigned):
197003        (TwiceBiggerType):
197004        (PositionOfSignBit):
197005        (MinValue):
197006        (MaxValue):
197007        (WebCore::detail::HasSignBit):
197008        (WebCore::detail::BinaryComplement):
197009        (WebCore::detail::IsInRange):
197010        (WebCore::detail::IsAddValid):
197011        (WebCore::detail::IsSubValid):
197012        (WebCore::detail::IsMulValid):
197013        (WebCore::detail::IsDivValid):
197014        (WebCore::detail::OppositeIfSignedImpl::run):
197015        (WebCore::detail::OppositeIfSigned):
197016        (WebCore):
197017        (CheckedInt):
197018        (WebCore::CheckedInt::CheckedInt):
197019        (WebCore::CheckedInt::value):
197020        (WebCore::CheckedInt::isValid):
197021        (WebCore::CheckedInt::operator -):
197022        (WebCore::CheckedInt::operator ==):
197023        (WebCore::CheckedInt::operator++):
197024        (WebCore::CheckedInt::operator--):
197025        (CastToCheckedIntImpl):
197026        (WebCore::detail::CastToCheckedIntImpl::run):
197027        (WebCore::castToCheckedInt):
197028        (WebCore::operator ==):
197029        * html/canvas/DataView.cpp: change valid() to isValid().
197030        (WebCore::DataView::create):
197031        * html/canvas/WebGLBuffer.cpp: Ditto.
197032        (WebCore::WebGLBuffer::associateBufferDataImpl):
197033        (WebCore::WebGLBuffer::associateBufferSubDataImpl):
197034        * html/canvas/WebGLRenderingContext.cpp: Ditto.
197035        (WebCore):
197036        (WebCore::WebGLRenderingContext::drawArrays):
197037        * platform/graphics/GraphicsContext3D.cpp: Ditto.
197038        (WebCore::GraphicsContext3D::computeImageSizeInBytes):
197039
1970402012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
197041
197042        [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
197043        https://bugs.webkit.org/show_bug.cgi?id=89885
197044
197045        Reviewed by Kenneth Rohde Christiansen.
197046
197047        Use mach_port instead of global tokens for IOSurfaces.
197048        Global IOSurfaces are accessible from other processes using their handle, while mach_ports
197049        can only be shared directly via IPC.
197050
197051        Tested by existing WebGL tests.
197052
197053        * platform/graphics/surfaces/GraphicsSurfaceToken.h:
197054        (GraphicsSurfaceToken):
197055        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
197056        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
197057        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
197058
1970592012-10-24  Rick Byers  <rbyers@chromium.org>
197060
197061        image-set doesn't round-trip properly with cssText
197062        https://bugs.webkit.org/show_bug.cgi?id=99725
197063
197064        Reviewed by Beth Dakin.
197065
197066        Fix serialization of -webkit-image-set rules to use the same format as
197067        is used for parsing.
197068
197069        Test: fast/css/image-set-setting.html
197070
197071        * css/CSSImageSetValue.cpp:
197072        (WebCore::CSSImageSetValue::customCssText):
197073        * css/CSSValueList.h:
197074        (WebCore::CSSValueList::item): Add const overload
197075
1970762012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
197077
197078        BlackBerry fix for webgl-depth-texture.html
197079        https://bugs.webkit.org/show_bug.cgi?id=100258
197080
197081        Reviewed by Yong Li.
197082
197083        Removed a platform specific define that is unnecessary.
197084
197085        * platform/graphics/GraphicsContext3D.cpp:
197086        (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
197087
1970882012-10-24  Nico Weber  <thakis@chromium.org>
197089
197090        Honor image orientation in GraphicsContextSkia
197091        https://bugs.webkit.org/show_bug.cgi?id=100179
197092
197093        Reviewed by Stephen White.
197094
197095        Also fix a bug in ImageOrientation.h: Some of the values were
197096        switched. They now match the description in the exif spec at
197097        http://www.exif.org/Exif2-2.PDF page 18, and the notes at
197098        http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
197099        the picture at http://www.80sidea.com/archives/2316.
197100
197101        They showed up correctly in Safari because the orientation transform
197102        was done after flipping Y. Let the flipping happen later. I verified
197103        that flipping transformation order and fixing the exif enum cancelled
197104        each other out, so this has no effect on the apple port.
197105
197106        Not hooked up yet, so no observable difference.
197107
197108        * platform/graphics/BitmapImage.h:
197109        * platform/graphics/ImageOrientation.h:
197110        (WebCore::ImageOrientation::usesWidthAsHeight):
197111        (WebCore::ImageOrientation::fromEXIFValue):
197112        * platform/graphics/cg/GraphicsContextCG.cpp:
197113        (WebCore::GraphicsContext::drawNativeImage):
197114        * platform/graphics/skia/ImageSkia.cpp:
197115        (WebCore::paintSkBitmap):
197116        (WebCore::BitmapImage::draw):
197117        (WebCore):
197118
1971192012-10-24  Alexey Proskuryakov  <ap@apple.com>
197120
197121        Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
197122
197123        * WebCore.vcproj/WebCore.vcproj:
197124
1971252012-10-24  Chris Fleizach  <cfleizach@apple.com>
197126
197127        AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
197128        https://bugs.webkit.org/show_bug.cgi?id=100204
197129
197130        Reviewed by Beth Dakin.
197131
197132        Remove the "range" role as a valid ARIA role.
197133
197134        Test: platform/mac/accessibility/aria-slider-value.html
197135
197136        * accessibility/AccessibilityObject.cpp:
197137        (WebCore::createARIARoleMap):
197138
1971392012-10-24  Florin Malita  <fmalita@chromium.org>
197140
197141        [Chromium] SVG repaint issues
197142        https://bugs.webkit.org/show_bug.cgi?id=99874
197143
197144        Reviewed by Levi Weintraub.
197145
197146        RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
197147        but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
197148        adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
197149        half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
197150        painting at the wrong location.
197151
197152        This can be avoided by using localToBorderBoxTransform() directly, which (unlike
197153        localToParentTransform()) doesn't perform rounding.
197154
197155        No new tests: existing pixel results cover this change after rebaseline.
197156
197157        * rendering/svg/RenderSVGRoot.cpp:
197158        (WebCore::RenderSVGRoot::paintReplaced):
197159
1971602012-10-24  Levi Weintraub  <leviw@chromium.org>
197161
197162        Fixing the Chromium build after typo in r132367.
197163
197164        * WebCore.gypi:
197165
1971662012-10-24  Nico Weber  <thakis@chromium.org>
197167
197168        [chromium] Respect image orientation in image dragging code
197169        https://bugs.webkit.org/show_bug.cgi?id=100200
197170
197171        Reviewed by Tony Chang.
197172
197173        Based on the corresponding code in DragImageMac.mm.  The image
197174        rotation code isn't hooked up yet, so no observable effect for now.
197175
197176        * platform/chromium/DragImageChromiumSkia.cpp:
197177        (WebCore::createDragImageFromImage):
197178
1971792012-10-24  Michael Saboff  <msaboff@apple.com>
197180
197181        Code cleanup after r132165
197182        https://bugs.webkit.org/show_bug.cgi?id=100135
197183
197184        Reviewed by Geoffrey Garen.
197185
197186        Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
197187
197188        Code clean up without functional changes, therefore no new tests.
197189
197190        * xml/parser/MarkupTokenBase.h:
197191        (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
197192        (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
197193        (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
197194        (WebCore::MarkupTokenBase::name): Elimintated inline.
197195        (WebCore::MarkupTokenBase::nameString): Elimintated inline.
197196
1971972012-10-24  Toni Barzic  <tbarzic@chromium.org>
197198
197199        Crash when trying to write exception message to null console
197200        https://bugs.webkit.org/show_bug.cgi?id=99658
197201
197202        Reviewed by Adam Barth.
197203
197204        DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
197205        This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
197206        The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
197207
197208        Test: fast/workers/worker-exception-during-navigation.html
197209
197210        * dom/Document.cpp:
197211        (WebCore::Document::addMessage):
197212
1972132012-10-24  Cosmin Truta  <ctruta@rim.com>
197214
197215        Incorrect conditional use of LogFTP
197216        https://bugs.webkit.org/show_bug.cgi?id=100260
197217
197218        Reviewed by Alexey Proskuryakov.
197219
197220        Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
197221        without breaking the build.
197222
197223        * html/FTPDirectoryDocument.cpp:
197224        (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
197225
1972262012-10-23  Alexey Proskuryakov  <ap@apple.com>
197227
197228        Add a strategy for shared workers
197229        https://bugs.webkit.org/show_bug.cgi?id=100165
197230
197231        Reviewed by Brady Eidson.
197232
197233        Also a little bit of alphabetization.
197234
197235        * WebCore.gypi:
197236        * WebCore.vcproj/WebCore.vcproj:
197237        * WebCore.xcodeproj/project.pbxproj:
197238        * platform/PlatformStrategies.h:
197239        * workers/SharedWorkerStrategy.h: Added.
197240
1972412012-10-24  David Barton  <dbarton@mathscribe.com>
197242
197243        [MathML] Timeouts on linux after r132264
197244        https://bugs.webkit.org/show_bug.cgi?id=100202
197245
197246        Reviewed by Eric Seidel.
197247
197248        When building a stretched operator, such as a large parenthesis or bracket, we need to
197249        check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
197250        can occur if the glyph is missing on the host system.
197251
197252        Tested by existing tests.
197253
197254        * rendering/mathml/RenderMathMLOperator.cpp:
197255        (WebCore::RenderMathMLOperator::updateFromElement):
197256
1972572012-10-24  Parth Patel  <parpatel@rim.com>
197258
197259        [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
197260        Generic ThreadUnsafe Singleton
197261        https://bugs.webkit.org/show_bug.cgi?id=100145
197262
197263        Reviewed by Rob Buis.
197264
197265        Extending the singletons to generic singleton and changing
197266        getInstance() in IconDatabaseClientBlackBerry to instance()
197267        to match the generic singleton template.
197268
197269        Reviewed Internally by Yong Li.
197270
197271        Tests are not modified and added as there was no behavioural change.
197272
197273        * platform/blackberry/SharedTimerBlackBerry.cpp:
197274        (SharedTimerBlackBerry):
197275        (WebCore):
197276
1972772012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
197278
197279        Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
197280        https://bugs.webkit.org/show_bug.cgi?id=100254
197281
197282        Reviewed by Yury Semikhatsky.
197283
197284        * loader/ResourceBuffer.cpp:
197285        (WebCore::ResourceBuffer::reportMemoryUsage):
197286        (WebCore):
197287        * loader/ResourceBuffer.h:
197288        (ResourceBuffer):
197289
1972902012-10-24  Eric Carlson  <eric.carlson@apple.com>
197291
197292        Allow ports to override text track rendering style
197293        https://bugs.webkit.org/show_bug.cgi?id=97800
197294        <rdar://problem/12044964>
197295
197296        Unreviewed Build fix.
197297        
197298        CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
197299
197300        * page/CaptionUserPreferencesMac.mm:
197301        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
197302
1973032012-10-24  Eric Carlson  <eric.carlson@apple.com>
197304
197305        Allow ports to override text track rendering style
197306        https://bugs.webkit.org/show_bug.cgi?id=97800
197307        <rdar://problem/12044964>
197308
197309        Reviewed by Maciej Stachowiak.
197310
197311        * WebCore.exp.in: Export new WebkitSystemInterface functions.
197312        * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
197313            and CaptionUserPreferencesMac.h.
197314
197315        * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
197316            background, and text independently.
197317
197318        * html/HTMLMediaElement.cpp:
197319        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
197320        (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
197321        (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
197322        (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
197323        (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
197324        (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
197325            un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
197326        (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
197327        (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
197328            setClosedCaptionsVisible
197329        * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
197330
197331        * html/shadow/MediaControlElements.cpp:
197332        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
197333            variable. Get caption font scale from theme instead of hard coding.
197334        * html/shadow/MediaControlElements.h:
197335
197336        * html/track/TextTrack.cpp:
197337        (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
197338        (WebCore::TextTrack::isValidKindKeyword): Ditto.
197339        (WebCore::TextTrack::setKind): Ditto.
197340        (WebCore::TextTrack::setMode): Ditto.
197341        (WebCore::TextTrack::mode): Ditto.
197342        * html/track/TextTrack.h:
197343        (WebCore::TextTrack::create): Ditto.
197344        (WebCore::TextTrack::kind): Ditto.
197345        (WebCore::TextTrack::label): Ditto.
197346        (WebCore::TextTrack::setLabel): Ditto.
197347        (WebCore::TextTrack::language): Ditto.
197348        (WebCore::TextTrack::setLanguage): Ditto.
197349
197350        * html/track/TextTrackCue.cpp:
197351        (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
197352        (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
197353            shadow pseudo id so it can be used elsewhere.
197354        (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
197355        (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
197356            shadow pseudo id so it can be used elsewhere.
197357        (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
197358        (WebCore::TextTrackCue::updateDisplayTree):
197359        * html/track/TextTrackCue.h:
197360
197361        * page/CaptionUserPreferences.h: Added.
197362        * page/CaptionUserPreferencesMac.h: Added.
197363        * page/CaptionUserPreferencesMac.mm: Added.
197364        (WebCore::userCaptionPreferencesChangedNotificationCallback):
197365        (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
197366        (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
197367        (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
197368        (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
197369        (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
197370        (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
197371            background color preference.
197372        (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
197373        (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
197374        (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
197375            or webkit-text-stroke property.
197376        (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
197377            with a color value.
197378        (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
197379            text with the user's preferred text edge stye.
197380        (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
197381            text with the user's preferred font.
197382        (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
197383            with the user's preferred style.
197384        (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
197385        (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
197386        (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
197387            changes listener.
197388        (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
197389            changes listener.
197390        (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
197391            inject it into the current page group, otherwise remove injected sheet.
197392
197393        * page/PageGroup.cpp:
197394        (WebCore::PageGroup::captionPreferences):
197395        (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
197396            of the same name.
197397        (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
197398        (WebCore::PageGroup::userPrefersCaptions): Ditto.
197399        (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
197400        (WebCore::PageGroup::captionFontSizeScale): Ditto.
197401        * page/PageGroup.h:
197402
197403        * platform/mac/WebCoreSystemInterface.h: Updated.
197404        * platform/mac/WebCoreSystemInterface.mm: Ditto.
197405
1974062012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
197407
197408        Web Inspector: Introduce workspace provider as a content providing backend for project.
197409        https://bugs.webkit.org/show_bug.cgi?id=100244
197410
197411        Reviewed by Pavel Feldman.
197412
197413        Introduced WorkspaceProvider interface as a content providing backend for project.
197414        Added NetworkWorkspaceProvider as a network based (default) implementation.
197415
197416        * WebCore.gypi:
197417        * WebCore.vcproj/WebCore.vcproj:
197418        * inspector/compile-front-end.py:
197419        * inspector/front-end/CompilerScriptMapping.js:
197420        (WebInspector.CompilerScriptMapping):
197421        * inspector/front-end/DebuggerScriptMapping.js:
197422        (WebInspector.DebuggerScriptMapping):
197423        * inspector/front-end/NetworkUISourceCodeProvider.js:
197424        (WebInspector.NetworkUISourceCodeProvider):
197425        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
197426        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
197427        (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
197428        * inspector/front-end/NetworkWorkspaceProvider.js: Added.
197429        (WebInspector.NetworkWorkspaceProvider):
197430        (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
197431        (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
197432        (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
197433        (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
197434        (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
197435        (WebInspector.NetworkWorkspaceProvider.prototype.reset):
197436        * inspector/front-end/SASSSourceMapping.js:
197437        (WebInspector.SASSSourceMapping):
197438        (_bindUISourceCode):
197439        * inspector/front-end/ScriptSnippetModel.js:
197440        (WebInspector.ScriptSnippetModel):
197441        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
197442        * inspector/front-end/WebKit.qrc:
197443        * inspector/front-end/Workspace.js:
197444        (WebInspector.FileDescriptor):
197445        (WebInspector.WorkspaceProvider):
197446        (WebInspector.WorkspaceProvider.prototype.requestFileContent):
197447        (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
197448        (WebInspector.WorkspaceProvider.prototype.addEventListener):
197449        (WebInspector.WorkspaceProvider.prototype.removeEventListener):
197450        (WebInspector.Project):
197451        (WebInspector.Project.prototype.reset):
197452        (WebInspector.Project.prototype._fileAdded):
197453        (WebInspector.Project.prototype._fileRemoved):
197454        (WebInspector.Project.prototype.requestFileContent):
197455        (WebInspector.Project.prototype.searchInFileContent):
197456        (WebInspector.Workspace):
197457        (WebInspector.Workspace.prototype.addProject):
197458        (WebInspector.Workspace.prototype.project):
197459        * inspector/front-end/inspector.html:
197460        * inspector/front-end/inspector.js:
197461
1974622012-10-24  Nikita Vasilyev  <me@elv1s.ru>
197463
197464        Web Inspector: Styles pane: Don't select whole value when I select just a part
197465        https://bugs.webkit.org/show_bug.cgi?id=100242
197466
197467        Reviewed by Alexander Pavlov.
197468
197469        * inspector/front-end/StylesSidebarPane.js:
197470        (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
197471        (WebInspector.StylePropertyTreeElement.prototype):
197472
1974732012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
197474
197475        Web Inspector: UiSourceCode should rely on the workspace as a content provider.
197476        https://bugs.webkit.org/show_bug.cgi?id=100216
197477
197478        Reviewed by Pavel Feldman.
197479
197480        Workspace is now passed to UISourceCode to be used as a content provider.
197481        Content providers are now stored in the workspace/project.
197482        Next step would be to move content providers to workspace providers.
197483
197484        * inspector/front-end/BreakpointManager.js:
197485        (WebInspector.BreakpointManager.breakpointStorageId):
197486        * inspector/front-end/UISourceCode.js:
197487        (WebInspector.UISourceCode):
197488        (WebInspector.UISourceCode.prototype.contentType):
197489        (WebInspector.UISourceCode.prototype.requestContent):
197490        (WebInspector.UISourceCode.prototype.requestOriginalContent):
197491        (WebInspector.UISourceCode.prototype._commitContent):
197492        (WebInspector.UISourceCode.prototype.searchInContent):
197493        * inspector/front-end/Workspace.js:
197494        (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
197495        (WebInspector.Project):
197496        (WebInspector.Project.prototype.addUISourceCode):
197497        (WebInspector.Project.prototype.removeUISourceCode):
197498        (WebInspector.Project.prototype.uiSourceCodes):
197499        (WebInspector.Project.prototype.requestFileContent):
197500        (WebInspector.Project.prototype.searchInFileContent):
197501        (WebInspector.Workspace):
197502        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
197503        (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
197504        (WebInspector.Workspace.prototype.reset):
197505
1975062012-10-24  Zeno Albisser  <zeno@webkit.org>
197507
197508        Implement GraphicsSurface for Windows.
197509        https://bugs.webkit.org/show_bug.cgi?id=98147
197510
197511        Reviewed by Kenneth Rohde Christiansen.
197512
197513        * Target.pri:
197514            Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
197515        * platform/graphics/surfaces/GraphicsSurface.h:
197516            Add typedef for PlatformGraphicsSurface on Windows.
197517        * platform/graphics/surfaces/GraphicsSurfaceToken.h:
197518            Add typedef for BufferHandle on Windows.
197519        (GraphicsSurfaceToken):
197520        * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
197521            The GraphicsSurface implementation on Windows relies on the
197522            availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
197523            For Qt this requirements are implicitly satisfied, when Qt is built
197524            on Windows and QT_CONFIG contains OpenGLES2.
197525            The GraphicsSurface then renders a given texture onto an offscreen
197526            pixel buffer surface, queries the surface pointer using the
197527            EGL_ANGLE_query_surface_pointer extension, and transmits the received
197528            surface pointer (share handle) over IPC.
197529            On the UIProcess side, the surface pointer can then be resolved
197530            using eglCreatePbufferFromClientBuffer.
197531        (WebCore):
197532        (WebCore::loadShader):
197533            Initialize the shaders needed for drawing onto the GraphicsSurface.
197534        (GraphicsSurfacePrivate):
197535        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
197536            In case of the instance being on the WebProcess side,
197537            create an EGLContext that shares the texture objects with the provided
197538            share context. Also create two pixel buffer surfaces, one as front- and
197539            one as backbuffer.
197540            Query the surface pointers for the pixel buffer surfaces and initialize
197541            the GraphicsSurfaceToken that can be passed over IPC later.
197542        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
197543            Release all aquired resources and destroy the pixel buffer surfaces.
197544            Also close the EGL-Display connection.
197545        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
197546            Make the belonging context current on the back buffer surface
197547            and use drawTexture() to draw the provided texture onto the GraphicsSurface.
197548        (WebCore::GraphicsSurfacePrivate::makeCurrent):
197549            Save the previously current context, then make the context belonging
197550            to the GraphicsSurface current.
197551        (WebCore::GraphicsSurfacePrivate::doneCurrent):
197552            Restore the context that was current before calling makeCurrent().
197553        (WebCore::GraphicsSurfacePrivate::swapBuffers):
197554            Swap front and back buffer surfaces and handles.
197555        (WebCore::GraphicsSurfacePrivate::token):
197556        (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
197557            This function is meant to be called from the UIProcess side.
197558            If no front buffer surface has been created before for the current
197559            front buffer handle, one will be created.
197560            Then eglBindTexImage will be used to actually bind the current
197561            front buffer surface to a texture as a source for drawing.
197562        (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
197563        (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
197564        (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
197565        (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
197566            Free the resources related to the front buffer surface.
197567            On the UIProcess side we never actually bind the back buffer.
197568        (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
197569            Initialize and link the shader programs necessary for drawing
197570            onto the GraphicsSurface.
197571        (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
197572            Creates a single pixel buffer surface from a share Handle.
197573            This function will be called on the UIProcess side,
197574            for the front buffer handle, whenever the buffers have been swapped.
197575        (WebCore::GraphicsSurfacePrivate::drawTexture):
197576            The WebProcess uses this function to draw a given
197577            texture onto the GraphicsSurface's back buffer.
197578        (WebCore::GraphicsSurface::platformExport):
197579        (WebCore::GraphicsSurface::platformGetTextureID):
197580        (WebCore::GraphicsSurface::platformCopyToGLTexture):
197581        (WebCore::GraphicsSurface::platformCopyFromTexture):
197582        (WebCore::GraphicsSurface::platformPaintToTextureMapper):
197583            Uses TextureMapperGL::drawTexture() to draw the front buffer texture
197584            to the TextureMapper on the UIProcess side.
197585        (WebCore::GraphicsSurface::platformFrontBuffer):
197586        (WebCore::GraphicsSurface::platformSwapBuffers):
197587        (WebCore::GraphicsSurface::platformCreate):
197588        (WebCore::GraphicsSurface::platformImport):
197589        (WebCore::GraphicsSurface::platformLock):
197590        (WebCore::GraphicsSurface::platformUnlock):
197591        (WebCore::GraphicsSurface::platformDestroy):
197592
1975932012-09-27  Yury Semikhatsky  <yurys@chromium.org>
197594
197595        Web Inspector: provide memory instrumentation for ListHashSet
197596        https://bugs.webkit.org/show_bug.cgi?id=97786
197597
197598        Reviewed by Vsevolod Vlasov.
197599
197600        Switched existing usages of addListHashSet to the generic instrumentation mechanism
197601        as it should work just just fine now that there is a memory instrumentation of
197602        ListHashSet.
197603
197604        * dom/DocumentEventQueue.cpp:
197605        * dom/DocumentStyleSheetCollection.cpp:
197606        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
197607        * loader/cache/CachedResourceLoader.cpp:
197608        (WebCore::CachedResourceLoader::reportMemoryUsage):
197609
1976102012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
197611
197612        [BlackBerry] Credentials not re-used for a redirected request to the same domain
197613        https://bugs.webkit.org/show_bug.cgi?id=100193
197614
197615        Reviewed by George Staikos.
197616
197617        We should store the credentials in the redirection response handler, if the request is challenged.
197618        Because the redirect response suggests the authentication succeeds. 
197619
197620        Test: http://browsertest01.rim.net/authbasic
197621
197622        * platform/network/blackberry/NetworkJob.cpp:
197623        (WebCore::NetworkJob::handleRedirect):
197624
1976252012-10-24  Alexander Pavlov  <apavlov@chromium.org>
197626
197627        Web Inspector: Implement CSS reload upon related SASS resource saving
197628        https://bugs.webkit.org/show_bug.cgi?id=98024
197629
197630        Reviewed by Vsevolod Vlasov.
197631
197632        SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
197633        Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
197634        the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
197635
197636        * English.lproj/localizedStrings.js:
197637        * inspector/front-end/SASSSourceMapping.js:
197638        (WebInspector.SASSSourceMapping):
197639        (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
197640        (WebInspector.SASSSourceMapping.prototype._reloadCSS):
197641        (_bindUISourceCode):
197642        (_addCSSURLforSASSURL):
197643        * inspector/front-end/Settings.js:
197644        * inspector/front-end/SettingsScreen.js:
197645        (WebInspector.GenericSettingsTab):
197646
1976472012-10-23  Yury Semikhatsky  <yurys@chromium.org>
197648
197649        Memory instrumentation: don't count agent-specific front-ends separately
197650        https://bugs.webkit.org/show_bug.cgi?id=100087
197651
197652        Reviewed by Alexander Pavlov.
197653
197654        Pointers to domain-specific inspector front-end interfaces are reported as
197655        weak pointers instead of members to avoid double-counting.
197656
197657        Test by comparing set of reported instrumented objects with the set of objects
197658        allocated by tcmalloc.
197659
197660        * inspector/InspectorDOMStorageAgent.cpp:
197661        (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
197662        * inspector/InspectorDOMStorageResource.cpp:
197663        (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
197664        * inspector/InspectorProfilerAgent.cpp:
197665        (WebCore::InspectorProfilerAgent::reportMemoryUsage):
197666
1976672012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
197668
197669        Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
197670        https://bugs.webkit.org/show_bug.cgi?id=100203
197671
197672        Unreviewed Build fix.
197673
197674        Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
197675        set and STYLE_SCOPED is not.
197676
197677        No new tests, no behavior change.
197678
197679        * css/StyleResolver.h:
197680        (WebCore::StyleResolver::ensureScopeResolver):
197681
1976822012-10-23  Andreas Kling  <kling@webkit.org>
197683
197684        Remove specialized hash traits for GlyphPages.
197685        <http://webkit.org/b/100185>
197686
197687        Reviewed by Dan Bernstein.
197688
197689        Now that the default minimum table size has been lowered for all tables, there's no need
197690        for this specialization anymore.
197691
197692        * platform/graphics/FontFallbackList.h:
197693        (FontFallbackList):
197694
1976952012-10-23  Kent Tamura  <tkent@chromium.org>
197696
197697        Multiple fields input UI: Don't use CSS properties for physical direction
197698        https://bugs.webkit.org/show_bug.cgi?id=100195
197699
197700        Reviewed by Kentaro Hara.
197701
197702        CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
197703        not direction-neutral, and makes unexpected appearance in RTL. We should
197704        use -webkit-padding-start or -webkit-margin-start.
197705
197706        No new tests. Covered by date-multiple-fields-appearance-l10n.html and
197707        month-multiple-fields-appearance-l10n.html
197708
197709        * css/html.css:
197710        (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
197711        (input[type="datetime"]): Ditto.
197712        (input[type="datetime-local"]): Ditto.
197713        (input[type="month"]): Ditto.
197714        (input[type="time"]): Ditto.
197715        (input[type="week"]): Ditto.
197716        (input[type="week"]::-webkit-inner-spin-button):
197717        Use -webkit-margin-start. Also use an integral pixel size instead of
197718        avoid a fractional relative size to avoid subpixel layout rounding.
197719
1977202012-10-23  Dan Bernstein  <mitz@apple.com>
197721
197722        The font cache evicts inactive font data too aggressively when not under memory pressure
197723        https://bugs.webkit.org/show_bug.cgi?id=100194
197724
197725        Reviewed by Sam Weinig.
197726
197727        Increasing the number of inactive font data objects the cache may hold increases the hit
197728        rate, leading to improved page load performance. When memory pressure is detected,
197729        MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
197730        increasing here.
197731
197732        * platform/graphics/FontCache.cpp:
197733        (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
197734        to 225, and the number of objects to evict once the limit is met from 20 to 25.
197735
1977362012-10-23  Takashi Sakamoto  <tasak@google.com>
197737
197738        [Shadow DOM] Needs @host rule for ShadowDOM styling
197739        https://bugs.webkit.org/show_bug.cgi?id=88606
197740
197741        Reviewed by Hajime Morita.
197742
197743        Implemented @host-@rules according to the shadow dom spec:
197744        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
197745        The design doc is:
197746        https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
197747
197748        Test: fast/dom/shadow/athost-atrules.html
197749
197750        * css/CSSGrammar.y.in:
197751        Added rules for parsing @host @-rules.
197752        * css/CSSParser.cpp:
197753        (WebCore::CSSParser::detectAtToken):
197754        Added a new token "@host".
197755        (WebCore::CSSParser::createHostRule):
197756        Added a new method to create an @host @-rule, which is invoked from
197757        (WebCore):
197758        * css/CSSParser.h:
197759        Added a declaration of the above new method: createHostRule.
197760        * css/CSSPropertySourceData.h:
197761        Added HOST_RULE to enum Type.
197762        * css/RuleSet.cpp:
197763        (WebCore::RuleData::RuleData):
197764        Modified multiple bool arguments into one argument. Now it
197765        uses combinations of values from enum AddRuleFlags.
197766        (WebCore::RuleSet::addRule):
197767        (WebCore::RuleSet::addRegionRule):
197768        (WebCore::RuleSet::addStyleRule):
197769        Updated according to the RuleData's change.
197770        Modified to Invoke increaseSpecificity if the given rule is @host
197771        @-rule.
197772        (WebCore::RuleSet::addRulesFromSheet):
197773        Invoked addHostRule if the given rule is @host @-rule.
197774        * css/RuleSet.h:
197775        (RuleData):
197776        (WebCore::RuleData::increaseSpecificity):
197777        Added a new method to increase selector's specificity. This method is
197778        used to make @host @-rules' specificity larger than normal author
197779        rules' specificity.
197780        (RuleSet):
197781        * css/StyleResolver.cpp:
197782        (WebCore::makeRuleSet):
197783        (WebCore::StyleResolver::addHostRule):
197784        A wrapper method to invoke StyleScopeResolver::addHostRule. The method
197785        is used to make only StyleResolver know an implementation detail about
197786        class StyleScopeResolver.
197787        (WebCore::StyleResolver::appendAuthorStylesheets):
197788        Updated according to the RuleData's change.
197789        (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
197790        A new method to find matched host rules when an element is given.
197791        This method invokes
197792        StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
197793        matched host rules.
197794        (WebCore):
197795        (WebCore::StyleResolver::matchHostRules):
197796        A new method to find matched host rules when an element is given.
197797        This method invokes StyleScopeResolver::matchHostRules to find
197798        matched host rules.
197799        (WebCore::StyleResolver::matchScopedAuthorRules):
197800        Modified to invoke matchHostRules.
197801        (WebCore::StyleResolver::locateSharedStyle):
197802        Disable sibling style cache if the given element is a shadow host and
197803        any @host @-rules are applied to the element.
197804        * css/StyleResolver.h:
197805        (WebCore::StyleResolver::ensureScopeResolver):
197806        If no scopeResolver is created, create and return the instance.
197807        If created, just return the instance.
197808        (StyleResolver):
197809        * css/StyleRule.cpp:
197810        (WebCore::StyleRuleBase::reportMemoryUsage):
197811        (WebCore::StyleRuleBase::destroy):
197812        (WebCore::StyleRuleBase::copy):
197813        (WebCore::StyleRuleBase::createCSSOMWrapper):
197814        (WebCore::StyleRuleHost::StyleRuleHost):
197815        Implemented class StyleRuleHost. The class is almost the same as
197816        StyleRuleBlock except type.
197817        (WebCore):
197818        * css/StyleRule.h:
197819        (WebCore::StyleRuleBase::isHostRule):
197820        (StyleRuleHost):
197821        (WebCore::StyleRuleHost::create):
197822        (WebCore::StyleRuleHost::copy):
197823        (WebCore):
197824        * css/StyleScopeResolver.cpp:
197825        (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
197826        A new method to create a new RuleSet for the given shadow root.
197827        (WebCore):
197828        (WebCore::StyleScopeResolver::atHostRuleSetFor):
197829        A new private inline method to obtain @host @-rules declared in
197830        the given shadow root.
197831        (WebCore::StyleScopeResolver::addHostRule):
197832        Added a new method to register @host @-rules with shadow roots.
197833        (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
197834        A new method to find whether any @host @-rules are applied to
197835        the given host element.
197836        (WebCore::StyleScopeResolver::matchHostRules):
197837        A new method to find matched rules for the given host element.
197838        (WebCore::StyleScopeResolver::reportMemoryUsage):
197839        * css/StyleScopeResolver.h:
197840        (WebCore):
197841        (StyleScopeResolver):
197842        * css/StyleSheetContents.cpp:
197843        (WebCore::childRulesHaveFailedOrCanceledSubresources):
197844
1978452012-10-23  Andreas Kling  <kling@webkit.org>
197846
197847        REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
197848        <http://webkit.org/b/100065>
197849
197850        Reviewed by Anders Carlsson.
197851
197852        Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
197853        collisions. This will need a proper fix at some point.
197854
197855        * plugins/PluginDatabase.h:
197856        * plugins/PluginPackage.h:
197857        (PluginPackageHashTraits):
197858
1978592012-10-23  Simon Fraser  <simon.fraser@apple.com>
197860
197861        Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
197862        https://bugs.webkit.org/show_bug.cgi?id=100159
197863
197864        Reviewed by Tim Horton.
197865
197866        Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
197867        through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
197868
197869        Test: platform/mac/tiled-drawing/use-tiled-drawing.html
197870
197871        * page/Frame.h:
197872        * platform/graphics/GraphicsLayer.cpp:
197873        (showGraphicsLayerTree):
197874        * platform/graphics/GraphicsLayer.h:
197875        (WebCore::GraphicsLayer::tiledBacking):
197876        * platform/graphics/TiledBacking.h:
197877        * platform/graphics/ca/GraphicsLayerCA.cpp:
197878        (WebCore::GraphicsLayerCA::tiledBacking):
197879        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
197880        * platform/graphics/ca/GraphicsLayerCA.h:
197881        (GraphicsLayerCA):
197882        * platform/graphics/ca/mac/TileCache.h:
197883        (WebCore::TileCache::tileCoverageRect):
197884        (TileCache):
197885        * platform/graphics/ca/mac/TileCache.mm:
197886        (WebCore::TileCache::computeTileCoverageRect):
197887        (WebCore::TileCache::revalidateTiles):
197888        * rendering/RenderLayerCompositor.cpp:
197889        (WebCore::RenderLayerCompositor::layerTreeAsText):
197890        * testing/Internals.cpp:
197891        (WebCore::Internals::layerTreeAsText):
197892        * testing/Internals.h:
197893        * testing/Internals.idl:
197894
1978952012-10-23  Simon Fraser  <simon.fraser@apple.com>
197896
197897        Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
197898        https://bugs.webkit.org/show_bug.cgi?id=100187
197899        <rdar://problem/12546770>
197900
197901        Reviewed by Dan Bernstein.
197902
197903        Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
197904        to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
197905        background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
197906        to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
197907        that require frequent flushing, such as those running animated GIFs.
197908        
197909        Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
197910        when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
197911        
197912        Not testable because we can't test detaching and re-adding web views in DRT/WTR.
197913
197914        * rendering/RenderLayerCompositor.cpp:
197915        (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
197916        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
197917        is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
197918        (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
197919        saying that we're the flush root.
197920        * rendering/RenderLayerCompositor.h:
197921        (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
197922
1979232012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
197924
197925        Unreviewed, rolling out r132276.
197926        http://trac.webkit.org/changeset/132276
197927        https://bugs.webkit.org/show_bug.cgi?id=100189
197928
197929        It broke the Qt-WK2 build intentionally (Requested by
197930        Ossy_night on #webkit).
197931
197932        * page/Frame.h:
197933        * platform/graphics/GraphicsLayer.cpp:
197934        (showGraphicsLayerTree):
197935        * platform/graphics/GraphicsLayer.h:
197936        (WebCore::GraphicsLayer::tiledBacking):
197937        * platform/graphics/TiledBacking.h:
197938        * platform/graphics/ca/GraphicsLayerCA.cpp:
197939        (WebCore::GraphicsLayerCA::tiledBacking):
197940        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
197941        * platform/graphics/ca/GraphicsLayerCA.h:
197942        (GraphicsLayerCA):
197943        * platform/graphics/ca/mac/TileCache.h:
197944        * platform/graphics/ca/mac/TileCache.mm:
197945        (WebCore::TileCache::tileCoverageRect):
197946        (WebCore::TileCache::revalidateTiles):
197947        * rendering/RenderLayerCompositor.cpp:
197948        (WebCore::RenderLayerCompositor::layerTreeAsText):
197949        * testing/Internals.cpp:
197950        (WebCore::Internals::layerTreeAsText):
197951        * testing/Internals.h:
197952        * testing/Internals.idl:
197953
1979542012-10-23  Philip Rogers  <pdr@google.com>
197955
197956        Add extra check for data() in PageSerializer.
197957        https://bugs.webkit.org/show_bug.cgi?id=99102
197958
197959        Reviewed by Eric Seidel.
197960
197961        The image returned from imageForRenderer() does not contain the raw SVG data
197962        so this patch adds a check for image->image()->data() before writing SVG
197963        in PageSerializer::addImageToResources.
197964
197965        Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
197966
197967        * page/PageSerializer.cpp:
197968        (WebCore::PageSerializer::addImageToResources):
197969
1979702012-10-23  Kent Tamura  <tkent@chromium.org>
197971
197972        Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
197973        https://bugs.webkit.org/show_bug.cgi?id=100129
197974
197975        Reviewed by Kentaro Hara.
197976
197977        We're going to use appendAsLDMLLiteral in other code, and it is
197978        related to DateTimeFormat class.  So we move it to DateTimeFormat
197979        class as quoteAndAppendLiteral.
197980
197981        No new tests because of no behavior change.
197982
197983        * platform/text/DateTimeFormat.cpp:
197984        (WebCore::DateTimeFormat::quoteAndAppendLiteral):
197985        Moved from LocaleWin.cpp
197986        * platform/text/DateTimeFormat.h:
197987        Declare StringBuilder by wtf/Forward.h. It also declares String.
197988        (DateTimeFormat): Declare quoteAndAppendLiteral.
197989        * platform/text/LocaleWin.cpp:
197990        (WebCore): Move appendLDMLLiteral to DateTimeFormat.
197991        (WebCore::convertWindowsDateFormatToLDML):
197992        Follow the moving.
197993
1979942012-10-23  Kent Tamura  <tkent@chromium.org>
197995
197996        REGRESSION(r131421): Text baseline is not aligned in some locales
197997        https://bugs.webkit.org/show_bug.cgi?id=100088
197998
197999        Reviewed by Hajime Morita.
198000
198001        Before this patch, the element with ::-webkit-datetime-edit had
198002        -webkit-align-items:center. It was incorrect at all because it
198003        ignores baselines of each of inner fields. We need to change it to
198004        -webkit-align-items:baseline, or stop using -webkit-flex.
198005
198006        However -webkit-align-items:baseline doesn't work because a spin
198007        button element in the element doesn't have the baseline. If we
198008        specified -webkit-align-items:baseline, the spin button would
198009        shift up.
198010
198011        So, we change the element structure for multiple fields input
198012        elements. Before this patch, the structure was:
198013
198014        input
198015          |
198016           - ::-webkit-date-and-time-container (flex cotainer)
198017             |
198018             |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
198019             |  |- ::-webkit-datetime-edit-foo
198020             |  |      :
198021             |  |
198022             |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
198023             |   - ::-webkit-inne-spin-button
198024              - ::-webkit-calendar-picker-indicator
198025
198026        After the patch, the structure will be:
198027
198028        input
198029          |
198030           - ::-webkit-date-and-time-container (flexible box)
198031             |
198032             |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
198033             |  |- ::-webkit-datetime-edit-foo
198034             |  |      :
198035             |  |
198036             |
198037             |- ::-webkit-inne-spin-button
198038              - ::-webkit-calendar-picker-indicator
198039
198040        Because the spin button owner is date-and-time-container, we don't
198041        need to make the datetime-edit element a flex container.
198042
198043        Also, we had rounding error by subpixel layout. To avoid it, we
198044        stop using fractional paddings.
198045
198046        In order to implement this, we need to change the SpinButtonOwner
198047        interface provider from DateTimeEditElement to
198048        BaseMultipleFieldsDateAndTimeInputType.
198049
198050        No new tests. Covered by month-multiple-fields-appearance-l10n.html.
198051
198052        * css/html.css:
198053        (input::-webkit-datetime-edit): Stop making this a flex
198054        container. Inner fields in this use the single baseline.
198055        (input::-webkit-datetime-edit-ampm-field):
198056        Don't use fractional paddings to avoid rounding erros of subpixel
198057        layout.  Use integral margin instead to avoid overwrap of focus
198058        ring and background-color of the field.
198059        (input::-webkit-datetime-edit-day-field): Ditto.
198060        (input::-webkit-datetime-edit-hour-field): Ditto.
198061        (input::-webkit-datetime-edit-millisecond-field): Ditto.
198062        (input::-webkit-datetime-edit-minute-field): Ditto.
198063        (input::-webkit-datetime-edit-month-field): Ditto.
198064        (input::-webkit-datetime-edit-second-field): Ditto.
198065        (input::-webkit-datetime-edit-week-field): Ditto.
198066        (input::-webkit-datetime-edit-year-field): Ditto.
198067        (input::-webkit-date-and-time-container): Ditto.
198068
198069        * html/BaseMultipleFieldsDateAndTimeInputType.h:
198070        (BaseMultipleFieldsDateAndTimeInputType): Overrides
198071        SpinButtonOwner functions, and add m_spinButtonElement.
198072        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
198073        (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
198074        Just delegate to DateTimeEditElement::focusIfNoFocus.
198075        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
198076        Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
198077        (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
198078        Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
198079        (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
198080        Delegate to DateTimeEditElement::stepDown.
198081        (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
198082        Delegate to DateTimeEditElement::stepUp.
198083        (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
198084        Initialize m_spinButtonElement.
198085        (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
198086        Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
198087        (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
198088        Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
198089        (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
198090        Take care of SpinButtonElement.
198091        (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
198092        Release capture of SpinButtonElement. This corresponds to the old
198093        code of DateTimeEditElement::updateUIState.
198094        (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
198095
198096        * html/TextFieldInputType.h:
198097        Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
198098
198099        * html/shadow/DateTimeEditElement.h:
198100        (DateTimeEditElement): Remove SpniButtonOwner implementation,
198101        m_spinButton, and rename some functions.
198102        * html/shadow/DateTimeEditElement.cpp:
198103        (WebCore::DateTimeEditElement::DateTimeEditElement):
198104        Remove m_spinButton.
198105        (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
198106        (WebCore::DateTimeEditElement::focusIfNoFocus):
198107        Renamed from focusAndSelectSpinButtonOwner. This is called
198108        BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
198109        (WebCore::DateTimeEditElement::layout):
198110        Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
198111        (WebCore::DateTimeEditElement::defaultEventHandler):
198112        Move the code for m_spinButton to
198113        BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
198114        (WebCore::DateTimeEditElement::hasFocusedField): A helper for
198115        BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
198116        (WebCore::DateTimeEditElement::stepDown): A helper for
198117        BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
198118        (WebCore::DateTimeEditElement::stepUp): A helper for
198119        BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
198120        (WebCore::DateTimeEditElement::updateUIState): Move the code to
198121        BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
198122        and readonlyAttributeChanged.
198123
1981242012-10-23  Andreas Kling  <kling@webkit.org>
198125
198126        Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
198127        <http://webkit.org/b/100123>
198128
198129        Reviewed by Anders Carlsson.
198130
198131        Remove one pointer of unintentional padding in the immutable versions of these objects.
198132        583kB progression on Membuster3.
198133
198134        * css/StylePropertySet.cpp:
198135        (WebCore::immutableStylePropertySetSize):
198136        * dom/ElementAttributeData.cpp:
198137        (WebCore::immutableElementAttributeDataSize):
198138
1981392012-10-23  Nate Chapin  <japhet@chromium.org>
198140
198141        Crash in WebCore::SubresourceLoader::willSendRequest.
198142        https://bugs.webkit.org/show_bug.cgi?id=100147
198143
198144        Reviewed by Abhishek Arya.
198145
198146        No new tests. There is a test case that should cover this, but it doesn't
198147        work correctly on many platforms due to its use of testRunner.addURLToRedirect().
198148        See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
198149        Tested manually on http://www.nick.co.uk/shows/spongebob
198150
198151        * loader/SubresourceLoader.cpp:
198152        (WebCore::SubresourceLoader::willSendRequest):
198153
1981542012-10-23  Martin Robinson  <mrobinson@igalia.com>
198155
198156        [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
198157        https://bugs.webkit.org/show_bug.cgi?id=99351
198158
198159        Reviewed by Carlos Garcia Campos.
198160
198161        Instead of connecting to the SoupSession::authenticate signal in the API layer
198162        via a SoupSessionFeature, route the message through the typical WebCore authentication
198163        mechanism. This is a step on the path to having full-blown support for authentication
198164        in the API allowing for custom authentication dialogs and behavior in clients.
198165
198166        No new tests. This should not change behavior.
198167
198168        * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
198169        * loader/ResourceLoader.cpp:
198170        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
198171        * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
198172        carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
198173        is destroyed.
198174        * platform/gtk/GtkAuthenticationDialog.h: ditto.
198175        * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
198176        * platform/network/ResourceHandleInternal.h:
198177        (ResourceHandleInternal): Remove the getter for the initiating page ID.
198178        * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
198179        that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
198180        * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
198181        * platform/network/soup/ResourceError.h:
198182        (ResourceError): Added a factory for authentication errors.
198183        * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
198184        * platform/network/soup/ResourceHandleSoup.cpp:
198185        (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
198186        (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
198187        It's always used now.
198188        (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
198189        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
198190        the authentication challenge to the client.
198191        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
198192        (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
198193        (WebCore::authenicateCallback): Added.
198194        (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
198195
1981962012-10-23  Adam Barth  <abarth@webkit.org>
198197
198198        [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
198199        https://bugs.webkit.org/show_bug.cgi?id=100157
198200
198201        Reviewed by Eric Seidel.
198202
198203        This patch removes the traits template parameter from GCEpilogueVisitor
198204        and makes it mirror GCPrologueVisitor again.
198205
198206        * bindings/v8/V8GCController.cpp:
198207        (WebCore):
198208        (ActiveDOMObjectEpilogueVisitor):
198209        (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
198210        (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
198211        (WebCore::V8GCController::majorGCEpilogue):
198212
1982132012-10-23  Varun Jain  <varunjain@chromium.org>
198214
198215        Context menu generated from touch gestures on textareas has
198216        context of the cursor position instead of the position where the event occurs.
198217        https://bugs.webkit.org/show_bug.cgi?id=99520
198218
198219        Reviewed by Kenneth Rohde Christiansen.
198220
198221        Send a synthetic mouse down event for context menu-summoning-gesture events so
198222        that textareas can correctly set cursors before receiving the context menu event.
198223
198224        Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
198225
198226        * page/EventHandler.cpp:
198227        (WebCore::EventHandler::handleGestureEvent):
198228        (WebCore::EventHandler::handleGestureTwoFingerTap):
198229        (WebCore):
198230        (WebCore::EventHandler::sendContextMenuEventForGesture):
198231        * page/EventHandler.h:
198232        (EventHandler):
198233
1982342012-10-23  Andy Estes  <aestes@apple.com>
198235
198236        [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
198237        https://bugs.webkit.org/show_bug.cgi?id=100162
198238
198239        Reviewed by Sam Weinig.
198240
198241        * WebCore.exp.in: Exported symbols needed by WebKit2.
198242        * bindings/objc/DOM.mm:
198243        (-[DOMNode textRects]): Moved some logic into Node::textRects()
198244        (everything but the call to updateLayoutIgnorePendingStylesheets()).
198245        * dom/Node.cpp:
198246        (WebCore::Node::textRects):
198247        * dom/Node.h:
198248
1982492012-10-23  Adam Barth  <abarth@webkit.org>
198250
198251        [V8] Remove unused function from DOM wrapper visitor
198252        https://bugs.webkit.org/show_bug.cgi?id=100163
198253
198254        Reviewed by Eric Seidel.
198255
198256        No one overrides these virtual functions. They were added in
198257        http://trac.webkit.org/changeset/73491, but we don't use them in the GC
198258        controller anymore.
198259
198260        * bindings/v8/V8DOMMap.h:
198261        (WebCore::WeakReferenceMap::visit):
198262
1982632012-10-23  Aaron Colwell  <acolwell@chromium.org>
198264
198265        Clear m_mediaSource reference when the MediaSource is closed
198266        https://bugs.webkit.org/show_bug.cgi?id=100047
198267
198268        Reviewed by Eric Carlson.
198269
198270        The m_mediaSource object shouldn't be accessed after the object
198271        transitions to closed so this change simply clears the reference
198272        when that transition happens.
198273
198274        No new tests because the change isn't visible to JavaScript.
198275
198276        * html/HTMLMediaElement.cpp:
198277        (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
198278        (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
198279
1982802012-10-23  Simon Fraser  <simon.fraser@apple.com>
198281
198282        Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
198283        https://bugs.webkit.org/show_bug.cgi?id=100159
198284
198285        Reviewed by Tim Horton.
198286
198287        Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
198288        through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
198289
198290        Test: platform/mac/tiled-drawing/use-tiled-drawing.html
198291
198292        * page/Frame.h:
198293        * platform/graphics/GraphicsLayer.cpp:
198294        (showGraphicsLayerTree):
198295        * platform/graphics/GraphicsLayer.h:
198296        (WebCore::GraphicsLayer::tiledBacking):
198297        * platform/graphics/TiledBacking.h:
198298        * platform/graphics/ca/GraphicsLayerCA.cpp:
198299        (WebCore::GraphicsLayerCA::tiledBacking):
198300        (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
198301        * platform/graphics/ca/GraphicsLayerCA.h:
198302        (GraphicsLayerCA):
198303        * platform/graphics/ca/mac/TileCache.h:
198304        (WebCore::TileCache::tileCoverageRect):
198305        (TileCache):
198306        * platform/graphics/ca/mac/TileCache.mm:
198307        (WebCore::TileCache::computeTileCoverageRect):
198308        (WebCore::TileCache::revalidateTiles):
198309        * rendering/RenderLayerCompositor.cpp:
198310        (WebCore::RenderLayerCompositor::layerTreeAsText):
198311        * testing/Internals.cpp:
198312        (WebCore::Internals::layerTreeAsText):
198313        * testing/Internals.h:
198314        * testing/Internals.idl:
198315
1983162012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
198317
198318        Coordinated Graphics: Enable threaded/IPC animations
198319        https://bugs.webkit.org/show_bug.cgi?id=93146
198320
198321        Reviewed by Kenneth Rohde Christiansen.
198322
198323        Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
198324        across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
198325        and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
198326
198327        Covered by existing animation and compositing tests.
198328
198329        * platform/graphics/GraphicsLayerAnimation.cpp:
198330        (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
198331            Initialize the animation with the startTime instead of the offset.
198332
198333        (WebCore::GraphicsLayerAnimations::getActiveAnimations):
198334        * platform/graphics/GraphicsLayerAnimation.h:
198335        (WebCore::GraphicsLayerAnimation::setState):
198336            Allow setting the pause time as well.
198337
198338        (WebCore::GraphicsLayerAnimation::boxSize):
198339        (WebCore::GraphicsLayerAnimation::startTime):
198340        (WebCore::GraphicsLayerAnimation::pauseTime):
198341        (WebCore::GraphicsLayerAnimation::animation):
198342        (WebCore::GraphicsLayerAnimation::keyframes):
198343        (WebCore::GraphicsLayerAnimation::listsMatch):
198344        (WebCore::GraphicsLayerAnimations::size):
198345        (WebCore::GraphicsLayerAnimations::animations):
198346            Add public accessors to GraphicsLayerAnimation properties.
198347
198348        (GraphicsLayerAnimation):
198349        (GraphicsLayerAnimations):
198350        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
198351        (WebCore::GraphicsLayerTextureMapper::addAnimation):
198352        (WebCore::GraphicsLayerTextureMapper::setAnimations):
198353            Allow replacing the entire list of animations.
198354
198355        (WebCore):
198356        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
198357        (GraphicsLayerTextureMapper):
198358        * platform/graphics/texmap/TextureMapperLayer.cpp:
198359        (WebCore::TextureMapperLayer::applyAnimationsRecursively):
198360        (WebCore):
198361        * platform/graphics/texmap/TextureMapperLayer.h:
198362        (TextureMapperLayer):
198363
1983642012-10-23  Chris Rogers  <crogers@google.com>
198365
198366        Change setTargetValueAtTime() to setTargetAtTime()
198367        https://bugs.webkit.org/show_bug.cgi?id=100153
198368
198369        Reviewed by Adam Barth.
198370
198371        The AudioParam method name has changed due to Web Audio API spec review.
198372        Keep legacy support for the old name.
198373
198374        Test: webaudio/audioparam-setTargetAtTime.html
198375
198376        * Modules/webaudio/AudioParam.h:
198377        (WebCore::AudioParam::setTargetAtTime):
198378        * Modules/webaudio/AudioParam.idl:
198379        * Modules/webaudio/AudioParamTimeline.cpp:
198380        (WebCore::AudioParamTimeline::setTargetAtTime):
198381        (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
198382        * Modules/webaudio/AudioParamTimeline.h:
198383        (AudioParamTimeline):
198384
1983852012-10-23  Benjamin Poulain  <benjamin@webkit.org>
198386
198387        [Mac] Remove extraneous conversion to String->NSString
198388        https://bugs.webkit.org/show_bug.cgi?id=100044
198389
198390        Reviewed by Darin Adler.
198391
198392        Improve some unfortunate use of String->NSString.
198393
198394        * accessibility/mac/AXObjectCacheMac.mm:
198395        (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
198396        needed as NSString, and all its value are or can be NSString.
198397        Convert the last 3 char* values to NSString literal and use NSString* all the way.
198398
198399        * loader/mac/LoaderNSURLExtras.h:
198400        * loader/mac/LoaderNSURLExtras.mm:
198401        (suggestedFilenameWithMIMEType):
198402        We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
198403        for the string to be a NSSTring there, we can leave it in its original type.
198404
198405        The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
198406
198407        * platform/mac/DragImageMac.mm:
198408        (WebCore::createDragImageForLink):
198409        Use String's nsStringNilIfEmpty().
198410
198411        * platform/mac/HTMLConverter.mm:
198412        (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
198413        Fix the coding style. Do the conversion to NSString only when needed.
198414
1984152012-10-23  Roger Fong  <roger_fong@apple.com>
198416
198417        [Win] Popup menus positioning needs to take multiple monitors into account.
198418        https://bugs.webkit.org/show_bug.cgi?id=100158
198419
198420        Reviewed by Timothy Horton.
198421
198422        Add screen.x() to repositioning check to account for position of current monitor.
198423
198424        * platform/win/PopupMenuWin.cpp:
198425        (WebCore::PopupMenuWin::calculatePositionAndSize):
198426
1984272012-10-23  Huang Dongsung  <luxtella@company100.net>
198428
198429        [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
198430        https://bugs.webkit.org/show_bug.cgi?id=99908
198431
198432        Reviewed by Dean Jackson.
198433
198434        CSS Shaders can not render anything until the program is loaded. If there is
198435        partial loaded shaders program, whole FilterOperations chain can not render
198436        anything. It occurs a flash. So We have to wait until the program is loaded, to
198437        prevent a flash as RenderLayerBacking::updateImageContents() waits until an
198438        image is fully loaded.
198439
198440        No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
198441
198442        * rendering/RenderLayerBacking.cpp:
198443        (WebCore::RenderLayerBacking::updateFilters):
198444
1984452012-10-23  Elliott Sprehn  <esprehn@chromium.org>
198446
198447        Generated should not be supported for things with a shadow
198448        https://bugs.webkit.org/show_bug.cgi?id=98836
198449
198450        Reviewed by Dimitri Glazkov.
198451
198452        As far as CSS is concerned inputs and things with shadow content inside
198453        shouldn't support pseudo elements like :before, :after or :first-letter.
198454        Neither Gecko or Presto supports it, and we only accidentally supported
198455        it.
198456
198457        Until the spec tells us what to do we should disable support. This is
198458        also neccesary because the new generated content implementation doesn't
198459        support shadows.
198460
198461        Test: fast/forms/pseudo-elements.html
198462
198463        * rendering/RenderBlock.cpp:
198464        (WebCore::RenderBlock::updateFirstLetter):
198465        * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
198466        * rendering/RenderObjectChildList.cpp:
198467        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
198468
1984692012-10-23  Huang Dongsung  <luxtella@company100.net>
198470
198471        [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
198472        https://bugs.webkit.org/show_bug.cgi?id=98504
198473
198474        Reviewed by Dean Jackson.
198475
198476        Add expressions for the aforementioned blend modes. The expressions are lifted
198477        directly from the CSS Compositing and Blending spec [1]. WebKit adds these
198478        blending expressions to the author's shader.
198479
198480        [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
198481
198482        Test: css3/filters/custom/custom-filter-blend-modes.html
198483
198484        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
198485        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
198486        (WebCore::CustomFilterValidatedProgram::blendFunctionString):
198487
1984882012-10-23  Huang Dongsung  <luxtella@company100.net>
198489
198490        [CSS Shaders] Implement all composite operators except destination and lighter.
198491        https://bugs.webkit.org/show_bug.cgi?id=97859
198492
198493        Reviewed by Dean Jackson.
198494
198495        Add expressions for all composite operators except destination and
198496        lighter. The expressions are lifted directly from the CSS Compositing
198497        and Blending spec [1]. WebKit adds these compositing expressions to the
198498        author's shader.
198499
198500        [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
198501
198502        Test: css3/filters/custom/custom-filter-composite-operators.html
198503
198504        * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
198505        (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
198506            Remove ASSERTION checking if glGetUniformLocation returns negative,
198507            because ASSERTION can fail with clear and copy composite operations.
198508            Clear and copy composite operations do not need "css_u_texture"
198509            representing the DOM element texture. If the driver compiler is
198510            smart, "css_u_texture" is not regarded as an active uniform, so
198511            glGetuniformLocation returns -1. glGetAttribLocation ditto.
198512        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
198513        (WebCore::CustomFilterValidatedProgram::compiledProgram):
198514            Move the above ASSERTION in CustomFilterCompiledProgram to here.
198515            ASSERTION checks if m_samplerLocation is not -1 when the author
198516            shader needs an input texture.
198517        (WebCore::CustomFilterValidatedProgram::needsInputTexture):
198518        (WebCore):
198519        (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
198520        * platform/graphics/filters/CustomFilterValidatedProgram.h:
198521        (CustomFilterValidatedProgram):
198522
1985232012-10-23  Max Vujovic  <mvujovic@adobe.com>
198524
198525        [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
198526        https://bugs.webkit.org/show_bug.cgi?id=99887
198527
198528        Reviewed by Dirk Schulze.
198529
198530        Before this patch, WebKit would not recompute an element's style when just its custom filter
198531        blend mode changed.
198532
198533        For example, suppose an element initially has the style:
198534        -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
198535
198536        Then, we change the blend mode from "multiply" to "normal":
198537        -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
198538
198539        WebKit now detects this change and recomputes the style.
198540
198541        CustomFilterProgram now has an equals operator that considers the program type and the mix
198542        settings. The mix settings contain the blend mode.
198543
198544        Test: css3/filters/custom/custom-filter-change-blend-mode.html
198545
198546        * platform/graphics/filters/CustomFilterProgram.cpp:
198547        (WebCore::CustomFilterProgram::operator==):
198548            Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
198549            CustomFilterProgram implements it and compares the program type and mix settings, if
198550            appropriate.
198551        (WebCore):
198552        * platform/graphics/filters/CustomFilterProgram.h:
198553        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
198554        (WebCore::CustomFilterProgramInfo::hash):
198555            Refactor a repeated condition into a boolean to improve readability.
198556        (WebCore::CustomFilterProgramInfo::operator==):
198557            Refactor repeated conditions to improve readability. Reorder the conditions so the less
198558            expensive ones occur first.
198559        * rendering/style/StyleCustomFilterProgram.h:
198560        (WebCore::StyleCustomFilterProgram::operator==):
198561            Call the base class's equals operator.
198562
1985632012-10-23  David Barton  <dbarton@mathscribe.com>
198564
198565        [MathML] Symbol font uses greek letters for roman ones on linux and Windows
198566        https://bugs.webkit.org/show_bug.cgi?id=99921
198567
198568        Reviewed by Eric Seidel.
198569
198570        For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
198571        which on linux and Windows has greek letters at roman code points. To fix this, we switch
198572        to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
198573        glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
198574        these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
198575
198576        Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
198577
198578        * css/mathml.css:
198579        (math, mfenced > *):
198580            - Set font-family for mn, mi, etc.
198581        (mo, mfenced):
198582            - Set font-family for mo and anonymous operators, including extension glyphs for
198583              stretched operators like parentheses and brackets.
198584        (math):
198585        * rendering/mathml/RenderMathMLOperator.cpp:
198586        (WebCore):
198587            - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
198588        (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
198589        (WebCore::RenderMathMLOperator::updateFromElement):
198590        (WebCore::RenderMathMLOperator::createStackableStyle):
198591            - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
198592              of 14.
198593        (WebCore::RenderMathMLOperator::createGlyph):
198594            - Eliminate unused lineHeight and topRelative parameters.
198595        * rendering/mathml/RenderMathMLOperator.h:
198596        (RenderMathMLOperator):
198597
1985982012-10-23  Benjamin Poulain  <benjamin@webkit.org>
198599
198600        WTFURL: Implement KURL::setPort()
198601        https://bugs.webkit.org/show_bug.cgi?id=99898
198602
198603        Reviewed by Adam Barth.
198604
198605        * platform/KURLWTFURL.cpp:
198606        (WebCore::KURL::setPort):
198607
1986082012-10-23  Nico Weber  <thakis@chromium.org>
198609
198610        In the open-source jpeg decoder, read image orientation from the exif data
198611        https://bugs.webkit.org/show_bug.cgi?id=100144
198612
198613        Reviewed by Eric Seidel.
198614
198615        This will be used to implement the shouldRespectImageOrientation
198616        setting (see bug 19688). Currently this isn't hooked up anywhere, so
198617        it has no observable effect for now.
198618
198619        Once it's hooked up, it will be tested by
198620        fast/images/exif-orientation.html
198621
198622        * platform/graphics/BitmapImage.h:
198623        * platform/image-decoders/ImageDecoder.h:
198624        (WebCore::ImageDecoder::orientation):
198625        (ImageDecoder):
198626        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
198627        (WebCore::readUint16):
198628        (WebCore):
198629        (WebCore::readUint32):
198630        (WebCore::checkExifHeader):
198631        (WebCore::readImageOrientation):
198632        (WebCore::JPEGImageReader::JPEGImageReader):
198633        (WebCore::JPEGImageReader::decode):
198634        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
198635        (WebCore::JPEGImageDecoder::setOrientation):
198636
1986372012-10-23  Chris Rogers  <crogers@google.com>
198638
198639        Fix thread safety issue in AudioParamTimeline
198640        https://bugs.webkit.org/show_bug.cgi?id=100154
198641
198642        Reviewed by Kenneth Russell.
198643
198644        Add appropriate locking in AudioParamTimeline::valueForContextTime()
198645
198646        * Modules/webaudio/AudioParamTimeline.cpp:
198647        (WebCore::AudioParamTimeline::valueForContextTime):
198648
1986492012-10-23  Alec Flett  <alecflett@chromium.org>
198650
198651        IndexedDB: refactor backend to use IDB*Metadata
198652        https://bugs.webkit.org/show_bug.cgi?id=100055
198653
198654        Reviewed by Tony Chang.
198655
198656        This further encapsulates the static data in
198657        IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
198658        respective IDB*Metadata structs, in preparation for
198659        https://bugs.webkit.org/show_bug.cgi?id=99774.
198660
198661        No new tests as this is purely a refactor.
198662
198663        * Modules/indexeddb/IDBBackingStore.h:
198664        (IDBBackingStore):
198665        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
198666        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
198667        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
198668        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
198669        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
198670        (WebCore::IDBIndexBackendImpl::metadata):
198671        * Modules/indexeddb/IDBIndexBackendImpl.h:
198672        (WebCore::IDBIndexBackendImpl::create):
198673        (WebCore::IDBIndexBackendImpl::id):
198674        (WebCore::IDBIndexBackendImpl::setId):
198675        (WebCore::IDBIndexBackendImpl::hasValidId):
198676        (WebCore::IDBIndexBackendImpl::name):
198677        (WebCore::IDBIndexBackendImpl::keyPath):
198678        (WebCore::IDBIndexBackendImpl::unique):
198679        (WebCore::IDBIndexBackendImpl::multiEntry):
198680        (IDBIndexBackendImpl):
198681        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
198682        (WebCore::IDBLevelDBBackingStore::getObjectStores):
198683        (WebCore::IDBLevelDBBackingStore::getIndexes):
198684        * Modules/indexeddb/IDBLevelDBBackingStore.h:
198685        (IDBLevelDBBackingStore):
198686        * Modules/indexeddb/IDBMetadata.h:
198687        (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
198688        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
198689        (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
198690        (WebCore::IDBObjectStoreBackendImpl::metadata):
198691        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
198692        (WebCore::IDBObjectStoreBackendImpl::putInternal):
198693        (WebCore::IDBObjectStoreBackendImpl::createIndex):
198694        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
198695        * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
198696        (WebCore::IDBObjectStoreBackendImpl::create):
198697        (WebCore::IDBObjectStoreBackendImpl::id):
198698        (WebCore::IDBObjectStoreBackendImpl::setId):
198699        (WebCore::IDBObjectStoreBackendImpl::name):
198700        (WebCore::IDBObjectStoreBackendImpl::keyPath):
198701        (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
198702        (IDBObjectStoreBackendImpl):
198703
1987042012-10-19  Roger Fong  <roger_fong@apple.com>
198705
198706        [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
198707        https://bugs.webkit.org/show_bug.cgi?id=94041
198708
198709        Reviewed by Dean Jackson.
198710
198711        When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
198712        However when we delete the texture, we need to be setting m_boundTexture0 to 0.
198713        Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
198714        has already been deleted we end up in an error state.
198715
198716        Tested using Khronos WebGL conformance suite:
198717        conformance/textures/texture-size.html
198718
198719        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
198720        (WebCore::GraphicsContext3D::deleteTexture):
198721
1987222012-10-22  Dirk Schulze  <krit@webkit.org>
198723
198724        BasicShapePolygon::path takes width instead of height for boundary calculation
198725        https://bugs.webkit.org/show_bug.cgi?id=99919
198726
198727        Reviewed by Darin Adler.
198728
198729        The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
198730        This caused problems on percentage values for point positions. 
198731        Changed it to the height of the bounding box.
198732
198733        Test: css3/masking/clip-path-polygon-percentage.html
198734
198735        * rendering/style/BasicShapes.cpp:
198736        (WebCore::BasicShapePolygon::path):
198737
1987382012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
198739
198740        Add timeout support to XMLHttpRequest
198741        https://bugs.webkit.org/show_bug.cgi?id=74802
198742
198743        Reviewed by Nate Chapin.
198744
198745        An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
198746        This made several changes necessary in CachedResource and SubresourceLoader in order
198747        to distinguish and forward the timeout case from there.
198748
198749        The case of late updates to the timeout property, changing the timeout value after send()
198750        is not supported yet and handled separately in bug 98156.
198751
198752        XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
198753        permission to reuse them under PD/BSD license
198754        in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
198755        I adapted them for W3C testharness.js and split them into groups with shorter test running time
198756        so that they can be used as WebKit layout tests.
198757
198758        Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
198759               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
198760               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
198761               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
198762               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
198763               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
198764               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
198765               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
198766               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
198767               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
198768               http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
198769
198770        * loader/DocumentThreadableLoader.cpp:
198771        (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
198772        * loader/SubresourceLoader.cpp:
198773        (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
198774        * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
198775        (WebCore::CachedResource::errorOccurred):
198776        (WebCore::CachedResource::loadFailedOrCanceled):
198777        (WebCore::CachedResource::timedOut):
198778        * xml/XMLHttpRequest.cpp:
198779        (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
198780        (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
198781        (WebCore):
198782        (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
198783        (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
198784        (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
198785        (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
198786        * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
198787        (WebCore::XMLHttpRequest::timeout):
198788        (XMLHttpRequest):
198789        * xml/XMLHttpRequest.idl: New event listener and property added.
198790        * xml/XMLHttpRequestException.cpp:
198791        * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
198792
198793
1987942012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
198795
198796        Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
198797        https://bugs.webkit.org/show_bug.cgi?id=99967
198798
198799        Reviewed by Tony Chang.
198800
198801        Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
198802        pressing the left mouse button outside a multiselect and then moving the cursor
198803        over the multiselect element while holding the button down.
198804
198805        The issue is that the HTMLSelectElement handler for the mouse move event does
198806        not check if there is a selection before trying to extend the selection.
198807
198808        Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
198809
198810        * html/HTMLSelectElement.cpp:
198811        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
198812
1988132012-10-23  Adam Barth  <abarth@webkit.org>
198814
198815        [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
198816        https://bugs.webkit.org/show_bug.cgi?id=97974
198817
198818        Reviewed by Eric Seidel.
198819
198820        Previously, we stored a pointer to a handle to a wrapper in Node. That
198821        is an extra layer of indirection that slows down finding the wrapper
198822        for the node. A handle is just a pointer, so we might as we just store
198823        the handle in the Node directly. That speeds up dom-modify and
198824        dom-traverse by about 2.5%.
198825
198826        This change also lets us get rid of the ChunkedTable we were using to
198827        store all the wrappers because they're now stored in the Nodes
198828        directly.
198829
198830        * bindings/scripts/CodeGeneratorV8.pm:
198831        (GenerateHeader):
198832        * bindings/v8/IntrusiveDOMWrapperMap.h:
198833        (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
198834        (WebCore::IntrusiveDOMWrapperMap::get):
198835        (WebCore::IntrusiveDOMWrapperMap::set):
198836        (WebCore::IntrusiveDOMWrapperMap::contains):
198837        (WebCore::IntrusiveDOMWrapperMap::visit):
198838        (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
198839        (WebCore::IntrusiveDOMWrapperMap::clear):
198840        * bindings/v8/ScriptWrappable.h:
198841        (WebCore::ScriptWrappable::ScriptWrappable):
198842        (WebCore::ScriptWrappable::wrapper):
198843        (WebCore::ScriptWrappable::setWrapper):
198844        (WebCore::ScriptWrappable::disposeWrapper):
198845        (WebCore::ScriptWrappable::reportMemoryUsage):
198846        (ScriptWrappable):
198847        * bindings/v8/V8DOMWrapper.h:
198848        (WebCore::V8DOMWrapper::getCachedWrapper):
198849
1988502012-10-23  Kentaro Hara  <haraken@chromium.org>
198851
198852        [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
198853        https://bugs.webkit.org/show_bug.cgi?id=100140
198854
198855        Reviewed by Adam Barth.
198856
198857        SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
198858        are deprecated (See http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/include/v8.h&exact_package=chromium&q=v8.h&type=cs&l=3149)
198859        Instead we should use AddGCPrologueCallback()
198860        and AddGCEpilogueCallback().
198861
198862        No tests. No change in behavior.
198863
198864        * bindings/v8/V8DOMWindowShell.cpp:
198865        (WebCore::initializeV8IfNeeded):
198866        * bindings/v8/V8GCController.cpp:
198867        (WebCore::V8GCController::gcPrologue):
198868        (WebCore):
198869        (WebCore::V8GCController::minorGCPrologue):
198870        (WebCore::V8GCController::majorGCPrologue):
198871        (WebCore::V8GCController::gcEpilogue):
198872        (WebCore::V8GCController::minorGCEpilogue):
198873        (WebCore::V8GCController::majorGCEpilogue):
198874        * bindings/v8/V8GCController.h:
198875        (V8GCController):
198876        * bindings/v8/WorkerContextExecutionProxy.cpp:
198877        (WebCore::WorkerContextExecutionProxy::initIsolate):
198878
1988792012-10-23  Adam Barth  <abarth@webkit.org>
198880
198881        [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
198882        https://bugs.webkit.org/show_bug.cgi?id=100033
198883
198884        Reviewed by Eric Seidel.
198885
198886        This patch changes how we enumerate nodes during garbage collection.
198887        After this patch, we use V8's list of open handles to enumerate node
198888        wrappers rather than using a separate list that we maintain in WebCore
198889        for this purpose. A future patch will remove the list in WebCore for a
198890        DOM performance gain.
198891
198892        * bindings/js/ScriptProfiler.h:
198893        (WebCore):
198894        (WebCore::ScriptProfiler::visitNodeWrappers):
198895        * bindings/scripts/CodeGeneratorV8.pm:
198896        (GenerateToV8Converters):
198897        * bindings/scripts/test/V8/V8TestNode.cpp:
198898        (WebCore::V8TestNode::wrapSlow):
198899        * bindings/v8/IntrusiveDOMWrapperMap.h:
198900        (WebCore::IntrusiveDOMWrapperMap::set):
198901        * bindings/v8/ScriptProfiler.cpp:
198902        (WebCore::ScriptProfiler::visitNodeWrappers):
198903        * bindings/v8/ScriptProfiler.h:
198904        (WebCore):
198905        (ScriptProfiler):
198906        * bindings/v8/V8DOMMap.cpp:
198907        (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
198908        (WebCore):
198909        (WebCore::visitAllDOMNodes):
198910        * bindings/v8/V8DOMMap.h:
198911        (WebCore):
198912        (NodeWrapperVisitor):
198913        * bindings/v8/V8DOMWrapper.cpp:
198914        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
198915        (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
198916        * bindings/v8/V8GCController.cpp:
198917        (WebCore::NodeVisitor::visitNodeWrapper):
198918        (WebCore::V8GCController::gcPrologue):
198919        (WebCore::V8GCController::gcEpilogue):
198920        * inspector/BindingVisitors.h:
198921        (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
198922        * inspector/InspectorMemoryAgent.cpp:
198923        (WebCore):
198924
1989252012-10-22  Andrey Kosyakov  <caseq@chromium.org>
198926
198927        Web Inspector: paint rectangles are incorrectly shown in case subframes are present
198928        https://bugs.webkit.org/show_bug.cgi?id=99849
198929
198930        Reviewed by Pavel Feldman.
198931
198932        Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
198933        to store them as a state of InspectorPageAgent
198934
198935        * inspector/InspectorInstrumentation.cpp:
198936        (WebCore):
198937        (WebCore::InspectorInstrumentation::willPaintImpl):
198938        (WebCore::InspectorInstrumentation::didPaintImpl):
198939        * inspector/InspectorInstrumentation.h:
198940        (InspectorInstrumentation):
198941        (WebCore::InspectorInstrumentation::willPaint):
198942        (WebCore::InspectorInstrumentation::didPaint):
198943        * inspector/InspectorPageAgent.cpp:
198944        (WebCore::InspectorPageAgent::didPaint):
198945        * inspector/InspectorPageAgent.h:
198946        * inspector/InspectorTimelineAgent.cpp:
198947        (WebCore::InspectorTimelineAgent::willPaint):
198948        (WebCore::InspectorTimelineAgent::didPaint):
198949        * inspector/InspectorTimelineAgent.h:
198950        (InspectorTimelineAgent):
198951        * inspector/TimelineRecordFactory.cpp:
198952        * inspector/TimelineRecordFactory.h:
198953        (TimelineRecordFactory):
198954        * page/FrameView.cpp:
198955        (WebCore::FrameView::paintContents):
198956        * rendering/RenderLayerBacking.cpp:
198957        (WebCore::RenderLayerBacking::paintContents):
198958
1989592012-10-23  Pavel Feldman  <pfeldman@chromium.org>
198960
198961        Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
198962        https://bugs.webkit.org/show_bug.cgi?id=100131
198963
198964        Reviewed by Vsevolod Vlasov.
198965
198966        Using ceil() - 1 instead of floor() in bucket size calculation.
198967
198968        * inspector/front-end/ObjectPropertiesSection.js:
198969
1989702012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
198971
198972        The order of resolving distribution in tree composition is wrong.
198973        https://bugs.webkit.org/show_bug.cgi?id=99552
198974
198975        Reviewed by Dimitri Glazkov.
198976
198977        According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
198978        However, the order of resolution is now the mixed tree order of <content> and <shadow>.
198979
198980        Test: fast/dom/shadow/content-reprojection-order.html
198981
198982        * html/shadow/ContentDistributor.cpp:
198983        (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
198984        Only the first active shadow insertion point can select the rest of contents.
198985        * html/shadow/HTMLContentElement.h:
198986        (HTMLContentElement):
198987        * html/shadow/HTMLShadowElement.cpp:
198988        * html/shadow/HTMLShadowElement.h:
198989        (WebCore::isHTMLShadowElement):
198990        (WebCore):
198991        (WebCore::toHTMLShadowElement):
198992        * html/shadow/InsertionPoint.h:
198993        (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
198994
1989952012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
198996
198997        Web Inspector: Move UISourceCode creation out of mappings to workspace.
198998        https://bugs.webkit.org/show_bug.cgi?id=100092
198999
199000        Reviewed by Pavel Feldman.
199001
199002        Moved uiSourceCode constructor calls out of mappings to workspace.
199003
199004        * inspector/front-end/CompilerScriptMapping.js:
199005        * inspector/front-end/NetworkUISourceCodeProvider.js:
199006        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
199007        (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
199008        * inspector/front-end/ResourceScriptMapping.js:
199009        (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
199010        (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
199011        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
199012        (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
199013        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
199014        (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
199015        * inspector/front-end/SASSSourceMapping.js:
199016        (_bindUISourceCode):
199017        * inspector/front-end/ScriptSnippetModel.js:
199018        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
199019        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
199020        * inspector/front-end/Workspace.js:
199021        (WebInspector.Project.prototype.addUISourceCode):
199022        (WebInspector.Project.prototype.removeUISourceCode):
199023        (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
199024        (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
199025
1990262012-10-23  Emil A Eklund  <eae@chromium.org>
199027
199028        Remove unnecessary m_layoutDelta[XY]Saturated initialization
199029        https://bugs.webkit.org/show_bug.cgi?id=100018
199030
199031        Reviewed by Julien Chaffraix.
199032        
199033        Remove unnecessary initialization from LayoutState constructor
199034        added in r132105.
199035
199036        No new tests, no change in functionality.
199037
199038        * rendering/LayoutState.cpp:
199039        (WebCore::LayoutState::LayoutState):
199040
1990412012-10-23  Zeno Albisser  <zeno@webkit.org>
199042
199043        [Texmap] Fix drawTextureRectangleARB after r131485.
199044        https://bugs.webkit.org/show_bug.cgi?id=100133
199045
199046        Consistently rename u_textureSize to u_samplerSize.
199047
199048        Reviewed by Noam Rosenthal.
199049
199050        * platform/graphics/texmap/TextureMapperGL.cpp:
199051        (WebCore::TextureMapperGL::drawTextureRectangleARB):
199052        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
199053        (WebCore::getShaderSpec):
199054        * platform/graphics/texmap/TextureMapperShaderManager.h:
199055        (TextureMapperShaderProgram):
199056
1990572012-10-23  Mike West  <mkwst@chromium.org>
199058
199059        Web Inspector: 'data:' URLs should be properly trimmed for readability.
199060        https://bugs.webkit.org/show_bug.cgi?id=100083
199061
199062        Reviewed by Pavel Feldman.
199063
199064        We recently landed a patch to trim the middle out of long URLs in
199065        console messages in order to improve readability. That patch didn't
199066        effect 'data:' URLs, as they didn't match the regex in the linkifier.
199067        This patch ensures that 'data:' URLs are properly trimmed down to
199068        size.
199069
199070        This problem came to light while resolving a different, smaller issue:
199071        'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
199072        is included in this patch.
199073
199074        Test: http/tests/inspector/network/image-as-text-loading-data-url.html
199075
199076        * inspector/front-end/NetworkManager.js:
199077        (WebInspector.NetworkManager):
199078            Adds 'image/jpg' as a valid image type.
199079        * inspector/front-end/ResourceUtils.js:
199080        (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
199081            Supports 'data:' URLs in the linkifier's regex.
199082
1990832012-10-23  Mike West  <mkwst@chromium.org>
199084
199085        Web Inspector: Floated anchor element sometimes overlaps following content.
199086        https://bugs.webkit.org/show_bug.cgi?id=100105
199087
199088        Reviewed by Pavel Feldman.
199089
199090        This patch ensures that each console message clears the
199091        potentially-overlapping floated anchor element.
199092
199093        * inspector/front-end/inspector.css:
199094        (#console-prompt):
199095        (.console-message, .console-user-command):
199096            Clear the float, and flip the border from the bottom of the
199097            message to the top. Do the same for the prompt.
199098        (.console-message:first-child):
199099            Ensure that the first message doesn't have a top border.
199100
1991012012-10-23  Alexander Pavlov  <apavlov@chromium.org>
199102
199103        Web Inspector: Crash when adding a keyframes rule in the Styles pane
199104        https://bugs.webkit.org/show_bug.cgi?id=99826
199105
199106        Reviewed by Pavel Feldman.
199107
199108        The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
199109
199110        Test: inspector/styles/add-new-rule-invalid-selector.html
199111
199112        * inspector/InspectorStyleSheet.cpp:
199113        (WebCore::createCSSParser):
199114        (WebCore):
199115        (WebCore::InspectorStyle::setPropertyText):
199116        (WebCore::checkStyleRuleSelector):
199117        (WebCore::InspectorStyleSheet::addRule):
199118        (WebCore::InspectorStyleSheet::ensureSourceData):
199119        (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
199120
1991212012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
199122
199123        Add support for resolution media query
199124        https://bugs.webkit.org/show_bug.cgi?id=99077
199125
199126        Reviewed by Antti Koivisto.
199127
199128        Add support for 'resolution' media query feature.
199129
199130        Background info:
199131        http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
199132
199133        Related spec links:
199134        http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
199135        http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
199136
199137        Add infrastructure to make it testable.
199138
199139        Test: fast/media/mq-resolution.html
199140
199141        * css/CSSParser.cpp:
199142        (WebCore::CSSParser::validUnit):
199143        (WebCore::CSSParser::createPrimitiveNumericValue):
199144        (WebCore::CSSParser::parseValidPrimitive):
199145        (WebCore::CSSParser::detectNumberToken):
199146        * css/CSSParser.h:
199147        * css/CSSPrimitiveValue.cpp:
199148        (WebCore::isValidCSSUnitTypeForDoubleConversion):
199149        (WebCore::unitCategory):
199150        (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
199151        (WebCore::CSSPrimitiveValue::customCssText):
199152        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
199153        * css/CSSPrimitiveValue.h:
199154
199155            Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
199156            is enabled.
199157
199158        * WebCore.exp.in:
199159
199160            Export the WebCore::Settings setting.
199161
199162        * css/CSSPrimitiveValue.h:
199163        (WebCore::CSSPrimitiveValue::isDotsPerInch):
199164        (WebCore::CSSPrimitiveValue::isDotsPerPixel):
199165        (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
199166        (CSSPrimitiveValue):
199167
199168            Add function for checking the recently added density types.
199169
199170        * css/MediaFeatureNames.h:
199171        (MediaFeatureNames):
199172
199173            Add support for resolution, min-resolution and max-resolution.
199174
199175        * css/MediaQueryEvaluator.cpp:
199176        (WebCore::compareResolution): Add methods for comparing resolutions.
199177        (WebCore):
199178        (WebCore::resolutionMediaFeatureEval):
199179        (WebCore::min_resolutionMediaFeatureEval):
199180        (WebCore::max_resolutionMediaFeatureEval):
199181
199182            Implement the resolution method evaluation.
199183
199184        * css/MediaQueryExp.cpp:
199185        (WebCore::featureWithValidPositiveDensity):
199186        (WebCore):
199187        (WebCore::featureWithoutValue):
199188        (WebCore::MediaQueryExp::MediaQueryExp):
199189
199190            Hook up resolution with the right pre-checks.
199191
199192       * page/Screen.cpp:
199193        (WebCore::Screen::horizontalDPI):
199194        (WebCore::Screen::verticalDPI):
199195
199196            Check whether an override exists, and if so, uses it.
199197            If not calculate the value given the device scale factor.
199198
199199        * page/Settings.cpp:
199200        (WebCore::Settings::setResolutionOverride):
199201        (WebCore):
199202        * page/Settings.h:
199203        (Settings):
199204        (WebCore::Settings::resolutionOverride):
199205
199206            Add a resolution override to settings.
199207
199208        * testing/InternalSettings.cpp:
199209        (WebCore::InternalSettings::Backup::Backup):
199210        (WebCore::InternalSettings::Backup::restoreTo):
199211        (WebCore::InternalSettings::setResolutionOverride):
199212        (WebCore):
199213        * testing/InternalSettings.h:
199214        (Backup):
199215        (InternalSettings):
199216        * testing/InternalSettings.idl:
199217
199218            Add a new setResolutionOverride method to internals.settings.
199219
1992202012-10-23  Filip Spacek  <fspacek@rim.com>
199221
199222        [BlackBerry] Improve the use of stencil buffer during compositing
199223        https://bugs.webkit.org/show_bug.cgi?id=100020
199224
199225        We always want to scissor so remove the define.
199226        Only turn stenciling on if needed.
199227
199228        Reviewed by Rob Buis.
199229
199230        Reviewed internally by Arvid Nilsson.
199231
199232        * platform/graphics/blackberry/LayerRenderer.cpp:
199233        (WebCore::LayerRenderer::setViewport):
199234        (WebCore::LayerRenderer::compositeLayers):
199235        (WebCore::LayerRenderer::drawLayersOnSurfaces):
199236        (WebCore::LayerRenderer::compositeLayersRecursive):
199237        (WebCore::LayerRenderer::updateScissorIfNeeded):
199238
1992392012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
199240
199241        Not reviewed: kick out non-chromium files from WebCore.gypi.
199242
199243        * WebCore.gypi:
199244
1992452012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
199246
199247        [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
199248        https://bugs.webkit.org/show_bug.cgi?id=100110
199249
199250        Reviewed by Kenneth Rohde Christiansen.
199251
199252        Removed initialization of ecore_x, since it is initialized when process starts.
199253
199254        test: fast/media/*
199255
199256        * platform/efl/PlatformScreenEfl.cpp:
199257        (WebCore::screenDepth):
199258        (WebCore::screenRect):
199259        * platform/efl/SoundEfl.cpp:
199260        (WebCore::systemBeep):
199261
1992622012-10-23  Adam Klein  <adamk@chromium.org>
199263
199264        Always parse pasted fragments as HTML even on XHTML pages
199265        https://bugs.webkit.org/show_bug.cgi?id=99880
199266
199267        Reviewed by Ojan Vafai.
199268
199269        When pasting HTML into a page, using the XML parser is unlikely
199270        to work correctly, as the contents of the clipboard are unlikely
199271        to be properly-formed XHTML. Thus, for the pasting case, it's always
199272        better to use HTML parsing, which will properly parse either HTML
199273        (which is what's usually in the clipboard) or XHTML (which is
199274        sometimes there as well).
199275
199276        The Mac port previously worked around this problem by falling back to plain text
199277        when parsing failed, but switching to HTML seems like a clear improvement.
199278
199279        This also fixes a crash in Chromium (see http://webkit.org/b/99607
199280        and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
199281        would never return null. This patch makes that true.
199282
199283        * editing/markup.cpp:
199284        (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
199285        we already know our context element is safe (i.e., it's <body>),
199286        and we want to force HTML (not XML) parsing.
199287
1992882012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
199289
199290        [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
199291        https://bugs.webkit.org/show_bug.cgi?id=98876
199292
199293        Reviewed by Simon Hausmann.
199294
199295        Do not add word-spacing for leading space. This matches what simple path font-width does.
199296
199297        Tested by existing tests.
199298
199299        * platform/graphics/qt/FontQt.cpp:
199300        (WebCore::Font::floatWidthForComplexText):
199301
1993022012-10-23  Alexander Pavlov  <apavlov@chromium.org>
199303
199304        Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
199305        https://bugs.webkit.org/show_bug.cgi?id=100084
199306
199307        Reviewed by Vsevolod Vlasov.
199308
199309        Use the RFC 3986 grammar for the URL scheme.
199310
199311        * inspector/front-end/ParsedURL.js:
199312        (WebInspector.ParsedURL):
199313
1993142012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
199315
199316        Web Inspector: Elaborate source panel sidebar context menus.
199317        https://bugs.webkit.org/show_bug.cgi?id=99980
199318
199319        Reviewed by Vsevolod Vlasov.
199320
199321        - Watches: add "Add watch expression" item to items and empty element
199322        - Watches: hide "Remove watch expression" from editing prompt context menu
199323        - Watches: add titles to header buttons
199324        - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
199325        - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
199326        - XHR Breakpoints: add title to header button
199327        - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
199328        - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
199329
199330        * English.lproj/localizedStrings.js: Added corresponding strings.
199331        * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
199332        (WebInspector.XHRBreakpointsSidebarPane): Ditto.
199333        * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
199334        * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
199335
1993362012-10-23  Kent Tamura  <tkent@chromium.org>
199337
199338        Update binding test results for r132194
199339        https://bugs.webkit.org/show_bug.cgi?id=100097
199340
199341        * bindings/scripts/test/V8/V8TestObj.cpp:
199342        (WebCore::V8TestObj::installPerContextProperties):
199343
1993442012-10-23  Alexander Pavlov  <apavlov@chromium.org>
199345
199346        Web Inspector: Sass can only resolve same folder paths
199347        https://bugs.webkit.org/show_bug.cgi?id=99259
199348
199349        Reviewed by Vsevolod Vlasov.
199350
199351        The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
199352        and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
199353        for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
199354
199355        * inspector/front-end/CSSStyleModel.js:
199356        (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
199357        (WebInspector.CSSStyleModel.prototype.setSourceMapping):
199358        (WebInspector.CSSStyleModel.prototype._updateLocations):
199359        (WebInspector.CSSStyleModel.prototype.createLiveLocation):
199360        (WebInspector.CSSStyleModel.prototype.updateLocations):
199361        (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
199362        (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
199363        (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
199364        * inspector/front-end/Linkifier.js:
199365        (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
199366        (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
199367        (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
199368        (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
199369        * inspector/front-end/ResourceUtils.js:
199370        (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
199371        * inspector/front-end/SASSSourceMapping.js:
199372        * inspector/front-end/StylesSidebarPane.js:
199373        (WebInspector.StylesSidebarPane):
199374        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
199375        * inspector/front-end/inspector.html:
199376
1993772012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
199378
199379        Unreviewed, rolling out r132149.
199380        http://trac.webkit.org/changeset/132149
199381        https://bugs.webkit.org/show_bug.cgi?id=100098
199382
199383        Breaks inspector profiler tests in debug mode. (Requested by
199384        pfeldman1 on #webkit).
199385
199386        * rendering/AutoTableLayout.cpp:
199387        (WebCore::AutoTableLayout::recalcColumn):
199388        * rendering/FixedTableLayout.cpp:
199389        (WebCore::FixedTableLayout::calcWidthArray):
199390        * rendering/RenderTable.cpp:
199391        (WebCore::RenderTable::layout):
199392        * rendering/RenderTableCol.cpp:
199393        (WebCore::RenderTableCol::styleDidChange):
199394        (WebCore::RenderTableCol::updateFromElement):
199395        (WebCore::RenderTableCol::computePreferredLogicalWidths):
199396        * rendering/RenderTableCol.h:
199397        (RenderTableCol):
199398
1993992012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
199400
199401        Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
199402
199403        Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
199404        GraphicsContext3D.h to be done only if we use the surface.
199405
199406        * platform/graphics/surfaces/GraphicsSurface.h:
199407
1994082012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
199409
199410        Unreviewed, rolling out r132033.
199411        http://trac.webkit.org/changeset/132033
199412        https://bugs.webkit.org/show_bug.cgi?id=100097
199413
199414        Broke calendar picker (Requested by tkent on #webkit).
199415
199416        * bindings/scripts/CodeGeneratorV8.pm:
199417        (GenerateImplementation):
199418
1994192012-10-23  Andras Becsi  <andras.becsi@digia.com>
199420
199421        Remove devicePixelRatio from ViewportAttributes
199422        https://bugs.webkit.org/show_bug.cgi?id=99845
199423
199424        Reviewed by Adam Barth.
199425
199426        Since r121555 the devicePixelRatio is not calculated any more
199427        and the scale factor is stored in Page::m_deviceScaleFactor,
199428        thus it can be removed from ViewportAttributes to reduce
199429        redundancy and unnecessary client code.
199430        Use a new parameter in viewport calculation functions using
199431        the visible viewport size (instead of passing the adjusted
199432        viewport size) so that after this change clients do not end
199433        up using the unadjusted viewport size for calculations.
199434
199435        No behavioural change, no new tests needed.
199436
199437        * WebCore.exp.in:
199438        * dom/ViewportArguments.cpp:
199439        (WebCore::computeViewportAttributes):
199440        (WebCore::computeMinimumScaleFactorForContentContained):
199441        Add the devicePixelRatio as a parameter.
199442        (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
199443        * dom/ViewportArguments.h:
199444        (ViewportAttributes):
199445        (WebCore):
199446        * testing/InternalSettings.cpp:
199447        (WebCore::InternalSettings::configurationForViewport):
199448
1994492012-10-23  Kent Tamura  <tkent@chromium.org>
199450
199451        Support full month names in DateTimeEditElement, and use them in input[type=month] by default
199452        https://bugs.webkit.org/show_bug.cgi?id=100060
199453
199454        Reviewed by Kentaro Hara.
199455
199456        According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
199457        no one wants to show abbreviated month names for input[type=month].
199458        This change add support for full month names in DateTimeEditELement, and
199459        LocaleICU and LocaleMac retun month formats with full month names. Note
199460        that LocaleWin::monthFormat returns formats for full month names.
199461
199462        No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
199463
199464        * html/shadow/DateTimeEditElement.cpp:
199465        (WebCore::DateTimeEditBuilder::visitField):
199466        If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
199467        * platform/text/LocaleICU.cpp:
199468        (WebCore::LocaleICU::monthFormat):
199469        Returns a format for full month names.
199470        * platform/text/mac/LocaleMac.mm:
199471        (WebCore::LocaleMac::monthFormat): Ditto.
199472
1994732012-10-23  Mike West  <mkwst@chromium.org>
199474
199475        Viewport errors should be slightly friendlier with regard to ';'.
199476        https://bugs.webkit.org/show_bug.cgi?id=100003
199477
199478        Reviewed by Adam Barth.
199479
199480        This patch scans viewport values that cause errors for ';'. If found,
199481        a quick message is appended to the error, noting that semicolons are
199482        not valid separators in viewport contents, and that commas would be
199483        the proper substitute.
199484
199485        No functional changes, just a better error message.
199486
199487        * dom/ViewportArguments.cpp:
199488        (WebCore::reportViewportWarning):
199489
1994902012-10-23  Timothy Hatcher  <timothy@apple.com>
199491
199492        Docking/undocking the Web Inspector does not work correctly in Safari.
199493
199494        The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
199495
199496        https://bugs.webkit.org/show_bug.cgi?id=100080
199497
199498        Reviewed by Yury Semikhatsky.
199499
199500        * inspector/InspectorFrontendClientLocal.cpp:
199501        (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
199502
1995032012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
199504
199505        [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
199506        https://bugs.webkit.org/show_bug.cgi?id=99723
199507
199508        Reviewed by Kenneth Rohde Christiansen.
199509
199510        Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
199511        enabled.
199512
199513        No new tests, no change in behavior.
199514
199515        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
199516        (WebCore::GraphicsContext3DPrivate::createSurface):
199517
1995182012-10-23  Dan Carney  <dcarney@google.com>
199519
199520        When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
199521        https://bugs.webkit.org/show_bug.cgi?id=63257
199522
199523        Reviewed by Jochen Eisinger.
199524
199525        Throw security exception when local storage is accessed
199526        under certain circumstances to match firefox.
199527
199528        No new tests. Existing tests modified.
199529
199530        * bindings/js/JSStorageCustom.cpp:
199531        (WebCore::JSStorage::canGetItemsForName):
199532        (WebCore::JSStorage::nameGetter):
199533        (WebCore::JSStorage::deleteProperty):
199534        (WebCore::JSStorage::getOwnPropertyNames):
199535        * bindings/v8/custom/V8StorageCustom.cpp:
199536        (WebCore):
199537        (WebCore::setDOMException):
199538        (WebCore::V8Storage::namedPropertyEnumerator):
199539        (WebCore::storageGetter):
199540        (WebCore::V8Storage::namedPropertyQuery):
199541        (WebCore::storageDeleter):
199542        * inspector/InspectorDOMStorageAgent.cpp:
199543        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
199544        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
199545        * page/DOMWindow.cpp:
199546        (WebCore::DOMWindow::sessionStorage):
199547        (WebCore::DOMWindow::localStorage):
199548        * storage/Storage.cpp:
199549        * storage/Storage.h:
199550        (WebCore):
199551        (WebCore::Storage::length):
199552        (WebCore::Storage::key):
199553        (WebCore::Storage::getItem):
199554        (WebCore::Storage::setItem):
199555        (WebCore::Storage::removeItem):
199556        (WebCore::Storage::clear):
199557        (WebCore::Storage::contains):
199558        * storage/Storage.idl:
199559        * storage/StorageArea.h:
199560        (StorageArea):
199561        * storage/StorageAreaImpl.cpp:
199562        (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
199563        (WebCore):
199564        (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
199565        (WebCore::StorageAreaImpl::length):
199566        (WebCore::StorageAreaImpl::key):
199567        (WebCore::StorageAreaImpl::getItem):
199568        (WebCore::StorageAreaImpl::setItem):
199569        (WebCore::StorageAreaImpl::removeItem):
199570        (WebCore::StorageAreaImpl::clear):
199571        (WebCore::StorageAreaImpl::contains):
199572        * storage/StorageAreaImpl.h:
199573        (StorageAreaImpl):
199574
1995752012-10-22  Joshua Bell  <jsbell@chromium.org>
199576
199577        IndexedDB: Remove custom binding code for IDBCursor.value
199578        https://bugs.webkit.org/show_bug.cgi?id=100034
199579
199580        Reviewed by Kentaro Hara.
199581
199582        Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
199583        IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
199584        semantics that the object identity is retained across accesses.
199585
199586        Test: storage/indexeddb/cursor-value.html
199587
199588        * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
199589        (WebCore::IDBCursor::IDBCursor):
199590        (WebCore::IDBCursor::value):
199591        (WebCore::IDBCursor::setValueReady):
199592        * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
199593        (IDBCursor):
199594        * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
199595        * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
199596        (WebCore):
199597        * UseV8.cmake: Remove references to IDBCustomBindings.cpp
199598        * WebCore.gypi: Ditto.
199599        * WebCore.vcproj/WebCore.vcproj: Ditto.
199600        * bindings/v8/IDBCustomBindings.cpp: Removed.
199601
1996022012-10-22  Dan Bernstein  <mitz@apple.com>
199603
199604        Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
199605        https://bugs.webkit.org/show_bug.cgi?id=100068
199606
199607        Reviewed by Sam Weinig.
199608
199609        As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
199610        correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
199611        for now just use the complex code path in this case.
199612
199613        * platform/graphics/Font.cpp:
199614        (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
199615        typesetting features.
199616        (WebCore::Font::drawEmphasisMarks): Ditto.
199617        (WebCore::Font::selectionRectForText): Ditto.
199618        (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
199619        typesetting features.
199620
1996212012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
199622
199623        [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
199624        https://bugs.webkit.org/show_bug.cgi?id=99950
199625
199626        Reviewed by George Staikos.
199627
199628        In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
199629        we should combine the following ones with the first.
199630
199631        No new test case.
199632
199633        * platform/network/blackberry/NetworkJob.cpp:
199634        (WebCore::NetworkJob::handleNotifyHeaderReceived):
199635
1996362012-10-22  MORITA Hajime  <morrita@google.com>
199637
199638        Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
199639        https://bugs.webkit.org/show_bug.cgi?id=100038
199640
199641        Reviewed by Kent Tamura.
199642
199643        isHTMLContentElement() assumes that the content element always has
199644        a tag name "content" but it doesn't when Shadow DOM feature is
199645        disabled. This fix let the function see the correct tag name.
199646
199647        Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
199648
199649        * html/shadow/HTMLContentElement.cpp:
199650        (WebCore::HTMLContentElement::contentTagName):
199651        * html/shadow/HTMLContentElement.h:
199652        (HTMLContentElement):
199653        (WebCore::isHTMLContentElement):
199654
1996552012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
199656
199657        [Shadow] Fallback content should also be reprojection.
199658        https://bugs.webkit.org/show_bug.cgi?id=99750
199659
199660        Reviewed by Dimitri Glazkov.
199661
199662        Fallback content of InsertionPoint should be reprojected. The existing assumption that
199663        only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
199664        So, if the parent of an element is InsertionPoint which should show fallback element, we have to
199665        check the grand parent of the element instead of the element.
199666
199667        Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
199668               fast/dom/shadow/content-reprojection-fallback.html
199669
199670        * css/StyleResolver.cpp:
199671        (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
199672        an InsertionPoint which uses fallback content.
199673        * dom/ComposedShadowTreeWalker.cpp:
199674        (WebCore::shadowOfParentForDistribution):
199675        (WebCore):
199676        (WebCore::resolveReprojection):
199677        (WebCore::ComposedShadowTreeWalker::traverseParent):
199678        * html/shadow/InsertionPoint.cpp:
199679        (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
199680        (WebCore):
199681        * html/shadow/InsertionPoint.h:
199682        (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
199683        fallback content. Returns parent element otherwise.
199684        (WebCore):
199685
1996862012-10-22  Keishi Hattori  <keishi@webkit.org>
199687
199688        Label position is wrong in the suggestion picker when all the suggestions have labels
199689        https://bugs.webkit.org/show_bug.cgi?id=99965
199690
199691        Reviewed by Kent Tamura.
199692
199693        Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
199694
199695        No new tests. Can't reproduce in layout test.
199696
199697        * Resources/pagepopups/suggestionPicker.css:
199698        (.suggestion-list):
199699        * Resources/pagepopups/suggestionPicker.js:
199700        (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
199701
1997022012-10-22  MORITA Hajime  <morrita@google.com>
199703
199704        [Chromium] Needs to track ShadowRoot usage
199705        https://bugs.webkit.org/show_bug.cgi?id=99955
199706
199707        Reviewed by Dimitri Glazkov.
199708
199709        Added an UMA instrumentation.
199710
199711        * dom/ShadowRoot.cpp:
199712        (WebCore::determineUsageType):
199713        (WebCore):
199714        (WebCore::ShadowRoot::create):
199715
1997162012-10-22  Kent Tamura  <tkent@chromium.org>
199717
199718        Introduce Localizer::standAloneMonthLabels
199719        https://bugs.webkit.org/show_bug.cgi?id=99963
199720
199721        Reviewed by Kentaro Hara.
199722
199723        We realized full month names and full stand-alone month names were
199724        necessary for input[type=month] UI. We change the compile-flag for
199725        Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
199726        "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
199727        introduce Localizer::standAloneMonthLabels.
199728
199729        Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
199730        and LocalizedDateICUTest.cpp.
199731
199732        * platform/text/Localizer.h:
199733        (Localizer):
199734        - Add pure virtual standAloneMonthLabels.
199735        - Change the condition for monthLabels.
199736
199737        * platform/text/LocaleNone.cpp:
199738        (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
199739        (WebCore::LocaleNone::monthLabels):
199740        Added. It always returns English month names.
199741        (WebCore::LocaleNone::standAloneMonthLabels):
199742        Added. Just calls monthLabels.
199743
199744        * platform/text/LocaleWin.h:
199745        (LocaleWin):
199746        Declare standAloneMonthLabels, and change the condition for monthLabels.
199747        * platform/text/LocaleWin.cpp:
199748        (WebCore): Change the condition for monthLabels.
199749        (WebCore::LocaleWin::standAloneMonthLabels):
199750        Added. Just calls monthLabels.
199751
199752        * platform/text/mac/LocaleMac.h:
199753        (LocaleMac):
199754        - Add standAloneMonthLabels and m_standAloneMonthLabels
199755        - Change the condition for monthLabels and m_monthLabels.
199756        * platform/text/mac/LocaleMac.mm:
199757        (WebCore): Change the condition for monthLabels.
199758        (WebCore::LocaleMac::standAloneMonthLabels):
199759        Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
199760
199761        * platform/text/LocaleICU.h:
199762        (LocaleICU):
199763        - Add standAloneMonthLabels and m_standAloneMonthLabels
199764        - Change the condition for monthLabels and m_monthLabels.
199765        * platform/text/LocaleICU.cpp:
199766        (WebCore::LocaleICU::initializeCalendar):
199767        Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
199768        (WebCore):
199769        (WebCore::createFallbackMonthLabels): Change the compile condition.
199770        (WebCore::LocaleICU::monthLabels):
199771        - Change the compile condition.
199772        - Don't depend on initializeCalendar to make the code for
199773        ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
199774        (WebCore::LocaleICU::standAloneMonthLabels):
199775        Added. The code is similar to shortStandAloneMonthLabels.
199776
1997772012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
199778
199779        Refactoring around ContainerNode::attachChildren
199780        https://bugs.webkit.org/show_bug.cgi?id=99968
199781
199782        Reviewed by Hajime Morita.
199783
199784        Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
199785        ContainerNode::attach() instead of calling them.
199786
199787        No new tests, no change in behavior.
199788
199789        * dom/ContainerNode.h:
199790        (ContainerNode):
199791        * dom/Element.cpp:
199792        (WebCore::Element::attach):
199793        * dom/ShadowRoot.cpp:
199794        (WebCore::ShadowRoot::attach):
199795
1997962012-10-22  Michael Saboff  <msaboff@apple.com>
199797
199798        HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
199799        https://bugs.webkit.org/show_bug.cgi?id=99889
199800
199801        Reviewed by Geoffrey Garen.
199802
199803        Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
199804        "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
199805        m_bufferedEndTagName as LChar's.
199806
199807        No new tests, covered by existing tests.
199808
199809        * html/parser/HTMLToken.h:
199810        (HTMLToken):
199811        * html/parser/HTMLTokenizer.cpp:
199812        (WebCore::HTMLTokenizer::nextToken):
199813        (WebCore::HTMLTokenizer::addToPossibleEndTag):
199814        (WebCore::HTMLTokenizer::isAppropriateEndTag):
199815        * html/parser/HTMLTokenizer.h:
199816        (HTMLTokenizer):
199817        * html/parser/HTMLTreeBuilder.cpp:
199818        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
199819        * xml/parser/MarkupTokenBase.h:
199820        (WebCore::MarkupTokenBase::beginStartTag):
199821        (WebCore::MarkupTokenBase::beginEndTag):
199822        (MarkupTokenBase):
199823        (WebCore::MarkupTokenBase::beginDOCTYPE):
199824        (WebCore::MarkupTokenBase::appendToComment):
199825        (WebCore::MarkupTokenBase::appendToName):
199826        (WebCore::MarkupTokenBase::nameString):
199827        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
199828
1998292012-10-22  Tony Chang  <tony@chromium.org>
199830
199831        margin-top/bottom has no effect for child nodes of flex items
199832        https://bugs.webkit.org/show_bug.cgi?id=99923
199833
199834        Reviewed by Ojan Vafai.
199835
199836        Flexitems, like table cells, shouldn't collapse margins.
199837
199838        Test: css3/flexbox/flexitem-no-margin-collapsing.html
199839
199840        * rendering/RenderBlock.cpp:
199841        (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
199842        We should always have a parent if we make it this far in the check.
199843
1998442012-10-22  Marja Hölttä  <marja@chromium.org>
199845
199846        Refactor CachedResourceLoader: add CachedResourceRequest
199847        https://bugs.webkit.org/show_bug.cgi?id=99736
199848
199849        Reviewed by Adam Barth.
199850
199851        For fixing bugs 84883 and 92761,
199852        CachedResourceLoader::requestResource should take as parameter
199853        information about who initiated the request. But the parameter
199854        list was already long. This gathers all the parameters into a
199855        separate class, CachedResourceRequest. The next step is to add
199856        information about who initiated the request into
199857        CachedResourceRequest.
199858
199859        No new tests because no changes in functionality, just moving code
199860        around.
199861
199862        * CMakeLists.txt:
199863        * GNUmakefile.list.am:
199864        * Target.pri:
199865        * WebCore.gypi:
199866        * WebCore.vcproj/WebCore.vcproj:
199867        * WebCore.xcodeproj/project.pbxproj:
199868        * css/CSSFontFaceSrcValue.cpp:
199869        (WebCore::CSSFontFaceSrcValue::cachedFont):
199870        * css/CSSImageSetValue.cpp:
199871        (WebCore::CSSImageSetValue::cachedImageSet):
199872        * css/CSSImageValue.cpp:
199873        (WebCore::CSSImageValue::cachedImage):
199874        * css/StyleRuleImport.cpp:
199875        (WebCore::StyleRuleImport::requestStyleSheet):
199876        * css/WebKitCSSSVGDocumentValue.cpp:
199877        (WebCore::WebKitCSSSVGDocumentValue::load):
199878        * css/WebKitCSSShaderValue.cpp:
199879        (WebCore::WebKitCSSShaderValue::cachedShader):
199880        * dom/ProcessingInstruction.cpp:
199881        (WebCore::ProcessingInstruction::checkStyleSheet):
199882        * dom/ScriptElement.cpp:
199883        (WebCore::ScriptElement::requestScript):
199884        * html/HTMLLinkElement.cpp:
199885        (WebCore::HTMLLinkElement::process):
199886        * loader/DocumentThreadableLoader.cpp:
199887        (WebCore::DocumentThreadableLoader::loadRequest):
199888        * loader/ImageLoader.cpp:
199889        (WebCore::ImageLoader::updateFromElement):
199890        * loader/LinkLoader.cpp:
199891        (WebCore::LinkLoader::loadLink):
199892        * loader/TextTrackLoader.cpp:
199893        (WebCore::TextTrackLoader::load):
199894        * loader/cache/CachedResourceLoader.cpp:
199895        (WebCore::CachedResourceLoader::requestImage):
199896        (WebCore::CachedResourceLoader::requestFont):
199897        (WebCore::CachedResourceLoader::requestTextTrack):
199898        (WebCore::CachedResourceLoader::requestShader):
199899        (WebCore::CachedResourceLoader::requestCSSStyleSheet):
199900        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
199901        (WebCore::CachedResourceLoader::requestScript):
199902        (WebCore::CachedResourceLoader::requestXSLStyleSheet):
199903        (WebCore::CachedResourceLoader::requestSVGDocument):
199904        (WebCore::CachedResourceLoader::requestLinkResource):
199905        (WebCore::CachedResourceLoader::requestRawResource):
199906        (WebCore::CachedResourceLoader::requestResource):
199907        (WebCore::CachedResourceLoader::requestPreload):
199908        (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
199909        (WebCore):
199910        * loader/cache/CachedResourceLoader.h:
199911        (WebCore):
199912        (CachedResourceLoader):
199913        * loader/cache/CachedResourceRequest.cpp: Added.
199914        (WebCore):
199915        (WebCore::CachedResourceRequest::CachedResourceRequest):
199916        * loader/cache/CachedResourceRequest.h: Added.
199917        (WebCore):
199918        (CachedResourceRequest):
199919        (WebCore::CachedResourceRequest::mutableResourceRequest):
199920        (WebCore::CachedResourceRequest::resourceRequest):
199921        (WebCore::CachedResourceRequest::charset):
199922        (WebCore::CachedResourceRequest::setCharset):
199923        (WebCore::CachedResourceRequest::options):
199924        (WebCore::CachedResourceRequest::priority):
199925        (WebCore::CachedResourceRequest::forPreload):
199926        (WebCore::CachedResourceRequest::setForPreload):
199927        (WebCore::CachedResourceRequest::defer):
199928        (WebCore::CachedResourceRequest::setDefer):
199929        * loader/icon/IconLoader.cpp:
199930        (WebCore::IconLoader::startLoading):
199931        * svg/SVGFEImageElement.cpp:
199932        (WebCore::SVGFEImageElement::requestImageResource):
199933        * svg/SVGFontFaceUriElement.cpp:
199934        (WebCore::SVGFontFaceUriElement::loadFont):
199935        * svg/SVGUseElement.cpp:
199936        (WebCore::SVGUseElement::svgAttributeChanged):
199937        * xml/XSLImportRule.cpp:
199938        (WebCore::XSLImportRule::loadSheet):
199939
1999402012-10-22  Adam Barth  <abarth@webkit.org>
199941
199942        [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
199943        https://bugs.webkit.org/show_bug.cgi?id=100046
199944
199945        Reviewed by Eric Seidel.
199946
199947        This function is called only on worker threads. We should ASSERT that
199948        fact and remove the dead code that tries to handle the main thread
199949        case.
199950
199951        * bindings/v8/V8DOMMap.cpp:
199952        (WebCore::removeAllDOMObjects):
199953
1999542012-10-22  Adam Barth  <abarth@webkit.org>
199955
199956        [V8] We should call the faster v8::Integer::New APIs
199957        https://bugs.webkit.org/show_bug.cgi?id=100016
199958
199959        Reviewed by Eric Seidel.
199960
199961        In working to remove the integer cache, I added some faster APIs for
199962        creating v8::Integers. These APIs are faster than the old APIs, but not
199963        quite fast enough to replace the integer cache. We should still use
199964        them when we miss the integer cache.
199965
199966        I've also included a small refactoring to V8PerIsolateData to make it
199967        clearer when we're calling v8::Isolate::GetCurrent().
199968
199969        * bindings/v8/DOMData.cpp:
199970        (WebCore::DOMData::getCurrentStore):
199971        * bindings/v8/V8Binding.h:
199972        (WebCore::v8ExternalString):
199973        (WebCore::v8Integer):
199974        (WebCore::v8UnsignedInteger):
199975        * bindings/v8/V8PerIsolateData.h:
199976        (WebCore::V8PerIsolateData::current):
199977        (WebCore::V8PerIsolateData::from):
199978        * bindings/v8/V8ValueCache.cpp:
199979        (WebCore::StringCache::v8ExternalStringSlow):
199980        (WebCore::IntegerCache::createSmallIntegers):
199981        * bindings/v8/V8ValueCache.h:
199982        (WebCore::IntegerCache::v8Integer):
199983        (WebCore::IntegerCache::v8UnsignedInteger):
199984        (IntegerCache):
199985        * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
199986        (WebCore::V8HTMLCanvasElement::getContextCallback):
199987
1999882012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
199989
199990        RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
199991        https://bugs.webkit.org/show_bug.cgi?id=99861
199992
199993        Reviewed by Ojan Vafai.
199994
199995        RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
199996        widths dirty / layout flag so that we would properly propagate the information to our containing table. This
199997        led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
199998        or else we would ignore the next layout hint on the <col> or <colgroup>.
199999
200000        Test: fast/table/col-span-change-relayout.html
200001
200002        * rendering/AutoTableLayout.cpp:
200003        (WebCore::AutoTableLayout::recalcColumn):
200004        * rendering/RenderTable.cpp:
200005        (WebCore::RenderTable::layout):
200006        Simplified the code now that we only need to iterate over the sections.
200007
200008        * rendering/FixedTableLayout.cpp:
200009        (WebCore::FixedTableLayout::calcWidthArray):
200010        Removed call to computePreferredLogicalWidths.
200011
200012        * rendering/RenderTableCol.cpp:
200013        (WebCore::RenderTableCol::styleDidChange):
200014        (WebCore::RenderTableCol::updateFromElement):
200015        Forward a layout hint to the table so that we properly recompute the cell's logical withs.
200016
200017        (WebCore::RenderTableCol::computePreferredLogicalWidths):
200018        (WebCore::RenderTableCol::layout):
200019        Change our implementations of those 2 methods to be no-ops, while enforcing that they are
200020        never called.
200021
200022        (WebCore::RenderTableCol::propagateLayoutCueToTable):
200023        New helper function that forward any layout cue to the containing table, this works around
200024        us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
200025        invalidateContainerPreferredLogicalWidths.
200026
200027        * rendering/RenderTableCol.h:
200028        Made the function that we are not expected to be called private.
200029
2000302012-10-22  Pan Deng  <pan.deng@intel.com>
200031
200032        [User Timing]Integrate with Perforamnce Timeline.
200033        https://bugs.webkit.org/show_bug.cgi?id=91072.
200034
200035        Reviewed by Tony Gentilcore.
200036
200037        This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
200038
200039        No new tests, user timing test cases have been landed.
200040
200041        * page/Performance.cpp:
200042        (WebCore::Performance::Performance):
200043        (WebCore::Performance::webkitGetEntries):
200044        (WebCore::Performance::webkitGetEntriesByType):
200045        (WebCore::Performance::webkitGetEntriesByName):
200046        * page/PerformanceEntry.h:
200047        (WebCore::PerformanceEntry::startTimeCompareLessThan):
200048        (PerformanceEntry):
200049        * page/PerformanceEntryList.cpp:
200050        (WebCore::PerformanceEntryList::sort):
200051        (WebCore):
200052        * page/PerformanceEntryList.h:
200053        (PerformanceEntryList):
200054        * page/PerformanceUserTiming.cpp:
200055        (WebCore::convertToEntrySequence):
200056        (WebCore):
200057        (WebCore::getEntrySequenceByName):
200058        (WebCore::UserTiming::getMarks):
200059        (WebCore::UserTiming::getMeasures):
200060        * page/PerformanceUserTiming.h:
200061        (UserTiming):
200062
2000632012-10-22  Pan Deng  <pan.deng@intel.com>
200064
200065        Modify obsolete code in User Timing
200066        https://bugs.webkit.org/show_bug.cgi?id=99851
200067
200068        Reviewed by Tony Gentilcore.
200069
200070        Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
200071
200072        No new tests.
200073
200074        * page/PerformanceUserTiming.cpp:
200075        (WebCore::insertPerformanceEntry):
200076        (WebCore::UserTiming::mark):
200077        (WebCore::UserTiming::measure):
200078        * page/PerformanceUserTiming.h:
200079
2000802012-10-22  Mark Lam  <mark.lam@apple.com>
200081
200082        Change stack recursion checks to be based on stack availability.
200083        https://bugs.webkit.org/show_bug.cgi?id=99872.
200084
200085        Reviewed by Filip Pizlo and Geoffrey Garen.
200086
200087        Removed the use of ThreadStackType. Enabled the reserved JSStack space
200088        for error processing before doing work in reportException().
200089
200090        * bindings/js/JSDOMBinding.cpp:
200091        (WebCore::reportException):
200092        * bindings/js/JSDOMWindowBase.cpp:
200093        (WebCore::JSDOMWindowBase::commonJSGlobalData):
200094        * bindings/js/WorkerScriptController.cpp:
200095        (WebCore::WorkerScriptController::WorkerScriptController):
200096
2000972012-10-22  Andreas Kling  <kling@webkit.org>
200098
200099        REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
200100        <http://webkit.org/b/99937>
200101
200102        Reviewed by Anders Carlsson.
200103
200104        Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
200105        input type changing mechanism to write a value attribute onto the element. This happens in
200106        HTMLInputElement::updateType(), below parseAttribute().
200107
200108        It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
200109        where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
200110        a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
200111
200112        To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
200113        a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
200114        fewer references into the attribute store we have, the better.)
200115
200116        Test: fast/html/input-type-change-crash.html
200117
200118        * dom/Attr.cpp:
200119        (WebCore::Attr::setValue):
200120        (WebCore::Attr::childrenChanged):
200121        * dom/Element.cpp:
200122        (WebCore::Element::setAttributeInternal):
200123        (WebCore::Element::attributeChanged):
200124        (WebCore::Element::parserSetAttributes):
200125        (WebCore::Element::addAttributeInternal):
200126        (WebCore::Element::didAddAttribute):
200127        (WebCore::Element::didModifyAttribute):
200128        (WebCore::Element::didRemoveAttribute):
200129        * dom/Element.h:
200130        (Element):
200131        * dom/ElementAttributeData.cpp:
200132        (WebCore::ElementAttributeData::cloneDataFrom):
200133        * dom/StyledElement.cpp:
200134        (WebCore::StyledElement::attributeChanged):
200135        * dom/StyledElement.h:
200136        * html/HTMLInputElement.cpp:
200137        (WebCore::HTMLInputElement::updateType):
200138        * svg/SVGElement.cpp:
200139        (WebCore::SVGElement::attributeChanged):
200140        * svg/SVGElement.h:
200141        (SVGElement):
200142
2001432012-10-22  Joshua Bell  <jsbell@chromium.org>
200144
200145        IndexedDB: Bounds check for IDBCursor.advance() incorrect
200146        https://bugs.webkit.org/show_bug.cgi?id=100014
200147
200148        Reviewed by Tony Chang.
200149
200150        Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
200151        as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
200152        useless comparison was caught by a clang check.
200153
200154        In lieu of webkit.org/b/96798 make it long long and correct the range check.
200155
200156        Test: storage/indexeddb/cursor-advance.html
200157
200158        * Modules/indexeddb/IDBCursor.cpp:
200159        (WebCore::IDBCursor::advance):
200160        * Modules/indexeddb/IDBCursor.h:
200161        (IDBCursor):
200162        * Modules/indexeddb/IDBCursor.idl:
200163
2001642012-10-22  Tony Chang  <tony@chromium.org>
200165
200166        WebKit does not support 'flex-wrap: nowrap'
200167        https://bugs.webkit.org/show_bug.cgi?id=99924
200168
200169        Reviewed by Ojan Vafai.
200170
200171        The spec changed back from using none to nowrap for the single-line
200172        flexbox case.
200173        http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
200174
200175        No new tests, covered by css3/flexbox/css-properties.html and others.
200176
200177        * css/CSSParser.cpp:
200178        (WebCore::isValidKeywordPropertyAndValue):
200179        * css/CSSPrimitiveValueMappings.h:
200180        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
200181        (WebCore::CSSPrimitiveValue::operator EFlexWrap):
200182        * css/CSSValueKeywords.in:
200183        * rendering/RenderBox.cpp:
200184        (WebCore::isStretchingColumnFlexItem):
200185        (WebCore::RenderBox::sizesLogicalWidthToFitContent):
200186        * rendering/RenderFlexibleBox.cpp:
200187        (WebCore::RenderFlexibleBox::isMultiline):
200188        * rendering/style/RenderStyle.h:
200189        * rendering/style/RenderStyleConstants.h:
200190
2001912012-10-22  Mike West  <mkwst@chromium.org>
200192
200193        'image/pjpeg' should be treated as an image by Web Inspector.
200194        https://bugs.webkit.org/show_bug.cgi?id=100001
200195
200196        Reviewed by Pavel Feldman.
200197
200198        It's not exactly a "real" MIME type, but it's in use.
200199
200200        * inspector/front-end/NetworkManager.js:
200201        (WebInspector.NetworkManager):
200202            Adding 'image/pjpeg' as an image MIME type.
200203
2002042012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
200205
200206        Unreviewed, rolling out r132119.
200207        http://trac.webkit.org/changeset/132119
200208        https://bugs.webkit.org/show_bug.cgi?id=100019
200209
200210        Fails its own test on Mac platforms. (Requested by leviw on
200211        #webkit).
200212
200213        * page/EventHandler.cpp:
200214        (WebCore::EventHandler::handleGestureEvent):
200215        (WebCore::EventHandler::sendContextMenuEventForGesture):
200216        * page/EventHandler.h:
200217        (EventHandler):
200218
2002192012-10-22  Hans Muller  <hmuller@adobe.com>
200220
200221        [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
200222        https://bugs.webkit.org/show_bug.cgi?id=98967
200223
200224        Reviewed by Dirk Schulze.
200225
200226        Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
200227        so that they're consistent with the rendering code that depends on them.  Lines are now defined
200228        by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
200229        in functionality. It's already covered by the existing fast/exclusions LayoutTests.
200230
200231        Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
200232
200233        * rendering/ExclusionPolygon.cpp:
200234        (WebCore::ExclusionPolygon::getExcludedIntervals):
200235        (WebCore::ExclusionPolygon::getIncludedIntervals):
200236        * rendering/ExclusionPolygon.h:
200237        * rendering/ExclusionRectangle.cpp:
200238        (WebCore::ExclusionRectangle::getExcludedIntervals):
200239        (WebCore::ExclusionRectangle::getIncludedIntervals):
200240        * rendering/ExclusionRectangle.h:
200241        * rendering/ExclusionShape.h:
200242        (LineSegment): Moved the struct fields below the constructor per webkit style.
200243        (ExclusionShape):
200244        (WebCore::ExclusionShape::minYForLogicalLine):
200245        (WebCore::ExclusionShape::maxYForLogicalLine):
200246        * rendering/ExclusionShapeInsideInfo.cpp:
200247        (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
200248        * rendering/ExclusionShapeInsideInfo.h:
200249        (ExclusionShapeInsideInfo):
200250        (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
200251            lines whose logicalTop is equal to the shape's top+height.
200252        * rendering/RenderBlockLineLayout.cpp:
200253        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
200254
2002552012-10-22  Chris Rogers  <crogers@google.com>
200256
200257        Update some AudioContext create() method names to latest Web Audio spec
200258        https://bugs.webkit.org/show_bug.cgi?id=99888
200259
200260        Reviewed by Adam Barth.
200261
200262        The following AudioContext method names are being changed, with legacy support for the old names:
200263        createGainNode -> createGain
200264        createDelayNode -> createDelay
200265        createJavaScriptNode -> createScriptProcessor
200266
200267        For details:
200268        https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
200269
200270        Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
200271        to test coverage of the new names.
200272
200273        * Modules/webaudio/AudioBufferSourceNode.idl:
200274        * Modules/webaudio/AudioContext.cpp:
200275        (WebCore::AudioContext::createScriptProcessor):
200276        (WebCore::AudioContext::createGain):
200277        (WebCore::AudioContext::createDelay):
200278        * Modules/webaudio/AudioContext.h:
200279        (AudioContext):
200280        * Modules/webaudio/AudioContext.idl:
200281        * page/FeatureObserver.h:
200282
2002832012-10-22  Varun Jain  <varunjain@chromium.org>
200284
200285        Context menu generated from touch gestures on textareas has
200286        context of the cursor position instead of the position where the event occurs.
200287        https://bugs.webkit.org/show_bug.cgi?id=99520
200288
200289        Reviewed by Kenneth Rohde Christiansen.
200290
200291        Send a synthetic mouse down event for context menu-summoning-gesture events so
200292        that textareas can correctly set cursors before receiving the context menu event.
200293
200294        Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
200295
200296        * page/EventHandler.cpp:
200297        (WebCore::EventHandler::handleGestureEvent):
200298        (WebCore::EventHandler::handleGestureTwoFingerTap):
200299        (WebCore):
200300        (WebCore::EventHandler::sendContextMenuEventForGesture):
200301        * page/EventHandler.h:
200302        (EventHandler):
200303
2003042012-10-22  Zeno Albisser  <zeno@webkit.org>
200305
200306        TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
200307        https://bugs.webkit.org/show_bug.cgi?id=100002
200308
200309        Reviewed by Kenneth Rohde Christiansen.
200310
200311        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
200312        (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
200313            Check if a surface has been created before accessing the pointer.
200314        (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
200315            Check if m_graphicsSurface is a valid pointer before dereferencing it.
200316
2003172012-10-22  Michael Saboff  <msaboff@apple.com>
200318
200319        r131955 is has improper function call in LinkHashChromium.cpp
200320        https://bugs.webkit.org/show_bug.cgi?id=100008
200321
200322        Reviewed by Alexey Proskuryakov.
200323
200324        Followup fix to r131955 for chromium platform.  Added call to 
200325        (const UChar*, unsigned) version of visitedLinkHash from String& version.
200326
200327        * platform/chromium/LinkHashChromium.cpp:
200328        (WebCore::visitedLinkHash):
200329
2003302012-10-22  Aaron Colwell  <acolwell@chromium.org>
200331
200332        webkitsourceopen event doesn't always fire
200333        https://bugs.webkit.org/show_bug.cgi?id=99868
200334
200335        Reviewed by Adam Barth.
200336
200337        Changed MediaSource to derive from ActiveDOMObject so that event listeners
200338        will still fire even if all references to the object go out of scope.
200339
200340        Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
200341
200342        * Modules/mediasource/MediaSource.cpp:
200343        (WebCore::MediaSource::create):
200344        (WebCore::MediaSource::MediaSource):
200345        (WebCore::MediaSource::scriptExecutionContext):
200346        (WebCore):
200347        (WebCore::MediaSource::hasPendingActivity):
200348        (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
200349        * Modules/mediasource/MediaSource.h:
200350        (MediaSource):
200351        * Modules/mediasource/MediaSource.idl:
200352        * Modules/mediasource/MediaSourceRegistry.cpp:
200353        (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
200354        (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
200355
2003562012-10-22  Adam Barth  <abarth@webkit.org>
200357
200358        [V8] Vastly simplify V8GCController's NodeVisitor
200359        https://bugs.webkit.org/show_bug.cgi?id=99884
200360
200361        Reviewed by Kentaro Hara.
200362
200363        NodeVisitor was vastly more complicated than necessary.
200364
200365        This patch improve performance on these new gc benchmarks:
200366
200367        gc-forest: 1.14% better
200368        gc-mini-tree: 5.09% better
200369        gc-tree: 4.60% better
200370
200371        * bindings/v8/V8GCController.cpp:
200372        (WebCore::ObjectVisitor::visitDOMWrapper):
200373        (WebCore::addImplicitReferencesForNodeWithEventListeners):
200374        (WebCore::rootForGC):
200375        (WebCore::NodeVisitor::visitDOMWrapper):
200376        (WebCore::NodeVisitor::applyGrouping):
200377        (NodeVisitor):
200378
2003792012-10-22  Emil A Eklund  <eae@chromium.org>
200380
200381        Change baselinePosition and maxAscent/maxDescent to int
200382        https://bugs.webkit.org/show_bug.cgi?id=99767
200383
200384        Reviewed by Levi Weintraub.
200385
200386        Currently baselinePostion, maxAscent and maxDescent are
200387        LayoutUnits while ascent, descent and m_lineHeight are ints.
200388        This can lead to subtle alignment and rounding problems.
200389
200390        Change baselinePosition and maxAscent/maxDescent to int to avoid
200391        these issues.
200392
200393        Test: fast/sub-pixel/replaced-element-baseline.html
200394
200395        * editing/FrameSelection.cpp:
200396        (WebCore::repaintRectForCaret):
200397        Inflate Y dimension just like we do for X to ensure that the
200398        repaint rect fully contains the caret.
200399
200400        * rendering/InlineBox.cpp:
200401        (WebCore::InlineBox::baselinePosition):
200402        * rendering/InlineBox.h:
200403        (InlineBox):
200404        * rendering/InlineFlowBox.cpp:
200405        (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
200406        (WebCore::InlineFlowBox::computeLogicalBoxHeights):
200407        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
200408        Change maxAscent/maxDescent to int to match ascent/descent.
200409        
200410        * rendering/InlineFlowBox.h:
200411        (InlineFlowBox):
200412        * rendering/InlineTextBox.cpp:
200413        (WebCore::InlineTextBox::baselinePosition):
200414        * rendering/InlineTextBox.h:
200415        (InlineTextBox):
200416        * rendering/RenderBlock.cpp:
200417        (WebCore::RenderBlock::baselinePosition):
200418        (WebCore::RenderBlock::firstLineBoxBaseline):
200419        (WebCore::RenderBlock::lastLineBoxBaseline):
200420        * rendering/RenderBlock.h:
200421        (RenderBlock):
200422        * rendering/RenderBox.cpp:
200423        (WebCore::RenderBox::baselinePosition):
200424        * rendering/RenderBox.h:
200425        (WebCore::RenderBox::firstLineBoxBaseline):
200426        (WebCore::RenderBox::lastLineBoxBaseline):
200427        (RenderBox):
200428        * rendering/RenderBoxModelObject.h:
200429        (RenderBoxModelObject):
200430        * rendering/RenderFlexibleBox.cpp:
200431        (WebCore::RenderFlexibleBox::baselinePosition):
200432        (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
200433        * rendering/RenderFlexibleBox.h:
200434        * rendering/RenderInline.cpp:
200435        (WebCore::RenderInline::baselinePosition):
200436        * rendering/RenderInline.h:
200437        (RenderInline):
200438        * rendering/RenderListBox.cpp:
200439        (WebCore::RenderListBox::baselinePosition):
200440        * rendering/RenderListBox.h:
200441        (RenderListBox):
200442        * rendering/RenderListMarker.cpp:
200443        (WebCore::RenderListMarker::baselinePosition):
200444        * rendering/RenderListMarker.h:
200445        (RenderListMarker):
200446        * rendering/RenderSlider.cpp:
200447        (WebCore::RenderSlider::baselinePosition):
200448        * rendering/RenderSlider.h:
200449        (RenderSlider):
200450        * rendering/RenderTable.cpp:
200451        (WebCore::RenderTable::baselinePosition):
200452        (WebCore::RenderTable::lastLineBoxBaseline):
200453        (WebCore::RenderTable::firstLineBoxBaseline):
200454        * rendering/RenderTable.h:
200455        (RenderTable):
200456        * rendering/RenderTableSection.cpp:
200457        (WebCore::RenderTableSection::firstLineBoxBaseline):
200458        * rendering/RenderTableSection.h:
200459        (RenderTableSection):
200460        * rendering/RenderTextControlMultiLine.cpp:
200461        (WebCore::RenderTextControlMultiLine::baselinePosition):
200462        * rendering/RenderTextControlMultiLine.h:
200463        (RenderTextControlMultiLine):
200464        * rendering/RenderTheme.cpp:
200465        (WebCore::RenderTheme::baselinePosition):
200466        * rendering/RenderTheme.h:
200467        (RenderTheme):
200468        * rendering/RenderThemeSafari.cpp:
200469        (WebCore::RenderThemeSafari::baselinePosition):
200470        * rendering/RenderThemeSafari.h:
200471        (RenderThemeSafari):
200472        * rendering/RootInlineBox.cpp:
200473        (WebCore::RootInlineBox::baselinePosition):
200474        (WebCore::RootInlineBox::alignBoxesInBlockDirection):
200475        * rendering/RootInlineBox.h:
200476        (RootInlineBox):
200477        * rendering/mathml/RenderMathMLBlock.cpp:
200478        (WebCore::RenderMathMLBlock::baselinePosition):
200479        (WebCore::RenderMathMLTable::firstLineBoxBaseline):
200480        * rendering/mathml/RenderMathMLBlock.h:
200481        (RenderMathMLBlock):
200482        (RenderMathMLTable):
200483        * rendering/mathml/RenderMathMLFraction.cpp:
200484        (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
200485        * rendering/mathml/RenderMathMLFraction.h:
200486        (RenderMathMLFraction):
200487        * rendering/mathml/RenderMathMLOperator.cpp:
200488        (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
200489        * rendering/mathml/RenderMathMLOperator.h:
200490        * rendering/mathml/RenderMathMLUnderOver.cpp:
200491        (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
200492        * rendering/mathml/RenderMathMLUnderOver.h:
200493        (RenderMathMLUnderOver):
200494
2004952012-10-22  Emil A Eklund  <eae@chromium.org>
200496
200497        Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
200498        https://bugs.webkit.org/show_bug.cgi?id=98692
200499
200500        Reviewed by Dan Bernstein.
200501
200502        We currently overflow/wrap when computing the delta in
200503        RenderBlock::setLogicalTopForChild in cases where we have an
200504        element with a width or height exceeding maxLayoutUnit. When
200505        the delta is later added back in RenderBlock::layoutBlockChild
200506        the number wraps again getting us back to the correct value.
200507
200508        With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
200509        wraps, which seems like the correct thing to do however this
200510        causes the compare to fail for obvious reasons. By accounting
200511        for this we can keep the asserts (which have proven very
200512        helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
200513
200514        No new tests, covered by existing tests.
200515
200516        * rendering/LayoutState.cpp:
200517        (WebCore::LayoutState::LayoutState):
200518        * rendering/LayoutState.h:
200519        (WebCore::LayoutState::LayoutState):
200520        (LayoutState):
200521        * rendering/RenderBlock.cpp:
200522        (WebCore::RenderBlock::layoutBlockChild):
200523        * rendering/RenderView.cpp:
200524        (WebCore::RenderView::layout):
200525        * rendering/RenderView.h:
200526        (WebCore::RenderView::addLayoutDelta):
200527        (RenderView):
200528        (WebCore::RenderView::layoutDeltaMatches):
200529
2005302012-10-22  Tony Chang  <tony@chromium.org>
200531
200532        Fix some baseline flexbox alignment
200533        https://bugs.webkit.org/show_bug.cgi?id=99879
200534
200535        Reviewed by Ojan Vafai.
200536
200537        Fix a bug where we weren't handling margin properly on inline-flexbox.
200538        Fix a bug where we weren't getting the edge of the content box properly when synthesizing
200539        a baseline.
200540
200541        Test: css3/flexbox/flexbox-baseline-margins.html
200542
200543        * rendering/RenderBlock.cpp:
200544        (WebCore::RenderBlock::baselinePosition):
200545        (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
200546        baseline. Previously we would use lastLineBoxBaseline.
200547        (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
200548        * rendering/RenderBlock.h:
200549        (RenderBlock): Make lastLineBoxBaseline non-virtual.
200550        * rendering/RenderBox.h:
200551        (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
200552        * rendering/RenderFlexibleBox.cpp:
200553        (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
200554        (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
200555        (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
200556        synthesize a baseline if we have a flexitem without text.
200557        (WebCore::RenderFlexibleBox::inlineBlockBaseline):
200558        * rendering/RenderFlexibleBox.h:
200559        * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
200560        (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
200561        * rendering/RenderTable.h:
200562        (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
200563
2005642012-10-22  Levi Weintraub  <leviw@chromium.org>
200565
200566        Unreviewed Chromium build fix following r132074.
200567
200568        * WebCore.gypi:
200569
2005702012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
200571
200572        [GTK] Don't use deprecated AccessibilityObject methods after r99502
200573        https://bugs.webkit.org/show_bug.cgi?id=99985
200574
200575        Reviewed by Chris Fleizach.
200576
200577        Update callers for AccessibilityObject's title() and
200578        accessibilityDescription() so they now use AccessibilityText.
200579
200580        * accessibility/gtk/WebKitAccessibleUtil.cpp:
200581        (titleTagShouldBeUsedInDescriptionField): Internal helper function.
200582        (accessibilityTitle): New helper function, returns an String with
200583        the title for a AccessibilityObject, using AccessibleText.
200584        (accessibilityDescription): New helper function, returns an String with
200585        the description for a AccessibilityObject, using AccessibleText.
200586        * accessibility/gtk/WebKitAccessibleUtil.h: Added public
200587        declarations for accessibilityTitle and accessibilityDescription.
200588
200589        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
200590        (webkitAccessibleGetName): Use new helpers for retrieving the title.
200591        (webkitAccessibleGetDescription): Use new helpers for retrieving
200592        the title and description.
200593
200594        * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
200595        (webkitAccessibleImageGetImageDescription): Use new helpers for
200596        retrieving the title.
200597
2005982012-10-16  Andrey Kosyakov  <caseq@chromium.org>
200599
200600        Web Inspector: add timeline instrumentation for scrolling of a layer
200601        https://bugs.webkit.org/show_bug.cgi?id=99461
200602
200603        Reviewed by Pavel Feldman.
200604
200605        - added timeline instrumentation for scrolling of a layer;
200606        - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
200607
200608        * inspector/InspectorInstrumentation.cpp:
200609        (WebCore):
200610        (WebCore::InspectorInstrumentation::willScrollLayerImpl):
200611        (WebCore::InspectorInstrumentation::didScrollLayerImpl):
200612        * inspector/InspectorInstrumentation.h:
200613        (InspectorInstrumentation):
200614        (WebCore::InspectorInstrumentation::willScrollLayer):
200615        (WebCore):
200616        (WebCore::InspectorInstrumentation::didScrollLayer):
200617        * inspector/InspectorTimelineAgent.cpp:
200618        (TimelineRecordType):
200619        (WebCore::InspectorTimelineAgent::willScroll):
200620        (WebCore):
200621        (WebCore::InspectorTimelineAgent::didScroll):
200622        * inspector/InspectorTimelineAgent.h:
200623        (InspectorTimelineAgent):
200624        * inspector/front-end/TimelineModel.js:
200625        * inspector/front-end/TimelinePresentationModel.js:
200626        (WebInspector.TimelinePresentationModel._initRecordStyles):
200627        * rendering/RenderLayer.cpp:
200628        (WebCore::RenderLayer::scrollTo):
200629        * platform/ScrollableArea.cpp:
200630        (WebCore::ScrollableArea::scrollPositionChanged):
200631
2006322012-10-22  Jan Keromnes  <janx@linux.com>
200633
200634        Moved cmdevtools.js to folder cm/
200635
200636        Web Inspector: Move file `cmdevtools.css` to `cm/`
200637        https://bugs.webkit.org/show_bug.cgi?id=99956
200638
200639        Reviewed by Pavel Feldman.
200640
200641        The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
200642
200643        * WebCore.gypi:
200644        * WebCore.vcproj/WebCore.vcproj:
200645        * inspector/front-end/WebKit.qrc:
200646        * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
200647        (.CodeMirror):
200648        (.CodeMirror-scroll):
200649        (.cm-highlight):
200650        (@-webkit-keyframes fadeout):
200651        (to):
200652        (.cm-breakpoint):
200653        (.cm-breakpoint-disabled):
200654        (.cm-breakpoint-conditional):
200655        (.cm-execution-line):
200656        (.cm-s-web-inspector-js span.cm-keyword):
200657        (.cm-s-web-inspector-js span.cm-number):
200658        (.cm-s-web-inspector-js span.cm-comment):
200659        (.cm-s-web-inspector-js span.cm-string):
200660        (.cm-s-web-inspector-js span.cm-string-2):
200661        (.cm-s-web-inspector-css span.cm-keyword):
200662        (.cm-s-web-inspector-css span.cm-number):
200663        (.cm-s-web-inspector-css span.cm-comment):
200664        (.cm-s-web-inspector-css span.cm-string):
200665        (.cm-s-web-inspector-css span.cm-string-2):
200666        (.cm-s-web-inspector-css span.cm-link):
200667        (.cm-s-web-inspector-css span.cm-variable):
200668        (.cm-s-web-inspector-html span.cm-meta):
200669        (.cm-s-web-inspector-html span.cm-comment):
200670        (.cm-s-web-inspector-html span.cm-string):
200671        (.cm-s-web-inspector-html span.cm-tag):
200672        (.cm-s-web-inspector-html span.cm-attribute):
200673        (.cm-s-web-inspector-html span.cm-link):
200674        (.webkit-html-message-bubble):
200675        (.webkit-html-warning-message):
200676        (.webkit-html-error-message):
200677        (.webkit-html-message-line):
200678        (.webkit-html-message-line-hover):
200679
2006802012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
200681
200682        Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
200683        https://bugs.webkit.org/show_bug.cgi?id=99997
200684
200685        Reviewed by Pavel Feldman.
200686
200687        Source mappings could now store a link to temporary uiSourceCodes only.
200688        Otherwise it should retrieve uiSourceCodes from workspace by URL.
200689        Original uiSourceCodes are now temporary in CompilerScriptMapping.
200690
200691        * inspector/front-end/CompilerScriptMapping.js:
200692        (WebInspector.CompilerScriptMapping):
200693        (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
200694        (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
200695        (WebInspector.CompilerScriptMapping.prototype._reset):
200696        * inspector/front-end/NetworkUISourceCodeProvider.js:
200697        (WebInspector.NetworkUISourceCodeProvider):
200698        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
200699        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
200700        (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
200701        (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
200702        * inspector/front-end/SASSSourceMapping.js:
200703        (WebInspector.SASSSourceMapping):
200704        (_bindUISourceCode):
200705        (_reset):
200706
2007072012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
200708
200709        Gstreamer 1.0 not working
200710        https://bugs.webkit.org/show_bug.cgi?id=99852
200711
200712        Reviewed by Philippe Normand.
200713
200714        There was a series of trivial issue, g_object_is_floating() was called
200715        on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
200716        returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
200717        to GST_MESSAGE_DURATION_CHANGED.
200718
200719        Most failing test passes now.
200720
200721        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
200722        (WTF::adoptGRef):
200723        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
200724        (webkitGstGetPadCaps):
200725        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
200726        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
200727
2007282012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
200729
200730        Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
200731        https://bugs.webkit.org/show_bug.cgi?id=99989
200732
200733        Reviewed by Pavel Feldman.
200734
200735        Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
200736        ResourceScriptMapping now supports two types of temporary uiSourceCodes:
200737         - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
200738         - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
200739
200740        * inspector/front-end/BreakpointManager.js:
200741        (WebInspector.BreakpointManager.breakpointStorageId):
200742        (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
200743        * inspector/front-end/NetworkUISourceCodeProvider.js:
200744        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
200745        * inspector/front-end/ResourceScriptMapping.js:
200746        (WebInspector.ResourceScriptMapping):
200747        (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
200748        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
200749        (WebInspector.ResourceScriptMapping.prototype.addScript):
200750        (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
200751        (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
200752        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
200753        (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
200754        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
200755        (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
200756        (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
200757        (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
200758        (WebInspector.ResourceScriptMapping.prototype._reset):
200759
2007602012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
200761
200762        [css3-text] Add rendering support for -webkit-text-decoration-style
200763        https://bugs.webkit.org/show_bug.cgi?id=94094
200764
200765        Reviewed by Julien Chaffraix.
200766
200767        This patch implements the "text-decoration-style" property rendering as
200768        specified in CSS3 working draft, with "-webkit-" prefix. The specification can
200769        be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
200770
200771        Additionally, Mozilla implementation details can be found here:
200772        https://developer.mozilla.org/en/CSS/text-decoration-style
200773
200774        Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
200775               fast/css3-text/css3-text-decoration/text-decoration-style.html
200776
200777        * platform/graphics/GraphicsContext.h:
200778        * platform/graphics/cairo/GraphicsContextCairo.cpp:
200779        (WebCore::GraphicsContext::setPlatformStrokeStyle):
200780        * platform/graphics/cg/GraphicsContextCG.cpp:
200781        (WebCore::GraphicsContext::drawLine):
200782        * platform/graphics/qt/GraphicsContextQt.cpp:
200783        (WebCore::toQPenStyle):
200784        (WebCore::GraphicsContext::drawLine):
200785        * platform/graphics/skia/PlatformContextSkia.cpp:
200786        (WebCore::PlatformContextSkia::setupPaintForStroking):
200787        * platform/graphics/wince/GraphicsContextWinCE.cpp:
200788        (WebCore::createPen):
200789        * platform/graphics/wx/GraphicsContextWx.cpp:
200790        (WebCore::strokeStyleToWxPenStyle):
200791        Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
200792        platform-specific stroke handling. Some styles requires
200793        platform-specific implementation (handled in bug 92868).
200794        * rendering/InlineTextBox.cpp:
200795        (WebCore::InlineTextBox::paint):
200796        (WebCore::textDecorationStyleToStrokeStyle): Added static function that
200797        translates text decoration to stroke styles.
200798        (WebCore::InlineTextBox::paintDecoration): Text decoration style does
200799        not specify a property for line thickness (like border-width does for
200800        border style), so we statically set it to 1 for now. The 'double' style
200801        implementation simply adds a parallel line (depending if it is
200802        underline, overline or line-through) and the space between lines follows
200803        the approach used by border's 'double' style.
200804        * rendering/InlineTextBox.h:
200805        (InlineTextBox):
200806        * rendering/style/RenderStyle.h:
200807        * rendering/style/RenderStyleConstants.h:
200808        Added text decoration style rendering support to
200809        InlineTextBox::paintDecoration().
200810
2008112012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
200812
200813        [Qt] Use the DNS resolve queue
200814        https://bugs.webkit.org/show_bug.cgi?id=99994
200815
200816        Reviewed by Simon Hausmann.
200817
200818        Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
200819        during parsing. It also ensure each hostname is only appears once in the queue.
200820
200821        * Target.pri:
200822        * platform/network/qt/DNSQt.cpp: Added.
200823        (DnsPrefetchHelper):
200824        (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
200825        (WebCore::DnsPrefetchHelper::lookup):
200826        (WebCore::DnsPrefetchHelper::lookedUp):
200827        (WebCore::prefetchDNS):
200828        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
200829        (WebCore::DNSResolveQueue::platformResolve):
200830        * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
200831        * platform/network/qt/DnsPrefetchHelper.h: Removed.
200832        (DnsPrefetchHelper):
200833
2008342012-10-22  Erik Arvidsson  <arv@chromium.org>
200835
200836        HTMLBaseElement href attribute binding returns wrong URL
200837        https://bugs.webkit.org/show_bug.cgi?id=98184
200838
200839        Reviewed by Ojan Vafai.
200840
200841        Resolve the href attribute binding relative to the document URL instead of resolving it to the
200842        base element itself. If there is no href attribute this should return the fallback base URL.
200843
200844        http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
200845
200846        Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
200847               fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
200848
200849        * html/HTMLBaseElement.cpp:
200850        (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
200851        of the generic [Reflect, URL] binding.
200852        (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
200853        * html/HTMLBaseElement.h:
200854        * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
200855
2008562012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
200857
200858        Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
200859        https://bugs.webkit.org/show_bug.cgi?id=99991
200860
200861        Reviewed by Alexander Pavlov.
200862
200863        * inspector/front-end/UISourceCode.js:
200864        (WebInspector.UISourceCode):
200865
2008662012-10-22  Florin Malita  <fmalita@chromium.org>
200867
200868        Incorrect embedded SVG image sizing on first load
200869        https://bugs.webkit.org/show_bug.cgi?id=99489
200870
200871        Reviewed by Nikolas Zimmermann.
200872
200873        RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
200874        to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
200875        already been performed.
200876
200877        Test: svg/custom/svg-image-initial-size.html
200878
200879        * rendering/svg/RenderSVGImage.cpp:
200880        (WebCore::RenderSVGImage::imageChanged):
200881
2008822012-10-22  Keishi Hattori  <keishi@webkit.org>
200883
200884        Remove monthFormatInLDML
200885        https://bugs.webkit.org/show_bug.cgi?id=99971
200886
200887        Reviewed by Kent Tamura.
200888
200889        Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
200890
200891        No new tests. Just removing unused code.
200892
200893        * platform/LocalizedStrings.h:
200894        (WebCore):
200895
2008962012-10-22  Zan Dobersek  <zandobersek@gmail.com>
200897
200898        [GTK] Enable Microdata DOM API
200899        https://bugs.webkit.org/show_bug.cgi?id=99033
200900
200901        Reviewed by Martin Robinson.
200902
200903        Enable the Microdata DOM API, but still disable it when the unstable
200904        features should be disabled (for instance in release builds).
200905
200906        No new tests - related tests are being unskipped and are expected to pass.
200907
200908        * GNUmakefile.am:
200909        * GNUmakefile.features.am:
200910        * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
200911        API GObject bindings are generated and built.
200912
2009132012-10-22  Zan Dobersek  <zandobersek@gmail.com>
200914
200915        [GTK] Enable CSP 1.1
200916        https://bugs.webkit.org/show_bug.cgi?id=99064
200917
200918        Reviewed by Martin Robinson.
200919
200920        Enable CSP 1.1 in development builds but keep it disabled when the
200921        unstable features should not be enabled (like in stable releases).
200922
200923        No new tests - they already exist and will be unskipped.
200924
200925        * GNUmakefile.am:
200926        * GNUmakefile.features.am:
200927
2009282012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
200929
200930        [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
200931        https://bugs.webkit.org/show_bug.cgi?id=98514
200932
200933        Reviewed by Kenneth Rohde Christiansen.
200934
200935        The problem is that we call setFixedVisibleContentRect, which triggers
200936        a layout, after the document has been put in the page cache and before
200937        the load has been actually committed.
200938
200939        This applies the same trick as with setFixedLayoutSize by passing the rect
200940        in Frame::createView and calling setFixedVisibleContentRect before the
200941        new FrameView gets attached to the Frame/Document to prevent the layout.
200942
200943        * WebCore.exp.in:
200944        * page/Frame.cpp:
200945        (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
200946        useFixedLayout arguments as well since they are used exceptionally.
200947        * page/Frame.h:
200948        (Frame):
200949
2009502012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
200951
200952        [Qt] Handle GET of blob URLs.
200953        https://bugs.webkit.org/show_bug.cgi?id=99053
200954
200955        Reviewed by Simon Hausmann.
200956
200957        Let BlobResourceHandle handle Blob request internally.
200958
200959        * platform/network/qt/ResourceHandleQt.cpp:
200960        (WebCore::ResourceHandle::loadResourceSynchronously):
200961
2009622012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
200963
200964        HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
200965        https://bugs.webkit.org/show_bug.cgi?id=99966
200966
200967        Reviewed by Kent Tamura.
200968
200969        If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
200970
200971        No new tests. Confirmed the fix by using Address Sanitizer.
200972
200973        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
200974        (WebCore::HarfBuzzShaper::shape):
200975        (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
200976        * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
200977        (HarfBuzzShaper):
200978
2009792012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
200980
200981        [Shadow] ASSERT triggered when we try reprojecting fallback elements.
200982        https://bugs.webkit.org/show_bug.cgi?id=99815
200983
200984        Reviewed by Hajime Morita.
200985
200986        When fallback elements of InsertionPoint is reprojected, they were attached twice.
200987        We have to skip attaching them if they are attached. We also add a few ASSERT not to
200988        allow attaching twice if not necessary.
200989
200990        We have confirmed that this patch does not regress the performance. The summary of the
200991        performance test is the following:
200992
200993        Dromaeo/dom-modify.html [runs/s]:
200994                               median stdev    min    max
200995           without this patch:   3928   184   3655   4361
200996           with this patch   :   3925   178   3652   4350
200997
200998        Parser/html5-full-render.html [s]:
200999                               median stdev    min    max
201000           without this patch:   3821    17   3811   3850
201001           with this patch   :   3838   4.4   3833   3844
201002
201003        Test: fast/dom/shadow/content-reprojection-fallback-crash.html
201004
201005        * dom/ContainerNode.cpp:
201006        (WebCore):
201007        (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
201008        be attached in advance because of ShadowDOM attaching process.
201009        * dom/ContainerNode.h:
201010        (ContainerNode):
201011        (WebCore):
201012        (WebCore::ContainerNode::attachChildren):
201013        * dom/Element.cpp:
201014        (WebCore::Element::attach):
201015        * dom/ShadowRoot.cpp:
201016        (WebCore::ShadowRoot::attach):
201017
2010182012-10-22  Pavel Feldman  <pfeldman@chromium.org>
201019
201020        Web Inspector: merge "docked" state into the "dock side" enum.
201021        https://bugs.webkit.org/show_bug.cgi?id=99717
201022
201023        Reviewed by Vsevolod Vlasov.
201024
201025        Otherwise, it is hard to manage these inter-dependent flags.
201026
201027        * WebCore.exp.in:
201028        * inspector/InspectorFrontendClient.h:
201029        (InspectorFrontendClient):
201030        * inspector/InspectorFrontendClientLocal.cpp:
201031        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
201032        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
201033        * inspector/InspectorFrontendClientLocal.h:
201034        (InspectorFrontendClientLocal):
201035        * inspector/InspectorFrontendHost.cpp:
201036        (WebCore::InspectorFrontendHost::requestSetDockSide):
201037        * inspector/InspectorFrontendHost.h:
201038        (InspectorFrontendHost):
201039        * inspector/InspectorFrontendHost.idl:
201040        * inspector/front-end/DockController.js:
201041        (WebInspector.DockController):
201042        (WebInspector.DockController.prototype._updateUI.get sides):
201043        (WebInspector.DockController.prototype._updateUI):
201044        (WebInspector.DockController.prototype._toggleDockState):
201045        * inspector/front-end/InspectorFrontendAPI.js:
201046        (InspectorFrontendAPI.setAttachedWindow):
201047        (InspectorFrontendAPI.setDockSide):
201048        * inspector/front-end/InspectorFrontendHostStub.js:
201049        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
201050        * inspector/front-end/externs.js:
201051
2010522012-10-22  MORITA Hajime  <morrita@google.com>
201053
201054        Unreviewed follow up to update test result after r132033.
201055
201056        * bindings/scripts/test/V8/V8TestObj.cpp:
201057        (WebCore::V8TestObj::installPerContextProperties):
201058
2010592012-10-21  MORITA Hajime  <morrita@google.com>
201060
201061        [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
201062        https://bugs.webkit.org/show_bug.cgi?id=99954
201063
201064        Reviewed by Kentaro Hara.
201065
201066        It now refers ScriptExecutionContext of the creation context instead of document() of
201067        wrapped object.
201068
201069        No new tests. No behavior change at this time.
201070
201071        * bindings/scripts/CodeGeneratorV8.pm:
201072        (GenerateImplementation):
201073
2010742012-10-21  Kent Tamura  <tkent@chromium.org>
201075
201076        Page popup: Fix crash by events after closing
201077        https://bugs.webkit.org/show_bug.cgi?id=99951
201078
201079        Reviewed by Hajime Morita.
201080
201081        WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
201082
201083        No new tests. The bug is timing-dependent.
201084
201085        * page/DOMWindowPagePopup.cpp:
201086        (WebCore::DOMWindowPagePopup::uninstall):
201087        Added. Calls Supplementable::removeSupplement.
201088        * page/DOMWindowPagePopup.h:
201089        (DOMWindowPagePopup): Declare uninstall.
201090        * platform/Supplementable.h:
201091        (WebCore::Supplementable::removeSupplement): Added.
201092
2010932012-10-21  Keishi Hattori  <keishi@webkit.org>
201094
201095        Refactor picker tests to fix flakiness and share code
201096        https://bugs.webkit.org/show_bug.cgi?id=99671
201097
201098        Reviewed by Kent Tamura.
201099
201100        Disable transitions until the picker is fully ready. This should fix flakiness.
201101
201102        No new tests.
201103
201104        * Resources/pagepopups/calendarPicker.css:
201105        (.preparing .unavailable): Disable transitions.
201106        (.preparing .available): Disable transitions.
201107        * Resources/pagepopups/calendarPicker.js:
201108        (CalendarPicker): Set "preparing" class.
201109        (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
201110
2011112012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
201112
201113        Web Inspector: Shadow DOM: Node removal doesn't reflect.
201114        https://bugs.webkit.org/show_bug.cgi?id=99567
201115
201116        Reviewed by Pavel Feldman.
201117
201118        We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
201119        Otherwise, node won't be removed from the inspector.
201120
201121        Test: inspector/elements/update-shadowdom.html
201122
201123        * dom/ContainerNode.cpp:
201124        (WebCore::dispatchChildRemovalEvents):
201125
2011262012-10-21  Andreas Kling  <kling@webkit.org>
201127
201128        Remove Page::javaScriptURLsAreAllowed setting.
201129        <http://webkit.org/b/99944>
201130
201131        Reviewed by Anders Carlsson.
201132
201133        This setting was exposed through internal WebView API in Apple's WebKit1.
201134        There are no longer any clients of that API.
201135
201136        This is a step towards preventing elements from modifying their own attributes
201137        below attributeChanged().
201138
201139        * WebCore.exp.in:
201140        * WebCore.order:
201141        * bindings/ScriptControllerBase.cpp:
201142        (WebCore::ScriptController::executeIfJavaScriptURL):
201143        * html/HTMLAnchorElement.cpp:
201144        (WebCore::HTMLAnchorElement::parseAttribute):
201145        * page/Page.cpp:
201146        (WebCore::Page::Page):
201147        * page/Page.h:
201148        (Page):
201149
2011502012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
201151
201152        Add a separate flag for rgb swizzling whether it can be modified or not
201153        https://bugs.webkit.org/show_bug.cgi?id=98728
201154
201155        BitmapTexture swizzles the source image if the OpenGL driver
201156        doesn't support the BGRA extension.
201157        In case of directly composited images, the source image should not
201158        be modified.
201159
201160        http://www.satine.org/research/webkit/snowleopard/snowstack.html
201161
201162        Reviewed by Noam Rosenthal.
201163
201164        No new tests as this is only testable on specific hardware and
201165        currently not avaiable in the bots.
201166
201167        * platform/graphics/texmap/TextureMapper.h:
201168        (BitmapTexture):
201169        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
201170        (WebCore::TextureMapperTile::updateContents):
201171        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
201172        (WebCore::TextureMapperTiledBackingStore::updateContents):
201173        * platform/graphics/texmap/TextureMapperBackingStore.h:
201174        (TextureMapperTile):
201175        (TextureMapperTiledBackingStore):
201176        (WebCore::TextureMapperTiledBackingStore::updateContents):
201177        * platform/graphics/texmap/TextureMapperGL.cpp:
201178        (WebCore::TextureMapperGL::drawRepaintCounter):
201179        (WebCore::BitmapTextureGL::updateContents):
201180        * platform/graphics/texmap/TextureMapperGL.h:
201181        (BitmapTextureGL):
201182        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
201183        (WebCore::BitmapTextureImageBuffer::updateContents):
201184        * platform/graphics/texmap/TextureMapperImageBuffer.h:
201185        (BitmapTextureImageBuffer):
201186        * platform/graphics/texmap/TextureMapperLayer.cpp:
201187        (WebCore::TextureMapperLayer::updateBackingStore):
201188
2011892012-10-21  Antti Koivisto  <antti@apple.com>
201190
201191        Factor stylesheet invalidation analysis code into a class
201192        https://bugs.webkit.org/show_bug.cgi?id=99933
201193
201194        Reviewed by Sam Weinig.
201195
201196        Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
201197        further progress easier.
201198
201199        The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
201200        and DocumentStyleSheetCollection there. No functional changes.
201201
201202        * CMakeLists.txt:
201203        * GNUmakefile.list.am:
201204        * Target.pri:
201205        * WebCore.gypi:
201206        * WebCore.vcproj/WebCore.vcproj:
201207        * WebCore.xcodeproj/project.pbxproj:
201208        * css/SelectorChecker.cpp:
201209        (WebCore):
201210        * css/SelectorChecker.h:
201211        (WebCore):
201212        * css/StyleInvalidationAnalysis.cpp: Added.
201213        (WebCore):
201214        (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
201215        (WebCore::StyleInvalidationAnalysis::create):
201216        (WebCore::determineSelectorScopes):
201217        (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
201218        (WebCore::elementMatchesSelectorScopes):
201219        (WebCore::StyleInvalidationAnalysis::invalidateStyle):
201220        * css/StyleInvalidationAnalysis.h: Added.
201221        (WebCore):
201222        (StyleInvalidationAnalysis):
201223        (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
201224        * css/StyleResolver.cpp:
201225        (WebCore::StyleResolver::checkRegionSelector):
201226        * css/StyleResolver.h:
201227        (StyleResolver):
201228        * dom/DocumentStyleSheetCollection.cpp:
201229        (WebCore):
201230        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
201231        * dom/DocumentStyleSheetCollection.h:
201232        (DocumentStyleSheetCollection):
201233
2012342012-10-08  Robert Hogan  <robert@webkit.org>
201235
201236        In some float situations, the original layout is wrong and only corrects itself on repaint
201237        https://bugs.webkit.org/show_bug.cgi?id=18939
201238
201239        Reviewed by Levi Weintraub.
201240
201241        A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
201242        This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
201243        does not.
201244
201245        Test: fast/block/br-with-clearance-after-collapsing-space.html
201246
201247        * rendering/RenderBlockLineLayout.cpp:
201248        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
201249
2012502012-10-08  Robert Hogan  <robert@webkit.org>
201251
201252        floated element with negative margin causes text wrap bug
201253        https://bugs.webkit.org/show_bug.cgi?id=94825
201254
201255        Reviewed by Levi Weintraub.
201256
201257        Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
201258        floats on the line is at least as much as the offset given by border, margin and padding. This only
201259        happens when a negative margin on the float brings its edge back before the offset
201260        given by the border, margin and padding of its parents.
201261
201262        Test: fast/block/float/float-on-line-obeys-container-padding.html
201263
201264        * rendering/RenderBlockLineLayout.cpp:
201265        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
201266
2012672012-10-20  Martin Robinson  <mrobinson@igalia.com>
201268
201269        Fix 'make dist' for the GTK+ port
201270
201271        * GNUmakefile.am: Add missing files to the source list.
201272        * GNUmakefile.list.am: Ditto.
201273
2012742012-10-20  Dan Bernstein  <mitz@apple.com>
201275
201276        <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
201277        https://bugs.webkit.org/show_bug.cgi?id=99918
201278
201279        Reviewed by Geoff Garen.
201280
201281        -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
201282        asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
201283
201284        Test: fast/text/zero-font-size-2.html
201285
201286        * platform/graphics/mac/FontMac.mm:
201287        (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
201288
2012892012-10-20  Andreas Kling  <kling@webkit.org>
201290
201291        Clean up QualifiedName-as-hash-key scenario.
201292        <http://webkit.org/b/99394>
201293
201294        Reviewed by Anders Carlsson.
201295
201296        Cache the hash on QualifiedNameImpl after the first time it's computed.
201297        This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
201298        which I believe is fine, since QualifiedName is a shared object.
201299
201300        Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
201301        and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
201302        create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
201303        added to  the global QualifiedName cache, etc.
201304
201305        Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
201306        the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
201307        directly instead.
201308
201309        Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
201310
201311        * dom/QualifiedName.cpp:
201312        (WebCore::nullQName):
201313        (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
201314        * dom/QualifiedName.h:
201315        (QualifiedNameImpl):
201316        (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
201317        (WebCore::QualifiedNameHash::hash):
201318        * svg/SVGElement.h:
201319        (WebCore::SVGAttributeHashTranslator::hash):
201320
2013212012-10-20  Yael Aharon  <yael.aharon@intel.com>
201322
201323        [EFL][AC] Build fix after r131933
201324        https://bugs.webkit.org/show_bug.cgi?id=99901
201325
201326        Reviewed by Kentaro Hara.
201327
201328        Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
201329
201330        No new tests.
201331
201332        * CMakeLists.txt:
201333
2013342012-10-19  Adam Barth  <abarth@webkit.org>
201335
201336        [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
201337        https://bugs.webkit.org/show_bug.cgi?id=99876
201338
201339        Reviewed by Kentaro Hara.
201340
201341        We want to remove the document parameter to instantiateV8Object. There
201342        isn't always a Document available, so it doesn't make sense to pass it
201343        as a parameter. We're just waiting for a V8 API change so we can still
201344        construct Node wrappers quickly.
201345
201346        This patch removes a use of the document that snuck in. Rather than
201347        passing the ScriptExecutionContext around, we get it from the
201348        CreationContext of the prototype object (and only when we actually need
201349        it).
201350
201351        * Modules/notifications/NotificationCenter.cpp:
201352        * Modules/notifications/NotificationCenter.h:
201353        (NotificationCenter):
201354        * bindings/scripts/CodeGeneratorV8.pm:
201355        (GenerateHeader):
201356        (GenerateConstructorGetter):
201357        (GenerateImplementation):
201358        (GenerateToV8Converters):
201359        * bindings/v8/V8DOMWindowShell.cpp:
201360        (WebCore::V8DOMWindowShell::installDOMWindow):
201361        * bindings/v8/V8DOMWrapper.cpp:
201362        (WebCore::V8DOMWrapper::instantiateV8Object):
201363        * bindings/v8/V8PerContextData.cpp:
201364        (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
201365        (WebCore::V8PerContextData::constructorForTypeSlowCase):
201366        * bindings/v8/V8PerContextData.h:
201367        (WebCore::V8PerContextData::createWrapperFromCache):
201368        (WebCore::V8PerContextData::constructorForType):
201369        (V8PerContextData):
201370        * bindings/v8/WorkerContextExecutionProxy.cpp:
201371        (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
201372        * bindings/v8/WrapperTypeInfo.h:
201373        (WebCore):
201374        (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
201375
2013762012-10-19  Florin Malita  <fmalita@chromium.org>
201377
201378        Incorrect pattern scaling
201379        https://bugs.webkit.org/show_bug.cgi?id=99870
201380
201381        Reviewed by Dirk Schulze.
201382
201383        The pattern space transform scale should reflect the tile_size(user space)
201384        to tile_image_size ratio, instead of tile_size to absolute_tile_size.
201385
201386        Test: svg/custom/pattern-scaling.svg
201387
201388        * rendering/svg/RenderSVGResourcePattern.cpp:
201389        (WebCore::RenderSVGResourcePattern::applyResource):
201390
2013912012-10-19  Tony Chang  <tony@chromium.org>
201392
201393        RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
201394        https://bugs.webkit.org/show_bug.cgi?id=97827
201395
201396        Reviewed by Ojan Vafai.
201397
201398        I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
201399        border and padding), so just add an assert.
201400
201401        No new tests, the assert is for code clarity.
201402
201403        * rendering/RenderFlexibleBox.cpp:
201404        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
201405
2014062012-10-19  Tony Chang  <tony@chromium.org>
201407
201408        Replace calls to updateLogicalHeight with calls to computeLogicalHeight
201409        https://bugs.webkit.org/show_bug.cgi?id=99883
201410
201411        Reviewed by Ojan Vafai.
201412
201413        In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
201414        saving the old height, calling update logical height, then restoring the old height.
201415
201416        No new tests, this is just a refactoring.
201417
201418        * rendering/RenderBlock.cpp:
201419        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
201420        * rendering/RenderBox.cpp:
201421        (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
201422        (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
201423        (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
201424
2014252012-10-19  Pablo Flouret  <pablof@motorola.com>
201426
201427        Implement setRangeText() on text controls
201428        https://bugs.webkit.org/show_bug.cgi?id=91907
201429
201430        Reviewed by Kent Tamura.
201431
201432        setRangeText() replaces a range of text with some other text, and
201433        adjusts the existing selection according to its parameters.
201434
201435        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
201436
201437        Tests: fast/forms/color/color-setrangetext.html
201438               fast/forms/date/date-setrangetext.html
201439               fast/forms/datetime/datetime-setrangetext.html
201440               fast/forms/datetimelocal/datetimelocal-setrangetext.html
201441               fast/forms/file/file-setrangetext.html
201442               fast/forms/hidden/hidden-setrangetext.html
201443               fast/forms/image/image-setrangetext.html
201444               fast/forms/month/month-setrangetext.html
201445               fast/forms/number/number-setrangetext.html
201446               fast/forms/range/range-setrangetext.html
201447               fast/forms/search/search-setrangetext.html
201448               fast/forms/setrangetext.html
201449               fast/forms/textarea/textarea-setrangetext.html
201450               fast/forms/time/time-setrangetext.html
201451               fast/forms/week/week-setrangetext.html
201452
201453
201454        * bindings/scripts/CodeGeneratorGObject.pm:
201455        (SkipFunction):
201456            The GObject generator doesn't support function overloads, so skip the
201457            version of setRangeText() that has only one argument, its behavior
201458            can be emulated with the four-argument version.
201459
201460        * html/InputType.cpp:
201461        (WebCore::InputType::supportsSelectionAPI):
201462        (WebCore):
201463        * html/InputType.h:
201464        (InputType):
201465            Add supportsSelectionAPI() which indicates whether the various
201466            selection api functions like setRangeText, setSelectionRange, etc.
201467            are supported by this input element.
201468
201469        * html/BaseTextInputType.cpp:
201470        (WebCore::BaseTextInputType::supportsSelectionAPI):
201471        (WebCore):
201472        * html/BaseTextInputType.h:
201473        (BaseTextInputType):
201474            Text-based input types support the selection APIs.
201475
201476        * html/EmailInputType.cpp:
201477        (WebCore::EmailInputType::supportsSelectionAPI):
201478        (WebCore):
201479        * html/EmailInputType.h:
201480        (EmailInputType):
201481            Email inputs don't support the selection APIs.
201482
201483        * html/HTMLInputElement.cpp:
201484        (WebCore::HTMLInputElement::setRangeText):
201485        * html/HTMLInputElement.h:
201486        (HTMLInputElement):
201487            Add a setRangeText override which checks if it should apply to the
201488            input type, and calls the actual implementation on the parent class.
201489        * html/HTMLInputElement.idl:
201490        * html/HTMLTextAreaElement.idl:
201491
201492        * html/HTMLTextFormControlElement.cpp:
201493        (WebCore::HTMLTextFormControlElement::setRangeText):
201494        * html/HTMLTextFormControlElement.h:
201495        (HTMLTextFormControlElement):
201496            setRangeText implementation.
201497
201498
2014992012-10-19  Luke Macpherson   <macpherson@chromium.org>
201500
201501        Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
201502        https://bugs.webkit.org/show_bug.cgi?id=99782
201503
201504        Reviewed by Sam Weinig.
201505
201506        Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
201507        to use it instead of adding a line to StyleBuilder.
201508        Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
201509        I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
201510
201511        Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
201512
201513        * css/StyleResolver.cpp:
201514        (WebCore):
201515        (WebCore::StyleResolver::applyProperty):
201516
2015172012-10-19  Joshua Bell  <jsbell@chromium.org>
201518
201519        IndexedDB: Hidden indexing events are visible to script via bubbling/capture
201520        https://bugs.webkit.org/show_bug.cgi?id=96566
201521
201522        Reviewed by Tony Chang.
201523
201524        Stop propagation of error events fired at internal indexing requests as a result of
201525        aborting, as they should not be visible to scripts.
201526
201527        Test: storage/indexeddb/index-population.html
201528
201529        * Modules/indexeddb/IDBObjectStore.cpp:
201530        (WebCore::IDBObjectStore::createIndex):
201531        * Modules/indexeddb/IDBRequest.cpp:
201532        (WebCore::IDBRequest::IDBRequest):
201533        (WebCore::IDBRequest::dispatchEvent):
201534        * Modules/indexeddb/IDBRequest.h:
201535        (WebCore::IDBRequest::preventPropagation):
201536        (IDBRequest):
201537
2015382012-10-19  Simon Fraser  <simon.fraser@apple.com>
201539
201540        Remove .get() calls in assertions as suggested by Darin Adler.
201541        
201542        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
201543        (PlatformCALayer::appendSublayer):
201544        (PlatformCALayer::insertSublayer):
201545        (PlatformCALayer::replaceSublayer):
201546
2015472012-10-19  Simon Fraser  <simon.fraser@apple.com>
201548
201549        Fix a hang when combining tile cache layers with preserve-3d or reflections
201550        https://bugs.webkit.org/show_bug.cgi?id=99890
201551        <rdar://problem/12539560>
201552
201553        Reviewed by Dean Jackson.
201554
201555        The new tile cache code added an updateSublayers() call when switching to/from
201556        tiled layers. This confused later sublayer rebuilding, causing us to attempt to
201557        add a layer as a child of itself, causing a hang in CA.
201558        
201559        Fix by removing all the explicit calls to updateFoo when updating the structural
201560        layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
201561        on the fact that these flag-dirtying functions get called before the later functions
201562        that process those dirty flags. This is assured by some reordering of the update
201563        function calls.
201564        
201565        A final wrinkle is that ensureStructuralLayer() can change the layer that our
201566        parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
201567        list directly like we used to, just call noteSublayersChanged() on the parent, and have
201568        commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
201569        of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
201570        only do this work if a sublayer requested it).
201571        
201572        Tests: compositing/tiling/preserve3d-tiled.html
201573               compositing/tiling/reflected-tiled.html
201574
201575        * platform/graphics/ca/GraphicsLayerCA.cpp:
201576        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
201577        (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
201578        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
201579        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
201580        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
201581        (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
201582        (PlatformCALayer::insertSublayer): Ditto.
201583        (PlatformCALayer::replaceSublayer): Ditto.
201584
2015852012-10-19  Chris Fleizach  <cfleizach@apple.com>
201586
201587        AX: aria-hidden=false does not work as expected
201588        https://bugs.webkit.org/show_bug.cgi?id=98787
201589
201590        Reviewed by Beth Dakin.
201591
201592        ARIA requires that aria-hidden=false override an element's native visibility and include that
201593        node in the AX hierarchy.
201594
201595        To accomplish this we have to allow invisible items to be included, as well as items that
201596        have no renderers associated with them.
201597
201598        Test: accessibility/aria-hidden-negates-no-visibility.html
201599
201600        * accessibility/AXObjectCache.cpp:
201601        (WebCore::AXObjectCache::getOrCreate):
201602        * accessibility/AccessibilityARIAGrid.cpp:
201603        (WebCore::AccessibilityARIAGrid::addTableCellChild):
201604        (WebCore::AccessibilityARIAGrid::addChildren):
201605        * accessibility/AccessibilityARIAGrid.h:
201606        (AccessibilityARIAGrid):
201607        * accessibility/AccessibilityNodeObject.cpp:
201608        (WebCore):
201609       (WebCore::AccessibilityNodeObject::boundingBoxRect):
201610        (WebCore::AccessibilityNodeObject::insertChild):
201611        (WebCore::AccessibilityNodeObject::addChild):
201612        (WebCore::AccessibilityNodeObject::addChildren):
201613        (WebCore::AccessibilityNodeObject::textUnderElement):
201614        * accessibility/AccessibilityNodeObject.h:
201615        (AccessibilityNodeObject):
201616        * accessibility/AccessibilityObject.cpp:
201617        (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
201618        (WebCore):
201619        * accessibility/AccessibilityObject.h:
201620        (AccessibilityObject):
201621        (WebCore::AccessibilityObject::addChild):
201622        (WebCore::AccessibilityObject::insertChild):
201623        * accessibility/AccessibilityRenderObject.cpp:
201624        (WebCore):
201625        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
201626        (WebCore::AccessibilityRenderObject::addHiddenChildren):
201627        (WebCore::AccessibilityRenderObject::addChildren):
201628        * accessibility/AccessibilityRenderObject.h:
201629        (AccessibilityRenderObject):
201630
2016312012-10-19  Michael Saboff  <msaboff@apple.com>
201632
201633        Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
201634        https://bugs.webkit.org/show_bug.cgi?id=99735
201635
201636        Reviewed by Filip Pizlo.
201637
201638        Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
201639        to chromium platform version of LinkHashChromium.cpp.
201640        Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
201641        new form.
201642
201643        No changes to functionality, so no new tests.
201644
201645        * WebCore.exp.in:
201646        * loader/HistoryController.cpp:
201647        (WebCore::addVisitedLink):
201648        * page/PageGroup.cpp:
201649        (WebCore::PageGroup::addVisitedLink):
201650        * platform/LinkHash.cpp:
201651        (WebCore::visitedLinkHashInline):
201652        (WebCore::visitedLinkHash):
201653        * platform/LinkHash.h:
201654        * platform/chromium/LinkHashChromium.cpp:
201655        (WebCore::visitedLinkHash):
201656
2016572012-10-19  Michael Saboff  <msaboff@apple.com>
201658
201659        String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
201660        https://bugs.webkit.org/show_bug.cgi?id=99794
201661
201662        Reviewed by Filip Pizlo.
201663
201664        Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
201665
201666        No new test, added 8 bit path.
201667
201668        * platform/text/cf/StringCF.cpp:
201669        (WTF::String::String):
201670
2016712012-10-19  Dima Gorbik  <dgorbik@apple.com>
201672
201673        Page should be removed from the cache right after restore was called.
201674        https://bugs.webkit.org/show_bug.cgi?id=99737
201675
201676        Reviewed by Brady Eidson.
201677
201678        The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
201679        but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
201680        This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
201681        behavior in LayoutTests. All the current tests that exercise the page cache do pass.
201682
201683        No new tests.
201684
201685        * loader/FrameLoader.cpp:
201686        (WebCore::FrameLoader::commitProvisionalLoad):
201687
2016882012-10-19  Max Vujovic  <mvujovic@adobe.com>
201689
201690        [WebGL] getUniformLocation fails for uniform array name without array brackets
201691        https://bugs.webkit.org/show_bug.cgi?id=99854
201692
201693        Reviewed by Dean Jackson.
201694
201695        Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
201696        location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
201697        returns the array location.
201698
201699        In the process of adding a check to the following Khronos WebGL conformance test:
201700        conformance/glsl/misc/glsl-long-variable-names.html
201701
201702        * platform/graphics/ANGLEWebKitBridge.cpp:
201703        (WebCore::getSymbolInfo):
201704            Before, we used to check that the symbol size was greater than one to determine that the
201705            symbol was an array. However, this doesn't identify arrays of length one. Now, we check
201706            if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
201707            names.
201708            If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
201709            name. We set the isArray flag on the symbol, so we don't lose the information that it is
201710            an array.
201711            Then, we create symbols for each array element like before. However, instead of
201712            replacing the "0" in array[0]" with each index, we take the base name "array" and
201713            append array brackets containing each index (e.g. "array" + "[7]").
201714        * platform/graphics/ANGLEWebKitBridge.h:
201715        (ANGLEShaderSymbol):
201716            Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
201717            anymore, this is the only way to identify arrays.
201718
2017192012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
201720
201721        Unreviewed, rolling out r131915.
201722        http://trac.webkit.org/changeset/131915
201723        https://bugs.webkit.org/show_bug.cgi?id=98787
201724
201725        It broke the build on platforms with \!HAVE(ACCESSIBILITY)
201726
201727        * accessibility/AXObjectCache.cpp:
201728        (WebCore::AXObjectCache::getOrCreate):
201729        (WebCore::AXObjectCache::nodeIsTextControl):
201730        * accessibility/AXObjectCache.h:
201731        (WebCore):
201732        * accessibility/AccessibilityARIAGrid.cpp:
201733        (WebCore::AccessibilityARIAGrid::addChild):
201734        (WebCore::AccessibilityARIAGrid::addChildren):
201735        * accessibility/AccessibilityARIAGrid.h:
201736        (AccessibilityARIAGrid):
201737        * accessibility/AccessibilityNodeObject.cpp:
201738        (WebCore::AccessibilityNodeObject::elementRect):
201739        (WebCore::AccessibilityNodeObject::addChildren):
201740        (WebCore::AccessibilityNodeObject::textUnderElement):
201741        * accessibility/AccessibilityNodeObject.h:
201742        (AccessibilityNodeObject):
201743        * accessibility/AccessibilityObject.cpp:
201744        * accessibility/AccessibilityObject.h:
201745        (AccessibilityObject):
201746        * accessibility/AccessibilityRenderObject.cpp:
201747        (WebCore::textIteratorBehaviorForTextRange):
201748        (WebCore):
201749        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
201750        (WebCore::AccessibilityRenderObject::addChildren):
201751        * accessibility/AccessibilityRenderObject.h:
201752        (AccessibilityRenderObject):
201753
2017542012-10-19  Tony Chang  <tony@chromium.org>
201755
201756        Unreviewed, rolling out r131936.
201757        http://trac.webkit.org/changeset/131936
201758        https://bugs.webkit.org/show_bug.cgi?id=99717
201759
201760        Broke the clang build
201761
201762        * WebCore.exp.in:
201763        * inspector/InspectorFrontendClient.h:
201764        (InspectorFrontendClient):
201765        * inspector/InspectorFrontendClientLocal.cpp:
201766        (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
201767        (WebCore):
201768        (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
201769        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
201770        * inspector/InspectorFrontendClientLocal.h:
201771        (InspectorFrontendClientLocal):
201772        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
201773        * inspector/InspectorFrontendHost.cpp:
201774        (WebCore::InspectorFrontendHost::requestAttachWindow):
201775        (WebCore):
201776        (WebCore::InspectorFrontendHost::requestDetachWindow):
201777        (WebCore::InspectorFrontendHost::requestSetDockSide):
201778        * inspector/InspectorFrontendHost.h:
201779        (InspectorFrontendHost):
201780        * inspector/InspectorFrontendHost.idl:
201781        * inspector/front-end/DockController.js:
201782        (WebInspector.DockController):
201783        (WebInspector.DockController.prototype.setDocked):
201784        (WebInspector.DockController.prototype._innerSetDocked.set if):
201785        (WebInspector.DockController.prototype._innerSetDocked):
201786        (WebInspector.DockController.prototype._updateUI.get states):
201787        (WebInspector.DockController.prototype._updateUI):
201788        (WebInspector.DockController.prototype._toggleDockState):
201789        * inspector/front-end/InspectorFrontendAPI.js:
201790        (InspectorFrontendAPI.setAttachedWindow):
201791        (InspectorFrontendAPI.setDockSide):
201792        * inspector/front-end/InspectorFrontendHostStub.js:
201793        (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
201794        (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
201795        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
201796        * inspector/front-end/externs.js:
201797        (InspectorFrontendHostAPI.prototype.requestAttachWindow):
201798        (InspectorFrontendHostAPI.prototype.requestDetachWindow):
201799
2018002012-10-09  Martin Robinson  <mrobinson@igalia.com>
201801
201802        REGRESSION (r130699): 5 various fast/ tests started failing
201803        https://bugs.webkit.org/show_bug.cgi?id=98729
201804
201805        Reviewed by Xan Lopez.
201806
201807        Do not try to remove the URL fragment for data URLs. This will likely
201808        just corrupt the URL.
201809
201810        No new tests. This unskips some previously failing tests.
201811
201812        * platform/network/soup/ResourceRequestSoup.cpp:
201813        (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
201814
2018152012-10-19  Simon Fraser  <simon.fraser@apple.com>
201816
201817        Use tile caches in place of CATiledLayer
201818        https://bugs.webkit.org/show_bug.cgi?id=99806
201819        <rdar://problem/6474145>
201820
201821        Reviewed by Tim Horton.
201822
201823        Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
201824        layers that exceed the 2000px size threshold.
201825
201826        * platform/graphics/TiledBacking.h:
201827        (TiledBacking): Have normal getter and setter for the visible rect.
201828        * platform/graphics/ca/GraphicsLayerCA.cpp:
201829        (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
201830        to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
201831        our current visible rect, which result in no tile area work.
201832        (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
201833        return the rect, for clarity.
201834        (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
201835        visible rect, and use the change flags mechanism to ensure that we recompute
201836        tile areas later.
201837        When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
201838        its own visible rect as the old visible rect.
201839        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
201840        oldVisibleRect so that updateVisibleRect() can use this to see how the
201841        visibleRect is changing.
201842        (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
201843        compares the old and new visible rects, and extends the tile coverage area
201844        in directions where more content is being exposed. It takes care to avoid
201845        "jitter" in the visible rect deltas causing edge tiles to get created then
201846        destroyed by keeping any extra padding that already exists in a direction
201847        where more content is being exposed.
201848        (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
201849        and use the result to update the TiledBacking's visibleRect.
201850        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
201851        LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
201852        cache layers involve adding an extra layer to the hierarchy (the tile container),
201853        we call updateSublayerList() when changing layer type.
201854        * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
201855        that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
201856        size changes.
201857        (WebCore::GraphicsLayerCA::visibleRect):
201858        * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
201859        * platform/graphics/ca/mac/TileCache.mm:
201860        (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
201861        * rendering/RenderLayerCompositor.cpp:
201862        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
201863        for pages in the page cache, for which the root layer is unattached.
201864        (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
201865        to setVisibleRect().
201866
2018672012-10-19  Beth Dakin  <bdakin@apple.com>
201868
201869        https://bugs.webkit.org/show_bug.cgi?id=99768
201870        We should limit the tile cache coverage when a page can't take 
201871        advantage of fast tile scrolling anyway
201872
201873        Reviewed by Simon Fraser.
201874
201875        When sites can't use fast-scrolling, there is no need to inflate the 
201876        tile cache. In fact, we get a performance boost by keeping it small 
201877        on painting-intensive sites. 
201878
201879        Instead of just looking a whether or not the FrameView 
201880        canHaveScrollbar(), consult 
201881        shouldUpdateScrollLayerPositionOnMainThread().
201882        * page/FrameView.cpp:
201883        (WebCore::FrameView::performPostLayoutTasks):
201884        * rendering/RenderLayerBacking.cpp:
201885        (WebCore::RenderLayerBacking::RenderLayerBacking):
201886        
201887        Expose shouldUpdateScrollLayerPositionOnMainThread().
201888        * page/scrolling/ScrollingCoordinator.cpp:
201889        (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
201890        (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
201891        (WebCore):
201892        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
201893        * page/scrolling/ScrollingCoordinator.h:
201894        (ScrollingCoordinator):
201895
201896        Bug fix. Should be bitwise and.
201897        * platform/graphics/ca/mac/TileCache.mm:
201898        (WebCore::TileCache::tileCoverageRect):
201899
2019002012-10-19  Mark Lam  <mark.lam@apple.com>
201901
201902        Added WTF::StackStats mechanism.
201903        https://bugs.webkit.org/show_bug.cgi?id=99805.
201904
201905        Reviewed by Geoffrey Garen.
201906
201907        Added StackStats probes in layout methods.
201908
201909        * dom/Document.cpp:
201910        (WebCore::Document::updateLayout):
201911        * rendering/RenderBlock.cpp:
201912        (WebCore::RenderBlock::layout):
201913        * rendering/RenderBox.cpp:
201914        (WebCore::RenderBox::layout):
201915        * rendering/RenderDialog.cpp:
201916        (WebCore::RenderDialog::layout):
201917        * rendering/RenderEmbeddedObject.cpp:
201918        (WebCore::RenderEmbeddedObject::layout):
201919        * rendering/RenderFlowThread.cpp:
201920        (WebCore::RenderFlowThread::layout):
201921        * rendering/RenderFrameSet.cpp:
201922        (WebCore::RenderFrameSet::layout):
201923        * rendering/RenderIFrame.cpp:
201924        (WebCore::RenderIFrame::layout):
201925        * rendering/RenderImage.cpp:
201926        (WebCore::RenderImage::layout):
201927        * rendering/RenderListBox.cpp:
201928        (WebCore::RenderListBox::layout):
201929        * rendering/RenderListItem.cpp:
201930        (WebCore::RenderListItem::layout):
201931        * rendering/RenderListMarker.cpp:
201932        (WebCore::RenderListMarker::layout):
201933        * rendering/RenderMedia.cpp:
201934        (WebCore::RenderMedia::layout):
201935        * rendering/RenderObject.cpp:
201936        (WebCore::RenderObject::layout):
201937        * rendering/RenderObject.h:
201938        * rendering/RenderRegion.cpp:
201939        (WebCore::RenderRegion::layout):
201940        * rendering/RenderReplaced.cpp:
201941        (WebCore::RenderReplaced::layout):
201942        * rendering/RenderReplica.cpp:
201943        (WebCore::RenderReplica::layout):
201944        * rendering/RenderRubyRun.cpp:
201945        (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
201946        * rendering/RenderScrollbarPart.cpp:
201947        (WebCore::RenderScrollbarPart::layout):
201948        * rendering/RenderSlider.cpp:
201949        (WebCore::RenderSlider::layout):
201950        * rendering/RenderTable.cpp:
201951        (WebCore::RenderTable::layout):
201952        * rendering/RenderTableCell.cpp:
201953        (WebCore::RenderTableCell::layout):
201954        * rendering/RenderTableRow.cpp:
201955        (WebCore::RenderTableRow::layout):
201956        * rendering/RenderTableSection.cpp:
201957        (WebCore::RenderTableSection::layout):
201958        * rendering/RenderTextControlSingleLine.cpp:
201959        (WebCore::RenderTextControlSingleLine::layout):
201960        * rendering/RenderTextTrackCue.cpp:
201961        (WebCore::RenderTextTrackCue::layout):
201962        * rendering/RenderVideo.cpp:
201963        (WebCore::RenderVideo::layout):
201964        * rendering/RenderView.cpp:
201965        (WebCore::RenderView::layout):
201966        * rendering/RenderWidget.cpp:
201967        (WebCore::RenderWidget::layout):
201968        * rendering/svg/RenderSVGContainer.cpp:
201969        (WebCore::RenderSVGContainer::layout):
201970        * rendering/svg/RenderSVGForeignObject.cpp:
201971        (WebCore::RenderSVGForeignObject::layout):
201972        * rendering/svg/RenderSVGGradientStop.cpp:
201973        (WebCore::RenderSVGGradientStop::layout):
201974        * rendering/svg/RenderSVGHiddenContainer.cpp:
201975        (WebCore::RenderSVGHiddenContainer::layout):
201976        * rendering/svg/RenderSVGImage.cpp:
201977        (WebCore::RenderSVGImage::layout):
201978        * rendering/svg/RenderSVGResourceContainer.cpp:
201979        (WebCore::RenderSVGResourceContainer::layout):
201980        * rendering/svg/RenderSVGResourceMarker.cpp:
201981        (WebCore::RenderSVGResourceMarker::layout):
201982        * rendering/svg/RenderSVGRoot.cpp:
201983        (WebCore::RenderSVGRoot::layout):
201984        * rendering/svg/RenderSVGShape.cpp:
201985        (WebCore::RenderSVGShape::layout):
201986        * rendering/svg/RenderSVGText.cpp:
201987        (WebCore::RenderSVGText::layout):
201988
2019892012-10-19  Pavel Feldman  <pfeldman@chromium.org>
201990
201991        Web Inspector: merge "docked" state into the "dock side" enum.
201992        https://bugs.webkit.org/show_bug.cgi?id=99717
201993
201994        Reviewed by Vsevolod Vlasov.
201995
201996        Otherwise, it is hard to manage these inter-dependent flags.
201997
201998        * inspector/InspectorFrontendClient.h:
201999        (InspectorFrontendClient):
202000        * inspector/InspectorFrontendClientLocal.cpp:
202001        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
202002        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
202003        * inspector/InspectorFrontendClientLocal.h:
202004        (InspectorFrontendClientLocal):
202005        * inspector/InspectorFrontendHost.cpp:
202006        (WebCore::InspectorFrontendHost::requestSetDockSide):
202007        * inspector/InspectorFrontendHost.h:
202008        (InspectorFrontendHost):
202009        * inspector/InspectorFrontendHost.idl:
202010        * inspector/front-end/DockController.js:
202011        (WebInspector.DockController):
202012        (WebInspector.DockController.prototype._updateUI.get sides):
202013        (WebInspector.DockController.prototype._updateUI):
202014        (WebInspector.DockController.prototype._toggleDockState):
202015        * inspector/front-end/InspectorFrontendAPI.js:
202016        (InspectorFrontendAPI.setAttachedWindow):
202017        * inspector/front-end/InspectorFrontendHostStub.js:
202018        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
202019
2020202012-10-19  Joshua Bell  <jsbell@chromium.org>
202021
202022        [V8] IndexedDB: Crash when lazy-indexing Date keys
202023        https://bugs.webkit.org/show_bug.cgi?id=99860
202024
202025        Reviewed by Adam Barth.
202026
202027        Missing a scope/context needed when digging values out of Date objects
202028        in an indexing callback.
202029
202030        Test: storage/indexeddb/lazy-index-types.html
202031
202032        * bindings/v8/IDBBindingUtilities.cpp:
202033        (WebCore::createIDBKeyFromScriptValueAndKeyPath):
202034
2020352012-10-18  Dean Jackson  <dino@apple.com>
202036
202037        Shader translator needs option to clamp uniform array accesses in vertex shaders
202038        https://bugs.webkit.org/show_bug.cgi?id=98977
202039        https://code.google.com/p/angleproject/issues/detail?id=49
202040
202041        Reviewed by Alok Priyadarshi and Ken Russell.
202042
202043        WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
202044        ensure that non-direct array indexing is clamped to the bounds of the array.
202045
202046        Test: fast/canvas/webgl/array-bounds-clamping.html
202047
202048        * platform/graphics/ANGLEWebKitBridge.cpp:
202049        (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
202050
2020512012-10-19  Justin Novosad  <junov@chromium.org>
202052
202053        [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
202054        https://bugs.webkit.org/show_bug.cgi?id=99856
202055
202056        Reviewed by Stephen White.
202057
202058        Marking internal bitmap copy as immutable to prevent it from being
202059        unnecessarily duplicated in skia by SkBitmapHeap.
202060
202061        No new tests: code path already well covered by existing layout tests 
202062        fast/canvas/canvas-pattern-*
202063
202064        * platform/graphics/skia/PatternSkia.cpp:
202065        (WebCore::Pattern::platformPattern):
202066
2020672012-10-19  Antti Koivisto  <antti@apple.com>
202068
202069        Maintain a list of active CSS stylesheets
202070        https://bugs.webkit.org/show_bug.cgi?id=99843
202071
202072        Reviewed by Andreas Kling.
202073
202074        Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
202075        This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
202076        a list of active CSS stylesheets separately simplifies code in number of places.
202077
202078        * css/StyleResolver.cpp:
202079        (WebCore::StyleResolver::StyleResolver):
202080        (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
202081        (WebCore::StyleResolver::appendAuthorStyleSheets):
202082        (WebCore::collectCSSOMWrappers):
202083        * css/StyleResolver.h:
202084        (StyleResolver):
202085        * css/StyleSheetList.cpp:
202086        (WebCore::StyleSheetList::styleSheets):
202087        (WebCore::StyleSheetList::detachFromDocument):
202088        * dom/Document.cpp:
202089        (WebCore::Document::setCompatibilityMode):
202090        * dom/DocumentStyleSheetCollection.cpp:
202091        (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
202092        (WebCore::styleSheetsUseRemUnits):
202093        (WebCore::filterEnabledCSSStyleSheets):
202094        (WebCore):
202095        (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
202096        (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
202097        * dom/DocumentStyleSheetCollection.h:
202098        (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
202099        (DocumentStyleSheetCollection):
202100        (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
202101
2021022012-09-08  Alpha Lam  <hclam@chromium.org>
202103
202104        [chromium] Implement deferred image decoding
202105        https://bugs.webkit.org/show_bug.cgi?id=94240
202106
202107        Reviewed by Stephen White.
202108
202109        Objectives:
202110
202111        To record image decoding operations during painting and to defer
202112        decoding operations until rasterization.
202113
202114        Rationale:
202115
202116        This is a key feature that enables impl-side painting which requires
202117        fast recording of drawing operations. The existing decode-on-draw
202118        restricts that recording has to block on expensive decoding operations.
202119        This change allows recording of image decoding operations during paint
202120        time.
202121
202122        Design:
202123
202124        Image decoding happens when a BitmapImage is drawn into a
202125        GraphicsContext. When per-tile painting is enabled GraphicsContext
202126        is backed by SkCanvas in recording mode. This SkCanvas records drawing
202127        and image decoding operations to minimize recording time.
202128
202129        An image decoding operation is recorded as a SkPixelRef object
202130        implemented by LazyDecodingPixelRef. This object references raw encoded
202131        data, regions to be decoded and scaling information.
202132
202133        When used in conjunction with per-tile painting this feature defers
202134        image decoding until the SkCanvas referencing the image is rasterized.
202135
202136        Both recording and rasterization happen on the main thread.
202137
202138        Performance Impact:
202139
202140        This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
202141        and does not have an impact when disabled.
202142
202143        This feature is disabled by default.
202144
202145        Upcoming Changes:
202146
202147        1. Implement a full-featured image cache in ImageDecodingStore.
202148        2. Allow rasterization and decoding on impl thread.
202149
202150        Classes Involved:
202151
202152        BitmapImage
202153
202154        BitmapImage is the entry point for deferred image decoding. When
202155        drawing a BitmapImage into a GraphicsContext it makes a request to
202156        create a NativeImageSkia. We substitute the content in NativeImageSkia
202157        such that it is lazily decoded.
202158
202159        DeferredImageDecoder
202160
202161        This is the platform implementation of a image decoder for Chromium.
202162        This is a bridge layer that either delegates calls to the actual
202163        ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
202164        to ImageDecodingStore.
202165
202166        ImageDecodingStore
202167
202168        This object manages all encoded images. It keeps track of encoded
202169        data and the corresponding ImageDecoder for doing actual decoding. It
202170        is also responsible for generating lazily decoded SkBitmaps. This
202171        SkBitmap contains a LazyDecodingPixelRef object which references to an
202172        image entry in ImageDecodingStore.
202173
202174        ScaledImageFragment
202175
202176        A container for a scaled image fragment. In addition to bitmap pixels
202177        it contains information about the ID of the image, scale and clipping.
202178
202179        ImageFrameGenerator
202180
202181        This object is responsible for generating decoded pixels. It is also
202182        a container for encoded image data and corresponding image decoder.
202183
202184        LazyDecodingPixelRef
202185
202186        This object is embedded in a SkBitmap to enable lazy decoding. When
202187        SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
202188        contains information to locate an image and scaling info, these
202189        information is submitted to ImageDecodingStore to access actual pixels.
202190
202191        Layout tests. There are about 80 tests in this virtual test suite
202192        running this feature in this directory:
202193
202194        platform/chromium/virtual/deferred/fast/images
202195
202196        Unit tests. Added DeferredImageDecoderTest to verify deferred
202197        image decoding behavior.
202198
202199        * WebCore.gypi:
202200        * platform/graphics/ImageSource.cpp:
202201        (WebCore::ImageSource::setData):
202202        * platform/graphics/ImageSource.h:
202203        (WebCore):
202204        (ImageSource):
202205        * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
202206        (WebCore):
202207        (WebCore::DeferredImageDecoder::DeferredImageDecoder):
202208        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
202209        (WebCore::DeferredImageDecoder::create):
202210        (WebCore::DeferredImageDecoder::createForTesting):
202211        (WebCore::DeferredImageDecoder::filenameExtension):
202212        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
202213        (WebCore::DeferredImageDecoder::setData):
202214        (WebCore::DeferredImageDecoder::isSizeAvailable):
202215        (WebCore::DeferredImageDecoder::size):
202216        (WebCore::DeferredImageDecoder::frameSizeAtIndex):
202217        (WebCore::DeferredImageDecoder::frameCount):
202218        (WebCore::DeferredImageDecoder::repetitionCount):
202219        (WebCore::DeferredImageDecoder::clearFrameBufferCache):
202220        (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
202221        (WebCore::DeferredImageDecoder::frameBytesAtIndex):
202222        * platform/graphics/chromium/DeferredImageDecoder.h: Added.
202223        (WebCore):
202224        (DeferredImageDecoder):
202225        * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
202226        (WebCore::ImageDecodingStore::ImageDecodingStore):
202227        (WebCore):
202228        (WebCore::ImageDecodingStore::~ImageDecodingStore):
202229        (WebCore::ImageDecodingStore::instanceOnMainThread):
202230        (WebCore::ImageDecodingStore::initializeOnMainThread):
202231        (WebCore::ImageDecodingStore::shutdown):
202232        (WebCore::ImageDecodingStore::isLazyDecoded):
202233        (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
202234        (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
202235        (WebCore::ImageDecodingStore::setData):
202236        (WebCore::ImageDecodingStore::lockPixels):
202237        (WebCore::ImageDecodingStore::unlockPixels):
202238        (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
202239        (WebCore::ImageDecodingStore::calledOnValidThread):
202240        (WebCore::ImageDecodingStore::lookupFrameCache):
202241        (WebCore::ImageDecodingStore::deleteFrameCache):
202242        * platform/graphics/chromium/ImageDecodingStore.h: Added.
202243        (WebCore):
202244        (ImageDecodingStore):
202245        (WebCore::ImageDecodingStore::create):
202246        * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
202247        (WebCore):
202248        (WebCore::ScaledImageFragment::~ScaledImageFragment):
202249        (WebCore::ScaledImageFragment::ScaledImageFragment):
202250        (WebCore::ScaledImageFragment::isEqual):
202251        * platform/graphics/chromium/ScaledImageFragment.h: Added.
202252        (WebCore):
202253        (ScaledImageFragment):
202254        (WebCore::ScaledImageFragment::create):
202255        (WebCore::ScaledImageFragment::bitmap):
202256        (WebCore::ScaledImageFragment::isComplete):
202257        * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
202258        (WebCore):
202259        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
202260        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
202261        (WebCore::ImageFrameGenerator::decoder):
202262        (WebCore::ImageFrameGenerator::setData):
202263        * platform/graphics/chromium/ImageFrameGenerator.h: Added.
202264        (WebCore):
202265        (ImageFrameGenerator):
202266        (WebCore::ImageFrameGenerator::create):
202267        (WebCore::ImageFrameGenerator::size):
202268        (WebCore::ImageFrameGenerator::imageId):
202269        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
202270        (WebCore):
202271        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
202272        (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
202273        (WebCore::LazyDecodingPixelRef::isScaled):
202274        (WebCore::LazyDecodingPixelRef::isClipped):
202275        (WebCore::LazyDecodingPixelRef::onLockPixels):
202276        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
202277        (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
202278        * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
202279        (WebCore):
202280        (LazyDecodingPixelRef):
202281        (WebCore::LazyDecodingPixelRef::frameGenerator):
202282        * platform/graphics/skia/NativeImageSkia.cpp:
202283        (WebCore::NativeImageSkia::resizedBitmap):
202284        * platform/image-decoders/ImageDecoder.h:
202285        (ImageFrame):
202286        (WebCore::ImageFrame::setSkBitmap):
202287        (WebCore::ImageFrame::getSkBitmap):
202288
2022892012-10-18  Yael Aharon  <yael.aharon@intel.com>
202290
202291        [EFL] GraphicsContext3D::m_renderStyle is not initialized
202292        https://bugs.webkit.org/show_bug.cgi?id=99721
202293
202294        Reviewed by Antonio Gomes.
202295
202296        Initialize GraphicsContext3D::m_renderStyle.
202297
202298        No new tests, no new functionality.
202299
202300        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
202301        (WebCore::GraphicsContext3D::GraphicsContext3D):
202302
2023032012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
202304
202305        Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
202306        https://bugs.webkit.org/show_bug.cgi?id=99804
202307
202308        Reviewed by Julien Chaffraix.
202309
202310        CSS3 text related properties will be implemented under this flag,
202311        including text decoration, text-align-last, and text-justify.
202312
202313        No new functionality, no new test.
202314
202315        * Configurations/FeatureDefines.xcconfig:
202316        * GNUmakefile.am:
202317        * GNUmakefile.features.am:
202318        * css/CSSComputedStyleDeclaration.cpp:
202319        (WebCore):
202320        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
202321        * css/CSSParser.cpp:
202322        (WebCore::CSSParser::parseValue):
202323        (WebCore::CSSParser::addTextDecorationProperty):
202324        (WebCore::CSSParser::parseTextDecoration):
202325        * css/CSSPrimitiveValueMappings.h:
202326        (WebCore):
202327        * css/CSSProperty.cpp:
202328        (WebCore::CSSProperty::isInheritedProperty):
202329        * css/CSSPropertyNames.in:
202330        * css/CSSValueKeywords.in:
202331        * css/StyleBuilder.cpp:
202332        (WebCore::StyleBuilder::StyleBuilder):
202333        * css/StyleResolver.cpp:
202334        (WebCore::StyleResolver::applyProperty):
202335        * rendering/style/RenderStyle.cpp:
202336        (WebCore::RenderStyle::diff):
202337        * rendering/style/RenderStyle.h:
202338        * rendering/style/RenderStyleConstants.h:
202339        (WebCore):
202340        * rendering/style/StyleRareNonInheritedData.cpp:
202341        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
202342        (WebCore::StyleRareNonInheritedData::operator==):
202343        * rendering/style/StyleRareNonInheritedData.h:
202344        (StyleRareNonInheritedData):
202345
2023462012-10-19  Nate Chapin  <japhet@chromium.org>
202347
202348        Reorder some functions in SubresourceLoader to permit main resources
202349        https://bugs.webkit.org/show_bug.cgi?id=99769
202350
202351        Reviewed by Adam Barth.
202352
202353        Most resource types that go through the memory cache (and therefore
202354        through SubresourceLoader) are not sensitive to the exact ordering of
202355        the callbacks they receive, particularly as it relates to ResourceLoadNotifier
202356        calls.  Main resources are not so lenient.  For main resources to be cacheable
202357        and maintain the current behavior as precisely as possible, we will need to
202358        rearrange SubresourceLoader's willSendRequest() and didReceiveData().
202359
202360        No new tests, refactor only.
202361
202362        * loader/SubresourceLoader.cpp:
202363        (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
202364            in the request being canceled, plus calls to CachedResource::willSendRequest() and
202365            ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
202366            CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
202367            is called, but the calls are out of order for that, so swap those.
202368        (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
202369            before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
202370            before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
202371
2023722012-10-19  Chris Fleizach  <cfleizach@apple.com>
202373
202374        AX: aria-hidden=false does not work as expected
202375        https://bugs.webkit.org/show_bug.cgi?id=98787
202376
202377        Reviewed by Beth Dakin.
202378
202379        ARIA requires that aria-hidden=false override an element's native visibility and include that
202380        node in the AX hierarchy.
202381 
202382        To accomplish this we have to allow invisible items to be included, as well as items that
202383        have no renderers associated with them.
202384
202385        Test: accessibility/aria-hidden-negates-no-visibility.html
202386
202387        * accessibility/AXObjectCache.cpp:
202388        (WebCore::AXObjectCache::getOrCreate):
202389        * accessibility/AccessibilityARIAGrid.cpp:
202390        (WebCore::AccessibilityARIAGrid::addTableCellChild):
202391        (WebCore::AccessibilityARIAGrid::addChildren):
202392        * accessibility/AccessibilityARIAGrid.h:
202393        (AccessibilityARIAGrid):
202394        * accessibility/AccessibilityNodeObject.cpp:
202395        (WebCore):
202396        (WebCore::AccessibilityNodeObject::boundingBoxRect):
202397        (WebCore::AccessibilityNodeObject::insertChild):
202398        (WebCore::AccessibilityNodeObject::addChild):
202399        (WebCore::AccessibilityNodeObject::addChildren):
202400        (WebCore::AccessibilityNodeObject::textUnderElement):
202401        * accessibility/AccessibilityNodeObject.h:
202402        (AccessibilityNodeObject):
202403        * accessibility/AccessibilityObject.cpp:
202404        (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
202405        (WebCore):
202406        * accessibility/AccessibilityObject.h:
202407        (AccessibilityObject):
202408        (WebCore::AccessibilityObject::addChild):
202409        (WebCore::AccessibilityObject::insertChild):
202410        * accessibility/AccessibilityRenderObject.cpp:
202411        (WebCore):
202412        (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
202413        (WebCore::AccessibilityRenderObject::addHiddenChildren):
202414        (WebCore::AccessibilityRenderObject::addChildren):
202415        * accessibility/AccessibilityRenderObject.h:
202416        (AccessibilityRenderObject):
202417
2024182012-10-19  Tommy Widenflycht  <tommyw@google.com>
202419
202420        MediaStream API: Rename owner to client in MediaStreamDescriptor
202421        https://bugs.webkit.org/show_bug.cgi?id=99593
202422
202423        Reviewed by Adam Barth.
202424
202425        This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
202426
202427        No new tests needed, covered by existing tests.
202428
202429        * Modules/mediastream/MediaStream.cpp:
202430        (WebCore::MediaStream::MediaStream):
202431        (WebCore::MediaStream::~MediaStream):
202432        * Modules/mediastream/MediaStream.h:
202433        (MediaStream):
202434        * Modules/mediastream/PeerConnection00.cpp:
202435        (WebCore::PeerConnection00::didRemoveRemoteStream):
202436        * Modules/mediastream/RTCPeerConnection.cpp:
202437        (WebCore::RTCPeerConnection::didRemoveRemoteStream):
202438        * platform/mediastream/MediaStreamCenter.cpp:
202439        (WebCore::MediaStreamCenter::endLocalMediaStream):
202440        (WebCore::MediaStreamCenter::addMediaStreamTrack):
202441        (WebCore::MediaStreamCenter::removeMediaStreamTrack):
202442        * platform/mediastream/MediaStreamDescriptor.h:
202443        (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
202444        (WebCore::MediaStreamDescriptor::client):
202445        (WebCore::MediaStreamDescriptor::setClient):
202446        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
202447        (MediaStreamDescriptor):
202448
2024492012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
202450
202451        Elements assigned to <shadow> should not be reprojected.
202452        https://bugs.webkit.org/show_bug.cgi?id=99680
202453
202454        Reviewed by Dimitri Glazkov.
202455
202456        In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
202457        reprojected to content. However, we can select them by <shadow>.
202458
202459        Tests: fast/dom/shadow/content-reprojection-complex.html
202460               fast/dom/shadow/content-reprojection-shadow.html
202461               fast/dom/shadow/shadow-reprojection-prohibited.html
202462
202463        * html/shadow/ContentDistributor.cpp:
202464        (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
202465        to POOL. Instead, <shadow> itself should be added to POOL.
202466        * html/shadow/HTMLContentElement.h:
202467        (WebCore::isHTMLContentElement):
202468        (WebCore):
202469
2024702012-10-19  Chris Fleizach  <cfleizach@apple.com>
202471
202472        VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
202473        https://bugs.webkit.org/show_bug.cgi?id=96325
202474
202475        Reviewed by Beth Dakin.
202476
202477         When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
202478         modifies the original findLegend method to take a parameter to determine what should be done.
202479
202480        Test: accessibility/hidden-legend.html
202481
202482        * accessibility/AccessibilityRenderObject.cpp:
202483        (WebCore::AccessibilityRenderObject::titleUIElement):
202484        * rendering/RenderFieldset.cpp:
202485        (WebCore::RenderFieldset::findLegend):
202486        * rendering/RenderFieldset.h:
202487
2024882012-10-17  Chris Fleizach  <cfleizach@apple.com>
202489
202490        AX: Refactor accessibility name computation so it's more platform independent
202491        https://bugs.webkit.org/show_bug.cgi?id=99502
202492
202493        Reviewed by Beth Dakin.
202494
202495        The current model of determining the accessible text for an object has a lot of Mac biases built in
202496        due to legacy implementation. 
202497
202498        This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
202499        allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
202500        http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
202501
202502        This change tried very hard not to change any test behavior, even though it exposed a number of weird
202503        edge cases where we were treating attributes differently based on element type. 
202504
202505        Future patches will resolve those discrepancies.
202506
202507        * accessibility/AccessibilityImageMapLink.cpp:
202508        (WebCore::AccessibilityImageMapLink::accessibilityText):
202509        * accessibility/AccessibilityImageMapLink.h:
202510        (AccessibilityImageMapLink):
202511        * accessibility/AccessibilityMediaControls.cpp:
202512        (WebCore::AccessibilityMediaControl::accessibilityText):
202513        * accessibility/AccessibilityMediaControls.h:
202514        (AccessibilityMediaControl):
202515        (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
202516        * accessibility/AccessibilityNodeObject.cpp:
202517        (WebCore::AccessibilityNodeObject::titleElementText):
202518        (WebCore::AccessibilityNodeObject::accessibilityText):
202519        (WebCore::AccessibilityNodeObject::ariaLabeledByText):
202520        (WebCore::AccessibilityNodeObject::alternativeText):
202521        (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
202522        (WebCore::AccessibilityNodeObject::visibleText):
202523        (WebCore::AccessibilityNodeObject::helpText):
202524        (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
202525        * accessibility/AccessibilityNodeObject.h:
202526        (AccessibilityNodeObject):
202527        * accessibility/AccessibilityObject.h:
202528        (AccessibilityText):
202529        (WebCore::AccessibilityText::AccessibilityText):
202530        (WebCore::AccessibilityObject::isMediaControlLabel):
202531        (AccessibilityObject):
202532        (WebCore::AccessibilityObject::accessibilityText):
202533        (WebCore::AccessibilityObject::setAccessibleName):
202534        (WebCore::AccessibilityObject::accessibilityDescription):
202535        (WebCore::AccessibilityObject::title):
202536        (WebCore::AccessibilityObject::helpText):
202537        (WebCore::AccessibilityObject::stringValue):
202538        (WebCore::AccessibilityObject::textUnderElement):
202539        (WebCore::AccessibilityObject::text):
202540        (WebCore::AccessibilityObject::textLength):
202541        (WebCore::AccessibilityObject::setRoleValue):
202542        (WebCore::AccessibilityObject::roleValue):
202543        (WebCore::AccessibilityObject::selection):
202544        (WebCore::AccessibilityObject::hierarchicalLevel):
202545        * accessibility/AccessibilityRenderObject.cpp:
202546        * accessibility/AccessibilityRenderObject.h:
202547        (AccessibilityRenderObject):
202548        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
202549        (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
202550        (-[WebAccessibilityObjectWrapper accessibilityTitle]):
202551        (-[WebAccessibilityObjectWrapper accessibilityDescription]):
202552        (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
202553        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
202554        * platform/LocalizedStrings.cpp:
202555        (WebCore::localizedMediaControlElementHelpText):
202556
2025572012-10-19  Kent Tamura  <tkent@chromium.org>
202558
202559        Use Localizer::monthFormat to construct input[type=month] UI
202560        https://bugs.webkit.org/show_bug.cgi?id=99818
202561
202562        Reviewed by Kentaro Hara.
202563
202564        Use an LDML format returned by Localizer::monthFormat for
202565        input[type=month] UI.
202566
202567        Because the format may contain symbolic month names and symbolic
202568        stand-alone month names, we need to add:
202569         - Symbolic/numeric detection in DateTimeEditBuilder
202570         - Normal/stand-alone detection in DateTimeEditBuilder
202571         - Symbolic edit field for months
202572
202573        Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
202574              fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
202575
202576        * html/MonthInputType.cpp:
202577        (WebCore::MonthInputType::setupLayoutParameters):
202578        Use Localizer::monthFormat.
202579
202580        * html/shadow/DateTimeEditElement.cpp:
202581        (WebCore::DateTimeEditBuilder::visitField):
202582        - If the number of continuous field character is greater than 2, use
202583        DateTimeSymbolicMonthFieldElement.
202584        - Supports stand-alone month field.
202585
202586        * html/shadow/DateTimeFieldElements.h:
202587        (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
202588        * html/shadow/DateTimeFieldElements.cpp:
202589        (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
202590        Added.
202591        (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
202592        (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
202593        We need to add 1 because the internal integer representation is 0-based
202594        and DateTimeFieldsState uses 1-based month.
202595        (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
202596        DateComponents::month is 0-based.
202597        (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
202598        We need to subtract 1 because the internal integer representation is 0-based
202599        and DateTimeFieldsState uses 1-based month.
202600
202601        * html/shadow/DateTimeSymbolicFieldElement.h:
202602        (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
202603        Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
202604
2026052012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
202606
202607        Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
202608        https://bugs.webkit.org/show_bug.cgi?id=99519
202609
202610        Reviewed by Alexander Pavlov.
202611
202612        Extracted _styleContentSet callback in a class method to make it sniffable by tests.
202613
202614        * inspector/front-end/StylesSourceMapping.js:
202615        (WebInspector.StyleFile.prototype._commitIncrementalEdit):
202616        (WebInspector.StyleFile.prototype._styleContentSet):
202617
2026182012-10-19  Pavel Feldman  <pfeldman@chromium.org>
202619
202620        Web Inspector: add object-src 'none' to the inspector.html
202621        https://bugs.webkit.org/show_bug.cgi?id=99728
202622
202623        Reviewed by Vsevolod Vlasov.
202624
202625        * inspector/front-end/inspector.html:
202626
2026272012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
202628
202629        Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
202630        https://bugs.webkit.org/show_bug.cgi?id=99823
202631
202632        Reviewed by Yury Semikhatsky.
202633
202634        Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
202635
202636        * inspector/front-end/ResourceScriptMapping.js:
202637        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
202638        * inspector/front-end/ScriptSnippetModel.js:
202639        (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
202640        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
202641        * inspector/front-end/ScriptsNavigator.js:
202642        (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
202643        (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
202644        * inspector/front-end/ScriptsPanel.js:
202645        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
202646        * inspector/front-end/Workspace.js:
202647        (WebInspector.Project.prototype.addTemporaryUISourceCode):
202648
2026492012-10-19  Alexander Pavlov  <apavlov@chromium.org>
202650
202651        Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
202652        https://bugs.webkit.org/show_bug.cgi?id=99729
202653
202654        Reviewed by Vsevolod Vlasov.
202655
202656        Decode only the first line number digit written in a six-character escaped Unicode format.
202657
202658        * inspector/front-end/SASSSourceMapping.js:
202659        (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
202660        (WebInspector.SASSSourceMapping.prototype._resourceAdded):
202661
2026622012-10-19  Tommy Widenflycht  <tommyw@google.com>
202663
202664        MediaStream API: Update the RuntimeEnabledFeatures flags
202665        https://bugs.webkit.org/show_bug.cgi?id=99714
202666
202667        Reviewed by Adam Barth.
202668
202669        Updating the RuntimeEnabledFeatures flags to match reality:
202670        isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
202671        isDeprecatedPeerConnectionEnabled false.
202672
202673        Patch covered by existing tests.
202674
202675        * bindings/generic/RuntimeEnabledFeatures.cpp:
202676        (WebCore):
202677
2026782012-10-19  Adam Barth  <abarth@webkit.org>
202679
202680        [V8] Simplify GCPrologueVisitor
202681        https://bugs.webkit.org/show_bug.cgi?id=99819
202682
202683        Reviewed by Kentaro Hara.
202684
202685        Previously, GCPrologueVisitor used a complicated traits-based template
202686        design. That's not necessary. We can just implement it directly without
202687        template magic.
202688
202689        The one subtly here is that MessagePort is not actually a subclass of
202690        ActiveDOMObject. The next stage of this cleanup is to make MessagePort
202691        inherit from ActiveDOMObject and remove this special case entirely.
202692
202693        * bindings/v8/V8GCController.cpp:
202694        (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
202695        (WebCore):
202696        (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
202697        (WebCore::NodeVisitor::visitDOMWrapper):
202698        (WebCore::V8GCController::gcPrologue):
202699
2027002012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
202701
202702        Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
202703        https://bugs.webkit.org/show_bug.cgi?id=99179
202704
202705        Reviewed by Yury Semikhatsky.
202706
202707        Added method "close" to InspectorFrontendHost.
202708        Symantically, this method forces to flush all unsaved buffers for
202709        specified file. In native implementation this turns to be no-op.
202710
202711        In stub implementation "close" causes compilation of blob object an
202712        navigating to blob-schema url.
202713
202714        Removed "canAppend", as appending in now suppurted
202715        by all implementations.
202716
202717        Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
202718        to avoid out-of-memory errors.
202719
202720        * inspector/InspectorFrontendHost.cpp:
202721        (WebCore::InspectorFrontendHost::close): Compiles blob object and
202722        navigates to blob-object url.
202723        (WebCore):
202724        * inspector/InspectorFrontendHost.h: Added "close" method.
202725        * inspector/InspectorFrontendHost.idl: Ditto.
202726        * inspector/front-end/FileManager.js:
202727        (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
202728        * inspector/front-end/FileUtils.js:
202729        (WebInspector.FileOutputStream.prototype.close):
202730        Invoke "close" on FileManager.
202731        (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
202732        * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
202733        * inspector/front-end/HeapSnapshotView.js:
202734        (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
202735        * inspector/front-end/InspectorFrontendHostStub.js:
202736        (.WebInspector.InspectorFrontendHostStub):
202737        Added "appendable" behaviour emulation.
202738        * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
202739        * inspector/front-end/externs.js: Replaced "canAppend" with "close"
202740
2027412012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
202742
202743        AX: labelForElement is slow when there are a lot of DOM elements
202744        https://bugs.webkit.org/show_bug.cgi?id=97825
202745
202746        Reviewed by Ryosuke Niwa.
202747
202748        Adds a DocumentOrderedMap to TreeScope that allows accessibility to
202749        quickly map from an id to the label for that id. This speeds up
202750        AccessibilityNode::labelForElement, which was a bottleneck in Chromium
202751        when accessibility was on.
202752
202753        Tests: accessibility/title-ui-element-correctness.html
202754               perf/accessibility-title-ui-element.html
202755
202756        * accessibility/AccessibilityNodeObject.cpp:
202757        (WebCore::AccessibilityNodeObject::labelForElement):
202758        * dom/DocumentOrderedMap.cpp:
202759        (WebCore::keyMatchesLabelForAttribute):
202760        (WebCore):
202761        (WebCore::DocumentOrderedMap::get):
202762        (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
202763        * dom/DocumentOrderedMap.h:
202764        (DocumentOrderedMap):
202765        * dom/Element.cpp:
202766        (WebCore::Element::insertedInto):
202767        (WebCore::Element::removedFrom):
202768        (WebCore::Element::updateLabel):
202769        (WebCore):
202770        (WebCore::Element::willModifyAttribute):
202771        * dom/Element.h:
202772        (Element):
202773        * dom/TreeScope.cpp:
202774        (WebCore::TreeScope::TreeScope):
202775        (WebCore::TreeScope::destroyTreeScopeData):
202776        (WebCore::TreeScope::addLabel):
202777        (WebCore):
202778        (WebCore::TreeScope::removeLabel):
202779        (WebCore::TreeScope::labelElementForId):
202780        * dom/TreeScope.h:
202781        (WebCore):
202782        (TreeScope):
202783        (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
202784
2027852012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
202786
202787        Web Inspector: Update localizedStrings.js
202788        https://bugs.webkit.org/show_bug.cgi?id=99701
202789
202790        Reviewed by Yury Semikhatsky.
202791
202792        Fixed most of missing strings and orphans.
202793
202794        * English.lproj/localizedStrings.js:
202795        * inspector/front-end/SettingsScreen.js:
202796
2027972012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
202798
202799        Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
202800        https://bugs.webkit.org/show_bug.cgi?id=99457
202801
202802        Reviewed by Yury Semikhatsky.
202803
202804        countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
202805        getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
202806
202807        * inspector/InspectorClient.h:
202808        (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
202809        * inspector/InspectorMemoryAgent.cpp:
202810        (WebCore::reportJSHeapInfo):
202811        (WebCore::reportRenderTreeInfo):
202812        (WebCore):
202813        (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
202814        * inspector/MemoryInstrumentationImpl.cpp:
202815        (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
202816        (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
202817        * inspector/MemoryInstrumentationImpl.h:
202818        (MemoryInstrumentationClientImpl):
202819        (WebCore::MemoryInstrumentationClientImpl::countedObjects):
202820
2028212012-10-19  Adam Barth  <abarth@webkit.org>
202822
202823        [V8] DOMObjectVisitor does nothing
202824        https://bugs.webkit.org/show_bug.cgi?id=99812
202825
202826        Reviewed by Kentaro Hara.
202827
202828        This code doesn't do anything, even in Debug! We should just remove it.
202829
202830        * bindings/v8/V8GCController.cpp:
202831        (WebCore):
202832        (WebCore::V8GCController::gcPrologue):
202833        (WebCore::V8GCController::gcEpilogue):
202834
2028352012-10-19  Adam Barth  <abarth@webkit.org>
202836
202837        [V8] Remove unused typedef from V8GCController.cpp
202838        https://bugs.webkit.org/show_bug.cgi?id=99808
202839
202840        Reviewed by Kentaro Hara.
202841
202842        This typedef is not used.
202843
202844        * bindings/v8/V8GCController.cpp:
202845
2028462012-10-18  Alexander Pavlov  <apavlov@chromium.org>
202847
202848        Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
202849        https://bugs.webkit.org/show_bug.cgi?id=99720
202850
202851        Reviewed by Yury Semikhatsky.
202852
202853        Non-inherited properties are now disregarded in inherited styles.
202854
202855        * inspector/front-end/StylesSidebarPane.js:
202856        (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
202857        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
202858
2028592012-10-18  Adam Barth  <abarth@webkit.org>
202860
202861        [V8] GrouperVisitor is secretly two entirely separate objects
202862        https://bugs.webkit.org/show_bug.cgi?id=99810
202863
202864        Reviewed by Kentaro Hara.
202865
202866        We can separate out the two things that GrouperVisitor is trying to do
202867        because they have nothing to do with each other.
202868
202869        * bindings/v8/V8GCController.cpp:
202870        (ObjectVisitor):
202871        (WebCore::ObjectVisitor::visitDOMWrapper):
202872        (WebCore):
202873        (WebCore::V8GCController::gcPrologue):
202874
2028752012-10-18  Kiran Muppala  <cmuppala@apple.com>
202876
202877        Automatically start plugins created within a user gesture, skipping snapshotting
202878        https://bugs.webkit.org/show_bug.cgi?id=99778
202879
202880        Reviewed by Alexey Proskuryakov.
202881
202882        If a user gesture is being processed, do not set the display state of
202883        HTMLPluginImageElement to WaitingForSnapshot.
202884
202885        No new tests, since it only affects when plugins switch from snapshot to running
202886        state.  Does not affect rendering of other elements.
202887
202888        * html/HTMLPlugInImageElement.cpp:
202889        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
202890
2028912012-10-18  Kent Tamura  <tkent@chromium.org>
202892
202893        Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
202894        https://bugs.webkit.org/show_bug.cgi?id=99787
202895
202896        Reviewed by Kentaro Hara.
202897
202898        This is going to be used for input[type=month] UI. This doesn't affect
202899        any bahevior yet.
202900
202901        Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
202902        layout tests later.
202903
202904        * platform/text/Localizer.h:
202905        (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
202906        virtual member functions.
202907
202908        * platform/text/LocaleICU.h:
202909        (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
202910        * platform/text/LocaleICU.cpp:
202911        (WebCore::LocaleICU::shortMonthLabels): Added.
202912        (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
202913
202914        * platform/text/LocaleNone.cpp:
202915        (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
202916        (WebCore::LocaleNone::shortMonthLabels):
202917        Added. Always returns English labels.
202918        (WebCore::LocaleNone::shortStandAloneMonthLabels):
202919        Addes. Just calls shortMonthLabels.
202920
202921        * platform/text/LocaleWin.h:
202922        (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
202923        * platform/text/LocaleWin.cpp:
202924        (WebCore::LocaleWin::shortMonthLabels): Added.
202925        (WebCore::LocaleWin::shortStandAloneMonthLabels):
202926        Added. Always returns shortMonthLabels.
202927
202928        * platform/text/mac/LocaleMac.h:
202929        (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
202930        * platform/text/mac/LocaleMac.mm:
202931        (WebCore::LocaleMac::shortMonthLabels): Added.
202932        (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
202933
2029342012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
202935
202936        Implement value sanitization algorithm for type=datetime
202937        https://bugs.webkit.org/show_bug.cgi?id=76893
202938
202939        Reviewed by Kent Tamura.
202940
202941        Implement the value sanitization algorithm for type=datetime that adjusts
202942        the value to a valid normalized forced-UTC global date and time string.
202943        See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
202944
202945        Test: fast/forms/datetime/datetime-value-sanitization.html
202946
202947        * html/DateTimeInputType.cpp:
202948        (WebCore::DateTimeInputType::sanitizeValue): Implemented.
202949        (WebCore):
202950        * html/DateTimeInputType.h:
202951        (DateTimeInputType): Add sanitizeValue.
202952        * platform/DateComponents.cpp:
202953        (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
202954        of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
202955
2029562012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
202957
202958        Fix build warning.
202959        https://bugs.webkit.org/show_bug.cgi?id=99788
202960
202961        Reviewed by Kentaro Hara.
202962
202963        Use UNUSED_PARAM macro for removing -Wunused-parameter.
202964
202965        * rendering/RenderLayer.cpp:
202966        (WebCore::RenderLayer::currentTransform):
202967
2029682012-10-18  Benjamin Poulain  <bpoulain@apple.com>
202969
202970        [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
202971        https://bugs.webkit.org/show_bug.cgi?id=99771
202972
202973        Reviewed by Anders Carlsson.
202974
202975        * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
202976        to the general section.
202977
2029782012-10-18  Adam Barth  <abarth@webkit.org>
202979
202980        [V8] fast/dom/gc-9.html fails for document.styleSheets
202981        https://bugs.webkit.org/show_bug.cgi?id=99786
202982
202983        Reviewed by Kentaro Hara.
202984
202985        V8 needs to know about this IDL attribute as well.
202986
202987        * css/StyleSheetList.idl:
202988
2029892012-10-18  Adam Barth  <abarth@webkit.org>
202990
202991        [V8] fast/dom/gc-9.html fails for document.implementation
202992        https://bugs.webkit.org/show_bug.cgi?id=99783
202993
202994        Reviewed by Kentaro Hara.
202995
202996        In order to correctly manage the lifetime of document.implementation,
202997        we need to implement GenerateIsReachable=ImplDocument.
202998
202999        * bindings/scripts/CodeGeneratorV8.pm:
203000        (GenerateVisitDOMWrapper):
203001        * bindings/scripts/IDLAttributes.txt:
203002        * dom/DOMImplementation.idl:
203003
2030042012-10-18  Chris Fleizach  <cfleizach@apple.com>
203005
203006        AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
203007        https://bugs.webkit.org/show_bug.cgi?id=96443
203008
203009        Reviewed by Beth Dakin.
203010
203011        Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
203012        to determine which line this crash is happening on.
203013
203014        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
203015        (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
203016
2030172012-10-18  Alec Flett  <alecflett@chromium.org>
203018
203019        IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
203020        https://bugs.webkit.org/show_bug.cgi?id=99773
203021
203022        Reviewed by Tony Chang.
203023
203024        Refactor to begin separating out metadata from stateful backend objects,
203025        in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
203026
203027        Also includes some #include dependency cleanup so that the backing store
203028        depends less on the stateful backend objects.
203029
203030        No new tests as this is purely a refactor.
203031
203032        * Modules/indexeddb/IDBBackingStore.h:
203033        (WebCore):
203034        (IDBBackingStore):
203035        * Modules/indexeddb/IDBCursor.h:
203036        * Modules/indexeddb/IDBCursorBackendImpl.h:
203037        (WebCore):
203038        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
203039        (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
203040        (WebCore::IDBDatabaseBackendImpl::openInternal):
203041        (WebCore::IDBDatabaseBackendImpl::metadata):
203042        (WebCore::IDBDatabaseBackendImpl::createObjectStore):
203043        (WebCore::IDBDatabaseBackendImpl::setVersion):
203044        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
203045        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
203046        (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
203047        (WebCore::IDBDatabaseBackendImpl::openConnection):
203048        (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
203049        (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
203050        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
203051        (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
203052        (WebCore::IDBDatabaseBackendImpl::resetVersion):
203053        * Modules/indexeddb/IDBDatabaseBackendImpl.h:
203054        (WebCore::IDBDatabaseBackendImpl::id):
203055        (IDBDatabaseBackendImpl):
203056        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
203057        (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
203058        (WebCore::IDBLevelDBBackingStore::deleteDatabase):
203059        * Modules/indexeddb/IDBLevelDBBackingStore.h:
203060        (IDBLevelDBBackingStore):
203061        * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
203062        * Modules/indexeddb/IDBTransaction.h:
203063        (WebCore):
203064
2030652012-10-18  Peter Kasting  <pkasting@google.com>
203066
203067        [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
203068        https://bugs.webkit.org/show_bug.cgi?id=99781
203069
203070        Reviewed by Adam Barth.
203071
203072        No tests, since the actual effects of this bug are fickle and it's not
203073        clear how to extract and check particular subframes of an animated GIF.
203074
203075        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
203076        (WebCore::ImageFrame::copyBitmapData):
203077
2030782012-10-18  Pan Deng  <pan.deng@intel.com>
203079
203080        [Resource Timing]Implementation of resource timing buffer size restriction functionality
203081        https://bugs.webkit.org/show_bug.cgi?id=84885.
203082
203083        Reviewed by Tony Gentilcore.
203084
203085        http://www.w3.org/TR/2012/CR-resource-timing-20120522/
203086        This patch enable functionality of set buffer size(default is 150 as spec). When buffer is full, resourceTimingBufferFull event will be fired. Incoming entries will be dropped if no more space for them. 
203087
203088        Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
203089               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
203090               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
203091               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
203092               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
203093               http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
203094
203095        * page/Performance.cpp:
203096        (WebCore):
203097        (WebCore::Performance::Performance):
203098        (WebCore::Performance::webkitSetResourceTimingBufferSize):
203099        (WebCore::Performance::addResourceTiming):
203100        (WebCore::Performance::isResourceTimingBufferFull):
203101        * page/Performance.h:
203102        (Performance):
203103
2031042012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
203105
203106        REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
203107        https://bugs.webkit.org/show_bug.cgi?id=99663
203108
203109        Reviewed by Enrica Casucci and Levi Weintraub.
203110
203111        The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
203112        ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
203113        positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
203114        moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
203115        the length after t2 is merged.
203116
203117        Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
203118        Also use the right offset.
203119
203120        Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
203121
203122        * editing/ReplaceSelectionCommand.cpp:
203123        (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
203124
2031252012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
203126
203127        [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
203128        https://bugs.webkit.org/show_bug.cgi?id=82882
203129
203130        Reviewed by Xan Lopez.
203131
203132        Based on a patch by Milan Crha <mcrha@redhat.com>
203133
203134        Prevent an invalid access to a pointer while clearing the DOM
203135        object cache.
203136        * bindings/gobject/DOMObjectCache.cpp:
203137        (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
203138
2031392012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
203140
203141        Unreviewed, rolling out r131810.
203142        http://trac.webkit.org/changeset/131810
203143        https://bugs.webkit.org/show_bug.cgi?id=99762
203144
203145        Broke linux debug webkit_unit_tests (Requested by
203146        danakj|gardening on #webkit).
203147
203148        * WebCore.gypi:
203149        * platform/graphics/ImageSource.cpp:
203150        (WebCore::ImageSource::setData):
203151        * platform/graphics/ImageSource.h:
203152        (WebCore):
203153        (ImageSource):
203154        * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
203155        * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
203156        * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
203157        * platform/graphics/chromium/ImageDecodingStore.h: Removed.
203158        * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
203159        * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
203160        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
203161        * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
203162        * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
203163        * platform/graphics/chromium/ScaledImageFragment.h: Removed.
203164        * platform/graphics/skia/NativeImageSkia.cpp:
203165        (WebCore::NativeImageSkia::resizedBitmap):
203166        * platform/image-decoders/ImageDecoder.h:
203167        (ImageFrame):
203168
2031692012-10-18  Tommy Widenflycht  <tommyw@google.com>
203170
203171        MediaStream API: Do some cleanup in the chromium WebKit API
203172        https://bugs.webkit.org/show_bug.cgi?id=99713
203173
203174        Reviewed by Adam Barth.
203175
203176        Removing the deprecated version of WebMediaStreamDescriptor::initialize.
203177
203178        No testing needed since only an unused function is removed.
203179
203180        * platform/chromium/support/WebMediaStreamDescriptor.cpp:
203181
2031822012-10-18  Alpha Lam  <hclam@chromium.org>
203183
203184        [chromium] Implement deferred image decoding
203185        https://bugs.webkit.org/show_bug.cgi?id=94240
203186
203187        Reviewed by Stephen White.
203188
203189        Objectives:
203190
203191        To record image decoding operations during painting and to defer
203192        decoding operations until rasterization.
203193
203194        Rationale:
203195
203196        This is a key feature that enables impl-side painting which requires
203197        fast recording of drawing operations. The existing decode-on-draw
203198        restricts that recording has to block on expensive decoding operations.
203199        This change allows recording of image decoding operations during paint
203200        time.
203201
203202        Design:
203203
203204        Image decoding happens when a BitmapImage is drawn into a
203205        GraphicsContext. When per-tile painting is enabled GraphicsContext
203206        is backed by SkCanvas in recording mode. This SkCanvas records drawing
203207        and image decoding operations to minimize recording time.
203208
203209        An image decoding operation is recorded as a SkPixelRef object
203210        implemented by LazyDecodingPixelRef. This object references raw encoded
203211        data, regions to be decoded and scaling information.
203212
203213        When used in conjunction with per-tile painting this feature defers
203214        image decoding until the SkCanvas referencing the image is rasterized.
203215
203216        Both recording and rasterization happen on the main thread.
203217
203218        Performance Impact:
203219
203220        This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
203221        and does not have an impact when disabled.
203222
203223        This feature is disabled by default.
203224
203225        Upcoming Changes:
203226
203227        1. Implement a full-featured image cache in ImageDecodingStore.
203228        2. Allow rasterization and decoding on impl thread.
203229
203230        Classes Involved:
203231
203232        BitmapImage
203233
203234        BitmapImage is the entry point for deferred image decoding. When
203235        drawing a BitmapImage into a GraphicsContext it makes a request to
203236        create a NativeImageSkia. We substitute the content in NativeImageSkia
203237        such that it is lazily decoded.
203238
203239        DeferredImageDecoder
203240
203241        This is the platform implementation of a image decoder for Chromium.
203242        This is a bridge layer that either delegates calls to the actual
203243        ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
203244        to ImageDecodingStore.
203245
203246        ImageDecodingStore
203247
203248        This object manages all encoded images. It keeps track of encoded
203249        data and the corresponding ImageDecoder for doing actual decoding. It
203250        is also responsible for generating lazily decoded SkBitmaps. This
203251        SkBitmap contains a LazyDecodingPixelRef object which references to an
203252        image entry in ImageDecodingStore.
203253
203254        ScaledImageFragment
203255
203256        A container for a scaled image fragment. In addition to bitmap pixels
203257        it contains information about the ID of the image, scale and clipping.
203258
203259        ImageFrameGenerator
203260
203261        This object is responsible for generating decoded pixels. It is also
203262        a container for encoded image data and corresponding image decoder.
203263
203264        LazyDecodingPixelRef
203265
203266        This object is embedded in a SkBitmap to enable lazy decoding. When
203267        SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
203268        contains information to locate an image and scaling info, these
203269        information is submitted to ImageDecodingStore to access actual pixels.
203270
203271        Layout tests. There are about 80 tests in this virtual test suite
203272        running this feature in this directory:
203273
203274        platform/chromium/virtual/deferred/fast/images
203275
203276        Unit tests. Added DeferredImageDecoderTest to verify deferred
203277        image decoding behavior.
203278
203279        * WebCore.gypi:
203280        * platform/graphics/ImageSource.cpp:
203281        (WebCore::ImageSource::setData):
203282        * platform/graphics/ImageSource.h:
203283        (WebCore):
203284        (ImageSource):
203285        * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
203286        (WebCore):
203287        (WebCore::DeferredImageDecoder::DeferredImageDecoder):
203288        (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
203289        (WebCore::DeferredImageDecoder::create):
203290        (WebCore::DeferredImageDecoder::createForTesting):
203291        (WebCore::DeferredImageDecoder::filenameExtension):
203292        (WebCore::DeferredImageDecoder::frameBufferAtIndex):
203293        (WebCore::DeferredImageDecoder::setData):
203294        (WebCore::DeferredImageDecoder::isSizeAvailable):
203295        (WebCore::DeferredImageDecoder::size):
203296        (WebCore::DeferredImageDecoder::frameSizeAtIndex):
203297        (WebCore::DeferredImageDecoder::frameCount):
203298        (WebCore::DeferredImageDecoder::repetitionCount):
203299        (WebCore::DeferredImageDecoder::clearFrameBufferCache):
203300        (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
203301        (WebCore::DeferredImageDecoder::frameBytesAtIndex):
203302        * platform/graphics/chromium/DeferredImageDecoder.h: Added.
203303        (WebCore):
203304        (DeferredImageDecoder):
203305        * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
203306        (WebCore::ImageDecodingStore::ImageDecodingStore):
203307        (WebCore):
203308        (WebCore::ImageDecodingStore::~ImageDecodingStore):
203309        (WebCore::ImageDecodingStore::instanceOnMainThread):
203310        (WebCore::ImageDecodingStore::initializeOnMainThread):
203311        (WebCore::ImageDecodingStore::shutdown):
203312        (WebCore::ImageDecodingStore::isLazyDecoded):
203313        (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
203314        (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
203315        (WebCore::ImageDecodingStore::setData):
203316        (WebCore::ImageDecodingStore::lockPixels):
203317        (WebCore::ImageDecodingStore::unlockPixels):
203318        (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
203319        (WebCore::ImageDecodingStore::calledOnValidThread):
203320        (WebCore::ImageDecodingStore::lookupFrameCache):
203321        (WebCore::ImageDecodingStore::deleteFrameCache):
203322        * platform/graphics/chromium/ImageDecodingStore.h: Added.
203323        (WebCore):
203324        (ImageDecodingStore):
203325        (WebCore::ImageDecodingStore::create):
203326        * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
203327        (WebCore):
203328        (WebCore::ScaledImageFragment::~ScaledImageFragment):
203329        (WebCore::ScaledImageFragment::ScaledImageFragment):
203330        (WebCore::ScaledImageFragment::isEqual):
203331        * platform/graphics/chromium/ScaledImageFragment.h: Added.
203332        (WebCore):
203333        (ScaledImageFragment):
203334        (WebCore::ScaledImageFragment::create):
203335        (WebCore::ScaledImageFragment::bitmap):
203336        (WebCore::ScaledImageFragment::isComplete):
203337        * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
203338        (WebCore):
203339        (WebCore::ImageFrameGenerator::ImageFrameGenerator):
203340        (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
203341        (WebCore::ImageFrameGenerator::decoder):
203342        (WebCore::ImageFrameGenerator::setData):
203343        * platform/graphics/chromium/ImageFrameGenerator.h: Added.
203344        (WebCore):
203345        (ImageFrameGenerator):
203346        (WebCore::ImageFrameGenerator::create):
203347        (WebCore::ImageFrameGenerator::size):
203348        (WebCore::ImageFrameGenerator::imageId):
203349        * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
203350        (WebCore):
203351        (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
203352        (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
203353        (WebCore::LazyDecodingPixelRef::isScaled):
203354        (WebCore::LazyDecodingPixelRef::isClipped):
203355        (WebCore::LazyDecodingPixelRef::onLockPixels):
203356        (WebCore::LazyDecodingPixelRef::onUnlockPixels):
203357        (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
203358        * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
203359        (WebCore):
203360        (LazyDecodingPixelRef):
203361        (WebCore::LazyDecodingPixelRef::frameGenerator):
203362        * platform/graphics/skia/NativeImageSkia.cpp:
203363        (WebCore::NativeImageSkia::resizedBitmap):
203364        * platform/image-decoders/ImageDecoder.h:
203365        (ImageFrame):
203366        (WebCore::ImageFrame::setSkBitmap):
203367        (WebCore::ImageFrame::getSkBitmap):
203368
2033692012-10-18  Yael Aharon  <yael.aharon@intel.com>
203370
203371        [EFL] GraphicsContext3D::m_renderStyle is not initialized
203372        https://bugs.webkit.org/show_bug.cgi?id=99721
203373
203374        Reviewed by Antonio Gomes.
203375
203376        Initialize GraphicsContext3D::m_renderStyle.
203377
203378        No new tests, no new functionality.
203379
203380        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
203381        (WebCore::GraphicsContext3D::GraphicsContext3D):
203382
2033832012-10-18  Max Vujovic  <mvujovic@adobe.com>
203384
203385        [CSS Shaders] Validate types of built-in vertex attributes
203386        https://bugs.webkit.org/show_bug.cgi?id=98972
203387
203388        Reviewed by Dean Jackson.
203389
203390        Reject custom filters in which the author defined built-in attributes with the wrong type.
203391        For example, the GLSL declaration "attribute float a_position" is incorrect because
203392        a_position should be a vec4, not a float.
203393
203394        Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
203395
203396        * platform/graphics/ANGLEWebKitBridge.h:
203397        (WebCore::ANGLEShaderSymbol::isSampler):
203398            Add const qualifier to isSampler method.
203399        * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
203400        (WebCore):
203401        (WebCore::builtInAttributeNameToTypeMap):
203402            New file static function. Returns a map of the CSS Custom Filters built-in attribute
203403            names and their expected types.
203404        (WebCore::validateSymbols):
203405            New file static function. Loop through all of the symbols. Reject the shader if we find
203406            a built-in attribute defined with the wrong type.
203407        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
203408            Call the new validateSymbols function. If it returns false, exit the constructor early,
203409            which rejects the program.
203410            Move the loop that checks if any uniform is a sampler into the the validateSymbols
203411            function.
203412
2034132012-10-18  Mike Reed  <reed@google.com>
203414
203415        Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
203416        https://bugs.webkit.org/show_bug.cgi?id=99752
203417
203418        Reviewed by Stephen White.
203419
203420        Current code does not check if we were able to allocate the pixels, but still returns the canvas.
203421        However, the caller explicitly is checking for null on failure, so it will continue (and possibly
203422        crash later on).
203423        This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
203424        TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
203425
203426        No new tests. Existing tests exercise ImageBuffer constructor.
203427
203428        * platform/graphics/skia/ImageBufferSkia.cpp:
203429        (WebCore::createNonPlatformCanvas):
203430
2034312012-10-18  Beth Dakin  <bdakin@apple.com>
203432
203433        https://bugs.webkit.org/show_bug.cgi?id=99668
203434        REGRESSION: Crash in 
203435        WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
203436        -and corresponding-
203437        <rdar://problem/12491901>
203438
203439        Reviewed by Simon Fraser.
203440
203441        http://trac.webkit.org/changeset/130783 changed the lifetime of the 
203442        ScrollingStateTree's rootStateNode. Before that patch, the root state 
203443        node was never destroyed. It was just constantly re-used for 
203444        different RenderLayerBackings. This crash is just one of a few bugs 
203445        that has occurred because of that change. I have fixed the other bugs 
203446        individually, but I think that long-term, it is the safest solution 
203447        to go back to the original ownership model.
203448
203449        So this patch ensures that the state tree will always have a root 
203450        state node. Instead of destroying and re-creating the root node when 
203451        it's scroll ID changes, we just update the ID.
203452
203453        attachToStateTree() now takes an additional ID representing the ID of 
203454        the parent node.
203455        * page/scrolling/ScrollingCoordinator.h:
203456        (WebCore::ScrollingCoordinator::attachToStateTree):
203457
203458        Add a way to set the scrolling node ID.
203459        * page/scrolling/ScrollingStateNode.h:
203460        (WebCore::ScrollingStateNode::setScrollingNodeID):
203461
203462        This code that provided a way to mark all properties as having 
203463        changed was added in http://trac.webkit.org/changeset/130989 as a way 
203464        to ensure we would re-set ScrollingThread's nodes when we destroyed 
203465        and re-created the rootStateNode. Now that we are no longer 
203466        destroying and re-creating the rootStateNode, this code is no longer 
203467        necessary.
203468        * page/scrolling/ScrollingStateScrollingNode.cpp:
203469        * page/scrolling/ScrollingStateScrollingNode.h:
203470
203471        create m_rootStateNode right in the ScrollingStateTree's constructor.
203472        * page/scrolling/ScrollingStateTree.cpp:
203473        (WebCore::ScrollingStateTree::ScrollingStateTree):
203474
203475        Don't let removeNode() destroy m_rootStateNode.
203476        (WebCore::ScrollingStateTree::removeNode):
203477
203478        Also a part of r130989 that is no longer needed.
203479        (WebCore::ScrollingStateTree::rootLayerDidChange():
203480        * page/scrolling/ScrollingStateTree.h:
203481        (WebCore::ScrollingStateTree::rootStateNode):
203482        (ScrollingStateTree):
203483        (WebCore::ScrollingStateTree::setRootStateNode):
203484
203485        attachToStateTree() now takes an additional ID representing the ID of 
203486        the parent node.
203487        * page/scrolling/mac/ScrollingCoordinatorMac.h:
203488        (ScrollingCoordinatorMac):
203489
203490        We no longer need ScrollingStateTree::rootLayerDidChange()
203491        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
203492        (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
203493
203494        Do not destroy and re-create the state node. Just update its ID. When 
203495        we support child nodes soon, we will create them in this function.
203496        (WebCore::ScrollingCoordinatorMac::attachToStateTree):
203497
203498        No need to null-check the rootStateNode.
203499        (WebCore::ScrollingCoordinatorMac::clearStateTree):
203500
203501        Send 0 as the parent node ID to attachToStateTree() to represent the 
203502        root node.
203503        (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
203504        * rendering/RenderLayerBacking.cpp:
203505
203506        RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
203507        layer.
203508        (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
203509        * rendering/RenderLayerBacking.h:
203510        (RenderLayerBacking):
203511
203512        Since this is the root, send 0 to represent the parent layer.
203513        * rendering/RenderLayerCompositor.cpp:
203514        (WebCore::RenderLayerCompositor::updateBacking):
203515
2035162012-10-18  Yael Aharon  <yael.aharon@intel.com>
203517
203518        [EFL] GraphicsContext3D::m_renderStyle is not initialized
203519        https://bugs.webkit.org/show_bug.cgi?id=99721
203520
203521        Reviewed by Antonio Gomes.
203522
203523        Initialize GraphicsContext3D::m_renderStyle.
203524
203525        No new tests, no new functionality.
203526
203527        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
203528        (WebCore::GraphicsContext3D::GraphicsContext3D):
203529
2035302012-10-18  Brian White  <bcwhite@chromium.org>
203531
203532        WebKit Doesn't Recognize Content-Language HTTP Header
203533        https://bugs.webkit.org/show_bug.cgi?id=97929
203534
203535        Reviewed by Alexey Proskuryakov.
203536
203537        The HTTP "Content-Language" header may be present and include the
203538        language of the page contents (as opposed to an embedded meta tag).
203539
203540        * loader/FrameLoader.cpp:
203541        (WebCore::FrameLoader::didBeginDocument):
203542
2035432012-10-18  Jer Noble  <jer.noble@apple.com>
203544
203545        Crash in WebCore::Document::webkitExitFullscreen + 618
203546        https://bugs.webkit.org/show_bug.cgi?id=99496
203547
203548        Reviewed by Eric Carlson.
203549
203550        Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
203551
203552        * dom/Document.cpp:
203553        (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
203554
2035552012-10-18  Pablo Flouret  <pablof@motorola.com>
203556
203557        Implement css3-conditional's @supports rule
203558        https://bugs.webkit.org/show_bug.cgi?id=86146
203559
203560        Reviewed by Antti Koivisto.
203561
203562        The "@supports" rule is a conditional group rule whose condition tests
203563        whether the user agent supports CSS property:value pairs.
203564
203565        http://dev.w3.org/csswg/css3-conditional/#at-supports
203566
203567        Test: css3/supports.html
203568
203569        * Configurations/FeatureDefines.xcconfig:
203570        * GNUmakefile.am:
203571        * GNUmakefile.features.am:
203572            Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
203573
203574        * css/CSSGrammar.y.in:
203575        * css/CSSParser.cpp:
203576        (WebCore):
203577        (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
203578        (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
203579        (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
203580        * css/CSSParser.h: Added new SupportsMode parsing mode.
203581        (CSSParser):
203582
2035832012-10-18  Marja Hölttä  <marja@chromium.org>
203584
203585        Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
203586        https://bugs.webkit.org/show_bug.cgi?id=99730
203587
203588        Reviewed by Jochen Eisinger.
203589
203590        * loader/cache/CachedResourceLoader.cpp:
203591        (WebCore::CachedResourceLoader::requestSVGDocument):
203592
2035932012-10-18  Jer Noble  <jer.noble@apple.com>
203594
203595        Fullscreen movie controls behave incorrectly when clicked (and dragged)
203596        https://bugs.webkit.org/show_bug.cgi?id=99610
203597
203598        Reviewed by Eric Carlson.
203599
203600        Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
203601        store the cumulative drag offset and accumulate during each additional drag.
203602
203603        No new tests; modified the fullscreen/video-controls-drag.html test.
203604
203605        * html/shadow/MediaControlElements.cpp:
203606        (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
203607        (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
203608        (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
203609        * html/shadow/MediaControlElements.h:
203610
2036112012-10-18  Brandon Jones  <bajones@google.com>
203612
203613        Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
203614        https://bugs.webkit.org/show_bug.cgi?id=97400
203615
203616        Reviewed by Kenneth Russell.
203617
203618        Implemented OES_element_index_uint WebGL extension
203619
203620        Test: fast/canvas/webgl/oes-element-index-uint.html
203621
203622        * CMakeLists.txt:
203623        * DerivedSources.make:
203624        * DerivedSources.pri:
203625        * GNUmakefile.list.am:
203626        * Target.pri:
203627        * WebCore.gypi:
203628        * WebCore.xcodeproj/project.pbxproj:
203629        * bindings/js/JSWebGLRenderingContextCustom.cpp:
203630        (WebCore::toJS):
203631        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
203632        (WebCore::toV8Object):
203633        * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
203634        (WebCore):
203635        (WebCore::OESElementIndexUint::OESElementIndexUint):
203636        (WebCore::OESElementIndexUint::~OESElementIndexUint):
203637        (WebCore::OESElementIndexUint::getName):
203638        (WebCore::OESElementIndexUint::create):
203639        * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
203640        (WebCore):
203641        (OESElementIndexUint):
203642        * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
203643        * html/canvas/WebGLExtension.h:
203644        * html/canvas/WebGLRenderingContext.cpp:
203645        (WebCore):
203646        (WebCore::WebGLRenderingContext::validateElementArraySize):
203647        (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
203648        (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
203649        (WebCore::WebGLRenderingContext::validateRenderingState):
203650        (WebCore::WebGLRenderingContext::drawElements):
203651        (WebCore::WebGLRenderingContext::getExtension):
203652        (WebCore::WebGLRenderingContext::getSupportedExtensions):
203653        * html/canvas/WebGLRenderingContext.h:
203654        (WebCore):
203655        (WebGLRenderingContext):
203656        * platform/graphics/Extensions3D.h:
203657        (Extensions3D):
203658        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
203659        (WebCore::Extensions3DOpenGL::supportsExtension):
203660
2036612012-10-18  Jer Noble  <jer.noble@apple.com>
203662
203663        Add diagnostic logging to track per-page media engine usage.
203664        https://bugs.webkit.org/show_bug.cgi?id=99615
203665        <rdar://problem/12476473>
203666
203667        Reviewed by Eric Carlson.
203668
203669        Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
203670
203671        * html/HTMLMediaElement.cpp:
203672        (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
203673        (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
203674        (WebCore::HTMLMediaElement::setReadyState): Ditto.
203675        * loader/FrameLoader.cpp:
203676        (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
203677
203678        Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
203679        * page/Page.cpp:
203680        (WebCore::Page::hasSeenAnyMediaEngine):
203681        (WebCore::Page::hasSeenMediaEngine):
203682        (WebCore::Page::sawMediaEngine):
203683        (WebCore::Page::resetSeenMediaEngines):
203684        * page/Page.h:
203685
203686        Add new static logging key definitions:
203687        * page/DiagnosticLoggingKeys.cpp:
203688        (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
203689        (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
203690        * page/DiagnosticLoggingKeys.h:
203691
2036922012-10-18  Michael Saboff  <msaboff@apple.com>
203693
203694        Add 8-bit path to RenderBlock::handleTrailingSpaces()
203695        https://bugs.webkit.org/show_bug.cgi?id=99731
203696
203697        Reviewed by Dan Bernstein.
203698
203699        Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
203700        approriate character pointer type.
203701
203702        No tests needed, change covered by existing tests.
203703
203704        * rendering/RenderBlockLineLayout.cpp:
203705        (WebCore::findFirstTrailingSpace):
203706        (WebCore::RenderBlock::handleTrailingSpaces):
203707
2037082012-10-18  Hans Muller  <hmuller@adobe.com>
203709
203710        [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
203711        https://bugs.webkit.org/show_bug.cgi?id=99216
203712
203713        Reviewed by Dirk Schulze.
203714
203715        Added a FloatRect::extend() method which simplifies writing loops that
203716        accumulate the bounding box for a sequence of FloatPoints. The new method
203717        is used by ExclusionPolygon to initialize the shape's logical and physical
203718        bounding boxes. This a clean-up, not a change in functionality. It's already
203719        covered by the existing fast/exclusions LayoutTests.
203720
203721        * platform/graphics/FloatRect.cpp:
203722        (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
203723        (WebCore):
203724        * platform/graphics/FloatRect.h:
203725        (FloatRect): Added extend() method.
203726        * rendering/ExclusionPolygon.cpp:
203727        (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
203728        * rendering/ExclusionShape.cpp:
203729        (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
203730        * rendering/ExclusionShape.h:
203731        (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
203732        (ExclusionShape):
203733
2037342012-10-18  Hans Muller  <hmuller@adobe.com>
203735
203736        [CSS Exclusions] Handle special case "empty" shapes
203737        https://bugs.webkit.org/show_bug.cgi?id=99342
203738
203739        Reviewed by Dirk Schulze.
203740
203741        Provide expclit coverage of the simple "empty" shape-inside shapes.
203742        Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
203743        and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
203744        This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
203745        with 0 radiusX or radiusY, polygons with less than 3 vertices.
203746
203747        Test: fast/exclusions/shape-inside/shape-inside-empty.html
203748
203749        * rendering/ExclusionPolygon.cpp:
203750        (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
203751        (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
203752        (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
203753        * rendering/ExclusionPolygon.h: Added the isEmpty() method.
203754        * rendering/ExclusionRectangle.cpp:
203755        (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
203756        (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
203757        * rendering/ExclusionRectangle.h: Added the isEmpty() method.
203758        * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
203759        (ExclusionShape):
203760
2037612012-10-18  Takashi Sakamoto  <tasak@google.com>
203762
203763        REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
203764        https://bugs.webkit.org/show_bug.cgi?id=99587
203765
203766        Reviewed by Dimitri Glazkov.
203767
203768        Since contents in datalist are not shown, summary in datalist is not
203769        shown either. So the summary has no render style. On the other hand,
203770        the summary is implemented by shadow DOM and it has some insertion
203771        point. Its child, e.g. title in the below test, is distributed.
203772        To solve the child's user-modify, looking at shadow host(=summary)'s
203773        style causes null-pointer crash.
203774
203775        Test: fast/dom/shadow/user-modify-in-datalist-crash.html
203776
203777        * css/StyleResolver.cpp:
203778        (WebCore::StyleResolver::styleForElement):
203779        Added a code to check whether the shadow host has any style or not.
203780
2037812012-10-17  Philippe Normand  <pnormand@igalia.com>
203782
203783        [GTK] AudioBusGtk sometimes fails to load the HRTF database
203784        https://bugs.webkit.org/show_bug.cgi?id=99601
203785
203786        Reviewed by Martin Robinson.
203787
203788        AudioBusGtk now first lookup for the uninstalled resource files,
203789        if the AUDIO_RESOURCES_PATH environment variable is
203790        set. Additionally the audio file reader is now better dealing with
203791        errors, returning an empty AudioBus in such cases and issuing
203792        warnings on the console output. The cleanup of some member
203793        variables was also moved to the destructor.
203794
203795        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
203796        (AudioFileReader):
203797        (WebCore::AudioFileReader::AudioFileReader):
203798        (WebCore::AudioFileReader::~AudioFileReader): Clear and free
203799        member variables. This was done in createBus before.
203800        (WebCore::AudioFileReader::handleMessage): Issue warnings in case
203801        of error and exit from the main loop so the pipeline is not
203802        forever stuck.
203803        (WebCore::AudioFileReader::createBus): Return an empty bus in case
203804        of error.
203805        * platform/audio/gtk/AudioBusGtk.cpp:
203806        (WebCore::AudioBus::loadPlatformResource): Load uninstalled
203807        resources first if AUDIO_RESOURCES_PATH is set.
203808
2038092012-10-18  Pavel Feldman  <pfeldman@chromium.org>
203810
203811        Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
203812        https://bugs.webkit.org/show_bug.cgi?id=99718
203813
203814        Reviewed by Vsevolod Vlasov.
203815
203816        Adds stub method that could be executed from the embedder.
203817
203818        * inspector/front-end/InspectorFrontendAPI.js:
203819        (InspectorFrontendAPI.setDockSide):
203820
2038212012-10-18  Kent Tamura  <tkent@chromium.org>
203822
203823        Add Localizer::monthFormat and implementations
203824        https://bugs.webkit.org/show_bug.cgi?id=99704
203825
203826        Reviewed by Kentaro Hara.
203827
203828        Localizer::monthFormat will be used for constructing input[type=month] UI.
203829
203830        Tests: Add unit tests to Source/WebKit/chromium/tests/.
203831
203832        * platform/text/Localizer.h:
203833        (Localizer): Declare pure virtual monthFormat function.
203834
203835        * platform/text/LocaleNone.cpp:
203836        (LocaleNone): Declare monthFormat.
203837        (WebCore::LocaleNone::monthFormat):
203838        Added. Always reutrns an ISO-8601 format, "yyyy-MM"
203839
203840        * platform/text/LocaleICU.h:
203841        (LocaleICU): Declare monthFormat.
203842        * platform/text/LocaleICU.cpp:
203843        (WebCore::getFormatForSkeleton):
203844        A helper to get a format for the specified skeleton.
203845        The overflow-allocalte-try-again pattern is similar to
203846        LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
203847        (WebCore::LocaleICU::monthFormat):
203848        Added. Calls getFormatForSkeleton with "yyyyMMM".
203849
203850        * platform/text/mac/LocaleMac.h:
203851        (LocaleMac): Declare monthFormat.
203852        * platform/text/mac/LocaleMac.mm:
203853        (WebCore::LocaleMac::monthFormat):
203854        Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
203855
203856        * platform/text/LocaleWin.h:
203857        (LocaleWin): Declare monthFormat.
203858        * platform/text/LocaleWin.cpp:
203859        (WebCore::LocaleWin::monthFormat):
203860        Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
203861
2038622012-10-18  Pavel Feldman  <pfeldman@chromium.org>
203863
203864        Web Inspector: add X-WebKit-CSP header into inspector.html
203865        https://bugs.webkit.org/show_bug.cgi?id=99710
203866
203867        Reviewed by Vsevolod Vlasov.
203868
203869        A simple sanity measure.
203870
203871        * inspector/front-end/inspector.html:
203872
2038732012-10-18  Huang Dongsung  <luxtella@company100.net>
203874
203875        [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
203876        https://bugs.webkit.org/show_bug.cgi?id=98733
203877
203878        Reviewed by Noam Rosenthal.
203879
203880        Change CustomFilterOperation::parameters() to const function, because
203881        this method is a getter and a const instance needs to call this method.
203882
203883        No new tests because there is no change in behavior.
203884
203885        * platform/graphics/filters/CustomFilterOperation.h:
203886        (WebCore::CustomFilterOperation::parameters):
203887
2038882012-10-18  Hayato Ito  <hayato@chromium.org>
203889
203890        treeScopeOfParent doesn't return the TreeScope of the parent
203891        https://bugs.webkit.org/show_bug.cgi?id=98207
203892
203893        Reviewed by Hajime Morita.
203894
203895        A minor clean up. Remove treeScopeOfParent() in Element.cpp.
203896
203897        No tests needed, this is just a clean up.
203898
203899        * dom/Element.cpp:
203900        (WebCore::Element::removedFrom):
203901
2039022012-10-18  Alexander Pavlov  <apavlov@chromium.org>
203903
203904        Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
203905        https://bugs.webkit.org/show_bug.cgi?id=99711
203906
203907        Reviewed by Vsevolod Vlasov.
203908
203909        Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
203910
203911        * inspector/front-end/CSSCompletions.js:
203912        (WebInspector.CSSCompletions):
203913        (WebInspector.CSSCompletions.requestCSSNameCompletions):
203914        (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
203915        * inspector/front-end/CSSKeywordCompletions.js:
203916        (WebInspector.CSSKeywordCompletions.forProperty):
203917
2039182012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
203919
203920        Unreviewed, do not make UseV8.cmake executable.
203921
203922        * UseV8.cmake: Removed property svn:executable.
203923
2039242012-10-18  Tommy Widenflycht  <tommyw@google.com>
203925
203926        MediaStream API: Add better RTCPeerConnectionHandler creation logic
203927        https://bugs.webkit.org/show_bug.cgi?id=99308
203928
203929        Reviewed by Adam Barth.
203930
203931        This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
203932        the RTCPeerConnection constructor throws an exception.
203933
203934        Not full testable, existing tests cover the normal case though.
203935
203936        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
203937        (WebCore::RTCPeerConnectionHandler::create):
203938        (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
203939        (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
203940        (WebCore::RTCPeerConnectionHandlerChromium::initialize):
203941        (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
203942        (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
203943        (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
203944        (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
203945        (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
203946        (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
203947        (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
203948        (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
203949        (WebCore::RTCPeerConnectionHandlerChromium::addStream):
203950        (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
203951        (WebCore::RTCPeerConnectionHandlerChromium::getStats):
203952        (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
203953        (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
203954        (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
203955        (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
203956        (WebCore::RTCPeerConnectionHandlerChromium::stop):
203957        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
203958        (RTCPeerConnectionHandlerChromium):
203959
2039602012-10-19  Zeno Albisser  <zeno@webkit.org>
203961
203962        Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
203963        https://bugs.webkit.org/show_bug.cgi?id=99320
203964
203965        The current version of Qt5 deployed on the buildbots does not yet have
203966        an implementation for QCocoaNativeInterface::nativeResourceForContext().
203967        Therefore we disable this code path until Qt5/qtbase has been updated to
203968        a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
203969
203970        Once Qt5 has been updated, this patch must be reverted.
203971
203972        Reviewed by Noam Rosenthal.
203973
203974        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
203975        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
203976
2039772012-10-18  Zeno Albisser  <zeno@webkit.org>
203978
203979        GraphicsSurface should not modify the current GL context.
203980        https://bugs.webkit.org/show_bug.cgi?id=99320
203981
203982        Instead of reusing the currently bound GL context for drawing
203983        the texture onto the GraphicsSurface, GraphicsSurface should
203984        create a new context that shares the texture names with a context
203985        provided by the caller.
203986        This way the OpenGL states are clearly separated and we do not
203987        risk interfeering with the currently bound GL context.
203988
203989        Reviewed by Noam Rosenthal.
203990
203991        * platform/graphics/qt/GraphicsContext3DQt.cpp:
203992        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
203993            When creating a GraphicsSurface pass the platform GL context
203994            as a parameter, so it can be used for sharing textures with.
203995        (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
203996            Pass the texture instead of the FBO. A Texture can be drawn
203997            directly or bound to another FBO, where a framebuffer
203998            always needs to be blit onto the surface.
203999        (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
204000            Pass the platform GL context as a parameter.
204001        * platform/graphics/surfaces/GraphicsSurface.cpp:
204002        (WebCore::GraphicsSurface::create):
204003        (WebCore::GraphicsSurface::copyFromTexture):
204004        * platform/graphics/surfaces/GraphicsSurface.h:
204005        (GraphicsSurface):
204006        * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
204007        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
204008            Create a new GL context that shares the textures with the
204009            context provided by the caller.
204010        (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
204011        (WebCore::GraphicsSurfacePrivate::makeCurrent):
204012            Add a convenience function to make the context that
204013            belongs to the surface current.
204014        (GraphicsSurfacePrivate):
204015        (WebCore::GraphicsSurfacePrivate::doneCurrent):
204016            Add a convenience function to make the previously
204017            bound context current again.
204018        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
204019            Move blitting of the texture onto the surface
204020            into a separate function within GraphicsSurfacePrivate.
204021        (WebCore::GraphicsSurface::platformCopyFromTexture):
204022            Rename function platformCopyFromFramebuffer to
204023            platformCopyFromTexture, as we are now passing the texture only.
204024        (WebCore::GraphicsSurface::platformCreate):
204025        * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
204026        (WebCore):
204027        (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
204028        (WebCore::GraphicsSurfacePrivate::makeCurrent):
204029            Add a convenience function to make the context that
204030            belongs to the surface current.
204031        (GraphicsSurfacePrivate):
204032        (WebCore::GraphicsSurfacePrivate::doneCurrent):
204033            Add a convenience function to make the previously
204034        (WebCore::GraphicsSurfacePrivate::copyFromTexture):
204035            Move blitting of the texture onto the surface
204036            into a separate function within GraphicsSurfacePrivate.
204037        (WebCore::resolveGLMethods):
204038            Resolve additional GL methods necessary for this change.
204039        (WebCore::GraphicsSurface::platformCopyFromTexture):
204040            Rename function platformCopyFromFramebuffer to
204041            platformCopyFromTexture, as we are now passing the texture only.
204042        (WebCore::GraphicsSurface::platformCreate):
204043
2040442012-10-18  Kent Tamura  <tkent@chromium.org>
204045
204046        Set min-width property instead of width property for date/time fields
204047        https://bugs.webkit.org/show_bug.cgi?id=99673
204048
204049        Reviewed by Hajime Morita.
204050
204051        A field can have a text wider than pre-computed width because of
204052        :first-letter property. So, we should set min-width, not width.
204053
204054        Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
204055
204056        * html/shadow/DateTimeNumericFieldElement.cpp:
204057        (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
204058        Set min-width instead of width.
204059        * html/shadow/DateTimeSymbolicFieldElement.cpp:
204060        (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
204061
2040622012-10-18  MORITA Hajime  <morrita@google.com>
204063
204064        Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
204065        https://bugs.webkit.org/show_bug.cgi?id=99510
204066
204067        Reviewed by Kent Tamura.
204068
204069        Shadow DOM notification call didn't have checks for mutation detection.
204070        This change adds such checks.
204071
204072        Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
204073
204074        * dom/ContainerNodeAlgorithms.cpp:
204075        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
204076        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
204077
2040782012-10-17  Kentaro Hara  <haraken@chromium.org>
204079
204080        Unreviewed. Rebaselined run-bindings-tests.
204081
204082        * bindings/scripts/test/V8/V8Float64Array.h:
204083        (V8Float64Array):
204084        * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
204085        (V8TestActiveDOMObject):
204086        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
204087        (V8TestCustomNamedGetter):
204088        * bindings/scripts/test/V8/V8TestEventConstructor.h:
204089        (V8TestEventConstructor):
204090        * bindings/scripts/test/V8/V8TestEventTarget.h:
204091        (V8TestEventTarget):
204092        * bindings/scripts/test/V8/V8TestException.h:
204093        (V8TestException):
204094        * bindings/scripts/test/V8/V8TestInterface.h:
204095        (V8TestInterface):
204096        * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
204097        (V8TestMediaQueryListListener):
204098        * bindings/scripts/test/V8/V8TestNamedConstructor.h:
204099        (V8TestNamedConstructor):
204100        * bindings/scripts/test/V8/V8TestNode.h:
204101        (V8TestNode):
204102        * bindings/scripts/test/V8/V8TestObj.h:
204103        (V8TestObj):
204104        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
204105        (V8TestSerializedScriptValueInterface):
204106
2041072012-10-17  Mike West  <mkwst@chromium.org>
204108
204109        Move mixed content logic out of FrameLoader
204110        https://bugs.webkit.org/show_bug.cgi?id=45638
204111
204112        Reviewed by Eric Seidel.
204113
204114        This change moves checks for mixed content out of FrameLoader, and into
204115        a new MixedContentChecker object. It's a pretty straightforward
204116        refactoring with no change to the overall logic, and only minor changes
204117        to the code to reduce repetition.
204118
204119        The only substantive change is renaming the methods from 'checkIf*' to
204120        'can*' to reflect the value of the boolean they return.
204121
204122        The visible functionality shouldn't change; this change should be
204123        covered by existing tests in http/tests/security/mixedContent.
204124
204125        This patch is mostly a revitalization of Eric Sidel's original
204126        patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
204127
204128        * CMakeLists.txt:
204129        * GNUmakefile.list.am:
204130        * Target.pri:
204131        * WebCore.gypi:
204132        * WebCore.vcproj/WebCore.vcproj:
204133        * WebCore.xcodeproj/project.pbxproj:
204134            Hey, look! A new file!
204135        * loader/FrameLoader.cpp:
204136        (WebCore::FrameLoader::FrameLoader):
204137        * loader/FrameLoader.h:
204138        (WebCore::FrameLoader::mixedContentChecker):
204139        (FrameLoader):
204140        * loader/MixedContentChecker.cpp: Added.
204141        (WebCore):
204142        (WebCore::MixedContentChecker::MixedContentChecker):
204143        (WebCore::MixedContentChecker::client):
204144        (WebCore::asUTF8):
204145        (WebCore::MixedContentChecker::isMixedContent):
204146        (WebCore::MixedContentChecker::canDisplayInsecureContent):
204147        (WebCore::MixedContentChecker::canRunInsecureContent):
204148        (WebCore::MixedContentChecker::logWarning):
204149        * loader/MixedContentChecker.h: Added.
204150        (WebCore):
204151        (MixedContentChecker):
204152            Migrate functionality from FrameLoader::checkIf* to
204153            MixedContentChecker::can*.
204154        * loader/MainResourceLoader.cpp:
204155        (WebCore::MainResourceLoader::willSendRequest):
204156        * loader/SubframeLoader.cpp:
204157        (WebCore::SubframeLoader::pluginIsLoadable):
204158        (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
204159        * loader/cache/CachedResourceLoader.cpp:
204160        (WebCore::CachedResourceLoader::checkInsecureContent):
204161            Use the new method locations.
204162
2041632012-10-17  Dan Bernstein  <mitz@apple.com>
204164
204165        REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
204166        https://bugs.webkit.org/show_bug.cgi?id=99654
204167
204168        Reviewed by Adele Peterson.
204169
204170        When the base character of a combining character sequence is not covered by any one of the
204171        available fonts, there is no point looking for a font that covers the entire sequence, nor
204172        to try to use a combination of fallback fonts for the entire sequence.
204173
204174        * platform/graphics/SimpleFontData.h:
204175        (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
204176        here and renamed it.
204177        * platform/graphics/mac/ComplexTextController.cpp:
204178        (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
204179        systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
204180        for a base character with combining marks, regardless of whether the base character was
204181        covered by any font. Changed it to preserve the return value of
204182        fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
204183        any font, while systemFallbackFontData() is used to indicate that no single font in the
204184        fallback list covers all characters in the sequence, but the base character is in some font.
204185        * platform/graphics/mac/ComplexTextController.h:
204186        (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
204187        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
204188        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
204189        move.
204190        * platform/graphics/mac/FontComplexTextMac.cpp:
204191        (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
204192        systemFallbackFontData() if no single font in the fallback list covers all characters in the
204193        sequence, while using 0 to signal the base character does not exist in any font.
204194
2041952012-10-17  Dan Bernstein  <mitz@apple.com>
204196
204197        Try to fix the build after r131701.
204198
204199        * WebCore.exp.in:
204200
2042012012-10-17  Hayato Ito  <hayato@chromium.org>
204202
204203        Content element does not expose distributedNodes property.
204204        https://bugs.webkit.org/show_bug.cgi?id=99232
204205
204206        Reviewed by Dimitri Glazkov.
204207
204208        Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
204209        static NodeList whose node are distributed to the content element.
204210
204211        Test: fast/dom/shadow/content-element-distributed-nodes.html
204212
204213        * html/shadow/HTMLContentElement.idl:
204214        * html/shadow/InsertionPoint.cpp:
204215        (WebCore::InsertionPoint::getDistributedNodes):
204216        * html/shadow/InsertionPoint.h:
204217        (InsertionPoint):
204218        * testing/Internals.cpp:
204219        * testing/Internals.h:
204220        (Internals):
204221        * testing/Internals.idl:
204222
2042232012-10-17  Pan Deng  <pan.deng@intel.com>
204224
204225        [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
204226        https://bugs.webkit.org/show_bug.cgi?id=90963
204227
204228        Reviewed by Tony Gentilcore.
204229
204230        This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.
204231
204232        Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
204233               http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
204234               http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
204235               http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
204236               http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
204237               http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
204238               http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
204239               http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
204240
204241        * GNUmakefile.list.am:
204242        * WebCore.gypi:
204243        * page/Performance.cpp:
204244        (WebCore::Performance::webkitGetEntries):
204245        (WebCore::Performance::webkitGetEntriesByType):
204246        (WebCore::Performance::webkitGetEntriesByName):
204247        (WebCore):
204248        (WebCore::Performance::webkitMark):
204249        (WebCore::Performance::webkitClearMarks):
204250        (WebCore::Performance::webkitMeasure):
204251        (WebCore::Performance::webkitClearMeasures):
204252        * page/Performance.h:
204253        (WebCore):
204254        (Performance):
204255        * page/Performance.idl:
204256        * page/PerformanceMark.h: Added.
204257        (WebCore):
204258        (PerformanceMark):
204259        (WebCore::PerformanceMark::create):
204260        (WebCore::PerformanceMark::PerformanceMark):
204261        (WebCore::PerformanceMark::~PerformanceMark):
204262        * page/PerformanceMark.idl: Added.
204263        * page/PerformanceMeasure.h: Added.
204264        (WebCore):
204265        (PerformanceMeasure):
204266        (WebCore::PerformanceMeasure::create):
204267        (WebCore::PerformanceMeasure::PerformanceMeasure):
204268        (WebCore::PerformanceMeasure::~PerformanceMeasure):
204269        * page/PerformanceMeasure.idl: Added.
204270        * page/PerformanceUserTiming.cpp: Added.
204271        (WebCore):
204272        (WebCore::UserTiming::UserTiming):
204273        (WebCore::insertPerformanceEntry):
204274        (WebCore::clearPeformanceEntries):
204275        (WebCore::UserTiming::mark):
204276        (WebCore::UserTiming::clearMarks):
204277        (WebCore::UserTiming::findExistingMarkStartTime):
204278        (WebCore::UserTiming::measure):
204279        (WebCore::UserTiming::clearMeasures):
204280        * page/PerformanceUserTiming.h: Added.
204281        (WebCore):
204282        (UserTiming):
204283        (WebCore::UserTiming::create):
204284
2042852012-10-17  James Robinson  <jamesr@chromium.org>
204286
204287        Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
204288
204289        * platform/graphics/GraphicsLayerUpdater.h:
204290        (GraphicsLayerUpdater):
204291
2042922012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
204293
204294        Attempt to fix the build after r131680.
204295
204296        Unreviewed build fix.
204297
204298        * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
204299
2043002012-10-17  Elliott Sprehn  <esprehn@chromium.org>
204301
204302        StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
204303        https://bugs.webkit.org/show_bug.cgi?id=99560
204304
204305        Reviewed by Eric Seidel.
204306
204307        Previously we only compared the first ContentData in the linked
204308        list of ContentData's which meant that if the resolved style
204309        for content had the same prefix we wouldn't update the content.
204310
204311        This patch adds a loop to compare each of the ContentData objects
204312        in the linked list.
204313
204314        Test: fast/css-generated-content/content-property-change.html
204315
204316        * rendering/style/StyleRareNonInheritedData.cpp:
204317        (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
204318
2043192012-10-17  Elliott Sprehn  <esprehn@chromium.org>
204320
204321        Remove StyleContentType since it's not used anymore
204322        https://bugs.webkit.org/show_bug.cgi?id=99659
204323
204324        Reviewed by Eric Seidel.
204325
204326        Remove StyleContentType enum since it's not used anymore and
204327        make the is*() type checking methods on ContentData public.
204328
204329        No new tests needed, this is just deleting dead code.
204330
204331        * rendering/style/ContentData.h:
204332        (ContentData):
204333        * rendering/style/RenderStyleConstants.h:
204334
2043352012-10-17  Simon Fraser  <simon.fraser@apple.com>
204336
204337        Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
204338        https://bugs.webkit.org/show_bug.cgi?id=99518
204339
204340        Reviewed by Dean Jackson.
204341
204342        When using tile caches in place of tiled layers, we need to recompute their
204343        visible area periodically while animations and scrolling are happening.
204344        Make a new class, GraphicsLayerUpdater, to handle this updating.
204345        Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
204346        
204347        GraphicsLayer clients are notified that layers need periodic updates. Clients
204348        are free to make use of GraphicsLayerUpdater to handle this updating, as
204349        RenderLayerCompositor does.
204350        
204351        Also do some minor refactoring of methods in RenderLayerCompositor that
204352        get to Page.
204353
204354        * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
204355        * GNUmakefile.list.am: Ditto.
204356        * PlatformBlackBerry.cmake: Ditto.
204357        * Target.pri: Ditto.
204358        * WebCore.gypi: Ditto.
204359        * WebCore.vcproj/WebCore.vcproj: Ditto.
204360        * WebCore.xcodeproj/project.pbxproj: Ditto.
204361        * dom/Document.cpp:
204362        (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
204363        changed, so it can tell the GraphicsLayerUpdater if it has one.
204364        * platform/graphics/GraphicsLayerClient.h:
204365        (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
204366        for layers that need periodic updates, like tile cache layers.
204367        * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
204368        to flush layers before the next refresh.
204369        (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
204370        (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
204371        (WebCore::GraphicsLayerUpdater::scheduleUpdate):
204372        (WebCore::GraphicsLayerUpdater::screenDidChange):
204373        (WebCore::GraphicsLayerUpdater::displayRefreshFired):
204374        * platform/graphics/GraphicsLayerUpdater.h: Added.
204375        (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
204376        (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
204377        * platform/graphics/ca/GraphicsLayerCA.cpp:
204378        (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
204379        tell the client that this layer should be updated soon to update the visible rect.
204380        * rendering/RenderLayerBacking.cpp:
204381        (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
204382        on to the compositor.
204383        * rendering/RenderLayerBacking.h:
204384        (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
204385        Add OVERRIDE to all the client overrides.
204386        * rendering/RenderLayerCompositor.cpp:
204387        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
204388        (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
204389        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
204390        about the current state of animations inside the flush (for visible rect computation), so we
204391        need a AnimationUpdateBlock to make sure all the animation times are in sync.
204392        (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
204393        if necessary, and tell it to update soon.
204394        (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
204395        Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
204396        (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
204397        (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
204398        (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
204399        (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
204400        (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
204401        (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
204402        (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
204403        (WebCore::RenderLayerCompositor::page): The helper.
204404        * rendering/RenderLayerCompositor.h:
204405        (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
204406
2044072012-10-17  Eric Seidel  <eric@webkit.org>
204408
204409        Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
204410        https://bugs.webkit.org/show_bug.cgi?id=99652
204411
204412        Reviewed by Adam Barth.
204413
204414        My testing showed this moved dom-query.html from  465560 runs/s to 479019
204415        which is about 2% if I'm doing my math correctly.
204416
204417        I suspect that's due to avoiding the ref-churn we were incurring by using
204418        return-by-value symantics here.
204419
204420        This is just the tip of the iceburg. :)
204421
204422        * bindings/v8/V8StringResource.cpp:
204423        (StringTraits):
204424        * bindings/v8/V8ValueCache.h:
204425        (WebCore::WebCoreStringResource::webcoreString):
204426        (WebCore::WebCoreStringResource::atomicString):
204427
2044282012-10-17  Luke Macpherson   <macpherson@chromium.org>
204429
204430        Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
204431        https://bugs.webkit.org/show_bug.cgi?id=99534
204432
204433        Reviewed by Alexis Menard.
204434
204435        One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
204436
204437        Covered by fast/overflow/line-clamp.html
204438
204439        * css/StyleBuilder.cpp:
204440        (WebCore::StyleBuilder::StyleBuilder):
204441        * css/StyleResolver.cpp:
204442        (WebCore::StyleResolver::applyProperty):
204443
2044442012-10-17  Andy Estes  <aestes@apple.com>
204445
204446        [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
204447        https://bugs.webkit.org/show_bug.cgi?id=99662
204448
204449        Reviewed by Sam Weinig.
204450
204451        Export needed symbols.
204452
204453        * WebCore.exp.in:
204454
2044552012-10-17  Adam Barth  <abarth@webkit.org>
204456
204457        [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
204458        https://bugs.webkit.org/show_bug.cgi?id=99653
204459
204460        Reviewed by Eric Seidel.
204461
204462        * bindings/scripts/CodeGeneratorV8.pm:
204463        (GenerateHeader):
204464
2044652012-10-17  David Grogan  <dgrogan@chromium.org>
204466
204467        IndexedDB: Destroy leveldb directory if unknown schema is detected
204468        https://bugs.webkit.org/show_bug.cgi?id=99636
204469
204470        Reviewed by Tony Chang.
204471
204472        chromium browser test in progress at
204473        https://codereview.chromium.org/11196029
204474
204475        * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
204476        (WebCore):
204477        (WebCore::isSchemaKnown):
204478        Return true when the schema key doesn't exist because new databases
204479        won't have one.
204480
204481        (WebCore::setUpMetadata):
204482        (WebCore::IDBLevelDBBackingStore::open):
204483        Piggy-back on existing leveldb::destroy code.
204484
2044852012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
204486
204487        Incorrect rendering of borders on <col> with span > 1
204488        https://bugs.webkit.org/show_bug.cgi?id=76246
204489
204490        Reviewed by Julien Chaffraix.
204491
204492        The HTML5 rendering specification [10.2.2 - Display Types] states that
204493        "For the purposes of the CSS table model, the col element is expected to
204494        be treated as if it was present as many times as its span attribute
204495        specifies."
204496        We should thus apply a col element's border as if the element is present
204497        as many number of times as its span attribute.
204498
204499        Apart from this, we should also treat the col and its enclosing colgroup
204500        separately while computing the collapsed borders.
204501
204502        Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
204503
204504        * rendering/RenderTableCell.cpp:
204505        (WebCore::RenderTableCell::computeCollapsedStartBorder):
204506        (WebCore::RenderTableCell::computeCollapsedEndBorder):
204507        Borders from col and its enclosing colgroup element should be handled
204508        separately, while considering the preceeding col's end border (for start
204509        border computation) and the next col's start border (for end border
204510        computation).
204511
204512        Also, have made changes for handling of col elements with span attribute as
204513        per the specification. We now apply the border (start or end) of the col
204514        element irrespective of whether it has any span specified for it or not.
204515
2045162012-10-17  Tom Sepez  <tsepez@chromium.org>
204517
204518        Crash in ContainerNode::removeAllChildren()
204519        https://bugs.webkit.org/show_bug.cgi?id=98443
204520
204521        Reviewed by Eric Carlson.
204522
204523        This patch makes the errorEventSender added in WebKit Revision 112190 interact
204524        with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
204525        existing event senders.
204526
204527        Test: http/tests/security/video-poster-cross-origin-crash2.html
204528
204529        * loader/ImageLoader.cpp:
204530        (WebCore::ImageLoader::setImage):
204531        (WebCore::ImageLoader::updateFromElement):
204532        (WebCore::ImageLoader::notifyFinished):
204533        (WebCore::ImageLoader::updatedHasPendingEvent):
204534        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
204535        (WebCore::ImageLoader::dispatchPendingLoadEvent):
204536        * loader/ImageLoader.h:
204537        (ImageLoader):
204538
2045392012-10-17  Joshua Bell  <jsbell@chromium.org>
204540
204541        IndexedDB: Closing connection in upgradeneeded should result in error event
204542        https://bugs.webkit.org/show_bug.cgi?id=99486
204543
204544        Reviewed by Tony Chang.
204545
204546        The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
204547        This was being handled during the "enqueue" phase, which was too early either for synchronously
204548        executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
204549        logic to the "dispatch" phase.
204550
204551        Test: storage/indexeddb/intversion-close-in-oncomplete.html
204552
204553        * Modules/indexeddb/IDBOpenDBRequest.cpp:
204554        (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
204555        (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
204556        * Modules/indexeddb/IDBOpenDBRequest.h:
204557        (IDBOpenDBRequest):
204558
2045592012-10-17  Elliott Sprehn  <esprehn@chromium.org>
204560
204561        Use virtual dispatch to create ContentData renderers
204562        https://bugs.webkit.org/show_bug.cgi?id=99646
204563
204564        Reviewed by Eric Seidel.
204565
204566        ContentData are conceptually very similar to Nodes and we can use
204567        the same createRenderer pattern on them to simplify creating
204568        renderers for generated content. Now each ContentData class knows
204569        how to create its own renderer.
204570
204571        Previously we switched over the StyleContentType which required a
204572        case for CONTENT_NONE and made the code look like it could return
204573        null, but this case is actually impossible because no ContentData
204574        class ever has a type of CONTENT_NONE and no null checks are really
204575        needed.
204576
204577        This is the final step in removing dependence on StyleContentType.
204578
204579        No new tests needed, this is just a refactor.
204580
204581        * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
204582        (WebCore::RenderObjectChildList::updateBeforeAfterContent):
204583        * rendering/style/ContentData.cpp:
204584        (WebCore::ImageContentData::createRenderer):
204585        (WebCore):
204586        (WebCore::TextContentData::createRenderer):
204587        (WebCore::CounterContentData::createRenderer):
204588        (WebCore::QuoteContentData::createRenderer):
204589        * rendering/style/ContentData.h: Added a new virtual method createRenderer.
204590        (WebCore):
204591        (ContentData):
204592        (ImageContentData):
204593        (TextContentData):
204594        (CounterContentData):
204595        (QuoteContentData):
204596
2045972012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
204598
204599        RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
204600        https://bugs.webkit.org/show_bug.cgi?id=89393
204601
204602        Reviewed by Eric Seidel.
204603
204604        Performance optimization, covered by existing tests.
204605
204606        Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
204607        painting, it would benefit from the same optimization.
204608
204609        On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
204610        it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
204611        (I didn't measure the exact timing).
204612
204613        Note that as in bug 88888, the multi-column code is not covered by this optimization.
204614
204615        * rendering/RenderLayer.cpp:
204616        (WebCore::RenderLayer::hitTest):
204617        This is the entrance to the hit testing code so we check if we can bail out early.
204618
204619        (WebCore::RenderLayer::hitTestList):
204620        If we have no self-painting descendant layers, we can bail out.
204621
204622        (WebCore::RenderLayer::hitTestContents):
204623        (WebCore::RenderLayer::hitTestLayer):
204624        hitTest should filter the layers that call these functions. Added some ASSERT to
204625        make sure we don't mistakenly call them when could avoid it.
204626
2046272012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
204628
204629        [Qt] Certain SVG content freezes QtWebKit
204630        https://bugs.webkit.org/show_bug.cgi?id=97258
204631
204632        Reviewed by Simon Hausmann.
204633
204634        Ensure dashpattern is well-formed by avoiding divisions by zero.
204635
204636        Test: svg/stroke/zero-width-hang.html
204637
204638        * platform/graphics/qt/GraphicsContextQt.cpp:
204639        (WebCore::GraphicsContext::setLineDash):
204640
2046412012-10-17  Alec Flett  <alecflett@chromium.org>
204642
204643        IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
204644        https://bugs.webkit.org/show_bug.cgi?id=99619
204645
204646        Reviewed by Adam Barth.
204647
204648        Rather than pass SerializedScriptValue tokens from the backend,
204649        send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
204650        undefined, (as onSucess()), and integers (as onSuccess(long long))
204651
204652        This reduces backend dependency on things that might require a JS
204653        interpreter on the backend.
204654
204655        No new tests, this is a refactor and existing tests cover
204656        correctness. Tests that might fail include:
204657
204658        Test: storage/indexeddb/index-count.html
204659        Test: storage/indexeddb/objectstore-count.html
204660        Test: storage/indexeddb/database-basics.html
204661
204662        * Modules/indexeddb/IDBCallbacks.h:
204663        (IDBCallbacks):
204664        * Modules/indexeddb/IDBCursorBackendImpl.cpp:
204665        (WebCore::IDBCursorBackendImpl::advanceInternal):
204666        (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
204667        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
204668        * Modules/indexeddb/IDBCursorBackendImpl.h:
204669        (WebCore::IDBCursorBackendImpl::value):
204670        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
204671        (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
204672        * Modules/indexeddb/IDBIndex.cpp:
204673        * Modules/indexeddb/IDBIndexBackendImpl.cpp:
204674        (WebCore::IDBIndexBackendImpl::openCursorInternal):
204675        (WebCore::IDBIndexBackendImpl::countInternal):
204676        (WebCore::IDBIndexBackendImpl::getInternal):
204677        * Modules/indexeddb/IDBObjectStore.cpp:
204678        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
204679        (WebCore::IDBObjectStoreBackendImpl::getInternal):
204680        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
204681        (WebCore::IDBObjectStoreBackendImpl::clearInternal):
204682        (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
204683        (WebCore::IDBObjectStoreBackendImpl::countInternal):
204684        * Modules/indexeddb/IDBRequest.cpp:
204685        (WebCore::IDBRequest::onSuccess):
204686        (WebCore):
204687        * Modules/indexeddb/IDBRequest.h:
204688        * Modules/indexeddb/IDBTransaction.cpp:
204689        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
204690        * Modules/indexeddb/IDBTransactionBackendImpl.h:
204691        * Modules/indexeddb/IDBTransactionBackendInterface.h:
204692        * bindings/v8/IDBBindingUtilities.cpp:
204693        (WebCore::deserializeIDBValue):
204694        * inspector/InspectorIndexedDBAgent.cpp:
204695        (WebCore):
204696
2046972012-10-17  Nate Chapin  <japhet@chromium.org>
204698
204699        Move ResourceRequest construction out of SubresourceLoader
204700        https://bugs.webkit.org/show_bug.cgi?id=99627
204701
204702        Reviewed by Adam Barth.
204703
204704        CachedResource::load() fills out a bunch of http headers.
204705        SubresourceLoader::create() adds a bunch more. Merge them.
204706        Note that this merge requires a bit more care in CachedRawResource::canReuse(),
204707        because more headers are set directly on CachedResource::m_resourceRequest, rather
204708        than on a copy of it.
204709
204710        No new tests, no functionality change intended.
204711
204712        * loader/SubresourceLoader.cpp:
204713        (WebCore::SubresourceLoader::create):
204714        * loader/cache/CachedRawResource.cpp:
204715        (WebCore::shouldIgnoreHeaderForCacheReuse):
204716        (WebCore):
204717        (WebCore::CachedRawResource::canReuse):
204718        * loader/cache/CachedResource.cpp:
204719        (WebCore::CachedResource::failBeforeStarting):
204720        (WebCore):
204721        (WebCore::CachedResource::addAdditionalRequestHeaders):
204722        (WebCore::CachedResource::load):
204723        * loader/cache/CachedResource.h:
204724        (CachedResource):
204725
2047262012-10-17  Anders Carlsson  <andersca@apple.com>
204727
204728        Clean up Vector.h
204729        https://bugs.webkit.org/show_bug.cgi?id=99622
204730
204731        Reviewed by Benjamin Poulain.
204732
204733        Fix fallout from removing std::max and std::min using declarations.
204734
204735        * loader/cache/CachedResource.cpp:
204736        (WebCore::CachedResource::currentAge):
204737
2047382012-10-17  Joshua Bell  <jsbell@chromium.org>
204739
204740        IndexedDB: Enforce unsigned long/unsigned long long ranges
204741        https://bugs.webkit.org/show_bug.cgi?id=99637
204742
204743        Reviewed by Tony Chang.
204744
204745        The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
204746        arguments, which requires the implementation to throw TypeError for negative values or
204747        values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
204748        specifically forbidden by the APIs as well.
204749
204750        A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
204751        address this in the implementation.
204752
204753        Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
204754
204755        Tests: storage/indexeddb/cursor-advance.html
204756               storage/indexeddb/intversion-bad-parameters.html
204757               storage/indexeddb/intversion-encoding.html
204758
204759        * Modules/indexeddb/IDBCursor.cpp:
204760        (WebCore::IDBCursor::advance): Validate argument range.
204761        * Modules/indexeddb/IDBCursor.h:
204762        (IDBCursor):
204763        * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
204764        not yet doing the correct validation.
204765        * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
204766        (WebCore):
204767        (WebCore::IDBFactory::open): Validate the int version here, then pass to...
204768        (WebCore::IDBFactory::openInternal): ... this method.
204769        * Modules/indexeddb/IDBFactory.h:
204770        (IDBFactory):
204771        * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
204772        code right now, can be re-added once webkit.org/b/96798 lands.
204773
2047742012-10-17  Tony Chang  <tony@chromium.org>
204775
204776        fast/forms/range/input-appearance-range-rtl.html off by one pixel
204777        https://bugs.webkit.org/show_bug.cgi?id=99625
204778
204779        Reviewed by Ojan Vafai.
204780
204781        Previously, we would assume that a vertical slider in RTL would render identically to
204782        a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
204783
204784        This worked in deprecated flexbox because it doesn't adjust for RTL when applying
204785        box-align: center.
204786
204787        Tests: fast/forms/range/input-appearance-range-rtl.html
204788
204789        * html/shadow/SliderThumbElement.cpp:
204790        (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
204791        just in case the user switches from vertical to horizontal.
204792
2047932012-10-17  Michael Saboff  <msaboff@apple.com>
204794
204795        Creating a String from an NSString should check for all 8 bit strings
204796        https://bugs.webkit.org/show_bug.cgi?id=99392
204797
204798        Reviewed by Geoffrey Garen.
204799
204800        Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
204801
204802        No functional change, change covered by existing tests.
204803
204804        * platform/text/mac/StringMac.mm:
204805        (WTF::String::String):
204806
2048072012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
204808
204809        [EFL] Remove redundant OpenGL library addition from the build system.
204810        https://bugs.webkit.org/show_bug.cgi?id=99629
204811
204812        Reviewed by Rob Buis.
204813
204814        * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
204815        WebCore_LIBRARIES, this is already done in CMakeLists.txt these
204816        days.
204817
2048182012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
204819
204820        [CMake] Set WebCore_LIBRARIES earlier.
204821        https://bugs.webkit.org/show_bug.cgi?id=99630
204822
204823        Reviewed by Rob Buis.
204824
204825        * CMakeLists.txt: Follow the style we use in other CMakeList.txt
204826        files and set the Foo_LIBRARIES variables before we start checking
204827        for optional features, as they might append other libraries to the
204828        list (it already happens with WTF_USE_3D_GRAPHICS, for example).
204829
2048302012-10-17  Philip Rogers  <pdr@google.com>
204831
204832        Allow lazy initialization of SVG XML animated properties.
204833        https://bugs.webkit.org/show_bug.cgi?id=84657
204834
204835        Reviewed by Tim Horton.
204836
204837        When animating a property in the shadow tree, instance properties and tearoffs are created
204838        but they simply reference the animated element's animating properties.
204839
204840        When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
204841        we initialize the root property and instance properties using startAnimValAnimation(...).
204842        If an instance property is added while the root property is animating, this initialization
204843        will not occur and we crash.
204844
204845        This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
204846        property if it is not already animating. After this patch, instance properties can be added
204847        in the middle of animation and they will be properly started/initialized.
204848
204849        Test: svg/animations/use-while-animating-crash.html
204850
204851        * svg/SVGAnimatedTypeAnimator.h:
204852        (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
204853        (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
204854        (WebCore::SVGAnimatedTypeAnimator::executeAction):
204855
2048562012-10-17  Dan Carney  <dcarney@google.com>
204857
204858        Bind isolatedWorldSecurityOrigin to world
204859        https://bugs.webkit.org/show_bug.cgi?id=99582
204860
204861        Reviewed by Adam Barth.
204862
204863        Security origin of isolated worlds was not previously set at the world
204864        level, although it could have been. 
204865
204866        No new tests. No change in functionality.
204867
204868        * bindings/v8/DOMWrapperWorld.cpp:
204869        (WebCore::DOMWrapperWorld::deallocate):
204870        (WebCore):
204871        (WebCore::isolatedWorldSecurityOrigins):
204872        (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
204873        (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
204874        (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
204875        * bindings/v8/DOMWrapperWorld.h:
204876        (DOMWrapperWorld):
204877        (WebCore::DOMWrapperWorld::isIsolatedWorldId):
204878        (WebCore::DOMWrapperWorld::isIsolatedWorld):
204879        * bindings/v8/ScriptController.cpp:
204880        (WebCore::ScriptController::resetIsolatedWorlds):
204881        (WebCore::ScriptController::evaluateInIsolatedWorld):
204882        (WebCore::ScriptController::collectIsolatedContexts):
204883        * bindings/v8/ScriptController.h:
204884        (ScriptController):
204885        (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
204886        * bindings/v8/V8DOMWindowShell.cpp:
204887        (WebCore::V8DOMWindowShell::initializeIfNeeded):
204888        * bindings/v8/V8DOMWindowShell.h:
204889        (V8DOMWindowShell):
204890        * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
204891        (WebCore::V8XMLHttpRequest::constructorCallback):
204892
2048932012-10-17  Simon Fraser  <simon.fraser@apple.com>
204894
204895        GraphicsLayer visible rect computation needs to use the current animating transform
204896        https://bugs.webkit.org/show_bug.cgi?id=99529
204897
204898        Reviewed by Dean Jackson.
204899
204900        If we're running an accelerated animation of transform
204901        on a GraphicsLayerCA, the current value of the transform won't
204902        be reflected in the GraphicsLayer's m_transform. However,
204903        we need the current value of the transform in order to correctly
204904        compute the visible rect of this layer and descendants.
204905        
204906        Add a function to GraphicsLayerClient to retrieve the current
204907        value of the transform from the client.
204908        
204909        RenderLayer's currentTransform() used to return a transform
204910        with transform-origin baked in; GraphicsLayerClient needs one
204911        that excludes transform-origin, so enhance RenderLayer::currentTransform()
204912        to be able to produce either.
204913
204914        Tests: compositing/visible-rect/animated-from-none.html
204915               compositing/visible-rect/animated.html
204916
204917        * platform/graphics/GraphicsLayerClient.h:
204918        (WebCore):
204919        (GraphicsLayerClient):
204920        (WebCore::GraphicsLayerClient::getCurrentTransform):
204921        * platform/graphics/ca/GraphicsLayerCA.cpp:
204922        (WebCore::GraphicsLayerCA::computeVisibleRect):
204923        * rendering/RenderLayer.cpp:
204924        (WebCore::RenderLayer::currentTransform):
204925        * rendering/RenderLayer.h:
204926        * rendering/RenderLayerBacking.cpp:
204927        (WebCore::RenderLayerBacking::currentTransform):
204928        * rendering/RenderLayerBacking.h:
204929        (RenderLayerBacking):
204930
2049312012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
204932
204933        plugins: Allow a plugin to dictate whether it can receive drag events or not.
204934        https://bugs.webkit.org/show_bug.cgi?id=99355
204935
204936        Reviewed by Tony Chang.
204937
204938        When doing a drag over a plugin, ask the plugin whether it can accept
204939        drag/drop to decide whether drag/drop is possible or not. At present,
204940        plugins do not receive drag events through WebCore (i.e. various
204941        implementations of PluginView::handleMouseEvent ignores the
204942        drop-events). This change makes it possible for the ports to ask the
204943        plugin first to decide whether it can (or wants to) accept drag events.
204944        The default implementation remains the same, i.e. plugins do not receive
204945        drag events. For chromium, the overridden implementation uses the
204946        WebPlugin interface to check whether the plugin can accept drag events.
204947
204948        * html/HTMLPlugInElement.cpp:
204949        (WebCore::HTMLPlugInElement::canProcessDrag):
204950        (WebCore):
204951        * html/HTMLPlugInElement.h:
204952        (WebCore):
204953        (HTMLPlugInElement):
204954        * page/DragController.cpp:
204955        (WebCore::DragController::canProcessDrag):
204956        * plugins/PluginViewBase.h:
204957        (WebCore):
204958        (WebCore::PluginViewBase::canProcessDrag):
204959
2049602012-10-17  Andreas Kling  <kling@webkit.org>
204961
204962        Shrink EventTargetData by making firingEventListeners vector optional.
204963        <http://webkit.org/b/99532>
204964        <rdar://problem/12515099>
204965
204966        Reviewed by Anders Carlsson.
204967
204968        The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
204969        is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
204970        by 48 bytes and progressing Membuster3 by 395kB.
204971
204972        * dom/EventTarget.cpp:
204973        (WebCore::EventTarget::removeEventListener):
204974        (WebCore::EventTarget::fireEventListeners):
204975        (WebCore::EventTarget::removeAllEventListeners):
204976        * dom/EventTarget.h:
204977        (WebCore::EventTarget::isFiringEventListeners):
204978
2049792012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
204980
204981        xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
204982        https://bugs.webkit.org/show_bug.cgi?id=99571
204983
204984        Reviewed by Kenneth Rohde Christiansen.
204985
204986        Check that the iconURL is not empty in IconController::continueLoadWithDecision()
204987        to avoid hitting assertions later when trying to commit this empty URL to the
204988        database. IconController::url() may indeed return an empty URL but there was
204989        no check for it.
204990
204991        No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
204992
204993        * loader/icon/IconController.cpp:
204994        (WebCore::IconController::continueLoadWithDecision):
204995
2049962012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
204997
204998        Fix build warnings : -Wunused-parameter, -Wunused-variable
204999        https://bugs.webkit.org/show_bug.cgi?id=99539
205000
205001        Reviewed by Kentaro Hara.
205002
205003        Fix build warnings about unused parameter or unused variable when
205004        WTF_USE_TILED_BACKING_STORE option is enabled.
205005
205006        * html/shadow/HTMLContentElement.cpp:
205007        (WebCore::contentTagName):
205008        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
205009        (WebCore::GraphicsContext3D::getImageData):
205010        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
205011        (WebCore::GraphicsContext3DPrivate::createSurface):
205012        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
205013        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
205014        (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
205015        * platform/graphics/texmap/TextureMapper.h:
205016        (WebCore::BitmapTexture::canReuseWith):
205017        (WebCore::TextureMapper::beginPainting):
205018        * platform/graphics/texmap/TextureMapperGL.cpp:
205019        (WebCore::TextureMapperGL::drawRepaintCounter):
205020        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
205021        (WebCore::BitmapTextureImageBuffer::updateContents):
205022        * platform/graphics/texmap/TextureMapperImageBuffer.h:
205023        * platform/graphics/texmap/TextureMapperLayer.cpp:
205024        (WebCore::TextureMapperLayer::sortByZOrder):
205025        (WebCore::TextureMapperLayer::flushCompositingStateSelf):
205026        * rendering/RenderLayerCompositor.cpp:
205027        (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
205028
2050292012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
205030
205031        Dynamically added elements do not get re-projected.
205032        https://bugs.webkit.org/show_bug.cgi?id=99227
205033
205034        Reviewed by Dimitri Glazkov.
205035
205036        When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
205037        is changed.
205038
205039        Test: fast/dom/shadow/content-reprojection-dynamic.html
205040
205041        * html/shadow/ContentDistributor.cpp:
205042        (WebCore::ContentDistributor::distribute):
205043
2050442012-10-17  Yury Semikhatsky  <yurys@chromium.org>
205045
205046        Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
205047        https://bugs.webkit.org/show_bug.cgi?id=99602
205048
205049        Reviewed by Pavel Feldman.
205050
205051        Add delete items to the watch expression's value's context menu.
205052
205053        * inspector/front-end/ObjectPropertiesSection.js:
205054        (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
205055        (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
205056        * inspector/front-end/WatchExpressionsSidebarPane.js:
205057        (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
205058        (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
205059
2050602012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
205061
205062        Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
205063        https://bugs.webkit.org/show_bug.cgi?id=99598
205064
205065        Reviewed by Pavel Feldman.
205066
205067        workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
205068        when change returns uiSourceCode to non dirty state.
205069        Added wasDirty parameter to workingCopyChanged event.
205070
205071        Test: inspector/debugger/live-edit-breakpoints.html
205072
205073        * inspector/front-end/ResourceScriptMapping.js:
205074        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
205075        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
205076        * inspector/front-end/UISourceCode.js:
205077        (WebInspector.UISourceCode.prototype.setWorkingCopy):
205078
2050792012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
205080
205081        [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
205082
205083        Reviewed by Tor Arne Vestbø.
205084
205085        The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
205086        so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
205087        changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
205088        unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
205089        therefore the target will always run.
205090
205091        * DerivedSources.pri:
205092
2050932012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
205094
205095        Unreviewed fix for ImageSourceCG.
205096
205097        * platform/graphics/cg/ImageSourceCG.cpp:
205098        (WebCore::ImageSource::reportMemoryUsage):
205099
2051002012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
205101
205102        Unreviewed fix for compilation on CG bots.
205103
205104        * platform/graphics/cg/ImageSourceCG.cpp:
205105
2051062012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
205107
205108        Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
205109        https://bugs.webkit.org/show_bug.cgi?id=99540
205110
205111        Reviewed by Yury Semikhatsky.
205112
205113        * platform/graphics/ImageSource.cpp:
205114        (WebCore::ImageSource::reportMemoryUsage):
205115        (WebCore):
205116        * platform/graphics/ImageSource.h:
205117        (ImageSource):
205118        * platform/image-decoders/ImageDecoder.cpp:
205119        (WebCore::ImageFrame::reportMemoryUsage):
205120        (WebCore):
205121        (WebCore::ImageDecoder::reportMemoryUsage):
205122        * platform/image-decoders/ImageDecoder.h:
205123        (ImageFrame):
205124        (ImageDecoder):
205125        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
205126        (WebCore::ImageFrame::reportMemoryUsage):
205127        (WebCore):
205128
2051292012-10-17  Zeno Albisser  <zeno@webkit.org>
205130
205131        [Qt] Fix build on Mac OSX 10.6 and earlier.
205132        https://bugs.webkit.org/show_bug.cgi?id=99595
205133
205134        Reviewed by Simon Hausmann.
205135
205136        * Target.pri:
205137
2051382012-10-17  Pavel Feldman  <pfeldman@chromium.org>
205139
205140        Web Inspector: display "disconnected" message when remote debugging terminates
205141        https://bugs.webkit.org/show_bug.cgi?id=99316
205142
205143        Reviewed by Yury Semikhatsky.
205144
205145        Otherwise, it is not clear that the front-end is no longer functional.
205146
205147        * inspector/front-end/InspectorFrontendHostStub.js:
205148        (WebInspector.RemoteDebuggingTerminatedScreen):
205149        * inspector/front-end/inspector.js:
205150        (WebInspector.loaded.WebInspector.socket.onclose):
205151        (WebInspector.loaded):
205152
2051532012-10-17  Yury Semikhatsky  <yurys@chromium.org>
205154
205155        Web Inspector: delete watch expression button overlaps with the expression value
205156        https://bugs.webkit.org/show_bug.cgi?id=99569
205157
205158        Reviewed by Vsevolod Vlasov.
205159
205160        Delete watch expression button now doesn't overlap with the watch expression.
205161
205162        * inspector/front-end/inspector.css:
205163        (.properties-tree.watch-expressions > li > .value):
205164
2051652012-10-17  Luke Macpherson   <macpherson@chromium.org>
205166
205167        Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
205168        https://bugs.webkit.org/show_bug.cgi?id=99536
205169
205170        Reviewed by Alexis Menard.
205171
205172        One small step towards removing the giant switch statement in StyleResolver,
205173        this patch moves pointer event property into StyleBuilder.
205174
205175        Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
205176
205177        * css/StyleBuilder.cpp:
205178        (WebCore::StyleBuilder::StyleBuilder):
205179        * css/StyleResolver.cpp:
205180        (WebCore::StyleResolver::applyProperty):
205181
2051822012-10-17  Keishi Hattori  <keishi@webkit.org>
205183
205184        Localized date should be based on LDML
205185        https://bugs.webkit.org/show_bug.cgi?id=99570
205186
205187        Reviewed by Kent Tamura.
205188
205189        Localized date should be based on LDML to match the format inside DateTimeEditElement.
205190
205191        No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
205192
205193        * platform/text/LocaleICU.cpp: Removed formatDateTime.
205194        * platform/text/LocaleICU.h:
205195        (LocaleICU):
205196        * platform/text/LocaleNone.cpp: Removed formatDateTime.
205197        (LocaleNone):
205198        * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
205199        (WebCore):
205200        * platform/text/LocaleWin.h:
205201        (LocaleWin):
205202        * platform/text/Localizer.cpp:
205203        (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
205204        (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
205205        * platform/text/Localizer.h:
205206        * platform/text/mac/LocaleMac.h:
205207        (LocaleMac):
205208        * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
205209
2052102012-10-17  Harald Alvestrand  <hta@google.com>
205211
205212        Implement the Selector argument to RTCPeerConnection.getStats
205213        https://bugs.webkit.org/show_bug.cgi?id=99460
205214
205215        Reviewed by Adam Barth.
205216
205217        The change adds two new parameters to the RTCStatsRequest object:
205218        stream and component. Together these are enough to identify a
205219        MediaStreamTrack.
205220
205221        Test: fast/mediastream/RTCPeerConnection-statsSelector.html
205222
205223        * Modules/mediastream/MediaStreamTrack.cpp:
205224        (WebCore::MediaStreamTrack::streamDescriptor):
205225        (WebCore):
205226        * Modules/mediastream/MediaStreamTrack.h:
205227        * Modules/mediastream/RTCPeerConnection.cpp:
205228        (WebCore::RTCPeerConnection::getStats):
205229        * Modules/mediastream/RTCStatsRequestImpl.cpp:
205230        (WebCore::RTCStatsRequestImpl::create):
205231        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
205232        (WebCore::RTCStatsRequestImpl::hasSelector):
205233        (WebCore):
205234        (WebCore::RTCStatsRequestImpl::stream):
205235        (WebCore::RTCStatsRequestImpl::component):
205236        * Modules/mediastream/RTCStatsRequestImpl.h:
205237        (RTCStatsRequestImpl):
205238        * platform/chromium/support/WebRTCStatsRequest.cpp:
205239        (WebKit):
205240        (WebKit::WebRTCStatsRequest::hasSelector):
205241        (WebKit::WebRTCStatsRequest::stream):
205242        (WebKit::WebRTCStatsRequest::component):
205243        * platform/mediastream/RTCStatsRequest.h:
205244        (WebCore):
205245        (RTCStatsRequest):
205246
2052472012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
205248
205249        [Qt] Enable use of more AllInOne files
205250        https://bugs.webkit.org/show_bug.cgi?id=99579
205251
205252        Reviewed by Tor Arne Vestbø.
205253
205254        The AllInOne files reduce pressure during final link time because the object files contain less duplicated
205255        symbols.
205256
205257        * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
205258        * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
205259        * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
205260        where the X headers get confused by the "Region" type that's also declared in WebCore.
205261        * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
205262        #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
205263
2052642012-10-17  Kent Tamura  <tkent@chromium.org>
205265
205266        REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
205267        https://bugs.webkit.org/show_bug.cgi?id=99572
205268
205269        Reviewed by Kentaro Hara.
205270
205271        We use flexible box since r131421, and it seems text baseline becomes
205272        incorrect if there are text nodes in a flex container.
205273
205274        Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
205275
205276        * css/html.css:
205277        (input::-webkit-datetime-edit-text): Added.
205278        * html/shadow/DateTimeEditElement.cpp:
205279        (WebCore::DateTimeEditBuilder::visitLiteral):
205280        Wrap text with an element with ::-webkit-datetime-edit-text.
205281
2052822012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
205283
205284        [WK2][EFL] Implementation of spellchecking feature.
205285        https://bugs.webkit.org/show_bug.cgi?id=91854
205286
205287        Reviewed by Gyuyoung Kim.
205288
205289        * PlatformEfl.cmake:
205290        Add enchant-related compiler flags: header paths and the library flag.
205291
2052922012-10-17  Alexander Pavlov  <apavlov@chromium.org>
205293
205294        Web Inspector: Avoid style updates when retrieving the inline stylesheet text
205295        https://bugs.webkit.org/show_bug.cgi?id=99576
205296
205297        Reviewed by Vsevolod Vlasov.
205298
205299        Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
205300
205301        * inspector/InspectorStyleSheet.cpp:
205302        (WebCore::InspectorStyleSheet::inlineStyleSheetText):
205303
2053042012-10-17  Patrick Gansterer  <paroga@webkit.org>
205305
205306        Build fix for WinCE after r131365.
205307
205308        * platform/graphics/GlyphBuffer.h:
205309        (WebCore::GlyphBufferAdvance::width):
205310        * platform/graphics/wince/FontWinCE.cpp:
205311        (WebCore::cursorToX):
205312        * platform/graphics/wince/GraphicsContextWinCE.cpp:
205313        (WebCore::GraphicsContext::drawText):
205314
2053152012-10-17  Mike West  <mkwst@chromium.org>
205316
205317        V8 should throw a more descriptive exception when blocking 'eval' via CSP.
205318        https://bugs.webkit.org/show_bug.cgi?id=94332
205319
205320        Reviewed by Adam Barth.
205321
205322        Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
205323        patch wires up the new error message mechanism to V8, and updates the
205324        Chromium test expectations accordingly.
205325
205326        * bindings/v8/ScriptController.cpp:
205327        (WebCore::ScriptController::disableEval):
205328            Pass 'errorMessage' through to V8.
205329        * bindings/v8/V8DOMWindowShell.cpp:
205330        (WebCore::V8DOMWindowShell::initializeIfNeeded):
205331            Grab the error message from ContentSecurityPolicy, and pass it
205332            through to V8.
205333        * bindings/v8/WorkerContextExecutionProxy.cpp:
205334        (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
205335        (WebCore::WorkerContextExecutionProxy::evaluate):
205336        (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
205337        * bindings/v8/WorkerContextExecutionProxy.h:
205338        (WorkerContextExecutionProxy):
205339            Convert 'm_disableEvalPending' to a string to store the current
205340            error message, and use it to set the eval state.
205341        * bindings/v8/WorkerScriptController.cpp:
205342        (WebCore::WorkerScriptController::disableEval):
205343            Pass 'errorMessage' through to V8.
205344
2053452012-10-17  MORITA Hajime  <morrita@google.com>
205346
205347        Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
205348        https://bugs.webkit.org/show_bug.cgi?id=99566
205349
205350        Reviewed by Kent Tamura.
205351
205352        It had a too optimistic assertion. This change removes it.
205353
205354        Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
205355
205356        * html/HTMLFormControlElement.cpp:
205357        (WebCore::updateFromElementCallback):
205358
2053592012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
205360
205361        Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
205362        https://bugs.webkit.org/show_bug.cgi?id=99555
205363
205364        Reviewed by Yury Semikhatsky.
205365
205366        Save As context menu handler now commits working copy for dirty UISourceCodes.
205367
205368        * inspector/front-end/HandlerRegistry.js:
205369
2053702012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
205371
205372        Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
205373        https://bugs.webkit.org/show_bug.cgi?id=99554
205374
205375        Reviewed by Yury Semikhatsky.
205376
205377        Moved saving to disk from SourceFrame to UISourceCode.
205378
205379        * inspector/front-end/SourceFrame.js:
205380        (WebInspector.SourceFrame.prototype._commitEditing):
205381        * inspector/front-end/UISourceCode.js:
205382        (WebInspector.UISourceCode.prototype._commitContent):
205383
2053842012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
205385
205386        Web Inspector: [Regression] SASS sources are not saved to disk.
205387        https://bugs.webkit.org/show_bug.cgi?id=99551
205388
205389        Reviewed by Yury Semikhatsky.
205390
205391        Added resource null checks.
205392
205393        * inspector/front-end/StylesSourceMapping.js:
205394        (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
205395
2053962012-10-17  Elliott Sprehn  <esprehn@chromium.org>
205397
205398        Clean up ContentData operator overloads
205399        https://bugs.webkit.org/show_bug.cgi?id=99556
205400
205401        Reviewed by Eric Seidel.
205402
205403        Use virtual dispatch for checking ContentData equality instead
205404        of a switch over the type. This the first step in getting rid
205405        of the StyleContentType enum and all the switch statements over
205406        the type().
205407
205408        No tests needed, this is just a refactor.        
205409
205410        * rendering/style/ContentData.cpp:
205411        * rendering/style/ContentData.h:
205412        (ContentData):
205413        (WebCore::operator==):
205414        (WebCore):
205415        (WebCore::operator!=):
205416
2054172012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
205418
205419        NEON intrinsics Gauss filter does not work properly
205420        https://bugs.webkit.org/show_bug.cgi?id=98875
205421
205422        Reviewed by Zoltan Herczeg.
205423
205424        Fixing the NEON intrinsics Gauss filter. The stride parameter
205425        was missing from the intrinsics algorithm. Tested with pixel
205426        checks, now it's working properly.
205427
205428        * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
205429        (WebCore::boxBlurNEON):
205430
2054312012-10-17  MORITA Hajime  <morrita@google.com>
205432
205433        Crash on Frame::inScope() part 2
205434        https://bugs.webkit.org/show_bug.cgi?id=99543
205435
205436        Reviewed by Kent Tamura.
205437
205438        FrameTree::scopedChildCount() can be called even when the one of child frames
205439        is in orphan state. This change added a guard for that case.
205440
205441        No new tests. A hard-to-test timing issue.
205442
205443        * page/Frame.cpp:
205444        (WebCore::Frame::inScope):
205445
2054462012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
205447
205448        Remove shadowAncestorNode() from VisibleSelection
205449        https://bugs.webkit.org/show_bug.cgi?id=99544
205450
205451        Reviewed by Hajime Morita.
205452
205453        An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
205454
205455        No new tests, no change in behavior.
205456
205457        * editing/VisibleSelection.cpp:
205458        (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
205459        an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
205460
2054612012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
205462
205463        Content of replaced elements should be trimmed to the content edge curve.
205464        https://bugs.webkit.org/show_bug.cgi?id=63899
205465
205466        Reviewed by Simon Fraser.
205467
205468        When a border-radius is specified the content of replaced elements needs to be clipped to avoid
205469        being painted over the padding or border in the corners. Previously the clip that was applied
205470        was set to the border-edge curve, this patch contracts the clip by the size of the border and
205471        padding (the content-edge curve) to match the css3 spec.
205472        Spec: http://www.w3.org/TR/css3-background/#corner-clipping
205473
205474        Test: fast/replaced/border-radius-clip-content-edge.html
205475
205476        * rendering/RenderBoxModelObject.h:
205477        (RenderBoxModelObject):
205478        * rendering/RenderReplaced.cpp:
205479        (WebCore::RenderReplaced::paint):
205480        * rendering/RenderWidget.cpp:
205481        (WebCore::RenderWidget::paint):
205482
2054832012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
205484
205485        The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
205486        https://bugs.webkit.org/show_bug.cgi?id=90539
205487
205488        Reviewed by Kent Tamura.
205489
205490        Fix a bug where form(action|enctype|method|target) attributes of <button> are not
205491        honored if the target of the click event is an element nested within the button.
205492
205493        Test: fast/forms/formaction-attribute.html
205494
205495        * loader/FormSubmission.cpp:
205496        (WebCore::FormSubmission::create): Looks for the attributes for form submission
205497        from the nearest FormControlElement ancestor of the event target.
205498
2054992012-10-16  MORITA Hajime  <morrita@google.com>
205500
205501        [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
205502        https://bugs.webkit.org/show_bug.cgi?id=99428
205503
205504        Reviewed by Adam Barth.
205505
205506        A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
205507        - Some properties are added per-context basis by turnin the flag on and
205508        - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
205509
205510        This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
205511
205512        * dom/ContextFeatures.cpp:
205513        * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
205514        * dom/Position.cpp:
205515        (WebCore::Position::Position):
205516        (WebCore::Position::findParent):
205517        * dom/TreeScope.cpp:
205518        (WebCore::TreeScope::getSelection):
205519        * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
205520        (defaultTagPropertyHash):
205521        (printConstructorInterior):
205522        (printFactoryCppFile):
205523        (printWrapperFunctions):
205524        (printWrapperFactoryCppFile):
205525        * html/HTMLTagNames.in:
205526        * html/shadow/HTMLContentElement.cpp:
205527        (WebCore::contentTagName):
205528        * page/DOMWindow.idl:
205529
2055302012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
205531
205532        Make RenderObject destruction during detach a top-down operation
205533        https://bugs.webkit.org/show_bug.cgi?id=98336
205534
205535        Reviewed by Eric Seidel.
205536
205537        detach() is a DOM-driven operation that destroys the renderers bottom-up.
205538        While this is correct, it causes extra-work to be done (tree cleaning, ...)
205539        as it doesn't know about the render tree's structure.
205540
205541        The render tree on the other side already supports top-down operations
205542        but it was overriden by the DOM side of detach.
205543
205544        This change only makes ContainerNode::detach do a top-down render tree
205545        destruction. This is a required step towards doing smarter destruction.
205546
205547        Refactoring covered by existing tests.
205548
205549        * dom/ContainerNode.cpp:
205550        (WebCore::ContainerNode::detach):
205551        Changed the method to do a top-down destruction.
205552
205553        * dom/Node.cpp:
205554        (WebCore::Node::detach):
205555        Added this ASSERT that ensures that we have properly cleaned up the
205556        whole DOM subtree. The only exception is child content belonging to a
205557        flow-thread as the code will shuffle the renderers under the flow-thread.
205558
205559        * rendering/RenderObject.cpp:
205560        (WebCore::RenderObject::willBeDestroyed):
205561        As we don't update the node's renderer on the DOM side, do it here.
205562        The upside is that it ensures that we don't left any stray renderer
205563        in the tree.
205564
205565        * rendering/RenderObjectChildList.cpp:
205566        (WebCore::RenderObjectChildList::destroyLeftoverChildren):
205567        Removed the calls to setRenderer as they are redundant with what we do
205568        in willBeDestroyed.
205569
205570        * rendering/RenderTextFragment.cpp:
205571        (WebCore::RenderTextFragment::setText):
205572        Removed some now unneeded code, replaced by an ASSERT. This is because
205573        destroying m_firstLetter would automatically reset the node's renderer
205574        in destroyLeftoverChildren.
205575
2055762012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
205577
205578        HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
205579        https://bugs.webkit.org/show_bug.cgi?id=99523
205580
205581        Reviewed by Simon Fraser.
205582
205583        There was a call site where the optionIndex was being passed to a
205584        function that expected the listIndex. Convert appropriately.
205585
205586        Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
205587
205588        * html/HTMLSelectElement.cpp:
205589        (WebCore::HTMLSelectElement::optionSelectedByUser):
205590
2055912012-10-16  Jian Li  <jianli@chromium.org>
205592
205593        Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
205594        https://bugs.webkit.org/show_bug.cgi?id=98975
205595
205596        Reviewed by Adam Barth.
205597
205598        Renaming is needed to better match with the draggable region code.
205599
205600        No new tests due to no functional change.
205601
205602        * Configurations/FeatureDefines.xcconfig:
205603        * DerivedSources.make:
205604        * WebCore.exp.in:
205605        * css/CSSComputedStyleDeclaration.cpp:
205606        (WebCore):
205607        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
205608        * css/CSSParser.cpp:
205609        (WebCore::CSSParser::parseValue):
205610        * css/CSSProperty.cpp:
205611        (WebCore::CSSProperty::isInheritedProperty):
205612        * css/CSSPropertyNames.in:
205613        * css/CSSValueKeywords.in:
205614        * css/StyleResolver.cpp:
205615        (WebCore::StyleResolver::applyProperty):
205616        * dom/Document.cpp:
205617        (WebCore::Document::Document):
205618        (WebCore):
205619        (WebCore::Document::reportMemoryUsage):
205620        * dom/Document.h:
205621        (WebCore):
205622        (Document):
205623        * page/Chrome.cpp:
205624        (WebCore):
205625        * page/ChromeClient.h:
205626        (ChromeClient):
205627        * page/FrameView.cpp:
205628        (WebCore::FrameView::layout):
205629        (WebCore):
205630        (WebCore::FrameView::paintContents):
205631        * page/FrameView.h:
205632        (FrameView):
205633        * rendering/RenderInline.cpp:
205634        (WebCore):
205635        (WebCore::RenderInline::addAnnotatedRegions):
205636        * rendering/RenderInline.h:
205637        (RenderInline):
205638        * rendering/RenderLayer.cpp:
205639        (WebCore::RenderLayer::scrollTo):
205640        (WebCore::RenderLayer::setHasHorizontalScrollbar):
205641        (WebCore::RenderLayer::setHasVerticalScrollbar):
205642        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
205643        * rendering/RenderListBox.cpp:
205644        (WebCore::RenderListBox::setHasVerticalScrollbar):
205645        * rendering/RenderObject.cpp:
205646        (WebCore::RenderObject::styleWillChange):
205647        (WebCore):
205648        (WebCore::RenderObject::addAnnotatedRegions):
205649        * rendering/RenderObject.h:
205650        (WebCore::AnnotatedRegionValue::operator==):
205651        (AnnotatedRegionValue):
205652        (RenderObject):
205653        * rendering/style/RenderStyle.h:
205654        * rendering/style/RenderStyleConstants.h:
205655        * rendering/style/StyleRareNonInheritedData.cpp:
205656        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
205657        (WebCore::StyleRareNonInheritedData::operator==):
205658        * rendering/style/StyleRareNonInheritedData.h:
205659        (StyleRareNonInheritedData):
205660
2056612012-10-16  James Simonsen  <simonjam@chromium.org>
205662
205663        [Page Visibility API] View-less documents should report as hidden
205664        https://bugs.webkit.org/show_bug.cgi?id=99410
205665
205666        Reviewed by Tony Gentilcore.
205667
205668        Test: fast/events/page-visibility-null-view.html
205669
205670        * dom/Document.cpp:
205671        (WebCore::Document::visibilityState):
205672
2056732012-10-16  Michael Saboff  <msaboff@apple.com>
205674
205675        Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
205676        https://bugs.webkit.org/show_bug.cgi?id=99484
205677
205678        Reviewed by Eric Seidel.
205679
205680        Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
205681
205682        No new tests.  Changed macro name, no functional change.
205683
205684        * platform/graphics/TextRun.h:
205685        (WebCore::TextRun::TextRun):
205686        (WebCore::TextRun::subRun):
205687        * rendering/RenderBlock.cpp:
205688        (WebCore::RenderBlock::constructTextRun):
205689        * rendering/RenderBlock.h:
205690        (RenderBlock):
205691
2056922012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
205693
205694        [Qt] REGRESSION(r131485): It broke the build
205695        https://bugs.webkit.org/show_bug.cgi?id=99499
205696
205697        Unreviewed build (warning) fix.
205698
205699        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
205700        (WebCore::TextureMapperShaderProgram::getLocation):
205701
2057022012-10-16  David Grogan  <dgrogan@chromium.org>
205703
205704        Inspector: Don't fire assert when inspecting an empty db
205705        https://bugs.webkit.org/show_bug.cgi?id=99370
205706
205707        Reviewed by Vsevolod Vlasov.
205708
205709        * inspector/InspectorIndexedDBAgent.cpp:
205710        (WebCore):
205711
2057122012-10-16  Tony Chang  <tony@chromium.org>
205713
205714        Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
205715
205716        * rendering/RenderingAllInOne.cpp:
205717
2057182012-10-16  Andrew Scherkus  <scherkus@chromium.org>
205719
205720        Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
205721        https://bugs.webkit.org/show_bug.cgi?id=97951
205722
205723        Reviewed by Simon Fraser.
205724
205725        No new tests as it's a speculative fix based on crash dump analysis.
205726     
205727        Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
205728
205729        * html/shadow/MediaControlElements.cpp:
205730        (WebCore::MediaControlPanelElement::makeTransparent):
205731
2057322012-10-16  Emil A Eklund  <eae@chromium.org>
205733
205734        Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
205735        https://bugs.webkit.org/show_bug.cgi?id=99376
205736
205737        Reviewed by Levi Weintraub.
205738
205739        In r122769 (bug 91410) we added a special-case handling for
205740        replaced elements in InlineFlowBox::placeBoxesInBlockDirection
205741        to work around positioning issues in a couple of svg tests.
205742        This was needed to compensate for a workaround in the table
205743        painting code that was fixed in r131358 (bug 99364). As such the
205744        special-case handling for replaced elements is no longer needed
205745        in InlineFlowBox::placeBoxesInBlockDirection.
205746
205747        Furthermore this caused problems with caret repainting leaving
205748        residual pixels which motivated this change.
205749
205750        No new tests, have not been able to write a repaint test to
205751        demonstrate the caret repaint issue.
205752
205753        * rendering/InlineFlowBox.cpp:
205754        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
205755
2057562012-10-16  Simon Fraser  <simon.fraser@apple.com>
205757
205758        Some #include hygiene
205759        https://bugs.webkit.org/show_bug.cgi?id=99500
205760
205761        Reviewed by Tony Chang.
205762
205763        Clean up some #includes, mostly related to GraphicsLayer.h. In many
205764        cases this can be replaced by PlatformLayer.h.
205765        
205766        Remove an #include of PluginViewBase.h from Page.h, which was a source
205767        of #include fan-out.
205768
205769        * html/canvas/CanvasRenderingContext2D.h:
205770        * page/Page.h:
205771        * page/scrolling/ScrollingCoordinator.h:
205772        * page/scrolling/ScrollingStateNode.h:
205773        * page/scrolling/mac/ScrollingStateNodeMac.mm:
205774        * platform/graphics/GraphicsContext3D.h:
205775        * platform/graphics/MediaPlayer.h:
205776        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
205777        * platform/graphics/gpu/DrawingBuffer.h:
205778        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
205779        * plugins/PluginViewBase.h:
205780
2057812012-10-16  Adam Barth  <abarth@webkit.org>
205782
205783        Document::adoptNode shouldn't special-case <iframe>
205784        https://bugs.webkit.org/show_bug.cgi?id=99247
205785
205786        Reviewed by Ryosuke Niwa.
205787
205788        The special case was added in http://trac.webkit.org/changeset/75293 to
205789        fix a bug with magic iframes. Originally, I planned to remove this
205790        special case, but further investigation reveals that other browsers
205791        throw exceptions for other frame owner elements as well. Now we treat
205792        all frame owner elements the same way.
205793
205794        Test: fast/frames/adopt-object-into-itself.html
205795
205796        * dom/Document.cpp:
205797        (WebCore::Document::adoptNode):
205798
2057992012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
205800
205801        Init timeout flag in ResourceErrorMac
205802        https://bugs.webkit.org/show_bug.cgi?id=99478
205803
205804        Reviewed by Alexey Proskuryakov.
205805
205806        On construction from platform error types, initialize the timeout flag 
205807        to true if the error results from a timeout.
205808
205809        No new tests, covered by tests that will be added in bug 74802.
205810
205811        * platform/network/mac/ResourceErrorMac.mm:
205812        (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
205813
2058142012-10-16  Tony Chang  <tony@chromium.org>
205815
205816        input[type=range] as a flex item renders thumb at wrong position
205817        https://bugs.webkit.org/show_bug.cgi?id=98666
205818
205819        Reviewed by Ojan Vafai.
205820
205821        Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
205822        The previous code was trying to set the height to 100% and had a bunch of hacks in
205823        the renderer code to set an explicit height. Using the new flexbox allows us to
205824        remove these renderer hacks.
205825
205826        Test: css3/flexbox/flexitem-stretch-range.html
205827
205828        * css/html.css:
205829        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
205830        (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
205831        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
205832        no longer setting top/left in the layout code.
205833        * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
205834        * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
205835        * html/RangeInputType.cpp:
205836        (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
205837        since the height of the control should change when adding/removing a datalist.
205838        * html/shadow/SliderThumbElement.cpp:
205839        (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
205840        (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
205841        height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
205842        we use the intrinsic size.
205843        (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
205844        This used to be handled in the thumb's layout method, but I deleted that.
205845        * html/shadow/SliderThumbElement.h:
205846        * rendering/RenderSlider.cpp:
205847        (WebCore::RenderSlider::RenderSlider): Use new flexbox.
205848        (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
205849        for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
205850        and expects the input to also have a height of 1px.  It worked before because the height of the input
205851        didn't depend on the height of its children.
205852        * rendering/RenderSlider.h: Fix indentation.
205853        (RenderSlider): Use new flexible box.
205854
2058552012-10-16  Dima Gorbik  <dgorbik@apple.com>
205856
205857        Remove Platform.h include from the header files.
205858        https://bugs.webkit.org/show_bug.cgi?id=98665
205859
205860        Reviewed by Eric Seidel.
205861
205862        We don't want other clients that include WebKit headers to know about Platform.h.
205863
205864        No new tests.
205865
205866        * platform/MemoryPressureHandler.h:
205867        * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
205868        * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
205869        * platform/graphics/filters/arm/FELightingNEON.h:
205870
2058712012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
205872
205873        [Chromium] Android: Need a way to get appropriate font for some specific characters.
205874        https://bugs.webkit.org/show_bug.cgi?id=67587
205875
205876        Reviewed by Adam Barth.
205877
205878        Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
205879
205880        No new tests. The following existing tests pass with the change:
205881        fast/writing-mode/vertical-subst-font-vert-no-dflt.html
205882        fast/dynamic/text-combine.html
205883        fast/writing-mode/japanese-rl-text.html
205884        fast/writing-mode/japanese-rl-selection.html
205885        fast/writing-mode/japanese-lr-text.html
205886        fast/repaint/japanese-rl-selection-repaint.html
205887        fast/writing-mode/border-vertical-lr.html
205888
205889        * platform/graphics/chromium/FontCacheAndroid.cpp:
205890        (WebCore::FontCache::getFontDataForCharacters):
205891
2058922012-10-16  Tommy Widenflycht  <tommyw@google.com>
205893
205894        MediaStream API: Add the chromium API for RTCDataChannel
205895        https://bugs.webkit.org/show_bug.cgi?id=99435
205896
205897        Reviewed by Adam Barth.
205898
205899        Adding WebRTCDataChannel.
205900
205901        Test: fast/mediastream/RTCPeerConnection-datachannel.html
205902
205903        * WebCore.gypi:
205904        * platform/chromium/support/WebRTCDataChannel.cpp: Added.
205905        (WebKit):
205906        (ExtraDataContainer):
205907        (WebKit::ExtraDataContainer::ExtraDataContainer):
205908        (WebKit::ExtraDataContainer::extraData):
205909        (WebKit::WebRTCDataChannel::WebRTCDataChannel):
205910        (WebKit::WebRTCDataChannel::initialize):
205911        (WebKit::WebRTCDataChannel::assign):
205912        (WebKit::WebRTCDataChannel::reset):
205913        (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
205914        (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
205915        (WebKit::WebRTCDataChannel::extraData):
205916        (WebKit::WebRTCDataChannel::setExtraData):
205917        (WebKit::WebRTCDataChannel::label):
205918        (WebKit::WebRTCDataChannel::reliable):
205919        (WebKit::WebRTCDataChannel::setBufferedAmount):
205920        (WebKit::WebRTCDataChannel::readyStateChanged):
205921        (WebKit::WebRTCDataChannel::dataArrived):
205922        (WebKit::WebRTCDataChannel::error):
205923        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
205924        (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
205925        (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
205926        (WebCore):
205927        (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
205928        (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
205929        (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
205930
2059312012-10-16  Brady Eidson  <beidson@apple.com>
205932
205933        Update indentation in *ResourceLoader headers to match modern WebKit style
205934        https://bugs.webkit.org/show_bug.cgi?id=99487
205935
205936        Reviewed by Beth Dakin.
205937
205938        I'm going to be working on these classes and the indentation is driving me crazy.
205939
205940        * loader/MainResourceLoader.h:
205941        (WebCore):
205942        (MainResourceLoader):
205943        (WebCore::MainResourceLoader::isLoadingMultipartContent):
205944
205945        * loader/NetscapePlugInStreamLoader.h:
205946        (WebCore):
205947        (NetscapePlugInStreamLoaderClient):
205948        (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
205949        (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
205950        (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
205951        (NetscapePlugInStreamLoader):
205952
205953        * loader/ResourceLoader.h:
205954        (WebCore):
205955        (ResourceLoader):
205956        (WebCore::ResourceLoader::documentLoader):
205957        (WebCore::ResourceLoader::originalRequest):
205958        (WebCore::ResourceLoader::identifier):
205959        (WebCore::ResourceLoader::didReceiveCachedMetadata):
205960        (WebCore::ResourceLoader::willStopBufferingData):
205961        (WebCore::ResourceLoader::shouldUseCredentialStorage):
205962        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
205963        (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
205964        (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
205965        (WebCore::ResourceLoader::receivedCancellation):
205966        (WebCore::ResourceLoader::url):
205967        (WebCore::ResourceLoader::handle):
205968        (WebCore::ResourceLoader::sendResourceLoadCallbacks):
205969        (WebCore::ResourceLoader::reachedTerminalState):
205970        (WebCore::ResourceLoader::request):
205971        (WebCore::ResourceLoader::cancelled):
205972        (WebCore::ResourceLoader::defersLoading):
205973
2059742012-10-16  Beth Dakin  <bdakin@apple.com>
205975
205976        https://bugs.webkit.org/show_bug.cgi?id=99254
205977        Make ScrollingTree an actual tree of nodes, and have it reflect the 
205978        ScrollingStateTree
205979
205980        Reviewed by Simon Fraser.
205981
205982        This patch finally makes the ScrollingTree over on the 
205983        ScrollingThread aware of the changes that we have been making to the 
205984        ScrollingStateTree.
205985
205986        First, it makes ScrollingTreeNode a much more generic class, similar 
205987        to ScrollingStateNode. It is an abstract class and we will add other 
205988        types of nodes such as ScrollingTreeFixedNodes that will inherit from 
205989        this class. 
205990
205991        All of the scrolling functionality that was in ScrollingTreeNode has 
205992        been moved to ScrollingTreeScrollingNode. And likewise, 
205993        ScrollingTreeNodeMac has been re-named to 
205994        ScrollingTreeScrollingNodeMac. 
205995
205996        And finally, instead of just updating and creating the root node, 
205997        ScrollingTree now recurses through the whole ScrollingStateTree to 
205998        create and update a full tree of nodes.
205999
206000        New files and moves files.
206001        * WebCore.xcodeproj/project.pbxproj:
206002
206003        Add a getter for the children vector since we need to recurse it in 
206004        ScrollingTree.
206005        * page/scrolling/ScrollingStateNode.h:
206006        (WebCore::ScrollingStateNode::children):
206007        (ScrollingStateNode):
206008
206009        m_rootNode is now a ScrollingTreeScrollingNode.
206010        * page/scrolling/ScrollingTree.cpp:
206011        (WebCore::ScrollingTree::ScrollingTree):
206012
206013        Instead of just updating the root node, call two new functions that 
206014        will take care of updating the whole tree.
206015        (WebCore::ScrollingTree::commitNewTreeState):
206016
206017        This function ecurses through the ScrollingStateTree and updates the 
206018        corresponding ScrollingTreeNodes.
206019        (WebCore::ScrollingTree::updateNodesFromStateNode):
206020
206021        This function takes the ScrollingStateTree's list of removed nodes 
206022        and removes the corresponding nodes from the ScrollingTree. It will 
206023        destroy the nodes after removing it as long as it's not the root 
206024        node. I think it's the safest choice for now to never remove the root 
206025        node. 
206026        (WebCore::ScrollingTree::removeDestroyedNodes):
206027
206028        ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
206029        ScrollingTreeNodes.
206030        * page/scrolling/ScrollingTree.h:
206031
206032        All of the scrolling-related functionality has been moved from this 
206033        class to new class ScrollingTreeScrollingNode. And some basic tree 
206034        traversal functionality has been added.
206035        * page/scrolling/ScrollingTreeNode.cpp:
206036        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
206037        (WebCore::ScrollingTreeNode::appendChild):
206038        (WebCore::ScrollingTreeNode::removeChild):
206039        * page/scrolling/ScrollingTreeNode.h:
206040        (WebCore):
206041        (ScrollingTreeNode):
206042        (WebCore::ScrollingTreeNode::scrollingNodeID):
206043        (WebCore::ScrollingTreeNode::setScrollingNodeID):
206044        (WebCore::ScrollingTreeNode::parent):
206045        (WebCore::ScrollingTreeNode::setParent):
206046        (WebCore::ScrollingTreeNode::scrollingTree):
206047
206048        This class contains all of the scrolling-related work that used to be 
206049        done in ScrollingTreeNode.
206050        * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
206051        (WebCore):
206052        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
206053        (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
206054        (WebCore::ScrollingTreeScrollingNode::update):
206055        * page/scrolling/ScrollingTreeScrollingNode.h: Added.
206056        (WebCore):
206057        (ScrollingTreeScrollingNode):
206058        (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
206059        (WebCore::ScrollingTreeScrollingNode::viewportRect):
206060        (WebCore::ScrollingTreeScrollingNode::contentsSize):
206061        (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
206062        (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
206063        (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
206064        (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
206065        (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
206066        (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
206067
206068        I noticed this whitespace error and had to fix it.
206069        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
206070        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
206071
206072        Include ScrollingTreeScrollingNodeMac.h instead of 
206073        ScrollingTreeNodeMac.h
206074        * page/scrolling/mac/ScrollingTreeMac.mm:
206075
206076        This class was just re-named.
206077        * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
206078        * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
206079        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
206080        (ScrollingTreeScrollingNodeMac):
206081        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
206082        (WebCore::ScrollingTreeScrollingNode::create):
206083        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
206084        (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
206085        (WebCore::ScrollingTreeScrollingNodeMac::update):
206086        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
206087        (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
206088        (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
206089        (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
206090        (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
206091        (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
206092        (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
206093        (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
206094        (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
206095        (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
206096        (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
206097        (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
206098        (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
206099        (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
206100        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
206101        (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
206102        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
206103        (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
206104        (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
206105        (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
206106        (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
206107        (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
206108        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
206109
2061102012-10-16  Simon Fraser  <simon.fraser@apple.com>
206111
206112        Add a new layer type for the page tiled cache layer
206113        https://bugs.webkit.org/show_bug.cgi?id=99491
206114
206115        Reviewed by Dean Jackson.
206116
206117        In preparation for using tile cache layers in place of CATiledLayer,
206118        add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
206119        since the page tile cache will have some different behavior from
206120        other tile cache layers.
206121        
206122        Generalize code that was looking at LayerTypeTileCacheLayer to use
206123        usesTileCacheLayer() if it applies to both types of tile caches.
206124
206125        * platform/graphics/ca/GraphicsLayerCA.cpp:
206126        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
206127        (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
206128        wash for tiled layers as well as layers with transforms (the tile
206129        wash is just for debugging).
206130        (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
206131        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
206132        * platform/graphics/ca/PlatformCALayer.h:
206133        (WebCore::PlatformCALayer::usesTileCacheLayer):
206134        (PlatformCALayer):
206135        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
206136        (PlatformCALayer::PlatformCALayer):
206137        (PlatformCALayer::~PlatformCALayer):
206138        (PlatformCALayer::tiledBacking):
206139        * platform/graphics/mac/WebLayer.mm:
206140        (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
206141
2061422012-10-16  Stephen Chenney  <schenney@chromium.org> 
206143        An feImage that tries to render itself should be stopped
206144        https://bugs.webkit.org/show_bug.cgi?id=94652
206145
206146        Reviewed by Eric Seidel.
206147
206148        An SVG feImage filter element will accept, as the src to render, an
206149        SVG document that makes use of the feImage itself. This causes the
206150        feImage to try to draw itself while already in the process of drawing
206151        itself. Various problems arise from this. The invariant we wish to
206152        maintain is that no element in the src tree of an feImage element
206153        refers to that feImage.
206154
206155        This patch adds a flag to all FilterData objects that tracks whether or
206156        not the filter is currently applying itself, and avoids applying the
206157        filter recursively.
206158
206159        While it may seem better to catch this problem when the src is set, or
206160        when the filter is built, that turns out to be challenging and
206161        inefficient. Say we choose to test when the src atttribute is set. To
206162        do so would require looking through all of the DOM nodes that will be
206163        rendered for the src, finding all resources used, and checking if any
206164        of them make use fo the feImage element that we are setting the source
206165        for. The infrastructure is not in place to do that, and it would
206166        involve walking a potentially very large portion of the DOM in order
206167        to detect a very rare situation. Note that it is not enough just to
206168        walk the DOM directly under the src; we also need to recursively follow any
206169        resource links to see if they use the feImage (e.g. patterns or
206170        masks or use or ...).
206171
206172        If we instead try to use the renderer node to find self referencing,
206173        we need to recursively walk a potentially very large render tree,
206174        tracing all resources in search of the feImage. This would need to be
206175        done every time the filter is built, which is again a significant
206176        overhead for a situation that is very unlikely to occur. And we do not
206177        have methods that make it easy to find feImage filter effect nodes; they are
206178        hidden behind filter resource nodes.
206179
206180        Hence the runtime check to catch the problem. The check must be in
206181        FilterData and RenderSVGResourceFilter code because we must prevent
206182        the destruction of the feImage when we encounter it recursively.
206183
206184        This patch also renames FilterData::builded to FilterData::isBuilt.
206185
206186        Test: svg/filters/feImage-self-referencing.html
206187
206188        * rendering/svg/RenderSVGResourceFilter.cpp:
206189        (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
206190        clear the isApplying flag even if the postApplyResource method returns early.
206191        (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
206192        rename builded to isBuilt.
206193        (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
206194        it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
206195        (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
206196        * rendering/svg/RenderSVGResourceFilter.h:
206197        (WebCore::FilterData::FilterData):
206198        (FilterData): Add isApplying and rename builded to isBuilt.
206199
2062002012-10-16  Nate Chapin  <japhet@chromium.org>
206201
206202        sendResourceLoadCallbacks() is poorly named
206203        https://bugs.webkit.org/show_bug.cgi?id=99482
206204
206205        Reviewed by Alexey Proskuryakov.
206206
206207        In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
206208        to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
206209
206210        No new tests, simple renaming.
206211
206212        * loader/FrameLoader.cpp:
206213        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
206214        * loader/ResourceLoader.h:
206215        (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
206216        * loader/cache/CachedResource.h:
206217        (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
206218
2062192012-10-16  Chris Rogers  <crogers@google.com>
206220
206221        Rename some AudioNodes
206222        https://bugs.webkit.org/show_bug.cgi?id=99358
206223
206224        Reviewed by Daniel Bates.
206225
206226        Here's a list of the node names, showing the changing ones:
206227            AudioBufferSourceNode
206228            MediaElementAudioSourceNode
206229            MediaStreamAudioSourceNode
206230            JavaScriptAudioNode ------------> ScriptProcessorNode
206231            RealtimeAnalyserNode ------------> AnalyserNode
206232            AudioGainNode ------------> GainNode
206233            DelayNode
206234            BiquadFilterNode
206235            AudioPannerNode ------------> PannerNode
206236            ConvolverNode
206237            AudioChannelSplitter ------------> ChannelSplitterNode
206238            AudioChannelMerger ------------> ChannelMergerNode
206239            DynamicsCompressorNode
206240            Oscillator ------------> OscillatorNode
206241
206242        * CMakeLists.txt:
206243        * DerivedSources.make:
206244        * DerivedSources.pri:
206245        * GNUmakefile.list.am:
206246        * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
206247        * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
206248        * Modules/webaudio/AudioBufferSourceNode.cpp:
206249        (WebCore::AudioBufferSourceNode::setPannerNode):
206250        * Modules/webaudio/AudioBufferSourceNode.h:
206251        (AudioBufferSourceNode):
206252        * Modules/webaudio/AudioContext.cpp:
206253        (WebCore::AudioContext::createJavaScriptNode):
206254        (WebCore::AudioContext::createPanner):
206255        (WebCore::AudioContext::createAnalyser):
206256        (WebCore::AudioContext::createGainNode):
206257        (WebCore::AudioContext::createChannelSplitter):
206258        (WebCore::AudioContext::createChannelMerger):
206259        (WebCore::AudioContext::createOscillator):
206260        * Modules/webaudio/AudioContext.h:
206261        (WebCore):
206262        (AudioContext):
206263        * Modules/webaudio/AudioContext.idl:
206264        * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
206265        * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
206266        (WebCore):
206267        (ChannelMergerNode):
206268        * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
206269        * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
206270        * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
206271        (WebCore):
206272        (ChannelSplitterNode):
206273        * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
206274        * Modules/webaudio/DOMWindowWebAudio.idl:
206275        * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
206276        * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
206277        * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
206278        * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
206279        * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
206280        * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
206281        * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
206282        * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
206283        (WebCore):
206284        * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
206285        * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
206286        * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
206287        (WebCore):
206288        * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
206289        * Modules/webaudio/WaveTable.cpp:
206290        (WebCore::WaveTable::createSine):
206291        (WebCore::WaveTable::createSquare):
206292        (WebCore::WaveTable::createSawtooth):
206293        (WebCore::WaveTable::createTriangle):
206294        (WebCore::WaveTable::generateBasicWaveform):
206295        * Target.pri:
206296        * UseJSC.cmake:
206297        * WebCore.gypi:
206298        * WebCore.xcodeproj/project.pbxproj:
206299        * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
206300        (WebCore):
206301        (WebCore::JSScriptProcessorNode::visitChildren):
206302        * dom/EventTarget.h:
206303        (WebCore):
206304        * dom/EventTargetFactory.in:
206305
2063062012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
206307
206308        [Texmap] Refactor TextureMapperShaderManager to be clearer
206309        https://bugs.webkit.org/show_bug.cgi?id=86048
206310
206311        Reviewed by Martin Robinson.
206312
206313        Previous implementation of TextureMapperShaderManager was very verbose, calling for too
206314        many casts and ambiguous ownership.
206315        This refactor does the following:
206316        1. TextureMapperShaderProgram is one class without subclasses.
206317        2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
206318           generate both the C++ access function, as well as the GLSL name of the variable. This
206319           allows adding/removing variables from a shader without adding broiler-plate code like
206320           before.
206321
206322        After this change TextureMapperShaderManager has only one responsibility - dealing with
206323        TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
206324        in TextureMapperGL.
206325
206326        This is a refactor without new functionality. It has been verified to not break any existing
206327        relevant test.
206328
206329        * platform/graphics/texmap/TextureMapperGL.cpp:
206330        (WebCore::TextureMapperGL::drawBorder):
206331        (WebCore::TextureMapperGL::drawQuad):
206332        (WebCore::TextureMapperGL::drawTextureRectangleARB):
206333        (WebCore::TextureMapperGL::drawTexture):
206334        (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
206335        (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
206336        (WebCore::TextureMapperGL::beginClip):
206337            Use the MACRO-generated uniform accessors.
206338
206339        (WebCore):
206340        (WebCore::keyForFilterType):
206341        (WebCore::getPassesRequiredForFilter):
206342        (WebCore::gauss):
206343        (WebCore::gaussianKernel):
206344        (WebCore::prepareFilterProgram):
206345        (WebCore::TextureMapperGL::drawFiltered):
206346        (WebCore::BitmapTextureGL::applyFilters):
206347            Move the filter logic to TextureMapperGL
206348
206349        * platform/graphics/texmap/TextureMapperShaderManager.cpp:
206350        (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
206351        (WebCore::TextureMapperShaderProgram::getLocation):
206352        (ShaderSpec):
206353        (WebCore::ShaderSpec::ShaderSpec):
206354        (WebCore::getShaderSpec):
206355        (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
206356        (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
206357        (WebCore::TextureMapperShaderManager::getShaderProgram):
206358        * platform/graphics/texmap/TextureMapperShaderManager.h:
206359        (WebCore):
206360        (WebCore::TextureMapperShaderProgram::programID):
206361        (WebCore::TextureMapperShaderProgram::context):
206362        (WebCore::TextureMapperShaderProgram::create):
206363        (TextureMapperShaderProgram):
206364        (TextureMapperShaderManager):
206365            See description.
206366
2063672012-10-16  Nico Weber  <thakis@chromium.org>
206368
206369        [chromium/mac] Make spelling indicator HighDPI
206370        https://bugs.webkit.org/show_bug.cgi?id=99417
206371
206372        Reviewed by Stephen White.
206373
206374        This is the mac version of http://trac.webkit.org/changeset/130940
206375        Since the mac and non-mac code are very similar again, merge the two
206376        code paths again.
206377
206378        Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
206379
206380        * platform/graphics/skia/GraphicsContextSkia.cpp:
206381        (WebCore::GraphicsContext::drawLineForDocumentMarker):
206382
2063832012-10-16  Tony Chang  <tony@chromium.org>
206384
206385        in a column flexbox, input overflows the box when stretched
206386        https://bugs.webkit.org/show_bug.cgi?id=99273
206387
206388        Reviewed by Ojan Vafai.
206389
206390        Fix a bug where we didn't properly subtract padding and border when overriding the child size.
206391        We didn't see this because of a performance optimization in RenderBox where we stretch children.
206392        Also apply this performance optimization in new flexbox for form controls.
206393
206394        Test: css3/flexbox/stretch-input-in-column.html
206395
206396        * rendering/RenderBox.cpp:
206397        (WebCore::flexboxChildHasStretchAlignment):
206398        (WebCore::isStretchingVerticalFlexboxChild):
206399        (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
206400        * rendering/RenderFlexibleBox.cpp:
206401        (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
206402
2064032012-10-16  Simon Fraser  <simon.fraser@apple.com>
206404
206405        REGRESSION (r128787): Fixed position div causes other elements to not update correctly
206406        https://bugs.webkit.org/show_bug.cgi?id=98579
206407
206408        Reviewed by Beth Dakin.
206409
206410        RenderLayers cache repaint rects which are computed relative to the repaint container.
206411        Repaint containers depend on whether a RenderLayerBacking has its own backing store,
206412        so if that changes, we need to recompute repaint rects for all descendants.
206413        
206414        Test: compositing/repaint/requires-backing-repaint.html
206415
206416        * rendering/RenderLayerBacking.cpp:
206417        (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
206418
2064192012-10-16  Zan Dobersek  <zandobersek@gmail.com>
206420
206421        [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
206422        https://bugs.webkit.org/show_bug.cgi?id=95833
206423
206424        Reviewed by Philippe Normand.
206425
206426        The render bus used in GStreamer's implementation of AudioDestination no longer
206427        allocates memory for each of its channels. Rather than that, when looping, the
206428        data is rendered into a channel-specific GstBuffer. Each buffer is then chained
206429        to the appropriate GstPad, as has been the case before.
206430
206431        No new tests - there are tests covering this change but they are not yet working
206432        on the GTK port or any other GStreamer implementation of Web Audio.
206433
206434        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
206435        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
206436        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
206437        (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
206438        (webkit_web_audio_src_init): Remove an unnecessary line.
206439        (webKitWebAudioSrcConstructed): Ditto.
206440        (webKitWebAudioSrcLoop):
206441
2064422012-10-16  Pablo Flouret  <pablof@motorola.com>
206443
206444        Pre-process CSSGrammar.y before running through bison.
206445        https://bugs.webkit.org/show_bug.cgi?id=94290
206446
206447        Reviewed by Tony Chang.
206448
206449        Running CSSGrammar.y through a preprocessor allows the use of feature
206450        defines in all places of the yacc file (i.e. not just in C blocks).
206451        Mostly useful to be able to keep every part of a feature under feature
206452        flags for self-documenting purposes.
206453
206454        No new tests, CSSGrammar.y should be generated correctly and everything
206455        should keep working as before.
206456
206457        * CMakeLists.txt:
206458        * DerivedSources.make:
206459        * DerivedSources.pri:
206460        * GNUmakefile.am:
206461            Modify build systems to use makegrammar.pl to generate the .y files
206462            and run those through bison.
206463
206464        * WebCore.gyp/WebCore.gyp:
206465            Add a new action to preprocess the CSSGrammar.y.in file before the
206466            bison rule is run.
206467
206468        * WebCore.vcproj/WebCore.vcproj:
206469        * WebCore.xcodeproj/project.pbxproj:
206470            Add the new .y.in / .y.includes files.
206471
206472        * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
206473            Also moved the top declarations section that has includes, defines,
206474            etc. to its own file. These shouldn't be touched by the first
206475            pass of the preprocessor. And changed the existing ENABLE(FEATURE)
206476            ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
206477            yet.
206478        * css/CSSGrammar.y.includes: Added.
206479            The aforementioned declarations header section. After the .y.in file
206480            is processed it will be concatenated with this one to make the
206481            CSSGrammar.y file.
206482
206483        * css/makegrammar.pl:
206484            Modify the script to handle .y.in files.
206485
2064862012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
206487
206488        Implement testRunner.dumpSelectionRect() in WebKitTestRunner
206489        https://bugs.webkit.org/show_bug.cgi?id=69545
206490
206491        Reviewed by Simon Fraser.
206492
206493        * WebCore.exp.in:
206494
2064952012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
206496
206497        [Qt] Implement fastBoundingPath/boundingPath distinction.
206498        https://bugs.webkit.org/show_bug.cgi?id=99471
206499
206500        Reviewed by Noam Rosenthal.
206501
206502        Tested by existing test: svg/custom/getBBox-path.svg
206503
206504        * platform/graphics/Path.cpp:
206505        * platform/graphics/qt/PathQt.cpp:
206506        (WebCore::Path::fastBoundingRect):
206507        (WebCore::Path::boundingRect):
206508
2065092012-10-16  Rob Buis  <rbuis@rim.com>
206510
206511        [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
206512        https://bugs.webkit.org/show_bug.cgi?id=99302
206513
206514        Reviewed by Yong Li.
206515
206516        Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
206517
206518        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
206519        (WebCore::GraphicsContext3D::compileShader):
206520
2065212012-10-16  Antoine Quint  <graouts@apple.com>
206522
206523        Inspector should allow reading the compositing debug settings
206524        https://bugs.webkit.org/show_bug.cgi?id=99458
206525
206526        Reviewed by Timothy Hatcher.
206527
206528        * inspector/Inspector.json:
206529        * inspector/InspectorPageAgent.cpp:
206530        (WebCore::InspectorPageAgent::getCompositingBordersVisible):
206531        * inspector/InspectorPageAgent.h:
206532
2065332012-10-16  Dan Bernstein  <mitz@apple.com>
206534
206535        Code to reverse a GlyphBuffer range is repeated in several places
206536        https://bugs.webkit.org/show_bug.cgi?id=99424
206537
206538        Reviewed by Adele Peterson.
206539
206540        * platform/graphics/FontFastPath.cpp:
206541        (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
206542        GlyphBuffer::reverse.
206543        * platform/graphics/GlyphBuffer.h:
206544        (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
206545        (WebCore::GlyphBuffer::swap): Made private.
206546        * platform/graphics/WidthIterator.cpp:
206547        (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
206548        corrected their bounds.
206549        * platform/graphics/mac/FontComplexTextMac.cpp:
206550        (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
206551        GlyphBuffer::range.
206552
2065532012-10-16  Nate Chapin  <japhet@chromium.org>
206554
206555        Re-order CachedRawResource::data() to set m_data earlier
206556        https://bugs.webkit.org/show_bug.cgi?id=99361
206557
206558        Reviewed by Adam Barth.
206559
206560        Currently, we calculate the diff between the data parameter and m_data, call
206561        dataReceived(), then set m_data to data. If something inside dataReceived()
206562        tries to access m_data via CachedResource::resourceBuffer(), it will see the
206563        old data instead of the new data, which seems inconsistent.
206564
206565        No new tests, as no one appears to try to access m_data within dataReceived() currently.
206566
206567        * loader/cache/CachedRawResource.cpp:
206568        (WebCore::CachedRawResource::data):
206569
2065702012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
206571
206572        Fold setCellLogicalWidths logic into RenderTableSection layout
206573        https://bugs.webkit.org/show_bug.cgi?id=99382
206574
206575        Reviewed by Eric Seidel.
206576
206577        setCellLogicalWidths was implemented as a pre-phase to laying out
206578        the table's sections. This split was artificial as any change in
206579        the columns' logical width should trigger a sections' relayout, which
206580        could propagate and mark the cells / rows as needed.
206581
206582        Merging setCellLogicalWidths into RenderTableSection::layout removes
206583        an unneeded cells walking and some clunkiness from our implementation.
206584
206585        Refactoring covered by the existing tests.
206586
206587        * rendering/RenderTable.cpp:
206588        (WebCore::RenderTable::RenderTable): Initialize our new boolean.
206589        (WebCore::RenderTable::layout):
206590        If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
206591        are marked for layout if there is the logical width change.
206592
206593        * rendering/RenderTable.h:
206594        (WebCore::RenderTable):
206595        Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
206596
206597        (WebCore::RenderTable::setColumnPosition):
206598        If a column position changed, register that our column logical widths changed. This is not
206599        totally true, so added a comment about when it will be wrong.
206600
206601        * rendering/RenderTableCell.h:
206602        * rendering/RenderTableCell.cpp:
206603        (WebCore::RenderTableCell::setCellLogicalWidth):
206604        Updated the function to mark the cell and the row for layout. Also changed the argument to
206605        be an 'int' as this was what was passed in.
206606
206607        * rendering/RenderTableSection.cpp:
206608        (WebCore::RenderTableSection::layout):
206609        * rendering/RenderTableSection.h:
206610        Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
206611        the table layout's logical widths first so that rows are marked as needing layout as appropriate.
206612
2066132012-10-16  Takashi Sakamoto  <tasak@google.com>
206614
206615        [Meta] [Shadow] contenteditable attribute for distributed nodes.
206616        https://bugs.webkit.org/show_bug.cgi?id=90017
206617
206618        Reviewed by Dimitri Glazkov.
206619
206620        If an element is distributed to an insertion point, the element's
206621        webkit-user-modify is inherited from its shadow host.
206622
206623        No new tests, because the existing test: user-modify-inheritance.html
206624        covers this change.
206625
206626        * css/StyleResolver.cpp:
206627        (WebCore::StyleResolver::styleForElement):
206628        After an element inherits a style from its parent, override user-modify
206629        by using the shadow host's style if the element is distributed.
206630
2066312012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
206632
206633        Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
206634        https://bugs.webkit.org/show_bug.cgi?id=99469
206635
206636        Reviewed by Pavel Feldman.
206637
206638        * WebCore.gypi:
206639        * WebCore.vcproj/WebCore.vcproj:
206640        * inspector/compile-front-end.py:
206641        * inspector/front-end/BreakpointManager.js:
206642        (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
206643        (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
206644        * inspector/front-end/CompilerScriptMapping.js:
206645        * inspector/front-end/JavaScriptSource.js: Removed.
206646        * inspector/front-end/JavaScriptSourceFrame.js:
206647        (WebInspector.JavaScriptSourceFrame):
206648        (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
206649        (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
206650        (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
206651        (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
206652        (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
206653        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
206654        (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
206655        (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
206656        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
206657        (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
206658        (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
206659        (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
206660        (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
206661        (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
206662        (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
206663        (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
206664        * inspector/front-end/NetworkUISourceCodeProvider.js:
206665        (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
206666        (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
206667        * inspector/front-end/ResourceScriptMapping.js:
206668        (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
206669        * inspector/front-end/ScriptSnippetModel.js:
206670        (WebInspector.ScriptSnippetModel):
206671        (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
206672        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
206673        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
206674        (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
206675        (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
206676        (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
206677        (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
206678        (WebInspector.SnippetScriptFile):
206679        (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
206680        (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
206681        * inspector/front-end/ScriptsNavigator.js:
206682        (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
206683        (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
206684        * inspector/front-end/ScriptsPanel.js:
206685        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
206686        (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
206687        (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
206688        (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
206689        (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
206690        (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
206691        * inspector/front-end/SnippetJavaScriptSourceFrame.js:
206692        (WebInspector.SnippetJavaScriptSourceFrame):
206693        (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
206694        * inspector/front-end/StyleSheetOutlineDialog.js:
206695        (WebInspector.StyleSheetOutlineDialog):
206696        (WebInspector.StyleSheetOutlineDialog.show):
206697        (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
206698        * inspector/front-end/StyleSource.js: Removed.
206699        * inspector/front-end/WebKit.qrc:
206700        * inspector/front-end/inspector.html:
206701
2067022012-10-15  Jer Noble  <jer.noble@apple.com>
206703
206704        WebAudio: limit output level to 0db
206705        https://bugs.webkit.org/show_bug.cgi?id=95792
206706        <rdar://problem/11966135>
206707
206708        Reviewed by Chris Rogers.
206709
206710        Clamp the output buffer data to the range of [-1,1], which limits
206711        output volume to 0db. This ensures that malicious or poorly-written
206712        pages will not be able to blow through the system volume limit by
206713        creating >0db buffers and effects.
206714
206715        No new tests; added ManualTests/webaudio/limit-level-0db.html.
206716
206717        Clamp the output vector to values of [-1,1]:
206718        * platform/audio/mac/AudioDestinationMac.cpp:
206719        (WebCore::AudioDestinationMac::render):
206720
206721        Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
206722        * platform/audio/VectorMath.h:
206723        * platform/audio/VectorMath.cpp:
206724        (VectorMath):
206725        (WebCore::VectorMath::vclip):
206726
2067272012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
206728
206729        Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
206730        https://bugs.webkit.org/show_bug.cgi?id=99301
206731
206732        Reviewed by Pavel Feldman.
206733
206734        StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
206735        them instead of being called explicitly.
206736
206737        * inspector/front-end/JavaScriptSourceFrame.js:
206738        (WebInspector.JavaScriptSourceFrame):
206739        (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
206740        (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
206741        (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
206742        (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
206743        (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
206744        (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
206745        (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
206746        * inspector/front-end/ResourceScriptMapping.js:
206747        (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
206748        (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
206749        (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
206750        (WebInspector.ResourceScriptFile):
206751        (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
206752        (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
206753        * inspector/front-end/ScriptSnippetModel.js:
206754        (WebInspector.SnippetScriptFile):
206755        (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
206756        (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
206757        * inspector/front-end/StylesSourceMapping.js:
206758        (WebInspector.StyleFile):
206759        (WebInspector.StyleFile.prototype._workingCopyCommitted):
206760        (WebInspector.StyleFile.prototype._workingCopyChanged):
206761        (WebInspector.StyleFile.prototype._commitIncrementalEdit):
206762        (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
206763        (WebInspector.StyleFile.prototype.addRevision):
206764        (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
206765        * inspector/front-end/UISourceCode.js:
206766        (WebInspector.UISourceCode.prototype.setWorkingCopy):
206767        (WebInspector.UISourceCode.prototype.commitWorkingCopy):
206768
2067692012-10-16  Alexander Pavlov  <apavlov@chromium.org>
206770
206771        Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
206772        https://bugs.webkit.org/show_bug.cgi?id=99336
206773
206774        Reviewed by Vsevolod Vlasov.
206775
206776        Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
206777        Drive-by: fix text node editing artifact in the DOM tree.
206778
206779        * inspector/front-end/ElementsTreeOutline.js:
206780        (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
206781        (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
206782
2067832012-10-16  Mike West  <mkwst@chromium.org>
206784
206785        Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
206786        https://bugs.webkit.org/show_bug.cgi?id=98945
206787
206788        Reviewed by Pavel Feldman.
206789
206790        Support for styling console messages via '%c' landed without any
206791        parsing of the style information provided. This means that it's fairly
206792        simple to accidentally or maliciously break the console with cleverly
206793        styled messages. To mitigate this risk, whitelisting a safe subset of
206794        CSS seems appropriate.
206795
206796        As a first pass at a reasonable whitelist, this patch allows
206797        'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
206798        'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
206799        '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
206800        '-webkit-padding[-*]', and '-webkit-text[-*]'.
206801
206802        Test: inspector/console/console-format-style-whitelist.html
206803
206804        * inspector/front-end/ConsoleMessage.js:
206805        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
206806            Create a buffer element onto which the user-provided styles are
206807            applied. Whitelisted styles are transfered from the buffer onto
206808            the actual console message.
206809        (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
206810             Returns true if the specific style is whitelisted. Expects styles
206811             in the hyphenated form (that is, '-webkit-padding-start' rather than
206812             CSSOM's 'webkitPaddingStart').
206813
2068142012-10-16  Luke Macpherson   <macpherson@chromium.org>
206815
206816        Handle CSSPropertyOpacity in StyleBuilder.
206817        https://bugs.webkit.org/show_bug.cgi?id=99418
206818
206819        Reviewed by Alexis Menard.
206820
206821        One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
206822
206823        Covered by many existing tests, for example fast/text/complex-text-opacity.html.
206824
206825        * css/StyleBuilder.cpp:
206826        (WebCore::StyleBuilder::StyleBuilder):
206827        * css/StyleResolver.cpp:
206828        (WebCore::StyleResolver::applyProperty):
206829
2068302012-10-16  Kent Tamura  <tkent@chromium.org>
206831
206832        Fix some appearance glitches of multiple fields input elements
206833        https://bugs.webkit.org/show_bug.cgi?id=99412
206834
206835        A follow-up change for r131421.
206836
206837        * css/themeWin.css:
206838        (input[type="text"]): Don't reset paddings for date/time types.
206839
2068402012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
206841
206842        hb_face_t instances should not depend on FontPlatformData
206843        https://bugs.webkit.org/show_bug.cgi?id=99430
206844
206845        Reviewed by Kent Tamura.
206846
206847        Use platform specific font data (e.g. SkTypeface) to get
206848        font tables for harfbuzz-ng.
206849
206850        No new tests. No changes in behavior.
206851
206852        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
206853        (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
206854        (WebCore::HarfBuzzNGFace::createFace):
206855        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
206856        (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
206857        (WebCore::HarfBuzzNGFace::createFace):
206858        * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
206859        (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
206860        (WebCore::HarfBuzzNGFace::createFace):
206861
2068622012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
206863
206864        Unreviewed, rolling out r131418.
206865        http://trac.webkit.org/changeset/131418
206866        https://bugs.webkit.org/show_bug.cgi?id=99431
206867
206868        since 131403 seems innocent (Requested by shinyak|_ on
206869        #webkit).
206870
206871        * dom/Document.cpp:
206872        (WebCore::isValidNameNonASCII):
206873        (WebCore):
206874        (WebCore::Document::isValidName):
206875
2068762012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
206877
206878        Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
206879        https://bugs.webkit.org/show_bug.cgi?id=99426
206880
206881        Reviewed by Yury Semikhatsky.
206882
206883        New object type InspectorOverlay was added. InspectorOverlay was instrumented.
206884        The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
206885
206886        * dom/WebCoreMemoryInstrumentation.cpp:
206887        (WebCore):
206888        * dom/WebCoreMemoryInstrumentation.h:
206889        (WebCoreMemoryTypes):
206890        * inspector/InspectorOverlay.cpp:
206891        (WebCore::InspectorOverlay::reportMemoryUsage):
206892        (WebCore):
206893        * inspector/InspectorOverlay.h:
206894        (InspectorOverlay):
206895
2068962012-10-16  Kent Tamura  <tkent@chromium.org>
206897
206898        Remove unused functions in Locale* classes
206899        https://bugs.webkit.org/show_bug.cgi?id=99425
206900
206901        Reviewed by Yuta Kitamura.
206902
206903        Locale*::currentLocale has been unused since LocalizedDate* and
206904        LocalizedNumber* were removed.
206905
206906        No new tests. This shouldn't change any behavior.
206907
206908        * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
206909        * platform/text/LocaleICU.h: Ditto.
206910        * platform/text/LocaleWin.cpp: Remove currentLocale.
206911        * platform/text/LocaleWin.h: Ditto.
206912        * platform/text/mac/LocaleMac.h: Remove currentLocale.
206913        * platform/text/mac/LocaleMac.mm: Ditto.
206914
2069152012-10-15  Kent Tamura  <tkent@chromium.org>
206916
206917        Fix some appearance glitches of multiple fields input elements
206918        https://bugs.webkit.org/show_bug.cgi?id=99412
206919
206920        Reviewed by Kentaro Hara.
206921
206922        1. If CSS-specified width is wider than the intrinsic width of an input,
206923        the spin button and the picker indicator triangle should be put at the
206924        right side of the content area.
206925
206926        2. Remove top, right, and bottom paddings to match input[type=number]
206927        appearance as possible.
206928
206929        3. Remove unnecessary position:relative for spin buttons.
206930
206931        4. Center content vertically if the height is taller than the intrinsic height.
206932
206933        Tests: Update all of rendering tests for input element with multiple fields UI.
206934
206935        * css/html.css:
206936        (input[type="date"]):
206937        - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
206938        - Remove top/right/bottom paddings.
206939        (input[type="datetime"]): Ditto.
206940        (input[type="datetime-local"]): Ditto.
206941        (input[type="month"]): Ditto.
206942        (input[type="time"]): Ditto.
206943        (input[type="week"]): Ditto.
206944        (input::-webkit-datetime-edit):
206945        - Switch to the starndard flexible box from the legacy one.
206946        - Add white-space:pre to avoid to collapse white spaces.
206947        (input::-webkit-datetime-edit-gap):
206948        Added. This element is added to push a spin button to the right side.
206949        (input::-webkit-date-and-time-container):
206950        Add -webkit-flex:1 for the input flexible box.
206951        Sort properties.
206952        (input[type="week"]::-webkit-inner-spin-button):
206953        - Use this in date, datetime, datetime-local, and week types.
206954        - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
206955        - Add position:static to cancel position:relative below.
206956
206957        * html/shadow/DateTimeEditElement.cpp:
206958        (WebCore::DateTimeEditElement::layout):
206959        Add an element with -webkit-datetime-edit-gap before a spin button.
206960
2069612012-10-15  Yury Semikhatsky  <yurys@chromium.org>
206962
206963        Web Inspector: can't click delete button if watch expression is very long
206964        https://bugs.webkit.org/show_bug.cgi?id=99414
206965
206966        Reviewed by Vsevolod Vlasov.
206967
206968        Minus button in watch expression section doesn't overlap with the
206969        expression/value anymore.
206970
206971        * inspector/front-end/inspector.css:
206972        (.properties-tree.watch-expressions > li.hovered):
206973
2069742012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
206975
206976        Unreviewed, rolling out r131403.
206977        http://trac.webkit.org/changeset/131403
206978        https://bugs.webkit.org/show_bug.cgi?id=99420
206979
206980        Suspicious to cause Performance test failing (Requested by
206981        shinyak|gardenin on #webkit).
206982
206983        * dom/Document.cpp:
206984        (WebCore::Document::isValidName):
206985
2069862012-10-15  Yury Semikhatsky  <yurys@chromium.org>
206987
206988        Web Inspector: restore watch expression expansion state
206989        https://bugs.webkit.org/show_bug.cgi?id=99304
206990
206991        Reviewed by Pavel Feldman.
206992
206993        Expand watch expression value and its properties if they were expanded
206994        before update.
206995
206996        Test: inspector/debugger/watch-expressions-preserve-expansion.html
206997
206998        * inspector/front-end/WatchExpressionsSidebarPane.js:
206999        (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
207000        (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
207001        (WebInspector.WatchExpressionTreeElement.prototype.onattach):
207002        (WebInspector.WatchExpressionTreeElement.prototype._expression):
207003        (WebInspector.WatchedPropertyTreeElement):
207004        (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
207005        (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
207006        (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
207007        (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
207008
2070092012-10-15  Mike West  <mkwst@chromium.org>
207010
207011        Warn when CSP headers don't separate directives with ';'.
207012        https://bugs.webkit.org/show_bug.cgi?id=99274
207013
207014        Reviewed by Adam Barth.
207015
207016        A recent bug report exhibited confusion as to what role, exactly,
207017        semicolons play in Content Security Policy definitions. This patch
207018        adjusts the parser to warn web authors if a directive name is
207019        encountered while parsing a source list, which would almost certainly
207020        point to a missing semicolon. For example, something like:
207021
207022            script-src 'self' object-src 'self' style-src *
207023
207024        would throw two warnings, noting that 'object-src' and 'style-src' are
207025        probably meant as directives, and not as source expressions in the
207026        'script-src' source list.
207027
207028        Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
207029
207030        * page/ContentSecurityPolicy.cpp:
207031        (WebCore::CSPSourceList::parse):
207032            Throw the new warning onto the console if the hostname of a source
207033            expression matches a CSP directive name.
207034        (WebCore::CSPDirectiveList::addDirective):
207035            Use the exciting new static variables so that the names of various
207036            directives are available outside of CSPDirectiveList::addDirective.
207037            These were previously defined as local static ASCIILiterals. Now
207038            they're static const char[] in an anonymous namespace.
207039        (WebCore::ContentSecurityPolicy::isDirectiveName):
207040            Static method that compares a string to all the known directive
207041            names, returning true if there's a (case-insensitive) match.
207042        (WebCore):
207043        (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
207044            A new warning message which should be printed when a directive name
207045            is encountered as a source expression. Matching the directive name
207046            is done via a new 'isDirectiveName' function which lives in an
207047            anonymous namespace along with the other CSP helper functions.
207048        * page/ContentSecurityPolicy.h:
207049            Added 'reportDirectiveAsSourceExpression' signature.
207050
2070512012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
207052
207053        Unreviewed, rolling out r131349.
207054        http://trac.webkit.org/changeset/131349
207055        https://bugs.webkit.org/show_bug.cgi?id=97173
207056
207057        Revert r131349 because API test is broken by this commit.
207058
207059        * platform/efl/RunLoopEfl.cpp:
207060        (WebCore::RunLoop::RunLoop):
207061        (WebCore::RunLoop::~RunLoop):
207062
2070632012-10-15  Nate Chapin  <japhet@chromium.org>
207064
207065        ResourceLoader::sendResourceLoadCallbacks() is backwards
207066        https://bugs.webkit.org/show_bug.cgi?id=99366
207067
207068        Reviewed by Daniel Bates.
207069
207070        No new tests, this function is uncalled but will be used
207071        in a later patch.
207072
207073        * loader/ResourceLoader.h:
207074        (WebCore::ResourceLoader::sendResourceLoadCallbacks):
207075
2070762012-10-15  Dan Bernstein  <mitz@apple.com>
207077
207078        REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
207079        https://bugs.webkit.org/show_bug.cgi?id=99413
207080
207081        Reviewed by Adele Peterson.
207082
207083        r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
207084        from there down to WidthIterator::advance(). However, when measuring the width of a run, a
207085        GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
207086
207087        No new test, because there is no change in behavior.
207088
207089        * platform/graphics/Font.cpp:
207090        (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
207091        floatWidthForSimpleText().
207092        * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
207093        All but the above caller were passing 0.
207094        * platform/graphics/FontFastPath.cpp:
207095        (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
207096        local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
207097        typesetting features require it.
207098        (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
207099        floatWidthForSimpleText.
207100        * platform/graphics/pango/FontPango.cpp:
207101        (WebCore::Font::floatWidthForComplexText): Ditto.
207102
2071032012-10-15  Pablo Flouret  <pablof@motorola.com>
207104
207105        Add force parameter to DOMTokenList.toggle
207106        https://bugs.webkit.org/show_bug.cgi?id=99375
207107
207108        Reviewed by Darin Adler.
207109
207110        See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
207111        https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
207112
207113        Essentially, the optional boolean force parameter, if present, makes
207114        toggle always add or remove a class.
207115
207116        No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
207117
207118        * html/DOMTokenList.cpp:
207119        (WebCore::DOMTokenList::toggle):
207120        (WebCore):
207121        * html/DOMTokenList.h:
207122        (DOMTokenList):
207123        * html/DOMTokenList.idl:
207124            New toggle() overload that takes a force parameter and calls
207125            addInternal() or removeInternal() based on it.
207126
2071272012-10-15  Dan Bernstein  <mitz@apple.com>
207128
207129        Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
207130        https://bugs.webkit.org/show_bug.cgi?id=99406
207131
207132        Reviewed by Darin Adler.
207133
207134        * platform/graphics/WidthIterator.cpp:
207135        * platform/graphics/WidthIterator.h:
207136        (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
207137        shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
207138        Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
207139        does not support kerning and ligatures.
207140
2071412012-10-15  Michael Saboff  <msaboff@apple.com>
207142
207143        Add 8 bit patch to Document::isValidName() for the non ASCII case
207144        https://bugs.webkit.org/show_bug.cgi?id=99402
207145
207146        Reviewed by Darin Adler.
207147
207148        Added 8 bit path to complete the processing of an 8 bit names without up-converting.
207149
207150        * dom/Document.cpp:
207151        (WebCore::isValidNameNonASCII):
207152        (WebCore::Document::isValidName):
207153
2071542012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
207155
207156        Support for background-clip:content-box and padding-box with border-radius
207157        https://bugs.webkit.org/show_bug.cgi?id=23166
207158
207159        Reviewed by Simon Fraser.
207160
207161        Test: fast/css/background-clip-radius-values.html
207162
207163        * rendering/RenderBoxModelObject.cpp:
207164        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
207165        (WebCore):
207166        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
207167        * rendering/RenderBoxModelObject.h:
207168
2071692012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
207170
207171        Fix unused parameter build warning.
207172        https://bugs.webkit.org/show_bug.cgi?id=99400
207173
207174        Reviewed by Gyuyoung Kim.
207175
207176        Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
207177
207178        * platform/network/soup/ResourceErrorSoup.cpp:
207179        (WebCore::ResourceError::tlsError):
207180
2071812012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
207182
207183        [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
207184        https://bugs.webkit.org/show_bug.cgi?id=99282
207185
207186        Reviewed by Yuta Kitamura.
207187
207188        Reset decompression state if WebSocketInflater decompress a block with
207189        BFINAL set to 1.
207190
207191        Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
207192
207193        * Modules/websockets/WebSocketDeflater.cpp:
207194        (WebCore::WebSocketInflater::addBytes):
207195        Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
207196        of the current block was set to 1.
207197        (WebCore::WebSocketInflater::finish): Add an assertion.
207198
2071992012-10-15  Simon Fraser  <simon.fraser@apple.com>
207200
207201        Fix GraphicsLayer visible rect computation when scrolling in WebKit1
207202        https://bugs.webkit.org/show_bug.cgi?id=99385
207203
207204        Reviewed by Dean Jackson, Tim Horton.
207205
207206        RenderLayerCompositor always used frameView->frameRect() as the visible
207207        rect on the root used for GraphicsLayer visibleRect computation. This
207208        was wrong for subframes, which require a rect with an origin of (0,0)
207209        and size of the contentsSize().
207210        
207211        It was also wrong when the scrolling is not represented in the GraphicsLayer
207212        tree. When scrolling is done elsewhere, we need to use the ScrollView's
207213        visibleContentRect().
207214
207215        Tests: compositing/visible-rect/scrolled.html
207216               compositing/visible-rect/iframe-and-layers.html
207217               compositing/visible-rect/iframe-no-layers.html
207218
207219        * rendering/RenderLayerCompositor.cpp:
207220        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
207221
2072222012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
207223
207224        Remove page visibility hidden histograms
207225        https://bugs.webkit.org/show_bug.cgi?id=99360
207226
207227        Reviewed by Ojan Vafai.
207228
207229        The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
207230        investigate a potential optimization where we would destroy the render tree when
207231        a tab was hidden. The optimization was abandoned but the histograms were never
207232        removed. They are too narrow to be reused so this change removes them.
207233
207234        * page/Page.cpp:
207235        (WebCore::Page::setVisibilityState):
207236
2072372012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
207238
207239        REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
207240        https://bugs.webkit.org/show_bug.cgi?id=99397
207241
207242        Unreviewed, build fix.
207243
207244        * page/scrolling/ScrollingCoordinator.cpp:
207245        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
207246
2072472012-10-14  Kent Tamura  <tkent@chromium.org>
207248
207249        Input elements with multiple fields UI should set appropriate direction for browser locale automatically
207250        https://bugs.webkit.org/show_bug.cgi?id=99291
207251
207252        Reviewed by Hajime Morita.
207253
207254        Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
207255        direction property, and their direction should be decided by the browser
207256        locale. If the browser locale is a RTL language, date/time input fields
207257        show formats/digits for the RTL language. The layout should be always
207258        RTL regardless of the direction in such case.
207259
207260        Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
207261
207262        * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
207263        (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
207264        Set approriate dir attribute value to the child element of the UA shadow root.
207265
2072662012-10-15  Andreas Kling  <kling@webkit.org>
207267
207268        StyleResolver: Garbage collect the matched properties cache on a timer.
207269        <http://webkit.org/b/98625>
207270
207271        Reviewed by Eric Seidel.
207272
207273        Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
207274        svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
207275        and defers the actual sweep for 60 seconds.
207276
207277        * css/StyleResolver.cpp:
207278        (WebCore::StyleResolver::StyleResolver):
207279        (WebCore::StyleResolver::sweepMatchedPropertiesCache):
207280        (WebCore::StyleResolver::addToMatchedPropertiesCache):
207281        * css/StyleResolver.h:
207282        (StyleResolver):
207283
2072842012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
207285
207286        [GStreamer] GstCaps are leaked when building with gstreamer-1.0
207287        https://bugs.webkit.org/show_bug.cgi?id=99362
207288
207289        Reviewed by Martin Robinson.
207290
207291        Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
207292
207293        Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
207294        use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
207295        refeference count.
207296
207297        Covered by existing tests.
207298
207299        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
207300        (WTF::adoptGRef):
207301        (WTF):
207302        * platform/graphics/gstreamer/GRefPtrGStreamer.h:
207303        (WTF):
207304        * platform/graphics/gstreamer/GStreamerVersioning.cpp:
207305        (webkitGstGetPadCaps):
207306        * platform/graphics/gstreamer/GStreamerVersioning.h:
207307        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
207308        (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
207309        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
207310        (webkitVideoSinkRender):
207311
2073122012-10-15  Tony Chang  <tony@chromium.org>
207313
207314        Unreviewed, rolling out r131367.
207315        http://trac.webkit.org/changeset/131367
207316        https://bugs.webkit.org/show_bug.cgi?id=98666
207317
207318        crashes on Apple Mac
207319
207320        * css/html.css:
207321        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
207322        (input[type="range"]::-webkit-slider-runnable-track):
207323        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
207324        * css/mediaControlsChromium.css:
207325        (input[type="range"]::-webkit-media-slider-thumb):
207326        * css/mediaControlsChromiumAndroid.css:
207327        (input[type="range"]::-webkit-media-slider-thumb):
207328        * html/RangeInputType.cpp:
207329        (WebCore::RangeInputType::listAttributeTargetChanged):
207330        * html/shadow/SliderThumbElement.cpp:
207331        (WebCore::RenderSliderThumb::layout):
207332        (WebCore):
207333        (WebCore::RenderSliderContainer::RenderSliderContainer):
207334        (RenderSliderContainer):
207335        (WebCore::RenderSliderContainer::layout):
207336        * html/shadow/SliderThumbElement.h:
207337        (RenderSliderThumb):
207338        * rendering/RenderSlider.cpp:
207339        (WebCore):
207340        (WebCore::RenderSlider::RenderSlider):
207341        (WebCore::RenderSlider::layout):
207342        * rendering/RenderSlider.h:
207343        (WebCore):
207344        (RenderSlider):
207345        (WebCore::RenderSlider::renderName):
207346        (WebCore::RenderSlider::isSlider):
207347        (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
207348        (WebCore::toRenderSlider):
207349
2073502012-10-15  Dan Bernstein  <mitz@apple.com>
207351
207352        Try to fix the build again after r131375.
207353
207354        * platform/graphics/WidthIterator.h:
207355        (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
207356
2073572012-10-15  Dan Bernstein  <mitz@apple.com>
207358
207359        Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
207360        code path after r131365.
207361
207362        * platform/graphics/WidthIterator.cpp:
207363        (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
207364        sequences.
207365        * platform/graphics/WidthIterator.h:
207366        (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
207367        shorter than 2 characters.
207368
2073692012-10-15  Dan Bernstein  <mitz@apple.com>
207370
207371        Try to fix the Chromium Mac build after r131365.
207372
207373        * platform/graphics/GlyphBuffer.h:
207374        (WebCore::GlyphBufferAdvance::height): Added.
207375        * platform/graphics/skia/FontSkia.cpp:
207376        (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
207377
2073782012-10-15  Simon Fraser  <simon.fraser@apple.com>
207379
207380        Ensure that GraphicsLayer positions are updated while doing threaded scrolling
207381        https://bugs.webkit.org/show_bug.cgi?id=99372
207382
207383        Reviewed by Anders Carlsson.
207384
207385        When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
207386        but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
207387        works incorrectly.
207388        
207389        Threaded scrolling is not testabled in layout tests.
207390
207391        * page/scrolling/ScrollingCoordinator.cpp:
207392        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
207393        * platform/graphics/GraphicsLayer.h:
207394        (GraphicsLayer):
207395        (WebCore::GraphicsLayer::syncPosition):
207396
2073972012-10-15  Tommy Widenflycht  <tommyw@google.com>
207398
207399        MediaStream API: Implement RTCDataChannel
207400        https://bugs.webkit.org/show_bug.cgi?id=99080
207401
207402        Reviewed by Adam Barth.
207403
207404        This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
207405        Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
207406
207407        Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
207408
207409        * CMakeLists.txt:
207410        * GNUmakefile.list.am:
207411        * Modules/mediastream/RTCDataChannel.cpp: Added.
207412        (WebCore):
207413        (WebCore::RTCDataChannel::create):
207414        (WebCore::RTCDataChannel::RTCDataChannel):
207415        (WebCore::RTCDataChannel::~RTCDataChannel):
207416        (WebCore::RTCDataChannel::label):
207417        (WebCore::RTCDataChannel::reliable):
207418        (WebCore::RTCDataChannel::readyState):
207419        (WebCore::RTCDataChannel::bufferedAmount):
207420        (WebCore::RTCDataChannel::binaryType):
207421        (WebCore::RTCDataChannel::setBinaryType):
207422        (WebCore::RTCDataChannel::send):
207423        (WebCore::RTCDataChannel::close):
207424        (WebCore::RTCDataChannel::readyStateChanged):
207425        (WebCore::RTCDataChannel::dataArrived):
207426        (WebCore::RTCDataChannel::error):
207427        (WebCore::RTCDataChannel::descriptor):
207428        (WebCore::RTCDataChannel::interfaceName):
207429        (WebCore::RTCDataChannel::scriptExecutionContext):
207430        (WebCore::RTCDataChannel::stop):
207431        (WebCore::RTCDataChannel::eventTargetData):
207432        (WebCore::RTCDataChannel::ensureEventTargetData):
207433        * Modules/mediastream/RTCDataChannel.h: Added.
207434        (WebCore):
207435        (RTCDataChannel):
207436        (WebCore::RTCDataChannel::refEventTarget):
207437        (WebCore::RTCDataChannel::derefEventTarget):
207438        * Modules/mediastream/RTCDataChannel.idl: Added.
207439        * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
207440        (WebCore):
207441        (WebCore::RTCDataChannelEvent::create):
207442        (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
207443        (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
207444        (WebCore::RTCDataChannelEvent::channel):
207445        (WebCore::RTCDataChannelEvent::interfaceName):
207446        * Modules/mediastream/RTCDataChannelEvent.h: Added.
207447        (WebCore):
207448        (RTCDataChannelEvent):
207449        * Modules/mediastream/RTCDataChannelEvent.idl: Added.
207450        * Modules/mediastream/RTCPeerConnection.cpp:
207451        (WebCore::RTCPeerConnection::createDataChannel):
207452        (WebCore):
207453        (WebCore::RTCPeerConnection::close):
207454        (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
207455        (WebCore::RTCPeerConnection::stop):
207456        * Modules/mediastream/RTCPeerConnection.h:
207457        (WebCore):
207458        (RTCPeerConnection):
207459        * Modules/mediastream/RTCPeerConnection.idl:
207460        * WebCore.gypi:
207461        * dom/EventNames.h:
207462        (WebCore):
207463        * dom/EventNames.in:
207464        * dom/EventTargetFactory.in:
207465        * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
207466        (WebCore):
207467        (WebCore::RTCDataChannelDescriptor::create):
207468        (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
207469        (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
207470        (WebCore::RTCDataChannelDescriptor::readyStateChanged):
207471        (WebCore::RTCDataChannelDescriptor::dataArrived):
207472        (WebCore::RTCDataChannelDescriptor::error):
207473        * platform/mediastream/RTCDataChannelDescriptor.h: Added.
207474        (WebCore):
207475        (RTCDataChannelDescriptorClient):
207476        (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
207477        (RTCDataChannelDescriptor):
207478        (ExtraData):
207479        (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
207480        (WebCore::RTCDataChannelDescriptor::client):
207481        (WebCore::RTCDataChannelDescriptor::setClient):
207482        (WebCore::RTCDataChannelDescriptor::label):
207483        (WebCore::RTCDataChannelDescriptor::reliable):
207484        (WebCore::RTCDataChannelDescriptor::readyState):
207485        (WebCore::RTCDataChannelDescriptor::bufferedAmount):
207486        (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
207487        (WebCore::RTCDataChannelDescriptor::extraData):
207488        (WebCore::RTCDataChannelDescriptor::setExtraData):
207489        * platform/mediastream/RTCPeerConnectionHandler.cpp:
207490        (RTCPeerConnectionHandlerDummy):
207491        (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
207492        (WebCore):
207493        (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
207494        (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
207495        (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
207496        * platform/mediastream/RTCPeerConnectionHandler.h:
207497        (WebCore):
207498        (RTCPeerConnectionHandler):
207499        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
207500        (WebCore):
207501        (RTCPeerConnectionHandlerClient):
207502        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
207503        (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
207504        (WebCore):
207505        (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
207506        (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
207507        (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
207508        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
207509        (RTCPeerConnectionHandlerChromium):
207510
2075112012-10-15  Joshua Bell  <jsbell@chromium.org>
207512
207513        IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
207514        https://bugs.webkit.org/show_bug.cgi?id=99097
207515
207516        Reviewed by Tony Chang.
207517
207518        Include the error causing the abort in the callback from back end to
207519        front end so it can be exposed on the IDBTransaction.error property.
207520
207521        Test: lazy-index-population.html
207522
207523        * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
207524        (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
207525        (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
207526        * Modules/indexeddb/IDBDatabaseCallbacks.h:
207527        * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
207528        (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
207529        (WebCore::IDBObjectStoreBackendImpl::putInternal):
207530        * Modules/indexeddb/IDBTransaction.cpp:
207531        (WebCore::IDBTransaction::onAbort):
207532        * Modules/indexeddb/IDBTransaction.h:
207533        (IDBTransaction):
207534        * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
207535        (WebCore::IDBTransactionBackendImpl::abort):
207536        (WebCore):
207537        (WebCore::IDBTransactionBackendImpl::commit):
207538        * Modules/indexeddb/IDBTransactionBackendImpl.h:
207539        (IDBTransactionBackendImpl):
207540        * Modules/indexeddb/IDBTransactionCallbacks.h:
207541        (IDBTransactionCallbacks):
207542        * inspector/InspectorIndexedDBAgent.cpp:
207543        (WebCore):
207544
2075452012-10-15  Mike Reed  <reed@google.com>
207546
207547        In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
207548        https://bugs.webkit.org/show_bug.cgi?id=99326
207549
207550        Reviewed by Stephen White.
207551
207552        No new tests -- existing layouttests exercise this, esp. 
207553          png-partial-load-no-alpha.html
207554          webp-partial-load.html
207555        These two fail if skia is told that these are opaque, which it is w/o this CL.
207556
207557        At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
207558        This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
207559        in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
207560
207561        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
207562        (WebCore::ImageFrame::ImageFrame):
207563        (WebCore::ImageFrame::operator=):
207564        (WebCore::ImageFrame::zeroFillPixelData):
207565        (WebCore::ImageFrame::hasAlpha):
207566        (WebCore::ImageFrame::setHasAlpha):
207567        (WebCore::ImageFrame::setStatus):
207568
2075692012-10-12  Tony Chang  <tony@chromium.org>
207570
207571        input[type=range] as a flex item renders thumb at wrong position
207572        https://bugs.webkit.org/show_bug.cgi?id=98666
207573
207574        Reviewed by Ojan Vafai.
207575
207576        Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
207577        The previous code was trying to set the height to 100% and had a bunch of hacks in
207578        the renderer code to set an explicit height. Using the new flexbox allows us to
207579        remove these renderer hacks.
207580
207581        Test: css3/flexbox/flexitem-stretch-range.html
207582
207583        * css/html.css:
207584        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
207585        (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
207586        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
207587        no longer setting top/left in the layout code.
207588        * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
207589        * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
207590        * html/RangeInputType.cpp:
207591        (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
207592        since the height of the control should change when adding/removing a datalist.
207593        * html/shadow/SliderThumbElement.cpp:
207594        (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
207595        (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
207596        height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
207597        we use the intrinsic size.
207598        (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
207599        This used to be handled in the thumb's layout method, but I deleted that.
207600        * html/shadow/SliderThumbElement.h:
207601        * rendering/RenderSlider.cpp:
207602        (WebCore::RenderSlider::RenderSlider): Use new flexbox.
207603        (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
207604        for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
207605        and expects the input to also have a height of 1px.  It worked before because the height of the input
207606        didn't depend on the height of its children.
207607        * rendering/RenderSlider.h: Fix indentation.
207608        (RenderSlider): Use new flexible box.
207609
2076102012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
207611
207612        Make RenderTable columns() and columnPositions() return a const reference
207613        https://bugs.webkit.org/show_bug.cgi?id=99339
207614
207615        Reviewed by Abhishek Arya.
207616
207617        The 2 getters were returning a non-const reference. This means that callers
207618        could have modified the Vector's where only FixedTableLayout and AutoTableLayout
207619        were expected to (for columnPositions(), no one should modify columns()).
207620
207621        Refactoring covered by existing tests.
207622
207623        * rendering/AutoTableLayout.cpp:
207624        (WebCore::AutoTableLayout::layout):
207625        * rendering/FixedTableLayout.cpp:
207626        (WebCore::FixedTableLayout::layout):
207627        Updated those functions to use the new setter.
207628
207629        * rendering/RenderTable.h:
207630        (WebCore::RenderTable::columns):
207631        (WebCore::RenderTable::columnPositions):
207632        Made the 2 functions return a const reference. They are also const now!
207633
207634        (WebCore::RenderTable::setColumnPosition):
207635        Added this setter.
207636
207637        * rendering/RenderTableSection.cpp:
207638        (WebCore::RenderTableSection::addCell):
207639        (WebCore::RenderTableSection::setCellLogicalWidths):
207640        (WebCore::RenderTableSection::dirtiedColumns):
207641        Updated to use a const reference.
207642
2076432012-10-15  Dan Bernstein  <mitz@apple.com>
207644
207645        WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
207646        https://bugs.webkit.org/show_bug.cgi?id=99113
207647
207648        Reviewed by Tim Horton.
207649
207650        * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
207651        * platform/graphics/Font.cpp:
207652        (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
207653        (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
207654        features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
207655        typesetting features.
207656        * platform/graphics/FontFastPath.cpp:
207657        (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
207658        WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
207659        about how this is not entirely correct when kerning or ligatures are enabled.
207660        (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
207661        WidthIterator::advance() when advancing to or from the range of interest.
207662        (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
207663        WidthIterator::advanceOneCharacter().
207664        * platform/graphics/SimpleFontData.h:
207665        (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
207666        available.
207667        * platform/graphics/WidthIterator.cpp:
207668        (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
207669        data member.
207670        (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
207671        characters treated as spaces.
207672        (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
207673        required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
207674        maintaining the advances of characters that are treated as spaces and the characters
207675        preceding them, if necessary.
207676        (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
207677        of each contiguous run of glyphs from the same font. Also added code to maintain a vector
207678        of spaces and characters treated as space.
207679        (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
207680        a reference.
207681        * platform/graphics/WidthIterator.h:
207682        (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
207683        instances support the typesetting features of the given font. Returns true if the font is
207684        not a screen font and its typesetting features are kerning, ligatures or both.
207685        (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
207686        features include kerning or ligatures.
207687        * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
207688        wkCTFontTransformGlyphs.
207689        * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
207690        * rendering/svg/SVGTextMetricsBuilder.cpp:
207691        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
207692        WidthIterator::advance().
207693        * rendering/svg/SVGTextRunRenderingContext.cpp:
207694        (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
207695
2076962012-10-15  Mark Lam  <mark.lam@apple.com>
207697
207698        Fix build broken by r131348.
207699        https://bugs.webkit.org/show_bug.cgi?id=97533.
207700
207701        Not reviewed.
207702
207703        * rendering/RenderView.cpp:
207704        (WebCore::RenderView::layoutContent):
207705
2077062012-10-15  Andreas Kling  <kling@webkit.org>
207707
207708        Remove WTF::fastDeleteAllValues().
207709        <http://webkit.org/b/99345>
207710
207711        Reviewed by Eric Seidel.
207712
207713        It was only used to fastDelete() a class that was already overriding operator delete
207714        by way of WTF_MAKE_FAST_ALLOCATED anyway.
207715
207716        * css/CSSParser.cpp:
207717        (WebCore::CSSParser::~CSSParser):
207718
2077192012-10-15  Levi Weintraub  <leviw@chromium.org>
207720
207721        Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
207722        https://bugs.webkit.org/show_bug.cgi?id=99194
207723
207724        Reviewed by Eric Seidel.
207725
207726        Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
207727        these two types of elements would cause us to increase our preferred width forever.
207728
207729        Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
207730
207731        * rendering/RenderBlock.cpp:
207732        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
207733
2077342012-10-15  Emil A Eklund  <eae@chromium.org>
207735
207736        Revert rounding change in RenderTable::paintObject
207737        https://bugs.webkit.org/show_bug.cgi?id=99364
207738
207739        Reviewed by Levi Weintraub.
207740
207741        Bug 91410 changed RenderTable::paintObject to round the offset
207742        in order to avoid table-background bleed through. The root cause
207743        for that has since been fixed and the rounding workaround is no
207744        longer needed. This change reverts the code change from bug
207745        91410 while preserving the test added as a part of that change
207746        as it now passes without the workaround.
207747
207748        No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
207749
207750        * rendering/RenderTable.cpp:
207751        (WebCore::RenderTable::paintObject):
207752        Remove unnecessary rounding.
207753
2077542012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
207755
207756        [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
207757        https://bugs.webkit.org/show_bug.cgi?id=96448
207758
207759        Reviewed by Kenneth Rohde Christiansen.
207760
207761        CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
207762        the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
207763        that m_programType encoded the very same information. Dependencies have been updated to reflect
207764        this change.
207765
207766        Current tests already cover this code.
207767
207768        * css/CSSComputedStyleDeclaration.cpp: 
207769        (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
207770        by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
207771        * css/StyleResolver.cpp:
207772        (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
207773        new filter program.
207774        * platform/graphics/filters/CustomFilterProgram.cpp:
207775        (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
207776        reflect the need of setting the program type explicitly.
207777        (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
207778        type explicitly.
207779        * platform/graphics/filters/CustomFilterProgram.h:
207780        * platform/graphics/filters/CustomFilterProgramInfo.cpp:
207781        (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
207782        (WebCore::CustomFilterProgramInfo::hash): ditto
207783        (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
207784        the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
207785        * platform/graphics/filters/CustomFilterProgramInfo.h:
207786        (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
207787        (WebCore::CustomFilterProgramMixSettings::operator==): ditto
207788        (CustomFilterProgramInfo):
207789        (WebCore::CustomFilterProgramInfo::programType):
207790        * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
207791        created according to the program type.
207792        (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
207793        (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
207794        has been replaced with a check for the program type.
207795        (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
207796        * rendering/style/StyleCustomFilterProgram.h:
207797        (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
207798        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
207799
2078002012-10-15  Joshua Bell  <jsbell@chromium.org>
207801
207802        IndexedDB: Key paths should support non-ASCII identifiers
207803        https://bugs.webkit.org/show_bug.cgi?id=98814
207804
207805        Reviewed by Kentaro Hara.
207806
207807        Update the parser for key paths to use the unicode classes from
207808        the IdentifierName production in ECMA-262.
207809
207810        Test: storage/indexeddb/keypath-basics.html
207811
207812        * Modules/indexeddb/IDBKeyPath.cpp:
207813        (WebCore):
207814        (WebCore::IDBKeyPathLexer::lexIdentifier):
207815
2078162012-10-15  Yael Aharon  <yael.aharon@intel.com>
207817
207818        [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
207819        https://bugs.webkit.org/show_bug.cgi?id=99325
207820
207821        Reviewed by Kenneth Rohde Christiansen.
207822
207823        Based on a patch from Regina Chung.
207824        This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
207825        The gl context is used as key in a hash map and cannot be NULL.
207826
207827        No new tests. Accelerated compositing is not yet enabled in the EFL port.
207828
207829        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
207830        (WebCore::GraphicsContext3D::GraphicsContext3D):
207831
2078322012-10-15  Mike West  <mkwst@chromium.org>
207833
207834        Console messages containing long URLs should cut at some reasonable length.
207835        https://bugs.webkit.org/show_bug.cgi?id=97980
207836
207837        Reviewed by Pavel Feldman.
207838
207839        This patch lightly modifies the current styling of linkified URLs inside
207840        console messages in order to cut them down to some reasonable size for
207841        viewing. The middle of the URL is snipped out such that the whole
207842        thing fits into 150 characters. This only effects the displayed text;
207843        the link's href isn't changed; the link remains available via the
207844        context menu, accessible via the title attribute, and clicking it still
207845        takes the user directly to the resource in question.
207846
207847        Test: inspector/console/console-trim-long-urls.html
207848
207849        * inspector/front-end/ResourceUtils.js:
207850        (WebInspector.linkifyURLAsNode):
207851            Trim the middle of the URL to bring the whole string down to  down
207852            to 150 characters, and set the link's title to the full URL.
207853
2078542012-10-15  Tony Chang  <tony@chromium.org>
207855
207856        Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
207857        https://bugs.webkit.org/show_bug.cgi?id=99348
207858
207859        Reviewed by Ojan Vafai.
207860
207861        Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
207862        I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
207863        non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
207864        eventually.
207865
207866        No new tests, this is just a code refactor.
207867
207868        * rendering/RenderMultiColumnSet.cpp:
207869        (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
207870        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
207871        (WebCore):
207872        * rendering/RenderMultiColumnSet.h:
207873        (RenderMultiColumnSet):
207874        * rendering/RenderView.cpp:
207875        (WebCore::RenderView::computeLogicalHeight):
207876        * rendering/RenderView.h:
207877
2078782012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
207879
207880        [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
207881        https://bugs.webkit.org/show_bug.cgi?id=97173
207882
207883        Reviewed by Gyuyoung Kim.
207884
207885        Remove codes to initialize and shutdown the EFL libraries from
207886        RunLoopEfl.cpp. Initialization and shutdown will be done in the
207887        ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
207888        process.
207889
207890        No new tests. This patch doesn't change behavior.
207891
207892        * platform/efl/RunLoopEfl.cpp:
207893        (WebCore::RunLoop::RunLoop):
207894        (WebCore::RunLoop::~RunLoop):
207895
2078962012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
207897
207898        [CSSRegions]Add support for auto-height regions (without region-breaks)
207899        https://bugs.webkit.org/show_bug.cgi?id=97533
207900
207901        Reviewed by Julien Chaffraix.
207902
207903        Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
207904        The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
207905
207906        When the flow thread contains regions with auto logical height, a 2pass layout algorithm is needed to determine the height of auto logical height regions.
207907        In each step of the layout, the regions are laid out before the flow thread is laid out.
207908
207909        In the first pass of layout (normal layout phase), the content of the flow thread is laid out unconstrained in the regions. The region marked as having auto logical height
207910        displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
207911        determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
207912        value for the second pass in its overridden logical content height property.
207913
207914        In the second pass of layout (constrained flow threads layout phase), when the content of the flow thread is laid out constrained in the regions, the regions are laid out again and they are using
207915        the overridden logical content height from the first pass to update their logical height. Then, the flow thread content is laid out in the associated region chain,
207916        for which the auto logical height regions have proper logical height.
207917
207918        A future patch will properly take region breaks into account for the first pass of layout.
207919
207920        Tests: fast/regions/autoheight-abspos-region.html
207921               fast/regions/autoheight-floatright-region.html
207922               fast/regions/autoheight-horizontal-bt.html
207923               fast/regions/autoheight-inlineblock-normalflow-region.html
207924               fast/regions/autoheight-maxheight-region.html
207925               fast/regions/autoheight-minheight-region.html
207926               fast/regions/autoheight-normalflow-region.html
207927               fast/regions/autoheight-vertical-lr.html
207928               fast/regions/autoheight-vertical-rl.html
207929
207930        * rendering/FlowThreadController.cpp:
207931        (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
207932        For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
207933        Those regions are marked as needing layout (along with their ancestors).
207934        (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
207935        Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
207936        * rendering/FlowThreadController.h:
207937        * rendering/RenderBox.cpp:
207938        Add helper functions to clear out individual logical content width/height.
207939        (WebCore::RenderBox::clearOverrideLogicalContentHeight):
207940        (WebCore::RenderBox::clearOverrideLogicalContentWidth):
207941        (WebCore::RenderBox::clearOverrideSize):
207942        * rendering/RenderBox.h:
207943        * rendering/RenderFlowThread.cpp:
207944        (WebCore::RenderFlowThread::layout):
207945        (WebCore::RenderFlowThread::computeLogicalHeight):
207946        If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
207947        bail out early since we cannot compute the flow thread logical height.
207948        (WebCore::RenderFlowThread::regionAtBlockOffset):
207949        If the offset is inside an auto logical height region for which we did not compute the overrideLogicalContentHeight, then we consider this region tall enough to accommodate all
207950        the content and we return this region. Otherwise, for an auto logical height region, we use either the overrideLogicalContentHeight (if we are in the first layout phase) or
207951        the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
207952        (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
207953        (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
207954        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
207955        (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
207956        (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
207957        (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
207958        (WebCore::RenderFlowThread::addForcedRegionBreak):
207959        Simulate a region break at the specified offset. It will be extended to properly process the region breaks. At this moment, only one auto height region for a thread
207960        can have its height properly computed.
207961        * rendering/RenderFlowThread.h:
207962        * rendering/RenderNamedFlowThread.cpp:
207963        (WebCore::boxIntersectsRegion):
207964        * rendering/RenderRegion.cpp:
207965        (WebCore::RenderRegion::updateLogicalHeight):
207966        If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
207967        we use the overrideLogicalContentHeight to update the region logical height.
207968        (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
207969        * rendering/RenderRegion.h:
207970        * rendering/RenderView.cpp:
207971        (WebCore::RenderView::RenderView):
207972        (WebCore::RenderView::layoutContent):
207973        Added a new function to contain the RenderView block layout and flow threads layout.
207974        (WebCore::RenderView::checkLayoutState):
207975        Helper function keeping the original asserts from RenderView, used in more than one place.
207976        (WebCore::RenderView::layout):
207977        * rendering/RenderView.h:
207978        (WebCore::RenderView::normalLayoutPhase):
207979        (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
207980
2079812012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
207982
207983        Web Inspector: Fix memory leak in TreeOutline
207984        https://bugs.webkit.org/show_bug.cgi?id=99307
207985
207986        Reviewed by Alexander Pavlov.
207987
207988        Added cleanup of empty buckets in elements cache.
207989
207990        * inspector/front-end/treeoutline.js:
207991
2079922012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
207993
207994        Web Inspector: Hide useless controls in remote-debugging mode.
207995        https://bugs.webkit.org/show_bug.cgi?id=99300
207996
207997        Reviewed by Vsevolod Vlasov.
207998
207999        "Close inspector" and "change docking mode" buttons seem to be rather
208000        useless in remote debugging mode.
208001
208002        * inspector/front-end/inspector.css:
208003        (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
208004        (body.remote .dock-status-bar-item):
208005
2080062012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
208007
208008        [EFL][WK2] Implement Favicons API
208009        https://bugs.webkit.org/show_bug.cgi?id=99087
208010
208011        Reviewed by Kenneth Rohde Christiansen.
208012
208013        Moved ewk_util from WebKit to WebCore and rename it
208014        to CairoUtilityEfl so that the code can be shared
208015        between WebKit1 and WebKit2. Some related utility
208016        code was also moved from RenderThemeEfl to
208017        CairoUtilityEfl.
208018
208019        No new tests, no behavior change.
208020
208021        * PlatformEfl.cmake:
208022        * platform/efl/RenderThemeEfl.cpp:
208023        * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
208024        (WebCore):
208025        (WebCore::evasObjectFromCairoImageSurface):
208026        (WebCore::createSurfaceForBackingStore):
208027        * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
208028        (WebCore):
208029
2080302012-10-15  Beth Dakin  <bdakin@apple.com>
208031
208032        https://bugs.webkit.org/show_bug.cgi?id=99350
208033        REGRESSION (r131238): Repro crash in 
208034       WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
208035        opening pdf page
208036        -and corresponding-
208037        <rdar://problem/12499839>
208038
208039        Reviewed by Simon Fraser.
208040
208041        We have to null-check node here. It won't be found if  
208042        clearStateTree() was recently called.
208043        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
208044        (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
208045
2080462012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
208047
208048        [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
208049        https://bugs.webkit.org/show_bug.cgi?id=99302
208050
208051        Reviewed by Rob Buis.
208052
208053        RIM PR: 210884
208054        The marco BBLOG() is defined as a no-op in release mode which will
208055        save a function call in the release build.
208056        Internally reviewed by Charles Wei.
208057
208058        No new tests since there's no functional change.
208059
208060        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
208061        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
208062        * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
208063        (WebCore::GraphicsContext3D::logFrameBufferStatus):
208064        * platform/graphics/blackberry/LayerCompositingThread.cpp:
208065        (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
208066        * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
208067        (WebCore::VideoLayerWebKitThread::setHolePunchRect):
208068        (WebCore::VideoLayerWebKitThread::boundsChanged):
208069        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
208070        (WebCore::GraphicsContext3D::compileShader):
208071
2080722012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
208073
208074        [EFL] Provide logging for OnlineState detection code
208075        https://bugs.webkit.org/show_bug.cgi?id=99299
208076
208077        Reviewed by Kenneth Rohde Christiansen.
208078
208079        Add logging to NetworkStateNotifierEfl.cpp to facilitate
208080        debugging of this functionality.
208081
208082        No new tests, no behavior change.
208083
208084        * platform/network/efl/NetworkStateNotifierEfl.cpp:
208085        (WebCore::NetworkStateNotifier::updateState):
208086
2080872012-10-15  MORITA Hajime  <morrita@google.com>
208088
208089        [Regression r131167] run-webkit-tests fails
208090        https://bugs.webkit.org/show_bug.cgi?id=99279
208091
208092        Reviewed by Kentaro Hara.
208093
208094        CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
208095        overlooked TestObj. This fix relaxes that assumption to accept it.
208096
208097        No new tests. Fixing an existing test.
208098
208099        * bindings/scripts/CodeGeneratorV8.pm:
208100        (GenerateConstructorGetter):
208101        * bindings/scripts/test/V8/V8TestObj.cpp:
208102        (WebCore::TestObjV8Internal::TestObjConstructorGetter):
208103
2081042012-10-15  Joe Mason  <jmason@rim.com>
208105
208106        [BlackBerry] Fix WebSockets which was disabled by recent string changes
208107        https://bugs.webkit.org/show_bug.cgi?id=99248
208108
208109        Reviewed by George Staikos.
208110
208111        PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
208112        BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
208113        updated to the new signature, so the status message is not getting passed on because it is
208114        not calling the correct override.
208115
208116        No new tests because this is fixing a regression.
208117
208118        * platform/network/blackberry/SocketStreamHandle.h:
208119        (SocketStreamHandle):
208120        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
208121        (WebCore::SocketStreamHandle::notifyStatusReceived):
208122
2081232012-10-15  Rob Buis  <rbuis@rim.com>
208124
208125        Remove RenderTextControl::isSelectableElement
208126        https://bugs.webkit.org/show_bug.cgi?id=99334
208127
208128        Reviewed by Andreas Kling.
208129
208130        It seems this method is not used anymore.
208131
208132        * WebCore.order:
208133        * rendering/RenderTextControl.h:
208134
2081352012-10-15  Mike West  <mkwst@chromium.org>
208136
208137        CSP source expressions should support paths at file-level granularity.
208138        https://bugs.webkit.org/show_bug.cgi?id=99250
208139
208140        Reviewed by Adam Barth.
208141
208142        After a bit of discussion on public-webappsec[1], path support for CSP
208143        source expressions has been tuned to support file-level granularity. In
208144        particular, this means that:
208145
208146        - 'example.com/js' matches a file named 'js'
208147        - 'example.com/js/' matches all files under a directory named 'js'
208148          (note the trailing slash)
208149        - 'example.com/js/file.js' matches only a file named 'file.js'
208150          inside a directory named 'js'
208151
208152        Though this is part of the CSP 1.1 spec, it continues to be exposed
208153        outside the CSP_NEXT flag for back-compatibility.
208154
208155        Test cases have been added to the existing
208156        http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
208157        in order ensure that the new functionality works correctly.
208158
208159        * page/ContentSecurityPolicy.cpp:
208160        (WebCore::CSPSource::pathMatches):
208161            If the path ends with '/', do a prefix check. If not, check for an
208162            exact match.
208163        (WebCore::CSPSourceList::parsePath):
208164            Don't automatically append a '/' to paths.
208165
2081662012-10-15  George Staikos  <staikos@webkit.org>
208167
208168        [BlackBerry] Adapt to Platform API changes in string handling
208169        https://bugs.webkit.org/show_bug.cgi?id=99248
208170
208171        Reviewed by Yong Li.
208172
208173        Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
208174
208175        * html/track/TextTrack.cpp:
208176        (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
208177        * page/blackberry/SettingsBlackBerry.cpp:
208178        (WebCore):
208179        (WebCore::Settings::initializeDefaultFontFamilies):
208180        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
208181        * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
208182        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
208183        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
208184        * platform/blackberry/PasteboardBlackBerry.cpp:
208185        (WebCore::Pasteboard::writeSelection):
208186        (WebCore::Pasteboard::writeURL):
208187        (WebCore::Pasteboard::writePlainText):
208188        (WebCore::Pasteboard::plainText):
208189        (WebCore::Pasteboard::documentFragment):
208190        * platform/blackberry/ReadOnlyLatin1String.h: Removed.
208191        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
208192        (WebCore::MediaPlayerPrivate::getSupportedTypes):
208193        (WebCore::MediaPlayerPrivate::supportsType):
208194        (WebCore::MediaPlayerPrivate::setCertificatePath):
208195        (WebCore::MediaPlayerPrivate::load):
208196        (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
208197        (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
208198        (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
208199        (WebCore::MediaPlayerPrivate::lookupMediaStream):
208200        * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
208201        (MediaPlayerPrivate):
208202        (WebCore::MediaPlayerPrivate::engineDescription):
208203        * platform/network/blackberry/DNSBlackBerry.cpp:
208204        (WebCore::prefetchDNS):
208205        * platform/network/blackberry/NetworkJob.cpp:
208206        (WebCore::NetworkJob::initialize):
208207        (WebCore::NetworkJob::notifyStatusReceived):
208208        (WebCore::NetworkJob::notifyHeadersReceived):
208209        (WebCore::NetworkJob::handleNotifyClose):
208210        (WebCore::NetworkJob::sendRequestWithCredentials):
208211        * platform/network/blackberry/NetworkJob.h:
208212        (NetworkJob):
208213        * platform/network/blackberry/NetworkManager.cpp:
208214        (WebCore::NetworkManager::startJob):
208215        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
208216        (WebCore::ResourceRequest::initializePlatformRequest):
208217        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
208218        (WebCore::SocketStreamHandle::SocketStreamHandle):
208219        * platform/text/blackberry/StringBlackBerry.cpp:
208220        (WTF::String::String):
208221        (WTF::String::operator BlackBerry::Platform::String):
208222        * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
208223
2082242012-10-15  Jay Civelli  <jcivelli@chromium.org>
208225
208226        Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
208227        its current position is at a segment boundary (4096) ends up adding an
208228        unitialized segment (with uninitialized memory) to the SharedBuffer.
208229        https://bugs.webkit.org/show_bug.cgi?id=99000
208230
208231        Reviewed by Adam Barth.
208232
208233        * platform/SharedBuffer.cpp:
208234        (WebCore::SharedBuffer::append):
208235
2082362012-10-15  Luke Macpherson   <macpherson@chromium.org>
208237
208238        Make CSS variable names case-insensitive.
208239        https://bugs.webkit.org/show_bug.cgi?id=98712
208240
208241        Reviewed by Tony Chang.
208242
208243        This patch modifies the parser to normalize all variable names to lower case,
208244        making variable definitions consistent with other property names, which are also case insensitive.
208245        Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
208246
208247        Test: fast/css/variables/case-insensitive.html
208248
208249        * css/CSSParser.cpp:
208250        (WebCore::CSSParser::createPrimitiveNumericValue):
208251        (WebCore):
208252        (WebCore::CSSParser::createPrimitiveVariableNameValue):
208253        (WebCore::CSSParser::parseValidPrimitive):
208254        (WebCore::CSSParser::parseValue):
208255        (WebCore::CSSParser::storeVariableDeclaration):
208256        (WebCore::CSSParserString::lowerSubstring):
208257        Added function to compute a lower case substring as an AtomicString from a CSSParserString.
208258        * css/CSSParser.h:
208259        (CSSParser):
208260        * css/CSSParserValues.h:
208261        (CSSParserString):
208262        (WebCore::CSSParserString::lowerSubstring):
208263
2082642012-10-15  Michael Saboff  <msaboff@apple.com>
208265
208266        Update RenderText to use String instead of UChar* for text
208267        https://bugs.webkit.org/show_bug.cgi?id=96979
208268
208269        Reviewed by Dan Bernstein.
208270
208271        RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
208272        actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
208273        somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
208274        now written as rt->characterAt(n).
208275        Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
208276        text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
208277        to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
208278        as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
208279        parameter.  
208280        Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
208281        for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
208282        updated to TextRun's with 8 bit data.
208283        Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
208284
208285        No function change therefore no new tests.
208286
208287        * html/parser/HTMLTokenizer.cpp:
208288        (WebCore::vectorEqualsString):
208289        (WebCore::HTMLTokenizer::nextToken):
208290        * html/parser/HTMLTokenizer.h:
208291        (HTMLTokenizer):
208292        * html/track/WebVTTTokenizer.cpp:
208293        (WebCore::vectorEqualsString):
208294        (WebCore::WebVTTTokenizer::nextToken):
208295        * html/track/WebVTTTokenizer.h:
208296        (WebVTTTokenizer):
208297        * platform/graphics/Font.h:
208298        (WebCore::Font::glyphDataForCharacter):
208299        * platform/graphics/FontFastPath.cpp:
208300        (WebCore):
208301        * platform/graphics/TextRun.h:
208302        (WebCore::TextRun::TextRun):
208303        (WebCore::TextRun::subRun):
208304        (TextRun):
208305        * platform/graphics/mac/ComplexTextController.cpp:
208306        (WebCore::TextLayout::isNeeded):
208307        (WebCore::TextLayout::constructTextRun):
208308        * rendering/InlineFlowBox.cpp:
208309        (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
208310        * rendering/InlineIterator.h:
208311        (WebCore::InlineIterator::atTextParagraphSeparator):
208312        (WebCore::InlineIterator::current):
208313